@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--bg1: #0a1222;--bg2: #0f1b33;--ink: #e6efff;--muted: #9fb2cf;--accent: #3776ab;--accent2: #ffd343;--panel: #111c30cc;--border: #22324a;font-family:Space Grotesk,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#1b2c4a,transparent 60%),radial-gradient(900px 500px at 90% 10%,#1a3256,transparent 55%),linear-gradient(180deg,var(--bg1),#0b1426);min-height:100vh}a{color:inherit;text-decoration:none}.container{width:min(1100px,92vw);margin:0 auto;padding:32px 0 64px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.brand{font-size:28px;font-weight:700;letter-spacing:.5px}.nav a{margin-left:16px;padding:8px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 12px 28px #00000059}.card h3{margin:0 0 8px}.muted{color:var(--muted)}.button{display:inline-block;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.button.secondary{background:var(--accent2);color:#1a1a1a}.button.danger{background:#c43d3d}.input,textarea,select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#0f1728;color:var(--ink);font-family:inherit}textarea{resize:vertical}.section{margin-top:20px}.big-grade{font-size:64px;font-weight:800;color:var(--accent2)}.criteria-list{list-style:none;padding:0;margin:8px 0 0}.criteria-list li{padding:6px 0;border-bottom:1px dashed var(--border);display:flex;align-items:center;gap:8px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:#0f1728;color:var(--ink)}.status{display:inline-flex;width:20px;height:20px;border-radius:999px;align-items:center;justify-content:center;font-size:13px;border:1px solid var(--border)}.status-ok{color:#7fe3b0;border-color:#3b9b6d}.status-bad{color:#ff8f8f;border-color:#b84a4a}.criteria-name{font-weight:600}.criteria-detail{color:var(--muted);font-size:13px}.terminal{margin-top:14px;background:#0b1322;border:1px solid #1c2a41;border-radius:14px;padding:12px}.terminal-output{min-height:160px;max-height:280px;overflow:auto;margin:0;white-space:pre-wrap;font-family:Consolas,Courier New,monospace;font-size:13px;color:#d7e3ff}.terminal-input-row{display:flex;align-items:center;gap:8px;margin-top:10px}.terminal-prompt{color:#9fb2cf;font-weight:700}.terminal-input{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#0f1728;color:var(--ink);font-family:Consolas,Courier New,monospace}.upload-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-input{display:none}.file-pill{border:1px dashed var(--border);padding:8px 12px;border-radius:999px;cursor:pointer;background:#0f1728;color:var(--muted);font-size:14px}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.button-row{display:flex;gap:12px;margin-top:16px}.list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:12px;background:#0e182b;border:1px solid var(--border)}.list-title{font-weight:600}.list-sub{color:var(--muted);font-size:14px}.list-actions{display:flex;gap:8px}.chip-row{display:flex;gap:8px;margin-top:6px}.chip{padding:4px 10px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:#0f1728;color:var(--ink)}.chip-ok{border-color:#3b9b6d;color:#7fe3b0}.chip-muted{color:var(--muted)}.chip-warn{border-color:#d6a03a;color:#ffd27a}.submission-card{background:#0e182b;border:1px solid var(--border);border-radius:14px;padding:14px}.submission-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.code-block{background:#0b1322;border:1px solid #1c2a41;border-radius:10px;padding:10px;white-space:pre-wrap;color:#d7e3ff;font-family:Consolas,Courier New,monospace;font-size:13px}.error-block{border-color:#6a1d1d;color:#ffb3b3}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#070c16b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{width:min(720px,92vw);background:#0c1527;border:1px solid var(--border);border-radius:18px;box-shadow:0 30px 80px #00000080;animation:modalIn .18s ease-out;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 10px}.modal-title{font-size:20px;font-weight:700}.modal-body{padding:0 20px 18px;overflow:auto;max-height:70vh}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.icon-button{background:transparent;border:1px solid var(--border);color:var(--ink);border-radius:10px;padding:4px 10px;cursor:pointer}.stepper-nav{display:flex;gap:8px;margin-bottom:12px}.step-dot{width:28px;height:28px;border-radius:999px;border:1px solid var(--border);display:grid;place-items:center;color:var(--muted)}.step-dot.active{border-color:var(--accent2);color:#1a1a1a;background:var(--accent2);font-weight:700}.stepper{display:flex;width:200%;transition:transform .24s ease}.stepper-window{overflow:hidden}.step{width:50%;padding-right:16px}.label{font-size:13px;color:var(--muted);display:block;margin-bottom:6px}.toggle{display:flex;align-items:center;gap:8px;font-size:14px}.requirements.disabled{opacity:.5;pointer-events:none}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:12px;overflow:hidden}.segment{background:transparent;color:var(--ink);padding:8px 14px;border:0;cursor:pointer}.segment.active{background:var(--accent);color:#fff}.link-button{margin-left:8px;background:transparent;border:0;color:var(--accent2);cursor:pointer;font-weight:600}@keyframes modalIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 820px){.row{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;gap:12px}.list-row{flex-direction:column;align-items:flex-start}.modal-actions{flex-direction:column}}
