:root{--navy:#071b3d;--blue:#2563eb;--green:#15803d;--red:#b91c1c;--muted:#52627d;--line:#dfe6f2;--bg:#f5f8ff;--card:#fff;--shadow:0 16px 45px rgba(15,23,42,.10)}
@keyframes siteChromeFallback{to{visibility:visible}}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--navy);background:linear-gradient(180deg,#fff,var(--bg));min-height:100vh;visibility:hidden;animation:siteChromeFallback 0s 2s forwards}body.site-chrome-ready{visibility:visible;animation:none}.top{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 5px 18px rgba(15,23,42,.06)}.topin{max-width:1100px;margin:auto;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.logo{height:34px;max-width:65vw}.teacher-link{color:var(--navy);font-weight:800;text-decoration:none}.wrap{max-width:900px;margin:36px auto;padding:0 18px}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:clamp(20px,4vw,36px);margin-bottom:22px}h1{font-size:clamp(30px,6vw,48px);margin:0 0 10px}h2{margin-top:0}.lead{color:var(--muted);font-size:18px;line-height:1.55}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{margin:15px 0}.field label{display:block;font-weight:800;margin:0 0 7px}.field input,.field select{width:100%;padding:13px 14px;border:1px solid #b9c6da;border-radius:12px;font:inherit;background:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--blue);color:#fff;padding:13px 19px;font-weight:900;font-size:16px;cursor:pointer;text-decoration:none}.btn.green{background:var(--green)}.btn.red{background:var(--red)}.btn.gray{background:#64748b}.error{padding:13px;border-radius:12px;background:#fee2e2;color:#991b1b;font-weight:700;margin:14px 0}.ok{padding:13px;border-radius:12px;background:#dcfce7;color:#166534;font-weight:700}.test-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.timer{font-size:22px;font-weight:900;background:#eef4ff;padding:10px 14px;border-radius:12px;white-space:nowrap;transition:background .2s,color .2s}.timer.timer-warning{background:#fee2e2;color:#b91c1c}.task{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:18px 0;box-shadow:0 8px 22px rgba(15,23,42,.06)}.task-title{background:#315ea8;color:#fff;padding:14px 18px;font-weight:900}.task-meta{opacity:.88;font-size:13px;margin-bottom:4px}.task img{display:block;max-width:100%;height:auto;margin:auto;padding:14px}.answers{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:14px}.answer{border:1px solid #cbd5e1;border-radius:12px;padding:12px;font-weight:900;cursor:pointer}.answer:has(input:checked){background:#dbeafe;border-color:#2563eb}.actions{position:sticky;bottom:0;z-index:30;background:rgba(245,248,255,.96);padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -8px 22px rgba(15,23,42,.08);backdrop-filter:blur(8px)}.code{font-size:42px;letter-spacing:.16em;font-weight:900;color:#1d4ed8}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#eef4ff}.status-open{color:#15803d;font-weight:900}.status-done{color:#1d4ed8;font-weight:900}.checks{max-height:220px;overflow:auto;border:1px solid var(--line);padding:10px;border-radius:12px}.checks label{display:block;padding:5px}.small{font-size:13px;color:var(--muted)}
.link-button{border:0;background:none;color:#6b21a8;text-decoration:underline;cursor:pointer;font:inherit;font-weight:700;padding:4px}
.join-title{display:flex;align-items:center;gap:12px}.join-title:before{content:'';display:inline-flex;width:52px;height:52px;border:1px solid #dfe6f2;border-radius:14px;background:#fff url('/images/logo-m-symbol.png') center/46px 46px no-repeat;box-shadow:0 6px 16px rgba(15,23,42,.07);flex:0 0 52px}
.sort-help{margin:14px 0 -6px}.summary-table th{padding:0}.sort-button{display:flex;min-width:100%;min-height:68px;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;border:0;background:transparent;color:inherit;padding:11px 9px;font:inherit;font-weight:900;text-align:left;white-space:nowrap;cursor:pointer}.sort-button:hover,.sort-button:focus-visible{background:#dfe9fb;outline:none}.sort-button.sort-active{background:#dbeafe;color:#1d4ed8}.sort-arrow{display:inline-block;min-width:14px;margin-left:3px;font-size:12px;color:#2563eb}.sort-button .small{display:block;font-weight:700}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);box-shadow:0 8px 22px rgba(15,23,42,.06);backdrop-filter:blur(14px)}
.site-topin{max-width:1220px;height:72px;min-height:72px;margin:auto;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative}.site-logo{max-width:390px;min-width:0;flex:0 1 390px;display:flex;align-items:center}.site-logo img{height:29px;max-width:100%;width:auto;display:block;object-fit:contain}.site-main-nav{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:24px;font-size:16px;font-weight:900;white-space:nowrap;flex:0 0 auto}.site-dropdown{position:relative}.site-dropdown button{color:#071b3d;padding:24px 0 22px;border:0;border-bottom:3px solid transparent;background:none;font:inherit;cursor:pointer;line-height:1}.site-dropdown:hover button,.site-dropdown:focus-within button{color:#263d66;border-bottom-color:#263d66}.site-dropdown-menu{display:none;position:absolute;left:0;top:64px;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.14);padding:8px;z-index:100}.site-dropdown:nth-of-type(3) .site-dropdown-menu{left:auto;right:0}.site-dropdown:hover .site-dropdown-menu,.site-dropdown:focus-within .site-dropdown-menu{display:block}.site-dropdown-menu a{display:block;padding:12px 14px;color:#071b3d;text-decoration:none;border-radius:12px;font-size:15px;font-weight:900}.site-dropdown-menu a:hover{background:#eef4ff;color:#263d66}.site-home-symbol{display:flex;align-items:center;margin-left:8px}.site-home-symbol img{width:38px;height:38px;display:block;transition:.25s ease}.site-home-symbol img:hover{transform:rotate(12deg) scale(1.08)}.site-menu-toggle,.site-hamb,.site-mobile-panel{display:none}.site-adminbar{background:#f7f9ff;border-top:1px solid var(--line);padding:9px 18px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.site-adminbar a{color:#071b3d;text-decoration:none;font-weight:800}.site-adminbar a:hover{text-decoration:underline}.site-footer{margin-top:42px;background:linear-gradient(135deg,#111827,#1f2937 65%,#263d66);color:#dbe4f3}.site-footer-main{max-width:1220px;margin:auto;padding:42px 22px 34px;display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:52px}.site-footer h2,.site-footer h3{margin:0 0 15px;color:#fff}.site-footer h2{font-size:23px;letter-spacing:.04em}.site-footer h3{font-size:17px}.site-footer p{max-width:420px;margin:0;color:#cbd5e1;line-height:1.65}.site-footer-links{display:grid;gap:10px}.site-footer a{color:#e8eef8;text-decoration:none;font-weight:700}.site-footer a:hover{color:#fff;text-decoration:underline}.site-footer-bottom{border-top:1px solid rgba(255,255,255,.13);padding:18px 22px 20px;color:#aebbd0;font-size:14px;text-align:center}.site-footer-bottom a{color:#fff}
@media(max-width:1120px){.site-topin{height:70px;min-height:70px}.site-logo{max-width:calc(100% - 48px);flex:1 1 auto}.site-logo img{height:27px}.site-main-nav{display:none}.site-hamb{display:block;margin-left:auto;font-size:32px;line-height:1;cursor:pointer;color:#071b3d}.site-menu-toggle:checked~.site-mobile-panel{display:block;position:absolute;left:0;right:0;top:70px;background:#fff;padding:10px 22px 18px;box-shadow:0 18px 36px rgba(15,23,42,.15);border-top:1px solid var(--line);max-height:calc(100vh - 70px);max-height:calc(100dvh - 70px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.site-mobile-panel details{border-bottom:1px solid var(--line)}.site-mobile-panel summary,.site-mobile-panel>a{display:flex;align-items:center;justify-content:space-between;color:#071b3d;text-decoration:none;font-weight:900;padding:17px 4px;cursor:pointer;list-style:none}.site-mobile-panel summary::-webkit-details-marker{display:none}.site-mobile-panel summary:after{content:'▾';font-size:15px;color:#263d66;margin-left:10px}.site-mobile-panel details[open] summary:after{content:'▴'}.site-mobile-panel details a{display:flex;color:#071b3d;text-decoration:none;font-weight:900;padding:13px 4px 13px 22px;border-top:1px solid #eef2f7}.site-mobile-panel a:hover{color:#263d66}.site-footer-main{grid-template-columns:1fr;gap:28px}.site-footer h2,.site-footer h3,.site-footer p{text-align:center;margin-left:auto;margin-right:auto}.site-footer-links{justify-items:center}}
.join-hero-card{position:relative;padding-right:350px;min-height:390px;display:flex;flex-direction:column;justify-content:center}.join-hero-graphic{position:absolute;right:28px;top:50%;width:285px;transform:translateY(-50%);pointer-events:none}.join-hero-graphic img{display:block;width:100%;height:auto}
.code-share-button{margin:12px 0 4px;background:#7c3aed}.share-code-page{background:linear-gradient(135deg,#eef4ff,#f5f3ff)}.share-code-wrap{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:34px 20px}.share-code-card{width:min(100%,1050px);background:#fff;border:1px solid var(--line);border-radius:30px;box-shadow:0 24px 70px rgba(15,23,42,.14);padding:clamp(28px,5vw,60px);text-align:center}.share-code-label{display:inline-block;background:#e0e7ff;color:#3730a3;border-radius:999px;padding:8px 15px;font-weight:900;letter-spacing:.08em}.share-code-card h1{margin:18px 0 6px;font-size:clamp(30px,5vw,58px)}.share-code-class{margin:0;color:var(--muted);font-size:clamp(17px,2vw,23px);font-weight:800}.share-code-value{margin:28px auto 20px;color:#1d4ed8;font-size:clamp(58px,12vw,132px);line-height:1;font-weight:900;letter-spacing:.16em;text-indent:.16em}.share-code-help{margin:0 0 6px;color:var(--muted);font-weight:800}.share-code-address{font-size:clamp(20px,3vw,34px);font-weight:900}.share-code-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:30px}.share-code-status{margin:24px 0 0;color:var(--muted)}
:fullscreen .site-header{display:none}:fullscreen .share-code-wrap{min-height:100vh;padding:18px}:fullscreen .share-code-card{box-shadow:none;border:0}
@media(max-width:820px){.join-hero-card{padding-right:clamp(20px,4vw,36px);min-height:0}.join-hero-graphic{display:none}}
@media(max-width:650px){.grid{grid-template-columns:1fr}.answers{grid-template-columns:1fr 1fr}.test-head{align-items:flex-start;flex-direction:column}.topin{padding:12px}.teacher-link{font-size:13px}.card{border-radius:16px}.wrap{margin-top:22px}.btn{width:100%}.actions .btn{width:auto;flex:1;min-width:0;padding-left:10px;padding-right:10px}.actions .timer{font-size:19px;padding:11px 10px}}
.teacher-entry{position:absolute;right:28px;top:28px;width:285px;margin:0;text-align:center;z-index:2}.teacher-entry a{color:#263d66;font-weight:900;text-decoration:none}.teacher-entry a:hover{text-decoration:underline}
@media(max-width:820px){.teacher-entry{position:static;width:auto;margin:22px 0 0;text-align:left}}
.join-buttons{display:flex;gap:10px;flex-wrap:wrap}.results-button{background:#fff;color:#1d4ed8;border:1px solid #9db8e8}.results-button:hover{background:#eef4ff}.student-code{font-size:16px;font-weight:900;letter-spacing:.08em;color:#1d4ed8}.student-actions{display:flex;gap:8px;align-items:center}.student-actions form{margin:0}.results-wrap{max-width:1050px}.results-login{max-width:680px;margin-left:auto;margin-right:auto}.student-code-input{text-transform:uppercase;font-size:25px!important;letter-spacing:.14em;font-weight:900}.results-privacy{margin-top:22px}.results-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.results-heading h1{font-size:clamp(30px,5vw,45px)}.results-heading .lead{margin-bottom:0}.results-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.result-stat{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:22px;text-align:center}.result-stat strong{display:block;font-size:34px;color:#1d4ed8}.result-stat span{display:block;margin-top:5px;color:var(--muted);font-weight:800}.result-status{display:inline-block;border-radius:999px;padding:6px 10px;font-weight:900;font-size:13px}.result-status.done{background:#dcfce7;color:#166534}.result-status.pending{background:#fef3c7;color:#92400e}.result-details-row td{padding-top:4px;background:#fafcff}.result-details-row details summary{cursor:pointer;color:#1d4ed8;font-weight:900}.wrong-list{display:grid;gap:8px;margin:12px 0}.wrong-list div{display:flex;justify-content:space-between;gap:18px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.wrong-list span{color:var(--muted)}.all-correct{color:#166534;font-weight:900}.codes-print-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.codes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}.code-slip{border:1px dashed #8191aa;border-radius:12px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.code-slip code{font-size:18px;font-weight:900;letter-spacing:.08em;color:#1d4ed8}
@media(max-width:700px){.results-stats{grid-template-columns:1fr}.results-heading{align-items:flex-start;flex-direction:column}.results-heading .btn{width:auto}.wrong-list div{display:block}.wrong-list span{display:block;margin-top:5px}.codes-grid{grid-template-columns:1fr}.join-buttons{display:grid;grid-template-columns:1fr 1fr}.join-buttons .btn{width:100%}}
@media print{.no-print,.site-header,.site-footer{display:none!important}.codes-print-page{background:#fff!important;visibility:visible!important}.codes-print-page .wrap{max-width:none;margin:0;padding:0}.codes-print-page .card{box-shadow:none;border:0;padding:0}.codes-grid{grid-template-columns:repeat(2,1fr)}.code-slip{break-inside:avoid}}
.join-buttons{justify-content:space-between;width:100%}.join-buttons .results-button{margin-left:auto}
.not-written{display:inline-block;padding:6px 10px;border-radius:999px;background:#fef3c7;color:#92400e;font-weight:900;font-size:13px}
.codes-grid{gap:0;border-top:1px dashed #8191aa;border-left:1px dashed #8191aa}.code-slip{min-height:58px;border:0;border-right:1px dashed #8191aa;border-bottom:1px dashed #8191aa;border-radius:0;padding:14px 16px}
@media print{.codes-grid{gap:0;border-top:1px dashed #64748b;border-left:1px dashed #64748b}.code-slip{border:0;border-right:1px dashed #64748b;border-bottom:1px dashed #64748b;border-radius:0;min-height:54px;padding:12px 14px}}
@media(max-width:700px){.join-buttons .results-button{margin-left:0;padding-left:6px;padding-right:6px;font-size:15px;white-space:nowrap;text-align:center;justify-content:center}}
