:root{--bg:#f5f6f8;--paper:#fff;--ink:#17273b;--muted:#637083;--line:#dfe5ed;--blue:#2456cd;--blue-light:#edf2ff;--red:#a82f3b;--green:#21744d;--radius:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #88aaff;outline-offset:3px}h1,h2,p{margin:0 0 18px}h1{font-size:clamp(40px,5vw,64px);line-height:1.09;letter-spacing:-2px;font-weight:750}h1.compact{font-size:clamp(28px,3.5vw,40px);letter-spacing:-1px}h2{font-size:26px;line-height:1.3;letter-spacing:-.5px}strong{font-weight:650}.site-header,.site-footer{max-width:1280px;margin:auto;padding:28px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-header{border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:23px;font-weight:800;line-height:1.3}.brand:hover{text-decoration:none}.brand-mark{width:42px;height:42px;background:var(--blue);color:white;border-radius:12px;display:grid;place-items:center;font-size:26px}.brand-sub{display:block;font-size:9px;letter-spacing:1.6px;color:var(--muted);font-weight:650}.header-note{font-size:12px;line-height:1.4;color:var(--muted);text-align:right}.page{max-width:1160px;margin:auto;padding:64px 40px;min-height:calc(100vh - 196px)}.admin-page{max-width:1360px;padding-top:38px}.site-footer{font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:76px;align-items:center;padding:10px 0}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:750;color:var(--blue);margin-bottom:18px}.lead{font-size:18px;color:var(--muted);max-width:490px;margin-top:26px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:0 6px 24px #17273b03}.login-card{padding:40px;box-shadow:0 20px 50px #17273b08;border-top:4px solid var(--blue)}.login-card h2{font-size:34px;margin:28px 0 18px}.login-card>p{color:var(--muted)}.tag{display:inline-block;padding:6px 10px;background:var(--blue-light);color:var(--blue);font-size:10px;letter-spacing:1px;font-weight:750;border-radius:5px}.steps{list-style:none;padding:0;margin:32px 0 0}.steps li{display:flex;gap:18px;margin:20px 0}.steps li>span{font-size:12px;color:var(--blue);font-weight:750;letter-spacing:1px;padding-top:3px}.steps p{font-size:14px;color:var(--muted);margin:2px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:10px 18px;border:1px solid transparent;border-radius:8px;background:var(--blue);color:white;font-size:14px;font-weight:650;line-height:1.4;text-align:center}.button:hover{background:#1947b3;text-decoration:none}.button.wide{width:100%}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button.secondary:hover,.button.quiet:hover{background:#eef2f7}.button.quiet{background:transparent;color:var(--muted)}.button.small{font-size:12px;padding:8px 12px;min-height:38px}.button.danger{background:#fff3f3;border-color:#f0c3c8;color:var(--red)}.button.danger:hover{background:#ffe7e9}.fine-print{font-size:13px;color:var(--muted);line-height:1.55;margin-top:20px}.notice{padding:16px 18px;border-radius:9px;border:1px solid #d4dfff;background:var(--blue-light);color:#26447e;margin:18px 0;font-size:14px}.notice.error{background:#fff2f3;color:var(--red);border-color:#f0c3c8}.notice.success,.tag.success,.badge.success{background:#eaf7ef;border-color:#c5e5d1;color:var(--green)}.preserve{white-space:pre-wrap}.narrow{max-width:620px}.centered{margin:0 auto}.field{margin:0 0 20px;min-width:0}.field label{display:block;font-size:12px;font-weight:650;color:var(--muted);margin-bottom:7px}input,select{width:100%;height:46px;padding:10px 12px;border:1px solid #ccd5e0;border-radius:7px;color:var(--ink);background:#fff;min-width:0}input[type=file]{height:auto;font-size:12px;padding:10px;line-height:1.5}input[type=file]::file-selector-button{background:#eef2f7;border:0;padding:5px 8px;border-radius:4px;margin-right:8px;color:var(--ink)}.inline-form{display:flex;gap:12px;align-items:flex-end;margin-bottom:24px}.inline-form .field{margin:0}.grow{flex:1}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:30px}.page-heading h1{margin:0}.page-heading .eyebrow{margin-bottom:9px}.details{margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.details>div{display:flex;justify-content:space-between;gap:18px;padding:12px 0}.details dt{color:var(--muted);font-size:14px}.details dd{margin:0;font-weight:650}.back-link{display:block;margin-top:20px;font-size:14px}.success-card h2{margin-top:24px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}.stats-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:18px;margin:24px 0 28px}.stat{padding:24px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.stat>span{font-size:12px;color:var(--muted)}.stat>strong{display:block;font-size:36px;line-height:1.2;margin:12px 0}.stat small{font-size:18px;font-weight:500;color:var(--muted)}.stat p{font-size:12px;color:var(--muted);margin:10px 0 0}progress{appearance:none;width:100%;height:6px;border:0;border-radius:8px;overflow:hidden;background:#e6edf8}progress::-webkit-progress-bar{background:#e6edf8}progress::-webkit-progress-value{background:var(--blue)}progress::-moz-progress-bar{background:var(--blue)}.admin-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}.sidebar-card{padding:22px;margin-bottom:18px}.sidebar-card h2{font-size:18px;margin-bottom:12px}.sidebar-card .fine-print{margin:0 0 18px}.sidebar-card .template-links+.fine-print{margin-top:16px;margin-bottom:0}.template-links{display:flex;gap:16px;font-size:12px;margin-top:16px}.group-row{display:flex;justify-content:space-between;padding:10px 0;font-size:13px;border-bottom:1px solid var(--line);gap:10px}.group-row:last-child{border:0}.group-row strong{color:var(--muted)}.danger-zone{background:#fffafa}.roster-card{padding:24px;min-width:0}.table-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:22px}.table-heading h2{font-size:21px;margin:0}.filters{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:10px;align-items:end}.filters .field{margin:0}.filters .button{height:46px}.table-note{font-size:11px;margin:18px 0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{padding:12px 10px;background:#f5f7fa;color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}td{padding:15px 10px;border-bottom:1px solid var(--line);vertical-align:middle}td.name-cell{font-weight:600;min-width:160px}tr:last-child td{border-bottom:0}.badge{font-size:11px;background:#f0f3f7;color:var(--muted);border-radius:5px;padding:5px 8px;white-space:nowrap}.text-button{border:0;background:none;color:var(--red);padding:9px 0;font-size:12px;min-height:40px}.text-button:hover{text-decoration:underline}.empty{padding:48px 15px;text-align:center;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1000px){.intro-grid{gap:36px}.admin-grid{grid-template-columns:240px minmax(0,1fr)}.filters{grid-template-columns:1fr 1fr}.table-heading{flex-direction:column;align-items:flex-start}.login-card{padding:30px}}
@media(max-width:760px){.site-header,.site-footer{padding:20px}.page{padding:36px 20px}.intro-grid{grid-template-columns:1fr;gap:28px;padding:0}.intro h1 br{display:none}.lead{font-size:16px}.steps{margin-top:24px}.card{padding:24px}.page-heading{align-items:flex-start;flex-direction:column;gap:16px}.stats-grid{grid-template-columns:1fr 1fr;gap:12px}.stat{padding:18px}.stat:first-child{grid-column:1/-1}.stat>strong{font-size:30px}.admin-grid{grid-template-columns:1fr}.admin-grid aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sidebar-card:first-child{grid-column:1/-1}.sidebar-card{margin:0;padding:18px}.roster-card{padding:18px}.header-note{font-size:10px}.inline-form{align-items:stretch;flex-direction:column}.details>div{flex-wrap:wrap}.details dd{overflow-wrap:anywhere}select{font-size:16px}.site-footer{font-size:10px;gap:10px}.brand{font-size:20px}}
@media(prefers-reduced-motion:no-preference){.button{transition:background .15s}}
