:root{--font-display: "Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", serif;--font-body: "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 2px;--r-md: 3px;--r-lg: 4px;--rail-w: 236px;--ease: cubic-bezier(.25, 1, .5, 1)}[data-theme=dark]{color-scheme:dark;--ground: #0e1316;--housing: #11171a;--leaf: #151d21;--leaf-raised: #1b2329;--selvage: #233037;--thread: rgba(214, 205, 186, .085);--weave: rgba(214, 205, 186, .05);--twill: rgba(214, 205, 186, .018);--warp: #e9e5dc;--weft: #aeb7bc;--fibre: #8b959b;--dust: #7b858b;--madder: #e2604a;--madder-hi: #ef7058;--madder-solid: #c8402a;--madder-solid-hi: #cf452f;--madder-ink: #ffffff;--madder-wash: rgba(226, 96, 74, .13);--jade: #56bd8f;--jade-ink: #79d3a5;--jade-wash: rgba(86, 189, 143, .13);--gamboge: #d9a441;--gamboge-wash: rgba(217, 164, 65, .13);--rust: #e06a4e;--rust-wash: rgba(224, 106, 78, .13);--focus: #f0886f;--wash: rgba(214, 205, 186, .05);--row-hover: rgba(214, 205, 186, .035)}[data-theme=light]{color-scheme:light;--ground: #f3efe7;--housing: #eae4d8;--leaf: #faf7f1;--leaf-raised: #fffdf9;--selvage: #d7cebc;--thread: rgba(38, 32, 22, .11);--weave: rgba(38, 32, 22, .045);--twill: rgba(38, 32, 22, .018);--warp: #1e2124;--weft: #55534d;--fibre: #625f57;--dust: #736e63;--madder: #b8391f;--madder-hi: #a33219;--madder-solid: #c8402a;--madder-solid-hi: #b3391f;--madder-ink: #ffffff;--madder-wash: rgba(184, 57, 31, .1);--jade: #2f7d5a;--jade-ink: #256349;--jade-wash: rgba(47, 125, 92, .1);--gamboge: #8a5a12;--gamboge-wash: rgba(138, 90, 18, .1);--rust: #a8391f;--rust-wash: rgba(168, 57, 31, .1);--focus: #b8391f;--wash: rgba(38, 32, 22, .04);--row-hover: rgba(38, 32, 22, .035)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--ground);color:var(--warp);font-family:var(--font-body);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}h1,h2,h3{font-weight:600}::selection{background:var(--madder-wash);color:var(--warp)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.eyebrow{display:block;font-family:var(--font-mono);font-size:10px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;color:var(--fibre)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px}.dim{color:var(--dust)}.app{position:relative;display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100vh}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:repeating-linear-gradient(90deg,var(--weave) 0 1px,transparent 1px 26px),repeating-linear-gradient(0deg,var(--weave) 0 1px,transparent 1px 26px),repeating-linear-gradient(45deg,var(--twill) 0 1px,transparent 1px 13px)}.app:after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--rail-w);background:var(--housing);z-index:1}.app>*{position:relative;z-index:2}.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5) var(--sp-3) var(--sp-3);background:var(--housing);border-right:1px solid var(--selvage)}.rail-brand{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-2) var(--sp-4)}.seal{display:inline-grid;place-items:center;width:34px;height:34px;flex:none;border-radius:var(--r-sm);background:var(--madder-solid);color:#fff;font-family:var(--font-display);font-size:19px;line-height:1;box-shadow:inset 0 0 0 1px #ffffff38}.seal-lg{width:52px;height:52px;font-size:28px}.brand-name{display:block;font-family:var(--font-display);font-size:19px;line-height:1.1;letter-spacing:.06em;color:var(--warp)}.brand-text .eyebrow{margin-top:3px}.rail-nav{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) 0}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-sm);color:var(--weft);text-decoration:none;font-size:13px;transition:background .15s var(--ease),color .15s var(--ease)}.nav-item:hover{background:var(--wash);color:var(--warp)}.nav-item.is-active{background:var(--madder-wash);color:var(--warp)}.nav-item.is-active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;border-radius:1px;background:var(--madder)}.nav-index{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--fibre)}.nav-item.is-active .nav-index{color:var(--madder)}.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2) 0;border-top:1px solid var(--thread)}.rail-user{display:flex;align-items:center;gap:var(--sp-2);font-size:12.5px;color:var(--weft)}.avatar{display:grid;place-items:center;width:22px;height:22px;flex:none;border:1px solid var(--selvage);border-radius:var(--r-sm);background:var(--leaf-raised);color:var(--warp);font-size:11px}.workspace{min-width:0;max-width:1400px;padding:var(--sp-6) var(--sp-8) 72px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4)}.page-head h1{margin:7px 0 0;font-family:var(--font-display);font-size:26px;line-height:1.1;letter-spacing:.03em}.kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--sp-4);background:var(--leaf);border:1px solid var(--selvage);border-radius:var(--r-md);overflow:hidden}.kpi-cell{display:flex;flex-direction:column;gap:7px;padding:var(--sp-4)}.kpi-cell+.kpi-cell{border-left:1px solid var(--thread)}.kpi-value{display:flex;align-items:center;gap:10px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:30px;line-height:1;letter-spacing:-.01em;color:var(--warp)}.kpi-sub{font-size:11.5px;color:var(--fibre)}.pulse{position:relative;width:8px;height:8px;flex:none;border-radius:50%;background:var(--jade)}.pulse:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:1px solid var(--jade);border-radius:50%;opacity:0;animation:ripple 2.6s var(--ease) infinite}.panel{margin-bottom:var(--sp-4);background:var(--leaf);border:1px solid var(--selvage);border-radius:var(--r-md);overflow:hidden;scroll-margin-top:24px}.panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--leaf-raised);border-bottom:1px solid var(--selvage)}.panel-title h2{margin:6px 0 0;font-family:var(--font-display);font-size:16px;line-height:1.2;letter-spacing:.03em}.panel-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--sp-2)}.panel-foot{margin:0;padding:8px var(--sp-4);border-top:1px solid var(--thread);font-family:var(--font-mono);font-size:11px;color:var(--dust)}.table-wrap{overflow:auto;max-height:60vh;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--selvage) transparent}.table{width:100%;min-width:640px;border-collapse:collapse;font-size:13px}.table th,.table td{padding:9px var(--sp-3);text-align:left;white-space:nowrap}.table th{position:sticky;top:0;z-index:2;background:var(--leaf-raised);border-bottom:1px solid var(--selvage);font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--fibre)}.table td{border-bottom:1px solid var(--thread);color:var(--weft)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--row-hover)}.table td:first-child{color:var(--warp)}.row-actions{display:flex;gap:var(--sp-1)}.loc-cell{display:inline-flex;align-items:center;gap:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border:1px solid var(--selvage);border-radius:var(--r-sm);background:var(--leaf-raised);color:var(--weft);font-family:var(--font-body);font-size:12.5px;line-height:1;white-space:nowrap;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.btn:hover:not(:disabled){color:var(--warp);border-color:var(--fibre)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--madder-solid);border-color:var(--madder-solid);color:var(--madder-ink);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--madder-solid-hi);border-color:var(--madder-solid-hi);color:var(--madder-ink)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--wash);border-color:var(--selvage)}.btn-danger{background:transparent;border-color:transparent;color:var(--rust)}.btn-danger:hover:not(:disabled){background:var(--rust-wash);border-color:var(--rust);color:var(--rust)}.btn-mini{padding:4px 9px;font-size:11.5px}.btn-block{width:100%;padding:10px 12px;font-size:13px}input,select{min-width:0;padding:7px 10px;border:1px solid var(--selvage);border-radius:var(--r-sm);background:var(--ground);color:var(--warp);font-family:var(--font-body);font-size:13px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input::placeholder{color:var(--dust)}input:focus,select:focus{outline:none;border-color:var(--madder);box-shadow:0 0 0 3px var(--madder-wash)}input:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.search{width:190px}.num-input{width:82px;font-family:var(--font-mono)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:11px;letter-spacing:.08em;color:var(--fibre)}.issue-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);padding:var(--sp-4);align-items:end}.field-wide{grid-column:span 2}.switch{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:12.5px;color:var(--weft);cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;width:0;height:0;opacity:0}.switch-track{position:relative;width:30px;height:17px;flex:none;border:1px solid var(--selvage);border-radius:9px;background:var(--ground);transition:background .15s var(--ease),border-color .15s var(--ease)}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:var(--fibre);transition:transform .15s var(--ease),background .15s var(--ease)}.switch input:checked+.switch-track{background:var(--jade-wash);border-color:var(--jade)}.switch input:checked+.switch-track:after{transform:translate(13px);background:var(--jade)}.switch input:focus-visible+.switch-track{outline:2px solid var(--focus);outline-offset:2px}.segmented{display:inline-flex;border:1px solid var(--selvage);border-radius:var(--r-sm);background:var(--ground);overflow:hidden}.seg{padding:6px 10px;border:0;border-right:1px solid var(--thread);background:transparent;color:var(--weft);font-family:var(--font-body);font-size:11.5px;line-height:1;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}.seg:last-child{border-right:0}.seg:hover{background:var(--wash);color:var(--warp)}.seg.is-on{background:var(--madder-wash);color:var(--madder)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px 4px 7px;border-radius:var(--r-sm);font-size:11.5px;line-height:1;white-space:nowrap}.badge-dot{position:relative;width:6px;height:6px;flex:none;border-radius:50%;background:currentColor}.badge-ok{color:var(--jade-ink);background:var(--jade-wash)}.badge-warn{color:var(--gamboge);background:var(--gamboge-wash)}.badge-bad{color:var(--rust);background:var(--rust-wash)}.badge-idle{color:var(--fibre);background:var(--wash)}.tag{display:inline-flex;align-items:center;padding:3px 7px;border-radius:var(--r-sm);background:var(--wash);color:var(--weft);font-size:10.5px;line-height:1;letter-spacing:.02em;white-space:nowrap}.badge-live .badge-dot:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:1px solid currentColor;border-radius:50%;opacity:0;animation:ripple 2.6s var(--ease) infinite}.copy-id{display:inline-flex;align-items:center;gap:6px}.copy-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:20px;height:20px;padding:0;flex:none;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--dust);font-family:var(--font-body);font-size:10.5px;line-height:1;white-space:nowrap;cursor:pointer;transition:color .15s var(--ease),background .15s var(--ease),border-color .15s var(--ease)}.copy-btn:hover{color:var(--madder);background:var(--madder-wash);border-color:var(--madder-wash)}.copy-btn.is-done{width:auto;padding:0 6px;color:var(--jade-ink);background:var(--jade-wash)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-3)}.empty p{margin:0;font-size:12.5px;color:var(--fibre)}.weave{display:block;width:84px;height:52px}.weave-warp path{fill:none;stroke:var(--fibre);stroke-width:1;opacity:.55}.weave-weft path{fill:none;stroke:var(--madder);stroke-width:1.5;opacity:.8;stroke-linecap:round}.notice{margin:0 0 var(--sp-3);padding:9px var(--sp-3);border-radius:var(--r-sm);font-size:12.5px}.notice-ok{color:var(--jade-ink);background:var(--jade-wash)}.notice-bad{color:var(--rust);background:var(--rust-wash)}.raw{background:var(--leaf);border:1px solid var(--selvage);border-radius:var(--r-md);overflow:hidden}.raw summary{display:flex;align-items:center;gap:var(--sp-2);padding:10px var(--sp-4);color:var(--weft);font-size:12.5px;cursor:pointer;list-style:none}.raw summary::-webkit-details-marker{display:none}.raw summary:hover{color:var(--warp)}.raw pre{margin:0;padding:var(--sp-4);max-height:320px;overflow:auto;border-top:1px solid var(--thread);color:var(--weft);font-family:var(--font-mono);font-size:11.5px;white-space:pre-wrap;word-break:break-all}.login{position:relative;min-height:100vh;display:grid;place-items:center;padding:var(--sp-6) var(--sp-4)}.login:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:repeating-linear-gradient(90deg,var(--weave) 0 1px,transparent 1px 34px),repeating-linear-gradient(0deg,var(--weave) 0 1px,transparent 1px 34px),repeating-linear-gradient(45deg,var(--twill) 0 1px,transparent 1px 17px)}.login-card{position:relative;z-index:1;width:min(380px,100%);display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-8);background:var(--leaf);border:1px solid var(--selvage);border-radius:var(--r-lg);box-shadow:0 1px 2px #0000002e}.login-brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-2)}.login-brand h1{margin:0;font-family:var(--font-display);font-size:26px;letter-spacing:.08em}.login-sub{margin:-4px 0 0;font-size:12px;letter-spacing:.04em;color:var(--fibre)}.login-foot{margin:0;text-align:center;font-size:11.5px;color:var(--dust)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes slide{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}@keyframes ripple{0%{transform:scale(.55);opacity:.65}70%,to{transform:scale(1.75);opacity:0}}.rail{animation:slide .46s var(--ease) both}.kpi{animation:rise .52s 90ms var(--ease) both}.page-head{animation:rise .46s 40ms var(--ease) both}.panel{animation:rise .52s var(--ease) both}.raw{animation:rise .52s .44s var(--ease) both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}@media (max-width: 999px){.app{grid-template-columns:minmax(0,1fr)}.app:after{display:none}.rail{position:sticky;top:0;z-index:30;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-right:0;border-bottom:1px solid var(--selvage)}.rail-brand{order:1;padding:0}.rail-foot{order:2;margin:0 0 0 auto;padding:0;border-top:0;flex-direction:row;align-items:center;gap:var(--sp-2)}.rail-nav{order:3;flex:1 1 100%;flex-direction:row;gap:var(--sp-1);padding:var(--sp-2) 0 0;overflow-x:auto}.nav-item{white-space:nowrap}.workspace{max-width:none;padding:var(--sp-4) var(--sp-6) 64px}.panel{scroll-margin-top:132px}}@media (max-width: 860px){.issue-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.workspace{padding:var(--sp-4) var(--sp-3) 56px}.page-head{flex-direction:column;align-items:flex-start}.page-head h1{font-size:22px}.kpi{grid-template-columns:minmax(0,1fr)}.kpi-cell+.kpi-cell{border-left:0;border-top:1px solid var(--thread)}.num{font-size:26px}.panel-head{flex-direction:column;align-items:stretch;gap:var(--sp-3)}.panel-actions{justify-content:flex-start}.issue-form{grid-template-columns:minmax(0,1fr)}.field-wide{grid-column:span 1}input,select{font-size:16px}.search,.num-input{width:100%}.table{min-width:680px}.table-wrap{max-height:70vh}}
