:root{--bg: #f4f6fa;--surface: #ffffff;--border: #dbe2ec;--text: #1a2333;--muted: #5b6b82;--primary: #1f5eda;--primary-soft: #e7eefc;--autoscore: #7c3aed;--autoscore-soft: #f1e9fe;--danger: #c62828;--danger-soft: #fdecea;--ok: #1e7d43;--radius: 10px;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--primary)}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--primary);color:#fff;padding:8px 16px;border-radius:0 0 8px}.skip-link:focus{left:0}:focus-visible{outline:3px solid var(--primary);outline-offset:1px}.layout{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:#10203c;color:#d7e0ef;display:flex;flex-direction:column;padding:16px 0}.sidebar .brand{padding:4px 20px 16px}.sidebar .brand h1{font-size:16px;margin:0;color:#fff}.sidebar .brand .sub{font-size:11px;color:#8fa3c4;margin-top:2px}.sidebar nav{display:flex;flex-direction:column}.sidebar nav a{color:#c5d2e6;text-decoration:none;padding:10px 20px;border-left:3px solid transparent}.sidebar nav a:hover{background:#1a3157;color:#fff}.sidebar nav a.active{background:#1a3157;color:#fff;border-left-color:#6ea8ff;font-weight:600}.sidebar .foot{margin-top:auto;padding:12px 20px;font-size:11px;color:#8fa3c4}.main{flex:1;padding:20px 28px 48px;min-width:0}.main h2{margin:0 0 4px;font-size:20px}.page-sub{color:var(--muted);margin:0 0 16px}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600}.badge.autoscore{background:var(--autoscore-soft);color:var(--autoscore)}.badge.manual{background:var(--primary-soft);color:var(--primary)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.mode{background:#fff3cd;color:#7a5b00}.filterbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:12px;align-items:end}.filterbar .field{display:flex;flex-direction:column;gap:3px}.filterbar label{font-size:11px;font-weight:600;color:var(--muted)}.filterbar input,.filterbar select{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font:inherit;background:#fff;min-width:110px}.filterbar .toggles{display:flex;gap:14px;padding-bottom:6px}.filterbar .toggles label{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--text);font-weight:500;cursor:pointer}.filterbar button{border:1px solid var(--border);background:#fff;border-radius:6px;padding:6px 12px;font:inherit;cursor:pointer;color:var(--muted)}.filterbar button:hover{background:var(--bg)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat-card .label{font-size:12px;color:var(--muted);font-weight:600}.stat-card .value{font-size:26px;font-weight:700;margin-top:2px}.stat-card .hint{font-size:11px;color:var(--muted);margin-top:2px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 1100px){.grid-2{grid-template-columns:1fr}}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px 6px;margin-bottom:16px}.chart-card h3{margin:0 0 10px;font-size:14px}.chart-card .chart-summary{font-size:12px;color:var(--muted);margin:6px 0 8px}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.table-card .table-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 0;gap:12px;flex-wrap:wrap}.table-card h3{margin:0;font-size:14px}.table-scroll{overflow:auto;max-height:560px}table.data{border-collapse:collapse;width:100%}table.data th,table.data td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}table.data td.wrap{white-space:normal;min-width:220px}table.data th{position:sticky;top:0;background:#f8fafd;font-size:12px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1}table.data th.nosort{cursor:default}table.data tbody tr:hover{background:#f4f8ff}table.data td.num,table.data th.num{text-align:right}tr.clickable{cursor:pointer}.mini-bar{display:inline-block;height:8px;background:var(--primary);border-radius:3px;vertical-align:middle}.answer-dist{display:flex;gap:2px;align-items:center;min-width:160px}.answer-dist .seg{height:10px;border-radius:2px}.btn{display:inline-block;border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:6px;padding:6px 14px;font:inherit;cursor:pointer;text-decoration:none}.btn.secondary{background:#fff;color:var(--primary)}.btn:disabled{opacity:.5;cursor:default}.note{background:#fffbe8;border:1px solid #efe2a5;color:#6b5900;border-radius:var(--radius);padding:10px 14px;font-size:12.5px;margin:16px 0}.error-box{background:var(--danger-soft);border:1px solid #f2b8b5;color:var(--danger);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px}.loading{color:var(--muted);padding:24px 0}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 24px;margin-bottom:16px}.detail-grid dt{font-size:11px;font-weight:600;color:var(--muted)}.detail-grid dd{margin:1px 0 0}.comment{border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:6px;padding:10px 14px;margin-bottom:10px;background:var(--surface)}.comment .who{font-weight:600}.comment .when{color:var(--muted);font-size:12px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.pager{display:flex;align-items:center;gap:10px;padding:10px 16px}.pager button{border:1px solid var(--border);background:#fff;border-radius:6px;padding:4px 10px;cursor:pointer;font:inherit}.pager button:disabled{opacity:.4;cursor:default}
