:root{--font-display:"Bricolage Grotesque", "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif:"Source Serif 4", "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;--bg:#fbf2e2;--surface:#fffaf0;--surface-2:#f5e8d2;--border:#e6d4b6;--border-strong:#c8ac82;--text:#221310;--text-muted:#7b594b;--primary:#a4161a;--primary-hover:#7a0e12;--primary-contrast:#fff6e7;--primary-soft:#fae2db;--danger:#a4161a;--danger-bg:#f9dfd9;--c-indigo:#2a3ea8;--c-indigo-soft:#e2e5f8;--c-violet:#6b2fb5;--c-violet-soft:#ece2fa;--c-teal:#0d6e62;--c-teal-soft:#dbeee9;--c-amber:#c2410c;--c-amber-soft:#fbe4d1;--c-green:#3f6d2a;--c-green-soft:#e5efd7;--c-rose:#a4161a;--c-rose-soft:#fae2db;--c-slate:#6b4f42;--c-slate-soft:#efe2cd;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px #3c18100f, 0 2px 6px #3c18100f;--shadow-md:0 6px 12px -3px #3c18101f, 0 3px 6px -3px #3c181014;--shadow-lg:0 20px 40px -10px #3c181038, 0 6px 12px -6px #3c18101f;--ring:0 0 0 3px color-mix(in srgb, var(--primary) 25%, transparent);--scrim:#28120c8c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);color:var(--text);font-synthesis-weight:none;text-rendering:optimizelegibility;font-size:15px;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--bg);background-image:radial-gradient(900px 420px at 12% -8%, color-mix(in srgb, var(--primary) 14%, transparent), transparent 70%), radial-gradient(760px 380px at 92% 0%, color-mix(in srgb, var(--c-amber) 12%, transparent), transparent 68%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-repeat:no-repeat;background-attachment:fixed;margin:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;font-weight:700}input,button,select,textarea{font:inherit}.num,.stat-value,.recent-no,.recent-amt,.totals,.hours-input,.legend-n{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::selection{background:color-mix(in srgb, var(--primary) 88%, transparent);color:var(--primary-contrast)}@media (prefers-color-scheme:dark){:root{--bg:#16100e;--surface:#1e1614;--surface-2:#2a1e1a;--border:#3a2a25;--border-strong:#5c4238;--text:#f7e9d3;--text-muted:#b39a84;--primary:#ff6b5b;--primary-hover:#ff8d7f;--primary-contrast:#1a0d0b;--primary-soft:#3a1a18;--danger:#ff7a6b;--danger-bg:#3a1a18;--c-indigo:#93a7ff;--c-indigo-soft:#1d2440;--c-violet:#c4a0ff;--c-violet-soft:#291e42;--c-teal:#4fd6c0;--c-teal-soft:#0f332e;--c-amber:#ffb067;--c-amber-soft:#3a2412;--c-green:#9ad46a;--c-green-soft:#1c2e15;--c-rose:#ff6b5b;--c-rose-soft:#3a1a18;--c-slate:#c0a48d;--c-slate-soft:#2a211c;--shadow:0 1px 2px #00000080, 0 2px 6px #0006;--shadow-md:0 6px 14px -3px #0009;--shadow-lg:0 22px 44px -12px #000000b8, 0 6px 14px -6px #00000080;--scrim:#080403b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.btn{border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .95rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,transform .12s,opacity .15s;display:inline-flex;box-shadow:0 1px 2px #3c18100f}.btn:hover{background:var(--surface-2);border-color:color-mix(in srgb, var(--text) 40%, var(--border-strong))}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);box-shadow:0 2px 0 color-mix(in srgb, var(--primary) 62%, #000)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary:active{box-shadow:0 0 0 color-mix(in srgb, var(--primary) 62%, #000)}.btn-ghost{box-shadow:none;background:0 0}.btn-danger{color:var(--danger);box-shadow:none;background:0 0;border-color:#0000}.btn-danger:hover{border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:var(--danger-bg)}.btn-block{width:100%}.btn-sm{padding:.32rem .6rem;font-size:.85rem}.btn-xs{padding:.2rem .5rem;font-size:.78rem}.icon-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.25rem .4rem;font-size:1rem}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.auth{justify-content:center;align-items:center;min-height:100%;padding:1.5rem;display:flex;position:relative;overflow:hidden}.auth-sky{pointer-events:none;color:color-mix(in srgb, var(--primary) 30%, transparent);position:absolute;inset:0}.auth-sky .drift{opacity:.5;height:auto;animation:linear infinite drift-across;position:absolute}.auth-sky .drift-1{width:46px;animation-duration:26s;top:22%}.auth-sky .drift-2{opacity:.35;width:30px;animation-duration:34s;animation-delay:-8s;top:38%}.auth-sky .drift-3{opacity:.28;width:60px;animation-duration:44s;animation-delay:-18s;top:68%}@keyframes drift-across{0%{transform:translate(-12vw)translateY(0)}50%{transform:translate(50vw)translateY(-14px)}to{transform:translate(112vw)translateY(0)}}.auth-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow-lg);flex-direction:column;gap:1rem;padding:2.25rem 2rem;animation:.5s both rise;display:flex;position:relative}.auth-hero{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.auth-hero .brand-mark-lg{animation:4s ease-in-out infinite bird-float}.auth-hero h1{font-family:var(--font-display);letter-spacing:-.04em;font-size:2.35rem;font-weight:800}.auth-tagline{font-family:var(--font-serif);color:var(--text-muted);font-size:1.02rem;font-style:italic}.auth-subtitle{color:var(--text-muted);text-align:center;font-size:.95rem}@keyframes bird-float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-7px)rotate(1deg)}}.auth-tabs{background:var(--surface-2);border-radius:var(--radius-sm);gap:.25rem;padding:.25rem;display:flex}.auth-tabs button{border-radius:calc(var(--radius-sm) - 2px);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-weight:500}.auth-tabs button.active{background:var(--primary);color:var(--primary-contrast);box-shadow:0 1px 2px #3c181029}.auth-error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:.9rem}.auth-switch{text-align:center;color:var(--text-muted);font-size:.9rem}.auth-switch button{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.brand-mark{background:linear-gradient(160deg, color-mix(in srgb, var(--primary) 82%, #fff), var(--primary) 60%, color-mix(in srgb, var(--primary) 72%, #000));width:2rem;height:2rem;color:var(--primary-contrast);box-shadow:0 2px 6px color-mix(in srgb, var(--primary) 28%, transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.brand-bird{width:1.3rem;height:auto}.brand-mark-lg{border-radius:16px;width:4rem;height:4rem}.brand-mark-lg .brand-bird{width:2.6rem}.brand-name{font-family:var(--font-display);letter-spacing:-.035em;font-size:1.22rem;font-weight:800}.layout{grid-template-columns:240px 1fr;min-height:100%;display:grid}.sidebar{background:var(--surface);border-right:2px solid var(--border);flex-direction:column;align-self:start;gap:1.25rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:.6rem;padding:.25rem .4rem;display:flex}.nav{flex-direction:column;flex:1;gap:.15rem;display:flex}.nav a{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:.7rem;padding:.55rem .7rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a:hover .nav-icon{color:var(--tone,var(--primary));transform:translate(1px)scale(1.08)}.nav a.active{background:var(--tone-soft,var(--primary-soft));color:var(--tone,var(--primary));letter-spacing:-.015em;font-weight:700}.nav a.active .nav-icon{color:var(--tone,var(--primary))}.nav a.active:before{content:"";background:var(--tone,var(--primary));border-radius:0 3px 3px 0;width:4px;height:60%;animation:.22s both nav-pop;position:absolute;top:50%;left:0;transform:translateY(-50%)}@keyframes nav-pop{0%{opacity:0;height:0}to{opacity:1;height:60%}}.nav-icon{justify-content:center;align-items:center;width:1.25rem;font-size:1.2rem;transition:color .15s,transform .15s;display:inline-flex}.sidebar-foot{flex-direction:column;gap:.6rem;display:flex}.sidebar-user{flex-direction:column;padding:0 .4rem;line-height:1.3;display:flex}.user-name{font-size:.92rem;font-weight:550}.user-email{color:var(--text-muted);text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.main{min-width:0}.page{flex-direction:column;gap:1.25rem;max-width:1000px;margin:0 auto;padding:1.75rem 1.5rem 4rem;display:flex}.page-head{border-bottom:2px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.page-head .muted{margin-top:.2rem}.page-head h1{letter-spacing:-.04em;font-size:2rem;font-weight:800}.cluster{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.section{flex-direction:column;gap:.75rem;display:flex}.section-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-head h2{letter-spacing:-.032em;font-size:1.28rem;font-weight:700}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.8rem 1rem}.table thead th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.09em;color:color-mix(in srgb, var(--text) 62%, var(--text-muted));border-bottom:2px solid var(--border-strong);font-size:.72rem;font-weight:700;position:sticky;top:0}.table thead th:first-child{border-top-left-radius:var(--radius)}.table thead th:last-child{border-top-right-radius:var(--radius)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background .12s}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .strong,.strong{font-weight:600}.row-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.05em;background:var(--tone-soft,var(--surface-2));color:var(--tone,var(--text-muted));border:1.5px solid #0000;border-color:color-mix(in srgb, var(--tone,var(--border-strong)) 38%, transparent);border-radius:999px;align-items:center;padding:.12rem .6rem;font-size:.72rem;font-weight:700;line-height:1.6;display:inline-flex}.badge.gray{--tone:var(--c-slate);--tone-soft:var(--c-slate-soft)}.badge.blue{--tone:var(--c-indigo);--tone-soft:var(--c-indigo-soft)}.badge.green{--tone:var(--c-green);--tone-soft:var(--c-green-soft)}.badge.red{--tone:var(--c-rose);--tone-soft:var(--c-rose-soft)}.badge.amber{--tone:var(--c-amber);--tone-soft:var(--c-amber-soft)}.badge.indigo{--tone:var(--c-violet);--tone-soft:var(--c-violet-soft)}.pipeline{flex-wrap:wrap;gap:.5rem;display:flex}.pipeline-chip{border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.38rem .8rem;font-size:.88rem;font-weight:600;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.pipeline-chip:hover{color:var(--text);border-color:color-mix(in srgb, var(--primary) 55%, var(--border))}.pipeline-chip.active{border-color:var(--primary);background:var(--primary);color:var(--primary-contrast)}.pipeline-chip.active .pipeline-count,.pipeline-chip.active:hover{color:var(--primary-contrast)}.pipeline-chip.active .pipeline-dot{background:currentColor}.pipeline-count{color:var(--text);font-weight:700}.pipeline-dot{border-radius:50%;width:.55rem;height:.55rem}.pipeline-dot.gray{background:var(--c-slate)}.pipeline-dot.blue{background:var(--c-indigo)}.pipeline-dot.green{background:var(--c-green)}.pipeline-dot.red{background:var(--c-rose)}.pipeline-dot.amber{background:var(--c-amber)}.pipeline-dot.indigo{background:var(--c-violet)}.back-link{color:var(--text-muted);width:fit-content;font-size:.9rem;text-decoration:none}.back-link:hover{color:var(--text)}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem 1.5rem;padding:1.25rem;display:grid}.detail{flex-direction:column;gap:.2rem;min-width:0;display:flex}.detail.wide{grid-column:1/-1}.detail-label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);font-size:.72rem;font-weight:700}.detail-value{white-space:pre-wrap;word-break:break-word}.contact-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;display:grid}.contact-card{flex-direction:column;gap:.25rem;padding:1rem;display:flex}.contact-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.15rem;display:flex}.contact-note{white-space:pre-wrap;margin-top:.35rem;font-size:.88rem}.project-card{flex-direction:column;gap:.9rem;padding:1.1rem 1.25rem;display:flex}.project-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.project-title{align-items:center;gap:.6rem;display:flex}.tasks{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding-top:.8rem;display:flex}.tasks-head{justify-content:space-between;align-items:center;display:flex}.task-row{border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem .5rem;display:flex}.task-name{font-size:.92rem}.field{flex-direction:column;gap:.35rem;display:flex}.field span{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:.76rem;font-weight:700}.field input,.field select,.field textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;width:100%;padding:.55rem .7rem;transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.form-grid{grid-template-columns:repeat(2,1fr);gap:.85rem;display:grid}.mini-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:.28rem .5rem;font-size:.82rem}.recurring-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:.75rem;padding:.9rem 1rem;display:flex}.check{cursor:pointer;align-items:center;gap:.55rem;font-weight:500;display:flex}.withheld-picker{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:.4rem;padding:.9rem 1rem;display:flex}.field-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:.76rem;font-weight:700}.withheld-row{font-weight:400}.withheld-no{font-weight:600}.withheld-amt{font-variant-numeric:tabular-nums;margin-left:auto}.check input{width:1.05rem;height:1.05rem;accent-color:var(--primary);cursor:pointer}.field-static{border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);padding:.55rem .7rem;font-weight:600}.field-hint{color:var(--text-muted);font-size:.82rem;font-weight:400}.field-hint a{color:var(--primary)}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tag{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .3rem .25rem .65rem;font-size:.85rem;display:inline-flex}.tag button{width:1.15rem;height:1.15rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}.tag button:hover{background:var(--danger-bg);color:var(--danger)}.tag-add{gap:.5rem;display:flex}.tag-add input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);flex:1;padding:.55rem .7rem}.tag-add input:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.effort{flex-direction:column;gap:.6rem;display:flex}.effort-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.month-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;padding:.35rem .5rem}.effort-table th.tick,.effort-table td.tick{text-align:center;width:1.8rem}.effort-table td{vertical-align:top}.effort-table tr.excluded td{opacity:.45}.effort-table tr.effort-total td{border-top:2px solid var(--border);border-bottom:none}.hours-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:4.5rem;color:var(--text);font:inherit;text-align:right;padding:.3rem .4rem}.hours-input:disabled{opacity:.5}.settings-form{flex-direction:column;gap:1rem;max-width:640px;padding:1.5rem;display:flex}.settings-actions{justify-content:flex-end;align-items:center;gap:.9rem;margin-top:.25rem;display:flex}.saved-note{color:var(--primary);font-size:.9rem;font-weight:550}.modal-overlay{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;justify-content:center;align-items:flex-start;padding:3rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:560px;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-head h3{letter-spacing:-.03em;font-size:1.25rem;font-weight:700}.modal-body{padding:1.25rem}.modal-foot{border-top:1px solid var(--border);padding:.9rem 1.25rem}.modal-actions{align-items:center;gap:.5rem;display:flex}.modal-actions .spacer{flex:1}.totals{background:var(--surface-2);border-radius:var(--radius-sm);flex-direction:column;gap:.35rem;padding:.85rem 1rem;font-size:.9rem;display:flex}.totals>div{justify-content:space-between;display:flex}.totals-net{border-top:2px solid color-mix(in srgb, var(--primary) 50%, var(--border));margin-top:.1rem;padding-top:.35rem;font-weight:700}.stack{flex-direction:column;gap:.85rem;display:flex}.stack-tight{flex-direction:column;gap:.35rem;display:flex}.link-button{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.link-button:hover{color:var(--primary-hover)}.muted{color:var(--text-muted)}.small{font-size:.88rem}.link{color:var(--primary);font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}.link-quiet{color:inherit;font-weight:600;text-decoration:none}.link-quiet:hover{color:var(--primary);text-decoration:underline}.loading{color:var(--text-muted);align-items:center;gap:.6rem;padding:1.5rem 0;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:1.1rem;height:1.1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.list-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .25rem 0;display:flex}.empty-block{border:2px dashed var(--border-strong);border-radius:var(--radius);text-align:center;padding:2rem 1.5rem}.empty-title{margin-bottom:.25rem;font-weight:600}.empty-state{text-align:center;min-height:40vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex}.empty-state h2{color:var(--text);font-size:1.3rem}.invoice-overlay{z-index:60;background:var(--scrim);flex-direction:column;display:flex;position:fixed;inset:0}.invoice-toolbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.invoice-toolbar-title{font-weight:600}.invoice-scroll{flex:1;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;overflow:auto}.invoice-sheet{box-sizing:border-box;color:#221310;background:#fffdf8;width:210mm;max-width:100%;min-height:297mm;padding:16mm;font-size:12px;line-height:1.5;box-shadow:0 10px 40px #0000004d}.invoice-sheet .inv-label{text-transform:uppercase;letter-spacing:.08em;color:#7b594b;margin-bottom:2px;font-size:9px;display:block}.invoice-sheet .inv-top{border-bottom:3px solid #a4161a;justify-content:space-between;align-items:flex-start;padding-bottom:12px;display:flex}.invoice-sheet .inv-biz-name{font-family:var(--font-display);letter-spacing:-.035em;font-size:24px;font-weight:800}.invoice-sheet .inv-biz-meta{color:#5c4034;gap:14px;margin-top:4px;display:flex}.invoice-sheet .inv-biz-addr{color:#5c4034;white-space:pre-wrap;max-width:70mm;margin-top:4px}.invoice-sheet .inv-title{font-family:var(--font-display);letter-spacing:.14em;color:#a4161a;font-size:18px;font-weight:700}.invoice-sheet .inv-meta{gap:32px;margin-top:16px;display:flex}.invoice-sheet .inv-value{font-size:13px;font-weight:600}.invoice-sheet .inv-billto{margin-top:18px}.invoice-sheet .inv-billto-name{font-size:14px;font-weight:600}.invoice-sheet .inv-billto-line{color:#5c4034;white-space:pre-wrap}.invoice-sheet .inv-lines{border-collapse:collapse;width:100%;margin-top:20px}.invoice-sheet .inv-lines th,.invoice-sheet .inv-lines td{border-bottom:1px solid #ecdcc2;padding:8px 10px}.invoice-sheet .inv-lines thead th{text-transform:uppercase;letter-spacing:.06em;color:#7b594b;text-align:right;background:#f7eedd;border-bottom:1px solid #cdb188;font-size:9px}.invoice-sheet .inv-lines .l{text-align:left}.invoice-sheet .inv-lines .inv-desc{white-space:pre-wrap}.invoice-sheet .inv-lines .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-sheet .inv-bottom{justify-content:space-between;gap:24px;margin-top:20px;display:flex}.invoice-sheet .inv-words{max-width:90mm;font-style:italic}.invoice-sheet .inv-words>div{margin-top:2px;font-style:normal;font-weight:600}.invoice-sheet .inv-totals{width:80mm;max-width:100%}.invoice-sheet .inv-totals>div{justify-content:space-between;padding:4px 0;display:flex}.invoice-sheet .inv-totals-strong{border-top:1px solid #cdb188;margin-top:4px;font-weight:600}.invoice-sheet .inv-totals-net{border-top:2px solid #a4161a;margin-top:4px;font-size:14px;font-weight:700;padding-top:8px!important}.invoice-sheet .inv-pay{background:#fbf5e9;border:1px solid #ecdcc2;border-radius:4px;margin-top:22px;padding:10px 12px}.invoice-sheet .inv-pay-body{white-space:pre-wrap}.invoice-sheet .inv-release{margin-top:22px}.invoice-sheet .inv-release .inv-label{margin-bottom:6px}.invoice-sheet .inv-release-total{font-weight:700}.invoice-sheet .inv-notes{color:#7b594b;margin-top:18px;font-size:10px}.invoice-sheet .inv-foot{color:#5c4034;border-top:1px solid #ecdcc2;justify-content:space-between;margin-top:28px;padding-top:12px;display:flex}@media print{body{background:#fff}body *{visibility:hidden}.invoice-print,.invoice-print *{visibility:visible}.invoice-print{width:100%;position:absolute;top:0;left:0}.invoice-sheet{width:100%;min-height:auto;box-shadow:none;padding:0}.no-print{display:none!important}}@page{size:A4;margin:14mm}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page{animation:.34s both rise}.tone-indigo,.tone-blue{--tone:var(--c-indigo);--tone-soft:var(--c-indigo-soft)}.tone-violet{--tone:var(--c-violet);--tone-soft:var(--c-violet-soft)}.tone-teal{--tone:var(--c-teal);--tone-soft:var(--c-teal-soft)}.tone-green{--tone:var(--c-green);--tone-soft:var(--c-green-soft)}.tone-red{--tone:var(--c-rose);--tone-soft:var(--c-rose-soft)}.tone-slate,.tone-gray{--tone:var(--c-slate);--tone-soft:var(--c-slate-soft)}.seg-gray{background:var(--c-slate)}.seg-blue{background:var(--c-indigo)}.seg-green{background:var(--c-green)}.seg-red{background:var(--c-rose)}.seg-amber{background:var(--c-amber)}.seg-indigo{background:var(--c-violet)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,2fr));gap:.85rem;display:grid}.stat-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);flex-direction:column;gap:.15rem;padding:1.1rem 1.15rem;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;animation:.4s both rise;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";pointer-events:none;background:radial-gradient(180px 120px at 100% 0%, var(--tone-soft), transparent 72%);opacity:.85;position:absolute;inset:0}.stat-card:nth-child(2){animation-delay:50ms}.stat-card:nth-child(3){animation-delay:.1s}.stat-card:nth-child(4){animation-delay:.15s}.stat-card:nth-child(5){animation-delay:.2s}.stat-card:hover{border-color:color-mix(in srgb, var(--tone) 30%, var(--border-strong));box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{width:2.25rem;height:2.25rem;color:var(--surface);background:var(--tone);border-radius:10px;justify-content:center;align-items:center;margin-bottom:.6rem;font-size:1.2rem;display:inline-flex;position:relative}.stat-value{font-family:var(--font-display);letter-spacing:-.045em;font-size:1.9rem;font-weight:800;position:relative}.stat-label{text-transform:uppercase;letter-spacing:.06em;font-size:.86rem;font-weight:700;position:relative}.stat-sub{color:var(--text-muted);font-size:.82rem;position:relative}.stat-fy{border-top:1px solid var(--border);color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:baseline;gap:.4rem;margin-top:.35rem;padding-top:.35rem;font-size:.78rem;font-weight:400;display:flex;position:relative}.stat-fy-label{text-transform:uppercase;letter-spacing:.06em;opacity:.8;font-size:.68rem}.stat-fy-value{color:var(--text);opacity:.85;font-weight:600}.stat-go{color:var(--tone);opacity:0;font-size:1.05rem;transition:opacity .18s,transform .18s;position:absolute;top:1.2rem;right:1.1rem;transform:translate(-4px)}.stat-card:hover .stat-go{opacity:1;transform:translate(0)}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.dash-panel{flex-direction:column;gap:.9rem;padding:1.25rem 1.35rem;display:flex}.dash-panel-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.dash-panel-head h2{letter-spacing:-.03em;font-size:1.2rem;font-weight:700}.link-arrow{color:var(--primary);align-items:center;gap:.3rem;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-flex}.link-arrow svg{font-size:.9rem;transition:transform .15s}.link-arrow:hover svg{transform:translate(3px)}.bar{background:var(--surface-2);border-radius:999px;height:12px;display:flex;overflow:hidden}.bar .seg{min-width:4px;transition:flex-grow .4s}.bar .seg+.seg{border-left:2px solid var(--surface)}.bar-legend{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.legend-item{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.legend-dot{border-radius:50%;width:.6rem;height:.6rem}.legend-n{color:var(--text);font-weight:700}.recent-list{flex-direction:column;display:flex}.recent-row{border-radius:var(--radius-sm);border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:.85rem;padding:.65rem .4rem;text-decoration:none;transition:background .12s;display:flex}.recent-row:last-child{border-bottom:none}.recent-row:hover{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.recent-no{font-variant-numeric:tabular-nums;color:var(--text-muted);min-width:4.5rem;font-weight:600}.recent-client{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.recent-amt{font-variant-numeric:tabular-nums;font-weight:600}.card{transition:box-shadow .18s,transform .18s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=760px){.layout{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;gap:.75rem;height:auto;position:static}.nav{flex-flow:wrap;flex:100%;order:3}.sidebar-foot{flex-direction:row;align-items:center;gap:.75rem}.sidebar-user{display:none}.form-grid{grid-template-columns:1fr}}
