/* 启达新能源 · BMS智慧库存管理系统 —— 界面样式
   色彩：深海军蓝侧栏 + 充电青绿操作色；电池格作为唯一的视觉母题（Logo / 登录页 / 库存电量计） */
@font-face{font-family:"Barlow";font-weight:400;font-display:swap;src:url(fonts/barlow-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:500;font-display:swap;src:url(fonts/barlow-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url(fonts/barlow-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:700;font-display:swap;src:url(fonts/barlow-latin-700-normal.woff2) format("woff2")}

:root{
  --ink:#14222B; --ink-2:#3A4A52; --muted:#66757B; --faint:#97A3A7;
  --bg:#F1F4F3; --panel:#FFFFFF; --panel-2:#F7F9F8;
  --line:#DCE3E1; --line-2:#EAEFED; --field:#CBD5D2;
  --rail:#0F2430; --rail-2:#183545; --rail-text:#B7C6CB; --rail-mute:#6E8791;
  --teal:#12A150; --teal-d:#0B7A3B; --teal-l:#E5F5EB; --teal-ring:#A6DDB8;
  --volt:#FFD25A;
  --ok:#1A7F37; --ok-bg:#E6F4EA; --ok-line:#BFE3CB;
  --warn:#8A5A00; --warn-bg:#FFF4D6; --warn-line:#F5DC9A;
  --bad:#C0262D; --bad-bg:#FDECEC; --bad-line:#F4C4C6;
  --info:#1F5FB8; --info-bg:#E8F0FC; --info-line:#C4D7F4;
  --s-good:#0ca30c; --s-warn:#fab219; --s-serious:#ec835a; --s-crit:#d03b3b;
  --c-blue:#2a78d6; --c-blue-l:#86b6ef; --c-orange:#eb6834;
  --r:10px; --r-s:7px;
  --font:"Barlow","PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans CJK SC","Source Han Sans SC",system-ui,sans-serif;
  --shadow-pop:0 14px 36px rgba(15,36,48,.16),0 2px 6px rgba(15,36,48,.06);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--teal-d);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3{font-weight:600;letter-spacing:.005em}
.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.muted{color:var(--muted)} .faint{color:var(--faint)} .nw{white-space:nowrap}
.code{font-weight:500;letter-spacing:.01em;white-space:nowrap}
.n,.num{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}

/* ---------- 布局 ---------- */
.app{display:grid;grid-template-columns:var(--rail-w,224px) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s}
.app.slim{--rail-w:68px}
.rail{background:var(--rail);color:var(--rail-text);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:1px solid #0A1A23;overflow:hidden}
.brand{display:flex;align-items:center;gap:11px;padding:16px 16px 18px;color:#fff;text-decoration:none!important;min-height:72px}
.brand .logo{flex:none}
.brand .t1{font-size:16px;font-weight:600;letter-spacing:.06em;line-height:1.2;white-space:nowrap}
.brand .t2{font-size:11px;color:var(--rail-mute);margin-top:3px;letter-spacing:.02em;white-space:nowrap}
.nav{flex:1;overflow-y:auto;padding:2px 12px 12px;display:flex;flex-direction:column;gap:3px;scrollbar-width:thin;scrollbar-color:#2A4655 transparent}
.nav .sep{height:1px;background:#1B3644;margin:8px 6px}
.nav a{position:relative;display:flex;align-items:center;gap:12px;height:40px;padding:0 12px;border-radius:9px;color:var(--rail-text);font-size:14px;text-decoration:none;white-space:nowrap}
.nav a .ic{width:19px;height:19px;color:#7F98A2;stroke-width:1.7}
.nav a:hover{background:#15303E;color:#fff}
.nav a.on{background:linear-gradient(90deg,rgba(18,161,80,.28),rgba(18,161,80,.08));color:#fff;font-weight:500}
.nav a.on::before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:#3FCB74}
.nav a.on .ic{color:#7FE0A1}
.nav .count{margin-left:auto;background:var(--s-crit);color:#fff;border-radius:999px;font-size:11px;font-weight:600;padding:0 6px;line-height:18px;min-width:18px;text-align:center}
.rail-foot{border-top:1px solid #1D3A48;padding:10px 12px;display:flex;align-items:center;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;background:#20414F;color:#E5F2EF;display:grid;place-items:center;font-weight:600;font-size:13px;flex:none}
.rail-foot .who{min-width:0;flex:1;line-height:1.3}
.rail-foot .who b{display:block;color:#fff;font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-foot .who span{font-size:11.5px;color:var(--rail-mute);white-space:nowrap}
.rail-foot a,.rail-foot button{color:#8EA4AD;display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:none;border:0;cursor:pointer;flex:none}
.rail-foot a:hover,.rail-foot button:hover{background:#1A3644;color:#fff}
.app.slim .brand>div,.app.slim .nav a span,.app.slim .nav .count,.app.slim .rail-foot .who,.app.slim .rail-foot a{display:none}
.app.slim .brand{justify-content:center;padding:16px 0 18px}
.app.slim .nav{padding:2px 10px}
.app.slim .nav a{justify-content:center;padding:0}
.app.slim .nav a.on::before{left:-10px}
.app.slim .rail-foot{flex-direction:column;padding:10px 0}
.app.slim .collapse-btn .ic{transform:rotate(180deg)}

.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.topbar .tb-row{display:flex;align-items:center;gap:14px;min-height:60px;padding:10px 24px}
.topbar h1{font-size:18px;margin:0;line-height:1.3}
.topbar .sub{font-size:12.5px;color:var(--muted);margin-top:1px}
.topbar .tb-l{min-width:0;flex:1}
.topbar .tb-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.subnav{display:flex;gap:4px;padding:0 20px;overflow-x:auto;scrollbar-width:none}
.subnav a{position:relative;display:inline-flex;align-items:center;height:38px;padding:0 12px;color:var(--muted);font-size:13.5px;white-space:nowrap;text-decoration:none!important}
.subnav a:hover{color:var(--ink)}
.subnav a.on{color:var(--ink);font-weight:600}
.subnav a.on::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--teal)}
.bell{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:8px;color:var(--ink-2);border:1px solid var(--line)}
.bell:hover{background:var(--panel-2);text-decoration:none}
.bell .ic{width:18px;height:18px}
.bell i{position:absolute;top:-5px;right:-5px;background:var(--s-crit);color:#fff;font-style:normal;font-size:11px;font-weight:600;border-radius:999px;padding:0 5px;line-height:17px;border:2px solid #fff}
.menu-btn{display:none}
.content{padding:20px 24px 56px;min-width:0}
.new-menu .pop{width:250px;padding:6px}
.new-menu .pop a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;color:var(--ink);text-decoration:none}
.new-menu .pop a:hover{background:var(--teal-l)}
.new-menu .pop a .ic{color:var(--teal)}
.new-menu .pop .grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}

/* ---------- 提示 ---------- */
.flash{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:8px;border:1px solid;margin-bottom:14px}
.flash .ic{margin-top:2px}
.flash.ok{background:var(--ok-bg);border-color:var(--ok-line);color:#135C2A}
.flash.error{background:var(--bad-bg);border-color:var(--bad-line);color:#8E1C21}
.flash.info{background:var(--info-bg);border-color:var(--info-line);color:#163F7A}
.flash.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
.note{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:8px;background:var(--panel-2);border:1px dashed var(--line);color:var(--ink-2);font-size:13px;margin:0 0 14px}
.note.warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:#5E4300}
.note.bad{background:var(--bad-bg);border:1px solid var(--bad-line);color:#8E1C21}
.note.ok{background:var(--ok-bg);border:1px solid var(--ok-line);color:#135C2A}
.note.info{background:var(--info-bg);border:1px solid var(--info-line);color:#163F7A}

/* ---------- 卡片 ---------- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);margin-bottom:18px;min-width:0}
.card-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.card-h h2{font-size:15px;margin:0;display:flex;align-items:center;gap:8px}
.card-h h2 .ic{color:var(--teal);width:17px;height:17px}
.card-h .sub{font-size:12.5px;color:var(--muted)}
.card-h .tools{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.card-b{padding:14px 16px}
.card-b.flush{padding:0}
.card-f{padding:12px 16px;border-top:1px solid var(--line-2);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid3{display:grid;grid-template-columns:2fr 1fr;gap:18px}
.grid2>.card,.grid3>.card{margin-bottom:0}
.grid2+.card,.grid2+.grid2,.grid2+section{margin-top:18px}
.stack{display:flex;flex-direction:column;gap:18px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sp{flex:1}
@media(max-width:1180px){.grid2,.grid3{grid-template-columns:1fr}}

/* KPI 条：一张卡片内分栏 */
.stats{display:grid;grid-template-columns:1.35fr repeat(5,1fr);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);margin-bottom:18px;overflow:hidden}
.stat{padding:14px 18px;border-left:1px solid var(--line-2);min-width:0;color:inherit;text-decoration:none!important;display:block}
.stat:first-child{border-left:0}
a.stat:hover{background:var(--panel-2)}
.stat .l{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
.stat .v{font-size:26px;font-weight:600;line-height:1.25;margin-top:4px;color:var(--ink)}
.stat .f{font-size:12px;color:var(--muted);margin-top:2px}
.stat.hero .v{font-size:38px;letter-spacing:-.01em}
.stat.hero{background:linear-gradient(180deg,#F5FBFA,#fff)}
.stat .v.bad{color:var(--bad)} .stat .v.warn{color:var(--warn)}
.stat .l .ic{width:14px;height:14px}
@media(max-width:1180px){.stats{grid-template-columns:repeat(3,1fr)}.stat:nth-child(4){border-left:0}.stat{border-top:1px solid var(--line-2)}}
@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}.stat{border-left:0}}

/* ---------- 表格 ---------- */
.tbl-wrap{overflow:auto;background:#fff}
.card>.tbl-wrap{border-radius:0 0 var(--r) var(--r)}
.tbl-wrap.tall{max-height:calc(100vh - 250px)}
.tbl-wrap.mid{max-height:420px}
table.tbl{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}
.tbl th{position:sticky;top:0;z-index:2;background:#F5F8F7;text-align:left;font-weight:600;font-size:12.5px;color:var(--ink-2);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th.sortable{cursor:pointer;user-select:none}
.tbl th.sortable:hover{color:var(--ink)}
.tbl th .ic{width:12px;height:12px;opacity:.35;margin-left:2px}
.tbl th.asc .ic,.tbl th.desc .ic{opacity:1;color:var(--teal)}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.tbl tbody tr:hover td{background:#F6FAF9}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl .c{text-align:center}
.tbl tr.muted td{color:var(--faint)}
.tbl tr.grp td{background:var(--panel-2);font-weight:600;font-size:12.5px;color:var(--ink-2);padding:6px 10px}
.tbl tfoot td{font-weight:600;background:var(--panel-2);border-top:1px solid var(--line);position:sticky;bottom:0}
.tbl td.act{white-space:nowrap;text-align:right}
.tbl .zero{color:#C3CCC9}
.tbl a.code{color:var(--ink);font-weight:600}
.tbl a.code:hover{color:var(--teal-d)}
.tbl input[type=number]{width:96px}
tr.flag-hide{display:none}

/* ---------- 按钮 / 表单 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--r-s);border:1px solid var(--field);background:#fff;color:var(--ink);font:500 13.5px var(--font);cursor:pointer;white-space:nowrap;text-decoration:none!important}
.btn:hover{background:var(--panel-2);border-color:#B5C2BE}
.btn.pri{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.pri:hover{background:var(--teal-d);border-color:var(--teal-d)}
.btn.danger{color:var(--bad);border-color:var(--bad-line)}
.btn.danger:hover{background:var(--bad-bg)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}
.btn.ghost:hover{background:var(--line-2)}
.btn.sm{height:28px;padding:0 10px;font-size:12.5px;gap:4px}
.btn.sm .ic{width:14px;height:14px}
.btn[disabled]{opacity:.5;pointer-events:none}
.link-btn{background:none;border:0;padding:2px;cursor:pointer;color:var(--muted)}
.link-btn.danger:hover{color:var(--bad)}
input,select,textarea{font:inherit;font-size:13.5px;color:var(--ink);background:#fff;border:1px solid var(--field);border-radius:var(--r-s);padding:0 10px;height:36px;min-width:0}
select{-webkit-appearance:none;appearance:none;padding-right:30px;cursor:pointer;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2366757B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center}
select:hover{border-color:#B5C2BE}
select:disabled{background-color:var(--panel-2);color:var(--muted)}
option,optgroup{font:inherit;color:var(--ink)}
textarea{height:auto;min-height:76px;padding:8px 10px;width:100%;resize:vertical;line-height:1.5}
input[type=checkbox],input[type=radio]{height:auto;accent-color:var(--teal)}
input[type=file]{height:auto;padding:6px;border-style:dashed;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(18,161,80,.16)}
input[readonly]{background:var(--panel-2);color:var(--muted)}
label{color:var(--ink-2)}
.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px 18px}
.form .fg{display:flex;flex-direction:column;gap:5px;min-width:0}
.form .fg>label,.fg>.lbl{font-size:12.5px;font-weight:500;color:var(--ink-2)}
.form .fg input,.form .fg select{width:100%}
.fg .seg{align-self:flex-start;max-width:100%;flex-wrap:wrap}
.form .span2{grid-column:span 2} .form .wide{grid-column:1/-1}
@media(max-width:640px){.form .span2{grid-column:1/-1}}
.req::after{content:" *";color:var(--bad)}
.hint{font-size:12px;color:var(--muted);line-height:1.5}
.fsec{padding:16px;border-bottom:1px solid var(--line-2)}
.fsec:last-child{border-bottom:0}
.fsec h3{font-size:14px;margin:0 0 3px;display:flex;align-items:center;gap:8px}
.fsec>.hint{margin:0 0 14px}
details.more>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary .ic{transition:transform .15s}
details.more[open]>summary .ic{transform:rotate(90deg)}
details.more>summary .hint{font-weight:400}
.inline-pair{display:flex;gap:8px} .inline-pair>*{flex:1;min-width:0}
.reason-pick{display:flex;flex-direction:column;gap:8px;min-width:0} .reason-pick select,.reason-pick input{width:100%;min-width:0}

/* 分段选择（有 / 无、近期天数） */
.seg{display:inline-flex;border:1px solid var(--field);border-radius:8px;overflow:hidden;background:#fff}
.seg label{position:relative;margin:0;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 14px;font-size:13px;color:var(--ink-2);border-left:1px solid var(--line-2)}
.seg label:first-child span{border-left:0}
.seg input:checked+span{background:var(--teal);color:#fff}
.seg input:focus-visible+span{outline:2px solid var(--teal);outline-offset:-2px}
.seg a{display:inline-flex;align-items:center;height:30px;padding:0 12px;font-size:13px;color:var(--ink-2);border-left:1px solid var(--line-2);text-decoration:none}
.seg a:first-child{border-left:0}
.seg a.on{background:var(--teal);color:#fff}
.seg a:hover:not(.on){background:var(--panel-2)}

/* 筛选条 */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.search{position:relative;flex:0 1 300px}
.search .ic{position:absolute;left:10px;top:10px;color:var(--faint)}
.search input{width:100%;padding-left:32px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px;color:var(--ink-2);cursor:pointer;user-select:none;text-decoration:none!important}
.chip:hover{border-color:#B5C2BE}
.chip i{font-style:normal;color:var(--faint);font-variant-numeric:tabular-nums}
.chip.on{background:var(--teal-l);border-color:var(--teal-ring);color:var(--teal-d);font-weight:500}
.chip.on i{color:var(--teal)}
.chip .dot{width:8px;height:8px;border-radius:50%}
.filter-meta{font-size:12.5px;color:var(--muted);display:flex;gap:10px;align-items:center}

/* 标签 */
.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--line-2);color:var(--ink-2);line-height:20px}
.badge .ic{width:13px;height:13px}
.badge.ok{background:var(--ok-bg);color:var(--ok)} .badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.bad{background:var(--bad-bg);color:var(--bad)} .badge.info{background:var(--info-bg);color:var(--info)}
.badge.mute{background:#F0F2F2;color:var(--faint)} .badge.teal{background:var(--teal-l);color:var(--teal-d)}
.due{white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.due .ic{width:13px;height:13px}
.due.bad{color:var(--bad);font-weight:600} .due.warn{color:var(--warn);font-weight:600}
.feat{display:inline-block;font-size:11.5px;padding:0 6px;border-radius:4px;margin-right:3px;line-height:19px}
.feat.y{background:var(--teal-l);color:var(--teal-d)}
.feat.n{background:#F1F3F2;color:#AAB4B1;text-decoration:line-through}
.grade{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;font-weight:700;font-size:13px}
.grade.A{background:var(--ok-bg);color:var(--ok)} .grade.B{background:var(--info-bg);color:var(--info)}
.grade.C{background:var(--warn-bg);color:var(--warn)} .grade.D{background:var(--bad-bg);color:var(--bad)}

/* 供需电量计（电池格） */
.gauge{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:12.5px}
.gauge .cells{position:relative;display:inline-flex;gap:2px;padding:2px;border:1.5px solid #AFBCB8;border-radius:4px;margin-right:3px}
.gauge .cells::after{content:"";position:absolute;right:-5px;top:4px;width:3px;height:7px;border-radius:0 2px 2px 0;background:#AFBCB8}
.gauge .cells i{width:6px;height:11px;border-radius:1.5px;background:#E6EBE9}
.gauge .cells i.on{background:var(--g)}
.gauge .cells i.tr{background:repeating-linear-gradient(135deg,var(--g) 0 2px,#fff 2px 3.5px)}
.gauge b{font-weight:500;display:inline-flex;align-items:center;gap:3px;color:var(--ink-2)}
.gauge b .ic{width:13px;height:13px;color:var(--g)}
.g-ok{--g:var(--s-good)} .g-low{--g:var(--s-warn)} .g-wait{--g:var(--s-serious)} .g-short{--g:var(--s-crit)} .g-empty{--g:#C3CCC9}
.g-short b{color:var(--bad)}

/* 页签 */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tabs a{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;text-decoration:none}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--ink);border-bottom-color:var(--teal);font-weight:600}
.tabs a .ic{width:15px;height:15px}
.tabs a .count{background:var(--line-2);color:var(--ink-2);border-radius:999px;padding:0 7px;font-size:11.5px;font-weight:500;line-height:18px}
.tabs a.on .count{background:var(--teal-l);color:var(--teal-d)}
.card>.tabs{padding:0 12px;margin-bottom:0}

/* 键值 */
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px 26px}
.kv>div{min-width:0}
.kv span{display:block;font-size:12px;color:var(--muted);margin-bottom:2px}
.kv b{font-weight:500}
.kv .big{font-size:20px;font-weight:600}

/* 弹出层 */
details.pop-wrap{position:relative;display:inline-block}
details.pop-wrap>summary{list-style:none}
details.pop-wrap>summary::-webkit-details-marker{display:none}
.pop{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:340px;max-width:86vw;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-pop);padding:14px;text-align:left;white-space:normal}
.pop.left{right:auto;left:0}
.pop h4{margin:0 0 10px;font-size:14px}
.pop .r{display:grid;grid-template-columns:80px 1fr;gap:8px;align-items:center;margin-bottom:8px}
.pop .r>label{font-size:12.5px;color:var(--muted)}
.pop .r input,.pop .r select{width:100%}

/* 照片 */
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.photos figure{margin:0}
.photos img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:var(--panel-2)}
.photos .pdf{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:4/3;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);font-size:12px;color:var(--ink-2);padding:8px;text-align:center}
.photos .pdf .ic{width:28px;height:28px;color:var(--teal)}
.photos figcaption{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:4px}
.drop{border:1.5px dashed var(--field);border-radius:var(--r);padding:14px;background:var(--panel-2);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.drop .ic{width:26px;height:26px;color:var(--teal)}
.drop input[type=file]{border:0;padding:0;background:transparent;width:auto;flex:1}
.drop .preview{display:flex;gap:6px;flex-wrap:wrap;width:100%}
.drop .preview img{width:64px;height:48px;object-fit:cover;border-radius:5px;border:1px solid var(--line)}

/* 空状态 */
.empty{padding:34px 16px;text-align:center;color:var(--muted)}
.empty .ic{width:30px;height:30px;color:#B9C5C2;stroke-width:1.5}
.empty p{margin:8px 0 12px}

/* 提醒 */
.rem{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-2);align-items:flex-start}
.rem:last-child{border-bottom:0}
.rem .lv{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center}
.rem .lv .ic{width:17px;height:17px}
.rem.critical .lv{background:var(--bad-bg);color:var(--bad)}
.rem.warning .lv{background:var(--warn-bg);color:var(--warn)}
.rem.info .lv{background:var(--info-bg);color:var(--info)}
.rem .body{flex:1;min-width:0}
.rem .ttl{font-weight:600}
.rem .det{font-size:12.5px;color:var(--muted);margin-top:1px}
.rem .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.rem .msg{margin-top:8px;font-size:12.5px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:6px;padding:8px 10px;color:var(--ink-2)}
.rem .cat{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 6px;margin-right:6px;font-weight:400}

/* 图表 */
.viz{position:relative;width:100%}
.viz svg{display:block;width:100%;overflow:visible}
.viz .axis text{fill:var(--muted);font-size:11.5px;font-family:var(--font)}
.viz .grid line{stroke:var(--line-2);stroke-width:1}
.viz .base{stroke:#B9C5C2;stroke-width:1}
.viz .lbl{fill:var(--ink-2);font-size:11.5px;font-family:var(--font);font-variant-numeric:tabular-nums}
.viz .lbl.strong{fill:var(--ink);font-weight:600}
.viz .hit{fill:transparent;cursor:pointer}
.viz .hit:hover+g rect,.viz g.hov rect{filter:brightness(1.08)}
.viz g.hov .hl{opacity:1}
.viz .hl{opacity:0;fill:var(--teal-l)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{display:inline-block;width:12px;height:10px;border-radius:2px}
.legend i.tick{width:2px;height:12px;border-radius:0;background:var(--ink)}
.viz-tip{position:fixed;z-index:100;pointer-events:none;background:#14222B;color:#fff;border-radius:7px;padding:8px 11px;font-size:12.5px;line-height:1.5;box-shadow:0 8px 22px rgba(0,0,0,.18);opacity:0;transition:opacity .08s;max-width:260px}
.viz-tip.on{opacity:1}
.viz-tip .t{color:#AFC2C8;font-size:11.5px;margin-bottom:2px}
.viz-tip .r{display:flex;align-items:center;gap:7px;justify-content:space-between}
.viz-tip .r i{display:inline-block;width:10px;height:2px;margin-right:4px;vertical-align:middle}
.viz-tip .r b{font-variant-numeric:tabular-nums}
.vtable{display:none}
.show-table .vtable{display:block}
.show-table .viz{display:none}

/* 打印 */
@media print{.rail,.topbar,.noprint,.filters{display:none!important}.app{display:block}.content{padding:0}.card{border:0}}

/* 手机 / 窄屏 */
@media(max-width:960px){
  .app{grid-template-columns:1fr}
  .rail{position:fixed;left:0;top:0;bottom:0;width:248px;z-index:60;transform:translateX(-100%);transition:transform .2s}
  .app.slim{--rail-w:0px}
  .app.slim .brand>div,.app.slim .nav a span,.app.slim .rail-foot .who,.app.slim .rail-foot a{display:revert}
  .collapse-btn{display:none!important}
  .app.nav-open .rail{transform:none}
  .app.nav-open::after{content:"";position:fixed;inset:0;background:rgba(10,26,35,.45);z-index:50}
  .menu-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:#fff}
  .topbar .tb-row{padding:10px 16px}
  .subnav{padding:0 10px}
  .content{padding:16px 16px 48px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(max-width:640px){.topbar .sub{display:none}.topbar h1{font-size:16px}.tb-r .btn{padding:0 10px;font-size:12.5px}.filters .search{flex:1 1 100%}}

/* ---------- v3：可搜索下拉 ---------- */
.combo-pop{position:fixed;z-index:120;max-height:320px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-pop);padding:4px}
.combo-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:7px;cursor:pointer}
.combo-opt:hover,.combo-opt.on{background:var(--teal-l)}
.combo-opt .co-main{min-width:0;display:flex;flex-direction:column;line-height:1.35}
.combo-opt .co-main b{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.combo-opt .co-main span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.combo-opt .co-side{display:flex;flex-direction:column;align-items:flex-end;flex:none;line-height:1.35}
.combo-opt .co-side em{font-style:normal;font-size:12px;color:var(--ink-2);background:var(--line-2);border-radius:999px;padding:0 8px}
.combo-opt.on .co-side em{background:#fff}
.combo-opt .co-side small{font-size:11.5px;color:var(--faint)}
.combo-empty,.combo-more{padding:10px 12px;color:var(--muted);font-size:12.5px}
.combo-more{border-top:1px solid var(--line-2)}
input[data-combo]{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2397A3A7' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat right 10px center;padding-right:30px}
tr.bad-model input[name=model_no]{border-color:var(--bad);background-color:var(--bad-bg)}
.minfo{line-height:1.35}
.minfo .mi-spec{display:block;color:var(--ink-2)}
.minfo .mi-cpn{display:block;color:var(--teal-d);font-size:12px}
.minfo .mi-warn{display:block;color:var(--warn);font-size:12px;background:var(--warn-bg);border-radius:4px;padding:1px 6px;margin:2px 0}
.minfo .mi-stock{display:block;font-size:11.5px;color:var(--muted)}
.minfo .mi-stock b{color:var(--ink)}
input.price.auto{background:#F5FBFA;color:var(--teal-d)}

/* ---------- v3：日期控件（yyyy-mm-dd） ---------- */
input.date-input{width:140px;font-variant-numeric:tabular-nums;letter-spacing:.01em;padding-right:30px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2366757B' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") no-repeat right 9px center}
.form .fg input.date-input{width:100%}
.flatpickr-calendar{font-family:var(--font);border-radius:12px;box-shadow:var(--shadow-pop);border:1px solid var(--line);width:300px;padding:6px 6px 0}
.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{display:none}
.flatpickr-months .flatpickr-month{height:40px;color:var(--ink)}
.flatpickr-current-month{font-size:15px;font-weight:600;padding-top:9px}
.flatpickr-current-month .flatpickr-monthDropdown-months{font-weight:600;appearance:none;background:none}
.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{top:6px;padding:8px;border-radius:8px}
.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:var(--teal)}
span.flatpickr-weekday{color:var(--muted);font-weight:500;font-size:12px}
.flatpickr-day{border-radius:8px;color:var(--ink);max-width:38px;height:36px;line-height:36px;font-variant-numeric:tabular-nums}
.flatpickr-day:hover{background:var(--teal-l);border-color:var(--teal-l)}
.flatpickr-day.today{border-color:var(--teal-ring)}
.flatpickr-day.selected,.flatpickr-day.selected:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay{color:#B9C5C2}
.dayContainer,.flatpickr-days{width:286px;min-width:286px;max-width:286px}
.fp-bar{display:flex;justify-content:space-between;border-top:1px solid var(--line-2);margin-top:4px;padding:6px 4px}
.fp-bar button{background:none;border:0;color:var(--teal-d);font:500 13px var(--font);cursor:pointer;padding:4px 8px;border-radius:6px}
.fp-bar button:hover{background:var(--teal-l)}

/* ---------- v3：分享 / 进度 / 分步 ---------- */
.share-pop{width:380px}
.share-pop h4{display:flex;gap:8px;align-items:baseline}
.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.share-item{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:9px;color:var(--ink);text-decoration:none!important}
.share-item:hover{border-color:var(--teal-ring);background:#F7FCFB}
.share-item .ic{grid-row:span 2;width:22px;height:22px;color:var(--teal)}
.share-item b{font-weight:600;font-size:13px}
.share-item span{font-size:11.5px;color:var(--muted)}
.share-msgbox{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}
.share-msgbox .lbl{display:block;font-size:12.5px;font-weight:500;margin-bottom:4px}
.share-msgbox textarea{min-height:64px;font-size:12.5px}
.prog{position:relative;display:inline-block;width:100%;min-width:70px;height:6px;border-radius:999px;background:#E6EBE9;overflow:hidden;vertical-align:middle}
.prog i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--c-blue)}
.prog.full i{background:var(--s-good)}
.prog.lg{height:10px}
.pline{display:flex;flex-direction:column;gap:4px;min-width:120px}
.pline small{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.steps{display:flex;gap:0;margin:0 0 16px;counter-reset:step}
.steps li{list-style:none;display:flex;align-items:center;gap:8px;color:var(--faint);font-size:13.5px;padding-right:28px;position:relative}
.steps li::before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid currentColor;font-size:12px;font-weight:600}
.steps li.done{color:var(--teal-d)}
.steps li.done::before{content:"✓";background:var(--teal);border-color:var(--teal);color:#fff}
.steps li.on{color:var(--ink);font-weight:600}
.steps li.on::before{background:var(--ink);border-color:var(--ink);color:#fff}
.steps li:not(:last-child)::after{content:"";position:absolute;right:8px;top:50%;width:12px;height:1px;background:var(--field)}
.pick-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.pick-hero .big-input{height:48px;font-size:17px;font-weight:500;letter-spacing:.02em;padding-left:14px}
.order-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;margin-bottom:16px}
.order-sum>div{padding:12px 16px;border-left:1px solid var(--line-2);min-width:0}
.order-sum>div:first-child{border-left:0}
.order-sum>div>span{display:block;font-size:12px;color:var(--muted)}
.order-sum b{display:block;font-size:16px;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-sum .wide{grid-column:span 2}
.sticky-bar{position:sticky;bottom:0;z-index:15;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 -6px 20px rgba(15,36,48,.06);margin-top:16px}
.sticky-bar .sum{display:flex;gap:18px;font-size:13.5px;color:var(--muted)}
.sticky-bar .sum b{color:var(--ink);font-size:18px;font-weight:600;margin-left:4px}
.qty-in{width:96px}
tr.picked td{background:#F5FBFA}
.tbl td.stock-ok{color:var(--ok)}
.form.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.form.cols4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.form.cols4{grid-template-columns:1fr}.pick-hero{grid-template-columns:1fr}}
.pcard{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:6px;min-height:18px}
.pcard b{color:var(--ink-2);font-weight:500}
.tpl-layout{display:grid;grid-template-columns:184px minmax(330px,390px) minmax(0,1fr);gap:16px;align-items:start}
.tpl-layout>.card{margin-bottom:0}
.tpl-list a{display:flex;align-items:center;gap:8px;padding:8px 14px;color:var(--ink);text-decoration:none;font-size:13.5px}
.tpl-list a:hover{background:var(--panel-2)}
.tpl-list a.on{background:var(--teal-l);color:var(--teal-d);font-weight:600}
.tpl-list .gl{font-size:11.5px;color:var(--faint);padding:10px 14px 2px;letter-spacing:.06em}
.preview-frame{width:100%;height:calc(100vh - 210px);min-height:560px;border:0;background:#E9EEEC;border-radius:0 0 var(--r) var(--r)}
.colchips{display:flex;flex-wrap:wrap;gap:6px}
.colchips label{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;cursor:pointer;user-select:none;background:#fff}
.colchips label:has(input:checked){background:var(--teal-l);border-color:var(--teal-ring);color:var(--teal-d)}
.colchips label.req{opacity:.75;cursor:default}
.colchips input{margin:0}
.switch{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px}
@media(max-width:1280px){.tpl-layout{grid-template-columns:180px minmax(0,1fr)}.tpl-layout .tpl-preview{grid-column:1/-1}}

/* ---------- v4：问号提示 ---------- */
.tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;
  background:var(--line-2);color:var(--muted);font-size:11px;font-weight:700;cursor:help;vertical-align:1px;flex:none;line-height:1}
.tip:hover,.tip:focus{background:var(--teal-l);color:var(--teal-d);outline:none}
.tip::after{content:attr(data-tip);position:absolute;left:-8px;bottom:calc(100% + 8px);width:max-content;max-width:280px;display:none;
  background:var(--ink);color:#fff;font-size:12.5px;font-weight:400;line-height:1.5;padding:8px 10px;border-radius:7px;white-space:normal;text-align:left;
  box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;transition:opacity .12s;z-index:60}
.tip:hover::after,.tip:focus::after{opacity:1;display:block}
.tools .tip::after,.tabs .tip::after,.filters .tip::after,.stat .tip::after{left:auto;right:-8px}
h3 .tip,label .tip,.l .tip{margin-left:4px}
.card-h .count,h2 .count{background:var(--line-2);color:var(--ink-2);border-radius:999px;padding:0 8px;font-size:12px;font-weight:600;line-height:20px}
.tabs .sp{flex:1}.tabs{align-items:center}

/* ---------- v4：全局搜索 ---------- */
.gsearch{position:relative;display:flex;align-items:center}
.gsearch>.ic{position:absolute;left:10px;color:var(--faint);pointer-events:none}
.gsearch input{width:200px;height:34px;padding:0 30px 0 32px;border:1px solid var(--field);border-radius:8px;background:var(--panel-2);transition:width .15s,background .15s}
.gsearch input:focus{width:280px;background:#fff}
.gsearch kbd{position:absolute;right:8px;font:600 11px var(--font);color:var(--faint);border:1px solid var(--line);border-radius:4px;padding:0 5px;line-height:16px}
.gsearch input:focus+kbd{display:none}
@media(max-width:960px){.gsearch input{width:150px}.gsearch input:focus{width:200px}.gsearch kbd{display:none}}
@media(max-width:640px){.gsearch{display:none}}
.search-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:18px}
.search-groups .card{margin:0}
.results a{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line-2);color:var(--ink);text-decoration:none}
.results a:last-child{border-bottom:0}
.results a:hover{background:var(--teal-l)}
.results a span{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.results em{font-style:normal}

/* ---------- v4：工作台 ---------- */
.tasks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.tasks.fin{grid-template-columns:repeat(3,minmax(0,1fr))}
.task{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:12px;align-items:center;padding:16px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none!important;transition:border-color .12s,box-shadow .12s}
.task:hover{border-color:var(--teal-ring);box-shadow:0 4px 14px rgba(15,36,48,.07)}
.task .ti{grid-row:1/4;width:42px;height:42px;border-radius:11px;background:var(--teal-l);color:var(--teal);display:flex;align-items:center;justify-content:center}
.task .ti .ic{width:20px;height:20px}
.task .tl{font-size:13px;color:var(--muted)}
.task b{font-size:26px;font-weight:600;line-height:1.2}
.task b small{font-size:13px;font-weight:500;color:var(--muted);margin-left:4px}
.task .ts{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task.warn .ti{background:var(--warn-bg);color:var(--warn)} .task.warn b{color:var(--warn)}
.task.bad .ti{background:var(--bad-bg);color:var(--bad)} .task.bad b{color:var(--bad)}
.tasks.fin .task b{font-size:22px}
@media(max-width:1180px){.tasks{grid-template-columns:repeat(2,minmax(0,1fr))}.tasks.fin{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.tasks,.tasks.fin{grid-template-columns:1fr}}
.rem-list .rem{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line-2)}
.rem-list .rem:last-child{border-bottom:0}
.rem-list .rem>i{width:8px;height:8px;border-radius:50%;background:var(--info);flex:none}
.rem-list .rem.critical>i{background:var(--bad)} .rem-list .rem.warning>i{background:var(--s-warn)}
.rem-list .rem>div{flex:1;min-width:0}
.rem-list .rem b{display:block;font-weight:500;font-size:13.5px}
.rem-list .rem span{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mine div{display:flex;gap:12px;align-items:baseline;padding:8px 16px;border-bottom:1px solid var(--line-2);font-size:13px}
.mine div:last-child{border-bottom:0}
.mine time{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.mine span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- v4：订单进度时间线 ---------- */
.grid-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:18px;align-items:start}
.grid-side>.card{margin-bottom:18px}
@media(max-width:1180px){.grid-side{grid-template-columns:1fr}}
.timeline{list-style:none;margin:0;padding:12px 16px 4px;max-height:360px;overflow:auto}
.timeline li{position:relative;display:grid;grid-template-columns:28px 82px 1fr;gap:8px;padding-bottom:14px}
.timeline li:not(:last-child)::before{content:"";position:absolute;left:13px;top:28px;bottom:0;border-left:2px solid var(--line-2)}
.timeline i{width:28px;height:28px;border-radius:50%;background:var(--teal-l);color:var(--teal);display:flex;align-items:center;justify-content:center}
.timeline i .ic{width:14px;height:14px}
.timeline time{font-size:12.5px;color:var(--muted);padding-top:5px;font-variant-numeric:tabular-nums}
.timeline div{padding-top:4px;min-width:0}
.timeline b{font-weight:500;display:block}
.timeline b a{color:var(--ink)}
.timeline span{display:block;font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.timeline li.void{opacity:.55} .timeline li.void b{text-decoration:line-through}

/* ---------- v4：售后处理方式、待检判定 ---------- */
.choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:6px}
.choice label{display:flex;flex-direction:column;gap:2px;padding:12px 14px 12px 40px;border:1.5px solid var(--line);border-radius:9px;cursor:pointer;position:relative;background:#fff}
.form .fg .choice input,.choice input{position:absolute;left:14px;top:15px;accent-color:var(--teal);width:16px;height:16px;margin:0}
.choice b{font-weight:600}
.choice small{color:var(--muted);font-size:12.5px;line-height:1.45}
.choice label:has(input:checked){border-color:var(--teal);background:var(--teal-l)}
.judge{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.judge .j{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);padding:3px 4px 3px 8px;border:1px solid var(--line);border-radius:8px}
.judge .j.ok{border-color:var(--ok-line)} .judge .j.bad{border-color:var(--bad-line)}
.judge .j input{width:64px!important;height:28px}
.judge .j select{height:28px;max-width:110px}
.judge .j-rmk{width:130px;height:30px}
.new-menu .pop.menu{width:220px}
.new-menu .pop .gl{font-size:11.5px;color:var(--faint);padding:8px 10px 2px;font-weight:600}
.chip-stat{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line-2);border-radius:999px;padding:2px 10px}
.chip-stat b{color:var(--ink);font-weight:600}
.chip-stat.bad b{color:var(--bad)} .chip-stat.ok b{color:var(--ok)}
.colchips.static{display:flex;flex-wrap:wrap;gap:6px}
.colchips.static span{font-size:12.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:#fff}
.colchips.static span.req{border-color:var(--bad-line);background:var(--bad-bg);color:#8E1C21}
.colchips.static span.new{border-color:var(--ok-line);background:var(--ok-bg);color:#135C2A}
.tbl tr.row-bad td{background:#FFF8F8}
.tbl .err{color:var(--bad);font-size:12.5px;margin-top:3px;white-space:normal}

/* ---------- v4：手机上表格变卡片（仓库用手机入库 / 出库） ---------- */
@media(max-width:640px){
  .tbl-wrap:has(table.cards){overflow:visible;max-height:none}
  table.tbl.cards,table.tbl.cards tbody,table.tbl.cards tr,table.tbl.cards td{display:block;width:100%}
  table.tbl.cards thead{display:none}
  table.tbl.cards tr{padding:10px 12px;border-bottom:1px solid var(--line)}
  table.tbl.cards td{border:0;padding:3px 0;display:flex;gap:10px;align-items:center;text-align:left!important;white-space:normal}
  table.tbl.cards td[data-l]::before{content:attr(data-l);flex:0 0 72px;color:var(--muted);font-size:12px}
  table.tbl.cards td.act{justify-content:flex-end}
  table.tbl.cards input[type=number]{width:110px;height:40px;font-size:16px}
  table.tbl.cards select{height:40px;font-size:15px}
  .sticky-bar{flex-wrap:wrap}
  .sticky-bar .btn{height:44px;flex:1;justify-content:center}
  .grid-side{display:block}
  .filters{flex-wrap:wrap}
  .filters>.search,.filters>select,.filters>.btn{flex:1 1 auto}
  table.tbl.cards .pline{flex:1}
}
.colchips.static span.new::after{content:" *";color:var(--ok)}
.search-groups{align-items:start}

/* ---------- v5：分页 ---------- */
.pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line-2);font-size:13px}
.range-seg a{height:30px}
.cpn{font-size:12px;color:var(--teal-d)}

/* ---------- v5：单据区与发送对话框 ---------- */
.doc-rows .doc-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.doc-rows .doc-row:last-child{border-bottom:0}
.doc-ic{width:36px;height:36px;border-radius:9px;background:var(--bad-bg);color:var(--bad);display:flex;align-items:center;justify-content:center;flex:none}
.doc-main{flex:1;min-width:0}
.doc-main>b{display:block;font-weight:600}
.doc-main>span{display:block;font-size:12.5px;color:var(--muted)}
.doc-older summary{font-size:12.5px;color:var(--teal-d);cursor:pointer;margin-top:2px}
.doc-older div{font-size:12.5px;color:var(--muted);padding:2px 0}
.doc-older a{margin-left:6px}
.doc-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:640px){.doc-rows .doc-row{flex-wrap:wrap}.doc-act{width:100%;justify-content:flex-start}}
.send-dlg{width:min(1100px,96vw);height:min(760px,92vh);padding:0;border:0;border-radius:14px;box-shadow:var(--shadow-pop);overflow:hidden}
.send-dlg[open]{display:flex;flex-direction:column}
.send-dlg::backdrop{background:rgba(15,36,48,.45)}
.sd-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}
.sd-head b{font-size:16px}
.sd-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:0}
.sd-body iframe{width:100%;height:100%;border:0;background:#E9EEEC}
.sd-side{padding:16px;display:flex;flex-direction:column;gap:12px;border-left:1px solid var(--line);overflow:auto}
.sd-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sd-btns .btn{justify-content:center}
.sd-side textarea{width:100%;resize:vertical}
@media(max-width:760px){.sd-body{grid-template-columns:1fr;grid-template-rows:45vh auto}.sd-side{border-left:0;border-top:1px solid var(--line)}}

/* ---------- v5：详情页标签 ---------- */
.rowdet summary{cursor:pointer;color:var(--ink)}
.rowdet[open] summary{margin-bottom:4px;color:var(--teal-d)}
.rowdet div{font-size:12.5px;color:var(--ink-2)}
.timeline.tall{max-height:none;padding-top:16px}
.tabpane>.card:first-child{margin-top:0}
.sd-email{grid-column:1/-1;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.send-dlg iframe{background:#E9EEEC}

/* ---------- v5：账龄 ---------- */
.aging{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
.aging .ag{position:relative;padding:14px 18px 18px;border-left:1px solid var(--line-2)}
.aging .ag:first-child{border-left:0}
.aging .ag span{display:block;font-size:12.5px;color:var(--muted)}
.aging .ag b{display:block;font-size:20px;font-weight:600;margin-top:2px}
.aging .ag i{position:absolute;left:18px;bottom:8px;height:4px;border-radius:2px;background:var(--ok);max-width:calc(100% - 36px)}
.aging .ag.warn i{background:var(--s-warn)} .aging .ag.bad i{background:var(--bad)}
.aging .ag.bad b{color:var(--bad)}
@media(max-width:760px){.aging{grid-template-columns:1fr 1fr}.aging .ag{border-left:0;border-top:1px solid var(--line-2)}}
.aging .ag.zero b{color:var(--faint)!important}
.form .fg .switch input,.switch input[type=checkbox]{width:auto!important;flex:none}
.switch{white-space:nowrap}

/* v6 对话框（由 details.pop-wrap 自动转换，也可直接写 dialog.dlg） */
.dlg{width:min(520px,94vw);max-height:90vh;padding:0;border:0;border-radius:14px;box-shadow:var(--shadow-pop);color:var(--ink);overflow:hidden}
.dlg[open]{display:flex;flex-direction:column}
.dlg::backdrop{background:rgba(15,36,48,.45)}
.dlg-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:15px}
.dlg-h .code{font-weight:600}
.dlg-b{padding:16px 18px;overflow-y:auto;flex:1}
.dlg-b>form+form{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-2)}
.dlg-b>form h4{margin:0 0 10px;font-size:14px}
.dlg .r{display:grid;grid-template-columns:96px 1fr;gap:6px 12px;align-items:center;margin-bottom:12px}
.dlg .r>label{font-size:13px;color:var(--muted)}
.dlg .r input,.dlg .r select{width:100%}
.dlg .r>.hint,.dlg .r>small{grid-column:2;margin-top:-2px}
.dlg-f{display:flex;justify-content:flex-end;gap:10px;margin:16px -18px -16px;padding:12px 18px;border-top:1px solid var(--line);background:var(--panel-2);position:sticky;bottom:-16px}
.dlg-warn{margin:0 0 14px;padding:9px 12px;border-radius:8px;background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn);font-size:13px}
.dlg .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;margin:0 0 16px;padding:10px 12px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line-2)}
.dlg .facts div{display:flex;flex-direction:column;gap:2px}
.dlg .facts span{font-size:12px;color:var(--muted)}
.dlg .facts b{font-size:16px;font-variant-numeric:tabular-nums}
.dlg .dlg-note{margin:4px 0 0;font-size:12.5px;color:var(--muted)}
@media(max-width:560px){.dlg .r{grid-template-columns:1fr}.dlg .r>.hint,.dlg .r>small{grid-column:1}}
.choice-menu{width:270px!important}
.choice-menu a{align-items:flex-start!important}
.choice-menu a .ic{margin-top:3px}
.choice-menu a span{display:flex;flex-direction:column;gap:1px}
.choice-menu a small{font-size:12px;color:var(--muted);font-weight:400}
.brand>div{min-width:0}
.brand .t1.long{font-size:13.5px;letter-spacing:.02em;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25}
.imp-groups{display:flex;flex-wrap:wrap;gap:6px 28px;margin-bottom:14px}
.imp-group{display:flex;align-items:flex-end;gap:10px;min-width:0}
.imp-group .gl{font-size:12px;color:var(--faint);font-weight:600;padding-bottom:10px;white-space:nowrap}
.imp-group .tabs{margin-bottom:0}
/* v7 用户权限 */
.dlg.dlg-wide{width:min(680px,96vw)}
.perm-r{align-items:start!important}
.perm-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-bottom:6px}
.perm-grid .switch{white-space:normal;align-items:flex-start;font-size:13px}
.perm-grid .switch input{margin-top:3px}
.perm-grid .switch span{display:flex;flex-direction:column;line-height:1.3}
.perm-grid .switch small{font-size:11.5px;color:var(--faint)}
.badge.sm{font-size:11px;padding:1px 6px;margin:1px 2px 1px 0}
@media(max-width:560px){.perm-grid{grid-template-columns:1fr}}
.approval-note{align-items:center}
.approval-note>div:first-of-type{flex:1}
.approval-note .tools{display:flex;gap:6px;flex:none}
.approval-ok{display:flex;align-items:center;gap:6px;margin:0 0 10px}
/* v7 列表筛选：已选条件 */
.fchips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 16px 10px;margin-top:-4px}
.fchips-l{font-size:12px;color:var(--faint);margin-right:2px}
.fchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink-2);border-radius:999px;padding:2px 6px 2px 10px;font-size:12.5px;cursor:pointer;max-width:320px}
.fchip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fchip i{font-style:normal;display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--line);color:var(--ink-2);font-size:12px;line-height:1}
.fchip:hover{border-color:var(--teal);color:var(--teal-d)}
.fchip:hover i{background:var(--teal);color:#fff}
.fchips-clear{font-size:12.5px;margin-left:4px}
.export-btn{flex:none}
.custom-logo{object-fit:contain;border-radius:10px;background:#fff;flex:none}
.brand-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.brand-row .logo-prev{width:64px;height:64px;border:1px dashed var(--line);border-radius:12px;display:grid;place-items:center;background:var(--panel-2)}
/* v7 批量导入：选择模板列 */
.colpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px}
.colopt{display:flex;gap:8px;align-items:flex-start;padding:7px 8px;border-radius:8px;cursor:pointer}
.colopt:hover{background:var(--panel-2)}
.colopt input{margin-top:3px;flex:none;width:auto}
.colopt span{display:flex;flex-direction:column;gap:2px;min-width:0}
.colopt b{font-weight:600;font-size:13.5px}
.colopt em{font-style:normal;align-self:flex-start}
.colopt small{font-size:12px;color:var(--muted);line-height:1.35}
.colopt.must{opacity:.85}
.imp-grid{grid-template-columns:1.4fr 1fr}
@media(max-width:900px){.imp-grid{grid-template-columns:1fr}}
.golive-steps{display:flex;flex-direction:column;gap:0}
.gl-step{display:grid;grid-template-columns:36px 1fr auto;gap:14px;align-items:center;padding:14px 16px;border-top:1px solid var(--line-2)}
.gl-step:first-child{border-top:0}
.gl-step .num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:13px;border:1.5px solid var(--line);color:var(--muted)}
.gl-step.done .num{background:var(--teal);border-color:var(--teal);color:#fff}
.gl-step h3{margin:0 0 3px;font-size:14.5px}
.gl-step p{margin:0;font-size:12.5px;color:var(--muted)}
.gl-step .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.gl-step .got{font-size:12.5px;color:var(--teal-d);margin-top:4px}
@media(max-width:700px){.gl-step{grid-template-columns:30px 1fr}.gl-step .acts{grid-column:2;justify-content:flex-start}}
.kv .kv-wide{grid-column:1/-1}
.chip.sm{font-size:12px;padding:2px 8px}
.dlg .r textarea{width:100%}
.dlg,.pop{white-space:normal;text-align:left}
.colopt .t{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.colopt .t em{margin:0}
.form .fg label.row{display:flex;align-items:center;gap:8px;min-height:36px;font-weight:400}
.form .fg label.row input[type=checkbox]{width:auto!important;flex:none;margin:0}
/* v8 物料分类 */
.grid-side{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}
@media(max-width:900px){.grid-side{grid-template-columns:1fr}}
.cat-list{display:flex;flex-direction:column;padding:6px}
.cat-list a{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none}
.cat-list a span{font-size:12px;color:var(--muted)}
.cat-list a:hover{background:var(--panel-2)}
.cat-list a.on{background:var(--teal-bg,#E7F5EC);box-shadow:inset 3px 0 0 var(--teal)}
.attr-chips{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12.5px;color:var(--ink-2)}
.attr-chips span em{font-style:normal;color:var(--faint);margin-right:3px}

/* ================= v8 主题：浅色侧栏 + Logo 绿 ================= */
:root{
  --teal:#12A150; --teal-d:#0B7A3B; --teal-l:#E5F5EB; --teal-ring:#A6DDB8; --teal-bg:#E5F5EB;
  --volt:#FFE29A;
  --rail:#FFFFFF; --rail-2:#F3F7F4; --rail-text:#33434A; --rail-mute:#7C8B90;
}
.rail{background:var(--rail);color:var(--rail-text);border-right:1px solid var(--line)}
.brand{flex-direction:column;align-items:flex-start;gap:6px;padding:16px 16px 14px;color:var(--ink);min-height:0;border-bottom:1px solid var(--line-2);margin-bottom:8px}
.brand .logo-full{display:block;max-width:100%;height:40px;width:auto;object-fit:contain}
.brand .brand-mark{display:none}
.brand .brand-name{font-size:11.5px;color:var(--rail-mute);letter-spacing:.04em;white-space:nowrap}
.app.slim .brand{align-items:center;padding:14px 0 12px}
.app.slim .brand .brand-full,.app.slim .brand .brand-name{display:none}
.app.slim .brand .brand-mark{display:block}
.logo{border-radius:8px;object-fit:contain;flex:none}
.nav{scrollbar-color:#D3DCD8 transparent}
.nav .sep{background:var(--line-2)}
.nav a{color:var(--rail-text)}
.nav a .ic{color:#8A9A9F}
.nav a:hover{background:var(--rail-2);color:var(--ink)}
.nav a.on{background:var(--teal-l);color:var(--teal-d);font-weight:600}
.nav a.on::before{background:var(--teal)}
.nav a.on .ic{color:var(--teal)}
.rail-foot{border-top:1px solid var(--line-2)}
.avatar{background:var(--teal-l);color:var(--teal-d)}
.rail-foot .who b{color:var(--ink)}
.rail-foot .who span{color:var(--rail-mute)}
.rail-foot a,.rail-foot button{color:#7C8B90}
.rail-foot a:hover,.rail-foot button:hover{background:var(--rail-2);color:var(--ink)}
.logo-prevs{display:flex;gap:24px;flex-wrap:wrap}
.logo-prevs>div{display:flex;flex-direction:column;gap:6px}
.logo-prev{width:64px;height:64px;border:1px dashed var(--line);border-radius:12px;display:grid;place-items:center;background:#fff}
.logo-prev.wide{width:auto;min-width:160px;padding:8px 14px}
.logo-prev .logo-full{height:44px;width:auto}
.backdate{margin-top:6px;display:flex;flex-direction:column;gap:2px}
.backdate input{border-color:var(--warn-line);background:var(--warn-bg)}
.pv-head{border-collapse:collapse;margin:0 0 12px;font-size:13.5px}
.pv-head th{text-align:left;color:var(--muted);font-weight:500;padding:3px 16px 3px 0;white-space:nowrap;vertical-align:top}
.pv-head td{padding:3px 0}
.pv-lines{margin:0}
.pv-lines tfoot th{background:var(--panel-2);font-weight:600}
/* v8 单据模板：列顺序 */
.col-order{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.col-order li{display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid var(--line);border-radius:8px;padding:4px 6px 4px 10px;background:var(--panel)}
.col-order li label{display:flex;align-items:center;gap:6px;cursor:pointer}
.col-order li label.req{color:var(--muted)}
.col-order .mv{display:flex;gap:2px}
.col-order .mv .btn{padding:2px 8px;min-height:0}

/* 分交期：总量与明细使用同一组未完成订单数据。 */
.schedule-nearest{font-size:12px;color:var(--muted);margin-top:5px;white-space:nowrap;font-weight:400}
.schedule-nearest b{color:var(--ink);margin-left:4px}
.schedule-late,.schedule-late b{color:#b42318}
.schedule-detail{font-size:12px;font-weight:400;margin-top:5px;text-align:left}
.schedule-detail>summary{cursor:pointer;color:var(--teal);white-space:nowrap;text-align:right}
.stat .schedule-detail>summary{text-align:left}
.schedule-groups{margin-top:8px;min-width:225px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:4px 10px}
.schedule-group{padding:8px 0}.schedule-group+.schedule-group{border-top:1px solid var(--line)}
.schedule-date{display:flex;align-items:center;gap:8px}.schedule-date strong{margin-left:auto;color:var(--ink)}
.schedule-order{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding-top:6px;align-items:start;color:var(--muted)}
.schedule-order a{white-space:nowrap}.schedule-order span{min-width:0;overflow-wrap:anywhere}.schedule-order b{color:var(--ink)}
.column-filters{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.column-filters .on{background:var(--teal);color:#fff}
.col-order li[hidden]{display:none}
.col-order li label{flex-wrap:wrap;min-width:0}.col-order li small{font-size:10px;font-weight:400}
.stats:has(.schedule-detail){align-items:start}.stats:has(.schedule-detail) .stat{min-width:0}
.material-stats{grid-template-columns:1.3fr repeat(4,minmax(0,1fr)) 1.2fr}
.stat .schedule-groups{min-width:0;padding:4px 7px}.stat .schedule-nearest{white-space:normal}
.stat .schedule-order{display:flex;flex-wrap:wrap;gap:3px 6px}.stat .schedule-order a{flex-basis:100%}
.stat .schedule-order span{flex:1}.stat .schedule-date{flex-wrap:wrap;gap:4px}
@media(max-width:1180px){.material-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.material-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.trade-current{color:#12a150;font-weight:800}.trade-done{color:#526d60}.trade-steps{line-height:2}.trade-risk{border:2px solid #d77d14;background:#fff8e8;border-radius:8px;padding:16px;margin-bottom:16px;color:#8b4500}.trade-risk p:last-child{margin-bottom:0}

/* 工作台与物料导入：按可见数量铺满，通用/分类属性分组。 */
.tasks.home-tasks,.tasks.fin.home-tasks{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.home-work-grid{grid-template-columns:repeat(auto-fit,minmax(min(600px,100%),1fr));margin-bottom:18px}
.home-work-grid>.card{min-width:0;display:flex;flex-direction:column}
.home-work-grid .card-f{margin-top:auto}
.home-aftersales{margin-top:18px}
.home-next-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap;min-width:100px}
.import-controls{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.import-controls label{display:grid;gap:6px;min-width:220px;flex:1}
.import-col-group{padding-top:10px;margin-top:14px;border-top:1px solid var(--line)}
.import-col-group[hidden]{display:none}
.import-col-group h3{font-size:15px;margin:4px 0 12px;color:var(--ink)}
.import-col-group h3 small{font-size:12px;font-weight:400}
details.import-col-group{padding-top:0}
.import-col-group>summary{display:flex;align-items:center;gap:9px;padding:12px 2px;cursor:pointer;list-style:none;border-radius:5px;flex-wrap:wrap}
.import-col-group>summary::-webkit-details-marker{display:none}
.import-col-group>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);margin:0 4px 0 2px;flex-shrink:0}
.import-col-group[open]>summary::before{transform:rotate(45deg)}
.import-col-group>summary h3{margin:0}
.import-col-group>summary small{font-size:12px;font-weight:400}
.import-col-group>summary:focus-visible{outline:2px solid #12a150;outline-offset:2px}
.import-col-group[open]>summary{margin-bottom:8px}
.import-group-toggle{margin-left:auto;font-size:12px;color:var(--muted)}
.import-group-toggle::before{content:"展开"}
.import-col-group[open]>summary .import-group-toggle::before{content:"收起"}
.import-mode-help{font-size:13px;line-height:1.6;margin:0 0 12px}
.import-critical{padding:6px 8px;margin-top:5px;background:var(--warn-bg);color:var(--warn);border-radius:5px;white-space:normal}
.import-changed{background:#fff8e6}
@media(max-width:1180px){.home-work-grid{grid-template-columns:1fr}}
@media(max-width:640px){.tasks.home-tasks,.tasks.fin.home-tasks{grid-template-columns:1fr}.import-controls label{min-width:0;width:100%}}
