:root,[data-theme=light]{--bg: oklch(.985 .006 85);--bg-elev: oklch(1 0 0);--bg-sunken: oklch(.96 .008 85);--bg-hover: oklch(.94 .01 85);--border: oklch(.9 .01 85);--border-strong: oklch(.82 .015 85);--text: oklch(.22 .015 270);--text-muted: oklch(.5 .015 270);--text-faint: oklch(.68 .015 270);--shadow-sm: 0 1px 2px oklch(.2 .02 270 / .05), 0 1px 3px oklch(.2 .02 270 / .04);--shadow-md: 0 4px 12px oklch(.2 .02 270 / .06), 0 2px 4px oklch(.2 .02 270 / .04);--shadow-lg: 0 20px 40px oklch(.2 .02 270 / .12), 0 8px 16px oklch(.2 .02 270 / .06);--c-rose: oklch(.72 .18 20);--c-rose-bg: oklch(.95 .04 20);--c-rose-ink: oklch(.4 .15 20);--c-orange: oklch(.76 .17 55);--c-orange-bg: oklch(.96 .04 55);--c-orange-ink: oklch(.45 .15 55);--c-amber: oklch(.82 .15 85);--c-amber-bg: oklch(.96 .04 85);--c-amber-ink: oklch(.48 .13 85);--c-lime: oklch(.82 .18 135);--c-lime-bg: oklch(.95 .05 135);--c-lime-ink: oklch(.42 .14 135);--c-teal: oklch(.75 .12 195);--c-teal-bg: oklch(.95 .03 195);--c-teal-ink: oklch(.42 .1 195);--c-blue: oklch(.68 .17 255);--c-blue-bg: oklch(.95 .04 255);--c-blue-ink: oklch(.4 .15 255);--c-violet: oklch(.68 .18 295);--c-violet-bg: oklch(.95 .04 295);--c-violet-ink: oklch(.4 .16 295);--c-pink: oklch(.74 .18 340);--c-pink-bg: oklch(.96 .04 340);--c-pink-ink: oklch(.42 .16 340);--accent: var(--c-violet);--accent-bg: var(--c-violet-bg);--accent-ink: var(--c-violet-ink)}[data-theme=dark]{--bg: oklch(.18 .015 270);--bg-elev: oklch(.22 .015 270);--bg-sunken: oklch(.15 .015 270);--bg-hover: oklch(.26 .02 270);--border: oklch(.3 .015 270);--border-strong: oklch(.4 .02 270);--text: oklch(.96 .005 270);--text-muted: oklch(.7 .015 270);--text-faint: oklch(.55 .015 270);--shadow-sm: 0 1px 2px oklch(0 0 0 / .4);--shadow-md: 0 4px 12px oklch(0 0 0 / .35), 0 2px 4px oklch(0 0 0 / .3);--shadow-lg: 0 20px 40px oklch(0 0 0 / .5), 0 8px 16px oklch(0 0 0 / .3);--c-rose: oklch(.72 .18 20);--c-rose-bg: oklch(.3 .08 20);--c-rose-ink: oklch(.88 .1 20);--c-orange: oklch(.76 .17 55);--c-orange-bg: oklch(.3 .08 55);--c-orange-ink: oklch(.88 .1 55);--c-amber: oklch(.82 .15 85);--c-amber-bg: oklch(.3 .07 85);--c-amber-ink: oklch(.9 .1 85);--c-lime: oklch(.82 .18 135);--c-lime-bg: oklch(.28 .08 135);--c-lime-ink: oklch(.88 .12 135);--c-teal: oklch(.75 .12 195);--c-teal-bg: oklch(.28 .06 195);--c-teal-ink: oklch(.88 .08 195);--c-blue: oklch(.7 .17 255);--c-blue-bg: oklch(.28 .09 255);--c-blue-ink: oklch(.88 .12 255);--c-violet: oklch(.72 .18 295);--c-violet-bg: oklch(.28 .09 295);--c-violet-ink: oklch(.88 .12 295);--c-pink: oklch(.74 .18 340);--c-pink-bg: oklch(.3 .09 340);--c-pink-ink: oklch(.88 .12 340);--accent: var(--c-violet);--accent-bg: var(--c-violet-bg);--accent-ink: var(--c-violet-ink)}[data-theme=warm]{--bg: oklch(.96 .02 65);--bg-elev: oklch(.99 .012 70);--bg-sunken: oklch(.93 .025 65);--bg-hover: oklch(.91 .03 65);--border: oklch(.88 .025 65);--border-strong: oklch(.78 .035 65);--text: oklch(.25 .03 40);--text-muted: oklch(.5 .03 40);--text-faint: oklch(.65 .025 40);--shadow-sm: 0 1px 2px oklch(.3 .05 40 / .06), 0 1px 3px oklch(.3 .05 40 / .05);--shadow-md: 0 4px 12px oklch(.3 .05 40 / .08), 0 2px 4px oklch(.3 .05 40 / .05);--shadow-lg: 0 20px 40px oklch(.3 .05 40 / .14), 0 8px 16px oklch(.3 .05 40 / .08);--c-rose: oklch(.68 .16 25);--c-rose-bg: oklch(.92 .05 25);--c-rose-ink: oklch(.4 .14 25);--c-orange: oklch(.72 .15 50);--c-orange-bg: oklch(.93 .05 50);--c-orange-ink: oklch(.43 .14 50);--c-amber: oklch(.78 .13 80);--c-amber-bg: oklch(.93 .05 80);--c-amber-ink: oklch(.45 .12 80);--c-lime: oklch(.76 .14 130);--c-lime-bg: oklch(.92 .05 130);--c-lime-ink: oklch(.42 .12 130);--c-teal: oklch(.7 .1 190);--c-teal-bg: oklch(.92 .04 190);--c-teal-ink: oklch(.4 .09 190);--c-blue: oklch(.64 .14 250);--c-blue-bg: oklch(.92 .04 250);--c-blue-ink: oklch(.38 .13 250);--c-violet: oklch(.64 .15 295);--c-violet-bg: oklch(.92 .05 295);--c-violet-ink: oklch(.38 .14 295);--c-pink: oklch(.7 .16 340);--c-pink-bg: oklch(.93 .05 340);--c-pink-ink: oklch(.42 .14 340);--accent: var(--c-orange);--accent-bg: var(--c-orange-bg);--accent-ink: var(--c-orange-ink)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Geist,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;color:inherit}.font-serif{font-family:"Instrument Serif",Georgia,serif}.font-mono{font-family:Geist Mono,JetBrains Mono,ui-monospace,monospace}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--bg-sunken);border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 12px 24px;font-family:"Instrument Serif",serif;font-size:28px;letter-spacing:-.02em}.brand-logo{width:48px;height:48px;border-radius:12px;object-fit:contain;display:block}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;font-size:14px;color:var(--text-muted);transition:background .12s,color .12s;text-align:left;width:100%}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm);font-weight:500}.nav-item .nav-icon{width:18px;height:18px;border-radius:5px;flex-shrink:0}.nav-icon-slot{width:22px;height:18px;display:inline-flex;align-items:center;justify-content:flex-start;flex-shrink:0}.main{padding:32px 40px 120px;max-width:1600px;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px;gap:24px}.page-title{font-family:"Instrument Serif",serif;font-size:52px;line-height:1;letter-spacing:-.02em;margin:0;font-weight:400}.page-subtitle{color:var(--text-muted);font-size:14px;margin-top:8px}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;font-size:13px;font-weight:500;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);transition:all .12s;box-shadow:var(--shadow-sm)}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn-primary{background:var(--text);color:var(--bg-elev);border-color:var(--text)}.btn-primary:hover{opacity:.88;background:var(--text)}.btn-ghost{border-color:transparent;background:transparent;box-shadow:none}.btn-ghost:hover{background:var(--bg-hover)}.btn-icon{width:36px;height:36px;padding:0;justify-content:center}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:500;font-family:Geist Mono,monospace;letter-spacing:.01em}.tag-rose{background:var(--c-rose-bg);color:var(--c-rose-ink)}.tag-orange{background:var(--c-orange-bg);color:var(--c-orange-ink)}.tag-amber{background:var(--c-amber-bg);color:var(--c-amber-ink)}.tag-lime{background:var(--c-lime-bg);color:var(--c-lime-ink)}.tag-teal{background:var(--c-teal-bg);color:var(--c-teal-ink)}.tag-blue{background:var(--c-blue-bg);color:var(--c-blue-ink)}.tag-violet{background:var(--c-violet-bg);color:var(--c-violet-ink)}.tag-pink{background:var(--c-pink-bg);color:var(--c-pink-ink)}.tag-neutral{background:var(--bg-sunken);color:var(--text-muted);border:1px solid var(--border)}.input,.textarea{width:100%;background:var(--bg-sunken);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--text);outline:none;transition:border .12s,background .12s}.input:focus,.textarea:focus{border-color:var(--accent);background:var(--bg-elev)}.textarea{resize:vertical;min-height:80px;font-family:inherit}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02030973;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:900;display:flex;align-items:center;justify-content:center;padding:40px;animation:fadeIn .18s ease}.modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);max-height:90vh;overflow:auto;animation:slideUp .24s cubic-bezier(.2,.9,.3,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.cal-widget{position:fixed;bottom:24px;right:24px;width:280px;background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);z-index:500;cursor:pointer;overflow:hidden;transition:transform .16s,box-shadow .16s}.cal-widget:hover{transform:translateY(-2px);box-shadow:0 24px 48px #12161f26,0 10px 20px #12161f14}.cal-widget-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 8px}.cal-widget-title{font-family:"Instrument Serif",serif;font-size:20px;line-height:1}.cal-widget-expand{font-size:11px;color:var(--text-faint);font-family:Geist Mono,monospace}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;padding:0 12px 12px}.cal-dow{font-size:10px;color:var(--text-faint);font-family:Geist Mono,monospace;text-align:center;padding:4px 0;text-transform:uppercase}.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:12px;border-radius:6px;position:relative;color:var(--text)}.cal-day.other{color:var(--text-faint);opacity:.4}.cal-day.today{background:var(--accent);color:#fff;font-weight:600}.cal-day.has-event:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--c-pink)}.cal-day.today.has-event:after{background:#fff}.cal-next-event{padding:10px 16px;border-top:1px solid var(--border);background:var(--bg-sunken);font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.cal-next-event .dot{width:6px;height:6px;border-radius:50%;background:var(--c-pink);flex-shrink:0}.row{display:flex;align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tweaks-panel{position:fixed;top:24px;right:24px;z-index:950;background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);padding:14px;width:240px}.tweaks-title{font-size:11px;font-family:Geist Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-bottom:10px}.tweaks-row{display:flex;gap:6px;margin-bottom:10px}.tweaks-row:last-child{margin-bottom:0}.theme-chip{flex:1;padding:8px;border-radius:8px;border:1px solid var(--border);font-size:11px;background:var(--bg-sunken);display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .12s}.theme-chip.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-ink)}.theme-chip-swatch{width:100%;height:20px;border-radius:4px}.input-label{display:block;font-size:11px;font-family:Geist Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-bottom:6px}.doc-print-scaler{transform:scale(.78);transform-origin:top center;width:100%;display:flex;justify-content:center}.doc-print-page{width:210mm;min-height:297mm;padding:20mm 18mm;background:#fff;color:#1a1a1a;font-family:Geist,sans-serif;font-size:10pt;line-height:1.5;box-shadow:0 2px 12px #12161f1a;box-sizing:border-box}.doc-print-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:20px;border-bottom:2px solid #1a1a1a;margin-bottom:28px}.doc-print-issuer-name{font-family:"Instrument Serif",serif;font-size:22pt;line-height:1;letter-spacing:-.02em;margin-bottom:10px}.doc-print-issuer-lines{font-size:9pt;color:#555;line-height:1.55}.doc-print-meta{text-align:right}.doc-print-title{font-family:"Instrument Serif",serif;font-size:26pt;letter-spacing:-.02em;line-height:1;margin-bottom:6px}.doc-print-number{font-family:Geist Mono,monospace;font-size:10pt;color:#555;margin-bottom:10px}.doc-print-meta-table{margin-left:auto;font-size:9pt;border-collapse:collapse}.doc-print-meta-table td{padding:2px 0 2px 14px;text-align:right}.doc-print-meta-table td:first-child{color:#888;text-transform:uppercase;letter-spacing:.06em;font-size:8pt;padding-right:10px;padding-left:0}.doc-print-client{padding:14px 16px;background:#fafafa;border:1px solid #eee;border-radius:4px;margin-bottom:24px;font-size:9.5pt;line-height:1.55}.doc-print-client-label{font-family:Geist Mono,monospace;font-size:8pt;text-transform:uppercase;letter-spacing:.08em;color:#888;margin-bottom:6px}.doc-print-client-name{font-weight:600;font-size:11pt;margin-bottom:3px}.doc-print-table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:9.5pt}.doc-print-table th{text-align:left;padding:8px 10px;border-bottom:1.5px solid #1a1a1a;font-size:8pt;text-transform:uppercase;letter-spacing:.08em;color:#555;font-weight:600;font-family:Geist Mono,monospace}.doc-print-table td{padding:10px;border-bottom:1px solid #eee;vertical-align:top}.doc-print-table .num{text-align:right;font-family:Geist Mono,monospace;font-variant-numeric:tabular-nums}.doc-print-totals-wrap{display:flex;justify-content:flex-end;margin-bottom:28px}.doc-print-totals{width:260px;font-size:10pt}.doc-print-total-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #eee}.doc-print-total-row .num{font-family:Geist Mono,monospace;font-variant-numeric:tabular-nums}.doc-print-total-final{font-weight:600;font-size:12pt;border-top:2px solid #1a1a1a;border-bottom:none!important;margin-top:6px;padding-top:10px}.doc-print-notes{display:grid;gap:14px;margin-bottom:24px}.doc-print-notes-block{padding:12px 14px;background:#fafafa;border-radius:4px;font-size:9pt;line-height:1.6;white-space:pre-wrap}.doc-print-notes-label{font-family:Geist Mono,monospace;font-size:8pt;text-transform:uppercase;letter-spacing:.08em;color:#888;margin-bottom:4px}.doc-print-footer{padding-top:14px;border-top:1px solid #ddd;font-size:8.5pt;color:#666;line-height:1.6;display:grid;gap:4px}@media print{@page{size:A4;margin:0}body.printing-doc>#root{display:none!important}body.printing-doc #__doc-print-host .doc-print-scaler{transform:none}body.printing-doc #__doc-print-host .doc-print-page{box-shadow:none;margin:0}}@keyframes spin{to{transform:rotate(360deg)}}.card-hover{transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.row-hover{transition:background .12s ease}.row-hover:hover{background:var(--bg-hover)}.link-accent{color:var(--text);transition:color .12s ease}.link-accent:hover{color:var(--accent-ink)}.client-card-hover{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.client-card-hover:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--hover-border, var(--border-strong))}.client-card-hover:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-signin{transition:all .12s ease}.btn-signin:hover{background:var(--bg-hover);box-shadow:var(--shadow-md)}.account-pick{transition:all .12s ease}.account-pick:hover{border-color:var(--accent)!important;background:var(--accent-bg)!important}.menu-item{transition:background .12s ease}.menu-item:hover{background:var(--bg-hover)}.danger-item{transition:background .12s ease}.danger-item:hover{background:var(--c-rose-bg)}.kanban-card-hover{transition:opacity .12s ease,transform .12s ease,box-shadow .12s ease}.kanban-card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.note-item{transition:background .12s ease;background:transparent}.note-item.is-active{background:var(--accent-bg)}.note-item:hover:not(.is-active){background:var(--bg-hover)}.picker-item{transition:background .12s ease;background:transparent}.picker-item.is-active,.picker-item:hover{background:var(--bg-hover)}.client-card-edit{opacity:.6;transition:opacity .12s ease}.client-card-edit:hover,.client-card-edit:focus-visible{opacity:1}.btn:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
