/* Shared bright theme for the student and teacher portals. */
:root{color-scheme:light;--bg:#f3f7ff;--bg2:#eaf1ff;--surface:#fff;--surface2:#edf3ff;--border:#cbd8ef;--teal:#087f73;--teal-dim:#096e65;--gold:#925b08;--red:#bf2445;--text:#182544;--text-dim:#52627b}
body{background:radial-gradient(ellipse at 5% 0%,#cceeff 0%,transparent 40%),radial-gradient(ellipse at 95% 20%,#e4dcff 0%,transparent 38%),linear-gradient(145deg,#f4fbff,#f8f5ff 60%,#fff8ed);background-attachment:fixed}
.paper-card,.auth-card{background:#fff;border:1px solid #d4dff1;border-radius:22px;box-shadow:0 10px 30px rgba(58,85,143,.09)}
.paper-card{border-top:4px solid #5276e7}.paper-card:nth-of-type(3n+2){border-top-color:#13a995}.paper-card:nth-of-type(3n){border-top-color:#9b6bea}
.auth-card{box-shadow:0 20px 65px rgba(77,98,166,.15)}
.tabs{background:rgba(255,255,255,.9);padding:8px;border:1px solid var(--border);border-radius:17px;box-shadow:0 5px 18px #4263a312}
.tab{border-radius:12px;color:#475673}.tab.active{background:linear-gradient(125deg,#3158cf,#7950ce);color:#fff;border-color:transparent;box-shadow:0 4px 12px #4d58b52a}.tab.active .tag{color:#fff;opacity:.9}
.submit,.auth-submit{background:linear-gradient(120deg,#2854cc,#7041c7);color:#fff;border:0;box-shadow:0 4px 12px #4b4fb526;transition:transform .15s,box-shadow .15s}
.submit:hover:not(:disabled),.auth-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 7px 17px #4b4fb535;opacity:1}
.submit:disabled,.auth-submit:disabled{background:#e0e7f2;color:#52627b;box-shadow:none;cursor:not-allowed}
.back-btn,.logout-btn{background:#f1f5ff;color:#334d81;border:1px solid #c6d4f0;border-radius:10px;padding:10px 14px;cursor:pointer}
button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,.tab:focus-visible{outline:3px solid #eea82c;outline-offset:3px}
input,textarea,select{background:#f7faff;color:var(--text);border-color:#c7d6ec}input::placeholder,textarea::placeholder{color:#65758e}
.mode-note{background:#eef5ff;border:1px solid #ccddf5;border-radius:12px;padding:12px 16px;color:#425475}
.q-badge{background:#eef0ff;color:#5140a7;border-color:#dcd5fa}.stat-pill{background:#fff;box-shadow:0 3px 10px #49669c12}.subject-switch.active{background:#e2f7f0;color:#096f5a;border-color:#74cbb8}
.mark-stamp{color:#253a71}.result{background:#fff}.auth-toggle-btn.active{background:#dfe9ff;color:#2447a4}.student-disclosure>summary{background:#eef5ff;color:#355d9e}
header{padding:16px;background:#ffffffc9;border:1px solid #d5e0f1;border-radius:20px;box-shadow:0 5px 20px #4366a00b}
#mapMemoryGame{background:linear-gradient(155deg,#fff,#f1fcf8);border-top-color:#10a28d}#mapMemoryGame h2{color:#127969}#mmStats{padding:12px 16px;background:#e6f6ee;border:1px solid #b6e1cf;border-radius:12px;color:#246148;font-weight:700;margin:14px 0}
.mm-board{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:start}.mm-column{display:grid;gap:12px;min-width:0}.mm-column h3{font-size:16px;margin:4px 0}.mm-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:170px;width:100%;padding:14px;border:2px solid #c7d9ec;border-radius:18px;background:#fff;color:#21324f;cursor:pointer;transition:border-color .15s,box-shadow .15s}.mm-card:hover:not(:disabled){border-color:#738fde;box-shadow:0 4px 16px #4874ad20}.mm-map{display:block;height:200px;width:100%;overflow:auto;background:#fff}.mm-map svg{width:100%;height:auto}.mm-name{font-size:21px;font-weight:700}.mm-card.mm-chosen{border-color:#7155d6;background:#f5efff;box-shadow:0 0 0 3px #e4dafb}.mm-card.mm-matched{border-color:#28a27c;background:#ecfaf4;opacity:1}.mm-check{color:#167451;font-size:13px;font-weight:700;margin-top:10px}#mmStudy{background:#fff7df;border:1px solid #ead798;padding:14px;border-radius:14px}#mmStudy summary{color:#775515;font-weight:700;cursor:pointer}.mm-study-map{background:#fff}.mm-study-pair{border-color:#e7d79e}
@media(max-width:600px){header{padding:12px;gap:10px;flex-wrap:wrap}.mm-board{grid-template-columns:1.15fr 1fr;gap:8px}.mm-card{padding:7px;min-height:130px}.mm-map{height:140px}.mm-name{font-size:16px}.mm-column h3{font-size:13px}.paper-card{border-radius:17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{body{background:#fff}.paper-card,header{box-shadow:none}}
/* Vibrant explorer theme: rich violet, electric cyan and warm coral. */
:root{--bg:#f6f2ff;--bg2:#ede5ff;--surface:#fff;--surface2:#f0eaff;--border:#d8cdf2;--teal:#6c32cc;--teal-dim:#54249e;--gold:#996009;--text:#23143e;--text-dim:#605172}
body{background:radial-gradient(circle at 0% 0%,#c7f7fa,transparent 35%),radial-gradient(circle at 100% 40%,#ffd5e3,transparent 36%),linear-gradient(135deg,#ede3ff,#faf5ff 55%,#e4fbff)}
header{background:linear-gradient(115deg,#4b218d,#783dd0 70%,#b245ad);color:#fff;border:0;box-shadow:0 12px 32px #592a9c30;border-radius:24px}header h1,header h2,header p,header .tagline,header .subtitle{color:#fff}header .logo{color:#a6fbf0}header .logout-btn,header .back-btn{background:#ffffff20;color:#fff;border-color:#ffffff50}
.paper-card{border:1px solid #d9c9ee;border-top:5px solid #8049db;box-shadow:0 12px 32px #542c8814}.paper-card:nth-of-type(3n+2){border-top-color:#00a5b8}.paper-card:nth-of-type(3n){border-top-color:#f16b87}
.tabs{background:#fff9;border-color:#d9cdf0}.tab.active{background:linear-gradient(115deg,#6930c1,#a63ebe);box-shadow:0 5px 14px #7331b733}
.submit,.auth-submit{background:linear-gradient(115deg,#7033cd,#a634bc);border-radius:13px;box-shadow:0 6px 16px #7733b82b}.subject-switch.active{background:#ede3ff;color:#5c26a5;border-color:#af82e9}.q-badge{background:#ffedf2;color:#a32657;border-color:#f8bad0}.stat-pill{border-top:3px solid #00a1b4}.student-disclosure>summary{background:#eee5ff;color:#5e2fa2}
#mapMemoryGame{background:linear-gradient(140deg,#fff,#f8f1ff 60%,#edfdff);border-top:5px solid #f36e8c}#mapMemoryGame h2{color:#6023aa;font-size:clamp(24px,4vw,34px);margin:12px 0}.pq-kicker{font-size:11px;letter-spacing:.16em;font-weight:800;color:#8a398e}.pq-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:20px 0}.pq-guide article{padding:14px;background:white;border:1px solid #ded0f1;border-radius:20px}.pq-guide strong{display:block;margin:12px 0;color:#5b2994}.pq-map{background:#fff;border-radius:16px;border:1px solid #e0d5ee;padding:12px;overflow:auto}.pq-map svg{display:block;width:100%;height:auto;max-height:430px}.pq-progress{display:flex;gap:10px;margin:22px 0}.pq-progress span{display:grid;place-items:center;background:#eee5f9;border:2px dashed #bea1de;border-radius:50%;width:46px;height:46px;font-size:22px}.pq-progress .collected{background:#bdf8ed;border:2px solid #008574;color:#006457}.pq-challenge{background:white;border:1px solid #decdf2;padding:20px;border-radius:24px;box-shadow:0 10px 24px #65349312}.pq-challenge h3{font-size:23px;color:#462170}.pq-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pq-choices button{background:#f1e9ff;color:#50258a;border:2px solid #d2b8f0;border-radius:16px;padding:18px 12px;font-size:17px;font-weight:700;cursor:pointer}.pq-choices button:hover:not(:disabled){background:#e4d4ff;border-color:#8951cd;transform:translateY(-2px)}.pq-choices .pq-correct{background:#bdf8ed;color:#006452;border-color:#048676}.pq-choices .pq-retry{background:#fff0f3;color:#7c4756;border-color:#ebbdca}.pq-help{background:#fff3dc;border:1px solid #ecc995;border-radius:16px;padding:16px;margin-top:16px;color:#765013}.pq-help summary{cursor:pointer;font-weight:700}.pq-finish{text-align:center;background:linear-gradient(140deg,#efe3ff,#d3faf5);padding:30px;border-radius:24px;margin-top:20px}.pq-finish>span{font-size:60px}.pq-finish h3{font-size:28px;color:#562291}.pq-stamps{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:20px 0}.pq-stamps span{background:#fff;padding:12px 18px;border:2px dashed #9570c4;border-radius:14px;font-weight:700;color:#582e8f}
@media(max-width:600px){.pq-choices{grid-template-columns:1fr}.pq-choices button{padding:14px}.pq-challenge{padding:12px}.pq-progress{gap:6px}.pq-progress span{width:38px;height:38px}.pq-guide{grid-template-columns:1fr}}
@media print{header{background:#fff;color:#23143e}header h1,header h2,header p{color:#23143e}}
