:root{--ink:#193247;--muted:#6e8090;--teal:#086c62;--line:#e0e8ed;--bg:#f4f7f9}*{box-sizing:border-box}body{margin:0;font:14px/1.55 Inter,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 16px;color:var(--ink);background:white;font-weight:600}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #63bbb0;outline-offset:3px}input,textarea,select{border:1px solid #cfdbe2;border-radius:9px;padding:11px 13px;background:white;color:var(--ink);width:100%;min-width:0}textarea{min-height:110px;resize:vertical}label{display:block;font-size:13px;font-weight:600;margin:15px 0 6px}.app{display:flex;min-height:100vh}aside{width:250px;flex-shrink:0;background:#102c3c;color:#d0dfe5;padding:34px 18px;display:flex;flex-direction:column}.brand{display:block;color:white;text-decoration:none;font-size:34px;font-weight:800;letter-spacing:-2px;padding-left:15px;line-height:1.1}.brand span{color:#62c8b7}.brand small{display:block;font-size:11px;letter-spacing:3px;margin-top:10px}.workspace{font-size:9px;letter-spacing:1px;margin:35px 14px 20px;color:#91aab8}nav button{display:block;text-align:left;width:100%;background:transparent;color:#b8cbd5;border:0;font-size:13px;padding:13px;margin:3px 0;font-weight:500}nav button.active{background:#254858;color:white;box-shadow:inset 3px 0 #68cfb9}.nav-label{font-size:10px;letter-spacing:1.4px;color:#8ca6b4;margin:29px 13px 10px}.side-foot{font-size:12px;margin-top:auto;padding:50px 12px 0}.side-foot small{color:#8ba5b3}.dot{display:inline-block;width:7px;height:7px;background:#68cfb9;border-radius:50%;margin-right:5px}.main{min-width:0;flex:1}header{min-height:78px;background:white;border-bottom:1px solid var(--line);padding:20px 35px;display:flex;align-items:center;justify-content:space-between;gap:12px}.muted{color:var(--muted)}.pill{font-size:11px;background:#edf5f4;color:#276e63;padding:6px 10px;border-radius:20px;display:inline-block}.preview-bar{padding:9px 35px;background:#eaf0f3;color:#496372;font-size:10px;font-weight:700;letter-spacing:1px}.preview-bar span{font-weight:400;letter-spacing:0;margin-left:12px;font-size:12px}main{padding:34px;max-width:1400px;margin:auto}h1{font-size:30px;line-height:1.2;letter-spacing:-1px;margin:8px 0 13px}h2{font-size:18px;letter-spacing:-.3px;margin:0 0 10px}h3{font-size:14px;margin:0 0 8px}p{margin:8px 0 16px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--teal)}.heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:25px}.grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px}.card{border:1px solid var(--line);border-radius:14px;padding:25px;background:white}.primary{color:white;background:var(--teal);border-color:var(--teal)}.full{width:100%;margin-top:18px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:18px}.hint{font-size:12px;color:var(--muted);margin-top:10px}.lookup{max-width:500px}.welcome-banner{border-radius:15px;padding:30px;background:#123f50;color:white;position:relative;overflow:hidden;margin-bottom:24px}.welcome-banner .eyebrow{color:#84d7c5}.welcome-banner p{color:#c1d6df;max-width:450px;margin-bottom:0}.welcome-banner h1{font-size:36px}.welcome-banner:after{content:'↗';position:absolute;right:25px;top:5px;font-size:125px;opacity:.08;line-height:1}.notice{padding:16px 0;border-bottom:1px solid var(--line)}.notice:last-child{border:0}.notice .meta{font-size:11px;color:var(--muted);margin-bottom:6px}.notice p{margin:0}.trainer-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:22px;border-bottom:1px solid var(--line)}.photo{width:90px;height:105px;border-radius:12px;object-fit:cover;flex-shrink:0;background:#eaf0f4;display:flex;align-items:center;justify-content:center;color:#7a919e;font-size:23px}.trainer-row h2{font-size:25px;margin-bottom:5px}.team-banner{margin:22px 0;padding:23px;border-radius:12px;background:#eaf5f1;display:flex;gap:18px;align-items:center}.team-logo{width:68px;height:68px;border-radius:13px;flex-shrink:0;object-fit:contain;background:white;display:grid;place-items:center;font-size:23px;font-weight:700;color:var(--teal)}.team-banner h2{font-size:24px;margin:3px 0}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail{padding:18px;background:#f4f7f9;border-radius:10px}.detail strong{font-size:22px;display:block}.detail small{font-size:12px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stats .card{padding:20px}.number{font-size:32px;font-weight:700;letter-spacing:-1px;margin:7px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:var(--muted);font-size:10px;letter-spacing:.5px;text-transform:uppercase;font-weight:600}td,th{padding:15px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td button{padding:6px 10px;font-size:11px}tr:last-child td{border:0}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.toolbar input{flex:1;min-width:170px}.empty{color:var(--muted);padding:25px 0}.error{color:#a72f3d;font-size:13px;margin-top:10px}.success{color:var(--teal)}.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}footer{padding:20px 35px;font-size:11px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#153d4d;color:white;padding:12px 20px;border-radius:10px;box-shadow:0 5px 30px #1234;display:none;z-index:10;max-width:90vw}dialog{border:1px solid var(--line);border-radius:16px;max-width:650px;width:90%;padding:28px;color:var(--ink)}dialog::backdrop{background:#102c3c88}code{background:#eef2f5;padding:3px 6px;border-radius:4px}.inline{display:flex;gap:15px;align-items:center}.split{display:grid;grid-template-columns:1fr 1fr;gap:15px}.danger{color:#a72f3d}button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:1000px){aside{width:205px;padding:25px 10px}main{padding:24px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}header,.preview-bar{padding-left:24px;padding-right:24px}}@media(max-width:650px){.app{display:block}aside{width:100%;padding:18px}.brand{font-size:24px;padding:0}.brand small{display:inline;margin-left:15px}.workspace,.side-foot,.nav-label{display:none}nav{display:flex;overflow:auto;margin-top:15px;gap:5px}nav button{width:auto;flex-shrink:0;padding:9px;font-size:11px}.main header{padding:15px 18px;min-height:60px;font-size:12px}.pill{font-size:10px}main{padding:20px 16px}.preview-bar{padding:9px 18px}.preview-bar span{display:block;margin:4px 0 0}.welcome-banner{padding:25px}.welcome-banner h1{font-size:30px}.card{padding:20px}.split{grid-template-columns:1fr}.trainer-row h2{font-size:22px}.stats{gap:10px}.stats .card{padding:15px}.number{font-size:27px}.heading h1{font-size:26px}}

.agenda-card{margin-top:24px}.agenda-item{display:flex;gap:22px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.agenda-item:last-child{border:0}.agenda-time{font-weight:700;color:var(--teal);min-width:60px}.agenda-time span{display:block;font-size:11px;color:var(--muted);font-weight:400}.agenda-item strong{font-size:14px}@media(max-width:650px){.agenda-item{gap:12px;flex-wrap:wrap}.agenda-item button{font-size:11px;padding:7px}}

#announcement-popup{position:fixed;bottom:26px;right:26px;width:360px;max-width:calc(100vw - 32px);z-index:20;border:1px solid #b8dbd3;border-top:4px solid var(--teal);border-radius:12px;background:white;padding:20px;box-shadow:0 12px 50px #102c3c33}#announcement-popup[hidden]{display:none}#announcement-popup button{padding:3px 10px}#popup-message{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0}

.preview-link{display:block;color:#a7e2d3;text-decoration:none;padding:12px;font-size:13px;border:1px solid #396170;border-radius:9px;margin:10px 0 20px}body[data-mode="participant"] aside{width:215px}body[data-mode="participant"] main{max-width:1100px}body[data-mode="participant"] .side-foot{font-size:11px}@media(max-width:650px){body[data-mode="participant"] aside{width:100%}.preview-link{margin:0;white-space:nowrap}}

body.admin-locked aside,body.admin-locked header,body.admin-locked .preview-bar,body.admin-locked footer{display:none}body.admin-locked .main{min-height:100vh;display:grid;align-items:center}body.admin-locked main{width:100%;max-width:1000px}.login-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:30px}.login-intro h1{font-size:42px;line-height:1.1;margin-top:18px}.login-intro p{max-width:300px}.login-card{padding:32px}.login-note{padding:13px;background:#f1f5f7;border-radius:9px;font-size:11px;margin-top:20px;color:var(--muted)}.login-note p{margin:5px 0 0}.login-participant-link{display:inline-block;color:var(--teal);font-size:12px;margin-top:20px;text-decoration:none}#admin-logout{font-size:12px}@media(max-width:650px){.login-wrap{grid-template-columns:1fr;gap:22px;padding:0}.login-intro h1{font-size:31px}.login-card{padding:22px}}

.header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-login-link{display:inline-block;padding:9px 14px;border:1px solid #bfd4d4;border-radius:9px;color:var(--teal);text-decoration:none;font-size:12px;font-weight:600;background:white}.admin-login-link:hover{background:#edf5f4}@media(max-width:650px){header{flex-wrap:wrap}.header-actions{gap:8px}.admin-login-link{padding:8px 11px}}
nav [hidden]{display:none!important}

.official-brand{padding:0;text-align:center;letter-spacing:0}.official-brand img{display:block;width:100%;max-width:185px;aspect-ratio:1;object-fit:contain;background:white;border-radius:12px;margin:0 auto}.official-brand small{display:block;font-size:10px;letter-spacing:3px;margin:13px 0 0}.workspace{margin-top:24px}.login-logo{display:block;width:170px;height:170px;object-fit:contain;border-radius:12px;margin:0 0 23px;background:white}@media(max-width:650px){.official-brand{display:flex;align-items:center;gap:15px;text-align:left}.official-brand img{width:90px;max-width:90px;margin:0}.official-brand small{margin:0;font-size:11px}.login-logo{width:120px;height:120px;margin-bottom:16px}.login-intro h1{margin-top:12px}}

.agenda-day{margin:24px 0 0;padding:10px 12px;background:#edf5f4;color:var(--teal);border-radius:6px;font-size:12px;letter-spacing:.4px}

.event-choice{display:block;width:100%;text-align:left;margin-top:10px;padding:15px}.event-choice span{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:4px}
