@charset "UTF-8";
:root{--bg:#f3f0f8;--surface:#fff;--ink:#242137;--muted:#7b768d;--line:#e8e3ee;--accent:#7955cf;--tint:#ede5fa;--glass:rgba(255,255,255,.76);--good:#22856d;--bad:#c35370;--shadow:0 16px 45px #38205209;--font:16px;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--ink);font-size:1rem;line-height:1.5;overflow-x:clip}body[data-theme=dark]{--bg:#13121a;--surface:#1e1c28;--ink:#f6f2ff;--muted:#aaa3bc;--line:#302c3e;--accent:#b292ff;--tint:#302640;--glass:rgba(32,28,44,.82);--good:#73cfac;--bad:#f38ba4;color-scheme:dark}body[data-theme=pink]{--bg:#fcf1f6;--surface:#fffafb;--ink:#442639;--muted:#99738a;--line:#f1dde7;--accent:#bb6095;--tint:#f8e3ef;--glass:rgba(255,249,253,.8)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.5;cursor:default}button:active:not(:disabled){transform:scale(.975)}button{transition:transform .2s,background .2s,opacity .2s}a{color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,5.8vw,3.1rem);font-weight:750;letter-spacing:-.055em;line-height:1.08}h2{font-size:1.27rem;letter-spacing:-.035em;line-height:1.25}h3{font-size:1rem;line-height:1.4}p{color:var(--muted)}small,.small{font-size:.78rem;color:var(--muted)}.icon{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.stack{display:grid;gap:14px}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.accent{color:var(--accent)}.eyebrow{font-size:.67rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:30px;padding:5px 10px;font-size:.65rem;letter-spacing:.02em;font-weight:650;background:var(--tint);color:var(--accent);white-space:nowrap}.badge.green{background:#308a7715;color:var(--good)}.badge.red{background:#cb50751a;color:var(--bad)}.dot{height:5px;width:5px;border-radius:50%;background:currentColor}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 19px;border-radius:17px;background:var(--accent);color:#fff;font-size:.9rem;font-weight:650}.btn.secondary{background:var(--tint);color:var(--accent)}.btn.danger{background:#c3537015;color:var(--bad)}.btn.full{width:100%}.btn.ghost{background:transparent;color:var(--muted)}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1px solid var(--line)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:28px 0 14px;gap:10px}.text-btn{font-size:.8rem;font-weight:650;color:var(--accent);padding:8px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.panel p+p{margin-top:12px}.panel h2+p{margin-top:9px}.note{padding:14px 16px;border-radius:16px;background:var(--tint);color:var(--muted);font-size:.8rem}.empty{text-align:center;padding:42px 18px}.empty .icon{width:40px;height:40px;margin-bottom:15px;color:var(--accent)}.empty h2{margin-bottom:10px}.empty .btn{margin-top:20px}#header{position:sticky;top:0;z-index:20;background:var(--glass);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);padding:calc(env(safe-area-inset-top) + 14px) 22px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #8873a10c}.brand{font-size:1.25rem;font-weight:800;letter-spacing:-.06em;display:flex;align-items:center;gap:10px}.brand img{width:33px;height:33px;border-radius:11px}.brand span span{font-weight:400;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:14px;background:var(--tint);color:var(--accent);display:grid;place-items:center;font-size:.8rem;font-weight:700}#main{max-width:1040px;padding:24px 22px 130px;margin:auto;min-height:80vh;outline:none}.page{animation:rise .35s ease both}.greeting{margin:2px 0 22px}.greeting small{display:block;margin-bottom:5px}.greeting h1{font-size:1.7rem;letter-spacing:-.045em}.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:30px;padding:28px;background:#29213e;color:#fff;min-height:276px;box-shadow:0 18px 35px #3223461a}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 110% -10%,#9475c9a8,transparent 65%),radial-gradient(ellipse at 0 100%,#443152,transparent 80%)}.hero .eyebrow{color:#c8b9e0}.hero h1{max-width:80%;margin:18px 0;font-size:2.4rem}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:#c9b3ef}.hero p{font-size:.83rem;color:#c3b7d2;max-width:220px;margin-bottom:24px}.hero .btn{background:#eadbff;color:#35234f;position:relative;z-index:2}.orb{position:absolute;right:-18px;bottom:36px;width:160px;height:160px;border-radius:50%;border:1px solid #ffffff24;transform:rotate(-28deg);background:radial-gradient(ellipse at 30% 22%,#c0a0ff45,#795aaa10 45%,#ffffff03);box-shadow:inset 0 0 30px #b99cff18}.orb:before,.orb:after{content:"";position:absolute;inset:13%;border-radius:50%;border:1px solid #d9baff60;transform:rotate(60deg) scaleX(.38);box-shadow:0 0 18px #d1adff26}.orb:after{transform:rotate(-30deg) scaleX(.38);inset:0}.orbit-label{position:absolute;right:30px;bottom:98px;font-family:Georgia,serif;font-size:3.5rem;font-style:italic;color:#e2caff}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.stat{padding:17px 8px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:21px}.stat b{display:block;font-size:1.4rem;letter-spacing:-.055em}.stat small{font-size:.64rem}.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.subject{position:relative;text-align:left;min-height:156px;display:flex;flex-direction:column;align-items:flex-start;padding:19px;border-radius:24px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.subject h3{margin:17px 0 6px;letter-spacing:-.025em;font-size:.92rem}.subject small{font-size:.69rem}.subject-mark{width:38px;height:38px;display:grid;place-items:center;background:var(--tint);color:var(--accent);border-radius:13px}.subject:nth-child(4n+2) .subject-mark{color:#ba8952;background:#edbd5c20}.subject:nth-child(4n+3) .subject-mark{color:#73998d;background:#59ab9419}.subject:nth-child(4n+4) .subject-mark{color:#ba7098;background:#d770ac16}.subject .arrow{position:absolute;right:17px;top:19px;color:var(--muted);font-size:1.2rem}.study-card{display:flex;align-items:center;gap:15px;padding:20px;border-radius:22px;background:var(--surface);border:1px solid var(--line);text-align:left;width:100%}.study-card .big-symbol{width:48px;height:48px;border-radius:17px;background:var(--tint);color:var(--accent);display:grid;place-items:center;flex:none}.study-card h3{font-size:.91rem}.study-card p{font-size:.75rem;margin-top:4px}.search{position:relative;margin:22px 0 16px}.search .icon{position:absolute;left:16px;top:15px;color:var(--muted)}input,select{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:14px 15px;min-width:0;width:100%;outline:none;font-size:1rem}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint)}.search input{padding-left:48px}.field{display:block;margin:17px 0}.field span{display:block;font-size:.78rem;font-weight:650;margin-bottom:7px}.chips{display:flex;gap:8px;overflow:auto;scrollbar-width:none;padding:0 0 8px}.chip{flex:none;padding:8px 14px;border:1px solid var(--line);border-radius:30px;background:var(--surface);color:var(--muted);font-size:.76rem}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.test-list{display:grid;gap:10px}.test-row{padding:18px;display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:21px;background:var(--surface);text-align:left}.test-row h3{font-size:.9rem;overflow-wrap:anywhere}.test-row small{display:block;margin-top:7px}.test-no{font-family:Georgia,serif;font-size:1.5rem;color:var(--accent);background:var(--tint);height:44px;min-width:44px;border-radius:14px;display:grid;place-items:center}.signin{max-width:470px;margin:0 auto}.signin .intro{margin:24px 0 28px}.signin .intro h1{margin:13px 0 15px;font-size:2.75rem}.signin .intro p{font-size:.9rem;max-width:310px}.identity-preview{background:#2a233c;border-radius:24px;padding:23px;color:white;position:relative;overflow:hidden;min-height:162px;box-shadow:0 12px 30px #34244724}.identity-preview:after{content:"B";font-family:Georgia,serif;font-size:11.25rem;position:absolute;right:-12px;top:-52px;color:#d6b9ff17;font-style:italic;pointer-events:none}.identity-preview .eyebrow{color:#c3addb}.identity-preview h3{font-size:1.25rem;margin-top:23px;position:relative;z-index:1}.identity-preview small{color:#c9bcd8}.identity-preview .badge{position:absolute;top:21px;right:20px;background:#ffffff15;color:#d7c2f7}.check{display:flex;align-items:flex-start;gap:11px;font-size:.75rem;color:var(--muted);margin:20px 0}.check input{width:20px;height:20px;flex:none;accent-color:var(--accent);margin:2px 0;padding:0}.check button{padding:0;text-decoration:underline;color:var(--accent);font-size:inherit}.pending-mark{position:relative;width:90px;height:90px;margin:24px auto;background:var(--tint);border-radius:30px;display:grid;place-items:center;color:var(--accent)}.pending-mark .icon{width:40px;height:40px}.pending-mark:after{content:"";position:absolute;inset:-10px;border:1px solid var(--accent);opacity:.13;border-radius:37px;animation:breathe 3s ease-in-out infinite}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);gap:12px}.setting-row:last-child{border:0}.setting-row label{font-size:.85rem}.setting-row select{width:140px;padding:10px;font-size:.8rem;border-radius:13px}.segmented{display:flex;background:var(--bg);border:1px solid var(--line);padding:4px;border-radius:15px;gap:4px}.segmented button{flex:1;border-radius:11px;padding:10px;font-size:.8rem}.segmented button.active{background:var(--surface);color:var(--accent);box-shadow:0 2px 10px #0000000b}.divider{height:1px;background:var(--line);margin:20px 0}.practice-top{display:flex;gap:12px;align-items:center;margin-bottom:22px}.practice-top h3{font-size:.85rem}.progress-track{height:5px;border-radius:10px;background:var(--line);overflow:hidden;margin:14px 0 26px}.progress-track span{display:block;height:100%;border-radius:10px;background:var(--accent);transition:width .4s}.question-card{background:var(--surface);border:1px solid var(--line);border-radius:25px;padding:23px;margin-bottom:16px}.question-card h2{font-size:1.14rem;line-height:1.5;letter-spacing:-.02em;margin:16px 0 7px;white-space:pre-line}.question-card img{display:block;max-width:100%;max-height:430px;object-fit:contain;margin:18px auto;border-radius:12px}.image-error{padding:15px;background:var(--tint);border-radius:12px;font-size:.8rem}.answers{display:grid;gap:11px;margin:20px 0}.answer{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line);font-size:.91rem}.answer .choice-mark{width:24px;height:24px;border:1.5px solid var(--line);border-radius:8px;display:grid;place-items:center;flex:none;font-size:.75rem}.answer.selected{border-color:var(--accent);background:var(--tint)}.answer.selected .choice-mark{background:var(--accent);border-color:var(--accent);color:#fff}.answer.correct{border-color:var(--good);background:#3e9c7e15}.answer.wrong{border-color:var(--bad);background:#cc49751a}.feedback{padding:18px;border-radius:18px;margin:14px 0;background:#38927415;color:var(--good);font-size:.86rem}.feedback.wrong{background:#c3537015;color:var(--bad)}.feedback small{display:block;color:inherit;margin-top:6px}.match-row{margin-bottom:15px}.match-row p{font-size:.86rem;color:var(--ink);margin-bottom:7px}.question-actions{display:flex;gap:10px}.question-actions .btn{flex:1}.number-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;max-height:50vh;overflow:auto;padding:3px}.number{height:42px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:.75rem}.number.current{box-shadow:0 0 0 2px var(--accent)}.number.done{background:var(--tint);color:var(--accent)}.number.correct{background:#3e9c7e22;color:var(--good)}.number.wrong{background:#cc497522;color:var(--bad)}.result-ring{width:160px;height:160px;border-radius:50%;margin:20px auto;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--score)*1%),var(--line) 0)}.result-ring>div{width:136px;height:136px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center}.result-ring b{font-size:2.6rem;letter-spacing:-.06em}.result-ring small{font-size:.65rem}.admin-user{padding:19px}.admin-user .actions{display:flex;gap:8px;margin-top:16px}.admin-user .actions .btn{min-height:42px;font-size:.78rem;padding:8px 12px;flex:1}.notification{padding:14px 17px;border:1px solid var(--line);border-radius:18px;background:var(--surface);margin-bottom:15px}.notification p{font-size:.8rem}.demo-banner{font-size:.69rem;color:var(--accent);background:var(--tint);border-radius:12px;padding:9px 13px;margin-bottom:18px}.demo-banner button{text-decoration:underline;color:inherit;font-size:inherit;padding:0}#nav{position:fixed;z-index:30;bottom:calc(env(safe-area-inset-bottom) + 13px);left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:440px;display:flex;border:1px solid #ffffff80;background:var(--glass);border-radius:27px;padding:6px;box-shadow:0 12px 38px #21132b1a,inset 0 1px 1px #fff9;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);touch-action:pan-y}#nav:empty{display:none}.nav-item{position:relative;z-index:2;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:55px;color:var(--muted);font-size:.59rem;padding:6px 0}.nav-item.active{color:var(--accent);font-weight:700}.nav-item.active .icon{transform:scale(1.1)}.nav-indicator{position:absolute;top:6px;bottom:6px;left:6px;width:calc((100% - 12px)/4);border-radius:22px;background:var(--surface);box-shadow:0 3px 12px #3c245211;transition:transform .36s cubic-bezier(.2,.8,.2,1)}#sidebar{display:none}dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0;width:calc(100% - 24px);max-width:510px;border-radius:29px;box-shadow:0 35px 120px #150e2e40;max-height:88dvh}dialog::backdrop{background:#15102065;backdrop-filter:blur(5px)}#sheet{padding:25px;overflow:auto;max-height:87dvh}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px}.modal-head h2{font-size:1.25rem}.modal-head .icon-btn{flex:none}.legal p{font-size:.87rem;margin:12px 0}.legal h3{margin-top:20px}#toast{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 105px);left:50%;transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:13px 18px;border-radius:17px;box-shadow:0 10px 35px #0002;max-width:calc(100% - 38px);width:max-content;z-index:100;opacity:0;pointer-events:none;transition:.25s;font-size:.84rem}#toast.show{opacity:1;transform:translate(-50%,0)}#splash{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;align-items:center;justify-content:center;gap:14px;transition:opacity .35s,visibility .35s}#splash img{width:62px;height:62px;border-radius:20px;animation:rise .7s ease}#splash strong{font-size:1.8rem;letter-spacing:-.06em}#splash span{display:block;font-size:.7rem;letter-spacing:.015em;font-weight:400;color:var(--muted)}#splash.hidden{opacity:0;visibility:hidden}.footnote{text-align:center;font-size:.65rem;color:var(--muted);margin-top:32px;letter-spacing:.03em}.error-panel{border-color:var(--bad)}.history-row{padding:15px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.history-row b{font-size:.85rem}.history-row small{display:block;margin-top:4px}.history-row strong{color:var(--accent);white-space:nowrap}.skeleton{height:140px;border-radius:23px;background:linear-gradient(90deg,var(--surface),var(--tint),var(--surface));background-size:200% 100%;animation:shimmer 1.3s linear infinite}.hidden{display:none!important}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{50%{transform:scale(1.1);opacity:.04}}@keyframes shimmer{to{background-position:-200% 0}}@media(min-width:1001px){#main{padding:35px 38px 80px}#nav{display:none}#sidebar{display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:225px;border-right:1px solid var(--line);padding:30px 21px;background:var(--surface);z-index:40}#sidebar .brand{margin-bottom:48px}#sidebar .nav-item{flex:0;flex-direction:row;justify-content:flex-start;gap:14px;padding:15px;border-radius:16px;margin:4px 0;font-size:.85rem}#sidebar .nav-item.active{background:var(--tint)}#sidebar .sidebar-foot{margin-top:auto;font-size:.7rem;color:var(--muted);padding:15px}body{padding-left:225px}#header{padding:20px 38px}#header .brand{font-size:1.05rem}#header .brand img{display:none}.subject-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{padding:35px;min-height:300px}.hero h1{font-size:3.3rem;max-width:70%}.hero p{max-width:340px}.orb{width:255px;height:255px;right:50px;bottom:5px}.orbit-label{font-size:5rem;right:142px;bottom:85px}.stats{gap:16px}.stat{padding:21px}.stat b{font-size:1.8rem}.stat small{font-size:.75rem}.signin{padding-top:10px}.study-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.test-list{grid-template-columns:repeat(2,minmax(0,1fr))}.practice{max-width:720px;margin:auto}.question-card{padding:30px}.question-card h2{font-size:1.3rem}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-grid .panel{margin:0}#toast{bottom:35px;left:calc(50% + 112px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(hover:hover){.subject:hover,.test-row:hover,.study-card:hover{border-color:var(--accent);transform:translateY(-3px)}}
/* Liquid navigation: continuous lens, chromatic rim and selected label. */
#nav{touch-action:none;user-select:none;-webkit-user-select:none;isolation:isolate}
#nav .nav-item{min-height:58px;transition:color .2s ease}
#nav .nav-item>span{max-height:0;opacity:0;overflow:hidden;transform:translateY(5px);transition:opacity .2s,max-height .25s,transform .25s}
#nav .nav-item.active>span{max-height:18px;opacity:1;transform:translateY(0)}
#nav .nav-item .icon{transition:transform .22s cubic-bezier(.2,.8,.2,1),filter .22s;transform:scale(var(--zoom,1))}
#nav .nav-item.active{--zoom:1.1}
#nav .nav-indicator{pointer-events:none;background:linear-gradient(135deg,#ffffff70,#ffffff15 48%,#ffffff50);border:1px solid #ffffff90;box-shadow:inset 1px 0 0 #66e5ff55,inset -1px 0 0 #ed98ff60,0 4px 16px #3c24521a;backdrop-filter:blur(12px) saturate(170%);-webkit-backdrop-filter:blur(12px) saturate(170%);will-change:transform}
#nav.dragging .nav-indicator{transition:none;box-shadow:inset 2px 0 1px #53dcff99,inset -2px 0 1px #f284ff99,0 7px 24px #33234f25}
#nav.dragging .nav-item .icon{transition:none;filter:drop-shadow(-1px 0 0 #65dbff66) drop-shadow(1px 0 0 #e78cff66)}
#nav.dragging .nav-item.active>span{max-height:0;opacity:0}
#nav.dragging .nav-item.preview>span{max-height:18px;opacity:1;transform:translateY(0)}
#nav.dragging .nav-item.preview{color:var(--accent)}
.offline-panel progress{width:100%;height:7px;accent-color:var(--accent);border:0;border-radius:10px;overflow:hidden}
.offline-panel [hidden]{display:none!important}
#offline-info{font-size:.85rem;line-height:1.5;color:var(--muted)}
@media(any-hover:hover){#nav .nav-item:hover .icon{transform:scale(1.17);filter:drop-shadow(-1px 0 0 #65dbff66) drop-shadow(1px 0 0 #e78cff66)}#sidebar .nav-item:hover{background:var(--tint);transform:translateX(3px)}.btn:hover{filter:brightness(1.06);box-shadow:0 5px 20px #6e4aa425}.icon-btn:hover{background:var(--tint)}}
@media(prefers-reduced-motion:reduce){#nav.dragging .nav-indicator{scale:1}#nav .nav-item .icon{transform:none!important;filter:none!important}}
