:root{--font-display:"Spectral", Georgia, serif;--font-body:-apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, Menlo, monospace;--cream:oklch(96.5% .012 78);--cream-2:oklch(94.5% .016 76);--paper:oklch(99.2% .006 80);--line:oklch(88% .018 70);--line-soft:oklch(91% .014 72);--ink:oklch(25.5% .035 25);--ink-2:oklch(40% .03 28);--muted:oklch(54.5% .022 40);--faint:oklch(66% .018 50);--accent:#c0664a;--accent-deep:color-mix(in oklch, var(--accent) 74%, oklch(20% .05 30));--accent-soft:color-mix(in oklch, var(--accent) 24%, var(--cream));--t-rot:oklch(45% .135 18);--t-weiss:oklch(78% .115 92);--t-rose:oklch(76% .1 18);--t-schaum:oklch(85% .075 96);--t-suess:oklch(66% .12 62);--st-young:oklch(62% .1 250);--st-soon:oklch(70% .13 95);--st-peak:oklch(58% .12 150);--st-past:oklch(58% .13 30);--radius:16px;--radius-sm:10px;--radius-lg:24px;--shadow-sm:0 1px 2px oklch(30% .03 30/.06), 0 1px 3px oklch(30% .03 30/.05);--shadow-md:0 4px 14px oklch(30% .03 30/.08), 0 2px 6px oklch(30% .03 30/.06);--shadow-lg:0 12px 40px oklch(30% .03 30/.12), 0 4px 12px oklch(30% .03 30/.08)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{font-family:var(--font-body);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.card{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-btn{border:1px solid var(--line-soft);background:var(--paper);width:100%;font:inherit;color:inherit}.hero{background:linear-gradient(135deg, var(--paper), var(--accent-soft));padding:28px 32px}.input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:100%;font:inherit;color:var(--ink);padding:11px 14px}.input:focus{outline:2px solid color-mix(in oklch, var(--accent) 40%, transparent);border-color:var(--accent)}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{font:inherit;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--cream-2);color:var(--ink);border:1px solid var(--line)}.btn-danger{background:color-mix(in oklch, crimson 12%, var(--paper));color:#dc143c;border:1px solid oklch(57.1189% .221938 20.0874/.25)}.btn-ghost{color:var(--muted);background:0 0}.sidebar{border-right:1px solid var(--line-soft);background:var(--paper);flex-direction:column;flex:none;width:248px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.sidebar-brand{font-family:var(--font-display);align-items:center;gap:10px;padding:8px 10px 24px;font-size:20px;font-weight:600;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.nav-item{border-radius:var(--radius-sm);font:inherit;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;display:flex}.nav-item.active,.nav-item:hover{background:var(--accent-soft);color:var(--ink)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line-soft);background:var(--paper);z-index:10;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:sticky;top:0}.content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}.footer{color:var(--faint);text-align:center;padding:16px 24px;font-size:12px}.bottom-nav{background:var(--paper);border-top:1px solid var(--line-soft);padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:20;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--faint);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:6px 12px;font-size:10.5px;display:flex}.bottom-nav button.active{color:var(--ink);font-weight:600}.logo-mark{background:#2a1518;border-radius:10px;flex-shrink:0;width:36px;height:36px;position:relative;overflow:hidden}.logo-mark:after{content:"";background:var(--accent);border-radius:50% 50% 45% 45%;width:14px;height:18px;position:absolute;top:24%;left:50%;transform:translate(-50%)}.logo-mark.sm{width:28px;height:28px}.overlay{z-index:200;background:oklch(20% .03 30/.45);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.overlay-panel{background:var(--paper);border-radius:var(--radius-lg);width:min(640px,100%);max-height:90vh;box-shadow:var(--shadow-lg);padding:24px;overflow:auto}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.dropdown{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:50;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.dropdown-item{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;padding:10px 14px;display:flex}.dropdown-item:hover{background:var(--cream-2)}.tag{background:var(--cream-2);color:var(--ink-2);border:1px solid var(--line-soft);border-radius:999px;padding:4px 10px;font-size:12px}.toast{z-index:300;background:var(--ink);color:var(--cream);box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:9px;padding:12px 20px;font-size:14px;font-weight:500;display:flex;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.auth-page{background:radial-gradient(circle at top, var(--accent-soft), var(--cream));justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--paper);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow-lg);border:1px solid var(--line-soft);text-align:center;padding:32px}.auth-card h1{font-family:var(--font-display);margin-top:16px}.auth-sub{color:var(--muted);margin:8px 0 24px;font-size:14px}.auth-card form{text-align:left;flex-direction:column;gap:14px;display:flex}.auth-card label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.auth-error{color:#dc143c;font-size:13px}.loading{text-align:center;color:var(--muted);padding:48px}.table{border-collapse:collapse;width:100%;margin-top:12px;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line-soft);padding:10px 8px}.fade-up{animation:.35s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width<=767px){.content{padding:16px 16px 88px}}
