/* prod-vendor.css —— 生产系统（MES）样式表原样搬入，2026-11-13
   来源：生产系统/app/static/index.html 的 <style> 全量（原 307992 字符 / 4775 行）
   只做了两件事：① 去注释 ② 去空行。**规则本身一字未改**。
   用途：工程系统与生产系统用同一套设计系统，不做第二套皮肤。
   注意：本文件由脚本生成，不要手改；要改视觉，改生产系统再重新搬。
*/

:root{
  --bg:#F2F5F9;--panel:#ffffff;--panel2:#f3f4f7;
  --st-over:#D4042D;--st-over-rgb:212,4,45;
  --st-today:#DB7A0E;--st-today-rgb:219,122,14;
  --st-doing:#5A92E5;--st-doing-rgb:90,146,229;
  --st-done:#5E8034;--st-done-rgb:94,128,52;
  --border:#e6e8ee;--border-strong:#d4d9e2;
  --text:#16181d;--muted:#646a73;
  --accent:#185fa5;--accent-text:#185fa5;--accent-soft:rgba(24,95,165,.10);
  --nav-active-bg:rgba(10,14,23,.92);
  --good:#157a58;--warn:#F6AB00;--bad:#c2352f;--chip:#eef0f4;
  --focus-ring:0 0 0 3px rgba(24,95,165,.30);
  --shadow-1:0 1px 2px rgba(16,24,40,.05),0 8px 22px rgba(16,24,40,.05);
  --shadow-2:0 2px 8px rgba(16,24,40,.06),0 16px 36px rgba(16,24,40,.08);
  --accent-d:#134b85;--hair:rgba(16,24,40,.06);
  --bg-glow:none;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;
  --r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:18px;--r-pill:999px;
  --fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-display:30px;
  --r-xs:4px;--sp-6:24px;--fs-2xl:24px;
  --rim-card:rgba(255,255,255,.9);
  --ok-soft:rgba(62,207,142,.15);--wa-soft:rgba(245,166,35,.15);--ba-soft:rgba(255,92,92,.15);
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --danger:var(--bad);
  --h-ctl:36px;--h-dense:30px;--h-btn:36px;--h-btn-sm:28px;
  --text-2:#454c59;--req:#c93a34;--on-accent:#ffffff;
  --hint:#696e77;
  --m-ultra:rgba(255,255,255,.44);
  --m-thin:rgba(255,255,255,.60);
  --m-reg:rgba(255,255,255,.74);
  --m-thick:rgba(255,255,255,.80);
  --track:rgba(16,24,40,.08);
  --track-fill:#8b7cf6;
  --rim-line:rgba(255,255,255,.85);
  --rim-side:rgba(255,255,255,.42);
  --rim-bot:rgba(255,255,255,.26);
  --edge:var(--border);
  --lift:rgba(24,34,60,.16);
  --gl-ink:#0d1420;
  --gl-ink2:rgba(13,20,32,.68);
  --gl-ink3:rgba(13,20,32,.46);
  --grain:.022;
  --aura1:#7dd3fc;--aura2:#c4b5fd;--aura3:#fda4af;
  --aura-a:.55;--aura-b:.46;--aura-c:.30;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html[data-theme="light"] body{color-scheme:light;background-image:none}
html[data-theme="light"] header{background-color:var(--m-thin);border-bottom-color:var(--edge);box-shadow:0 12px 32px -22px var(--lift)}
html[data-theme="light"] nav{background-color:var(--m-thin)}
html[data-theme="light"] nav button{color:var(--muted);border-bottom:none}
html[data-theme="light"] nav button:hover{color:var(--text-2)}
html[data-theme="light"] nav button.active{color:var(--accent);font-weight:600;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.14),0 1px 1px rgba(16,24,40,.08);border-radius:var(--r-md);border-bottom-color:transparent;border-top-color:transparent;margin:4px 0}
html[data-theme="light"] .login-card{background:#fff;border-color:var(--border);box-shadow:var(--shadow-2)}
html[data-theme="light"] input[type=date]::-webkit-calendar-picker-indicator{filter:none}
html[data-theme="light"] .app-logos img,html[data-theme="light"] .login-logos img{filter:drop-shadow(0 1px 2px rgba(16,24,40,.12))}
html[data-theme="light"] .app-logos img.logo-white,html[data-theme="light"] .login-logos img.logo-white{display:none}
html[data-theme="light"] .login-logos .logo-sep,html[data-theme="light"] .app-logos .logo-sep{background:linear-gradient(180deg,rgba(16,18,24,.12),rgba(16,18,24,.55) 50%,rgba(16,18,24,.12));box-shadow:0 0 1px rgba(16,18,24,.18);filter:drop-shadow(0 1px 1px rgba(16,18,24,.12))}
@media (max-width:820px){
  html[data-theme="light"] nav{background-color:var(--m-thick);box-shadow:0 -8px 24px -14px var(--lift)}
  html[data-theme="light"] nav button.active{background:var(--accent-soft);margin:4px 0}
}
.card h2{font-size:var(--fs-md);font-weight:600;color:var(--text);padding-left:9px;border-left:3px solid var(--accent);margin:0 0 var(--sp-2)}
.set-row{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.set-label{font-size:var(--fs-md);font-weight:600;color:var(--text)}
.set-label-bar{border-left:3px solid var(--accent);padding-left:9px}
.set-hint{font-size:var(--fs-xs);color:var(--muted)}
.theme-opt{display:flex;flex-direction:column;gap:var(--sp-1);align-items:flex-start;text-align:left;padding:14px;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;font-family:inherit;color:var(--text);transition:border-color var(--t-1),background var(--t-1),box-shadow var(--t-1)}
.theme-opt:hover{border-color:var(--border-strong)}
.theme-opt .to-name{font-size:var(--fs-md);font-weight:600}
.theme-opt .to-desc{font-size:var(--fs-xs);color:var(--muted);line-height:1.5}
.theme-opt.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}
.set-foot{margin-top:14px;font-size:var(--fs-xs);color:var(--muted)}
html{overflow-x:clip}
body{background:var(--bg);background-image:var(--bg-glow);background-attachment:fixed;color:var(--text);color-scheme:light;font-family:"PingFang SC","Microsoft YaHei","Segoe UI",system-ui,-apple-system,sans-serif;font-size:var(--fs-md);line-height:1.6;-webkit-font-smoothing:antialiased}
.hidden{display:none!important}
.app-topbar{position:sticky;top:0;z-index:50}
header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--edge);background-color:var(--m-thin);background-image:linear-gradient(90deg,transparent,var(--rim-line) 12%,var(--rim-line) 88%,transparent);background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;-webkit-backdrop-filter:blur(18px) saturate(1.8);backdrop-filter:blur(18px) saturate(1.8);box-shadow:0 12px 32px -20px var(--lift)}
header h1{font-size:var(--fs-xl);margin:0;font-weight:600;letter-spacing:.4px;white-space:nowrap;flex:none}
header h1.h1-hide{display:none}
header .user{font-size:var(--fs-sm);color:var(--muted)}
.app-logos{display:flex;align-items:center;gap:var(--sp-3);margin-right:4px;flex-shrink:0}
.app-logos img{height:28px;width:auto;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.app-logos img.logo-weeduo{height:24px;transform:translateY(-1px)}
.app-logos .logo-sep{width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.35),transparent);flex-shrink:0}
.pill{display:inline-flex;align-items:center;justify-content:center;line-height:1.2;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);font-size:var(--fs-xs);background:var(--chip);color:var(--muted);white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--good)}
.pill.warn{background:var(--wa-soft);color:var(--warn)}
.pill.na{background:rgba(154,164,178,.12);color:var(--muted)}
.pill.bad{background:var(--ba-soft);color:var(--bad)}
#cloudBadge{margin-left:auto;flex:none}
#cloudDown{position:fixed;inset:0;z-index:9999;background:rgba(8,11,18,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}
#cloudDown.hidden{display:none!important}
.cd-card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:var(--sp-5) var(--sp-4);text-align:center}
.cd-ico{width:52px;height:52px;margin:0 auto var(--sp-3);border-radius:50%;display:flex;align-items:center;justify-content:center}
.cd-ico.down{background:var(--ba-soft);color:var(--bad)}
.cd-ico.up{background:var(--ok-soft);color:var(--good)}
.cd-ico svg{width:26px;height:26px}
.cd-title{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--sp-2)}
.cd-body{font-size:var(--fs-sm);color:var(--text-2);line-height:1.75;margin-bottom:var(--sp-5)}
.cd-body b{color:var(--warn)}
.cd-btn{width:100%;min-height:44px;padding:var(--sp-3) var(--sp-4);border:1px solid transparent;border-radius:var(--r-md);font-size:var(--fs-md);font-weight:600;font-family:inherit;cursor:pointer;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;gap:var(--sp-2);line-height:1.4}
.cd-btn:active{filter:brightness(.92);transform:translateY(1px)}
.cd-btn:disabled{background:var(--panel2);border-color:var(--border);color:var(--muted);cursor:not-allowed;transform:none;filter:none}
.cd-sub{font-size:var(--fs-xs);color:var(--muted);margin-top:10px}
.net-banner{position:fixed;left:8px;right:8px;bottom:60px;z-index:9000;background:var(--wa-soft);color:#241a06;font-size:var(--fs-xs);line-height:1.5;padding:9px var(--sp-3);border-radius:var(--r-md);text-align:center;box-shadow:var(--shadow-2)}
.net-banner.hidden{display:none}
.order-actions .btn-block{width:100%;margin-top:0}
.order-actions-sub .btn{flex:1;min-width:0}
.draft-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:4px 0 2px}
.draft-row{display:flex;align-items:center;gap:var(--sp-2);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px}
.draft-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-1);text-align:left;background:none;border:none;color:var(--text);font-family:inherit;cursor:pointer;padding:2px}
.draft-main:hover .draft-cust{color:var(--accent)}
.draft-cust{font-size:var(--fs-md);font-weight:600;color:var(--text);display:flex;align-items:center;flex-wrap:wrap;word-break:break-word}
.draft-sum{font-size:var(--fs-xs);color:var(--muted);line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.draft-del{flex:0 0 auto;background:none;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--bad);font-family:inherit;font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-3);cursor:pointer}
.draft-del:hover{background:var(--ba-soft);border-color:var(--bad)}
.draft-badge{margin-left:6px;font-size:var(--fs-xs);padding:1px var(--sp-2);border-radius:var(--r-pill);background:var(--wa-soft);color:var(--warn);vertical-align:middle;font-weight:400}
.draft-foot{display:flex;justify-content:flex-end;margin-top:10px}
.draft-clear-all{background:none;border:none;color:var(--muted);font-family:inherit;font-size:var(--fs-xs);cursor:pointer;text-decoration:underline;padding:4px}
.draft-clear-all:hover{color:var(--bad)}
@media (min-width:821px){
  .order-actions .btn-block{flex:1 1 auto;width:auto;margin-top:0}
  .order-actions-sub .btn{flex:0 0 auto;padding:0 var(--sp-4)}
}
.qty-row{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0 2px var(--sp-6);font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap}
.qty-row input{width:92px;padding:var(--sp-2) var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel2);color:var(--text);font-family:inherit;font-size:var(--fs-md)}
.qty-row input:focus{outline:none;border-color:var(--accent)}
.qty-unit{white-space:nowrap}
.cm-nf-list{max-height:52vh;overflow-y:auto;overscroll-behavior:contain;
  border:1px solid var(--border);border-radius:var(--r-md);margin-top:10px}
.cm-nf-row{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;
  border-bottom:1px solid var(--hair);font-size:13px;color:var(--text)}
.cm-nf-row:last-child{border-bottom:0}
.cm-nf-row:hover{background:var(--m-ultra)}
.cm-nf-nm{flex:0 0 auto}
.cm-nf-post{margin-left:auto;font-size:12px;color:var(--hint)}
.df-tbl-wrap{width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin-top:2px}
.df-tbl{border-collapse:collapse;width:100%;font-size:13px}
.df-tbl td{border:1px solid var(--border);padding:0;height:34px;vertical-align:middle;
  min-width:110px;white-space:nowrap}
.df-tbl td.df-tbl-fix{padding:6px 9px;background:var(--panel2);color:var(--text-2);white-space:nowrap}
.dtb-slot:empty{display:none}
.dtb-slot{margin-bottom:10px}
.stepf-tip{margin:0 0 10px;padding:7px 11px;border-radius:8px;font-size:12px;
  background:rgba(76,154,255,.10);border:1px solid rgba(76,154,255,.35);color:var(--text)}
.stepf-x{margin-left:8px;color:var(--accent);cursor:pointer;text-decoration:underline}
.due-clk{cursor:pointer}
.due.due-today{border-color:rgba(var(--st-today-rgb),.55);color:var(--st-today);background:rgba(var(--st-today-rgb),.12)}
[data-theme="light"] .due.due-today{color:#c25b1f;border-color:#e0a06b;background:#fdf0e6}
.item.itm.due-hit{box-shadow:inset 3px 0 0 var(--warn)}
.item.itm.due-hit[data-due="over"]{box-shadow:inset 3px 0 0 var(--bad)}
.dtb-bar{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 10px;
  padding:9px 12px;border-radius:10px;background:var(--panel2);border:1px solid var(--border)}
.dtb-k{font-size:12px;color:var(--muted);font-weight:600}
.dtb{font-size:12px;padding:1px 8px;border-radius:99px;border:1px solid var(--border);color:var(--muted)}
.dtb.dtb-over{background:rgba(248,81,73,.14);border-color:rgba(248,81,73,.45);color:#ff8b84}
.dtb.dtb-today{background:rgba(210,153,34,.14);border-color:rgba(210,153,34,.42);color:#8A5A0F}
.dtb.dtb-ok{background:rgba(63,185,80,.10);border-color:rgba(63,185,80,.35);color:#12704d}
.dchips{display:inline-flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.dchip{font-size:12px;padding:1px 6px;border-radius:5px;white-space:nowrap;
  background:var(--panel2);border:1px solid var(--border);color:var(--muted)}
.dchip.o{background:rgba(var(--st-over-rgb),.12);border-color:rgba(var(--st-over-rgb),.45);color:var(--st-over)}
.dchip.t{background:rgba(var(--st-today-rgb),.12);border-color:rgba(var(--st-today-rgb),.45);color:var(--st-today)}
.dchip.dk{background:rgba(var(--st-doing-rgb),.12);border-color:rgba(var(--st-doing-rgb),.45);color:var(--st-doing)}
.dchip.n{color:var(--hint)}
.dchip.f{background:rgba(var(--st-done-rgb),.12);border-color:rgba(var(--st-done-rgb),.45);color:var(--st-done)}
[data-theme="light"] .dchip.f{background:#eaf6ee;border-color:#b7dfc4;color:#2f7d4f}
.sd-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0}
[data-theme="light"] .dchip{background:#f1f4f8;border-color:#d8dfe7;color:#5b6b7c}
[data-theme="light"] .istrip-lg{color:#6b7885}
[data-theme="light"] .due-pill{background:#fff}
.istrip-lg{font-size:12px;color:var(--hint);margin-top:3px;display:flex;
  justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.due-pill{display:inline-block;font-size:12px;line-height:1.5;padding:1px 7px;border-radius:99px;
  margin-right:4px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.due-pill.over{border-color:rgba(248,81,73,.55);color:#ff8b84;background:rgba(248,81,73,.12)}
.due-pill.today{border-color:rgba(210,153,34,.5);color:#8A5A0F;background:rgba(210,153,34,.12)}
.due-pill.none{color:var(--hint)}
.df-tbl tr.df-tbl-head td{background:var(--panel2);color:var(--text);font-weight:600;font-size:12.5px}
.df-tbl input.df-tbl-in::placeholder{color:var(--hint);opacity:1}
.df-tbl-ro td{padding:6px 9px;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.df-tbl input.df-tbl-in{width:100%;height:32px;border:0;background:transparent;color:var(--text);
  font-family:inherit;font-size:13px;padding:0 9px;outline:none}
.df-tbl input.df-tbl-in:focus{box-shadow:inset 0 0 0 2px var(--focus-ring)}
.df-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:var(--sp-2);margin:6px 0 2px 24px}
.df-item{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--muted);min-width:0}
@media(max-width:820px){
  .df-tbl td{min-width:0;white-space:normal;overflow-wrap:anywhere}
  .df-tbl-wrap{overflow-x:visible}
}
.df-item[hidden]{display:none}
.df-item .rq{color:var(--req)}
.df-inp{width:100%;padding:var(--sp-2) var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel2);color:var(--text);font-family:inherit;font-size:var(--fs-sm);box-sizing:border-box}
.df-inp:focus{outline:none;border-color:var(--accent)}
.df-file{width:100%;padding:var(--sp-1) var(--sp-2);border:1px dashed var(--border);border-radius:var(--r-sm);background:var(--panel2);color:var(--text);font-family:inherit;font-size:var(--fs-xs);box-sizing:border-box}
.df-file:focus{outline:none;border-color:var(--accent)}
.df-file::file-selector-button{margin-right:8px;padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--text);font-family:inherit;font-size:var(--fs-xs);cursor:pointer}
.df-file::file-selector-button:hover{border-color:var(--accent);color:var(--accent)}
.df-file-hint{font-size:var(--fs-xs);color:var(--muted)}
.df-nofile{margin-left:var(--sp-2);white-space:nowrap}
.df-nofile.on{border-color:var(--warn);color:var(--warn)}
.df-item .df-sel{width:100%;height:var(--h-dense);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-sm);padding:0 8px}
.df-item.df-item-file{grid-column:1/-1}
.df-item.df-item-tbl{grid-column:1/-1}
@media (max-width:820px){
  #modal .item{display:block}
  #modal .df-grid{margin-left:0}
  .df-tbl,.df-tbl tbody,.df-tbl tr,.df-tbl td{display:block;width:100%}
  .df-tbl tr{border-bottom:1px dashed var(--border);padding:9px 0}
  .df-tbl tr:last-child{border-bottom:0}
  .df-tbl td{border:0;min-width:0;height:auto;white-space:normal;padding:0}
  .df-tbl td.df-tbl-fix{background:none;color:var(--muted);font-size:12px;
                        padding:0 0 4px;white-space:normal}
  .df-tbl input.df-tbl-in{border:1px solid var(--border);border-radius:6px;
                          height:44px;background:var(--panel2)}
}
.fx-ro{color:var(--text-2);word-break:break-all}
.fx-ro-hint{color:var(--muted);font-size:var(--fs-xs);margin-left:6px}
.df-dlbtn{display:inline-block;margin-left:8px;padding:0 var(--sp-2);font-size:var(--fs-xs);line-height:20px;
  border:1px solid var(--accent);border-radius:var(--r-sm);color:var(--accent);text-decoration:none;
  vertical-align:middle;white-space:nowrap}
.df-dlbtn:hover{background:var(--accent);color:#fff}
#moreNavMask{display:none}
nav{display:flex;gap:var(--sp-1);padding:0 var(--sp-5);border-bottom:1px solid var(--edge);background-color:var(--m-thin);-webkit-backdrop-filter:blur(18px) saturate(1.8);backdrop-filter:blur(18px) saturate(1.8);box-shadow:0 8px 24px -22px var(--lift);overflow-x:auto}
nav::-webkit-scrollbar{display:none}
nav button{position:relative;padding:var(--sp-3) var(--sp-4);border:none;border-bottom:2px solid transparent;background:none;font-size:var(--fs-md);color:var(--muted);cursor:pointer;font-family:inherit;white-space:nowrap;transition:color var(--t-1),border-color var(--t-1),background var(--t-1)}
nav button:hover{color:var(--text-2)}
nav button.active{color:var(--accent);font-weight:600;border-bottom-color:var(--accent);background:var(--accent-soft)}
nav button .nav-m{display:inline}
nav button .nav-d{display:none}
nav button .nav-dot{position:absolute;top:50%;right:3px;transform:translateY(-50%);min-width:16px;height:16px;padding:0 4px;
  box-sizing:border-box;border-radius:8px;background:var(--bad);color:var(--on-accent);
  font-size:12px;line-height:16px;font-variant-numeric:tabular-nums;text-align:center}
.nt-bar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}
.nt-sum{flex:1;font-size:var(--fs-md);color:var(--text)}
.nt-list{display:flex;flex-direction:column;gap:8px;padding:var(--sp-3) var(--sp-4)}
.nt-item{display:flex;gap:10px;padding:10px 12px;background:var(--panel2);border:1px solid var(--border);
  border-radius:var(--r-md);cursor:pointer}
.nt-item:hover{background:var(--panel)}
.nt-item.unread{border-left:3px solid var(--accent)}
.nt-item.read .nt-dot{background:var(--muted);opacity:.35}
.nt-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:6px}
.nt-b{flex:1;min-width:0}
.nt-t{display:block;font-size:var(--fs-sm);color:var(--text);line-height:1.5;word-break:break-word}
.nt-s{display:block;font-size:var(--fs-xs);color:var(--muted);line-height:1.5;margin-top:2px;word-break:break-word}
.nt-secs{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4)}
.nt-sec-wrap{display:flex;flex-direction:column;gap:8px;min-width:0}
.nt-sec{display:flex;align-items:center;gap:var(--sp-2);padding:6px 2px;border-bottom:1px solid var(--border)}
.nt-sec-t{font-size:var(--fs-sm);font-weight:600;color:var(--text)}
.nt-sec-n{min-width:20px;height:18px;padding:0 6px;box-sizing:border-box;border-radius:9px;background:var(--chip);color:var(--muted);
  font-size:var(--fs-xs);line-height:18px;text-align:center;font-variant-numeric:tabular-nums}
.nt-sec-unread .nt-sec-t{color:var(--accent)}
.nt-sec-empty{padding:10px 12px;font-size:var(--fs-sm);color:var(--muted)}
@media (max-width:820px){.nt-secs{grid-template-columns:1fr}}
.sys-list .nt-row{display:grid;grid-template-columns:120px minmax(0,1fr) 96px 96px;align-items:center;gap:14px;padding-right:24px}
.nt-row .nt-name{display:flex;justify-content:space-between;min-width:0;font-size:var(--fs-sm);color:var(--text);white-space:nowrap}
.nt-row .rg{display:inline-flex;align-items:center;gap:6px}
.nt-row .rg .sys-lab{width:auto!important;text-align:left!important;flex:0 0 auto}
.nt-row .nt-recip{width:100%;height:var(--h-dense);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-sm);padding:0 var(--sp-2);min-width:0}
.nt-row .nt-recip:focus{outline:none;border-color:var(--accent)}
.nt-recip-wrap{display:flex;gap:6px;align-items:center;min-width:0}
.nt-recip-wrap .nt-recip{flex:1 1 auto;min-width:0}
.nt-pick{flex:0 0 auto;white-space:nowrap}
.nt-pick-list{max-height:46vh;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:2px 0}
.nt-pick-row{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;cursor:pointer}
.nt-pick-row:hover{background:var(--m-ultra)}
.nt-pick-row input{width:auto}
.nt-pick-row .np-n{font-weight:600}
.nt-pick-row .np-r{color:var(--hint);font-size:var(--fs-xs);margin-left:auto}
@media (min-width:821px){
  nav button .nav-m{display:none}
  nav button .nav-d{display:inline}
}
.item-fields{display:flex;gap:6px}
main{padding:var(--sp-3);max-width:1180px;margin:0 auto;width:100%}
.section-title,.sec-title{font-size:var(--fs-md);font-weight:600;margin:var(--sp-3) var(--sp-1) var(--sp-2);padding-left:9px;border-left:3px solid var(--accent);color:var(--text)}
.card{background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);box-shadow:var(--shadow-1);border-radius:var(--r-lg);padding:var(--sp-4);margin-bottom:var(--sp-3)}
.card .row1{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:var(--sp-2)}
.order-no{font-weight:600;font-size:var(--fs-lg);color:var(--text)}
.tag{display:inline-flex;align-items:center;justify-content:center;line-height:1.2;vertical-align:middle;font-size:var(--fs-xs);padding:var(--sp-1) 9px;border-radius:var(--r-pill);background:var(--chip);color:var(--text-2);margin-left:4px;white-space:nowrap}
.r1 .tag,.row1 .tag{position:relative;top:-1px}
.tag.urgent{background:var(--bad);color:var(--on-accent);font-weight:600}
.tag.done{background:var(--ok-soft);color:var(--good)}
.tag.void{background:var(--ba-soft);color:var(--bad);font-weight:600}
.tag.borrow{background:var(--wa-soft);color:#8A5A0F;font-weight:600}
.sgroup{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-2);background:var(--panel2)}
.sgroup-title{font-size:var(--fs-sm);font-weight:600;color:var(--text);margin-bottom:2px}
.sgroup-btns{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2);margin-top:6px}
.card-cross{font-size:var(--fs-xs);color:var(--muted);padding:3px 0 0}
.todo-badges{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:6px 0 0}
.todo-badge{display:inline-flex;align-items:center;gap:var(--sp-2);line-height:1;padding:var(--sp-1) var(--sp-3);border:1px solid;border-radius:var(--r-pill);font-family:inherit;font-size:var(--fs-xs);cursor:pointer}
.todo-badge .bn{font-variant-numeric:tabular-nums;font-weight:600;opacity:.85}
.todo-badge.qc{background:#085041;border-color:#5DCAA5;color:#9FE1CB}
.todo-badge.ship{background:#0C447C;border-color:#85B7EB;color:#B5D4F4}
.todo-badge.stock{background:#0B3B49;border-color:#5BC8DE;color:#B8E6F2}
.todo-badge.c0{background:#3C3489;border-color:#AFA9EC;color:#CECBF6}
.todo-badge.c1{background:#4A1B0C;border-color:#F0997B;color:#F5C4B3}
.todo-badge.c2{background:#633806;border-color:#EF9F27;color:#FAC775}
.todo-badge.c3{background:#27500A;border-color:#97C459;color:#C0DD97}
.todo-badge.c4{background:#72243E;border-color:#ED93B1;color:#F4C0D1}
.card .meta{font-size:var(--fs-md);color:var(--text-2);line-height:1.75}
.card .meta b{color:var(--text);font-weight:600}
.due{display:inline-flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle;font-weight:600;padding:1px var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-md)}
.due.ok{color:var(--good)}.due.warn{background:var(--wa-soft);color:var(--warn);padding:0 var(--sp-2);line-height:20px;position:relative;top:1px}.due.danger{background:var(--ba-soft);color:var(--bad);padding:0 var(--sp-2);line-height:20px;position:relative;top:1px}.due.over{background:var(--bad);color:var(--on-accent);padding:0 var(--sp-2);line-height:20px;position:relative;top:1px}.due.done{background:var(--ok-soft);color:var(--good);padding:0 var(--sp-2);line-height:20px;position:relative;top:1px}
.due.none{background:var(--chip);color:var(--muted);padding:0 var(--sp-2);line-height:20px;position:relative;top:1px}
.due-label{display:inline-flex;align-items:center;line-height:1;vertical-align:middle;padding:1px 0;font-size:var(--fs-md);color:var(--text-2)}
.due-big{display:inline-flex;align-items:center;line-height:1;vertical-align:middle;padding:1px 0;font-size:var(--fs-lg);font-weight:700}
.due-big.ok{color:var(--good)}.due-big.warn{color:var(--warn)}.due-big.danger{color:var(--bad)}.due-big.over{color:var(--bad)}
.due,.due-label,.due-big{white-space:nowrap}
.detail-summary .sum-value .due,.detail-summary .sum-value .due-big{font-size:inherit}
.stay{display:inline-flex;align-items:center;vertical-align:middle;line-height:1;color:var(--text-2);font-variant-numeric:tabular-nums}
input:disabled,select:disabled,textarea:disabled{opacity:.55;background:var(--panel2);color:var(--muted);cursor:not-allowed;border-style:dashed}
.close{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:var(--r-sm);
  background:transparent;border:none;font-size:var(--fs-xl);color:var(--muted);cursor:pointer;line-height:1;
  transition:background .15s,color .15s,transform .14s}
.close:hover{background:var(--panel2);color:var(--text)}
.close:active{transform:translateY(1px)}
.empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:48px 20px;color:var(--text-2);font-size:var(--fs-md)}
.empty::before{content:'';display:block;width:44px;height:44px;margin-bottom:4px;background-color:var(--muted);opacity:.55;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cpath d='M3 9h18M8 13h8M8 17h5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cpath d='M3 9h18M8 13h8M8 17h5'/%3E%3C/svg%3E") center/contain no-repeat}
.skel-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);margin-bottom:var(--sp-3)}
.skel-line{height:12px;border-radius:var(--r-sm);margin-bottom:9px;background:linear-gradient(90deg,var(--panel2) 25%,var(--border) 37%,var(--panel2) 63%);background-size:400% 100%;animation:skel 1.2s ease-in-out infinite}
.skel-line.w40{width:40%}.skel-line.w60{width:60%}.skel-line.w80{width:80%}
.skel-line:last-child{margin-bottom:0}
.skel-fail{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);margin-bottom:var(--sp-3);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}
.skel-fail .skf-msg{color:var(--text-2);font-size:var(--fs-md)}
@keyframes skel{0%{background-position:100% 50%}100%{background-position:0 50%}}
.sheet-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:14px}
.rowbtn{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2);margin-top:10px}
.rowbtn .sgroup{flex:1 1 100%;min-width:0;align-self:flex-start;margin-bottom:0}
  .load-more{text-align:center;padding:14px;color:var(--text-2);cursor:pointer;font-size:var(--fs-md);border-top:1px dashed var(--border)}
.bsplit-r.hidden{display:none}
.dpane-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);
  padding-bottom:var(--sp-2);margin-bottom:var(--sp-2);border-bottom:1px solid var(--hair)}
.dpane-head b{font-size:var(--fs-lg);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:clip}
.dpane-empty{text-align:center;color:var(--text-2);font-size:var(--fs-md);line-height:1.95;padding:var(--sp-5) var(--sp-2)}
.bsplit-r .detail-summary{grid-template-columns:repeat(2,1fr);gap:var(--sp-3);padding:var(--sp-3);margin:10px 0}
.bsplit-r .detail-summary.c5{grid-template-columns:repeat(3,1fr)}
.bsplit-r .detail-summary.c6{grid-template-columns:repeat(3,1fr)}
.bsplit-r .detail-card{padding:var(--sp-3);margin-bottom:10px}
.bsplit-r .info-grid-3{gap:10px 12px}
.bsplit-r .sum-value{white-space:nowrap}
  .load-more.done{cursor:default;opacity:.7}
input,select,textarea{background:var(--panel2)!important;border:1px solid var(--border)!important;color:var(--text)!important;border-radius:var(--r-sm);padding:0 var(--sp-3);font-size:var(--fs-md);width:100%;font-family:inherit;height:var(--h-ctl);transition:border-color var(--t-1),box-shadow var(--t-1)}
textarea{height:auto;resize:vertical;min-height:56px;padding:var(--sp-2) var(--sp-3);line-height:1.5}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)!important;box-shadow:var(--focus-ring)!important}
:focus-visible{outline:none;box-shadow:var(--focus-ring)!important}
.stat-card .num,.bar-num,.bcard .stay,.due,.due-big,.sum-value{font-variant-numeric:tabular-nums}
input::placeholder,textarea::placeholder{color:var(--muted)}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield}
input[type=checkbox],input[type=radio]{width:auto!important;height:auto!important;margin:0;accent-color:var(--accent);padding:0}
.item input[type=checkbox]{width:18px!important;height:18px!important}
label{color:var(--text-2);font-size:var(--fs-sm);display:block;margin-bottom:var(--sp-1);font-weight:500}
.login-screen{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);overflow:hidden;background:
  radial-gradient(1100px 560px at 12% -8%, var(--accent-soft), transparent 60%),
  radial-gradient(900px 480px at 108% 112%, rgba(122,92,255,.13), transparent 55%),
  var(--bg)}
.login-glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;pointer-events:none;z-index:0}
.login-glow-a{width:440px;height:440px;background:radial-gradient(circle,var(--accent),transparent 70%);top:-140px;left:-90px}
.login-glow-b{width:400px;height:400px;background:radial-gradient(circle,#7a5cff,transparent 70%);bottom:-150px;right:-70px}
.login-logos{position:absolute;top:calc(var(--sp-4) + env(safe-area-inset-top) + 10px);left:calc(var(--sp-4) + 16px);z-index:10;display:flex;align-items:center;gap:26px}
.login-logos img{height:clamp(38px,5.6vw,46px);width:auto;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55))}
.login-logos img.logo-weeduo{height:clamp(31px,4.6vw,38px);max-width:220px;transform:translateY(-2px)}
.login-logos .logo-sep{width:1px;height:26px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.30),transparent);flex-shrink:0}
.login-card{position:relative;z-index:1;width:100%;max-width:400px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.10);border-radius:var(--r-xl);box-shadow:var(--shadow-2),inset 0 1px 0 rgba(255,255,255,.10);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:var(--sp-5) var(--sp-4)}
.brand{text-align:center;margin-bottom:var(--sp-5)}
.brand-name{font-size:var(--fs-2xl);font-weight:700;color:var(--text);letter-spacing:1px}
.login-foot{position:absolute;bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-size:var(--fs-xs);color:var(--muted);opacity:.7;z-index:10}
.login-form{display:flex;flex-direction:column;gap:var(--sp-3)}
.field{position:relative;display:flex;align-items:center;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--t-1),box-shadow var(--t-1)}
.field:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}
.field-ico{display:flex;align-items:center;justify-content:center;width:46px;color:var(--muted);flex-shrink:0}
.field-ico svg{width:18px;height:18px}
.field select,.field input{background:transparent!important;border:none!important;box-shadow:none!important;width:auto!important;flex:1 1 auto!important;min-width:0!important;height:50px;padding:0 var(--sp-3)!important;font-size:var(--fs-lg);color:var(--text);font-family:inherit}
.field select{appearance:none;-webkit-appearance:none;padding-right:40px!important;cursor:pointer}
.field select:has(option[value=""]:checked){color:var(--muted)!important}
.field select option{color:var(--text);background:var(--panel)}
.field-toggle{background:none;border:none;color:var(--muted);cursor:pointer;width:46px;height:46px;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;font-size:14px}
.field-toggle:hover{color:var(--text)}
.field-toggle svg{width:18px;height:18px}
.field-toggle.on{color:var(--accent)}
.login-submit{margin-top:var(--sp-2);gap:8px}
.login-error{display:none;margin:-var(--sp-1) 2px 0;font-size:var(--fs-sm);color:var(--bad);line-height:1.45}
.login-remember{display:flex;align-items:center;gap:var(--sp-2);margin:-var(--sp-1) 2px 0;font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;user-select:none;-webkit-user-select:none}
.login-remember input[type=checkbox]{width:18px!important;height:18px!important;flex:none;margin:0;padding:0;accent-color:var(--accent);cursor:pointer}
.pwd-form{display:flex;flex-direction:column;gap:12px}
.pwd-form .pf-row{display:flex;flex-direction:column;gap:6px}
.pwd-form .pf-row label{margin:0}
.pwd-form input{max-width:320px}
.login-error.show{display:block}
.field.err-field{border-color:var(--bad);box-shadow:0 0 0 3px var(--ba-soft)}
.login-submit{position:relative}
.login-submit:active{transform:scale(.975)}
.login-submit .spinner{display:none;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;opacity:.55;border-radius:50%;animation:spin .7s linear infinite}
.login-submit.loading .spinner{display:inline-block}
.login-submit.loading{pointer-events:none;opacity:.85;filter:brightness(.96)}
@keyframes spin{to{transform:rotate(360deg)}}
.field-toggle{transition:transform var(--t-0) ease,color var(--t-1)}
.field-toggle:active{transform:scale(.9);color:var(--text)}
#login,#app{transition:opacity var(--t-1) ease}
.login-screen.fade-out{opacity:0;pointer-events:none}
@media (min-width:820px){.login-card{max-width:440px;padding:36px 40px}.login-glow{opacity:.7}}
@media (max-width:600px){
  .login-logos{left:var(--sp-4);gap:14px}
  .login-logos img{height:26px}
  .login-logos img.logo-weeduo{height:22px;max-width:150px;transform:translateY(-1px)}
  .app-logos{gap:8px}
  .app-logos img{height:24px}
  .app-logos img.logo-weeduo{height:20px}
  .app-logos .logo-sep{height:18px}
  .brand-name{font-size:var(--fs-xl)}
}
@media (max-height:520px){
  .login-logos{top:calc(var(--sp-3) + env(safe-area-inset-top))}
  .brand{margin-bottom:var(--sp-3)}
  .brand-name{font-size:var(--fs-xl)}
  .login-foot{display:none}
  .login-card{padding:var(--sp-4)}
  .field select,.field input{height:46px}
}
.filter{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-3)}
.filter-row .btn{height:var(--h-ctl);min-width:84px;flex:0;width:auto;margin:0}
.filter-row .btn--p{width:auto}
.filter-date-group{display:flex;flex-direction:row;align-items:center;gap:var(--sp-2);flex:0 1 230px;max-width:250px;min-width:200px}
.filter-date-group label{font-size:var(--fs-xs);color:var(--muted);margin-bottom:0;line-height:1.3;flex-shrink:0}
.filter-date-group input[type=date]{width:auto;flex:1;padding:0 8px}
input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer;opacity:.7}
input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}
.date-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-md);height:var(--h-ctl);padding:0 var(--sp-3);cursor:pointer;font-family:inherit;transition:border-color var(--t-1),box-shadow var(--t-1)}
.date-trigger:hover{border-color:var(--border-strong)}
.date-trigger.formal{color:var(--text)}
.date-trigger.has-val{color:var(--text)}
.date-trigger .dp-text{overflow-wrap:anywhere}
.date-trigger .dp-ico{flex-shrink:0;color:var(--muted)}
.date-trigger:focus,.date-trigger:active{border-color:var(--accent)!important;box-shadow:var(--focus-ring)!important;outline:none}
.filter-date-group .date-trigger{flex:1;min-width:0}
.date-pop{position:fixed;z-index:200;width:264px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:var(--sp-3);color:var(--text)}
select.sel-hidden{display:none!important}
.sel-trigger{display:flex;align-items:center;justify-content:space-between;
  gap:0;
  position:relative;
  width:auto;min-width:72px;
  background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);
  font-size:var(--fs-md);height:var(--h-ctl);padding:0 var(--sp-3);cursor:pointer;font-family:inherit;
  text-align:left;transition:border-color var(--t-1),box-shadow var(--t-1)}
.sel-trigger:hover{border-color:var(--border-strong)}
.sel-trigger:disabled{opacity:.55;cursor:not-allowed}
.sel-trigger.is-empty{color:var(--muted)}
.sel-trigger .sel-text{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}
.sel-trigger .sel-text::after{content:attr(data-max);display:block;height:0;overflow:hidden;
  white-space:pre;visibility:hidden;pointer-events:none;
  margin-right:var(--sel-wadj,0px)}
.sel-trigger .sel-ico{flex:0 0 auto;opacity:.65;width:1em;height:1em;
  }
.sel-trigger.is-center{justify-content:center;text-align:center;
  display:inline-flex;vertical-align:middle;
  padding-left:28px;padding-right:28px}
.sel-trigger.is-center .sel-ico{position:absolute;right:8px;top:50%;margin-top:-7px}
.sel-pop{position:fixed;z-index:210;background:var(--panel);border:1px solid var(--border-strong);
  border-radius:var(--r-md);box-shadow:var(--shadow-2);padding:4px;color:var(--text);
  max-height:280px;overflow-y:auto;min-width:120px}
.sel-pop.hidden{display:none}
.sel-pop .sel-opt{padding:9px 12px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-md);
  white-space:normal;line-height:1.35}
.sel-pop .sel-opt:hover{background:var(--panel2)}
.sel-pop .sel-opt.sel-on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.sel-pop .sel-opt.sel-dis{opacity:.45;cursor:not-allowed}
.fgrp{margin:10px 0}
.flab{display:block;font-size:var(--fs-sm);color:var(--muted);margin:0 0 5px}
.flab .req{color:var(--bad);font-style:normal;margin-left:2px;font-weight:600}
@media(max-width:820px){
  .sel-pop .sel-opt{padding:12px 14px;min-height:44px;display:flex;align-items:center}
  .sel-trigger{min-height:44px}
  .date-pop .dp-time .sel-trigger{min-height:30px}
}
#view-board .frow .sel-trigger{width:auto;min-width:0;flex:0 0 auto;height:var(--h-ctl);min-height:0}
@media(max-width:820px){
  #view-board .frow .sel-trigger{flex:1 1 140px;min-width:0;min-height:44px}
}
.filter-row .sel-trigger{flex:1;min-width:120px;height:var(--h-ctl);width:auto}
.date-pop .dp-time .sel-trigger{flex:1;height:30px;min-height:30px;font-size:var(--fs-sm);padding:0 8px}
.item-field>.sel-trigger{flex:1 1 auto;min-width:0;height:auto;min-height:0;
  padding:var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-md)}
.cap-table .sel-trigger{height:30px;min-height:30px;font-size:var(--fs-sm);padding:0 10px;width:100%}
.cap-table .sel-trigger.is-center{padding-left:28px;padding-right:28px}
@media(max-width:820px){
  .sys-add .sel-trigger{flex:1 1 100%;height:44px;min-height:44px}
}
.date-pop.hidden{display:none}
.date-pop .dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.date-pop .dp-title{font-weight:600;font-size:var(--fs-md)}
.date-pop .dp-nav{width:30px;height:30px;border:none;background:var(--panel2);color:var(--text);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-xl);line-height:1}
.date-pop .dp-nav:hover{background:var(--accent-soft)}
.date-pop .dp-week{display:grid;grid-template-columns:repeat(7,1fr);font-size:var(--fs-xs);color:var(--muted);text-align:center;margin-bottom:4px}
.date-pop .dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.date-pop .dp-cell{height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);font-size:var(--fs-sm);cursor:pointer;color:var(--text)}
.date-pop .dp-cell:hover{background:var(--panel2)}
.date-pop .dp-cell.other{color:var(--muted);opacity:.45}
.date-pop .dp-cell.today{box-shadow:inset 0 0 0 1px var(--accent)}
.date-pop .dp-cell.sel{background:var(--accent);color:var(--on-accent)}
.date-pop .dp-foot{display:flex;justify-content:space-between;margin-top:8px;gap:8px}
.date-pop .dp-foot button{flex:1;padding:var(--sp-2);border:none;background:var(--panel2);color:var(--text);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-xs)}
.date-pop .dp-foot button:hover{background:var(--accent-soft)}
.date-pop .dp-time{display:flex;align-items:center;gap:var(--sp-2);margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.date-pop .dp-time .dp-time-lb{color:var(--muted);font-size:var(--fs-xs);flex:0 0 auto}
.date-pop .dp-time select{flex:1;height:30px;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-sm);font-family:inherit;padding:0 var(--sp-2);cursor:pointer}
.date-pop .dp-time select:hover{border-color:var(--border-strong)}
#clPop{position:fixed;z-index:260;display:none;width:340px;max-width:calc(100vw - 16px);
  max-height:300px;overflow-y:auto;overscroll-behavior:contain;
  background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);color:var(--text)}
#clPop.on{display:block}
#clPop .cl-hd{position:sticky;top:0;z-index:1;padding:7px var(--sp-3);font-size:var(--fs-xs);
  color:var(--muted);background:var(--panel2);border-bottom:1px solid var(--border)}
#clPop .cl-it{padding:9px var(--sp-3);cursor:pointer;border-bottom:1px solid var(--border)}
#clPop .cl-it:last-child{border-bottom:none}
#clPop .cl-it:hover,#clPop .cl-it.hot{background:var(--accent-soft)}
#clPop .cl-nm{font-size:var(--fs-md);line-height:1.45;word-break:break-word}
#clPop .cl-sub{display:flex;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-xs);
  color:var(--muted);margin-top:3px;word-break:break-word}
#clPop .cl-tip{padding:11px var(--sp-3);font-size:var(--fs-sm);color:var(--muted);line-height:1.65}
#clPop .cl-tip.warn{color:var(--warn)}
@media (max-width:820px){#clPop{width:auto;left:8px!important;right:8px;max-width:none}}
.date-pop .dp-time select:focus{border-color:var(--accent)!important;box-shadow:var(--focus-ring)!important;outline:none}
.date-pop .dp-time .dp-colon{color:var(--muted)}
.overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:60;display:flex;align-items:flex-end}
#listModal{z-index:60}
#listModalBody #lmItems{padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg)}
#listModalBody #lmItems .vcard:last-child{border-bottom:0}
#detail{z-index:64}
#modal{z-index:68}
.sheet{background:var(--panel);width:100%;max-height:88vh;overflow-y:auto;border-radius:var(--r-lg) var(--r-lg) 0 0;border-top:1px solid var(--border-strong);box-shadow:var(--shadow-2);padding:var(--sp-4)}
.sheet h2,.sheet h3{font-size:var(--fs-lg);margin-bottom:var(--sp-2)}
:root{--t-0:80ms;--t-1:150ms;--t-2:200ms;--t-view:300ms;--ease-m3:cubic-bezier(.2,0,0,1);
  --row-h:44px;--panel-top-h:340px}
@keyframes uiFade{from{opacity:0}to{opacity:1}}
@keyframes uiViewIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
@keyframes uiSheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes uiPop{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.overlay:not(.hidden){animation:uiFade var(--t-1) var(--ease-m3)}
.overlay:not(.hidden)>.sheet{animation:uiSheetUp var(--t-2) var(--ease-m3)}
#moreNavMask:not(.hidden){animation:uiFade var(--t-1) var(--ease-m3)}
#moreNavMask:not(.hidden) .more-nav-box{animation:uiSheetUp var(--t-2) var(--ease-m3)}
main>[id^="view-"]:not(.hidden){animation:uiViewIn var(--t-view) var(--ease-m3)}
.date-pop:not(.hidden){animation:uiPop var(--t-1) var(--ease-m3)}
#cloudDown:not(.hidden){animation:uiFade var(--t-1) var(--ease-m3)}
.net-banner:not(.hidden){animation:uiFade var(--t-1) var(--ease-m3)}
.sf-chip{transition:background-color var(--t-1),border-color var(--t-1),color var(--t-1)}
.pp-state{transition:color var(--t-1)}
.pm-tg-txt{transition:color var(--t-1)}
@media (min-width:821px){
  #modal{align-items:flex-start;justify-content:center;padding:var(--sp-4);overflow-y:auto}
  #modal>.sheet{
    max-width:460px;
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
    margin:auto;
    border:1px solid var(--border-strong);
    border-radius:var(--r-lg);
  }
  #modal.sheet-wide>.sheet{max-width:880px}
  #modal:not(.hidden)>.sheet{animation:uiPop var(--t-1) var(--ease-m3)}
}
.flow-step{display:flex;align-items:center;font-size:var(--fs-sm);color:var(--muted);margin:6px 0}
.flow-step .dot{width:10px;height:10px;border-radius:50%;background:var(--border-strong);margin-right:6px;flex-shrink:0}
.flow-step.done .dot{background:var(--good)}.flow-step.done{color:var(--good)}
.flow-step.cur .dot{background:var(--bad);box-shadow:0 0 0 2px var(--panel), 0 0 0 3px var(--ba-soft);width:12px;height:12px}
.flow-step.cur{color:var(--bad);font-weight:600}
.flow-step .arrow{color:var(--border-strong);margin:0 4px}
.item{background:var(--panel2)!important;border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;font-size:var(--fs-sm);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);border:1px solid var(--border)}
.item input[type=checkbox]{width:18px;height:18px}
.item.itm{display:block;padding:11px 12px}
.item.itm .itm-main{flex:1 1 auto;min-width:0}
.item.itm .itm-title{font-size:var(--fs-sm);color:var(--text);line-height:1.45;overflow-wrap:anywhere}
.item.itm .itm-sub{font-size:var(--fs-xs);color:var(--muted);margin-top:4px;line-height:1.5;overflow-wrap:anywhere}
.item.itm .itm-stage{flex:0 0 auto;white-space:nowrap;font-size:var(--fs-xs);line-height:1;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);border:1px solid transparent}
.item.itm .itm-stage.wait{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-text)}
.item.itm .itm-stage.done{background:var(--ok-soft);border-color:var(--ok-soft);color:var(--good)}
.item.itm.is-done .itm-title{color:var(--muted)}
.item.itm.is-done .itm-sub{color:var(--border-strong)}
.item.itm .itm-head{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}
.item.itm .itm-head .idx{color:var(--hint);font-variant-numeric:tabular-nums;flex:0 0 auto}
.item.itm .itm-head .nm{font-size:var(--fs-md);color:var(--text);flex:1 1 auto;min-width:0;word-break:break-word}
.item.itm .itm-head .itm-stage{margin-left:auto}
.item.itm .itm-spec{margin-top:5px;font-size:var(--fs-md);font-weight:500;color:var(--accent-text);word-break:break-word}
.item.itm .itm-spec .u{color:var(--accent-text)}
.item.itm .itm-fields{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);
  display:flex;flex-direction:column;gap:6px}
.item.itm .fr{display:flex;align-items:baseline;gap:var(--sp-3);min-width:0}
.item.itm .fr>.k{flex:0 0 72px;text-align:left;font-size:var(--fs-xs);color:var(--text)}
.item.itm .fr>.v{flex:1 1 auto;min-width:0;font-size:var(--fs-sm);color:var(--accent-text);
  word-break:break-word;line-height:1.7}
.item.itm .fduo{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px 18px}
.item.itm .fduo .fr:has(.df-tbl-wrap){grid-column:1/-1;display:block}
.item.itm .fduo .fr:has(.df-tbl-wrap)>.k{display:block;margin-bottom:4px}
.item.itm .fduo .fr>.k{flex:0 0 72px}
.item.itm .itm-tags{margin-top:7px;display:flex;flex-wrap:wrap;gap:5px}
.item .oDesc,.item .oColorNo,.item .oSpec,.item .oUnit,.item .oQty,.item .oItemRemark,
.item .emDesc,.item .emColorNo,.item .emSpec,.item .emUnit,.item .emQty,.item .emItemRemark{
  font-size:var(--fs-sm);
}
.item-field{display:flex;align-items:center;gap:var(--sp-2);margin:0;min-width:0;flex:1}
.item-field--wide{flex:2}
.item-field>span{flex:0 0 auto;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}
.item-field>input,.item-field>select{flex:1;min-width:0;padding:var(--sp-2);border-radius:var(--r-sm);width:auto}
.rec{font-size:var(--fs-sm);color:var(--muted);padding:5px 0;border-bottom:1px dashed var(--border)}
.rec b{color:var(--text)}
.timeline{position:relative;padding-left:14px;margin:2px 0}
.timeline::before{content:'';position:absolute;left:4px;top:4px;bottom:4px;width:2px;background:var(--border-strong)}
.tl-note2{margin-top:3px}
.tl-note-line{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5;word-break:break-word}
.tl-note-line+.tl-note-line{margin-top:1px}
.tl-note-first{color:var(--text);font-weight:600}
.tl-link{font-size:var(--fs-xs);color:var(--accent);margin-left:8px;cursor:pointer;text-decoration:none}
.tl-item-row{font-size:var(--fs-sm);line-height:1.75;color:var(--text-2)}
.tl2{position:relative;margin-left:5px;padding-left:18px;border-left:1px solid var(--border-strong)}
.tl2-day{position:relative;margin:14px 0 var(--sp-2);font-size:var(--fs-xs);color:var(--muted);font-weight:500}
.tl2-day:first-child{margin-top:2px}
.tl2-day::before{content:"";position:absolute;left:-23px;top:5px;width:9px;height:9px;border-radius:var(--r-xs);
  background:var(--border-strong)}
.tl2-item{position:relative;padding:9px 0 11px;border-bottom:1px dashed var(--border)}
.tl2-item:last-child{border-bottom:none}
.tl2-item::before{content:"";position:absolute;left:-23px;top:15px;width:9px;height:9px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 3px var(--panel2)}
.tl2-log::before{background:var(--warn)}
.tl2-bad::before{background:var(--bad)}
.tl2-head{display:flex;align-items:baseline;gap:10px}
.tl2-lft{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;min-width:0}
.tl2-who{font-size:var(--fs-md);color:var(--text);font-weight:600}
.tl2-who .tl2-post{font-style:normal;font-weight:inherit;font-size:inherit;color:inherit}
.tl2-who .tl2-dot{font-style:normal;font-weight:inherit;font-size:inherit;color:var(--muted);margin:0 4px}
.tl2-act{font-size:var(--fs-xs);line-height:1;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);
  background:var(--accent-soft);color:var(--accent-text);white-space:nowrap}
.tl2-log .tl2-act{background:var(--wa-soft);color:var(--warn)}
.tl2-bad .tl2-act{background:var(--ba-soft);color:#ff8a8a}
.tl2-stp{font-size:var(--fs-xs);color:var(--text-2)}
.tl2-tm{margin-left:auto;font-size:var(--fs-xs);color:var(--hint);white-space:nowrap;
  font-variant-numeric:tabular-nums;padding-left:10px}
.tl2-raw{font-size:var(--fs-xs);color:var(--text-2);line-height:1.7;word-break:break-word;margin-top:5px}
.tl2-its{margin-top:7px;display:flex;flex-direction:column;gap:6px}
.tl2-it{background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px}
.tl2-it .h{font-size:var(--fs-sm);color:var(--text);line-height:1.5;word-break:break-word}
.tl2-it .h .no{color:var(--hint);margin-right:6px}
.tl2-it .h .cr{color:var(--accent-text);margin-left:8px}
.tl2-it .f{margin-top:5px;display:flex;flex-wrap:wrap;gap:5px 16px}
.tl2-it .f .kv{font-size:var(--fs-xs);line-height:1.6;word-break:break-word}
.tl2-it .f .kv .k{color:var(--hint);margin-right:6px}
.tl2-it .f .kv .v{color:var(--text-2)}
.tl2-it .f.col{flex-direction:column;gap:3px}
.tl2-it .tl2-hh{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}
.tl2-it .tl2-lb{font-size:var(--fs-xs);color:var(--hint);white-space:nowrap}
.tl2-it .tl2-nm{font-size:var(--fs-sm);color:var(--text);font-weight:500;word-break:break-word}
.tl2-it .tl2-qt{margin-left:auto;font-size:var(--fs-xs);color:var(--good);white-space:nowrap}
.tl2-it .tl2-qt-ok{color:var(--good)}
.tl2-it .tl2-qt-part{color:var(--warn)}
.tl2-it .tl2-spec{margin-top:4px;font-size:var(--fs-sm);color:var(--text);display:flex;
  align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;word-break:break-word}
.tl2-it .tl2-spec .sp{color:var(--text-2)}
.tl2-it .tl2-spec .u{color:var(--accent-text);font-weight:500;white-space:nowrap}
.tl2-it .tl2-rmk{margin-top:3px;font-size:var(--fs-xs);line-height:1.6;word-break:break-word}
.tl2-it .tl2-key{margin-top:4px;font-size:var(--fs-xs);line-height:1.6;word-break:break-word;
  color:var(--bad);font-weight:500}
.tl2-it .tl2-rmk .k{color:var(--hint);margin-right:6px}
.tl2-it .tl2-rmk .v{color:var(--text-2)}
.tl2-it .tl2-rmk.rr .v{color:var(--bad);font-weight:500}
.tl2-acts{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:7px}
.tl2-acts .tl-link{margin-left:0}
.tl2-ano{margin-top:7px}
.tl2-hint{font-size:var(--fs-xs);color:var(--hint);font-weight:400;margin-left:8px}
@media (max-width:820px){.tl2-who{font-size:var(--fs-md)}.tl2-act{font-size:var(--fs-xs);padding:3px 7px}}
@media (max-width:820px){
  .tl2-it{padding:7px 9px}
  .tl2-it .tl2-hh{gap:6px}
  .tl2-it .tl2-qt{margin-left:0;flex-basis:100%;text-align:right}
  .tl2-it .tl2-spec{font-size:var(--fs-xs);gap:6px}
  .tl2-it .tl2-rmk{font-size:var(--fs-xs)}
  .tl2-it .f.col .kv{display:flex;flex-wrap:wrap;gap:0 6px}
}
.tl-tl-node{display:flex;gap:var(--sp-2);min-width:0}
.tl-ed-sum{margin-top:6px;background:var(--panel2);border-left:3px solid var(--accent);border-radius:var(--r-sm);padding:7px var(--sp-3);font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}
.tl-ed-sec{font-size:var(--fs-xs);color:var(--muted);margin:9px 0 5px}
.tl-ed-card{background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);margin-bottom:7px}
.tl-ed-card-del{border-left-color:var(--bad)}
.tl-ed-chead{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;min-width:0}
.tl-ed-no{flex:0 0 auto;font-size:var(--fs-xs);font-weight:600;color:var(--text);background:var(--chip);border-radius:var(--r-xs);padding:1px var(--sp-2);white-space:nowrap}
.tl-ed-badge-add{background:var(--ok-soft);color:var(--good)}
.tl-ed-badge-del{background:var(--ba-soft);color:var(--bad)}
.tl-ed-name{font-size:var(--fs-sm);font-weight:600;color:var(--text);min-width:0;overflow-wrap:anywhere}
.tl-ed-name-del{color:var(--muted);text-decoration:line-through}
.tl-ed-qty{margin-left:auto;font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap}
.tl-ed-fields{margin-top:5px;display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}
.tl-ed-head{margin-top:0;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px}
.tl-ed-frow{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-xs);min-width:0}
.tl-ed-fk{flex:0 0 56px;color:var(--muted)}
.tl-ed-old{color:var(--muted);text-decoration:line-through;overflow-wrap:anywhere}
.tl-ed-arrow{color:var(--accent)}
.tl-ed-new{color:var(--good);overflow-wrap:anywhere}
.tl-ed-locked{margin-top:6px;background:var(--panel2);border-left:3px solid var(--warn);border-radius:var(--r-sm);padding:7px var(--sp-3);font-size:var(--fs-sm);color:var(--text-2)}
.tl-tl-note{margin:2px 0 var(--sp-2);padding:var(--sp-1) var(--sp-2);border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 6px 6px 0;font-size:var(--fs-xs);color:var(--text-2);line-height:1.5;word-break:break-word}
.comment-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:2px 0}
.cmt{background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px}
.cmt-head{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--fs-sm)}
.cmt-head b{color:var(--text)}
.cmt-time{margin-left:auto;color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap}
.cmt-text{font-size:var(--fs-sm);color:var(--text);margin-top:3px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.comment-box{display:flex;flex-direction:row;align-items:center;gap:var(--sp-2);margin-top:8px}
.comment-box textarea{height:36px;min-height:36px;flex:1;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);color:var(--text);resize:none}
.comment-box textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.comment-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);flex-shrink:0}
.comment-actions .btn{height:var(--h-btn-sm)}
.dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin-bottom:14px}
.dash-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 14px;background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));border:1px solid var(--accent-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-1);position:relative;overflow:hidden;cursor:pointer;transition:transform var(--t-0),border-color var(--t-1),box-shadow var(--t-1)}
.dash-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.dash-card:hover{border-color:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}
.dash-card:active{transform:scale(.97)}
.dash-card.good{background:linear-gradient(135deg,var(--ok-soft),var(--ok-soft));border-color:var(--ok-soft)}
.dash-card.good::before{background:var(--good)}
.dash-card.warn{background:linear-gradient(135deg,var(--wa-soft),var(--wa-soft));border-color:var(--wa-soft)}
.dash-card.warn::before{background:var(--warn)}
.dash-card.danger{background:linear-gradient(135deg,var(--ba-soft),var(--ba-soft));border-color:var(--ba-soft)}
.dash-card.danger::before{background:var(--bad)}
.dash-card.good .dash-icon{color:var(--good)}
.dash-card.warn .dash-icon{color:var(--warn)}
.dash-card.danger .dash-icon{color:var(--bad)}
.dash-body{flex:1;min-width:0}
.dash-body .num{font-size:var(--fs-display);font-weight:700;line-height:1;color:var(--text)}
.dash-body .lbl{font-size:var(--fs-xs);color:var(--text-2);margin-top:2px}
.dash-block{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3);margin-bottom:var(--sp-3);box-shadow:var(--shadow-1)}
.dash-block h4{font-size:var(--fs-md);font-weight:600;margin:0 0 var(--sp-2);display:flex;align-items:center;gap:8px}
.dash-block h4::before{content:'';width:4px;height:18px;background:linear-gradient(180deg,var(--accent),#6d9dff);border-radius:var(--r-xs)}
.bar-row{display:flex;align-items:center;gap:var(--sp-3);padding:7px var(--sp-2);font-size:var(--fs-sm);border-radius:var(--r-sm);transition:background var(--t-1)}
.bar-row:hover{background:var(--accent-soft)}
.bar-row.bar-clickable{cursor:pointer;user-select:none}
.bar-row.bar-clickable:hover{background:var(--accent-soft)}
.bar-rank{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--panel2);color:var(--muted);font-size:var(--fs-xs);font-weight:700;flex-shrink:0}
.bar-row:first-child .bar-rank{background:linear-gradient(135deg,#ffd700,#ffb700);color:#332200}
.bar-row:nth-child(2) .bar-rank{background:linear-gradient(135deg,#e8eaed,#bfc3c9);color:#1a1a1a}
.bar-row:nth-child(3) .bar-rank{background:linear-gradient(135deg,#cd7f32,#b87333);color:#fff}
.bar-label{width:110px;flex-shrink:0;color:var(--text);text-align:right;overflow-wrap:anywhere}
.bar-track{flex:1;background:var(--panel2);border-radius:var(--r-pill);height:18px;overflow:hidden;border:1px solid var(--border);position:relative}
.bar-fill{display:block;height:100%;width:100%;transform-origin:left;background:linear-gradient(90deg,var(--accent),#6d9dff);border-radius:var(--r-pill);box-shadow:0 0 10px var(--accent-soft);transition:transform var(--t-view) var(--ease-m3)}
.bar-val{width:28px;flex-shrink:0;text-align:right;font-weight:700;color:var(--text)}
.bar-pct{width:46px;flex-shrink:0;text-align:right;font-size:var(--fs-xs);color:var(--text-2)}
.dash-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.dash-table th,.dash-table td{padding:var(--sp-2) var(--sp-2);text-align:center;border-bottom:1px solid var(--border)}
.dash-table th{color:var(--text-2);font-weight:600}
.dash-table td.dim{color:var(--text-2);font-size:var(--fs-xs)}
.dbv-verdict{display:flex;align-items:flex-start;gap:var(--sp-3);padding:14px var(--sp-4);border-radius:var(--r-lg);
  border:1px solid var(--border);background:var(--panel);margin-bottom:var(--sp-3);box-shadow:var(--shadow-1)}
.dbv-verdict .v-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:6px;background:var(--muted)}
.dbv-verdict .v-main{flex:1;min-width:0}
.dbv-verdict .v-title{font-size:var(--fs-lg);font-weight:700;color:var(--text);line-height:1.25}
.dbv-verdict .v-sub{font-size:var(--fs-sm);color:var(--text-2);margin-top:4px;line-height:1.55}
.dbv-verdict .v-issues{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.dbv-verdict .v-issue{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5;display:flex;gap:var(--sp-2);align-items:baseline}
.dbv-verdict .v-issue::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--warn);flex-shrink:0;transform:translateY(-2px)}
.dbv-verdict .v-issue.bad::before{background:var(--bad)}
.dbv-verdict.ok{border-color:var(--ok-soft);background:linear-gradient(135deg,var(--ok-soft),var(--ok-soft))}
.dbv-verdict.ok .v-dot{background:var(--good);box-shadow:0 0 0 4px var(--ok-soft)}
.dbv-verdict.ok .v-title{color:var(--good)}
.dbv-verdict.warn{border-color:var(--wa-soft);background:linear-gradient(135deg,var(--wa-soft),var(--wa-soft))}
.dbv-verdict.warn .v-dot{background:var(--warn);box-shadow:0 0 0 4px var(--wa-soft)}
.dbv-verdict.warn .v-title{color:var(--warn)}
.dbv-verdict.bad{border-color:var(--ba-soft);background:linear-gradient(135deg,var(--ba-soft),var(--ba-soft))}
.dbv-verdict.bad .v-dot{background:var(--bad);box-shadow:0 0 0 4px var(--ba-soft)}
.dbv-verdict.bad .v-title{color:var(--bad)}
.dbv-card{cursor:default}
.dbv-card:hover{border-color:var(--accent-soft);box-shadow:var(--shadow-1)}
.dbv-card:active{transform:none}
.dbv-card .num{font-size:var(--fs-lg)}
.dbv-list{display:flex;flex-direction:column;gap:2px}
.dbv-row{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-sm)}
.dbv-row:nth-child(odd){background:var(--panel2)}
.dbv-k{flex-shrink:0;min-width:118px;font-weight:600;color:var(--text)}
.dbv-v{flex:1;min-width:0;color:var(--text-2);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.dbv-t{flex-shrink:0;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}
@media (max-width:820px){
  .dbv-row{flex-wrap:wrap;gap:2px 8px}
  .dbv-k{min-width:0}
  .dbv-v{flex-basis:100%;order:3;white-space:normal}
  .dbv-verdict{padding:12px}
  .dbv-verdict .v-title{font-size:var(--fs-md)}
}
.bar-track{min-width:52px}
.dbv-trend .bar-label{width:92px;text-align:right}
.dbv-trend .bar-val{width:auto;min-width:34px}
.dbv-trend .bar-pct{width:52px}
.dbv-ov-grid{grid-template-columns:repeat(3,1fr)}
.anom{background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin:6px 0}
.anom.anom-resolved{border-left-color:var(--good);opacity:.78}
.anom-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-sm)}
.anom-st{padding:1px 7px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600;background:var(--panel);color:var(--text-2)}
.anom-st.warn{background:var(--wa-soft);color:var(--warn)}
.anom-st.good{background:rgba(60,200,120,.16);color:var(--good)}
.anom-meta{color:var(--text-2);font-size:var(--fs-xs);margin-left:auto}
.anom-note{font-size:var(--fs-sm);color:var(--text);margin-top:4px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.anom-actions{display:flex;gap:var(--sp-2);margin-top:8px}
.my-anom{background:var(--ba-soft);border:1px solid var(--ba-soft);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin:6px 0}
.my-anom .ma-title{font-size:var(--fs-sm);font-weight:600;color:var(--bad);margin-bottom:4px}
.my-anom .ma-item{font-size:var(--fs-sm);color:var(--text);padding:3px 0}
.todo-fu{background:var(--wa-soft);border:1px solid var(--wa-soft);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin:6px 0}
.todo-fu .tf-title{font-size:var(--fs-sm);font-weight:600;color:var(--warn);margin-bottom:4px}
.todo-fu .tf-item{font-size:var(--fs-sm);color:var(--text);padding:5px 0;cursor:pointer;display:flex;flex-wrap:wrap;gap:0 var(--sp-2);align-items:baseline}
.todo-fu .tf-item+.tf-item{border-top:1px dashed var(--border)}
.todo-fu .tf-item:hover{color:var(--accent)}
.todo-fu .tf-t{color:var(--warn)}
.todo-fu .tf-s{color:var(--muted)}
.fu-bar{font-size:var(--fs-xs);color:var(--warn);padding:0 var(--sp-3) var(--sp-2);margin-top:-4px;display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.fu-bar .fu-btn{font-size:var(--fs-xs);padding:2px var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--wa-soft);background:transparent;color:var(--warn);cursor:pointer;height:auto;min-height:0}
.fu-bar .fu-btn:hover{background:var(--wa-soft)}
.modal-title{display:flex;justify-content:space-between;align-items:center}
.modal-title .close{color:var(--bad)}
#askMask{
  z-index:70;
  align-items:flex-start;
  justify-content:center;
  padding:var(--sp-4);
  overflow-y:auto;
}
.ask-sheet{
  width:100%;
  max-width:400px;
  max-height:calc(100vh - 32px);
  max-height:calc(100dvh - 32px);
  margin:auto;
  border:1px solid var(--border-strong);
  border-left:3px solid var(--accent);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);
}
.ask-sheet.lv-caution{border-left-color:var(--warn)}
.ask-sheet.lv-danger{border-left-color:var(--bad)}
.ask-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.ask-ico{width:22px;height:22px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:var(--fs-xs);font-weight:500;background:var(--accent-soft);color:var(--accent)}
.lv-caution .ask-ico{background:var(--wa-soft);color:var(--warn)}
.lv-danger .ask-ico{background:var(--ba-soft);color:var(--bad)}
.ask-head h3{margin:0;font-size:var(--fs-lg)}
.ask-q{margin:0 0 7px;font-size:var(--fs-sm);line-height:1.7;color:var(--text)}
.ask-desc{margin:0 0 18px;font-size:var(--fs-sm);line-height:1.7;color:var(--muted)}
.ask-desc b{color:var(--text);font-weight:500}
.ask-desc .warn-txt{color:var(--bad);font-weight:500}
.ask-actions{display:flex;justify-content:flex-end;gap:var(--sp-3);margin-top:14px}
.ask-field{margin:0 0 4px}
.ask-lbl{display:block;margin-bottom:6px;color:var(--muted);font-size:var(--fs-xs)}
.ask-inp{width:100%;height:var(--h-ctl);background:var(--panel2);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:0 var(--sp-3);color:var(--text);font-family:inherit;font-size:var(--fs-sm)}
.ask-inp:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
.ask-err{margin:var(--sp-2) 0 0;color:var(--bad);font-size:var(--fs-xs);line-height:1.5;display:none}
.ask-err.on{display:block}
@media (max-width:820px){ .ask-inp{height:44px} }
@media (max-width:820px){
  #askMask .ask-sheet{
    height:auto;
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
    border-radius:var(--r-lg);
    border:1px solid var(--border-strong);
    border-left:3px solid var(--accent);
    box-shadow:var(--shadow-2);
    padding:var(--sp-4);
  }
  #askMask .ask-sheet.lv-caution{border-left-color:var(--warn)}
  #askMask .ask-sheet.lv-danger{border-left-color:var(--bad)}
  #askMask .ask-actions{flex-direction:row;position:static;margin-top:12px}
  #askMask .ask-actions .btn{flex:1;width:auto}
}
.empty{text-align:center;color:var(--text-2);padding:var(--sp-5) 0;font-size:var(--fs-md)}
.tip{background:var(--wa-soft);border:1px solid var(--wa-soft);color:var(--warn);font-size:var(--fs-xs);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);margin:var(--sp-2) 0;line-height:1.6}
.stat-card{flex:1 1 64px;min-width:64px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-2) var(--sp-1);text-align:center;box-shadow:var(--shadow-1);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px;transition:transform var(--t-0)}
.stat-card:active{transform:scale(0.97);background:var(--panel2)}
.stat-card{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--accent-soft),var(--accent-soft));border-color:var(--accent-soft)}
.stat-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.stat-card.warn{background:linear-gradient(135deg,var(--wa-soft),var(--wa-soft));border-color:var(--wa-soft)}
.stat-card.warn::before{background:var(--warn)}
.stat-card.danger{background:linear-gradient(135deg,var(--ba-soft),var(--ba-soft));border-color:var(--ba-soft)}
.stat-card.danger::before{background:var(--bad)}
.stat-card .num{font-size:var(--fs-display);font-weight:700;color:var(--accent);line-height:1.1}
.stat-card .lbl{font-size:var(--fs-xs);color:var(--text-2);margin-top:3px}
.stat-card.warn .num{color:var(--warn)}.stat-card.danger .num{color:var(--bad)}
.bar-wrap{background:var(--panel);border-radius:var(--r-lg);padding:var(--sp-4);margin-bottom:var(--sp-3);box-shadow:var(--shadow-1)}
.bar-row{display:flex;align-items:center;margin:var(--sp-2) 0;font-size:var(--fs-sm)}
.bar-name{width:62px;color:var(--text);flex-shrink:0;font-weight:500}
.bar-track{flex:1;height:18px;background:var(--panel2);border-radius:var(--r-pill);overflow:hidden;display:flex;margin:0 10px}
.bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-d));height:100%;border-radius:var(--r-pill) 0 0 var(--r-pill)}
.bar-track > div{flex-shrink:0}
.bar-overdue{background:var(--bad);height:100%}
.bar-num{color:var(--muted);flex-shrink:0;font-size:var(--fs-sm);min-width:70px;text-align:right;position:relative}
.bar-marks{display:block;position:absolute;left:0;right:0;top:100%;margin-top:1px;font-weight:600;text-align:right}
.bar-marks{font-size:var(--fs-xs);white-space:normal;line-height:1.35}
.bar-marks > b{display:block}
.bar-wrap .bar-row{padding-bottom:37px}
.bar-row.has-marks{padding-bottom:37px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);border:2px solid var(--bg)}
*::-webkit-scrollbar-thumb:hover{background:var(--accent)}
.info-item.full{grid-column:1/-1}
.flow-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-2);margin:10px 0 14px}
.flow-grid{flex:0 0 auto}
.flow-grid .flow-step{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);margin:0;position:relative;padding:0 2px}
.flow-grid .flow-step .dot{width:10px;height:10px;border-radius:50%;background:var(--border-strong)}
.flow-grid .flow-step.done .dot{background:var(--good)}
.flow-grid .flow-step.done{color:var(--good)}
.flow-grid .flow-step.cur .dot{background:var(--bad);box-shadow:0 0 0 2px var(--panel), 0 0 0 3px var(--ba-soft);width:12px;height:12px}
.flow-grid .flow-step.cur{color:var(--bad);font-weight:600}
.flow-grid .flow-step::after{content:'→';position:absolute;right:-7px;top:0;color:var(--border-strong);font-size:var(--fs-xs)}
.flow-grid .flow-step:last-child::after{display:none}
.detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);margin:var(--sp-3) 0;padding:14px;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}
.detail-summary.c5{grid-template-columns:repeat(5,1fr)}
.detail-summary.c6{grid-template-columns:repeat(6,1fr)}
.sum-item{text-align:center}
.sum-label{font-size:var(--fs-xs);color:var(--muted);margin-bottom:4px}
.sum-value{font-size:var(--fs-lg);color:var(--text-2);font-weight:600}
.detail-card{background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px;margin-bottom:12px;box-shadow:var(--shadow-1)}
.detail-card-title{font-size:var(--fs-sm);color:var(--accent-text);font-weight:600;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.info-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px}
.kv{display:flex;flex-direction:column;gap:3px}
.kv.full{grid-column:1/-1;margin-top:4px}
.kv .k{font-size:var(--fs-xs);color:var(--muted)}
.kv .v{font-size:var(--fs-md);color:var(--text-2);word-break:break-word;line-height:1.5}
@media (max-width:900px){
  main{padding:var(--sp-3) var(--sp-2)}
  header{padding:var(--sp-3) var(--sp-4)}
  .card{padding:var(--sp-4)}
  .dash-grid{grid-template-columns:repeat(2,1fr)}
  .dbv-ov-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  body{overflow-x:clip;padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  input,select,textarea{font-size:var(--fs-lg)}
  .btn{min-height:var(--h-btn);font-size:var(--fs-md)}
  .btn-sm{min-height:40px;height:auto}
  .detail-summary{grid-template-columns:repeat(2,1fr)}
  .detail-summary.c5{grid-template-columns:repeat(3,1fr)}
  .detail-summary.c6{grid-template-columns:repeat(3,1fr)}
  .info-grid-3{grid-template-columns:repeat(2,1fr)}
  nav{position:fixed;left:0;right:0;bottom:0;z-index:50;gap:0;padding:0;border-bottom:none;border-top:1px solid var(--edge);background-color:var(--m-thick);-webkit-backdrop-filter:blur(22px) saturate(1.75);backdrop-filter:blur(22px) saturate(1.75);box-shadow:0 -8px 24px -12px var(--lift);overflow-x:visible}
  nav button{flex:1;min-width:0;padding:var(--sp-3) 2px;font-size:var(--fs-xs);min-height:44px;border-bottom:none;border-top:2px solid transparent}
  nav button.active{border-bottom:none;border-top-color:var(--accent)}
  nav button.nav-over{display:none}
  #moreNavMask{position:fixed;inset:0;z-index:65;background:rgba(0,0,0,.5);display:flex;align-items:flex-end}
  .more-nav-box{width:100%;background:var(--panel);border-top:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--sp-3) var(--sp-3) 78px;box-shadow:0 -8px 24px rgba(0,0,0,.45)}
  .more-nav-title{font-size:var(--fs-sm);color:var(--muted);padding:2px 4px 10px}
  #moreNavList button{width:100%;min-height:48px;display:flex;align-items:center;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-lg);font-family:inherit;padding:0 14px;margin-bottom:8px}
  #moreNavList button.active{border-color:var(--accent);color:var(--accent)}
  textarea{resize:none}
  .filter-panel.open{display:flex;flex-direction:column;gap:var(--sp-4)}
  .filter-row select,.filter-row input,.filter-date-group{width:100%;min-width:0;flex:none;max-width:none}
  .filter-date-group .date-trigger{width:100%;min-height:48px}
  .filter-row .btn,.filter-actions .btn{flex:1;min-width:0;width:100%}
  .stat-card{min-height:64px}
  .dash-grid{grid-template-columns:repeat(2,1fr)}
  .item-fields{display:grid;grid-template-columns:1fr 1fr}
  .date-trigger,select{min-height:44px}
  .sheet-actions{position:sticky;bottom:0;z-index:5;margin:14px calc(-1 * var(--sp-4)) 0;padding:var(--sp-3) var(--sp-4) calc(var(--sp-3) + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--border);box-shadow:0 -8px 24px rgba(0,0,0,.45)}
  .sheet-actions>.btn{flex:1;min-width:calc(50% - 4px)}
  .sheet>.btn-block{position:sticky;bottom:0;margin-top:12px}
  #modalBody.sheet-hot,#detailBody.sheet-hot{display:flex;flex-direction:column;overflow:hidden}
  #modalBody.sheet-hot>.sheet-body,#detailBody.sheet-hot>.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
  #modalBody.sheet-hot>.btn-block,#modalBody.sheet-hot>.btn--p,#detailBody.sheet-hot>.sheet-actions{position:relative;flex:0 0 auto}
  .overlay{align-items:stretch;padding:0;background:rgba(15,23,42,.5)}
  .sheet{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;border-top:none;box-shadow:none;padding:var(--sp-4);padding-top:calc(var(--sp-4) + env(safe-area-inset-top))}
  .date-pop{width:calc(100vw - 24px);max-width:320px}
  .date-pop .dp-cell{height:44px}
  header{padding:var(--sp-3) var(--sp-3);gap:8px}
  header h1{font-size:var(--fs-lg);letter-spacing:.2px}
  header .user{display:none}
  .app-logos{gap:7px}
  .app-logos img{height:22px}
  .app-logos img.logo-weeduo{height:18px;transform:translateY(-1px)}
  .app-logos .logo-sep{height:18px}
  #cloudBadge{margin-left:auto;font-size:var(--fs-xs);padding:1px var(--sp-2);max-width:42vw;overflow-wrap:anywhere}
  .flow-grid{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:16px 0 4px 0}
  .flow-grid .flow-step{min-width:52px}
  .card .row1{flex-wrap:wrap;row-gap:6px}
  .order-no{flex-shrink:0}
}
@media (max-width:380px){
  .card{padding:var(--sp-2)}
  .section-title{margin:var(--sp-2) var(--sp-1)}
  .info-grid-3{grid-template-columns:1fr}
  .detail-summary{grid-template-columns:1fr 1fr}
  .detail-summary.c5{grid-template-columns:repeat(3,1fr)}
  .detail-summary.c6{grid-template-columns:repeat(3,1fr)}
  .dash-grid{grid-template-columns:1fr}
  .dbv-ov-grid{grid-template-columns:1fr}
  .item-fields{grid-template-columns:1fr}
  nav button{font-size:var(--fs-xs);padding:8px 1px}
  .app-logos img{height:20px}
  .app-logos img.logo-weeduo{height:17px}
  .app-logos .logo-sep{height:16px}
  header h1{font-size:var(--fs-lg)}
  #cloudBadge{font-size:var(--fs-xs);padding:1px 5px;max-width:38vw}
  .bar-label{width:84px;font-size:var(--fs-xs)}
  .bar-pct{width:36px}
  .bar-rank{width:22px;height:22px;font-size:var(--fs-xs)}
}
.pm-layout{display:flex;gap:var(--sp-3);align-items:flex-start}
.pm-side{width:250px;flex-shrink:0;background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);border-radius:var(--r-lg);padding:var(--sp-2);position:sticky;top:70px}
.pm-side-head{display:flex;align-items:center;justify-content:space-between;padding:2px var(--sp-2) var(--sp-2);border-bottom:1px solid var(--border);margin-bottom:6px;color:var(--muted);font-size:var(--fs-xs)}
.pm-role{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);cursor:pointer;color:var(--text-2);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);border:1px solid transparent;font-size:var(--fs-sm)}
.pm-role:hover{background:var(--panel2)}
.pm-role.active{background:var(--accent-soft);color:var(--text);border-color:var(--accent)}
.pm-role .c{font-size:var(--fs-xs);color:var(--muted);flex-shrink:0}
.pm-role.pm-role-p{display:block}
.pm-role-main{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-width:0}
.pm-role-main>.n{white-space:normal;overflow-wrap:anywhere;font-size:var(--fs-xs);flex:1 1 auto;min-width:0;line-height:1.3}
.pm-role-main>.c{flex-shrink:0;margin-left:6px}
.pm-role-desc{font-size:var(--fs-xs);color:var(--muted);margin-top:3px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.pm-prof{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4)}
.pm-prof label{display:flex;align-items:center;gap:var(--sp-3);margin:0}
.pm-prof label>span{flex:0 0 48px;color:var(--muted);font-size:var(--fs-sm);text-align:justify;text-align-last:justify}
.pm-prof input{height:var(--h-ctl);font-size:var(--fs-md);flex:1;min-width:0}
.pm-empty{padding:var(--sp-4);color:var(--muted);font-size:var(--fs-sm)}
.pm-main{flex:1;min-width:0}
.pm-card{background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);box-shadow:var(--shadow-1);border-radius:var(--r-lg);margin-bottom:var(--sp-3);overflow:hidden}
.pm-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);flex-wrap:wrap}
.pm-title{font-size:var(--fs-lg);font-weight:500}
.pm-desc{color:var(--muted);font-size:var(--fs-xs);flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere}
.pm-msg{font-size:var(--fs-xs);color:var(--muted);margin-left:auto}
.pm-msg.err{color:var(--bad)}
.pm-gh{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-xs);font-weight:500;border-bottom:1px solid var(--border)}
.pm-gh a{cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.pm-row{display:flex;align-items:center;gap:var(--sp-3);padding:9px var(--sp-4);min-height:44px;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}
.pm-row[onclick]{cursor:pointer}
.pm-row[onclick]:hover{background:var(--panel2)}
.pm-row:last-child{border-bottom:none}
.pm-row.danger .lbl{color:var(--bad)}
.pm-row.hid{display:none}
.pm-row .pm-spacer,.pm-gh .pm-spacer{flex:1}
.pm-tgl{position:relative;width:38px;height:22px;border-radius:var(--r-pill);background:var(--chip);border:1px solid var(--border-strong);cursor:pointer;flex-shrink:0;transition:background var(--t-1),border-color var(--t-1)}
.pm-tgl::after{content:'';position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform var(--t-1),background var(--t-1)}
.pm-tgl.on{background:var(--accent);border-color:var(--accent)}
.pm-tgl.on::after{transform:translateX(16px);background:#fff}
.pm-tgl.busy{opacity:.5;pointer-events:none}
.pm-tg-txt{font-size:var(--fs-xs);color:var(--muted);margin-right:8px;flex-shrink:0;white-space:nowrap}
.pm-tg-txt.on{color:var(--accent)}
.pm-members{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4)}
.pm-mem{display:inline-flex;align-items:center;gap:var(--sp-1);border:1px solid var(--border);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-3);color:var(--muted);cursor:pointer;font-size:var(--fs-sm);user-select:none;transition:border-color var(--t-1),color var(--t-1)}
.pm-mem:hover{border-color:var(--border-strong);color:var(--text-2)}
.pm-mem.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.pm-mem.busy{opacity:.5;pointer-events:none}
@media (max-width:820px){
  .pm-layout{flex-direction:column}
  .pm-side{position:static;width:100%;display:flex;align-items:center;gap:var(--sp-2);overflow-x:auto;-webkit-overflow-scrolling:touch;padding:8px}
  .pm-side-head{border-bottom:none;margin-bottom:0;padding:0 2px;flex-shrink:0}
  .pm-side-head span{white-space:nowrap}
  .pm-role{flex-shrink:0;white-space:nowrap}
  .pm-role.pm-role-p{width:auto;min-width:136px;white-space:normal}
  .pm-role-desc{white-space:nowrap}
  .pm-prof{padding:var(--sp-3)}
  .pm-desc{flex-basis:100%;white-space:normal}
  .pm-mem{padding:6px 14px}
}
@media (max-width:380px){
  .pm-row{padding:10px var(--sp-3)}
  .pm-members{padding:var(--sp-3)}
}
.pm-tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-3);background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);box-shadow:var(--shadow-1);border-radius:var(--r-lg);padding:var(--sp-1);width:fit-content;max-width:100%}
.pm-tab{border:1px solid transparent;background:transparent;color:var(--muted);padding:7px 18px;border-radius:var(--r-md);cursor:pointer;font-size:var(--fs-sm);font-family:inherit;white-space:nowrap}
.pm-tab:hover{color:var(--text-2)}
.pm-tab.active{background:var(--accent);color:var(--on-accent);font-weight:500}
.pm-addperson{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--panel2);display:flex;flex-direction:column;gap:var(--sp-3)}
.pm-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-2) var(--sp-3)}
.pm-form-grid label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--muted)}
.pm-form-grid input,.pm-form-grid select{height:var(--h-ctl);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:0 var(--sp-3);color:var(--text);font-family:inherit}
.pm-form-grid input:focus,.pm-form-grid select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
.pm-form-grid .btn{height:var(--h-ctl)}
@media (max-width:820px){
  .pm-form-grid input,.pm-form-grid select{height:40px;min-height:40px}
  .cap-table.cap-steps td input.st-name,
  .cap-table.cap-steps td input.cp-input,
  .cap-table.cap-steps td select{height:40px;min-height:40px}
}
.cap-table-wrap{overflow-x:auto}
.cap-addrow{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;height:38px;
  margin-top:var(--sp-2);background:transparent;border:1px dashed var(--border-strong);border-radius:var(--r-sm);
  color:var(--text-2);font-size:var(--fs-md);font-family:inherit;cursor:pointer;
  transition:border-color var(--t-1),color var(--t-1),background var(--t-1)}
.cap-addrow:hover{border-color:var(--accent);color:var(--accent)}
.cap-addrow:active{background:var(--panel2)}
.cap-addrow:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
@media (max-width:820px){.cap-addrow{height:44px;min-height:44px}}
.cap-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.cap-table th,.cap-table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);text-align:center}
.cap-table th{background:var(--panel2);color:var(--muted);font-weight:500;font-size:var(--fs-xs);position:sticky;top:0;z-index:1}
.cap-table td{color:var(--text);vertical-align:middle}
.sys-ok{animation:sys-ok .9s ease-out}
@keyframes sys-ok{0%{background:var(--ok-soft)}100%{background:transparent}}
@media (max-width:820px){
  .pm-tabs{width:100%}
  .pm-tab{flex:1;text-align:center}
}
@media (max-width:820px){
  .pm-layout{flex-direction:column;align-items:stretch}
  .pm-side{width:100%;position:static;flex-direction:row;flex-wrap:wrap;gap:var(--sp-2);border-radius:var(--r-md);padding:var(--sp-2);display:flex;align-items:center}
  .pm-side-head{width:100%;flex:none;margin-bottom:2px}
  .pm-role{flex:1 1 calc(50% - 8px);max-width:none}
  .pm-main{width:100%}
}
@media (max-width:560px){
  .pm-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
  .pm-tab{flex:none;padding:var(--sp-2) var(--sp-1);white-space:nowrap}
  .pm-role{flex:1 1 100%}
  .cap-table{min-width:600px}
}
.st-card{padding:var(--sp-3)}
.st-top{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.st-name{flex:1;min-width:0;font-size:var(--fs-lg);font-weight:600;color:var(--text);background:transparent;border:1px dashed transparent;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-2);font-family:inherit}
.st-name:hover,.st-name:focus{border-color:var(--accent);background:var(--panel);outline:none}
.st-ena{display:inline-flex;align-items:center;gap:var(--sp-2);vertical-align:middle}
.cap-table .st-ena,.cap-table .st-ena .sys-lab{white-space:nowrap}
.cap-table td.cap-ops{white-space:nowrap}
.cap-table.cap-steps{table-layout:fixed;min-width:780px}
.cap-table.cap-steps th:nth-child(1){width:156px}
.cap-table.cap-steps th:nth-child(2){width:80px}
.cap-table.cap-steps th:nth-child(3){width:148px}
.cap-table.cap-steps th:nth-child(4){width:96px}
.cap-table.cap-steps th:nth-child(6){width:76px}
.cap-table.cap-steps th,.cap-table.cap-steps td{padding:5px 10px}
.cap-table.cap-steps td.cap-ways .ways{display:flex;gap:var(--sp-2);align-items:center}
.cap-table.cap-steps td.cap-ways label{flex:1;min-width:0;display:inline-flex;align-items:center;
  justify-content:center;gap:var(--sp-1);font-size:var(--fs-xs);margin:0;height:30px;white-space:nowrap}
.cap-table.cap-steps td input.st-name{
  width:100%!important;min-width:0;height:30px;
  background:var(--panel)!important;border:1px solid var(--border)!important;
  border-radius:var(--r-sm);padding:0 var(--sp-2);font-size:var(--fs-sm);font-weight:500;box-sizing:border-box;
}
.cap-table.cap-steps td input.st-name:hover,
.cap-table.cap-steps td input.st-name:focus{border-color:var(--accent)!important}
#view-system .sys-row .btn,#view-system .sys-add .btn,#view-system .sys-foot .btn,
:is(#view-dashboard,#view-perf) .fbar .btn,#view-board .fbar .btn{
  height:var(--h-dense);padding:0 var(--sp-3);font-size:var(--fs-xs);border-radius:var(--r-sm);line-height:1}
.cap-table.cap-steps td label{height:30px}
.cap-table.cap-steps td label input[type=checkbox]{width:15px!important;height:15px!important;margin:0;vertical-align:middle}
.st-tbl{width:auto!important;min-width:96px;font-size:var(--fs-sm)}
.toast-host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;z-index:9999;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);pointer-events:none}
.toast{pointer-events:auto;min-width:280px;max-width:420px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--r-md);box-shadow:0 12px 32px rgba(0,0,0,.4);padding:14px 18px;display:flex;align-items:center;gap:var(--sp-3);animation:toast-in .18s ease-out;font-size:var(--fs-sm)}
.toast.ok{border-left-color:var(--good)}
.toast.warn{border-left-color:var(--warn)}
.toast.err{border-left-color:var(--bad)}
.toast .ico{width:18px;height:18px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:var(--fs-xs);color:var(--on-accent)}
.toast.ok .ico{background:var(--good);color:#0a1a0a}
.toast.warn .ico{background:var(--warn);color:#1a1208}
.toast.err .ico{background:var(--bad);color:#fff}
.toast .msg{flex:1;line-height:1.5}
.toast .x{cursor:pointer;color:var(--muted);font-size:var(--fs-xl);line-height:1;padding:0 4px}
.toast .x:hover{color:var(--text)}
@keyframes toast-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.st-card{padding:8px 10px!important}
.st-row{display:flex;align-items:center;gap:8px}
.st-name{flex:1;min-width:0;font-size:var(--fs-lg);font-weight:600;color:var(--text);background:transparent;border:1px dashed transparent;border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2);font-family:inherit}
.st-name:hover,.st-name:focus{border-color:var(--accent);background:var(--panel);outline:none}
.st-row2{display:flex;align-items:center;gap:var(--sp-2);margin-top:6px}
.st-row3{display:flex;align-items:center;gap:var(--sp-2);margin-top:6px}
.st-row3 .st-lb{flex:0 0 auto;font-size:var(--fs-sm);color:var(--muted)}
.st-row3 .st-name{flex:1;min-width:0;height:44px}
.st-card .st-role{flex:0 0 118px;min-width:0;height:44px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);padding:0 var(--sp-2);font-family:inherit;box-sizing:border-box}
.st-card .st-role:focus{outline:none;border-color:var(--accent)}
.st-keys{display:flex;gap:var(--sp-2);flex:1;min-width:0}
.st-keys label{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:var(--sp-1);
  height:44px;border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--muted);box-sizing:border-box}
.st-keys label:has(input:checked){background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-text)}
.st-del{flex:0 0 auto;height:44px;padding:0 var(--sp-3);border:1px solid var(--border);background:transparent;
  color:var(--muted);border-radius:var(--r-md);font-size:var(--fs-xs);font-family:inherit;cursor:pointer}
.st-tbl{min-width:88px;font-size:var(--fs-sm)}
.fl-card{padding:var(--sp-3) var(--sp-3)!important;margin-bottom:8px}
.fl-head{display:flex;align-items:center;gap:10px}
.fl-name{font-size:var(--fs-md);white-space:normal;overflow-wrap:anywhere}
.flow-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.flow-pills .pill{font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-3);display:inline-flex;align-items:center;gap:6px}
.flow-pills .pill i{cursor:pointer;color:var(--muted);font-style:normal}
.flow-pills .pill i:hover{color:var(--bad)}
.flow-pills select{font-size:var(--fs-xs);height:26px;background:var(--panel);border:1px dashed var(--border-strong);border-radius:var(--r-sm);color:var(--muted);padding:0 var(--sp-2);font-family:inherit}
.flow-pills select{width:auto;flex:0 0 auto;min-width:0}
.cap-table tbody tr.cap-row td{vertical-align:middle;padding:var(--sp-2) var(--sp-2);height:42px;border-bottom:1px solid rgba(255,255,255,.04)}
.cap-table tbody tr.cap-row:hover{background:var(--accent-soft)}
.cap-table th{font-size:var(--fs-xs);font-weight:500;letter-spacing:.02em;text-transform:none;padding:8px 10px}
.cap-table input.cp-input,.cap-table select{height:30px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 var(--sp-2);color:var(--text);font-family:inherit;font-size:var(--fs-sm);box-sizing:border-box}
.cap-table select.cond{width:120px;margin-right:6px}
.cap-table input.cond{width:80px;text-align:right;margin-right:6px}
.sys-layout{display:grid;grid-template-columns:184px minmax(0,1fr);gap:var(--sp-5);align-items:start}
.sys-side{background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);box-shadow:var(--shadow-1);border-radius:var(--r-lg);padding:var(--sp-2);position:sticky;top:70px}
.sys-g{font-size:var(--fs-xs);color:var(--muted);letter-spacing:.04em;padding:10px 10px 5px}
.sys-g:first-child{padding-top:4px}
.sys-block{margin-bottom:2px}
.sys-items{display:block}
.sys-item{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--text-2);font-family:inherit;font-size:var(--fs-sm);padding:7px var(--sp-3);border-radius:var(--r-md);cursor:pointer;transition:background var(--t-1),color var(--t-1)}
.sys-item:hover{background:var(--panel2);color:var(--text)}
.sys-item.active{background:var(--accent-soft);color:var(--accent);font-weight:500}
.sys-body{min-width:0}
.sys-card{background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);
  box-shadow:var(--shadow-1);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-4) var(--sp-5);min-width:0}
.sys-sec{font-size:var(--fs-lg);font-weight:500;margin-bottom:2px}
.sys-sec-desc{font-size:var(--fs-xs);color:var(--muted);line-height:1.6;margin-bottom:var(--sp-3)}
.sys-list{background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);box-shadow:var(--shadow-1);border-radius:var(--r-lg);overflow:hidden}
.sys-row{display:flex;align-items:center;gap:var(--sp-3);padding:9px var(--sp-4);border-bottom:1px solid var(--border)}
.sys-tblcfg{display:block;width:100%}
.sys-tblcfg .sys-tbl-dim{display:flex;gap:12px;align-items:center}
.sys-tblcfg .sys-tbl-dim input{width:58px;text-align:center}
.sf-tbl-grid{display:grid;gap:6px;margin:8px 0 4px;padding:8px;
  overflow-x:auto;overscroll-behavior-x:contain;
  border:1px dashed var(--border);border-radius:var(--r-md);background:var(--m-ultra)}
.sf-tbl-grid input{width:100%;min-width:72px;font-size:var(--fs-sm)}
.sys-row2{display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);
  border-bottom:1px solid var(--border);
  flex-wrap:wrap}
.sys-link{flex:1;min-width:0;background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-md);
  padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}
.sys-link-head{font-size:var(--fs-xs);font-weight:600;color:var(--accent);letter-spacing:.03em}
.sys-link-row{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.sys-link-when{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;min-width:88px;padding-top:5px}
.sys-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1;min-width:0}
.sys-tag{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;
  background:rgba(127,127,127,.14);border:1px solid var(--border);
  border-radius:13px;font-size:var(--fs-sm);color:var(--text);white-space:nowrap}
.sys-tag-x{cursor:pointer;font-style:normal;color:var(--muted);font-size:14px;line-height:1;padding:0 1px}
.sys-tag-x:hover{color:var(--warn)}
.sys-tag-inp{height:26px;min-width:130px;flex:0 1 160px;background:transparent;
  border:1px dashed var(--border);border-radius:13px;color:var(--text);
  font-family:inherit;font-size:var(--fs-sm);padding:0 9px}
.sys-tag-inp:focus{outline:none;border-color:var(--accent);border-style:solid}
.sys-chks{display:flex;flex-wrap:wrap;gap:6px 14px;flex:1;min-width:0}
.sys-chk{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm);
  color:var(--text);cursor:pointer;white-space:nowrap}
.sys-chk input{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}
.sys-chk-k{font-size:var(--fs-xs);color:var(--muted)}
.sys-muted{font-size:var(--fs-xs);color:var(--muted)}
.sys-row:last-child{border-bottom:none}
.sys-row input[type=text],.sys-row input:not([type]){flex:1;min-width:0;height:var(--h-dense);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-sm);padding:0 9px}
.sys-row input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
.sys-row .sys-lab{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}
.sys-row>.sys-lab:first-child{flex:0 0 auto;width:48px;text-align:justify;text-align-last:justify}
.sys-row select{height:var(--h-dense);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-sm);padding:0 var(--sp-2);min-width:0}
.sys-row select:focus{outline:none;border-color:var(--accent)}
.sys-row select:has(option[value=""]:checked),.sys-add select:has(option[value=""]:checked){color:var(--muted)!important}
.sys-row .grow{flex:1;min-width:0}
.sys-row .rchips,.sys-add .rchips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  flex:0 1 auto;min-width:0}
.sys-add .rchips{flex:0 0 auto}
.sys-row .rchip,.sys-add .rchip{font-size:var(--fs-xs);line-height:1;padding:6px 10px;
  border-radius:var(--r-pill);border:1px solid var(--border);background:var(--panel2);
  color:var(--muted);cursor:pointer;white-space:nowrap;user-select:none;
  transition:background var(--t-1),color var(--t-1),border-color var(--t-1)}
.sys-row .rchip:hover,.sys-add .rchip:hover{border-color:var(--edge);color:var(--text-2)}
.sys-row .rchip.on,.sys-add .rchip.on{background:var(--accent-soft);border-color:var(--accent);
  color:var(--accent-text);font-weight:600}
.sys-row .rchip.off-brand,.sys-add .rchip.off-brand{border-style:dashed;border-color:var(--warn);
  color:var(--warn);background:transparent;font-weight:600}
.sys-row .rchip:focus-visible,.sys-add .rchip:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.sys-row .rchips.empty::after,.sys-add .rchips.empty::after{content:'（品牌管理里没有启用的品牌）';
  font-size:var(--fs-xs);color:var(--muted)}
.sys-row .rg{display:flex;align-items:center;gap:var(--sp-2);flex:1 1 auto;min-width:0}
.sys-row .rg select{flex:1 1 auto;min-width:0}
.sys-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--panel2);border-top:1px solid var(--border)}
.sys-add{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--panel2);border-top:1px solid var(--border)}
.sys-add input{flex:1 1 auto;min-width:0;height:var(--h-dense);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-sm);padding:0 9px}
.sys-add input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
.sys-add select{flex:1 1 auto;min-width:0;height:var(--h-dense);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-sm);padding:0 8px}
.sys-add select:focus{outline:none;border-color:var(--accent)}
.sys-add .btn,.sys-foot .btn{width:auto;min-width:auto;margin:0;flex:0 0 auto;height:var(--h-dense)}
.sys-empty{padding:22px var(--sp-4);text-align:center;color:var(--muted);font-size:var(--fs-sm)}
.sys-del{border:none;background:transparent;color:var(--bad);font-family:inherit;font-size:var(--fs-xs);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);white-space:nowrap}
.sf-find{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sf-find input{flex:0 1 320px;min-width:180px;height:var(--h-ctl);padding:0 var(--sp-3);
  border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel2);color:var(--text);
  font-size:var(--fs-md);font-family:inherit}
.sf-find input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
.sf-find-n{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:820px){ .sf-find input{flex:1 1 100%;min-height:44px} }
.sf-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.sf-chip{display:inline-flex;align-items:center;gap:var(--sp-2);height:var(--h-dense);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--panel);color:var(--muted);font-family:inherit;font-size:var(--fs-xs);cursor:pointer}
.sf-chip:hover{color:var(--text);border-color:var(--accent)}
.sf-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.sf-chip .n{font-variant-numeric:tabular-nums;opacity:.6}
.sf-chip.on .n{opacity:1}
.sf-chip .n.zero{opacity:.35}
.sf-tag{font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--border);border-radius:var(--r-sm);padding:1px var(--sp-2);white-space:nowrap}
.sf-branches{display:inline-flex;gap:var(--sp-1);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-1);margin-bottom:6px}
.sf-br{display:inline-flex;align-items:center;gap:var(--sp-2);height:26px;padding:0 14px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--muted);font-family:inherit;font-size:var(--fs-xs);cursor:pointer}
.sf-br:hover{color:var(--text)}
.sf-br.on{background:var(--panel);color:var(--text);box-shadow:var(--shadow-1)}
.sf-br .n{font-variant-numeric:tabular-nums;opacity:.6}
.sf-br.on .n{opacity:1}
.sf-br .n.zero{opacity:.35}
.sf-br-tip{margin:0 0 var(--sp-3);font-size:var(--fs-xs);color:var(--muted);line-height:1.5}
.sf-sep{opacity:.45;margin:0 2px}
.sf-move{flex:0 0 auto;height:var(--h-dense);padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:transparent;color:var(--muted);font-family:inherit;font-size:var(--fs-xs);cursor:pointer;white-space:nowrap}
.sf-move:hover{color:var(--accent);border-color:var(--accent)}
.sf-add-to{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}
.sf-req-off{display:flex;flex-direction:column;gap:var(--sp-1);padding:10px var(--sp-4)}
.sf-req-off-t{font-size:var(--fs-sm);color:var(--muted)}
.sf-req-off-h{font-size:var(--fs-xs);color:var(--muted);opacity:.8}
.sf-req{background:var(--panel);border:1px solid var(--border);border-top-color:var(--hair);box-shadow:var(--shadow-1);border-radius:var(--r-lg);margin-bottom:var(--sp-3);overflow:hidden}
.sf-req-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}
.sf-req-row:last-child{border-bottom:none}
.sf-req-t{font-size:var(--fs-sm);color:var(--text);white-space:nowrap;flex:0 0 auto;width:130px;text-align:justify;text-align-last:justify}
.sf-due-wrap{display:flex;align-items:center;gap:var(--sp-2);min-width:0}
.sf-due-note{font-size:var(--fs-xs);color:var(--muted)}
.sf-due-none{font-size:var(--fs-xs);color:var(--danger)}
.sys-row select[data-f="kind"]{flex:0 0 auto;width:120px}
.sys-add select#sfNewKind{flex:0 0 auto;width:120px}
.sys-add .sys-lab{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}
@media (max-width:820px){
  .sf-req-row{flex-wrap:wrap;gap:8px}
  .sf-due-wrap{flex:1 1 100%;flex-wrap:wrap}
  .sys-row{flex-wrap:wrap}
  .sys-row input[data-f="label"]{flex:1 1 100%}
  .sys-row select[data-f="kind"]{flex:1 1 auto;width:auto;min-width:110px}
}
.sys-rule{flex:0 0 auto;width:136px;height:var(--h-dense);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-xs);padding:0 var(--sp-2);min-width:0}
.sys-rule:focus{outline:none;border-color:var(--accent)}
.sys-row .sys-del,.sys-row .btn{
  height:var(--h-dense);display:inline-flex;align-items:center;justify-content:center;
}
.sys-del:hover{background:var(--ba-soft)}
.sys-seq{display:flex;flex-wrap:wrap;gap:var(--sp-1);flex:1;min-width:0}
.sys-seq .pill{font-size:var(--fs-xs);padding:2px var(--sp-2);color:var(--muted)}
.sys-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-3)}
@media (max-width:820px){
  .sys-layout{grid-template-columns:1fr;gap:var(--sp-3)}
  .sys-side{position:static;display:block;padding:8px}
  .sys-block{margin-bottom:12px}
  .sys-block:last-of-type{margin-bottom:0}
  .sys-g{display:block;font-size:var(--fs-xs);padding:0 0 var(--sp-2);margin:0;border-left:none;color:var(--muted)}
  .sys-items{display:flex;flex-wrap:wrap;gap:6px}
  .sys-item{flex:0 0 auto;white-space:nowrap;background:var(--panel2);padding:7px 14px;border-radius:var(--r-pill)}
  .sys-item.active{background:var(--accent);color:var(--on-accent)}
  .sys-row{flex-wrap:wrap;padding:var(--sp-3) var(--sp-3);gap:8px}
  .sys-list .nt-row{grid-template-columns:1fr;gap:6px}
  .sys-list .nt-row .nt-name{justify-content:flex-start}
  .sys-row input:not([type]){flex:1 1 100%}
  .sys-row .grow{flex:1 1 100%}
  .sys-row .rg{flex:1 1 100%}
  .sys-row select[data-f="rule"],.sys-row select[data-f="rule"] + .sel-trigger{max-width:200px!important}
  .sys-row select[data-f="cond"] + .sel-trigger .sel-ico{width:10px;height:10px}
  .sys-row .rchips,.sys-add .rchips{flex:1 1 100%}
  .sys-row .rchip,.sys-add .rchip{padding:12px 14px;font-size:var(--fs-sm)}
  .sys-foot{padding:var(--sp-3)}
  .sys-add{flex-wrap:wrap}
  .sys-add input,.sys-add select{flex:1 1 100%}
  .sys-add .btn,.sys-foot .btn{margin-left:auto}
}
@media (max-width:380px){
  .sys-row{padding:9px 10px}
}
@media (max-width:820px){
  input,select,textarea{font-size:var(--fs-lg)!important}
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  select,textarea,
  .date-trigger,.cap-input,.sys-num,.st-name{min-height:44px}
  #view-order .oe-ro{min-height:44px}
  input[type=checkbox],input[type=radio],
  .item input[type=checkbox],.item input[type=radio]{width:20px!important;height:20px!important;flex:none}
  .login-remember input[type=checkbox]{width:20px!important;height:20px!important}
  label:has(> input[type=checkbox]),label:has(> input[type=radio]){
    min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);
  }
  .my-anom .ma-item{min-height:44px;display:flex;align-items:center}
  .pm-role{min-height:44px}
  .sys-item{width:auto;min-height:44px;display:inline-flex;align-items:center}
  .sys-row .sys-del{min-height:40px;height:auto}
  .sys-add input,.sys-add select{height:44px}
  .sys-seq{flex:1 1 100%}
  .sys-seq .pill{max-width:100%;overflow-wrap:anywhere}
  .pm-tab{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .pm-tgl::before{content:'';position:absolute;left:-4px;right:-4px;top:-11px;bottom:-11px}
  .pm-row a,.pm-gh a,.pm-mem{
    min-height:44px;display:inline-flex;align-items:center;padding-left:4px;padding-right:4px;
  }
  .pm-mem{padding-left:11px;padding-right:11px}
  .date-pop .dp-nav{width:44px;height:44px}
  .date-pop .dp-foot button{min-height:44px}
  .bar-row.bar-clickable{min-height:44px}
  .flow-pills .pill{padding-right:2px}
  .flow-pills .pill i{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;margin-left:2px;font-size:var(--fs-xl);line-height:1;
  }
}
.pf-wrap{max-width:none}
.pf-grp{margin-bottom:18px}
.pf-gh{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.pf-gn{font-size:var(--fs-lg);font-weight:600;color:var(--text)}
.pf-gm{font-size:var(--fs-xs);color:var(--muted)}
.pf-gm b{color:var(--text-2)}
.pf-card{cursor:pointer;padding:12px 14px;margin-bottom:9px;transition:border-color var(--t-1)}
.pf-card:hover{border-color:var(--accent)}
.pf-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pf-who{font-size:var(--fs-lg);font-weight:600;color:var(--text)}
.pf-caret{margin-left:auto;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}
.pf-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px var(--sp-3);margin-top:12px}
.pf-kv .pf-k{display:block;font-size:var(--fs-xs);color:var(--hint)}
.pf-kv .pf-v{display:block;font-size:19px;font-weight:600;line-height:1.15;color:var(--text);
  font-variant-numeric:tabular-nums;margin-top:2px}
.pf-kv .pf-v.good{color:var(--good)}.pf-kv .pf-v.warn{color:var(--warn)}.pf-kv .pf-v.bad{color:var(--bad)}
.pf-kv .pf-v .pf-u{font-size:var(--fs-xs);font-weight:400;color:var(--muted);margin-left:3px}
.pf-kv .pf-prev{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}
.pf-drill{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.pf-card.pf-open .pf-drill{display:block}
.pf-grid{display:flex;flex-direction:column;gap:15px}
.pf-seg{min-width:0}
@media (max-width:820px){.pf-grid{grid-template-columns:minmax(0,1fr)}}
.pf-dt{font-size:var(--fs-xs);color:var(--muted);margin:11px 0 7px}
.pf-dt:first-child{margin-top:0}
.pf-dt b{color:var(--text-2)}
.pf-rng{color:var(--muted);font-size:var(--fs-xs);margin-left:8px;font-weight:400}
.pf-cmp-row{padding:7px 0}
.pf-cmp-n{display:block;font-size:var(--fs-xs);color:var(--hint);margin-bottom:5px}
.pf-cmp-line{display:flex;align-items:center;gap:10px}
.pf-cmp-line+.pf-cmp-line{margin-top:4px}
.pf-cmp-line .lb{flex:0 0 auto;font-size:var(--fs-xs);color:var(--muted)}
.pf-cmp-bar{flex:1 1 auto;min-width:0;display:block;height:9px;border-radius:var(--r-xs);background:var(--track);overflow:hidden}
.pf-cmp-bar>i{display:block;height:100%;border-radius:var(--r-xs)}
.pf-cmp-v{flex:0 0 auto;min-width:78px;text-align:right;font-size:var(--fs-xs);color:var(--muted);
  white-space:nowrap;font-variant-numeric:tabular-nums}
.pf-cmp-line.now .pf-cmp-v{color:var(--text-2);font-weight:500}
.pf-cmp-full{display:block;font-size:var(--fs-xs);color:var(--muted);line-height:1.5;white-space:normal}
.pf-dr{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr) 132px;gap:0 var(--sp-3);align-items:center;padding:5px 0}
.pf-dr .pf-s{font-size:var(--fs-sm);color:var(--text-2)}
.pf-dr .pf-s .pf-nn{color:var(--muted);font-size:var(--fs-xs)}
.pf-dr .pf-s .pf-borrow{display:inline-block;margin-left:5px;padding:0 5px;border-radius:var(--r-xs);
  background:var(--wa-soft);color:var(--warn);font-size:var(--fs-xs);line-height:16px;
  white-space:nowrap;vertical-align:1px}
.pf-dr{grid-template-columns:minmax(0,220px) minmax(0,1fr) 132px}
.pf-dr .pf-b{height:8px;border-radius:var(--r-xs);background:var(--track);position:relative}
.pf-dr .pf-b>i{display:block;height:100%;border-radius:var(--r-xs);background:var(--good)}
.pf-dr.warn .pf-b>i{background:var(--warn)}
.pf-dr.bad .pf-b>i{background:var(--bad)}
.pf-dr .pf-b .pf-mk{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text);opacity:.65}
.pf-dr .pf-t{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 7px;font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums}
.pf-dr .pf-t .pf-v{white-space:nowrap}
.pf-dr .pf-t .pf-nn{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}
.pf-hbars{display:flex;align-items:flex-end;gap:5px;margin-top:6px}
.pf-hb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}
.pf-hb i{display:block;width:66%;max-width:20px;border-radius:var(--r-xs) 3px 0 0;background:var(--accent);opacity:.85}
.pf-hb.eve i{background:var(--warn)}
.pf-hb b{font-size:var(--fs-xs);font-weight:400;color:var(--muted)}
.pf-empty{padding:var(--sp-6) var(--sp-3);text-align:center;color:var(--text-2);font-size:var(--fs-sm)}
.pf-empty-none{color:var(--text-2)}
.pp-wrap{max-width:none}
.pp-head{font-size:var(--fs-lg);font-weight:600;color:var(--text);margin-bottom:4px}
.pp-empty{padding:var(--sp-6) var(--sp-3);text-align:center;color:var(--text-2);font-size:var(--fs-sm)}
.pp-table{border:1px solid var(--edge);border-radius:var(--r-xl);overflow:hidden;background-color:var(--panel)}
.pp-tr{display:grid;grid-template-columns:1.2fr 2fr 140px;align-items:center;gap:var(--sp-2);padding:var(--sp-3) 13px;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}
.pp-tr:last-child{border-bottom:none}
.pp-th{background:var(--panel2);color:var(--muted);font-size:var(--fs-xs);font-weight:500;padding:8px 13px}
.pp-c1{color:var(--text);font-weight:500;overflow-wrap:anywhere;min-width:0;text-align:center}
.pp-c1 .pp-off{font-size:var(--fs-xs);font-weight:400;color:var(--muted);background:var(--panel2);border:1px solid var(--border);border-radius:var(--r-pill);padding:1px 7px;margin-left:6px;white-space:nowrap;vertical-align:middle}
.pp-c2{color:var(--muted);overflow-wrap:anywhere;font-size:var(--fs-xs);min-width:0;text-align:center}
.pp-c3{display:flex;align-items:center;justify-content:center;gap:9px}
.pp-state{font-size:var(--fs-xs);white-space:nowrap}
.pp-state.on{color:var(--good)}
.pp-state.off{color:var(--muted)}
.pp-switch{position:relative;flex:none;width:40px;height:22px;border:none;border-radius:var(--r-pill);background:#6b7480;cursor:pointer;transition:background var(--t-1);padding:0}
.pp-switch::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform var(--t-1)}
.pp-switch.on{background:#3ecf8e}
.pp-switch.on::after{transform:translateX(18px)}
.pp-switch.off{background:#6b7480}
.pp-foot{margin-top:12px;font-size:var(--fs-xs);color:var(--muted)}
@media (max-width:820px){
  .pf-gh{gap:6px}
  .pf-card{padding:10px 11px}
  .pf-caret{display:none}
  .pf-meta{grid-template-columns:repeat(2,1fr);gap:9px 10px}
  .pf-cmp-row{padding:6px 0}
  .pf-cmp-bar{height:8px}
  .pf-cmp-v{min-width:64px}
  .pf-dr{display:block;padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}
  .pf-dr:last-child{border-bottom:none}
  .pf-dr .pf-b{display:none}
  .pf-dr .pf-s{display:block}
  .pf-dr .pf-t{display:block;margin-top:2px}
  .pf-hbars{gap:4px}
  .pf-hb i{max-width:none;width:74%}
  .pp-th{display:none}
  .pp-tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'n s' 'm s';gap:2px var(--sp-3);padding:10px 12px}
  .pp-c1{grid-area:n}
  .pp-c2{grid-area:m}
  .pp-c3{grid-area:s}
}
@media (max-width:820px){
  .toast .x{min-width:24px;min-height:24px;display:inline-flex;align-items:center;justify-content:center}
  .pp-switch::before{content:'';position:absolute;left:-2px;right:-2px;top:-4px;bottom:-4px}
  .todo-badge{min-height:24px}
  .fu-bar .fu-btn{min-height:24px}
  .tl-link{min-height:24px;display:inline-flex;align-items:center}
}
.bg-layer{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bg-layer i{position:absolute;aspect-ratio:1;border-radius:50%;filter:blur(76px)}
.bg-layer i:nth-child(1){width:clamp(240px,41%,900px);background:var(--aura1);left:-9%;top:-20%;opacity:var(--aura-a)}
.bg-layer i:nth-child(2){width:clamp(220px,37%,820px);background:var(--aura2);right:-8%;top:2%;opacity:var(--aura-b)}
.bg-layer i:nth-child(3){width:clamp(280px,48%,960px);background:var(--aura3);left:30%;bottom:-43%;opacity:var(--aura-c)}
.bg-layer::before{content:"";position:absolute;inset:0;opacity:var(--grain);mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (prefers-reduced-transparency:reduce){
  html:not([data-glass="force"]) header,html:not([data-glass="force"]) nav,
  html:not([data-glass="force"]) .bsplit-r{-webkit-backdrop-filter:none;backdrop-filter:none}
  html:not([data-glass="force"]) header,html:not([data-glass="force"]) nav{background-color:var(--panel2)}
  html:not([data-glass="force"]) .bg-layer i:nth-child(1){opacity:calc(var(--aura-a) * .6)}
  html:not([data-glass="force"]) .bg-layer i:nth-child(2){opacity:calc(var(--aura-b) * .6)}
  html:not([data-glass="force"]) .bg-layer i:nth-child(3){opacity:calc(var(--aura-c) * .6)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  header,nav{background-color:var(--panel2)}
}
@media (forced-colors:active){
  .bg-layer{display:none}
  header,nav,.bsplit-r{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:Canvas;border-color:CanvasText;box-shadow:none}
}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text) 20%,transparent);
  border-radius:var(--r-md);border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text) 34%,transparent);
  background-clip:content-box}
::-webkit-scrollbar-corner{background:transparent}
#detpane{padding-right:10px}
.gl{position:relative;background-color:var(--m-thin);
  background-image:linear-gradient(90deg,transparent,var(--rim-line) 12%,var(--rim-line) 88%,transparent);
  background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;
  -webkit-backdrop-filter:blur(18px) saturate(1.8);backdrop-filter:blur(18px) saturate(1.8);
  border:1px solid var(--edge);
  box-shadow:inset 1px 0 0 var(--rim-side),inset -1px 0 0 var(--rim-side),
    inset 0 -1px 0 var(--rim-bot),0 16px 40px -18px var(--lift)}
.m-thin{background-color:var(--m-thin);-webkit-backdrop-filter:blur(18px) saturate(1.8);backdrop-filter:blur(18px) saturate(1.8)}
@media (prefers-reduced-transparency:reduce){
  html:not([data-glass="force"]) .gl{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:var(--panel2)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .gl{background-color:var(--panel2)}
}
#app{display:flex;align-items:stretch}
.sidenav{flex:0 0 204px;width:204px;position:sticky;top:14px;align-self:flex-start;
  height:calc(100vh - 28px);margin:14px 0 14px 14px;box-sizing:border-box;
  border-radius:var(--r-xl);padding:13px 11px;display:flex;flex-direction:column}
.sn-brand{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-1) 13px;
  border-bottom:1px solid var(--edge);margin-bottom:10px}
.sn-logo{width:32px;height:32px;border-radius:var(--r-lg);flex:0 0 auto;
  background:linear-gradient(140deg,var(--accent),#a78bfa);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 4px 12px -4px var(--accent);
  display:grid;place-items:center;font:800 var(--fs-sm)/1 var(--mono);color:#fff}
.sn-bt{margin-right:auto;min-width:0;overflow:hidden}
.sn-bt b{font-size:var(--fs-sm);font-weight:600;display:block;letter-spacing:-.01em;white-space:nowrap;
  color:var(--gl-ink,#eef1f7)}
.sn-bt span{font-size:var(--fs-xs);white-space:nowrap}
.sn-me{display:flex;align-items:center;gap:var(--sp-3);padding:11px var(--sp-2) var(--sp-1);
  border-top:1px solid var(--edge);margin-top:8px;border-radius:var(--r-md)}
.sn-av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
  font:700 var(--fs-xs)/1 var(--mono);color:#fff;
  background:linear-gradient(140deg,#a78bfa,var(--accent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}
.sn-mt{min-width:0;overflow:hidden;white-space:nowrap;flex:1 1 auto}
.sn-mt b{font-size:var(--fs-xs);font-weight:600;display:block;white-space:nowrap;
  color:var(--gl-ink,#eef1f7)}
.sn-mt #snLeaveDot{font-size:var(--fs-xs);color:var(--warn);white-space:nowrap}
.sidenav nav{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;
  overflow-y:auto;overflow-x:hidden;padding:0;
  border:0!important;border-radius:0;background:none!important;background-image:none!important;
  box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.sidenav nav button{display:flex;align-items:center;gap:var(--sp-3);height:35px;padding:0 var(--sp-3);
  border-radius:var(--r-md);border:none;background:none;font-family:inherit;font-size:var(--fs-sm);
  font-weight:500;color:var(--gl-ink2,rgba(255,255,255,.72));cursor:pointer;
  white-space:nowrap;position:relative;text-align:left;
  transition:background var(--t-2) var(--ease-m3),color var(--t-2) var(--ease-m3)}
.sidenav nav button::before{content:"";width:6px;height:6px;border-radius:50%;flex:0 0 auto;
  background:currentColor;opacity:.45}
.sidenav nav button:hover{background:var(--m-reg);color:var(--gl-ink,#eef1f7)}
.sidenav nav button.active{background:var(--nav-active-bg);color:var(--accent);font-weight:600}
.sidenav nav button.active::before{opacity:1}
.sidenav nav button .nav-m{display:none}
.sidenav nav button .nav-d{display:inline}
.content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;
  gap:var(--sp-3);padding:14px}
.content .app-topbar{position:sticky;top:14px;z-index:50}
.content header{border:1px solid var(--edge);border-radius:var(--r-lg);
  box-shadow:inset 1px 0 0 var(--rim-side),inset -1px 0 0 var(--rim-side),
    inset 0 -1px 0 var(--rim-bot),0 12px 32px -20px var(--lift)}
.content main{padding:0;max-width:none;margin:0;width:auto}
@media (max-width:820px){
  #app{display:block}
  .content{padding:var(--sp-3) var(--sp-2);gap:var(--sp-2)}
  .content main{padding:0;max-width:none;margin:0;width:auto}
  .content .app-topbar{top:0}
  .sidenav{display:contents}
  .sidenav .sn-brand,.sidenav .sn-me{display:none}
  .sidenav nav{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:50;flex-direction:row;
    gap:0;padding:0;height:auto;border-radius:0;overflow-x:visible;
    border:0!important;border-top:1px solid var(--edge)!important;
    background-color:var(--m-thick)!important;background-image:none!important;
    -webkit-backdrop-filter:blur(22px) saturate(1.75)!important;backdrop-filter:blur(22px) saturate(1.75)!important;
    box-shadow:0 -8px 24px -12px var(--lift)!important}
  .sidenav nav button.nav-over{display:none!important}
  .sidenav nav button{flex:1 1 0;min-width:0;height:auto;min-height:44px;padding:var(--sp-3) 2px;
    border-radius:0;flex-direction:column;justify-content:center;gap:var(--sp-1);font-size:var(--fs-xs);
    font-weight:500;text-align:center}
  .sidenav nav button::before{width:5px;height:5px}
  .sidenav nav button .nav-m{display:inline}
  .sidenav nav button .nav-d{display:none}
  .sidenav nav button .nav-dot{top:3px;transform:none}
  .sidenav nav button.active{background:transparent;color:var(--accent)}
}
.content header{gap:11px;padding:11px 14px}
.content header h1{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.012em;margin:0;flex:none}
.gsearch{flex:0 1 250px;min-width:110px;height:32px;border-radius:var(--r-pill);background:var(--m-reg);
  border:1px solid var(--edge);display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);
  font-size:var(--fs-xs);box-shadow:inset 0 1px 0 var(--rim-side)}
.gtb-spacer{flex:1}
.gtb-right{display:flex;align-items:center;gap:14px;flex:0 0 auto;
  padding-left:15px;border-left:1px solid var(--edge)}
.gtb-right #cloudBadge{margin-left:0;flex:none}
.kpi-row .kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--sp-3) 14px;display:flex;flex-direction:column;gap:5px;position:relative;overflow:hidden}
.kpi-row .kpi.hero{background-image:linear-gradient(140deg,color-mix(in srgb,var(--accent) 9%,var(--panel)),var(--panel) 58%)}
.kpi-row .kpi .cap{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}
.kpi-row .kpi .v{font:650 var(--fs-2xl)/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.025em;color:var(--text)}
.kpi-row .kpi .v.bad{color:var(--bad)}
.kpi-row .kpi .v.warn{color:var(--warn)}
.kpi-row .kpi .v.acc{color:var(--accent)}
@media (max-width:820px){
  .content header{gap:9px;padding:9px 12px}
  .gsearch{display:none}
  .gtb-right{padding-left:0;border-left:0;gap:9px}
  .kpi-row .kpi{padding:11px 12px}
  .kpi-row .kpi .v{font-size:var(--fs-xl)}
}
@media (max-width:380px){
  .gtb-right{gap:7px}
  .gtb-right .app-logos{gap:7px}
  .gtb-right .app-logos img{height:18px}
  .gtb-right .app-logos img.logo-weeduo{height:15px}
  .gtb-right .app-logos .logo-sep{height:16px}
  .gtb-right #cloudBadge{padding:2px 7px}
}
.bsplit-l{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.lhead{display:flex;align-items:center;gap:9px;padding:11px 15px;border-bottom:1px solid var(--border)}
.lhead b{font-size:var(--fs-md);font-weight:600;color:var(--text);white-space:nowrap}
.lhead .n{font:600 var(--fs-xs)/1 var(--mono);color:var(--muted);background:var(--panel2);
  border-radius:var(--r-pill);padding:4px 9px}
.lhead .lchip{font-size:var(--fs-xs);color:var(--muted);background:var(--panel2);
  border:1px solid var(--border);border-radius:var(--r-pill);padding:var(--sp-1) 9px;white-space:nowrap}
.lhead .lchip.run{background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.lhead .lchip.bad{background:var(--ba-soft);border-color:transparent;color:var(--bad)}
@media (max-width:820px){
  .lhead{display:none}
}
.bsplit-r{display:flex;flex-direction:column;padding:0;overflow:hidden}
.dpane-head{flex:0 0 auto;padding:var(--sp-3) var(--sp-3) var(--sp-2);margin:0;
  border-bottom:1px solid var(--edge)}
#dpaneBody{flex:1;min-height:0;overflow:auto;padding:var(--sp-3)}
.bsplit-r .detail-summary,
.bsplit-r .detail-summary.c5,
.bsplit-r .detail-summary.c6{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2);
  padding:0;margin:0 0 var(--sp-3);background:none;border:0}
.bsplit-r .detail-summary .sum-item{background:var(--panel2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:8px 10px}
.bsplit-r .detail-summary .sum-label{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--muted)}
.bsplit-r .detail-summary .sum-value{font-size:var(--fs-md);font-weight:600;color:var(--text)}
.bsplit-r .info-grid-3{grid-template-columns:1fr 1fr;gap:8px}
.bsplit-r .info-grid-3 .kv{background:var(--panel2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:8px 10px}
.bsplit-r .info-grid-3 .kv .k{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--muted)}
.bsplit-r .info-grid-3 .kv .v{font-size:var(--fs-md);font-weight:600;color:var(--text)}
.bsplit-r .detail-card{background:none;border:0;padding:0;margin:0 0 12px}
.bsplit-r .detail-card-title{font-size:var(--fs-xs);font-weight:600;color:var(--muted);margin:0 0 7px}
.bsplit-r .section-title{font-size:var(--fs-xs);font-weight:600;color:var(--muted);
  border-left:0;padding-left:0;margin:0 0 7px}
.bsplit-r .rowbtn{position:sticky;bottom:0;z-index:2;justify-content:flex-start;
  background:var(--panel);border-top:1px solid var(--border);padding:var(--sp-3) 0 2px;margin:10px 0 0}
:is(.card,.bcard,.dash-block,.dbv-card,.skel-card,.skel-fail,.sgroup,.bsplit-l){
  background-color:var(--panel);
  border:1px solid var(--edge);
  border-radius:var(--r-lg);
  box-shadow:0 18px 44px -32px var(--lift);
  background-image:linear-gradient(90deg,transparent,var(--rim-card) 16%,var(--rim-card) 84%,transparent);
  background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;}
:is(.card,.dash-block,.dbv-card,.sgroup){padding:var(--sp-4)}
:is(.stat-card,.stat-card.alt){
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--panel)),
    color-mix(in srgb,var(--accent) 4%,var(--panel)));
  border:1px solid var(--edge);border-radius:var(--r-lg);
  box-shadow:0 18px 44px -32px var(--lift);
  padding:var(--sp-3) var(--sp-4);}
:is(.pill,.tag,.due,.lchip,.chip){
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  height:20px;padding:0 9px;border-radius:var(--r-pill);
  font-size:var(--fs-xs);line-height:1;white-space:nowrap;}
.due.over{background:var(--ba-soft);color:var(--bad)}
.due.warn{background:var(--wa-soft);color:var(--warn)}
.due.done{background:var(--ok-soft);color:var(--good)}
.due.none{background:var(--chip);color:var(--muted)}
.due.chk{background:var(--wa-soft);color:var(--warn)}
:is(.field,.date-trigger,.df-inp,.df-file,.ask-inp,.st-name,.cap-input,.sys-row input){
  border-radius:var(--r-md);}
:is(.df-inp,.df-file,.ask-inp,.st-name,.cap-input){height:var(--h-ctl)}
:is(.df-inp,.df-file,.ask-inp,.st-name,.cap-input,.date-trigger):focus{
  border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}
:is(.section-title,.sec-title){font-size:var(--fs-md);font-weight:600;
  margin:var(--sp-4) 0 var(--sp-2);padding-left:9px;border-left:3px solid var(--accent);color:var(--text)}
:is(.detail-card-title,.sgroup-title,.lhead b){font-size:var(--fs-sm);font-weight:600;
  color:var(--text);margin:0 0 var(--sp-2);letter-spacing:0}
:is(.detail-card-title,.sgroup-title){letter-spacing:.02em}
:is(.card,.bcard,.stat-card,.dbv-card,.dash-block,.todo-badge,.theme-opt,.mrow,
    .pm-row,.role-row)[onclick]:active,
button:active:not(:disabled),.btn:active:not(:disabled){filter:brightness(.96)}
:is(.btn,button):disabled{opacity:.42;cursor:not-allowed;filter:none;box-shadow:none;transform:none}
:is(.card,.bcard,.stat-card,.dbv-card,.dash-block,.pill,.tag,.due,.lchip,.chip,
    .btn,.nav button,.snav nav button,.todo-badge,.theme-opt){
  transition:background-color var(--t-1) cubic-bezier(.2,0,0,1),border-color var(--t-1) cubic-bezier(.2,0,0,1),
    color var(--t-1) cubic-bezier(.2,0,0,1),filter var(--t-1) cubic-bezier(.2,0,0,1)}
.empty{gap:var(--sp-2);padding:48px 20px;color:var(--text-2)}
:is(.empty,.pf-empty,.sys-empty,.pm-empty){max-width:520px;margin-left:auto;margin-right:auto}
.empty .e-act{margin-top:var(--sp-2)}
.bsplit-r .detail-summary,.bsplit-r .detail-summary.c5{grid-template-columns:repeat(3,1fr);gap:6px}
.bsplit-r .detail-summary.c6{grid-template-columns:repeat(3,1fr)}
.bsplit-r .detail-summary .sum-item{padding:6px 9px}
.bsplit-r .detail-summary .sum-value{font-size:var(--fs-md)}
.bsplit-r .info-grid-3{gap:6px}
.bsplit-r .info-grid-3 .kv{padding:6px 9px}
.bsplit-r .detail-card{margin-bottom:var(--sp-3)}
main>[id^="view-"]>*:first-child{margin-top:0}
:is(.card,.dash-block,.dbv-card){padding:var(--sp-4);margin-bottom:var(--sp-3)}
:is(.stat-card-row,.dash-grid,.dbv-ov-grid){gap:var(--sp-3)}
#view-order{display:flex;flex-direction:column;gap:var(--sp-3);min-height:calc(100vh - 132px)}
#view-order .oe-panel{position:relative;border-radius:var(--r-xl);background-color:var(--panel);
  border:1px solid var(--edge);box-shadow:0 30px 74px -36px var(--lift),0 2px 6px rgba(0,0,0,.22);min-width:0}
#view-order .oe-panel::before{content:'';position:absolute;left:var(--sp-4);right:var(--sp-4);top:0;height:1px;
  pointer-events:none;border-radius:inherit;
  background:linear-gradient(90deg,transparent,var(--rim-card) 14%,var(--rim-card) 86%,transparent)}
#view-order .oe-band{padding:var(--sp-4)}
#view-order .oe-grid6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px var(--sp-3)}
#view-order .oe-fld{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
#view-order .oe-fld.s2{grid-column:span 2}
#view-order .oe-fld.full{grid-column:1/-1}
#view-order .oe-fld>label{display:block;font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;color:var(--muted);
  white-space:normal;overflow-wrap:anywhere}
#view-order .req{color:var(--req)}
#view-order .oe-itable .oreq-i{display:none;font-style:normal;font-weight:600}
#view-order .oe-ro{display:flex;align-items:center;height:var(--h-ctl);padding:0 11px;border-radius:var(--r-md);
  background:var(--m-ultra);border:1px solid var(--edge);color:var(--text-2);font-size:var(--fs-md);
  font-variant-numeric:tabular-nums;overflow:hidden}
#view-order .oe-ro b{font-weight:600;white-space:nowrap}
#view-order .oe-urg{display:flex;align-items:center;justify-content:space-between;gap:10px;align-self:end;
  height:var(--h-ctl);padding:0 var(--sp-3);border-radius:var(--r-md);background:var(--m-ultra);
  border:1px solid var(--edge);cursor:pointer;min-width:0;
  margin-bottom:0}
#view-order .oe-urg .t{font-size:var(--fs-sm);color:var(--text-2);white-space:normal;overflow-wrap:anywhere}
#view-order .oe-urg .t{position:relative;top:-1px}
#view-order .oe-urg input.sw{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 auto;
  width:38px!important;height:22px!important;border-radius:var(--r-pill);background:var(--panel2);
  border:1px solid var(--edge);cursor:pointer;margin:0;padding:0;
  transition:background-color var(--t-1),border-color var(--t-1)}
#view-order .oe-urg input.sw::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;
  border-radius:50%;background:var(--muted);transition:transform var(--t-1),background-color var(--t-1)}
#view-order .oe-urg input.sw:checked{background:var(--bad);border-color:var(--bad)}
#view-order .oe-urg input.sw:checked::after{transform:translateX(16px);background:var(--on-accent)}
#view-order .oe-urg input.sw:focus-visible{outline:none;box-shadow:var(--focus-ring)}
#view-order .oe-band3{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:var(--sp-3);align-items:end;margin-top:11px}
#view-order .oe-maker{font-size:var(--fs-xs);color:var(--hint);text-align:right;padding-bottom:9px;
  white-space:normal;overflow-wrap:anywhere}
#view-order .oe-maker b{color:var(--muted);font-weight:600}
#view-order .oe-items{flex:1 1 auto;min-height:230px;display:flex;flex-direction:column;padding:var(--sp-4) var(--sp-4) 12px}
#view-order .oe-ihead{display:flex;align-items:center;gap:10px;margin-bottom:var(--sp-3);flex-wrap:wrap}
#view-order .oe-ihead .nm{font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;color:var(--muted)}
#view-order .oe-ihead .chip-n{font-size:var(--fs-xs);font-weight:600;color:var(--muted);background:var(--m-ultra);
  border:1px solid var(--edge);border-radius:var(--r-pill);padding:3px 10px;font-variant-numeric:tabular-nums}
#view-order .oe-ihead .oe-hint{font-size:var(--fs-xs);color:var(--hint)}
#view-order .oe-ihead .btn{margin-left:auto}
#view-order .oe-tscroll{flex:1 1 auto;min-height:0;overflow:auto}
#view-order .oe-itable tr.item{display:table-row;background:none!important;border:0;border-radius:0;padding:0;margin:0}
#view-order .oe-itable tr.item>td{display:table-cell}
#view-order .oe-itable{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}
#view-order .oe-itable th{font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;color:var(--hint);
  text-align:center;padding:0 var(--sp-2) var(--sp-2);border-bottom:1px solid var(--border);white-space:nowrap}
#view-order .oe-itable td{padding:var(--sp-1);border-bottom:1px solid var(--border);white-space:nowrap;
  vertical-align:middle;text-align:center}
#view-order input.cell,#view-order select.cell{text-align:left}
#view-order .oe-itable tbody tr:last-child td{border-bottom:0}
#view-order .oe-itable .idx{font:600 12px/1 var(--mono);color:var(--hint);text-align:center}
#view-order .oe-itable .ctr{text-align:center}
#view-order .oe-itable col.c1{width:40px}#view-order .oe-itable col.c2{width:25%}
#view-order .oe-itable col.c3{width:13%}#view-order .oe-itable col.c4{width:17%}
#view-order .oe-itable col.c5{width:8%}#view-order .oe-itable col.c6{width:8%}
#view-order .oe-itable col.c7{width:auto}#view-order .oe-itable col.c8{width:34px}
#view-order input.cell,#view-order select.cell{background:var(--panel2);border:1px solid var(--edge);border-radius:var(--r-sm);
  box-shadow:inset 0 1px 0 rgba(0,0,0,.28);height:30px;padding:0 var(--sp-2);font-size:var(--fs-sm);
  color:var(--text);width:100%;min-width:0;box-sizing:border-box;
  transition:background-color var(--t-1),border-color var(--t-1),box-shadow var(--t-1)}
#view-order select.cell{padding-right:4px;font-family:inherit;cursor:pointer}
#view-order input.cell:hover,#view-order select.cell:hover{border-color:var(--border-strong)}
#view-order input.cell:focus,#view-order select.cell:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
#view-order .rowx{width:26px;height:26px;min-width:0;min-height:0;display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid transparent;border-radius:var(--r-sm);color:var(--hint);font-size:16px;
  line-height:1;cursor:pointer;transition:background-color var(--t-1),color var(--t-1),border-color var(--t-1)}
#view-order .rowx:hover{background:var(--ba-soft);border-color:var(--ba-soft);color:var(--bad)}
#view-order .oe-addrow{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:6px;margin-top:var(--sp-2);
  padding:7px var(--sp-2);border:1px dashed var(--border-strong);border-radius:9px;color:var(--muted);
  font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--t-1),color var(--t-1),background-color var(--t-1)}
#view-order .oe-addrow:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
#view-order .oe-addrow .p{text-align:center;font-size:15px}
#view-order .oe-actbar{position:sticky;bottom:0;z-index:6;flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-2) var(--sp-4);border-radius:14px;
  background-color:var(--m-thin);
  background-image:linear-gradient(90deg,transparent,var(--rim-line) 12%,var(--rim-line) 88%,transparent);
  background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;
  -webkit-backdrop-filter:blur(18px) saturate(1.8);backdrop-filter:blur(18px) saturate(1.8);
  border:1px solid var(--edge);
  box-shadow:inset 0 1px 0 var(--rim-side),0 -8px 26px -18px var(--lift)}
#view-order .oe-actbar .oe-acthint{font-size:var(--fs-sm);color:var(--hint);margin-right:auto;
  font-variant-numeric:tabular-nums;white-space:normal;overflow-wrap:anywhere}
#view-order .oe-actbar .oe-acthint b{color:var(--text-2)}
#view-order .oe-actbar .oe-acts{display:flex;align-items:center;gap:var(--sp-2);flex:0 0 auto}
@media (max-width:900px){
  #view-order{min-height:0}
  #view-order .oe-grid6{grid-template-columns:repeat(2,minmax(0,1fr))}
  #view-order .oe-fld.s2{grid-column:span 2}
  #view-order .oe-fld.oe-date,#view-order .oe-fld.oe-stock{grid-column:span 2}
  #view-order .oe-band3{grid-template-columns:minmax(0,1fr)}
  #view-order .oe-maker{text-align:left;padding-bottom:0}
  #view-order .oe-actbar{flex-wrap:wrap}
  #view-order .oe-actbar .oe-acthint{width:100%;margin-right:0}
  #view-order .oe-actbar .oe-acts{width:100%;justify-content:flex-end}
}
@media (max-width:820px){
  #view-order .oe-actbar{position:static}
  #view-order .oe-itable col.c1{width:26px}#view-order .oe-itable col.c5{width:52px}
  #view-order .oe-itable col.c8{width:30px}
  #view-order .oe-itable td{padding:2px}
  #view-order select.cell{padding:0 2px}
  #view-order .oe-tscroll{overflow-x:hidden}
}
@media (max-width:820px){
  #view-order .oe-itable{display:block;table-layout:auto}
  #view-order .oe-itable colgroup,#view-order .oe-itable thead{display:none}
  #view-order .oe-itable tbody{display:block}
  #view-order .oe-itable tr.item{display:block;border:1px solid var(--border);border-radius:var(--r-md);
    padding:6px 9px;margin:0 0 9px}
  #view-order .oe-itable tr.item:last-child{margin-bottom:0}
  #view-order .oe-itable tr.item>td{display:flex;align-items:center;gap:9px;padding:3px 0;
    border-bottom:0;white-space:normal;min-width:0}
  #view-order .oe-itable tr.item>td::before{content:'';flex:0 0 62px;font-size:var(--fs-xs);
    color:var(--muted);white-space:nowrap}
  #view-order .oe-itable tr.item>td:nth-child(1)::before{content:'#'}
  #view-order .oe-itable tr.item>td:nth-child(2)::before{content:'商品名称'}
  #view-order .oe-itable tr.item>td:nth-child(3)::before{content:'色　号'}
  #view-order .oe-itable tr.item>td:nth-child(4)::before{content:'规　格'}
  #view-order .oe-itable tr.item>td:nth-child(5)::before{content:'数　量'}
  #view-order .oe-itable tr.item>td:nth-child(6)::before{content:'单　位'}
  #view-order .oe-itable tr.item>td:nth-child(7)::before{content:'明细备注'}
  #view-order .oe-itable tr.item>td:nth-child(8)::before{content:'';flex:0 0 0}
  #view-order .oe-itable .oreq-i{color:var(--req)}
  #view-order .oe-itable .oreq-i.on{display:inline}
  #view-order .oe-itable tr.item>td>input,#view-order .oe-itable tr.item>td>select{
    flex:1 1 auto;min-width:0}
  #view-order .oe-itable tr.item>td.idx{text-align:left}
  #view-order .oe-itable tr.item>td.ctr{text-align:left}
}
#view-todo{display:flex;flex-direction:column;gap:var(--sp-3)}
#view-todo .td-bar{display:flex;align-items:center;gap:var(--sp-3);min-height:28px}
#view-todo .td-sum{font-size:var(--fs-sm);color:var(--hint);font-variant-numeric:tabular-nums}
#view-todo .td-bar .btn{margin-left:auto}
#view-todo .td-statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-2)}
#view-todo .td-stat{position:relative;text-align:left;font-family:inherit;cursor:pointer;color:var(--text);
  padding:12px 14px;border-radius:var(--r-lg);background-color:var(--panel);border:1px solid var(--edge);
  background-image:linear-gradient(90deg,transparent,var(--rim-card) 16%,var(--rim-card) 84%,transparent);
  background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;
  box-shadow:0 18px 44px -32px var(--lift);transition:border-color var(--t-1),box-shadow var(--t-1)}
#view-todo .td-stat:hover{border-color:var(--border-strong)}
#view-todo .td-stat.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft),0 18px 44px -32px var(--lift)}
#view-todo .td-stat .cap{font-size:var(--fs-xs);letter-spacing:.06em;font-weight:600;color:var(--hint);white-space:nowrap}
#view-todo .td-stat .v{font-size:var(--fs-2xl);font-weight:700;line-height:1;margin-top:5px;font-variant-numeric:tabular-nums}
#view-todo .td-stat .v.bad{color:var(--bad)}
#view-todo .td-stat.td-plain{cursor:default}
#view-todo .td-stat.td-plain:hover{border-color:var(--edge)}
#view-todo .td-stat .v.warn{color:var(--warn)}
#view-todo .td-stat .sub{font-size:var(--fs-xs);color:var(--hint);margin-top:5px;white-space:normal;
  overflow-wrap:anywhere;min-height:1em}
#view-todo .td-split{display:grid;grid-template-columns:minmax(0,1fr) 322px;gap:var(--sp-3);align-items:start}
#view-todo .td-left{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;
  min-height:0}
#view-todo .td-queue{min-width:0;border-radius:var(--r-lg);overflow:hidden;
  background-color:var(--panel);border:1px solid var(--edge);
  background-image:linear-gradient(90deg,transparent,var(--rim-card) 16%,var(--rim-card) 84%,transparent);
  background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;
  box-shadow:0 18px 44px -32px var(--lift)}
#view-todo .td-queue>.empty{border:0}
#view-todo .td-ghead{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:9px;padding:9px 15px;
  background:var(--panel2);border-bottom:1px solid var(--border);font-size:var(--fs-sm);font-weight:600;
  letter-spacing:.04em;color:var(--text-2)}
#view-todo .td-ghead .n{font-variant-numeric:tabular-nums;background:var(--track);border-radius:var(--r-pill);
  padding:1px 8px;font-size:var(--fs-xs);color:var(--muted)}
#view-todo .td-watch{position:sticky;top:12px;max-height:calc(100vh - 132px);overflow:auto;border-radius:var(--r-lg);
  padding:var(--sp-4);
  background-color:var(--m-thick);
  background-image:linear-gradient(90deg,transparent,var(--rim-line) 12%,var(--rim-line) 88%,transparent);
  background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;
  -webkit-backdrop-filter:blur(22px) saturate(1.75);backdrop-filter:blur(22px) saturate(1.75);
  border:1px solid var(--edge);box-shadow:0 20px 50px -24px var(--lift)}
#view-todo .td-watchhd{display:flex;align-items:center;gap:7px;
  font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;color:var(--text-2);
  padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid var(--hair)}
#view-todo .td-watchhd .tw-tot{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--fs-xs);
  color:var(--bad);background:var(--ba-soft);border-radius:var(--r-pill);padding:1px 8px}
#view-todo .td-watch .todo-fu{background:transparent;border:0;border-radius:0;padding:0;margin:0 0 13px}
#view-todo .td-watch .my-anom{margin-bottom:13px}
#view-todo .td-watch>*:last-child{margin-bottom:0}
#view-todo .td-watch .tf-title{font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;color:var(--muted);
  margin-bottom:4px}
#view-todo .td-watch .tf-item{font-size:var(--fs-sm);color:var(--text-2);padding:6px 9px;border-radius:9px;
  display:flex;flex-wrap:wrap;gap:0 8px;align-items:baseline;cursor:pointer;transition:background-color var(--t-1)}
#view-todo .td-watch .tf-item:hover{background:var(--m-ultra)}
#view-todo .td-watch .tf-item+.tf-item{border-top:1px dashed var(--hair)}
#view-todo .td-watch .tf-t{color:var(--text);font-weight:600}
#view-todo .td-watch .tf-s{color:var(--hint);font-size:var(--fs-xs)}
#view-todo .td-watch .todo-fu>.tf-s{padding:6px 9px 0}
#view-todo .td-watch .tf-item .btn{margin-left:auto}
#view-todo .td-wempty{font-size:var(--fs-sm);color:var(--hint);padding:var(--sp-3) 0}
.vcard{position:relative;display:block;padding:12px 15px;margin:0;border-radius:0;
  background:transparent;background-image:none;border:0;border-bottom:1px solid var(--hair);box-shadow:none;
  cursor:pointer;transition:background-color var(--t-1)}
#view-todo .vcard:last-child{border-bottom:0}
.vcard:hover{background:var(--m-ultra)}
.vcard::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--track)}
.vcard.due-warn::before{background:var(--warn)}
.vcard.due-over::before,.vcard.due-danger::before{background:var(--bad)}
.vcard.due-ok::before{background:var(--good)}
.vcard .vc-body{display:flex;align-items:stretch;gap:18px}
.vcard .vc-left{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:7px}
.vcard .vc-right{flex:0 0 auto;display:flex;flex-direction:column;justify-content:space-between;
  align-items:flex-end;gap:8px}
.vcard .vc-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.vcard .order-no{font-size:var(--fs-md)}
.vcard .vc-sub{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:var(--fs-sm);min-width:0;
  color:var(--text-2);min-width:0}
.vcard .vc-sub .cust{color:var(--text);font-weight:600;max-width:58%;
  white-space:normal;overflow-wrap:anywhere}
.vcard .vc-sub .s{color:var(--hint);font-size:var(--fs-xs);white-space:normal;overflow-wrap:anywhere;min-width:0;font-variant-numeric:tabular-nums}
.vcard .vc-body{min-width:0}
#view-boardview .pbody{overflow-x:hidden}
.vcard .vc-l4{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--fs-xs);
  color:var(--hint);font-variant-numeric:tabular-nums}
.vcard .vc-l4 .dtl{white-space:normal;overflow-wrap:anywhere;min-width:0}
.vcard .todo-badges{padding-top:1px}
.vcard .mrow{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.vcard .mrow .sep,.vcard .mrow svg{align-self:center}
.vcard .mrow .due{top:0}
.vcard .mrow.top .due-label{font-size:var(--fs-xs);color:var(--muted)}
.vcard .mrow.top .due{font-size:15px;font-weight:700;padding:4px 12px;border-radius:8px}
.vcard .mrow.bot{gap:6px;justify-content:flex-end;flex-wrap:wrap}
.vcard .mrow.top{flex-wrap:wrap;justify-content:flex-end;row-gap:4px}
.vcard .mrow.bot .due{font-size:var(--fs-xs);padding:3px 9px;border-radius:var(--r-pill);
  }
.vcard .mrow .due-label{font-size:var(--fs-xs);color:var(--muted)}
.vcard .mrow .sep{width:1px;height:12px;background:var(--edge);margin:0 3px;flex:0 0 auto}
.vcard .mrow .num{font-size:var(--fs-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.vcard .mrow svg{width:12px;height:12px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;opacity:.85;color:var(--hint)}
.vcard .due.ok{background:var(--ok-soft);color:var(--good)}
.vcard .due.warn{background:var(--wa-soft);color:var(--warn)}
.vcard .due.over,.vcard .due.danger{background:var(--ba-soft);color:var(--bad)}
.vcard .due.none,.vcard .due.mut{background:var(--m-ultra);color:var(--muted)}
@media (max-width:1100px){
  #view-todo .td-split{grid-template-columns:minmax(0,1fr)}
  #view-todo .td-watch{position:static;max-height:none}
}
@media (max-width:900px){
  .vcard .vc-body{flex-direction:column;gap:9px}
  .vcard .vc-right{flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}
}
.btn.is-loading{color:transparent!important;text-shadow:none!important;
  pointer-events:none;cursor:progress}
.btn.is-loading::after{content:"";position:absolute;left:50%;top:50%;width:15px;height:15px;
  margin:-8px 0 0 -8px;border-radius:50%;
  border:1.8px solid rgba(255,255,255,.34);border-top-color:#fff;
  animation:spin .7s linear infinite}
html[data-theme="light"] .btn.is-loading::after{
  border-color:rgba(20,48,96,.26);border-top-color:#1c4e9e}
#detailBody{display:flex;flex-direction:column;gap:14px}
#detailBody .dcol-l,#detailBody .dcol-r{display:contents}
#detailBody .dcol-l>*,#detailBody .dcol-r>*{margin-top:0;margin-bottom:0}
@media (min-width:981px){
  #detailBody{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
    grid-template-rows:auto auto 1fr;gap:12px 18px;align-items:start}
  #detailBody>.modal-title{grid-column:1/-1;grid-row:1}
  #detailBody>.detail-summary{grid-column:1/-1;grid-row:2}
  #detailBody>.dcol-l{grid-column:1;grid-row:3;display:flex;flex-direction:column;gap:14px;min-width:0}
  #detailBody>.dcol-r{grid-column:2;grid-row:3;display:flex;flex-direction:column;gap:14px;min-width:0}
}
.flow-grid .flow-step::after{content:"";position:absolute;left:calc(50% + 12px);right:calc(-50% + 12px);
  top:6px;height:1.5px;background-color:var(--border);font-size:0}
.flow-grid .flow-step:last-child::after{display:none}
.flow-grid .flow-step.done:not(:last-child)::after{background-color:color-mix(in srgb,var(--good) 45%,transparent)}
.flow-grid .flow-step .dot{width:13px;height:13px;border-radius:50%;
  background-color:var(--panel);border:1.5px solid var(--border-strong)}
.flow-grid .flow-step.done .dot{background-color:var(--good);border-color:transparent}
.flow-grid .flow-step.done{color:var(--text-2)}
.flow-grid .flow-step.cur .dot{width:13px;height:13px;background-color:var(--accent);
  border-color:color-mix(in srgb,var(--accent) 50%,#fff);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent),
    0 0 14px color-mix(in srgb,var(--accent) 75%,transparent)}
.flow-grid .flow-step.cur{color:var(--accent-text);font-weight:600}
.flow-grid .flow-step .fnum{display:block;font-size:12px;font-weight:600;line-height:1.2;
  color:var(--accent-text);font-variant-numeric:tabular-nums}
.flow-grid .flow-step.done .fnum{color:var(--text-2)}
.g-ink{color:var(--gl-ink);text-shadow:var(--gl-shadow)}
.g-ink3{color:var(--gl-ink3)}
.pad{padding:14px 16px}
.panel{position:relative;border-radius:var(--r-xl);background:var(--panel);border:1px solid var(--edge);
  box-shadow:0 30px 74px -36px var(--lift),0 2px 6px rgba(0,0,0,.22);min-width:0}
.panel::before{content:'';position:absolute;left:16px;right:16px;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--rim-card) 14%,var(--rim-card) 86%,transparent)}
#view-boardview .kpi{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-bottom:12px}
@media (max-width:1260px){
  #view-boardview .kpi{grid-template-columns:repeat(4,minmax(0,1fr))}
}
#view-boardview .k{position:relative;padding:13px 15px;border-radius:var(--r-lg);background-color:var(--panel2);
  border:1px solid var(--edge);box-shadow:inset 0 1px 0 var(--rim-side);cursor:pointer;transition:var(--t-1);
  display:flex;flex-direction:column;gap:7px}
#view-boardview .k:hover{border-color:var(--border-strong)}
#view-boardview .k .cap{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--hint);white-space:nowrap}
#view-boardview .k .cap .dot{width:6px;height:6px;border-radius:50%;background:var(--border-strong);flex:0 0 auto}
#view-boardview .k.danger .cap .dot{background:var(--bad)}
#view-boardview .k.warn .cap .dot{background:var(--warn)}
#view-boardview .k.good .cap .dot{background:var(--good)}
#view-boardview .k .v{font-size:30px;font-weight:700;line-height:1;letter-spacing:-.02em;color:var(--text)}
#view-boardview .k.danger .v{color:var(--bad)}
#view-boardview .k.warn .v{color:var(--warn)}
#view-boardview .k.good .v{color:var(--good)}
#view-boardview .k.zero .v{color:var(--muted)}
#view-boardview .k .u{font-size:12px;color:var(--hint);margin-left:3px;font-weight:500}
#view-boardview .k .ctx{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--hint);white-space:nowrap}
#view-boardview .k .ctx b{color:var(--text-2);font-weight:600}
#view-boardview .cols{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.3fr);gap:12px;align-items:start}
.phead{flex:0 0 auto;padding:14px 16px 0}
.pbody{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 16px}
.pfoot{flex:0 0 auto;padding:0 16px 14px}
#view-boardview .panel{display:flex;flex-direction:column;overflow:hidden}
#view-boardview .side{display:flex;flex-direction:column;gap:12px;position:sticky;top:0;min-width:0}
#view-boardview .side .panel{padding:14px 16px}
#view-boardview .side .panel>.phead,
#view-boardview .side .panel>.pbody,
#view-boardview .side .panel>.pfoot{padding-left:0;padding-right:0}
#view-boardview .side .panel>.phead{padding-top:0}
#view-boardview .side .panel>.pfoot{padding-bottom:0}
#view-boardview .grp{flex-wrap:wrap}
#view-boardview .grp-t{order:0;white-space:nowrap}
#view-boardview .grp::after{order:1;min-width:12px}
#view-boardview .grp .legend{order:2;margin-top:0;gap:12px;flex-wrap:nowrap;white-space:nowrap}
#view-boardview .grp{display:flex;align-items:center;gap:10px;margin:0 0 11px;font-size:12px;
  font-weight:600;letter-spacing:.08em;color:var(--muted)}
#view-boardview .grp::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--edge),transparent)}
#view-boardview .grp .cnt{font-variant-numeric:tabular-nums;background:var(--track);border-radius:var(--r-pill);
  padding:1px 8px;font-size:12px;color:var(--muted);letter-spacing:0}
#view-boardview .snap{scroll-snap-type:y mandatory}
#view-boardview .snap .brow{scroll-snap-align:start;scroll-snap-stop:always}
#view-boardview .brow{display:grid;grid-template-columns:92px minmax(0,1fr) 78px;gap:10px;align-items:center;
  padding:9px 4px;font-size:13px;border-radius:8px;cursor:pointer}
#view-boardview .brow:hover{background:var(--m-ultra)}
#view-boardview .brow .nm{color:var(--text-2);white-space:normal;overflow-wrap:anywhere}
#view-boardview .brow .bar{position:relative;height:6px;border-radius:var(--r-pill);background:var(--track);
  overflow:hidden;display:flex}
#view-boardview .brow .bar i{display:block;height:100%}
#view-boardview .brow .bar i.ok{background:var(--accent)}
#view-boardview .brow .bar i.bad{background:var(--bad)}
#view-boardview .brow .n{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}
#view-boardview .brow .n em{color:var(--bad);font-style:normal;font-weight:600}
.legend{font-size:12px;color:var(--hint)}
#view-boardview .legend{display:flex;align-items:center;gap:14px;margin-top:9px;flex-wrap:wrap}
#view-boardview .legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}
#view-boardview .pfoot.legend{margin-top:0;padding-top:0}
#view-dashboard .legend{display:flex;align-items:center;flex-wrap:wrap}
#view-dashboard .legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
#view-dashboard .legend i{width:10px;height:10px;border-radius:3px;display:block;flex:0 0 auto}
#view-dashboard .legend i.ln{width:14px;height:3px;border-radius:2px}
#view-dashboard .three .legend{margin-top:auto;padding-top:14px}
#view-boardview .olist{padding:0;overflow:hidden}
#view-boardview .olist .vcard{border-radius:0}
#view-boardview .olist .vcard{border-bottom:1px solid #000}
#view-boardview .olist .vcard:last-child{border-bottom:0}
#view-boardview .olist .ohead{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--border)}
#view-boardview .olist .ohead .t{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--muted);white-space:nowrap}
#view-boardview .olist .ohead .hint{margin-left:auto;font-size:12px;color:var(--hint);white-space:nowrap}
#view-boardview .vcard:last-child{border-bottom:0}
#view-boardview .olist .more{text-align:center;padding:12px;color:var(--text-2);cursor:pointer;
  font-size:13px;border-top:1px solid var(--hair)}
#view-boardview .olist .more:hover{background:var(--m-ultra)}
#view-boardview .olist .more.done{cursor:default;color:var(--hint)}
#view-boardview .olist .more.done:hover{background:transparent}
@media (min-width:1101px){
  #view-boardview{display:flex;flex-direction:column;min-height:0}
  #view-boardview .kpi{flex:0 0 auto}
  #view-boardview .cols{flex:1 1 auto;min-height:0;align-items:stretch}
  #view-boardview .side{position:static;min-height:0;border-radius:var(--r-xl)}
  #view-boardview .side > .panel:first-child{flex:0 0 var(--panel-top-h);min-height:0;overflow:hidden}
  #view-boardview .side > .panel:last-child{flex:1 1 auto;min-height:0;overflow:hidden}
  #view-boardview .olist{min-height:0;overflow:hidden;overscroll-behavior:contain}
  #view-boardview .olist .ohead{position:sticky;top:0;z-index:2;background-color:var(--panel)}
}
@media (max-width:1100px){
  #view-boardview .kpi{grid-template-columns:repeat(4,minmax(0,1fr))}
  #view-boardview .cols{grid-template-columns:minmax(0,1fr)}
  #view-boardview .side{position:static}
}
@media (max-width:600px){
  #view-boardview .kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  #view-boardview .brow{grid-template-columns:92px minmax(0,1fr) 70px;font-size:12px}
}
@media (min-width:1101px){
  :root{--fit-top:92px}
  #view-boardview,#view-todo,#view-board,#view-system,#view-perms{height:calc(100vh - var(--fit-top))}
    #view-todo .td-split{flex:1 1 auto;min-height:0;align-items:stretch}
  #view-todo .td-queue{overflow-y:auto;min-height:0;overscroll-behavior:contain}
  #view-todo .td-watch{position:static;max-height:none;min-height:0;overflow-y:auto;
    overscroll-behavior:contain}
  #view-board{display:flex;flex-direction:column}
  #view-board .fbar{flex:0 0 auto;margin-bottom:12px}
  #view-board #boardSplit{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  #view-board .panel.gpanel{flex:1 1 auto;min-height:0;margin-top:0;
    display:flex;flex-direction:column;overflow:hidden}
  #view-board #boardList{flex:1 1 auto;min-height:0;max-height:none}
  #view-board .ghead,#view-board .gfoot{flex:0 0 auto}
  #view-system{display:flex;flex-direction:column}
  #view-system #systemContent{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
  #view-system #sysHealth{flex:0 0 auto}
  #view-system .sys-layout{flex:1 1 auto;min-height:0;align-items:stretch}
  #view-system .sys-side{position:static;min-height:0;overflow-y:auto;overscroll-behavior:contain}
  #view-system .sys-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;
    padding:0 14px;margin:0 -14px}
  #view-perms{display:flex;flex-direction:column}
  #view-perms #permsContent{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
  #view-perms .pm-tabs{flex:0 0 auto}
  #view-perms #permBody{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
  #view-perms .pm-layout{flex:1 1 auto;min-height:0;align-items:stretch}
  #view-perms .pm-side{position:static;min-height:0;overflow-y:auto;overscroll-behavior:contain}
  #view-perms .pm-main{min-height:0;overflow-y:auto;overscroll-behavior:contain;
    padding:0 14px;margin:0 -14px}
}
#view-settings .card,
#view-system .card,#view-dbview .card,#view-perms .card,
#view-system .sys-side,#view-system .sys-list,
#view-perms .pm-side,#view-perms .pm-card{border-radius:var(--r-lg);border-color:var(--edge);border-top-color:var(--edge)}
#view-dashboard .hd{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}
#view-dashboard .hd .t{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}
#view-dashboard .hd .sub{font-size:12px;color:var(--hint);white-space:normal;overflow-wrap:anywhere}
#view-dashboard .hd .r{margin-left:auto;display:flex;align-items:center;gap:8px;white-space:nowrap}
:is(#view-dashboard,#view-perf) .delta{display:inline-flex;align-items:baseline;gap:4px;font-size:13px;
  font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
:is(#view-dashboard,#view-perf) .delta .lb{color:var(--muted);font-weight:400}
:is(#view-dashboard,#view-perf) .delta.up{color:var(--good)}
:is(#view-dashboard,#view-perf) .delta.down{color:var(--bad)}
:is(#view-dashboard,#view-perf) .delta.flat{color:var(--muted)}
:is(#view-dashboard,#view-perf) .fbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 13px;
  margin-bottom:12px;border-radius:var(--r-lg);--h-ctl:30px}
:is(#view-dashboard,#view-perf) .fbar .fl{font-size:12px;color:var(--hint);white-space:nowrap}
:is(#view-dashboard,#view-perf) .fbar select,:is(#view-dashboard,#view-perf) .fbar input{height:30px;width:auto;min-height:0;
  border-radius:var(--r-md);background-color:var(--m-ultra);border:1px solid var(--edge);
  color:var(--text);font-size:12.5px;padding:0 10px;box-shadow:none}
:is(#view-dashboard,#view-perf) .fbar input#dKeyword{width:132px}
:is(#view-dashboard,#view-perf) .fbar select:focus,:is(#view-dashboard,#view-perf) .fbar input:focus{outline:none;
  border-color:var(--accent);box-shadow:var(--focus-ring)}
:is(#view-dashboard,#view-perf) .fbar .seg{display:inline-flex;background-color:var(--m-ultra);
  border:1px solid var(--edge);border-radius:var(--r-pill);padding:2px}
:is(#view-dashboard,#view-perf) .fbar .seg button{border:0;background:none;color:var(--muted);font-size:12px;
  padding:5px 12px;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;transition:var(--t-1)}
:is(#view-dashboard,#view-perf) .fbar .seg button.on{background-color:var(--accent);color:#fff;font-weight:600;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.26)}
:is(#view-dashboard,#view-perf) .fbar .sp{margin-left:auto;display:flex;gap:8px;align-items:center}
:is(#view-dashboard,#view-perf) .fbar .filter-date-group{flex:0 0 auto;max-width:none;min-width:0}
:is(#view-dashboard,#view-perf) .fbar .filter-date-group input[type=date]{width:118px;flex:0 0 auto;height:30px;min-height:0}
@media (max-width:1100px){
  :is(#view-dashboard,#view-perf) .fbar .filter-date-group{flex:1 1 150px;min-width:0}
  :is(#view-dashboard,#view-perf) .fbar .filter-date-group input[type=date]{width:auto}
  :is(#view-dashboard,#view-perf) .fbar .sp{margin-left:0;width:100%;justify-content:flex-end}
}
:is(#view-dashboard,#view-perf) .kstrip{display:grid;gap:0;grid-auto-rows:1fr;margin-bottom:12px;
  border-radius:var(--r-lg);background-color:var(--panel2);border:1px solid var(--edge);overflow:hidden;
  box-shadow:0 30px 74px -36px var(--lift),0 2px 6px rgba(0,0,0,.22),inset 0 1px 0 var(--rim-side)}
#view-dashboard .kstrip{grid-template-columns:repeat(6,minmax(0,1fr))}
#view-perf .kstrip{grid-template-columns:repeat(3,minmax(0,1fr))}
:is(#view-dashboard,#view-perf) .kstrip .c{display:flex;flex-direction:column;gap:8px;padding:14px 16px;transition:var(--t-1)}
:is(#view-dashboard,#view-perf) .kstrip .c[onclick]{cursor:pointer}
:is(#view-dashboard,#view-perf) .kstrip .c+.c{border-left:1px solid var(--edge)}
:is(#view-dashboard,#view-perf) .kstrip .c[onclick]:hover{background:var(--m-ultra)}
html[data-theme="light"] #view-boardview .k,
html[data-theme="light"] :is(#view-dashboard,#view-perf) .kstrip{background-color:var(--panel);border-color:var(--border)}
html[data-theme="light"] :is(#view-dashboard,#view-perf) .kstrip .c+.c{border-left-color:var(--border)}
html[data-theme="light"] :is(#view-dashboard,#view-perf) .kstrip .c:nth-child(n+3){border-top-color:var(--border)}
html[data-theme="light"] :is(#view-dashboard,#view-perf) .kstrip .c[onclick]:hover{background:var(--panel2)}
:is(#view-dashboard,#view-perf) .kstrip .cap{font-size:12px;color:var(--hint);white-space:nowrap}
:is(#view-dashboard,#view-perf) .kstrip .row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}
:is(#view-dashboard,#view-perf) .kstrip .v{font-size:var(--fs-display);font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
:is(#view-dashboard,#view-perf) .kstrip .v.r{color:var(--bad)}
:is(#view-dashboard,#view-perf) .kstrip .v.g{color:var(--good)}
:is(#view-dashboard,#view-perf) .kstrip .v.m{color:var(--muted)}
@media (max-width:1100px){
  :is(#view-dashboard,#view-perf) .kstrip>.c:last-child:nth-child(odd){grid-column:1/-1;border-left:0}
}
#view-dashboard .three{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.95fr);
  gap:12px;margin-bottom:12px}
#view-dashboard .three>.panel{display:flex;flex-direction:column}
#view-dashboard .gbars{display:flex;flex-direction:column;gap:19px}
#view-dashboard .gb{display:grid;grid-template-columns:var(--lw,120px) minmax(0,1fr);gap:11px;align-items:center}
#view-dashboard .gb .lb{font-size:13px;color:var(--text-2);white-space:normal;overflow-wrap:anywhere}
#view-dashboard .gb .pr{display:flex;flex-direction:column;gap:4px}
#view-dashboard .gb .ln{display:flex;align-items:center;gap:7px}
#view-dashboard .gb .ln b{font-size:12px;color:var(--hint);font-weight:600;width:26px;flex:0 0 auto;white-space:nowrap}
#view-dashboard .gb .ln .tr{flex:1;height:9px;border-radius:var(--r-pill);background:var(--track);overflow:hidden}
#view-dashboard .gb .ln .tr i{display:block;height:100%;border-radius:var(--r-pill)}
#view-dashboard .gb .ln.now .tr i{background:var(--accent)}
#view-dashboard .gb .ln.pv .tr i{background:var(--track-fill)}
#view-dashboard .gb .ln em{font-style:normal;font-variant-numeric:tabular-nums;font-size:12px;
  color:var(--text);width:32px;flex:0 0 auto;text-align:right}
#view-dashboard .gb .ln.pv em{color:var(--hint)}
#view-dashboard .three>.panel:nth-child(2)>.hd{position:static;margin:0 0 12px}
#view-dashboard .three>.panel:nth-child(2){padding-bottom:47px}
#view-dashboard .three>.panel>.donut-wrap{margin-top:auto;margin-bottom:auto}
#view-dashboard .three>.panel>.brandbars{margin-top:auto}
#view-dashboard .three>.panel>.empty{margin-top:auto}
#view-dashboard .three>.panel>.brandbars+.dlist{margin-bottom:auto}
#view-dashboard .three>.panel>.empty+.dlist{margin-bottom:auto}
#view-dashboard .donut-wrap{display:flex;align-items:center;gap:18px}
#view-dashboard .donut{flex:0 0 auto;line-height:0}
#view-dashboard .donut svg{display:block}
#view-dashboard .donut text{font-variant-numeric:tabular-nums}
#view-dashboard .brandbars+.dlist{margin-top:14px}
#view-dashboard .dlist{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
#view-dashboard .dlist .it{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:9px;
  align-items:center;font-size:13px}
#view-dashboard .dlist .it i{width:10px;height:10px;border-radius:3px;display:block}
#view-dashboard .dlist .it .nm{color:var(--text-2);white-space:normal;overflow-wrap:anywhere}
#view-dashboard .dlist .it .v{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}
#view-dashboard .dlist .it .p{font-variant-numeric:tabular-nums;color:var(--hint);font-size:12px;min-width:44px;
  text-align:right;white-space:nowrap}
#view-dashboard .three>.panel.cycle>.hd{flex-wrap:wrap}
#view-dashboard .cycle .ccg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
  margin-top:auto;margin-bottom:auto;min-height:0}
#view-dashboard .cycle .ccg>.empty{grid-column:1/-1}
#view-dashboard .cycle .cc{display:flex;flex-direction:column;gap:5px;padding:10px;min-width:0;
  border:1px solid var(--border);border-radius:12px;overflow:hidden}
#view-dashboard .cycle .cc .nm{font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden}
#view-dashboard .cycle .cc .v{font-size:22px;font-weight:700;line-height:1;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:var(--text)}
#view-dashboard .cycle .cc .v small{font-size:12px;font-weight:600;color:var(--hint);margin-left:2px;letter-spacing:0}
#view-dashboard .cycle .cc .mb{height:6px;border-radius:var(--r-pill);background:var(--track);overflow:hidden}
#view-dashboard .cycle .cc .mb i{display:block;height:100%;border-radius:var(--r-pill);background:var(--accent)}
#view-dashboard .cycle .cc .mt{font-size:12px;color:var(--hint);font-variant-numeric:tabular-nums;white-space:nowrap}
#view-dashboard .cycle .cc.hot{border-color:var(--ba-soft)}
#view-dashboard .cycle .cc.hot .v{color:var(--bad)}
#view-dashboard .cycle .cc.hot .mb i{background:var(--bad)}
html[data-theme="light"] #view-dashboard .cycle .cc .mb{background:var(--border)}
@media (min-width:1101px) and (max-width:1365px){
  #view-dashboard .cycle .ccg{grid-template-columns:repeat(2,minmax(0,1fr))}
}
:is(#view-dashboard,#view-perf) table.tb{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}
:is(#view-dashboard,#view-perf) table.tb th{font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--hint);
  text-align:center;padding:0 10px 8px;white-space:nowrap}
:is(#view-dashboard,#view-perf) table.tb th:first-child,:is(#view-dashboard,#view-perf) table.tb th:nth-child(2){text-align:center}
:is(#view-dashboard,#view-perf) table.tb td{padding:8px 10px;border-top:1px solid var(--hair);text-align:center;
  font-variant-numeric:tabular-nums;color:var(--text-2);white-space:nowrap}
:is(#view-dashboard,#view-perf) table.tb td:first-child{text-align:center;color:var(--hint);font-size:12px}
:is(#view-dashboard,#view-perf) table.tb td:nth-child(2){text-align:center;color:var(--text);white-space:normal;overflow-wrap:anywhere}
:is(#view-dashboard,#view-perf) table.tb tr.clk{cursor:pointer}
:is(#view-dashboard,#view-perf) table.tb tr.clk:hover td{background:var(--m-ultra)}
@media (max-width:1100px){
  :is(#view-dashboard,#view-perf) .kstrip{grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(#view-dashboard,#view-perf) .kstrip .c:nth-child(3){border-left:0}
  :is(#view-dashboard,#view-perf) .kstrip .c:nth-child(n+3){border-top:1px solid var(--edge)}
  #view-dashboard .three{grid-template-columns:minmax(0,1fr)}
  #view-dashboard .three>.panel:nth-child(2)>.hd{position:static;margin:0 0 12px}
  #view-dashboard .three>.panel>.donut-wrap{margin-top:0;margin-bottom:0}
  #view-dashboard .three>.panel:nth-child(2){padding-bottom:14px}
  #view-dashboard .three>.panel>.brandbars{margin-top:0}
  #view-dashboard .three>.panel>.empty{margin-top:0}
  #view-dashboard .three>.panel>.brandbars+.dlist{margin-bottom:0}
  #view-dashboard .three>.panel>.empty+.dlist{margin-bottom:0}
}
@media (max-width:600px){
  :is(#view-dashboard,#view-perf) .kstrip{grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(#view-dashboard,#view-perf) .kstrip .c:nth-child(3){border-left:0}
  :is(#view-dashboard,#view-perf) .kstrip .c:nth-child(n+3){border-top:1px solid var(--edge)}
}
#view-board{--row:44px}
#view-board .fbar{padding:12px 14px;--h-ctl:30px;--h-btn:30px}
#view-board .frow{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
#view-board .frow+.frow{margin-top:10px;padding-top:10px;border-top:1px solid var(--hair)}
#view-board .fsearch{flex:0 1 360px;max-width:360px;min-width:220px;height:var(--h-ctl);border-radius:var(--r-pill);
  background-color:var(--m-ultra);border:1px solid var(--edge);display:flex;align-items:center;gap:8px;
  padding:0 13px;box-shadow:inset 0 1px 0 var(--rim-bot)}
#view-board .fsearch svg{width:14px;height:14px;flex:0 0 auto;fill:none;stroke:var(--muted);
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#view-board .fsearch input{flex:1;min-width:0;height:auto;width:auto;padding:0;font-size:13px;
#view-board .fsearch input{height:100%}
  background:transparent!important;border:none!important;box-shadow:none!important;border-radius:0;color:var(--text)}
#view-board .frow select{width:auto;min-width:0;flex:0 0 auto;height:var(--h-ctl);min-height:0}
#view-board .frow .filter-date-group{flex:0 0 auto;max-width:none;min-width:0}
#view-board .frow .filter-date-group input[type=date]{width:auto;flex:0 0 auto;height:var(--h-ctl);min-height:0}
@media (max-width:600px){
  #view-board .frow select,#view-board .frow .filter-date-group{flex:1 1 140px;min-width:0}
}
#view-board .fsearch input:focus{background:transparent!important;border:none!important;
  box-shadow:none!important;outline:none!important}
#view-board .fsearch:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}
html[data-theme="light"] #view-board .fsearch{background-color:var(--panel);border-color:var(--border);
  box-shadow:0 1px 2px rgba(16,24,40,.05)}
html[data-theme="light"] #view-board .fsearch:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}
.fdate{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto}
#view-board .frow .lab{font-size:12px;color:var(--hint);white-space:nowrap}
#view-board .frow .sp{margin-left:auto}
#view-board .chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
#view-board .chip{display:inline-flex;align-items:center;gap:7px;height:27px;padding:0 9px;
  border-radius:var(--r-pill);background:var(--accent-soft);
  border:1px solid color-mix(in srgb,var(--accent) 36%,transparent);color:var(--accent-text);
  font-size:12px;white-space:nowrap;cursor:pointer}
#view-board .chip i{font-style:normal;opacity:.75;font-size:13px;line-height:1}
#view-board .chip:hover i{opacity:1}
#view-board .chip.q{background:var(--m-ultra);border-color:var(--edge);color:var(--text-2)}
#view-board .chip.q:hover{border-color:var(--border-strong)}
#view-board .chip.q.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 46%,transparent);color:var(--accent-text)}
#view-board .gpanel{margin-top:12px;overflow:hidden}
#view-board .ghead{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--edge);
  background:var(--m-ultra);white-space:nowrap}
#view-board .ghead .ttl{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--muted)}
#view-board .ghead .n{font:600 12px/1 var(--mono);color:var(--text-2);background:var(--track);
  border-radius:var(--r-pill);padding:4px 9px}
#view-board .ghead .sp{margin-left:auto}
#view-board .ghead .lab{font-size:12px;color:var(--hint)}
#view-board .seg{display:inline-flex;background:var(--m-ultra);border:1px solid var(--edge);
  border-radius:var(--r-pill);padding:2px}
#view-board .seg button{border:0;background:none;color:var(--muted);font-size:12px;padding:5px 13px;
  border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;transition:var(--t-1)}
#view-board .seg button.on{background:var(--accent);color:#fff;font-weight:600;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.26)}
#view-board .gwrap{overflow:auto;max-height:calc(100vh - 430px)}
#view-board .gfoot{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--edge);
  font-size:12px;color:var(--hint);white-space:nowrap}
#view-board .gfoot .sp{margin-left:auto}
#view-board table.dtable{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
#view-board table.dtable th,#view-board table.dtable td{padding:0 12px;height:var(--row);text-align:center;
  white-space:nowrap;overflow:hidden;font-size:13px;vertical-align:middle}
#view-board table.dtable thead th{position:sticky;top:0;z-index:1;height:34px;font-size:12px;font-weight:600;
  color:var(--muted);letter-spacing:.04em;background:var(--panel2);border-bottom:1px solid var(--edge)}
#view-board table.dtable thead th.sortable{cursor:pointer;user-select:none}
#view-board table.dtable thead th.sortable:hover{color:var(--text-2)}
#view-board table.dtable thead th i{font-style:normal;margin-left:5px;opacity:.45;font-size:12px}
#view-board table.dtable thead th.on{color:var(--accent-text)}
#view-board table.dtable thead th.on i{opacity:1}
#view-board table.dtable thead th i:empty{display:none}
#view-board table.dtable tbody tr{border-bottom:1px solid var(--hair);cursor:pointer;transition:background-color var(--t-1)}
#view-board table.dtable tbody tr:last-child{border-bottom:0}
#view-board table.dtable tbody tr:hover{background:var(--m-ultra)}
#view-board table.dtable tbody tr.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
#view-board table.dtable td.num,#view-board table.dtable th.num{text-align:center;font-variant-numeric:tabular-nums}
#view-board .ono{font:600 13px/1 var(--mono);color:var(--text)}
#view-board .tagx{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:var(--r-pill);
  font-size:12px;font-weight:600;white-space:nowrap;vertical-align:1px}
#view-board .tagx.urgent{background:var(--bad);color:#fff}
#view-board .stay{display:inline-flex;align-items:center}
#view-board .stay .t{font-variant-numeric:tabular-nums;color:var(--text-2)}
#view-board .stay.w .t{color:var(--warn)}
#view-board .stay.b .t{color:var(--bad)}
#view-board .due{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;
  border-radius:var(--r-pill);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
#view-board .due.ok{background:var(--ok-soft);color:var(--good)}
#view-board .due.soon{background:var(--wa-soft);color:var(--warn)}
#view-board .due.ov{background:var(--ba-soft);color:var(--bad)}
#view-board .due.mut{background:var(--m-ultra);color:var(--muted)}
#view-board .gwrap .load-more{text-align:center;padding:12px;color:var(--text-2);cursor:pointer;
  font-size:13px;border-top:1px solid var(--hair)}
#view-board .gwrap .load-more:hover{background:var(--m-ultra)}
#view-board .gwrap .load-more.done{cursor:default;color:var(--hint)}
#view-board .gwrap .load-more.done:hover{background:transparent}
#view-board .gwrap .empty{padding:26px;text-align:center;color:var(--hint);font-size:13px}
#view-board #detpane.drawer{position:fixed;top:var(--pane-top,var(--sp-4));bottom:var(--sp-4);
  left:calc(100% - 520px - var(--sp-4));width:520px;z-index:6;
  transition:left var(--t-view) cubic-bezier(.2,.8,.2,1),width var(--t-view) cubic-bezier(.2,.8,.2,1);
  display:flex;flex-direction:column;padding:0;overflow:hidden;
  border:1px solid var(--edge);border-radius:var(--r-xl);
  background-color:var(--m-thin);
  background-image:linear-gradient(90deg,transparent,var(--rim-line) 12%,var(--rim-line) 88%,transparent);
  background-size:100% 1px;background-position:0 0;background-repeat:no-repeat;
  -webkit-backdrop-filter:blur(18px) saturate(1.8);backdrop-filter:blur(18px) saturate(1.8);
  box-shadow:inset 1px 0 0 var(--rim-side),inset -1px 0 0 var(--rim-side),
    inset 0 -1px 0 var(--rim-bot),0 16px 40px -18px var(--lift)}
#view-board #detpane .dhead{display:flex;align-items:center;gap:9px;padding:13px 15px;
  border-bottom:1px solid var(--edge);flex:0 0 auto}
#view-board #detpane #dpaneBody{flex:1;min-height:0;overflow-y:auto;padding:14px 15px}
#view-board #detpane .close{margin-left:8px}
#view-board #detpane .detail-summary{grid-template-columns:repeat(2,1fr)}
#view-board #detpane .detail-summary.c5{grid-template-columns:repeat(3,1fr)}
#view-board #detpane .detail-summary.c6{grid-template-columns:repeat(3,1fr)}
#view-board #detpane.drawer.wide{
  left:var(--pane-left,232px);
  width:calc(100% - var(--pane-left,232px) - var(--sp-4));
  min-width:520px}
#view-board #detpane.drawer.wide .detail-summary{grid-template-columns:repeat(4,1fr)}
#view-board #detpane.drawer.wide .detail-summary.c5{grid-template-columns:repeat(5,1fr)}
#view-board #detpane.drawer.wide .detail-summary.c6{grid-template-columns:repeat(6,1fr)}
#view-board #detpane .dpane-wide{display:inline-flex;align-items:center;height:24px;padding:0 10px;
  margin-left:auto;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--panel2);
  color:var(--text-2);font-size:12px;line-height:1;white-space:nowrap;cursor:pointer;flex:0 0 auto}
#view-board #detpane .dpane-wide:hover{background:var(--m-reg);color:var(--text)}
@media (max-width:820px){
  #view-board #detpane.drawer{top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;
    border:0;border-radius:0;background-color:var(--panel);
    -webkit-backdrop-filter:none;backdrop-filter:none;
    box-shadow:-30px 0 70px -30px var(--lift)}
  #view-board .gwrap{max-height:calc(100vh - 470px)}
  #view-board #detpane .dpane-wide{display:none}
  #view-board #detpane.drawer.wide{left:0;width:100%;min-width:0}
}
@media (max-width:600px){
  #view-board .fsearch{flex:1 1 100%}
  #view-board .gwrap{max-height:none}
}
@media (max-width:820px){
  .vcard .vc-sub{min-width:0}
  .vcard .vc-sub .s{white-space:normal;overflow-wrap:anywhere;min-width:0}
  .vcard .vc-sub .cust{max-width:100%}
}
@media (max-width:820px){
  :is(#view-dashboard,#view-perf) .kstrip .c{min-width:0}
  :is(#view-dashboard,#view-perf) .kstrip .row{flex-wrap:wrap;min-width:0}
  :is(#view-dashboard,#view-perf) .delta{white-space:nowrap}
  :is(#view-dashboard,#view-perf) table.tb th:last-child,:is(#view-dashboard,#view-perf) table.tb td:last-child{min-width:84px}
  :is(#view-dashboard,#view-perf) table.tb{table-layout:auto}
  :is(#view-dashboard,#view-perf) table.tb th,:is(#view-dashboard,#view-perf) table.tb td{white-space:normal;overflow-wrap:anywhere;
    padding-left:4px;padding-right:4px}
  :is(#view-dashboard,#view-perf) table.tb td:nth-child(2){overflow:visible;text-overflow:clip}
  #view-board .fsearch{flex:1 1 100%;max-width:none;min-width:0}
  .btn,#view-order .oe-acts .btn{min-height:var(--h-btn)}
  #view-boardview .brow{min-height:44px}
  .bar-row{min-height:44px}
  #view-order .oe-addrow{min-height:44px}
  #view-order .rowx{position:relative}
  #view-order .rowx::before{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;
    transform:translate(-50%,-50%)}
  #view-board .fbar select,#view-board .fbar input,#view-board .fbar button:not(.btn),
  :is(#view-dashboard,#view-perf) .fbar select,:is(#view-dashboard,#view-perf) .fbar input,:is(#view-dashboard,#view-perf) .fbar button:not(.btn){height:44px;min-height:44px}
  #view-board .chip,#view-dashboard .chip{min-height:44px;display:inline-flex;align-items:center}
  .sys-row .sys-del{min-width:44px;min-height:44px}
  .pm-gh a,.pm-row a{min-width:44px;min-height:44px;justify-content:center}
  #view-order .oe-urg{min-height:44px;display:inline-flex;align-items:center}
  #view-order .oe-acts{flex-wrap:wrap}
  #view-dashboard .gb[data-order-type]{min-height:44px}
  #view-dashboard .dlist .it[data-brand]{min-height:44px}
  .todo-fu .tf-item{min-height:44px}
  #view-system .sys-row .sys-del{min-height:44px}
  #view-perms .btn:not(.btn--sm){min-height:var(--h-btn)}
}
.ss-types{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px}
.ss-type{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text);white-space:nowrap}
@media (prefers-reduced-motion:reduce){
  .skel-line,
  .btn.is-loading::after,
  .overlay:not(.hidden),.overlay:not(.hidden)>.sheet,
  #moreNavMask:not(.hidden),#moreNavMask:not(.hidden) .more-nav-box,
  main>[id^="view-"]:not(.hidden),.date-pop:not(.hidden),
  #cloudDown:not(.hidden),.net-banner:not(.hidden),
  #modal:not(.hidden)>.sheet{animation:none}
  .btn.is-loading::after{border-top-color:transparent;opacity:.5}
  html[data-theme="light"] .btn.is-loading::after{border-top-color:transparent}
  *,*::before,*::after{
    transition-property:color,background-color,border-color,outline-color,
      text-decoration-color,fill,stroke,box-shadow,opacity!important;
  }
}
.btn{--c:#41B5C2}
.btn--p{--c:#5A92E5;background:#F0F5FD;border-color:#BAD1F4;color:#2E466C}
.btn--i{--c:#003D37;background:#E8EEED;border-color:#94AEAB;color:#0A2426}
.btn--s{--c:#6FBA2C;background:#F2F9EC;border-color:#C3E2A6;color:#365622}
.btn--w{--c:#FACA2E;background:#FFFAEC;border-color:#FDE9A7;color:#6E5D23}
.btn--d{--c:#D4042D;background:#FBE8EC;border-color:#E56881;color:#5E0E22}
.btn--x{--c:#B67EDC;background:#F8F3FC;border-color:#E0C9F0;color:#523E68}
.btn--n{--c:#41B5C2;background:#EEF8FA;border-color:#AFE0E5;color:#24545E}
.btn{
  position:relative;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  height:var(--h-btn);padding:0 var(--sp-4);border-radius:var(--r-md);
  font-family:inherit;font-size:var(--fs-md);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;
  background:color-mix(in srgb, var(--c) 9%, #fff);
  border:1px solid color-mix(in srgb, var(--c) 42%, #fff);
  color:color-mix(in srgb, var(--c) 40%, #10141B);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    0 1px 2px color-mix(in srgb, var(--c) 12%, transparent),
    0 0 14px -4px color-mix(in srgb, var(--c) 40%, transparent);
  transition:
    background-color var(--t-1), border-color var(--t-1),
    color var(--t-1), filter var(--t-1);
}
.btn:hover{
  background:color-mix(in srgb, var(--c) 16%, #fff);
  border-color:color-mix(in srgb, var(--c) 58%, #fff);
  transform:translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    0 0 0 3px color-mix(in srgb, var(--c) 10%, transparent),
    0 2px 4px color-mix(in srgb, var(--c) 18%, transparent),
    0 0 22px -3px color-mix(in srgb, var(--c) 55%, transparent);
}
.btn--d{border-color:color-mix(in srgb, var(--c) 60%, #fff)}
.btn:active{
  transform:translateY(1px);
  background:color-mix(in srgb, var(--c) 22%, #fff);
  box-shadow:inset 0 2px 4px color-mix(in srgb, var(--c) 25%, transparent);
}
.btn:focus-visible{outline:2px solid color-mix(in srgb, var(--c) 70%, #000);outline-offset:2px}
.btn:disabled{opacity:.38;cursor:not-allowed;filter:grayscale(.5);transform:none !important;box-shadow:none !important}
.btn--solid{
  background:linear-gradient(180deg,
    color-mix(in srgb, var(--c) 92%, #fff) 0%,
    var(--c) 100%);
  border-color:color-mix(in srgb, var(--c) 75%, #000);
  color:#fff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    0 1px 2px color-mix(in srgb, var(--c) 12%, transparent),
    0 0 14px -4px color-mix(in srgb, var(--c) 40%, transparent);
}
.btn--solid:hover{
  background-image:linear-gradient(180deg,
    color-mix(in srgb, var(--c) 96%, #fff) 0%,
    color-mix(in srgb, var(--c) 90%, #000) 100%);
  transform:translateY(-1px);
}
.btn--solid:active{
  background-image:linear-gradient(180deg,
    color-mix(in srgb, var(--c) 88%, #fff) 0%,
    color-mix(in srgb, var(--c) 96%, #000) 100%);
  transform:translateY(1px);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.18);
}
.btn--sm{height:var(--h-btn-sm);padding:0 var(--sp-3);font-size:var(--fs-xs);border-radius:var(--r-sm)}
.btn--lg{height:50px;font-size:var(--fs-lg);font-weight:600;border-radius:var(--r-lg)}
.btn-block{width:100%;margin-top:8px}
@media (max-width:820px){
  .btn{height:var(--h-btn);min-height:var(--h-btn);font-weight:600;position:relative}
  .btn::before{content:"";position:absolute;inset:-4px}
  .btn--sm{height:var(--h-btn-sm);min-height:44px}
  .btn--sm::before{inset:0}
  .btn--lg{height:50px;min-height:50px}
  .btn--lg::before{inset:0}
  .fbar .btn:not(.btn--sm)::before{inset:-7px}
}
html[data-theme="light"] .login-logos img,
html[data-theme="light"] .app-logos img,
.login-logos img,
.app-logos img{filter:none}
.nf{display:flex;flex-direction:column;align-items:center;gap:20px;position:relative;z-index:1;text-align:center}
.nf-code{font-size:64px;font-weight:700;color:var(--text);line-height:1;letter-spacing:2px}
.nf-desc{font-size:15px;color:var(--text-2);margin:0}
.nf .btn--lg{min-width:160px;margin-top:4px}
.sk{display:flex;flex-direction:column;gap:8px;padding:16px}
.sk-row{height:13px;border-radius:6px;
  background:linear-gradient(90deg,#EEF1F6 25%,#F6F8FB 37%,#EEF1F6 63%);
  background-size:400% 100%;animation:shimmer 1.2s ease-in-out infinite}
.sk-row:nth-child(2){width:72%}
.sk-row:nth-child(3){width:45%}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.loading-txt,.fail-txt{display:flex;align-items:center;justify-content:center;gap:8px;
  padding:32px 16px;color:var(--text-2);font-size:13px;text-align:center}
.loading-txt::before{content:"";flex:0 0 auto;width:16px;height:16px;
  border:2px solid currentColor;border-top-color:transparent;border-radius:50%;
  animation:spin .7s linear infinite}
.fail-txt{color:var(--muted)}
@media (prefers-reduced-motion:reduce){.loading-txt::before{animation-duration:2.4s}}
.tbl{width:100%;border-collapse:collapse;font-size:12px}
.tbl th{height:28px;padding:0 8px 8px;font-weight:600;color:var(--text-2);background:transparent;text-align:center;border-bottom:1px solid var(--border)}
.tbl td{height:38px;padding:4px;color:var(--text);text-align:center;border-bottom:none}
.wt-block{display:flex;flex-direction:column;gap:10px;max-width:560px}
.wt-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wt-line>label{flex:0 0 44px;color:var(--muted);font-size:var(--fs-sm)}
.wt-line input[type=time]{width:132px;flex:0 0 auto}
.wt-dash{color:var(--muted);flex:0 0 auto}
.wt-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.wt-add input[type=text]{width:150px}
.wt-add input[type=date]{width:158px}
.wt-add .date-trigger{width:158px;flex:0 0 auto}
.wt-hds{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-width:560px}
.wt-hd{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 12px;border:1px solid var(--border);
  border-radius:var(--r-md);background:var(--panel2);font-size:var(--fs-sm);min-height:44px}
.wt-hd .n{flex:1 1 auto;min-width:0;color:var(--text);overflow-wrap:anywhere}
.wt-hd .d{flex:0 0 auto;color:var(--muted);white-space:nowrap}
.wt-hd .btn{flex:0 0 auto}
@media(max-width:820px){
  .wt-line>label{flex:0 0 100%}
  .wt-line input[type=time]{width:calc(50% - 20px)}
  .wt-add input[type=text],.wt-add input[type=date],.wt-add .date-trigger{width:100%}
  .wt-add .btn{width:100%}
  .wt-hd{flex-wrap:wrap;gap:4px 10px}
  .wt-hd .n{flex:1 1 100%}
  .wt-hd .d{flex:1 1 auto;white-space:normal}
}
.item.cj-item{flex-wrap:wrap}
.item.cj-item>.cj-row{flex:0 0 100%}
.cj-row{display:flex;align-items:center;gap:8px;margin:2px 0 4px}
.cj-lab{flex:0 0 auto;font-size:var(--fs-sm);color:var(--muted)}
.cj-row .df-inp{width:auto;flex:0 1 190px;min-width:140px;height:var(--h-ctl)}
.item.cj-item>.cj-fail{flex:0 0 100%;display:flex;gap:8px;flex-wrap:wrap;margin:0 0 6px}
.cj-fail .cj-f-lbl{flex:0 0 100%;font-size:var(--fs-sm);color:var(--muted);margin:0 0 2px}
.cj-fail .cj-f-lbl .req{color:var(--bad);font-style:normal;margin-left:2px;font-weight:600}
.cj-fail .df-inp{width:auto;flex:1 1 200px;min-width:0;height:var(--h-ctl)}
@media(max-width:820px){
  .cj-row .df-inp{flex:1 1 auto;min-width:0}
  .cj-fail .df-inp{flex:1 1 100%}
}