:root{--bg:#f3f5f8;--surface:#ffffff;--surface-2:#eceff4;--surface-3:#e2e7ee;--border:#d8dee7;--border-strong:#b9c3d1;--text:#172133;--muted:#5a6577;--faint:#8a94a5;--accent:#2b59c3;--accent-hover:#234aa6;--accent-ink:#ffffff;--accent-soft:#e5ecfa;--accent-line:#a9bdea;--good:#17845a;--good-soft:#e2f3eb;--warn:#a96a12;--warn-soft:#fbf0dc;--bad:#c03b34;--bad-soft:#fbe7e5;--shadow:0 1px 2px rgba(23,33,51,.06),0 4px 16px rgba(23,33,51,.06);--shadow-lg:0 12px 40px rgba(23,33,51,.18);--font-body:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"Bricolage Grotesque","Instrument Sans",ui-sans-serif,system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--r:8px;--r-lg:12px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e131a;--surface:#151c26;--surface-2:#1b2430;--surface-3:#232e3c;--border:#2a3646;--border-strong:#3b4a5e;--text:#e5eaf1;--muted:#9aa5b5;--faint:#6f7b8c;--accent:#7aa0ff;--accent-hover:#93b3ff;--accent-ink:#0b1220;--accent-soft:#1a2846;--accent-line:#34508f;--good:#4cc38a;--good-soft:#143326;--warn:#e3ab52;--warn-soft:#3a2c14;--bad:#f07a72;--bad-soft:#3d1c1a;--shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25);--shadow-lg:0 12px 40px rgba(0,0,0,.5);color-scheme:dark}}:root[data-theme=dark]{--bg:#0e131a;--surface:#151c26;--surface-2:#1b2430;--surface-3:#232e3c;--border:#2a3646;--border-strong:#3b4a5e;--text:#e5eaf1;--muted:#9aa5b5;--faint:#6f7b8c;--accent:#7aa0ff;--accent-hover:#93b3ff;--accent-ink:#0b1220;--accent-soft:#1a2846;--accent-line:#34508f;--good:#4cc38a;--good-soft:#143326;--warn:#e3ab52;--warn-soft:#3a2c14;--bad:#f07a72;--bad-soft:#3d1c1a;--shadow:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25);--shadow-lg:0 12px 40px rgba(0,0,0,.5);color-scheme:dark}body,html{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font-body);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:60;background:var(--surface)}#root{height:100%}*{box-sizing:border-box}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-display);margin:0;text-wrap:balance;letter-spacing:-.01em}h1{font-size:26px}h1,h2{font-weight:650}h2{font-size:19px}h3{font-size:15px;font-weight:650}p{margin:0}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--font-mono);font-size:12.5px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12.5px}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:8px}.grow{flex:1 1;min-width:0}.between{justify-content:space-between}.label{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.app{height:100%;display:grid;grid-template-rows:auto 1fr}.topbar{position:sticky;top:env(safe-area-inset-top,0);z-index:30;gap:12px;min-height:56px;padding-block:8px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-family:var(--font-display);font-weight:700;font-size:16px;background:none;border:0;padding:0;cursor:pointer}.brand-mark{width:28px;height:28px;border-radius:7px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center}.tag{font:600 10.5px/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;border-radius:4px;background:var(--surface-2)}.crumb,.tag{color:var(--muted)}.crumb{display:flex;align-items:center;gap:6px;min-width:0}.crumb input{border:1px solid transparent;background:transparent;font-weight:600;color:var(--text);padding:4px 6px;border-radius:6px;width:clamp(140px,18vw,280px);text-overflow:ellipsis}.crumb input:hover{border-color:var(--border)}.crumb input:focus{border-color:var(--accent);outline:none;background:var(--surface)}.tasktabs{display:flex;gap:2px;background:var(--surface-2);padding:3px;border-radius:10px;margin-inline:auto}.tasktab{display:flex;align-items:center;gap:7px;border:0;background:transparent;padding:7px 14px;border-radius:8px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.tasktab .num{font:600 11px/1 var(--font-mono);width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);color:var(--muted)}.tasktab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.tasktab[aria-selected=true] .num{background:var(--accent);color:var(--accent-ink)}.tasktab .count{font:600 11px/1 var(--font-body);padding:3px 6px;border-radius:10px;background:var(--warn-soft);color:var(--warn)}.topbar.editing .proto,.topbar.editing .role-lbl{display:none}@media (min-width:901px){.topbar{flex-wrap:nowrap}.topbar.editing .brand-name{display:none}}.topbar .seg{flex-wrap:nowrap}.brand,.crumb,.tasktab{white-space:nowrap}@media (max-width:1320px){.topbar .crumb .pill.warn{display:none}}.saved{font-size:12px;color:var(--faint);display:flex;align-items:center;gap:5px;white-space:nowrap}.main{min-height:0;overflow:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 12px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover:not(:disabled){background:var(--surface-2);border-color:transparent}.btn.danger{color:var(--bad)}.btn.sm{height:28px;padding:0 9px;font-size:12.5px}.btn.icon{width:34px;padding:0}.btn.sm.icon{width:28px}.btn.good{background:var(--good);border-color:var(--good);color:#fff}.input,.select,.textarea{width:100%;border:1px solid var(--border);background:var(--surface);border-radius:var(--r);padding:7px 10px;min-height:34px}.textarea{resize:vertical;min-height:72px;line-height:1.45}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:13px}.field-label .hint{font-weight:400;color:var(--muted);font-size:12px}.seg{background:var(--surface-2);border-radius:var(--r);padding:3px;gap:2px;flex-wrap:wrap}.seg,.seg button{display:inline-flex}.seg button{border:0;background:transparent;padding:5px 10px;border-radius:6px;font-weight:600;font-size:12.5px;color:var(--muted);cursor:pointer;align-items:center;gap:6px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.switch{position:relative;width:36px;height:20px;flex:none;border-radius:20px;background:var(--surface-3);border:0;cursor:pointer;transition:background .15s;padding:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translateX(16px)}.switch:disabled{opacity:.45;cursor:not-allowed}.toggle-row{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.toggle-row:last-child{border-bottom:0}.toggle-row .t{font-weight:600}.toggle-row .d{color:var(--muted);font-size:12.5px;margin-top:2px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:20px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.accent{background:var(--accent-soft);color:var(--accent)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.pad{padding:16px}.page{max-width:1180px;margin:0 auto;padding-block:24px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.notice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r);background:var(--accent-soft);color:var(--text);font-size:13px}.notice.warn{background:var(--warn-soft)}.notice.bad{background:var(--bad-soft)}.notice.good{background:var(--good-soft)}.notice svg{flex:none;margin-top:2px}.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.start-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:28px}.start-card{text-align:left;display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:var(--r-lg);border:1px dashed var(--border-strong);background:transparent;cursor:pointer}.start-card:hover{border-color:var(--accent);background:var(--accent-soft)}.start-card .ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--accent)}.form-list{display:grid;gap:10px}.form-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%}.form-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.form-row .swatch{width:40px;height:40px;border-radius:9px;flex:none;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:15px}.stats{display:flex;gap:20px;align-items:center}.stat{text-align:right}.stat b{display:block;font:650 17px/1.1 var(--font-display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat span{font-size:11.5px;color:var(--muted)}.builder{display:grid;grid-template-columns:240px minmax(0,1fr) 330px;height:100%;min-height:0}.palette,.props{background:var(--surface);overflow:auto;min-height:0}.palette{border-right:1px solid var(--border);padding:14px 12px 24px}.props{border-left:1px solid var(--border)}.palette-group{margin-bottom:16px}.palette-group .label{padding:0 4px 6px}.palette-grid{display:grid;grid-template-columns:1fr;gap:4px}.pal-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:var(--r);border:1px solid transparent;background:transparent;cursor:grab;text-align:left;font-weight:500;width:100%}.pal-item:hover{background:var(--surface-2);border-color:var(--border)}.pal-item:active{cursor:grabbing}.pal-item .ic{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted);flex:none}.pal-item:hover .ic{background:var(--accent-soft);color:var(--accent)}.canvas-wrap{overflow:auto;min-height:0;padding:24px max(16px,env(safe-area-inset-right,0px)) 80px max(16px,env(safe-area-inset-left,0px))}.canvas-tools{max-width:760px;margin:0 auto 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.canvas{max-width:760px;margin:0 auto}.canvas-head{padding:22px 24px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);border-top:6px solid var(--accent);margin-bottom:10px}.canvas-head input,.canvas-head textarea{width:100%;border:1px solid transparent;background:transparent;border-radius:6px;padding:4px 6px;margin-left:-6px;resize:none}.canvas-head input{font:650 24px/1.2 var(--font-display)}.canvas-head textarea{color:var(--muted);min-height:0}.canvas-head input:hover,.canvas-head textarea:hover{border-color:var(--border)}.canvas-head input:focus,.canvas-head textarea:focus{outline:none;border-color:var(--accent);background:var(--surface)}.drop-list{display:flex;flex-direction:column;gap:0;min-height:120px;padding-bottom:8px}.drop-gap{height:10px;position:relative}.drop-gap.on:after{content:"";position:absolute;left:0;right:0;top:3px;height:4px;border-radius:4px;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.empty-drop{border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:40px 20px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px}.empty-drop.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.fcard{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px 16px 30px;transition:border-color .12s,box-shadow .12s}.fcard:hover{border-color:var(--border-strong)}.fcard.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.fcard.dragging{opacity:.4}.fcard .grip{position:absolute;left:6px;top:50%;transform:translateY(-50%);color:var(--faint);cursor:grab;padding:4px 2px;border:0;background:none}.fcard .tools{position:absolute;top:-15px;right:12px;display:none;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px;box-shadow:var(--shadow)}.fcard.sel .tools,.fcard:focus-within .tools,.fcard:hover .tools{display:flex}.fcard .badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.fcard .badges:empty{display:none}.inline-label{width:100%;border:1px solid transparent;background:transparent;font-weight:600;font-size:15px;padding:3px 6px;margin-left:-6px;border-radius:6px;resize:none;overflow:hidden;line-height:1.35}.inline-label:hover{border-color:var(--border)}.inline-label:focus{outline:none;border-color:var(--accent);background:var(--surface)}.inline-label.heading{font:650 20px/1.25 var(--font-display)}.inline-label.para{font-weight:400;font-size:14px;color:var(--muted)}.req{color:var(--bad);margin-left:2px}.opt-row{display:flex;align-items:center;gap:8px;padding:2px 0}.opt-row input[type=text]{flex:1 1;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:6px;min-width:0}.opt-row input[type=text]:hover{border-color:var(--border)}.opt-row input[type=text]:focus{outline:none;border-color:var(--accent)}.opt-row .x{opacity:0}.opt-row:focus-within .x,.opt-row:hover .x{opacity:1}.mark{width:16px;height:16px;border:1.5px solid var(--border-strong);flex:none;background:transparent;padding:0}button.mark{cursor:pointer}button.mark:hover{border-color:var(--good)}.mark.radio{border-radius:50%}.mark.check{border-radius:4px}.mark.correct{border-color:var(--good);background:var(--good);box-shadow:inset 0 0 0 3px var(--surface)}.fake-input{border:1px solid var(--border);border-radius:var(--r);padding:8px 10px;color:var(--faint);background:var(--bg)}.fake-input.tall{min-height:76px}.pagebreak{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:600;font-size:12.5px}.pagebreak:after,.pagebreak:before{content:"";flex:1 1;border-top:2px dashed var(--border-strong)}.props-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:2}.props-body{padding:16px;gap:16px}.props-body,.props-section{display:flex;flex-direction:column}.props-section{gap:10px;padding-bottom:16px;border-bottom:1px solid var(--border)}.props-section:last-child{border-bottom:0}.props-empty{padding:32px 20px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:8px;align-items:center}.rubric-row{display:grid;grid-template-columns:1fr 64px auto;gap:6px;align-items:start}.rubric-row .textarea{grid-column:1/-1;min-height:48px;font-size:12.5px}.mobile-only{display:none}.split{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}.sidenav{display:flex;flex-direction:column;gap:2px;position:sticky;top:16px}.sidenav button{display:flex;align-items:center;gap:10px;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:var(--r);font-weight:600;color:var(--muted);cursor:pointer}.sidenav button:hover{background:var(--surface-2)}.sidenav button[aria-current=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.sidenav .cnt{margin-left:auto;font-size:11px;color:var(--faint)}.panel-title{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.rule{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.rule.bad{border-color:var(--bad)}.rule-editor{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rule-editor .input,.rule-editor .select{width:auto;min-width:0;max-width:100%}.word{font-weight:600;color:var(--muted);font-size:13px}.qgrade{padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);display:flex;flex-direction:column;gap:10px}.pub-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.linkbox{display:flex;gap:6px;align-items:center;border:1px solid var(--border);border-radius:var(--r);padding:4px 4px 4px 10px;background:var(--bg)}.linkbox code{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12.5px}.qr{width:156px;height:156px;background:#fff;border-radius:8px;padding:8px;border:1px solid var(--border);display:grid;place-items:center}.qr img,.qr svg{width:100%;height:100%;image-rendering:pixelated}.theme-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.theme-sw{border:2px solid var(--border);border-radius:var(--r);padding:8px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}.theme-sw[aria-pressed=true]{border-color:var(--accent)}.theme-sw .bar{height:30px;border-radius:5px;display:flex;align-items:flex-end;padding:4px}.theme-sw .bar i{display:block;width:60%;height:10px;border-radius:3px}.status-seg button{min-width:84px;justify-content:center}.embed-frame{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;height:380px}.fill{--f-accent:#2b59c3;--f-bg:#eef2f8;--f-card:#fff;--f-ink:#17202e;--f-font:var(--font-body);background:var(--f-bg);color:var(--f-ink);font-family:var(--f-font);min-height:100%;padding:24px max(16px,env(safe-area-inset-right,0px)) 64px max(16px,env(safe-area-inset-left,0px))}.fill-inner{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.fill-card{background:var(--f-card);border-radius:12px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--f-ink) 12%,transparent)}.fill-card.head{border-top:8px solid var(--f-accent)}.fill-card h1{font-family:var(--f-font);font-size:26px}.fill .muted{color:color-mix(in srgb,var(--f-ink) 62%,transparent)}.fill .q{font-weight:600;font-size:15.5px;margin-bottom:4px}.fill .help{font-size:13px;color:color-mix(in srgb,var(--f-ink) 62%,transparent);margin-bottom:10px}.fill .err{color:#c03b34;font-size:13px;margin-top:8px;font-weight:600}.fill .fill-card.has-err{border-color:#c03b34}.fill .in{width:100%;border:1px solid color-mix(in srgb,var(--f-ink) 22%,transparent);background:color-mix(in srgb,var(--f-card) 92%,var(--f-ink));color:var(--f-ink);border-radius:8px;padding:10px 12px;min-height:42px;font:inherit}.fill textarea.in{min-height:120px;resize:vertical}.fill .in:focus{outline:none;border-color:var(--f-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--f-accent) 25%,transparent)}.fill .choice{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;border:1px solid color-mix(in srgb,var(--f-ink) 14%,transparent);cursor:pointer;margin-top:6px;min-height:44px}.fill .choice.on,.fill .choice:hover{border-color:var(--f-accent)}.fill .choice.on{background:color-mix(in srgb,var(--f-accent) 10%,var(--f-card))}.fill .choice input{accent-color:var(--f-accent);width:18px;height:18px;margin:0}.fill .rating{display:flex;gap:8px;flex-wrap:wrap}.fill .rating button{width:46px;height:46px;border-radius:10px;border:1px solid color-mix(in srgb,var(--f-ink) 18%,transparent);background:transparent;color:var(--f-ink);font-weight:700;font-size:16px;cursor:pointer}.fill .rating button.on{background:var(--f-accent);border-color:var(--f-accent);color:#fff}.fill .matrix{width:100%;border-collapse:collapse;font-size:13.5px}.fill .matrix td,.fill .matrix th{padding:8px 6px;text-align:center;border-bottom:1px solid color-mix(in srgb,var(--f-ink) 10%,transparent)}.fill .matrix td:first-child,.fill .matrix th:first-child{text-align:left}.fill .matrix input{accent-color:var(--f-accent);width:18px;height:18px}.fill .btnf{height:44px;padding:0 20px;border-radius:10px;border:0;background:var(--f-accent);color:#fff;font-weight:700;cursor:pointer;font-family:inherit}.fill .btnf.sec{background:transparent;color:var(--f-ink);border:1px solid color-mix(in srgb,var(--f-ink) 20%,transparent)}.fill .progress{height:6px;border-radius:6px;background:color-mix(in srgb,var(--f-ink) 10%,transparent);overflow:hidden}.fill .progress i{display:block;height:100%;background:var(--f-accent);transition:width .2s}.fill .timer{position:sticky;top:8px;z-index:3;align-self:flex-end;background:var(--f-card);border:1px solid color-mix(in srgb,var(--f-ink) 14%,transparent);border-radius:20px;padding:6px 12px;font:600 13px var(--font-mono);display:flex;gap:6px;align-items:center}.fill .timer.low{color:#c03b34;border-color:#c03b34}.fill .section-h{font-size:19px;font-weight:700}.fill .drop{border:2px dashed color-mix(in srgb,var(--f-ink) 22%,transparent);border-radius:10px;padding:20px;text-align:center;cursor:pointer}.fill .eq-prev{margin-top:8px;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,var(--f-ink) 5%,transparent);font-family:Times New Roman,Georgia,serif;font-size:18px;min-height:44px;overflow-x:auto}.fill .logo{max-height:48px;max-width:180px;object-fit:contain;margin-bottom:10px}.fill.font-serif{--f-font:Georgia,"Times New Roman",serif}.fill.font-rounded{--f-font:"Nunito",ui-rounded,"Instrument Sans",system-ui,sans-serif}.fill.font-mono{--f-font:var(--font-mono)}.device-phone{max-width:390px;margin:0 auto;border-radius:28px;border:10px solid #1a1f29;overflow:hidden;height:min(760px,78vh)}.device-phone .fill{height:100%;overflow:auto}.preview-bar{align-items:center;gap:10px;padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));background:var(--surface);flex-wrap:wrap}.preview-bar,.subtabs{display:flex;border-bottom:1px solid var(--border)}.subtabs{gap:4px;margin-bottom:18px;overflow-x:auto}.subtabs button{border:0;background:transparent;padding:10px 12px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;gap:6px;align-items:center}.subtabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}.kpi{padding:14px 16px}.kpi b{display:block;font:650 24px/1.1 var(--font-display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);max-height:70vh}table.data{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}table.data th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-weight:600;padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap;z-index:1}table.data th button{border:0;background:none;font-weight:600;cursor:pointer;padding:0;display:inline-flex;gap:4px;align-items:center}table.data td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:top;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.data tbody tr{cursor:pointer}table.data tbody tr:hover td{background:var(--surface-2)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:minmax(80px,38%) 1fr 64px;gap:10px;align-items:center;font-size:13px}.bar-row .track{height:18px;background:var(--surface-2);border-radius:4px;overflow:hidden}.bar-row .fillbar{height:100%;background:var(--accent);border-radius:4px}.bar-row .fillbar.correct{background:var(--good)}.bar-row .n{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted)}.bar-row .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.histo{align-items:flex-end;height:120px;padding-top:8px}.histo,.histo .col{display:flex;gap:4px}.histo .col{flex:1 1;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.histo .b{width:100%;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}.histo .v,.histo .x{font-size:11px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.review{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.queue{max-height:72vh;overflow:auto;display:flex;flex-direction:column}.queue button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;padding:10px 12px;cursor:pointer}.queue button:hover{background:var(--surface-2)}.queue button[aria-current=true]{background:var(--accent-soft)}.side-by-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.answer-box{white-space:pre-wrap;line-height:1.6;padding:14px;border-radius:var(--r);background:var(--bg);border:1px solid var(--border);font-size:14px}mark{background:color-mix(in srgb,var(--warn) 30%,transparent);color:inherit;border-radius:3px;padding:0 1px}mark.copy{background:color-mix(in srgb,var(--bad) 28%,transparent)}.crit{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--border)}.crit:last-child{border-bottom:0}.crit .j{grid-column:1/-1;font-size:12.5px;color:var(--muted)}.score-in{display:flex;align-items:center;gap:4px}.score-in input{width:66px;text-align:right;padding:6px 8px}.flag-card{display:flex;flex-direction:column;gap:10px}.flag-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px}.overlay{position:fixed;inset:0;background:rgba(10,15,25,.45);z-index:80;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.modal{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);width:min(860px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden}.modal.narrow{width:min(520px,100%)}.modal-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}.modal-body{padding:18px;overflow:auto;display:flex;flex-direction:column;gap:14px}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--border);flex-wrap:wrap}.toast-zone{position:fixed;bottom:max(16px,env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:90;flex-direction:column;pointer-events:none}.toast,.toast-zone{display:flex;gap:8px;align-items:center}.toast{background:var(--text);color:var(--bg);padding:10px 14px;border-radius:10px;box-shadow:var(--shadow-lg);font-weight:600;font-size:13px;max-width:min(520px,92vw);pointer-events:auto}.import-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--r-lg)}.import-row.issue{border-color:var(--warn);background:color-mix(in srgb,var(--warn-soft) 55%,var(--surface))}.import-row.off{opacity:.5}.drop-file{border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}.drop-file.on{border-color:var(--accent);background:var(--accent-soft)}@media (max-width:1080px){.builder{grid-template-columns:200px minmax(0,1fr) 300px}}@media (max-width:900px){.builder{grid-template-columns:minmax(0,1fr)}.palette{position:fixed;inset:auto 0 0 0;max-height:70vh;z-index:70;border-right:0;border-top:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:14px 14px 0 0;transform:translateY(105%);transition:transform .2s;padding-bottom:max(24px,env(safe-area-inset-bottom,0px))}.palette.open{transform:none}.palette-grid{grid-template-columns:1fr 1fr}.props{position:fixed;inset:auto 0 0 0;max-height:78vh;z-index:70;border-left:0;border-top:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:14px 14px 0 0;transform:translateY(105%);transition:transform .2s;padding-bottom:env(safe-area-inset-bottom,0)}.props.open{transform:none}.mobile-only{display:inline-flex}.pub-grid,.review,.side-by-side,.split{grid-template-columns:minmax(0,1fr)}.sidenav{position:static;flex-direction:row;overflow-x:auto}.sidenav button{white-space:nowrap}.tasktabs{order:10;width:100%;margin:0;overflow-x:auto}.tasktab{flex:1 1;justify-content:center;padding:7px 8px}.form-row{grid-template-columns:minmax(0,1fr)}.stats{justify-content:flex-start}.stat{text-align:left}.hide-sm{display:none!important}}@media (max-width:520px){.tasktab .lbl-long{display:none}.crumb input{width:46vw}.bar-row{grid-template-columns:minmax(60px,34%) 1fr 48px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.rte-wrap{border:1px solid color-mix(in srgb,var(--f-ink,var(--text)) 22%,transparent);border-radius:10px;overflow:hidden;background:var(--f-card,var(--surface))}.rte-wrap:focus-within{border-color:var(--f-accent,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--f-accent,var(--accent)) 22%,transparent)}.rte-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border-bottom:1px solid color-mix(in srgb,var(--f-ink,var(--text)) 12%,transparent);background:color-mix(in srgb,var(--f-ink,var(--text)) 4%,var(--f-card,var(--surface)));position:sticky;top:0;z-index:2}.rte-group{display:flex;gap:1px;padding-right:4px;margin-right:2px;border-right:1px solid color-mix(in srgb,var(--f-ink,var(--text)) 12%,transparent)}.rte-group:last-child{border-right:0}.rte-toolbar button{min-width:32px;height:32px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border:0;border-radius:6px;background:transparent;color:var(--f-ink,var(--text));cursor:pointer;font:600 12.5px var(--font-body)}.rte-toolbar button:hover{background:color-mix(in srgb,var(--f-ink,var(--text)) 9%,transparent)}.rte-toolbar button.on{background:color-mix(in srgb,var(--f-accent,var(--accent)) 18%,transparent);color:var(--f-accent,var(--accent))}.rte-page{position:relative}.rte{min-height:180px;padding:14px 16px;outline:none;line-height:1.6;font-size:15px;color:var(--f-ink,var(--text));overflow-wrap:anywhere}.rte p{margin:0 0 8px}.rte h2{font-size:18px;margin:8px 0}.rte ol,.rte ul{margin:0 0 8px;padding-left:28px}.rte blockquote{margin:0 0 8px 32px}.rte .hanging{padding-left:.5in;text-indent:-.5in}.rte-placeholder{position:absolute;top:14px;left:16px;color:color-mix(in srgb,var(--f-ink,var(--text)) 45%,transparent);pointer-events:none}.rte-wrap.view{border-style:solid}.rte-wrap.view .rte{min-height:0}.rte-wrap.apa .rte-page{background:color-mix(in srgb,var(--f-ink,var(--text)) 6%,var(--f-card,var(--surface)));padding:18px}.rte-wrap.apa .rte{background:#fff;color:#111;font-family:Times New Roman,Times,"Liberation Serif",serif;font-size:16px;line-height:2;padding:56px 64px;max-width:720px;margin:0 auto;min-height:420px;box-shadow:0 1px 3px rgba(0,0,0,.18)}.rte-wrap.apa .rte p{text-indent:.5in;margin:0}.rte-wrap.apa .rte p.hanging{text-indent:-.5in;padding-left:.5in}.rte-wrap.apa .rte h2{text-align:center;font-size:16px;font-weight:700;margin:0;line-height:2}.rte-wrap.apa .rte li{line-height:2}.rte-wrap.apa .rte-placeholder{top:74px;left:50%;transform:translateX(-50%);font-family:Times New Roman,Times,serif}@media (max-width:600px){.rte-wrap.apa .rte{padding:28px 20px}.rte-wrap.apa .rte-page{padding:8px}}.save-state{gap:6px;font-size:12.5px;opacity:.75}.fill .resume,.save-state{display:flex;align-items:center}.fill .resume{gap:10px;padding:10px 14px;border-radius:10px;background:color-mix(in srgb,var(--f-accent) 12%,var(--f-card));font-size:14px}.replay-text{white-space:pre-wrap;line-height:1.7;padding:16px;border-radius:var(--r);background:var(--bg);border:1px solid var(--border);font-size:15px;min-height:180px;max-height:46vh;overflow:auto}.replay-text .caret{display:inline-block;width:2px;height:1.1em;vertical-align:-2px;background:var(--accent);animation:blink 1s steps(1) infinite}.replay-text .just-pasted{background:color-mix(in srgb,var(--bad) 22%,transparent);border-radius:3px}@keyframes blink{50%{opacity:0}}.timeline{position:relative;height:64px;border-radius:8px;background:var(--surface-2);overflow:hidden;cursor:pointer}.timeline .bar{position:absolute;bottom:0;background:var(--accent);opacity:.75;border-radius:2px 2px 0 0}.timeline .bar.del{background:var(--warn);opacity:.6;bottom:auto;top:0;border-radius:0 0 2px 2px}.timeline .away{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--faint) 30%,transparent) 0 4px,transparent 4px 8px)}.timeline .paste{position:absolute;top:0;bottom:0;width:3px;background:var(--bad)}.timeline .head{position:absolute;top:0;bottom:0;width:2px;background:var(--text)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.metric{padding:10px 12px;border-radius:var(--r);background:var(--surface-2)}.metric b{display:block;font:650 18px/1.2 var(--font-display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric span{font-size:11.5px;color:var(--muted)}.classes-grid{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:16px;align-items:start}.class-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:0;background:none;padding:10px 12px;border-radius:var(--r-md,8px);cursor:pointer;color:inherit;font:inherit}.class-item:hover{background:var(--surface-2)}.class-item.on{background:var(--accent-soft)}.code-panel{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px;border-radius:var(--r-lg);background:var(--surface-2)}.class-code{font-size:26px;font-weight:700;letter-spacing:.08em}table.data.roster tbody tr{cursor:default}table.data.roster tbody tr:hover td{background:transparent}.owner-bar{background:var(--accent-soft)}@media (max-width:760px){.classes-grid{grid-template-columns:1fr}}.topbar a.btn,a.brand,a.btn{text-decoration:none;color:inherit}a.btn.primary{color:var(--accent-ink)}.fill-app{grid-template-rows:1fr}.fill-app>.main>.fill{min-height:100%}.fill .drop{display:block;position:relative}.legal{max-width:760px;line-height:1.65}.legal h1{font-size:30px;margin-bottom:4px}.legal h2{font-size:19px;margin:28px 0 8px}.legal li,.legal p{margin:8px 0}.legal ul{padding-left:22px}.legal-links{margin-top:8px}