:root{color-scheme:dark;--green:#a2ff63;--muted:#9baaa0;--line:#26382d;--bg:#080e0b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#eef5ef;font:15px/1.6 system-ui,sans-serif}.grid{position:fixed;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(#183b2424 1px,transparent 1px),linear-gradient(90deg,#183b2424 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(#000,transparent 80%)}header,footer{display:flex;justify-content:space-between;align-items:center;max-width:1240px;margin:auto;padding:28px 32px;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.brand{display:flex;gap:17px;align-items:center;font:700 24px monospace;color:var(--green)}.brand span{font:14px system-ui;color:#fff;letter-spacing:2px}.brand b{font-weight:400;color:var(--muted)}.online,.eyebrow,.section-title,footer,.tags{font:12px/1.5 monospace;letter-spacing:1px}.online{color:var(--green);border:1px solid var(--line);padding:7px 12px}main{max-width:1240px;padding:46px 32px;margin:auto}.intro{margin-bottom:38px}.eyebrow{color:var(--green)}h1{font-size:clamp(34px,4.2vw,58px);line-height:1.12;letter-spacing:-2px;margin:20px 0}h1 em{font-style:normal;color:var(--green)}.intro>p:last-child{color:var(--muted);font-size:17px}.workspace{display:grid;grid-template-columns:1fr 1.15fr;gap:24px}.panel{background:#0e1712f5;border:1px solid var(--line);padding:28px;border-radius:14px}.section-title{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px;color:var(--green)}.muted{color:var(--muted)}label{display:block;margin:18px 0 9px}input,button{font:inherit}input[type=password]{width:100%;padding:12px;background:#090f0b;border:1px solid #3b5142;color:#fff;border-radius:6px}button{cursor:pointer;border:1px solid #405346;background:transparent;color:#eaf4ea;padding:12px 18px;border-radius:7px}button:hover{border-color:var(--green);background:#a2ff6310}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:4px}#groups{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.selected{color:#0d180a;background:var(--green)!important;border-color:var(--green);font-weight:700}.drop{border:1px dashed #526c57;border-radius:10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:24px 12px;cursor:pointer;background:#14241a80}.drop.over{border-color:var(--green);background:#25412b}.drop span:last-of-type,.small{color:var(--muted);font-size:12px}.upload-icon{font-size:32px;color:var(--green)}input[type=file]{max-width:100%;font-size:12px;color:var(--muted);margin-top:8px}#filename{overflow-wrap:anywhere}.primary{width:100%;background:var(--green);color:#0b190a;border:0;font-weight:700;display:flex;justify-content:space-between;padding:15px 20px;margin-top:20px}.primary:hover{background:#baff8b}.rule{display:flex;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.rule>b{font:38px monospace;color:var(--green)}.rule p{margin:0;font-size:12px;color:var(--muted)}.rule strong{color:#fff}.results{min-height:560px}#empty{text-align:center;padding:65px 10px;color:var(--muted)}#empty h2{color:#e9f3e9;font-size:21px}.terminal-icon{font:64px monospace;color:#52775e}.tags{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:30px}.tags span{border:1px solid var(--line);padding:6px 8px}.notice{border-left:3px solid var(--green);background:#132017;padding:15px 22px;margin:24px 0;color:#c3d4c7;font-size:13px}.teacher{border:1px solid var(--line);padding:20px;border-radius:8px}.teacher p{color:var(--muted);font-size:13px}.teacher input{max-width:320px;margin-right:12px}.teacher button{margin-top:12px}summary{cursor:pointer}.score{font:68px/1 monospace;color:var(--green);margin:20px 0}.score small{font-size:20px;color:var(--muted)}.meta,.scope{color:var(--muted);font-size:12px}#report h3{color:var(--green);font-size:14px}#report li{margin-bottom:10px;font-size:14px}#error{padding:14px;border:1px solid #c99562;color:#ffd4a9;border-radius:6px}footer{border-top:1px solid var(--line);border-bottom:0;color:var(--muted);gap:20px}@media(max-width:800px){.workspace{grid-template-columns:1fr}main{padding:24px 18px}.panel{padding:20px}header,footer{padding:20px 18px;flex-wrap:wrap;gap:14px}.brand{font-size:20px}.online{font-size:10px}h1{letter-spacing:-1px}#empty{padding:32px 10px}.results{min-height:360px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}}
