:root { --ink:#17213c; --muted:#73809a; --canvas:#f3f5f9; --panel:#fff; --line:#e7ebf3; --nav:#17213c; --brand:#435ac8; --cyan:#20aeb8; --danger:#d95b53; --success:#25956d; --radius:14px; font-family:"PingFang SC","Microsoft YaHei",sans-serif; color:var(--ink); }
* { box-sizing:border-box; } body { margin:0; min-width:320px; background:var(--canvas); } button,input { font:inherit; } button { cursor:pointer; }
.login { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 80% 5%,#dce6ff 0,transparent 30%),var(--canvas); }.login-card { width:min(100%,410px); padding:36px; background:var(--panel); border:1px solid var(--line); border-radius:22px; box-shadow:0 22px 56px rgba(27,40,82,.12); }.brand { display:flex; align-items:center; gap:10px; color:#fff; font-weight:700; letter-spacing:.04em; }.brand-mark { width:30px; height:30px; display:grid; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(145deg,var(--brand),var(--cyan)); font-size:16px; }.login .brand { color:var(--ink); margin-bottom:30px; }.login h1 { margin:0 0 8px; font-size:25px; }.login p { margin:0 0 25px; color:var(--muted); font-size:14px; line-height:1.7; }.field { display:grid; gap:8px; margin-bottom:16px; color:#55627b; font-size:13px; }
input,select { width:100%; min-height:42px; padding:9px 12px; border:1px solid #d9e0ec; border-radius:9px; color:var(--ink); background:#fff; outline:none; } input:focus,select:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(67,90,200,.13); }.primary,.secondary,.plain { border:0; border-radius:9px; min-height:38px; padding:0 14px; }.primary { color:#fff; background:var(--brand); }.primary:hover { background:#364cb5; }.secondary { color:var(--brand); background:#eef1ff; }.plain { color:var(--muted); background:transparent; }.wide { width:100%; }.error { min-height:20px; margin:8px 0 0; color:var(--danger); font-size:13px; }.login-note { margin-top:20px; color:var(--muted); font-size:12px; line-height:1.7; }
.shell { min-height:100vh; display:grid; grid-template-columns:236px minmax(0,1fr); }.sidebar { padding:20px 12px; color:#d5dcef; background:var(--nav); }.sidebar .brand { padding:0 10px 23px; }.nav-group { margin:18px 0 8px; padding:0 11px; color:#8491b0; font-size:11px; letter-spacing:.08em; }.nav-item { width:100%; display:flex; align-items:center; gap:11px; min-height:42px; padding:0 11px; border:0; border-radius:8px; color:#c8d2e8; text-align:left; background:transparent; }.nav-item:hover,.nav-item.active { color:#fff; background:rgba(126,145,217,.2); }.nav-icon { width:20px; color:#a8b8e7; text-align:center; }.workspace { min-width:0; }.topbar { height:70px; display:flex; align-items:center; justify-content:space-between; padding:0 30px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.9); }.topbar h1 { margin:0; font-size:19px; }.operator { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:13px; }.avatar { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:var(--brand); background:#e9edff; font-weight:700; }.content { padding:28px 30px 48px; }.page-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:22px; }.page-head h2 { margin:0; font-size:24px; }.page-head p { margin:7px 0 0; color:var(--muted); font-size:13px; }
.metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.metric,.panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 4px 14px rgba(23,33,60,.025); }.metric { padding:18px; }.metric small { color:var(--muted); font-size:13px; }.metric strong { display:block; margin-top:8px; font-size:28px; letter-spacing:-.02em; }.metric em { color:var(--success); font-size:12px; font-style:normal; }.split { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(310px,.85fr); gap:16px; margin-top:16px; }.panel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 18px 0; }.panel-head h3 { margin:0; font-size:16px; }.panel-body { padding:16px 18px 18px; }.todo { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; width:100%; padding:13px 0; border:0; border-bottom:1px solid var(--line); text-align:left; }.todo:last-child { border-bottom:0; }.todo strong { font-size:14px; }.todo span { color:var(--muted); font-size:12px; }.count { min-width:28px; padding:4px 7px; border-radius:14px; color:var(--brand); background:#eef1ff; text-align:center; font-weight:700; font-size:12px; }
.toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:16px; }.toolbar input { width:250px; }.toolbar .spacer { flex:1; }.tabs { display:flex; gap:7px; overflow-x:auto; padding:0 16px 13px; }.tab { flex:0 0 auto; min-height:33px; padding:0 11px; border:0; border-radius:8px; color:#5e6b83; background:#f1f3f7; font-size:13px; }.tab.active { color:#fff; background:var(--brand); }.table-wrap { overflow-x:auto; } table { width:100%; border-collapse:collapse; font-size:13px; } th,td { padding:14px 16px; border-top:1px solid var(--line); text-align:left; white-space:nowrap; } th { color:var(--muted); background:#fbfcfe; font-weight:500; } td.detail { max-width:300px; overflow:hidden; text-overflow:ellipsis; }.status { display:inline-flex; padding:4px 8px; border-radius:10px; font-size:12px; }.status.up { color:#187b5b; background:#e7f7f0; }.status.down { color:#9a6760; background:#fff0ee; }.status.wait { color:#996425; background:#fff5e7; }.empty { padding:42px 20px; color:var(--muted); text-align:center; }
 .editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin-bottom:16px; }.editor-grid > .panel-body + .panel-body { border-left:1px solid var(--line); }.order-detail { margin-bottom:16px; }.order-meta { display:flex; flex-wrap:wrap; gap:10px 22px; padding:14px 18px; color:var(--muted); border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:13px; }.detail-copy { margin:6px 0 0; color:var(--muted); font-size:13px; }.form-hint { margin:12px 0 0; color:var(--muted); font-size:12px; line-height:1.6; } button:disabled { cursor:not-allowed; opacity:.5; }
 .order-info { display:grid; gap:0; }.order-info > section { padding:18px; border-bottom:1px solid var(--line); }.order-info > section:last-child { border-bottom:0; }.order-info h3 { margin:0 0 12px; font-size:14px; }.detail-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.detail-columns p { margin:6px 0; color:var(--muted); font-size:13px; line-height:1.55; white-space:normal; }.timeline { display:grid; gap:8px; margin:0; padding-left:20px; color:var(--muted); font-size:13px; line-height:1.55; }
@media (max-width:900px) { .shell { grid-template-columns:1fr; }.sidebar { display:flex; align-items:center; overflow-x:auto; padding:10px; }.sidebar .brand { flex:0 0 auto; padding:0 14px 0 4px; }.nav-group { display:none; }.nav-item { width:auto; flex:0 0 auto; padding:0 10px; }.topbar { padding:0 18px; }.content { padding:22px 18px 36px; }.metrics,.split,.editor-grid,.detail-columns { grid-template-columns:1fr; }.editor-grid > .panel-body + .panel-body { border-top:1px solid var(--line); border-left:0; } } @media (max-width:560px) { .topbar h1 { font-size:16px; }.operator span { display:none; }.page-head { display:block; }.toolbar input { width:100%; }.toolbar .spacer { display:none; } th,td { padding:12px; } }

.settings-content { max-width:1440px; }.settings-page-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:20px; }.settings-page-head h2 { margin:0; font-size:25px; }.settings-page-head p { max-width:760px; margin:8px 0 0; color:var(--muted); font-size:13px; line-height:1.65; }.settings-filter { display:flex; align-items:end; justify-content:space-between; gap:16px; padding:16px 18px; border-bottom:1px solid var(--line); }.settings-filter label { display:grid; gap:7px; color:#55627b; font-size:13px; }.settings-filter select { min-width:190px; }.settings-filter .form-hint { margin:0; }.settings-key { display:block; margin-top:5px; color:var(--muted); font-size:11px; font-weight:400; }.settings-value { max-width:250px; overflow:hidden; text-overflow:ellipsis; }.settings-history { margin-top:16px; }.settings-kind { display:inline-flex; align-items:center; min-height:24px; padding:0 7px; border-radius:6px; color:#2762c8; background:#eaf1ff; font-size:11px; font-weight:700; }.settings-kind.rollback { color:#68748b; background:#edf0f5; }.settings-link { min-height:auto; padding:3px 0; color:var(--brand); }.settings-notice { margin-bottom:16px; padding:11px 14px; border:1px solid #b9d8ff; border-radius:9px; color:#245caa; background:#f0f7ff; font-size:13px; }.settings-drawer-mask { position:fixed; z-index:10; inset:0; background:rgba(15,26,49,.28); }.settings-drawer { position:fixed; z-index:11; top:0; right:0; display:flex; flex-direction:column; width:min(100%,450px); height:100vh; padding:26px; overflow-y:auto; border-left:1px solid var(--line); background:#fff; box-shadow:-20px 0 48px rgba(22,38,70,.14); }.settings-drawer-head { display:flex; justify-content:space-between; gap:16px; padding-bottom:20px; border-bottom:1px solid var(--line); }.settings-drawer-head h2 { margin:0; font-size:22px; }.settings-drawer-head p { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }.settings-drawer-head .plain { min-width:32px; padding:0; font-size:28px; line-height:1; }.change-summary { margin:20px 0; padding:14px; border-radius:10px; background:#f7f9fd; }.change-summary dl { display:grid; gap:12px; margin:0; }.change-summary dl div { display:grid; grid-template-columns:88px minmax(0,1fr); gap:12px; }.change-summary dt { color:var(--muted); font-size:13px; }.change-summary dd { min-width:0; margin:0; overflow-wrap:anywhere; color:var(--ink); font-size:13px; }.settings-drawer textarea { width:100%; resize:vertical; padding:10px 12px; border:1px solid #d9e0ec; border-radius:9px; color:var(--ink); outline:none; }.settings-drawer textarea:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(67,90,200,.13); }.settings-number { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }.settings-number span { color:var(--muted); font-size:13px; }.settings-form-error { margin:0 0 12px; padding:10px 12px; border:1px solid #ffc9c6; border-radius:8px; color:#b63232; background:#fff4f3; font-size:13px; line-height:1.55; }.settings-drawer-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:auto; padding-top:24px; }.settings-detail-table { margin-top:4px; }.settings-detail-table td { white-space:normal; vertical-align:top; line-height:1.55; }.settings-detail .change-summary { margin-bottom:16px; }
@media (max-width:720px) { .settings-page-head,.settings-filter { display:grid; align-items:stretch; }.settings-page-head .secondary { justify-self:start; }.settings-filter select { min-width:0; }.settings-drawer { width:100%; padding:20px; }.settings-history { margin-top:12px; }.settings-content .panel:not(.settings-history) table { table-layout:fixed; }.settings-content .panel:not(.settings-history) th,.settings-content .panel:not(.settings-history) td { padding:10px 8px; overflow:hidden; text-overflow:ellipsis; }.settings-content .panel:not(.settings-history) th:nth-child(1) { width:45%; }.settings-content .panel:not(.settings-history) th:nth-child(2) { width:32%; }.settings-content .panel:not(.settings-history) th:nth-child(5) { width:23%; }.settings-content .panel:not(.settings-history) th:nth-child(3),.settings-content .panel:not(.settings-history) td:nth-child(3),.settings-content .panel:not(.settings-history) th:nth-child(4),.settings-content .panel:not(.settings-history) td:nth-child(4) { display:none; }.settings-content .panel:not(.settings-history) .secondary { min-height:32px; padding:0 8px; }.settings-content .settings-key { max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.settings-content .settings-value { max-width:104px; }.settings-history th,.settings-history td { padding:10px 8px; }.settings-history th:nth-child(2),.settings-history td:nth-child(2) { display:none; } }

.assets-content { max-width:1480px; }.assets-notice,.assets-error { margin:0 0 16px; padding:11px 14px; border-radius:9px; font-size:13px; line-height:1.55; }.assets-notice { color:#245caa; border:1px solid #b9d8ff; background:#f0f7ff; }.assets-error { color:#b63232; border:1px solid #ffc9c6; background:#fff4f3; }.assets-upload { margin-bottom:16px; }.assets-upload-form { display:grid; grid-template-columns:170px minmax(230px,1fr) minmax(230px,1fr) auto; gap:12px; align-items:end; padding:16px 18px 18px; }.assets-upload-form label,.assets-inline-form label { display:grid; gap:7px; color:#55627b; font-size:13px; }.assets-upload > .form-hint { margin:0; padding:0 18px 18px; }.assets-id { display:block; max-width:260px; margin-top:4px; overflow:hidden; color:var(--muted); font-size:10px; text-overflow:ellipsis; }.assets-detail { margin-bottom:16px; }.assets-detail-grid { display:grid; grid-template-columns:minmax(320px,.85fr) minmax(380px,1.15fr); gap:22px; padding:18px; border-top:1px solid var(--line); }.assets-detail-grid h4 { margin:0 0 12px; font-size:14px; }.assets-detail-grid dl { display:grid; gap:0; margin:0; }.assets-detail-grid dl div { display:grid; grid-template-columns:105px minmax(0,1fr); gap:15px; padding:10px 0; border-bottom:1px solid var(--line); }.assets-detail-grid dt { color:var(--muted); font-size:12px; }.assets-detail-grid dd { min-width:0; margin:0; overflow-wrap:anywhere; font-size:13px; }.assets-detail-grid ul { margin:0; padding-left:19px; color:#55627b; font-size:13px; line-height:1.8; }.assets-detail-actions { display:flex; gap:8px; margin-top:15px; }.assets-preview { display:flex; gap:12px; align-items:center; margin:12px 0 0; font-size:13px; }.assets-preview a { color:var(--brand); }.assets-preview small { color:var(--muted); }.assets-failure { display:grid; gap:4px; padding:12px; border-radius:8px; color:#9a3e38; background:#fff1ef; font-size:12px; line-height:1.55; }.assets-inline-form { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:10px; align-items:end; margin-top:16px; }.assets-task-summary { display:flex; flex-wrap:wrap; gap:10px 24px; padding:14px 18px; color:var(--muted); border-top:1px solid var(--line); font-size:12px; }.assets-events { display:grid; gap:10px; margin:0; padding:0; list-style:none; }.assets-events li { display:grid; grid-template-columns:145px minmax(120px,1fr); gap:4px 12px; padding:10px 12px; border-left:2px solid #9caee5; background:#f7f9fd; font-size:12px; }.assets-events small { grid-column:2; color:var(--muted); }
@media (max-width:1080px) { .assets-upload-form { grid-template-columns:1fr 1fr; }.assets-detail-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .assets-upload-form,.assets-inline-form { grid-template-columns:1fr; }.assets-events li { grid-template-columns:1fr; }.assets-events small { grid-column:1; }.assets-preview { align-items:start; flex-direction:column; }.assets-content .toolbar select,.assets-content .toolbar input { width:100%; } }

.batch-shell { min-height:100vh; display:grid; grid-template-columns:238px minmax(0,1fr); color:#14223b; background:#f3f1ec; }.batch-sidebar { display:flex; flex-direction:column; padding:25px 14px 18px; color:#d4dcee; background:linear-gradient(160deg,#17213c 0%,#111a31 68%,#1b3150 100%); }.batch-brand { display:flex; align-items:center; gap:11px; padding:0 10px 29px; font-weight:700; line-height:1.1; }.batch-brand b { display:grid; place-items:center; width:34px; height:34px; border:1px solid rgba(255,255,255,.24); border-radius:11px; color:#dffaff; background:linear-gradient(140deg,#3166c8,#23b8b5); box-shadow:0 9px 20px rgba(13,24,53,.32); }.batch-brand small { color:#8fa0c8; font-size:10px; font-weight:500; letter-spacing:.13em; }.batch-nav-label { margin:0 10px 9px; color:#7181a9; font-size:10px; letter-spacing:.12em; }.batch-nav { display:flex; gap:11px; align-items:center; min-height:44px; padding:0 10px; border:1px solid transparent; border-radius:10px; color:#c4d0e9; text-align:left; background:transparent; }.batch-nav i { color:#7692c6; font-size:10px; font-style:normal; }.batch-nav:hover,.batch-nav.active { border-color:rgba(147,182,238,.19); color:#fff; background:rgba(87,119,193,.2); }.batch-nav.active i { color:#59d8ce; }.batch-sidebar-foot { display:flex; gap:8px; align-items:center; margin-top:auto; padding:17px 10px 0; color:#8392b5; border-top:1px solid rgba(255,255,255,.09); font-size:11px; line-height:1.5; }.batch-sidebar-foot span { width:7px; height:7px; border-radius:50%; background:#42c9b4; box-shadow:0 0 0 4px rgba(66,201,180,.1); }.batch-main { min-width:0; }.batch-topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:91px; padding:19px 34px; border-bottom:1px solid #e5e3dc; background:rgba(255,255,255,.72); }.batch-topbar p,.batch-panel header p,.batch-list-head p { margin:0 0 5px; color:#3c7f96; font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }.batch-topbar h1 { margin:0; font-family:Georgia,"Songti SC",serif; font-size:26px; letter-spacing:.02em; }.batch-top-actions { display:flex; gap:5px; }.batch-content { max-width:1540px; padding:28px 34px 60px; }.batch-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }.batch-metric { position:relative; min-height:128px; padding:18px; overflow:hidden; border:1px solid #e2e2df; border-radius:13px; background:#fffefa; box-shadow:0 7px 19px rgba(24,34,57,.035); }.batch-metric::after { position:absolute; right:-25px; bottom:-31px; width:92px; height:92px; border:1px solid #e2edf0; border-radius:50%; content:""; }.batch-metric small,.batch-metric em { position:relative; z-index:1; display:block; color:#758196; font-size:12px; font-style:normal; }.batch-metric strong { position:relative; z-index:1; display:block; margin:12px 0 9px; color:#192847; font-size:24px; letter-spacing:-.04em; }.batch-metric em { color:#349989; font-size:11px; }.batch-grid { display:grid; gap:14px; margin-top:14px; }.batch-overview-grid { grid-template-columns:1.3fr .9fr; }.batch-panel { overflow:hidden; border:1px solid #e3e1db; border-radius:13px; background:#fffefa; box-shadow:0 7px 19px rgba(24,34,57,.035); }.batch-panel header,.batch-list-head { display:flex; align-items:start; justify-content:space-between; gap:16px; padding:20px 20px 15px; }.batch-panel h2,.batch-list-head h2 { margin:0; font-family:Georgia,"Songti SC",serif; font-size:20px; }.batch-panel header > span { color:#8792a3; font-size:11px; text-align:right; line-height:1.5; }.batch-bars { display:flex; align-items:end; gap:7px; height:188px; padding:10px 20px 19px; border-top:1px solid #efede8; background:linear-gradient(180deg,rgba(235,245,245,.45),transparent); }.batch-bar { display:grid; flex:1; align-items:end; min-width:7px; height:100%; gap:8px; }.batch-bar div { min-height:3px; border-radius:5px 5px 1px 1px; background:linear-gradient(180deg,#3fbdba,#4b6fc5); }.batch-bar small { overflow:hidden; color:#8792a3; font-size:9px; text-align:center; text-overflow:ellipsis; white-space:nowrap; }.batch-todos { min-height:290px; }.batch-todo { display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; width:100%; padding:12px 20px; border:0; border-top:1px solid #efede8; color:#26344f; text-align:left; background:transparent; }.batch-todo:hover { background:#f5f9f8; }.batch-todo b { min-width:25px; color:#256c92; text-align:center; }.batch-todo i { color:#8792a3; font-size:10px; font-style:normal; }.batch-top-goods { min-height:235px; }.batch-top-goods ol,.batch-ranking { margin:0; padding:0 20px 11px; list-style:none; }.batch-top-goods li,.batch-ranking li { display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; min-height:32px; border-top:1px solid #efede8; font-size:13px; }.batch-top-goods li b,.batch-ranking li b { color:#bd844a; font-family:Georgia,serif; }.batch-top-goods li em,.batch-ranking li em { color:#708092; font-size:12px; font-style:normal; }.batch-top-goods footer { padding:12px 20px; color:#5f6f84; border-top:1px solid #efede8; background:#faf8f3; font-size:12px; }.batch-contract { padding-bottom:18px; }.batch-contract ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:0; padding:0 20px; list-style:none; }.batch-contract li { display:grid; gap:4px; padding:10px; border-left:2px solid #d5a461; color:#4a5b6e; background:#fbf8f2; font-size:12px; line-height:1.45; }.batch-contract li small { color:#9a886e; font-size:10px; }.batch-contract > p { margin:14px 20px 0; color:#768498; font-size:12px; line-height:1.6; }.batch-filter { margin-bottom:14px; padding:14px; border:1px solid #e3e1db; border-radius:13px; background:#fffefa; }.batch-filter form { display:flex; flex-wrap:wrap; gap:9px; }.batch-filter input,.batch-filter select { width:auto; min-width:150px; background:#fff; }.batch-filter input[name="keyword"] { min-width:min(100%,270px); }.batch-list-head { align-items:center; }.batch-list-head > div:last-child { display:flex; gap:4px; }.batch-toggle-active { color:#315bb4; background:#edf2ff; }.batch-selection { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:11px 20px; color:#526477; border-top:1px solid #e9e7e1; border-bottom:1px solid #e9e7e1; background:#f7fbfa; font-size:12px; }.batch-table input { width:16px; min-height:16px; }.batch-table .batch-name strong,.batch-table .batch-name small { display:block; }.batch-table .batch-name small { margin-top:4px; color:#8792a3; font-size:10px; }.batch-status { display:inline-flex; padding:3px 7px; border-radius:8px; font-size:11px; }.batch-status.on { color:#23785e; background:#e6f5ee; }.batch-status.off { color:#9d645d; background:#fff0ed; }.batch-pagination { display:flex; justify-content:flex-end; align-items:center; gap:9px; padding:14px 20px; color:#778598; border-top:1px solid #e9e7e1; font-size:12px; }.batch-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:13px; padding:20px; }.batch-cards article { padding:13px; border:1px solid #ebe8df; border-radius:11px; background:#fff; }.batch-card-image { display:grid; place-items:center; height:106px; margin-bottom:12px; overflow:hidden; border-radius:8px; color:#6a82b6; background:#edf0f5; }.batch-card-image img { width:100%; height:100%; object-fit:cover; }.batch-cards small { color:#8792a3; font-size:10px; }.batch-cards h3 { min-height:40px; margin:8px 0; font-size:14px; line-height:1.45; }.batch-cards p { display:flex; justify-content:space-between; gap:8px; margin:0 0 10px; color:#b25a4c; font-weight:700; }.batch-cards p em { color:#738296; font-size:11px; font-style:normal; font-weight:400; }.batch-analysis-grid { grid-template-columns:1.25fr .9fr .75fr; }.batch-empty { padding:25px 20px; color:#7f8c9d; font-size:12px; text-align:center; }.batch-loading,.batch-error { display:grid; place-items:center; min-height:300px; padding:30px; border:1px solid #e3e1db; border-radius:13px; color:#718096; background:#fffefa; text-align:center; }.batch-loading span { width:32px; height:32px; border:3px solid #d9e7e7; border-top-color:#3c9b9e; border-radius:50%; animation:batch-spin .8s linear infinite; }.batch-loading p { margin:14px 0 0; font-size:13px; }.batch-error b { color:#b95b52; }.batch-error p { max-width:520px; line-height:1.65; }.batch-error .secondary { margin-top:8px; } @keyframes batch-spin { to { transform:rotate(360deg); } }
@media (max-width:1120px) { .batch-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }.batch-analysis-grid { grid-template-columns:1fr 1fr; }.batch-analysis-grid .batch-contract { grid-column:span 2; } } @media (max-width:820px) { .batch-shell { grid-template-columns:1fr; }.batch-sidebar { flex-direction:row; align-items:center; gap:5px; overflow-x:auto; padding:10px; }.batch-brand { flex:0 0 auto; padding:0 13px 0 3px; }.batch-nav-label,.batch-sidebar-foot { display:none; }.batch-nav { flex:0 0 auto; }.batch-topbar { padding:17px 18px; }.batch-content { padding:19px 18px 38px; }.batch-overview-grid,.batch-analysis-grid { grid-template-columns:1fr; }.batch-analysis-grid .batch-contract { grid-column:auto; }.batch-contract ul { grid-template-columns:1fr; } } @media (max-width:540px) { .batch-topbar { align-items:start; }.batch-topbar h1 { font-size:22px; }.batch-top-actions { display:grid; }.batch-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.batch-metric { min-height:108px; }.batch-metric strong { font-size:21px; }.batch-filter form,.batch-filter input,.batch-filter select { width:100%; }.batch-list-head { align-items:start; }.batch-list-head > div:last-child { flex-wrap:wrap; justify-content:flex-end; }.batch-selection { align-items:start; flex-direction:column; }.batch-todo { grid-template-columns:1fr auto; }.batch-todo i { display:none; }.batch-panel header { padding:16px; }.batch-bars { padding-left:13px; padding-right:13px; }.batch-cards { grid-template-columns:1fr 1fr; padding:12px; gap:8px; }.batch-cards article { padding:9px; }.batch-card-image { height:80px; }.batch-cards h3 { font-size:13px; }.batch-table th:nth-child(3),.batch-table td:nth-child(3) { display:none; } }
@media (max-width:540px) { .batch-topbar { flex-direction:column; gap:12px; }.batch-top-actions { display:flex; width:100%; }.batch-top-actions .plain { flex:1; min-height:38px; } }
.batch-list-actions { position:relative; }.batch-column-picker { position:absolute; z-index:3; top:calc(100% + 8px); right:0; display:grid; gap:8px; min-width:164px; padding:12px; border:1px solid #dedbd3; border-radius:10px; background:#fffefa; box-shadow:0 15px 32px rgba(24,34,57,.14); }.batch-column-picker label { display:flex; gap:8px; align-items:center; color:#394a62; font-size:12px; }.batch-column-picker input { width:15px; min-height:15px; }.batch-column-picker small { padding-top:7px; color:#7d899a; border-top:1px solid #ebe8e1; font-size:10px; line-height:1.45; }
.batch-ranking li.batch-empty { display:block; }
