*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #0A0A0A;--ink-soft: #2A2A2A;--ink-muted: #6B6B6B;--ink-faint: #9A9A9A;--paper: #FFFFFF;--bone: #F5F1E8;--bone-warm: #EDE8DC;--bone-soft: #FAF7F0;--rule: #E5DFD0;--rule-soft: #F0EBE0;--oxblood: #8B1A1A;--oxblood-tint: #F5E4E4;--navy: #1B2A4A;--navy-tint: #E4E8F0;--charcoal: #1E1E2E;--charcoal-tint: #E8E8EC;--emerald: #1F4D3F;--emerald-tint: #E4F0EB;--gold: #9A7B2F;--gold-tint: #F5F0E0;--amber: #C77A2C;--on-accent: #FFFFFF;--accent-ink: var(--accent);--sidebar-ink: #0A0A0A;--timer-bg: #0A0A0A;--timer-text: #F5F1E8;--accent: var(--oxblood);--accent-tint: var(--oxblood-tint);--sidebar-bg: var(--ink);--sidebar-text: #C8C2B4;--sidebar-text-active: #F5F1E8;--sidebar-accent: var(--oxblood);--topbar-bg: var(--bone);--font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.06);--shadow-lg: 0 12px 40px rgba(0,0,0,.06);--scrim: rgba(0,0,0,.5);--t-fast: .15s ease;--t-med: .25s ease;--wash: rgba(139,26,26,.05);color-scheme:light}body.portal-firm{--accent: var(--oxblood);--accent-tint: var(--oxblood-tint);--sidebar-bg: #0F0F0F;--sidebar-accent: var(--oxblood)}body.portal-client{--accent: var(--navy);--accent-tint: var(--navy-tint);--sidebar-bg: #0F1624;--sidebar-accent: #3B6EBF;--sidebar-text: #8B9AB8;--sidebar-text-active: #E4E8F0;--topbar-bg: #F8F9FC;--wash: rgba(27,42,74,.06)}body.portal-admin{--accent: #6C3FA0;--accent-tint: #F0E8F8;--sidebar-bg: #121218;--sidebar-accent: #8B5FD0;--sidebar-text: #9494A8;--sidebar-text-active: #E8E8F0;--topbar-bg: #F4F4F8;--wash: rgba(108,63,160,.06)}html{font-size:14px;-webkit-font-smoothing:antialiased}body{--accent-ink: var(--accent);font-family:var(--font-body);color:var(--ink);background:var(--bone);line-height:1.5;min-height:100vh}a{color:var(--accent-ink);text-decoration:none}a:hover{opacity:.85}hr.divider{border:none;border-top:1px solid var(--rule);margin:var(--space-4) 0}code{font-family:var(--font-mono);font-size:.9em}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.app{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto;transition:transform var(--t-med)}.sidebar-brand{padding:var(--space-5) var(--space-5) var(--space-3);font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.02em;color:var(--sidebar-text-active)}.sidebar-brand .accent{color:var(--sidebar-accent);font-style:italic}.sidebar-ctx{padding:0 var(--space-5) var(--space-3);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--sidebar-accent);font-weight:700}.sidebar-label{padding:var(--space-4) var(--space-5) var(--space-2);font-size:10px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:var(--sidebar-text);opacity:.5}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:8px var(--space-5);color:var(--sidebar-text);text-decoration:none;font-size:13px;font-weight:400;border-left:3px solid transparent;transition:all var(--t-fast);cursor:pointer;background:none;border-top:0;border-right:0;border-bottom:0;width:100%;text-align:left}.nav-item:hover{color:var(--sidebar-text-active);background:#ffffff0a}.nav-item.active{color:var(--sidebar-text-active);background:#ffffff14;border-left-color:var(--sidebar-accent);font-weight:600}.nav-item .icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.nav-item .badge{margin-left:auto;background:var(--sidebar-accent);color:var(--sidebar-text-active);font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px;min-width:20px;text-align:center}.sidebar-footer{margin-top:auto;padding:var(--space-4) var(--space-5);border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:var(--space-3);position:relative}.sidebar-footer .avatar{width:32px;height:32px;border-radius:50%;background:var(--sidebar-accent);color:var(--sidebar-text-active);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:12px;font-weight:600;font-style:italic;flex-shrink:0}.sidebar-footer .user-info{font-size:12px;line-height:1.3;min-width:0;flex:1}.sidebar-footer .user-name{font-weight:600;color:var(--sidebar-text-active);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .user-role{opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .me-btn{position:absolute;top:0;right:0;bottom:0;left:0;background:none;border:0;cursor:pointer}.sidebar-footer .me-btn:hover{background:#ffffff0a}.me-menu{position:absolute;bottom:calc(100% + 4px);left:var(--space-3);right:var(--space-3);background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-1) 0;z-index:5}.me-menu button,.me-menu a{display:block;width:100%;text-align:left;padding:8px var(--space-4);font-size:13px;background:none;border:0;color:var(--ink);cursor:pointer}.me-menu button:hover,.me-menu a:hover{background:var(--bone-soft);opacity:1}.me-menu .sep{border-top:1px solid var(--rule-soft);margin:var(--space-1) 0}.main{flex:1;margin-left:240px;display:flex;flex-direction:column;min-height:100vh;background:var(--bone);min-width:0}.topbar{background:var(--topbar-bg);border-bottom:1px solid var(--rule);padding:0 var(--space-6);height:56px;display:flex;align-items:center;gap:var(--space-4);position:sticky;top:0;z-index:50}.topbar .search{flex:1;max-width:480px;display:flex;align-items:center;gap:var(--space-2);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:0 var(--space-3);height:36px}.topbar .search input{border:none;background:none;font-family:var(--font-body);font-size:13px;color:var(--ink);flex:1;outline:none;min-width:0}.topbar .search input::placeholder{color:var(--ink-faint)}.topbar .search-icon{width:16px;height:16px;stroke:var(--ink-faint);fill:none;stroke-width:2;flex-shrink:0}.topbar-title{font-family:var(--font-display);font-size:16px;color:var(--ink-soft)}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.icon-btn{width:36px;height:36px;border:none;background:none;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:var(--ink-muted);transition:all var(--t-fast);text-decoration:none}.icon-btn:hover{background:var(--bone-warm);color:var(--ink)}.icon-btn .dot{position:absolute;top:7px;right:7px;width:7px;height:7px;background:var(--accent);border-radius:50%;border:2px solid var(--topbar-bg)}.menu-toggle{display:none;width:36px;height:36px;border:none;background:none;cursor:pointer;color:var(--ink)}.page{padding:var(--space-6);flex:1}.page-title{font-family:var(--font-display);font-size:36px;font-weight:400;letter-spacing:-.025em;line-height:1.1;margin-bottom:var(--space-2)}.page-subtitle{color:var(--ink-muted);font-size:14px;line-height:1.55}.page-header{margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap}.page-header.flush{border-bottom:none;padding-bottom:0;margin-bottom:var(--space-3)}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:var(--ink-muted);margin-bottom:var(--space-2)}.eyebrow-accent{color:var(--accent-ink)}.text-muted{color:var(--ink-muted)}.text-faint{color:var(--ink-faint)}.serif-num{font-family:var(--font-display);letter-spacing:-.02em}.serif-num .unit{font-size:14px;color:var(--ink-muted);font-family:var(--font-body);margin-left:2px}.mono{font-family:var(--font-mono)}.crumbs{font-size:12px;color:var(--ink-faint);margin-bottom:var(--space-4);display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.crumbs a,.crumbs button{color:var(--ink-faint);background:none;border:0;cursor:pointer;font-size:12px;padding:0}.crumbs .here{color:var(--ink)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius-lg);margin-bottom:var(--space-5);overflow:hidden}.stat{background:var(--paper);padding:var(--space-5)}.stat-value{font-family:var(--font-display);font-size:36px;font-weight:300;letter-spacing:-.03em;line-height:1;margin:var(--space-2) 0}.stat-value .currency{font-size:20px;vertical-align:top;margin-right:2px;color:var(--ink-muted)}.stat-value .unit{font-size:16px;color:var(--ink-muted);font-weight:400}.stat-value.pending{color:var(--ink-faint)}.stat-meta{font-size:12px;color:var(--ink-faint);display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.delta{font-weight:600;padding:1px 6px;border-radius:4px;font-size:11px}.delta-up{background:var(--emerald-tint);color:var(--emerald)}.delta-down{background:var(--oxblood-tint);color:var(--oxblood)}.delta-flat{background:var(--bone-warm);color:var(--ink-muted)}.card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);margin-bottom:var(--space-4);overflow:hidden}.card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--rule-soft);gap:var(--space-3)}.card-title{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.01em}.card-sub{font-size:12px;color:var(--ink-faint);margin-top:2px}.card-body{padding:var(--space-5)}.card-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);border-top:1px solid var(--rule-soft);background:var(--bone-soft);gap:var(--space-3)}.card.accent-left{border-left:3px solid var(--accent)}.card.ok-left{border-left:3px solid var(--emerald)}.card.gold-note{background:var(--gold-tint);border-left:3px solid var(--gold)}.card.gold-note .eyebrow{color:var(--gold)}.table-wrap{border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;overflow-x:auto;background:var(--paper);margin-bottom:var(--space-4)}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data thead{background:var(--bone-soft)}table.data th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--ink-muted);padding:var(--space-2) var(--space-4);white-space:nowrap}table.data td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--rule-soft);vertical-align:top}table.data tbody tr{transition:background var(--t-fast)}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover{background:var(--bone-soft)}table.data .num{text-align:right;font-feature-settings:"tnum"}table.data .primary{font-weight:600;display:block}table.data .secondary{font-size:11px;color:var(--ink-faint);display:block;margin-top:1px}table.data td.label{color:var(--ink-faint);width:140px}table.data.kv td{vertical-align:top}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px 16px;border-radius:var(--radius);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--rule);background:var(--paper);color:var(--ink);transition:all var(--t-fast);text-decoration:none;white-space:nowrap;line-height:1.3}.btn:hover{border-color:var(--ink);opacity:1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{border-color:var(--rule)}.btn-accent{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn-accent:hover{opacity:.9;border-color:var(--accent)}.btn-accent:disabled:hover{border-color:var(--accent)}.btn-ghost{background:transparent}.btn-text{background:none;border:none;color:var(--accent-ink);padding:4px 8px}.btn-text:hover{text-decoration:underline}.btn-danger{color:var(--oxblood)}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{padding:12px 24px;font-size:14px}.btn-block{width:100%}.linkbtn{background:none;border:0;color:var(--ink-muted);cursor:pointer;font-size:13px;padding:0}.linkbtn:hover{color:var(--ink);text-decoration:underline}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4)}.form-grid .full{grid-column:1 / -1}.field{margin-bottom:var(--space-4)}.form-grid .field{margin-bottom:0}.field-label{display:block;font-size:12px;font-weight:600;margin-bottom:var(--space-1);color:var(--ink-soft)}.field-input,.field-select,.field-textarea{width:100%;padding:8px 12px;border:1px solid var(--rule);border-radius:var(--radius);font-family:var(--font-body);font-size:13px;color:var(--ink);background:var(--paper);transition:border-color var(--t-fast)}.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:var(--accent-ink);outline:none}.field-input:disabled{background:var(--bone-soft);color:var(--ink-muted)}.field-input.invalid,.field-select.invalid{border-color:var(--oxblood)}.field-textarea{min-height:80px;resize:vertical}.field-help{font-size:11px;color:var(--ink-faint);margin-top:4px;line-height:1.4}.field-error{font-size:11px;color:var(--oxblood);margin-top:4px;line-height:1.4}.field-ok{font-size:11px;color:var(--emerald);margin-top:4px}.field-input.mono{font-family:var(--font-mono)}.field-input.upper{text-transform:uppercase}.suffix-group{display:flex;align-items:stretch}.suffix-group .field-input{border-radius:var(--radius) 0 0 var(--radius);border-right:none}.suffix-group .suffix{background:var(--bone-warm);border:1px solid var(--rule);border-left:none;padding:0 var(--space-3);display:flex;align-items:center;font-size:13px;color:var(--ink-muted);border-radius:0 var(--radius) var(--radius) 0;font-family:var(--font-mono);white-space:nowrap}.money-input{position:relative;width:110px}.money-input span{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:13px}.money-input .field-input{padding-left:22px;text-align:right}.split-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.check{display:flex;gap:var(--space-2);align-items:flex-start;font-size:13px;cursor:pointer}.check input{margin-top:3px;accent-color:var(--accent)}.radio-card{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border:1px solid var(--rule);border-radius:var(--radius);cursor:pointer;background:var(--paper)}.radio-card.on{border-color:var(--accent-ink);background:var(--accent-tint)}.radio-card input{margin-top:3px;accent-color:var(--accent)}.radio-card strong{display:block;font-size:13px}.radio-card span{font-size:12px;color:var(--ink-muted)}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 10px;border-radius:100px;white-space:nowrap}.pill-active,.pill-paid{background:var(--emerald-tint);color:var(--emerald)}.pill-pending{background:var(--gold-tint);color:var(--gold)}.pill-overdue{background:var(--oxblood-tint);color:var(--oxblood)}.pill-muted{background:var(--bone-warm);color:var(--ink-muted)}.pill-operator{background:#f0e8f8;color:#6c3fa0}.tag{display:inline-block;font-size:11px;padding:2px 8px;border:1px solid var(--rule);border-radius:var(--radius-sm);white-space:nowrap}.tag-op{background:#6c3fa01a;color:#6c3fa0;border-color:transparent}.tag-ok{background:var(--emerald-tint);color:var(--emerald);border-color:transparent}.tag-gold{background:var(--gold-tint);color:var(--gold);border-color:transparent}.filter-chip{display:inline-flex;align-items:center;padding:6px 14px;border:1px solid var(--rule);border-radius:100px;font-size:12px;font-weight:500;cursor:pointer;transition:all var(--t-fast);text-decoration:none;color:var(--ink);background:var(--paper)}.filter-chip:hover{border-color:var(--ink)}.filter-chip.active{background:var(--ink);color:var(--bone);border-color:var(--ink)}.filter-chip .n{opacity:.6;margin-left:4px}.tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:var(--space-5);flex-wrap:wrap}.tab{padding:var(--space-3) var(--space-4);border:none;background:none;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--ink-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--t-fast);white-space:nowrap}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent-ink);border-bottom-color:var(--accent-ink);font-weight:600}.tab .count{font-size:10px;background:var(--accent);color:var(--on-accent);padding:1px 6px;border-radius:8px;margin-left:4px}.tab .count.soft{background:var(--bone-warm);color:var(--ink-muted)}.toolbar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap}.avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:11px;font-weight:600;font-style:italic;flex-shrink:0}.avatar.sm{width:28px;height:28px;font-size:11px}.avatar.c1{background:var(--emerald)}.avatar.c2{background:var(--gold)}.avatar.c3{background:var(--navy)}.avatar.c4{background:var(--ink-muted);color:var(--bone)}.firm-mark{width:48px;height:48px;border-radius:8px;background:var(--bone-warm);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-style:italic;font-size:20px;font-weight:500;flex-shrink:0}.row{display:flex;align-items:center;gap:var(--space-3)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.col{display:flex;flex-direction:column}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.grid-main-side{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-5);align-items:start}.wrap{flex-wrap:wrap}.list-row{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--rule-soft);display:flex;gap:var(--space-3);align-items:flex-start}.list-row:last-child{border-bottom:none}.list-row .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:6px;flex-shrink:0}.list-row .dot.ok{background:var(--emerald)}.list-row .dot.faint{background:var(--ink-faint)}.list-row .what{font-size:13px}.list-row .meta{font-size:11px;color:var(--ink-faint)}.rate-row{padding:var(--space-3) 0;border-bottom:1px solid var(--rule-soft);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.rate-row:last-child{border-bottom:none}.rate-row .who{flex:1;min-width:0}.rate-row .desc{font-size:12px;color:var(--ink-faint)}.rate-row input.inline{border:1px solid transparent;background:transparent;padding:2px 6px;margin-left:-6px;border-radius:var(--radius-sm);font:inherit;color:inherit;width:100%}.rate-row input.inline:hover{border-color:var(--rule)}.rate-row input.inline:focus{border-color:var(--accent-ink);outline:none;background:var(--paper)}.rate-row input.inline.name{font-weight:600}.rate-row input.inline.desc{font-size:12px;color:var(--ink-faint)}.bar{height:4px;background:var(--rule);border-radius:2px;margin-bottom:var(--space-3)}.bar>div{height:100%;border-radius:2px;background:var(--ink)}.empty{padding:var(--space-6) var(--space-5);text-align:center;color:var(--ink-muted);font-size:13px}.empty .eyebrow{margin-bottom:var(--space-2)}.empty h3{font-size:20px;color:var(--ink);margin-bottom:var(--space-2)}.timer-card{background:var(--timer-bg);color:var(--timer-text);border-color:var(--timer-bg)}.timer-card .clock{font-family:var(--font-mono);font-size:48px;font-weight:400;letter-spacing:.05em;margin:var(--space-3) 0}.timer-card .sub{font-size:12px;color:#c8c2b4;margin-bottom:var(--space-4)}.timer-card .timer-fields{display:grid;gap:var(--space-2);text-align:left}.timer-card .field-select,.timer-card .field-input{background:#ffffff0f;border-color:#ffffff24;color:#f5f1e8;font-size:12px;padding:6px 10px}.timer-card .field-select option{color:#0a0a0a;background:#fff}.timer-card .field-input::placeholder{color:#9a9488}.timer-card .timer-btn{background:transparent;color:#f5f1e8;border-color:#fff3}.timer-card .timer-btn:hover{border-color:#fff9}.dateblock{text-align:center;min-width:36px}.dateblock .m{font-size:10px;text-transform:uppercase;font-weight:700;color:var(--ink-muted)}.dateblock .d{font-family:var(--font-display);font-size:22px;font-weight:500;line-height:1}.invoice-paper{position:relative;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-7);max-width:900px;margin:0 auto var(--space-5)}.invoice-header{display:flex;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6);flex-wrap:wrap}.invoice-firm{font-family:var(--font-display);font-size:22px;font-weight:400}.invoice-firm .accent{color:var(--accent-ink);font-style:italic}.invoice-addr{font-size:12px;color:var(--ink-muted);line-height:1.6;margin-top:var(--space-2)}.invoice-meta{text-align:right}.invoice-num{font-family:var(--font-display);font-size:36px;font-weight:300;letter-spacing:-.02em}.invoice-parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:2px solid var(--ink)}.invoice-sub{padding:var(--space-3) 0;font-size:14px}.invoice-line{padding:var(--space-2) 0;font-size:13px;border-bottom:1px solid var(--rule-soft);gap:var(--space-3)}.invoice-total{background:var(--timer-bg);color:var(--timer-text);padding:var(--space-4) var(--space-5);border-radius:var(--radius);margin-top:var(--space-5);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.invoice-total-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.6}.invoice-total-num{font-family:var(--font-display);font-size:32px;font-weight:300;letter-spacing:-.02em}.invoice-note{margin-top:var(--space-5);font-size:13px;color:var(--ink-muted);white-space:pre-wrap}.invoice-foot{text-align:center;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--rule);font-size:12px;color:var(--ink-faint)}.invoice-stamp{position:absolute;top:var(--space-4);right:var(--space-4);border:2px solid var(--oxblood);color:var(--oxblood);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:2px 10px;border-radius:4px;transform:rotate(4deg)}.invoice-stamp.paid{border-color:var(--emerald);color:var(--emerald)}.invoice-stamp.draft,.invoice-stamp.review{border-color:var(--ink-faint);color:var(--ink-faint)}.inline-edit{width:100%;border:1px dashed var(--rule);background:var(--bone-soft);border-radius:var(--radius-sm);padding:4px 6px;font:inherit;color:inherit;resize:vertical}.inline-edit:focus{outline:none;border-color:var(--accent-ink);border-style:solid;background:var(--paper)}.aging-bar{display:flex;height:32px;border-radius:var(--radius);overflow:hidden}.aging-bar>div{display:flex;align-items:center;justify-content:center;color:#f5f1e8;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden}table.data tfoot .total-row td{background:var(--timer-bg);color:var(--timer-text);font-weight:700}table.data tfoot .total-row td.big{font-family:var(--font-display);font-size:18px}.public-invoice{min-height:100vh;background:var(--bone);padding:var(--space-6) var(--space-4)}@media (max-width: 768px){.invoice-paper{padding:var(--space-5) var(--space-4)}.invoice-parties{grid-template-columns:1fr;gap:var(--space-4)}.invoice-meta{text-align:left}.invoice-meta .invoice-addr{text-align:left!important}.invoice-num{font-size:28px}}@media print{body{background:#fff!important}.sidebar,.topbar,.sidebar-overlay,.no-print,.toast{display:none!important}.main{margin-left:0!important}.page,.public-invoice{padding:0!important;background:#fff!important}.invoice-paper{border:none;padding:0;max-width:none}}.topbar .search input[type=search]::-webkit-search-cancel-button{display:none}.search-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;max-height:70vh;overflow-y:auto;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-1) 0}.search-pop .sp-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--ink-muted);padding:8px 14px 4px}.search-pop button{display:block;width:100%;text-align:left;background:none;border:0;padding:7px 14px;cursor:pointer;color:var(--ink)}.search-pop button:hover,.search-pop button:focus{background:var(--bone-soft);outline:none}.search-pop button strong{display:block;font-size:13px;font-weight:600}.search-pop button span{display:block;font-size:11px;color:var(--ink-faint)}.search-pop .sp-none{padding:10px 14px;font-size:13px;color:var(--ink-muted)}.search-pop .sp-foot{padding:6px 14px 4px;font-size:11px;color:var(--ink-faint);border-top:1px solid var(--rule-soft);margin-top:4px}.subnav{display:flex;flex-direction:column;gap:2px}.subnav button{padding:10px 12px;color:var(--ink-muted);font-size:13px;cursor:pointer;border-radius:var(--radius-sm);background:none;border:0;text-align:left}.subnav button:hover{color:var(--ink);background:var(--bone-warm)}.subnav button.active{background:var(--ink);color:var(--bone);font-weight:500}.section-h{padding-bottom:var(--space-3);border-bottom:1px solid var(--rule);margin-bottom:var(--space-4)}.section-h h2{font-size:22px}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:13px;margin-bottom:var(--space-4);line-height:1.5}.alert.warn{background:var(--oxblood-tint);color:var(--oxblood)}.alert.info{background:var(--bone-warm);color:var(--ink-soft);border-left:3px solid var(--accent)}.alert.ok{background:var(--emerald-tint);color:var(--emerald)}.alert.gold{background:var(--gold-tint);color:var(--gold)}.callout{background:var(--bone-warm);border-left:3px solid var(--accent);padding:var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-5)}.callout .eyebrow{margin-bottom:4px}.toast{position:fixed;bottom:24px;right:24px;z-index:9999;max-width:420px;background:var(--emerald);color:#f5f1e8;padding:12px 20px;border-radius:8px;font-size:13px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 24px #00000026;transform:translateY(16px);opacity:0;pointer-events:none;transition:all .3s ease}.toast.on{transform:translateY(0);opacity:1;pointer-events:auto}.toast.error{background:var(--oxblood)}.toast.info{background:var(--navy)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:200}.modal{position:fixed;z-index:201;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.modal-head{padding:var(--space-5) var(--space-5) 0;padding-right:48px}.modal-head h3{font-size:22px}.modal-body{padding:var(--space-4) var(--space-5) var(--space-5)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--rule-soft);background:var(--bone-soft)}.modal .close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:var(--radius);border:0;background:none;font-size:20px;color:var(--ink-muted);cursor:pointer}.modal .close:hover{background:var(--bone-warm);color:var(--ink)}.auth-bg{background:var(--bone);background-image:radial-gradient(circle at 30% 20%,var(--wash),transparent 60%);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5);flex-direction:column}.pwbox{width:100%;max-width:460px;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-7);box-shadow:var(--shadow-lg)}.pwbox-brand{text-align:center;margin-bottom:var(--space-6)}.pwbox-brand .mark{font-family:var(--font-display);font-size:24px;font-weight:400}.pwbox-brand .mark .accent{color:var(--accent-ink);font-style:italic}.pwbox-brand .ctx{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-top:4px;font-weight:600}.pwbox h1{font-family:var(--font-display);font-size:28px;font-weight:400;margin-bottom:var(--space-2);text-align:center}.pwbox p.sub{color:var(--ink-muted);margin-bottom:var(--space-5);font-size:14px;line-height:1.55;text-align:center}.pwbox .meta-link{text-align:center;margin-top:var(--space-4);font-size:13px;display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.pwbox .meta-link a,.pwbox .meta-link button{color:var(--ink-muted)}.pwbox .foot{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--rule);text-align:center;font-size:12px;color:var(--ink-faint)}.pwbox .invite-note{background:var(--bone-warm);border-left:3px solid var(--accent);padding:var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-5)}.pwbox .invite-note .eyebrow{margin-bottom:4px}.pwbox .invite-note div:last-child{font-size:14px;line-height:1.5}.codein{font-family:var(--font-mono);font-size:22px;letter-spacing:.4em;text-align:center}.auth-below{margin-top:var(--space-4);font-size:12px;color:var(--ink-faint);text-align:center}.auth-below a{color:var(--ink-muted);font-weight:600}.qrbox{width:180px;height:180px;margin:var(--space-3) auto;border:1px solid var(--rule);border-radius:var(--radius);background:#fff;padding:6px}.qrbox svg{width:100%;height:100%;display:block}.keyline{text-align:center;font-size:12px;color:var(--ink-muted);margin-bottom:var(--space-4);word-break:break-all}.steps{padding-left:20px;font-size:13px;color:var(--ink-soft);margin-bottom:var(--space-2)}.steps li{margin-bottom:4px}body.portal-admin .auth-bg{background:#18181f;background-image:none}body.portal-admin .pwbox{background:#1e1e2e;border-color:#2e2e3e;color:#c8c8d8}body.portal-admin .pwbox-brand .mark{color:#e8e8f0}body.portal-admin .pwbox-brand .mark .accent,body.portal-admin .pwbox-brand .ctx{color:#8b5fd0}body.portal-admin .pwbox h1{color:#e8e8f0}body.portal-admin .pwbox p.sub,body.portal-admin .pwbox .field-label,body.portal-admin .pwbox .steps,body.portal-admin .pwbox .keyline{color:#9494a8}body.portal-admin .pwbox .field-input{background:#121218;border-color:#2e2e3e;color:#e8e8f0}body.portal-admin .pwbox .field-input:focus{border-color:#8b5fd0}body.portal-admin .pwbox .meta-link a,body.portal-admin .pwbox .meta-link button{color:#9494a8}body.portal-admin .pwbox .alert.info{background:#121218;color:#c8c8d8;border-left-color:#8b5fd0}body.portal-admin .auth-below,body.portal-admin .auth-below a{color:#9494a8}.pwbox-brand .firm-name{font-family:var(--font-display);font-size:24px;font-weight:400}.pwbox-brand .powered{font-size:11px;color:var(--ink-faint);margin-top:6px}.pwbox-brand .powered em{font-family:var(--font-display)}.signup-page{background:var(--bone);background-image:radial-gradient(circle at 20% 0%,rgba(139,26,26,.04),transparent 50%);min-height:100vh;display:flex;flex-direction:column}.signup-shell{max-width:720px;margin:0 auto;width:100%;padding:var(--space-6) var(--space-5);flex:1}.signup-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-5);margin-bottom:var(--space-6);border-bottom:1px solid var(--rule);gap:var(--space-3);flex-wrap:wrap}.signup-brand{font-family:var(--font-display);font-size:24px;font-weight:400;color:var(--ink)}.signup-brand .accent,.onb-brand .accent{color:var(--oxblood);font-style:italic}.signup-card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-6)}.signup-card h1{font-size:36px;margin-bottom:var(--space-3);font-weight:400;letter-spacing:-.02em;line-height:1.1}.signup-card .lede{color:var(--ink-muted);margin-bottom:var(--space-6);font-size:15px}.free-banner{background:var(--emerald-tint);border:1px solid var(--emerald);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);display:flex;align-items:center;gap:var(--space-3);font-size:13px;color:var(--ink)}.free-badge{background:var(--emerald);color:#f5f1e8;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;padding:2px 8px;border-radius:100px}.section-divider{margin:var(--space-6) 0 var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--rule)}.signup-actions{display:flex;justify-content:flex-end;margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--rule);gap:var(--space-3)}.onb-shell{max-width:720px;margin:0 auto;padding:var(--space-7) var(--space-5)}.onb-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-5);margin-bottom:var(--space-6);border-bottom:1px solid var(--rule);gap:var(--space-3)}.onb-brand{font-family:var(--font-display);font-size:22px;font-weight:400;color:var(--ink)}.onb-progress{display:flex;gap:var(--space-2);margin-bottom:var(--space-7)}.onb-step{flex:1;height:4px;background:var(--bone-warm);border-radius:2px}.onb-step.done{background:var(--emerald)}.onb-step.active{background:var(--accent)}.onb-card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-6)}.onb-card h1{font-family:var(--font-display);font-size:32px;font-weight:400;margin-bottom:var(--space-2)}.onb-card .lede{color:var(--ink-muted);margin-bottom:var(--space-5);font-size:15px}.onb-actions{display:flex;justify-content:space-between;margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--rule);gap:var(--space-2)}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:28px;color:var(--ink);background:var(--bone)}.boot .accent{color:var(--oxblood);font-style:italic}.soon{max-width:560px}.soon .card-body p{color:var(--ink-muted);font-size:14px;margin-bottom:var(--space-3)}.soon ul{padding-left:18px;color:var(--ink-soft);font-size:13px}.soon li{margin-bottom:4px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:99}@media (max-width: 960px){.grid-main-side{grid-template-columns:1fr}}@media (max-width: 768px){.sidebar{transform:translate(-100%);width:280px}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.main{margin-left:0}.page{padding:var(--space-4)}.topbar{padding:0 var(--space-4)}.menu-toggle{display:flex;align-items:center;justify-content:center}.stats{grid-template-columns:1fr 1fr}.form-grid,.grid-2,.grid-3{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.page-title{font-size:30px}.hide-mobile{display:none!important}td.only-mobile,th.only-mobile{display:table-cell!important}.only-mobile-block{display:block!important}.pwbox,.signup-card{padding:var(--space-6) var(--space-5)}.signup-card h1{font-size:30px}.onb-card{padding:var(--space-5)}.onb-shell{padding:var(--space-5) var(--space-4)}.settings-split{grid-template-columns:1fr!important}.subnav{flex-direction:row;flex-wrap:wrap}.tabs{flex-wrap:nowrap;overflow-x:auto}.toast{left:16px;right:16px;bottom:16px;max-width:none}}@media (max-width: 480px){.stats{grid-template-columns:1fr}}@media (prefers-color-scheme: dark){:root{--ink: #EFEAE0;--ink-soft: #D9D3C7;--ink-muted: #A8A296;--ink-faint: #7D786E;--paper: #1C1A17;--bone: #12110F;--bone-warm: #2A2723;--bone-soft: #201E1B;--rule: #34302A;--rule-soft: #2A2723;--oxblood-tint: #3A1C1B;--navy-tint: #1C2433;--emerald: #6FB79A;--emerald-tint: #17302A;--gold: #D2AE5C;--gold-tint: #2F2817;--scrim: rgba(0,0,0,.65);--shadow-lg: 0 12px 40px rgba(0,0,0,.5);--timer-bg: #050505;color-scheme:dark}body,body.portal-firm{--accent-ink: #E0807C;--accent-tint: #3A1C1B;--topbar-bg: #161513}body.portal-client{--accent: #3B6EBF;--accent-ink: #8FB0E6;--accent-tint: #1C2433;--topbar-bg: #13161C}body.portal-admin{--accent: #7D4FB8;--accent-ink: #B897E6;--accent-tint: #2A2138;--topbar-bg: #141419}.pill-overdue,.delta-down,.alert.warn,.field-error,.btn-danger{color:#e0807c}.field-input.invalid,.field-select.invalid{border-color:#e0807c}.pill-operator,.tag-op{background:#2a2138;color:#b897e6}.filter-chip.active,.subnav button.active{background:var(--ink);color:var(--bone)}.pwbox-brand .mark .accent,.signup-brand .accent,.onb-brand .accent,.boot .accent{color:#e0807c}.qrbox{background:#fff}}.trust-band{border-left:3px solid var(--emerald);background:var(--emerald-tint);margin-bottom:var(--space-5)}.trust-band .eyebrow{color:var(--emerald)}.trust-band.off{border-left-color:var(--oxblood);background:var(--oxblood-tint)}.trust-band.off .eyebrow,.trust-band.off .band-num{color:var(--oxblood)}.trust-band .band-num{font-family:var(--font-display);font-size:44px;font-weight:300;color:var(--emerald);line-height:1.1}table.data tr.ink-row td{background:var(--ink);color:var(--bone);font-weight:700}table.data tr.ink-row td.big{font-family:var(--font-display);font-size:18px}@media print{.trust-band{background:#fff!important}table.data tr.ink-row td{background:#fff!important;color:#000!important;border-top:2px solid #000}}.trust-grid{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}@media (max-width: 900px){.trust-grid{grid-template-columns:1fr}}td.only-mobile,th.only-mobile,.only-mobile-block{display:none}.msg-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--space-4);align-items:start}.msg-search{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--rule)}.msg-search input{border:none;background:none;font:inherit;font-size:12px;width:100%;outline:none;color:var(--ink)}.msg-row{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule-soft);padding:var(--space-3) var(--space-4);cursor:pointer;color:var(--ink);font:inherit}.msg-row:last-child{border-bottom:0}.msg-row:hover{background:var(--bone-soft)}.msg-row.on{background:var(--accent-tint)}.msg-row strong{font-size:13px}.msg-row .msg-subj{font-size:12px;color:var(--ink-soft);margin-top:2px;display:flex;gap:6px;align-items:center}.msg-row .msg-subj .badge{background:var(--accent);color:#fff;border-radius:999px;font-size:10px;padding:1px 6px;font-weight:700}.msg-row .msg-snip{font-size:12px;color:var(--ink-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-row.unread strong,.msg-row.unread .msg-snip{color:var(--ink);font-weight:600}.msg-thread{min-height:420px;display:flex;flex-direction:column}.msg-body{flex:1;max-height:60vh;overflow-y:auto}.bubble{background:var(--bone-soft);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);max-width:80%}.bubble.mine{background:var(--ink);color:var(--bone);margin-left:auto}.bubble-meta{font-size:11px;color:var(--ink-faint);margin-bottom:4px}.bubble.mine .bubble-meta{color:inherit;opacity:.6}.bubble p{font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.msg-compose{background:var(--paper);gap:var(--space-2);align-items:flex-end}.msg-compose textarea{flex:1;border:none;resize:none;min-height:38px}.msg-note{font-size:12px;color:var(--ink-muted);padding:var(--space-2) var(--space-5);border-top:1px solid var(--rule-soft)}.msg-back{display:none;font-size:22px;line-height:1;padding:0 6px 0 0}@media (max-width: 900px){.msg-layout{grid-template-columns:1fr}.msg-layout.has-open .msg-list{display:none}.msg-layout:not(.has-open) .msg-thread{display:none}.msg-back{display:inline-block}.bubble{max-width:92%}}.update-row{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--rule-soft);font-size:13px}.update-row:last-child{border-bottom:0}.drop{border:1.5px dashed var(--rule);border-radius:var(--radius);padding:var(--space-5);text-align:center;cursor:pointer;margin-bottom:var(--space-4);background:var(--bone-soft)}.drop:hover,.drop.over,.drop:focus{border-color:var(--accent);outline:none}.drop strong{display:block;font-size:14px}.drop span{display:block;font-size:12px;color:var(--ink-muted);margin-top:4px}.tag-btn{cursor:pointer;border:1px solid var(--rule);background:var(--paper)}.tag-btn:hover{border-color:var(--accent);color:var(--accent-ink)}.tpl-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.mono-ish{font-family:var(--font-mono, monospace);font-size:12.5px;line-height:1.6}.tpl-preview{white-space:pre-wrap;font-family:Georgia,serif;font-size:13.5px;line-height:1.6;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-5);max-height:50vh;overflow-y:auto;margin-top:var(--space-3)}@media (max-width: 900px){.tpl-grid{grid-template-columns:1fr}}.receipt-link{padding:0;font-size:11px;display:inline-block;margin-top:2px;cursor:pointer}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden;background:var(--rule);gap:1px}.cal-header{background:var(--bone-soft);padding:var(--space-2);text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--ink-muted)}.cal-day{background:var(--paper);padding:var(--space-2);min-height:100px;font-size:12px;cursor:pointer;min-width:0}.cal-day.other{background:var(--bone-soft);color:var(--ink-faint)}.cal-day:hover{background:var(--bone-soft)}.cal-day .day-num{font-weight:600;margin-bottom:4px}.cal-day .day-num.today{background:var(--accent);color:var(--paper);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.cal-event{display:block;width:100%;text-align:left;font:inherit;font-size:11px;padding:2px 4px;border-radius:3px;margin-bottom:2px;border:0;border-left:2px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cal-event.deadline{border-color:var(--oxblood);background:var(--oxblood-tint);color:var(--oxblood)}.cal-event.meeting{border-color:var(--navy);background:var(--navy-tint);color:var(--navy)}.cal-event.task{border-color:var(--gold);background:var(--gold-tint);color:var(--gold)}.cal-event.done{opacity:.5;text-decoration:line-through}.cal-more{font-size:10px;color:var(--ink-muted)}.view-switch{display:flex;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.view-switch button{padding:5px 14px;border:none;background:var(--paper);font-size:12px;cursor:pointer;color:var(--ink)}.view-switch button+button{border-left:1px solid var(--rule)}.view-switch button.on{background:var(--ink);color:var(--bone);font-weight:600}.cal-legend{display:flex;gap:var(--space-4);font-size:11px;color:var(--ink-muted);flex-wrap:wrap}.cal-legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}.cal-legend .deadline:before{background:var(--oxblood)}.cal-legend .meeting:before{background:var(--navy)}.cal-legend .task:before{background:var(--gold)}.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius-lg);overflow:hidden}.cal-week .cal-day{min-height:360px}.agenda-day{display:grid;grid-template-columns:120px 1fr;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--rule-soft)}.agenda-day:last-child{border-bottom:0}.agenda-date{font-weight:600;font-size:13px}.agenda-date.today{color:var(--accent-ink)}.agenda-item{display:flex;gap:var(--space-3);align-items:baseline;padding:4px 0;cursor:pointer;font-size:13px}.agenda-item .t{width:72px;flex-shrink:0;color:var(--ink-muted);font-size:12px}.agenda-item .k{width:8px;height:8px;border-radius:50%;flex-shrink:0;transform:translateY(-1px)}.agenda-item .k.deadline{background:var(--oxblood)}.agenda-item .k.meeting{background:var(--navy)}.agenda-item .k.task{background:var(--gold)}.agenda-item.done{opacity:.55;text-decoration:line-through}.notif-item{display:grid;grid-template-columns:32px 1fr auto;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--rule-soft);align-items:start;cursor:pointer;transition:background var(--t-fast);width:100%;text-align:left;background:none;border-left:0;border-right:0;border-top:0;font:inherit;color:var(--ink)}.notif-item:last-child{border-bottom:0}.notif-item:hover{background:var(--bone-soft)}.notif-item.unread{background:var(--accent-tint)}.notif-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-icon.deadline{background:var(--oxblood-tint);color:var(--oxblood)}.notif-icon.payment{background:var(--emerald-tint);color:var(--emerald)}.notif-icon.message,.notif-icon.document{background:var(--gold-tint);color:var(--gold)}.notif-icon.approval{background:var(--navy-tint);color:var(--navy)}.notif-icon.system{background:var(--bone-warm);color:var(--ink-muted)}.notif-title{font-size:13px;font-weight:600;line-height:1.4}.notif-detail{font-size:12px;color:var(--ink-muted);margin-top:2px}.notif-time{font-size:11px;color:var(--ink-faint);white-space:nowrap}.notif-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;display:inline-block;margin-left:6px;vertical-align:middle}.icon-btn .dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.icon-btn{position:relative}.people-pick{display:flex;flex-wrap:wrap;gap:6px 14px}@media (max-width: 900px){.cal-day{min-height:64px;padding:4px}.cal-event{font-size:9px;padding:1px 2px}.cal-week{grid-template-columns:1fr}.cal-week .cal-day{min-height:0}.agenda-day{grid-template-columns:1fr;gap:4px;padding:var(--space-3)}}@media (prefers-color-scheme: dark){.cal-event.meeting{color:#8fb0e6;border-color:#8fb0e6}.agenda-item .k.meeting,.cal-legend .meeting:before{background:#8fb0e6}.notif-icon.approval{color:#8fb0e6}}.summary-link{font-size:inherit;color:var(--ink);font-weight:700}
