:root{--bg: #f5efda;--surface: #ffffff;--text: #235117;--muted: #4a5b45;--accent: #235117;--accent-strong: #1a3b10;--accent-soft: #ecf1e5;--border: #ded6bf;--gold: #f4b400;--positive: #2f7d32;--warning: #b7791f;--danger: #a3301f;--font: "League Spartan", "Helvetica Neue", Arial, sans-serif;--heading-weight: 800;--radius: 1.25rem;--shadow: 0 18px 40px rgba(15, 23, 42, .08);--shadow-sm: 0 2px 8px rgba(15, 23, 42, .06);--sidebar-w: 236px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-weight:500;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-weight:var(--heading-weight);letter-spacing:-.02em;margin:0;line-height:1.15}h1{font-size:1.75rem}h2{font-size:1.25rem;letter-spacing:-.01em}h3{font-size:1rem;letter-spacing:-.01em}a{color:var(--accent)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:600;color:var(--muted)}.shell{display:flex;min-height:100%}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--accent);color:#fff;padding:1.25rem .85rem;display:flex;flex-direction:column;gap:.15rem;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brandmark{padding:.35rem .6rem 1.1rem}.sidebar .brandmark .name{font-weight:800;font-size:1.3rem;letter-spacing:-.02em}.sidebar .brandmark .tag{font-size:.72rem;opacity:.75;line-height:1.3}.sidebar .navgroup{margin-top:.9rem;padding:0 .6rem .3rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;opacity:.6;font-weight:600}.navlink{display:flex;align-items:center;gap:.6rem;padding:.5rem .65rem;border-radius:.7rem;color:#fff;text-decoration:none;font-size:.9rem;font-weight:500;border:0;background:none;width:100%;text-align:left;cursor:pointer;font-family:inherit}.navlink:hover{background:#ffffff1f}.navlink.active{background:#fff;color:var(--accent);font-weight:700}.navlink .ico{width:1.1rem;text-align:center;font-size:.95rem}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.75rem .5rem}.content{padding:.75rem 1.75rem 3rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.15rem 1.25rem}.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.grid{display:grid;gap:1rem}.grid.k2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.k3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.k4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.k5{grid-template-columns:repeat(5,minmax(0,1fr))}.stat{display:flex;flex-direction:column;gap:.2rem}.stat .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.stat .value{font-size:1.65rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}.stat .sub{font-size:.78rem;color:var(--muted)}.delta{font-size:.75rem;font-weight:600}.delta.up{color:var(--positive)}.delta.down{color:var(--danger)}.table-wrap{overflow-x:auto;border-radius:.9rem}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700;padding:.5rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);position:sticky;top:0;z-index:1}tbody td{padding:.55rem .6rem;border-bottom:1px solid rgba(222,214,191,.6);vertical-align:middle}tbody tr:hover{background:var(--accent-soft)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;border:1px solid transparent;padding:.45rem 1rem;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;background:var(--accent);color:#fff;box-shadow:0 6px 16px #23511733}.btn:hover{background:var(--accent-strong)}.btn.ghost{background:transparent;color:var(--accent);border-color:var(--border);box-shadow:none}.btn.ghost:hover{background:var(--accent-soft)}.btn.danger{background:var(--danger);box-shadow:none}.btn.sm{padding:.25rem .7rem;font-size:.78rem}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:.875rem;color:var(--text);background:#fafafa;border:1px solid var(--border);border-radius:.6rem;padding:.4rem .6rem;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;background:#fff}label{font-size:.75rem;font-weight:600;color:var(--muted);display:block;margin-bottom:.2rem}.field{margin-bottom:.75rem}.cell-edit{background:transparent;border:1px solid transparent;padding:.2rem .35rem;border-radius:.4rem}.cell-edit:hover{border-color:var(--border);background:#fff}.cell-edit:focus{border-color:var(--accent);background:#fff}.pill{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.12rem .6rem;font-size:.72rem;font-weight:600;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.pill.grey{background:#eee;color:#555}.pill.green{background:#e0ead5;color:var(--positive)}.pill.amber{background:#fdf0d5;color:var(--warning)}.pill.red{background:#f8e2df;color:var(--danger)}.muted{color:var(--muted)}.small{font-size:.8rem}.row{display:flex;align-items:center;gap:.6rem}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.stack{display:flex;flex-direction:column;gap:1rem}.bar{height:8px;border-radius:999px;background:var(--accent-soft);overflow:hidden}.bar>span{display:block;height:100%;background:var(--accent);border-radius:999px}.empty{text-align:center;padding:2.5rem 1rem;color:var(--muted)}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:.6rem 1.2rem;border-radius:999px;box-shadow:var(--shadow);z-index:100;font-size:.85rem;font-weight:600}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:100%;max-width:380px}@media(max-width:1100px){.grid.k5,.grid.k4,.grid.k3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;flex:none;height:auto;position:static;flex-direction:row;overflow-x:auto;gap:.35rem;padding:.6rem}.sidebar .brandmark,.sidebar .navgroup{display:none}.navlink{white-space:nowrap}.grid.k2,.grid.k3,.grid.k4,.grid.k5{grid-template-columns:1fr}.topbar,.content{padding-left:1rem;padding-right:1rem}h1{font-size:1.4rem}}@media print{.sidebar,.btn{display:none!important}.card{box-shadow:none;break-inside:avoid}}
