:root{--bg:#f5f6f8;--surface:#fff;--border:#dde1e6;--text:#1f2933;--muted:#6b7785;--accent:#1f6feb;--danger:#c62828;--low:#fff4e5;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}input,select,button{font:inherit;border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:6px;padding:6px 10px}button{cursor:pointer;background:var(--accent);border-color:var(--accent);color:#fff}button.secondary{background:var(--surface);border-color:var(--border);color:var(--text)}button.link{color:var(--accent);background:0 0;border:none;padding:0}button:disabled{opacity:.5;cursor:default}.muted{color:var(--muted)}.kpi-row{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:24px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.kpi-card.warn{background:var(--low);border-color:#f0ad4e}.kpi-value{font-size:28px;font-weight:700;line-height:1.1}.kpi-label{color:var(--muted);margin-top:6px;font-size:12px}.section-title{margin:20px 0 8px;font-size:15px}.row{align-items:center;gap:8px;display:inline-flex}.small{font-size:12px}.error{color:var(--danger)}.center{place-items:center;min-height:100vh;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px}.login{flex-direction:column;gap:12px;width:360px;display:flex}.login h1,.login p{margin:0}label{flex-direction:column;flex:1;gap:4px;display:flex}label.checkbox{flex-direction:row;flex:none;align-items:center}.row{gap:8px;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 20px;display:flex}.brand{font-size:16px}.tab{color:var(--text);background:0 0;border-color:#0000}.tab.active{border-color:var(--accent);color:var(--accent)}.spacer{flex:1}.content{max-width:1200px;margin:0 auto;padding:20px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar input[type=search]{flex:1;min-width:240px}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}th{background:#fafbfc;font-weight:600}.num{text-align:right;white-space:nowrap}tr.low{background:var(--low)}.actions{text-align:right;white-space:nowrap}.empty{text-align:center;padding:24px}.adjust{align-items:center;gap:4px;display:inline-flex}.adjust input:first-child{width:64px}.adjust input{width:140px}.pager{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.status{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:12px;display:inline-block}.status-active,.status-approved{border-color:var(--accent);color:var(--accent)}.status-completed{color:#217a3c}.status-cancelled{color:var(--muted)}.session-summary{grid-template-columns:auto minmax(160px,1fr) auto auto;align-items:center;gap:16px;margin-bottom:12px;display:grid}.session-summary progress{width:100%}@media (width<=800px){.session-summary{grid-template-columns:1fr}}
