:root{--bg:#0f1115;--panel:#171a21;--line:#262b36;--ink:#e6e9ef;--muted:#8b93a3;--accent:#4f9cff;--accent2:#2bd4a7;--bad:#ff6b6b;--warn:#ffb454}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.chrome{position:sticky;top:0;z-index:20;background:var(--bg)}header{padding:14px 22px 12px;border-bottom:1px solid var(--line);position:relative}header h1{margin:0;font-size:18px}header p.sub{margin:3px 78px 0 0;color:var(--muted);font-size:13px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}header p.sub.open{display:block}header .subx{position:absolute;right:22px;bottom:11px;background:none;border:1px solid var(--line);border-radius:20px;color:var(--muted);font:inherit;font-size:11px;padding:1px 9px;cursor:pointer}header .subx[hidden]{display:none}header .subx:hover{border-color:var(--accent);color:var(--ink)}.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 22px;border-bottom:1px solid var(--line);background:var(--panel)}.nav a{color:var(--muted);text-decoration:none;font-size:13px;padding:11px 12px;border-bottom:2px solid transparent}.nav a:hover{color:var(--ink)}.nav a.on{color:var(--ink);border-bottom-color:var(--accent)}.navgrp{position:relative}.navgrp .ngbtn{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font:inherit;font-size:13px;padding:11px 12px;cursor:pointer;display:flex;align-items:center;gap:7px}.navgrp .ngbtn:hover{color:var(--ink)}.navgrp.on .ngbtn{color:var(--ink);border-bottom-color:var(--accent)}.navgrp .ngbtn .cx{font-size:9px;opacity:.7}.navgrp.open .ngbtn{color:var(--ink)}.navgrp.open .ngbtn .cx{transform:rotate(180deg)}.navgrp .ngbtn .cur{color:var(--accent2)}.navgrp .ngmenu{position:absolute;top:100%;left:6px;z-index:30;min-width:210px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 10px 28px #0000008c;display:flex;flex-direction:column}.navgrp .ngmenu.right{left:auto;right:6px}.navgrp .ngmenu[hidden]{display:none}.navgrp .ngmenu a{color:var(--ink);text-decoration:none;font-size:13px;padding:7px 10px;border-radius:7px;border:none;white-space:nowrap}.navgrp .ngmenu a:hover{background:#1d2230}.navgrp .ngmenu a.on{background:#13233d;color:var(--ink)}.navgrp .ngmenu .nghead{color:var(--muted);font-size:11px;padding:4px 10px 7px;border-bottom:1px solid var(--line);margin-bottom:5px;line-height:1.5}.navgrp .ngmenu .ngnone{color:var(--muted);font-size:12px;padding:6px 10px}.navgrp .ngmenu a.sep{border-top:1px solid var(--line);border-radius:0 0 7px 7px;margin-top:5px;padding-top:10px;color:var(--muted)}.navgrp .ngmenu a.sep:hover{color:var(--ink)}.nav .sp{margin-left:auto}.nav .badge{font-size:11px;color:var(--accent2);border:1px solid var(--line);border-radius:20px;padding:2px 9px;background:#0c0e13}.nav .badge.full{color:var(--bad);border-color:#5a2327}#ctxbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 22px;border-bottom:1px solid var(--line);background:#12151c}#ctxbar[hidden]{display:none}#ctxbar .ctxback{color:var(--ink);text-decoration:none;font-size:13px;border:1px solid var(--line);border-radius:20px;padding:4px 13px;background:var(--panel);white-space:nowrap}#ctxbar .ctxback:hover{border-color:var(--accent);color:var(--accent)}#ctxbar .ctxapply{background:var(--accent);color:#fff;border:none;border-radius:20px;padding:5px 14px;cursor:pointer;font:inherit;font-size:13px;white-space:nowrap}#ctxbar .ctxapply[disabled]{opacity:.45;pointer-events:none}#ctxbar .ctxmsg{color:var(--muted);font-size:12px}.wrap{display:grid;grid-template-columns:340px 1fr;gap:0;min-height:calc(100vh - 64px)}@media (max-width:820px){.wrap{grid-template-columns:1fr}}form{padding:18px 22px;border-right:1px solid var(--line)}fieldset{border:1px solid var(--line);border-radius:10px;margin:0 0 16px;padding:12px 14px}legend{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:0 6px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}.row label{color:var(--ink)}.row .hint{color:var(--muted);font-size:11px;display:block}input[type=number],select{width:110px;background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:6px 8px;font:inherit}input:focus,select:focus{outline:none;border-color:var(--accent)}.seg{display:flex;gap:6px}.seg button{flex:1;background:#0c0e13;color:var(--muted);border:1px solid var(--line);border-radius:7px;padding:6px 8px;cursor:pointer}.seg button.on{color:#fff;border-color:var(--accent);background:#13233d}.panel{padding:18px 22px}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:14px}.tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:8px 14px;cursor:pointer;font:inherit}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.tab{display:none}.tab.on{display:block}[hidden]{display:none!important}[data-ro-locked]{opacity:.82}[data-ro-soft-locked] input,[data-ro-soft-locked] select,[data-ro-soft-locked] textarea,[data-ro-soft-locked] button,[data-ro-soft-locked] [contenteditable]{pointer-events:none;opacity:.6}.robar{padding:7px 22px;border-bottom:1px solid #4a3a1a;background:#241d0f;color:#ffdca8;font-size:12.5px}.note{color:var(--muted);font-size:12px;margin:10px 2px 0}.preview{background:var(--bg);border:1px solid var(--line);border-radius:12px;min-height:420px;display:flex;align-items:center;justify-content:center;overflow:hidden}.preview img{max-width:100%;max-height:72vh;display:block}.preview .ph{color:var(--muted)}.view2d{position:relative;height:62vh;cursor:grab;touch-action:none}.view2d.empty{cursor:default}.view2d.panning{cursor:grabbing}.view2d .stage,.view2d .stage svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.view2d .stage svg *{vector-effect:non-scaling-stroke;stroke-width:1.4px}.view2d .ph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.view2d .busy{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;display:flex;align-items:center;justify-content:center;background:#0b0d119e}.view2d.working .ph{display:none}.view2d .busy .bbar{position:absolute;top:0;left:0;right:0;height:3px;overflow:hidden;background:#ffffff12}.view2d .busy .bbar span{position:absolute;top:0;bottom:0;width:35%;background:var(--accent);animation:bslide 1.3s ease-in-out infinite}@keyframes bslide{0%{left:-35%}to{left:100%}}.view2d .busy .bcard{display:flex;align-items:center;gap:12px;background:#171a21eb;border:1px solid var(--line);border-radius:12px;padding:13px 17px;box-shadow:0 10px 30px #00000080}.view2d .busy .bspin{width:20px;height:20px;border-radius:50%;flex:none;border:2px solid var(--line);border-top-color:var(--accent);animation:bspin .9s linear infinite}@keyframes bspin{to{transform:rotate(360deg)}}.view2d .busy .btext{font-size:13px}.view2d .busy .belapsed{color:var(--muted);font-size:11px;margin-top:3px;min-height:14px}@media (prefers-reduced-motion: reduce){.view2d .busy .bspin{animation:none}.view2d .busy .bbar span{animation:none;left:0;width:100%;opacity:.45}}.view2d .ztools{position:absolute;top:10px;right:10px;display:flex;gap:6px;align-items:center;z-index:2}.view2d.empty .ztools{display:none}.view2d .ztools .zlabel{color:var(--muted);font-size:11px;min-width:40px;text-align:center;background:#171a21d9;border:1px solid var(--line);border-radius:8px;padding:7px 6px}.view2d .ztools button{width:30px;height:30px;background:#171a21d9;border:1px solid var(--line);color:var(--ink);border-radius:8px;cursor:pointer;font-size:15px;line-height:1}.view2d .ztools button:hover{border-color:var(--accent)}.vopts{position:absolute;top:10px;left:10px;z-index:3}.view2d.empty .vopts{display:none}.vopts .vbtn{background:#171a21d9;border:1px solid var(--line);color:var(--muted);border-radius:8px;cursor:pointer;font:inherit;font-size:12px;padding:6px 10px;line-height:1.2}.vopts .vbtn:hover{border-color:var(--accent);color:var(--ink)}.vopts.on .vbtn{color:var(--accent2);border-color:var(--accent2)}.vopts .vmenu{position:absolute;top:calc(100% + 6px);left:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:170px;box-shadow:0 8px 24px #00000080}.vopts .vmenu[hidden]{display:none}.vopts .vmenu label{display:flex;align-items:center;gap:8px;padding:4px 2px;font-size:12.5px;cursor:pointer}.vopts .vmenu label.sep{border-top:1px solid var(--line);margin-top:4px;padding-top:7px}.vopts .vmenu input{width:auto;accent-color:var(--accent)}.vopts .vnote{color:var(--muted);font-size:11px;margin:6px 2px 0;max-width:200px;line-height:1.45}.viewer{position:relative;height:62vh}.viewer canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.viewer .ph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}.bar{display:flex;gap:10px;align-items:center;margin:14px 0;flex-wrap:wrap}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 14px;cursor:pointer;font:inherit;text-decoration:none;display:inline-block}.btn.alt{background:#1d2230;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:#3a1a1d;color:#ffd2d2;border:1px solid #5a2327}.btn.small{padding:4px 9px;font-size:11px;border-radius:6px}.btn[disabled]{opacity:.45;pointer-events:none}.dd{position:relative;display:inline-block}.dd .menu{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:180px;overflow:hidden;box-shadow:0 8px 24px #00000080}.dd.open .menu{display:block}.dd .menu a{display:block;padding:9px 14px;color:var(--ink);text-decoration:none;white-space:nowrap}.dd .menu a:hover{background:#1d2230}.dd .menu a[disabled]{opacity:.45;pointer-events:none}#toasts{position:fixed;top:14px;right:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}#toasts .toast{background:var(--panel);border:1px solid var(--line);border-left-width:3px;border-radius:10px;padding:11px 34px 11px 13px;font-size:13px;color:var(--ink);position:relative;box-shadow:0 10px 30px #0000008c;animation:toastin .18s ease-out}#toasts .toast.warn{border-left-color:var(--warn)}#toasts .toast.err{border-left-color:var(--bad)}#toasts .toast.ok{border-left-color:var(--accent2)}#toasts .toast .tx{position:absolute;top:5px;right:7px;background:none;border:none;color:var(--muted);font-size:15px;cursor:pointer;line-height:1;padding:2px 4px}#toasts .toast .tx:hover{color:var(--ink)}@keyframes toastin{0%{opacity:0;transform:translateY(-6px)}}a.dlbusy{opacity:.5;pointer-events:none}.msg{border-radius:10px;padding:12px 14px;margin:14px 0;font-size:13px}.msg.err{background:#2a1416;border:1px solid #5a2327;color:#ffd2d2}.msg.warn{background:#2a2210;border:1px solid #5a4a1f;color:#ffe6b0}.msg .fix{margin-top:8px;color:#fff}.msg .fix b{color:var(--accent2)}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.card .k{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.card .v{font-size:16px;margin-top:2px}.card .v small{color:var(--muted);font-size:11px}.spin{color:var(--muted);font-size:12px}.sethead{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin:18px 2px 8px}.setgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px 24px}.setgrid .row{margin:4px 0}.rohchips{display:flex;gap:8px;flex-wrap:wrap;margin:0 2px}.rohchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:3px 5px 3px 10px;font-size:12px}.rohchip b{color:var(--muted);font-size:10px;font-weight:600}.rohchip i{color:var(--muted);font-size:10px;font-style:normal;border:1px solid var(--line);border-radius:5px;padding:0 5px}.rohchip i.own{color:#e6d2ff;border-color:#4a3a63}.rohchip button{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;line-height:1;padding:2px 3px}.rohchip button:hover:not(:disabled){color:var(--accent)}.rohchip button:disabled{opacity:.25;cursor:default}.rohteile{display:flex;flex-direction:column;gap:10px;margin:0 2px}.rteil{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 12px}.rteil .line{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}.rteil .f{width:130px}.rteil .f.narrow{width:74px}.rteil .f.grow{flex:1 1 180px}.rteil .f label{display:block;color:var(--muted);font-size:11px;margin-bottom:2px}.rteil .f input,.rteil .f select{width:100%;background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font:inherit}.rteil .f input:focus,.rteil .f select:focus{outline:none;border-color:var(--accent)}.rteil .dims{display:flex;gap:8px;flex-wrap:wrap}.rteil .drop{background:none;border:1px solid var(--line);color:var(--muted);border-radius:7px;cursor:pointer;padding:5px 9px}.rteil .drop:hover{color:var(--bad);border-color:var(--bad)}.rteil .warn{color:var(--bad);font-size:11px;margin:6px 0 0}.rteil .from{color:var(--muted);font-size:11px;margin:6px 0 0}.prow{display:flex;gap:8px;align-items:center;margin:6px 0}.prow input{width:90px}.prow .x{color:var(--muted)}.prow button{background:none;border:1px solid var(--line);color:var(--muted);border-radius:7px;cursor:pointer;padding:4px 9px}.lookup .ltabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 14px}.lookup .ltabs .ltabbtn{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:7px 13px;cursor:pointer;font:inherit}.lookup .ltabs .ltabbtn.on{color:var(--ink);border-bottom-color:var(--accent)}.lookup .ltabs .ltabbtn:hover{color:var(--ink)}.lookup .ltabpane{display:none}.lookup .ltabpane.on{display:block}.lookup .ltabpane h3{display:none}.lookup .lfilter{background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:7px 10px;font:inherit;width:100%;max-width:320px;margin:2px 0 10px}.lookup .lfilter:focus{outline:none;border-color:var(--accent)}.lookup .lsec{margin:0 0 22px}.lookup .lsec h3{color:var(--ink);font-size:14px;margin:0 0 2px}.lookup .lmeta{color:var(--muted);font-size:12px;margin:0 0 8px}.lookup .lwrap{overflow:auto;border:1px solid var(--line);border-radius:10px;max-height:60vh}table.ltable{border-collapse:collapse;width:100%;font-size:12.5px;white-space:nowrap}table.ltable th,table.ltable td{padding:5px 10px;text-align:right;border-bottom:1px solid var(--line)}table.ltable thead th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:11px;z-index:1}table.ltable th.key,table.ltable td.key{text-align:left;color:var(--accent2)}table.ltable tbody tr:hover td{background:#12151c}table.ltable td.txt{text-align:left;color:var(--ink)}.lookup .lempty{color:var(--muted);font-size:12px;padding:10px 2px}.limsec{margin:0 0 14px}.limsec h4{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin:16px 2px 6px}.rule{display:flex;gap:8px;align-items:flex-start;margin:6px 0;flex-wrap:wrap}.rule input{background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:6px 8px;font:inherit}.rule input:focus{outline:none;border-color:var(--accent)}.rule .rlbl{flex:1 1 160px;align-self:center}.rule .rlbl .hint{color:var(--muted);font-size:11px;display:block}.rule .rname{width:150px}.rule .rval{width:100px}.rule .rwhen{flex:2 1 190px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.rule .rmsg{flex:3 1 240px}.rule .del{background:none;border:1px solid var(--line);color:var(--muted);border-radius:7px;cursor:pointer;padding:6px 10px;align-self:center}.rule .del:hover{border-color:var(--bad);color:var(--bad)}.limadd{padding:6px 12px;margin-top:4px}.rulevars{color:var(--muted);font-size:11px;margin:6px 2px;word-break:break-word;line-height:1.7}.rulevars code{color:var(--accent2);background:#0c0e13;border:1px solid var(--line);border-radius:5px;padding:1px 5px}.tabs .tabact{background:#1d2230;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:5px 12px;margin:4px 0 4px 10px;cursor:pointer;font:inherit;font-size:13px}.tabs .tabact:hover{border-color:var(--accent)}.tabs .tabact[disabled]{opacity:.45;pointer-events:none}.tabs .revcur{align-self:center;color:var(--muted);font-size:12px;border:1px solid var(--line);border-radius:20px;padding:3px 10px;background:#0c0e13;white-space:nowrap}.tabs .revcur.changed{color:var(--warn);border-color:#5a4a1f}.tabs .revscopetag{align-self:center;font:inherit;font-size:12px;color:var(--accent2);border:1px solid var(--line);border-radius:20px;padding:3px 10px;background:#0c0e13;white-space:nowrap;cursor:pointer;max-width:280px;overflow:hidden;text-overflow:ellipsis}.tabs .revscopetag:hover{border-color:var(--accent)}.tabs .revscopetag.none{color:var(--warn);border-color:#5a4a1f}.revscope{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 14px;margin:0 0 14px}.revscope.need{border-color:#5a4a1f;background:#1b1a14}.revscope .rsrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.revscope label{color:var(--muted);font-size:12px}.revscope select,.revscope input{background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font:inherit;width:auto}.revscope select{max-width:260px}.revscope select:focus,.revscope input:focus{outline:none;border-color:var(--accent)}.revscope .rsbtn{background:#1d2230;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:6px 11px;cursor:pointer;font:inherit;font-size:12px}.revscope .rsbtn:hover{border-color:var(--accent)}.revscope .rslink{color:var(--muted);font-size:12px;margin-left:auto;text-decoration:none;white-space:nowrap}.revscope .rslink:hover{color:var(--accent)}.revscope .rsnew{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.revscope .rsnew[hidden]{display:none}.revscope .rsnew .nm{width:210px}.revscope .rsnew .sm{width:80px}.revscope .rshint{color:var(--muted);font-size:12px;margin:8px 2px 0}.revscope.need .rshint{color:#ffe6b0}.revnote{flex:1 1 320px;max-width:520px;background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 10px;font:inherit}.revnote:focus{outline:none;border-color:var(--accent)}.revrest{display:flex;gap:6px;align-items:center}.revrest label{color:var(--muted);font-size:12px}.revno{width:92px;background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 10px;font:inherit}.revno:focus{outline:none;border-color:var(--accent)}.revlog .rvitem{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 10px}.revlog .rvhead{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.revlog .rvno{color:var(--accent2);font-size:13px}.revlog .rvwho{color:var(--ink);font-size:13px}.revlog .rvwhen{color:var(--muted);font-size:12px;margin-left:auto}.revlog .rvnote{margin:6px 0 0;font-size:13px}.revlog .rvmem{margin:6px 0 0;font-size:12px;color:var(--muted)}.revlog .rvmem b{color:var(--ink);font-weight:600}.revlog .rvmemrev{color:var(--accent2)}.revlog .rvnone{color:var(--muted);font-size:12px;margin:6px 0 0}.revlog .rvch{list-style:none;margin:8px 0 0;padding:0;font-size:13px}.revlog .rvch li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;padding:3px 0;border-top:1px solid var(--line)}.revlog .rvf{color:var(--muted);flex:0 0 190px}.revlog .rvold{color:var(--muted);text-decoration:line-through}.revlog .rvarr{color:var(--muted)}.revlog .rvnew{color:var(--accent2)}.revlog .rvold i,.revlog .rvnew i{color:var(--muted);font-style:normal}.revdraftbox .rvitem{border-style:dashed}.revdraftbox .rvitem.on{border-color:#5a4a1f;background:#1b1a14}.revdraftbox .rvitem.on .rvno{color:var(--warn)}.revlog .rvacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.revlog .rvbtn{background:#1d2230;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:5px 11px;cursor:pointer;font:inherit;font-size:12px}.revlog .rvbtn:hover{border-color:var(--accent)}.revlog .rvcmadd{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.revlog .rvcmadd[hidden]{display:none}.revlog .rvcmin{flex:1 1 260px;background:#0c0e13;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font:inherit}.revlog .rvcmin:focus{outline:none;border-color:var(--accent)}.revlog .rvcm{list-style:none;margin:8px 0 0;padding:0;font-size:13px}.revlog .rvcm li{padding:4px 0 4px 10px;border-left:2px solid var(--line);margin:4px 0}.revlog .rvcmtext{display:block}.revlog .rvcmwho{color:var(--muted);font-size:11px}
