@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{--lemon:#f0c40a;--lemon-deep:#e0ad00;--lime:#6fad1f;--lime-deep:#4f8412;--ink:#182010;--ink-soft:#44503a;--mute:#74806a;--line:#dde5d0;--line-strong:#c9d5b4;--paper:#fffcf5;--wash:#f3f6ea;--panel:#fff;--danger:#c93a3a;--warn:#c67d08;--ok:#2a8a48;--sky:#3478a0;--radius:14px;--radius-sm:10px;--shadow:0 8px 28px #23320f0f;--shadow-lg:0 18px 48px #1e2a0c1f;--font:"DM Sans", "Noto Sans SC", sans-serif;--mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace;--lime-wash:#eef6d8;--lime-soft:#e8f4c8;--lime-hover:#f4f8ea;--lime-border:#bdd68a;--panel-soft:#fafcf4;--topbar-h:58px}.muted-sm{color:var(--mute);font-size:.76rem}.mono-num{font-family:var(--mono);font-variant-numeric:tabular-nums}.confirm-msg{color:var(--ink-soft);margin:0;font-size:.95rem;line-height:1.55}.modal-wide{width:min(720px,100%)}.list-toolbar-left{flex-wrap:wrap;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.list-toolbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.toast-host{z-index:80;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-lg);color:var(--ink);cursor:pointer;border-radius:999px;padding:10px 18px;font-size:.88rem;font-weight:650;animation:.28s both toast-in}.toast-ok{color:var(--ok);background:#f2fbf4;border-color:#b7dfc0}.toast-warn{color:var(--warn);background:#fff8eb;border-color:#efd3a0}.toast-danger{color:var(--danger);background:#fff6f6;border-color:#efc8c8}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes shake-x{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.shake{animation:.4s shake-x}.field-invalid input,.field-invalid select,.field.field-invalid input{border-color:var(--danger)!important;box-shadow:0 0 0 3px #c93a3a1f!important}.account-select{width:100%;position:relative}.account-select-trigger{text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;width:100%;min-height:38px;padding:9px 12px}.account-select-trigger:hover{border-color:var(--line-strong)}.account-select.open .account-select-trigger{border-color:var(--lime);box-shadow:0 0 0 3px #6fad1f2e}.account-select-placeholder{color:var(--mute)}.account-select-value{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.account-select-pop{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.account-select-search{border:none;border-bottom:1px solid var(--line);border-radius:0;width:100%;padding:10px 12px}.account-select-search:focus{outline:none}.account-select-list{max-height:220px;overflow:auto}.account-select-option{text-align:left;background:0 0;border:none;align-items:baseline;gap:8px;width:100%;padding:8px 12px;font-size:.88rem;display:flex}.account-select-option:hover,.account-select-option.active{background:var(--lime-wash)}.account-select-empty{color:var(--mute);text-align:center;padding:14px 12px;font-size:.85rem}.badge-on{color:var(--ok);background:#e8f6ec;border-radius:999px;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:650;display:inline-flex}.badge-off{color:var(--mute);background:#f2f2f0;border-radius:999px;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:650;display:inline-flex}.meta-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.meta-chip{background:var(--wash);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.76rem;font-weight:600;display:inline-flex}.table-sticky-cols th.sticky-col,.table-sticky-cols td.sticky-col{background:var(--panel);z-index:1;position:sticky;left:0}.table-sticky-cols th.sticky-col-2,.table-sticky-cols td.sticky-col-2{background:var(--panel);z-index:1;position:sticky;left:88px}.print-only{display:none}.dashboard-foot{text-align:center;margin-top:28px}.dashboard-foot button{color:var(--mute);text-underline-offset:3px;background:0 0;border:none;font-size:.8rem;text-decoration:underline}.dashboard-foot button:hover{color:var(--ink-soft)}.alert-item.clickable{cursor:pointer;transition:border-color .15s,background .15s}.alert-item.clickable:hover{border-color:var(--line-strong);background:#f7faf0}.login-demo-toggle{color:var(--mute);text-underline-offset:3px;background:0 0;border:none;align-self:center;margin:0;padding:0;font-size:.78rem;text-decoration:underline}.login-demo-toggle:hover{color:var(--ink-soft)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(1100px 520px at -5% -15%, #fff1b0 0%, transparent 55%), radial-gradient(900px 480px at 105% 0%, #dff3b8 0%, transparent 48%), linear-gradient(180deg, #fcfdf8 0%, var(--wash) 100%);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.app-shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.topbar{min-height:var(--topbar-h);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);border-bottom:1px solid var(--line);z-index:30;background:#fffcf5e6;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.03em;flex-shrink:0;align-items:center;gap:10px;font-size:1.12rem;font-weight:700;display:flex}.brand-mark{background:linear-gradient(145deg, var(--lemon) 0%, var(--lime) 100%);color:#fff;border-radius:11px;place-items:center;width:34px;height:34px;font-size:.95rem;transition:transform .2s;display:grid;box-shadow:0 6px 16px #6fad1f52}.brand:hover .brand-mark{transform:rotate(-8deg)scale(1.04)}.brand em{color:var(--lime-deep);font-style:normal}.top-nav{background:#eef6d88c;border-radius:999px;gap:2px;margin-left:4px;padding:3px;display:flex}.top-nav a{color:var(--ink-soft);border-radius:999px;padding:7px 14px;font-size:.9rem;font-weight:560;transition:all .15s}.top-nav a.active{color:var(--lime-deep);background:#fff;box-shadow:0 2px 8px #506e1e1a}.top-nav a:hover:not(.active){color:var(--lime-deep)}.top-spacer{flex:1}.pill{border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.84rem;display:inline-flex}.main{width:100%;max-width:1320px;margin:0 auto;padding:22px 24px 56px}.main.main-wide{max-width:1440px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.35rem,2.2vw,1.7rem);line-height:1.25}.page-head p{color:var(--mute);max-width:52ch;margin:6px 0 0;font-size:.92rem}.back-link{color:var(--mute);align-items:center;gap:2px;margin-bottom:6px;font-size:.84rem;font-weight:560;display:inline-flex}.back-link:hover{color:var(--lime-deep)}.page-actions{flex-shrink:0}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:15px 16px;transition:border-color .15s,transform .15s}.stat:hover{border-color:var(--line-strong);transform:translateY(-1px)}.stat .label{color:var(--mute);font-size:.82rem;font-weight:560}.stat .value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:6px;font-size:1.45rem;font-weight:700;line-height:1.2}.stat .hint{color:var(--mute);margin-top:4px;font-size:.75rem}.stat.warn .value{color:var(--warn)}.stat.ok .value{color:var(--ok)}.stat.sky .value{color:var(--sky)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel+.panel{margin-top:14px}.panel-head{border-bottom:1px solid var(--line);background:linear-gradient(#fcfdf8,#f7faef);justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.panel-head h2{letter-spacing:-.01em;margin:0;font-size:.95rem}.panel-body{padding:14px 16px}.btn{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:.88rem;font-weight:650;transition:all .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:linear-gradient(180deg, #f7cd2a 0%, var(--lemon-deep) 100%);color:#3a2d00;box-shadow:0 4px 12px #e0ad0047}.btn-primary:hover:not(:disabled){filter:brightness(1.04)}.btn-lime{background:linear-gradient(180deg, #7fc428 0%, var(--lime) 100%);color:#fff;box-shadow:0 4px 12px #6fad1f40}.btn-ghost{border-color:var(--line);color:var(--ink-soft);background:#fff}.btn-ghost:hover:not(:disabled){border-color:var(--line-strong);background:#f6f9ef}.btn-danger{color:var(--danger);background:#fff6f6;border-color:#efc8c8}.btn-danger:hover:not(:disabled){background:#ffecec}.btn-sm{border-radius:8px;padding:5px 10px;font-size:.8rem}.table-wrap{max-width:100%;overflow:auto}table.data{border-collapse:collapse;width:100%;font-size:.875rem}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle;padding:10px 12px}table.data th{color:var(--mute);letter-spacing:.02em;z-index:1;background:#f6f9ef;font-size:.78rem;font-weight:650;position:sticky;top:0}table.data tbody tr{transition:background .12s}table.data tbody tr:hover td{background:var(--lime-wash)}table.data tbody tr:last-child td{border-bottom:none}table.data .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}table.data .center{text-align:center}table.data .cell-stack{white-space:normal;min-width:140px}table.data .cell-stack strong{font-weight:650;display:block}table.data .cell-stack .sub{color:var(--mute);margin-top:2px;font-size:.76rem}table.data a.row-link{color:var(--lime-deep);font-weight:600}table.data a.row-link:hover{text-decoration:underline}.badge{letter-spacing:.01em;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.73rem;font-weight:650;display:inline-flex}.badge:before{content:"";opacity:.7;background:currentColor;border-radius:50%;width:5px;height:5px}.badge-todo{color:var(--mute);background:#f1f2ed}.badge-doing{color:#9a6a00;background:#fff3d4}.badge-done{color:var(--ok);background:#e3f5e9}.badge-small{background:var(--lime-wash);color:var(--lime-deep)}.badge-general{color:var(--sky);background:#e7f1f8}.badge-small:before,.badge-general:before{display:none}.grid-2{grid-template-columns:1.35fr 1fr;gap:14px;display:grid}.progress-list{flex-direction:column;gap:8px;display:flex}.progress-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fcfdf8;grid-template-columns:minmax(96px,120px) 1fr auto;align-items:center;gap:10px;padding:11px 12px;transition:border-color .15s,background .15s;display:grid}a.progress-item:hover{border-color:var(--line-strong);background:#f4f9e8}.progress-item .name{font-size:.9rem;font-weight:650}.bars{gap:5px;display:flex}.bar{background:#e6ebdc;border-radius:99px;flex:1;height:7px}.bar.on{background:var(--lime)}.bar.mid{background:var(--lemon-deep)}.bar-legend{color:var(--mute);gap:12px;margin-bottom:10px;font-size:.75rem;display:flex}.bar-legend span{align-items:center;gap:5px;display:inline-flex}.bar-legend i{background:var(--lime);border-radius:99px;width:10px;height:7px;display:inline-block}.bar-legend i.mid{background:var(--lemon-deep)}.bar-legend i.off{background:#e6ebdc}.alert-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fcfdf8;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:12px;display:grid}.alert-ico{border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.alert-ico.warn{color:var(--warn);background:#fff4d6}.alert-ico.sky{color:var(--sky);background:#e7f1f8}.alert-ico.ok{color:var(--ok);background:#e3f5e9}.alert-ico.lime{background:var(--lime-wash);color:var(--lime-deep)}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--mute);font-size:.8rem;font-weight:650}.field input,.field select,.field textarea,.control{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.control:focus{border-color:var(--lime);outline:none;box-shadow:0 0 0 3px #6fad1f2e}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#161e0c66;place-items:center;padding:20px;animation:.18s fade-only;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow-lg);border-radius:18px;animation:.25s rise-in}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-head h3{margin:0;font-size:1.05rem}.modal-body{padding:18px 20px}.modal-foot{border-top:1px solid var(--line);background:var(--panel-soft);justify-content:flex-end;gap:10px;padding:14px 20px 18px;display:flex}.book-layout{grid-template-columns:212px minmax(0,1fr);align-items:start;gap:16px;display:grid}.side-nav{top:calc(var(--topbar-h) + 14px);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px;position:sticky}.side-nav .book-chip{background:linear-gradient(145deg,#fff7d0,#eaf7cd);border:1px solid #c8b43c40;border-radius:12px;margin-bottom:8px;padding:12px}.side-nav .book-chip span{color:var(--mute);margin-top:3px;font-size:.74rem;line-height:1.35;display:block}.side-nav .book-chip span+span{color:var(--ink-soft);font-size:.78rem;font-weight:600}.side-nav .nav-group{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.side-nav .nav-label{color:var(--mute);letter-spacing:.04em;text-transform:uppercase;padding:6px 10px 4px;font-size:.7rem;font-weight:700}.side-nav a{color:var(--ink-soft);border-radius:9px;align-items:center;gap:9px;margin-bottom:1px;padding:8px 10px;font-size:.88rem;font-weight:560;transition:all .12s;display:flex}.side-nav a svg{opacity:.7;flex-shrink:0}.side-nav a.active{background:var(--lime-soft);color:var(--lime-deep);font-weight:650}.side-nav a.active svg{opacity:1}.side-nav a:hover:not(.active){background:var(--lime-hover)}.side-nav .back-firm{color:var(--mute);margin-top:8px;font-size:.82rem}.book-content{min-width:0}.quick-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.quick{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:8px;padding:16px 14px;transition:all .18s;display:flex}.quick:hover{border-color:var(--lime-border);transform:translateY(-2px);box-shadow:0 12px 28px #4664141a}.quick .ico{width:38px;height:38px;color:var(--lime-deep);background:linear-gradient(145deg,#f4f9e0,#e7f3c4);border-radius:11px;place-items:center;display:grid}.quick strong{letter-spacing:-.01em;font-size:.92rem}.quick span{color:var(--mute);font-size:.78rem}.voucher-meta{border:1px solid var(--line);border-radius:var(--radius-sm);background:#f8fbef;flex-wrap:wrap;gap:12px;margin-bottom:14px;padding:12px;display:flex}.voucher-meta .field{min-width:120px}.voucher-editor table.data td{padding:4px 6px}.voucher-editor table td input,.voucher-editor table td select{background:0 0;border:1px solid #0000;border-radius:7px;width:100%;padding:8px 6px}.voucher-editor table td input:focus,.voucher-editor table td select:focus{background:#fffef3;border-color:#e5d48a;outline:none;box-shadow:0 0 0 2px #f0c40a33}.voucher-editor .editor-foot{border-top:1px dashed var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 4px 4px;display:flex}.voucher-editor .totals{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:18px;font-size:.92rem;display:flex}.voucher-editor .totals .bad{color:var(--danger);font-weight:700}.voucher-editor .totals .good{color:var(--ok);font-weight:700}.form-error{border-radius:var(--radius-sm);color:var(--danger);background:#fff1f1;border:1px solid #f0c8c8;margin-top:10px;padding:10px 12px;font-size:.88rem;font-weight:600}.tabs{background:#eef6d8a6;border-radius:999px;gap:2px;margin-bottom:14px;padding:3px;display:inline-flex}.tabs button{color:var(--ink-soft);background:0 0;border:none;border-radius:999px;padding:7px 16px;font-size:.88rem;font-weight:600;transition:all .15s}.tabs button.active{color:var(--lime-deep);background:#fff;box-shadow:0 2px 8px #506e1e1a}.report-table td.label{white-space:normal}.report-table tr.total-row td{background:#f4f9e8}.balance-ok{color:var(--ok);background:#e3f5e9;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.8rem;font-weight:650;display:inline-flex}.balance-bad{color:var(--danger);background:#fff1f1;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.8rem;font-weight:650;display:inline-flex}.muted{color:var(--mute)}.empty{text-align:center;color:var(--mute);padding:40px 16px}.empty-state{text-align:center;color:var(--mute);padding:48px 20px}.empty-orb{background:linear-gradient(145deg,#fff4b8,#d8ef9a);border-radius:16px;width:52px;height:52px;margin:0 auto 14px;box-shadow:inset 0 0 0 1px #ffffff80}.empty-state strong{color:var(--ink);margin-bottom:6px;font-size:1rem;display:block}.empty-state p{max-width:32ch;margin:0 auto;font-size:.88rem}.empty-actions{justify-content:center;gap:8px;margin-top:16px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.segment{background:#f0f4e6;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segment button{color:var(--mute);background:0 0;border:none;border-radius:8px;padding:5px 11px;font-size:.8rem;font-weight:600}.segment button.active{color:var(--lime-deep);background:#fff;box-shadow:0 1px 4px #3c50141a}.progress-row{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fcfdf8;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.progress-row .left{align-items:center;gap:10px;display:flex}.search-field{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:min(280px,100%);color:var(--mute);background:#fff;align-items:center;gap:8px;padding:8px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.search-field:focus-within{border-color:var(--lime);color:var(--ink-soft);box-shadow:0 0 0 3px #6fad1f26}.search-field input{background:0 0;border:none;outline:none;width:100%;padding:0}.period-switch{border:1px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:.84rem;font-weight:560;display:inline-flex}.period-switch input{color:var(--ink);background:0 0;border:none;padding:0;font-weight:650}.period-switch input:focus{outline:none}.hero-firm{grid-template-columns:1.25fr .75fr;align-items:stretch;gap:14px;margin-bottom:18px;display:grid}.hero-card{box-shadow:var(--shadow);background:linear-gradient(125deg,#fffcf5f0,#fffcf5b8),url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23d4e69a' stroke-width='1'%3E%3Ccircle cx='20' cy='20' r='18'/%3E%3Ccircle cx='80' cy='90' r='28'/%3E%3Ccircle cx='140' cy='40' r='14'/%3E%3C/g%3E%3C/svg%3E"),linear-gradient(135deg,#ffe56a 0%,#b7e35a 48%,#7fc428 100%);border:1px solid #ffffff8c;border-radius:20px;min-height:200px;padding:26px 28px;animation:.5s both rise-in;position:relative;overflow:hidden}.hero-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff59,#0000 70%);border-radius:50%;width:180px;height:180px;position:absolute;bottom:-50px;right:-40px}.hero-card .eyebrow{color:var(--lime-deep);background:#ffffffbf;border:1px solid #ffffffe6;border-radius:999px;margin-bottom:12px;padding:5px 11px;font-size:.78rem;font-weight:650;display:inline-flex}.hero-card h1{letter-spacing:-.04em;max-width:14ch;margin:0 0 8px;font-size:clamp(1.55rem,2.8vw,2rem);position:relative}.hero-card p{max-width:38ch;color:var(--ink-soft);margin:0;font-size:.92rem;line-height:1.5;position:relative}.hero-card .cta{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex;position:relative}.side-metrics{gap:10px;display:grid}.side-metrics .stat{animation:.45s both fade-up}.side-metrics .stat:first-child{animation-delay:50ms}.side-metrics .stat:nth-child(2){animation-delay:.1s}.side-metrics .stat:nth-child(3){animation-delay:.15s}.client-avatar{width:34px;height:34px;color:var(--lime-deep);background:linear-gradient(145deg,#fff4b8,#e2f2b0);border-radius:10px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:700;display:grid}.client-cell{align-items:center;gap:10px;display:flex}.opening-input{text-align:right;border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#fff;border-radius:8px;width:128px;padding:6px 8px}.opening-input:focus{border-color:var(--lime);outline:none;box-shadow:0 0 0 3px #6fad1f26}.sticky-save{z-index:5;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffcf5f2;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:flex;position:sticky;bottom:12px}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade-only{0%{opacity:0}to{opacity:1}}.anim-fade{animation:.4s both fade-up}@media (width<=1100px){.stats,.quick-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=960px){.grid-2,.hero-firm,.book-layout,.form-grid{grid-template-columns:1fr}.side-nav{flex-direction:column;display:flex;position:static}.side-nav .nav-scroll{gap:4px;padding-bottom:4px;display:flex;overflow-x:auto}.side-nav .nav-group{display:contents}.side-nav .nav-label,.side-nav .back-firm{display:none}.side-nav a{white-space:nowrap;flex-shrink:0}.main{padding:14px 14px 40px}.topbar{flex-wrap:wrap;gap:8px;min-height:auto;padding:8px 12px}.top-nav{order:3;width:100%;margin-left:0}.page-head{flex-direction:column;align-items:stretch}.stats{grid-template-columns:repeat(2,1fr)}.progress-item{grid-template-columns:1fr}}@media (width<=560px){.quick-grid{grid-template-columns:1fr 1fr}.hero-card{min-height:auto;padding:20px}.stats{grid-template-columns:1fr}}.login-page{place-items:center;min-height:100vh;padding:32px 20px;display:grid}.login-stage{flex-direction:column;gap:28px;width:min(420px,100%);animation:.45s both login-rise;display:flex}@keyframes login-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.login-brand{text-align:center}.login-mark{border-radius:16px;width:52px;height:52px;margin:0 auto 14px;font-size:1.35rem;animation:.55s 80ms both login-mark-pop}@keyframes login-mark-pop{0%{opacity:0;transform:scale(.7)rotate(-12deg)}to{opacity:1;transform:none}}.login-brand h1{letter-spacing:-.04em;margin:0;font-size:1.85rem;font-weight:750}.login-brand h1 em{color:var(--lime-deep);font-style:normal}.login-brand p{color:var(--mute);margin:8px 0 0;font-size:.95rem}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);flex-direction:column;gap:14px;padding:28px 26px 24px;display:flex}.login-card h2{letter-spacing:-.02em;margin:0;font-size:1.2rem}.login-sub{color:var(--mute);margin:-6px 0 4px;font-size:.88rem}.login-pass-wrap{position:relative}.login-pass-wrap input{width:100%;padding-right:42px}.login-eye{color:var(--mute);background:0 0;border:none;border-radius:8px;place-items:center;padding:6px;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-eye:hover{color:var(--ink);background:var(--wash)}.login-submit{width:100%;margin-top:4px;padding:11px 14px;font-size:.95rem}.login-hint{text-align:center;color:var(--mute);margin:4px 0 0;font-size:.78rem;line-height:1.55}.login-hint code{font-family:var(--mono);background:var(--wash);border:1px solid var(--line);color:var(--ink-soft);border-radius:6px;padding:1px 6px;font-size:.76rem}.user-menu{align-items:center;gap:8px;display:inline-flex}.nav-ico-label{align-items:center;gap:6px;display:inline-flex}.alert-stack{gap:10px;display:grid}.alert-desc{margin-top:4px}.hero-firm-slim{grid-template-columns:1fr}.hero-firm-slim .hero-card{max-width:none}.check-inline{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.control-wide{min-width:220px}.field-min-80{min-width:80px}.field-min-100{min-width:100px}.field-min-160{min-width:160px}.col-summary{width:28%}.col-account{width:34%}.col-amt{width:15%}.col-act{width:8%}.cell-wrap{white-space:normal;max-width:300px}.progress-panel{gap:10px;display:grid}.progress-label{min-width:40px}.table-scroll-h{max-height:560px}.text-ok{color:var(--ok)}.text-danger{color:var(--danger)}.sticky-hint{margin-top:2px}.report-balance-bar{margin-bottom:12px}.report-table .indent-0{padding-left:12px}.report-table .indent-1{padding-left:28px}.report-table .indent-2{padding-left:44px}.report-table .row-bold{font-weight:700}.segment-mobile{display:none}.print-header h1{margin:0 0 6px;font-size:1.25rem}.print-header p{color:var(--mute);margin:0;font-size:.88rem}.alert-item.clickable{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;width:100%;padding:12px;display:flex}@media (width<=768px){.segment-desktop{display:none}.segment-mobile{display:block}.voucher-meta{flex-wrap:wrap}.topbar-wrap{flex-wrap:wrap;row-gap:8px}}@media print{.topbar,.side-nav,.page-actions,.tabs,.btn,.no-print,.sticky-save,.toast-host{display:none!important}.print-only{margin-bottom:16px;display:block!important}.book-layout{display:block}.report-print-stack{display:block!important}.report-print-stack .panel{break-inside:avoid;margin-bottom:20px}body{background:#fff}.panel{box-shadow:none;border:1px solid #ccc}}
