:root{
  --ink:#08110e;--deep:#0c1713;--panel:#11211a;--panel-2:#152820;--line:#294338;
  --paper:#eef6f0;--muted:#8ca499;--acid:#79f2ad;--amber:#ffc857;--red:#ff746d;--blue:#7cb8ff;
  --shadow:0 24px 80px rgba(0,0,0,.32);--radius:5px;
}
*{box-sizing:border-box}html{background:var(--ink);color:var(--paper);font-family:Bahnschrift,"Microsoft YaHei",sans-serif}body{margin:0;min-height:100vh;background:radial-gradient(circle at 82% -10%,#153b2b 0,transparent 30%),linear-gradient(115deg,#07100d,#0c1713 58%,#08120f)}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.eyebrow{margin:0 0 9px;color:var(--acid);font:600 11px Consolas,monospace;letter-spacing:.2em;text-transform:uppercase}
.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:28px 20px;border-right:1px solid var(--line);background:rgba(6,15,12,.92);backdrop-filter:blur(18px);display:flex;flex-direction:column;z-index:5}.logo{display:flex;gap:12px;align-items:center;margin-bottom:52px}.logo-glyph{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--acid);color:var(--acid);font-size:20px;box-shadow:5px 5px 0 #183b2c}.logo b{display:block;letter-spacing:.12em;font-family:Consolas,monospace}.logo span{font-size:11px;color:var(--muted)}nav{display:grid;gap:8px}.nav-item{border:0;background:transparent;color:var(--muted);display:grid;grid-template-columns:34px 1fr;text-align:left;align-items:center;padding:14px 10px;border-left:2px solid transparent;transition:.2s}.nav-item:hover,.nav-item.active{background:#102219;color:var(--paper);border-left-color:var(--acid)}.nav-index{font:10px Consolas;color:#5f7c6e}.nav-item.active .nav-index{color:var(--acid)}.sidebar-foot{margin-top:auto}.system-status{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;padding:13px 10px;border-bottom:1px solid var(--line)}.system-status i{width:7px;height:7px;border-radius:50%;background:var(--acid);box-shadow:0 0 10px var(--acid)}.system-status.offline i{background:#9f695f;box-shadow:none}.profile{display:grid;grid-template-columns:36px 1fr 25px;gap:10px;align-items:center;padding-top:18px}.avatar{width:36px;height:36px;display:grid;place-items:center;background:var(--paper);color:var(--ink);font-weight:700}.profile b,.profile span{display:block;font-size:12px}.profile span{color:var(--muted);font-size:10px}.profile button{border:0;background:transparent;color:var(--muted);font-size:20px}
.main-stage{grid-column:2;padding:38px 48px 70px;max-width:1680px;width:100%;margin:auto}.topbar{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:34px}.topbar h1{font-size:38px;margin:0;letter-spacing:-.04em}.top-actions{display:flex;align-items:center;gap:22px}.clock{font:12px Consolas;color:var(--muted)}.btn{border:1px solid var(--line);border-radius:2px;padding:11px 16px;color:var(--paper);background:var(--panel);transition:.18s}.btn:hover{transform:translateY(-2px);border-color:#547666}.btn-primary{background:var(--acid);border-color:var(--acid);color:#07100d;font-weight:700;box-shadow:5px 5px 0 #245a40}.btn-primary:hover{box-shadow:2px 2px 0 #245a40}.btn-secondary{border-color:var(--acid);color:var(--acid);background:transparent}.btn-ghost{background:transparent}.btn-large{padding:15px 20px;display:flex;justify-content:space-between}.text-button{border:0;background:transparent;color:var(--acid)}
.view{display:none;animation:reveal .34s ease}.view.active{display:block}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:42px}.metric{position:relative;overflow:hidden;min-height:140px;background:linear-gradient(145deg,var(--panel),#0e1d17);border:1px solid var(--line);padding:22px}.metric:after{content:"";position:absolute;right:-25px;bottom:-40px;width:110px;height:110px;border:1px solid #294a3b;transform:rotate(18deg)}.metric span{color:var(--muted);font-size:12px}.metric b{display:block;font:600 44px Consolas;margin-top:24px}.metric.accent b{color:var(--acid)}.metric.warn b{color:var(--amber)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:32px 0 17px}.section-heading.compact{margin-top:50px}.section-heading h2{margin:0;font-size:23px}.run-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}.run-card{background:var(--panel);border:1px solid var(--line);padding:20px;min-height:225px;position:relative;transition:.2s}.run-card:hover{border-color:#557466;transform:translateY(-3px)}.run-top{display:flex;justify-content:space-between;align-items:center}.work-id{font:12px Consolas;color:var(--acid)}.status-tag{font-size:10px;padding:5px 8px;border:1px solid #486457;color:#b8cec3}.run-card h3{font-size:17px;line-height:1.45;margin:25px 0 7px}.run-card .project{color:var(--muted);font-size:12px}.progress-track{height:3px;background:#263a31;margin:32px 0 10px}.progress-track i{display:block;height:100%;background:var(--acid);box-shadow:0 0 10px rgba(121,242,173,.45)}.progress-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.empty-state{grid-column:1/-1;padding:46px;border:1px dashed #375246;text-align:center;color:var(--muted)}
.table-card{border:1px solid var(--line);background:rgba(13,28,22,.72);overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th{text-align:left;color:#6e8d7f;font:10px Consolas;letter-spacing:.12em;text-transform:uppercase;padding:14px 17px;border-bottom:1px solid var(--line)}td{padding:15px 17px;border-bottom:1px solid #20362c;font-size:13px}tbody tr{transition:.15s}tbody tr:hover{background:#14271f}tbody tr:last-child td{border:0}.clickable-row{cursor:pointer}.demand-cell b,.demand-cell span{display:block}.demand-cell span{color:var(--muted);font-size:11px;margin-top:3px;max-width:310px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-progress{width:90px;height:3px;background:#293b33}.mini-progress i{display:block;height:100%;background:var(--acid)}.status-dot{display:inline-flex;align-items:center;gap:7px}.status-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue)}.status-dot[data-status=delivered]:before{background:var(--acid)}.status-dot[data-status=failed]:before{background:var(--red)}.status-dot[data-status=waiting_merge]:before{background:var(--amber)}.filter-chips{display:flex;gap:7px}.chip{background:transparent;color:var(--muted);border:1px solid var(--line);padding:7px 12px;font-size:11px}.chip.active{color:var(--ink);background:var(--paper)}
.policy-note{display:flex;gap:18px;padding:17px 20px;border-left:3px solid var(--amber);background:#2a2818;color:#dacda3;margin-bottom:22px}.policy-note span{font-size:13px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:14px}.project-card{border:1px solid var(--line);background:var(--panel);padding:23px;position:relative}.project-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--acid)}.project-card.off:before{background:#5d6e65}.project-head{display:flex;justify-content:space-between;gap:15px}.project-head h3{margin:3px 0}.project-key{font:11px Consolas;color:var(--muted)}.mode-badge{align-self:flex-start;border:1px solid #49665a;padding:6px 9px;font-size:10px;color:var(--acid)}.project-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.fact{background:#0d1b16;padding:11px}.fact span,.fact b{display:block}.fact span{color:var(--muted);font-size:10px}.fact b{font-size:12px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-actions{display:flex;justify-content:flex-end;margin-top:18px}
.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;background:rgba(2,8,5,.76);backdrop-filter:blur(8px);z-index:20;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden],.drawer-backdrop[hidden]{display:none}.modal{width:min(620px,95vw);max-height:92vh;overflow:auto;background:#102019;border:1px solid #3b5e4f;padding:34px;box-shadow:var(--shadow);position:relative}.project-modal{width:min(860px,96vw)}.modal h2{font-size:30px;margin:8px 0}.modal-close{position:absolute;right:18px;top:15px;border:0;background:transparent;color:var(--muted);font-size:26px;z-index:2}.form-stack,.form-grid{margin-top:28px}.form-stack{display:grid;gap:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.dense{gap:12px}.form-grid label,.form-stack label{display:grid;gap:8px}.form-grid label>span,.form-stack label>span{font-size:11px;color:#9cb2a7}input,select,textarea{width:100%;border:1px solid #355145;background:#091510;color:var(--paper);padding:12px;outline:none;border-radius:1px}input:focus,select:focus,textarea:focus{border-color:var(--acid);box-shadow:0 0 0 2px rgba(121,242,173,.08)}textarea{min-height:78px;resize:vertical}.span-2{grid-column:1/-1}.strategy-preview{padding:18px;border:1px solid #3e5c4f;background:#0a1812}.strategy-preview b,.strategy-preview span{display:block}.strategy-preview b{color:var(--acid);margin-bottom:5px}.strategy-preview span{font-size:12px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.form-error{color:#ff9e98;font-size:12px;margin:0}.toggle-line{display:flex!important;grid-template-columns:18px 1fr!important;align-items:center}.toggle-line input{width:16px;height:16px}.demo-credential{border-top:1px solid var(--line);margin-top:25px;padding-top:20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}.demo-credential code{background:#091510;padding:6px 9px;color:var(--acid)}
.detail-drawer{position:fixed;right:0;top:0;bottom:0;width:min(680px,95vw);background:#0c1a14;border-left:1px solid #3e5b4f;z-index:25;transform:translateX(102%);transition:.28s ease;box-shadow:var(--shadow);overflow:auto;padding:38px}.detail-drawer.open{transform:none}.detail-head{padding-bottom:24px;border-bottom:1px solid var(--line)}.detail-head h2{font-size:27px;line-height:1.3}.detail-meta{display:flex;gap:12px;flex-wrap:wrap}.detail-meta span{font-size:11px;border:1px solid var(--line);padding:6px 9px}.timeline{margin:30px 0}.timeline-item{display:grid;grid-template-columns:28px 1fr;gap:12px;min-height:70px}.timeline-mark{position:relative;width:12px;height:12px;border:2px solid #4e6a5e;border-radius:50%;margin-top:3px}.timeline-mark:after{content:"";position:absolute;left:3px;top:14px;width:1px;height:55px;background:#294238}.timeline-item:last-child .timeline-mark:after{display:none}.timeline-item.completed .timeline-mark{background:var(--acid);border-color:var(--acid)}.timeline-item.running .timeline-mark{border-color:var(--amber);box-shadow:0 0 10px var(--amber)}.timeline-copy b,.timeline-copy span{display:block}.timeline-copy span{color:var(--muted);font-size:11px;margin-top:5px}.artifact-list{display:grid;gap:8px}.artifact{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);padding:12px 14px;color:var(--paper);text-decoration:none}.artifact:hover{border-color:var(--acid)}.artifact i{font-style:normal;color:var(--acid)}.event-list{max-height:260px;overflow:auto;border-left:1px solid var(--line);padding-left:16px}.event{margin-bottom:14px}.event b{font:10px Consolas;color:var(--acid)}.event p{margin:4px 0;color:#b8c8c0;font-size:12px}.detail-actions{display:flex;gap:10px;margin:22px 0}.error-box{padding:14px;background:#2b1715;border-left:3px solid var(--red);color:#ffb4ae;font-size:12px}.toast{position:fixed;right:28px;bottom:28px;background:var(--paper);color:var(--ink);padding:13px 18px;z-index:50;box-shadow:8px 8px 0 #34634d;transform:translateY(100px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}
.login-body{display:grid;place-items:center;min-height:100vh;padding:30px;background:radial-gradient(circle at 12% 20%,#17372a 0,transparent 28%),#07100d}.login-shell{width:min(1100px,96vw);min-height:650px;display:grid;grid-template-columns:1.2fr .8fr;border:1px solid var(--line);box-shadow:var(--shadow)}.login-brand{padding:72px;background:linear-gradient(145deg,rgba(17,38,29,.9),rgba(7,16,13,.98));position:relative;overflow:hidden}.login-brand:after{content:"";position:absolute;right:-140px;bottom:-180px;width:460px;height:460px;border:1px solid #32614c;border-radius:50%;box-shadow:0 0 0 50px rgba(31,79,57,.12),0 0 0 100px rgba(31,79,57,.08)}.brand-mark{display:flex;gap:5px;margin-bottom:95px}.brand-mark span{display:block;width:30px;height:5px;background:var(--acid);transform:skewX(-25deg)}.login-brand h1{font-size:61px;line-height:1.05;letter-spacing:-.055em;margin:13px 0 25px;position:relative;z-index:1}.login-lead{max-width:510px;color:#9eb4a9;line-height:1.8}.signal-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:80px;border-top:1px solid var(--line);padding-top:24px;position:relative;z-index:1}.signal-grid b,.signal-grid span{display:block}.signal-grid b{font:24px Consolas;color:var(--acid)}.signal-grid span{font-size:10px;color:var(--muted);margin-top:5px}.login-panel{padding:72px 55px;background:#0f1f19;display:flex;flex-direction:column;justify-content:center}.login-panel h2{font-size:28px;margin:8px 0}
@media(max-width:1000px){.app-shell{display:block}.sidebar{position:static;width:auto;height:auto;flex-direction:row;align-items:center;padding:15px 20px}.logo{margin:0}.sidebar nav{display:flex;margin-left:auto}.nav-item{grid-template-columns:auto;padding:10px}.nav-index,.sidebar-foot{display:none}.main-stage{padding:28px 22px}.run-grid{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:1fr 1fr}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:570px}}@media(max-width:650px){.sidebar .logo span{display:none}.topbar{align-items:flex-start;gap:20px}.clock{display:none}.topbar h1{font-size:28px}.btn{padding:10px}.run-grid,.project-grid,.metrics{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.detail-drawer{padding:28px 20px}}
