:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}:root{--bg: #1e2326;--bg-card: #272e33;--bg-dark: #1e2326;--bg-raised: #2e383c;--bg-raised-hover: #374248;--bg-raised-active: #3a464c;--bg-input: #2e383c;--bg-tab: #272e33;--bg-tab-hover: #2e383c;--bg-subtle: rgba(167,192,128,.08);--bg-action: #374248;--bg-action-hover: #3d4e55;--border: #374248;--border-modal: #3a4a50;--border-subtle: rgba(167,192,128,.08);--border-glance: rgba(167,192,128,.06);--text: #d3c6aa;--text-heading: #e8dfc8;--text-soft: #cbbfa4;--text-muted: #b8ad92;--text-secondary: #a09a82;--text-dim: #8a9080;--text-faint: #6d7b70;--text-fainter: #5c6a60;--text-ghost: #4e5e54;--text-deep: #3d4e44;--text-deeper: #324038;--shadow: rgba(0,0,0,.4);--shadow-sm: rgba(0,0,0,.25);--shadow-lg: rgba(0,0,0,.6);--overlay: rgba(0,0,0,.65);--nav-accent: #a7c080;--nav-accent-2: #83c092}html[data-theme=light]{--bg: #f5e6c8;--bg-card: #ede0c4;--bg-dark: #eaddc0;--bg-raised: #e5d5b0;--bg-raised-hover: #deccaa;--bg-raised-active: #d8c5a0;--bg-input: #ddd0b0;--bg-tab: #ede0c4;--bg-tab-hover: #e5d5b0;--bg-subtle: rgba(0,0,0,.07);--bg-action: #d8c9a8;--bg-action-hover: #cfc09a;--border: rgba(0,0,0,.18);--border-modal: rgba(0,0,0,.22);--border-subtle: rgba(0,0,0,.1);--border-glance: rgba(0,0,0,.1);--text: #1e1208;--text-heading: #130c04;--text-soft: #2a1a08;--text-muted: #382210;--text-secondary: #4a3018;--text-dim: #5e3e20;--text-faint: #6b4e28;--text-fainter: #7a5a32;--text-ghost: #886240;--text-deep: #8c6a44;--text-deeper: #9a7450;--shadow: rgba(0,0,0,.12);--shadow-sm: rgba(0,0,0,.08);--shadow-lg: rgba(0,0,0,.22);--overlay: rgba(0,0,0,.4);--nav-accent: #5a6e3a;--nav-accent-2: #3a6e5e}html[data-theme=light] .input{border:1px solid rgba(0,0,0,.18)}html[data-theme=light] .input::placeholder{color:#7a5a32;opacity:1}html[data-theme=light] .glance-card{border:1px solid rgba(0,0,0,.16);box-shadow:0 4px 24px #00000024}html[data-theme=light] .input:focus{outline:2px solid #5a6e3a}body,html,#root{margin:0;padding:0;height:100%;width:100%;max-width:100%;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.dashboard{display:flex;flex-direction:column;align-items:center;padding:40px 20px;gap:40px}.header{display:flex;justify-content:space-between;align-items:center;width:90%;max-width:1200px;font-size:1.6rem;font-weight:500;color:var(--text-muted)}.card{background:var(--bg-card);border-radius:18px;padding:24px;box-shadow:0 0 18px var(--shadow);display:flex;flex-direction:column;gap:18px;transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-4px);box-shadow:0 4px 22px var(--shadow-lg)}.card h2{font-size:1.4rem;margin:0;text-align:center;color:var(--text-heading)}.event{display:flex;gap:12px;padding:12px 14px;background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:12px}.event-time{font-size:1rem;font-weight:700;width:80px}.event-title{font-size:1.1rem}.event-description{font-size:.9rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.empty{color:var(--text-faint);text-align:center;font-size:1rem;padding:12px 0}.input{width:100%;box-sizing:border-box;min-width:0;padding:12px 14px;border-radius:12px;border:1px solid transparent;background:var(--bg-input);color:var(--text);font-size:1rem;transition:border-color .15s,box-shadow .15s}.input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}.input[type=date]::-webkit-calendar-picker-indicator{margin-left:auto}.input:focus{outline:none;border-color:#4d9cff;box-shadow:0 0 0 3px #4d9cff38}.btn{padding:12px 16px;font-size:1rem;border:none;border-radius:12px;background:#4d9cff;color:#111;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;margin-top:4px}.btn:hover{background:#72b5ff}.btn:active{transform:scale(.97)}.actions{display:flex;flex-wrap:wrap;gap:10px}.action-btn{padding:14px 18px;background:var(--bg-action);border:none;color:var(--text-muted);border-radius:10px;font-size:1.05rem;cursor:pointer;transition:.15s}.action-btn:hover{background:var(--bg-action-hover)}.nav-bar{display:flex;align-items:stretch;gap:2px;border-bottom:2px solid var(--border)}.nav-group{position:relative;display:flex}.nav-item{position:relative;display:flex;align-items:center;gap:6px;padding:10px 16px 12px;background:none;border:none;color:var(--text-secondary);font-size:.95rem;font-weight:500;cursor:pointer;transition:color .18s ease;white-space:nowrap}.nav-item:after{content:"";position:absolute;left:10px;right:10px;bottom:-2px;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--nav-accent),var(--nav-accent-2));transform:scaleX(0);transform-origin:center;transition:transform .22s ease,opacity .22s ease}.nav-item:hover,.nav-item.open{color:var(--text-heading)}.nav-item.active{color:var(--nav-accent);font-weight:600}.nav-item.active:after{transform:scaleX(1)}.nav-item:not(.active):hover:after{transform:scaleX(.55);opacity:.45}.nav-caret{font-size:.65em;line-height:1;opacity:.7;transition:transform .2s ease}.nav-item.open .nav-caret{transform:rotate(180deg)}.nav-dropdown{position:absolute;top:calc(100% + 4px);left:4px;min-width:150px;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--bg-card);border:1px solid var(--border-modal);border-radius:12px;box-shadow:0 10px 28px var(--shadow-lg);z-index:60;animation:nav-drop-in .16s ease}@keyframes nav-drop-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.nav-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:9px 12px;border:none;border-radius:8px;background:none;color:var(--text-secondary);font-size:.92rem;cursor:pointer;transition:background .14s ease,color .14s ease}.nav-dropdown-item:hover{background:var(--bg-raised-hover);color:var(--text-heading)}.nav-dropdown-item.active{background:color-mix(in srgb,var(--nav-accent) 16%,transparent);color:var(--nav-accent);font-weight:600}.nav-dropdown-item.active:after{content:"✓";font-size:.85em}.week-view{width:90%;max-width:1200px;display:flex;flex-direction:column;gap:18px}.week-header{display:flex;justify-content:space-between;align-items:center;font-size:1.2rem;font-weight:500;color:var(--text-muted)}.week-nav{display:flex;align-items:center;gap:.4rem}.week-nav-btn{padding:.4rem .75rem!important;font-size:1rem!important;background:var(--bg-raised);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;cursor:pointer;line-height:1}.week-nav-btn:hover{background:var(--bg-raised-hover);color:var(--text)}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.week-column{background:var(--bg-card);border-radius:14px;padding:10px;box-shadow:0 0 16px var(--shadow);display:flex;flex-direction:column;gap:8px}.week-column-header{border-bottom:1px solid var(--border-subtle);padding-bottom:6px;margin-bottom:4px}.week-dow{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.week-date{font-size:.95rem;font-weight:500}.week-events{display:flex;flex-direction:column;gap:6px}.week-empty{font-size:.8rem;color:var(--text-fainter)}.week-event{background:var(--bg-raised);border-radius:10px;padding:8px 10px;cursor:pointer;transition:background .15s ease,transform .1s ease,box-shadow .1s ease}.week-event:hover{background:var(--bg-raised-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow)}.week-event-main{display:flex;flex-direction:column;gap:2px}.week-event-time{font-size:.8rem;font-weight:600;color:var(--text-soft)}.week-event-title{font-size:.95rem}.week-event-meal{font-size:.72rem;color:var(--text-faint);margin-top:1px}.week-event-notes{margin-top:6px;font-size:.8rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.week-event-expanded{background:var(--bg-raised-active)}.week-event-chore-winona{border-left:3px solid #ff6eb4}.week-event-chore-winona .week-event-time{color:#ff6eb4}.week-event-chore-xavier{border-left:3px solid #4ec94e}.week-event-chore-xavier .week-event-time{color:#4ec94e}.week-event-chore-jude{border-left:3px solid #5bc8ff}.week-event-chore-jude .week-event-time{color:#5bc8ff}.week-event-chore-mom{border-left:3px solid #ffd166}.week-event-chore-mom .week-event-time{color:#ffd166}.week-event-chore-dad{border-left:3px solid #6d8aff}.week-event-chore-dad .week-event-time{color:#6d8aff}@media(max-width:900px){.week-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.kanban-toolbar{display:flex;justify-content:space-between;align-items:center;width:90%;max-width:1400px;padding:0 4px}.kanban-toolbar-actions{display:flex;align-items:center;gap:.5rem}.show-completed-btn{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-muted);font-size:.8rem;padding:.4rem .85rem}.show-completed-btn:hover{background:var(--bg-raised-hover);color:var(--text)}.show-completed-btn-active{background:#4caf6e26!important;border-color:#4caf6e66!important;color:#4caf6e!important}.kanban-card-done{opacity:.5;cursor:default}.kanban-card-done .kanban-card-title{text-decoration:line-through;color:var(--text-dim)}.kanban-card-done-check-checked{background:#4caf6e40!important;border-color:#4caf6e!important}.kanban-title{font-size:1.8rem;font-weight:600;color:var(--text-heading)}.kanban-board{display:flex;gap:16px;width:90%;max-width:1400px;overflow-x:auto;align-items:flex-start;padding-bottom:12px}.kanban-column{flex:0 0 220px;background:var(--bg-card);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}.kanban-column-header{display:flex;justify-content:space-between;align-items:center;font-size:1rem;font-weight:700;padding-bottom:10px;border-bottom:2px solid}.kanban-counts{display:flex;align-items:center;gap:.35rem}.kanban-count{font-size:.8rem;font-weight:600;background:var(--bg-subtle);border-radius:999px;padding:1px 8px;color:var(--text-dim)}.kanban-count-done{font-size:.8rem;font-weight:600;background:#22a0502e;border-radius:999px;padding:1px 8px;color:#4caf6e}.kanban-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.35rem}.kanban-card-done-check{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border);background:transparent;cursor:pointer;flex-shrink:0;outline:none;transition:border-color .15s,background .15s}.kanban-card-done-check:hover{border-color:#4caf6e;background:#4caf6e26}.kanban-cards{display:flex;flex-direction:column;gap:8px}.kanban-empty{font-size:.85rem;color:var(--text-deeper);text-align:center;padding:12px 0}.kanban-card{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:12px;padding:10px 12px;border-left:3px solid var(--text-ghost);display:flex;flex-direction:column;gap:4px}.kanban-card-title{font-size:.95rem;font-weight:600;color:var(--text-soft)}.kanban-card-desc{font-size:.82rem;color:var(--text-faint);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kanban-card-date{font-size:.8rem;font-weight:600}.kanban-homework-date{font-size:.9rem;font-weight:600}.chores-container{display:flex;flex-direction:column;gap:24px;padding:20px;max-width:800px;margin:0 auto}.chores-header{font-size:1.8rem;font-weight:600;text-align:left;color:var(--text-heading);margin-bottom:10px}.chores-list{display:flex;flex-direction:column;gap:16px}.chore-card{display:flex;justify-content:space-between;align-items:center;background:var(--bg-dark);padding:18px 20px;border-radius:14px;box-shadow:0 0 12px var(--shadow-sm);border:1px solid var(--border)}.chore-main{display:flex;flex-direction:column;gap:4px}.chore-title{font-size:1.2rem;font-weight:600;color:var(--text-heading)}.chore-desc{font-size:.95rem;color:var(--text-secondary)}.chore-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.chore-user{font-size:.8rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--bg-subtle)}.chore-date{font-size:1rem;font-weight:500;color:#89a8ff}.chore-user-winona{border-left:3px solid #ff6eb4}.chore-user-winona .chore-user{color:#ff6eb4}.chore-user-xavier{border-left:3px solid #4ec94e}.chore-user-xavier .chore-user{color:#4ec94e}.chore-user-jude{border-left:3px solid #5bc8ff}.chore-user-jude .chore-user{color:#5bc8ff}.chore-user-mom{border-left:3px solid #ffd166}.chore-user-mom .chore-user{color:#ffd166}.chore-user-dad{border-left:3px solid #6d8aff}.chore-user-dad .chore-user{color:#6d8aff}.add-chore-card{background:var(--bg-dark);padding:20px;border-radius:14px;box-shadow:0 0 12px var(--shadow-sm);border:1px solid var(--border);display:flex;flex-direction:column;gap:14px;max-width:800px;margin:0 auto}.add-chore-card h2{margin-bottom:6px;font-size:1.4rem;color:var(--text-heading)}.add-chore-card .input{background:var(--bg-input);border:none;padding:12px 14px;font-size:1rem;color:var(--text);border-radius:10px}.add-chore-card .btn{background:#6d8aff;border:none;color:#fff;padding:12px 16px;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;transition:.2s}.add-chore-card .btn:hover{background:#5f7af0}.recipes-container{display:flex;flex-direction:column;gap:24px;padding:20px;width:90%;max-width:800px}.recipes-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.recipes-header{font-size:1.8rem;font-weight:600;color:var(--text-heading)}.recipes-filter-select{width:auto!important;padding:8px 12px!important;font-size:.9rem!important}.recipes-list{display:flex;flex-direction:column;gap:16px}.recipe-card{background:var(--bg-dark);border:1px solid var(--border);border-left:3px solid var(--text-heading);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:16px;box-shadow:0 0 12px var(--shadow-sm)}.recipe-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.recipe-top-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.recipe-top-clickable:hover .recipe-title{color:var(--text-heading)}.recipe-top-left{display:flex;align-items:center;gap:10px}.recipe-chevron{font-size:.85rem;color:var(--text-ghost);flex-shrink:0;transition:color .15s}.recipe-card-expanded .recipe-chevron{color:var(--text-dim)}.recipe-title{font-size:1.2rem;font-weight:600;color:var(--text-muted);transition:color .15s}.recipe-meal-label{font-size:.75rem;color:var(--text-faint);margin-top:1px}.recipe-schedule{display:flex;align-items:center;gap:8px}.recipe-schedule-label{font-size:.85rem;color:var(--text-dim);white-space:nowrap}.recipe-date-input{width:auto;padding:8px 10px;font-size:.9rem}.recipe-instructions{min-height:90px;resize:vertical;line-height:1.6;font-size:.95rem;color:var(--text-muted)}.ingredient-section{display:flex;flex-direction:column;gap:8px}.ingredient-heading{font-size:.85rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint)}.ingredient-empty{font-size:.9rem;color:var(--text-deep)}.ingredient-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--bg-input);border-radius:8px;font-size:.95rem;color:var(--text-soft)}.ingredient-remove{background:none;border:none;color:var(--text-ghost);font-size:1.1rem;cursor:pointer;padding:0 2px;line-height:1;transition:color .15s}.ingredient-remove:hover{color:#ff6b6b;border-color:transparent}.ingredient-quick-add{display:flex;gap:6px;margin-top:4px;align-items:center;flex-wrap:wrap}.ingredient-qty-input{width:64px!important;flex-shrink:0;padding:10px 8px!important;text-align:center}.ingredient-unit-select{width:80px!important;flex-shrink:0;padding:10px 6px!important}.ingredient-qty-label{font-size:.8rem;font-weight:600;color:var(--text-dim);min-width:52px;flex-shrink:0}.ingredient-quick-add .input{flex:1}.ingredient-add-btn{padding:10px 16px;font-size:.95rem;white-space:nowrap}.add-recipe-card{background:var(--bg-dark);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 0 12px var(--shadow-sm)}.add-recipe-card h2{font-size:1.4rem;color:var(--text-heading);margin:0}.add-recipe-card .btn{background:var(--text-soft);color:#111;font-weight:600;border:none;padding:12px 16px;border-radius:10px;cursor:pointer;font-size:1rem;transition:.2s}.add-recipe-card .btn:hover{background:var(--text-heading)}.week-event-recipe{border-left:3px solid var(--text-heading)}.week-event-recipe .week-event-time{color:var(--text-heading)}.shopping-container{display:flex;flex-direction:column;gap:24px;padding:20px;width:90%;max-width:600px}.shopping-header{font-size:1.8rem;font-weight:600;color:var(--text-heading)}.shopping-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.shopping-add-btn{padding:10px 16px;font-size:.95rem;font-weight:600;background:var(--bg-raised);border:1px solid var(--border);color:var(--text-soft);border-radius:12px;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s}.shopping-add-btn:hover{background:var(--bg-raised-hover);color:var(--text-heading)}.shopping-add-btn:active{transform:scale(.97)}.analyze-btn{align-self:center;padding:10px 20px;font-size:1rem;background:#4d9cff;color:#111;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:background .15s;white-space:nowrap}.analyze-btn:hover{background:#72b5ff}.shopping-empty{color:var(--text-ghost);font-size:.95rem;line-height:1.6}.shopping-groups{display:flex;flex-direction:column;gap:20px}.shopping-group{display:flex;flex-direction:column;gap:6px}.shopping-recipe-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-bottom:4px}.shopping-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--bg-dark);border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:1rem;color:var(--text-soft);transition:background .1s}.shopping-item:hover{background:var(--bg-raised)}.shopping-item input[type=checkbox]{width:18px;height:18px;accent-color:#4d9cff;cursor:pointer;flex-shrink:0}.shopping-item-checked{opacity:.45}.shopping-item-checked span{text-decoration:line-through;color:var(--text-ghost)}.shopping-item-label{display:flex;align-items:center;gap:12px;flex:1;cursor:pointer}.shopping-item-qty{display:flex;gap:2px;align-items:center;flex-shrink:0}.shopping-qty-input,.shopping-unit-select,.shopping-store-select{padding:4px 6px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-dim);font-size:.85rem;transition:background .12s,color .12s,border-color .12s;cursor:pointer}.shopping-qty-input{width:44px;text-align:right}.shopping-store-select{max-width:110px;text-align:right}.shopping-qty-input:hover,.shopping-unit-select:hover,.shopping-store-select:hover{color:var(--text);background:var(--bg-subtle)}.shopping-qty-input:focus,.shopping-unit-select:focus,.shopping-store-select:focus{outline:none;color:var(--text);background:var(--bg-input);border-color:#4d9cff}.shopping-store-select:not([data-empty=true]),.shopping-unit-select:not([data-empty=true]){color:var(--text-muted)}.shopping-modal-row{display:flex;gap:10px}.shopping-modal-row .input:first-child{max-width:110px}.shopping-modal-row .input:last-child{flex:1}.shopping-store-filter{width:auto!important;padding:8px 12px!important;font-size:.9rem!important}.shopping-item-remove{background:none;border:none;color:var(--text-ghost);font-size:1.1rem;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0;opacity:0;transition:opacity .15s,color .15s}.shopping-item:hover .shopping-item-remove{opacity:1}.shopping-item-remove:hover{color:#e06c6c}.daily-scripture{width:90%;max-width:1200px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0 8px;text-align:center}.daily-scripture-text{font-style:italic;font-size:1rem;color:var(--text-faint);line-height:1.7}.daily-scripture-ref{font-size:.82rem;color:var(--text-deep);letter-spacing:.04em}.today-clock{width:90%;max-width:1200px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0 2px}.today-clock-digital-time{font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:700;letter-spacing:.02em;color:var(--text-heading);line-height:1.1}.today-clock-tz{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-deep)}.analog-clock-svg{width:150px;height:150px}.analog-clock-face{fill:var(--bg-card);stroke:var(--border);stroke-width:1.5}.analog-clock-tick{stroke:var(--text-ghost);stroke-width:1}.analog-clock-tick-strong{stroke:var(--text-deep);stroke-width:2}.analog-clock-hand-hour{stroke:var(--text-heading);stroke-width:3.4;stroke-linecap:round}.analog-clock-hand-min{stroke:var(--text-heading);stroke-width:2.4;stroke-linecap:round}.analog-clock-hand-sec{stroke:#e06c6c;stroke-width:1.2;stroke-linecap:round}.analog-clock-center{fill:var(--text-heading)}.glance-card{width:90%;max-width:1200px;gap:0}.glance-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.glance-card-header h2{margin:0;text-align:left;font-size:1.25rem;font-weight:700}.add-trigger-btn{padding:9px 16px;font-size:.9rem;font-weight:600;background:#4d9cff;color:#111;border:none;border-radius:12px;cursor:pointer;transition:background .15s,transform .1s}.add-trigger-btn:hover{background:#72b5ff}.add-trigger-btn:active{transform:scale(.97)}.glance-section{display:flex;flex-direction:column;gap:6px;padding:16px 0;border-top:1px solid var(--border-glance)}.glance-section-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-ghost);margin-bottom:4px}.glance-empty{font-size:.9rem;color:var(--text-deeper)}.glance-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:12px;border-left:3px solid var(--text-deeper);transition:background .15s}.glance-item-done{opacity:.5;border-left-color:transparent!important}.glance-item-done .glance-item-title{text-decoration:line-through;color:var(--text-dim)}.glance-item .kanban-card-done-check{margin-left:auto;flex-shrink:0}.glance-item-time{font-size:.8rem;font-weight:600;color:var(--text-dim);min-width:64px;white-space:nowrap;font-variant-numeric:tabular-nums}.glance-item-title{font-size:.95rem;color:var(--text-soft);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.glance-chore-winona{border-left-color:#ff6eb4}.glance-chore-winona .glance-item-time{color:#ff6eb4}.glance-chore-xavier{border-left-color:#4ec94e}.glance-chore-xavier .glance-item-time{color:#4ec94e}.glance-chore-jude{border-left-color:#5bc8ff}.glance-chore-jude .glance-item-time{color:#5bc8ff}.glance-chore-mom{border-left-color:#ffd166}.glance-chore-mom .glance-item-time{color:#ffd166}.glance-chore-dad{border-left-color:#6d8aff}.glance-chore-dad .glance-item-time{color:#6d8aff}.glance-item-recipe{border-left-color:var(--text-heading)}.glance-item-recipe .glance-item-time{color:var(--text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:400;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:16px;padding-top:max(16px,env(safe-area-inset-top) + 8px);padding-bottom:max(16px,env(safe-area-inset-bottom) + 8px);overflow-y:auto}.modal{background:var(--bg-card);border:1px solid var(--border-modal);border-radius:20px;padding:24px;width:100%;max-width:440px;max-height:calc(100dvh - 32px);overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px var(--shadow-lg);animation:modal-pop .22s cubic-bezier(.3,1.2,.4,1)}@keyframes modal-pop{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:none}}.modal-header{display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:1.3rem;font-weight:700;color:var(--text-heading);text-align:left}.modal-close{width:30px;height:30px;border-radius:50%;border:none;background:var(--bg-raised);color:var(--text-secondary);font-size:1.15rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:color .15s,background .15s}.modal-close:hover{color:var(--text-heading);background:var(--bg-raised-hover)}.modal-submit-btn{margin-top:4px;background:#4d9cff;color:#111;font-weight:700}.modal-submit-btn:hover{background:#72b5ff}.modal-submit-btn:disabled{opacity:.45;cursor:not-allowed}.modal-hint{font-size:.85rem;color:var(--text-secondary);background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:10px;padding:10px 12px;line-height:1.4}.time-picker{display:flex;gap:.4rem}.time-picker-select{flex:1;text-align:center}.modal-footer{display:flex;gap:.5rem;margin-top:.25rem}.modal-footer .modal-submit-btn{flex:1}.modal-delete-btn{background:#e67e8024!important;color:var(--red, #e67e80)!important;border:none;border-radius:12px;flex:0 0 auto;padding:.55rem 1.1rem;font-weight:600}.modal-delete-btn:hover{background:#e67e8042!important}.modal-gcal-badge{font-size:.7rem;font-weight:400;color:var(--text-faint);margin-left:.4rem}.kanban-card-clickable{cursor:pointer;transition:background .15s,transform .1s}.kanban-card-clickable:hover{background:var(--bg-raised-hover);transform:translateY(-1px)}.week-event-expanded-content{margin-top:.35rem}.week-event-actions{display:flex;gap:.4rem;margin-top:.4rem}.week-event-btn-edit,.week-event-btn-delete{font-size:.7rem;padding:.25rem .6rem;border-radius:4px;cursor:pointer;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-muted)}.week-event-btn-edit:hover{background:var(--bg-raised-hover);color:var(--text)}.week-event-btn-delete{background:#7a1f1f59;color:#fbb;border-color:#a3333366}.week-event-btn-delete:hover{background:#9a252580}.recipe-top-right{display:flex;align-items:center;gap:.5rem}.recipe-edit-btn{font-size:.75rem;padding:.3rem .7rem;white-space:nowrap;background:var(--bg-raised);border:1px solid var(--border);color:var(--text-muted);border-radius:5px;cursor:pointer}.recipe-edit-btn:hover{background:var(--bg-raised-hover);color:var(--text)}.admin-gear-btn{position:fixed;top:20px;right:20px;z-index:200;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px var(--shadow);transition:background .2s,transform .15s;padding:0}.admin-gear-btn:hover{background:var(--bg-raised);transform:scale(1.1)}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:290;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.admin-drawer{position:fixed;top:0;right:0;height:100vh;width:360px;max-width:92vw;background:var(--bg);border-left:1px solid var(--border-modal);box-shadow:-8px 0 40px var(--shadow-lg);z-index:300;display:flex;flex-direction:column;transform:translate(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);overflow:hidden}.admin-drawer-open{transform:translate(0)}.admin-drawer-header{display:flex;justify-content:space-between;align-items:center;padding:22px 20px 10px;flex-shrink:0}.admin-drawer-title{font-size:1.45rem;font-weight:800;color:var(--text-heading);letter-spacing:-.01em}.admin-close{width:30px;height:30px;border-radius:50%;border:none;background:var(--bg-raised);color:var(--text-secondary);font-size:1.15rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:color .15s,background .15s}.admin-close:hover{color:var(--text-heading);border-color:transparent}.admin-sections{flex:1;overflow-y:auto;padding:12px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.admin-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;overflow:hidden}.admin-row{display:flex;justify-content:space-between;align-items:center;min-height:50px;padding:0 16px;font-size:.95rem;font-weight:600;color:var(--text-soft)}.ios-switch{position:relative;display:inline-block;width:46px;height:28px;flex-shrink:0}.ios-switch input{opacity:0;width:0;height:0;position:absolute}.ios-switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;background:var(--bg-action);transition:background .2s ease;cursor:pointer}.ios-switch-slider:before{content:"";position:absolute;width:24px;height:24px;border-radius:50%;top:2px;left:2px;background:#fff;box-shadow:0 2px 4px #0000004d;transition:transform .2s ease}.ios-switch input:checked+.ios-switch-slider{background:#4d9cff}.ios-switch input:checked+.ios-switch-slider:before{transform:translate(18px)}.ios-switch-sm{width:40px;height:24px}.ios-switch-sm .ios-switch-slider{border-radius:12px}.ios-switch-sm .ios-switch-slider:before{width:20px;height:20px}.ios-switch-sm input:checked+.ios-switch-slider:before{transform:translate(16px)}.admin-section-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:none;border:none;color:var(--text-soft);font-size:1rem;font-weight:600;cursor:pointer;text-align:left;transition:background .15s,color .15s}.admin-section-header:hover{background:var(--bg-raised);color:var(--text-heading)}.admin-section-header-open{color:var(--text-heading);border-bottom:1px solid var(--border-subtle)}.admin-chevron{font-size:.75rem;color:var(--text-ghost);transition:transform .2s ease}.admin-chevron.open{transform:rotate(90deg)}.admin-section-body{padding:12px 16px 16px;display:flex;flex-direction:column;gap:8px}.admin-subsection-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-top:6px;margin-bottom:2px}.admin-empty{font-size:.85rem;color:var(--text-deeper);padding:4px 0}.admin-toggle-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:var(--text-soft);min-height:36px;padding:2px 0}.admin-checkbox{width:16px;height:16px;accent-color:#4d9cff;cursor:pointer;flex-shrink:0}.admin-add-row{display:flex;gap:6px;align-items:center;margin-top:4px}.admin-add-col{display:flex;flex-direction:column;gap:6px;margin-top:4px}.admin-add-btn{padding:8px 14px!important;font-size:.85rem!important;white-space:nowrap;flex-shrink:0}.admin-delete-btn{background:none;border:none;color:var(--text-ghost);font-size:1.1rem;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0;transition:color .15s}.admin-delete-btn:hover{color:#e06c6c}.admin-user-row{display:flex;align-items:center;gap:6px;padding:4px 0}.admin-user-add-row{margin-top:6px;padding-top:8px;border-top:1px solid var(--border-subtle)}.admin-color-picker{width:28px;height:28px;border:none;border-radius:50%;padding:0;cursor:pointer;background:none;flex-shrink:0}.admin-name-input{flex:1;padding:7px 10px!important;font-size:.88rem!important}.admin-clock-style-row{display:flex;gap:8px;margin:4px 0 6px}.admin-clock-style-btn{flex:1;padding:8px 10px;font-size:.85rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.admin-clock-style-btn-active{border-color:var(--accent, #4d9cff);color:var(--text-heading);background:color-mix(in srgb,var(--accent, #4d9cff) 12%,transparent);font-weight:700}.admin-color-row{display:flex;align-items:center;gap:10px;padding:5px 0}.admin-color-label{font-size:.9rem;color:var(--text-secondary)}.admin-checkbox-label{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;flex-shrink:0}.admin-checkbox-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint)}.admin-quote-row{display:flex;align-items:flex-start;gap:6px;padding:6px 0;border-bottom:1px solid var(--border-subtle)}.admin-quote-preview{flex:1;font-size:.82rem;line-height:1.5;color:var(--text-muted)}.admin-quote-text{font-style:italic}.admin-quote-source{color:var(--text-faint)}.admin-quote-textarea{min-height:70px;resize:vertical;font-size:.9rem!important;line-height:1.5}.admin-quote-edit-row{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.admin-quote-edit-fields{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.admin-quote-edit-fields .admin-quote-textarea{min-height:54px}.admin-series-card{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden;margin-bottom:6px}.admin-series-header{padding:10px 12px;cursor:pointer;transition:background .15s}.admin-series-header:hover{background:var(--bg-raised-hover)}.admin-series-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.admin-series-name{font-size:.9rem;font-weight:600;color:var(--text-soft)}.admin-series-dow-pills{display:flex;gap:2px;flex-shrink:0}.admin-dow-pill{font-size:.6rem;font-weight:600;padding:1px 4px;border-radius:3px;background:var(--bg-action);color:var(--text-ghost)}.admin-dow-pill-on{background:#4d9cff33;color:#4d9cff}.admin-series-meta-row{display:flex;align-items:center;gap:8px}.admin-series-meta{font-size:.72rem;color:var(--text-faint);flex:1}.admin-series-task-count{font-size:.72rem;color:var(--text-ghost)}.admin-series-actions{flex-shrink:0}.admin-series-body{padding:10px 12px 12px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px;background:var(--bg-card)}.admin-series-field-row{display:flex;align-items:center;gap:8px}.admin-series-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);min-width:38px;flex-shrink:0}.admin-series-input{flex:1;padding:6px 10px!important;font-size:.85rem!important}.admin-clear-btn{background:none;border:none;font-size:.75rem;color:var(--text-ghost);cursor:pointer;padding:2px 4px;transition:color .15s;white-space:nowrap}.admin-clear-btn:hover{color:#e06c6c}.admin-dow-row{align-items:flex-start}.admin-dow-grid{display:flex;flex-wrap:wrap;gap:6px;flex:1}.admin-dow-check-label{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.7rem;color:var(--text-faint);cursor:pointer;min-width:24px}.admin-series-task-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--border-subtle)}.admin-series-task-title{font-size:.88rem;color:var(--text-soft)}.admin-new-series-btn{width:100%;margin-top:4px;background:var(--bg-raised)!important;border:1px dashed var(--border)!important;color:var(--text-muted)!important;font-size:.85rem!important;padding:8px 14px!important;text-align:center}.admin-new-series-btn:hover{background:var(--bg-raised-hover)!important;color:var(--text)!important}.admin-new-series-form{border:1px solid rgba(77,156,255,.3)}.admin-new-series-form .admin-series-body{display:block;border-top:none}.admin-new-series-btns{margin-top:8px;border-top:1px solid var(--border-subtle);padding-top:8px}.admin-cancel-btn{background:none;border:none;font-size:.85rem;color:var(--text-ghost);cursor:pointer;padding:6px 10px;transition:color .15s}.admin-cancel-btn:hover{color:var(--text-muted)}.admin-store-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--border-subtle)}.admin-store-name{font-size:.9rem;color:var(--text-soft)}.admin-cal-row{display:flex;align-items:flex-start;gap:6px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.admin-cal-fields{flex:1;display:flex;flex-direction:column;gap:4px}.admin-cal-name,.admin-cal-url{padding:6px 10px!important;font-size:.82rem!important}.admin-add-cal-col{margin-top:6px;padding-top:8px;border-top:1px solid var(--border-subtle)}.admin-refresh-btn{margin-top:4px;background:var(--bg-raised)!important;border:1px solid var(--border);color:var(--text-muted)!important;font-size:.85rem!important;padding:8px 14px!important}.admin-refresh-btn:hover{background:var(--bg-raised-hover)!important;color:var(--text)!important}body,html,#root{padding-top:env(safe-area-inset-top)}@media(max-width:768px){.dashboard{padding:20px 14px;gap:20px;padding-bottom:max(24px,env(safe-area-inset-bottom) + 24px)}.header{flex-direction:column;align-items:center;gap:10px;width:100%;font-size:1.2rem}.date-text{width:100%;text-align:center}.nav-bar{width:100%;flex-wrap:wrap;justify-content:center}.nav-item{font-size:.88rem;padding:8px 11px 10px}.week-view,.kanban-toolbar,.kanban-board,.glance-card,.recipes-container,.shopping-container{width:100%;max-width:100%}.kanban-board{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:12px}.kanban-column{flex:0 0 200px;scroll-snap-align:start}.card{padding:16px;border-radius:14px}.modal{max-width:100%;padding:20px;border-radius:14px;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.admin-drawer{width:min(380px,95vw)}.recipes-container{padding:12px}.recipe-top{gap:10px}.shopping-container{padding:12px}.shopping-toolbar{flex-wrap:wrap;gap:8px}.admin-gear-btn{top:max(16px,env(safe-area-inset-top) + 10px);right:max(16px,env(safe-area-inset-right) + 10px)}}@media(max-width:480px){.dashboard{padding:14px 10px;gap:14px}.header{font-size:1rem}.date-text{font-size:.95rem;color:var(--text-muted)}.nav-item{font-size:.8rem;padding:7px 8px 9px}.nav-item:after{left:5px;right:5px}.kanban-column{flex:0 0 170px}.shopping-item-qty{gap:2px}.shopping-qty-input{width:44px;font-size:.8rem;padding:3px 4px}.shopping-unit-select{font-size:.78rem;padding:3px 2px}.shopping-store-select{max-width:80px;font-size:.75rem;padding:3px 2px}.recipe-top{flex-direction:column;align-items:flex-start}.recipe-top-right{width:100%;justify-content:flex-start}.week-header{font-size:.95rem}.week-nav-btn{padding:.3rem .6rem!important}.glance-card{width:100%}.btn{min-height:44px}.add-trigger-btn,.show-completed-btn,.analyze-btn{min-height:40px}.kanban-toolbar{padding:0}.kanban-title{font-size:1.4rem}.modal-overlay{padding:12px;padding-top:max(12px,env(safe-area-inset-top) + 8px);padding-bottom:max(12px,env(safe-area-inset-bottom) + 8px)}.modal{max-width:100%;padding:16px;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.admin-drawer{width:100%;max-width:100%;border-radius:16px 16px 0 0;border-left:none;border-top:1px solid var(--border-modal);bottom:0;top:auto;height:92dvh;max-height:92dvh;transform:translateY(100%);box-shadow:0 -8px 40px var(--shadow-lg)}.admin-sections{padding-bottom:max(16px,env(safe-area-inset-bottom) + 16px)}.admin-drawer-open{transform:translateY(0)}.admin-gear-btn{width:36px;height:36px;font-size:1rem}.daily-scripture{padding:0 0 4px}.daily-scripture-text{font-size:.88rem}.shopping-header,.recipes-header{font-size:1.4rem}.kanban-title{font-size:1.3rem}}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-card{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:40px 36px;width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:12px}.auth-logo{width:72px;height:72px;border-radius:16px}.auth-title{font-size:1.6rem;font-weight:700;color:var(--text-primary);margin:0}.auth-subtitle{font-size:.9rem;color:var(--text-secondary);margin:0;text-align:center}.auth-form{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:8px}.auth-input{width:100%;box-sizing:border-box;font-size:1rem;padding:10px 14px}.auth-error{color:var(--red, #e67e80);font-size:.88rem;background:color-mix(in srgb,var(--red, #e67e80) 12%,transparent);border-radius:6px;padding:8px 12px}.auth-btn{width:100%;padding:11px;font-size:1rem;font-weight:600;margin-top:4px}.auth-google-btn{width:100%;padding:11px;font-size:.95rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:10px;cursor:pointer}.auth-google-btn:hover{background:#f7f8f8}.auth-google-icon{width:18px;height:18px;flex-shrink:0}.auth-divider{display:flex;align-items:center;text-align:center;color:var(--text-secondary);font-size:.8rem;margin:14px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border)}.auth-divider span{padding:0 10px}.admin-account{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin:6px 16px 0;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px}.admin-account-info{display:flex;flex-direction:column;min-width:0}.admin-account-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.admin-account-email{font-size:.9rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-signout{flex-shrink:0;padding:7px 14px;font-size:.85rem;font-weight:600;border-radius:10px;cursor:pointer;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border)}.admin-signout:hover{background:var(--bg-raised);border-color:var(--red);color:var(--red)}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text-secondary);font-size:1rem}.budget-outer{display:flex;gap:48px;align-items:flex-start;width:90%;max-width:1200px;padding:0 0 40px}.budget-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:24px}.budget-view-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.budget-view-label{font-size:1.6rem;font-weight:700;color:var(--text-heading)}.budget-header-right{display:flex;align-items:baseline;gap:10px}.budget-cf-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.budget-cf-inline{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.budget-cf-pos{color:#83c092}.budget-cf-neg{color:#e67e80}.budget-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.budget-summary-card{min-width:0;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:18px 20px;min-height:96px;display:flex;flex-direction:column;justify-content:center;gap:6px;box-shadow:0 2px 12px var(--shadow-sm)}.budget-summary-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);white-space:nowrap}.budget-summary-amount{font-size:clamp(1.25rem,3.2vw,1.9rem);font-weight:700;color:var(--text-heading);letter-spacing:-.02em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.budget-summary-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media(max-width:380px){.budget-summary-row{grid-template-columns:1fr}}.budget-income-card{border-top:3px solid #a7c080}.budget-fixed-card{border-top:3px solid #dbbc7f}.budget-flex-card{border-top:3px solid #7fbbb3}.budget-debt-card{border-top:3px solid #e69875}.budget-paid-card{border-top:3px solid #d3c6aa}.budget-due-card,.budget-cashflow-pos-card{border-top:3px solid #83c092}.budget-cashflow-neg-card{border-top:3px solid #e67e80}.budget-income-card .budget-summary-amount{color:#a7c080}.budget-fixed-card .budget-summary-amount{color:#dbbc7f}.budget-flex-card .budget-summary-amount{color:#7fbbb3}.budget-debt-card .budget-summary-amount{color:#e69875}.budget-paid-card .budget-summary-amount{color:#d3c6aa}.budget-due-card .budget-summary-amount,.budget-cashflow-pos-card .budget-summary-amount{color:#83c092}.budget-cashflow-neg-card .budget-summary-amount{color:#e67e80}.budget-sections-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 2px 12px var(--shadow-sm)}.budget-accordion{background:var(--bg-card);border-bottom:1px solid var(--border)}.budget-accordion:last-child{border-bottom:none}.budget-accordion-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s}.budget-accordion-header:hover{background:var(--bg-raised)}.budget-accordion-title{font-size:1.15rem;font-weight:700}.budget-accordion-header-right{display:flex;align-items:center;gap:14px}.budget-accordion-total{font-size:1.15rem;font-weight:700}.budget-accordion-chevron{font-size:.8rem;color:var(--text-dim);width:14px;text-align:center}.budget-accordion-body{padding:8px 24px 20px;border-top:1px solid var(--border-subtle)}.budget-accent-income{color:#a7c080}.budget-accent-fixed{color:#dbbc7f}.budget-accent-flex{color:#7fbbb3}.budget-accent-debt{color:#e69875}.budget-table{display:flex;flex-direction:column;gap:8px}.budget-table-head{display:grid;grid-template-columns:1fr 140px 28px;gap:6px;padding:0 2px 4px;border-bottom:1px solid var(--border-subtle);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.budget-table-row{display:grid;grid-template-columns:1fr 140px 28px;gap:6px;align-items:center}.budget-table-empty{color:var(--text-dim);font-size:.85rem;padding:6px 2px}.budget-input-name{padding:8px 10px;font-size:.88rem;min-width:0}.budget-amount-cell{display:flex;align-items:center;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;overflow:hidden}.budget-currency-symbol{padding:0 6px 0 10px;color:var(--text-secondary);font-size:.88rem;-webkit-user-select:none;user-select:none;flex-shrink:0}.budget-input-amount{flex:1;padding:8px 8px 8px 0;font-size:.88rem;background:transparent;border:none;outline:none;min-width:0;color:var(--text)}.budget-input-amount::-webkit-inner-spin-button,.budget-input-amount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.budget-remove-btn{background:transparent;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:4px;border-radius:6px;line-height:1;transition:color .15s,background .15s}.budget-remove-btn:hover{color:#e67e80;background:var(--bg-raised)}.budget-paid-btn{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);background:transparent;color:var(--text-dim);font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s,color .15s;flex-shrink:0;padding:0}.budget-paid-btn--on{background:#83c092;border-color:#83c092;color:#fff}.budget-paid-btn:hover:not(.budget-paid-btn--on){border-color:#83c092;color:#83c092}.budget-table-head--paid,.budget-table-row--paid{grid-template-columns:1fr 110px 36px 28px!important}.budget-col-paid-hd,.budget-col-tog-hd{text-align:center}.budget-table-head--expense,.budget-table-row--expense{grid-template-columns:1fr 84px 30px 30px 26px!important}.budget-table-head--active,.budget-table-row--active{grid-template-columns:1fr 104px 48px 26px!important}.budget-table-row--muted{opacity:.5}.budget-table-row--muted .budget-input-name{text-decoration:line-through}.budget-due-btn,.budget-active-btn{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);background:transparent;color:var(--text-dim);font-size:.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s,color .15s;flex-shrink:0;padding:0}.budget-due-btn{border-color:#83c092;color:#83c092}.budget-due-btn--off{border-color:var(--border);color:var(--text-dim)}.budget-due-btn:hover{border-color:#a7c080;color:#a7c080}.budget-active-btn--on{background:#7fbbb3;border-color:#7fbbb3;color:#fff}.budget-active-btn--off{background:transparent;border-color:var(--border);color:var(--text-dim)}.budget-active-btn:hover:not(.budget-active-btn--on){border-color:#7fbbb3;color:#7fbbb3}.budget-add-btn{margin-top:4px;padding:9px 14px;font-size:.83rem;border-radius:10px;align-self:flex-start;background:var(--bg-action);color:var(--text);border:1px solid var(--border);white-space:nowrap}.budget-add-btn:hover{background:var(--bg-action-hover)}.budget-sidebar-wrap{flex-shrink:0;position:sticky;top:12px}.budget-sidebar-toggle{display:flex;align-items:center;gap:8px;padding:11px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 2px 12px var(--shadow-sm);white-space:nowrap;transition:background .15s}.budget-sidebar-toggle:hover{background:var(--bg-raised)}.budget-sidebar-toggle-icon{font-size:1rem;line-height:1}.budget-sidebar-toggle-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.budget-sidebar{position:absolute;top:calc(100% + 10px);right:0;width:240px;z-index:20;display:flex;flex-direction:column;gap:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:14px;box-shadow:0 8px 28px #00000059}.budget-sb-item{width:100%;text-align:left;padding:8px 12px;border-radius:10px;border:none;background:transparent;color:var(--text);font-size:.88rem;cursor:pointer;transition:background .15s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.budget-sb-item:hover{background:var(--bg-raised)}.budget-sb-item--active{background:var(--bg-raised);font-weight:700;color:var(--text-heading)}.budget-sb-divider{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);padding:10px 12px 2px}.budget-sb-row{display:flex;align-items:center;gap:2px}.budget-sb-row .budget-sb-item{flex:1;min-width:0}.budget-sb-del{flex-shrink:0;width:24px;height:24px;border-radius:50%;border:none;background:transparent;color:var(--text-dim);font-size:1rem;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;transition:color .15s}.budget-sb-del:hover{color:#e67e80}.budget-sb-new-btn{margin-top:8px;width:100%;font-size:.8rem;padding:9px 12px;border-radius:10px;text-align:center}.budget-sb-form{display:flex;flex-direction:column;gap:8px;margin-top:8px}.budget-sb-input{font-size:.83rem;padding:8px 10px;width:100%;box-sizing:border-box}.budget-sb-actions{display:flex;gap:6px}.budget-sb-confirm,.budget-sb-cancel{flex:1;font-size:.8rem;padding:7px 8px;border-radius:8px;cursor:pointer;font-weight:600;border:1px solid var(--border)}.budget-sb-confirm{background:#a7c080;color:#1e2326;border-color:#a7c080}.budget-sb-confirm:hover{background:#83c092;border-color:#83c092}.budget-sb-cancel{background:transparent;color:var(--text)}.budget-sb-cancel:hover{background:var(--bg-raised)}.budget-sb-date-row{display:flex;flex-direction:column;gap:6px}.budget-sb-settings-btn{font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);padding-bottom:10px;margin-bottom:2px}@media(max-width:900px){.budget-outer{flex-direction:column-reverse;gap:20px}.budget-sidebar-wrap{width:100%;position:static}.budget-sidebar-toggle{width:100%;justify-content:center}.budget-sidebar{position:static;width:100%;margin-top:10px;box-sizing:border-box}.budget-sb-input{width:100%;box-sizing:border-box}}.budget-settings-desc{color:var(--text-secondary);font-size:.88rem;margin-bottom:4px}.budget-empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 24px;text-align:center}.budget-empty-icon{font-size:2.5rem}.budget-empty-title{font-size:1.3rem;font-weight:700;color:var(--text-heading)}.budget-empty-sub{font-size:.9rem;color:var(--text-secondary);line-height:1.5}.budget-period-list{display:flex;flex-direction:column;gap:8px}.budget-period-list-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;cursor:pointer;text-align:left;transition:background .15s}.budget-period-list-item:hover{background:var(--bg-raised)}.budget-period-list-name{font-size:1rem;font-weight:700;color:var(--text-heading)}.budget-period-list-dates{font-size:.8rem;color:var(--text-secondary)}.budget-period-dates{font-size:.82rem;color:var(--text-secondary);margin-top:2px}.budget-period-bills-section{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 2px 12px var(--shadow-sm)}.budget-period-bills-header{display:flex;align-items:center;justify-content:space-between}.budget-period-bills-title{font-size:1.1rem;font-weight:700}.budget-period-bills-total{font-size:1.1rem;font-weight:700;color:#dbbc7f}.budget-period-bills-hint{font-size:.78rem;color:var(--text-dim)}.budget-bills-list{display:flex;flex-direction:column;gap:8px}.budget-bill-row{display:grid;grid-template-columns:20px 1fr 100px 30px 30px auto auto auto 28px;gap:6px;align-items:center;overflow-x:auto}.budget-bill-row--dragging{opacity:.4}.budget-bill-drag-handle{color:var(--text-dim);font-size:1rem;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;text-align:center}.budget-bill-drag-handle:active{cursor:grabbing}.budget-date-group{display:flex;flex-direction:column;gap:2px;min-width:110px}.budget-date-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);white-space:nowrap}.budget-date-input{padding:6px 8px;font-size:.78rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-input);color:var(--text);width:100%;box-sizing:border-box}.budget-bill-pp-badge{background:var(--bg-raised);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:600;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.budget-bill-pp-badge:hover{background:#e67e8020;color:#e67e80;border-color:#e67e80}.budget-bill-unassigned{font-size:.75rem;color:var(--text-dim);font-style:italic;white-space:nowrap}.budget-pay-periods-list{display:flex;flex-direction:column;gap:14px}.budget-pay-period{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 2px 12px var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.budget-pay-period--drag-over{border-color:#dbbc7f;box-shadow:0 0 0 2px #dbbc7f40,0 2px 12px var(--shadow-sm)}.budget-pp-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;gap:12px;cursor:default}.budget-pp-header-left{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:8px}.budget-pp-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.budget-pp-name-input{font-size:1rem;font-weight:700;padding:6px 10px;border-radius:8px;min-width:120px;max-width:200px;color:var(--text-heading)}.budget-pp-dates-inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.budget-pp-date-input{padding:5px 8px;font-size:.8rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-input);color:var(--text)}.budget-pp-date-sep{color:var(--text-dim);font-size:.85rem}.budget-pp-summary-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.budget-pp-sum-item{display:flex;align-items:baseline;gap:4px;font-size:.82rem;font-weight:600;white-space:nowrap}.budget-pp-sum-lbl{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.budget-pp-cf{font-weight:700}.budget-pp-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-top:4px}.budget-pp-body{border-top:1px solid var(--border-subtle);padding:16px 20px;display:flex;flex-direction:column;gap:20px}.budget-pp-section{display:flex;flex-direction:column;gap:8px}.budget-pp-section-label{font-size:.88rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.budget-table-head--pp-expense,.budget-table-row--pp-expense{grid-template-columns:1fr 90px 30px 30px 100px 100px 26px!important}.budget-table-head--pp-income,.budget-table-row--pp-income{grid-template-columns:1fr 90px 48px 100px 100px 26px!important}.budget-date-input-sm{padding:5px 6px;font-size:.72rem;border-radius:7px;border:1px solid var(--border);background:var(--bg-input);color:var(--text);width:100%;box-sizing:border-box}.budget-date-input-sm:focus{outline:none;border-color:var(--text-secondary)}.budget-bill-name-cell{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.budget-bill-pin{font-size:.75rem;flex-shrink:0}.budget-bill-name-text{font-size:.88rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-add-pp-btn{width:100%;padding:12px;font-size:.85rem;border-radius:12px;text-align:center;background:var(--bg-action);border:1px dashed var(--border);color:var(--text-secondary)}.budget-add-pp-btn:hover{background:var(--bg-action-hover);color:var(--text)}@media(max-width:900px){.budget-bill-row{grid-template-columns:20px 1fr 90px 30px 30px auto 28px;gap:4px}.budget-table-head--pp-expense,.budget-table-row--pp-expense{grid-template-columns:1fr 80px 28px 28px 90px 90px 24px!important}.budget-table-head--pp-income,.budget-table-row--pp-income{grid-template-columns:1fr 80px 40px 90px 90px 24px!important}}@media(max-width:640px){.budget-bill-row{overflow-x:auto}.budget-pp-summary-row{gap:8px}.budget-pp-name-row{flex-direction:column;align-items:flex-start}}.habits-page{max-width:900px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:18px}.habits-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:10px}.habits-title{font-size:1.6rem;margin:0;color:var(--text-heading)}.habits-subtitle{font-size:.78rem;color:var(--text-dim);margin:4px 0 0}.habits-weeknav{display:flex;align-items:center;gap:6px}.habits-weeknav-btn{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:15px;cursor:pointer;padding:6px 12px}.habits-weeknav-btn:hover{background:var(--bg-raised-hover)}.habits-weeknav-range{font-size:.85rem;color:var(--text-soft);min-width:130px;text-align:center}.habits-journal-btn{font-size:.78rem}.habits-journal-btn.active{background:var(--bg-subtle);color:var(--text-heading);border-color:var(--text-dim)}.habits-weeknav-today{background:none;border:none;font-size:.78rem;color:var(--text-dim);cursor:pointer;text-decoration:underline;padding:4px}.habits-card{background:var(--bg-card);border-radius:18px;padding:20px;box-shadow:0 0 18px var(--shadow)}.fl-grid{display:grid;grid-template-columns:minmax(200px,1fr) repeat(7,32px) 56px 44px;align-items:center}.habits-obj-row .habits-row-name,.habits-kr-row .habits-row-name{grid-column:1 / -2}.habits-day-header{margin-bottom:6px}.habits-day-label,.habits-col-label{text-align:center;font-size:.72rem;color:var(--text-dim)}.habits-day-label.today{color:var(--text-heading);font-weight:700}.habits-obj{margin-top:14px}.habits-obj:first-of-type{margin-top:4px}.habits-obj-row{min-height:40px}.habits-kr-row{min-height:34px}.habits-habit-row{min-height:34px;border-bottom:1px solid var(--border-subtle)}.habits-row-name{display:flex;align-items:center;gap:4px;min-width:0}.habits-indent-1{padding-left:14px}.habits-indent-2{padding-left:34px}.habits-fold-btn{display:flex;align-items:center;gap:6px;background:none;border:none;padding:4px 0;cursor:pointer;text-align:left;color:var(--text);min-width:0}.habits-chevron{flex-shrink:0;transition:transform .15s ease}.habits-chevron.open{transform:rotate(90deg)}.habits-obj-name{font-size:.95rem;font-weight:700;overflow-wrap:break-word}.habits-kr-tag{font-size:.62rem;letter-spacing:.6px;font-weight:700;flex-shrink:0}.habits-kr-name{font-size:.85rem;color:var(--text-soft);overflow-wrap:break-word}.habits-habit-name{font-size:.83rem;color:var(--text);padding:4px 0;overflow-wrap:break-word}.habits-remove-btn{background:none;border:none;color:var(--text-ghost);font-size:14px;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0}.habits-remove-btn:hover{color:var(--red, #e67e80)}.habits-cell{display:flex;justify-content:center}.habits-circle{width:18px;height:18px;border-radius:50%;border:1.6px solid;cursor:pointer;padding:0}.habits-pct{text-align:center;font-size:.78rem}.habits-pct-dim{color:var(--text-secondary)}.habits-empty{font-size:.8rem;color:var(--text-dim);font-style:italic;margin:6px 0}.habits-add-slot{margin:6px 0 2px}.habits-add-objective{margin-top:18px;padding-top:12px;border-top:1px solid var(--border-subtle)}.habits-add-link{background:none;border:none;font-size:.78rem;cursor:pointer;padding:2px 0}.habits-add-obj-link{color:var(--text-soft);font-weight:700}.habits-add-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.habits-add-input{max-width:260px;font-size:.83rem}.habits-add-confirm{font-size:.78rem;padding:6px 12px}.habits-add-cancel{background:none;border:none;font-size:.75rem;color:var(--text-dim);cursor:pointer}.habits-trend-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.habits-trend-title{font-size:1rem;margin:0;color:var(--text-heading)}.habits-trend-select{font-size:.8rem;max-width:260px}.habits-trend-caption{font-size:.72rem;color:var(--text-dim);margin:6px 0 10px}.habits-footnote{font-size:.75rem;color:var(--text-fainter);font-style:italic;margin:0}.fl-journal-body:empty:before{content:attr(data-placeholder);opacity:.45;font-style:italic;pointer-events:none}.fl-journal-body h3{font-family:Georgia,serif;margin:.6em 0 .3em}.fl-journal-body blockquote{margin:.5em 0;padding-left:12px;border-left:3px solid currentColor;opacity:.85}@media(max-width:640px){.fl-grid{grid-template-columns:minmax(88px,1fr) repeat(7,26px) 36px}.fl-tally{display:none}.habits-circle{width:20px;height:20px}.habits-indent-1{padding-left:8px}.habits-indent-2{padding-left:18px}.habits-card{padding:14px 10px}.habits-obj-name{font-size:.88rem}.habits-kr-name{font-size:.8rem}.habits-habit-name{font-size:.78rem}}.bottom-nav,.bottom-nav-sheet-overlay{display:none}@media(max-width:640px){.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:250;background:var(--bg-card);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -4px 18px var(--shadow-sm)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--text-dim);font-size:.62rem;cursor:pointer;padding:4px 10px;border-radius:12px;min-width:56px}.bottom-nav-item.active{color:var(--text-heading);background:var(--bg-subtle)}.bottom-nav-item svg{width:22px;height:22px}.nav-bar{display:none}.dashboard{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.bottom-nav-sheet-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:240;background:var(--overlay)}.bottom-nav-sheet{position:fixed;left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:251;background:var(--bg-card);border:1px solid var(--border-modal);border-radius:16px;padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:6px;box-shadow:0 8px 30px var(--shadow-lg)}.bottom-nav-sheet-item{display:flex;align-items:center;gap:10px;background:none;border:none;color:var(--text-soft);font-size:.85rem;cursor:pointer;padding:12px;border-radius:12px;text-align:left}.bottom-nav-sheet-item.active{color:var(--text-heading);background:var(--bg-subtle)}.bottom-nav-sheet-item svg{width:18px;height:18px;flex-shrink:0}}.journal{display:flex;flex-direction:column}.journal-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:14px}.journal-topbar-actions{display:flex;gap:8px}.journal-link{background:none;border:none;color:var(--text-dim);font-size:.85rem;cursor:pointer;padding:4px 0}.journal-link:hover{color:var(--text)}.journal-btn{font-size:.82rem;font-weight:600;padding:7px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-soft);cursor:pointer;transition:background .15s,transform .1s}.journal-btn:hover{background:var(--bg-raised-hover);color:var(--text-heading)}.journal-btn:active{transform:scale(.97)}.journal-btn.primary{background:#4d9cff;border-color:#4d9cff;color:#111}.journal-btn.primary:hover{background:#72b5ff;color:#111}.journal-btn.danger{color:var(--red, #e67e80)}.journal-title-input{font-size:1.05rem;font-weight:700;margin-bottom:10px}.journal-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.journal-tool{min-width:34px;min-height:34px;padding:4px 8px;border-radius:9px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-soft);font-size:.9rem;cursor:pointer}.journal-tool:hover{background:var(--bg-raised-hover);color:var(--text-heading)}.journal-editor{display:flex;gap:14px;align-items:stretch}.journal-sidebar{width:220px;flex-shrink:0;align-self:flex-start;max-height:62vh;overflow-y:auto;background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:12px;box-sizing:border-box}.journal-sidebar-label{font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:0 0 8px}.journal-sidebar-empty{font-size:.8rem;font-style:italic;color:var(--text-dim);margin:0}.journal-chip{display:block;width:100%;box-sizing:border-box;text-align:left;padding:5px 9px;margin-bottom:5px;border-radius:8px;border:1px solid;background:transparent;font-size:.8rem;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-chip-stat{font-size:.7rem;opacity:.7}.journal-body{flex:1;min-width:0;min-height:52vh;padding:14px 16px;border-radius:12px;background:var(--bg-raised);border:1px solid var(--border);color:var(--text);font-size:.95rem;line-height:1.7;outline:none;overflow-y:auto}.journal-empty{font-size:.9rem;font-style:italic;color:var(--text-muted)}.journal-entry{border-bottom:1px solid var(--border-subtle);padding:12px 4px;cursor:pointer}.journal-entry-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.journal-entry-title{font-size:1rem;font-weight:700;color:var(--text-heading);min-width:0;overflow-wrap:anywhere}.journal-entry-meta{display:flex;align-items:baseline;gap:10px;flex-shrink:0}.journal-entry-date{font-size:.72rem;color:var(--text-dim);white-space:nowrap}.journal-delete{font-size:.9rem;color:var(--text-ghost);background:none;border:none;cursor:pointer;padding:0 2px;line-height:1}.journal-delete:hover{color:var(--red, #e67e80)}.journal-entry-snippet{font-size:.82rem;color:var(--text-muted);margin:4px 0 0;line-height:1.5}.journal-note{font-size:.75rem;font-style:italic;color:var(--text-fainter);margin-top:14px}@media(max-width:640px){.journal-editor{flex-direction:column}.journal-sidebar{width:100%;max-height:168px}.journal-body{min-height:44vh}}.admin-cal-error{color:var(--red, #e67e80);font-size:12px;padding:2px 0 6px 30px}@media(max-width:640px){.week-grid{display:flex;flex-direction:column;gap:8px}.week-column{display:grid;grid-template-columns:56px 1fr;column-gap:12px;align-items:start;padding:12px}.week-column-header{display:flex;flex-direction:column;align-items:center;gap:2px;border-bottom:none;padding-bottom:0;margin-bottom:0}.week-dow{font-size:.66rem}.week-date{font-size:.9rem;font-weight:700;text-align:center}.week-empty{padding:4px 0}.kanban-board{flex-direction:column;overflow-x:visible;scroll-snap-type:none;gap:12px}.kanban-column{flex:1 1 auto;width:100%;box-sizing:border-box}.admin-gear-btn{top:max(12px,env(safe-area-inset-top) + 8px);left:max(12px,env(safe-area-inset-left) + 8px);right:auto;bottom:auto}.header{padding-left:44px}}@media(max-width:640px){.modal-overlay{align-items:flex-end;padding:0;bottom:auto;height:100vh;height:100dvh}.modal{max-width:100%;width:100%;border-radius:22px 22px 0 0;border-left:none;border-right:none;border-bottom:none;padding:14px 18px calc(20px + env(safe-area-inset-bottom));max-height:88vh;max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;animation:modal-slide-up .28s cubic-bezier(.32,.72,0,1)}.modal:before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 6px;flex-shrink:0}}@keyframes modal-slide-up{0%{transform:translateY(100%)}to{transform:none}}.week-event-colored{border-left:3px solid var(--text-ghost)}.admin-cal-color{width:26px;height:26px;border-radius:8px;flex-shrink:0}@media(max-width:640px){.modal:before{cursor:grab}}
