:root{color-scheme:light;--nav:#152039;--nav-soft:#aebcda;--canvas:#f3f5fa;--paper:#fff;--ink:#19253d;--muted:#566680;--line:#e4e9f2;--blue:#2959dc;--blue-soft:#edf3ff;--green:#06734f;--green-bg:#e8f7f0;--red:#ad3340;--red-bg:#fdeef0;--amber:#8a560a;--amber-bg:#fff5df;--radius:15px;--shadow:0 2px 3px #16203b06,0 10px 24px #18254c06;font-family:"Segoe UI","Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;font-size:14px}
*,*::before,*::after{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible{outline:3px solid #77a4ff;outline-offset:3px}a{color:var(--blue)}svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}code,.mono{font-family:Consolas,"Cascadia Code",monospace;letter-spacing:.015em}small{font-size:12px}.skip{position:fixed;top:10px;left:10px;transform:translateY(-160%);background:white;padding:10px;z-index:10}.skip:focus{transform:none}[hidden]{display:none!important}
.layout{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;background:var(--nav);color:#fff;padding:27px 17px 17px}.brand{display:flex;align-items:center;gap:11px;margin:0 4px 37px}.brand-icon{width:39px;height:39px;background:#4774ff;border-radius:11px;display:grid;place-items:center;box-shadow:0 6px 18px #5275f23e}.brand-icon svg{width:23px;height:23px}.brand strong{display:block;letter-spacing:.025em;font-size:16px}.brand span:not(.brand-icon){display:block;font-size:11px;color:#abbbe1;margin-top:4px}.nav-label{color:#aebcda;font-size:11px;letter-spacing:.08em;padding:0 10px 9px}.sidebar nav{display:grid;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;text-align:left;color:#c7d2ed;background:none;border:0;border-radius:9px;padding:11px 10px;min-height:42px;width:100%}.nav-item svg{width:18px;height:18px}.nav-item:hover{background:#ffffff12;color:#fff}.nav-item[aria-current=page]{color:#fff;background:#354a7a;font-weight:650}.sidebar-footer{display:flex;align-items:flex-start;gap:9px;margin-top:auto;padding:11px;background:#1e2c49;color:#dee7fa;border-radius:10px;font-size:12px}.sidebar-footer small{display:block;color:var(--nav-soft);margin-top:4px;font-size:10px}.local-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#76dfb4;margin-top:4px;flex-shrink:0}
.workspace{min-width:0}.topbar{height:65px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 clamp(16px,3.1vw,42px)}.breadcrumb,.top-actions{display:flex;align-items:center;gap:11px}.breadcrumb{color:var(--muted);font-size:13px}.breadcrumb strong{color:var(--ink);font-weight:650}.separator{color:#9aa8bd}.env{font-size:12px;font-weight:650;color:#4a618d;background:#eff3fa;border:1px solid #e5ebf7;padding:5px 9px;border-radius:7px;white-space:nowrap}.avatar{display:grid;place-items:center;width:31px;height:31px;background:#dce8ff;color:#2445a4;font-weight:750;border-radius:50%;font-size:12px}.icon-btn{display:grid;place-items:center;width:35px;height:35px;background:#fff;color:var(--muted);border:1px solid var(--line);border-radius:8px}.icon-btn:hover{background:var(--blue-soft);color:var(--blue)}.icon-btn svg{width:17px;height:17px}.content{max-width:1480px;margin:auto;padding:28px clamp(16px,3.1vw,42px) 50px;min-width:0}
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:23px}.hero h1{font-size:clamp(25px,3vw,34px);line-height:1.18;letter-spacing:-.025em;margin:7px 0 9px}.eyebrow{display:flex;align-items:center;gap:7px;color:#4061a2;font-size:11px;font-weight:700;letter-spacing:.055em}.eyebrow svg{width:15px;height:15px}.hero p,.muted{color:var(--muted);line-height:1.6}.hero p{font-size:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid #dce4f1;background:#fff;color:#25416b;font-size:13px;font-weight:650;padding:7px 11px;border-radius:9px;white-space:nowrap;text-decoration:none}.button svg{width:16px;height:16px}.button:hover:not(:disabled){background:var(--blue-soft);border-color:#cad8f7;color:var(--blue)}.button.primary{background:var(--blue);border-color:var(--blue);color:white}.button.primary:hover:not(:disabled){background:#204bc5;color:white}.button.quiet{border:0;background:none;color:var(--blue);padding:5px 7px;min-height:29px}.button.quiet:hover{background:var(--blue-soft)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:19px}.stat,.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.stat{padding:13px 15px;display:flex;align-items:flex-start;gap:11px;min-height:91px}.stat-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--blue-soft);color:var(--blue);flex-shrink:0}.stat-icon.good{background:var(--green-bg);color:var(--green)}.stat-icon.warn{background:var(--amber-bg);color:var(--amber)}.stat-label{color:var(--muted);font-size:12px;font-weight:650}.stat-value{font-weight:730;font-size:21px;line-height:1.25;display:block;margin:4px 0}.stat small{display:block;color:var(--muted);line-height:1.4}.stat-value.mono{font-size:20px}
.panels{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(245px,1fr);gap:15px;margin-bottom:18px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:17px 17px 13px}.panel-head h2{font-size:16px;line-height:1.35;margin:0 0 4px}.panel-head p{color:var(--muted);font-size:12px;line-height:1.45}.filters{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end}.filter{min-height:29px;padding:4px 8px;border:1px solid transparent;border-radius:7px;background:none;color:var(--muted);font-size:12px}.filter:hover,.filter[aria-pressed=true]{background:var(--blue-soft);color:var(--blue)}.filter[aria-pressed=true]{font-weight:700;border-color:#dce6fc}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}thead{background:#f6f8fc;color:var(--muted);font-size:11px}th,td{padding:10px 13px;white-space:nowrap;border-top:1px solid #edf0f6}th:first-child,td:first-child{padding-left:17px}th:last-child,td:last-child{padding-right:17px}tbody tr:last-child td{border-bottom:0}tbody tr.selected{background:#f1f5ff}tbody tr:hover{background:#f7f9ff}.commit{border:0;padding:3px 0;background:none;color:var(--blue);font-size:13px;font-weight:700}.commit:hover{text-decoration:underline}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:6px;background:#eef2f8;color:#4e5d77;font-size:11px;font-weight:700;white-space:nowrap}.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.good{background:var(--green-bg);color:var(--green)}.pill.bad{background:var(--red-bg);color:var(--red)}.pill.warn{background:var(--amber-bg);color:var(--amber)}.receipt-ok{color:var(--green);display:inline-flex;align-items:center;gap:4px}.receipt-ok svg{width:15px;height:15px}.detail{padding:0 17px 16px}.detail-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;padding-bottom:9px;border-bottom:1px solid var(--line);margin-bottom:9px}.detail-meta strong{font-size:18px;overflow-wrap:anywhere}.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;align-items:start;margin:0;font-size:12px;line-height:1.4}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.notice{padding:10px 11px;background:#f3f6fd;border-radius:8px;color:#37517a;font-size:12px;line-height:1.55;margin-top:12px;overflow-wrap:anywhere}.notice.bad{background:var(--red-bg);color:var(--red)}.notice.good{background:var(--green-bg);color:var(--green)}.notice.warn{background:var(--amber-bg);color:var(--amber)}.detail-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.timeline{margin:0;padding:0 17px 5px;list-style:none}.event{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;padding:10px 0;border-top:1px solid var(--line);align-items:start}.event-icon{display:grid;place-items:center;width:30px;height:30px;background:#edf2ff;border-radius:8px;color:#4565b5}.event-icon svg{width:16px;height:16px}.event h3{font-size:13px;line-height:1.4;margin:0 0 3px}.event p{color:var(--muted);font-size:12px;line-height:1.45;overflow-wrap:anywhere}.event time{color:var(--muted);font-size:11px;text-align:right;white-space:nowrap}.event code{font-size:11px;color:#405374}.empty{padding:18px;color:var(--muted);font-size:13px;line-height:1.6}.blank{padding:28px;background:white;border-radius:var(--radius);border:1px solid var(--line)}.blank h1{font-size:21px;margin-bottom:8px}.blank p{color:var(--muted);line-height:1.6}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:18px}.work-body{padding:0 17px 17px}.work-body h3{font-size:14px;margin:13px 0 6px}.work-body p{line-height:1.6;color:var(--muted);font-size:13px}.work-body .detail-actions{margin:12px 0 0}.shell{padding:10px;border-radius:8px;background:#f0f4fb;color:#27406d;overflow:auto;font-size:12px}.toast{position:fixed;right:20px;bottom:20px;max-width:min(370px,calc(100vw - 40px));background:#233453;color:white;padding:11px 14px;border-radius:9px;box-shadow:0 9px 28px #18254c3a;font-size:13px;z-index:6}
@media(max-width:1100px){.layout{grid-template-columns:188px minmax(0,1fr)}.panels{grid-template-columns:minmax(0,1fr)}.panel-head{flex-wrap:wrap}.stat{padding:12px}.detail{max-width:620px}}
@media(max-width:730px){.layout{display:block}.sidebar{position:static;height:auto;padding:11px 13px;gap:8px}.brand{margin:0 0 4px}.brand-icon{width:32px;height:32px}.brand span:not(.brand-icon){display:none}.nav-label,.sidebar-footer{display:none}.sidebar nav{display:flex;overflow:auto;gap:3px}.nav-item{width:auto;white-space:nowrap;min-height:36px;padding:6px 8px;gap:5px;font-size:12px}.nav-item svg{width:15px;height:15px}.topbar{height:51px}.content{padding-top:17px}.hero{align-items:flex-start;flex-direction:column;margin-bottom:16px;gap:9px}.stats{grid-template-columns:1fr;gap:8px}.stat{min-height:0}.stat-value{font-size:18px}.stat-icon{width:33px;height:33px}.work-grid{grid-template-columns:1fr}.panels{gap:10px}.event{grid-template-columns:28px minmax(0,1fr);gap:7px}.event time{grid-column:2;text-align:left}.event-icon{width:26px;height:26px}}
