:root{--ink:#102231;--muted:#667985;--line:#d7e1e6;--canvas:#f2f6f8;--surface:#fff;--primary:#0b7b86;--primary-dark:#07545c;--success:#19734b;--warning:#a65a00;--danger:#b4232d;--shadow:0 18px 50px rgba(18,46,60,.10)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f8fbfc,var(--canvas));color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.topbar{background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.topbar-inner{width:min(1440px,calc(100% - 48px));height:72px;margin:auto;display:flex;align-items:center;gap:34px}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#1ba1ae);color:#fff;font-weight:900}.brand-mark.large{width:58px;height:58px;border-radius:18px;margin:auto;font-size:1.2rem}.brand span:last-child{display:grid}.brand small,.eyebrow{color:var(--primary);font-size:.7rem;font-weight:850;letter-spacing:.14em}.brand strong{font-size:.92rem}.topbar nav{display:flex;align-items:center;gap:10px}.topbar nav a{color:#344d5b;text-decoration:none;font-weight:750;font-size:.9rem;padding:9px 11px;border-radius:9px}.topbar nav a:hover,.topbar nav a.is-active{background:#eef6f7;color:var(--primary-dark)}.topbar nav a.topbar-admin-link{border:1px solid #c7d8de;background:#fff}.topbar nav a.topbar-admin-link:hover,.topbar nav a.topbar-admin-link.is-active{border-color:#a8ccd3;background:var(--primary);color:#fff}.account{margin-left:auto;display:flex;align-items:center;gap:14px;color:#657884;font-size:.88rem}.account form{margin:0}.page-shell{width:min(1440px,calc(100% - 48px));margin:32px auto 60px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.page-heading h1{font-size:2rem;margin:4px 0}.muted{color:var(--muted)}.card,.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px}.stat-card{padding:22px}.stat-card span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.stat-card strong{display:block;margin-top:8px;font-size:2rem}.button{border:1px solid transparent;border-radius:10px;padding:10px 16px;font:inherit;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.button.primary{background:var(--primary);color:#fff}.button.primary:hover{background:var(--primary-dark)}.button.secondary{background:#eef6f7;color:var(--primary-dark);border-color:#b8dadd}.button.ghost{background:#fff;color:var(--ink);border-color:#cbd8de}.button.danger{background:#fff;color:var(--danger);border-color:#e1aeb3}.button.danger:hover{background:var(--danger);color:#fff}.button:disabled{opacity:.45;cursor:not-allowed}.full-width{width:100%}.alert{border-radius:12px;padding:13px 15px;margin-bottom:18px;border:1px solid}.alert.error{background:#fff1f2;border-color:#efb8bd;color:#8d2029}.alert.success{background:#eefaf4;border-color:#b7ddc9;color:#17643f}.alert.info{background:#edf7fa;border-color:#b7dbe2;color:#155968}.trace{font-family:ui-monospace,monospace;font-size:.78rem;margin-top:8px}.prose-card,.form-card,.detail-card{padding:24px}.prose-card{margin-top:18px}.prose-card h2{margin-top:4px}.table-card{overflow:hidden}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line)}th{font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f7fafb}td small{display:block;color:var(--muted);margin-top:3px}.empty{text-align:center;color:var(--muted);padding:40px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:850}.badge.success{background:#eaf8f0;color:var(--success)}.badge.warning{background:#fff4df;color:var(--warning)}.badge.neutral{background:#eef2f4;color:#5d707b}.login-wrap{min-height:calc(100vh - 150px);display:grid;place-items:center}.login-card{width:min(430px,100%);padding:34px;text-align:center}.login-card h1{margin:10px 0 4px}.form-grid{display:grid;gap:8px;text-align:left;margin-top:22px}.form-grid label{font-size:.78rem;font-weight:800;color:#425966}.form-grid input{width:100%;border:1px solid #c8d6dc;border-radius:10px;padding:11px 12px;font:inherit}.form-grid .button{margin-top:10px}.form-grid.two-column{grid-template-columns:1fr 1fr;gap:16px}.form-grid.two-column>div{display:grid;gap:7px}.form-grid .full{grid-column:1/-1}.validation{color:var(--danger);font-size:.75rem}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:2px}.card-heading h2{margin:0;font-size:1.25rem}dl{margin:0}dl>div{padding:13px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}dd{margin:4px 0 0;font-weight:750}.active-attempt>.badge{margin:12px 0 4px}.help{font-size:.78rem;color:var(--muted);line-height:1.45}.danger-text{color:#8d3038}@media(max-width:780px){.topbar nav{display:none}.account span{display:none}.stat-grid{grid-template-columns:1fr 1fr}.detail-grid,.form-grid.two-column{grid-template-columns:1fr}.page-heading{align-items:flex-start}.topbar-inner,.page-shell{width:min(100% - 18px,1440px)}}@media(max-width:480px){.stat-grid{grid-template-columns:1fr}.page-heading{display:grid}.page-heading>.button{width:100%}}

.consent-box {
  padding: 14px 16px;
  border: 1px solid #cfe0e5;
  border-radius: 12px;
  background: #f4f9fa;
}
.checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.45;
  font-weight: 650;
}
.checkbox-label input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
}

@media (max-width: 980px) {
  .topbar-inner {
    height: auto;
    min-height: 72px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    padding: 12px 0;
  }
  .topbar .brand { min-width: 0; }
  .topbar .brand-mark { flex-shrink: 0; }
  .topbar .brand span:last-child { min-width: 0; }
  .topbar .brand strong { overflow-wrap: anywhere; }
  .topbar .account { grid-column: 2; grid-row: 1; }
  .topbar .account span { display: none; }
  .topbar nav {
    display: flex;
    grid-column: 1 / -1;
    grid-row: 2;
    flex-wrap: wrap;
    gap: 4px;
  }
  .topbar nav a { min-height: 44px; display: inline-flex; align-items: center; }
}
