:root{--bg0: #0f1c18;--bg1: #163028;--bg2: #1e3d33;--panel: rgba(20, 42, 36, .82);--panel-solid: #142a24;--line: rgba(196, 214, 205, .14);--text: #e8f2ed;--muted: #9bb5a8;--accent: #d4a017;--accent-soft: rgba(212, 160, 23, .16);--ok: #3ecf8e;--bad: #ef6b6b;--warn: #e8b86d;--shadow: 0 24px 60px rgba(0, 0, 0, .35);--radius: 18px;--font-display: "Fraunces", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--touch: 44px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%;min-height:100dvh}body{margin:0;font-family:var(--font-body);color:var(--text);background:radial-gradient(1200px 700px at 10% -10%,rgba(212,160,23,.18),transparent 55%),radial-gradient(900px 600px at 100% 0%,rgba(62,207,142,.12),transparent 50%),linear-gradient(160deg,var(--bg0),var(--bg1) 45%,var(--bg2));background-attachment:fixed;overflow-x:hidden}button,input,select{font:inherit;touch-action:manipulation}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;min-height:100dvh;padding:calc(20px + var(--safe-top)) calc(clamp(12px,3vw,40px) + var(--safe-right)) calc(28px + var(--safe-bottom)) calc(clamp(12px,3vw,40px) + var(--safe-left))}.brand{font-family:var(--font-display);font-size:clamp(1.85rem,5vw,3rem);letter-spacing:-.03em;margin:0;line-height:1.1}.brand span{color:var(--accent)}.muted{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.btn{border:1px solid transparent;border-radius:12px;padding:.75rem 1.15rem;min-height:var(--touch);font-weight:600;transition:transform .18s ease,background .18s ease,border-color .18s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#1a1405}.btn-primary:hover{background:#e0b12a}.btn-ghost{background:transparent;border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:#d4a01773;background:var(--accent-soft)}.field{display:grid;gap:.45rem;min-width:0}.field label{font-size:.85rem;color:var(--muted);font-weight:500}.field input,.field select{width:100%;max-width:100%;border-radius:12px;border:1px solid var(--line);background:#08120f8c;color:var(--text);padding:.8rem .95rem;min-height:var(--touch);outline:none;font-size:16px}.field input:focus,.field select:focus{border-color:#d4a0178c;box-shadow:0 0 0 3px var(--accent-soft)}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.stat{padding:.75rem .7rem;border-radius:14px;background:#08120f66;border:1px solid var(--line);min-width:0}.stat strong{display:block;font-size:clamp(1.1rem,3.5vw,1.35rem);font-weight:700;margin-top:.15rem}.stat span{font-size:clamp(.62rem,2.2vw,.78rem);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;line-height:1.2;display:block}@media(hover:none){.btn:hover,.choice:hover:not(:disabled){transform:none}}.login-wrap{min-height:calc(100dvh - 76px - var(--safe-top) - var(--safe-bottom));display:grid;place-items:center}.login-hero{width:min(460px,100%);padding:clamp(1.35rem,4vw,2.2rem);animation:rise .55s ease both}.eyebrow{margin:0 0 .55rem;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--accent);font-weight:600}.login-lead{margin:.75rem 0 1.6rem;line-height:1.5}.login-form{display:grid;gap:1rem}.login-form .btn{width:100%}.form-error{margin:0;color:var(--bad);font-size:.92rem}.topbar,.exam-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}.setup-wrap,.exam-wrap,.history-wrap{width:min(980px,100%);margin:0 auto;animation:rise .45s ease both}.setup-panel{padding:clamp(1rem,3vw,1.5rem);display:grid;gap:1.15rem}.resume-banner{padding:clamp(1rem,3vw,1.25rem);margin-bottom:1rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;border-color:#d4a01759;background:#d4a01714}.resume-banner strong{display:block;margin:.15rem 0 .35rem;font-size:1.05rem}.resume-actions{display:flex;flex-wrap:wrap;gap:.55rem;flex-shrink:0}.setup-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.exam-top{padding:1rem 1.15rem;align-items:center;position:sticky;top:calc(8px + var(--safe-top));z-index:20;background:#142a24eb}.exam-top-main{min-width:0;flex:1}.exam-top h1{margin:0;font-family:var(--font-display);font-size:clamp(1.15rem,3.4vw,1.85rem);line-height:1.25;overflow-wrap:anywhere}.exam-controls{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;justify-content:flex-end;flex-shrink:0}.timer{min-width:88px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700;font-size:clamp(1.05rem,3.5vw,1.25rem);padding:.55rem .75rem;min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#08120f8c;border:1px solid var(--line)}.timer.warn{color:var(--warn);border-color:#e8b86d73}.timer.danger{color:var(--bad);border-color:#ef6b6b80;animation:pulse 1s ease infinite}.exam-stats{margin-bottom:1rem}.grade-bar{padding:clamp(.9rem,2.5vw,1.15rem);margin-bottom:1.25rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;position:sticky;bottom:calc(10px + var(--safe-bottom));z-index:15;background:#142a24f0}.grade-bar.is-open{position:static}.grade-result{display:flex;flex-wrap:wrap;gap:1rem;width:100%;justify-content:space-between;align-items:center}.question-nav{padding:clamp(.85rem,2.5vw,1.1rem);margin-bottom:1rem;display:grid;gap:.75rem}.nav-label{margin:0;font-size:.82rem;color:var(--muted);font-weight:500}.filter-chips{display:flex;flex-wrap:wrap;gap:.45rem}.filter-chip{border:1px solid var(--line);background:#08120f59;color:var(--text);border-radius:999px;padding:.45rem .75rem;min-height:36px;font-size:.82rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem}.filter-chip span{background:#ffffff14;border-radius:999px;padding:.1rem .45rem;font-size:.75rem;color:var(--muted)}.filter-chip.active{border-color:#d4a017a6;background:var(--accent-soft);color:var(--text)}.filter-chip.active span{color:var(--accent)}.question-map{display:flex;flex-wrap:wrap;gap:.35rem;max-height:140px;overflow-y:auto;padding:.15rem 0;-webkit-overflow-scrolling:touch}.map-dot{width:2.1rem;height:2.1rem;min-width:2.1rem;border-radius:8px;border:1px solid var(--line);background:#08120f73;color:var(--muted);font-size:.72rem;font-weight:700;padding:0}.map-dot.answered{border-color:#3ecf8e73;color:var(--ok)}.map-dot.flagged{border-color:#e8b86d8c;color:var(--warn);background:#e8b86d1f}.map-dot.both{border-color:#d4a017b3;color:var(--accent);background:var(--accent-soft)}.map-dot.dimmed{opacity:.35}.question-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.65rem}.question-badges{display:flex;flex-wrap:wrap;gap:.35rem}.q-badge{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .5rem;border-radius:999px;border:1px solid var(--line)}.q-badge.blank{color:var(--muted)}.q-badge.answered{color:var(--ok);border-color:#3ecf8e66;background:#3ecf8e1a}.q-badge.flagged{color:var(--warn);border-color:#e8b86d73;background:#e8b86d1f}.flag-btn{padding:.45rem .7rem;min-height:36px;font-size:.82rem;flex-shrink:0}.flag-btn.on{border-color:#e8b86d8c;background:#e8b86d24;color:var(--warn)}.question.is-flagged{border-color:#e8b86d59}.empty-filter{padding:1rem 1.15rem;text-align:center}.pager{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;position:sticky;bottom:calc(10px + var(--safe-bottom));z-index:12;background:#142a24f0}.pager .btn{min-width:7rem}.grade-score{margin:.2rem 0 0;font-family:var(--font-display);font-size:clamp(1.8rem,7vw,2.8rem);color:var(--accent)}.grade-score span{font-size:1rem;color:var(--muted)}.grade-details{display:flex;flex-wrap:wrap;gap:.55rem .9rem;color:var(--muted);font-size:.92rem;align-items:center}.questions{display:grid;gap:.9rem;padding-bottom:1rem}.question{padding:clamp(1rem,2.8vw,1.25rem)}.question h2{margin:0 0 .9rem;font-size:clamp(.98rem,2.8vw,1.05rem);font-weight:500;line-height:1.45;overflow-wrap:anywhere}.question h2 span{color:var(--accent);font-weight:700;margin-right:.35rem}.choices{display:grid;gap:.5rem}.choice{display:grid;grid-template-columns:1.75rem 1fr;gap:.65rem;align-items:start;text-align:left;padding:.8rem .85rem;min-height:var(--touch);border-radius:14px;border:1px solid var(--line);background:#08120f59;color:var(--text);transition:border-color .18s ease,background .18s ease,transform .18s ease}.choice:hover:not(:disabled){border-color:#d4a01766;transform:translate(2px)}.choice:active:not(:disabled){background:var(--accent-soft)}.choice em{font-style:normal;font-weight:700;color:var(--accent);line-height:1.4}.choice span{overflow-wrap:anywhere;line-height:1.4}.choice.selected{border-color:#d4a017a6;background:var(--accent-soft)}.choice.correct{border-color:#3ecf8ea6;background:#3ecf8e1f}.choice.wrong{border-color:#ef6b6ba6;background:#ef6b6b1f}.history-panel{padding:clamp(1rem,3vw,1.25rem);display:grid;gap:1rem}.history-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.history-list li{display:flex;justify-content:space-between;gap:.85rem;align-items:center;padding:.85rem 1rem;border-radius:14px;border:1px solid var(--line);background:#08120f59}.history-list strong{display:block;margin-bottom:.2rem;overflow-wrap:anywhere}.history-list p{margin:0;font-size:.85rem}.history-score{font-family:var(--font-display);font-size:clamp(1.3rem,5vw,1.55rem);color:var(--accent);font-weight:700;flex-shrink:0}.evo-chart{border:1px solid var(--line);border-radius:14px;padding:.75rem;background:#08120f59}.evo-chart svg{width:100%;height:clamp(90px,22vw,120px);display:block}.evo-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:.75rem;margin-top:.35rem}.ai-actions{margin-top:.9rem;display:grid;gap:.65rem}.ai-box{white-space:pre-wrap;line-height:1.5;font-size:.92rem;color:var(--text);background:#d4a01714;border:1px solid rgba(212,160,23,.28);border-radius:12px;padding:.85rem 1rem;width:100%;overflow-wrap:anywhere}.tiny{font-size:.82rem;margin:.25rem 0 0}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.65}}@media(max-width:1024px){.setup-wrap,.exam-wrap,.history-wrap{width:min(920px,100%)}}@media(max-width:820px){.setup-row{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch}.topbar .exam-controls,.exam-controls{width:100%}.exam-top{flex-direction:column;align-items:stretch;gap:.75rem}.exam-controls{display:grid;grid-template-columns:1fr 1fr}.exam-controls .timer{grid-column:1 / -1;width:100%}.exam-controls .btn{width:100%}.grade-bar{flex-direction:column;align-items:stretch}.grade-bar>.btn,.grade-bar .btn-primary{width:100%}.grade-details .btn{width:100%}.history-list li{flex-direction:column;align-items:flex-start}.question-head{flex-direction:column;align-items:stretch}.flag-btn{width:100%}.filter-chip{flex:1 1 calc(50% - .45rem);justify-content:center}.resume-banner{flex-direction:column;align-items:stretch}.resume-actions,.resume-actions .btn{width:100%}}@media(max-width:480px){.app-shell{padding:calc(14px + var(--safe-top)) calc(10px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(10px + var(--safe-left))}.panel,.exam-top,.grade-bar,.question,.login-hero,.setup-panel,.history-panel{border-radius:14px}.stat{padding:.65rem .45rem;text-align:center}.choice{grid-template-columns:1.5rem 1fr;gap:.5rem;padding:.75rem .7rem}}
