@charset "UTF-8";
:root { color-scheme:dark; --bg:#04150e; --panel:#0a2117; --border:#62785b; --text:#edf3e7; --muted:#a1b49d; --lime:#d0ee91; --danger:#efad9c; --font:"Microsoft YaHei UI","Microsoft YaHei",Inter,system-ui,sans-serif; }
* { box-sizing:border-box; }
body { margin:0; color:var(--text); background:radial-gradient(ellipse at 55% 12%,#12302180,transparent 65%),var(--bg); font:14px/1.6 var(--font); }
button,input { font:inherit; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; transition:background .16s,border-color .16s; }
button:disabled { opacity:.5; cursor:wait; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid var(--lime); outline-offset:4px; }
h1,h2,h3,p { margin:0; }
.hidden { display:none!important; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.icon-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.icon { width:24px; height:24px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.muted { color:var(--muted); }
.eyebrow { font:10px/1.5 ui-monospace,monospace; color:var(--muted); letter-spacing:1.6px; }
.primary,.secondary { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:42px; padding:9px 18px; border:1px solid var(--lime); border-radius:5px; font-size:14px; font-weight:600; white-space:nowrap; }
.primary { background:linear-gradient(180deg,#e2f5aa,#c8e98a); color:#15250e; box-shadow:inset 0 1px 0 #f2ffd980,0 0 18px #b2d3790a; }
.primary:hover { background:#e3f7b5; }
.secondary { background:#09201670; color:#e4edce; border-color:#a6bc91; }
.secondary:hover { background:#203c26; }
.primary .icon,.secondary .icon { width:20px; height:20px; }
.text-button { display:inline-flex; align-items:center; gap:7px; padding:3px 0; border:0; color:var(--lime); background:transparent; font-size:12px; white-space:nowrap; }
.text-button .icon { width:16px; height:16px; }
.text-button:hover { color:#f0ffce; text-decoration:underline; }
.icon-button { padding:5px; border:0; min-width:32px; min-height:32px; font-size:25px; line-height:1; background:transparent; color:var(--muted); }
.icon-button:hover { color:white; }
.app-shell { min-height:100vh; display:flex; }
.sidebar { position:fixed; inset:0 auto 0 0; width:236px; display:flex; flex-direction:column; padding:27px 12px 22px; border-right:1px solid #69815b; background:linear-gradient(135deg,#0b2519aa,#04170fe8 80%); z-index:10; }
.brand { display:flex; flex-direction:column; align-items:center; text-align:center; color:#d7eda6; margin-bottom:43px; }
.brand-mark { width:72px; height:65px; margin-bottom:9px; }
.brand-name { font:500 27px/1.3 Arial,sans-serif; letter-spacing:9px; padding-left:9px; color:#f0f7e9; }
.brand-sub { font:9px/2 Arial,sans-serif; letter-spacing:1.8px; color:#e0ebce; }
.sidebar nav { display:flex; flex-direction:column; gap:12px; }
.nav-item { position:relative; display:flex; align-items:center; gap:16px; padding:14px 23px; min-height:56px; border:1px solid transparent; background:transparent; color:#e0e9da; border-radius:5px; text-align:left; font-size:16px; letter-spacing:.4px; white-space:nowrap; }
.nav-item .icon { width:25px; height:25px; }
.nav-item:hover { background:#193b2580; }
.nav-item.active { color:#edffc2; border-color:#607b4f55; background:linear-gradient(100deg,#50613a9c,#3555399c); }
.nav-item.active:before { content:""; position:absolute; inset:0 auto 0 0; width:5px; background:#d9f6a2; border-radius:4px 0 0 4px; }
.side-bottom { margin-top:auto; padding:35px 10px 0; }
.system-card { color:#95ac8c; font-size:10px; padding-bottom:18px; }
.status-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--lime); margin-right:6px; box-shadow:0 0 10px #ccec9560; }
.admin-profile { display:flex; align-items:center; gap:15px; border-top:1px solid #6e805e; padding:22px 15px 0; }
.admin-profile .icon { width:26px; height:26px; }
.admin-profile b { font-size:16px; font-weight:500; letter-spacing:1px; }
.admin-profile small { display:block; color:#8ca083; font-size:10px; margin-top:3px; }
.workspace { margin-left:236px; flex:1; min-width:0; }
.topbar { height:68px; margin:0 25px; border-bottom:1px solid #758768; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.breadcrumb { font-size:15px; white-space:nowrap; }
.slash { padding:0 15px; color:#d4e4bc; }
.heading-actions { display:flex; gap:16px; }
.page-content { padding:17px 25px 0; max-width:1900px; margin:0 auto; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.page-heading h1 { font-size:40px; line-height:1.4; font-weight:650; letter-spacing:2px; }
.page-heading p { color:#d5dfca; font-size:15px; margin-top:0; letter-spacing:.4px; }
.page-heading time { font:10px ui-monospace,monospace; color:#7d9477; align-self:flex-start; margin-top:14px; }
.overview-grid { display:grid; grid-template-columns:2.45fr 1fr; gap:18px; }
.mission-card,.briefing-card,.stat-card,.panel { border:1px solid #718664; border-radius:10px; background:linear-gradient(120deg,#17372680,#061b13cc); box-shadow:inset 0 1px 0 #a8cb9220,0 4px 20px #00000015; }
.mission-card { display:flex; align-items:center; position:relative; min-height:184px; overflow:hidden; background:radial-gradient(ellipse at 45% 60%,#30573450,transparent 65%),linear-gradient(100deg,#16321e,#0b271b); }
.mission-card:after { position:absolute; content:""; inset:0; background:linear-gradient(90deg,#0c2417 4%,#102e1dba 25%,transparent 72%); pointer-events:none; }
.mission-copy { position:relative; z-index:1; padding:30px 25px 30px 38px; }
.mission-copy:before { content:""; position:absolute; top:36px; left:24px; width:6px; height:43px; background:var(--lime); transform:skewX(-18deg); }
.mission-copy h2 { font-size:34px; font-weight:650; letter-spacing:2px; margin-left:10px; }
.mission-copy p { margin:0 0 0 10px; font-size:18px; color:#e1efbb; white-space:nowrap; }
.mission-copy p span { padding:0 10px; }
.mission-copy small { display:block; margin:17px 0 0 10px; color:#a5bb94; font-size:11px; }
.warehouse-plan { position:absolute; width:78%; max-width:none; height:100%; object-fit:cover; right:-7%; top:0; opacity:.78; }
.map-label { position:absolute; right:15px; bottom:10px; color:#829978; font-size:9px; z-index:1; letter-spacing:2px; }
.briefing-card { display:flex; align-items:center; gap:23px; padding:25px 27px; }
.briefing-card .briefing-icon { color:var(--lime); width:51px; height:51px; stroke-width:1.3; }
.briefing-card h2 { font-size:23px; font-weight:600; letter-spacing:.5px; }
.briefing-card p { font-size:14px; color:#d2dec8; margin-top:8px; line-height:1.9; }
.briefing-card .text-button { margin-top:10px; font-size:11px; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:18px 0; }
.stat-card { display:flex; align-items:center; padding:17px 19px; gap:20px; min-width:0; }
.stat-icon { display:grid; place-items:center; width:59px; height:59px; flex-shrink:0; border-radius:13px; color:#dcf99b; background:linear-gradient(130deg,#284c2a99,#10301d66); border:1px solid #55774920; }
.stat-icon .icon { width:34px; height:34px; stroke-width:1.5; }
.stat-content { border-left:1px solid #799464; padding-left:20px; min-width:0; flex:1; }
.stat-content h2 { font-size:15px; font-weight:400; color:#edf3e4; white-space:nowrap; }
.stat-content strong { display:block; font:600 39px/1.2 Arial,sans-serif; letter-spacing:-.5px; color:#dbf5a1; }
.stat-content small { display:block; font-size:9px; color:#8fa883; margin-top:4px; }
.bottom-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.panel { overflow:hidden; }
.panel-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:17px 23px 16px; }
.panel-heading h2 { display:flex; align-items:center; gap:13px; font-size:23px; font-weight:600; letter-spacing:.5px; }
.panel-heading h2 .icon { width:26px; height:26px; color:#d8ef9d; }
.panel-heading .text-button { font-size:11px; }
.legend { color:#a9bc9d; font-size:10px; }
.activity-chart { height:221px; padding:0 22px; }
.activity-chart svg { width:100%; height:100%; display:block; }
.chart-note { color:#819877; font-size:9px; padding:2px 23px 13px; }
.recent-runs { padding:0 17px 17px; }
.recent-runs table { table-layout:fixed; }
.recent-runs th { padding:10px 13px; color:#e2eddb; font-size:13px; }
.recent-runs td { padding:14px 13px; font-size:12px; }
.recent-runs td .text-button { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.recent-runs td small { white-space:normal; overflow-wrap:anywhere; }
.recent-runs th:nth-child(1) { width:26%; }
.recent-runs th:nth-child(2) { width:24%; }
.recent-runs th:nth-child(3) { width:16%; }
.recent-runs th:nth-child(4) { width:34%; }
.recent-runs .table-wrap { border:1px solid #55774b; border-radius:5px; min-height:232px; background:#051a1140; }
.recent-runs .empty { min-height:170px; padding:43px 10px 20px; }
.empty { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:45px 20px; color:#9bb08f; font-size:12px; }
.empty .icon { width:45px; height:45px; margin-bottom:12px; color:#69826a; stroke-width:1.3; }
.empty b { display:block; font-size:15px; color:#c1cfb8; font-weight:400; margin-bottom:5px; }
.badge { display:inline-flex; align-items:center; border:1px solid #647d4d; border-radius:4px; color:#d5edb5; background:#38512a66; padding:3px 8px; font-size:10px; }
.badge.off { color:#e8b9aa; border-color:#745446; background:#3c2c2155; }
.page-footer { margin-top:25px; padding:17px 10px 16px; border-top:1px solid #79875f; display:flex; align-items:center; justify-content:space-between; color:#d3dfc3; font-size:12px; }
.page-footer>span:last-child { font-size:10px; color:#8fa582; display:flex; align-items:center; gap:13px; }
.page-footer i { width:3px; height:14px; display:inline-block; background:var(--lime); }
.table-tools { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:20px 24px; font-size:14px; }
.table-tools form { display:flex; gap:10px; }
.table-tools .muted { font-size:11px; }
input { min-width:0; padding:11px 13px; border:1px solid #526f4d; border-radius:5px; background:#04170fcc; color:var(--text); }
input::placeholder { color:#879c7c; }
input:focus { outline:1px solid var(--lime); border-color:var(--lime); }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; text-align:left; white-space:nowrap; }
th { padding:13px 22px; background:linear-gradient(180deg,#36573a85,#203e2a85); border-block:1px solid #59734e; color:#ccddbe; font-size:12px; font-weight:400; }
td { padding:17px 22px; border-bottom:1px solid #37513b99; font-size:12px; color:#d0dec6; }
td strong { font-weight:500; color:#e3efd5; }
td small { display:block; color:#8ea582; font-size:10px; }
tr:hover td { background:#23432b55; }
.table-actions { display:flex; gap:15px; }
.pagination { display:flex; justify-content:flex-end; align-items:center; padding:15px 22px; gap:13px; font-size:11px; color:#99ae8f; }
.pagination>span:first-child { margin-right:auto; }
.pagination .secondary { min-height:30px; font-size:11px; padding:5px 12px; }
.avatar { width:35px; height:35px; display:inline-grid; place-items:center; background:#2e4a2c; color:#d5efa6; border:1px solid #71875b; border-radius:5px; }
.banner { padding:14px 18px; border:1px solid #8d5d4c; background:#462d21; color:#f0c0aa; font-size:13px; border-radius:6px; margin-bottom:20px; }
dialog { width:min(480px,calc(100% - 28px)); padding:28px; border:1px solid #96ae75; border-radius:10px; background:linear-gradient(130deg,#173723,#081f14); color:var(--text); box-shadow:0 20px 120px #0009; }
dialog::backdrop { background:#010c08c9; backdrop-filter:blur(3px); }
.dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:23px; }
.dialog-heading h2 { font-size:23px; margin-top:4px; }
.dialog-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:23px; }
label { display:block; margin-top:17px; color:#c4d5b8; font-size:13px; }
label input { display:block; margin-top:8px; width:100%; }
label small { display:block; color:#8da77e; font-size:10px; margin-top:6px; }
.form-error { color:var(--danger); font-size:12px; min-height:22px; margin-top:13px; }
.form-note { color:#b4c6a7; font-size:13px; line-height:1.9; }
.detail-name { display:flex; gap:14px; align-items:center; margin-bottom:18px; }
.detail-name h3 { font-size:23px; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }
.detail-grid>div { padding:14px; border:1px solid #4f6b43; border-radius:5px; background:#081e13; color:#a0b691; font-size:12px; }
.detail-grid strong { display:block; color:var(--lime); font:27px/1.6 Arial,sans-serif; }
.toast { position:fixed; z-index:100; bottom:27px; left:50%; transform:translateX(-50%); padding:13px 23px; border-radius:5px; background:#d5f0a1; color:#1b3012; font-size:13px; box-shadow:0 7px 35px #0007; max-width:calc(100% - 30px); }
.login-page { min-height:100vh; display:grid; place-items:center; }
.login-layout { width:min(1000px,calc(100% - 40px)); display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.login-story,.login-panel { padding:50px; background:#102c1d; }
.login-story .brand { align-items:flex-start; }
.login-story .emblem { font-size:50px; }
.story-copy h1 { font-size:32px; margin:20px 0; }
.story-copy p,.login-note { color:var(--muted); font-size:12px; line-height:1.9; }
.login-coordinates { margin-top:30px; font-size:10px; color:var(--muted); }
.login-panel { background:#091e14; }
.login-panel h2 { font-size:23px; }
.login-panel form { margin:25px 0; }
.login-panel footer { margin-top:20px; font-size:12px; }
.wide { width:100%; }
@media(min-width:1750px) {
 .sidebar { width:260px; padding-top:31px; }
 .workspace { margin-left:260px; }
 .topbar { height:79px; margin-inline:30px; }
 .page-content { padding:20px 30px 0; }
 .page-heading { margin-bottom:22px; }
 .page-heading h1 { font-size:45px; }
 .mission-card { min-height:222px; }
 .mission-copy h2 { font-size:39px; }
 .mission-copy p { font-size:21px; }
 .briefing-card h2 { font-size:27px; }
 .briefing-card p { font-size:16px; }
 .stat-card { padding:24px; }
 .stat-content h2 { font-size:17px; }
 .stat-content strong { font-size:43px; }
 .activity-chart { height:290px; }
 .recent-runs .table-wrap { min-height:296px; }
 .recent-runs .empty { min-height:246px; }
}
@media(max-width:1300px) {
 .sidebar { width:205px; }
 .workspace { margin-left:205px; }
 .nav-item { font-size:14px; padding-inline:18px; gap:13px; }
 .brand-name { font-size:24px; }
 .brand-sub { font-size:8px; }
 .topbar { margin-inline:20px; }
 .page-content { padding-inline:20px; }
 .overview-grid { grid-template-columns:2fr 1fr; gap:14px; }
 .mission-card { min-height:180px; }
 .mission-copy { padding-left:28px; }
 .mission-copy:before { left:17px; height:35px; }
 .mission-copy h2 { font-size:28px; }
 .mission-copy p { font-size:16px; }
 .briefing-card { gap:15px; padding:20px; }
 .briefing-card h2 { font-size:20px; }
 .briefing-card p { font-size:12px; }
 .briefing-card .briefing-icon { width:36px; height:36px; }
 .stats-grid { gap:12px; }
 .stat-card { gap:12px; padding:16px 12px; }
 .stat-icon { width:43px; height:47px; }
 .stat-icon .icon { width:27px; height:27px; }
 .stat-content { padding-left:12px; }
 .stat-content h2 { font-size:12px; }
 .stat-content strong { font-size:34px; }
 .stat-content small { font-size:8px; }
 .panel-heading { padding-inline:17px; }
 .panel-heading h2 { font-size:18px; }
 .panel-heading h2 .icon { width:22px; height:22px; }
 .legend { display:none; }
 .activity-chart { padding-inline:14px; height:235px; }
 .recent-runs { padding-inline:12px; }
 .recent-runs th,.recent-runs td { padding-inline:9px; font-size:11px; }
 .recent-runs .table-wrap { min-height:239px; }
}
@media(max-width:1000px) {
 .sidebar { width:185px; padding-inline:9px; }
 .workspace { margin-left:185px; }
 .nav-item { padding-inline:13px; gap:11px; font-size:13px; }
 .nav-item .icon { width:22px; height:22px; }
 .brand-sub { letter-spacing:1px; }
 .topbar { height:67px; }
 .topbar .primary,.topbar .secondary { font-size:11px; min-height:37px; padding:8px 10px; gap:5px; }
 .topbar .icon { width:16px; height:16px; }
 .heading-actions { gap:9px; }
 .breadcrumb { font-size:12px; }
 .slash { padding-inline:8px; }
 .page-heading h1 { font-size:34px; }
 .page-heading p { font-size:12px; }
 .page-heading time { display:none; }
 .overview-grid { grid-template-columns:1fr; }
 .briefing-card { display:none; }
 .stats-grid { grid-template-columns:1fr 1fr; }
 .stat-content h2 { font-size:14px; }
 .stat-card { padding:18px; }
 .bottom-grid { grid-template-columns:1fr; }
 .activity-chart { height:250px; }
 .recent-runs .table-wrap { min-height:220px; }
 .recent-runs th,.recent-runs td { font-size:12px; padding-inline:15px; }
 .table-tools { flex-wrap:wrap; }
 .table-tools .muted { font-size:10px; }
 .activity-panel,.recent-panel { border-radius:8px; }
}
@media(max-width:650px) {
 .app-shell { display:block; }
 .sidebar { position:static; width:100%; padding:17px 14px 13px; border-right:0; border-bottom:1px solid #617750; }
 .brand { flex-direction:row; justify-content:flex-start; gap:12px; margin:0 0 18px; }
 .brand-mark { width:33px; height:31px; margin:0; }
 .brand-name { font-size:21px; padding-left:0; letter-spacing:5px; }
 .brand-sub { font-size:7px; letter-spacing:1px; margin-left:auto; }
 .sidebar nav { flex-direction:row; gap:5px; overflow-x:auto; padding-bottom:4px; }
 .nav-item { min-height:39px; padding:7px 11px; gap:7px; font-size:11px; border-radius:4px; flex-shrink:0; }
 .nav-item .icon { width:17px; height:17px; }
 .nav-item.active:before { width:3px; }
 .side-bottom { display:none; }
 .workspace { margin:0; }
 .topbar { margin:0 15px; height:auto; min-height:61px; gap:12px; flex-wrap:wrap; padding:12px 0; }
 .breadcrumb { font-size:11px; }
 .topbar .primary,.topbar .secondary { min-height:34px; padding:7px 9px; font-size:10px; }
 .topbar .primary .icon,.topbar .secondary .icon { width:14px; height:14px; }
 .heading-actions { gap:7px; }
 .slash { padding-inline:7px; }
 .page-content { padding:16px 15px 0; }
 .page-heading { margin-bottom:17px; }
 .page-heading h1 { font-size:31px; line-height:1.6; letter-spacing:1px; }
 .page-heading p { font-size:11px; letter-spacing:0; }
 .mission-card { min-height:176px; }
 .mission-copy { padding:20px 18px 20px 25px; }
 .mission-copy:before { top:27px; left:16px; width:4px; height:31px; }
 .mission-copy h2 { font-size:27px; }
 .mission-copy p { font-size:15px; }
 .mission-copy p span { padding-inline:5px; }
 .mission-copy small { font-size:9px; margin-top:16px; }
 .warehouse-plan { width:110%; right:-35%; opacity:.6; }
 .mission-card:after { background:linear-gradient(90deg,#0c2417e8,#102e1db0 40%,transparent); }
 .stats-grid { gap:10px; margin:12px 0; }
 .stat-card { gap:10px; padding:15px 11px; border-radius:7px; }
 .stat-icon { width:30px; height:37px; border-radius:7px; }
 .stat-icon .icon { width:23px; height:23px; }
 .stat-content { padding-left:10px; }
 .stat-content h2 { font-size:11px; }
 .stat-content strong { font-size:29px; }
 .stat-content small { font-size:8px; line-height:1.5; min-height:24px; }
 .bottom-grid { gap:13px; }
 .panel-heading { padding:16px 15px 10px; }
 .panel-heading h2 { gap:8px; font-size:17px; }
 .panel-heading .text-button { font-size:10px; }
 .activity-chart { padding:0 11px; height:210px; }
 .chart-note { padding-inline:15px; font-size:8px; }
 .recent-runs { padding:0 11px 11px; }
 .recent-runs th,.recent-runs td { padding:10px 7px; font-size:10px; }
 .recent-runs td small { font-size:8px; }
 .recent-runs .badge { font-size:9px; padding:3px 5px; }
 .table-tools { padding:16px; font-size:12px; }
 .table-tools form { width:100%; }
 .table-tools input { width:100%; }
 th,td { padding:13px 16px; }
 .table-actions { gap:12px; }
 .pagination { padding-inline:15px; font-size:10px; gap:10px; }
 .page-footer { margin-top:20px; padding:14px 2px; font-size:10px; }
 .page-footer>span:last-child { font-size:8px; gap:8px; }
 .login-layout { grid-template-columns:1fr; }
 .login-story { display:none; }
 .login-panel { padding:30px 25px; }
}
@media(max-width:370px) {
 .topbar { align-items:flex-start; }
 .breadcrumb { width:100%; }
 .heading-actions { width:100%; }
 .heading-actions .primary { flex:1; }
 .stat-card { padding-inline:9px; gap:7px; }
 .stat-content { padding-left:7px; }
 .stat-content h2 { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { * { transition:none!important; scroll-behavior:auto!important; } }
