@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=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root,[data-theme=light]{--bg:#f6f3ee;--bg-elevated:#fff;--bg-muted:#ebe6dc;--text:#1c1917;--text-muted:#57534e;--border:#e7e0d5;--primary:#0f766e;--primary-hover:#115e59;--primary-soft:#ccfbf1;--danger:#b91c1c;--warning:#c2410c;--success:#15803d;--shadow:0 1px 2px #1c19170f, 0 8px 24px #1c19170f;--radius:12px;--sidebar:#0f3d3a;--sidebar-text:#ecfdf5;--font:"DM Sans", system-ui, sans-serif;--font-display:"Fraunces", Georgia, serif}[data-theme=dark]{--bg:#0c1211;--bg-elevated:#15201e;--bg-muted:#1c2a27;--text:#f5f5f4;--text-muted:#a8a29e;--border:#2a3b37;--primary:#2dd4bf;--primary-hover:#5eead4;--primary-soft:#134e4a;--danger:#f87171;--warning:#fb923c;--success:#4ade80;--shadow:0 1px 2px #0006, 0 12px 32px #00000059;--sidebar:#071412;--sidebar-text:#ecfdf5}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,.brand-mark{font-family:var(--font-display);letter-spacing:-.02em}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:10;position:sticky;top:0}}.sidebar{background:linear-gradient(180deg, var(--sidebar), #0a2e2b);color:var(--sidebar-text);flex-direction:column;gap:1rem;padding:1.25rem 1rem 2rem;display:flex}.sidebar nav{flex-direction:column;gap:.25rem;display:flex}.sidebar a{color:#ecfdf5d1;border-radius:10px;padding:.65rem .85rem}.sidebar a.active,.sidebar a:hover{color:#fff;background:#ffffff1a}.brand-block{padding:.5rem .75rem 1rem}.brand-block .name{font-family:var(--font-display);font-size:1.5rem}.brand-block .tag{opacity:.75;margin-top:.2rem;font-size:.8rem}.main{width:100%;max-width:1200px;padding:1.5rem clamp(1rem,3vw,2rem)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{margin:0;font-size:clamp(1.5rem,2vw,1.9rem)}.btn{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:.65rem 1rem;font-weight:600;transition:background .15s}.btn:hover{background:var(--primary-hover)}.btn.secondary{color:var(--text);border:1px solid var(--border);background:0 0}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.input,.select{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;width:100%;padding:.7rem .85rem}.field{flex-direction:column;gap:.35rem;margin-bottom:.9rem;display:flex}.field label{color:var(--text-muted);font-size:.875rem;font-weight:500}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;margin-bottom:1.25rem;display:grid}.stat{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.stat .label{color:var(--text-muted);font-size:.85rem}.stat .value{margin-top:.25rem;font-size:1.75rem;font-weight:700}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem .5rem}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.badge{background:var(--primary-soft);color:var(--primary-hover);border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge.warn{color:#9a3412;background:#ffedd5}.badge.danger{color:#991b1b;background:#fee2e2}[data-theme=dark] .badge.warn{color:#ffedd5;background:#7c2d12}[data-theme=dark] .badge.danger{color:#fecaca;background:#7f1d1d}.auth-page{background:radial-gradient(1200px 600px at 10% -10%, #99f6e4 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #fed7aa 0%, transparent 50%), var(--bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid}[data-theme=dark] .auth-page{background:radial-gradient(1000px 500px at 0% 0%, #134e4a 0%, transparent 55%), radial-gradient(800px 400px at 100% 0%, #431407 0%, transparent 50%), var(--bg)}.auth-card{background:var(--bg-elevated);border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow);border-radius:18px;padding:1.75rem}.auth-card h1{margin:.25rem 0 .15rem;font-size:2rem}.muted{color:var(--text-muted)}.state-box{text-align:center;color:var(--text-muted);padding:2rem}.error-text{color:var(--danger);margin:.5rem 0;font-size:.9rem}.toast-stack{z-index:9999;pointer-events:none;flex-direction:column;gap:.6rem;width:min(360px,100vw - 2rem);display:flex;position:fixed;top:1rem;right:1rem}.toast{pointer-events:auto;cursor:pointer;box-shadow:var(--shadow);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:14px;padding:.85rem 1rem;animation:.18s ease-out toast-in}.toast-title{margin-bottom:.2rem;font-size:.9rem;font-weight:700}.toast-body{white-space:pre-wrap;font-size:.88rem;line-height:1.35}.toast-error{color:#fff;background:#b3261e;border-color:#b3261e}.toast-success{color:#fff;background:#0f766e;border-color:#0f766e}.toast-info{background:var(--bg-elevated)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row{flex-wrap:wrap;gap:.75rem;display:flex}.grow{flex:1;min-width:180px}
