:root{--bg:#f4f6f8;--card:#fff;--text:#17202a;--muted:#6b7280;--line:#dfe3e8;--accent:#1f4f78;--danger:#b42318;--ok:#18794e;--warn:#b54708}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}.topbar{display:flex;align-items:center;gap:24px;background:#16202a;color:#fff;padding:14px 24px;position:sticky;top:0;z-index:10}.brand{font-size:20px;font-weight:800;white-space:nowrap}.brand span{font-weight:500;color:#d8e0e7}.topbar nav{display:flex;gap:6px;flex:1;flex-wrap:wrap}.topbar nav a{color:#d8e0e7;padding:8px 10px;border-radius:7px}.topbar nav a:hover,.topbar nav a.active{background:#263545;color:#fff}.userbox{white-space:nowrap;font-size:13px;color:#d8e0e7}.userbox a{color:#fff}.container{max-width:1400px;margin:0 auto;padding:24px}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.pagehead h1{margin:0;font-size:28px}.muted{color:var(--muted)}.grid{display:grid;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}.stat .num{font-size:34px;font-weight:800}.stat .label{color:var(--muted);font-size:13px}.btn{border:0;border-radius:8px;background:var(--accent);color:#fff;padding:10px 14px;cursor:pointer;font-weight:700}.btn.secondary{background:#5f6b76}.btn.danger{background:var(--danger)}.btn.small{padding:6px 9px;font-size:12px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;min-width:780px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f8fafb;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#58616b}.sectionrow td{background:#eef3f7;font-weight:800}.progress{height:18px;border-radius:999px;background:#e8ecef;overflow:hidden;position:relative;min-width:150px}.progress>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#d92d20 0%,#f79009 40%,#f5d90a 58%,#71c447 78%,#159947 100%);border-radius:999px;transition:width .25s}.progresslabel{font-size:12px;font-weight:800;min-width:42px;text-align:right}.progresscell{display:flex;gap:8px;align-items:center}.scoreinput{width:72px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:700;color:#4b5563}input,select,textarea{font:inherit;border:1px solid #cfd5dc;border-radius:8px;padding:10px;background:#fff;color:var(--text)}textarea{min-height:110px;resize:vertical}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}.flash{padding:12px 14px;border-radius:8px;margin-bottom:14px;background:#edf7f2;color:#125c3d;border:1px solid #b9dfcf}.alert{padding:12px 14px;border-radius:8px;background:#fff3f0;color:#912018;border:1px solid #f4c7c2}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#e8eef5;font-size:12px;font-weight:700}.badge.warn{background:#fff0d9;color:#9a4f00}.badge.danger{background:#fee4e2;color:#912018}.searchbox{width:min(720px,100%);font-size:17px;padding:13px}.result{padding:14px 0;border-bottom:1px solid var(--line)}.result:last-child{border-bottom:0}.result .meta{font-size:12px;color:var(--muted);margin-bottom:5px}.category-title{margin:24px 0 8px}.sticky-actions{position:sticky;bottom:12px;display:flex;justify-content:flex-end;pointer-events:none}.sticky-actions .btn{pointer-events:auto;box-shadow:0 4px 20px #0002}.loginwrap{max-width:440px;margin:70px auto}.loginwrap .card{padding:28px}.loginwrap h1{margin-top:0}.help{font-size:12px;color:var(--muted)}.empty{padding:34px;text-align:center;color:var(--muted)}
@media(max-width:900px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start;flex-wrap:wrap}.userbox{margin-left:auto}.formgrid{grid-template-columns:1fr}}
@media(max-width:600px){.container{padding:14px}.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}.topbar{padding:12px}.pagehead{align-items:flex-start;flex-direction:column}.brand{width:100%}}
