:root{--ink:#16324F;--ink-2:#224B73;--ink-text:#F2F6FA;--ink-muted:#A9BCCD;--table:#E6EAEE;--paper:#FFFFFF;--text:#1C2833;--muted:#5A6B7B;--rule:#D5DDE3;--soft:#F3F6F8;--sel:#D1127A;--c-valve:#2563A8;--c-inst:#7B3FA0;--c-equip:#A86A12;--c-line:#0F766E;--c-logic:#5B6573;--ok:#1E8E4E;--warn:#B26A00;--bad:#B42318;--hl:#F5C518;--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root{--ink:#0E2136;--ink-2:#1A3A5A;--table:#1A232C;--paper:#131B23;--text:#E3EAF0;--muted:#94A6B6;--rule:#2B3947;--soft:#1B2631;--c-valve:#6EA8F0;--c-inst:#C08BE3;--c-equip:#E0A547;--c-line:#3CC2B2;--c-logic:#A3ADBA;--sel:#FF4FA8;--ok:#4CC38A;--warn:#E0A547;--bad:#F97066}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font:14px/1.45 var(--sans);color:var(--text);background:var(--table)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid #5AA0E6;outline-offset:2px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.small{font-size:12px}.nw{white-space:nowrap}.r{text-align:right}.center{height:100%;display:grid;place-items:center}.link{color:var(--c-valve);text-decoration:none}.link:hover{text-decoration:underline}.app{height:100%;display:grid;grid-template-rows:auto 1fr}.topbar{background:var(--ink);color:var(--ink-text);display:flex;align-items:stretch;gap:24px;padding:0 20px;min-height:52px}.brand{display:flex;flex-direction:column;justify-content:center}.brand b{font-weight:600;font-size:15px}.brand span{font-size:12px;color:var(--ink-muted)}.tabs{display:flex;gap:4px}.tabs a{display:flex;align-items:center;padding:0 14px;color:var(--ink-muted);text-decoration:none;font-weight:500;border-bottom:3px solid transparent}.tabs a.active{color:var(--ink-text);border-bottom-color:#8fc1f0}.who{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.who small{color:var(--ink-muted)}.main{min-height:0;overflow:hidden;position:relative}.page{height:100%;overflow:auto}.wrap{max-width:1180px;margin:0 auto;padding:28px 24px 48px}h1{font-size:22px;font-weight:600;margin:0 0 4px}.sub{color:var(--muted);margin:0 0 24px}.btn{height:36px;padding:0 14px;border-radius:6px;border:1px solid var(--rule);background:var(--paper);color:var(--text);font-weight:500;font-size:13px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}.btn:hover{background:var(--soft)}.btn.primary{background:var(--ink);color:var(--ink-text);border-color:var(--ink)}.btn.primary:hover{background:var(--ink-2)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--rule))}.btn.ghost{background:transparent;color:var(--ink-text);border-color:var(--ink-2)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[aria-pressed=false]{opacity:.6}.login{height:100%;display:grid;place-items:center;padding:24px;background:var(--ink)}.login .card{width:min(380px,100%);background:var(--paper);border-radius:12px;padding:28px;display:grid;gap:14px}.login label{display:grid;gap:4px;font-size:12px;font-weight:600}.login input{height:38px;border:1px solid var(--rule);border-radius:6px;padding:0 10px;background:var(--paper);font-weight:400;font-size:14px}.login .sub{margin:0}.err{color:var(--bad);font-size:13px}.drop{border:2px dashed var(--rule);background:var(--paper);border-radius:10px;padding:26px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}.drop.over{border-color:var(--c-valve);background:color-mix(in srgb,var(--c-valve) 6%,var(--paper))}.drop .ic{width:52px;height:52px;border-radius:10px;background:var(--soft);display:grid;place-items:center;flex:none}.drop .tx{flex:1;min-width:220px}.drop .tx b{display:block;font-size:15px;margin-bottom:2px}.drop .tx span{color:var(--muted);font-size:13px}.uploads{margin-top:12px;display:grid;gap:8px}.upl{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:10px 12px;font-size:13px}.bar{flex:1;height:6px;background:var(--soft);border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;width:40%;background:var(--c-valve);animation:slide 1.1s ease-in-out infinite}.bar.big{margin:14px 0 8px;height:8px}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.listhead{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:32px 0 12px;flex-wrap:wrap}.listhead h2{font-size:16px;margin:0;font-weight:600}.listhead input{height:34px;border:1px solid var(--rule);border-radius:6px;padding:0 10px;background:var(--paper);min-width:260px}.tablewrap{overflow-x:auto;background:var(--paper);border:1px solid var(--rule);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;padding:10px 14px;border-bottom:1px solid var(--rule);background:var(--soft);white-space:nowrap}td{padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:middle}tr:last-child td{border-bottom:0}tr.row:hover td{background:color-mix(in srgb,var(--soft) 60%,transparent)}.fname{font-weight:600;display:block}.fmeta{color:var(--muted);font-size:12px;font-family:var(--mono)}.wrapmeta{font-family:var(--sans);max-width:260px;margin-top:2px}.ext{display:inline-block;font:600 11px var(--mono);padding:2px 6px;border-radius:4px;background:var(--soft);border:1px solid var(--rule)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.pill:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--p)}.acts{display:flex;gap:6px;justify-content:flex-end;align-items:center}.emptyrow{padding:28px;text-align:center;color:var(--muted)}.afilters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.afilters select,.afilters input{height:34px;border:1px solid var(--rule);border-radius:6px;padding:0 10px;background:var(--paper)}.badge{font:600 11px var(--mono);padding:2px 8px;border-radius:10px;border:1px solid currentColor;white-space:nowrap}.pager{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:12px;font-size:13px}.stable{position:relative;min-height:0}.tablewrap.scroll{overflow:auto;max-height:70vh}.tablewrap.scroll thead th{position:sticky;top:0;z-index:1;box-shadow:inset 0 -1px 0 var(--rule)}.sbtn{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:30px;height:48px;border:1px solid var(--rule);background:color-mix(in srgb,var(--paper) 92%,transparent);color:var(--text);font-size:22px;line-height:1;cursor:pointer;box-shadow:0 2px 8px #0000001f}.sbtn:hover{background:var(--soft)}.sbtn.l{left:6px;border-radius:0 8px 8px 0}.sbtn.r{right:6px;border-radius:8px 0 0 8px}.pgr{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--muted)}.pgrcount{font-family:var(--mono);font-size:12px}.pgrbtns{display:flex;gap:4px;flex-wrap:wrap}.pgrbtns button{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--text);font-size:13px;cursor:pointer}.pgrbtns button:hover:not(:disabled){background:var(--soft)}.pgrbtns button:disabled{opacity:.4;cursor:default}.pgrbtns button[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--ink-text);font-weight:600}.pgrgap{align-self:center;padding:0 4px}.pgrsize{display:flex;align-items:center;gap:8px}.pgrsize select{height:32px;border:1px solid var(--rule);border-radius:6px;padding:0 8px;background:var(--paper);color:var(--text)}.gridpager{margin:-6px 24px 10px}.gridpager .pgr{margin-top:0}.listwrap>.stable{display:grid;min-height:0}.listwrap>.stable>.gridwrap{height:100%}.listwrap>.stable .sbtn.l{left:30px}.listwrap>.stable .sbtn.r{right:30px}@media (max-width:640px){.pgrsize{display:none}.sbtn{width:26px;height:40px;font-size:18px}}.viewer{height:100%;display:grid;grid-template-columns:420px 1fr;grid-template-rows:auto 1fr}.crumb{grid-column:1/-1;background:var(--paper);border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:12px;padding:8px 16px;flex-wrap:wrap}.crumb a{color:var(--c-valve);text-decoration:none;font-weight:500}.crumb .dn{font-weight:600}.crumb .sp{color:var(--muted)}.crumb .tools{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.sheetsel{height:30px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);padding:0 8px}aside.detail{background:var(--paper);border-right:1px solid var(--rule);overflow:auto;min-height:0}.stage{position:relative;min-height:0;background:var(--table)}.osd{position:absolute!important;top:0;right:0;bottom:0;left:0}.osd.mapping,.osd.mapping *{cursor:crosshair!important}.draw-box{position:absolute;border:2px dashed var(--sel);background:color-mix(in srgb,var(--sel) 12%,transparent);pointer-events:none;z-index:10}.filters{position:absolute;top:12px;left:12px;z-index:5;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 24px)}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--rule);background:var(--paper);font-size:12px;font-weight:500;box-shadow:0 1px 2px #0001}.chip i{width:10px;height:10px;border-radius:2px;background:var(--c)}.chip small{color:var(--muted);font-family:var(--mono)}.chip[aria-pressed=false]{opacity:.5}.chip[aria-pressed=false] i{background:transparent;outline:1.5px solid var(--c)}.hlbar{position:absolute;top:48px;left:12px;z-index:6;display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--ink-text);padding:6px 8px 6px 12px;border-radius:8px;font-size:13px;box-shadow:0 4px 14px #0003}.hlbar .btn{height:26px}.nofile{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--muted)}.nofile>div{max-width:440px;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:24px}.nofile b{display:block;color:var(--text);font-size:15px;margin-bottom:6px}.hs{border:2px solid color-mix(in srgb,var(--c) 70%,transparent);background:color-mix(in srgb,var(--c) 10%,transparent);border-radius:3px;pointer-events:none}.hs.unverified{border-style:dashed}.hs.hide{display:none}.hs.hov{background:color-mix(in srgb,var(--c) 28%,transparent);border-color:var(--c)}.hs.has:after{content:"";position:absolute;right:-6px;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--ok);border:2px solid var(--paper)}.hs.sel{border:3px solid var(--sel);background:color-mix(in srgb,var(--sel) 14%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--sel) 25%,transparent)}.hs.faint{border-color:transparent;background:transparent}.hs.faint.hov{border-color:var(--c)}.hs.match{border:3px solid #E8A200;background:color-mix(in srgb,var(--hl) 30%,transparent)}.hs.dim{opacity:.15}.search{position:relative;display:flex;align-items:center}.search .sic{position:absolute;left:10px;color:var(--muted);pointer-events:none}.search input{height:32px;width:340px;border:1px solid var(--rule);border-radius:6px;padding:0 56px 0 32px;background:var(--paper);font-size:13px}.search kbd{position:absolute;right:8px;font:500 10px var(--mono);color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:1px 5px;background:var(--soft)}.results{position:absolute;top:38px;right:0;width:460px;max-height:min(70vh,560px);overflow:auto;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:0 10px 30px #0003;z-index:20}.rg{display:flex;justify-content:space-between;padding:8px 12px 4px;font-size:11px;font-weight:600;color:var(--muted);border-top:1px solid var(--rule)}.rg:first-child{border-top:0}.rg small{font-family:var(--mono)}.ri{display:grid;gap:2px;width:100%;border:0;background:none;padding:7px 12px;text-align:left}.ri.act{background:var(--soft)}.rl{display:flex;align-items:center;gap:8px}.rl i{width:8px;height:8px;border-radius:2px;flex:none}.rl .tg{font-family:var(--mono);font-weight:500}.rl .ty{margin-left:auto;font-size:12px;color:var(--muted)}.sn{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results mark{background:color-mix(in srgb,var(--hl) 55%,transparent);color:inherit;border-radius:2px;padding:0 1px}.rnone{padding:14px 12px;font-size:13px;color:var(--muted)}.rfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--rule);background:var(--soft)}.dhead{padding:18px 20px 14px;border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--paper);z-index:3}.dhead .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.dhead h2{font:600 21px/1.2 var(--mono);margin:0;word-break:break-all}.ctype{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;color:var(--muted)}.ctype i{width:10px;height:10px;border-radius:2px;background:var(--c)}.unv{margin-left:6px;font-size:11px;border:1px dashed var(--warn);color:var(--warn);border-radius:10px;padding:0 8px}.x{border:1px solid var(--rule);background:var(--paper);border-radius:6px;width:30px;height:30px}.dtabs{display:flex;gap:2px;margin:14px 0 -14px;border-bottom:1px solid var(--rule)}.dtabs button[role=tab]{border:0;background:none;padding:8px 10px;font-size:13px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent}.dtabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--sel)}.dtabs small{font-family:var(--mono);color:var(--muted);margin-left:4px}.dtabs .zoom{margin-left:auto;align-self:center}.sec{padding:16px 20px;border-bottom:1px solid var(--rule)}.sec h3{font-size:13px;font-weight:600;margin:0 0 10px;display:flex;justify-content:space-between;align-items:center;gap:8px}.row-acts{display:flex;gap:6px}dl{margin:0;font-size:13px}.dlrow{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:3px 0}dt{color:var(--muted)}dd{margin:0;word-break:break-word}.rec{border:1px solid var(--rule);border-radius:8px;padding:12px;margin-bottom:10px}.rec .rh{display:flex;justify-content:space-between;gap:8px}.rec .cat{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--soft);border:1px solid var(--rule)}.rec .tt{font-weight:600;margin:6px 0 2px}.rec .dd{white-space:pre-wrap;font-size:13px}.rec .meta{font-size:12px;color:var(--muted);margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 12px}.ra{display:flex;gap:6px;margin-top:10px}.rec.flash{animation:flash 1.6s ease-out 1}@keyframes flash{0%{box-shadow:0 0 0 3px var(--hl)}to{box-shadow:0 0 0 0 transparent}}.confirm{margin:10px 0;padding:10px;border-radius:6px;background:color-mix(in srgb,var(--bad) 8%,var(--paper));border:1px solid color-mix(in srgb,var(--bad) 30%,var(--rule));font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rf{display:grid;gap:10px;padding:14px;background:var(--soft);border-radius:8px;margin-bottom:12px;border:1px solid var(--rule)}.rf .formtitle{font-size:14px}.rf label{display:grid;gap:4px;font-size:12px;font-weight:600}.rf .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.rf label{min-width:0}.rf input,.rf select,.rf textarea{width:100%}.rf input,.rf select,.rf textarea{height:34px;border:1px solid var(--rule);border-radius:6px;padding:0 8px;background:var(--paper);font-weight:400;font-size:13px}.rf textarea{height:auto;min-height:70px;padding:8px;resize:vertical}.rf .fa{display:flex;gap:8px;justify-content:flex-end}.ro{font-size:12px;color:var(--muted);background:var(--soft);border-radius:6px;padding:8px 10px;margin-bottom:10px}ol.tl{list-style:none;margin:0;padding:0;position:relative}ol.tl:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--rule)}ol.tl li{position:relative;padding:0 0 14px 22px}ol.tl li:before{content:"";position:absolute;left:0;top:4px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--ev)}.tl .when{font:12px var(--mono);color:var(--muted)}.tl .act{font:600 11px var(--mono);color:var(--ev)}.tl .what{font-size:13px;margin-top:2px}.tl .by{font-size:12px;color:var(--muted)}.diff{font-size:12px;margin-top:4px;display:grid;gap:2px}.diff del{color:var(--bad)}.diff ins{color:var(--ok);text-decoration:none}.empty{padding:28px 20px;color:var(--muted)}.empty>b{display:block;color:var(--text);font-size:16px;margin-bottom:6px}.reviewbox{margin-top:18px;padding:12px;border-radius:8px;border:1px solid color-mix(in srgb,var(--warn) 40%,var(--rule));background:color-mix(in srgb,var(--warn) 7%,var(--paper));color:var(--text);font-size:13px}.reviewbox.bad{border-color:color-mix(in srgb,var(--bad) 40%,var(--rule));background:color-mix(in srgb,var(--bad) 7%,var(--paper))}.reviewbox b{display:block;margin-bottom:4px}.panelfoot{padding:12px 20px;font-size:11px}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);background:var(--ink);color:var(--ink-text);padding:9px 16px;border-radius:6px;font-size:13px;opacity:0;transition:opacity .2s;z-index:60;pointer-events:none}.toast.on{opacity:1}.navigator{border:1px solid var(--rule)!important;background:var(--paper)!important}@media (max-width:900px){.viewer{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}aside.detail{grid-row:3;max-height:45vh;border-right:0;border-top:1px solid var(--rule)}.stage{grid-row:2;min-height:300px}.search input{width:200px}.results{width:calc(100vw - 32px)}.search kbd{display:none}.topbar{flex-wrap:wrap;gap:8px}.who{margin-left:0;padding-bottom:8px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.app{height:100%;display:grid;grid-template-rows:1fr;grid-template-columns:var(--sbw,252px) minmax(0,1fr);transition:grid-template-columns .2s}.app.collapsed{--sbw:60px}.sidebar{background:var(--ink);color:var(--ink-text);display:flex;flex-direction:column;min-height:0;overflow:hidden}.sbhead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 12px 16px;border-bottom:1px solid var(--ink-2);min-height:62px}.sbhead .brand{min-width:0}.sbhead .brand b{white-space:nowrap}.sbtoggle{width:30px;height:30px;border-radius:6px;border:1px solid var(--ink-2);background:transparent;color:var(--ink-text);flex:none;display:grid;place-items:center}.sbtoggle:hover{background:var(--ink-2)}.app.collapsed .sbtoggle svg{transform:rotate(180deg)}.snav{flex:1;overflow:auto;padding:10px 8px}.sparent{width:100%;display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--ink-text);padding:9px 10px;border-radius:6px;font-weight:600;font-size:13px;text-align:left;white-space:nowrap}.sparent:hover{background:var(--ink-2)}.sparent svg{flex:none}.sparent .chev{margin-left:auto;transition:transform .15s;opacity:.7}.sparent[aria-expanded=false] .chev{transform:rotate(-90deg)}.schildren{display:grid;gap:1px;margin:2px 0 10px 19px;padding-left:10px;border-left:1px solid var(--ink-2)}.sparent[aria-expanded=false]+.schildren{display:none}.schildren a{display:block;padding:7px 10px;border-radius:6px;color:var(--ink-muted);text-decoration:none;font-size:13px;white-space:nowrap}.schildren a:hover{background:var(--ink-2);color:var(--ink-text)}.schildren a.active{background:#ffffff1c;color:var(--ink-text);font-weight:500;box-shadow:inset 3px 0 #8fc1f0}.sbuser{display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--ink-2)}.uav{width:32px;height:32px;border-radius:50%;background:#8fc1f0;color:var(--ink);display:grid;place-items:center;font-weight:600;font-size:12px;flex:none}.uinfo{min-width:0;display:grid}.uinfo b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uinfo span{font-size:11px;color:var(--ink-muted)}.ulogout{margin-left:auto;width:30px;height:30px;border-radius:6px;border:1px solid var(--ink-2);background:transparent;color:var(--ink-text);display:grid;place-items:center;flex:none}.ulogout:hover{background:var(--ink-2)}.app.collapsed .brand,.app.collapsed .sparent span,.app.collapsed .sparent .chev,.app.collapsed .schildren,.app.collapsed .uinfo,.app.collapsed .ulogout{display:none}.app.collapsed .sbhead{justify-content:center;padding:14px 0}.app.collapsed .sparent,.app.collapsed .sbuser{justify-content:center;padding:10px 0}.login{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:var(--ink)}.lcard{width:min(400px,100%);background:var(--paper);border-radius:12px;padding:26px;display:grid;gap:14px;box-shadow:0 20px 60px #0005}.lbrand{display:flex;gap:12px;align-items:center;color:var(--ink)}.lbrand b{display:block;font-size:17px;color:var(--text)}.lbrand span{font-size:13px;color:var(--muted)}.lcard label{display:grid;gap:4px;font-size:12px;font-weight:600}.lcard input{height:38px;border:1px solid var(--rule);border-radius:6px;padding:0 10px;background:var(--paper);font-weight:400;font-size:14px}.lcard .btn.primary{height:38px;justify-content:center}.lerr{color:var(--bad);font-size:13px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar select,.toolbar input[type=search]{height:34px;border:1px solid var(--rule);border-radius:6px;padding:0 10px;background:var(--paper)}.toolbar input[type=search]{min-width:240px}.uparea{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.uparea select{height:36px;border:1px solid var(--rule);border-radius:6px;padding:0 10px;background:var(--paper);color:var(--text);max-width:360px}.areatag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:2px 8px;border-radius:10px;background:var(--soft);border:1px solid var(--rule);white-space:nowrap}.areatag i{width:8px;height:8px;border-radius:2px;background:var(--a,var(--muted))}select.areasel{height:30px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);padding:0 6px;font-size:12px;width:180px}.counts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.counts button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--rule);background:var(--paper);font-size:12px;font-weight:500}.counts button i{width:8px;height:8px;border-radius:2px;background:var(--a,var(--muted))}.counts button small{font-family:var(--mono);color:var(--muted)}.counts button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.page .wrap{max-width:1480px}td.dcell{min-width:230px}.outlink{color:var(--c-valve);font-weight:500;text-decoration:none;white-space:nowrap}.outlink:hover{text-decoration:underline}.formrow{display:grid;grid-template-columns:minmax(160px,1.2fr) 110px minmax(200px,2fr) 110px auto;gap:10px;align-items:end;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:14px}.formrow label{display:grid;gap:4px;font-size:12px;font-weight:600;min-width:0}.formrow input{width:100%;min-width:0;height:34px;border:1px solid var(--rule);border-radius:6px;padding:0 8px;background:var(--paper);font-weight:400}.formrow input[type=color]{padding:2px}tr.inl input{height:30px;border:1px solid var(--rule);border-radius:6px;padding:0 8px;background:var(--paper);width:100%}tr.inl input[type=color]{width:48px;padding:2px}.warnline{font-size:12px;color:var(--bad)}.viewer{height:100%;display:grid;grid-template-columns:232px minmax(0,1fr) 400px;grid-template-rows:auto minmax(0,1fr)}.viewer.nodemo{grid-template-columns:minmax(0,1fr) 400px}.viewer .crumb{grid-column:1/-1}.vrail{grid-row:2;background:var(--paper);border-right:1px solid var(--rule);padding:14px 12px;display:flex;flex-direction:column;gap:18px;min-height:0;overflow:visible;position:relative;z-index:8}.vsec{display:grid;gap:8px}.vh{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.vrail .search input{width:100%}.vrail .results{left:0;right:auto;width:460px}.vtools{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.vtools .btn,.vfull{justify-content:center;height:32px}.vfull{width:100%}.vrail .filters{position:static;display:grid;gap:6px;max-width:none}.vrail .chip{width:100%;height:34px;border-radius:6px;justify-content:flex-start;box-shadow:none}.vrail .chip small{margin-left:auto}.viewer .stage{grid-row:2}.viewer aside.detail{grid-row:2;border-right:0;border-left:1px solid var(--rule)}.hlbar{top:12px}details.outl{border:1px solid var(--rule);border-radius:8px;margin-bottom:8px}details.outl summary{display:flex;gap:8px;align-items:center;padding:8px 10px;cursor:pointer;font-size:13px;list-style:none}details.outl summary::-webkit-details-marker{display:none}details.outl summary .tolink{margin-left:auto;font-size:12px}details.outl dl{padding:0 10px 8px;font-size:12px}dd.tbav{color:#8a6a00;background:#fff2cc;border-radius:3px;padding:0 4px;justify-self:start}dd.edv{color:var(--c-inst);font-weight:500}.sec h3 em.dum{font-style:normal;font-weight:400;font-size:11px;color:var(--muted);border:1px solid var(--rule);border-radius:10px;padding:1px 8px}a.tolink{display:inline-flex;align-items:center;gap:3px;color:var(--c-valve);text-decoration:none;font-weight:500}a.tolink:hover{text-decoration:underline}.listwrap{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;height:100%;min-height:0;position:relative}.listwrap.fs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:var(--table)}.listwrap.fs .gridnotes{display:none}.listtop{padding:22px 24px 12px;display:grid;gap:10px}.listtop h1{margin:0}.lthead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.meta2{font-size:12px;color:var(--muted);display:flex;gap:6px 16px;flex-wrap:wrap}.meta2 b{color:var(--text);font-weight:500}.meta2 .linked{color:var(--c-valve)}.meta2 .edcount{color:var(--c-inst)}.ltabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 24px 10px}.ltabs button{flex:none;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:6px;border:1px solid var(--rule);background:var(--paper);font-size:12px;font-weight:500;white-space:nowrap}.ltabs button .ln{font:600 10px var(--mono);color:var(--muted)}.ltabs button small{font-family:var(--mono);color:var(--muted);background:var(--soft);border-radius:8px;padding:0 6px}.ltabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}.ltabs button[aria-selected=true] .ln,.ltabs button[aria-selected=true] small{color:var(--ink-muted);background:transparent}.gridwrap{margin:0 24px 16px;overflow:auto;background:var(--paper);border:1px solid var(--rule);border-radius:10px;min-height:0}table.grid{border-collapse:separate;border-spacing:0;font-size:12px;width:max-content;min-width:100%}table.grid th,table.grid td{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:6px 10px;vertical-align:top;max-width:280px}table.grid thead th{position:sticky;background:var(--soft);z-index:2;font-weight:600;text-align:left}table.grid thead tr.g th{top:0;background:var(--ink);color:var(--ink-text);text-align:center;font-size:11px}table.grid thead tr.h th{top:var(--gh,0px);min-width:70px}table.grid td.sno,table.grid th.sno{position:sticky;left:0;z-index:1;background:var(--paper);text-align:right;color:var(--muted);font-family:var(--mono);min-width:56px;width:56px;max-width:56px;box-sizing:border-box;padding-left:4px}table.grid thead th.sno{z-index:3;background:var(--soft)}table.grid thead tr.g th.sno{background:var(--ink);left:0}table.grid td.key,table.grid th.key{position:sticky;left:56px;z-index:1;background:var(--paper);font-family:var(--mono);font-weight:500;white-space:nowrap;box-shadow:1px 0 0 var(--rule)}table.grid thead th.key{z-index:3;background:var(--soft)}table.grid td.tba{background:#fff2cc;color:#6b5200}table.grid td.num{text-align:right;font-family:var(--mono)}table.grid td.edited{background:color-mix(in srgb,var(--c-inst) 9%,var(--paper));box-shadow:inset 3px 0 0 var(--c-inst)}table.grid td.act{outline:2px solid var(--c-valve);outline-offset:-2px}table.grid mark{background:color-mix(in srgb,#F5C518 55%,transparent);color:inherit}.listwrap.editing table.grid td.val{cursor:text}.listwrap.editing table.grid td.val:hover{outline:2px solid color-mix(in srgb,var(--c-valve) 55%,transparent);outline-offset:-2px}.listwrap.editing table.grid td.key{cursor:not-allowed}.gridnotes{max-height:22vh;overflow:auto;margin:0 24px 16px;font-size:12px;color:var(--muted);display:grid;gap:3px}.nolists{padding:32px;max-width:640px}.nolists>b{font-size:16px}.nolists p{color:var(--muted)}.btn .cnt{font-family:var(--mono);font-size:11px;color:var(--muted)}.btn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}.celled{position:absolute;z-index:40;background:var(--paper);border:1px solid var(--rule);border-radius:10px;box-shadow:0 12px 34px #0003;padding:12px;display:grid;gap:8px}.ceh{display:flex;justify-content:space-between;gap:8px;font-size:13px}.celled textarea{width:100%;border:1px solid var(--rule);border-radius:6px;padding:7px 8px;font:13px var(--sans);background:var(--paper);color:var(--text);resize:vertical}.cemeta{font-size:11px;color:var(--muted);line-height:1.4}.cea{display:flex;gap:6px;flex-wrap:wrap}.hisdrawer{position:absolute;top:120px;right:0;bottom:0;width:min(380px,92vw);background:var(--paper);border-left:1px solid var(--rule);box-shadow:-10px 0 30px #0002;z-index:30;overflow:auto;padding:16px 18px}.hdh{display:flex;align-items:center;gap:8px;margin-bottom:12px}.hdh .x{margin-left:auto}@media (max-width:1100px){.viewer{grid-template-columns:200px minmax(0,1fr) 340px}}@media (max-width:900px){.viewer,.viewer.nodemo{grid-template-columns:1fr;grid-template-rows:auto auto minmax(300px,1fr) auto}.vrail{grid-row:2;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--rule)}.viewer .stage{grid-row:3}.viewer aside.detail{grid-row:4;max-height:45vh;border-left:0;border-top:1px solid var(--rule)}.formrow{grid-template-columns:1fr 1fr}}.sbclient{display:grid;gap:4px;padding:10px 14px 4px;font-size:11px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}.sbclient select{height:32px;border-radius:6px;border:1px solid var(--ink-2);background:var(--ink-2);color:var(--ink-text);padding:0 8px;font-size:13px;text-transform:none;letter-spacing:0}.app.collapsed .sbclient{display:none}.cform{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin:12px 0 20px}.cform fieldset{border:1px solid var(--rule);border-radius:8px;padding:12px 14px;display:grid;gap:10px;background:var(--paper);min-width:0}.cform legend{font-weight:600;font-size:13px;padding:0 4px}.cform label{display:grid;gap:4px;font-size:13px;color:var(--muted)}.cform input:not([type=checkbox]),.cform select,.cform textarea{height:34px;border:1px solid var(--rule);border-radius:6px;padding:0 10px;background:var(--paper);color:var(--text);font:inherit;min-width:0}.cform textarea{height:auto;padding:8px 10px;resize:vertical}.cform .acts{grid-column:1/-1}label.chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}.acts.left{justify-content:flex-start;gap:18px;margin:4px 0 14px}.crumb{font-size:13px;color:var(--muted);margin:0 0 4px}tr.clickable{cursor:pointer}.rb{margin-top:28px}.rb h3{font-size:14px;margin:18px 0 8px}.formrow.rbhead{grid-template-columns:minmax(200px,1fr) minmax(180px,1fr) minmax(220px,2fr);margin:12px 0}.formrow.rbstack{grid-template-columns:auto minmax(120px,1fr) minmax(120px,1fr) 130px minmax(120px,1fr) auto}.formrow select,tr.inl select{height:34px;border:1px solid var(--rule);border-radius:6px;padding:0 8px;background:var(--paper);color:var(--text);font:inherit;min-width:0;width:100%}tr.inl select{height:30px}.rbtable td{vertical-align:top}.rbtable td.rbpat{min-width:240px}.rbtable td.rbmatch{min-width:180px;max-width:320px}.rbtable tr.off td:not(:first-child){opacity:.6}.rbnote{font-family:var(--sans)}input[aria-invalid=true]{border-color:var(--bad)!important;box-shadow:0 0 0 1px var(--bad)}@media (max-width:760px){.formrow.rbhead,.formrow.rbstack{grid-template-columns:1fr 1fr}}.hint{color:var(--muted);font-size:13px;line-height:1.5}.formrow.assignrow{grid-template-columns:minmax(200px,1fr) minmax(160px,1fr) auto auto}@media (max-width:760px){.formrow.assignrow{grid-template-columns:1fr 1fr}}.formrow.rbstack{grid-template-columns:auto minmax(110px,1fr) minmax(110px,1fr) 130px minmax(110px,1fr) auto auto}.rbskip{margin:4px 0 0}tr.off td{color:var(--muted)}.extractbox{margin:16px 0;padding:14px 16px;border:1px solid color-mix(in srgb,var(--c-valve) 35%,var(--rule));border-radius:10px;background:color-mix(in srgb,var(--c-valve) 6%,var(--paper));display:grid;gap:8px;font-size:14px}.extractbox .exhead{display:flex;align-items:center;gap:12px}.extractbox .exhead .btn{margin-left:auto}.extractbox .bar i{transition:width .6s}.anadrop{flex-wrap:wrap}.anadrop .tx{flex:1 1 280px}.mtop{display:none}@media (max-width:760px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.mtop{display:flex;align-items:center;gap:10px;height:52px;padding:0 10px;background:var(--ink);color:var(--ink-text);position:relative;z-index:5}.mtop b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mburger{width:40px;height:40px;border-radius:8px;border:1px solid var(--ink-2);background:transparent;color:var(--ink-text);display:grid;place-items:center;flex:none}.main{grid-row:2}.app .sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:210;transform:translate(-105%);transition:transform .22s ease;box-shadow:6px 0 30px #0005}.app.navopen .sidebar{transform:none}.mback{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;z-index:200}.schildren a,.sparent{padding-top:11px;padding-bottom:11px}.wrap{padding:16px 14px 40px}h1{font-size:22px}.sub{font-size:14px}.listhead{margin-top:24px}.listhead input,.toolbar input[type=search]{min-width:0;width:100%}.toolbar{flex-wrap:wrap}.drop{flex-direction:column;align-items:stretch;gap:12px;padding:16px}.drop .ic{display:none}.drop .uparea{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center}.drop .uparea select{width:100%;min-width:0}.drop .btn{justify-content:center}.formrow,.formrow.rbhead,.formrow.rbstack,.formrow.assignrow{grid-template-columns:minmax(0,1fr)}.formrow select,.formrow input{width:100%}.cform{grid-template-columns:minmax(0,1fr)}.acts.left{flex-wrap:wrap}.afilters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.afilters>*{flex:none}.pgr{justify-content:center}.pgrcount{width:100%;text-align:center}.extractbox .exhead{flex-wrap:wrap}.toast{left:12px;right:12px;transform:none;text-align:center}.listtop{padding:14px 12px 8px}.lthead{flex-wrap:wrap}.lthead h1{font-size:19px}.listwrap .toolbar .uparea{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}.listwrap .toolbar .uparea select{width:100%;min-width:0}.listwrap .toolbar .btn{flex:1 1 auto;justify-content:center}.ltabs{flex-wrap:nowrap;overflow-x:auto;margin:0 12px 8px;padding-bottom:4px;scrollbar-width:thin}.gridwrap{margin:0 12px 12px}.gridpager{margin:-4px 12px 8px}.listwrap>.stable .sbtn.l{left:16px}.listwrap>.stable .sbtn.r{right:16px}.gridnotes{padding:0 12px 12px}.viewer,.viewer.nodemo{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto}.viewer .crumb{padding:8px 12px;gap:8px}.viewer .crumb .fmeta,.viewer .crumb .areatag{display:none}.viewer .crumb .sheetsel{margin-left:auto}.vrail{grid-row:2;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border-right:0;border-bottom:1px solid var(--rule)}.vrail .vh{display:none}.vrail .vsec{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.vrail .vsec:first-child{flex:1 1 100%}.vrail .search,.vrail .search input{width:100%}.vrail .results{width:calc(100vw - 24px)}.vtools{display:flex}.vtools .btn{width:40px}.vfull{width:auto}.vrail .filters{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;max-width:calc(100vw - 24px)}.vrail .chip{width:auto;flex:none;height:32px}.viewer .stage{grid-row:3;min-height:0}.viewer aside.detail{grid-row:4;max-height:26vh;border-left:0;border-top:1px solid var(--rule)}.viewer.hassel aside.detail{position:fixed;left:0;right:0;bottom:0;max-height:48vh;z-index:120;border-radius:14px 14px 0 0;box-shadow:0 -10px 30px #0003;border-top:0}.viewer.hassel aside.detail:before{content:"";display:block;width:40px;height:4px;border-radius:2px;background:var(--rule);margin:8px auto 0}.navigator{display:none!important}.hisdrawer{top:0;width:100vw}.anadrop .tx{flex:none}.tablewrap.scroll table{min-width:640px}.tablewrap.scroll td.mono.small,.tablewrap.scroll td.small{min-width:180px}.main>.listwrap{display:block;height:100%;overflow:auto}.main>.listwrap.fs{height:auto}.listwrap>.stable{display:block}.listwrap>.stable>.gridwrap{height:65vh}}@keyframes spin{to{transform:rotate(360deg)}}.spin{display:inline-block;width:1em;height:1em;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .75s linear infinite;vertical-align:-.15em;opacity:.8}.loading{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.loading.block{display:flex;padding:28px 0}.btn .spin{margin-right:2px}.pill.busy:before{display:none}.pill.busy .spin{color:var(--p);width:11px;height:11px;border-width:2px}.exhead .spin{color:var(--c-valve)}.actbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:400;overflow:hidden;background:color-mix(in srgb,var(--c-valve) 20%,transparent)}.actbar i{position:absolute;inset:0 auto 0 0;width:35%;background:var(--c-valve);animation:actslide 1s ease-in-out infinite}@keyframes actslide{0%{transform:translate(-100%)}to{transform:translate(300%)}}.actveil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:390;background:color-mix(in srgb,var(--paper) 45%,transparent);display:grid;place-items:center;cursor:progress}.actveil>div{display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--ink-text);padding:12px 18px;border-radius:10px;box-shadow:0 10px 30px #0004;font-size:14px}.pgsum{margin-top:16px;border:1px solid var(--rule);border-radius:8px;text-align:left;overflow:hidden}.pgsum-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--soft);border-bottom:1px solid var(--rule)}.pgsum ul{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto}.pgsum-r{display:flex;width:100%;gap:10px;align-items:baseline;justify-content:space-between;padding:6px 12px;border:0;border-bottom:1px solid var(--rule);background:none;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}.pgsum li:last-child .pgsum-r{border-bottom:0}.pgsum-r:hover{background:var(--soft)}.pgsum-r.on{box-shadow:inset 3px 0 0 var(--ok)}.pgsum-r .pg{font-weight:600;white-space:nowrap}.pgsum-r .n{font-family:var(--mono);color:var(--ok)}.pgsum-r .why{color:var(--muted);font-size:12px;text-align:right}
