:root{--bg:#f4ead3;--ink:#1c1b2e;--card:#fffaf0;--red:#ff5a36;--blue:#2d4bff;--mint:#19b78a;--gold:#ffc83d;--px:4px}
*{box-sizing:border-box}html{background:var(--bg)}html,body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:14px/1.55 'Spline Sans Mono',monospace}
body{background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px);background-size:32px 32px;background-blend-mode:soft-light;padding:env(safe-area-inset-top) 0 calc(78px + env(safe-area-inset-bottom))}
h1,h2,h3,.px{font-family:Silkscreen,monospace;text-transform:uppercase;letter-spacing:.04em;margin:0}
@media(pointer:fine){*{cursor:none!important}}
#donut{position:fixed;left:0;top:0;width:30px;height:34px;pointer-events:none;z-index:99;will-change:transform}
#donut svg{width:100%;height:100%;overflow:visible;transform-origin:12% 6%;transition:transform .15s,filter .15s;filter:drop-shadow(0 0 4px #c4122f88)}
#donut.hot svg{transform:scale(1.25);filter:drop-shadow(0 0 11px #ff2a4d)}#donut.down svg{transform:scale(.85)}
#donut .fl{transform-box:fill-box;transform-origin:50% 100%;animation:fl .55s ease-in-out infinite alternate}
@keyframes fl{from{transform:scale(.9,.8) skewX(-8deg)}to{transform:scale(1.1,1.25) skewX(8deg)}}
@media(pointer:coarse){#donut{display:none}}
.wrap{max-width:880px;margin:0 auto;padding:16px;position:relative;z-index:2}
.top{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;max-width:880px;margin:0 auto}
.logo{font-family:Silkscreen;font-size:20px;background:var(--ink);color:var(--gold);padding:6px 10px;box-shadow:var(--px) var(--px) 0 var(--red)}
.card{background:var(--card);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:16px;margin:0 0 18px}
.btn{font:600 13px 'Spline Sans Mono';text-transform:uppercase;background:var(--blue);color:#fff;border:3px solid var(--ink);padding:9px 14px;box-shadow:4px 4px 0 var(--ink);transition:transform .08s,box-shadow .08s}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn.red{background:var(--red)}.btn.alt{background:var(--card);color:var(--ink)}.btn.sm{padding:4px 8px;font-size:11px}
input,textarea,select{width:100%;font:inherit;background:#fff;border:3px solid var(--ink);padding:9px;margin:5px 0 10px;color:var(--ink)}textarea{min-height:180px;resize:vertical}
label{font-size:11px;font-weight:600;text-transform:uppercase}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs .btn{background:var(--card);color:var(--ink)}.tabs .btn.on{background:var(--gold)}
nav{position:fixed;left:0;right:0;bottom:0;background:var(--ink);display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom);z-index:50}
nav button{background:none;border:0;color:#bbb;font:700 10px Silkscreen;padding:12px 2px;text-transform:uppercase;border-top:4px solid transparent}
nav button b{display:block;font-size:20px}nav button.on{color:var(--gold);border-top-color:var(--red)}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:2px dashed #0003;padding:10px 0}.row:last-child{border:0}
.tag{font:700 10px Silkscreen;background:var(--mint);color:#fff;padding:2px 6px}.tag.o{background:var(--red)}
.band{font:700 56px Silkscreen;color:var(--red);text-shadow:4px 4px 0 var(--ink)}
.q{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;margin:6px 0}.ok{background:#b8f2dc}.no{background:#ffd0c4}
.hero{background:var(--ink);color:var(--card);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--red);padding:22px;margin-bottom:20px}.hero h1{font-size:26px;color:var(--gold)}
pre.j{white-space:pre-wrap;background:#fff;border:2px solid var(--ink);padding:10px}.mut{opacity:.65;font-size:12px}
@media(max-width:600px){.hero h1{font-size:19px}}

/* ================= Effektlar / sahna ================= */
#petals,#fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated}
#petals{z-index:3}#fx{z-index:98}
body.in-exam{overflow:hidden}body.in-exam #petals{display:none}
@media(pointer:coarse){#fx{display:none}}
#scene{position:fixed;inset:0;pointer-events:none;z-index:0;display:none;overflow:hidden}
body.auth #scene{display:block}
#sunC{position:absolute;top:96px;right:max(20px,calc(50% - 600px));width:144px;height:144px;image-rendering:pixelated;opacity:.92;animation:bob 7s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(10px)}}
.cl{position:absolute;left:-200px;animation:drift linear infinite}
.cl canvas{height:56px;width:auto;image-rendering:pixelated;opacity:.95}
.cl.c1{top:70px;animation-duration:150s}.cl.c2{top:190px;animation-duration:210s;animation-delay:-80s}.cl.c3{top:130px;animation-duration:260s;animation-delay:-150s}
@keyframes drift{to{transform:translateX(calc(100vw + 400px))}}
.tree{--th:min(86vh,820px,calc((50vw - 360px)/.75));position:absolute;bottom:0;height:var(--th);width:auto;aspect-ratio:150/200;image-rendering:pixelated;filter:drop-shadow(0 0 18px #ff5a3622)}
.tree.l{left:0}.tree.r{right:0}
@media(max-width:1180px){.tree{--th:38vh}.tree.l{left:-24px}.tree.r{right:-24px}#sunC{width:96px;height:96px;top:78px}}
body.auth .hero{position:relative;overflow:hidden}
body.auth .hero::after{content:"";position:absolute;right:-14px;top:-14px;width:96px;height:96px;background:repeating-linear-gradient(45deg,#ff5a3633 0 6px,transparent 6px 12px)}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.card,.hero{animation:pop .32s steps(6) both}
.hero h1::after{content:"▌";margin-left:4px;animation:blink 1s steps(2) infinite;color:var(--red)}
@keyframes blink{50%{opacity:0}}
.btn:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}
.row .btn.sm{white-space:nowrap}

/* ================= Imtihon oynasi (Reading / Listening) ================= */
.ex{--red:#ff5a36;position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:var(--xb);color:var(--xi);font:15px/1.6 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;text-transform:none;letter-spacing:0;animation:none}
.ex[data-theme=light]{--xb:#fff;--xp:#fff;--xi:#1b2229;--xl:#d9e0e3;--xa:#0f7a66;--xs:#e8f0ef;--xm:#66727c}
.ex[data-theme=dark]{--xb:#11151a;--xp:#171c22;--xi:#e6ebef;--xl:#2b343d;--xa:#2fc3a2;--xs:#1c2630;--xm:#93a0ab}
.ex *{box-sizing:border-box}
.ex button{font-family:inherit;color:inherit}
.ex-top{display:flex;align-items:center;gap:12px;height:62px;padding:0 20px;border-bottom:1px solid var(--xl);flex:none}
.ex-logo{font:700 17px Silkscreen,monospace;background:#1c1b2e;color:#ffc83d;padding:6px 10px;box-shadow:4px 4px 0 var(--red);letter-spacing:.04em;white-space:nowrap}
.ex-user{display:flex;align-items:center;gap:8px;background:var(--xs);color:var(--xa);font-weight:600;padding:8px 16px;border-radius:99px;font-size:14px;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex-user i{width:16px;height:16px;border-radius:50%;background:var(--xa);flex:none;box-shadow:inset 0 0 0 4px var(--xs),0 0 0 2px var(--xa)}
.ex .sp{flex:1}
.ex-time{font:700 20px/1 "Spline Sans Mono",monospace;font-variant-numeric:tabular-nums;min-width:64px;text-align:right}
.ex-time.warn{color:#e5391a;animation:blink 1s steps(2) infinite}
.ex-ib{width:40px;height:40px;border-radius:50%;border:0;background:var(--xs);display:grid;place-items:center;transition:transform .12s,background .12s}
.ex-ib:hover{transform:scale(1.08);background:var(--xl)}.ex-ib.x{font-size:16px}
.ex-banner{margin:14px 20px 0;padding:14px 18px;background:var(--xs);border:1px solid var(--xl);border-radius:8px;flex:none}
.ex-banner b{font-size:17px}.ex-banner div{margin-top:2px}
.ex-tabs{display:none}
.ex-main{flex:1;min-height:0;display:grid;grid-template-columns:var(--lw,50%) 12px minmax(0,1fr);margin:12px 20px 0}
.ex-pane{overflow:auto;padding:6px 18px 24px 6px;min-width:0;scroll-behavior:smooth}
#exR{padding:6px 8px 24px 8px}
.ex-div{position:relative;cursor:col-resize;display:grid;place-items:center;touch-action:none}
.ex-div::before{content:"";width:4px;height:100%;background:linear-gradient(var(--xl),var(--xl)) center/2px 100% no-repeat}
.ex-div::after{content:"⋮";position:absolute;font-size:18px;color:var(--xm);background:var(--xb);padding:6px 0}
.ex-div:hover::before,.dragging .ex-div::before{background:linear-gradient(var(--xa),var(--xa)) center/3px 100% no-repeat}
.dragging{user-select:none}
.ex-passage{font-size:16px}
.ex-passage p{margin:0 0 15px}
.ex-h{font:700 22px/1.3 Inter,sans-serif!important;text-align:center;margin:6px 0 16px!important;text-transform:none!important}
.pl{font-weight:800;margin-right:2px}
.ex mark{background:#ffe066;color:#111;border-radius:2px;padding:0 1px;cursor:pointer}
.ex-hlbtn{position:fixed;display:none;z-index:70;background:#1c1b2e;color:#ffc83d;font:700 11px Silkscreen,monospace;padding:9px 11px;border:2px solid #ffc83d;box-shadow:3px 3px 0 #ff5a36;cursor:pointer;user-select:none}
.ex-hlbtn.on{display:block}
.ex-g{margin:0 0 26px}
.ex-gt h3{font:700 16px Inter,sans-serif!important;text-transform:none!important;margin:0 0 6px!important}
.ex-ins{white-space:pre-wrap;font-size:15px;color:var(--xi)}
.ex-heads{background:var(--xs);border:1px solid var(--xl);border-radius:8px;padding:12px 18px;margin:12px 0 8px;font-size:15px}
.ex-heads>b{display:block;margin-bottom:6px}
.ex-heads div{display:flex;gap:14px}.ex-heads div b{min-width:34px}
.qr{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(150px,210px);gap:14px;align-items:center;padding:12px 8px;border-radius:8px;transition:background .3s}
.qr:has(.ql.mut){grid-template-columns:48px minmax(0,1fr)}.qr .ql.mut{display:none}
.qr.pulse{background:color-mix(in srgb,var(--xa) 18%,transparent)}
.qn{display:grid;place-items:center;height:40px;border:2px solid var(--xi);border-radius:4px;font-weight:700;background:var(--xb)}
.qr:focus-within .qn{border-color:var(--xa);box-shadow:0 0 0 3px color-mix(in srgb,var(--xa) 25%,transparent)}
.ql{font-size:15.5px}
.ex .qa{height:40px;margin:0;width:100%;border:2px solid var(--xi);border-radius:6px;background:var(--xb);color:var(--xi);padding:0 12px;font:600 14px Inter,sans-serif;box-shadow:none;outline:none}
.ex select.qa{cursor:pointer}
.ex .qa:focus{border-color:var(--xa);box-shadow:0 0 0 3px color-mix(in srgb,var(--xa) 25%,transparent)}
.qr.ok{background:rgba(25,183,138,.14)}.qr.no{background:rgba(255,90,54,.13)}
.qr.ok .qn{background:#19b78a;color:#fff;border-color:#19b78a}.qr.no .qn{background:#e5391a;color:#fff;border-color:#e5391a}
.qfix{display:block;color:#d6391a;font-size:12.5px;font-weight:700;margin-top:3px}
.ex[data-theme=dark] .qfix{color:#ff8a70}
.ex-pad{height:90px}
.ex-foot{display:flex;align-items:center;gap:14px;height:68px;padding:0 20px;border-top:1px solid var(--xl);flex:none;background:var(--xb)}
.ex-part{white-space:nowrap;font-size:16px}.ex-part b{font-weight:800}.ex-part span{color:var(--xm);margin-left:8px;font-size:14px}
.ex-nav{display:flex;gap:6px;flex:1;overflow-x:auto;padding:4px 2px;scrollbar-width:thin}
.ex-nav button{flex:none;min-width:38px;height:40px;border:1px solid var(--xl);background:var(--xb);border-radius:4px;font-weight:600;font-size:15px;cursor:pointer;transition:transform .1s}
.ex-nav button:hover{transform:translateY(-2px);border-color:var(--xa)}
.ex-nav button.done{background:var(--xa);border-color:var(--xa);color:#fff}
.ex-nav button.ok{background:#19b78a;border-color:#19b78a;color:#fff}.ex-nav button.no{background:#e5391a;border-color:#e5391a;color:#fff}
.ex-check{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 22px;border:1px solid var(--xl);border-radius:6px;background:var(--xs);font-weight:700;font-size:15px;cursor:pointer;white-space:nowrap;transition:transform .1s,background .1s}
.ex-check:hover{background:var(--xa);color:#fff;transform:translateY(-1px)}
.ex-check.alt{background:transparent}
.ex-fab{position:fixed;right:24px;bottom:84px;display:flex;gap:10px;z-index:6}
.ex-fab button{width:60px;height:60px;border-radius:50%;border:0;background:#6b747c;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px #0004;transition:transform .12s,opacity .2s}
.ex-fab button.on{background:#0f7a66}.ex-fab button:hover:not(:disabled){transform:scale(1.08)}.ex-fab button:disabled{opacity:.35;cursor:default}
.ex-over{position:absolute;inset:0;display:none;place-items:center;z-index:9;background:rgba(8,11,15,.78);backdrop-filter:blur(10px);text-align:center;color:#fff;padding:16px}
.ex-over.on{display:grid}
#exPaused{background:var(--xb);color:var(--xi);backdrop-filter:none}
.px.big{font-size:34px}
.ex-card{background:var(--xb);color:var(--xi);border:3px solid #1c1b2e;box-shadow:9px 9px 0 var(--red);padding:26px;max-width:480px;width:100%;text-align:left}
.ex-check .sm{display:none}.ex-card .px{font-size:13px;margin-bottom:12px;color:var(--xm)}
.ex-card .rs{display:flex;gap:44px;align-items:flex-end;margin:6px 0 18px}
.ex .band{font:700 64px/1 Silkscreen,monospace;color:var(--red);text-shadow:4px 4px 0 #1c1b2e}.ex .band.sm{font-size:38px;color:var(--xi);text-shadow:none}.band small{font-size:20px;color:var(--xm)}
.rp{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin:8px 0;font-size:14px}.rp .bar{grid-column:1/-1;height:8px;background:var(--xl)}.rp .bar i{display:block;height:100%;background:var(--xa);transition:width .8s steps(12)}
.ex-btns{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.ex-aud{background:var(--xs);border:1px solid var(--xl);border-radius:10px;padding:20px}
.ex-aud .px{font-size:18px;margin-bottom:6px}
.ex-aud audio{width:100%;margin:6px 0 10px}
.eq{display:flex;align-items:flex-end;gap:3px;height:110px;margin:14px 0;padding:0 2px;border-bottom:3px solid var(--xi)}
.eq i{flex:1;height:var(--h);background:linear-gradient(#ffc83d,#ff5a36 55%,#b3122f);transform-origin:bottom;transform:scaleY(.3);opacity:.5;animation:eq var(--d) steps(5) infinite alternate;animation-play-state:paused}
.eq.on i{animation-play-state:running;opacity:1}
@keyframes eq{to{transform:scaleY(1)}}
.ex .mut{color:var(--xm);opacity:1;font-size:13px}

@media(max-width:820px){
 .ex-check .sm{display:inline}
 .ex-top{height:54px;padding:0 12px;gap:8px}.ex-logo{font-size:12px;padding:5px 7px}.ex-user{display:none}.ex-time{font-size:17px;min-width:52px}.ex-ib{width:36px;height:36px}
 .ex-banner{margin:10px 12px 0;padding:10px 12px;font-size:13.5px}.ex-banner b{font-size:14.5px}
 .ex-tabs{display:flex;margin:10px 12px 0;border:1px solid var(--xl);border-radius:8px;overflow:hidden;flex:none}
 .ex-tabs button{flex:1;height:38px;border:0;background:var(--xb);font-weight:700;cursor:pointer}
 .ex[data-pane=left] .ex-tabs [data-p=left],.ex[data-pane=right] .ex-tabs [data-p=right]{background:var(--xa);color:#fff}
 .ex-main{display:block;position:relative;margin:8px 12px 0}
 .ex-pane{position:absolute;inset:0;display:none;padding:4px 2px 24px}.ex-div{display:none}
 .ex[data-pane=left] #exL,.ex[data-pane=right] #exR{display:block}
 .qr{grid-template-columns:42px minmax(0,1fr);gap:8px 10px;padding:10px 4px}.qr .qc{grid-column:1/-1}.qr:has(.ql.mut) .qc{grid-column:2}
 .ex-foot{height:60px;padding:0 10px;gap:8px}.ex-part{display:none}.ex-check{padding:0 12px;height:40px;font-size:13px}.ex-check .lg{display:none}
 .ex-fab{right:10px;bottom:68px}.ex-fab button{width:42px;height:42px;opacity:.92}
 .ex-nav button{min-width:34px;height:36px}
 .ex-card{padding:18px}.ex .band{font-size:48px}
}
