:root{--brand:#3b5bdb;--brand-dark:#2f49b0;--bg:#f5f7fb;--surface:#fff;--text:#1a2233;--muted:#6b7488;--border:#e3e8f0;--good:#16794a;--good-bg:#e6f4ec;--warn:#9a6700;--warn-bg:#fdf3d8;--bad:#b42318;--bad-bg:#fdecea;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.app,.sidebar{display:flex;min-height:100vh}.sidebar{width:224px;background:var(--brand);color:#fff;padding:18px 12px;flex-shrink:0;flex-direction:column;position:-webkit-sticky;position:sticky;top:0}.brand{font-weight:800;letter-spacing:2px;font-size:18px;padding:6px 10px 18px}.nav{display:flex;flex-direction:column;gap:2px;flex:1 1}.nav a{display:block;padding:9px 12px;border-radius:8px;color:#dfe6ff;font-weight:500;transition:background .12s,color .12s}.nav a:hover{background:hsla(0,0%,100%,.12);color:#fff}.nav a.active{background:hsla(0,0%,100%,.22);color:#fff}.nav-group{margin-bottom:2px}.nav-group-title{list-style:none;cursor:pointer;padding:8px 12px 6px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#aab7f0;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-group-title::-webkit-details-marker{display:none}.nav-group-title:after{content:"›";font-size:15px;transform:rotate(90deg);transition:transform .15s;opacity:.7}.nav-group[open]>.nav-group-title:after{transform:rotate(-90deg)}.nav-group[open]>.nav-group-title{color:#eef2ff}.nav-group .nav-group-title:hover{color:#fff}.nav-group a{padding-left:20px;font-size:14px}.btn-summary{list-style:none;cursor:pointer;display:inline-block;padding:7px 12px;border-radius:8px;border:1px solid var(--border);background:#fff;font-size:13px;font-weight:600;color:var(--brand);-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn-summary::-webkit-details-marker{display:none}.pay-form{margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--soft,#f7f9ff)}.roster-head,.roster-row{display:grid;grid-template-columns:2fr 1fr 1.3fr .8fr 1fr 1.4fr;grid-gap:12px;gap:12px;align-items:center}.roster-head{padding:8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.roster-head,.roster-row{border-bottom:1px solid var(--border)}.roster-row{padding:12px;cursor:pointer;list-style:none}.roster-row::-webkit-details-marker{display:none}.roster-edit,.roster-row:hover,details[open]>.roster-row{background:var(--soft,#f7f9ff)}.roster-edit{padding:16px;border-bottom:1px solid var(--border)}.side-footer{border-top:1px solid hsla(0,0%,100%,.2);padding-top:12px;margin-top:12px;font-size:12px}.side-email{color:#eef2ff;word-break:break-all}.side-role{color:#c3cdff;margin-bottom:8px;letter-spacing:.5px}.menu-btn{align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;background:var(--brand);color:#fff;border:none;cursor:pointer}.menu-btn,.scrim{display:none}@media (max-width:820px){.menu-btn{display:flex;position:fixed;top:10px;left:10px;z-index:50}.sidebar{position:fixed;top:0;left:0;height:100vh;transform:translateX(-100%);transition:transform .2s ease;z-index:45;box-shadow:2px 0 14px rgba(0,0,0,.18)}.sidebar.open{transform:translateX(0)}.scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40}.main{padding:64px 18px 24px;max-width:100%}}.main{flex:1 1;padding:28px 32px;max-width:1100px}.page-title{font-size:22px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--muted);margin:0 0 24px}.grid{display:grid;grid-gap:16px;gap:16px}.metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:28px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.metric .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}.metric .value{font-size:28px;font-weight:700;margin-top:6px}.metric .value.good{color:var(--good)}.metric .value.warn{color:var(--warn)}.metric .value.bad{color:var(--bad)}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}td,th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);font-size:13px}th{background:#fafbfe;color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.4px}tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}.badge.good{background:var(--good-bg);color:var(--good)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.neutral{background:#eef1f6;color:var(--muted)}.section-title{font-size:15px;font-weight:700;margin:28px 0 12px}form.inline{display:flex;flex-wrap:wrap;gap:8px;align-items:end}label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}input,select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:#fff}button{padding:8px 14px;border:none;border-radius:8px;background:var(--brand);color:#fff;font-weight:600;font-size:13px;cursor:pointer}button:hover{background:var(--brand-dark)}button.ghost{background:#eef1f6;color:var(--text)}button.ghost:hover{background:#e3e8f0}.empty{color:var(--muted);padding:20px;text-align:center}.money{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}