.page.assistant-page{max-width:1040px}.page-header.assistant-header{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:12px}.assistant-header-actions{gap:6px;display:flex}.assistant-layout{align-items:start;gap:24px;display:grid}.conversation-list ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.conversation-list li{align-items:center;gap:2px;display:flex}.conversation-link{border-radius:var(--radius-sm);min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:8px 10px;font-size:.9rem;overflow:hidden}.conversation-link:hover{background:var(--surface-hover);color:var(--text-strong)}.conversation-link[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.conversation-delete{opacity:0;flex-shrink:0;width:30px;height:30px}.conversation-list li:hover .conversation-delete,.conversation-delete:focus-visible{opacity:1}@media (hover:none){.conversation-delete{opacity:1}}@media (width>=900px){.assistant-layout{grid-template-columns:220px minmax(0,1fr)}.btn.conversations-toggle{display:none}.conversation-list{position:sticky;top:16px}}@media (width<=899px){.conversation-list{display:none}.conversation-list.is-open{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px;display:block}}.chat{flex-direction:column;gap:16px;min-width:0;display:flex}.chat-thread{flex-direction:column;gap:18px;display:flex}.chat-message.is-user{align-self:flex-end;max-width:85%}.chat-bubble{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text-strong);white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 14px}.chat-markdown{color:var(--text);overflow-wrap:anywhere;line-height:1.6}.chat-markdown>*+*{margin-top:.7em}.chat-markdown p,.chat-markdown ul,.chat-markdown ol{margin:0}.chat-markdown ul,.chat-markdown ol{padding-left:1.3em}.chat-markdown li+li{margin-top:.25em}.chat-markdown strong,.chat-markdown h1,.chat-markdown h2,.chat-markdown h3{color:var(--text-strong)}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3{margin:1em 0 0;font-size:1rem}.chat-markdown a{color:var(--accent);text-decoration:underline}.chat-markdown code{background:var(--surface);border-radius:4px;padding:1px 5px;font-size:.9em}.chat-markdown table{border-collapse:collapse;max-width:100%;font-size:.9rem;display:block;overflow-x:auto}.chat-markdown th,.chat-markdown td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:6px 10px}.chat-markdown th{background:var(--surface);color:var(--text-strong)}.chat-status{color:var(--text-muted);font-size:.85rem;animation:1.4s ease-in-out infinite chat-pulse}@keyframes chat-pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.chat-status{animation:none}}.chat-empty{flex-direction:column;gap:10px;padding:24px 0 8px;display:flex}.chat-empty-title{color:var(--text-strong);font-size:1.05rem;font-weight:600}.chat-suggestions{flex-wrap:wrap;gap:8px;display:flex}.chat-suggestions .filter-chip{text-align:left;white-space:normal;flex-shrink:1;max-width:100%;min-height:34px;padding:6px 12px}.chat-composer{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 0 0 12px var(--bg);flex-direction:column;gap:6px;padding:10px 10px 8px 14px;display:flex;position:sticky;bottom:12px}.chat-composer:focus-within{border-color:var(--accent)}.chat-input textarea{resize:none;width:100%;color:var(--text-strong);font:inherit;background:0 0;border:none;outline:none;font-size:1rem}.chat-composer-bar{justify-content:space-between;align-items:center;gap:8px;display:flex}.chat-model select{border:1px solid var(--border);background:var(--bg);max-width:100%;min-height:30px;color:var(--text-muted);border-radius:999px;padding:0 8px;font-size:.82rem}.chat-model{min-width:0}.btn.chat-send{border-radius:999px;flex-shrink:0;width:36px;height:36px;padding:0}.chat-notice{font-size:.78rem}:root{--expense-refund:#4ade80;--expense-chart-height:200px}.expense-amount{font-variant-numeric:tabular-nums;color:var(--text-strong);flex-shrink:0;font-size:.9rem}.expense-amount.is-refund{color:var(--expense-refund)}.expense-title{overflow-wrap:anywhere}.expense-group-title,.expense-section-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.expense-result{color:var(--text-strong);font-size:.9rem}.expense-hint{margin-top:-4px;margin-bottom:8px}.expense-range{flex-direction:column;gap:10px;display:flex}.expense-range-months{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.expense-range-months input{width:100%;min-width:0}.expense-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;display:grid}.expense-kpis>div{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px 14px}.expense-kpis dt{color:var(--text-muted);font-size:.78rem}.expense-kpis dd{color:var(--text-strong);overflow-wrap:anywhere;margin:2px 0 0;font-size:1.15rem;font-weight:600}.expense-chart{flex-direction:column;gap:12px;margin:0;display:flex}.expense-chart-title{color:var(--text-strong);font-size:.95rem;font-weight:600}.expense-chart-body{gap:8px;padding-bottom:22px;display:flex}.expense-chart-axis{width:40px;height:var(--expense-chart-height);color:var(--text-faint);text-align:right;flex-shrink:0;font-size:.7rem;position:relative}.expense-chart-axis span{font-variant-numeric:tabular-nums;position:absolute;right:0;transform:translateY(50%)}.expense-chart-scroll{flex:1;min-width:0;margin:-28px -4px -22px;padding:28px 4px 22px;overflow-x:auto}.expense-chart-plot{height:var(--expense-chart-height);align-items:flex-end;gap:2px;display:flex;position:relative}.expense-chart-grid{background:var(--border);height:1px;position:absolute;left:0;right:0}.expense-chart-average{z-index:1;background:var(--text-faint);pointer-events:none;height:1px;position:absolute;left:0;right:0}.expense-chart-average span{background:var(--surface);color:var(--text-muted);border-radius:4px;padding:0 4px;font-size:.68rem;position:absolute;bottom:3px;right:0}.expense-chart-column{cursor:default;border-radius:4px;outline:none;flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.expense-chart-column:hover,.expense-chart-column:focus-visible{background:var(--surface-hover)}.expense-chart-column:focus-visible{box-shadow:0 0 0 2px var(--accent-ring)}.expense-chart-bar{background:var(--accent);border-radius:4px 4px 0 0;width:min(24px,70%);position:relative}.expense-chart-peak{white-space:nowrap;color:var(--text-strong);font-size:.7rem;font-weight:600;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.expense-chart-label{white-space:nowrap;color:var(--text-muted);font-size:.7rem;position:absolute;top:calc(100% + 6px)}.expense-chart-tooltip{z-index:2;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-sidebar);white-space:nowrap;color:var(--text);pointer-events:none;flex-direction:column;padding:6px 10px;font-size:.8rem;display:none;position:absolute;left:50%;transform:translate(-50%)}.expense-chart-tooltip strong{color:var(--text-strong);font-weight:600}.expense-chart-column:hover .expense-chart-tooltip,.expense-chart-column:focus-visible .expense-chart-tooltip{display:flex}.expense-chart-column:first-child .expense-chart-tooltip,.expense-chart-column:nth-child(2) .expense-chart-tooltip{left:0;transform:none}.expense-chart-column:last-child .expense-chart-tooltip,.expense-chart-column:nth-last-child(2) .expense-chart-tooltip{left:auto;right:0;transform:none}.expense-chart-table summary{cursor:pointer;color:var(--text-muted);font-size:.82rem}.expense-chart-table table{border-collapse:collapse;width:100%;margin-top:8px;font-size:.85rem}.expense-chart-table th,.expense-chart-table td{border-bottom:1px solid var(--border);text-align:left;padding:4px 0;font-weight:400}.expense-chart-table td{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-strong)}.expense-breakdown-row{border-radius:var(--radius-sm);width:100%;color:inherit;text-align:left;background:0 0;border:none;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 4px;display:grid}.expense-breakdown-row:hover{background:var(--surface-hover)}.expense-breakdown-row[aria-pressed=true] .expense-breakdown-name{color:var(--accent)}.expense-breakdown-name{color:var(--text-strong)}.expense-breakdown-value{font-variant-numeric:tabular-nums;color:var(--text-strong)}.expense-breakdown-track{background:var(--border);border-radius:999px;grid-column:1/-1;height:6px;overflow:hidden}.expense-breakdown-track span{background:var(--accent);border-radius:999px;height:100%;display:block}.expense-filters{grid-template-columns:1fr auto auto;align-items:center;gap:8px;display:grid}.expense-filters .filter-select{max-width:100%}.expense-row{gap:10px}.expense-main{text-align:left;color:inherit;background:0 0;border:none;padding:0}.expense-main:hover .expense-title{color:var(--accent)}.expense-category .filter-select{max-width:150px}.expense-form,.expense-rule-form{flex-direction:column;gap:14px;display:flex}.expense-check{color:var(--text-muted);align-items:center;gap:8px;font-size:.88rem;display:flex}.expense-check input{width:18px;height:18px;accent-color:var(--accent)}.expense-upload{flex-direction:column;gap:12px;display:flex}.expense-upload input[type=file]{min-height:auto;padding:10px;font-size:.9rem}.expense-preview{flex-direction:column;gap:12px;display:flex}.expense-preview-facts{color:var(--text-muted);flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}@media (width>=560px){.expense-rule-form{flex-direction:row;align-items:flex-end}.expense-rule-form .field{flex:1}}@media (width<=559px){.expense-kpis{grid-template-columns:1fr 1fr}.expense-kpis>div:last-child{grid-column:1/-1}.expense-filters{grid-template-columns:1fr 1fr}.expense-filters .field{grid-column:1/-1}.expense-row{flex-wrap:wrap}.expense-row .expense-main{flex:100%}.expense-row .expense-category{margin-right:auto}.expense-row .row-meta{white-space:normal}}:root{--gift-delivered:#4ade80;--gift-delivered-soft:#4ade801f}.gifts-page .filters+.filters{margin-top:-8px}.gifts-summary{color:var(--text-muted);flex-wrap:wrap;gap:4px 16px;font-size:.88rem;display:flex}.gift-group-title{justify-content:space-between;gap:12px;display:flex}.gift-row{gap:10px}.gift-main{text-align:left;color:inherit;background:0 0;border:none;padding:0}.gift-main:hover .gift-title{color:var(--accent)}.gift-title{overflow-wrap:anywhere}.gift-row.status-delivered .row-main,.gift-row.status-delivered .row-icon{opacity:.55}.gift-price{font-variant-numeric:tabular-nums;color:var(--text-strong);flex-shrink:0;font-size:.9rem}.gift-status{border:1px solid var(--border);background:var(--surface);min-width:84px;min-height:28px;color:var(--text-muted);border-radius:999px;flex-shrink:0;padding:0 10px;font-size:.75rem}.gift-status:hover{border-color:var(--border-strong);color:var(--text-strong)}.gift-status.status-bought{background:var(--accent-soft);color:var(--accent);border-color:#0000}.gift-status.status-delivered{background:var(--gift-delivered-soft);color:var(--gift-delivered);border-color:#0000}.gift-form{flex-direction:column;gap:14px;display:flex}.gift-form-row{gap:14px;display:grid}@media (width>=560px){.gift-form-row{grid-template-columns:1fr 1fr}}@media (width<=559px){.gift-row{flex-wrap:wrap}.gift-row .row-icon{display:none}.gift-row .gift-main{flex:100%}.gift-row .gift-price{margin-right:auto}.gift-row .row-meta{white-space:normal}}:root{--tag-amber:#f2a541;--tag-red:#f87171;--tag-green:#4ade80;--tag-blue:#60a5fa;--tag-violet:#a78bfa;--tag-pink:#f472b6;--tag-teal:#2dd4bf;--tag-gray:#a1a1aa;--priority-high:#f87171;--priority-medium:#f2a541;--priority-low:#60a5fa}.tag-amber{--tag:var(--tag-amber)}.tag-red{--tag:var(--tag-red)}.tag-green{--tag:var(--tag-green)}.tag-blue{--tag:var(--tag-blue)}.tag-violet{--tag:var(--tag-violet)}.tag-pink{--tag:var(--tag-pink)}.tag-teal{--tag:var(--tag-teal)}.tag-gray{--tag:var(--tag-gray)}.week{flex-direction:column;gap:12px;display:flex}.week-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.week-title{color:var(--text);font-size:1rem;font-weight:600}.week-controls{align-items:center;gap:4px;display:flex}.week-days{touch-action:pan-y;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;animation:.18s ease-out week-in;display:grid}@keyframes week-in{0%{opacity:.2;transform:translate(8px)}}.week-day{border-radius:var(--radius);background:var(--surface);color:var(--text-muted);border:1px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:10px 0 8px;transition:background .12s,border-color .12s,color .12s;display:flex}.week-day:hover{background:var(--surface-hover);color:var(--text-strong)}.week-day.is-past{color:var(--text-faint)}.week-day-name{text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.week-day-number{color:var(--text-strong);font-size:1.2rem;font-weight:650;line-height:1.2}.week-day.is-past .week-day-number{color:var(--text-muted)}.week-day.is-today{border-color:var(--border-strong)}.week-day.is-today .week-day-number{color:var(--accent)}.week-day.is-selected{background:var(--accent);border-color:var(--accent);color:#1a1206}.week-day.is-selected .week-day-number{color:#1a1206}.week-day-dots{gap:3px;height:5px;display:flex}.week-dot{background:var(--accent);border-radius:50%;width:5px;height:5px}.week-day.is-selected .week-dot{background:#1a1206}@media (width<=599px){.week-days{gap:4px}.week-day{padding:8px 0 6px}.week-day-number{font-size:1.05rem}}.day-section{flex-direction:column;gap:8px;display:flex}.day-heading{justify-content:space-between;align-items:baseline;gap:8px;padding-top:4px;display:flex}.day-title{color:var(--text-strong);font-size:1.15rem}.day-heading .muted{font-size:.85rem}.reminder-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.reminder-list>li+li{border-top:1px solid var(--border)}.reminder-item{flex-direction:column;display:flex}.reminder-row{border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:10px 8px 10px 12px;transition:background .12s;display:flex;position:relative}.reminder-row:hover{background:var(--surface-hover)}.reminder-row:before{content:"";background:0 0;border-radius:3px;width:3px;position:absolute;top:12px;bottom:12px;left:0}.reminder-row.priority-high:before{background:var(--priority-high)}.reminder-row.priority-medium:before{background:var(--priority-medium)}.reminder-row.priority-low:before{background:var(--priority-low)}.reminder-check{border:1.5px solid var(--text-faint);color:#1a1206;background:0 0;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;margin-top:1px;padding:0;transition:border-color .12s,background .12s;display:grid;position:relative}.reminder-check:hover{border-color:var(--accent)}.reminder-check[aria-checked=true]{border-color:var(--accent);background:var(--accent)}.reminder-check:after{content:"";position:absolute;inset:-10px}.reminder-main{text-align:left;background:0 0;border:none;flex-direction:column;flex:1;gap:4px;min-width:0;padding:0;display:flex}.reminder-title{color:var(--text-strong);overflow-wrap:anywhere;font-weight:500}.reminder-row.is-done .reminder-title{color:var(--text-faint);text-decoration:line-through}.reminder-row.is-done .reminder-meta{opacity:.6}.reminder-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.8rem;display:flex}.reminder-meta:empty{display:none}.meta-item{align-items:center;gap:4px;display:inline-flex}.priority-label.priority-high{color:var(--priority-high)}.priority-label.priority-medium{color:var(--priority-medium)}.priority-label.priority-low{color:var(--priority-low)}.reminder-notes{color:var(--text-muted);white-space:pre-line;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box;overflow:hidden}.move-today{align-self:flex-end;margin:-6px 8px 8px 0}.tag-chip{background:color-mix(in srgb, var(--tag) 14%, transparent);color:var(--tag);border-radius:999px;align-items:center;gap:5px;padding:1px 8px;font-size:.75rem;display:inline-flex}.tag-dot{background:var(--tag);border-radius:50%;flex-shrink:0;width:8px;height:8px}.tag-swatch{background:color-mix(in srgb, var(--tag) 14%, transparent)}.tag-swatch .tag-dot{width:10px;height:10px}.reminder-form{flex-direction:column;gap:14px;display:flex}.segment.priority-high[aria-checked=true]{color:var(--priority-high)}.segment.priority-medium[aria-checked=true]{color:var(--priority-medium)}.segment.priority-low[aria-checked=true]{color:var(--priority-low)}.tag-picker{flex-wrap:wrap;gap:6px;display:flex}.tag-option{border:1px solid var(--border-strong);min-height:32px;color:var(--text-muted);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.85rem;display:inline-flex}.tag-option:hover{color:var(--text-strong)}.tag-option[aria-pressed=true]{background:color-mix(in srgb, var(--tag) 18%, transparent);color:var(--tag);border-color:#0000}.tag-option.add{border-style:dashed}.tag-create{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:10px;margin-top:10px;padding:12px;display:flex}.tag-create input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);min-height:40px;color:var(--text-strong);padding:8px 12px}.tag-create-actions{justify-content:flex-end;gap:6px;display:flex}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{background:var(--tag);width:26px;height:26px;box-shadow:inset 0 0 0 2px var(--bg-sidebar);border:2px solid #0000;border-radius:50%;padding:0}.color-swatch[aria-checked=true]{border-color:var(--text-strong)}@media (prefers-reduced-motion:reduce){.week-days{animation:none}}:root{--status-caught-up:#4ade80}.search-field{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);min-height:42px;color:var(--text-faint);align-items:center;gap:8px;padding:0 12px;display:flex}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-field input{min-width:0;color:var(--text-strong);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.filter-separator{background:var(--border);flex-shrink:0;width:1px;margin:4px}.title-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.title-list>li+li{border-top:1px solid var(--border)}.title-row{border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:12px 8px;transition:background .12s;display:flex}.title-row:hover{background:var(--surface-hover)}.title-icon{background:var(--surface);width:36px;height:36px;color:var(--text-muted);border-radius:9px;flex-shrink:0;place-items:center;display:inline-grid}.title-row.status-watching .title-icon{background:var(--accent-soft);color:var(--accent)}.title-row.status-abandoned .title-body,.title-row.status-abandoned .title-icon{opacity:.55}.title-body{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.title-main{text-align:left;background:0 0;border:none;flex-direction:column;gap:3px;padding:0;display:flex}.title-name{color:var(--text-strong);overflow-wrap:anywhere;font-weight:550}.title-meta{color:var(--text-muted);flex-wrap:wrap;gap:2px 10px;font-size:.8rem;display:flex}.title-premiere{color:var(--accent)}.title-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.status-badge{white-space:nowrap;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.72rem}.status-badge.status-watching{color:var(--accent);background:var(--accent-soft);border-color:#0000}.status-badge.status-caught_up{color:var(--status-caught-up);background:color-mix(in srgb, var(--status-caught-up) 12%, transparent);border-color:#0000}.status-badge.status-abandoned{color:var(--text-faint)}.season-chips{flex-wrap:wrap;gap:6px;display:flex}.season-chip{border:1px solid var(--border-strong);min-width:40px;min-height:30px;color:var(--text-muted);background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:3px;padding:0 10px;font-size:.8rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.season-chip:hover{color:var(--text-strong);border-color:var(--text-faint)}.season-chip.is-upcoming{border-style:dashed}.season-chip.season-watching{border-color:var(--accent);color:var(--accent)}.season-chip.season-watched{background:var(--accent);color:#1a1206;border-color:#0000}.title-form{flex-direction:column;gap:14px;display:flex}.season-editor{flex-direction:column;gap:8px;margin:0 0 4px;padding:0;list-style:none;display:flex}.season-edit-row{grid-template-columns:76px minmax(0,1fr) minmax(0,120px) 36px;align-items:center;gap:8px;display:grid}.season-edit-row input,.season-edit-row select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);min-width:0;min-height:40px;color:var(--text-strong);padding:6px 10px}.season-number{color:var(--text-muted);align-items:center;gap:4px;font-weight:600;display:flex}.season-number input{width:100%}.checkbox-field{color:var(--text-muted);align-items:center;gap:8px;margin-top:6px;font-size:.9rem;display:inline-flex}.checkbox-field input{width:18px;height:18px;accent-color:var(--accent)}@media (width<=599px){.season-edit-row{grid-template-columns:70px minmax(0,1fr) 36px}.season-edit-row select{grid-column:2}}.premiere-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.premiere-row{border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:14px;width:100%;padding:8px;display:flex}.premiere-row:hover{background:var(--surface-hover)}.premiere-date{background:var(--surface);width:44px;height:44px;color:var(--text-strong);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.premiere-date.is-today{background:var(--accent);color:#1a1206}.premiere-date.is-undated{color:var(--text-faint)}.premiere-day{font-size:1.1rem;font-weight:700}.premiere-main{flex-direction:column;gap:2px;min-width:0;display:flex}.premiere-name{color:var(--text-strong);align-items:center;gap:8px;font-weight:550;display:inline-flex}.premiere-season{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 7px;font-size:.72rem}.premiere-meta{color:var(--text-muted);align-items:center;gap:5px;font-size:.8rem;display:inline-flex}.restore-list{flex-wrap:wrap;gap:6px;display:flex}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0b;--bg-sidebar:#111113;--surface:#18181b;--surface-hover:#1c1c20;--border:#26262b;--border-strong:#34343b;--text:#d4d4d8;--text-strong:#f4f4f5;--text-muted:#8b8b94;--text-faint:#5c5c66;--accent:#f2a541;--accent-strong:#f7b863;--accent-soft:#f2a5411f;--accent-ring:#f2a54173;--danger:#f87171;--danger-soft:#f871711f;--radius-sm:6px;--radius:10px;--radius-lg:14px;--sidebar-width:248px;--topbar-height:52px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0;overflow:hidden}h1,h2,p{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}::selection{background:var(--accent-soft);color:var(--text-strong)}.muted{color:var(--text-muted)}.stack{flex-direction:column;gap:16px;display:flex}.app-shell{width:100%;height:100dvh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);padding:max(12px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));flex-direction:column;flex-shrink:0;display:flex}.sidebar-header{justify-content:space-between;align-items:center;padding:0 4px 12px 6px;display:flex}.brand{color:var(--text-strong);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:650;display:inline-flex}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav-section{flex-direction:column;gap:2px;margin-top:18px;display:flex}.nav-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:0 10px 6px;font-size:.72rem;font-weight:600}.nav-item{border-radius:var(--radius-sm);min-height:36px;color:var(--text-muted);align-items:center;gap:10px;padding:0 10px;font-size:.93rem;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--surface-hover);color:var(--text-strong)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:550}.nav-icon{flex-shrink:0}.sidebar-footer{border-top:1px solid var(--border);padding-top:8px}.icon-button{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-muted);background:0 0;border:none;place-items:center;display:inline-grid}.icon-button:hover{background:var(--surface-hover);color:var(--text-strong)}.main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.content{padding:0 max(20px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));flex:1;overflow-y:auto}.show-sidebar{z-index:5;position:absolute;top:12px;left:12px}.topbar,.drawer-overlay{display:none}@media (width>=900px){.app-shell.is-collapsed .sidebar{display:none}}@media (width<=899px){.topbar{min-height:calc(var(--topbar-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0 max(8px, env(safe-area-inset-left));background:color-mix(in srgb, var(--bg) 88%, transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0;align-items:center;gap:8px;display:flex}.show-sidebar{display:none}.sidebar{z-index:30;visibility:hidden;width:min(84vw,300px);transition:transform .2s,visibility .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:0 0 40px #0009}.app-shell.is-drawer-open .sidebar{visibility:visible;transform:none}.drawer-overlay{z-index:20;opacity:0;pointer-events:none;background:#0009;transition:opacity .2s;display:block;position:fixed;inset:0}.app-shell.is-drawer-open .drawer-overlay{opacity:1;pointer-events:auto}.nav-item{min-height:42px}}@media (prefers-reduced-motion:reduce){.sidebar,.drawer-overlay{transition:none}}.user-menu{position:relative}.user-button{border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:6px 8px;display:flex}.user-button:hover,.user-button[aria-expanded=true]{background:var(--surface-hover)}.user-text{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.user-name{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.user-role{color:var(--text-faint);font-size:.75rem}.user-more{color:var(--text-faint)}.menu{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:4px;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 12px 32px #00000080}.menu-item{border-radius:var(--radius-sm);width:100%;min-height:38px;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:0 10px;display:flex}.menu-item:hover{background:var(--accent-soft);color:var(--accent)}.avatar{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);letter-spacing:.02em;border-radius:8px;flex-shrink:0;place-items:center;font-size:.72rem;font-weight:700;display:inline-grid}.page{flex-direction:column;gap:20px;max-width:720px;margin:0 auto;padding-top:clamp(24px,7vh,64px);display:flex}.page-header{flex-direction:column;gap:4px;display:flex}.page-title{letter-spacing:-.02em;color:var(--text-strong);font-size:clamp(1.6rem,4vw,1.85rem);font-weight:700}.page-subtitle{color:var(--text-muted)}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:8px;font-size:.75rem;font-weight:600}.empty{color:var(--text-faint);padding:12px 0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list>li+li{border-top:1px solid var(--border)}.list-row{border-radius:var(--radius-sm);align-items:center;gap:12px;min-height:56px;padding:8px 10px;transition:background .12s;display:flex}.list-row:hover{background:var(--surface-hover)}.list-row.is-muted .row-main,.list-row.is-muted .avatar{opacity:.5}.link-row:hover .row-title,.link-row:hover .row-icon{color:var(--accent)}.row-icon{background:var(--surface);width:32px;height:32px;color:var(--text-muted);border-radius:8px;flex-shrink:0;place-items:center;display:inline-grid}.row-main{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.row-title{color:var(--text-strong);align-items:center;gap:8px;font-weight:500;display:inline-flex}.row-meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.row-tag{color:var(--text-faint);font-size:.7rem;font-weight:500}.row-chevron{color:var(--text-faint)}.row-actions{opacity:0;gap:4px;transition:opacity .12s;display:flex}.list-row:hover .row-actions,.list-row:focus-within .row-actions{opacity:1}@media (hover:none){.row-actions{opacity:1}}@media (width<=599px){.list-row{flex-wrap:wrap}.row-actions{width:100%;margin-top:-6px;padding-left:40px}}.badges{flex-wrap:wrap;gap:6px;display:flex}.badge{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:.72rem}.badge.accent{color:var(--accent);background:var(--accent-soft);border-color:#0000}.badge.danger{color:var(--danger);background:var(--danger-soft);border-color:#0000}.btn{border-radius:var(--radius-sm);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-weight:550;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:progress}.btn.primary{background:var(--accent);color:#1a1206}.btn.primary:hover:not(:disabled){background:var(--accent-strong)}.btn.ghost{color:var(--text-muted);background:0 0}.btn.ghost:hover{background:var(--surface);color:var(--text-strong)}.btn.ghost.danger:hover{background:var(--danger-soft);color:var(--danger)}.btn.small{min-height:32px;padding:0 10px;font-size:.85rem}.btn.block{width:100%}.inline-add{border-radius:var(--radius-sm);min-height:36px;color:var(--text-muted);background:0 0;border:none;align-self:flex-start;align-items:center;gap:8px;margin-left:-10px;padding:0 10px;display:inline-flex}.inline-add svg{color:var(--accent)}.inline-add:hover{background:var(--surface-hover);color:var(--text-strong)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.panel-title{color:var(--text-strong);font-size:1rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.form-grid>.panel-title,.span-all{grid-column:1/-1}.form-actions{justify-content:flex-end;gap:8px;display:flex}.field{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.85rem;font-weight:500;display:flex}.field input,.field select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);min-height:42px;color:var(--text-strong);padding:8px 12px;font-size:1rem}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.error{color:var(--danger);font-size:.9rem}.auth-screen{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));background:radial-gradient(ellipse 60% 40% at 50% 0%, #f2a54114, transparent 70%), var(--bg);place-items:center;display:grid;overflow-y:auto}.auth-card{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:28px 24px}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-bottom:8px;display:flex}.auth-brand h1{color:var(--text-strong);letter-spacing:-.01em;font-size:1.35rem}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-item.parent-active{color:var(--text-strong)}.nav-group-header{align-items:center;gap:2px;display:flex}.nav-group-header .nav-item{flex:1;min-width:0}.nav-toggle{flex-shrink:0;width:28px;height:28px}.nav-toggle svg{transition:transform .12s}.nav-toggle[aria-expanded=true] svg{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.nav-toggle svg{transition:none}}.nav-children{border-left:1px solid var(--border);flex-direction:column;gap:2px;margin-left:18px;padding-left:8px;display:flex}.nav-children .nav-item{min-height:32px;font-size:.88rem}.nav-children .nav-icon{width:16px;height:16px}.dialog{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-sidebar);width:min(560px,100vw - 32px);max-height:min(88dvh,820px);color:var(--text);margin:auto;padding:0;box-shadow:0 24px 64px #0009}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000a6}.dialog[open]{animation:.16s ease-out dialog-in}.dialog-panel{padding:18px 20px max(20px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;display:flex}.dialog-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.dialog-header h2{color:var(--text-strong);font-size:1.1rem}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (width<=599px){.dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;width:100vw;max-width:100vw;max-height:92dvh;margin:auto 0 0}@keyframes dialog-in{0%{transform:translateY(40px)}}}@media (prefers-reduced-motion:reduce){.dialog[open]{animation:none}}.fab{display:none}@media (width<=599px){.inline-add.add-desktop{display:none}.page{padding-bottom:88px}.fab{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));z-index:10;background:var(--accent);color:#1a1206;border:none;border-radius:18px;place-items:center;width:56px;height:56px;display:grid;position:fixed;box-shadow:0 10px 28px #0000008c}}.filters{scrollbar-width:none;gap:6px;margin:0 -20px;padding:0 20px;display:flex;overflow-x:auto}.filter-chip,.filter-select{border:1px solid var(--border);min-height:32px;color:var(--text-muted);background:0 0;border-radius:999px;flex-shrink:0;padding:0 12px;font-size:.85rem}.filter-chip:hover,.filter-select:hover{color:var(--text-strong);border-color:var(--border-strong)}.filter-chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:#0000}.filter-select{background:var(--bg)}.field textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);min-height:72px;color:var(--text-strong);font:inherit;resize:vertical;padding:8px 12px}.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}fieldset.field{border:none;min-width:0;margin:0;padding:0}fieldset.field legend{margin-bottom:6px;padding:0}.hint{color:var(--text-faint);margin-top:-6px;font-size:.8rem}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);flex-wrap:wrap;gap:4px;padding:3px;display:flex}.segment{min-height:34px;color:var(--text-muted);background:0 0;border:none;border-radius:5px;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:.88rem;display:inline-flex}.segment:hover{color:var(--text-strong)}.segment[aria-checked=true]{background:var(--surface-hover);color:var(--text-strong)}.dialog-actions{flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;display:flex}.dialog-actions .spacer{flex:1}.grouped-list{flex-direction:column;gap:20px;display:flex}.group-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:4px;font-size:.8rem;font-weight:600}
