:root{--brand:#e2725b;--brand-dark:#c45a45;--brand-soft:#f7e4df;--ink:#2c1810;--muted:#6d564c;--surface:#f6f0ea;--panel:#fffdfb;--line:#e6d7cf;--danger:#b42318;--ok:#2f6f4e;--radius:10px;--shadow:0 10px 30px #2c181014;--font:"Segoe UI", "Avenir Next", "Helvetica Neue", sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 0 0,#e2725b2e,#0000 40%),linear-gradient(160deg,#f8f2ec 0%,#efe4dc 45%,#f6f0ea 100%);margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#fffdfbeb;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;align-items:center;gap:.75rem;font-weight:700;display:flex}.brand img{width:36px;height:36px}.nav{flex-wrap:wrap;gap:.35rem;display:flex}.nav a{color:var(--muted);border-radius:999px;padding:.45rem .75rem}.nav a.active,.nav a:hover{background:var(--brand-soft);color:var(--brand-dark)}.userbox{align-items:center;gap:.75rem;display:flex}.badge{background:var(--brand);color:#fff;text-transform:capitalize;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.page{width:min(1100px,100% - 2rem);margin:1.5rem auto 2.5rem}.page-header{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;display:flex}.page-header h1{margin:0;font-size:1.6rem}.page-header p{color:var(--muted);margin:.35rem 0 0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.75rem;padding:1rem;display:flex}.toolbar input,.toolbar select{border:1px solid var(--line);background:#fff;border-radius:8px;flex:1;min-width:180px;padding:.65rem .8rem}.btn{appearance:none;background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1rem;font-weight:600}.btn:hover{background:var(--brand-dark)}.btn.secondary{color:var(--ink);border:1px solid var(--line);background:#fff}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.85rem 1rem}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#faf6f3;font-size:.8rem}.stats-grid{gap:1rem;display:grid}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.4rem}.stat-card h2{color:var(--muted);margin:0 0 .35rem;font-size:1rem;font-weight:600}.stat-card .value{color:var(--brand-dark);font-size:2rem;font-weight:700}.stat-card .meta{color:var(--muted);margin-top:.35rem;font-size:.9rem}.login-page{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);width:min(400px,100%);box-shadow:var(--shadow);text-align:center;border-radius:16px;padding:2rem 1.5rem}.login-card img{width:72px;height:72px;margin-bottom:.75rem}.login-card h1{margin:0 0 .25rem}.login-card p{color:var(--muted);margin:0 0 1.25rem}.form{text-align:left;gap:.75rem;display:grid}.form label{color:var(--muted);gap:.35rem;font-size:.9rem;display:grid}.form input,.form select,.form textarea{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.7rem .8rem}.error{color:var(--danger);font-size:.9rem}.modal-backdrop{z-index:50;background:#2c181066;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);border-radius:12px;padding:1.25rem}.modal h3{margin:0 0 .5rem}.modal p{color:var(--muted);margin:0 0 1rem}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.stub{color:var(--muted);padding:2rem 1.25rem}.row-actions{flex-wrap:wrap;gap:.4rem;display:flex}@media (width<=800px){.topbar,.page-header{flex-direction:column;align-items:stretch}th:nth-child(n+4),td:nth-child(n+4){display:none}}
