:root{--bg0:#080b12;--bg1:#0f141e;--bg2:#161d2a;--bg3:#1e2737;--line:rgba(255,255,255,.07);--line2:rgba(255,255,255,.13);--text:#e8eaf2;--muted:#a2a9bd;--faint:#858ca0;--accent:#2563eb;--accent-hover:#3b82f6;--accent-bright:#60a5fa;--accent2:#38bdf8;--pink:#d071ad;--accent-soft:rgba(59,130,246,.14);--ring:0 0 0 3px rgba(59,130,246,.28);--grad:var(--accent);--grad-soft:var(--accent-soft);--shadow-1:0 1px 2px rgba(0,0,0,.35);--shadow-2:0 8px 28px rgba(0,0,0,.45);--ok:#4cc38a;--warn:#e0a458;--danger:#e5646b;--fs-xs:.6875rem;--fs-sm:.75rem;--fs-base:.8125rem;--fs-md:.875rem;--fs-lg:1rem;--fs-xl:1.25rem;--fs-2xl:1.75rem;--fw-med:500;--fw-semi:600;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r:12px;--r-sm:9px;--r-xs:6px;--t-fast:.11s;--t:.17s;--ease:cubic-bezier(.22,.61,.36,1);color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:Inter,system-ui,Segoe UI,sans-serif;background:var(--bg0);color:var(--text);font-size:var(--fs-base);-webkit-font-smoothing:antialiased}a{color:var(--accent-bright);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}::selection{background:#2563eb73;color:#fff}:root{caret-color:var(--accent-bright);accent-color:var(--accent)}*{scrollbar-color:#3a4254 transparent}*::-webkit-scrollbar{width:14px;height:14px}*::-webkit-scrollbar-thumb{background:#3a4254;border-radius:10px;border:3px solid transparent;background-clip:content-box;min-height:40px}*::-webkit-scrollbar-thumb:hover{background:#56607a;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px;border-radius:var(--r-xs)}.tabnum{font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,Consolas,monospace}.dim{color:var(--faint)}.small{font-size:var(--fs-sm)}.sp{flex:1}.right{text-align:right;white-space:nowrap}.warn-t{color:var(--warn)}.strike{text-decoration:line-through}code{font-family:ui-monospace,Consolas,monospace;background:var(--bg3);padding:1px 5px;border-radius:4px}.spin{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{display:grid;grid-template-columns:224px 1fr;height:100vh;--head-h:64px}.app.side-off{grid-template-columns:60px 1fr}.side{border-right:1px solid var(--line);display:flex;flex-direction:column;height:100vh;background:var(--bg1);min-width:0}.brand{display:flex;align-items:center;gap:10px;height:var(--head-h);padding:0 16px;border-bottom:1px solid var(--line);flex:none}.logo{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#2563eb,#38bdf8);box-shadow:0 2px 10px #2563eb59;display:grid;place-items:center;font-weight:var(--fw-semi);color:#fff;font-size:var(--fs-md);flex:none}.brand-t{min-width:0;line-height:1.2}.brand-t b{font-size:var(--fs-md);font-weight:var(--fw-semi);display:block}.brand-t span{font-size:var(--fs-xs);color:var(--faint)}.nav{display:flex;flex-direction:column;gap:2px;padding:12px 10px;overflow-y:auto;flex:1;min-height:0}.nav a,.side-btn{position:relative;display:flex;align-items:center;gap:12px;height:38px;padding:0 12px;border-radius:8px;color:var(--muted);font-size:var(--fs-base);font-weight:500;text-decoration:none;border:none;background:none;cursor:pointer;width:100%;text-align:left}.nav a i,.side-btn i{font-size:18px;width:20px;text-align:center;flex:none}.nav a span,.side-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav a:hover,.side-btn:hover{background:var(--bg2);color:var(--text)}.nav a.active{color:var(--text);background:var(--bg3)}.nav a.active:before{content:"";position:absolute;left:-10px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-bright)}.nav a.active i{color:var(--accent-bright)}.side-foot{position:relative;border-top:1px solid var(--line);padding:8px 10px;display:flex;flex-direction:column;gap:2px;flex:none}.side-btn{color:var(--faint)}.who{display:flex;align-items:center;gap:10px;width:100%;height:44px;padding:0 8px;border-radius:8px;border:none;background:none;color:var(--text);cursor:pointer;text-align:left}.who:hover{background:var(--bg2)}.who,.who:hover{text-decoration:none}.who.active{background:var(--bg3)}.prof-hero{display:flex;align-items:center;gap:16px}.prof-hero h2{font-size:var(--fs-xl);font-weight:var(--fw-semi)}.avatar.xl{width:56px;height:56px;border-radius:14px;font-size:24px;background:var(--accent);color:#fff}.prof-row{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}.prof-row:last-child{border:none}.prof-row:hover{text-decoration:none;background:var(--bg2)}.who-t{min-width:0;line-height:1.25}.who-t b{display:block;font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who-t span{font-size:var(--fs-xs);color:var(--faint)}.avatar{width:28px;height:28px;border-radius:8px;background:var(--bg3);display:grid;place-items:center;font-weight:var(--fw-semi);font-size:var(--fs-sm);color:var(--muted);flex:none}.avatar.sm{width:24px;height:24px;font-size:var(--fs-xs);border-radius:7px}.side-off .brand{justify-content:center;padding:0}.side-off .brand-t,.side-off .nav a span,.side-off .side-btn span,.side-off .who-t{display:none}.side-off .nav,.side-off .side-foot{padding-left:8px;padding-right:8px}.side-off .nav a,.side-off .side-btn,.side-off .who{justify-content:center;padding:0}.side-off .nav a.active:before{left:-8px}.main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:auto}.bottom-nav{display:none}.phead{flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-6);min-height:var(--head-h);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg0);z-index:5;flex-wrap:wrap;row-gap:var(--sp-2)}.phead h1{font-size:var(--fs-xl);font-weight:var(--fw-semi);letter-spacing:-.01em;line-height:1.25}.phead .sub{color:var(--faint);font-size:var(--fs-sm);margin-top:2px}.phead-a{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.content{padding:var(--sp-5) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}.card{background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4);box-shadow:0 1px #ffffff06 inset,var(--shadow-1)}.card-h{display:flex;align-items:center;gap:10px;margin-bottom:var(--sp-3);flex-wrap:wrap}.card-h b{font-size:var(--fs-md);font-weight:var(--fw-semi)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.btn{font-size:var(--fs-base);font-weight:600;padding:8px 14px;border-radius:10px;border:1px solid var(--line2);background:var(--bg2);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;text-decoration:none;line-height:1.2;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.btn:hover{background:var(--bg3);border-color:#60a5fa73;color:#fff;text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn:disabled:hover{border-color:var(--line2);color:var(--text)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px #ffffff1f inset,var(--shadow-1)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 4px 14px #2563eb59}.btn.primary:disabled:hover{background:var(--accent);border-color:var(--accent)}.btn.danger{color:var(--danger)}.btn.danger:hover{border-color:var(--danger)}.btn.on{background:var(--accent-soft);border-color:var(--accent-bright);color:#fff}.btn.sm{font-size:var(--fs-sm);padding:6px 11px;border-radius:8px}.btn.xs{font-size:var(--fs-xs);padding:4px 8px;border-radius:7px;gap:4px}.btn.block{width:100%;justify-content:center;padding:11px}.icon-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--bg2);color:var(--muted);display:inline-grid;place-items:center;cursor:pointer;font-size:17px;flex:none;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.icon-btn:hover{color:var(--accent-bright);border-color:#60a5fa73;background:var(--bg3)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.sm{width:28px;height:28px;font-size:15px}.icon-btn.xs{width:24px;height:24px;font-size:13px;border-radius:6px;font-weight:700}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.inp{background:var(--bg3);border:1px solid var(--line);border-radius:8px;color:var(--text);font-family:inherit;font-size:var(--fs-base);padding:8px 11px;outline:none;min-width:0;width:100%;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.inp:hover{border-color:var(--line2)}.inp:focus{border-color:var(--accent-bright);box-shadow:var(--ring)}.inp::placeholder{color:#5f6880}.inp.err{border-color:var(--danger)}.inp.sm{font-size:var(--fs-sm);padding:6px 9px;width:auto;min-width:120px}.inp.num-in{width:120px;min-width:0}.inp.ta{resize:vertical;line-height:1.45}select.inp{cursor:pointer}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:var(--sp-3)}.field>span{font-size:var(--fs-sm);color:var(--muted);font-weight:500}.check{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--muted);cursor:pointer;user-select:none}.check-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow:auto}.form-err{color:var(--danger);font-size:var(--fs-sm)}.seg{display:inline-flex;background:var(--bg3);border-radius:9px;padding:3px;gap:2px}.seg button{font-size:var(--fs-sm);padding:5px 12px;border-radius:7px;cursor:pointer;color:var(--muted);font-weight:600;border:none;background:none}.seg button:hover{color:var(--text)}.seg button.on{background:var(--accent);color:#fff;box-shadow:var(--shadow-1)}.seg button:disabled{opacity:.4;cursor:default}.seg.xs button{font-size:var(--fs-xs);padding:3px 7px}.chip{font-size:var(--fs-xs);font-weight:600;padding:3px 9px;border-radius:20px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:var(--bg3);color:var(--muted);border:1px solid transparent}.chip.warn{background:#e0a45824;color:var(--warn)}.chip.ok{background:#4cc38a24;color:var(--ok)}.chip.info{background:#38bdf824;color:var(--accent2)}.chip.danger{background:#e5646b24;color:var(--danger)}.chip-btn{cursor:pointer;font-family:inherit}.chip-btn:hover{border-color:currentColor}.tag{font-size:var(--fs-xs);font-weight:600;padding:1px 7px;border-radius:6px;text-transform:uppercase;letter-spacing:.3px;flex:none}.tag.bubble{background:#38bdf829;color:var(--accent2)}.tag.narration{background:#e0a45829;color:var(--warn)}.tag.sfx{background:#96a0b929;color:var(--muted)}.tag.warn{background:#e5646b29;color:var(--danger)}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.sw{width:38px;height:21px;border-radius:20px;background:var(--accent);position:relative;cursor:pointer;flex:none;border:none;transition:background var(--t)}.sw:after{content:"";position:absolute;top:2px;left:19px;width:17px;height:17px;border-radius:50%;background:#fff;transition:left var(--t) var(--ease);box-shadow:0 1px 3px #0006}.sw.off{background:#2c3546}.sw.off:after{left:2px}.empty{color:var(--faint);padding:28px 12px;text-align:center;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.empty.sm{padding:12px 6px;font-size:var(--fs-sm)}.empty.bad{color:var(--danger)}.alert{padding:10px 14px;border-radius:var(--r-sm);font-size:var(--fs-sm);border:1px solid}.alert.bad{color:var(--danger);border-color:#e5646b73;background:#e5646b12}.alert.warn{color:var(--warn);border-color:#e0a45873;background:#e0a45812;margin:8px 0}.pre{background:var(--bg0);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:var(--fs-xs);overflow:auto;max-height:240px;font-family:ui-monospace,Consolas,monospace;white-space:pre-wrap;word-break:break-word;margin:4px 0 10px}.pre.bad{color:var(--danger)}.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;margin-bottom:12px;font-size:var(--fs-sm)}.kv dt{color:var(--faint)}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.tbl th{text-align:left;font-weight:600;color:var(--faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;padding:6px 10px;border-bottom:1px solid var(--line)}.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl.hover tbody tr:hover{background:#3b82f60f}.tbl tr.click{cursor:pointer}.tbl tr.muted{opacity:.55}.tbl-scroll{max-height:calc(100vh - 210px);min-height:240px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md,8px)}.tbl-scroll .tbl th{position:sticky;top:0;z-index:1;background:var(--bg1)}.tbl-scroll.sm{max-height:420px;min-height:0;border:none;border-radius:0}.tbl td .icon-btn,.tbl td .btn{margin-left:4px}.err-cell{color:var(--danger);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.err-line{color:var(--danger);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.row-link{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}.row-link:last-child{border:none}.row-link:hover{text-decoration:none}.row-link:hover b{color:var(--accent-bright)}.row-f{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.step{position:relative;display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-radius:var(--r);background:var(--bg1);border:1px solid var(--line);color:var(--text);text-decoration:none;transition:border-color var(--t-fast),background var(--t-fast)}.step:hover{text-decoration:none;border-color:var(--line2);background:var(--bg2)}.step-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.step-top>.ti:first-child{font-size:22px;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--bg3);color:var(--muted)}.step-arr{position:absolute;right:-15px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:16px;z-index:1}.step b{font-size:30px;font-weight:var(--fw-semi);line-height:1.1}.step-l{font-size:var(--fs-md);font-weight:600}.step-h{font-size:var(--fs-xs);color:var(--faint)}.step.info .step-top>.ti:first-child{color:var(--accent2);background:#38bdf81f}.step.warn .step-top>.ti:first-child{color:var(--warn);background:#e0a4581f}.step.ok .step-top>.ti:first-child{color:var(--ok);background:#4cc38a1f}.step.warn b{color:var(--warn)}.step.hot{border-color:#e0a45880}.alert.row{display:flex;gap:10px;align-items:center}.alert.row b{color:inherit}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--faint);margin:0 6px 1px 2px;vertical-align:middle}.live-dot.on{background:var(--ok)}.doing{display:flex;flex-direction:column}.doing-row{display:grid;grid-template-columns:20px 1fr auto auto;gap:12px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}.doing-row:last-child{border:none}.doing-row:hover{text-decoration:none;background:var(--bg2)}.doing-row .ti{color:var(--accent2)}.doing-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doing-k{color:var(--accent2);font-size:var(--fs-sm)}@media (max-width:1100px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}.step-arr{display:none}}@media (max-width:640px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}.pipe{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}.pipe-st-wrap{display:flex;align-items:center;gap:6px}.pipe-sep{color:var(--faint)}.pipe-st{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:10px;background:var(--bg2);border:1px solid var(--line);min-width:88px;color:var(--muted);text-decoration:none}.pipe-st:hover{text-decoration:none;border-color:var(--line2)}.pipe-st span{font-size:var(--fs-xs)}.pipe-st b{font-size:var(--fs-xl);color:var(--text);font-variant-numeric:tabular-nums}.pipe-st.warn{border-color:#e0a45873}.pipe-st.warn b{color:var(--warn)}.pipe-st.ok b{color:var(--ok)}.pipe-st.info b{color:var(--accent2)}.pipe-st.danger{border-color:#e5646b73}.pipe-st.danger b{color:var(--danger)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:10px}.kpi{background:var(--bg2);border-radius:10px;padding:10px 12px}.kpi span{font-size:var(--fs-xs);color:var(--faint);display:block}.kpi b{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.kpi b.bad{color:var(--danger)}.s-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.s-card{background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);padding:14px;color:var(--text);text-decoration:none}.s-card:hover{border-color:var(--accent);text-decoration:none}.s-card-h{display:flex;gap:8px;align-items:center}.s-card-h b{font-size:var(--fs-md);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ch-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.ch-card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;color:var(--text);text-decoration:none;display:flex;flex-direction:column;gap:5px}.ch-card:hover{border-color:var(--accent);text-decoration:none}.ch-card-h{display:flex;align-items:center;gap:8px}.ch-card-h b{flex:1;font-size:var(--fs-md)}.filters{display:flex;gap:6px;flex-wrap:wrap}.fchip{font-size:var(--fs-sm);padding:5px 11px;border-radius:20px;border:1px solid var(--line2);background:var(--bg1);color:var(--muted);cursor:pointer}.fchip b{color:var(--text);margin-left:4px;font-variant-numeric:tabular-nums}.fchip.on{border-color:var(--accent);background:var(--grad-soft);color:#fff}.timeline{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}.tl-st{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:20px;font-size:var(--fs-xs);color:var(--faint);background:var(--bg2)}.tl-dot{width:7px;height:7px;border-radius:50%;background:var(--bg3);border:1px solid var(--line2)}.tl-st.done{color:var(--muted)}.tl-st.done .tl-dot{background:var(--ok);border-color:var(--ok)}.tl-st.cur{color:#fff;background:var(--grad-soft);outline:1px solid var(--accent)}.tl-st.cur .tl-dot{background:var(--accent-bright)}.tl-st.fail{color:var(--danger);outline:1px solid var(--danger)}.tl-st.fail .tl-dot{background:var(--danger)}.events{display:flex;flex-direction:column;gap:2px;max-height:420px;overflow:auto}.ev{display:grid;grid-template-columns:120px 1fr auto;gap:10px;font-size:var(--fs-sm);padding:5px 0;border-bottom:1px solid var(--line)}.set-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,300px);align-items:center;gap:16px;min-height:52px;padding:8px 0;border-bottom:1px solid var(--line)}.set-row:last-child{border:none}.set-row.is-sw{grid-template-columns:minmax(0,1fr) auto}.set-row.changed .set-l b{color:var(--accent-bright)}.set-d{display:flex;flex-direction:column;gap:2px;min-width:0}.set-l{display:inline-flex;align-items:center;gap:4px;min-width:0}.set-l b{font-size:var(--fs-md);font-weight:600}.set-i{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.set-i .inp.sm{flex:1;min-width:0;width:auto;height:34px}.set-i .num-u{flex:1;min-width:0;display:flex}.set-i .inp.sm.num-in{flex:1;width:auto}.set-i>.inp.sm,.set-i>.fsel,.set-i>.sw{margin-right:50px}.set-i>.sw{margin-left:auto}.help-btn{display:inline-grid;place-items:center;width:24px;height:24px;border:none;background:none;color:var(--faint);cursor:pointer;border-radius:6px;font-size:16px;flex:none;transition:color var(--t-fast),background var(--t-fast)}.help-btn:hover{color:var(--accent-bright);background:var(--bg3)}.card-h>.help-btn,.caps>.help-btn,.set-adv-row>.help-btn{margin-left:auto}.card-h>.sp+.btn+.help-btn{margin-left:0}.link-btn{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;border:none;background:none;padding:0;color:var(--accent-bright);font-size:var(--fs-sm);cursor:pointer}.link-btn:hover{text-decoration:underline}.help-body p{line-height:1.6;margin:0 0 8px;color:var(--text)}.help-list{display:flex;flex-direction:column}.help-list section{padding:12px 0;border-bottom:1px solid var(--line)}.help-list section:first-child{padding-top:0}.help-list section:last-child{border:none;padding-bottom:0}.help-list h4{font-size:var(--fs-md);font-weight:600;margin:0 0 6px;color:var(--accent-bright)}.help-list p{line-height:1.6;margin:0 0 6px}.cred-uses{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 18px}.help-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.help-meta span{font-size:var(--fs-xs);color:var(--muted);background:var(--bg3);border-radius:20px;padding:3px 10px}.set-wrap{display:grid;grid-template-columns:220px minmax(0,760px);gap:var(--sp-5);align-items:start;padding-bottom:90px}.set-tabs{display:flex;flex-direction:column;gap:2px;position:sticky;top:calc(var(--head-h) + 20px)}.set-tabs button{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:8px;border:none;background:none;color:var(--muted);font-size:var(--fs-base);font-weight:500;cursor:pointer;text-align:left}.set-tabs button i{font-size:18px;width:20px;text-align:center}.set-tabs button:hover{background:var(--bg2);color:var(--text)}.set-tabs button.on{background:var(--bg3);color:var(--text)}.set-tabs button.on i{color:var(--accent-bright)}.set-n{margin-left:auto;font-size:var(--fs-xs);background:var(--accent);color:#fff;border-radius:10px;padding:1px 7px}.set-body{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.set-body .card-h .ti{font-size:18px}.num-u{display:inline-flex;align-items:center;gap:6px}.num-unit{width:44px;white-space:nowrap;color:var(--faint);font-size:var(--fs-sm)}.icon-btn.ghost{visibility:hidden}.set-adv{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--text);font-weight:600;font-size:var(--fs-base);cursor:pointer;padding:2px 0}.set-adv-row{display:flex;align-items:center;gap:6px}.set-adv-row .set-adv{flex:1}.set-adv .dim{font-weight:400;margin-left:4px}.set-usage{display:flex;flex-direction:column;gap:10px}.set-usage-h{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.bar{height:8px;border-radius:6px;background:var(--bg3);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent2);border-radius:6px}.bar i.over{background:var(--danger)}.caps{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-right:17px}.cap{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;background:var(--bg1);border:1px solid var(--line);font-size:var(--fs-sm);white-space:nowrap}.cap .ti{font-size:15px}.cap span{color:var(--faint)}.cap.ok .ti{color:var(--ok)}.cap.bad{border-color:#e5646b80}.cap.bad .ti{color:var(--danger)}.cap.off .ti{color:var(--faint)}.site-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.site-opt{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:12px 14px;border-radius:10px;border:1px solid var(--line2);background:var(--bg2);color:var(--text);cursor:pointer;text-align:left;font-size:var(--fs-sm)}.site-opt:hover{border-color:var(--accent-bright)}.site-opt.on{border-color:var(--accent-bright);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-bright)}.site-opt-h{display:flex;align-items:center;gap:8px;font-size:var(--fs-md)}.site-opt-h .ti{color:var(--accent-bright)}.site-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.ns-step{display:flex;align-items:center;gap:8px;margin:14px 0 8px;font-weight:600}.ns-step:first-child{margin-top:0}.ns-step b{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:var(--fs-xs)}.site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.site-tile{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid var(--line2);background:var(--bg2);color:var(--text);cursor:pointer;text-align:left}.site-tile span{font-size:var(--fs-xs);color:var(--faint)}.site-tile:hover{border-color:var(--accent-bright)}.site-tile.on{border-color:var(--accent-bright);background:#60a5fa1f;box-shadow:inset 0 0 0 1px var(--accent-bright)}.ns-probe{min-height:22px;margin-top:6px;font-size:var(--fs-sm)}.ok-t{color:var(--ok)}.ns-auto{margin-top:10px}.ns-adv{margin-top:14px}@media (max-width:640px){.site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.cred-g{border-top:1px solid var(--line);padding:12px 0 4px}.cred-g:first-of-type{border-top:none}.cred-gh{display:flex;align-items:center;gap:8px;margin-bottom:6px}.cred-gh .ti{font-size:17px;color:var(--muted)}.cred-row{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:10px;border:1px solid var(--line);margin:6px 0;background:var(--bg1)}.cred-row.on{border-color:#4cc38a73}.cred-row.off{opacity:.55}.cred-ord{display:flex;flex-direction:column;gap:2px}.cred-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.cred-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cred-use{display:flex;flex-direction:column;gap:4px;max-width:420px}.cred-act{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.fsel{position:relative;flex:1;min-width:0}.fsel-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;cursor:pointer;text-align:left}.fsel-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-i .fsel .fsel-btn{width:100%;flex:none;height:34px}.fsel-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:40;width:max(100%,340px);max-width:calc(100vw - 32px);background:var(--bg2);border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow-2);overflow:hidden}.fsel-list{max-height:320px;overflow:auto;padding:4px}.fsel-item{display:flex;align-items:center;border-radius:7px}.fsel-item:hover{background:var(--bg3)}.fsel-item.on{background:var(--accent-soft)}.fsel-pick{flex:1;min-width:0;display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;border:none;background:none;color:var(--text);font-size:17px;padding:7px 10px;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden}.fsel-pick .ti{font-size:14px;color:var(--accent-bright);font-family:tabler-icons}.fsel-pick .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fsel-pick .smp{color:var(--faint);font-size:14px}.fsel-x{border:none;background:none;color:var(--faint);cursor:pointer;padding:6px 10px;font-size:14px}.fsel-x:hover{color:var(--danger)}.fsel-add{display:flex;align-items:center;gap:8px;width:100%;border:none;border-top:1px solid var(--line);background:var(--bg1);color:var(--accent-bright);font-weight:600;font-size:var(--fs-base);padding:10px 14px;cursor:pointer}.fsel-add:hover{background:var(--bg3)}.fsel-add span{margin-left:auto;color:var(--faint);font-weight:400;font-size:var(--fs-xs)}.font-prev{margin-top:10px;padding:14px 16px;border-radius:10px;background:#fff;color:#111;font-size:clamp(18px,2vw,26px);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.save-bar{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:10px;min-width:min(560px,calc(100vw - 32px));padding:10px 12px 10px 18px;border-radius:12px;background:var(--bg2);border:1px solid var(--line2);box-shadow:0 12px 34px #0000008c}@media (max-width:900px){.set-wrap{grid-template-columns:1fr;gap:var(--sp-3)}.set-tabs{position:static;flex-direction:row;overflow-x:auto;gap:4px;margin:0 -4px;padding:0 4px 4px;scrollbar-width:none}.set-tabs::-webkit-scrollbar{display:none}.set-tabs button{flex:none;height:36px;padding:0 12px;border:1px solid var(--line);background:var(--bg1)}.set-tabs button.on{border-color:var(--accent-bright)}.set-row{grid-template-columns:1fr;gap:8px}.set-row.is-sw{grid-template-columns:minmax(0,1fr) auto}.set-row:not(.is-sw) .set-i{justify-content:stretch}.fsel-menu{left:0;right:auto;width:100%;max-width:none}.save-bar{bottom:76px}.cred-row{flex-wrap:wrap}.cred-act{width:100%;justify-content:flex-start;padding-left:34px}}.pay-row{border-top:1px solid var(--line);padding:8px 0}.pay-row summary{display:flex;gap:12px;align-items:center;cursor:pointer;list-style:none}.pay-row summary b:last-child{margin-left:auto}.gl-wrap{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--sp-5);align-items:start}.gl-scopes button span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gl-n{font-size:var(--fs-xs);color:var(--faint);font-weight:600;font-variant-numeric:tabular-nums}.set-tabs button.on .gl-n{color:var(--accent-bright)}.gl-add{display:grid;grid-template-columns:1fr 1fr 1.2fr auto auto;gap:6px;margin-bottom:6px}.gl-add .inp.sm{min-width:0;width:100%;height:34px}.gl-dup{margin:2px 0 6px}.gl-ro{margin-bottom:8px}.gl-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 6px}.gl-tools .inp.sm{flex:1;min-width:200px}.gl-tools .filters{margin:0}.gl-list{display:flex;flex-direction:column}.gl-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr) auto;gap:10px;align-items:center;min-height:42px;padding:6px 8px;border-bottom:1px solid var(--line);border-radius:6px}.gl-row:last-child{border-bottom:none}.gl-row.click{cursor:pointer}.gl-row.click:hover{background:#3b82f60f}.gl-row.off{opacity:.55}.gl-row.editing{background:var(--accent-soft)}.gl-row.editing .inp.sm{min-width:0;width:100%}.gl-en,.gl-mn,.gl-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gl-act{display:flex;gap:6px;align-items:center;justify-content:flex-end}.gl-corr{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:10px;padding:8px;border-bottom:1px solid var(--line)}.gl-bulk{min-height:260px;font-family:ui-monospace,Consolas,monospace}@media (max-width:900px){.gl-wrap{grid-template-columns:1fr;gap:var(--sp-3)}.gl-add{grid-template-columns:1fr 1fr}.gl-add .inp.sm:nth-child(3){grid-column:1 / -1}.gl-row{grid-template-columns:1fr auto;row-gap:2px}.gl-row .gl-mn,.gl-row .gl-note{grid-column:1}.gl-row .gl-act{grid-row:1 / span 3;grid-column:2}.gl-row.editing,.gl-corr{grid-template-columns:1fr}}.modal-bg{position:fixed;inset:0;z-index:60;background:#04070eb8;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--bg1);border:1px solid var(--line2);border-radius:var(--r);width:min(480px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0009}.modal.wide{width:min(820px,100%)}.modal-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.modal-h b{flex:1;font-size:var(--fs-md)}.modal-b{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:8px}.modal-f{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line)}.toasts{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:90;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;width:min(560px,calc(100vw - 32px))}.toast{pointer-events:auto;padding:10px 16px;border-radius:10px;background:var(--bg3);border:1px solid var(--line2);color:var(--text);font-size:var(--fs-base);box-shadow:0 10px 30px #00000080;cursor:pointer;max-width:100%}.toast.ok{border-color:#4cc38a80}.toast.bad{border-color:#e5646b8c;color:#ffb3b7}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:min(360px,100%);display:flex;flex-direction:column}.ed{display:flex;flex-direction:column;height:100vh;padding:8px;gap:6px;background:var(--bg0)}.ed-top{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);flex-wrap:wrap;row-gap:6px;flex:none}.ed-top-l,.ed-top-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ed-top-r{margin-left:auto}.ed-title b{display:block;font-size:var(--fs-md);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-title span{font-size:var(--fs-xs);color:var(--faint)}.save-ind{font-size:var(--fs-xs);display:inline-flex;gap:5px;align-items:center;color:var(--faint)}.save-ind.ok{color:var(--ok)}.save-ind.warn{color:var(--warn)}.save-ind.bad{color:var(--danger)}.presence{display:flex;gap:3px}.render-prog{font-variant-numeric:tabular-nums}.ed-warn{padding:7px 12px;font-size:var(--fs-sm);color:var(--warn);background:#e0a45814;border:1px solid rgba(224,164,88,.4);border-radius:var(--r-sm);flex:none}.ed-body{flex:1;min-height:0;display:grid;gap:6px;grid-template-columns:48px 88px minmax(0,1fr) 340px}.ed-rail{display:flex;flex-direction:column;gap:4px;padding:5px;background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);overflow:auto}.rail-btn{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:9px;cursor:pointer;border:1px solid transparent;background:transparent;color:var(--muted);flex:none}.rail-btn i{font-size:18px}.rail-btn b{position:absolute;right:3px;bottom:1px;font-size:9px;font-weight:700;color:var(--faint)}.rail-btn:hover{background:var(--bg2);color:var(--text)}.rail-btn.on{background:var(--grad-soft);border-color:var(--accent);color:#fff}.rail-btn:disabled{opacity:.3;cursor:default}.rail-btn:disabled:hover{background:transparent}.rail-div{height:1px;background:var(--line);margin:3px 4px;flex:none}.ed-pages{display:flex;flex-direction:column;gap:6px;overflow-y:auto;padding:6px;background:var(--bg1);border:1px solid var(--line);border-radius:var(--r)}.thumb{position:relative;flex:none;width:100%;aspect-ratio:3/4;border-radius:7px;overflow:hidden;border:1.5px solid var(--line);cursor:pointer;background:var(--bg2);padding:0}.thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.thumb.sel{border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa59}.thumb-n{position:absolute;left:4px;bottom:3px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 3px #000;font-variant-numeric:tabular-nums}.thumb-bad{position:absolute;top:3px;right:3px;min-width:15px;height:15px;border-radius:8px;background:var(--danger);color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;padding:0 3px}.thumb-st{position:absolute;right:4px;bottom:4px;width:7px;height:7px;border-radius:50%}.thumb-st.ok{background:var(--ok)}.thumb-st.warn{background:var(--warn)}.thumb-st.info{background:var(--accent2)}.thumb-who{position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:5px;background:var(--pink);color:#fff;font-size:9px;font-weight:700;display:grid;place-items:center}.thumb-del{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:var(--faint);border-top:1px solid var(--line);padding-top:6px}.ed-canvas{background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.ed-canvas-head{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--muted);flex:none;flex-wrap:wrap}.ed-canvas-head b{color:var(--text)}.brush{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.brush input[type=range]{width:90px}.zoom{display:flex;align-items:center;gap:4px}.zoom-v{font-size:var(--fs-xs);color:var(--muted);min-width:44px;text-align:center;background:none;border:none;cursor:pointer;font-variant-numeric:tabular-nums}.ed-scroll{flex:1;overflow:auto;padding:12px 16px 40px;display:flex;justify-content:safe center;align-items:flex-start}.ed-scroll.tool-text,.ed-scroll.tool-ocr,.ed-scroll.tool-clean{cursor:crosshair}.ed-scroll.tool-erase{cursor:cell}.ed-scroll.tool-pick{cursor:copy}.ed-stage{flex:none;display:flex;flex-direction:column;gap:10px}.pg{position:relative;width:100%;background:var(--bg2);container-type:inline-size;user-select:none;-webkit-user-select:none;touch-action:pan-y}.pg.on{box-shadow:0 0 0 2px #60a5fa73}.pg-img{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.pg-n{position:absolute;left:6px;top:6px;z-index:4;font-size:var(--fs-xs);font-weight:700;color:#fff;background:#0000009e;padding:2px 8px;border-radius:7px;pointer-events:none;line-height:1.6;font-variant-numeric:tabular-nums}.pg-n em{font-style:normal;font-weight:500;color:var(--warn)}.pg-n .pg-who{color:var(--pink)}.ink{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.ink polyline.old{stroke:#38bdf847}.ink polyline.new.erase{stroke:#ff5a5a8c}.ink polyline.new.restore{stroke:#4cc38a8c}.ink circle.old.fill{fill:#38bdf859;stroke:#fff9;stroke-width:2}.ink circle.new.fill{stroke:#fff;stroke-width:3;paint-order:stroke}.ed-scroll.tool-fill{cursor:crosshair}.paint-color{display:inline-flex;align-items:center;gap:6px}.paint-color .pc-cur{position:relative;flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--text);box-shadow:0 0 0 1px var(--line2);cursor:pointer;overflow:hidden}.paint-color .pc-cur input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}.paint-color .sw{flex:none;box-sizing:border-box;width:18px;height:18px;min-width:0;padding:0;border-radius:50%;border:1px solid var(--line2);cursor:pointer}.paint-color .sw:hover{transform:scale(1.15)}.brush-size em{font-style:normal;color:var(--muted);white-space:nowrap}.pop-title{display:inline-flex;align-items:center;gap:4px;color:var(--text);font-size:var(--fs-sm);font-weight:600}.pop-sep{flex:none;width:1px;align-self:stretch;background:var(--line2);margin:0 2px}.regbox{position:absolute;border:2px dashed var(--accent2);background:#38bdf824;pointer-events:none;border-radius:3px;z-index:5}.regbox.clean{border-color:var(--warn);background:#e0a45824}.regbox.text{border-color:var(--ok);background:#4cc38a1f}.ed-hint{flex:none;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--faint)}.ed-hint>summary{padding:3px 12px;cursor:pointer;list-style:none;user-select:none}.ed-hint>summary::-webkit-details-marker{display:none}.ed-hint>summary:before{content:"▸ "}.ed-hint[open]>summary:before{content:"▾ "}.ed-hint-b{display:flex;flex-wrap:wrap;gap:2px 16px;padding:0 12px 6px;line-height:1.6}.ed-hint-b b{color:var(--muted);font-weight:500}.ed-list{background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;min-height:0}.ed-list-head{display:flex;align-items:center;gap:8px;padding:8px 11px;border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--faint);flex:none}.ed-list-head b{color:var(--text)}.ed-list-body{flex:1;overflow:auto;padding:7px;display:flex;flex-direction:column;gap:6px}.ed-list-foot{padding:6px 10px;border-top:1px solid var(--line);font-size:var(--fs-xs)}.blk{border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 8px;background:var(--bg1);cursor:pointer}.blk:hover{border-color:var(--line2)}.blk.sel{border-color:var(--accent);background:var(--grad-soft);padding:8px;cursor:default}.blk.bad{border-color:#e5646b8c;background:#e5646b0f}.blk.sel.bad{background:#e5646b14}.blk.sfx{opacity:.7}.blk-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;row-gap:5px}.blk-peek{font-size:var(--fs-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.kind{background:var(--bg3);border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:var(--fs-xs);padding:3px 5px;font-family:inherit}.ta{width:100%;background:var(--bg3);border:1px solid var(--line);border-radius:8px;color:var(--text);font-family:inherit;font-size:var(--fs-md);padding:7px 8px;resize:vertical;outline:none;line-height:1.45;margin-top:6px;display:block}.ta:focus{border-color:var(--accent)}.ta.en{font-size:var(--fs-xs);color:var(--faint);font-style:italic;min-height:30px}.ta.en:focus{color:var(--muted);font-style:normal}.blk-ctl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.fsw{display:inline-flex;align-items:center;gap:3px;color:var(--faint)}.num{width:52px;background:var(--bg3);border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:inherit;font-size:var(--fs-sm);padding:3px 6px;outline:none;font-variant-numeric:tabular-nums}.num:focus{border-color:var(--accent)}.num.manual{border-color:var(--accent);color:var(--accent-bright)}.fsw input[type=color]{width:26px;height:24px;border:1px solid var(--line2);border-radius:6px;background:none;padding:1px;cursor:pointer}.src-crop{margin:6px 0 0;border:1px solid var(--line);border-radius:6px;background-repeat:no-repeat;background-color:#fff;max-width:100%}.fr-row{display:flex;gap:8px;flex-wrap:wrap}.fr-row .inp{flex:1;min-width:140px}.fr-list{max-height:40vh;overflow:auto;display:flex;flex-direction:column;gap:3px}.fr-item{text-align:left;padding:6px 8px;border-radius:6px;background:var(--bg2);border:1px solid var(--line);color:var(--text);cursor:pointer;font-size:var(--fs-sm)}.fr-item:hover{border-color:var(--accent)}.hist{display:grid;grid-template-columns:240px 1fr;gap:10px;min-height:280px}.hist-list{display:flex;flex-direction:column;gap:4px;max-height:55vh;overflow:auto}.hist-item{text-align:left;padding:7px 9px;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}.hist-item span{font-size:var(--fs-xs);color:var(--muted)}.hist-item.on{border-color:var(--accent);background:var(--grad-soft)}.hist-prev{background:var(--bg0);border:1px solid var(--line);border-radius:8px;padding:8px;max-height:55vh;overflow:auto;font-size:var(--fs-sm)}.hist-b{padding:3px 0;border-bottom:1px solid var(--line)}.ovbox{position:absolute;border:1.5px dashed rgba(6,182,212,.6);background:#06b6d40a;cursor:move;border-radius:2px;box-sizing:border-box;touch-action:none;z-index:2;transition:background var(--t-fast),border-color var(--t-fast)}.ovbox:hover{border-color:#06b6d4f2;background:#06b6d41f}.ovbox.sel{border:2px solid #3b82f6;background:#3b82f621;box-shadow:0 0 0 3px #3b82f640,0 4px 14px #00000059;z-index:3}.ovbox.bad{border-color:#e5646bd9;background:#e5646b14}.ovbox.bad.sel{border-color:#3b82f6;border-style:solid}.ovbox.sfx{border-color:#96a0b999;opacity:.65}.ovbox.nobox:not(.sel){border-color:transparent;background:none}.ovbox.nobox:not(.sel):hover{border-color:#06b6d4b3}.ovbox.inert{pointer-events:none}.ovnum{position:absolute;left:-1px;top:-15px;font-size:9.5px;font-weight:700;color:#fff;padding:1px 5px;border-radius:5px 5px 0 0;background:var(--accent);pointer-events:none;line-height:1.4;opacity:0}.ovbox:hover .ovnum,.ovbox.sel .ovnum,.ovbox.bad .ovnum{opacity:1}.ovbox.bad .ovnum{background:var(--danger)}.ovbox.sel .ovnum{left:16px;top:-17px;border-radius:5px}.ovnum.sm{position:static;border-radius:5px;background:var(--bg3);color:var(--faint);opacity:1}.ovtext{pointer-events:none;position:absolute;inset:0;display:flex;flex-wrap:wrap;padding:0 2%;white-space:pre-wrap;overflow:visible;font-family:EditorRender,Nunito,Segoe UI,system-ui,sans-serif;font-weight:400;line-height:1.2;word-break:break-word;overflow-wrap:anywhere}.ovh{position:absolute;background:var(--accent2);border:2px solid #fff;touch-action:none;box-shadow:0 1px 4px #00000073;box-sizing:border-box;margin:0;z-index:4}.ovh.k-nw,.ovh.k-ne,.ovh.k-sw,.ovh.k-se{width:14px;height:14px;border-radius:4px}.ovh.k-nw{left:-8px;top:-8px;cursor:nwse-resize}.ovh.k-ne{right:-8px;top:-8px;cursor:nesw-resize}.ovh.k-sw{left:-8px;bottom:-8px;cursor:nesw-resize}.ovh.k-se{right:-8px;bottom:-8px;cursor:nwse-resize}.ovh.k-n,.ovh.k-s{width:26px;height:10px;border-radius:6px;left:50%;margin-left:-13px}.ovh.k-n{top:-6px;cursor:ns-resize}.ovh.k-s{bottom:-6px;cursor:ns-resize}.ovh.k-w,.ovh.k-e{width:10px;height:26px;border-radius:6px;top:50%;margin-top:-13px}.ovh.k-w{left:-6px;cursor:ew-resize}.ovh.k-e{right:-6px;cursor:ew-resize}.ovrot{position:absolute;left:50%;bottom:-34px;margin-left:-11px;width:22px;height:22px;border-radius:50%;background:var(--accent2);border:2px solid #fff;display:grid;place-items:center;color:#fff;font-size:var(--fs-sm);cursor:grab;touch-action:none;box-shadow:0 1px 4px #00000073;z-index:4}.ovrot:active{cursor:grabbing}.ovang{position:absolute;right:-1px;top:-15px;font-size:9.5px;font-weight:700;color:#fff;padding:1px 5px;border-radius:5px 5px 0 0;background:var(--accent2);pointer-events:none;line-height:1.4}.m-ed{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg0)}.m-top{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--bg1);flex:none}.m-title{flex:1;min-width:0}.m-title b{display:block;font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-title span{font-size:var(--fs-xs);color:var(--faint)}.m-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);flex:none}.m-bar .save-ind{flex:1}.m-pages{flex:1;overflow:auto;display:flex;flex-direction:column;gap:6px;padding:6px 0}.m-pg{touch-action:pan-y}.ovbox.m{cursor:pointer;border-color:#60a5fa59;touch-action:pan-y}.ovbox.m.grab{touch-action:none;cursor:move}.m-sheet{flex:none;border-top:1px solid var(--line2);background:var(--bg1);padding:8px 10px calc(8px + env(safe-area-inset-bottom));max-height:48vh;overflow:auto}.m-orig{font-size:var(--fs-xs);color:var(--faint);font-style:italic;margin-top:6px}.m-row{display:flex;align-items:center;gap:6px;margin-top:8px}.m-sheet .ta.mn{font-size:16px}@media (max-width:820px){.app{grid-template-columns:1fr;height:auto;min-height:100vh}.app.side-off{grid-template-columns:1fr}.side{display:none}.main{overflow:visible;padding-bottom:64px}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--bg1);border-top:1px solid var(--line2);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;color:var(--faint);font-size:10px;text-decoration:none;border-radius:8px}.bottom-nav a i{font-size:20px}.bottom-nav a.active{color:#fff;background:var(--grad-soft)}.phead{padding:var(--sp-3) var(--sp-4)}.phead-a{margin-left:0;width:100%}.content{padding:var(--sp-3) var(--sp-4)}.grid2{grid-template-columns:1fr}.tbl{display:block;overflow-x:auto;white-space:nowrap}.gl-add{grid-template-columns:1fr 1fr}.ev{grid-template-columns:90px 1fr}.ev span:last-child{display:none}.hist{grid-template-columns:1fr}.kv{grid-template-columns:110px 1fr}}.cost{font-style:normal;font-size:10px;margin-left:4px;padding:0 4px;border-radius:4px;border:1px solid var(--line2, rgba(255,255,255,.2));opacity:.85}.pw-wrap{position:relative;display:block}.pw-wrap .inp{width:100%;padding-right:36px}.pw-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted,#9aa);cursor:pointer;padding:4px 6px;font-size:16px}.pw-eye:hover{color:inherit}.tbl .w-check{width:28px;text-align:center}.app.in-ed .bottom-nav{display:none}.app.in-ed .main{overflow:hidden}.ed{height:100vh;min-width:0}.ed-body{position:relative;grid-template-rows:minmax(0,1fr)}.ed-ur{display:flex;gap:2px;padding-left:4px;border-left:1px solid var(--line)}.view-sel{display:inline-flex;align-items:center;gap:6px;background:var(--bg3);border-radius:9px;padding:0 4px 0 10px;color:var(--muted)}.view-sel select{background:transparent;border:none;color:var(--text);font:inherit;font-weight:600;padding:6px;cursor:pointer;outline:none}.view-sel select option{background:var(--bg2);color:var(--text)}.menu-wrap{position:relative}.icon-btn.on{background:var(--grad-soft);color:var(--text)}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:230px;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);padding:6px;box-shadow:0 12px 34px #00000080;display:flex;flex-direction:column;gap:1px}.menu-l{font-size:var(--fs-xs);color:var(--faint);padding:6px 8px 3px}.menu-sep{height:1px;background:var(--line);margin:4px 2px}.menu button{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:none;color:var(--muted);padding:6px 8px;border-radius:7px;cursor:pointer;font-size:var(--fs-sm)}.menu button:hover{background:var(--bg3);color:var(--text)}.menu button.on{color:var(--text)}.menu button.on:after{content:"✓";margin-left:auto;color:var(--accent-bright);font-weight:700}.menu button kbd{margin-left:auto;font-size:10px;color:var(--faint);font-family:inherit}.menu button.on kbd{margin-left:8px}.ed-pages.h{flex-direction:row;overflow-x:auto;overflow-y:hidden;height:118px;flex:none;border-radius:0;border-width:0 0 1px 0;padding:6px 8px}.ed-pages.h .thumb{width:70px;height:100%;aspect-ratio:auto}.ed-pages.h .thumb-del{flex-direction:row;align-items:center;border-top:none;border-left:1px solid var(--line);padding:0 0 0 6px}.ed-canvas-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.ed-canvas-wrap>.ed-scroll{flex:1;min-height:0}.brush-pop{position:absolute;left:10px;top:10px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:calc(100% - 20px);background:#10131bf0;border:1px solid var(--line2);border-radius:var(--r-sm);padding:6px 8px;box-shadow:0 8px 24px #00000073;backdrop-filter:blur(6px)}.brush-size{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--fs-xs)}.brush-size input{width:110px}.brush-size span{min-width:24px;font-variant-numeric:tabular-nums;color:var(--text)}.ed-stage.cmp{gap:14px}.pg-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.pg.ro{cursor:default}.pg-nav{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 0}.ovtext.lay{display:block;inset:auto;white-space:pre;line-height:normal;box-sizing:border-box;overflow:visible}.blk-outline{display:inline-flex;align-items:center;gap:4px}.blk-outline .num{width:44px}.blk-outline input[type=color]:disabled{opacity:.35}.ed-list-head .seg{flex:none}.list-pg{display:flex;flex-direction:column;gap:6px}.list-pg-h{position:sticky;top:-7px;z-index:2;text-align:left;background:var(--bg1);border:none;border-bottom:1px solid var(--line);color:var(--text);font-weight:600;font-size:var(--fs-sm);padding:6px 4px;cursor:pointer}.list-pg-h.on{color:var(--accent-bright)}.list-open{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:10;background:var(--bg2);border:1px solid var(--line2);border-right:none;border-radius:9px 0 0 9px;color:var(--muted);padding:10px 5px;cursor:pointer}.list-open:hover{color:var(--text)}.blk-lbl{display:block;font-size:var(--fs-xs);color:var(--faint);margin:7px 0 3px}.blk-acts{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.blk-acts .btn.xs{gap:4px}.blk-colors{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:7px}.swatch-sep{width:1px;height:18px;background:var(--line2);margin:0 2px}.swatch{width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,.18);cursor:pointer;padding:0}.swatch.on{outline:2px solid var(--accent-bright);outline-offset:1px}.swatch:disabled{opacity:.4;cursor:default}.tag.ok{background:#4cc38a29;color:var(--ok)}.sheet-bg{position:fixed;inset:0;z-index:60;background:#00000080;display:flex;justify-content:flex-end}.sheet{width:min(460px,100vw);height:100%;background:var(--bg1);border-left:1px solid var(--line2);display:flex;flex-direction:column;gap:10px;padding:16px;box-shadow:-12px 0 40px #00000080}.sheet-h{display:flex;align-items:flex-start;gap:10px}.sheet-h b{font-size:var(--fs-lg)}.sheet-h p{margin-top:4px;line-height:1.5}.sheet-h .icon-btn{margin-left:auto}.sheet-tabs{align-self:flex-start}.sheet-add{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sheet-add .btn{grid-column:1/-1;justify-content:center}.sheet-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:4px}.term{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--r-xs)}.term:hover{border-color:var(--line2)}.term-t{flex:1;min-width:0;font-size:var(--fs-sm)}.term-a{display:flex;gap:4px;flex:none}.term.edit{display:grid;grid-template-columns:1fr 1fr;gap:6px}.term.edit .inp:nth-child(3),.term.edit .term-a{grid-column:1/-1}.ch-row{cursor:pointer}.ch-row.open td{background:var(--bg2)}.ch-caret{margin-right:6px;font-size:12px}.ch-detail>td{padding:0 0 12px!important;background:var(--bg2)}.chp.inline{padding:10px 12px 0;display:flex;flex-direction:column;gap:10px}.chp-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chp-body{display:flex;flex-direction:column;gap:10px}.prog{color:var(--accent-bright);font-weight:600}.back-bar{padding:12px var(--sp-6) 0}.row-err{font-size:var(--fs-xs);color:var(--danger);margin-top:3px;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-top{flex-wrap:nowrap;min-height:48px}.ed-top-l,.ed-top-r{flex-wrap:nowrap;min-width:0}.ed-top-l{flex:1 1 auto;overflow:hidden}.ed-top-r{flex:0 0 auto}.ed-title{min-width:0}.ed-title b{max-width:220px}.busy-chip .lbl{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.review-btn{min-width:118px;justify-content:center;font-variant-numeric:tabular-nums}@media (max-width:1600px){.ed-top-r .btn .lbl,.ed-top-r .chip-btn .lbl{display:none}.ed-top-r .btn.sm{padding-left:9px;padding-right:9px}}@media (max-width:1400px){.save-ind .lbl,.ed-title span{display:none}}.cmts{display:flex;flex-direction:column;gap:10px}.cmt-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto}.cmts.compact .cmt-list{max-height:260px}.cmt{border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;background:var(--bg2)}.cmt.mine{border-color:var(--line2)}.cmt.rr{border-color:#e0a4588c;background:#e0a45812}.cmt-h{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs)}.cmt-h .dim{margin-left:auto}.cmt-b{margin-top:4px;white-space:pre-wrap;word-break:break-word;font-size:var(--fs-sm)}.cmt-new{display:flex;gap:8px;align-items:flex-end}.cmt-new textarea{flex:1;min-height:44px;resize:vertical;background:var(--bg1);color:var(--text);border:1px solid var(--line2);border-radius:var(--r-sm);padding:6px 8px;font:inherit;font-size:var(--fs-sm)}.chip.xs{font-size:10px;padding:0 6px;line-height:16px}.cmt-count{display:inline-flex;align-items:center;gap:2px;margin-left:6px;color:var(--muted);font-size:var(--fs-xs)}.btn .cnt{margin-left:4px;min-width:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px;line-height:16px;text-align:center}.ed-warn.rr{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ed-warn.rr .btn{margin-left:auto}.thumb:focus{outline:2px solid var(--accent-bright);outline-offset:-2px}.btn.icon-only{padding-left:7px;padding-right:7px}td.right{white-space:nowrap}td.right>*+*{margin-left:6px}.fpick{position:relative;display:inline-flex}.fpick-btn{display:inline-flex;align-items:center;gap:5px;max-width:190px;height:26px;padding:0 8px;border-radius:7px;border:1px solid var(--line2);background:var(--bg2);color:var(--muted);font-size:var(--fs-xs);cursor:pointer}.fpick-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fpick-btn.manual{color:var(--text);border-color:var(--accent-bright)}.fpick-pop{position:absolute;z-index:40;top:calc(100% + 4px);left:0;width:280px;background:var(--bg1);border:1px solid var(--line2);border-radius:var(--r-sm);box-shadow:0 10px 30px #00000080;padding:8px;display:flex;flex-direction:column;gap:6px}.fpick-list{max-height:340px;overflow-y:auto;display:flex;flex-direction:column}.fpick-h{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);padding:8px 6px 3px}.fpick-it{text-align:left;background:none;border:0;color:var(--text);padding:6px 8px;border-radius:6px;font-size:16px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:30px}.fpick-it:hover{background:var(--bg3)}.fpick-it.on{background:var(--accent-soft);color:#fff}
