:root{--bg:#f4f7fb;--panel:#ffffff;--ink:#172033;--muted:#687489;--line:#dfe6ef;--blue:#1f6feb;--blue-dark:#174ea6;--green:#138a5b;--amber:#b76e00;--red:#c43b3b;--shadow:0 18px 45px rgba(25,42,70,0.11)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:var(--bg);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}body.login-mode{display:grid;min-height:100vh;place-items:center;background:linear-gradient(135deg,rgba(31,111,235,0.12),rgba(19,138,91,0.08)),var(--bg)}body.login-mode .sidebar,body.login-mode .app,body.login-mode .modal{display:none}.login-screen{width:min(420px,calc(100vw - 32px))}.login-screen[hidden]{display:none}.login-card{display:grid;gap:16px;padding:28px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}.login-brand strong,.login-brand span{display:block}.login-brand span:not(.brand-mark){margin-top:4px;color:var(--muted);font-size:13px}.login-error{min-height:18px;margin:-4px 0 0;color:var(--red);font-size:13px;font-weight:700}button,input,select,textarea{font:inherit}button{cursor:pointer}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;display:flex;flex-direction:column;padding:22px 18px;color:#fff;background:#152033}.brand{display:flex;gap:12px;align-items:center;min-height:52px;margin-bottom:28px}.brand-mark{display:grid;width:46px;height:46px;place-items:center;border-radius:8px;color:#152033;background:#f7c948;font-weight:800}.brand strong,.brand span{display:block}.brand span:not(.brand-mark){margin-top:3px;color:#b8c5d8;font-size:13px}.version-badge{margin:-14px 0 18px 58px;color:#dce7f7;font-size:12px;font-weight:800}.nav{display:grid;gap:8px}.nav button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;border:0;border-radius:7px;padding:10px 12px;color:#cdd8e8;background:transparent;text-align:left}.nav button.active,.nav button:hover{color:#fff;background:rgba(255,255,255,0.12)}.nav-group{display:grid;gap:6px}.subnav{display:none;gap:6px;padding-left:18px}.nav-group.open .subnav{display:grid}.subnav button{min-height:38px;padding:8px 10px;color:#b8c5d8;font-size:14px}.subnav button span:first-child{display:grid;width:24px;height:24px;place-items:center;border-radius:6px;background:rgba(255,255,255,0.08);font-size:12px}.sidebar-note{margin-top:auto;padding:16px;border:1px solid rgba(255,255,255,0.16);border-radius:8px;background:rgba(255,255,255,0.07)}.sidebar-note span,.sidebar-note strong{display:block}.sidebar-note span{color:#b8c5d8;font-size:13px}.sidebar-note strong{margin-top:6px;font-size:24px}.app{min-height:100vh;margin-left:260px;padding:28px}.topbar,.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.eyebrow{margin:0 0 5px;color:var(--blue);font-size:12px;font-weight:700;letter-spacing:0}h1,h2{margin:0}h1{font-size:30px}h2{font-size:19px}.top-actions,.filters{display:flex;align-items:center;gap:10px}.top-actions #logoutBtn{display:none}.user-menu{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 8px 6px 6px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 10px 25px rgba(25,42,70,0.06)}.user-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;color:#fff;background:var(--blue);font-weight:800}.user-meta{display:grid;gap:2px;min-width:92px}.user-meta strong{line-height:1.1;font-size:14px}.user-meta span{color:var(--muted);font-size:12px}.user-logout{min-height:34px;padding:7px 12px}.search{position:relative;display:block}.search span{position:absolute;left:12px;top:50%;color:var(--muted);font-size:13px;transform:translateY(-50%)}.search input{width:280px;padding-left:52px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px 11px;color:var(--ink);background:#fff;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(31,111,235,0.14)}.primary,.ghost,.icon-btn{min-height:40px;border-radius:7px;padding:9px 14px;border:1px solid transparent}.primary{color:#fff;background:var(--blue)}.primary:hover{background:var(--blue-dark)}.ghost{color:var(--blue);background:#eef5ff;border-color:#d7e7ff}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.full{width:100%}.icon-btn{width:40px;padding:0;font-size:26px;line-height:1;color:var(--muted);background:#f1f5f9}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.metrics article,.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.metrics article{padding:18px}.metrics span{color:var(--muted);font-size:13px}.metrics strong{display:block;margin-top:8px;font-size:30px}.workflow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px}.step{min-height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:#fff;font-weight:700}.step.active{color:#fff;border-color:var(--blue);background:var(--blue)}.content{display:grid;grid-template-columns:minmax(310px,410px) minmax(0,1fr);gap:18px;align-items:start}.content.single-panel{grid-template-columns:1fr}.hidden{display:none !important}.panel{padding:18px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:18px 0}label{color:#3b4658;font-size:13px;font-weight:700}label input,label textarea{margin-top:7px}.wide{grid-column:1 / -1}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:780px}th,td{border-bottom:1px solid var(--line);padding:13px 10px;text-align:left;vertical-align:middle;font-size:14px}td:last-child{min-width:150px}th{color:var(--muted);font-size:12px;font-weight:800;background:#f8fafc}.badge{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:4px 10px;color:#17456d;background:#e8f2ff;font-size:12px;font-weight:800;white-space:nowrap}.badge.green{color:#0d5c3d;background:#dcf7ea}.badge.amber{color:#7c4b00;background:#fff1cc}.badge.red{color:#8d2525;background:#ffe5e5}.row-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:max-content}.mini{min-height:32px;border:1px solid var(--line);border-radius:6px;padding:6px 9px;color:var(--ink);background:#fff;white-space:nowrap}.empty{padding:34px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.dashboard-layout{display:grid;gap:18px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.dashboard-chart{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}.dashboard-chart h3{margin:0 0 12px;font-size:16px}.bar-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(42px,1fr));align-items:end;gap:8px;min-height:180px}.bar-item{display:grid;grid-template-rows:auto 1fr auto;gap:7px;min-width:0;text-align:center}.bar-value{min-height:18px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{position:relative;height:118px;border-radius:6px;background:#eef3f9;overflow:hidden}.bar-track span{position:absolute;inset:auto 0 0;display:block;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#4f8df7,var(--blue))}.bar-item small{color:var(--muted);font-size:12px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.employee-layout{display:grid;gap:18px}.config-layout{display:grid;gap:18px}.employee-form{border:1px solid var(--line);border-radius:8px;padding:16px;background:#f8fafc}.employee-form h3{margin:0 0 14px;font-size:17px}.employee-form .field-grid{margin-top:0}.finance-toolbar{display:grid;gap:14px}.finance-toolbar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.finance-toolbar-head h3{margin-bottom:6px}.finance-toolbar-head p{margin:0;color:var(--muted);font-size:14px}.finance-filter-bar{display:grid;grid-template-columns:repeat(2,minmax(180px,240px)) auto;align-items:end;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.workbench-filter-bar{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.workbench-filter-bar label{min-width:0}.workbench-filter-bar input,.workbench-filter-bar select{min-height:38px}.form-hint{margin:-4px 0 14px;color:var(--muted);font-size:13px}.data-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}.data-card strong{display:block;margin-bottom:8px}.data-card p{margin:6px 0;color:var(--muted);font-size:14px}.setting-card{display:grid;gap:10px;align-content:start}.setting-card .mini{width:fit-content}.pricing-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line)}.tab-button{min-height:40px;border:1px solid var(--line);border-bottom:0;border-radius:7px 7px 0 0;padding:9px 16px;color:var(--muted);background:#f8fafc;font-weight:800}.tab-button.active{color:var(--blue);background:#fff}.tab-tools{min-height:34px}.freight-tabs{display:flex;flex-wrap:wrap;gap:10px}.freight-tab{display:inline-flex;align-items:center;gap:9px;min-height:38px;border:1px solid var(--line);border-radius:999px;padding:7px 8px 7px 14px;color:var(--muted);background:#fff;font-weight:800}.freight-tab strong{display:grid;min-width:28px;height:28px;place-items:center;border-radius:999px;color:#fff;background:var(--blue);font-size:13px}.freight-tab.active{color:var(--blue);border-color:var(--blue);background:#eef5ff}.rate-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.rate-head p{margin:6px 0 0;color:var(--muted);font-size:14px}.rate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.rate-card{border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff}.rate-card span{color:var(--muted);font-size:13px;font-weight:800}.rate-card strong{display:block;margin:8px 0;font-size:30px}.rate-card p{margin:0;color:var(--muted);font-size:13px}.rate-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;color:var(--muted);font-size:13px}.rate-meta span{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#fff}.price-input{max-width:180px}.price-save{margin-top:16px}.modal{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:rgba(14,24,38,0.42);z-index:20}.modal[hidden]{display:none}.modal-card{width:min(620px,100%);max-height:88vh;overflow-y:auto;border-radius:8px;padding:20px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,0.28)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.detail-grid div{padding:12px;border-radius:7px;background:#f7f9fc}.detail-grid span{display:block;color:var(--muted);font-size:12px}.detail-grid strong{display:block;margin-top:5px;overflow-wrap:anywhere}.modal-submit{margin-top:16px}.checkbox-line{display:flex;align-items:center;gap:8px}.checkbox-line input{width:auto;margin:0}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.role-permission-tabs{margin-bottom:14px}.permission-panel{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff}.permission-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.permission-panel-head span{color:var(--muted);font-size:13px}.permission-option{min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#f8fafc}.modal-table,.modal-list-empty{margin-top:16px}.modal-section-title{margin:18px 0 0;font-size:16px}.table-pager{align-items:center;border-top:1px solid var(--border);color:var(--muted);display:flex;gap:12px;justify-content:space-between;padding:14px 16px 2px}.table-pager strong{color:var(--text)}@media (max-width:1050px){.sidebar{position:static;width:auto;min-height:auto}.app{margin-left:0}.content,.metrics{grid-template-columns:1fr 1fr}.workflow{grid-template-columns:1fr}}@media (max-width:720px){.app,.sidebar{padding:16px}.topbar,.panel-head,.top-actions,.filters{align-items:stretch;flex-direction:column}.search input{width:100%}.content,.metrics,.field-grid,.finance-filter-bar,.workbench-filter-bar,.detail-grid{grid-template-columns:1fr}.finance-toolbar-head{display:grid}h1{font-size:25px}}