:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{color:#000;background:#fff;margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}.rubric-box{border:2px solid var(--line);background:var(--card);border-radius:18px;gap:16px;padding:22px;display:grid}.rubric-box h3{font-size:26px}.rubric-row{border-bottom:1px solid var(--soft);justify-content:space-between;align-items:center;gap:20px;padding:10px 0;display:flex}.rubric-row div{flex:1}.rubric-row small{font:700 12px var(--f-mono);color:var(--accent)}.rubric-row p{color:var(--muted);font-size:14px}.rubric-row label{gap:4px;min-width:90px;font-size:13px;font-weight:700;display:grid}.rubric-input{border:2px solid var(--line);background:var(--bg);width:90px;color:var(--ink);font:700 18px var(--f-mono);border-radius:10px;padding:9px}.rubric-result{background:var(--mint);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:14px;font-weight:800;display:flex}.rubric-result strong{font:800 26px var(--f-dpy)}.rubric-copy{border:2px solid var(--line);background:var(--butter);cursor:pointer;border-radius:12px;padding:12px 16px;font-weight:700}@media (width<=650px){.fab{gap:3px;max-width:calc(100vw - 12px);padding:5px}.fab select{max-width:28vw;padding:7px 4px;font-size:12px}.rubric-row{align-items:start}}:root{--bg:#f4f2ee;--card:#fffdf9;--ink:#2a2838;--muted:#57536a;--line:#2a2838;--shadow:#2a2838;--soft:#e9e5de;--lilac:#dcd3f7;--sky:#d2e3f7;--butter:#f9e7a8;--mint:#cbebdc;--peach:#ffd9c7;--rose:#f8cfdc;--accent:#5b48c9;--ok:#2e8b57;--code-bg:#2a2838;--code-fg:#f4f2ee;--code-dim:#c9c3da;--ph-bg:#f9e7a8;--ph-fg:#2a2838;--f-dpy:"Bricolage Grotesque","Arial Narrow",Arial,sans-serif;--f-body:"Plus Jakarta Sans","Segoe UI",Arial,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17161d;--card:#221f2b;--ink:#eeeaf6;--muted:#bdb7cf;--line:#5a5470;--shadow:#08070c;--soft:#2c2937;--lilac:#3a3258;--sky:#21364d;--butter:#4d4118;--mint:#1e4034;--peach:#4f3023;--rose:#4d2536;--accent:#b9adff;--ok:#7bd88f;--code-bg:#0e0d13;--code-fg:#eeeaf6;--code-dim:#a9a3bc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#17161d;--card:#221f2b;--ink:#eeeaf6;--muted:#bdb7cf;--line:#5a5470;--shadow:#08070c;--soft:#2c2937;--lilac:#3a3258;--sky:#21364d;--butter:#4d4118;--mint:#1e4034;--peach:#4f3023;--rose:#4d2536;--accent:#b9adff;--ok:#7bd88f;--code-bg:#0e0d13;--code-fg:#eeeaf6;--code-dim:#a9a3bc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:500 clamp(15px,1.2vw,17px)/1.6 var(--f-body);padding-left:max(clamp(10px,2.4vw,24px),env(safe-area-inset-left,0px));padding-right:max(clamp(10px,2.4vw,24px),env(safe-area-inset-right,0px));overflow-x:hidden}body:before{content:"";height:env(safe-area-inset-top,0px);background:var(--bg);z-index:80;position:fixed;inset:0 0 auto}a{color:var(--accent);text-underline-offset:3px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}h1,h2,h3{font-family:var(--f-dpy);text-wrap:balance;letter-spacing:-.02em;margin:0}p{margin:0}.wrap{max-width:1440px;margin:0 auto;padding-block:0 110px}.ni{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.appbar{top:env(safe-area-inset-top,0px);z-index:72;background:var(--bg);align-items:center;gap:12px;padding:12px 0;display:flex;position:sticky}.appbar:after{content:"";background:var(--soft);height:3px;position:absolute;bottom:0;left:0;right:0}.progbar{background:var(--accent);z-index:1;width:0;height:3px;transition:width .3s;position:absolute;bottom:0;left:0}.ab-btn{all:unset;cursor:pointer;border:2px solid var(--line);background:var(--card);border-radius:11px;place-items:center;width:40px;height:40px;transition:transform .1s;display:inline-grid}.ab-btn:hover{transform:translateY(-1px)}.ab-btn:active{transform:scale(.94)}.ab-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ab-btn svg{width:20px;height:20px;color:var(--ink)}.ab-title{font-family:var(--f-dpy);letter-spacing:-.02em;font-size:18px;font-weight:800}.ab-right{align-items:center;gap:8px;margin-left:auto;display:flex}.prog{font:700 14px/1 var(--f-mono);color:var(--muted);border:2px solid var(--line);background:var(--card);white-space:nowrap;border-radius:999px;padding:9px 11px}@media (width<=560px){.ab-title{display:none}}.head{background:var(--lilac);border:2px solid var(--line);box-shadow:5px 5px 0 var(--shadow);border-radius:24px;gap:16px;margin-top:20px;padding:28px clamp(20px,4vw,44px);display:grid}.eyebrow{font:700 14px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}.head h1{font-size:clamp(34px,6vw,60px);font-weight:800;line-height:.98}.head .lead{max-width:62ch;font-size:19px}.meta{flex-wrap:wrap;gap:8px;display:flex}.meta span{font:700 14px/1 var(--f-mono);border:2px solid var(--line);background:var(--card);border-radius:999px;padding:7px 11px}.flow{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.flow .node{border:2px solid var(--line);background:var(--card);border-radius:12px;padding:9px 13px;font-size:15px;font-weight:700;animation:.6s cubic-bezier(.22,1,.36,1) both nodein}.flow .node:first-of-type{animation-delay:.1s}.flow .node:nth-of-type(2){animation-delay:.16s}.flow .node:nth-of-type(3){animation-delay:.22s}.flow .node:nth-of-type(4){animation-delay:.28s}.flow .node:nth-of-type(5){animation-delay:.34s}.flow .node:nth-of-type(6){animation-delay:.4s}.flow .node:nth-of-type(7){animation-delay:.46s}.flow .node:nth-of-type(8){animation-delay:.52s}.flow .ar svg{width:30px;height:14px;overflow:visible}.ar-line{fill:none;stroke:var(--muted);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:3 5;animation:.9s linear infinite arflow}.ar-head{fill:none;stroke:var(--muted);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}@keyframes arflow{to{stroke-dashoffset:-8px}}@keyframes nodein{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.c1{background:var(--lilac)}.c2{background:var(--sky)}.c3{background:var(--butter)}.c4{background:var(--mint)}.c5{background:var(--peach)}.c6{background:var(--rose)}.grid{grid-template-columns:250px minmax(0,1fr) 290px;align-items:start;gap:40px;margin-top:30px;display:grid}#app.nav-collapsed .grid{grid-template-columns:minmax(0,1fr) 290px}nav.toc{top:calc(env(safe-area-inset-top,0px) + 76px);align-content:start;gap:3px;max-height:calc(100vh - 120px);display:grid;position:sticky;overflow:auto}#app.nav-collapsed nav.toc{display:none}nav.toc a{color:var(--ink);border-radius:11px;align-items:center;gap:9px;padding:8px 10px;font-size:16px;font-weight:600;text-decoration:none;display:flex}nav.toc a b{font:700 13px/1 var(--f-mono);color:var(--muted);text-align:center;min-width:15px}nav.toc a .ni{width:18px;height:18px;color:var(--muted);flex:none}nav.toc a:hover,nav.toc a.active{background:var(--soft)}nav.toc a.active .ni,nav.toc a.active b{color:var(--accent)}.backdrop{display:none}main{gap:54px;min-width:0;display:grid}.rail{top:calc(env(safe-area-inset-top,0px) + 76px);align-content:start;gap:14px;display:grid;position:sticky}.rail .card{background:var(--card);border:2px solid var(--line);border-radius:18px;gap:10px;padding:16px 18px;display:grid}.rail h3{font-size:19px}.rail ol{gap:7px;margin:0;padding-left:20px;font-size:15px;display:grid}.rail .big{font:800 34px/1 var(--f-dpy)}@media (width<=1279px){.grid{grid-template-columns:250px minmax(0,1fr)}#app.nav-collapsed .grid{grid-template-columns:minmax(0,1fr)}.rail{display:none}}@media (width<=900px){.grid,#app.nav-collapsed .grid{grid-template-columns:minmax(0,1fr)}#app.nav-collapsed nav.toc{display:grid}nav.toc{background:var(--card);border-right:2px solid var(--line);width:min(80vw,310px);max-height:none;padding:calc(env(safe-area-inset-top,0px) + 74px) 16px 20px;z-index:70;transition:transform .25s;position:fixed;inset:0 auto 0 0;transform:translate(-106%)}#app.drawer-open nav.toc{transform:none}#app.drawer-open .backdrop{z-index:65;background:#0000006b;display:block;position:fixed;inset:0}}section{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 80px);gap:20px;display:grid}.sh{align-items:center;gap:14px;display:flex}.num{border:2px solid var(--line);background:var(--card);border-radius:14px;flex:none;place-items:center;width:48px;height:48px;display:grid}.num .ni{width:26px;height:26px}.sh h2{font-size:clamp(27px,4vw,37px);font-weight:800;line-height:1.05}.intro{max-width:65ch}.step{background:var(--card);border:2px solid var(--line);border-radius:18px;gap:12px;min-width:0;padding:20px 22px;transition:opacity .2s;display:grid;position:relative}.step h3{align-items:center;gap:11px;font-size:22px;font-weight:700;line-height:1.25;display:flex}.step h3 .sn{font:700 15px/1 var(--f-mono);color:var(--muted)}.step.done{opacity:.55}.step.locked{opacity:.72}.step.locked h3>span:not(.sn){color:var(--muted)}.step.locked .ck{cursor:not-allowed;border-color:var(--line);background:0 0}.step.locked .ck[aria-pressed=false]{border-color:var(--line)}.step.locked .ck:active{transform:none}.ck{all:unset;cursor:pointer;border:2.5px solid var(--line);background:var(--bg);border-radius:9px;flex:none;place-items:center;width:28px;height:28px;transition:background .15s,transform .1s;display:grid}.ck svg{fill:none;width:18px;height:18px;stroke:var(--ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30px;transition:stroke-dashoffset .25s}.ck:active{transform:scale(.88)}.ck:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ck[aria-pressed=true]{background:var(--mint)}.ck[aria-pressed=true] svg{stroke-dashoffset:0}.ck[aria-pressed=false]{border-color:var(--accent)}.step.next:after{content:"";pointer-events:none;border-radius:24px;animation:2.2s ease-in-out infinite nextglow;position:absolute;inset:-6px}@keyframes nextglow{0%,to{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent),0 0 18px 2px color-mix(in srgb,var(--accent) 25%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 45%,transparent),0 0 30px 8px color-mix(in srgb,var(--accent) 40%,transparent)}}.step.next>h3:after{content:"Berikutnya";font:700 13px/1 var(--f-mono);letter-spacing:.04em;background:var(--accent);color:var(--card);border-radius:999px;margin-left:auto;padding:7px 11px}@media (width<=560px){.step.next>h3:after{display:none}}.row{grid-template-columns:150px minmax(0,1fr);align-items:start;gap:6px 16px;display:grid}.lab{font:700 14px/1.6 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:2px}@media (width<=620px){.row{grid-template-columns:minmax(0,1fr)}}.val{gap:8px;min-width:0;display:grid}.where{font:700 14px/1 var(--f-mono);border:2px solid var(--line);background:var(--sky);border-radius:999px;justify-self:start;padding:6px 10px;display:inline-block}.where.ai{background:var(--lilac)}.where.br{background:var(--mint)}.where.ed{background:var(--peach)}.code{background:var(--code-bg);color:var(--code-fg);border-radius:12px;min-width:0;position:relative}.code pre{font:500 15.5px/1.6 var(--f-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:14px 96px 14px 16px}.code .copy{all:unset;cursor:pointer;font:700 14px/1 var(--f-mono);background:var(--code-fg);color:var(--code-bg);border-radius:8px;padding:8px 12px;position:absolute;top:8px;right:8px}.code .copy:hover{transform:translateY(-1px)}.code .copy:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.code.prompt{border-left:5px solid #b9adff}.ph{background:var(--ph-bg);color:var(--ph-fg);border-radius:5px;padding:0 4px;font-weight:700}code.i{font:600 15.5px/1.4 var(--f-mono);background:var(--soft);overflow-wrap:anywhere;border-radius:6px;padding:2px 6px}.out{background:var(--code-bg);color:var(--code-fg);font:500 14.5px/1.65 var(--f-mono);white-space:pre;border-left:5px solid #7bd88f;border-radius:12px;padding:14px 16px;overflow-x:auto}.out .ok{color:#7bd88f}.note{border:2px solid var(--line);border-radius:16px;gap:6px;padding:16px 20px;display:grid}.note.warn{background:var(--rose)}.note.tip{background:var(--mint)}.note.info{background:var(--butter)}.note strong{font-family:var(--f-dpy);font-size:19px}ul.clean{gap:6px;margin:0;padding-left:22px;display:grid}.tw{border:2px solid var(--line);background:var(--card);border-radius:16px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px;font-size:16px}th,td{text-align:left;vertical-align:top;border-bottom:1.5px solid var(--soft);padding:12px 14px}th{font:700 14px/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;background:var(--soft)}tr:last-child td{border-bottom:0}td:first-child{font-weight:700}details{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:14px 18px}details summary{cursor:pointer;font-weight:700}details[open] summary{margin-bottom:12px}details .val{gap:10px}footer{color:var(--muted);margin-top:60px;font-size:15px}.fab{left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:75;background:var(--card);border:2px solid var(--line);border-radius:999px;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:6px 8px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 30px #00000038}.fab label{font:700 13px/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:7px;display:flex}.fab select{font:700 15px/1 var(--f-body);color:var(--ink);background:var(--soft);border:2px solid var(--line);border-radius:999px;max-width:42vw;padding:8px 10px}.fab-sep{background:var(--soft);border-radius:2px;width:2px;height:24px}@media (width<=430px){.fab label span{display:none}.fab{gap:6px}}.view{display:block}.topbar{top:env(safe-area-inset-top,0px);z-index:60;background:var(--bg);border-bottom:3px solid var(--soft);align-items:center;gap:12px;padding:12px 0;display:flex;position:sticky}.brand{font-family:var(--f-dpy);letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:800;line-height:1.1;display:inline-flex}.brand .dot{border:2px solid var(--line);background:var(--mint);width:36px;height:36px;box-shadow:2px 2px 0 var(--shadow);font:800 13px var(--f-mono);border-radius:10px;flex:none;place-items:center;display:grid}.topnav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.btn{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;font:700 15px/1.15 var(--f-body);border:2px solid var(--line);background:var(--card);color:var(--ink);box-shadow:3px 3px 0 var(--shadow);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;transition:transform .1s,box-shadow .1s;display:inline-flex}.btn:hover{box-shadow:4px 4px 0 var(--shadow);transform:translate(-1px,-1px)}.btn:active{box-shadow:1px 1px 0 var(--shadow);transform:translate(2px,2px)}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent);color:var(--card)}.btn.butter{background:var(--butter)}.btn.mint{background:var(--mint)}.btn.small{box-shadow:2px 2px 0 var(--shadow);border-radius:10px;padding:9px 13px;font-size:14px}.btn.wide{width:100%}.btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.land{width:100%;max-width:1440px;margin:0 auto;padding-bottom:clamp(56px,8vw,90px)}.cta-row{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.land-grid{grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:16px;margin-top:22px;display:grid}.feat{background:var(--card);border:2px solid var(--line);border-radius:18px;align-content:start;gap:8px;padding:20px;display:grid}.feat .fi{border:2px solid var(--line);background:var(--lilac);border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.feat .fi .ni{width:24px;height:24px}.feat h3{font-size:20px;line-height:1.2}.feat p{color:var(--muted);font-size:15px}.land-sec{gap:14px;margin-top:44px;display:grid}.land-sec h2{font-size:clamp(24px,3.6vw,32px);line-height:1.05}.land-sec>p{max-width:66ch;color:var(--muted)}.steps3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.s3{background:var(--card);border:2px solid var(--line);border-radius:16px;align-content:start;gap:6px;padding:18px;display:grid}.s3 b{font:800 12px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}.s3 h3{font-size:19px;line-height:1.25}.s3 p{color:var(--muted);font-size:15px}.auth{place-items:center;min-height:calc(100dvh - 40px);padding:clamp(14px,4vw,32px) 0 clamp(40px,8vw,70px);display:grid}.auth-card{background:var(--card);border:2px solid var(--line);width:min(470px,100%);box-shadow:6px 6px 0 var(--shadow);border-radius:22px;gap:16px;padding:clamp(20px,4vw,30px);display:grid}.auth-head{gap:6px;display:grid}.auth-head h1{font-size:clamp(25px,4.5vw,31px);line-height:1.06}.auth-head p{color:var(--muted);font-size:15px}.auth-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tabs{background:var(--soft);border:2px solid var(--line);border-radius:13px;gap:5px;padding:4px;display:flex}.tabs button{all:unset;cursor:pointer;text-align:center;font:700 14px/1 var(--f-body);color:var(--muted);border-radius:9px;flex:1;padding:10px 6px}.tabs button[aria-selected=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000029}.tabs button:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.field{gap:6px;min-width:0;display:grid}.field>label{font:700 12.5px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.field input,.field textarea,.field select{box-sizing:border-box;width:100%;font:600 16px/1.4 var(--f-body);color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:11px;padding:11px 12px}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.8;font-weight:500}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.field textarea{resize:vertical;min-height:92px;font-size:15px}.field .hint{color:var(--muted);font-size:13px;font-weight:600}.sub-form{gap:13px;display:grid}.two-col{grid-template-columns:1fr 1fr;gap:13px;display:grid}@media (width<=640px){.two-col{grid-template-columns:1fr}}.form-msg{border:2px solid var(--line);background:var(--rose);color:var(--ink);border-radius:10px;padding:10px 12px;font-size:14px;font-weight:700}.form-msg.ok{background:var(--mint)}.auth-alt{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;font-size:14px;display:flex}.linkbtn{all:unset;cursor:pointer;color:var(--accent);text-underline-offset:3px;font-weight:700;text-decoration:underline}.linkbtn:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:5px}.demo-note{background:var(--butter);border:2px dashed var(--line);border-radius:12px;gap:5px;padding:12px 14px;font-size:14px;display:grid}.demo-note b{font-size:14px}.demo-note code{font:700 13px var(--f-mono);background:var(--card);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:5px;padding:2px 6px}.demo-note span{color:var(--muted)}button.ab-title{all:unset;cursor:pointer;font-family:var(--f-dpy);letter-spacing:-.02em;font-size:18px;font-weight:800}button.ab-title:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}.userchip{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font:700 12.5px/1 var(--f-mono);border:2px solid var(--line);background:var(--mint);border-radius:999px;align-items:center;gap:6px;padding:9px 11px;display:inline-flex;overflow:hidden}@media (width<=780px){.userchip{display:none}}.submit-box{border:2px solid var(--line);background:var(--card);border-radius:18px;gap:14px;padding:22px;display:grid}.submit-box h3{font-size:24px;line-height:1.2}.submit-box>p{color:var(--muted);max-width:70ch;font-size:15px}.sub-status{border:2px solid var(--line);background:var(--sky);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:14px;display:grid}.sub-status div{overflow-wrap:anywhere;gap:4px;min-width:0;font-size:14px;display:grid}.sub-status small{font:700 11px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sub-status b{font-size:15px;line-height:1.3}.badge{font:700 11px/1.2 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;border:2px solid var(--line);background:var(--butter);border-radius:999px;padding:7px 9px;display:inline-block}.badge.ok{background:var(--mint)}.badge.wait{background:var(--peach)}.actions-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin{width:100%;max-width:1440px;margin:0 auto;padding-bottom:clamp(56px,8vw,90px)}.admin-head{gap:8px;margin-top:26px;display:grid}.admin-head h1{font-size:clamp(27px,4.6vw,40px);line-height:1.02}.admin-head p{color:var(--muted);max-width:72ch;font-size:16px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;margin-top:20px;display:grid}.stat{border:2px solid var(--line);background:var(--card);border-radius:14px;gap:4px;padding:14px 16px;display:grid}.stat span{font:700 11px/1.25 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.stat strong{font:800 27px/1 var(--f-dpy)}.stat.sky{background:var(--sky)}.stat.butter{background:var(--butter)}.stat.mint{background:var(--mint)}.stat.lilac{background:var(--lilac)}.stat.peach{background:var(--peach)}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:26px;display:flex}.toolbar .field{flex:200px}.toolbar .field.status{flex:0 190px}.subs{gap:14px;margin-top:18px;display:grid}.sub-card{background:var(--card);border:2px solid var(--line);border-radius:16px;gap:12px;padding:18px;display:grid}.sub-card header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.who{gap:2px;min-width:0;display:grid}.who b{font-size:18px;line-height:1.2}.who small{font:600 12.5px var(--f-mono);color:var(--muted);overflow-wrap:anywhere}.sub-meta{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:14px;display:flex}.sub-meta b{color:var(--ink)}.sub-links{flex-wrap:wrap;gap:6px 14px;font-size:14.5px;font-weight:700;display:flex}.sub-links span{color:var(--muted);font-weight:600}.sub-notes{background:var(--bg);border-left:4px solid var(--soft);overflow-wrap:anywhere;border-radius:8px;margin:0;padding:10px 12px;font-size:15px}.grade-panel{border-top:3px solid var(--soft);padding-top:16px}.empty{background:var(--card);border:2px dashed var(--line);text-align:center;color:var(--muted);border-radius:16px;padding:30px 20px}.empty b{color:var(--ink)}.empty p{margin-top:6px;font-size:14px}.admin-msg{margin-top:16px}.rank-card{background:var(--card);border:2px solid var(--line);box-shadow:4px 4px 0 var(--shadow);border-radius:18px;margin-top:24px;padding:18px 20px}.rank-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;display:flex}.rank-head h2{font-size:clamp(19px,2.6vw,23px);line-height:1.15}.rank-head p{color:var(--muted);margin-top:4px;font-size:14px}.rank-table{border-collapse:separate;border-spacing:8px;table-layout:fixed;width:100%;margin:8px -8px -8px}.rank-table caption{caption-side:top;text-align:left;color:var(--muted);padding:0 8px 4px;font-size:12.5px;font-weight:600}.rank-cell{border:2px solid var(--line);background:var(--bg);vertical-align:middle;border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0;padding:10px 12px;display:flex}.rank-cell.p1{background:var(--butter)}.rank-cell.p2{background:var(--sky)}.rank-cell.p3{background:var(--peach)}.rank-cell.fill-empty{background:0 0;border-style:dashed}.rank-no{border:2px solid var(--line);background:var(--card);width:26px;height:26px;font:800 12px var(--f-mono);border-radius:50%;flex:none;place-items:center;display:grid}.rank-avatar{border:2px solid var(--line);background:var(--mint);width:40px;height:40px;font:800 11px/1 var(--f-mono);border-radius:50%;flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.rank-avatar img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.rank-who{flex:130px;gap:1px;min-width:0;display:grid}.rank-who b{white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:1.2;overflow:hidden}.rank-who small{font:600 12px var(--f-mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rank-score{font:800 18px var(--f-dpy);flex:none;align-items:baseline;gap:2px;display:inline-flex}.rank-score small{font:700 11px var(--f-mono);color:var(--muted)}.rank-empty{color:var(--muted);border:2px dashed var(--line);background:var(--bg);border-radius:12px;padding:14px;font-size:14px}.badge.none{background:var(--soft)}.btn.danger{background:var(--rose)}.table-wrap{border:2px solid var(--line);background:var(--card);box-shadow:4px 4px 0 var(--shadow);overscroll-behavior-x:contain;border-radius:16px;margin-top:18px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:960px;font-size:14px}.data-table th{background:var(--sky);text-align:left;font:700 11px/1.25 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--line);white-space:nowrap;padding:11px 12px;position:sticky;top:0}.data-table td{border-bottom:2px solid var(--soft);vertical-align:top;overflow-wrap:anywhere;padding:12px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bg)}.data-table .col-no{width:44px;font:800 13px var(--f-mono);color:var(--muted);text-align:center}.data-table .col-who{min-width:170px}.data-table .who-cell b{font-size:15px;line-height:1.25;display:block}.data-table .who-cell small{font:600 12px var(--f-mono);color:var(--muted);margin-top:2px;display:block}.data-table .who-cell .badge{margin-top:7px;padding:5px 7px;font-size:10px}.data-table .col-progress{min-width:120px}.prog-track{border:2px solid var(--line);background:var(--bg);border-radius:999px;height:8px;margin-bottom:5px;display:block;overflow:hidden}.prog-track i{background:var(--mint);border-right:2px solid var(--line);height:100%;display:block}.data-table small.tbl-sub{font:600 11.5px var(--f-mono);color:var(--muted);display:block}.score-val{font:800 16px var(--f-dpy)}.tbl-link{word-break:break-all;font-size:13px;font-weight:700}.tbl-none{color:var(--muted);font-size:13px}.act-row{flex-direction:column;gap:7px;min-width:150px;display:flex}.act-row .btn{width:100%}@media (width<=520px){.rank-table{border-spacing:6px;margin:6px -6px -6px}.rank-table caption{padding:0 6px 2px}.rank-cell{padding:9px 10px}.rank-who b{font-size:14px}.rank-score{font-size:16px}}body.modal-open{overflow:hidden}.modal{z-index:300;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal[hidden]{display:none}.modal-back{background:#18162285;position:absolute;inset:0}.modal-panel{z-index:1;overscroll-behavior:contain;background:var(--card);border:2px solid var(--line);width:min(760px,100%);max-height:min(88vh,920px);box-shadow:8px 8px 0 var(--shadow);border-radius:22px;outline:none;position:relative;overflow:auto}.modal-panel:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.modal-head{z-index:2;background:var(--card);border-bottom:3px solid var(--soft);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex;position:sticky;top:0}.modal-head h2{overflow-wrap:anywhere;margin-top:2px;font-size:clamp(20px,3vw,25px);line-height:1.12}.modal-head p{color:var(--muted);overflow-wrap:anywhere;margin-top:3px;font-size:13.5px}.modal-x{border:2px solid var(--line);background:var(--bg);width:38px;height:38px;color:var(--ink);font:800 22px/1 var(--f-body);box-shadow:2px 2px 0 var(--shadow);cursor:pointer;border-radius:10px;flex:none;place-items:center;display:grid}.modal-x:hover{background:var(--rose)}.modal-x:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.modal-body{gap:14px;padding:16px 20px 22px;display:grid}.modal-summary{border:2px solid var(--line);background:var(--sky);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;padding:12px 14px;display:grid}.modal-summary span{gap:3px;min-width:0;display:grid}.modal-summary small{font:700 11px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.modal-summary b{overflow-wrap:anywhere;font-size:14.5px;line-height:1.25}.modal-body .rubric-box{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.modal-body .rubric-box h3{display:none}@media (width<=520px){.modal{padding:8px}.modal-panel{border-radius:16px;max-height:94vh}.modal-head{padding:14px 14px 12px}.modal-body{padding:12px 14px 18px}.rank-card{padding:15px 16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.shell{min-height:100vh;padding-bottom:30px}.shell>.topbar{width:100%;max-width:1440px;margin:0 auto}.shell-main{width:100%}.shell-footer{max-width:1440px;color:var(--muted);margin:0 auto;padding:34px 16px 20px;font-size:13.5px;line-height:1.5}.shell-nav{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.navlink{color:var(--ink);white-space:nowrap;border:2px solid #0000;border-radius:10px;padding:9px 12px;font-size:14.5px;font-weight:700;text-decoration:none}.navlink:hover{background:var(--soft)}.navlink.active{background:var(--card);border-color:var(--line);box-shadow:2px 2px 0 var(--shadow)}.role-badge{font:700 10.5px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;border:2px solid var(--line);background:var(--mint);white-space:nowrap;border-radius:999px;align-items:center;padding:8px 9px;display:inline-flex}.role-badge.admin{background:var(--lilac)}.role-badge.trainer{background:var(--butter)}.role-badge.user{background:var(--mint)}.badge.role-admin{background:var(--lilac)}.badge.role-trainer{background:var(--butter)}.badge.role-user,.badge.badge-active{background:var(--mint)}.badge.badge-inactive{background:var(--peach)}.badge.provider-google{background:var(--sky)}.badge.provider-local{background:var(--soft)}.profile-menu{position:relative}.profile-trigger{background:var(--mint);border-radius:50%;justify-content:center;align-items:center;width:44px;max-width:none;height:44px;padding:5px;display:inline-flex;overflow:hidden}.profile-avatar{border:1.5px solid var(--line);background:var(--card);width:30px;height:30px;font:800 10px/1 var(--f-mono);border-radius:50%;flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.profile-avatar img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.profile-drop{z-index:80;background:var(--card);border:2px solid var(--line);min-width:228px;box-shadow:6px 6px 0 var(--shadow);border-radius:14px;gap:3px;padding:8px;display:grid;position:absolute;top:calc(100% + 9px);right:0}.profile-drop-head{border-bottom:2px solid var(--soft);gap:2px;padding:8px 10px 10px;display:grid}.profile-drop-head b{overflow-wrap:anywhere;font-size:14px;line-height:1.25}.profile-drop-head small{font:600 11px/1.35 var(--f-mono);color:var(--muted);overflow-wrap:anywhere}.profile-item{width:100%;color:var(--ink);font:700 14px/1.2 var(--f-sans,inherit);text-align:left;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:9px;padding:9px 10px;text-decoration:none;display:block}.profile-item:hover{background:var(--soft)}.profile-item.active{background:var(--sky);border-color:var(--line)}.profile-item.danger{font-weight:800}.profile-item.danger:hover{background:var(--peach)}.profile-sep{background:var(--soft);height:2px;margin:4px 2px;display:block}.profile-panel{margin-top:20px}.profile-panel .sub-form{margin-top:4px}.profile-panel .sub-form .field{margin-top:12px}.profile-photo-editor{border:2px solid var(--soft);background:var(--bg);border-radius:14px;align-items:center;gap:clamp(16px,3vw,26px);padding:16px;display:flex}.profile-photo-preview{aspect-ratio:1;border:3px solid var(--line);background:var(--mint);width:clamp(88px,12vw,124px);box-shadow:4px 4px 0 var(--shadow);font:800 clamp(24px, 5vw, 38px)/1 var(--f-mono);border-radius:50%;flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.profile-photo-preview img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.profile-photo-copy{gap:7px;min-width:0;display:grid}.profile-photo-copy>b{font:800 18px/1.2 var(--f-dpy)}.profile-photo-copy p,.profile-photo-copy small{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.profile-photo-input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.auth-divider{color:var(--muted);font:600 11px/1 var(--f-mono,ui-monospace);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:12px;margin:18px 0 14px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--soft);flex:1;height:1px}.google-wrap{justify-content:center;min-height:44px;display:flex}.google-wrap[disabled=true]{opacity:.55;pointer-events:none}.form-note{color:var(--muted);text-align:center;margin:10px 0 0;font-size:.78rem}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:20px;margin-top:24px;display:grid}.panel-card{background:var(--card);border:2px solid var(--line);box-shadow:4px 4px 0 var(--shadow);border-radius:18px;align-content:start;gap:14px;min-width:0;margin-top:24px;padding:20px;display:grid}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-head h2{font-size:clamp(20px,2.6vw,25px);line-height:1.15}.panel-head p{color:var(--muted);max-width:68ch;margin-top:4px;font-size:14px}.panel-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.panel-title-row h3{font-size:16.5px;line-height:1.25}.toolbar-tight{margin-top:2px}.session-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:16px;margin-top:4px;display:grid}.session-card{background:var(--card);border:2px solid var(--line);border-radius:16px;align-content:start;gap:12px;min-width:0;padding:18px;display:grid}.session-card header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.session-card h3{font-size:19px;line-height:1.22}.session-loc{font:600 12.5px/1.4 var(--f-mono);color:var(--muted);overflow-wrap:anywhere;margin-top:3px}.session-facts{gap:8px;display:grid}.session-facts>div{gap:2px;min-width:0;display:grid}.session-facts small,.session-stats small,.session-row-stats small{font:700 10.5px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.session-facts b{overflow-wrap:anywhere;font-size:13.5px;line-height:1.35}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{font:700 11.5px/1.2 var(--f-mono);border:2px solid var(--line);background:var(--soft);overflow-wrap:anywhere;border-radius:999px;align-items:center;max-width:100%;padding:6px 8px;display:inline-flex}.chip.trainer{background:var(--butter)}.chip.muted{color:var(--muted);background:0 0;border-style:dashed}.participant-line{color:var(--muted);overflow-wrap:anywhere;font-size:12.8px;line-height:1.5}.participant-line b{color:var(--ink)}.session-stats{border:2px solid var(--soft);background:var(--bg);border-radius:12px;flex-wrap:wrap;gap:12px 20px;padding:10px 12px;display:flex}.session-stats>div{gap:2px;min-width:64px;display:grid}.session-stats b{font:800 18px/1 var(--f-dpy)}.session-meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:5px;font-size:13px;line-height:1.4;display:flex}.session-row{border:2px solid var(--soft);background:var(--bg);border-radius:14px;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:12px 14px;display:flex}.session-row-main{flex:260px;min-width:220px}.session-row-stats{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.session-row-stats>div{gap:2px;display:grid}.session-row-stats b{font:800 19px/1 var(--f-dpy)}.session-stack{gap:10px;display:grid}.pending-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pending-list li{border:2px solid var(--soft);background:var(--bg);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.pending-list li>div{gap:2px;min-width:0;display:grid}.pending-list b{font-size:14px}.pending-list small,.pending-list li>span{font:600 11.5px/1.3 var(--f-mono);color:var(--muted)}.session-description{color:var(--muted);max-width:78ch;font-size:14px}.progress-block{gap:5px;display:grid}.progress-label{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:12.5px;display:flex}.progress-label b{color:var(--ink);font:700 11.5px/1.3 var(--f-mono)}.session-score{color:var(--muted);border:2px solid var(--soft);background:var(--mint);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.session-score b{font:800 20px/1 var(--f-dpy);color:var(--ink)}.result-stack{gap:16px;display:grid}.result-card{border:2px solid var(--line);background:var(--card);border-radius:16px;gap:14px;padding:20px;display:grid}.result-card header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.result-card h3{font-size:21px;line-height:1.2}.result-card header p{color:var(--muted);margin-top:4px;font-size:13.5px}.result-score{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px;display:flex}.result-score strong{font:800 32px/1 var(--f-dpy)}.result-score small{font:700 11px var(--f-mono);color:var(--muted)}.result-score .badge{margin-left:6px}.rubric-review{border:2px solid var(--soft);border-radius:12px;grid-template-columns:1fr;display:grid;overflow:hidden}.rubric-review-row{border-bottom:1px solid var(--soft);background:var(--bg);justify-content:space-between;align-items:center;gap:14px;padding:9px 12px;font-size:13.5px;display:flex}.rubric-review-row:last-child{border-bottom:0}.rubric-review-row span{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.rubric-review-row small{font:700 10.5px/1.2 var(--f-mono);color:var(--accent)}.rubric-review-row b{font:700 13px/1 var(--f-mono);white-space:nowrap}.certificate-note{color:var(--muted);background:var(--butter);border:2px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45;display:inline-block}.hint-inline{color:var(--muted);font-size:12.5px}.assign-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.assign-box{border:2px solid var(--line);background:var(--bg);border-radius:14px;gap:8px;min-width:0;padding:12px;display:grid}.assign-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.assign-head>div:first-child{gap:2px;display:grid}.assign-head b{font-size:14px}.assign-head small{font:600 11.5px/1.2 var(--f-mono);color:var(--muted)}.mini-actions{flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.checklist{overscroll-behavior:contain;gap:6px;max-height:220px;padding-right:4px;display:grid;overflow:auto}.check-item{border:1.5px solid var(--soft);background:var(--card);cursor:pointer;border-radius:10px;align-items:flex-start;gap:9px;padding:8px 9px;display:flex}.check-item:hover{border-color:var(--accent)}.check-item input{accent-color:var(--accent);margin-top:3px}.check-item span{gap:1px;min-width:0;display:grid}.check-item b{overflow-wrap:anywhere;font-size:13.5px;line-height:1.25}.check-item small{font:600 11px/1.35 var(--f-mono);color:var(--muted);overflow-wrap:anywhere}.loading-screen{background:var(--bg);place-items:center;min-height:100vh;padding:20px;display:grid}.loading-card{background:var(--card);border:2px solid var(--line);width:min(430px,100%);box-shadow:6px 6px 0 var(--shadow);text-align:center;border-radius:18px;padding:26px}.loading-card b{font:800 22px/1.2 var(--f-dpy)}.loading-card p{color:var(--muted);margin-top:7px;font-size:14px}.lab-message{margin-top:20px}.flow-item{align-items:center;gap:9px;display:inline-flex}.lab-app{min-height:100vh}.lab-app .wrap{padding-bottom:110px}.lab-app .appbar{max-width:1440px;margin:0 auto}.lab-app .head,.lab-app .grid,.lab-app footer{max-width:1440px;margin-left:auto;margin-right:auto}.lab-app footer{margin-top:60px}.lab-app .out>div{min-height:1.2em}@media (width<=1000px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.assign-grid{grid-template-columns:1fr}.shell>.topbar{flex-wrap:wrap;align-items:flex-start;gap:8px 12px}.shell-nav{order:3;width:100%;padding-bottom:3px;overflow-x:auto}.topnav{gap:6px}.role-badge{display:none}.profile-drop{width:auto;min-width:0;position:fixed;top:auto;left:10px;right:10px}.userchip{display:none}.result-score{justify-content:flex-start}.toolbar .field,.toolbar .field.status{flex:100%}}@media (width<=560px){.lab-app .ab-title{display:none}}@media (width<=520px){.session-card,.panel-card,.result-card{padding:15px}.session-grid{grid-template-columns:minmax(0,1fr)}}img,svg,video,canvas{max-width:100%}.shell,.land,.auth,.lab-app,.shell-main,.admin,.panel-card,.result-card{min-width:0}.shell-nav:empty{display:none}.brand{min-width:0;color:var(--ink);text-decoration:none}.topbar,.appbar,.topnav,.ab-right{min-width:0}.land-grid,.steps3,.stat-grid,.session-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.field input,.field select,.field textarea,.btn{max-width:100%}@media (width<=1180px){.shell>.topbar,.shell-footer,.admin,.land,.lab-app .appbar,.lab-app .head,.lab-app .grid,.lab-app footer{max-width:100%}.dashboard-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.head{border-radius:20px;padding:clamp(20px,4.5vw,32px)}.head h1{font-size:clamp(32px,7vw,50px)}.head .lead{font-size:clamp(16px,2.4vw,19px)}.session-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.rank-table{table-layout:auto}.rank-cell{align-items:flex-start}.shell>.topbar,.land>.topbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding-block:9px;display:grid;position:sticky}.shell-nav{order:initial;overscroll-behavior-x:contain;scrollbar-width:thin;flex-wrap:nowrap;grid-area:2/1/auto/-1;width:100%;padding:2px 1px 5px;overflow-x:auto}.shell-nav .navlink{flex:none}.topnav{flex-wrap:nowrap;grid-area:1/2;margin-left:0}.shell>.topbar>.brand{grid-area:1/1}.role-badge{display:none}.brand{overflow-wrap:anywhere;font-size:clamp(14px,4vw,17px)}.brand .dot{width:34px;height:34px}.land .brand .dot{width:42px}.profile-drop{top:calc(env(safe-area-inset-top,0px) + 62px);right:max(10px, env(safe-area-inset-right,0px));left:max(10px, env(safe-area-inset-left,0px));width:auto;max-height:calc(100dvh - 76px);position:fixed;overflow-y:auto}.head{margin-top:14px}.head .flow{overscroll-behavior-x:contain;scrollbar-width:thin;flex-wrap:nowrap;padding:3px 2px 9px;overflow-x:auto}.head .flow-item{flex:none}.land-grid{grid-template-columns:minmax(0,1fr)}.land-sec{margin-top:32px}.steps3{grid-template-columns:minmax(0,1fr)}.cta-row .btn{flex:180px}.admin-head{margin-top:20px}.admin-head h1{font-size:clamp(26px,8vw,36px)}.admin-head p{font-size:15px}.panel-card,.rank-card,.result-card{border-radius:15px;margin-top:18px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-width:0;padding:12px}.stat span,.stat strong{overflow-wrap:anywhere}.toolbar{margin-top:20px}.toolbar .field,.toolbar .field.status{flex:100%}.session-row-main{min-width:0}.session-row-stats{justify-content:space-between;width:100%}.result-card header,.panel-head{grid-template-columns:minmax(0,1fr);display:grid}.result-score{justify-content:flex-start}.result-score .badge{margin-left:0}.assign-grid{grid-template-columns:minmax(0,1fr)}.table-wrap{box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.data-table{width:100%;display:block;min-width:0!important}.data-table thead{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.data-table tbody{gap:12px;display:grid}.data-table tbody tr{border:2px solid var(--line);background:var(--card);box-shadow:3px 3px 0 var(--shadow);border-radius:14px;padding:7px 12px;display:grid}.data-table td,.data-table .col-no{border-bottom:1.5px solid var(--soft);text-align:left;grid-template-columns:minmax(105px,34%) minmax(0,1fr);align-items:start;gap:10px;width:auto;min-width:0;padding:9px 0;display:grid}.data-table td:last-child{border-bottom:0}.data-table td:before{content:attr(data-label);font:700 10.5px/1.35 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.data-table tbody tr:hover td{background:0 0}.data-table .act-row{width:100%;min-width:0}.data-table .who-cell .badge{width:fit-content}.rank-table{width:100%;min-width:0;margin:8px 0 0;display:block}.rank-table caption{padding:0 0 6px;display:block}.rank-table tbody{gap:8px;display:grid}.rank-table tr{display:contents}.rank-table .rank-cell{width:100%;margin:0;display:flex}.rank-table .fill-empty{display:none}.rank-table .rank-empty{width:100%;display:block}.rubric-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.rubric-input{width:82px}}@media (width<=480px){.shell>.topbar,.land>.topbar{gap:6px}.land .brand{font-size:13px;line-height:1.2}.ab-btn{width:38px;height:38px}.role-badge{display:none}.profile-trigger{border-radius:50%;width:42px;max-width:none;height:42px;padding:5px}.profile-avatar{border:0;width:28px;height:28px}.navlink{padding:8px 10px;font-size:13px}.head{box-shadow:3px 3px 0 var(--shadow);border-radius:16px;padding:18px 16px}.head h1{font-size:clamp(29px,10vw,38px)}.eyebrow{font-size:11px}.flow .node{padding:8px 10px;font-size:13px}.flow .ar svg{width:24px}.cta-row,.actions-row{align-items:stretch}.cta-row .btn,.actions-row>.btn{width:100%}.feat,.s3{padding:16px}.auth{min-height:100dvh;padding-top:12px;display:block}.auth-card{width:calc(100% - 5px);box-shadow:4px 4px 0 var(--shadow);border-radius:16px;padding:17px 15px}.auth-head h1{font-size:clamp(24px,8vw,29px)}.tabs button{font-size:13px}.google-wrap>div,.google-wrap iframe{max-width:100%!important}.admin-head{margin-top:16px}.stat-grid{gap:9px}.stat strong{font-size:23px}.panel-card,.session-card,.result-card,.rank-card,.submit-box,.rubric-box{padding:14px}.profile-photo-editor{text-align:center;justify-items:center;padding:16px 12px;display:grid}.profile-photo-copy .actions-row{justify-content:center}.session-row{padding:11px}.session-row-stats{gap:10px}.session-row-stats>div{flex:28%}.pending-list li,.rubric-review-row{align-items:flex-start}.rubric-review-row span{min-width:0}.modal{padding:6px}.modal-panel{border-radius:14px;max-height:calc(100dvh - 12px)}.modal-head,.modal-body{padding:12px}.fab{border-radius:16px;justify-content:center;width:calc(100vw - 16px)}.fab label{flex:1 1 0;min-width:0}.fab select{width:100%;min-width:0;max-width:none}.code pre{padding:48px 12px 12px;font-size:13px}.code .copy{left:8px;right:auto}}@media (width<=370px){.brand{font-size:13px}.brand .dot{width:32px;height:32px}.profile-trigger{width:40px;height:40px}.stat-grid{grid-template-columns:minmax(0,1fr)}.data-table td,.data-table .col-no{grid-template-columns:minmax(0,1fr);gap:4px}.rubric-row{grid-template-columns:minmax(0,1fr)}.rubric-input{width:100%}}@media (height<=520px) and (orientation:landscape){.auth{padding-block:10px 28px;display:block}.profile-drop{max-height:calc(100dvh - 60px)}.modal-panel{max-height:calc(100dvh - 12px)}}
