*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Spline Sans Mono,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.grow{flex-grow:1}.border{border-width:1px}.uppercase{text-transform:uppercase}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--ink: #16181d;--ink-soft: #5a606e;--ink-faint: #8b909d;--paper: #f3f1ec;--panel: #fbfaf7;--panel-edge: #e3e0d7;--line: #d9d5ca;--hairline: #e9e6dd;--data: #1f6f6b;--data-bg: #e6f0ee;--data-edge: #bcd6d2;--meta: #9a4a2e;--meta-bg: #f3e7df;--meta-edge: #e2cabc;--accent: #c2502b;--good: #2f7d4f;--bad: #b03636;--warn: #a8761c;--r: 6px;--shadow: 0 1px 0 rgba(0, 0, 0, .03), 0 2px 6px rgba(30, 28, 22, .06);--shadow-lg: 0 10px 40px -12px rgba(30, 28, 22, .28);--mono: "Spline Sans Mono", ui-monospace, monospace;--disp: "Fraunces", Georgia, serif;--body: "Inter", system-ui, sans-serif}html{-webkit-font-smoothing:antialiased}body{font-family:var(--body);background:var(--paper);color:var(--ink);font-size:14px;line-height:1.45}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.app{display:grid;grid-template-rows:auto 1fr;height:100vh;overflow:hidden}.titlebar{display:flex;align-items:center;gap:16px;height:46px;padding:0 16px;background:var(--ink);color:#f3f1ec;border-bottom:1px solid #000;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex:none}.lights{display:flex;gap:8px}.lights i{width:11px;height:11px;border-radius:50%;display:block}.lights i:nth-child(1){background:#ec6a5e}.lights i:nth-child(2){background:#f4bf4f}.lights i:nth-child(3){background:#61c554}.wordmark{font-family:var(--disp);font-weight:600;font-size:16px;letter-spacing:.04em}.wordmark b{color:var(--accent);font-weight:600}.titlebar .sub{font-size:11px;color:#8a8e97;font-family:var(--mono);letter-spacing:.02em}.teampill{display:flex;align-items:center;gap:8px;background:#22252c;border:1px solid #34373f;border-radius:20px;padding:4px 12px 4px 8px;font-size:12px;cursor:pointer}.teampill .flag{width:18px;height:18px;border-radius:4px;background:linear-gradient(135deg,#1f6f6b,#2f9d8f);display:grid;place-items:center;font-size:9px;font-weight:600;color:#fff;font-family:var(--mono)}.teampill .cc{color:#c8ccd4}.teampill .car{color:#6a6e77;font-size:10px}.sync{display:flex;align-items:center;gap:7px;font-size:11.5px;font-family:var(--mono);color:#aeb2bb}.sync .dot{width:8px;height:8px;border-radius:50%;background:var(--good);animation:pulse 2.6s infinite}.sync.queued .dot{background:var(--warn);animation:none}.sync.offline .dot{background:#6a6e77;animation:none}.sync.conflict .dot{background:var(--bad);animation:none}@keyframes pulse{0%{box-shadow:0 0 #2f7d4f80}70%{box-shadow:0 0 0 6px #2f7d4f00}to{box-shadow:0 0 #2f7d4f00}}.frame{display:grid;grid-template-columns:218px 1fr;height:100%;overflow:hidden}.nav{background:var(--panel);border-right:1px solid var(--panel-edge);padding:14px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav .grp{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);margin:14px 8px 6px;font-weight:600}.nav .grp:first-child{margin-top:0}.navitem{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:var(--r);cursor:pointer;color:var(--ink-soft);font-size:13px;font-weight:450;position:relative;transition:background .12s,color .12s;text-align:left;width:100%;border:0;background:transparent;font-family:var(--body)}.navitem svg{width:16px;height:16px;flex:none;opacity:.8}.navitem .ct{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-faint);background:var(--hairline);padding:1px 6px;border-radius:10px}.navitem:hover{background:var(--hairline);color:var(--ink)}.navitem.on{background:var(--ink);color:#f3f1ec}.navitem.on .ct{background:#33363d;color:#cdd0d6}.navitem.on svg{opacity:1}.navitem:disabled{opacity:.45;cursor:not-allowed}.nav .userbox{margin-top:auto;padding:10px 8px 4px;border-top:1px solid var(--hairline);display:flex;align-items:center;gap:9px;cursor:pointer}.ava{width:28px;height:28px;border-radius:50%;background:var(--meta);color:#fff;display:grid;place-items:center;font-weight:600;font-size:12px;flex:none}.userbox .nm{font-size:12.5px;font-weight:500;line-height:1.2}.userbox .rl{font-size:10.5px;color:var(--ink-faint);font-family:var(--mono)}.main{overflow-y:auto;position:relative}.pagehead{padding:24px 30px 16px;border-bottom:1px solid var(--hairline)}.pagehead h1{font-family:var(--disp);font-weight:500;font-size:27px;letter-spacing:-.01em;line-height:1.1}.pagehead .lead{color:var(--ink-soft);margin-top:5px;max-width:64ch;font-size:13.5px}.pagehead .crumb{font-family:var(--mono);font-size:11px;color:var(--ink-faint);letter-spacing:.04em;margin-bottom:8px;text-transform:uppercase}.pad{padding:22px 30px 40px}.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:var(--panel);border:1px solid var(--panel-edge);border-radius:var(--r);padding:14px 16px}.stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);font-weight:600}.stat .v{font-family:var(--disp);font-size:30px;font-weight:500;margin-top:4px;letter-spacing:-.01em}.stat .v small{font-size:14px;color:var(--ink-faint);font-family:var(--body);font-weight:400}.stat .bar{height:5px;background:var(--hairline);border-radius:3px;margin-top:9px;overflow:hidden}.stat .bar i{display:block;height:100%;border-radius:3px;background:var(--good)}.stat .delta{font-size:11px;color:var(--ink-soft);margin-top:7px;font-family:var(--mono)}.pipe{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.pcol{background:var(--panel);border:1px solid var(--panel-edge);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}.pcol h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:9px 11px;color:var(--ink-soft);display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--hairline);font-weight:600}.pcol h3 .num{margin-left:auto;font-family:var(--mono);background:var(--hairline);border-radius:9px;padding:0 7px;font-size:11px;color:var(--ink-soft)}.pcol .stp{width:6px;height:6px;border-radius:50%;background:var(--ink-faint)}.pcol[data-s=design] .stp{background:var(--meta)}.pcol[data-s=record] .stp{background:#7a6cc4}.pcol[data-s=test] .stp{background:var(--data)}.pcol[data-s=judge] .stp{background:var(--warn)}.pcol[data-s=approved] .stp{background:var(--good)}.pcol .body{padding:8px;display:flex;flex-direction:column;gap:7px;min-height:60px;flex:1}.card{background:#fff;border:1px solid var(--line);border-radius:5px;padding:9px 10px;transition:border-color .12s,box-shadow .12s,transform .1s}.card:hover{border-color:var(--ink-faint);box-shadow:var(--shadow);transform:translateY(-1px)}.card .id{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:500}.card .ti{font-size:12.5px;font-weight:500;margin:3px 0 5px;line-height:1.3}.card .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.card .who{font-size:10.5px;color:var(--ink-faint);margin-top:6px;display:flex;align-items:center;gap:5px}.card .pend{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warn);margin-left:auto}.card .acts{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.tag{font-size:10px;font-family:var(--mono);padding:1px 6px;border-radius:3px;background:var(--hairline);color:var(--ink-soft);letter-spacing:.02em}.tag.lang{background:#e7eef0;color:#3a6b78}.tag.hard{background:#f6ece0;color:var(--warn)}.tag.xhard,.tag.chal{background:#f3e0db;color:var(--bad)}.tag.non{background:#e1efe5;color:var(--good)}.statepill{font-size:10.5px;font-family:var(--mono);padding:2px 8px;border-radius:11px;font-weight:500;white-space:nowrap}.sp-DRAFT{background:var(--meta-bg);color:var(--meta)}.sp-READY_TO_RECORD{background:#efe8df;color:#8a5a3a}.sp-RECORDING{background:#ece8f7;color:#6a5cb8}.sp-READY_TO_TEST{background:#e7eef0;color:#3a6b78}.sp-TESTED{background:var(--data-bg);color:var(--data)}.sp-JUDGED,.sp-AWAITING_SECOND_REVIEW{background:#f0ead8;color:var(--warn)}.sp-DISPUTED{background:#f3e0db;color:var(--bad)}.sp-APPROVED{background:#e1efe5;color:var(--good)}.btn{font-family:var(--body);font-size:13px;font-weight:500;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:7px 14px;border-radius:var(--r);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:background .12s,border-color .12s,transform .08s;white-space:nowrap}.btn:hover{border-color:var(--ink-faint);background:#fff}.btn:active{transform:translateY(1px)}.btn.pri{background:var(--ink);color:#f3f1ec;border-color:var(--ink)}.btn.pri:hover{background:#000}.btn.acc{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.acc:hover{background:#a8421f}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-soft)}.btn.ghost:hover{background:var(--hairline);color:var(--ink)}.btn.danger{background:var(--bad);color:#fff;border-color:var(--bad)}.btn.danger:hover{background:#9a2f2f;border-color:#9a2f2f}.btn.sm{padding:4px 10px;font-size:12px}.btn svg{width:15px;height:15px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--panel);border-color:var(--line)}.toolbar{display:flex;align-items:center;gap:10px}.toolbar .grow{flex:1}.zone{border-radius:8px;padding:16px 18px;border:1px solid;position:relative}.zone .zhead{display:flex;align-items:center;gap:9px;margin-bottom:14px}.zone .zico{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;flex:none}.zone .zico svg{width:14px;height:14px}.zone .ztitle{font-weight:600;font-size:13px;letter-spacing:.01em}.zone .zdesc{font-size:11.5px;color:var(--ink-soft);font-family:var(--mono);margin-left:auto;text-align:right}.zone.data{background:var(--data-bg);border-color:var(--data-edge)}.zone.data .zico{background:var(--data);color:#fff}.zone.data .ztitle{color:var(--data)}.zone.meta{background:var(--meta-bg);border-color:var(--meta-edge)}.zone.meta .zico{background:var(--meta);color:#fff}.zone.meta .ztitle{color:var(--meta)}.field{margin-bottom:13px}.field:last-child{margin-bottom:0}.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:600;margin-bottom:5px}.field label .hint{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-faint);font-size:11px;margin-left:6px}.field input,.field textarea,.field select{width:100%;font-family:var(--body);font-size:13.5px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:5px;padding:8px 10px;resize:vertical}.field textarea{min-height:62px;line-height:1.5}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--data);outline-offset:-1px;border-color:var(--data)}.zone.meta .field input:focus,.zone.meta .field textarea:focus,.zone.meta .field select:focus{outline-color:var(--meta);border-color:var(--meta)}.two{display:grid;grid-template-columns:1fr 1fr;gap:13px}.firewall-note{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--data);border-radius:5px;padding:11px 13px;font-size:12.5px;color:var(--ink-soft)}.firewall-note svg{width:18px;height:18px;color:var(--data);flex:none;margin-top:1px}.firewall-note b{color:var(--ink)}.wizard{display:flex;gap:0;margin-bottom:22px;border:1px solid var(--panel-edge);border-radius:var(--r);overflow:hidden;background:var(--panel)}.wstep{flex:1;padding:11px 14px;display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-faint);border-right:1px solid var(--hairline);position:relative}.wstep:last-child{border-right:0}.wstep .n{width:21px;height:21px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:11px;font-family:var(--mono);flex:none}.wstep.done{color:var(--ink-soft)}.wstep.done .n{background:var(--good);border-color:var(--good);color:#fff}.wstep.on{color:var(--ink);font-weight:500;background:#fff}.wstep.on .n{border-color:var(--accent);color:var(--accent)}.fwlegend{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--panel-edge);border-radius:var(--r);padding:9px 14px;margin-bottom:18px;font-size:12px;flex-wrap:wrap}.fwlegend .lg{display:flex;align-items:center;gap:7px;color:var(--ink-soft)}.fwlegend .sw{width:13px;height:13px;border-radius:4px;flex:none}.fwlegend .sw.d{background:var(--data)}.fwlegend .sw.m{background:var(--meta)}.fwlegend .gap{flex:1}.substeps{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.substep{display:flex;align-items:center;gap:8px;padding:7px 13px;border-radius:30px;border:1px solid var(--line);background:var(--panel);font-size:12.5px;color:var(--ink-faint);cursor:pointer;transition:all .12s}.substep .sn{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:10px;font-family:var(--mono);flex:none}.substep:hover{border-color:var(--ink-faint)}.substep.done{color:var(--ink-soft);border-color:var(--good)}.substep.done .sn{background:var(--good);border-color:var(--good);color:#fff}.substep.on{color:var(--ink);border-color:var(--ink);background:#fff;font-weight:500}.substep.on .sn{border-color:var(--accent);color:var(--accent)}.substack{animation:fade .22s ease}.stepcount{font-family:var(--mono);font-size:11px;color:var(--ink-faint);margin-bottom:4px;letter-spacing:.04em}.regpick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.regaxis{border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}.regaxis .ah{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:6px 9px;background:var(--hairline);font-weight:600}.regaxis .opt{padding:6px 9px;font-size:12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--hairline)}.regaxis .opt:hover{background:var(--data-bg)}.regaxis .opt.on{background:var(--data);color:#fff}.regaxis .opt .c{font-family:var(--mono);font-size:11px;opacity:.7}.regout{margin-top:11px;font-family:var(--mono);font-size:13px;background:#fff;border:1px dashed var(--data-edge);border-radius:5px;padding:8px 11px;color:var(--data);display:flex;align-items:center;gap:8px}.regout b{font-size:16px;letter-spacing:.08em}.reviewcols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.reviewzone{border-radius:8px;border:1px solid;padding:15px 16px}.reviewzone.d{background:var(--data-bg);border-color:var(--data-edge)}.reviewzone.m{background:var(--meta-bg);border-color:var(--meta-edge)}.reviewzone .rh{display:flex;align-items:center;gap:8px;font-weight:600;font-size:12px;margin-bottom:12px}.reviewzone.d .rh{color:var(--data)}.reviewzone.m .rh{color:var(--meta)}.reviewzone .rh svg{width:15px;height:15px}.reviewzone .rh .badge{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:500;padding:2px 8px;border-radius:10px}.reviewzone.d .rh .badge{background:var(--data);color:#fff}.reviewzone.m .rh .badge{background:var(--meta);color:#fff}.ritem{padding:7px 0;border-bottom:1px solid rgba(0,0,0,.05);font-size:12.5px}.ritem:last-child{border-bottom:0}.ritem .rk{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:600;margin-bottom:2px}.ritem .rv{color:var(--ink);line-height:1.45}.footer-actions{position:sticky;bottom:0;background:linear-gradient(transparent,var(--paper) 30%);padding:18px 0 8px;display:flex;gap:11px;justify-content:flex-end;border-top:1px solid var(--hairline);margin-top:24px}.idot{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--line);color:var(--ink-faint);font-size:10px;font-weight:700;cursor:help;font-family:var(--body);vertical-align:baseline;margin-left:4px;line-height:1;flex:none}.idot:hover,.idot:focus{background:var(--ink);color:#fff;border-color:var(--ink);outline:none}.reclist{display:flex;flex-direction:column;gap:10px}.recrow{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--panel-edge);border-radius:var(--r);padding:12px 14px}.recrow .sp{width:34px;height:34px;border-radius:8px;background:var(--ink);color:#f3f1ec;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:600}.recrow .lbl{font-size:11px;color:var(--ink-faint);font-family:var(--mono);margin-bottom:3px}.recrow .ord{font-weight:500;font-size:13px}.wave{height:30px;display:flex;align-items:center;gap:2px;margin-top:6px}.wave i{width:3px;background:var(--data);border-radius:2px;opacity:.55}.recstate{display:flex;align-items:center;gap:8px;font-size:12px;font-family:var(--mono)}.chip{font-size:10.5px;font-family:var(--mono);padding:2px 8px;border-radius:11px;font-weight:500}.chip.confirmed{background:var(--data-bg);color:var(--data)}.chip.draft{background:var(--hairline);color:var(--ink-soft)}.chip.upl{background:#f0ead8;color:var(--warn)}.judgegrid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--panel-edge);border-radius:var(--r);overflow:hidden}.jcol{padding:16px 18px}.jcol:first-child{background:var(--meta-bg);border-right:1px solid var(--meta-edge)}.jcol:last-child{background:var(--panel)}.jcol .jh{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:7px}.jcol:first-child .jh{color:var(--meta)}.verdictrow{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--hairline)}.verdictrow:last-child{border-bottom:0}.verdictrow .vl{font-weight:500;font-size:13px}.verdictrow .vl small{display:block;color:var(--ink-faint);font-weight:400;font-size:11px;font-family:var(--mono)}.vbtn{border:1px solid var(--line);background:#fff;padding:6px 16px;border-radius:5px;cursor:pointer;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.03em;color:var(--ink-soft)}.vbtn.pass.on{background:var(--good);color:#fff;border-color:var(--good)}.vbtn.fail.on{background:var(--bad);color:#fff;border-color:var(--bad)}.routebox{margin-top:16px;background:var(--ink);color:#e9ebef;border-radius:8px;padding:14px 16px;display:flex;align-items:center;gap:12px}.routebox .rl{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#9094a0}.routebox .rv{font-family:var(--disp);font-size:18px;font-weight:500;margin-left:auto}.routebox .rv.chal{color:#ffb38a}.routebox .rv.non{color:#9094a0}.lockbar{display:flex;align-items:center;gap:11px;background:var(--ink);color:#e9ebef;border-radius:8px;padding:12px 16px;font-size:12.5px}.lockbar svg{width:17px;height:17px;color:#f4bf4f;flex:none}.lockbar .params{margin-left:auto;font-family:var(--mono);font-size:11px;color:#9094a0;display:flex;gap:14px;flex-wrap:wrap}.lockbar .params b{color:#fff;font-weight:500}.tasklabel{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:600;margin-bottom:9px;display:flex;align-items:center;gap:8px}.tasklabel .lvl{font-family:var(--mono);font-size:10px;padding:1px 7px;border-radius:3px}.jtext{font-size:13.5px;line-height:1.6;background:#fff;border:1px solid var(--line);border-radius:5px;padding:11px 13px;white-space:pre-wrap}.jtext.empty{color:var(--ink-faint);font-style:italic}.jtext.err{border-color:var(--meta-edge);color:var(--bad)}.runstat{display:flex;gap:16px;font-family:var(--mono);font-size:11px;color:var(--ink-faint);margin-top:10px}.scrim{position:fixed;inset:0;background:#16181d66;backdrop-filter:blur(2px);display:grid;place-items:center;z-index:50;padding:16px;animation:fade .18s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.dialog{background:var(--panel);border-radius:12px;box-shadow:var(--shadow-lg);width:min(560px,94vw);overflow:hidden;border:1px solid var(--panel-edge);display:flex;flex-direction:column;max-height:88vh}.dialog .dh{padding:18px 22px 14px;border-bottom:1px solid var(--hairline);display:flex;align-items:flex-start;gap:12px}.dialog .dh .wi{width:34px;height:34px;border-radius:8px;background:var(--meta-bg);color:var(--meta);display:grid;place-items:center;flex:none}.dialog .dh .wi.data{background:var(--data-bg);color:var(--data)}.dialog .dh h3{font-family:var(--disp);font-weight:500;font-size:19px}.dialog .dh p{font-size:12px;color:var(--ink-soft);margin-top:2px}.dialog .db{padding:18px 22px;overflow-y:auto}.dialog .df{padding:14px 22px;background:var(--hairline);display:flex;gap:10px;justify-content:flex-end;flex:none}.dialog .closex{border:0;background:var(--hairline);width:28px;height:28px;border-radius:7px;cursor:pointer;color:var(--ink-soft);font-size:16px;line-height:1;flex:none;margin-left:auto}.dialog .closex:hover{background:var(--line);color:var(--ink)}.tablewrap{border:1px solid var(--panel-edge);border-radius:var(--r);overflow:hidden;background:var(--panel)}table.kolectra{width:100%;border-collapse:collapse;font-size:13px}table.kolectra thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:600;padding:10px 14px;background:var(--hairline);border-bottom:1px solid var(--line);white-space:nowrap}table.kolectra tbody td{padding:10px 14px;border-bottom:1px solid var(--hairline)}table.kolectra tbody tr:hover{background:#fff}table.kolectra tbody tr:last-child td{border-bottom:0}table.kolectra td .id{font-family:var(--mono);color:var(--accent);font-size:12px}table.kolectra td .mini{font-size:11px;color:var(--ink-faint);font-family:var(--mono)}.breakdown{display:flex;flex-wrap:wrap;gap:8px}.breakdown .bk{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--panel-edge);border-radius:20px;padding:5px 12px 5px 8px;font-size:12px;color:var(--ink-soft)}.breakdown .bk b{font-family:var(--mono);color:var(--ink)}.makergrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:16px}.maker{text-align:left;background:var(--panel);border:1px solid var(--panel-edge);border-radius:10px;padding:20px;cursor:pointer;display:flex;flex-direction:column;gap:9px;font-family:var(--body);color:var(--ink);min-height:176px;transition:border-color .12s,box-shadow .12s,transform .1s}.maker:hover:not(:disabled){border-color:var(--ink-faint);box-shadow:var(--shadow);transform:translateY(-2px)}.maker:disabled{opacity:.5;cursor:not-allowed}.maker .mi{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex:none}.maker .mi svg{width:20px;height:20px}.maker.meta .mi{background:var(--meta-bg);color:var(--meta)}.maker.data .mi{background:var(--data-bg);color:var(--data)}.maker.soft .mi{background:var(--hairline);color:var(--ink-faint)}.maker h3{font-family:var(--disp);font-weight:500;font-size:18px;letter-spacing:-.01em}.maker p{font-size:12.5px;color:var(--ink-soft);line-height:1.5}.maker .makerfoot{margin-top:auto;padding-top:4px;font-family:var(--mono);font-size:11px;color:var(--ink-faint);letter-spacing:.02em}.dropzone{border:1.5px dashed var(--line);border-radius:10px;padding:34px 24px;text-align:center;cursor:pointer;background:var(--panel);color:var(--ink-soft);transition:border-color .14s,background .14s,color .14s}.dropzone:hover,.dropzone.drag{border-color:var(--data);background:var(--data-bg)}.dropzone svg{width:30px;height:30px;opacity:.75;margin-bottom:8px}.dropzone .big{font-size:14px;font-weight:500;color:var(--ink)}.dropzone .sub{font-size:12px;margin-top:4px;max-width:54ch;margin-left:auto;margin-right:auto}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--hairline);margin-bottom:20px;flex-wrap:wrap}.tab{padding:9px 14px;font-size:13px;color:var(--ink-soft);cursor:pointer;border:0;background:transparent;border-bottom:2px solid transparent;font-family:var(--body);font-weight:450;display:flex;align-items:center;gap:7px}.tab svg{width:15px;height:15px;opacity:.8}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}.tab.on svg{opacity:1}.ptag{font-size:10px;font-family:var(--mono);padding:1px 7px;border-radius:3px;letter-spacing:.02em;white-space:nowrap}.ptag.desktop{background:var(--data-bg);color:var(--data)}.ptag.web{background:#ece8f7;color:#6a5cb8}.ptag.mobile{background:#f6ece0;color:var(--warn)}.ptag.none{background:var(--hairline);color:var(--ink-faint)}.permchip{font-size:10.5px;font-family:var(--mono);padding:2px 7px;border-radius:4px;background:var(--hairline);color:var(--ink-soft);white-space:nowrap}.switch{width:38px;height:22px;border-radius:11px;background:var(--line);position:relative;cursor:pointer;border:0;flex:none;transition:background .15s}.switch.on{background:var(--data)}.switch i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}.switch.on i{transform:translate(16px)}.settingrow{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--hairline)}.settingrow:last-child{border-bottom:0}.settingrow .sl{flex:1}.settingrow .sl .nm{font-weight:500;font-size:13px}.settingrow .sl .ds{font-size:12px;color:var(--ink-soft);margin-top:2px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.langcard{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 14px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:1px;min-width:92px;font-family:var(--body);transition:border-color .12s,background .12s}.langcard:hover{border-color:var(--ink-faint)}.langcard.on{border-color:var(--data);background:var(--data-bg)}.langcard .lc-main{font-weight:500;font-size:13.5px;color:var(--ink)}.langcard.on .lc-main{color:var(--data)}.langcard .lc-sub{font-size:11px;color:var(--ink-faint);font-family:var(--mono)}.langcard.on .lc-sub{color:var(--data);opacity:.8}.chiptog{font-size:11px;font-family:var(--mono);padding:4px 11px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);cursor:pointer;transition:background .1s,border-color .1s,color .1s}.chiptog:hover{border-color:var(--ink-faint);color:var(--ink)}.chiptog.on{background:var(--ink);color:#f3f1ec;border-color:var(--ink)}.iconbtn{border:0;background:transparent;color:var(--ink-faint);cursor:pointer;padding:5px;border-radius:5px;display:inline-grid;place-items:center}.iconbtn svg{width:15px;height:15px}.iconbtn:hover{background:var(--hairline);color:var(--ink)}.iconbtn.danger:hover{background:#f3e0db;color:var(--bad)}.banner{border-radius:var(--r);padding:11px 14px;font-size:13px;border:1px solid}.banner.error{background:#f9e9e6;border-color:#eccdc6;color:var(--bad)}.banner.info{background:var(--data-bg);border-color:var(--data-edge);color:var(--data)}.banner.warn{background:#f6efdd;border-color:#e7d8b0;color:var(--warn)}.empty{text-align:center;padding:26px 16px;color:var(--ink-faint);font-size:12.5px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%) translateY(80px);background:var(--ink);color:#f3f1ec;padding:11px 20px;border-radius:30px;font-size:13px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;z-index:60;transition:transform .3s cubic-bezier(.2,.9,.3,1.4);max-width:90vw}.toast.on{transform:translate(-50%) translateY(0)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px;border:2px solid var(--paper)}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.login{position:fixed;inset:0;z-index:200;background:var(--ink);display:grid;place-items:center;overflow:auto;padding:30px}.login-card{width:min(440px,94vw)}.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:6px}.login-brand .wordmark{font-family:var(--disp);font-weight:600;font-size:30px;letter-spacing:.04em;color:#f3f1ec}.login-brand .wordmark b{color:var(--accent)}.login-brand .sub{font-family:var(--mono);font-size:11px;color:#787c86;letter-spacing:.03em}.login h2{font-family:var(--disp);font-weight:400;font-size:19px;color:#cdd0d6;margin:22px 0 4px;letter-spacing:-.01em}.login .ph{font-size:12.5px;color:#787c86;margin-bottom:18px}.login .ph b{color:#aeb2bb}.login-field{margin-bottom:13px}.login-field label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:#787c86;font-weight:600;margin-bottom:6px}.login-field input{width:100%;background:#1d2027;border:1px solid #2c2f37;border-radius:8px;padding:10px 12px;font-family:var(--body);font-size:14px;color:#e9ebef}.login-field input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.login-btn{width:100%;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:11px;font-family:var(--body);font-size:14px;font-weight:600;cursor:pointer;transition:background .14s;margin-top:4px}.login-btn:hover{background:#a8421f}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-err{font-size:12.5px;color:#f0a99a;margin:4px 0 12px}.login-foot{margin-top:20px;font-size:11px;color:#5f636c;font-family:var(--mono);display:flex;align-items:center;gap:8px}.login-foot svg{width:14px;height:14px;color:#787c86}.demo-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.demo-chip{background:#1d2027;border:1px solid #2c2f37;border-radius:7px;padding:6px 11px;font-size:11.5px;color:#aeb2bb;cursor:pointer;font-family:var(--mono);transition:border-color .14s,background .14s}.demo-chip:hover{border-color:var(--accent);background:#22252c;color:#e9ebef}
