:root{--bg:#f8fafc;--surface:#ffffff;--surface-2:#f1f5f9;--ink:#020617;--ink-2:#475569;--ink-3:#64748b;--line:#e2e8f0;--navy:#0f172a;--accent:#0369a1;--accent-2:#0284c7;--accent-soft:#e0f2fe;--ok:#15803d;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--radius:20px;--radius-sm:12px;--shadow-sm:0 1px 2px rgba(2,6,23,.06),0 1px 3px rgba(2,6,23,.04);--shadow:0 4px 16px rgba(2,6,23,.06),0 16px 40px rgba(2,6,23,.06);--shadow-lg:0 8px 30px rgba(2,6,23,.10),0 30px 70px rgba(2,6,23,.10);--maxw:1120px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.55;font-size:16px}a{color:inherit;text-decoration:none}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}.eyebrow{color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.h2{font-size:clamp(28px,4.2vw,42px);letter-spacing:-.025em;line-height:1.08;font-weight:800;margin-top:10px}.lead{color:var(--ink-2);font-size:clamp(16px,2vw,18px);max-width:620px;margin-top:14px}.center{text-align:center}.center .lead{margin-left:auto;margin-right:auto}.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;padding:11px 20px;border-radius:980px;transition:transform .15s ease,background .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 18px rgba(3,105,161,.28)}.btn-primary:hover{background:var(--accent-2);box-shadow:0 8px 22px rgba(3,105,161,.34)}.btn-ghost{background:var(--surface);color:var(--navy);box-shadow:inset 0 0 0 1px var(--line)}.btn-ghost:hover{background:var(--surface-2)}.btn-lg{padding:14px 28px;font-size:16px}.btn-block{width:100%}.btn:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px}.logo{display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--navy)}.logo .mk{width:30px;height:30px;border-radius:9px;background:linear-gradient(150deg,var(--navy),var(--accent));color:#fff;display:grid;place-items:center;font-size:16px;box-shadow:0 4px 10px rgba(3,105,161,.3)}.brand-img{height:50px;width:auto;display:block}.brand-img.sm{height:34px}.side-brand .brand-img{height:42px}@media(max-width:820px){.side-brand .brand-img{height:32px}}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(248,250,252,.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}.nav .wrap{gap:16px;height:80px}.nav .links,.nav .wrap{display:flex;align-items:center}.nav .links{margin-left:auto;gap:26px;font-size:14.5px;color:var(--ink-2);font-weight:500}.nav .links a:hover{color:var(--navy)}.nav .links .hide-sm{display:inline}@media(max-width:760px){.nav .links{gap:14px}.nav .links .hide-sm{display:none}}.hero{padding:72px 0 40px}.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:48px;gap:48px;align-items:center}.badge{display:inline-flex;align-items:center;gap:8px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:980px;padding:7px 15px;font-size:13px;color:var(--ink-2);font-weight:600}.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}.hero h1{font-size:clamp(36px,6vw,60px);letter-spacing:-.035em;line-height:1.02;font-weight:800;margin:22px 0 0;color:var(--navy)}.hero p.sub{font-size:clamp(17px,2.2vw,20px);color:var(--ink-2);margin:20px 0 30px;max-width:520px}.hero .cta{display:flex;gap:12px;flex-wrap:wrap}.hero .fine{margin-top:18px;color:var(--ink-3);font-size:13.5px;display:flex;align-items:center;gap:8px}.hero .fine svg{width:16px;height:16px;stroke:var(--ok);stroke-width:2.4;fill:none}.exam{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:26px;position:relative}.exam:before{content:"";position:absolute;inset:14px 14px auto 14px;height:0}.exam .top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}.exam .who b{font-size:15px;color:var(--navy)}.exam .who span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:2px}.exam .grade{text-align:right}.exam .grade .n{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--ok);line-height:1}.exam .grade small{font-size:12px;color:var(--ink-3)}.exam .q{display:flex;align-items:center;gap:11px;padding:9px 0;font-size:14px;color:var(--ink-2)}.exam .q+.q{border-top:1px solid var(--surface-2)}.exam .mk{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;flex-shrink:0}.exam .mk.ok{background:var(--ok-soft)}.exam .mk.ok svg{stroke:var(--ok)}.exam .mk.warn{background:var(--warn-soft)}.exam .mk.warn svg{stroke:var(--warn)}.exam .mk svg{width:13px;height:13px;stroke-width:3;fill:none}.exam .q .lbl{flex:1 1}.exam .tag{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:3px 9px;border-radius:980px}.float{position:absolute;background:var(--surface);box-shadow:var(--shadow);border-radius:14px;padding:10px 14px;display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--navy)}.float svg{width:18px;height:18px;stroke:var(--accent);stroke-width:2;fill:none}.float.f1{bottom:-18px;left:-22px}@media(max-width:980px){.float.f1{left:8px}}.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);margin-top:48px}.trust .wrap{display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:center;padding:22px 24px}.trust .item{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--ink-2);font-weight:600}.trust .item svg{width:19px;height:19px;stroke:var(--accent);stroke-width:1.9;fill:none}section{padding:76px 0}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px;margin-top:48px}.feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;transition:transform .2s ease,box-shadow .2s ease}.feature:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.feature .fi{width:46px;height:46px;border-radius:13px;background:var(--accent-soft);display:grid;place-items:center;margin-bottom:18px}.feature .fi svg{width:23px;height:23px;stroke:var(--accent);stroke-width:1.9;fill:none}.feature h3{font-size:18px;letter-spacing:-.01em;color:var(--navy);margin-bottom:8px}.feature p{color:var(--ink-2);font-size:14.5px}.steps{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:22px;gap:22px;margin-top:48px;counter-reset:s}.step{position:relative}.step .n{counter-increment:s;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;margin-bottom:16px}.step .n:before{content:counter(s)}.step h4{font-size:16px;color:var(--navy);margin-bottom:6px}.step p{color:var(--ink-2);font-size:14px}.band{background:var(--navy);color:#fff;border-radius:28px;padding:54px;display:grid;grid-template-columns:1.1fr .9fr;grid-gap:40px;gap:40px;align-items:center;overflow:hidden;position:relative}.band .eyebrow{color:#7dd3fc}.band h2{font-size:clamp(26px,3.6vw,36px);letter-spacing:-.025em;font-weight:800;margin-top:8px}.band p{color:rgba(255,255,255,.72);font-size:16px;margin-top:14px;max-width:440px}.band ul{list-style:none;margin-top:20px;display:flex;flex-direction:column;gap:13px}.band li{display:flex;gap:11px;font-size:15px;color:rgba(255,255,255,.92)}.band li svg{width:21px;height:21px;stroke:#4ade80;stroke-width:2.4;fill:none;flex-shrink:0;margin-top:1px}.band .shield{display:grid;place-items:center}.band .shield svg{width:170px;height:170px;stroke:#7dd3fc;stroke-width:1;fill:rgba(125,211,252,.08)}.plans{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px;gap:20px;max-width:760px;margin:48px auto 0}.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px;position:relative}.plan.pro{box-shadow:inset 0 0 0 2px var(--accent),var(--shadow)}.plan .tagtop{position:absolute;top:-13px;left:30px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:4px 13px;border-radius:980px}.plan h3{font-size:19px;color:var(--navy)}.plan .price{font-size:46px;font-weight:800;letter-spacing:-.03em;color:var(--navy);margin:12px 0 2px}.plan .price small{font-size:16px;color:var(--ink-3);font-weight:600}.plan ul{list-style:none;margin:20px 0;display:flex;flex-direction:column;gap:12px}.plan li{display:flex;gap:10px;font-size:14.5px;color:var(--ink-2)}.plan li svg{width:19px;height:19px;stroke:var(--accent);stroke-width:2.4;fill:none;flex-shrink:0;margin-top:2px}.note{color:var(--ink-3);font-size:14px;margin-top:24px}.manifesto,.note{text-align:center}.manifesto{max-width:720px;margin:0 auto}.manifesto .quote{font-size:clamp(22px,3.2vw,30px);font-weight:700;letter-spacing:-.02em;color:var(--navy);line-height:1.3}.manifesto .by{margin-top:18px;color:var(--ink-3);font-size:14.5px}.final{text-align:center;background:linear-gradient(160deg,var(--navy),#13233f);color:#fff;border-radius:28px;padding:72px 24px}.final h2{font-size:clamp(28px,4.4vw,44px);letter-spacing:-.025em;font-weight:800}.final p{color:rgba(255,255,255,.74);font-size:18px;margin:16px auto 30px;max-width:500px}.final .btn-primary{background:#fff;color:var(--navy);box-shadow:0 8px 24px rgba(0,0,0,.25)}.final .btn-primary:hover{background:#eef2f7}footer{border-top:1px solid var(--line);padding:36px 0;color:var(--ink-3);font-size:14px}footer .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}footer .sp{margin-left:auto}footer a:hover{color:var(--navy)}@media(max-width:980px){.hero .grid{grid-template-columns:1fr;gap:36px}.hero p.sub{max-width:none}.feature-grid,.steps{grid-template-columns:1fr 1fr}.band{grid-template-columns:1fr;padding:36px}.band .shield{display:none}}@media(max-width:620px){section{padding:56px 0}.feature-grid,.plans,.steps{grid-template-columns:1fr}.hero{padding:48px 0 24px}}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px}.auth-card .logo{justify-content:center;margin-bottom:10px}.auth-card h1{font-size:24px;letter-spacing:-.02em;text-align:center;color:var(--navy)}.auth-card .sub{color:var(--ink-2);font-size:14.5px;text-align:center;margin:6px 0 22px}.f{margin-bottom:14px}.f label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.f input{width:100%;font-family:inherit;font-size:15px;padding:12px 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.f input:focus{outline:3px solid var(--accent-soft);outline-offset:0;border-color:var(--accent);background:var(--surface)}.f.half{display:inline-block;width:calc(50% - 5px)}.f.half+.f.half{margin-left:8px}.auth-err{background:#fef2f2;color:#b91c1c;font-size:14px;padding:11px 13px;border-radius:11px;margin-bottom:16px;border:1px solid #fecaca}.auth-foot{text-align:center;font-size:14px;color:var(--ink-2);margin-top:20px}.auth-foot a{color:var(--accent);font-weight:600}.window{border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden}.window .bar{display:flex;align-items:center;gap:9px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}.window .dots{display:flex;gap:6px}.window .dots i{width:11px;height:11px;border-radius:50%;background:#cbd5e1}.window .url{margin-left:8px;font-size:12px;color:var(--ink-3);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px 12px;display:inline-flex;align-items:center;gap:7px}.window .url .url-fav{width:14px;height:14px;display:block;flex-shrink:0}.window .body{padding:18px}.ui-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ui-head b{font-size:14px;color:var(--navy)}.ui-head span{font-size:11.5px;color:var(--ink-3)}.ui-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:14px}.ui-stat{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:12px}.ui-stat .n{font-size:20px;font-weight:800;color:var(--navy);letter-spacing:-.02em}.ui-stat .l{font-size:10.5px;color:var(--ink-3);margin-top:3px}.ui-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--surface-2);font-size:12.5px;color:var(--ink-2)}.ui-row:first-child{border-top:none}.ui-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}.ui-pill{margin-left:auto;font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:980px}.ui-pill.ok{background:var(--ok-soft);color:var(--ok)}.ui-pill.warn{background:var(--warn-soft);color:var(--warn)}.ui-pill.blue{background:var(--accent-soft);color:var(--accent)}.ui-score{font-size:15px;font-weight:800;color:var(--navy);margin-left:auto}.ui-score.warn{color:var(--warn)}.ui-q{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:10px}.ui-opt{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:12.5px;color:var(--ink-2)}.ui-bub{width:19px;height:19px;border-radius:50%;border:2px solid var(--ink-3);display:grid;place-items:center;font-size:10px;font-weight:700;color:var(--ink-3);flex-shrink:0}.ui-opt.correct .ui-bub{background:var(--ok);border-color:var(--ok);color:#fff}.ui-bub svg{stroke:currentColor;stroke-width:3;fill:none}.ui-opt.correct{color:var(--navy);font-weight:600}.ui-card{border:1px solid var(--line);border-radius:11px;padding:12px;margin-bottom:9px}.ui-card:last-child{margin-bottom:0}.ui-tags{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.ui-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:980px;background:var(--surface-2);color:var(--ink-2)}.ui-tag.lvl{background:#ecfeff;color:#0e7490}.ui-tag.diff{background:var(--warn-soft);color:var(--warn)}.ui-cardq{font-size:12.5px;font-weight:600;color:var(--navy);line-height:1.4}.showcase{display:grid;grid-template-columns:1fr 1fr;grid-gap:52px;gap:52px;align-items:center}.showcase+.showcase{margin-top:80px}.showcase.rev .txt{order:2}.showcase .txt h3{font-size:clamp(22px,3vw,30px);letter-spacing:-.02em;color:var(--navy);font-weight:800;line-height:1.12}.showcase .txt p{color:var(--ink-2);font-size:16px;margin-top:14px}.showcase .txt ul{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:10px}.showcase .txt li{display:flex;gap:9px;font-size:14.5px;color:var(--ink)}.showcase .txt li svg{width:18px;height:18px;stroke:var(--accent);stroke-width:2.4;fill:none;flex-shrink:0;margin-top:3px}.showcase .txt .eyebrow{margin-bottom:10px;display:block}@media(max-width:860px){.showcase{grid-template-columns:1fr;gap:28px}.showcase.rev .txt{order:0}}.appbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:rgba(248,250,252,.85);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}.appbar .wrap{gap:14px;height:60px}.appbar .who,.appbar .wrap{display:flex;align-items:center}.appbar .who{margin-left:auto;gap:12px;font-size:14px;color:var(--ink-2)}.linkbtn{border:none;background:var(--surface);color:var(--navy);font-family:inherit;font-size:14px;font-weight:600;padding:9px 15px;border-radius:980px;cursor:pointer;box-shadow:inset 0 0 0 1px var(--line)}.linkbtn:hover{background:var(--surface-2)}.appnav{display:flex;gap:4px}.appnav a{font-size:14px;font-weight:600;color:var(--ink-2);padding:8px 12px;border-radius:9px}.appnav a:hover{background:var(--surface-2);color:var(--navy)}@media(max-width:620px){.appnav a{padding:8px;font-size:13px}}.a-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.a-head h1{font-size:26px;letter-spacing:-.02em;color:var(--navy)}.a-head .sub{color:var(--ink-3);font-size:14px;margin-top:3px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.cols{display:grid;grid-template-columns:280px 1fr;grid-gap:18px;gap:18px;align-items:start}@media(max-width:780px){.cols{grid-template-columns:1fr}}.clist a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:11px;color:var(--ink)}.clist a:hover{background:var(--surface-2)}.clist a.on{background:var(--accent-soft)}.cdot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.clist b{font-size:14px;color:var(--navy);display:block}.clist small{font-size:12px;color:var(--ink-3)}.a-tbl{width:100%;border-collapse:collapse}.a-tbl th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:700;padding:0 10px 10px}.a-tbl td{padding:11px 10px;border-top:1px solid var(--line);font-size:14px;color:var(--ink-2)}.tbl-clic tbody tr{cursor:pointer;transition:background .12s}.tbl-clic tbody tr:hover{background:var(--surface-2)}.stud{display:flex;align-items:center;gap:10px}.stud .av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.delx{border:none;background:transparent;color:var(--ink-3);cursor:pointer;font-size:14px;padding:6px 9px;border-radius:8px}.delx:hover{background:#fef2f2;color:#b91c1c}details.disc{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}details.disc>summary{cursor:pointer;font-weight:600;color:var(--accent);font-size:14px;list-style:none;display:inline-flex;align-items:center;gap:6px}details.disc>summary::-webkit-details-marker{display:none}details.disc>summary:before{content:"+";font-size:17px;line-height:1}details.disc[open]>summary:before{content:"–"}.form-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:flex-end}.form-row .f{flex:1 1;min-width:150px;margin-bottom:0}.f select,.f textarea{width:100%;font-family:inherit;font-size:15px;padding:12px 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.f select:focus,.f textarea:focus{outline:3px solid var(--accent-soft);border-color:var(--accent);background:var(--surface)}.a-empty{text-align:center;color:var(--ink-3);font-size:14px;padding:40px 16px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.fchip{padding:7px 13px;border-radius:980px;border:1px solid var(--line);background:var(--surface);font-size:13px;color:var(--ink-2);font-weight:600}.fchip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.bank-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:14px;gap:14px}.bq{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--surface)}.bq .tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}.bq .qq{font-size:14px;font-weight:600;color:var(--navy);line-height:1.4}.bq-wrap{position:relative}.bq-wrap .bq .tags{padding-right:32px}.bq-del{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-3);cursor:pointer;display:grid;place-items:center;opacity:.55;transition:.15s}.bq-wrap:hover .bq-del{opacity:1}.bq-del:hover{border-color:#f3b0a8;color:#c4271c;background:#fdf0f0}.bq-del:disabled{opacity:.4;cursor:default}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.stat-card .n{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--navy)}.stat-card .l{font-size:13.5px;color:var(--ink-3);margin-top:4px}.shell{display:flex;min-height:100vh}.side{width:250px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:9px;padding:6px 10px 14px}.side-nav{display:flex;flex-direction:column;gap:2px}.side-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700;padding:14px 10px 6px}.side-nav .dis,.side-nav a{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;font-size:14.5px;font-weight:600;color:var(--ink-2)}.side-nav a:hover{background:var(--surface-2);color:var(--navy)}.side-nav a.on{background:var(--accent);color:#fff}.side-nav a.on svg{stroke:#fff}.side-nav svg{width:18px;height:18px;stroke:var(--ink-3);stroke-width:1.9;fill:none;flex-shrink:0}.side-nav a:hover svg{stroke:var(--navy)}.side-nav .dis{color:var(--ink-3);cursor:default}.side-nav .dis .soon{margin-left:auto;font-size:9.5px;font-weight:700;background:var(--surface-2);color:var(--ink-3);padding:2px 7px;border-radius:980px;letter-spacing:.02em}.side-loi{margin:14px 6px 8px;padding:9px 11px;border-radius:10px;background:var(--ok-soft);display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--ok);font-weight:600}.side-loi svg{width:15px;height:15px;stroke:var(--ok);stroke-width:2;fill:none;flex-shrink:0}.side-user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid var(--line)}.side-user .av{width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0}.side-user b{font-size:13.5px;color:var(--navy);display:block;line-height:1.2}.side-user .logout{border:none;background:transparent;color:var(--ink-3);font-size:12px;cursor:pointer;padding:0;font-family:inherit}.side-user .logout:hover{color:var(--accent)}.app-main{flex:1 1;min-width:0;padding:30px 36px 80px;max-width:1120px}@media(max-width:820px){.shell{flex-direction:column}.side{width:auto;height:auto;position:-webkit-sticky;position:sticky;top:0;z-index:40;flex-direction:row;align-items:center;gap:6px;overflow-x:auto;padding:10px 14px}.side-brand{padding:4px 6px}.side-label,.side-loi,.side-user{display:none}.side-nav{flex-direction:row;gap:4px}.side-nav .dis,.side-nav a span.lbl{display:none}.app-main{padding:24px 18px 64px}}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.kpi .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px}.kpi .ic svg{width:20px;height:20px;stroke-width:1.9;fill:none}.kpi .ic.blue{background:var(--accent-soft)}.kpi .ic.blue svg{stroke:var(--accent)}.kpi .ic.green{background:var(--ok-soft)}.kpi .ic.green svg{stroke:var(--ok)}.kpi .ic.amber{background:var(--warn-soft)}.kpi .ic.amber svg{stroke:var(--warn)}.kpi .n{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--navy);line-height:1}.kpi .l{font-size:13.5px;color:var(--ink-3);margin-top:6px}@media(max-width:700px){.kpi-grid{grid-template-columns:1fr}}.examrow{display:flex;align-items:center;gap:14px;padding:13px 4px;border-top:1px solid var(--line)}.examrow:first-child{border-top:none}.examrow:hover{border-radius:10px}.exam-ic,.examrow:hover{background:var(--surface-2)}.exam-ic{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);display:grid;place-items:center;flex-shrink:0}.exam-ic svg{width:19px;height:19px;stroke:var(--ink-3);stroke-width:1.7;fill:none}.pill-s{font-size:11.5px;font-weight:700;padding:3px 11px;border-radius:980px}.pill-s.ok{background:var(--ok-soft);color:var(--ok)}.pill-s.draft{background:var(--surface-2);color:var(--ink-3)}.add-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.qcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px}.qcard-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.qcard-top .qn{width:26px;height:26px;border-radius:8px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800;flex-shrink:0}.qbadge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:980px;background:var(--accent-soft);color:var(--accent)}.q-actions{margin-left:auto}.q-actions .btn{padding:6px 12px;font-size:13px}.qcard textarea{width:100%;font-family:inherit;font-size:14.5px;padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);resize:vertical}.qcard textarea:focus{outline:3px solid var(--accent-soft);border-color:var(--accent);background:var(--surface)}.qopt{display:flex;gap:11px;margin:8px 0}.qopt,.qopt .pick{align-items:center}.qopt .pick{display:inline-flex;gap:7px;font-size:12px;color:var(--ink-3);font-weight:600;white-space:nowrap;min-width:62px}.qopt .pick input{width:17px;height:17px;accent-color:var(--ok)}.qopt input[type=text]{flex:1 1;font-family:inherit;font-size:14px;padding:9px 12px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.qopt input[type=text]:focus{outline:2px solid var(--accent-soft);border-color:var(--accent);background:var(--surface)}.qfoot{gap:14px;margin-top:14px;flex-wrap:wrap}.qfoot,.qfoot .pts{display:flex;align-items:center}.qfoot .pts{gap:8px;font-size:13px;color:var(--ink-2);font-weight:600}.qfoot .pts input{width:72px;font-family:inherit;font-size:14px;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);text-align:center}.print-root{background:var(--surface-2);min-height:100vh;padding:20px 0}.print-toolbar{max-width:215.9mm;margin:0 auto 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 18px;font-size:13.5px;color:var(--ink-2)}.page{position:relative;width:215.9mm;height:279.4mm;margin:0 auto 18px;background:#fff;color:#000;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}.fiducial{position:absolute;background:#000}.page-header{position:absolute;top:8mm;left:28mm;right:28mm;height:22mm;display:flex;justify-content:space-between;align-items:flex-start;gap:10mm}.ph-left{display:flex;align-items:center;gap:6mm;min-width:0}.ph-logo{height:13mm;width:auto;display:block}.ph-left h2{font-size:14px;font-weight:800;color:#111;line-height:1.15}.ph-sub{font-size:10px;color:#333;margin-top:1mm}.ph-note{font-size:9px;color:#777;margin-top:.8mm}.ph-right{flex-shrink:0;text-align:center}.ph-right .qr{width:20mm;height:20mm;margin-left:auto}.ph-right .qr svg{width:100%;height:100%;display:block}.ph-right .code{font-family:ui-monospace,monospace;font-size:9px;font-weight:700;margin-top:1mm;letter-spacing:.3px}.page-content{position:absolute;left:16mm;top:32mm;width:183.9mm;height:230mm;overflow:hidden}.q{margin-bottom:6mm}.q-text{font-size:11px;line-height:1.3;color:#111}.q-text b{font-weight:700}.q-pts{float:right;color:#888;font-weight:400;font-size:10px}.q-multi{color:#777;font-size:9.5px}.q-opts{display:flex;flex-wrap:wrap;gap:1.5mm 6mm;font-size:10.5px;color:#222;margin-top:1.5mm}.q-opts b{font-weight:700;color:#000}.ans-strip{position:relative;height:11mm;margin-top:2.5mm;background:#f7f7f7;border-radius:2mm}.anchor{position:absolute;top:3.25mm;background:#000;border-radius:.6mm}.ans-bubble{position:absolute;top:2.5mm;border:1.6px solid #000;border-radius:50%;display:grid;place-items:center;font-size:8px;font-weight:700;color:#000;box-sizing:border-box}.swrite{border:1px solid #999;border-radius:2mm;height:26mm;margin-top:2mm;background:repeating-linear-gradient(#fff,#fff 8mm,#e5e5e5 0,#e5e5e5 calc(8mm + 1px))}.demarche{position:relative;border:1px solid #bbb;border-radius:2mm;margin-top:2.5mm;background:repeating-linear-gradient(#fff,#fff 8mm,#ededf2 0,#ededf2 calc(8mm + .2mm))}.demarche.grid{background:repeating-linear-gradient(#fff,#fff 5mm,#ededf2 0,#ededf2 calc(5mm + .2mm)),repeating-linear-gradient(90deg,#fff,#fff 5mm,#ededf2 0,#ededf2 calc(5mm + .2mm))}.demarche-lbl{position:absolute;top:1mm;left:2.5mm;font-size:8px;color:#999;background:#fff;padding:0 1.5mm}.page-footer{position:absolute;bottom:8mm;left:28mm;right:28mm;display:flex;justify-content:space-between;font-size:8.5px;color:#888;border-top:1px solid #ddd;padding-top:1.5mm}@media print{.no-print{display:none!important}.print-root{background:#fff;padding:0}.page{border:none;box-shadow:none;margin:0 auto;page-break-after:always}.page:last-child{page-break-after:auto}@page{size:letter;margin:0}}.ed-full{position:fixed;inset:0;display:flex;flex-direction:column;height:100dvh;background:var(--surface-2);overflow:hidden}.ed-topbar{flex-shrink:0;display:flex;align-items:center;gap:16px;height:58px;padding:0 18px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm)}.ed-back{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font-weight:600;font-size:13.5px;text-decoration:none;padding:7px 10px;border-radius:9px;transition:.15s}.ed-back:hover{background:var(--surface-2);color:var(--ink)}.ed-back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.ed-titleblock{display:flex;flex-direction:column;line-height:1.25;min-width:0}.ed-titleblock b{font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.ed-titleblock span{font-size:12px;color:var(--ink-3)}.ed-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.ed-actions .ed-meta{font-size:13px;color:var(--ink-2);font-weight:600;white-space:nowrap}.ed-actions .ed-state{font-size:12.5px;color:var(--ink-3);min-width:118px;text-align:right}.btn-soft{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent)}.btn-soft:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}.q-handle{position:absolute;top:0;left:-2px;width:20px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:var(--surface);box-shadow:var(--shadow-sm);cursor:-webkit-grab;cursor:grab;opacity:0;transition:opacity .12s;z-index:5}.q:hover .q-handle{opacity:.85}.q-handle:hover{opacity:1}.q-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.q-handle svg{width:16px;height:16px;fill:var(--ink-3)}.q.drop-after:after,.q.drop-before:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--accent);border-radius:2px;z-index:6}.q.drop-before:after{top:-2px}.q.drop-after:after{bottom:-2px}.ip-hot{border-radius:3px;cursor:text;transition:background .1s,box-shadow .1s}.ip-hot:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.ip-edit{font:inherit;color:inherit;background:#fff;border:1px solid var(--accent);border-radius:5px;padding:1px 5px;outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}textarea.ip-edit{display:block;width:100%;margin-top:2px;resize:vertical;line-height:1.4}input.ip-edit{display:inline-block;min-width:90px}.q-fig{display:block;margin:3mm auto;max-width:100%;height:auto}.gtbl{width:100%;border-collapse:collapse;margin-top:2.5mm;font-size:10.5pt}.gtbl td,.gtbl th{border:.3mm solid #555;padding:1.4mm 2.4mm;vertical-align:middle}.gtbl .gtbl-h{background:#f0f0f0;font-weight:700;text-align:center;font-size:9.5pt;white-space:nowrap}.gtbl .gtbl-h0{background:#f0f0f0;width:auto}.gtbl .gtbl-row{text-align:left;line-height:1.25}.gtbl .gtbl-cell{text-align:center;width:1%;white-space:nowrap}.gtbl .gbox{display:inline-block;width:4.5mm;height:4.5mm;border:.4mm solid #111;border-radius:.8mm}.grow{display:flex;align-items:center;gap:6px;margin-bottom:6px}.grow>input{flex:1 1;min-width:0}.grow-cats{display:flex;gap:4px}.gchk{font-family:inherit;font-size:10.5px;font-weight:600;padding:5px 6px;border-radius:7px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);cursor:pointer;max-width:66px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gchk.on{background:#1a8a3a;border-color:#1a8a3a;color:#fff}.figed{background:var(--surface);border-radius:16px;width:min(960px,94vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg,0 20px 60px rgba(0,0,0,.25))}.figed-bar{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}.figed-grid{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer}.figed-body{display:grid;grid-template-columns:208px 1fr;min-height:0;flex:1 1}.figed-tools{border-right:1px solid var(--line);padding:14px;overflow-y:auto}.figed-tool{display:block;width:100%;text-align:left;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink-2);padding:9px 11px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);margin-bottom:6px;cursor:pointer;transition:.12s}.figed-tool.on,.figed-tool:hover{border-color:var(--accent)}.figed-tool.on{background:var(--accent);color:#fff}.figed-hint{font-size:12px;color:var(--ink-3);margin:10px 2px;line-height:1.45}.figed-prop{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.figed-prop input{width:100%}.figrow{display:flex;align-items:center;gap:8px;margin:6px 0}.figrow span{font-size:12.5px;color:var(--ink-3);min-width:18px}.figrow input{flex:1 1;min-width:0}.figed-canvas{background:#fff;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}.figed-canvas svg{width:100%;height:auto;max-height:100%;cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fig-thumb,.figed-canvas svg{background:#fff;border:1px solid var(--line);border-radius:8px}.fig-thumb{padding:6px;margin:6px 0}.fig-thumb img{display:block;max-width:100%;max-height:160px;margin:0 auto}.conv-review{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.conv-cards{display:grid;grid-gap:14px;gap:14px;min-width:0}.conv-source{position:-webkit-sticky;position:sticky;top:14px;max-height:calc(100vh - 120px);overflow:auto;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px;min-width:0}.conv-src-empty{padding:30px;text-align:center;color:var(--ink-3);font-size:13.5px}.convpage{position:relative;margin-bottom:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;line-height:0}.convpage img{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:4px}.convpage-num{position:absolute;top:4px;right:6px;font-size:11px;color:#fff;background:rgba(0,0,0,.45);padding:1px 6px;border-radius:6px;line-height:1.4}.convbox{position:absolute;border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);box-sizing:border-box;pointer-events:none}.convbox.on{border-color:#c4271c;background:color-mix(in srgb,#c4271c 14%,transparent)}.convbox.draw{border-style:dashed}.convbox span{position:absolute;top:-1px;left:-1px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:0 5px;border-radius:0 0 5px 0;line-height:1.5}.conv-banner{background:#eef6ff;border:1px solid #b9dcff;color:#1c4e80;border-radius:10px;padding:9px 14px;margin-bottom:12px;font-size:13.5px}.conv-banner button{margin-left:8px;background:none;border:none;color:var(--accent);font-weight:600;cursor:pointer;text-decoration:underline}.conv-figrow{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.conv-thumb{height:48px;width:auto;max-width:120px;border:1px solid var(--line);border-radius:6px;background:#fff}.conv-nofig{font-size:12.5px;color:var(--ink-3)}.conv-capture{border:1px solid var(--accent);color:var(--accent);padding:5px 10px;border-radius:8px}.conv-capture,.conv-rm{background:none;font-weight:600;font-size:12.5px;cursor:pointer}.conv-rm{border:none;color:#c4271c}@media(max-width:900px){.conv-review{grid-template-columns:1fr}.conv-source{position:static;max-height:none}}.zone-wrap{position:relative}.zone-grip{position:absolute;left:0;right:0;bottom:-5px;height:12px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;opacity:0;transition:opacity .12s;z-index:4;touch-action:none}.q:hover .zone-grip{opacity:.55}.zone-grip:hover{opacity:1!important}.zone-grip>span{width:38px;height:4px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}.ed-body{flex:1 1;min-height:0;display:grid;grid-template-columns:264px 1fr 320px;overflow:hidden}.ed-body>.panel{border:none;border-radius:0;height:100%;overflow-y:auto;background:var(--surface)}.ed-body>.palette{border-right:1px solid var(--line)}.ed-body>.insp{border-left:1px solid var(--line)}.editor{display:grid;grid-template-columns:250px 1fr 300px;grid-gap:16px;gap:16px;align-items:start}.palette{padding:16px}.pal-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-bottom:12px}.tool{display:flex;align-items:center;gap:11px;width:100%;text-align:left;font-family:inherit;padding:10px 11px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);margin-bottom:8px;cursor:pointer;transition:.15s}.tool:hover{border-color:var(--accent);background:var(--surface);box-shadow:var(--shadow-sm)}.tool .ti{width:32px;height:32px;border-radius:9px;background:var(--accent-soft);display:grid;place-items:center;flex-shrink:0}.tool .ti svg{width:17px;height:17px;stroke:var(--accent);stroke-width:1.9;fill:none}.tool b{font-size:13.5px;color:var(--navy);display:block}.tool small{font-size:11.5px;color:var(--ink-3)}.pal-hint{font-size:12px;color:var(--ink-3);margin-top:10px;line-height:1.4}.sheet{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px 30px;min-height:480px}.sheet-id{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--navy);padding-bottom:14px;margin-bottom:18px}.sheet-id h2{font-size:17px;color:var(--navy)}.sheet-id .f{font-size:12.5px;color:var(--ink-2);margin-top:6px}.qr-fake{width:48px;height:48px;border-radius:8px;background:repeating-conic-gradient(var(--navy) 0 25%,#fff 0 50%) 0/12px 12px;border:3px solid #fff;outline:1px solid var(--line);flex-shrink:0}.q{position:relative;padding:12px 13px;border-radius:12px;border:1.5px solid transparent;margin-bottom:12px;cursor:pointer;transition:.12s}.q:hover{background:var(--surface-2)}.q.sel{border-color:var(--accent);background:var(--accent-soft)}.qtop{display:flex;gap:9px;font-weight:600;font-size:14px;color:var(--navy);margin-bottom:9px}.qtop .qnum{color:var(--accent)}.qpts{float:right;font-weight:500;font-size:12px}.qmulti,.qpts{color:var(--ink-3)}.qmulti{font-weight:400;font-size:11.5px;font-style:normal}.opt{display:flex;align-items:center;gap:11px;padding:5px 0;font-size:13.5px;color:var(--ink-2)}.bubble{width:21px;height:21px;border-radius:50%;border:2px solid var(--ink-3);display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--ink-3);flex-shrink:0}.opt.correct{color:var(--navy);font-weight:600}.opt.correct .bubble{background:var(--ok);border-color:var(--ok);color:#fff}.writez{border:1px solid var(--line);border-radius:8px;height:64px;background:repeating-linear-gradient(transparent,transparent 21px,var(--line) 21px,var(--line) 22px)}.insp{padding:16px}.insp .il{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:14px 0 7px}.insp textarea{width:100%;font-family:inherit;font-size:14px;padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);resize:vertical;color:var(--ink)}.insp textarea:focus{outline:3px solid var(--accent-soft);border-color:var(--accent);background:#fff}.del-q{margin-left:auto;border:none;background:transparent;color:var(--accent);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer}.del-q:hover{color:#b91c1c}.seg{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}.seg button{flex:1 1;border:none;background:transparent;font-family:inherit;font-size:11.5px;font-weight:600;padding:7px 4px;border-radius:8px;cursor:pointer;color:var(--ink-2)}.seg button.on{background:#fff;color:var(--navy);box-shadow:var(--shadow-sm)}.oe{display:flex;align-items:center;gap:8px;margin-bottom:7px}.oe .mark{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface-2);cursor:pointer;flex-shrink:0;display:grid;place-items:center}.oe .mark svg{width:15px;height:15px;stroke:var(--ink-3);stroke-width:2.5;fill:none}.oe .mark.on{background:var(--ok);border-color:var(--ok)}.oe .mark.on svg{stroke:#fff}.oe input{flex:1 1;font-family:inherit;font-size:13.5px;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.oe input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent);background:#fff}.oe-del{width:28px;height:28px;border:none;background:transparent;color:var(--ink-3);cursor:pointer;flex-shrink:0;border-radius:7px;font-size:13px}.oe-del:hover{background:#fef2f2;color:#b91c1c}.add-opt{font-size:13px;padding:7px 13px;margin-top:4px}.insp .stepper{display:flex;align-items:center;gap:6px}.insp .stepper button{width:34px;height:34px;font-size:18px;cursor:pointer}.insp .stepper button,.insp .stepper input{border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--navy)}.insp .stepper input{flex:1 1;text-align:center;font-family:inherit;font-size:15px;font-weight:700;padding:8px}@media(max-width:980px){.editor{grid-template-columns:1fr}}@media(max-width:1100px){.ed-body{grid-template-columns:220px 1fr 280px}}@media(max-width:820px){.ed-body{grid-template-columns:1fr;grid-auto-rows:minmax(0,1fr)}.ed-body>.palette{border-right:none;border-bottom:1px solid var(--line)}.ed-body>.insp{border-left:none;border-top:1px solid var(--line)}}.tool.tool-bank{border-color:var(--accent);background:var(--accent-soft);margin-top:4px}.ov{position:fixed;inset:0;background:rgba(2,6,23,.42);display:grid;place-items:center;z-index:100;padding:20px}.mod{background:#fff;border-radius:18px;box-shadow:var(--shadow-lg);width:100%;max-width:540px;max-height:82vh;flex-direction:column;overflow:hidden}.mod,.mod-h{display:flex}.mod-h{align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.mod-h b{font-size:16px;color:var(--navy)}.mod-h button{border:none;width:30px;height:30px;border-radius:8px;cursor:pointer;color:var(--ink-2);font-size:15px}.mod-h button,.mod-search{background:var(--surface-2)}.mod-search{margin:14px 20px 6px;padding:11px 13px;border-radius:10px;border:1px solid var(--line);font-family:inherit;font-size:14px}.mod-search:focus{outline:3px solid var(--accent-soft);border-color:var(--accent);background:#fff}.mod-list{overflow:auto;padding:8px 16px 18px;display:flex;flex-direction:column;gap:8px}.bankrow{display:block;text-align:left;width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);cursor:pointer;font-family:inherit;transition:.12s}.bankrow:hover{border-color:var(--accent);background:var(--accent-soft)}.bankrow-tags{display:flex;gap:6px;margin-bottom:7px}.bankrow-q{display:block;font-size:13.5px;color:var(--navy);font-weight:500;line-height:1.4}.bq{display:block;color:inherit}.bank-edit{display:grid;grid-template-columns:1fr 360px;grid-gap:18px;gap:18px;align-items:start}.bank-ta{width:100%;font-family:inherit;font-size:14px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);resize:vertical}.bank-ta:focus{outline:3px solid var(--accent-soft);border-color:var(--accent);background:#fff}@media(max-width:860px){.bank-edit{grid-template-columns:1fr}}.il{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:14px 0 7px}.ai-key-head{display:flex;gap:14px;align-items:flex-start}.ai-key-ic{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none}.ai-key-ic svg{width:22px;height:22px;fill:currentColor}.ai-key-input{width:100%;font-family:inherit;font-size:14px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);margin-top:14px}.ai-key-input:focus{outline:3px solid var(--accent-soft);border-color:var(--accent);background:#fff}.ai-key-set{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:14px;color:var(--ink-2);flex-wrap:wrap}.ai-key-set code{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:2px 8px;font-size:13px;color:var(--navy)}.ai-key-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}.ai-key-actions{display:flex;gap:6px;margin-left:auto}.ai-key-err{margin-top:10px;font-size:13px;font-weight:600;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:9px;padding:8px 11px}.ai-key-note{margin-top:14px;font-size:12.5px;color:var(--ink-3);line-height:1.5}.ai-key-note a{color:var(--accent);font-weight:600}.gen-wrap{display:flex;flex-direction:column;gap:18px}.gen-types{display:flex;gap:8px;flex-wrap:wrap}.gen-chip{border:1px solid var(--line);background:var(--surface);font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-2);padding:8px 14px;border-radius:999px;cursor:pointer}.gen-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.gen-hint{font-size:12px;color:var(--ink-3);margin-top:7px}.gen-revhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;font-size:14px;color:var(--ink-2)}.gen-cands{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}@media(max-width:860px){.gen-cands{grid-template-columns:1fr}}.gen-cand{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:14px;box-shadow:var(--shadow-sm);transition:opacity .15s}.gen-cand.off{opacity:.5}.gen-keep{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;margin-bottom:10px}.gen-keep input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.gen-tags{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap}.onb2-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.onb2-card{width:100%;max-width:620px;max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.onb2-head{padding:22px 26px 16px;border-bottom:1px solid var(--line);position:relative}.onb2-head .brand-img{height:30px;margin-bottom:14px}.onb2-skip{position:absolute;top:22px;right:26px;border:none;background:none;color:var(--ink-3);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.onb2-skip:hover{color:var(--accent)}.onb2-dots{display:flex;gap:6px;margin-bottom:12px}.onb2-dot{width:22px;height:4px;border-radius:99px;background:var(--surface-2);transition:background .2s}.onb2-dot.on{background:var(--accent)}.onb2-dot.done{background:var(--accent-2)}.onb2-step{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.onb2-title{font-size:21px;font-weight:800;color:var(--navy);letter-spacing:-.01em;margin-top:5px}.onb2-sub{font-size:13.5px;color:var(--ink-2);margin-top:4px}.onb2-body{padding:20px 26px;overflow-y:auto;flex:1 1}.onb2-foot{padding:16px 26px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.onb2-foot .spacer{flex:1 1}.onb2-recap{margin-top:16px;font-size:13.5px;color:var(--ink-2);background:var(--surface-2);border-radius:10px;padding:10px 12px}.school-pick{position:relative}.school-results{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);max-height:280px;overflow-y:auto;padding:4px}.school-res{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:8px 10px;border-radius:8px;font-family:inherit}.school-res:hover{background:var(--surface-2)}.school-res b{font-size:13.5px;color:var(--navy);font-weight:600}.school-res span{font-size:12px;color:var(--ink-3)}.school-chosen{margin-top:8px;color:var(--ok)}.prog-chip,.school-chosen{font-size:13.5px;font-weight:600}.prog-chip{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:7px 8px 7px 14px;color:var(--navy)}.prog-chip button{border:none;background:none;color:var(--ink-3);cursor:pointer;font-size:12px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center}.prog-chip button:hover{background:#fee2e2;color:#b91c1c}.onb-sug-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:16px 0 8px}.side-acct{display:flex;align-items:center;gap:10px;flex:1 1;min-width:0;color:inherit;border-radius:9px;padding:4px;margin:-4px}.side-acct:hover{background:var(--surface-2)}.side-acct:hover b{color:var(--accent)}.side-acct b{display:block;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-acct small{display:block;font-size:11px;color:var(--ink-3);font-weight:500;line-height:1.2}.acct-list{display:flex;flex-direction:column}.acct-row{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.acct-row:last-child{border-bottom:none}.acct-k{color:var(--ink-3)}.acct-v{color:var(--navy);font-weight:600;text-align:right;word-break:break-word}.danger-zone{border-color:#fecaca!important;background:#fff7f7}.btn-danger{background:#dc2626;color:#fff;border:1px solid #dc2626}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}@keyframes onbCardIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes onbStepIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes onbBeeFloat{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-11px) rotate(4deg)}}@keyframes onbGlow{0%,to{opacity:.45;transform:translate(-50%,-50%) scale(1)}50%{opacity:.85;transform:translate(-50%,-50%) scale(1.12)}}@keyframes onbDotPulse{0%,to{box-shadow:0 0 0 0 rgba(3,105,161,.45)}50%{box-shadow:0 0 0 4px rgba(3,105,161,0)}}.onb2-wrap{background:radial-gradient(900px 480px at 50% -8%,rgba(245,200,66,.13),transparent 70%),var(--bg);overflow:hidden}.onb2-stage{position:relative;width:100%;max-width:620px}.onb2-bee-fly{position:absolute;top:0;left:50%;width:66px;height:66px;margin-left:-33px;margin-top:-44px;z-index:5;pointer-events:none;will-change:transform;filter:drop-shadow(0 10px 16px rgba(2,6,23,.2))}.onb2-bee-wrap{position:relative;display:flex;justify-content:center;margin-bottom:12px}.onb2-bee-wrap:before{content:"";position:absolute;top:50%;left:50%;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(245,200,66,.45),transparent 68%);transform:translate(-50%,-50%);animation:onbGlow 3.4s ease-in-out infinite;z-index:0}.onb2-bee{width:66px;height:66px;position:relative;z-index:1;animation:onbBeeFloat 3.4s ease-in-out infinite;filter:drop-shadow(0 8px 14px rgba(2,6,23,.18));transform-origin:center}.onb2-anim{animation:onbStepIn .34s ease both}.onb2-dot{transition:width .25s ease,background .25s ease}.onb2-dot.on{width:26px;animation:onbDotPulse 2.2s ease-in-out infinite}.onb2-card .btn{transition:transform .12s ease,box-shadow .2s ease,background .2s ease}.onb2-card .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px rgba(3,105,161,.28)}.onb2-card .btn:active:not(:disabled){transform:translateY(0) scale(.98)}.onb2-card.onb2-done .onb2-bee{animation:onbBeeFloat .7s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.onb2-anim,.onb2-bee,.onb2-bee-wrap:before,.onb2-card,.onb2-dot.on{animation:none!important}.onb2-card .btn{transition:none}}.onb-hint{font-size:13px;font-weight:500;color:var(--ink-3)}.onb-chips{display:flex;flex-wrap:wrap;gap:8px}.onb-order-block{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;margin-top:12px;background:var(--surface)}.onb-order-block h3{font-size:14.5px;font-weight:700;color:var(--navy);margin-bottom:10px}.onb-dom{margin-top:6px}.onb-dom-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin:10px 0 4px}.onb-subtree{margin-left:6px;border-left:2px solid var(--surface-2);padding-left:12px}.onb-leaf{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:14px;color:var(--ink-2);cursor:pointer}.onb-leaf input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:none}.onb-leaf.cust{color:var(--accent);font-weight:600}.onb-rm{margin-left:auto;border:none;background:none;color:var(--ink-3);cursor:pointer;font-size:13px}.onb-rm:hover{color:#b91c1c}.onb-add-link{border:none;background:none;color:var(--accent);font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;padding:6px 0;display:block}.onb-add-row{display:inline-flex;gap:8px;margin:6px 0;align-items:center;flex-wrap:wrap}.onb-add-row input{font-family:inherit;font-size:13.5px;padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);min-width:200px}.onb-add-row input:focus{outline:3px solid var(--accent-soft);border-color:var(--accent);background:#fff}.onb-empty{font-size:13.5px;color:var(--ink-3);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.onb-dom:first-child,.onb-order-block:first-child{margin-top:0}