.button.success{background:#23875c}.button.success:hover{background:#31ae79}.team-filter{max-width:420px}.team-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.empty-chart{height:300px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:20px}.stat-card{display:flex;flex-direction:column;align-items:flex-start}.stat-card .metric{margin:7px 0}.metric-tooltip{position:relative;display:inline-block;cursor:help}.metric-tooltip:after{content:attr(data-tooltip);position:absolute;z-index:15;left:0;bottom:calc(100% + 8px);width:max-content;max-width:240px;background:#050507;border:1px solid var(--line);border-radius:8px;padding:7px 9px;color:var(--text);font-size:12px;font-weight:500;opacity:0;pointer-events:none;transform:translateY(4px);transition:.15s}.metric-tooltip:hover:after{opacity:1;transform:translateY(0)}.pie-layout{height:330px;display:grid;grid-template-columns:minmax(235px,1.3fr) minmax(170px,.7fr);align-items:center;gap:18px}.pie-chart{width:235px;height:235px;border-radius:50%;position:relative;box-shadow:inset 0 0 0 1px #0005;justify-self:center}.pie-chart:after{content:"";position:absolute;inset:52px;border-radius:50%;background:var(--surface)}.pie-legend{display:grid;gap:11px;justify-self:start;color:var(--text);font-size:16px}.pie-legend div{display:flex;align-items:center;gap:9px;width:max-content}.pie-legend span{width:13px;height:13px;border-radius:50%;flex:0 0 auto}.pie-legend strong{color:var(--text)}.status-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.status-counts div{display:flex;align-items:center;gap:9px;padding:15px;border:1px solid var(--line);border-radius:10px;background:#101014;color:var(--text);font-size:16px;font-weight:600}.status-counts span{width:13px;height:13px;border-radius:50%;flex:0 0 auto}.status-counts strong{color:var(--text);font-size:22px;margin-left:auto}@media(max-width:1100px){.team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.team-grid{grid-template-columns:1fr}.pie-layout{grid-template-columns:1fr;justify-items:center;height:auto}.pie-legend{width:auto}.status-counts{grid-template-columns:1fr}}.training-calendar{margin-top:8px}.training-calendar h2{text-transform:capitalize;margin:0}.calendar-weekdays,.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekdays{margin-top:20px;color:var(--muted);font-size:12px;text-transform:uppercase;padding:0 5px}.calendar-cell{min-height:125px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#111116}.calendar-cell>span{font-weight:700}.calendar-cell.today{border:2px solid var(--pink);background:#25101d}.calendar-cell.today>span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--pink);color:#fff}.calendar-cell.outside{opacity:.42}.calendar-cell .event{background:#680032;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-cell .event.complete{background:#23875c}.attendance-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.attendance-card{padding:14px;min-width:0}.attendance-card strong{display:block;margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.presence-picker{position:relative}.presence-pill,.presence-option{border:0;border-radius:999px;color:#09090b;font-weight:750;cursor:pointer}.presence-pill{width:100%;padding:8px 10px;display:flex;justify-content:space-between;align-items:center}.presence-menu{position:absolute;z-index:10;bottom:calc(100% + 6px);left:0;right:0;display:grid;gap:5px;background:var(--raised);border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 -16px 35px #0009}.presence-option{padding:7px 8px;text-align:left}.presence-option.neutral{background:#2d2d35;color:var(--text)}@media(max-width:1100px){.attendance-board{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.calendar-weekdays,.calendar-month{grid-template-columns:repeat(7,minmax(130px,1fr));min-width:910px}.training-calendar{overflow-x:auto}.attendance-board{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-cell{min-height:105px}}:root{color-scheme:dark;--bg:#09090b;--surface:#141419;--raised:#1c1c22;--line:#2d2d35;--text:#f4f4f5;--muted:#a1a1aa;--pink:#e50071;--pink-hi:#ff4fa3;--radius:14px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{border-right:1px solid var(--line);padding:24px 14px;position:sticky;top:0;height:100vh;background:#101014}.brand{font-weight:800;font-size:18px;padding:8px 12px 28px}.brand i{color:var(--pink);font-style:normal}.nav{display:grid;gap:5px}.nav a{padding:11px 12px;border-radius:10px;color:var(--muted)}.nav a:hover,.nav a.active{color:var(--text);background:var(--raised)}.nav .logout{margin-top:15px;background:none;border:0;color:var(--muted);text-align:left;padding:11px 12px}.content{max-width:1440px;width:100%;margin:0 auto;padding:30px}.top{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:26px}.top h1{margin:0;font-size:27px}.muted{color:var(--muted)}.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.card h2,.card h3{margin-top:0}.metric{font-size:34px;font-weight:800;margin:8px 0}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{justify-content:space-between}.button{background:var(--pink);border:0;color:#fff;border-radius:10px;padding:10px 14px;font-weight:700}.button:hover{background:var(--pink-hi)}.button.secondary{background:var(--raised);border:1px solid var(--line)}.button.danger{background:#5a1c26}.field{display:grid;gap:6px;margin-bottom:13px;color:var(--muted);font-size:14px}.field input,.field select{background:#101014;border:1px solid var(--line);color:var(--text);padding:10px;border-radius:9px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 13px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.table th{color:var(--muted);font-size:12px;text-transform:uppercase}.badge{border-radius:999px;padding:4px 8px;font-size:12px;background:#292934}.notice{padding:12px;border-radius:10px;background:#3a1427;color:#ffd1e6}.status{border-radius:999px;padding:5px 8px;border:0;color:#08080a;font-weight:700;font-size:12px}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(440px,100%)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{min-height:80px;border:1px solid var(--line);border-radius:9px;padding:7px;color:var(--muted)}.event{display:block;margin-top:5px;background:#680032;color:#fff;border-radius:5px;padding:4px;font-size:12px}.actions{display:flex;gap:6px}.attendance{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.attendance button{border:1px solid var(--line);background:#16161b;color:var(--text);border-radius:9px;padding:10px;text-align:left}.attendance button.active{outline:2px solid var(--pink)}.assignment-search{position:relative;min-width:250px}.suggestions{position:absolute;z-index:5;top:70px;left:0;right:0;background:var(--raised);border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 14px 34px #0008}.suggestions button{display:grid;gap:2px;width:100%;text-align:left;padding:9px;background:transparent;border:0;color:var(--text);border-radius:7px}.suggestions button:hover{background:#292934}.suggestions small,.suggestions span{color:var(--muted);padding:4px}.link-button{border:0;background:transparent;color:var(--pink-hi)}.modal-backdrop{position:fixed;z-index:30;inset:0;background:#000b;display:grid;place-items:center;padding:20px}.modal{width:min(760px,100%);max-height:90vh;overflow:auto;box-shadow:0 25px 70px #000}@media(max-width:720px){.shell{display:block}.sidebar{position:static;height:auto;padding:12px;border-bottom:1px solid var(--line)}.brand{padding:4px 4px 10px}.nav{display:flex;overflow:auto}.nav a{white-space:nowrap}.nav .logout{margin:0}.content{padding:18px}.top{align-items:flex-start}.calendar{grid-template-columns:repeat(2,1fr)}.assignment-search{width:100%}}
