:root{--brand-navy:#102a43;--brand-navy-deep:#081c2e;--brand-coral:#e84a35;--brand-coral-dark:#c93a29;--brand-coral-light:#fde8e4;--brand-green:#0b7a4b;--brand-amber:#d89a21;--surface:#fff;--surface-soft:#f1f5f3;--surface-warm:#fff9f5;--text-primary:#102a43;--text-secondary:#5f7185;--text-muted:#8b9aad;--border:#dce5ea;--border-strong:#c7d4dc;--success:#0b7a4b;--success-light:#e8f6ef;--warning:#d88a16;--warning-light:#fff4d9;--danger:#c93636;--danger-light:#fceaea;--info:#2877c7;--info-light:#eaf3fc;--paper:#f6f8f7;--card:#fff;--input-bg:#f1f5f3;--ink:#102a43;--sage:#5f7185;--subtle:#8b9aad;--line:#dce5ea;--line-strong:#c7d4dc;--navy:#102a43;--navy-light:#1b3d5e;--navy-deep:#081c2e;--leaf:#e84a35;--leaf-dark:#c93a29;--green:#0b7a4b;--green-light:#e8f6ef;--amber:#d89a21;--amber-light:#fff4d9;--tomato:#c93636;--tomato-light:#fceaea;--teal:#2877c7;--teal-light:#eaf3fc;--green-ink:#0b7a4b;--tomato-ink:#b4322f;--amber-ink:#8c6a1f;--teal-ink:#1f63ad;--shadow-sm:0 1px 3px #102a430f;--shadow-md:0 4px 12px #102a4314;--shadow-lg:0 12px 30px #102a431a;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--font-display:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-body:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}[data-mode=dark]{--paper:#0e1b24;--card:#152532;--input-bg:#1b2c3a;--surface:#152532;--surface-soft:#1b2c3a;--surface-warm:#1e2833;--ink:#e7edf3;--text-primary:#e7edf3;--sage:#9db0c2;--text-secondary:#9db0c2;--subtle:#6e8093;--text-muted:#6e8093;--line:#26384a;--line-strong:#375069;--border:#26384a;--border-strong:#375069;--green-ink:#4ade80;--tomato-ink:#f98a82;--amber-ink:#f2c14e;--teal-ink:#6fb0f0;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #00000059, 0 2px 4px #0003;--shadow-lg:0 12px 30px #00000073, 0 4px 8px #00000040}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/plus-jakarta-sans.woff2)format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/playfair-display.woff2)format("woff2")}@font-face{font-family:Dancing Script;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/dancing-script.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.woff2)format("woff2")}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}.disp{font-family:var(--font-display)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:inherit}button{font-family:inherit}.skeleton{background:linear-gradient(90deg, var(--line) 25%, var(--line-strong) 37%, var(--line) 63%);background-size:400% 100%;border-radius:6px;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.app-shell{min-height:100%}.app-sidebar{z-index:200;background:var(--navy-deep);flex-direction:column;width:232px;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}.app-scrim{z-index:190;opacity:0;pointer-events:none;background:#08142680;transition:opacity .2s;position:fixed;inset:0}.app-scrim.open{opacity:1;pointer-events:auto}.app-main{flex-direction:column;min-width:0;min-height:100vh;display:flex}.app-topbar{z-index:100;background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:9px 14px;display:flex;position:sticky;top:0}.app-hamburger{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--input-bg);width:38px;height:38px;color:var(--ink);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-bottomnav{z-index:150;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 14px #102a430f}.app-tab{cursor:pointer;color:var(--text-muted);font-family:var(--font-display);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 2px;font-size:10.5px;font-weight:600;text-decoration:none;display:flex}.app-tab.active{color:var(--brand-coral)}.app-fab{border:4px solid var(--card);background:var(--brand-coral);color:#fff;cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;width:52px;height:52px;margin-top:-20px;display:flex;box-shadow:0 6px 16px #e84a3566}.app-content{flex:1;padding-bottom:76px}@media (width>=900px){.app-bottomnav{display:none}.app-content{padding-bottom:0}.app-sidebar{transform:none}.app-main{margin-left:232px}.app-scrim,.app-hamburger{display:none}}@media (prefers-reduced-motion:reduce){.app-sidebar,.app-scrim{transition:none}}.saved-overlay{z-index:150;position:fixed;inset:0}@media (width>=900px){.saved-overlay{left:232px}}#print-area{display:none}@media print{body *{visibility:hidden}#print-area,#print-area *{visibility:visible}#print-area{width:100%;display:block;position:absolute;top:0;left:0}}
