:root{--green:#07644f;--mint:#12a17a;--deep:#073c33;--ink:#142b27;--muted:#637970;--line:#dcebe4;--bg:#f5faf7;--light:#eaf6ef;--white:#fff;--shadow:0 8px 30px #1a614011;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #44b894;outline-offset:2px}.shell{max-width:1020px;margin:auto;padding:22px 18px 46px}.hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#084a3e,#077b5e 75%,#10a47b);color:white;border-radius:24px;padding:36px 42px 38px;isolation:isolate}.hero-top{display:flex;align-items:center;justify-content:space-between}.hero-mark{font-size:32px;line-height:1}.hero-chip{border:1px solid #ffffff55;border-radius:30px;padding:7px 11px;font-size:11px;font-weight:800;letter-spacing:1.6px;display:flex;align-items:center;gap:9px}.green-dot{width:8px;height:8px;background:#b7f6a8;border-radius:50%}.hero h1{font-size:clamp(36px,6vw,58px);line-height:1.05;letter-spacing:-2px;font-weight:800;margin:28px 0 14px}.hero h1 em{font-style:normal;color:#b8f4cf}.hero p{position:relative;z-index:2;line-height:1.65;margin:0;font-size:15px;opacity:.92}.hero p span{padding-left:10px}.hero-shape{position:absolute;border-radius:50%;border:1px solid #ffffff30;z-index:-1}.shape-1{width:410px;height:410px;right:-110px;top:-140px}.shape-2{width:270px;height:270px;right:-40px;bottom:-210px;background:#ffffff12}.nav-tabs{display:flex;gap:10px;margin:20px 0}.nav-tabs button{padding:14px;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:12px;font-weight:750;flex:1}.nav-tabs button.active{color:#fff;border-color:var(--green);background:var(--green);box-shadow:0 6px 16px #0871532c}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{border:1px solid var(--line);background:var(--white);border-radius:19px;padding:25px;margin:0 0 17px;box-shadow:var(--shadow)}.panel-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:23px}.section-symbol{flex:none;width:42px;height:42px;background:var(--light);color:var(--green);border-radius:12px;display:grid;place-items:center;font-weight:850;font-size:14px}.panel h2,.dashboard-heading h2{font-size:21px;letter-spacing:-.5px;margin:0 0 6px}.panel-heading p,.leader-heading p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}label:not(.file-button){display:block;font-weight:650;font-size:13px;margin:0 0 9px}input:not([type=file]),select{display:block;width:100%;border:1px solid #c8dcd2;border-radius:10px;background:#fff;color:var(--ink);padding:13px 14px;min-width:0;min-height:47px;font-size:16px}input::placeholder{color:#9eafa6}.btn-primary,.btn-outline,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;min-height:43px;padding:12px 17px;font-size:13px;font-weight:750;white-space:normal;text-align:center;text-decoration:none}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:#07503f}.btn-outline{border:1px solid #b8d5c9;background:#eef7f1;color:#155747}.btn-ghost{background:transparent;color:var(--green)}.full{width:100%;margin-top:14px}.full span{margin-left:5px}.small-note{color:var(--muted);font-size:12px;line-height:1.6;margin:14px 0 0}.hidden{display:none!important}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.4px;color:var(--muted);margin-bottom:9px}.global-message,.alert,.scan-message{padding:13px 16px;border-radius:11px;margin:15px 0;line-height:1.55;font-size:13px}.global-message{border:1px solid #a6dcc1;background:#eaf7ef;color:#11553c}.global-message.error,.alert-warn,.scan-message.error{background:#fff0ed;border:1px solid #ffc8bc;color:#99322a}.alert-success,.scan-message{background:#e7f7ec;border:1px solid #afe1c1;color:#14633a}.result-header{display:flex;justify-content:space-between;gap:16px;align-items:center}.result-header h2{font-size:24px;margin:0 0 8px}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;font-size:13px;color:var(--muted)}.score-big{display:flex;align-items:baseline;gap:3px;color:var(--green);font-size:46px;font-weight:850;letter-spacing:-1px}.score-big small{font-size:20px;color:var(--muted);font-weight:650}.progress-info{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:23px 0 9px}.sync-label{color:var(--green)}.progress-track{background:#e7f1eb;border-radius:22px;overflow:hidden;height:9px}.progress-fill{background:linear-gradient(90deg,#0b7b5e,#3bbe8b);height:100%;width:0%;transition:width .35s}.game-scores{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:22px}.game-score{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:8px}.game-score span{font-size:13px;font-weight:600}.game-score strong{font-size:16px;color:var(--green);white-space:nowrap}.game-score.pending strong{color:#9eafa6}.result-bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.qr-card{width:100%;max-width:275px;margin:auto;border:1px dashed #a9ccbb;border-radius:14px;padding:15px;text-align:center;background:#fbfdfb}.qr-header{letter-spacing:1.3px;font-size:10px;color:var(--green);font-weight:850}.qr-image{min-height:212px;display:grid;place-items:center;padding:10px}.qr-image img,.qr-image canvas{max-width:100%;height:auto}.qr-placeholder{font-size:12px;color:var(--muted)}.qr-label{font-weight:800;color:var(--ink);margin-top:2px}.qr-card p{font-size:11px;color:var(--muted);line-height:1.5}.result-actions{display:grid;gap:8px}.result-actions .full{margin-top:0}.login-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.login-form .btn-primary{min-height:47px}.dashboard-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0 18px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:17px}.metric{background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px;box-shadow:var(--shadow)}.metric span{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;font-size:30px;color:var(--green);margin-top:9px}.scan-controls,.leader-actions{display:flex;gap:8px;flex-wrap:wrap}.scan-controls{margin-bottom:12px}.file-button{cursor:pointer}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scanner{background:#f3faf6;border:1px solid var(--line);padding:13px;border-radius:13px;margin:12px 0}.scanner p{font-size:12px;color:var(--muted);text-align:center}#scannerReader{max-width:420px;margin:auto}.code-input{display:flex;gap:8px}.code-input input{flex:1}.found-student{background:var(--light);padding:11px 13px;border:1px solid #c9e9d7;border-radius:10px;margin-top:9px;font-size:13px}.score-inputs{display:grid;grid-template-columns:2fr 1fr;gap:13px;margin-top:14px}.leader-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:17px}.search-box{margin-bottom:12px}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead{background:var(--light)}th{font-size:11px;color:#426258;text-transform:uppercase;letter-spacing:.5px}td,th{text-align:left;padding:13px 11px;border-bottom:1px solid #e5eee8;white-space:nowrap}td:nth-child(2){font-weight:700}td:first-child{color:var(--muted)}td:last-child{color:var(--green);font-weight:800}.table-action{background:#eaf6ef;color:var(--green);border-radius:7px;padding:7px 9px;font-size:12px;font-weight:700}.list-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:11px}.migration-panel summary{color:var(--green);font-weight:700;cursor:pointer}.migration-panel details p{max-width:660px}.migration-panel input[type=file]{max-width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;margin:14px 0}.migration-panel button{margin-top:12px}footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:26px 0 0;margin-top:24px;color:var(--muted);font-size:12px;font-weight:650}@media(max-width:720px){.shell{padding:12px 12px 28px}.hero{padding:25px 23px;border-radius:18px}.hero h1{margin:25px 0 12px}.hero p span{display:block;padding-left:0}.nav-tabs{margin:14px 0}.nav-tabs button{font-size:12px;padding:13px 8px}.panel{padding:19px;border-radius:15px}.two-col,.result-bottom{grid-template-columns:1fr}.login-form{grid-template-columns:1fr}.game-scores{grid-template-columns:1fr}.result-header h2{font-size:20px}.score-big{font-size:40px}.score-big small{font-size:15px}.result-actions{grid-template-columns:1fr 1fr}.result-actions button:first-child{grid-column:1 / -1}.metric{padding:13px}.metric strong{font-size:25px}.metric span{font-size:11px}.leader-heading{align-items:flex-start;flex-direction:column}.scan-controls button,.scan-controls label{flex:1}.dashboard-heading h2{font-size:18px}.score-inputs{grid-template-columns:1fr 1fr}footer{flex-direction:column}}
@media print{.hero,.nav-tabs,#registerPanel,#lookupForm,#loginPanel,#staffView,#globalMessage,.result-actions,footer{display:none!important}.panel{box-shadow:none;border:0}.result-bottom{display:block}.qr-card{break-inside:avoid}}
