:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#e9f0f8;background:#0b1220;font-size:14px}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#7ad7ff;text-decoration:none}a:hover{text-decoration:underline}
.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 25% 20%,#174e63 0,transparent 34%),radial-gradient(circle at 80% 80%,#183b4a 0,transparent 32%),#0b1220;padding:24px}
.login-card{width:min(430px,100%);background:#111e2d;border:1px solid #2b4657;border-radius:22px;padding:36px;box-shadow:0 26px 80px #0008}.brand-mark{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#54dfb4;color:#082328;font-size:24px;font-weight:900}.login-card h1{font-size:27px;margin:20px 0 8px}.login-card p{color:#98aabd;line-height:1.6;margin:0 0 24px}
.shell{display:grid;grid-template-columns:246px minmax(0,1fr);min-height:100vh}.sidebar{background:#0d1726;border-right:1px solid #203047;padding:25px 17px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 12px 26px;font-weight:800;letter-spacing:.2px;font-size:17px}.brand small{display:block;color:#6e8aa2;font-size:11px;font-weight:500;margin-top:3px}.nav{display:grid;gap:5px}.nav button{width:100%;border:0;background:transparent;color:#98aabd;text-align:left;padding:12px 14px;border-radius:11px;display:flex;gap:11px;align-items:center}.nav button:hover,.nav button.active{background:#1c3543;color:#e8fffb}.nav button.active{box-shadow:inset 3px 0 #4ee1b8}.nav .icon{width:20px;text-align:center;color:#70c9bc}.sidebar-foot{margin-top:auto;padding:17px 12px;border-top:1px solid #203047;color:#91a4b7;font-size:12px;line-height:1.6}.sidebar-foot strong{display:block;color:#e9f0f8;font-size:14px}
.main{min-width:0;padding:26px 35px 50px;max-width:1700px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.eyebrow{color:#59d6ba;letter-spacing:1.8px;text-transform:uppercase;font-weight:800;font-size:10px}.topbar h1{font-size:28px;letter-spacing:-.7px;margin:4px 0 5px}.muted{color:#91a4b7}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.card{background:#111e2d;border:1px solid #26384e;border-radius:16px;padding:20px;margin-bottom:18px;box-shadow:0 7px 25px #0002}.card h2{font-size:17px;margin:0 0 17px}.card h3{font-size:14px;margin:0 0 10px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{padding:19px 20px}.metric .label{color:#99aabe;font-size:12px}.metric strong{display:block;font-size:29px;margin-top:8px;letter-spacing:-.5px}.metric small{color:#5ddbbc}.metric.warning small{color:#ffbf80}.metric.alert small{color:#ff8e96}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:17px}.toolbar .grow{flex:1;min-width:160px}.field{display:grid;gap:7px;min-width:0}.field label{font-size:12px;color:#adbdce}.field input,.field select,.field textarea,input,select,textarea{width:100%;background:#0c1725;border:1px solid #315066;color:#eaf5fb;border-radius:9px;padding:10px 11px;outline:none}.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{border-color:#58d9bd;box-shadow:0 0 0 3px #58d9bd24}.field textarea{min-height:110px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .wide{grid-column:1/-1}.checkline{display:flex;gap:8px;align-items:center;color:#b9cad8}.checkline input{width:auto}
.btn{border:1px solid #345569;background:#1a3344;color:#e8f5fb;padding:10px 14px;border-radius:9px;font-weight:700;white-space:nowrap}.btn:hover{background:#284c5e}.btn.primary{background:#43d6aa;border-color:#43d6aa;color:#072825}.btn.primary:hover{background:#68e7c0}.btn.ghost{background:transparent;border-color:#375067}.btn.danger{background:#5d2737;border-color:#8e4557;color:#ffdce2}.btn.tiny{padding:6px 9px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}
.table-wrap{overflow:auto;border:1px solid #26384e;border-radius:12px}table{width:100%;border-collapse:collapse;min-width:780px}th{background:#17283a;color:#94aabc;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:13px 12px;white-space:nowrap}td{border-top:1px solid #223448;padding:12px;vertical-align:top;color:#d8e4ec}tr:hover td{background:#15283a}.actions{display:flex;gap:5px;flex-wrap:wrap}.badge{display:inline-block;border-radius:30px;padding:4px 9px;background:#223a4b;color:#b6d6e3;font-size:11px;white-space:nowrap}.badge.ok{background:#164b43;color:#73e3be}.badge.error{background:#5a2c39;color:#ffb4bd}.badge.warn{background:#59452a;color:#ffd08a}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.nowrap{white-space:nowrap}.small{font-size:12px;color:#91a8b9}.truncate{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flag{display:inline-block;width:13px;height:13px;border-radius:50%;border:1px solid #fff5}.flag.red{background:#f36b76}.flag.orange{background:#fa9b65}.flag.yellow{background:#eccb63}.flag.green{background:#51c68e}.flag.blue{background:#65b8ff}.empty{padding:42px;text-align:center;color:#8aa0b4}
.notice{border:1px solid #48736e;background:#173638;color:#b8f0df;padding:13px 15px;border-radius:10px;line-height:1.6;margin-bottom:18px}.notice.warn{border-color:#785b3c;background:#3b2d27;color:#ffdbad}.bars{height:190px;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid #345366;padding:12px 5px}.bar{flex:1;background:linear-gradient(#49d7b1,#237e88);border-radius:5px 5px 0 0;min-height:3px;position:relative}.bar:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#283b4d;padding:6px 9px;border-radius:6px;white-space:nowrap;z-index:2;font-size:11px}.chart-labels{display:flex;justify-content:space-between;color:#7990a4;font-size:11px;margin-top:7px}.split{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.pill{padding:6px 10px;border:1px solid #345569;border-radius:30px;color:#a5c6d0;font-size:12px}#toast{position:fixed;bottom:22px;right:22px;background:#2b715f;color:white;padding:13px 17px;border-radius:10px;box-shadow:0 8px 25px #0007;max-width:400px;display:none;z-index:100}#toast.error{background:#8d4052}dialog{border:1px solid #416177;border-radius:17px;background:#111e2d;color:#e9f0f8;width:min(720px,calc(100% - 24px));max-height:90vh;overflow:auto;padding:25px;box-shadow:0 25px 80px #000a}dialog::backdrop{background:#020811bd}dialog h2{margin:0 0 20px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.mobile-head{display:none}
@media(max-width:1050px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}.main{padding:22px}}
@media(max-width:720px){.shell{display:block}.sidebar{position:static;height:auto;padding:12px 16px}.brand{padding:0 0 10px}.nav{display:flex;overflow:auto}.nav button{width:auto;flex-shrink:0;padding:9px 12px}.sidebar-foot{display:none}.main{padding:18px 13px 35px}.topbar{display:block}.top-actions{margin-top:12px}.grid.two,.grid.three,.grid.four,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.login-card{padding:26px}.toolbar .grow{width:100%}}
.bulk-fulfill-list{max-height:45vh;overflow:auto;display:grid;gap:10px;margin:16px 0}.bulk-fulfill-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid #345569;border-radius:10px;padding:12px}.bulk-fulfill-row>strong,.bulk-fulfill-row>span{grid-column:span 1}.bulk-fulfill-row .field{min-width:0}@media(max-width:640px){.bulk-fulfill-list{max-height:none;overflow:visible}.bulk-fulfill-row{grid-template-columns:1fr}.bulk-fulfill-row>strong,.bulk-fulfill-row>span{grid-column:1}}
