:root{--theme: #00BFA6;--theme-strong: #00796B;--theme-weak: rgba(0, 191, 166, .1);--ink: #0b1220;--ink-2: #11182a;--bg: #f4f7fa;--surface: #ffffff;--surface-2: #eef2f6;--surface-3: #e3e9f0;--surface-glass: rgba(255, 255, 255, .72);--surface-glass-strong: rgba(255, 255, 255, .96);--border-light: #f0eef5;--border: #e6ebf1;--border-strong: #d4dce6;--text-1: #0e2430;--text-2: #33505e;--text-3: #54707e;--text-4: #8a93a3;--gradient-start: #f7f9ff;--gradient-mid: #fbf9ff;--gradient-end: #f5f3ff;--ok: #2bb98a;--ok-ink: #0f7a5c;--ok-bg: #eafaf1;--warn: #c07a1f;--warn-ink: #8a5612;--warn-bg: #fef9e6;--danger: #e5484d;--danger-ink: #a32d2d;--danger-bg: #fef0ef;--info: #3aa8f0;--info-ink: #05547f;--info-bg: #e8f1ff;--c-admin: var(--theme);--c-sales: #2bb98a;--c-merch: #c07a1f;--c-finance: #7a6cf0;--c-factory: #0ea5a4;--c-chairman: #2f3e5c;--r-4: 4px;--r-6: 6px;--r-sm: 8px;--r-ctrl: 12px;--r-card: 18px;--r-pill: 100px;--shadow-sm: 0 1px 2px rgba(3, 34, 56, .05), 0 1px 6px rgba(3, 34, 56, .03);--shadow: 0 2px 8px rgba(3, 34, 56, .05), 0 8px 24px rgba(3, 34, 56, .04);--shadow-1: 0 24px 60px -20px rgba(3, 34, 56, .28);--shadow-2: 0 4px 14px rgba(3, 34, 56, .06);--shadow-3: inset 0 1px 0 rgba(255, 255, 255, .9);--glass-blur: blur(20px) saturate(150%);--glass-blur-strong: blur(24px) saturate(150%);--focus-ring: 0 0 0 4px color-mix(in srgb, var(--theme) 20%, transparent);--dur-fast: .12s;--dur-base: .16s;--dur-slow: .2s;--dur-ripple: .4s;--ease: cubic-bezier(.32, .72, .28, 1);--font-mono: "SFMono-Regular", Consolas, "Courier New", monospace;--fs-11: 11px;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-22: 22px;--fs-28: 28px;--text: var(--text-1);--shadow-card: var(--shadow-1), var(--shadow-2), var(--shadow-3);--primary: var(--theme);--primary-weak: var(--theme-weak);--primary-strong: var(--theme-strong);--shadow-lg: var(--shadow-card);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--duration-page: .4s;--ease-out-quart: var(--ease);--ease-out-quint: var(--ease);--dur-ui: var(--dur-base);--ease-ui: var(--ease)}*{box-sizing:border-box}html,body{margin:0;height:100%}@font-face{font-family:HarmonyOS Sans;src:url(/dashboard/fonts/HarmonyOS_Sans_SC_Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:HarmonyOS Sans;src:url(/dashboard/fonts/HarmonyOS_Sans_SC_Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:HarmonyOS Sans;src:url(/dashboard/fonts/HarmonyOS_Sans_SC_Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:HarmonyOS Sans;src:url(/dashboard/fonts/HarmonyOS_Sans_Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:HarmonyOS Sans;src:url(/dashboard/fonts/HarmonyOS_Sans_Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:HarmonyOS Sans;src:url(/dashboard/fonts/HarmonyOS_Sans_Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}body{font-family:HarmonyOS Sans,-apple-system,PingFang SC,Microsoft YaHei,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,var(--gradient-start) 0%,var(--gradient-mid) 50%,var(--gradient-end) 100%);background-attachment:fixed;color:var(--text);font-size:var(--fs-14);-webkit-font-smoothing:antialiased}.muted{color:var(--text-2)}button,input,select,textarea{font-family:inherit}button{cursor:pointer}#login{--tl-ink:var(--text-1);--tl-ink2:var(--text-2);--tl-muted:var(--text-3);--tl-theme:var(--theme);--tl-theme-ring:rgba(0,191,166,.2);--tl-card:rgba(255,255,255,.6);--tl-card-border:rgba(255,255,255,.85);--tl-ico:#8aa4b0;--tl-ph:#9db4bf;--tl-r-lg:28px;--tl-r-sm:13px;--tl-ease:cubic-bezier(.32,.72,.28,1);position:fixed;inset:0;z-index:var(--zi-modal);overflow-y:auto;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:url(/dashboard/assets/login-bg.svg) center / cover no-repeat,linear-gradient(128deg,var(--info-ink) 0%,var(--theme-strong) 42%,var(--theme) 74%,var(--info) 100%);color:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden}#login *{box-sizing:border-box}#login::selection{background:#ffffff4d}#login .tl-grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#login .tl-topbar{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:28px clamp(20px,4vw,44px)}#login .tl-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}#login .tl-brand-icon{border-radius:var(--r-ctrl);box-shadow:0 6px 18px #031e3259,inset 0 1px #ffffff26}#login .tl-brand-name{font-size:var(--fs-16);font-weight:700;letter-spacing:.02em;text-shadow:0 1px 3px rgba(3,30,50,.25);line-height:var(--lh-tight)}#login .tl-brand-name small{display:block;font-size:var(--fs-12);font-weight:600;color:#ffffffbf;letter-spacing:.26em;margin-top:4px}#login .tl-top-actions{display:flex;gap:8px}#login .tl-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-pill);font-size:var(--fs-13);font-weight:500;color:#fff;text-decoration:none;cursor:pointer;background:#ffffff29;border:1px solid rgba(255,255,255,.32);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);box-shadow:0 2px 12px #031e321f,inset 0 1px #ffffff40;transition:transform .3s var(--tl-ease),background .3s,box-shadow .3s;text-shadow:0 1px 2px rgba(3,30,50,.2)}#login .tl-pill:hover{transform:translateY(-1px);background:#ffffff42;box-shadow:0 6px 18px #031e322e,inset 0 1px #ffffff4d}#login .tl-pill:active{transform:scale(.96)}#login .tl-main{position:relative;z-index:2;flex:1 1 auto;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 460px;align-items:center;gap:clamp(40px,7vw,110px);padding:12px clamp(40px,8vw,160px) 44px}#login .tl-left{flex:0 1 auto;max-width:620px;margin-right:auto}#login .tl-left .tl-hero{text-align:left;margin-bottom:0}#login .tl-left .tl-hero h1{font-size:clamp(34px,3.6vw,54px)}#login .tl-left .tl-hero p{font-size:16px}#login .tl-left-tag{margin-top:22px;display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;letter-spacing:.06em;color:#ffffffd9;padding:10px 18px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px)}@media(max-width:820px){#login .tl-main{grid-template-columns:1fr;gap:18px}#login .tl-left{max-width:460px;width:100%}#login .tl-left .tl-hero{text-align:center}#login .tl-left .tl-hero h1{font-size:clamp(28px,6vw,40px)}#login .tl-left-tag{display:none}}#login .tl-hero{text-align:center;margin-bottom:32px;animation:tlRise .8s .05s var(--tl-ease) both}#login .tl-greet-date{font-size:var(--fs-13);color:#fffc;font-weight:500;letter-spacing:.08em;margin-bottom:12px;text-shadow:0 1px 2px rgba(3,30,50,.25)}#login .tl-hero h1{font-size:clamp(30px,4.4vw,42px);font-weight:800;letter-spacing:-.015em;line-height:var(--lh-tight);text-shadow:0 2px 10px rgba(3,30,50,.28)}#login .tl-hero h1 .tl-accent{background:linear-gradient(100deg,#ffffff 20%,var(--info) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 8px rgba(3,30,50,.25))}#login .tl-hero p{margin-top:12px;font-size:var(--fs-14);color:#ffffffe0;letter-spacing:.02em;text-shadow:0 1px 3px rgba(3,30,50,.3)}#login .tl-hero p b{color:#fff;font-weight:600}#login .tl-glass-wrap{position:relative;flex:0 0 auto;width:min(460px,100%);margin-left:auto;animation:tlRise .8s var(--dur-base) var(--tl-ease) both}#login .tl-glass-wrap:after{content:"";position:absolute;inset:0 -22px -30px;z-index:-1;border-radius:40px;background:radial-gradient(60% 55% at 50% 60%,rgba(3,40,66,.32),transparent 75%);filter:blur(14px)}#login .tl-glass{position:relative;border-radius:var(--tl-r-lg);padding:44px 40px 40px;background:var(--tl-card);border:1px solid var(--tl-card-border);-webkit-backdrop-filter:blur(36px) saturate(180%);backdrop-filter:blur(36px) saturate(180%);box-shadow:0 30px 80px -20px #03223873,0 4px 18px #0322381a,inset 0 1px #fffffff2;overflow:hidden;color:var(--tl-ink)}#login .tl-glass:before{content:"";position:absolute;top:0;left:8%;right:8%;height:1.5px;background:linear-gradient(90deg,transparent,rgba(255,255,255,1),transparent)}#login .tl-sheen{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s;background:radial-gradient(460px circle at var(--sx,50%) var(--sy,0%),rgba(255,255,255,.55),transparent 42%)}#login .tl-glass:hover .tl-sheen{opacity:1}#login .tl-panel{display:none}#login .tl-panel.active{display:block;animation:tlFadeIn .4s var(--tl-ease)}@keyframes tlFadeIn{0%{opacity:0;transform:translateY(6px)}}#login .tl-field{margin-bottom:18px}#login .tl-topbar,#login .tl-main,#login .tl-footer{zoom:1}@media(max-height:905px){#login .tl-topbar,#login .tl-main,#login .tl-footer{zoom:.84}}@media(max-height:760px){#login .tl-topbar,#login .tl-main,#login .tl-footer{zoom:.72}}@media(max-height:640px){#login .tl-topbar,#login .tl-main,#login .tl-footer{zoom:.7}}#login .tl-cap{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}#login .tl-cap label{font-size:13px;font-weight:600;color:var(--tl-ink2);letter-spacing:.03em}#login .tl-inbox{position:relative;display:flex;align-items:center}#login .tl-inbox .tl-ico{position:absolute;left:15px;color:var(--tl-ico);pointer-events:none;transition:color .3s;display:flex}#login .tl-inbox input{width:100%;font-family:inherit;font-size:15.5px;color:var(--tl-ink);background:#0b375412;border:1.5px solid transparent;border-radius:var(--tl-r-sm);padding:14px 16px 14px 46px;outline:none;transition:border-color var(--dur-slow),background var(--dur-slow),box-shadow var(--dur-slow)}#login .tl-inbox input::placeholder{color:var(--tl-ph)}#login .tl-inbox input:focus{background:#ffffffe6;border-color:var(--tl-theme);box-shadow:0 0 0 4px var(--tl-theme-ring)}#login .tl-inbox input:focus~.tl-ico{color:var(--tl-theme)}#login .tl-inbox .tl-eye{position:absolute;right:6px;background:none;border:none;padding:8px;border-radius:var(--r-ctrl);cursor:pointer;color:var(--tl-ico);display:flex;transition:color var(--dur-slow)}#login .tl-inbox .tl-eye:hover{color:var(--tl-ink2)}#login .tl-caps{display:none;margin-top:8px;font-size:var(--fs-12);color:var(--warn)}#login .tl-caps.show{display:block}#login .tl-login-err{display:none;margin:2px 2px 12px;font-size:var(--fs-12);color:var(--danger);font-weight:500;text-align:left}#login .tl-login-err:not(:empty){display:block}#login .tl-login-err.ok{color:var(--ok-ink, #1B8A5D)}#login .tl-optrow{display:flex;justify-content:space-between;align-items:center;margin:6px 2px 28px}#login .tl-switchwrap{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--tl-ink2);font-weight:500;user-select:none}#login .tl-switchwrap input{display:none}#login .tl-sw{width:42px;height:25px;border-radius:var(--r-card);background:#0b375438;position:relative;transition:background .3s;flex:none}#login .tl-sw:after{content:"";position:absolute;top:2px;left:2px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0322384d;transition:transform .3s var(--tl-ease)}#login .tl-switchwrap input:checked+.tl-sw{background:var(--tl-theme)}#login .tl-switchwrap input:checked+.tl-sw:after{transform:translate(17px)}#login .tl-link{font-size:14px;color:var(--tl-theme);text-decoration:none;font-weight:500;transition:opacity var(--dur-slow)}#login .tl-link:hover{opacity:.65}#login .tl-btn{position:relative;width:100%;padding:18px;border:none;border-radius:var(--tl-r-sm);cursor:pointer;font-family:inherit;font-size:17px;font-weight:600;color:#fff;letter-spacing:.14em;text-indent:.14em;background:linear-gradient(180deg,var(--info-ink),#0b141d);box-shadow:0 14px 30px -10px #031a2c99,inset 0 1px #ffffff24;transition:transform var(--dur-slow) var(--tl-ease),box-shadow .3s,filter .3s;overflow:hidden}#login .tl-btn:hover{filter:brightness(1.18);box-shadow:0 18px 38px -10px #031a2ca6,inset 0 1px #fff3}#login .tl-btn:active{transform:scale(.972)}#login .tl-btn:after{content:"";position:absolute;top:0;bottom:0;width:36%;left:-50%;transform:skew(-18deg);background:linear-gradient(105deg,transparent,rgba(255,255,255,.3),transparent)}#login .tl-btn:hover:after{animation:tlShine .9s var(--tl-ease)}@keyframes tlShine{to{left:130%}}#login .tl-btn:disabled{opacity:.7;cursor:default;pointer-events:none}#login .tl-btn-txt{position:relative;z-index:1}#login .tl-sso{margin-top:20px}#login .tl-divider{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-size:var(--fs-12);color:var(--tl-muted);letter-spacing:.14em;font-weight:500}#login .tl-divider:before,#login .tl-divider:after{content:"";flex:1;height:1px;background:#0b375424}#login .tl-row{display:flex;justify-content:center;gap:16px}#login .tl-sso-item{position:relative;width:46px;height:46px;border-radius:var(--r-card);display:flex;align-items:center;justify-content:center;color:var(--tl-ink2);text-decoration:none;background:#ffffff8c;border:1px solid rgba(255,255,255,.9);box-shadow:0 3px 10px #03223814,inset 0 1px #fff;transition:transform .3s var(--tl-ease),box-shadow .3s,color .3s}#login .tl-sso-item:hover{transform:translateY(-3px);color:var(--tl-theme);box-shadow:0 10px 22px #03223829,inset 0 1px #fff}#login .tl-sso-item:active{transform:scale(.94)}#login .tl-tt{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);font-size:var(--fs-12);color:#fff;background:#0b141de0;padding:4px 8px;border-radius:var(--r-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:all var(--dur-slow) var(--tl-ease);letter-spacing:.04em}#login .tl-sso-item:hover .tl-tt{opacity:1;transform:translate(-50%) translateY(0)}#login .tl-helper{margin-top:20px;text-align:center;font-size:var(--fs-12);color:var(--tl-muted);letter-spacing:.02em}#login .tl-helper b{color:var(--tl-ink2);font-weight:600}#login .tl-traits{display:flex;gap:8px;margin-top:28px;flex-wrap:wrap;justify-content:center;animation:tlRise .8s .3s var(--tl-ease) both}#login .tl-trait{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:500;color:#fffffff0;letter-spacing:.02em;background:#ffffff29;border:1px solid rgba(255,255,255,.34);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);box-shadow:inset 0 1px #ffffff38;text-shadow:0 1px 2px rgba(3,30,50,.2)}#login .tl-trait svg{color:#d8f7ff}#login .tl-footer{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:20px clamp(20px,4vw,44px);font-size:var(--fs-12);color:#ffffffd1;letter-spacing:.04em;text-shadow:0 1px 2px rgba(3,30,50,.3)}#login .tl-status{display:inline-flex;align-items:center;gap:8px;justify-self:start}#login .tl-dot{width:7px;height:7px;border-radius:50%;background:#9ff5cf;box-shadow:0 0 #9ff5cf8c;animation:tlPulse 2.4s infinite}@keyframes tlPulse{70%{box-shadow:0 0 0 6px #9ff5cf00}to{box-shadow:0 0 #9ff5cf00}}#login .tl-clock{font-variant-numeric:tabular-nums;letter-spacing:.08em;justify-self:end}@keyframes tlRise{0%{opacity:0;transform:translateY(26px)}}@media(max-width:640px){#login .tl-main{padding-bottom:24px}#login .tl-hero{margin-bottom:28px}#login .tl-glass{padding:28px 24px 20px}#login .tl-top-actions .tl-pill span{display:none}#login .tl-traits{margin-top:20px}#login .tl-footer{grid-template-columns:1fr;justify-items:center;text-align:center}#login .tl-footer .tl-clock{display:none}}.wx-avatar{width:26px;height:26px;border-radius:50%;background:#07c160;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-12);overflow:hidden;flex:none}.wx-avatar img{width:100%;height:100%;object-fit:cover}.wx-badge{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:500}.wx-badge.ok{background:var(--ok-bg);color:#07743f}.wx-badge.warn{background:var(--warn-bg);color:var(--warn-ink)}.wx-badge.muted{background:var(--surface-2);color:var(--text-3)}.ua-cell{white-space:nowrap}.ua-btn{padding:4px 12px;margin-right:4px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-1);font-size:var(--fs-12);cursor:pointer}.ua-btn:hover{background:var(--surface-2)}.ua-btn:disabled{opacity:.55;cursor:not-allowed}.ua-btn.primary{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.ua-btn.warn{color:var(--warn-ink);border-color:#f0d5a8}html.dark .ua-btn.warn{color:var(--warn);border-color:transparent}html.dark .ua-btn.danger{color:var(--danger);border-color:transparent}.ua-btn.danger{color:var(--danger);border-color:#f3c9c9}.module-table select.u-role{padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-13);color:var(--text-1);max-width:140px}.role-perm-panel{margin:12px 0 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);overflow:hidden}.role-perm-panel.hidden{display:none}.modal-mask.dlg-mask{position:fixed;inset:0;z-index:var(--zi-overlay);background:#0000006b;display:flex;align-items:center;justify-content:center}.dlg{width:380px;max-width:92vw;background:var(--surface);border-radius:var(--r-ctrl);box-shadow:0 18px 48px #0000003d;overflow:hidden;max-height:90vh;display:flex;flex-direction:column}.dlg-head{padding:16px 20px 0;font-size:var(--fs-16);font-weight:600;color:var(--text-1)}.dlg-body{padding:12px 20px 4px;font-size:var(--fs-13);color:var(--text-2);line-height:var(--lh-relaxed)}.dlg-body{overflow-y:auto;flex:1 1 auto;min-height:0}.dlg-pre{white-space:pre-line}.dlg-label{display:block;margin-bottom:4px;font-size:var(--fs-12);color:var(--text-2)}.dlg-box{background:var(--surface);border-radius:var(--r-ctrl);box-shadow:0 18px 48px #0000003d;overflow:hidden;display:flex;flex-direction:column;max-height:90vh}.dlg-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-14);outline:none;background:var(--surface-2)}.dlg-input:focus{border-color:var(--primary);background:var(--surface)}.dlg-field{display:block;margin-bottom:10px}.dlg-field>span{display:block;font-size:var(--fs-13);color:var(--text-2);margin-bottom:4px}.dlg-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px}.dlg-foot .ua-btn{margin:0;padding:8px 16px;font-size:var(--fs-13)}.up-trash-mask{z-index:var(--zi-overlay)}.up-trash-modal{width:560px;max-width:94vw;max-height:82vh;background:var(--surface);border-radius:var(--r-ctrl);box-shadow:0 18px 48px #0000003d;display:flex;flex-direction:column;overflow:hidden}.up-trash-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.up-trash-head h3{margin:0;font-size:var(--fs-16);font-weight:600;color:var(--text-1)}.up-trash-sub{display:block;margin-top:4px;font-size:var(--fs-12);color:var(--text-3)}.up-trash-close{font-size:var(--fs-22);line-height:1;color:var(--text-3);cursor:pointer;padding:0 4px}.up-trash-close:hover{color:var(--text-1)}.up-trash-body{padding:8px 20px 16px;overflow-y:auto;flex:1}.up-trash-loading,.up-trash-empty{padding:40px 16px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.up-trash-empty-icon{font-size:36px;margin-bottom:8px}.up-trash-list{display:flex;flex-direction:column;gap:8px}.up-trash-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}.up-trash-row:hover{border-color:var(--primary)}.up-trash-info{min-width:0}.up-trash-name{font-size:var(--fs-14);font-weight:600;color:var(--text-1)}.up-trash-phone{font-size:var(--fs-12);font-weight:400;color:var(--text-3);margin-left:4px}.up-trash-meta{font-size:var(--fs-12);color:var(--text-2);margin-top:4px}.up-trash-sub2{color:var(--text-3)}.up-trash-over{color:var(--danger);font-weight:600}.up-trash-acts{display:flex;gap:8px;flex:0 0 auto}.up-trash-acts .ua-btn{padding:4px 12px;font-size:var(--fs-13)}.up-trash-foot{padding:12px 20px;border-top:1px solid var(--border)}.up-trash-hint{font-size:var(--fs-12);color:var(--text-3)}.btn-recycle{margin-left:0;padding:4px 12px;font-size:var(--fs-13);cursor:pointer;background:var(--surface);color:var(--text-2);border:1px solid var(--border-strong);border-radius:var(--r-ctrl);white-space:nowrap}.btn-recycle:hover{border-color:var(--theme);color:var(--theme);background:var(--theme-weak)}.dtrash-cnt{display:inline-block;min-width:16px;margin-left:4px;padding:0 4px;font-size:var(--fs-12);line-height:16px;text-align:center;border-radius:var(--r-sm);background:var(--danger);color:#fff}.dtrash-cnt:empty{display:none}.dtrash-row{align-items:flex-start}.dtrash-tree{margin-top:4px;background:#f7f8fa;border-radius:var(--r-4);padding:4px 8px;font-size:var(--fs-12);color:var(--text-2)}.dtrash-node{line-height:20px;white-space:nowrap}.dtrash-node-icon{display:inline-block;width:14px;color:var(--text-4)}.dtrash-badge{display:inline-block;margin-left:4px;padding:1px 8px;font-size:var(--fs-12);font-weight:400;color:var(--theme);background:#eef4ff;border-radius:var(--r-pill);vertical-align:1px}.dtrash-row .up-trash-acts{align-self:center}@media(max-width:640px){.dtrash-row{flex-direction:column}.dtrash-row .up-trash-acts{align-self:flex-start;margin-top:8px}}.app{display:flex;flex-direction:column;height:100vh}.topnav{height:56px;flex:0 0 56px;background:#fff;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:var(--zi-dropdown)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:var(--fs-16)}.nav-left{display:flex;align-items:center;gap:8px;flex:none;min-width:0}.brand-txt{position:relative;top:2px}.top-right{display:flex;align-items:center;gap:12px}.notify-bell{position:relative;font-size:var(--fs-18);cursor:pointer;padding:4px;margin-left:auto;margin-right:12px;user-select:none}.notify-bell:hover{transform:scale(1.1)}.bell-badge{position:absolute;top:-4px;right:-6px;background:var(--danger);color:#fff;font-size:var(--fs-12);font-weight:700;min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;line-height:1}.bell-badge.pulse{animation:bellPulse .6s var(--ease)}@keyframes bellPulse{0%{transform:scale(1.4)}to{transform:scale(1)}}.role-badge{font-size:var(--fs-12);padding:4px 12px;border-radius:var(--r-pill);color:#fff;font-weight:600;background:var(--theme-strong)}.role-switch{flex:none;position:relative}.role-switch .rs{border:0;background:transparent;padding:4px 8px;border-radius:var(--r-ctrl);font-size:var(--fs-12);color:var(--text-2);transition:all var(--duration-fast) var(--ease-out-quart)}.role-switch .rs.on{background:var(--theme-strong);color:#fff}.user{font-size:var(--fs-13);color:var(--text-2)}.btn-ghost{border:1px solid var(--border-light);background:var(--surface);border-radius:var(--r-ctrl);padding:4px 12px;font-size:var(--fs-13);color:var(--text-2);transition:all var(--duration-fast) var(--ease-out-quart)}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn-primary{border:1px solid transparent;background:var(--theme-strong);border-radius:var(--r-ctrl);padding:4px 12px;font-size:var(--fs-13);color:#fff;cursor:pointer;transition:opacity var(--duration-fast)}.btn-primary:hover{opacity:.9}.btn-primary:active{opacity:1}.btn-secondary{border:1px solid var(--border-light);background:var(--surface);border-radius:var(--r-ctrl);padding:4px 12px;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;transition:all var(--duration-fast) var(--ease-out-quart)}.btn-secondary:hover{border-color:var(--primary);color:var(--primary)}.hamburger{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:0;background:transparent;font-size:var(--fs-22);margin-right:0}.body{flex:1;display:flex;min-height:0;position:relative}.sidebar{width:220px;flex:0 0 220px;background:#fff;border-right:1px solid var(--border-light);padding:12px 8px;overflow-y:auto}.side-title{font-size:var(--fs-12);color:var(--text-3);padding:4px 12px 12px;letter-spacing:1px}.nav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-ctrl);color:var(--text-2);font-size:var(--fs-14);margin-bottom:2px;cursor:pointer;transition:all var(--duration-fast) var(--ease-out-quart);position:relative}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--primary-weak);color:var(--primary);font-weight:600}.mask{display:none}.nav-item.mod-stub{opacity:.5;cursor:not-allowed}.nav-item.mod-stub .mod-soon{font-size:var(--fs-12);color:var(--text-4);margin-left:4px;padding:1px 4px;border:1px solid #d7dce5;border-radius:var(--r-ctrl);background:#f2f4f8}.nav-group{margin-top:10px}.nav-group-head{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-ctrl);cursor:pointer;color:var(--text-2);font-size:var(--fs-14);user-select:none;transition:all var(--duration-fast) var(--ease-out-quart)}.nav-group-head:hover{background:var(--surface-2);color:var(--text)}.nav-group-ico{display:inline-flex;flex:none;color:color-mix(in srgb,var(--nv, var(--text-3)) 72%,var(--text-3));transition:color var(--dur-base) var(--ease)}.nav-group-ico .ico{width:16px;height:16px}.nav-group-head:hover .nav-group-ico,.nav-group-head.on .nav-group-ico{color:var(--nv, var(--text-2))}.nav-group-head.on{background:var(--primary-weak);color:var(--primary);font-weight:600}.nav-group-arrow{font-size:var(--fs-12);width:12px;flex:none;color:var(--text-4)}.nav-group-title{flex:1;font-weight:600}.nav-group-count{font-size:var(--fs-12);color:var(--text-4);flex:none;font-family:var(--mono)}.nav-group-body{padding-left:4px}.nav-group-body .nav-item{padding-left:14px}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media(min-width:761px){.sidebar{transition:width var(--duration-normal) var(--ease-out-quart),flex-basis var(--duration-normal) var(--ease-out-quart),padding var(--duration-normal) var(--ease-out-quart)}body.nav-rail .sidebar{width:56px;flex-basis:56px;padding:12px 4px}body.nav-rail .side-title,body.nav-rail .side-recent{display:none}body.nav-rail .nav-group{display:block;margin-top:10px}body.nav-rail .nav-group-head{justify-content:center;gap:0;padding:10px 0}body.nav-rail .nav-group-title,body.nav-rail .nav-group-count,body.nav-rail .nav-group-arrow{display:none}body.nav-rail .nav-group-body{display:none!important}body.nav-rail .nav-item{justify-content:center;gap:0;padding:10px 0}body.nav-rail .nav-item .nav-label,body.nav-rail .nav-item .mod-soon{display:none}body.nav-rail .nav-item.active:after{content:"";position:absolute;left:-4px;top:22%;bottom:22%;width:3px;border-radius:0 2px 2px 0;background:var(--primary)}}.nav-group[data-grp=orphan] .nav-group-head,.nav-group[data-grp=orphan] .nav-group-head.on{color:var(--accent2)}.main{flex:1;overflow-y:auto;padding:20px 24px 28px}.footer{flex:0 0 auto;height:40px;background:#fff;border-top:1px solid var(--border-light);display:flex;align-items:center;gap:20px;padding:0 20px;font-size:var(--fs-12);color:var(--text-3)}.footer .status{color:var(--ok)}.footer .links a{color:var(--text-3);margin-left:12px;cursor:pointer}.footer .links a:hover{color:var(--primary)}.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.page-head .sub{color:var(--text-3);font-size:var(--fs-13)}.banner{padding:12px;border-radius:var(--r-sm);margin-bottom:16px;font-size:var(--fs-13);transition:all var(--duration-normal) var(--ease-out-quart)}.banner.info{background:var(--info-bg);color:var(--info-ink);border:1px solid color-mix(in srgb,var(--info) 25%,transparent)}.banner.ok{background:var(--ok-bg);color:#1a9e63;border:1px solid rgba(52,199,138,.15)}.banner.warn{background:var(--warn-bg);color:#c4851c;border:1px solid rgba(240,168,56,.15)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--r-ctrl);padding:16px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-out-quart)}.card:hover{box-shadow:var(--shadow)}.card-icon{font-size:var(--fs-22);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:var(--r-card)}.card-label{font-size:var(--fs-12);color:var(--text-3)}.card-value{font-size:var(--fs-22);font-weight:700;line-height:var(--lh-tight)}.card-hint{font-size:var(--fs-12);color:var(--text-3)}.card-body{min-width:0}.card.kpi .card-value{font-variant-numeric:tabular-nums}.card.kpi-click{cursor:pointer;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}.card.kpi-click:hover,.card.kpi-click:focus-visible{box-shadow:var(--shadow);transform:translateY(-1px);outline:none}.kpi-bad .card-value{color:var(--danger-ink)}.kpi-warn .card-value{color:#b07d1a}.kpi-ok .card-value{color:#1a9e63}.ico{width:1.05em;height:1.05em;display:inline-block;vertical-align:-.16em;flex-shrink:0}.ico-s{width:16px;height:16px}.ico-m{width:20px;height:20px}.ico-l{width:24px;height:24px}.ico-xl{width:32px;height:32px}.nav-item .ico{width:16px;height:16px}.page-head .ph-icon .ico{width:24px;height:24px}.card-icon{color:var(--theme)}.card-icon .ico{width:24px;height:24px}.panel-head .ico,.quick-btn .ico,.notify-bell .ico{width:20px;height:20px}html.dark .ico{opacity:.92}.panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.panels-wide{grid-template-columns:1fr;margin-top:-4px}.arp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}.arp-kpi{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface);cursor:pointer;transition:border-color .12s}.arp-kpi:hover{border-color:var(--theme)}.arp-kpi-l{font-size:var(--fs-12);color:var(--text-3)}.arp-kpi-v{font-size:var(--fs-18);font-weight:700;color:var(--text-1);margin-top:2px;font-variant-numeric:tabular-nums}.arp-kpi.ar .arp-kpi-v{color:var(--theme-strong)}.arp-kpi.ap .arp-kpi-v{color:var(--warn-ink, #8a5612)}.arp-kpi.ok .arp-kpi-v{color:#15803d}.arp-kpi.bad .arp-kpi-v{color:var(--danger)}.arp-kpi-s{font-size:var(--fs-12);color:var(--text-3);margin-top:2px}.arp-empty 随全宽表格形态废除——工具条/卡片流/分页/空态统一复用 .st-toolbar/.st-chip/.st-item/.st-pager/.empty */ .arp-badge{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-pill);white-space:nowrap}.arp-badge.ar{background:#e8f1ff;color:var(--theme)}.arp-badge.ap{background:var(--warn-bg, #fef9e6);color:var(--warn-ink, #8a5612)}.arp-badge.open{background:var(--surface-3);color:var(--text-2)}.arp-badge.done{background:var(--ok-bg);color:#15803d}.arp-badge.od{background:var(--danger-bg);color:var(--danger-ink, var(--danger))}.arp-bal{font-weight:700;color:var(--text-1)}.arp-aging90{color:var(--danger);font-weight:600}.arp-dim{color:var(--text-4)}html.dark .arp-badge.ar{background:#3b82f633;color:#93c5fd}.panel{background:#fff;border:1px solid var(--border-light);border-radius:var(--r-ctrl);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--duration-normal) var(--ease-out-quart)}.panel:hover{box-shadow:var(--shadow)}.panel-head{padding:12px 16px;font-weight:600;border-bottom:1px solid var(--border-light);background:var(--bg);display:flex;align-items:center;gap:8px}.pn-title{flex:1;min-width:0}.pn-chips{display:inline-flex;gap:6px;flex-shrink:0}.chip{font-style:normal;font-weight:500;font-size:var(--fs-11);line-height:18px;padding:0 8px;border-radius:var(--r-ctrl);white-space:nowrap}.chip-over{background:#d645451f;color:var(--danger-ink)}.chip-soon{background:#c4851c24;color:#b07d1a}.pn-more{border:none;background:none;color:var(--theme);font-size:var(--fs-12);font-weight:500;cursor:pointer;padding:2px 4px;white-space:nowrap;flex-shrink:0}.pn-more:hover{text-decoration:underline}.pn-foot{padding:8px 16px;font-size:var(--fs-12);color:var(--text-3);border-top:1px dashed var(--border-light)}.tbl tbody tr.row-flag-over td{background:#d6454514}.tbl tbody tr.row-flag-soon td{background:#c4851c17}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-13)}.tbl th,.tbl td{padding:12px;text-align:left;border-bottom:1px solid var(--border-light)}.tbl th{color:var(--text-3);font-weight:500;font-size:var(--fs-12);background:var(--bg);position:sticky;top:var(--head-h, 58px);z-index:10}.tbl tbody tr{transition:background var(--duration-fast)}.tbl tbody tr:hover{background:var(--surface-2)}.empty{padding:28px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.bar{background:var(--surface-2);border-radius:var(--r-sm);height:8px;width:90px;overflow:hidden;display:inline-block;vertical-align:middle}.bar>span{display:block;height:100%;background:var(--accent, var(--primary));border-radius:var(--r-sm)}.quick{background:#fff;border:1px solid var(--border-light);border-radius:var(--r-ctrl);padding:16px;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out-quart)}.quick:hover{box-shadow:var(--shadow)}.quick-title{font-size:var(--fs-13);color:var(--text-3);margin-bottom:12px}.quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.quick-btn{border:1px solid var(--border-light);background:var(--surface);border-radius:var(--r-ctrl);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:var(--fs-12);color:var(--text-2);transition:all var(--duration-fast) var(--ease-out-quart)}.quick-btn:hover{border-color:var(--accent, var(--primary));color:var(--accent, var(--primary))}.quick-btn span{font-size:var(--fs-18)}.cards .card,.panels .panel,.quick .quick-btn{opacity:0;animation:cardEntrance var(--duration-slow) var(--ease-out-quart) forwards}.cards .card:nth-child(1){animation-delay:0ms}.cards .card:nth-child(2){animation-delay:50ms}.cards .card:nth-child(3){animation-delay:.1s}.cards .card:nth-child(4){animation-delay:.15s}.panels .panel:nth-child(1){animation-delay:80ms}.panels .panel:nth-child(2){animation-delay:.16s}.quick .quick-btn:nth-child(n){animation-delay:calc(var(--i, 0) * 40ms)}@keyframes cardEntrance{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.module-wrap{animation:moduleIn var(--duration-page) var(--ease-out-quint) backwards}@keyframes moduleIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.cards .card,.panels .panel,.quick .quick-btn,.module-wrap{opacity:1}}.role-admin{--accent: var(--c-admin)}.role-sales{--accent: var(--c-sales)}.role-merchandiser{--accent: var(--c-merch)}.role-finance{--accent: var(--c-finance)}.role-factory{--accent: var(--c-factory)}.role-chairman{--accent: var(--c-chairman)}.role-purchase{--accent: var(--c-merch)}.role-supplier{--accent: var(--c-factory)}.role-member{--accent: var(--c-admin)}.role-admin .role-badge{background:var(--c-admin)}.role-sales .role-badge{background:var(--c-sales)}.role-merchandiser .role-badge{background:var(--c-merch)}.role-finance .role-badge{background:var(--c-finance)}.role-factory .role-badge{background:var(--c-factory)}.role-chairman .role-badge{background:var(--c-chairman)}@media(max-width:1280px){.cards{grid-template-columns:repeat(2,1fr)}.panels{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.hamburger{display:block}.sidebar{position:absolute;top:0;bottom:0;left:0;z-index:25;transform:translate(-100%);transition:transform var(--duration-normal) var(--ease-out-quart);box-shadow:var(--shadow-lg);background:#fff}.sidebar.open{transform:translate(0)}.mask.show{display:block;position:absolute;inset:0;background:#00000059;z-index:20}.brand{font-size:var(--fs-14)}.role-switch,.user{display:none}}@media(max-width:640px){.cards{grid-template-columns:repeat(2,1fr);gap:8px}.quick-grid{grid-template-columns:repeat(2,1fr)}.main{padding:12px}.card-value{font-size:var(--fs-18)}}.page-head{align-items:center}.page-head .ph-icon{width:38px;height:38px;flex:0 0 38px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:var(--fs-18);background:linear-gradient(135deg,color-mix(in srgb,var(--accent, var(--primary)) 14%,#fff),color-mix(in srgb,var(--c-finance) 10%,#fff));color:var(--accent, var(--primary))}.page-head h2{font-size:var(--fs-18);margin:0}.page-head .ph-sub{margin:4px 0 0;font-size:var(--fs-12);color:var(--text-3)}.loading{padding:40px;text-align:center;color:var(--text-3)}.loading .spin{display:inline-block;width:18px;height:18px;border:2px solid #d0d5dd;border-top-color:var(--primary);border-radius:50%;animation:oss-spin .7s linear infinite;vertical-align:-4px;margin-right:8px}.module-wrap{background:#fff;border:1px solid var(--border-light);border-radius:var(--r-ctrl);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--duration-normal) var(--ease-out-quart)}.module-wrap:hover{box-shadow:var(--shadow)}.module-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}.module-table th,.module-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-light);white-space:nowrap}.module-table th{color:var(--text-3);font-weight:500;font-size:var(--fs-12);background:linear-gradient(to bottom,color-mix(in srgb,var(--theme) 4%,transparent),color-mix(in srgb,var(--theme) 2%,transparent));position:sticky;top:var(--head-h, 58px)}.module-table tbody tr{transition:background var(--duration-fast) var(--ease-out-quart)}.module-table tbody tr:hover{background:color-mix(in srgb,var(--theme) 4%,transparent)}.module-table .cell-money{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.module-table tr:last-child td{border-bottom:0}.mini-bar{background:var(--surface-2);border-radius:var(--r-6);height:8px;width:100px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:8px}.mini-bar>span{display:block;height:100%;background:var(--accent, var(--primary))}.mini-num{font-size:var(--fs-12);color:var(--text-2);font-style:normal}.badge{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-12);line-height:var(--lh-base);font-weight:500;transition:all var(--duration-fast) var(--ease-out-quart)}.badge.ok{background:var(--ok-bg);color:#1a9e63}.badge.warn{background:var(--warn-bg);color:#c4851c}.badge.info{background:var(--info-bg);color:var(--primary-strong)}.badge.neutral{background:var(--surface-2);color:var(--text-2)}.inv-ap-line{font-size:12.5px;color:#8a6d1f;background:#fdf6e3;border:1px solid #f0e0b0;border-radius:6px;padding:4px 8px;margin-bottom:6px;line-height:1.5}.inv-ap-line a{color:#2563eb;text-decoration:underline;cursor:pointer}.ap-node{border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;margin-bottom:8px;background:#fff}.ap-node-cur{border-color:#3370ff;background:#f0f6ff}.ap-node-head{font-size:13px;font-weight:600;margin-bottom:4px}.ap-node-app{font-size:12.5px;margin:3px 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ap-log{font-size:12.5px;padding:3px 0;border-bottom:1px dashed #f0f2f5}.vs-scroll{position:relative;height:calc(100vh - 230px);min-height:360px;overflow:auto;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:#fff;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-out-quart)}.vs-scroll:hover{box-shadow:var(--shadow)}.vs-scroll.module-loading,.grp-wrap.module-loading{opacity:.82}.module-loadbar{position:sticky;top:0;left:0;z-index:30;height:2px;width:40%;background:var(--theme);border-radius:0 var(--r-4) var(--r-4) 0;opacity:.9;animation:module-loadbar-run 1s var(--ease-out-quart) infinite;pointer-events:none}@keyframes module-loadbar-run{0%{transform:translate(-100%)}to{transform:translate(260%)}}.vs-table{width:auto;min-width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-13);table-layout:fixed}.vs-table th,.vs-table td{padding:0 16px;height:44px;box-sizing:border-box;text-align:left;white-space:nowrap;overflow:hidden}.vs-table th{position:sticky;top:0;z-index:10;color:var(--text-3);font-weight:500;font-size:var(--fs-12);background:#f8fafc;border-bottom:1px solid var(--border)}.vs-table thead{background:#f8fafc}.vs-table thead th{box-shadow:inset 0 -1px 0 var(--border)}.vs-table th,.vs-table td{min-width:0}.vs-scroll{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.vs-scroll::-webkit-scrollbar{width:11px;height:11px}.vs-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-6);border:2px solid var(--surface)}.vs-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.vs-scroll::-webkit-scrollbar-track{background:transparent}.vs-table tbody tr{border-bottom:1px solid var(--surface-2)}.vs-table .cell-money{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.vs-table tr.vs-row{transition:background-color var(--dur-base) var(--ease)}.vs-table tr.clickable td:first-child{transition:box-shadow var(--dur-base) var(--ease)}@media(hover:hover){.vs-table tr.vs-row:hover{background:#f2f6ff}.vs-table tr.clickable:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent, var(--primary))}}.vs-table tr.clickable{cursor:pointer}.vs-pad{pointer-events:none}.vs-th{cursor:default;user-select:none}.vs-th:not(.no-sort){cursor:default}.vs-th .sort-ind{display:inline-block;width:0;height:0;margin-left:4px;vertical-align:middle;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text-3);opacity:.3;cursor:pointer;transition:opacity var(--dur-base)}.vs-th:not(.no-sort) .sort-ind:hover{opacity:.6}.vs-th.sorted .sort-ind{opacity:1}.vs-th.sorted.asc .sort-ind{border-top:0;border-bottom:5px solid var(--primary)}.vs-th.sorted.desc .sort-ind{border-top:5px solid var(--primary);border-bottom:0}.col-resizer{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:6;user-select:none}.col-resizer:after{content:"";position:absolute;top:0;right:3px;width:2px;height:100%;background:transparent;transition:background var(--dur-fast)}.vs-table th:hover .col-resizer:after,.col-resizer:hover:after{background:var(--theme)}@media(max-width:900px){.module-table{display:block;overflow-x:auto;white-space:nowrap}.page-head{flex-wrap:wrap}}.filter-bar{display:flex;align-items:center;gap:8px;margin:12px 2px 8px;flex-wrap:wrap}.filter-bar select{height:34px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-13);color:var(--text-1);cursor:pointer;outline:none}.filter-bar select:focus{border-color:var(--accent, var(--primary))}.filter-bar .f-reset{height:34px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-size:var(--fs-13);cursor:pointer}.filter-bar .f-reset:hover{border-color:var(--accent, var(--primary));color:var(--accent, var(--primary))}.filter-bar .filter-count{margin-left:auto;font-size:var(--fs-12);color:var(--text-3)}.filter-bar .f-search{height:34px;padding:0 12px;min-width:240px;max-width:600px;flex:1 1 240px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-13);color:var(--text-1);outline:none}.filter-bar .f-search:focus{border-color:var(--accent, var(--primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, var(--primary)) 15%,transparent)}.filter-bar .sup-new{margin-left:0}@media(max-width:900px){.filter-bar .f-search{flex-basis:100%;max-width:none}}.order-view-tabs{display:flex;align-items:center;gap:8px;margin:12px 2px 0;flex-wrap:wrap}.order-view-tabs .ovt-btn{height:32px;padding:0 16px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-13);line-height:30px;cursor:pointer;outline:none;transition:all var(--dur-base) var(--ease);white-space:nowrap}.order-view-tabs .ovt-btn:hover{border-color:var(--accent, var(--primary));color:var(--accent, var(--primary))}.order-view-tabs .ovt-btn.active{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff;font-weight:600}.pager{display:flex;align-items:center;gap:4px;margin:16px 2px 4px;flex-wrap:wrap}.pager .pg{min-width:34px;height:32px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-2);font-size:var(--fs-13);cursor:pointer;transition:all var(--dur-fast)}.pager .pg:hover:not([disabled]):not(.on){border-color:var(--accent, var(--primary));color:var(--accent, var(--primary))}.pager .pg.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff;font-weight:600;cursor:default}.pager .pg[disabled]{opacity:.45;cursor:not-allowed}.pager .pg-ellipsis{color:var(--text-3);padding:0 2px;user-select:none}.module-table tr.clickable{cursor:pointer}.module-table tr.clickable:hover{background:color-mix(in srgb,var(--accent, var(--primary)) 8%,var(--surface-2))}.module-table tr.clickable:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent, var(--primary))}.detail-back{height:34px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-size:var(--fs-13);cursor:pointer;margin-right:12px}.detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface-2)}.detail-actions label{font-size:var(--fs-13);color:var(--text-2)}.detail-actions .od-status-label{font-size:var(--fs-13);color:var(--text-2);display:inline-flex;align-items:center;gap:4px}.detail-actions .od-status-now{font-size:var(--fs-12);padding:2px 12px}.detail-actions .od-next-wrap{display:inline-flex;gap:8px;flex-wrap:wrap}.detail-actions .od-next-btn{height:34px;padding:0 12px;border:1px solid var(--theme-strong);border-radius:var(--r-ctrl);background:var(--theme-strong);color:#fff;font-size:var(--fs-13);cursor:pointer;transition:opacity var(--dur-fast),background var(--dur-fast)}.detail-actions .od-next-btn.od-cancel{background:var(--surface);color:var(--danger-ink);border-color:#e7a3a3}.detail-actions .od-next-btn.od-reopen{background:var(--ok-bg);color:var(--theme-strong);border-color:#80c4bd;font-weight:600}.detail-actions .od-blocked-wrap{display:inline-flex;flex-direction:column;align-items:flex-start}.detail-actions .od-blocked{background:var(--surface)!important;color:var(--text-3)!important;border-color:var(--border)!important;cursor:not-allowed}.detail-actions .od-block-why{font-size:var(--fs-12);color:#b45309;margin-top:4px;max-width:360px;line-height:1.45}.detail-actions .od-pay-reg{height:34px;padding:0 12px;border:1px solid #80c4bd;border-radius:var(--r-ctrl);background:var(--ok-bg);color:var(--theme-strong);font-size:var(--fs-13);font-weight:600;cursor:pointer;transition:opacity var(--dur-fast),background var(--dur-fast)}.detail-actions .od-pay-reg:hover{opacity:.88}.pr-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.pr-chip{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer;user-select:none;transition:border-color var(--dur-fast),background var(--dur-fast)}.pr-chip:hover{border-color:var(--text-3)}.pr-chip.on{border-color:var(--theme-strong);background:var(--ok-bg);color:var(--theme-strong);font-weight:600}.pr-live{font-size:var(--fs-12);color:var(--text-3);margin-top:4px;line-height:1.5}.pr-live.ok{color:#1a9e63;font-weight:600}.pr-done{background:var(--ok-bg);border:1px solid #80c4bd;border-radius:var(--r-ctrl);padding:10px 12px;font-size:13px;line-height:1.7;margin-bottom:12px}.pr-files{display:flex;flex-direction:column;gap:6px}.pr-file-add{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border:1px dashed var(--border);border-radius:var(--r-ctrl);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-13);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}.pr-file-add:hover{border-color:var(--theme-strong);background:var(--ok-bg);color:var(--theme-strong)}.pr-file-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-12);color:var(--text-1)}.pr-file-size{color:var(--text-3)}.pr-file-x{margin-left:auto;cursor:pointer;color:var(--text-3);padding:0 4px;font-weight:600}.pr-file-x:hover{color:#d84343}.detail-actions .od-back-btn{height:34px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-2);font-size:var(--fs-13);cursor:pointer}.detail-actions .od-back-btn:hover{border-color:var(--text-3);color:var(--text-1)}.detail-actions .od-terminal{font-size:var(--fs-13);color:#1a9e63;background:var(--ok-bg);padding:4px 12px;border-radius:var(--r-sm)}.detail-actions button:hover{opacity:.88}.detail-back:hover{border-color:var(--accent, var(--primary));color:var(--accent, var(--primary))}.detail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctrl);box-shadow:var(--shadow);padding:20px;margin-top:12px}.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding-bottom:12px;border-bottom:1px dashed var(--border);font-size:var(--fs-13);color:var(--text-2)}.detail-meta b{color:var(--text-3);font-weight:500;margin-right:4px}.detail-section{margin-top:20px}.detail-section h3{font-size:var(--fs-14);margin:0 0 12px;color:var(--text-1)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 24px}.d-item{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:var(--surface-2);border-radius:var(--r-sm)}.d-item .dl{font-size:var(--fs-12);color:var(--text-3)}.d-item .dv{font-size:var(--fs-13);color:var(--text-1);white-space:pre-wrap;word-break:break-all}.d-item{display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--surface-2);border-radius:var(--r-sm)}.detail-grid .dl{color:var(--text-3);font-size:var(--fs-12)}.detail-grid .dv{color:var(--text-1);font-size:var(--fs-14);word-break:break-all}.dv.money{font-weight:600;font-variant-numeric:tabular-nums}.dv.empty{color:var(--text-3)}.d-item .req{color:var(--danger);font-style:normal;margin-left:2px;font-weight:700}.dv-edit{display:inline-block;border-radius:var(--r-6);padding:1px 4px;margin:-1px -5px;cursor:text;transition:background var(--dur-fast),box-shadow var(--dur-fast)}.dv-edit:hover{background:#eef4ff;box-shadow:0 0 0 1px var(--theme-weak) inset}.dv-editor{width:100%;box-sizing:border-box;padding:4px 8px;font-size:var(--fs-13);color:var(--text-1);border:1px solid var(--primary, var(--theme));border-radius:var(--r-ctrl);background:#fff}.dv-editor:focus{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 18%,transparent)}.dv-tip{color:var(--theme);font-weight:500}.detail-meta span i{font-style:normal}.cost-oss-head{padding:8px 12px;font-size:var(--fs-13);font-weight:600;color:var(--text-2);background:var(--surface-2);border-bottom:1px solid var(--border)}.cost-oss-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}.cost-oss-table th{text-align:left;padding:8px 12px;font-size:var(--fs-12);color:var(--text-3);font-weight:500;background:#fbfcfe;border-bottom:1px solid var(--border)}.cost-oss-table td{padding:8px 12px;border-bottom:1px solid var(--border-light);color:var(--text-1)}.cost-oss-table tbody tr:hover{background:var(--gradient-start)}.cost-oss-table .cell-money{font-weight:600;font-variant-numeric:tabular-nums}.cost-oss-view{border:1px solid var(--primary, var(--theme));background:#fff;border-radius:var(--r-ctrl);padding:4px 12px;font-size:var(--fs-12);font-weight:600;color:var(--theme);cursor:pointer;line-height:var(--lh-base);transition:all var(--dur-base)}.cost-oss-view:hover{background:#eef3ff;border-color:var(--primary, var(--theme))}.cost-oss-view:active{background:var(--theme-weak)}.sp-detail-btn{margin-left:4px}@keyframes d-flash{0%{background-color:var(--warn-bg)}to{background-color:transparent}}.meta-status.flash{animation:d-flash 1.8s var(--ease);border-radius:var(--r-4)}.cost-empty{margin:0;padding:16px 12px;font-size:var(--fs-13);color:var(--text-3)}.hidden{display:none!important}.log-drawer-wide{max-width:800px!important}.log-body{overflow-y:auto;max-height:75vh}.log-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.log-col{display:flex;flex-direction:column;gap:0}.log-section-title{font-size:var(--fs-13);font-weight:600;color:var(--theme);margin:12px 0 4px;padding-bottom:4px;border-bottom:1px dashed var(--border)}.log-addr-row{display:flex;align-items:flex-end;gap:4px}.log-submit-full{width:100%;margin-top:20px}.log-contact-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.log-contact-hist{flex:1;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-12);background:#fff;color:var(--text-1)}.log-contact-add{width:32px;height:32px;border:1px dashed var(--border);border-radius:var(--r-sm);background:transparent;cursor:pointer;font-size:var(--fs-14);color:var(--text-3);flex-shrink:0}.log-contact-add:hover{border-color:var(--primary, var(--theme));color:var(--theme);background:#f0f6ff}.log-more{margin-top:8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface-2)}.log-more>summary{padding:9px 12px;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;user-select:none;list-style:none}.log-more>summary::-webkit-details-marker{display:none}.log-more>summary:before{content:"▸ ";color:var(--text-3)}.log-more[open]>summary:before{content:"▾ "}.log-more[open]>summary{border-bottom:1px solid var(--border)}.log-more-body{padding:4px 12px 10px}#logType[value=express]~.log-col .log-section-title{display:none}@media(max-width:640px){.log-grid{grid-template-columns:1fr}.log-drawer-wide{max-width:100%!important}}.dl-info{position:relative;display:inline-flex;align-items:center;margin-left:4px;font-style:normal;font-size:var(--fs-12);color:#9aa5b1;cursor:help}.dl-info:hover{color:var(--theme)}.dl-tip{display:none;position:absolute;left:0;top:calc(100% + 6px);z-index:1200;width:240px;padding:8px 12px;background:#1f2733;color:#eef1f6;font-size:var(--fs-12);line-height:var(--lh-relaxed);border-radius:var(--r-sm);box-shadow:0 8px 24px #00000038;font-weight:400;white-space:normal}.dl-tip b{color:#9ec1ff;font-weight:600}.dl-info:hover .dl-tip{display:block}.att-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;background:#eef1f6;border:1px solid #d8dee9;border-radius:var(--r-pill);font-size:var(--fs-12);color:var(--text-1);vertical-align:middle}.att-chip.empty{color:var(--text-4);background:transparent;border-style:dashed}.att-chip .att-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.att-chip .att-link{color:inherit;text-decoration:none;display:inline-flex;gap:4px;align-items:center}.att-chip .att-link:hover{text-decoration:underline}.att-chip.multi{gap:8px;background:transparent;border:none;padding:0}.att-chip.pending{color:#b06a00;background:var(--warn-bg);border-color:#ffd591}.att-chip .att-img{flex-direction:row;align-items:center;gap:4px;line-height:1;padding:1px 4px;background:#fff;border:1px solid #d8dee9;border-radius:var(--r-ctrl);max-width:260px}.att-chip .att-thumb{width:18px;height:18px;min-width:18px;object-fit:cover;border-radius:var(--r-4);background:#f3f5f9;display:inline-block;flex:0 0 auto;vertical-align:middle}.att-chip .att-img .att-name{max-width:210px;font-size:var(--fs-12)}.img-preview-overlay{position:fixed;inset:0;z-index:var(--zi-top);display:none;flex-direction:column;background:#0f1218eb}.img-preview-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#00000059;color:#fff}.img-preview-back{border:none;background:#2b3445;color:#fff;padding:4px 12px;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-14)}.img-preview-back:hover{background:#3a4456}.img-preview-name{flex:1;font-size:var(--fs-13);opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.img-preview-open{color:var(--theme);font-size:var(--fs-13);text-decoration:none}.img-preview-open:hover{text-decoration:underline}.img-preview-body{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px}.img-preview-img{max-width:96%;max-height:96%;object-fit:contain;box-shadow:0 8px 40px #00000080;border-radius:var(--r-4);background:#fff}body.img-preview-active{overflow:hidden}.img-preview-err{color:#ffd2c2;font-size:var(--fs-14);text-align:center;padding:24px;line-height:var(--lh-base)}.att-chip .att-img.att-broken{background:var(--danger-bg);border-color:#f5b5ab;color:var(--danger-ink)}.att-chip .att-img.att-broken .att-thumb{display:none}.att-chip .att-img.att-broken:after{content:"🚫 无法加载";font-size:var(--fs-11);white-space:nowrap}.att-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:100%}.att-remove-btn{border:none;background:var(--danger-bg);color:var(--danger-ink);width:18px;height:18px;min-width:18px;line-height:16px;border-radius:50%;cursor:pointer;font-size:var(--fs-11);padding:0;display:inline-flex;align-items:center;justify-content:center}.att-remove-btn:hover{background:#f5b5ab;color:#fff}.att-upload-btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-1);padding:4px 12px;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-13);display:inline-flex;align-items:center;gap:4px}.att-upload-btn:hover{border-color:var(--theme);color:var(--theme);background:var(--theme-weak)}.att-progress{font-size:var(--fs-12);color:#6b7a99;background:#f3fafe;border:1px solid #cfe6f1;border-radius:var(--r-6);padding:4px 8px}.att-progress[hidden]{display:none}.tag{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:500}.tag.ok{background:var(--ok-bg);color:var(--ok-ink)}.tag.warn{background:var(--warn-bg);color:#b9791a}.tag.info{background:var(--primary-weak);color:var(--theme-strong)}.tag.mute{background:var(--surface-2);color:var(--text-2)}.tag.purple{background:#f3edfd;color:#6d28d9}.tag.teal{background:var(--ok-bg);color:var(--ok-ink)}.tag.red{background:var(--danger-bg);color:var(--danger-ink)}.tag.green{background:var(--ok-bg);color:var(--ok-ink)}.tag.orange{background:var(--warn-bg);color:#b9791a}.tag.blue{background:var(--primary-weak);color:var(--theme-strong)}.tag.gray{background:var(--surface-2);color:var(--text-2)}.page-head{flex-wrap:wrap}.page-head .ph-text{min-width:0}.btn-refresh{margin-left:auto;align-self:center;border:1px solid var(--border, var(--border-strong));background:var(--surface, var(--surface));color:var(--text-1, #2a3142);padding:4px 12px;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-13);white-space:nowrap;transition:border-color var(--dur-base),color var(--dur-base),background var(--dur-base)}.btn-refresh:hover{border-color:var(--accent, var(--primary));color:var(--accent, var(--primary));background:var(--theme-weak)}.btn-refresh:active{transform:translateY(1px)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%) translateY(20px);z-index:var(--zi-toast);max-width:86vw;padding:8px 20px;border-radius:var(--r-sm);font-size:var(--fs-13);line-height:var(--lh-base);color:#fff;background:#2b3445;box-shadow:0 8px 30px #00000047;opacity:0;pointer-events:none;transition:opacity var(--dur-slow),transform var(--dur-slow);text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.ok,.toast.info{background:var(--ok-ink)}.toast.error{background:var(--danger-ink)}.error-box{margin:24px 2px;padding:24px;border:1px solid #f0c9c4;border-radius:var(--r-ctrl);background:var(--danger-bg);color:var(--danger-ink);text-align:center}.error-box p{margin:0 0 12px;font-size:var(--fs-14);word-break:break-word}.btn-retry{border:1px solid var(--danger);background:var(--surface);color:var(--danger-ink);padding:8px 24px;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-14)}.btn-retry:hover{background:var(--danger);color:#fff}.btn-filter{position:relative;display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);color:#333;cursor:pointer;font-size:var(--fs-13);line-height:1}.btn-filter:hover{border-color:#c0c4cc}.btn-filter .fi{font-size:var(--fs-14)}.filter-badge{position:absolute;top:-4px;right:-4px;width:8px;height:8px;border-radius:50%;background:#f5222d;border:2px solid #fff;box-sizing:content-box}.filter-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 4px}.ft-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#f0f5ff;color:var(--theme);border:1px solid #d3e8f1;border-radius:var(--r-ctrl);font-size:var(--fs-12)}.ft-chip .ft-x{cursor:pointer;font-style:normal;font-weight:700;opacity:.7;line-height:1}.ft-chip .ft-x:hover{opacity:1}.ft-clear{margin-left:4px;padding:4px 8px;background:none;border:1px solid #e3e6eb;border-radius:var(--r-ctrl);color:#888;font-size:var(--fs-12);cursor:pointer}.ft-clear:hover{color:#333;border-color:#c0c4cc}.filter-mask{position:fixed;inset:0;background:#00000059;display:flex;align-items:flex-start;justify-content:center;z-index:var(--zi-modal);padding-top:8vh}.filter-panel{width:min(520px,92vw);max-height:84vh;overflow:auto;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 12px 40px #0003}.fp-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-light);font-size:var(--fs-16);font-weight:600}.fp-close{border:none;background:none;font-size:var(--fs-18);line-height:1;cursor:pointer;color:var(--text-3)}.fp-body{padding:4px 20px}.fp-group{padding:12px 0;border-bottom:1px solid var(--bg)}.fp-row .fp-tilde{color:var(--text-3)}.fp-group input[type=text],.fp-group input[type=number],.fp-group select{width:100%;padding:8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13);box-sizing:border-box}.fp-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px}.fp-reset,.fp-confirm{padding:8px 20px;border-radius:var(--r-sm);font-size:var(--fs-14);cursor:pointer;border:1px solid #e3e6eb}.fp-reset{background:#fff;color:#555}.fp-confirm{background:var(--theme-strong);border-color:var(--theme);color:#fff}.fp-confirm:hover{background:var(--theme)}.fp-combined{width:min(620px,94vw)}.fp-conditions{display:flex;flex-direction:column;gap:8px;padding:4px 0}.fp-empty-cond{color:var(--text-3);font-size:var(--fs-13);padding:12px 0;text-align:center}.fp-condition{display:grid;grid-template-columns:1fr 90px 1fr 28px;align-items:center;gap:8px;padding:8px;background:#fafbfc;border:1px solid #eef0f4;border-radius:var(--r-sm)}.fp-comb-row{display:flex;align-items:center;gap:8px;margin:12px 0 8px}.fp-comb-label{font-size:var(--fs-13);color:var(--text-2)}.fp-comb-seg{display:inline-flex;padding:2px;background:#f2f3f7;border:1px solid var(--border);border-radius:var(--r-ctrl)}.fp-comb-opt{border:none;background:transparent;padding:4px 14px;font-size:var(--fs-12);color:var(--text-2);border-radius:calc(var(--r-ctrl) - var(--r-4));cursor:pointer;transition:all .15s var(--ease)}.fp-comb-opt:hover{color:var(--text-1)}.fp-comb-opt.on{background:var(--surface);color:var(--theme-strong);font-weight:600;box-shadow:0 1px 3px #00000014}.fp-comb,.fp-comb-select{font-size:var(--fs-13);color:#666;text-align:center;justify-self:center}.fp-comb-select{border:1px solid var(--border);border-radius:var(--r-ctrl);padding:4px;background:var(--surface);cursor:pointer}.fp-field-select,.fp-op-select,.fp-value-select,.fp-value-input{height:34px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-13);color:#333;outline:none}.fp-value-input:focus,.fp-field-select:focus,.fp-op-select:focus,.fp-value-select:focus{border-color:var(--theme)}.fp-value-wrap{min-width:0}.fp-value-empty{color:var(--text-3);font-size:var(--fs-13)}.fp-between{display:flex;align-items:center;gap:4px}.fp-between input{flex:1;min-width:0;height:34px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13)}.fp-remove{width:26px;height:26px;border:1px solid #e3e6eb;border-radius:var(--r-ctrl);background:#fff;color:var(--text-3);font-size:var(--fs-18);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.fp-remove:hover{color:#f5222d;border-color:#ffccc7;background:var(--danger-bg)}.fp-add{display:inline-flex;align-items:center;gap:4px;margin:8px 0 4px;padding:8px 12px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:#fff;color:var(--theme);font-size:var(--fs-13);cursor:pointer}.fp-add:hover{border-color:var(--theme);background:#f0f5ff}.fp-add-row{display:flex;gap:8px;margin:8px 0 4px}.fp-add-row .fp-add{margin:0}.fp-group-row{display:grid;grid-template-columns:56px 1fr;align-items:start;gap:8px}.fp-group-row .fp-comb,.fp-group-row .fp-comb-select{margin-top:14px}.fp-group{border:1.5px dashed #c3c9d4;border-radius:var(--r-ctrl);padding:8px 8px 6px;background:#fcfcfd}.fp-group-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.fp-group-label{font-size:var(--fs-13);color:var(--text-3)}.fp-group-comb{height:28px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-12);color:var(--theme);cursor:pointer;outline:none}.fp-group-comb:focus{border-color:var(--theme)}.fp-group-del{margin-left:auto;width:24px;height:24px;border:none;border-radius:var(--r-6);background:transparent;color:var(--text-3);font-size:var(--fs-16);line-height:1;cursor:pointer}.fp-group-del:hover{color:#f5222d;background:var(--danger-bg)}.fp-group-body{display:flex;flex-direction:column;gap:6px}.fp-group-body .fp-condition{padding:6px}.fp-group-add{display:inline-flex;align-self:flex-start;margin-top:6px;padding:4px 10px;border:none;border-radius:var(--r-6);background:transparent;color:var(--theme);font-size:var(--fs-12);cursor:pointer}.fp-group-add:hover{background:#f0f5ff}.ft-chip{max-width:320px}.ft-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.fp-condition{grid-template-columns:1fr 28px;gap:8px}.fp-comb,.fp-comb-select{justify-self:start}.fp-group-row{grid-template-columns:1fr}.fp-group-row .fp-comb,.fp-group-row .fp-comb-select{margin-top:0}.ft-chip{max-width:220px}}.btn-filter.active{border-color:var(--theme);color:var(--theme);background:var(--theme-weak)}.btn-filter .filter-badge[hidden]{display:none}.ft-chip[data-cid=__quick_customer],.ft-chip[data-cid=__quick_owner]{background:var(--bg);color:#555;border-color:#e3e6eb}.order-view-tabs .ovt-search{display:inline-flex;align-items:center;flex:none}.order-view-tabs .ovt-search .f-search{height:32px;width:220px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-13);color:var(--text-1);outline:none;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.order-view-tabs .ovt-search .f-search:focus{border-color:var(--accent, var(--primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, var(--primary)) 15%,transparent)}.btn-order-trash{position:relative}.btn-order-trash .ot-count{display:inline-block;min-width:16px;margin-left:4px;padding:0 4px;border-radius:var(--r-sm);background:var(--danger);color:#fff;font-size:var(--fs-11);line-height:15px;text-align:center;vertical-align:1px}.up-trash-modal.ot-modal{width:640px}html.dark .btn-order-trash .ot-count{background:var(--danger-ink)}.filter-bar.order-toolbar{margin:6px 2px 8px}.tb-btn{height:32px;padding:0 10px;border:none;border-radius:var(--r-6);background:transparent;color:var(--text-2);font-size:var(--fs-13);cursor:pointer;white-space:nowrap;transition:background .12s var(--ease),color .12s var(--ease)}.tb-btn:hover{background:var(--surface-2);color:var(--text-1)}.tb-btn.on,.tb-btn.tb-open{background:var(--theme-weak);color:var(--theme)}.tb-sep{width:1px;height:18px;background:var(--border);margin:0 2px;flex:none}.order-toolbar .btn-new-order{margin-left:0;height:32px;padding:0 14px}.order-toolbar .btn-filter{height:32px;padding:0 12px;border-radius:var(--r-6)}.tb-pop{position:fixed;z-index:1200;min-width:216px;max-width:280px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctrl);box-shadow:0 8px 24px #0f122224}.tb-pop-title{padding:6px 8px 4px;font-size:var(--fs-12);color:var(--text-3)}.tb-pop-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:none;border-radius:var(--r-6);background:transparent;color:var(--text-1);font-size:var(--fs-13);text-align:left;cursor:pointer}.tb-pop-item:hover{background:var(--surface-2)}.tb-pop-item.on{color:var(--theme);font-weight:600}.tb-pop-item .tbi{width:16px;flex:none;text-align:center;color:var(--text-3)}.tb-pop-item.on .tbi{color:var(--theme)}.tb-pop-list{max-height:264px;overflow-y:auto}.tb-pop-tip{margin-top:4px;padding:6px 8px 4px;border-top:1px solid var(--border);font-size:var(--fs-12);color:var(--text-3)}.tb-pop-seg{display:flex;gap:4px;padding:2px 4px 6px}.tbseg-btn{flex:1;height:30px;border:none;border-radius:var(--r-6);background:transparent;color:var(--text-2);font-size:var(--fs-13);cursor:pointer;transition:background .12s var(--ease)}.tbseg-btn:hover{background:var(--surface-2)}.tbseg-btn.on{background:var(--theme-strong);color:#fff;font-weight:600}.fp-quick{display:flex;align-items:center;gap:8px;margin:0 0 8px}.fp-quick-label{flex:none;font-size:var(--fs-12);color:var(--text-3)}.fp-q-sel{flex:1;min-width:0;height:32px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-13);color:var(--text-1);cursor:pointer;outline:none}.fp-q-sel:focus{border-color:var(--theme)}.fp-q-text{cursor:text}.fp-q-text::placeholder{color:var(--text-3)}@media(max-width:760px){.order-view-tabs .ovt-search .f-search{width:140px;padding:0 10px}.tb-btn{padding:0 8px}.tb-btn .tb-txt{display:none}.order-toolbar .btn-filter{padding:0 9px}.order-toolbar .btn-filter .tb-txt{display:none}}html.dark .tb-pop{box-shadow:0 8px 24px #0006}html.dark .fp-quick-label{color:var(--text-3)}.tb-pop-wide{min-width:420px;max-width:460px}.tb-sort-list{max-height:300px;overflow-y:auto;padding:4px 0}.tb-sort-row{display:grid;grid-template-columns:1fr 34px 28px 28px 28px;align-items:center;gap:6px;padding:5px 8px}.tb-sort-field,.tb-cr-field,.tb-cr-op,.tb-cr-val{height:28px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-6);background:var(--surface);color:var(--text-1);font-size:var(--fs-13);outline:none}.tb-sort-field:focus,.tb-cr-field:focus,.tb-cr-op:focus,.tb-cr-val:focus{border-color:var(--theme)}.tb-sort-dir,.tb-sort-up,.tb-sort-down,.tb-sort-del,.tb-cr-del{height:28px;border:none;border-radius:var(--r-6);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-13);line-height:1;cursor:pointer}.tb-sort-dir:hover,.tb-sort-up:hover,.tb-sort-down:hover,.tb-sort-del:hover,.tb-cr-del:hover{background:var(--border);color:var(--text-1)}.tb-sort-dir.desc{transform:rotate(180deg)}.tb-sort-up:disabled,.tb-sort-down:disabled{opacity:.35;cursor:default}.tb-sort-empty,.tb-cr-empty{padding:18px 8px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.tb-cr-tabs{display:flex;gap:4px;padding:2px 4px 6px}.tb-cr-list{max-height:340px;overflow-y:auto;padding:2px 0 4px}.tb-cr-row{padding:6px 8px;border-radius:var(--r-6)}.tb-cr-row+.tb-cr-row{margin-top:2px}.tb-cr-row:hover{background:var(--surface-2)}.tb-cr-l1{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) minmax(0,1fr);gap:6px}.tb-cr-l1 select,.tb-cr-l1 input{width:100%;min-width:0}.tb-cr-noval{display:flex;align-items:center;justify-content:center;height:28px;color:var(--text-3)}.tb-cr-l2{display:flex;align-items:center;gap:8px;margin-top:6px}.tb-cr-colors{display:flex;gap:4px;flex:1;min-width:0}.tb-cr-dot{width:20px;height:20px;padding:0;border:none;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 0 1px #0f122214}.tb-cr-dot:hover{box-shadow:inset 0 0 0 2px #0f12222e}.tb-cr-dot.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--theme)}.tb-cr-seg{display:flex;border:1px solid var(--border);border-radius:var(--r-6);overflow:hidden;flex:none}.tb-cr-tg{height:26px;padding:0 10px;border:none;background:transparent;color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.tb-cr-tg.on{background:var(--theme-strong);color:#fff}.tb-cr-del{width:28px;flex:none}html.dark .tb-sort-field,html.dark .tb-cr-field,html.dark .tb-cr-op,html.dark .tb-cr-val{background:var(--surface-2)}html.dark .tb-cr-dot{box-shadow:inset 0 0 0 1px #ffffff1f}html.dark .tb-cr-dot:hover{box-shadow:inset 0 0 0 2px #ffffff3d}@media(max-width:520px){.tb-pop-wide{min-width:0;max-width:calc(100vw - 24px)}.tb-cr-l1{grid-template-columns:1fr 1fr}.tb-cr-l1 .tb-cr-val{grid-column:1 / -1}}.tb-pop-fields{min-width:320px;max-width:360px}.fld-search{padding:2px 6px 6px}.fld-search input{width:100%;height:28px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-6);background:var(--surface);color:var(--text-1);font-size:var(--fs-13);outline:none}.fld-search input:focus{border-color:var(--theme)}.fld-list{max-height:316px;overflow-y:auto;padding:2px 0 4px}.fld-row{border-radius:var(--r-6)}.fld-row:hover,.fld-row.open{background:var(--surface-2)}.fld-line{display:flex;align-items:center;gap:6px;padding:4px 6px}.fld-ico{flex:none;width:18px;text-align:center;color:var(--text-3);font-size:var(--fs-12)}.fld-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-13);color:var(--text-1)}.fld-row.off .fld-name,.fld-row.off .fld-ico{color:var(--text-3)}.fld-eye,.fld-lock,.fld-more{flex:none;width:24px;height:24px;padding:0;border:none;border-radius:var(--r-6);background:transparent;color:var(--text-2);font-size:var(--fs-12);line-height:1;cursor:pointer}.fld-eye:hover,.fld-more:hover{background:var(--border);color:var(--text-1)}.fld-lock{cursor:default}.fld-lock.off{cursor:pointer}.fld-lock.off:hover{background:var(--border)}.fld-row.fz .fld-ico{color:var(--theme)}.fld-acts{display:none;gap:6px;padding:2px 6px 6px 30px}.fld-row.open .fld-acts{display:flex}.fld-act{height:24px;padding:0 10px;border:none;border-radius:var(--r-6);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-12);line-height:1;cursor:pointer}.fld-act:hover{background:var(--border);color:var(--text-1)}.fld-act-del:hover{color:var(--danger)}.fld-sec{margin-top:4px;padding:6px 8px 4px;border-top:1px solid var(--border);font-size:var(--fs-12);color:var(--text-3)}.fld-empty{padding:18px 8px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.fld-foot{margin-top:2px;padding-top:4px;border-top:1px solid var(--border)}html.dark .fld-search input{background:var(--surface-2)}@media(max-width:520px){.tb-pop-fields{min-width:0;max-width:calc(100vw - 24px)}}.th-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:2px;padding:0;border:none;border-radius:var(--r-6);background:transparent;color:var(--text-3);font-size:var(--fs-12);line-height:1;cursor:pointer;opacity:0;transition:opacity .12s var(--ease),background .12s var(--ease);vertical-align:middle}.vs-th:hover .th-filter-btn,.th-filter-btn:focus-visible{opacity:1}.th-filter-btn.on{opacity:1;color:var(--theme)}.th-filter-btn:hover{background:var(--theme-weak);color:var(--theme)}@media(hover:none){.th-filter-btn{opacity:.5}}.cf-pop{position:fixed;z-index:1200;width:264px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card, var(--r-ctrl));box-shadow:var(--shadow-1),var(--shadow-2);font-size:var(--fs-13);color:var(--text-1)}.cf-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;font-weight:600;font-size:var(--fs-13)}.cf-title{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cf-close{border:none;background:none;color:var(--text-3);font-size:var(--fs-16);line-height:1;cursor:pointer;padding:2px 4px;border-radius:var(--r-6)}.cf-close:hover{color:var(--text-1);background:var(--surface-2)}.cf-body{padding:0 8px 4px}.cf-loading{padding:24px 0;text-align:center;color:var(--text-3);font-size:var(--fs-12)}.cf-mode{display:flex;gap:4px;padding:3px;margin-bottom:6px;background:var(--surface-2);border-radius:var(--r-sm)}.cf-mode-btn{flex:1;height:26px;border:none;border-radius:var(--r-6);background:transparent;color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.cf-mode-btn.on{background:var(--surface);color:var(--theme);font-weight:600;box-shadow:0 1px 3px #00000014}html.dark .cf-mode-btn.on{box-shadow:none}.cf-search{margin-bottom:4px}.cf-search-input{width:100%;height:28px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-6);background:var(--surface);color:var(--text-1);font-size:var(--fs-12);outline:none}.cf-search-input:focus{border-color:var(--theme)}.cf-list{max-height:240px;overflow-y:auto}.cf-item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--r-6);cursor:pointer;user-select:none}.cf-item:hover{background:var(--surface-2)}.cf-item input[type=checkbox]{width:14px;height:14px;margin:0;flex:none;accent-color:var(--theme)}.cf-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cf-c{flex:none;color:var(--text-3);font-size:var(--fs-11)}.cf-trunc{padding:4px 6px;color:var(--text-3);font-size:var(--fs-11)}.cf-list-foot{display:flex;align-items:center;gap:8px;padding:6px 2px 2px}.cf-all,.cf-none{border:none;background:none;color:var(--theme);font-size:var(--fs-12);cursor:pointer;padding:2px 4px;border-radius:var(--r-6)}.cf-all:hover,.cf-none:hover{background:var(--theme-weak)}.cf-selinfo{margin-left:auto;color:var(--text-3);font-size:var(--fs-11)}.cf-switch{padding:6px 2px 2px;margin-top:4px;border-top:1px solid var(--border-light, var(--border-light))}html.dark .cf-switch{border-top-color:var(--border)}.cf-switch-btn{border:none;background:none;color:var(--theme);font-size:var(--fs-12);cursor:pointer;padding:2px 0}.cf-switch-btn:hover{text-decoration:underline}.cf-cond{display:flex;flex-direction:column;gap:8px;padding:6px 4px 10px}.cf-op{height:30px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-6);background:var(--surface);color:var(--text-1);font-size:var(--fs-12);outline:none}.cf-op:focus{border-color:var(--theme)}.cf-v1,.cf-v2{height:30px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-6);background:var(--surface);color:var(--text-1);font-size:var(--fs-12);outline:none}.cf-v1:focus,.cf-v2:focus{border-color:var(--theme)}.cf-between{display:flex;align-items:center;gap:4px;color:var(--text-3)}.cf-between .cf-v1,.cf-between .cf-v2{flex:1;min-width:0}.cf-val-empty{color:var(--text-3)}.cf-chips{display:flex;flex-wrap:wrap;gap:6px;padding:6px 4px 2px}.cf-chip{height:24px;padding:0 10px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);line-height:22px;cursor:pointer;transition:border-color .12s var(--ease),color .12s var(--ease),background .12s var(--ease)}.cf-chip:hover{border-color:var(--theme);color:var(--theme)}.cf-chip.on{border-color:var(--theme);background:var(--theme-weak);color:var(--theme);font-weight:600}.cf-quick-inp{padding:4px 4px 0}.cf-quick-inp>input{width:100%;box-sizing:border-box}.cf-foot{display:flex;justify-content:space-between;padding:8px 12px 10px;border-top:1px solid var(--border-light, var(--border-light))}html.dark .cf-foot{border-top-color:var(--border)}.cf-clear,.cf-apply{height:28px;padding:0 14px;border-radius:var(--r-6);font-size:var(--fs-12);cursor:pointer}.cf-clear{border:1px solid var(--border);background:var(--surface);color:var(--text-2)}.cf-clear:hover{color:var(--text-1);border-color:var(--border-strong)}.cf-apply{border:1px solid var(--theme-strong);background:var(--theme-strong);color:#fff}.cf-apply:hover{background:var(--theme);border-color:var(--theme)}.fp-cond-ro{grid-template-columns:1fr 28px}.fp-ro-cond{display:flex;align-items:center;gap:8px;min-width:0;padding:7px 10px;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13)}.fp-ro-field{color:var(--text-1);flex:none}.fp-ro-op{color:var(--text-3);flex:none}.fp-ro-vals{color:var(--theme);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-seg{display:inline-flex;border:1px solid #e3e6eb;border-radius:var(--r-sm);overflow:hidden}.view-seg .vs-btn{border:0;background:var(--surface);color:var(--text-3);font-size:var(--fs-13);padding:8px 12px;cursor:pointer}.view-seg .vs-btn+.vs-btn{border-left:1px solid var(--border)}.view-seg .vs-btn.on{background:var(--theme-strong);color:#fff}.grp-field-label{font-size:var(--fs-13);color:var(--text-3);margin-left:4px}.grp-field-label{display:inline-flex;align-items:center;height:32px;padding:0 12px;border:1px solid #e3e6eb;border-radius:var(--r-sm);background:#fff;color:#1f2733;font-size:var(--fs-13);cursor:pointer;margin-left:8px}.grp-field-label:hover{border-color:var(--theme);background:#f0f5ff;color:var(--theme)}.grp-ungroup-btn{margin-left:8px;padding:8px 12px;border:1px solid #f5c2c2;border-radius:var(--r-ctrl);background:var(--danger-bg);color:var(--danger-ink);font-size:var(--fs-13);cursor:pointer;font-weight:500}.grp-ungroup-btn:hover{border-color:var(--danger);background:var(--danger-bg)}.field-cfg-mask{z-index:var(--zi-modal)}.field-cfg{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:680px;max-width:92vw;height:520px;max-height:90vh;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 16px 48px #0000002e;display:flex;flex-direction:column;overflow:hidden}.field-cfg-head{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;font-size:var(--fs-16);font-weight:600;color:#1f2733;border-bottom:1px solid #eef1f6}.field-cfg-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-4);cursor:pointer;border-radius:var(--r-ctrl)}.field-cfg-close:hover{background:var(--surface-2);color:#1f2733}.field-cfg-body{display:flex;flex:1;min-height:0}.field-cfg-side{width:170px;flex:none;background:#f8fafc;border-right:1px solid #eef1f6;padding:12px 8px;overflow-y:auto}.field-cfg-cat{font-size:var(--fs-12);color:var(--text-4);padding:0 8px 8px}.field-type-item{width:100%;display:flex;align-items:center;gap:8px;padding:8px;margin-bottom:4px;border:0;border-radius:var(--r-sm);background:transparent;color:#1f2733;font-size:var(--fs-13);cursor:pointer;text-align:left}.field-type-item:hover{background:#eef1f6}.field-type-item.on{background:#e6efff;color:var(--theme);font-weight:500}.field-type-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:#eef1f6;border-radius:var(--r-6);font-size:var(--fs-12);color:var(--text-3);flex:none}.field-type-item.on .field-type-icon{background:var(--theme-strong);color:#fff}.field-cfg-main{flex:1;padding:24px 28px;overflow-y:auto}.field-cfg-row{margin-bottom:24px}.field-cfg-row label{display:block;font-size:var(--fs-13);color:var(--text-3);margin-bottom:8px}.field-cfg-input{width:100%;height:40px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-14);color:#1f2733;outline:none;box-sizing:border-box}.field-cfg-input:focus{border-color:var(--theme)}.field-cfg-type-show{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid #e3e6eb;border-radius:var(--r-sm);background:#fafbfc;color:#1f2733;font-size:var(--fs-14)}.field-cfg-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #eef1f6}.field-cfg-cancel,.field-cfg-ok{height:36px;padding:0 20px;border-radius:var(--r-sm);font-size:var(--fs-14);cursor:pointer}.field-cfg-cancel{border:1px solid #e3e6eb;background:#fff;color:var(--text-3)}.field-cfg-ok{border:0;background:var(--theme-strong);color:#fff}.field-cfg-ok:hover{background:var(--info)}[hidden]{display:none!important}.modal-mask{position:fixed;inset:0;z-index:1000;background:#14181f73;display:flex;align-items:center;justify-content:center}.grp-config{width:640px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);background:#fff;border-radius:var(--r-ctrl);box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column;overflow:hidden}.grp-config-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;font-size:var(--fs-16);font-weight:600;color:#1f2733;border-bottom:1px solid var(--border-light)}.grp-config-close{font-size:var(--fs-22);line-height:1;color:var(--text-4);cursor:pointer}.grp-config-close:hover{color:var(--theme)}.grp-config-body{padding:8px 20px 4px;overflow-y:auto}.gc-section{padding:12px 0;border-bottom:1px solid #f5f6f8}.gc-section:last-child{border-bottom:0}.gc-label{font-size:var(--fs-13);font-weight:600;color:var(--text-3);margin-bottom:8px}.gc-field{width:100%;height:36px;border:1px solid #e3e6eb;border-radius:var(--r-sm);padding:0 8px;font-size:var(--fs-14);color:#1f2733;background:#fff}.gc-mode{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.gc-mode label{font-size:var(--fs-13);color:#444;cursor:pointer}.gc-buckets{margin-top:4px}.gc-bucket{border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px;margin-bottom:8px;background:#fafbfc}.gc-bname{width:220px;max-width:60%;height:32px;border:1px solid #e3e6eb;border-radius:var(--r-ctrl);padding:0 8px;font-size:var(--fs-13)}.gc-vals{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.gc-vals-empty{color:var(--text-3);font-size:var(--fs-12)}.gc-chip{display:inline-flex;align-items:center;gap:2px;background:#eef3ff;color:var(--theme);border:1px solid var(--theme-weak);border-radius:var(--r-ctrl);padding:2px 8px;font-size:var(--fs-12)}.gc-chip-x{cursor:pointer;font-style:normal;color:#9bb4ff}.gc-chip-x:hover{color:#f5222d}.gc-bucket-actions{display:flex;gap:8px}.gc-addval,.gc-delb,.gc-addb,.gc-auto,.gc-cond-add,.gc-picker-ok{border:1px solid #e3e6eb;border-radius:var(--r-ctrl);background:#fff;color:var(--theme);font-size:var(--fs-12);padding:4px 12px;cursor:pointer}.gc-delb{color:#f5222d;border-color:#ffccc7}.gc-addval:hover,.gc-addb:hover,.gc-auto:hover,.gc-cond-add:hover{border-color:var(--theme);background:#f0f5ff}.gc-buckets-foot{display:flex;gap:8px;margin-top:4px}.gc-remainder{margin-top:8px;font-size:var(--fs-13);color:var(--text-3);display:flex;gap:16px}.gc-remainder label{cursor:pointer}.gc-scope-enable{display:flex;align-items:center;gap:4px;font-size:var(--fs-13);color:#444;cursor:pointer}.gc-scope-box{margin-top:8px}.gc-cond{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px}.gc-cond select,.gc-cond input{height:32px;border:1px solid var(--border);border-radius:var(--r-ctrl);padding:0 8px;font-size:var(--fs-13);background:var(--surface);color:#1f2733}.gc-cond-field{min-width:130px}.gc-cond-val{min-width:120px}.gc-cond-del{border:0;background:transparent;color:var(--text-3);font-size:var(--fs-16);cursor:pointer}.gc-cond-del:hover{color:#f5222d}.grp-field-dropdown{position:fixed;z-index:var(--zi-dropdown);width:220px;background:#fff;border:1px solid #e3e6eb;border-radius:var(--r-sm);box-shadow:0 8px 24px #0000001f;overflow:hidden;font-size:var(--fs-13)}.grp-dd-head{padding:12px;font-weight:600;color:#1f2733;border-bottom:1px solid var(--border-light)}.grp-dd-list{max-height:260px;overflow-y:auto;padding:4px}.grp-dd-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:0;border-radius:var(--r-ctrl);background:transparent;color:#1f2733;font-size:var(--fs-13);cursor:pointer;text-align:left}.grp-dd-item:hover,.grp-dd-item.on{background:#f0f5ff;color:var(--theme)}.grp-dd-check{width:16px;text-align:center;font-size:var(--fs-12)}.grp-config-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border-light)}.gc-cancel,.gc-apply{padding:8px 20px;border-radius:var(--r-ctrl);font-size:var(--fs-14);cursor:pointer;border:1px solid transparent}.gc-cancel{background:#fff;border-color:#e3e6eb;color:var(--text-3)}.gc-cancel:hover{border-color:var(--border-strong)}.gc-apply{background:var(--theme-strong);color:#fff}.gc-apply:hover{background:var(--ok-ink)}.gc-picker-mask{position:absolute;inset:0;background:#14181f59;display:flex;align-items:center;justify-content:center;z-index:5}.gc-picker{width:360px;max-width:90%;max-height:70%;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;overflow:hidden}.gc-picker-head{padding:12px;font-size:var(--fs-14);font-weight:600;color:#1f2733;border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:8px}.gc-picker-search{height:32px;border:1px solid #e3e6eb;border-radius:var(--r-ctrl);padding:0 8px;font-size:var(--fs-13)}.gc-picker-list{padding:8px 12px;overflow-y:auto;max-height:260px}.gc-pk-item{display:flex;align-items:center;gap:8px;padding:4px;font-size:var(--fs-13);color:#333;cursor:pointer}.gc-pk-item:hover{background:#f5f8ff}.gc-picker-empty{color:var(--text-3);font-size:var(--fs-13);padding:12px}.gc-picker-foot{padding:8px 12px;border-top:1px solid var(--border-light);text-align:right}.inline-edit{height:34px;border:1px solid var(--theme);border-radius:var(--r-sm);padding:0 8px;font-size:var(--fs-13);outline:none}.grp-wrap{margin-top:12px}.grp{border:1px solid #e6eaf2;border-radius:var(--r-sm);margin-bottom:8px;background:#fff;overflow:hidden}.grp.dragging{opacity:.5}.grp.drop-target{border-color:var(--theme);box-shadow:0 0 0 2px #eaf1ff}.grp-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;cursor:pointer;user-select:none;border-bottom:1px solid #eef1f6}.grp-head.dragging{opacity:.5}.grp-toggle{width:16px;color:var(--text-4);font-size:var(--fs-12)}.grp-name{font-weight:600;color:#1f2733;font-size:var(--fs-14)}.grp-count{background:#eef1f6;color:var(--text-3);border-radius:var(--r-sm);padding:1px 8px;font-size:var(--fs-12);min-width:22px;text-align:center}.grp-sum{margin-left:2px;color:var(--theme-strong);background:#eef4ff;border:1px solid #d3e8f1;border-radius:var(--r-sm);padding:1px 8px;font-size:var(--fs-12);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.grp-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:8px 16px;background:#fbfcfe;border-top:1px solid #eef1f6;position:sticky;bottom:0}.grp-foot-label{color:var(--text-4);font-size:var(--fs-12)}.grp-foot-sum{color:var(--theme-strong);font-size:var(--fs-14);font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--font-mono, "SFMono-Regular", Consolas, monospace)}.grp-actions{margin-left:auto;display:flex;gap:4px}.grp-actions button{border:1px solid #e3e6eb;background:#fff;color:var(--text-4);border-radius:var(--r-ctrl);width:26px;height:26px;font-size:var(--fs-13);line-height:1;cursor:pointer;display:none}.grp:hover .grp-actions button{display:inline-flex;align-items:center;justify-content:center}.grp-actions .grp-rename:hover{color:var(--theme);border-color:var(--theme)}.grp-actions .grp-del:hover{color:#f5222d;border-color:#ffccc7;background:var(--danger-bg)}.grp-table{table-layout:fixed;width:auto}.grp-table th,.grp-table td{min-width:0;overflow:hidden}.grp-table th{height:var(--vs-row-h)!important}.grp-table tbody tr:not(.vs-pad) td{height:var(--vs-row-h)!important}.grp-table th{position:relative}.grp.collapsed .grp-body{display:none}.grp-body{padding:0}.grp-scroll{max-height:360px;overflow-y:auto;overflow-x:auto}.grp-body table.module-table{border:0}.grp-body tr[data-id]{cursor:grab}.grp-body tr[data-id].dragging{opacity:.4}.grp-body tr[data-id]:active{cursor:grabbing}.grp-body .module-table thead th{position:sticky;top:var(--head-h, 58px);z-index:10;background:#fbfcfe}.grp-body .module-table thead{background:#fbfcfe}.kb-wrap{margin-top:12px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px}.kb-cols{display:flex;gap:10px;align-items:flex-start;min-width:max-content;padding:2px}.kb-col{width:264px;flex:0 0 264px;display:flex;flex-direction:column;background:#f5f7fa;border:1px solid #e6eaf2;border-radius:var(--r-ctrl);max-height:calc(100vh - 230px);min-height:180px}.kb-col.drop-target{border-color:var(--theme);background:#f0f5ff}.kb-col-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #e9edf3;position:sticky;top:0;background:#f5f7fa;border-radius:var(--r-ctrl) var(--r-ctrl) 0 0;z-index:1}.kb-col-count{background:#e8ecf2;color:var(--text-3);border-radius:var(--r-sm);padding:0 7px;font-size:var(--fs-12);min-width:20px;text-align:center;font-variant-numeric:tabular-nums}.kb-col-sum{margin-left:auto;font-size:var(--fs-12);color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}.kb-col-body{overflow-y:auto;padding:8px;flex:1;min-height:0}.kb-cards{min-height:1px}.kb-pad{width:100%}.kb-empty{padding:18px 8px;text-align:center;color:#a3adc0;font-size:var(--fs-12);border:1px dashed #dfe4ec;border-radius:var(--r-sm)}.kb-card{height:112px;margin-bottom:8px;padding:9px 10px;background:#fff;border:1px solid #e6eaf2;border-radius:var(--r-sm);cursor:grab;overflow:hidden;display:flex;flex-direction:column;gap:5px}.kb-card:hover{border-color:var(--theme-weak)}.kb-card:active{cursor:grabbing}.kb-card.dragging{opacity:.45}.kb-card-head{display:flex;align-items:center;gap:6px;min-width:0}.kb-card-no{font-weight:600;font-size:var(--fs-12);color:#1f2733;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.kb-due{flex:0 0 auto;font-size:var(--fs-11);line-height:1;padding:3px 6px;border-radius:var(--r-6);background:#eef1f6;color:var(--text-3);white-space:nowrap}.kb-due.overdue{background:var(--danger-bg);color:var(--danger);font-weight:600}.kb-card-cust{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kb-card-cust.is-empty{color:#b3bccc}.kb-card-main{display:flex;align-items:center;min-width:0}.kb-card-amt{font-size:var(--fs-13);font-weight:700;color:#1f2733;font-variant-numeric:tabular-nums}.kb-card-owner{margin-left:auto;width:22px;height:22px;font-size:var(--fs-11);flex:0 0 22px}.kb-card-prog{display:flex;align-items:center;gap:6px;margin-top:auto}.kb-card-prog .mini-bar{flex:1;min-width:0}.kb-card-prog .mini-num{font-size:var(--fs-11);color:var(--text-4);font-style:normal;font-variant-numeric:tabular-nums}.kb-prog-none{font-size:var(--fs-11);color:#b3bccc}.kb-wrap.module-loading{opacity:.82}.kb-wrap .module-loadbar{position:sticky;top:0;left:0;height:2px;width:40%;background:linear-gradient(90deg,transparent,var(--theme),transparent);animation:kb-loadbar 1s linear infinite;border-radius:var(--r-4);z-index:2}@keyframes kb-loadbar{0%{transform:translate(-100%)}to{transform:translate(350%)}}.col-ctx-menu{position:fixed;z-index:2000;min-width:200px;max-width:280px;max-height:calc(100vh - 16px);overflow-y:auto;overflow-x:hidden;background:#fff;border:1px solid #e3e6eb;border-radius:var(--r-sm);box-shadow:0 8px 24px #0000001f;padding:4px 0;font-size:var(--fs-13);color:#1f2733;user-select:none}.col-ctx-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;white-space:nowrap}.col-ctx-item:hover{background:var(--surface-2)}.col-ctx-item.col-ctx-checked{color:var(--theme);font-weight:500}.col-ctx-icon{width:18px;text-align:center;font-size:var(--fs-14);flex-shrink:0}.col-ctx-sep{height:1px;background:#eef0f4;margin:4px 8px}.col-ctx-item.col-ctx-danger{color:var(--danger)}.col-ctx-item.col-ctx-danger:hover{background:var(--danger-bg)}.col-del-mask,.col-restore-mask{z-index:var(--zi-modal);display:flex;align-items:center;justify-content:center}.col-del-modal,.col-restore-modal{background:#fff;border-radius:var(--r-sm);width:400px;max-width:92vw;box-shadow:0 12px 32px #00000029}.col-del-modal .modal-head,.col-restore-modal .modal-head{padding:12px 20px;font-weight:600;border-bottom:1px solid var(--border-light)}.col-del-modal .modal-body,.col-restore-modal .modal-body{padding:16px 20px}.col-del-text{margin:0 0 8px;font-size:var(--fs-14);color:#1f2733}.col-del-sub{margin:0;font-size:var(--fs-12);color:var(--text-3);line-height:var(--lh-base)}.col-del-modal .modal-foot,.col-restore-modal .modal-foot{padding:12px 20px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px}.btn-danger{border:1px solid var(--danger);background:var(--danger);border-radius:var(--r-ctrl);padding:4px 12px;font-size:var(--fs-13);color:#fff;cursor:pointer}.col-restore-list{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto}.col-restore-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px;border-radius:var(--r-ctrl)}.col-restore-row:hover{background:#f7f8fa}.col-restore-name{font-size:var(--fs-13);color:#1f2733;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-restore-one{padding:4px 12px;font-size:var(--fs-12);flex-shrink:0}.col-restore-empty{font-size:var(--fs-13);color:var(--text-3);text-align:center;padding:20px 0}.col-modal-mask{z-index:var(--zi-modal);display:flex;align-items:center;justify-content:center}.col-modal{background:#fff;border-radius:var(--r-sm);width:360px;max-width:90vw;box-shadow:0 12px 32px #00000029}.col-modal .modal-head{padding:12px 20px;font-weight:600;border-bottom:1px solid var(--border-light)}.col-modal .modal-body{padding:16px 20px}.col-modal-input{width:100%;box-sizing:border-box;padding:8px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13)}.col-modal-input:focus{outline:none;border-color:var(--theme)}.col-modal .modal-foot{padding:12px 20px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px}.col-color-picker{position:fixed;z-index:2050;background:#fff;border:1px solid #e3e6eb;border-radius:var(--r-sm);box-shadow:0 8px 24px #0000001f;padding:8px;display:flex;flex-wrap:wrap;gap:8px;width:176px}.col-color-swatch{width:24px;height:24px;border-radius:var(--r-4);cursor:pointer;border:1px solid rgba(0,0,0,.08);box-sizing:border-box}.col-color-swatch:hover{transform:scale(1.08)}.col-color-clear{width:auto;padding:0 8px;font-size:var(--fs-12);line-height:24px;background:var(--surface-2);color:var(--text-3)}.col-insert-picker{position:fixed;z-index:2050;background:#fff;border:1px solid #e3e6eb;border-radius:var(--r-sm);box-shadow:0 8px 24px #0000001f;padding:4px 0;min-width:180px;max-height:320px;overflow-y:auto}.col-insert-title{padding:8px 12px;font-size:var(--fs-12);color:var(--text-4);border-bottom:1px solid var(--border-light)}.col-insert-row{padding:8px 12px;font-size:var(--fs-13);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.col-insert-row:hover{background:var(--surface-2)}.col-insert-badge{font-size:var(--fs-12);padding:1px 4px;border-radius:var(--r-4);background:var(--danger-bg);color:#d4380d;white-space:nowrap}.col-insert-badge-hidden{background:#f0f5ff;color:var(--theme-strong)}.col-insert-new{color:var(--theme);font-weight:500}.col-insert-new:hover{background:#f0f5ff}.cell-editable{cursor:text;position:relative}.cell-editable:hover{background:#e7f3f5!important;box-shadow:inset 0 0 0 2px var(--info)}.cell-editing{background:#fff!important;box-shadow:inset 0 0 0 2px var(--theme);padding:0!important}.cell-saving{background:var(--warn-bg)!important}.cell-saved{background:#f6ffed!important;animation:cellFade 1.2s var(--ease)}@keyframes cellFade{0%{background:#d9f7be}to{background:transparent}}.cell-edit-input,.cell-edit-select{width:100%;height:28px;box-sizing:border-box;border:2px solid var(--theme);border-radius:var(--r-ctrl);padding:0 4px;font-size:var(--fs-13);outline:none;background:var(--surface)}.cell-detail-link{cursor:pointer}.cell-detail-link:hover{color:var(--theme);text-decoration:underline}.vs-table td.td-selected{box-shadow:inset 0 0 0 2px #1f2329;background:#1f23290d}html.dark .vs-table td.td-selected{box-shadow:inset 0 0 0 2px var(--border-strong);background:#ffffff12}.cell-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:#fff;font-size:var(--fs-12);margin-right:6px;flex:none;vertical-align:middle}.cell-date-overdue,.cell-unpaid{color:var(--danger);font-weight:600}.cell-paid-ok{color:#1a9e63}.btn-new-order{margin-left:auto;padding:4px 12px;font-size:var(--fs-13);cursor:pointer;background:var(--theme-strong);color:#fff;border:none;border-radius:var(--r-ctrl);white-space:nowrap}.btn-new-order:hover{background:var(--theme-strong);filter:brightness(1.12)}.cell-readonly{background:#fafbfc;color:var(--text-4)}.cell-readonly:hover{background:#fafbfc!important;box-shadow:none;cursor:default}.fp-mask{z-index:var(--zi-modal);display:flex;align-items:center;justify-content:center}.fp-modal{width:900px;max-width:95vw;max-height:90vh;background:#fff;border-radius:var(--r-sm);box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column}.fp-modal .modal-head{padding:16px 24px;font-size:var(--fs-16);font-weight:600;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.fp-close{font-size:var(--fs-22);color:var(--text-4);cursor:pointer}.fp-close:hover{color:var(--theme)}.fp-body{padding:16px 24px;overflow-y:auto;flex:1}.fp-loading{text-align:center;color:var(--text-4);padding:40px 0}.fp-error{color:var(--danger);text-align:center;padding:20px 0}.fp-role-tabs{display:flex;gap:8px;margin-bottom:12px}.fp-role-tab{padding:4px 16px;font-size:var(--fs-13);border:1px solid var(--border-strong);background:#fff;border-radius:var(--r-ctrl);cursor:pointer;color:var(--text-2)}.fp-role-tab.on{background:var(--theme-strong);color:#fff;border-color:var(--theme)}.fp-matrix-wrap{overflow-x:auto;border:1px solid #eef0f4;border-radius:var(--r-sm)}.fp-matrix{width:100%;border-collapse:collapse;font-size:var(--fs-13)}.fp-matrix th{padding:8px 12px;background:#f7f8fa;border-bottom:1px solid #eef0f4;font-weight:600;color:var(--text-2);text-align:center;white-space:nowrap}.fp-matrix th.fp-field-col{text-align:left;min-width:140px}.fp-matrix td{padding:4px 8px;border-bottom:1px solid #f5f6f8;text-align:center}.fp-field-name{text-align:left!important;color:#1f2733;white-space:nowrap}.fp-field-type{color:var(--text-4);font-size:var(--fs-12)}.fp-cell{cursor:default}.fp-cell.fp-current{cursor:pointer}.fp-cell.fp-current:hover{box-shadow:inset 0 0 0 2px var(--theme)}.fp-icon{display:inline-block;width:22px;height:22px;line-height:22px;border-radius:var(--r-4);font-size:var(--fs-11);font-weight:600}.fp-v .fp-icon{background:#e8f7e8;color:#00a854}.fp-r .fp-icon{background:var(--warn-bg);color:#fa8c16}.fp-h .fp-icon{background:var(--danger-bg);color:var(--danger)}.fp-legend{display:flex;gap:16px;margin-top:12px;font-size:var(--fs-12);color:var(--text-3);align-items:center;flex-wrap:wrap}.fp-leg{display:flex;align-items:center;gap:4px}.fp-leg.fp-v:before{content:"";display:inline-block;width:12px;height:12px;background:#e8f7e8;border-radius:var(--r-4)}.fp-leg.fp-r:before{content:"";display:inline-block;width:12px;height:12px;background:var(--warn-bg);border-radius:var(--r-4)}.fp-leg.fp-h:before{content:"";display:inline-block;width:12px;height:12px;background:var(--danger-bg);border-radius:var(--r-4)}.fp-tip{color:var(--text-4)}.fp-modal .modal-foot{padding:12px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px;align-items:center}.fp-template-sel{margin-right:auto;height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-4);font-size:var(--fs-13)}.mp-mask{display:flex;align-items:center;justify-content:center}.mp-modal{width:600px;max-width:95vw;max-height:88vh;background:#fff;border-radius:var(--r-ctrl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;border:1px solid var(--border-light)}.mp-modal .modal-head{padding:16px 24px;font-size:var(--fs-16);font-weight:600;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.mp-close{font-size:var(--fs-22);color:var(--text-4);cursor:pointer}.mp-close:hover{color:var(--theme)}.mp-body{padding:16px 24px;overflow-y:auto;flex:1}.mp-loading{text-align:center;color:var(--text-4);padding:40px 0}.mp-error{color:var(--danger);text-align:center}.mp-section{margin-bottom:20px}.mp-section-title{font-size:var(--fs-13);font-weight:600;color:#1f2733;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-light)}.mp-row{display:flex;align-items:flex-start;margin-bottom:8px;gap:8px}.mp-row label{width:130px;flex-shrink:0;font-size:var(--fs-13);color:var(--text-2);line-height:32px}.mp-input{flex:1;height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13);outline:none;background:var(--surface);color:#1f2733}.mp-input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}.mp-checkbox-group{flex:1;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;max-height:220px;overflow-y:auto;border:1px solid #eef0f4;border-radius:var(--r-sm);padding:12px}.mp-checkbox-group .mp-check{width:auto;height:auto;min-height:24px;box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:#f4f6f9;border:1px solid #e6e9ee;border-radius:var(--r-card);font-size:var(--fs-13);color:#333;white-space:nowrap;cursor:pointer;line-height:var(--lh-snug);transition:all var(--dur-fast)}.mp-checkbox-group .mp-check:hover{border-color:var(--theme);background:#eef3ff}.mp-hint{margin-top:8px;padding:8px;background:#f7f9fc;border:1px dashed #cfd6e4;border-radius:var(--r-ctrl);font-size:var(--fs-12);line-height:var(--lh-base);color:var(--text-3)}.mp-hint-warn{margin:8px 0;padding:8px 12px;background:var(--warn-bg);border:1px solid #fbe0bd;border-left:3px solid #e5a00d;border-radius:var(--r-ctrl);font-size:var(--fs-12);line-height:var(--lh-relaxed);color:var(--warn-ink)}.mp-hint-warn b{color:#c97a16}.mp-hint-warn code{background:#c97a161a;border:0;padding:0 4px;border-radius:var(--r-4);font-size:var(--fs-12)}.mp-checkbox-group .mp-check input{flex-shrink:0;margin:0;width:15px;height:15px}.mp-modules{display:flex;flex-direction:column;gap:8px}.mp-mod-row{display:flex;align-items:center;justify-content:space-between}.mp-mod-row span{font-size:var(--fs-13);color:#1f2733}.mp-mod-row .mp-input{width:140px;flex:none}.mp-perms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px}.mp-perm-item{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border:1px solid #eef0f4;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-12);transition:all var(--dur-fast)}.mp-perm-item:hover{border-color:var(--theme)}.mp-perm-item.extra{background:#f0f5ff;border-color:var(--info)}.mp-perm-item.denied{background:var(--danger-bg);border-color:#ffccc7}.mp-perm-name{color:#1f2733}.mp-perm-state{font-size:var(--fs-12);padding:1px 4px;border-radius:var(--r-4);background:var(--surface-2);color:var(--text-4)}.mp-perm-item.extra .mp-perm-state{background:var(--theme-strong);color:#fff}.mp-perm-item.denied .mp-perm-state{background:var(--danger);color:#fff}.mp-modal .modal-foot{padding:12px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px;align-items:center}.mp-role-tag{margin-right:auto;font-size:var(--fs-12);color:var(--text-4);background:#f7f9fc;padding:4px 8px;border-radius:var(--r-4)}.mp-modal-wide{width:860px;max-width:96vw}.mp-2col{display:flex;gap:0;min-height:480px;height:calc(88vh - 120px);overflow:hidden}.mp-left{width:220px;flex-shrink:0;background:#fafbfc;border-right:1px solid #eef0f4;display:flex;flex-direction:column;overflow-y:auto}.mp-roles-search{padding:8px 12px;position:sticky;top:0;background:#fafbfc;z-index:1}.mp-roles-search .mp-input{height:30px;font-size:var(--fs-12)}.mp-roles-list{padding:0 0 8px}.mp-roles-group-title{padding:8px 12px 4px;font-size:var(--fs-12);color:var(--text-4);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.mp-role-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:all var(--dur-base);border-left:3px solid transparent}.mp-role-item:hover{background:#eef3ff}.mp-role-item.active{background:#eef3ff;border-left-color:var(--theme)}.mp-role-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mp-role-dot.super_admin,.mp-role-dot.admin{background:var(--theme)}.mp-role-dot.sales{background:#639922}.mp-role-dot.merchandiser{background:#96c}.mp-role-dot.finance{background:#d97c00}.mp-role-dot.purchase{background:#c63}.mp-role-dot.supplier{background:#399}.mp-role-dot.employee{background:#c69}.mp-role-dot.factory{background:#888}.mp-role-dot.member{background:#aaa}.mp-role-dot.custom{background:linear-gradient(135deg,#f5a623,var(--danger))}.mp-role-name{font-size:var(--fs-13);color:#1f2733;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-role-sub{font-size:var(--fs-12);color:var(--text-4);margin-left:auto;flex-shrink:0}.mp-role-cur{font-size:var(--fs-12);color:#fff;background:var(--theme-strong);padding:1px 4px;border-radius:var(--r-sm);margin-left:auto;flex-shrink:0}.mp-role-count{font-size:var(--fs-12);color:var(--text-4);margin-left:auto;flex-shrink:0}.mp-role-avatar{width:24px;height:24px;border-radius:50%;background:#dce2ea;color:var(--text-3);display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:600;flex-shrink:0}.mp-roles-add{padding:8px 12px;font-size:var(--fs-13);color:var(--theme);cursor:pointer;border-top:1px solid #eef0f4}.mp-roles-add:hover{background:#eef3ff}.mp-detail-perm{margin-top:12px;border:1px solid var(--surface-3);border-radius:var(--r-sm);overflow:hidden}.mp-detail-title{padding:8px 12px;font-size:var(--fs-13);font-weight:600;color:#1f2733;background:#f7f8fa;border-bottom:1px solid var(--surface-3)}.mp-detail-section{border-bottom:1px solid var(--surface-3)}.mp-detail-section:last-child{border-bottom:none}.mp-detail-head{display:flex;align-items:center;padding:8px 12px;cursor:pointer;user-select:none;transition:background var(--dur-base)}.mp-detail-head:hover{background:#f7f8fa}.mp-detail-icon{font-size:var(--fs-14);color:#666;width:20px;text-align:center;margin-right:4px}.mp-detail-name{font-size:var(--fs-13);color:#333;flex:1}.mp-detail-val{font-size:var(--fs-12);color:#888;display:flex;align-items:center;gap:4px}.mp-dp-arrow{font-size:var(--fs-12);transition:transform var(--dur-slow);color:#aaa}.mp-dp-open>.mp-detail-head .mp-dp-arrow{transform:rotate(180deg)}.mp-detail-body{display:none;padding:8px 12px 12px;background:#fafbfc}.mp-dp-open>.mp-detail-body{display:block}.mp-hint-sm{font-size:var(--fs-12);color:var(--text-4);line-height:var(--lh-base);margin-top:4px}.dp-mode-row{display:flex;gap:16px;padding:8px 0}.dp-mode-row .mp-radio{cursor:pointer}.dp-fields-wrap.dp-hidden{display:none}.dp-fields-search{margin-bottom:8px}.dp-fields-search .mp-input{width:100%;box-sizing:border-box}.dp-fields-table{max-height:280px;overflow-y:auto;border:1px solid #eef0f4;border-radius:var(--r-ctrl)}.dp-field-row{display:flex;align-items:center;padding:4px 8px;border-bottom:1px solid var(--border-light);transition:background var(--dur-fast)}.dp-field-row:last-child{border-bottom:none}.dp-field-row:hover{background:#f7f8fa}.dp-field-name{font-size:var(--fs-12);color:#333;min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.dp-field-type{font-size:var(--fs-12);color:var(--text-3);background:var(--border-light);padding:1px 4px;border-radius:var(--r-4);margin-right:8px;white-space:nowrap}.dp-field-radios{display:flex;gap:4px;flex-shrink:0}.dp-radio{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12);color:#555;cursor:pointer;white-space:nowrap;padding:2px 4px;border-radius:var(--r-sm);transition:all var(--dur-base)}.dp-radio input[type=radio]{appearance:none;-webkit-appearance:none;width:13px;height:13px;border:1.5px solid #c4c9d4;border-radius:50%;position:relative;cursor:pointer;transition:all var(--dur-base);flex-shrink:0}.dp-radio input[type=radio]:checked{border-color:var(--theme);background:var(--theme);box-shadow:inset 0 0 0 2.5px #fff}.dp-radio.on{background:#eef3ff;color:var(--theme);font-weight:500}.vp-views-wrap.dp-hidden{display:none}.vp-views-wrap{padding:4px 0 2px}.vp-view-row{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;margin:4px 4px 0 0;font-size:var(--fs-12);color:#444;background:#f4f5f7;border:1px solid var(--surface-3);border-radius:var(--r-ctrl);cursor:pointer;transition:all var(--dur-base);user-select:none}.vp-view-row:hover{background:#eef3ff;border-color:var(--theme-weak)}.vp-view-row.on{background:#eef3ff;border-color:var(--theme);color:var(--theme);font-weight:500}.vp-view-check{appearance:none;-webkit-appearance:none;width:14px;height:14px;border:1.5px solid #c4c9d4;border-radius:var(--r-4);position:relative;cursor:pointer;transition:all var(--dur-base);flex-shrink:0;margin:0}.vp-view-check:checked{border-color:var(--theme);background:var(--theme);box-shadow:inset 0 0 0 2.5px #fff}.vp-view-label{white-space:nowrap}.mp-right{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff}.mp-right-full{width:100%}.mp-single-user .mp-roles-list,.mp-single-user .mp-roles-search,.mp-single-user .mp-roles-add{display:none}.mp-tabs{display:flex;border-bottom:1px solid #eef0f4;background:#fafbfc;flex-shrink:0}.mp-tab{padding:12px 20px;font-size:var(--fs-13);color:var(--text-3);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--dur-base);white-space:nowrap}.mp-tab:hover{color:var(--theme)}.mp-tab.active{color:var(--theme);border-bottom-color:var(--theme);font-weight:500;background:#fff}.mp-tab-body{flex:1;overflow-y:auto;padding:16px 20px}.mp-search-row{margin-bottom:12px}.mp-search-row .mp-input{height:32px;font-size:var(--fs-12);width:240px}.mp-mod-table{display:flex;flex-direction:column;gap:2px}.mp-mod-table .mp-mod-row{display:flex;align-items:center;padding:8px;border-radius:var(--r-ctrl);transition:background var(--dur-fast)}.mp-mod-table .mp-mod-row:hover{background:#f7f9fc}.mp-mod-table .mp-mod-name{min-width:110px;flex:0 0 auto;font-size:var(--fs-13);color:#1f2733;font-weight:500}.mp-mod-table .mp-radio-group{display:flex;gap:16px;margin-left:auto}.mp-mod-card{border:1px solid #eef0f4;border-radius:var(--r-sm);margin-bottom:4px;overflow:hidden;background:var(--surface)}.mp-mod-card:last-child{margin-bottom:0}.mp-mod-row2{display:flex;align-items:center;padding:8px;gap:8px}.mp-chevron{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-12);color:var(--text-4);cursor:pointer;flex-shrink:0;border-radius:var(--r-4);transition:background var(--dur-fast),color var(--dur-fast)}.mp-chevron:hover{background:#eef3ff;color:var(--theme)}.mp-mod-row2 .mp-mod-name{min-width:110px;flex:0 0 auto;font-size:var(--fs-13);color:#1f2733;font-weight:500}.mp-source-tag{display:inline-flex;align-items:center;margin-left:4px;padding:1px 8px;font-size:var(--fs-12);line-height:16px;border-radius:var(--r-ctrl);font-weight:500;vertical-align:middle;white-space:nowrap}.mp-source-tag.mp-src-default{background:#eef3ff;color:var(--info);border:1px solid var(--theme-weak)}.mp-source-tag.mp-src-override{background:var(--warn-bg);color:#c97a16;border:1px solid #fbe0bd}.mp-mod-row .mp-mod-name .mp-source-tag{margin-left:8px}.mp-mod-row2 .mp-mod-name .mp-source-tag{margin-left:4px}.mp-mod-row2 .mp-radio-group{display:flex;gap:12px;margin-left:auto}.mp-mod-child{padding:2px 12px 12px 36px;background:#fafbfc;border-top:1px dashed #eef0f4}.dp-mode-val{color:var(--theme);font-weight:500}.mp-radio{display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:var(--fs-12);color:#555;user-select:none;padding:4px 8px;border-radius:var(--r-ctrl);transition:all var(--dur-base)}.mp-radio input[type=radio]{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:1.5px solid #ccc;border-radius:50%;outline:none;cursor:pointer;position:relative;flex-shrink:0}.mp-radio input[type=radio]:checked{border-color:var(--theme);background:var(--theme)}.mp-radio input[type=radio]:checked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:5px;height:5px;border-radius:50%;background:var(--surface)}.mp-radio.on{background:#eef3ff;color:var(--theme);font-weight:500}.mp-radio.on input[type=radio]{border-color:var(--theme);background:var(--theme)}.new-order-mask{z-index:var(--zi-modal);display:flex;align-items:center;justify-content:center}.new-order-modal{width:560px;max-width:92vw;max-height:88vh;overflow-y:auto;background:#fff;border-radius:var(--r-sm);box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column}.new-order-modal .modal-head{padding:16px 24px;font-size:var(--fs-16);font-weight:600;color:#1f2733;border-bottom:1px solid var(--border-light);flex-shrink:0}.new-order-modal .modal-foot{padding:12px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.new-order-body{padding:16px 24px}.no-section{margin-bottom:20px}.no-section-title{font-size:var(--fs-13);font-weight:600;color:#1f2733;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-light)}.no-row{display:flex;align-items:flex-start;margin-bottom:8px;gap:8px}.no-row label{width:110px;flex-shrink:0;font-size:var(--fs-13);color:var(--text-2);line-height:32px}.no-row label i{color:var(--danger);font-style:normal}.no-input{flex:1;height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13);outline:none;box-sizing:border-box}.no-input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}.no-textarea{height:60px;padding:4px 8px;resize:vertical;line-height:var(--lh-base)}.no-err{color:var(--danger);font-size:var(--fs-13);min-height:18px;margin-top:4px}.no-row:has(>#noOwner){flex-wrap:wrap}.no-owner-hint{flex:0 0 100%;margin:-3px 0 4px 118px;color:var(--text-3);font-size:var(--fs-12);line-height:1.5}.no-number-card{flex:1;min-width:0;box-sizing:border-box;padding:10px 12px;border:1px solid color-mix(in srgb,var(--theme) 24%,var(--border-strong));border-radius:var(--r-ctrl);background:var(--theme-weak)}.no-number-card strong{display:block;color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-18);letter-spacing:.4px;line-height:1.4;overflow-wrap:anywhere}.no-number-card strong.is-ready{color:var(--theme-strong)}.no-number-card span{display:block;margin-top:3px;color:var(--text-3);font-size:var(--fs-12);line-height:1.5}.no-more{margin:4px 0 12px;border:1px dashed var(--border-strong);border-radius:var(--r-ctrl);background:var(--surface-2)}.no-more>summary{padding:10px 12px;color:var(--theme-strong);font-size:var(--fs-13);font-weight:600;cursor:pointer}.no-more-body{padding:12px 12px 0;border-top:1px solid var(--border-light)}.no-more .no-section{margin-bottom:14px}.no-more .no-section:last-child{margin-bottom:6px}@media(max-width:640px){.no-owner-hint{margin-left:0}.new-order-body{padding:14px 16px}.new-order-modal .modal-head,.new-order-modal .modal-foot{padding-left:16px;padding-right:16px}.new-order-modal .no-row{flex-wrap:wrap;gap:4px 8px}.new-order-modal .no-row>label:first-child{flex:0 0 100%;width:auto;line-height:22px}.new-order-modal .no-row .no-input{flex:1 1 100%;min-width:0}.new-order-modal .no-number-card{flex:1 1 100%}.new-order-modal .no-date-quick-slot{display:flex;flex:1 1 100%;flex-wrap:wrap;gap:6px}.new-order-modal .no-row-inline>label:first-child{flex:0 0 auto;min-width:0}.new-order-modal .no-row-inline .no-switch,.new-order-modal .no-row-inline .no-inline-label{width:auto}.new-order-modal .no-row-inline .no-input{flex:1 1 110px}}.col-alert-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--theme);margin-left:4px;vertical-align:middle;font-size:0}.vs-th.col-colored{background:var(--warn-bg)}.module-table td.col-frozen,.module-table th.col-frozen{position:sticky;left:0;z-index:6;background:inherit}.module-table th.col-frozen{z-index:12}.oss-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.oss-tab{border:1px solid var(--border);background:var(--surface);color:var(--text-2);padding:8px 12px;border-radius:var(--r-sm);font-size:var(--fs-13);cursor:pointer;transition:all var(--dur-fast)}.oss-tab:hover{border-color:var(--primary)}.oss-tab.active{background:var(--theme-strong);color:#fff;border-color:var(--theme-strong)}.oss-badge{display:inline-block;min-width:18px;text-align:center;margin-left:4px;padding:0 4px;border-radius:var(--r-ctrl);background:#0000001f;font-size:var(--fs-12)}.oss-tab.active .oss-badge{background:#ffffff47}.oss-table th,.oss-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--surface-2);white-space:nowrap;font-size:var(--fs-13)}.oss-table th{color:var(--text-3);font-weight:500;font-size:var(--fs-12);background:var(--surface-2);position:sticky;top:0}.fin-shell{margin-top:12px}.fin-tabs{display:flex;gap:4px;padding:4px;background:#f3f5f8;border:1px solid #e5e8ee;border-radius:var(--r-sm);width:fit-content}.fin-tab{border:0;background:transparent;color:var(--text-2);padding:8px 20px;border-radius:var(--r-ctrl);font-size:var(--fs-13);cursor:pointer}.fin-tab:hover{color:var(--theme-strong);background:#ffffffb3}.fin-tab.active{background:#fff;color:var(--info);font-weight:650;box-shadow:0 1px 4px #1f2d3d1f}.fin-content{margin-top:12px}.fin-loading,.fin-error{padding:56px;text-align:center;color:var(--text-2);background:#fff;border:1px solid #e8ebf0;border-radius:var(--r-ctrl)}.fin-error b{color:#d92d20}.fin-error button{margin-top:12px}.fin-kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:12px}.fin-kpi{position:relative;overflow:hidden;background:#fff;border:1px solid #e7eaf0;border-radius:var(--r-ctrl);padding:16px;min-height:100px;box-shadow:0 1px 3px #1622330a}.fin-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#98a2b3}.fin-kpi span{color:var(--text-2);font-size:var(--fs-12)}.fin-kpi b{display:block;margin:8px 0 4px;font-size:var(--fs-22);color:#1d2939}.fin-kpi small{color:var(--text-3)}.fin-kpi.income:before{background:#d92d20}.fin-kpi.expense:before{background:#079455}.fin-kpi.profit:before{background:var(--ok-ink)}.fin-kpi.loss:before,.fin-kpi.warning:before{background:#f79009}.fin-kpi.pending:before{background:#7f56d9}.fin-kpi.normal:before{background:#12b76a}.fin-grid2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:12px;margin-bottom:12px}.fin-panel,.fin-chart{background:#fff;border:1px solid #e7eaf0;border-radius:var(--r-ctrl);padding:16px;box-shadow:0 1px 3px #1622330a}.fin-panel-head,.fin-chart-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:#344054}.fin-panel-head button{border:0;background:none;color:var(--theme-strong);cursor:pointer;font-size:var(--fs-12)}.fin-chart-title span{font-size:var(--fs-12);color:var(--text-2)}.legend{display:inline-block;width:8px;height:8px;border-radius:var(--r-4);margin:0 4px 0 8px}.legend.income{background:#d92d20}.legend.expense{background:#12b76a}.fin-bars{height:190px;display:flex;align-items:flex-end;gap:8px;padding:12px 4px 0;border-bottom:1px solid #eaecf0}.fin-bar-col{flex:1;min-width:24px;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-3);font-size:var(--fs-12)}.fin-bar-pair{height:150px;display:flex;align-items:flex-end;gap:4px}.fin-bar-pair i{display:block;width:8px;border-radius:var(--r-4) var(--r-4) 0 0;min-height:2px}.bar-income{background:#d92d20}.bar-expense{background:#12b76a}.fin-alert-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid #f0f2f5}.fin-alert-row:first-of-type{border-top:0}.fin-alert-row div{display:flex;flex-direction:column;gap:4px}.fin-alert-row span{font-size:var(--fs-12);color:var(--text-3)}.fin-alert-row strong{font-size:var(--fs-12)}.fin-alert-row .warning{color:#b54708}.fin-alert-row .danger{color:#d92d20}.fin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px;padding:12px 16px;background:#fff;border:1px solid #e7eaf0;border-radius:var(--r-sm)}.fin-toolbar>div:first-child{display:flex;flex-direction:column;gap:4px}.fin-toolbar b{color:#1d2939}.fin-toolbar span{font-size:var(--fs-12);color:var(--text-2)}.fin-toolbar>div:last-child{display:flex;gap:8px}.fin-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.fin-search{border:1px solid var(--border-light,#e3e8ef);border-radius:var(--r-ctrl);padding:6px 10px;font-size:var(--fs-13);background:var(--surface);color:var(--text-1);min-width:220px;flex:1;max-width:320px;outline:none}.fin-search:focus{border-color:var(--theme)}.fin-chips{display:flex;gap:6px;flex-wrap:wrap}.fin-chip{border:1px solid var(--border-light,#e3e8ef);background:var(--surface);border-radius:var(--r-pill);padding:4px 12px;font-size:var(--fs-12);cursor:pointer;color:var(--text-2)}.fin-chip:hover{border-color:var(--theme);color:var(--theme-strong)}.fin-chip.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.fin-sel{border:1px solid var(--border-light,#e3e8ef);border-radius:var(--r-ctrl);padding:6px 8px;font-size:var(--fs-12);background:var(--surface);color:var(--text-1);cursor:pointer}.fin-meta{font-size:var(--fs-12);color:var(--text-3)}.fin-meta b{color:var(--text-1);font-variant-numeric:tabular-nums}.fin-pager{display:flex;align-items:center;gap:8px;padding:10px 2px 2px}.fin-pg{border:1px solid var(--border-light,#e3e8ef);background:var(--surface);border-radius:var(--r-ctrl);padding:4px 10px;font-size:var(--fs-12);cursor:pointer;color:var(--text-2)}.fin-pg:hover:not(:disabled){border-color:var(--theme);color:var(--theme-strong)}.fin-pg:disabled{opacity:.4;cursor:default}.fin-pager span{font-size:var(--fs-12);color:var(--text-3)}html.dark .fin-search,html.dark .fin-chip,html.dark .fin-sel,html.dark .fin-pg{background:var(--surface)}.fin-btn{border:1px solid var(--border-strong);background:var(--surface);color:#344054;border-radius:var(--r-ctrl);padding:8px 12px;cursor:pointer;font-size:var(--fs-13)}.fin-btn:hover{background:#f8fafc}.fin-btn.primary{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.fin-btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.fin-subject-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.fin-subject{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#fff;border:1px solid #e7eaf0;border-radius:var(--r-pill);font-size:var(--fs-12);color:var(--text-2)}.fin-subject i{width:7px;height:7px;border-radius:50%;background:#079455}.fin-subject.income i{background:#d92d20}.fin-subject em{font-style:normal;color:var(--theme-strong);background:#e6f2f5;padding:1px 4px;border-radius:var(--r-4)}.fin-table-wrap{overflow:auto;border:1px solid #e4e7ec;border-radius:var(--r-sm);background:#fff}.fin-table{border-collapse:collapse;width:100%;min-width:980px;table-layout:auto}.fin-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:var(--text-2);font-size:var(--fs-12);font-weight:600;text-align:left;padding:12px;border-bottom:1px solid #e4e7ec;white-space:nowrap}.fin-table td{padding:12px;border-bottom:1px solid #f0f2f5;color:#344054;font-size:var(--fs-12);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.fin-table tr:last-child td{border-bottom:0}.fin-table tbody tr:hover{background:#f9fbff}.fin-table .num{text-align:right;font-variant-numeric:tabular-nums}.fin-table .income{color:#d92d20;font-weight:600}.fin-table .expense{color:#079455;font-weight:600}.fin-table .mono{font-family:var(--font-mono);color:var(--text-2)}.fin-type,.fin-status{display:inline-flex;padding:4px 8px;border-radius:var(--r-pill);font-size:var(--fs-12)}.fin-type.income{background:var(--danger-bg);color:var(--danger-ink)}.fin-type.expense{background:var(--ok-bg);color:var(--ok-ink)}.fin-status.pending{background:#f4f3ff;color:#6941c6}.fin-status.approved{background:var(--ok-bg);color:var(--ok-ink)}.fin-status.rejected{background:var(--danger-bg);color:var(--danger-ink)}.fin-year{font-size:var(--fs-12);color:var(--text-2)}.fin-year select{margin-left:4px;padding:4px 8px;border:1px solid #d0d5dd;border-radius:var(--r-6);background:#fff}.fin-subject-chart{min-height:235px}.fin-subject-bar{display:grid;grid-template-columns:90px 1fr 110px;gap:8px;align-items:center;margin:12px 0;font-size:var(--fs-12)}.fin-subject-bar>div{height:8px;background:#f2f4f7;border-radius:var(--r-pill);overflow:hidden}.fin-subject-bar i{display:block;height:100%;background:#079455;border-radius:var(--r-pill)}.fin-subject-bar i.income{background:#d92d20}.fin-subject-bar b{text-align:right;font-variant-numeric:tabular-nums}.fin-budget-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:12px}.fin-budget-card{background:#fff;border:1px solid #e7eaf0;border-radius:var(--r-ctrl);padding:16px;border-top:4px solid #12b76a}.fin-budget-card.warning{border-top-color:#f79009}.fin-budget-card.danger{border-top-color:#d92d20}.fin-budget-head{display:flex;justify-content:space-between;gap:12px}.fin-budget-head div{display:flex;flex-direction:column;gap:4px}.fin-budget-head span,.fin-budget-foot{font-size:var(--fs-12);color:var(--text-2)}.fin-budget-head em{font-style:normal;font-size:var(--fs-12);padding:4px 8px;border-radius:var(--r-pill);background:var(--ok-bg);color:var(--ok-ink);height:fit-content}.fin-budget-card.warning em{background:var(--warn-bg);color:#b54708}.fin-budget-card.danger em{background:var(--danger-bg);color:var(--danger-ink)}.fin-budget-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.fin-budget-nums div{display:flex;flex-direction:column;gap:4px}.fin-budget-nums span{font-size:var(--fs-12);color:var(--text-3)}.fin-budget-nums b{font-size:var(--fs-13)}.fin-progress{height:8px;background:#f2f4f7;border-radius:var(--r-pill);overflow:hidden}.fin-progress i{display:block;height:100%;background:#12b76a;border-radius:var(--r-pill)}.fin-budget-card.warning .fin-progress i{background:#f79009}.fin-budget-card.danger .fin-progress i{background:#d92d20}.fin-budget-foot{display:flex;justify-content:space-between;margin-top:8px}.fin-approval-stats{display:flex;gap:8px;margin-bottom:12px}.fin-approval-stats span{background:#fff;border:1px solid #e7eaf0;border-radius:var(--r-sm);padding:8px 12px;color:var(--text-2);font-size:var(--fs-12)}.fin-approval-stats b{color:#1d2939;margin-left:4px}.fin-link{border:0;background:none;color:var(--text-2);cursor:pointer;margin-right:8px;padding:2px}.fin-link.primary{color:var(--theme-strong);font-weight:600}.fin-empty{color:var(--text-3);text-align:center;padding:25px!important}.fin-modal-mask{position:fixed;inset:0;z-index:5000;background:#10182861;display:flex;justify-content:center;align-items:center;padding:24px}.fin-modal{width:min(520px,95vw);max-height:88vh;overflow:auto;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 24px 70px #10182840}.fin-modal.wide{width:min(760px,95vw)}.fin-modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-bottom:1px solid #eaecf0}.fin-modal-head h3{margin:0;font-size:var(--fs-16)}.fin-modal-close{border:0;background:none;font-size:var(--fs-22);cursor:pointer;color:var(--text-2)}.fin-modal-body{padding:20px}.fin-form{display:grid;grid-template-columns:1fr;gap:12px}.fin-form.two{grid-template-columns:1fr 1fr}.fin-field{display:flex;flex-direction:column;gap:4px}.fin-field.full{grid-column:1/-1}.fin-field>span{font-size:var(--fs-12);color:var(--text-2)}.fin-field input,.fin-field select,.fin-field textarea{box-sizing:border-box;width:100%;border:1px solid #d0d5dd;border-radius:var(--r-ctrl);padding:8px;font:inherit;outline:none;background:#fff}.fin-field textarea{min-height:72px;resize:vertical}.fin-field input:focus,.fin-field select:focus,.fin-field textarea:focus{border-color:var(--info);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme) 10%,transparent)}.fin-modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.fin-flow-hint{margin-top:16px;padding:8px 12px;background:#f5f8ff;border:1px solid var(--theme-weak);border-radius:var(--r-ctrl);color:var(--text-2);font-size:var(--fs-12);line-height:var(--lh-base)}.fin-notice{position:fixed;z-index:6000;right:28px;top:28px;padding:12px 16px;border-radius:var(--r-sm);background:var(--ok-ink);color:#fff;box-shadow:0 10px 30px #1018282e}.fin-notice.error{background:var(--danger-ink)}.fin-request-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.fin-request-hero>div{padding:12px;background:#f8fafc;border-radius:var(--r-sm);display:flex;flex-direction:column;gap:4px}.fin-request-hero span,.fin-request-info span{font-size:var(--fs-12);color:var(--text-2)}.fin-request-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.fin-request-info p{margin:0;padding:8px;border:1px solid #eaecf0;border-radius:var(--r-ctrl);display:flex;flex-direction:column;gap:4px}.fin-request-info p.full{grid-column:1/-1}.fin-timeline{border-top:1px solid #eaecf0;padding-top:12px}.fin-timeline h4{margin:0 0 12px}.fin-time{display:flex;gap:12px;position:relative;padding:0 0 20px}.fin-time>i{width:10px;height:10px;border-radius:50%;background:#98a2b3;margin-top:4px;box-shadow:0 0 0 4px #f2f4f7}.fin-time.approved>i{background:#12b76a;box-shadow:0 0 0 4px var(--ok-bg)}.fin-time.pending>i{background:#7f56d9;box-shadow:0 0 0 4px #f4f3ff}.fin-time.rejected>i{background:var(--danger);box-shadow:0 0 0 4px var(--danger-bg)}.fin-time div{display:flex;flex-direction:column;gap:4px}.fin-time span,.fin-time p{font-size:var(--fs-12);color:var(--text-2);margin:0}.fin-approval-box{border-top:1px solid #eaecf0;padding-top:16px}.fin-flow-config{display:grid;gap:16px}.fin-flow-card{border:1px solid #e4e7ec;border-radius:var(--r-sm);padding:12px}.fin-flow-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.fin-flow-title>div{display:flex;flex-direction:column;gap:4px}.fin-flow-title span{font-size:var(--fs-12);color:var(--text-2)}.fin-flow-node{display:grid;grid-template-columns:28px 1.2fr 1fr 140px 42px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #f0f2f5}.fin-flow-node>i{display:grid;place-items:center;width:24px;height:24px;background:#e6f2f5;color:var(--theme-strong);border-radius:50%;font-style:normal;font-weight:700}.fin-flow-node input,.fin-flow-node select{min-width:0;border:1px solid #d0d5dd;border-radius:var(--r-ctrl);padding:8px}.fin-flow-node label{display:flex;align-items:center;gap:4px;font-size:var(--fs-12);color:var(--text-2)}.fin-flow-node label input{width:72px}.fin-link.danger{color:#d92d20}.fin-txn-row{cursor:pointer}.fin-txn-hero{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:var(--r-ctrl);margin-bottom:12px;background:#f8fafc;border:1px solid #eaecf0}.fin-txn-hero>div{display:flex;flex-direction:column;gap:4px}.fin-txn-hero span{font-size:var(--fs-12);color:var(--text-2);letter-spacing:.5px}.fin-txn-hero b{font-size:var(--fs-28);font-weight:600;font-variant-numeric:tabular-nums}.fin-txn-hero.income b{color:#d92d20}.fin-txn-hero.expense b{color:#079455}.fin-txn-type-badge{font-size:var(--fs-12);font-weight:600;padding:4px 12px;border-radius:var(--r-pill)}.fin-txn-type-badge.income{color:#d92d20;background:var(--danger-bg)}.fin-txn-type-badge.expense{color:#079455;background:var(--ok-bg)}.fin-txn-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fin-txn-cell{padding:8px 12px;border:1px solid #eaecf0;border-radius:var(--r-sm);display:flex;flex-direction:column;gap:4px}.fin-txn-cell.full{grid-column:1/-1}.fin-txn-cell span{font-size:var(--fs-12);color:var(--text-2)}.fin-txn-cell b{font-size:var(--fs-13);color:#344054;font-weight:500;word-break:break-word}.fin-txn-cell b.mono{font-family:var(--font-mono);color:var(--text-2)}.fin-txn-att{margin-top:16px;border-top:1px solid #eaecf0;padding-top:12px}.fin-txn-att-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.fin-txn-att-head h4{margin:0;font-size:var(--fs-13)}.fin-link{background:none;border:0;color:var(--theme-strong);cursor:pointer;font-size:var(--fs-12)}.fin-link.primary{color:var(--theme-strong);font-weight:500}.fin-att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.fin-att-item{position:relative;border:1px solid #e4e7ec;border-radius:var(--r-ctrl);overflow:hidden;background:#fff;cursor:pointer;display:flex;flex-direction:column}.fin-att-item img{width:100%;height:88px;object-fit:cover;display:block;background:#f4f6f8}.fin-att-file{display:grid;place-items:center;height:88px;font-size:var(--fs-28);background:#f8fafc}.fin-att-name{font-size:var(--fs-12);color:var(--text-2);padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fin-att-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border:0;border-radius:50%;background:#10182899;color:#fff;font-size:var(--fs-14);line-height:1;cursor:pointer}.fin-upload-btn{display:inline-block;padding:8px 12px;border:1px dashed var(--info);border-radius:var(--r-ctrl);color:var(--theme-strong);font-size:var(--fs-12);cursor:pointer;background:var(--theme-weak)}.fin-upload-btn:hover{background:#eef4ff}.fin-upload-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.fin-upload-item{font-size:var(--fs-12);color:var(--text-2);background:#f2f4f7;border-radius:var(--r-ctrl);padding:4px 8px}.fin-lightbox{position:fixed;inset:0;z-index:7000;background:#101828d1;display:flex;align-items:center;justify-content:center;padding:24px}.fin-lightbox img{max-width:92vw;max-height:92vh;border-radius:var(--r-sm);box-shadow:0 24px 70px #0006}.fin-lightbox-close{position:absolute;top:18px;right:22px;width:38px;height:38px;border:0;border-radius:50%;background:#ffffff29;color:#fff;font-size:var(--fs-22);line-height:1;cursor:pointer}.fin-account-total{display:flex;align-items:baseline;justify-content:space-between;padding:16px 20px;margin-bottom:12px;background:linear-gradient(135deg,#e6f2f5,#f8faff);border:1px solid var(--theme-weak);border-radius:var(--r-ctrl)}.fin-account-total>div{display:flex;align-items:baseline;gap:12px}.fin-account-total span{font-size:var(--fs-12);color:var(--text-2)}.fin-account-total b{font-size:var(--fs-28);font-weight:600;font-variant-numeric:tabular-nums;color:var(--theme-strong)}.fin-account-total b.neg{color:#d92d20}.fin-account-total small{font-size:var(--fs-12);color:var(--text-2)}.fin-account-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.fin-account-card{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid #e4e7ec;border-radius:var(--r-sm);background:var(--surface);transition:box-shadow var(--dur-base)}.fin-account-card:hover{box-shadow:0 6px 20px #10182814}.fin-account-card.off{opacity:.6}.fin-account-head{display:flex;align-items:center;gap:8px}.fin-account-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);background:#e6f2f5;font-size:var(--fs-18)}.fin-account-head div{display:flex;flex-direction:column;gap:2px}.fin-account-head b{font-size:var(--fs-14);color:#1f2733}.fin-account-head span{font-size:var(--fs-12);color:var(--text-2)}.fin-account-balance{font-size:var(--fs-22);font-weight:600;font-variant-numeric:tabular-nums;color:#079455}.fin-account-balance.neg{color:#d92d20}.fin-account-no{font-size:var(--fs-12);color:var(--text-2);word-break:break-all}.fin-account-recon{font-size:var(--fs-12);color:var(--text-2)}.fin-account-recon b{font-variant-numeric:tabular-nums}.fin-account-recon b.neg{color:#d92d20}.fin-account-acts{display:flex;gap:12px;margin-top:4px;padding-top:8px;border-top:1px solid #f0f2f5}.fin-acct-break{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.fin-acct-break>div{padding:8px;border:1px solid #eaecf0;border-radius:var(--r-sm);display:flex;flex-direction:column;gap:4px}.fin-acct-break span{font-size:var(--fs-12);color:var(--text-2)}.fin-acct-break b{font-size:var(--fs-14);font-weight:600;font-variant-numeric:tabular-nums}.fin-acct-break .income{color:#d92d20}.fin-acct-break .expense{color:#079455}.fin-recon-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border:1px solid #eaecf0;border-radius:var(--r-sm);margin-bottom:8px;font-size:var(--fs-12);color:var(--text-2)}.fin-recon-row span{color:var(--text-2)}.fin-recon-row b{font-variant-numeric:tabular-nums}.fin-recon-row em{color:var(--text-3);font-style:normal}.fin-confirm-msg{font-size:var(--fs-13);color:#344054;line-height:var(--lh-relaxed);padding:4px 0 2px}.fin-reconcile-hint{padding:8px 12px;margin-bottom:12px;background:#f5f8ff;border:1px solid var(--theme-weak);border-radius:var(--r-sm);font-size:var(--fs-12);color:var(--text-2)}.fin-reconcile-hint b{font-variant-numeric:tabular-nums}@media(max-width:1280px){.fin-kpis{grid-template-columns:repeat(3,1fr)}.fin-budget-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.fin-tabs{width:100%;overflow:auto}.fin-tab{white-space:nowrap}.fin-kpis{grid-template-columns:repeat(2,1fr)}.fin-grid2,.fin-budget-grid,.fin-form.two,.fin-request-hero,.fin-request-info{grid-template-columns:1fr}.fin-request-info p.full{grid-column:auto}.fin-txn-grid{grid-template-columns:1fr}.fin-txn-cell.full{grid-column:auto}.fin-txn-hero b{font-size:var(--fs-22)}.fin-account-grid{grid-template-columns:1fr}.fin-acct-break{grid-template-columns:repeat(2,1fr)}}.oss-table-wrap{overflow-x:scroll;overflow-y:visible;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#aeb8c6 #eef1f5;padding-bottom:2px}.oss-table-wrap::-webkit-scrollbar{height:13px}.oss-table-wrap::-webkit-scrollbar-track{background:#eef1f5;border-top:1px solid #e2e7ee}.oss-table-wrap::-webkit-scrollbar-thumb{background:#aeb8c6;border-radius:var(--r-6);border:3px solid #eef1f5}.oss-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--text-4)}.oss-table-wrap .oss-table{width:1840px;min-width:1840px;table-layout:auto}.oss-table-wrap .oss-table th:nth-child(1){min-width:150px}.oss-table-wrap .oss-table th:nth-child(2){min-width:130px}.oss-table-wrap .oss-table th:nth-child(3){min-width:110px}.oss-table-wrap .oss-table th:nth-child(5){min-width:150px}.oss-table-wrap .oss-table th:nth-child(6){min-width:120px}.oss-table-wrap .oss-table th:nth-child(8){min-width:120px}.oss-table-wrap .oss-table th:nth-child(13){min-width:120px}.oss-acts{display:flex;gap:4px;flex-wrap:wrap}.oss-act{border:1px solid var(--border);background:var(--surface);color:var(--text-1);padding:4px 8px;border-radius:var(--r-ctrl);font-size:var(--fs-12);cursor:pointer}.oss-act:hover{border-color:var(--primary);color:var(--primary)}.oss-act-inquire,.oss-act-submit{background:var(--theme-strong);color:#fff;border-color:var(--theme-strong)}.oss-act-approve{background:#f59e0b;color:#fff;border-color:#f59e0b}.oss-act-track{background:#16a34a;color:#fff;border-color:#16a34a}.oss-act-delete{color:var(--danger);border-color:#f3c2c6}.oss-act-delete:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-bg)}.oss-empty{text-align:center;color:var(--text-3);padding:28px 0}.st{display:inline-block;padding:2px 8px;border-radius:var(--r-sm);font-size:var(--fs-12)}.st-gray{background:var(--surface-3);color:var(--text-2)}.st-blue{background:#00bfa629;color:var(--theme-strong)}.st-orange{background:#fef3c7;color:#b45309}.st-green{background:var(--ok-bg);color:#15803d}.st-red{background:var(--danger-bg);color:var(--danger-ink)}.oss-drawer-mask{position:fixed;inset:0;background:#0006;z-index:var(--zi-drawer);display:flex;justify-content:flex-end}.oss-drawer{width:460px;max-width:94vw;height:100%;background:var(--surface);display:flex;flex-direction:column;box-shadow:-6px 0 24px #0000002e}.oss-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;font-size:var(--fs-14);font-weight:600;border-bottom:1px solid var(--border)}.oss-drawer-close{border:0;background:transparent;font-size:var(--fs-18);cursor:pointer;color:var(--text-3)}.oss-drawer-body{padding:16px 20px;overflow:auto}.oss-drawer-foot{display:flex;gap:8px;margin-top:16px}.oss-tip{color:var(--text-3);font-size:var(--fs-13);margin:0 0 12px}.oss-fld,.oss-sup,.oss-win{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;font-size:var(--fs-13);color:var(--text-2)}.oss-fld input{padding:8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13)}.oss-sup-meta{color:var(--text-3);font-size:var(--fs-12)}.oss-op{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:var(--fs-13)}.oss-op-input{padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13)}.oss-appr-info p{margin:4px 0;font-size:var(--fs-13)}.oss-btn{flex:1;padding:12px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);cursor:pointer;font-size:var(--fs-13)}.oss-btn.primary{background:var(--theme-strong);color:#fff;border-color:var(--theme-strong)}.oss-btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.oss-fld select{padding:8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13);background:var(--surface);color:var(--text-1)}.pur-row{display:flex;gap:12px}.pur-row .oss-fld{flex:1}.pur-pay{margin:4px 0 12px}.pur-pay-label{display:block;font-size:var(--fs-13);color:var(--text-2);margin-bottom:6px}.pur-pay-opt{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-ctrl);margin-bottom:8px;cursor:pointer;font-size:var(--fs-13);color:var(--text-2)}.pur-pay-opt:hover{border-color:var(--primary)}.pur-pay-opt input{margin-top:3px}.pur-pay-opt span{display:flex;flex-direction:column;gap:2px}.pur-pay-opt em{font-style:normal;color:var(--text-3);font-size:var(--fs-12)}.pur-items-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-13);font-weight:600;color:var(--text-2);margin:4px 0 8px}.pur-items-head .oss-btn{flex:0 0 auto;padding:4px 10px;font-size:var(--fs-12)}.pur-items-head>span{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.pur-item-list{display:flex;flex-direction:column;gap:6px}.pur-item-row{display:grid;grid-template-columns:2fr 1.2fr .7fr 1fr 28px;gap:6px;align-items:center}.pur-item-row input{padding:7px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13);min-width:0;background:var(--surface);color:var(--text-1)}.pur-c-del{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-ctrl);height:32px;cursor:pointer;color:var(--text-3);font-size:var(--fs-14);line-height:1}.pur-c-del:hover:not(:disabled){color:#c0392b;border-color:#c0392b}.pur-c-del:disabled{opacity:.4;cursor:not-allowed}.pur-items-total{font-size:var(--fs-13);color:var(--text-2);text-align:right;margin:8px 0 12px}.pur-items-total b{color:var(--text);font-size:var(--fs-14)}.pur-att{margin:4px 0 12px}.pur-att-label{display:block;font-size:var(--fs-13);color:var(--text-2);margin-bottom:6px}.pur-att .oss-btn{padding:4px 10px;font-size:var(--fs-12)}.pur-att-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.fin-items{margin:10px 0}.fin-items-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-13);font-weight:600;color:var(--text-2);margin-bottom:8px}.fin-item-row{display:grid;grid-template-columns:2fr 1fr 1fr 28px;gap:6px;align-items:center;margin-bottom:6px}.fin-item-row input{padding:7px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13);min-width:0;background:var(--surface);color:var(--text-1)}.fin-item-del{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-ctrl);height:32px;cursor:pointer;color:var(--text-3);font-size:var(--fs-14);line-height:1}.fin-item-del:hover{color:#c0392b;border-color:#c0392b}.fin-items-total{font-size:var(--fs-13);color:var(--text-2);text-align:right;margin-top:4px}.oss-tax{display:flex;gap:12px}.oss-tax .oss-fld{flex:1}.todo-config-btn{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-full);width:26px;height:26px;margin-left:auto;margin-right:var(--spacer-8);cursor:pointer;color:var(--text-3);font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.todo-config-btn:hover{color:var(--theme);border-color:var(--primary)}.tc-tools{display:flex;gap:var(--spacer-8);margin-bottom:var(--spacer-12)}.tc-list{display:flex;flex-direction:column;gap:2px;max-height:320px;overflow:auto}.tc-row{display:flex;align-items:center;gap:var(--spacer-8);padding:7px 10px;border:1px solid var(--border);border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-13);color:var(--text-2)}.tc-row:hover{border-color:var(--primary)}.tc-row .tc-name{flex:1}.tc-row .tc-count{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums}.todo-age{font-size:var(--fs-12);color:#b45309;background:#efaa1724;border:1px solid rgba(239,170,23,.45);border-radius:var(--radius-full);padding:1px 8px;margin-right:6px;white-space:nowrap}.todo-age.hot{color:#b4232a;background:#e8463a1f;border-color:#e8463a80}.todo-tabs{display:inline-flex;gap:2px;margin-left:var(--spacer-12);background:var(--surface-muted);border-radius:var(--radius-full);padding:2px}.todo-tab{border:0;background:transparent;border-radius:var(--radius-full);padding:3px 12px;font-size:var(--fs-12);color:var(--text-3);cursor:pointer;line-height:1.4;white-space:nowrap}.todo-tab:hover{color:var(--text-1)}.todo-tab.on{background:var(--surface);color:var(--text-1);font-weight:var(--weight-medium);box-shadow:0 1px 3px #00000014}.te-row{display:grid;grid-template-columns:52px 1fr auto auto;gap:var(--spacer-8);align-items:center;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13);background:var(--surface)}.te-row+.te-row{margin-top:6px}.te-row.clickable{cursor:pointer}.te-row.clickable:hover{border-color:var(--primary)}.te-biz{font-size:var(--fs-12);color:var(--text-3);background:var(--surface-muted);border-radius:var(--radius-full);padding:1px 8px;text-align:center}.te-title{color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.te-status{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap}.te-at{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.todo-item-act{flex-wrap:wrap}.todo-act{display:inline-flex;gap:6px;margin-top:6px}.ta-btn{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-full);padding:2px 12px;font-size:var(--fs-12);color:var(--text-2);cursor:pointer;line-height:1.5}.ta-btn:hover{border-color:var(--primary);color:var(--text-1)}.ta-btn.ok{color:#067647;border-color:#05994f66;background:#05994f14}.ta-btn.ok:hover{background:#05994f29}.ta-btn.no{color:#b4232a;border-color:#e8463a66;background:#e8463a0f}.ta-btn.no:hover{background:#e8463a24}.ta-btn.tr{color:#175cd3;border-color:#175cd359;background:#175cd30d}.ta-btn.tr:hover{background:#175cd31f}.ta-btn[disabled]{opacity:.55;cursor:default}.ta-reject-box{display:inline-flex;gap:6px;align-items:center;margin-top:6px;width:100%}.ta-reject-box input{flex:1;min-width:0;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--fs-12);background:var(--surface);color:var(--text-1)}.tc-sec{font-size:var(--fs-13);font-weight:var(--weight-medium);color:var(--text-1);margin:var(--spacer-16) 0 var(--spacer-8);padding-top:var(--spacer-12);border-top:1px dashed var(--border)}.tc-sec .muted{font-weight:var(--weight-regular);margin-left:6px}.tc-deleg{border:1px solid var(--border);border-radius:var(--r-ctrl);padding:var(--spacer-8) var(--spacer-12);font-size:var(--fs-12);color:var(--text-2)}.tc-dlg-sub{font-size:var(--fs-12);color:var(--text-3);margin:4px 0 2px}.tc-dlg-row{display:flex;align-items:center;gap:6px;padding:3px 0;flex-wrap:wrap}.tc-dlg-new{display:flex;align-items:center;gap:6px;margin-top:var(--spacer-8);padding-top:var(--spacer-8);border-top:1px dashed var(--border);flex-wrap:wrap}.tc-dlg-new select,.tc-dlg-new input{padding:5px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-12);background:var(--surface);color:var(--text-1)}.tc-dlg-new select{min-width:130px}.tc-prefs{border:1px solid var(--border);border-radius:var(--r-ctrl);padding:var(--spacer-8) var(--spacer-12)}.tc-pref-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacer-12);padding:5px 0;font-size:var(--fs-12);color:var(--text-2)}.tc-pref-row .tc-th{width:110px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-12);background:var(--surface);color:var(--text-1);text-align:right}.tc-pref-v{flex:1;display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.tc-chip{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:var(--radius-full);padding:1px 8px;font-size:var(--fs-12);color:var(--text-2);cursor:pointer;background:var(--surface)}.tc-chip:hover{border-color:var(--primary)}.tt-sum{font-size:var(--fs-13);color:var(--text-2);margin-bottom:var(--spacer-8)}.tt-sum b{color:var(--text-1)}.tt-sum b.hot,.tt-old.hot{color:#b4232a}.tt-types{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--spacer-12)}.tt-person{border:1px solid var(--border);border-radius:var(--r-ctrl);padding:var(--spacer-8) var(--spacer-12);margin-bottom:var(--spacer-8)}.tt-person-head{display:flex;align-items:center;gap:var(--spacer-8);font-size:var(--fs-13);margin-bottom:4px}.tt-person-head .muted{font-size:var(--fs-12)}.tt-n{margin-left:auto;font-size:var(--fs-12);color:var(--text-2);background:var(--surface-muted);border-radius:var(--radius-full);padding:1px 8px}.tt-old{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums}.tt-item{font-size:var(--fs-12);color:var(--text-2);padding:2px 0 2px 10px;border-left:2px solid var(--border);margin:3px 0}.tt-item.hot{border-left-color:#e8463a}.tt-item b{color:var(--text-1);font-weight:var(--weight-medium)}.home-focus{margin:0 0 var(--spacer-12)}.hf-bar{display:flex;align-items:center;gap:var(--spacer-8);flex-wrap:wrap;padding:10px var(--spacer-12);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--r-ctrl)}.hf-title{font-size:var(--fs-13);font-weight:var(--weight-medium);color:var(--text-1);white-space:nowrap}.hf-item{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-full);padding:3px 12px;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;line-height:1.5}.hf-item:hover{border-color:var(--primary);color:var(--text-1)}.hf-item b{font-family:var(--font-metric);font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums}.hf-no{font-style:normal;font-size:var(--fs-12);color:var(--text-3);background:var(--surface-muted);border-radius:var(--radius-full);width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center}.hf-item.hf-first{border-color:var(--primary);color:var(--text-1)}.hf-item.hf-first .hf-no{background:var(--primary);color:#fff}.hf-empty{color:var(--text-3);font-size:var(--fs-13);border-left-color:var(--success, #1DC981)}.cards-zero{font-size:var(--fs-13);color:var(--text-3);padding:var(--spacer-8) var(--spacer-12)}.dash-chart-panel.folded .dash-chart-rows{display:none}.chart-fold-head{display:flex;align-items:center;cursor:pointer}.chart-fold-sum{font-style:normal;font-size:var(--fs-12);color:var(--text-3);margin-left:var(--spacer-8)}.chart-fold-btn{margin-left:auto;font-size:var(--fs-12);color:var(--text-3)}.ws-mode-btn{margin-left:auto;align-self:center;border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:var(--radius-full);padding:3px 12px;font-size:var(--fs-12);cursor:pointer;line-height:1.5;white-space:nowrap}.ws-mode-btn:hover{border-color:var(--primary);color:var(--primary)}.ws-mode-btn[data-busy="1"]{opacity:.6;pointer-events:none}.ws-minimal .todo-mount,.ws-minimal .home-focus,.ws-minimal .info-bar{max-width:760px}.min-quick{margin-top:var(--spacer-12);max-width:760px}.min-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacer-12)}.min-quick-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-ctrl);font-size:var(--fs-14);color:var(--text-1);cursor:pointer;padding:var(--spacer-12);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.min-quick-btn:hover{border-color:var(--primary);box-shadow:0 2px 8px color-mix(in srgb,var(--theme) 12%,transparent)}.min-quick-btn:active{background:var(--surface-muted)}.min-q-ico{font-size:26px;line-height:1}.min-q-ico .ico{width:28px;height:28px}@media(max-width:640px){.min-quick-grid{grid-template-columns:1fr}.ws-mode-btn{margin-left:0}}.hl-row{display:flex;align-items:center;gap:var(--spacer-8);padding:7px var(--spacer-12);border:1px solid var(--border);border-radius:var(--r-ctrl);margin-bottom:6px;background:var(--surface)}.hl-row .hl-ck{margin:0}.hl-name{flex:1;font-size:var(--fs-13);color:var(--text-1);min-width:0}.hl-mv{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:var(--r-sm);width:26px;height:24px;line-height:1;cursor:pointer;font-size:var(--fs-13)}.hl-mv:hover{border-color:var(--primary);color:var(--primary)}.perf-card{border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);padding:var(--spacer-12) var(--spacer-16);margin-bottom:var(--spacer-12)}.perf-head{display:flex;align-items:center;gap:var(--spacer-8);margin-bottom:var(--spacer-8)}.perf-icon{font-size:18px;line-height:1}.perf-icon .ico{width:20px;height:20px}.perf-title{font-size:var(--fs-14);font-weight:var(--weight-medium);color:var(--text-1)}.perf-more{margin-left:auto;border:none;background:none;color:var(--primary);font-size:var(--fs-12);cursor:pointer;padding:2px 4px}.perf-more:hover{text-decoration:underline}.perf-bar{height:8px;border-radius:var(--radius-full);background:var(--surface-muted);overflow:hidden;margin-bottom:var(--spacer-8)}.perf-bar-fill{height:100%;border-radius:var(--radius-full);background:var(--primary);transition:width var(--dur-base, .3s ease)}.perf-bar-fill.perf-ok{background:var(--success, #1DC981)}.perf-bar-fill.perf-bad{background:#e8463a}.perf-nums{display:flex;flex-wrap:wrap;gap:var(--spacer-16)}.perf-num{display:flex;flex-direction:column;gap:2px}.perf-num b{font-family:var(--font-metric);font-size:var(--fs-16);color:var(--text-1);font-variant-numeric:tabular-nums}.perf-num span{font-size:var(--fs-12);color:var(--text-3)}.perf-hint{margin-top:var(--spacer-8);font-size:var(--fs-12);color:var(--text-3)}.perf-card.perf-empty .perf-guide{margin:0;font-size:var(--fs-13);color:var(--text-3);line-height:1.6}@media(max-width:640px){.perf-nums{gap:var(--spacer-12)}}.oss-sup-pick{margin:4px 0 12px;border-top:1px dashed var(--border);padding-top:12px}.oss-sup-pick-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.oss-sup-pick-title{font-size:var(--fs-13);font-weight:600;color:var(--text-1)}.oss-sup-search{flex:0 0 150px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-12)}.oss-sup-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:300px;overflow:auto;padding:2px}.oss-sup-loading{color:var(--text-3);font-size:var(--fs-13);grid-column:1 / -1}.oss-sup-card{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:var(--r-sm);padding:8px;cursor:pointer;background:var(--surface-2);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.oss-sup-card:hover{border-color:var(--primary)}.oss-sup-card:has(.oss-sup-check:checked){border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 15%,transparent);background:var(--surface)}.oss-sup-check{margin-top:4px;width:15px;height:15px;flex:0 0 auto}.oss-sup-main{flex:1;min-width:0}.oss-sup-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.oss-sup-name{font-weight:600;font-size:var(--fs-13);color:var(--text-1)}.oss-level{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-ctrl);font-weight:500;white-space:nowrap}.lvl-strategic{background:var(--ok-bg);color:#15803d}.lvl-priority{background:#00bfa629;color:#00695c}.lvl-normal{background:var(--surface-3);color:var(--text-2)}.lvl-evaluating{background:#fef3c7;color:#b45309}.lvl-s5{background:#00695c;color:#fff}.lvl-s4{background:var(--theme-strong);color:#fff}.lvl-s3{background:color-mix(in srgb,var(--theme) 14%,transparent);color:var(--theme-strong)}.lvl-s2{background:color-mix(in srgb,var(--theme) 10%,transparent);color:var(--theme-strong)}.lvl-s1,.lvl-none{background:var(--surface-3);color:var(--text-2)}html.dark .lvl-strategic{color:var(--ok-ink)}html.dark .lvl-priority{color:var(--theme)}html.dark .lvl-s5,html.dark .lvl-s4{background:var(--theme-strong);color:#06121a}html.dark .lvl-s3,html.dark .lvl-s2{color:var(--theme)}.oss-sup-meta{font-size:var(--fs-12);color:var(--text-3);margin:2px 0}.oss-sup-hist{font-size:var(--fs-12);color:var(--text-2);font-weight:500}.oss-compare{margin:12px 0;border:1px dashed #c9a1f0;border-radius:var(--r-sm);padding:8px;background:#fdfaff}.oss-compare .oss-sup-pick-title em{font-style:normal;font-size:var(--fs-12);color:var(--text-3);margin-left:4px}.oss-compare-mode{flex:0 0 auto;height:28px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-12);background:#fff;color:#6b21a8;cursor:pointer}.oss-compare-search{width:100%;box-sizing:border-box;margin-bottom:8px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-12)}.oss-compare-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:220px;overflow:auto;padding:2px}.oss-cmp-card{position:relative;border-color:#e3d2f5!important}.oss-cmp-card.oss-cmp-picked{border-color:#8b5cf6!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 15%,transparent);background:#faf5ff}.oss-cmp-card.oss-cmp-disabled{opacity:.5;cursor:not-allowed;background:var(--surface-2)}.oss-cmp-card.oss-cmp-disabled .oss-sup-main{pointer-events:none}.oss-cmp-lock{position:absolute;right:6px;top:6px;width:18px;height:18px;border-radius:50%;background:#8b5cf6;color:#fff;font-size:var(--fs-12);line-height:18px;text-align:center}.oss-cmp-tag{font-size:var(--fs-12);padding:0 4px;border-radius:var(--r-sm);background:#f3e8ff;color:#7c3aed;font-weight:600}.oss-compare-list{margin-top:8px;display:flex;flex-direction:column;gap:4px}.oss-compare-empty{font-size:var(--fs-12);color:var(--text-3);padding:4px 2px}.oss-cmp-row{display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 8px;background:#fff}.oss-cmp-row-name{flex:1;min-width:0;font-size:var(--fs-12);font-weight:600;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oss-cmp-price{width:110px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-12)}.oss-cmp-lead{width:84px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-12)}.oss-cmp-lead[type=date]{width:152px;min-width:140px;padding:8px;border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--fs-13);color:var(--text-1);background:#fff;box-sizing:border-box}.oss-cmp-remove{width:22px;height:22px;border:none;background:var(--danger-bg);color:var(--danger);border-radius:50%;cursor:pointer;font-size:var(--fs-13);line-height:1;flex:0 0 auto}.oss-cmp-remove:hover{background:var(--danger);color:#fff}@media(max-width:640px){.oss-compare-cards{grid-template-columns:1fr}.oss-cmp-row{flex-wrap:wrap}.oss-cmp-price{flex:1}}.oss-compare-table{display:flex;flex-direction:column;gap:8px}.oss-cmp-tr{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:#faf5ff}.oss-cmp-tr .oss-cmp-name{flex:1;font-weight:600;color:var(--text-1)}.oss-cmp-tr .oss-cmp-price{width:auto;font-size:var(--fs-13);font-weight:600;color:#7c3aed}.oss-cmp-tr .oss-cmp-lead{width:auto;font-size:var(--fs-12);color:var(--text-3)}.oss-cmp-note{margin:8px 0 0;font-size:var(--fs-12);color:var(--text-3);background:#fbfcfe;border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px}.oss-cmp-note b{color:#7c3aed}.oss-sup-recent{margin-top:4px;border-top:1px dashed var(--border);padding-top:4px;display:flex;flex-direction:column;gap:4px}.oss-rec-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:4px;font-size:var(--fs-12);color:var(--text-3);align-items:baseline}.oss-rec-doc{font-weight:600;color:var(--text-2)}.oss-rec-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oss-rec-st{color:var(--text-3)}.oss-rec-empty{font-size:var(--fs-12);color:var(--text-3)}.oss-sup-picked{font-size:var(--fs-12);color:var(--text-2);margin:12px 0 0}.oss-sup-picked .oss-pick-cnt{color:var(--primary);font-weight:700}.oss-pk{display:flex;flex-direction:column;gap:6px}.oss-pk-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.oss-pk-title{font-size:var(--fs-13);font-weight:600;color:var(--text-1)}.oss-pk-title em{font-style:normal;font-size:var(--fs-12);font-weight:400;color:var(--text-3);margin-left:4px}.oss-pk-head-tools{display:flex;align-items:center;gap:6px;flex:0 0 auto}.oss-pk-clear{height:24px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.oss-pk-clear:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-bg)}.oss-pk-search{display:flex;align-items:center;gap:6px;height:32px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.oss-pk-search:focus-within{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 15%,transparent)}.oss-pk-ico{flex:0 0 auto;font-size:var(--fs-12);opacity:.7}.oss-pk-input{flex:1;min-width:0;height:100%;border:none;outline:none;background:transparent;font-size:var(--fs-13);color:var(--text-1)}.oss-pk-input::placeholder{color:var(--text-4)}.oss-pk-kwx{flex:0 0 auto;width:20px;height:20px;border:none;border-radius:50%;background:var(--surface-3);color:var(--text-2);font-size:var(--fs-12);line-height:1;cursor:pointer}.oss-pk-kwx:hover{background:var(--text-4);color:#fff}.oss-pk-list{display:flex;flex-direction:column;gap:6px;max-height:232px;overflow:auto;padding:2px}.oss-pk-state{display:flex;align-items:center;gap:6px;padding:10px 12px;font-size:var(--fs-12);color:var(--text-3);background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--r-sm)}.oss-pk-state.err{color:var(--danger);background:var(--danger-bg);border-color:var(--danger)}.oss-pk-spin{flex:0 0 auto;width:12px;height:12px;border:2px solid color-mix(in srgb,var(--theme) 28%,transparent);border-top-color:var(--theme);border-radius:50%;animation:pk-spin .7s linear infinite}@keyframes pk-spin{to{transform:rotate(360deg)}}.oss-pk-row{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-13);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}.oss-pk-row:hover,.oss-pk-row.hi{border-color:var(--theme)}.oss-pk-row.hi{background:color-mix(in srgb,var(--theme) 8%,var(--surface))}.oss-pk-row:focus-visible{outline:none;border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 18%,transparent)}.oss-pk-row.on{border-color:var(--theme);background:color-mix(in srgb,var(--theme) 10%,var(--surface))}.oss-pk-row.lock{opacity:.55;cursor:not-allowed}.oss-pk-row.lock:hover{border-color:var(--border-light)}.oss-pk-row-name{flex:0 0 auto;max-width:42%;font-weight:600;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oss-pk-row-meta{flex:1;min-width:0;font-size:var(--fs-12);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oss-pk-flag{flex:0 0 auto;font-size:var(--fs-12);font-weight:700;color:var(--theme-strong);white-space:nowrap}.oss-pk-flag.muted{font-weight:400;color:var(--text-4)}.oss-pk-lock{flex:0 0 auto;font-size:var(--fs-12);color:var(--text-4);white-space:nowrap}.oss-pk-sel{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px dashed var(--border)}.oss-pk-sel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.oss-pk-sel-title{font-size:var(--fs-12);font-weight:600;color:var(--text-2)}.oss-pk-cnt{font-size:var(--fs-12);font-weight:700;color:var(--primary)}.oss-pk.pk-full .oss-pk-cnt{color:var(--danger)}.oss-pk-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:26px;align-items:center}.oss-pk-empty{font-size:var(--fs-12);color:var(--text-3)}.oss-pk-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 4px 3px 10px;border:1px solid var(--theme);border-radius:var(--r-pill);background:color-mix(in srgb,var(--theme) 10%,var(--surface));font-size:var(--fs-12);color:var(--text-1)}.oss-pk-chip-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oss-pk-chip-x{flex:0 0 auto;width:18px;height:18px;border:none;border-radius:50%;background:color-mix(in srgb,var(--theme) 22%,transparent);color:var(--theme-strong);font-size:var(--fs-12);line-height:1;cursor:pointer}.oss-pk-chip-x:hover{background:var(--danger);color:#fff}.oss-pk-quote-tip{padding:2px 0;font-size:var(--fs-12);color:var(--text-3)}.oss-pk-hint{margin:0;font-size:var(--fs-12);color:var(--text-3)}.oss-pk-hint.warn{color:var(--danger);font-weight:600}@media(max-width:640px){.oss-pk-row{flex-wrap:wrap}.oss-pk-row-name{max-width:100%}.oss-pk-row-meta{flex:1 0 100%}}html.dark .oss-pk-search,html.dark .oss-pk-state,html.dark .oss-pk-clear{background:var(--surface)}.oss-fld-req input{border-color:var(--primary)}.oss-fld-req:after{content:" *";color:var(--danger)}.oss-shot-pick{margin:12px 0;border:1px dashed var(--border);border-radius:var(--r-sm);padding:8px}.oss-shot-add{font-size:var(--fs-12);padding:4px 12px}.oss-shot-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;min-height:36px;align-items:center}.oss-shot-item{position:relative;width:96px;height:96px;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.oss-shot-item img{width:100%;height:100%;object-fit:cover;display:block}.oss-shot-del{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:none;background:#0000008c;color:#fff;font-size:var(--fs-13);line-height:1;cursor:pointer}.oss-shot-del:hover{background:var(--danger)}.oss-shot-grid{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.oss-shot-thumb{width:110px;height:110px;object-fit:cover;border:1px solid var(--border);border-radius:var(--r-sm);cursor:zoom-in;transition:transform var(--dur-fast)}.oss-shot-thumb:hover{transform:scale(1.03);border-color:var(--primary)}.oss-lightbox{position:fixed;inset:0;z-index:var(--zi-top);background:#0f172ad1;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.oss-lightbox img{max-width:92vw;max-height:92vh;border-radius:var(--r-sm);box-shadow:0 12px 48px #00000080}.oss-lb-close{position:absolute;top:18px;right:28px;color:#fff;font-size:34px;cursor:pointer;opacity:.85}.oss-lb-close:hover{opacity:1}.oss-appr-info p{margin:4px 0;font-size:var(--fs-13);color:var(--text-2)}.oss-detail-drawer{width:680px}.oss-detail-drawer .oss-drawer-body{padding:0 20px 24px;background:var(--surface-2)}.oss-detail-loading,.oss-detail-error{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-3);text-align:center}.oss-detail-error b{color:var(--text-1);font-size:var(--fs-14)}.oss-detail-error p{margin:0;font-size:var(--fs-13)}.oss-detail-retry{flex:none;width:120px;margin-top:8px}.oss-loading-dot{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:oss-spin .8s linear infinite}@keyframes oss-spin{to{transform:rotate(360deg)}}.oss-detail-hero{margin:0 -20px;padding:20px;background:linear-gradient(135deg,#f7faff,#eef4ff);border-bottom:1px solid var(--theme-weak);display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.oss-detail-hero h3{margin:8px 0 4px;font-size:var(--fs-18);color:var(--text-1)}.oss-detail-hero p{margin:0;color:var(--text-3);font-size:var(--fs-13)}.oss-detail-amount{text-align:right;flex:0 0 auto}.oss-detail-amount span{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.oss-detail-amount strong{color:#d97706;font-size:var(--fs-22);line-height:var(--lh-tight)}.oss-detail-notice{margin:12px 0;border-radius:var(--r-ctrl);padding:12px;display:flex;flex-direction:column;gap:4px;border:1px solid}.oss-detail-notice b{font-size:var(--fs-13)}.oss-detail-notice span{font-size:var(--fs-12);line-height:var(--lh-base)}.oss-detail-notice.waiting{background:var(--warn-bg);border-color:#f6d590;color:#92400e}.oss-detail-notice.success{background:#f0fdf4;border-color:#a7e7bd;color:#166534}.oss-detail-notice.rejected{background:var(--danger-bg);border-color:#fecaca;color:var(--danger-ink)}.oss-detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.oss-detail-stats>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctrl);padding:8px 12px;min-width:0}.oss-detail-stats span{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.oss-detail-stats b{display:block;color:var(--text-1);font-size:var(--fs-13);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oss-detail-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;margin-bottom:12px}.oss-detail-section h4{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--text-1);font-size:var(--fs-14)}.oss-detail-section h4>span{width:25px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-ctrl);background:#eaf1ff;color:var(--primary);font-size:var(--fs-12)}.oss-detail-section h4 em{font-style:normal;font-weight:400;color:var(--text-3);font-size:var(--fs-12)}.oss-detail-section h4 .po-att-upload{margin-left:auto;border:1px solid var(--primary, var(--theme));background:var(--theme);color:#fff;border-radius:var(--r-ctrl);padding:4px 8px;font-size:var(--fs-12);cursor:pointer}.oss-detail-section h4 .po-att-upload:hover{opacity:.9}.oss-detail-section h4 .po-att-upload:disabled{opacity:.55;cursor:not-allowed}.po-att-wrap{margin-top:4px}.po-att-list{display:flex;flex-direction:column;gap:8px}.po-att-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-ctrl);cursor:default;transition:border-color var(--dur-base),background var(--dur-base)}.po-att-item[data-prev="1"]{cursor:pointer}.po-att-item:hover{border-color:var(--primary)}.po-att-icon{font-size:var(--fs-18);line-height:1;flex:0 0 auto}.po-att-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.po-att-name{font-size:var(--fs-13);color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.po-att-sub{font-size:var(--fs-12);color:var(--text-3)}.po-att-del{flex:0 0 auto;border:none;background:transparent;color:var(--text-3);font-size:var(--fs-14);cursor:pointer;padding:4px;border-radius:var(--r-ctrl)}.po-att-del:hover{background:var(--danger-bg);color:var(--danger)}.po-att-del:disabled{opacity:.5;cursor:not-allowed}.oss-detail-section h4 .po-inv-upload{margin-left:auto;border:1px solid var(--primary, var(--theme));background:var(--theme);color:#fff;border-radius:var(--r-ctrl);padding:4px 8px;font-size:var(--fs-12);cursor:pointer}.oss-detail-section h4 .po-inv-upload:hover{opacity:.9}.oss-detail-section h4 .po-inv-upload:disabled{opacity:.55;cursor:not-allowed}.po-inv-wrap{margin-top:4px}.po-inv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.po-inv-item{position:relative}.po-inv-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.po-inv-del{position:absolute;top:6px;right:6px;border:none;background:#00000073;color:#fff;font-size:var(--fs-13);cursor:pointer;padding:4px 8px;border-radius:var(--r-ctrl);line-height:1;z-index:2}.po-inv-del:hover{background:var(--danger)}.po-inv-del:disabled{opacity:.5;cursor:not-allowed}.mp-confirm-text{margin:4px 0 2px;color:var(--text-2);font-size:var(--fs-13);line-height:var(--lh-base)}.oss-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.oss-detail-kv{min-height:55px;background:var(--surface);padding:8px;min-width:0}.oss-detail-kv span{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.oss-detail-kv b{display:block;color:var(--text-1);font-size:var(--fs-13);line-height:var(--lh-snug);word-break:break-all}.oss-detail-remark,.oss-approval-opinion{margin-top:8px;padding:8px 12px;border-radius:var(--r-sm);background:var(--surface-2)}.oss-detail-remark span,.oss-approval-opinion span{color:var(--text-3);font-size:var(--fs-12)}.oss-detail-remark p,.oss-approval-opinion p{margin:4px 0 0;font-size:var(--fs-13);color:var(--text-1);line-height:var(--lh-base)}.oss-supplier-profile{border-left:3px solid var(--primary);padding-left:12px}.oss-supplier-name{display:flex;align-items:center;gap:8px;margin-bottom:8px}.oss-supplier-name b{color:var(--text-1);font-size:var(--fs-14)}.oss-supplier-name span{padding:2px 8px;border-radius:var(--r-sm);background:#eaf1ff;color:var(--primary);font-size:var(--fs-12)}.oss-detail-section .oss-shot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.oss-detail-section .oss-shot-thumb{width:100%;height:130px;background:var(--surface-2)}.oss-timeline{display:flex;flex-direction:column}.oss-time-item{display:flex;gap:8px;min-height:58px}.oss-time-rail{width:16px;flex:0 0 16px;display:flex;flex-direction:column;align-items:center}.oss-time-dot{width:12px;height:12px;border-radius:50%;background:#cbd5e1;border:3px solid #f1f5f9;box-shadow:0 0 0 1px #cbd5e1;flex:0 0 auto}.oss-time-line{width:2px;flex:1;background:#e2e8f0;margin:4px 0}.oss-time-item.done .oss-time-dot{background:#22c55e;box-shadow:0 0 0 1px #86d9a1}.oss-time-item.current .oss-time-dot{background:#f59e0b;box-shadow:0 0 0 1px #f6d590}.oss-time-item.rejected .oss-time-dot{background:var(--danger);box-shadow:0 0 0 1px var(--danger-ink)}.oss-time-content{flex:1;padding-bottom:12px;min-width:0}.oss-time-title{color:var(--text-1);font-size:var(--fs-13);font-weight:600;display:flex;justify-content:space-between;gap:8px}.oss-time-at{color:var(--text-3);font-size:var(--fs-12);font-weight:400}.oss-time-meta{color:var(--text-3);font-size:var(--fs-12);margin-top:4px;line-height:var(--lh-base)}.oss-po-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.oss-po-card>div{padding:8px;border-radius:var(--r-ctrl);background:#f8fafc;border:1px solid #e8edf3}.oss-po-card span{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.oss-po-card b{color:var(--text-1);font-size:var(--fs-13)}.oss-detail-empty{padding:24px 12px;border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--text-3);text-align:center;font-size:var(--fs-12);background:var(--surface-2)}@media(max-width:900px){.oss-detail-stats,.oss-po-card,.oss-detail-grid,.oss-detail-section .oss-shot-grid{grid-template-columns:1fr 1fr}}.sup-layout{display:grid;grid-template-columns:340px 1fr;gap:16px}.sup-cards{display:flex;flex-direction:column;gap:8px;height:calc(100vh - 150px);overflow-y:auto;padding:2px;align-content:flex-start}.sup-cards.sup-cards-shrink{min-height:0!important}.sup-card{border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;background:var(--surface);cursor:pointer;transition:border-color var(--dur-fast),box-shadow var(--dur-fast),transform var(--dur-fast)}.sup-card:hover{border-color:var(--primary)}.sup-card.on{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 14%,transparent);background:#f8fbff}.sup-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.sup-card-top b{color:var(--text-1);font-size:var(--fs-14)}.sup-card-meta{color:var(--text-3);font-size:var(--fs-12);margin-bottom:8px;line-height:var(--lh-base)}.sup-card-stats{display:flex;gap:12px}.sup-card-stats span{flex:1}.sup-card-stats i{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:2px}.sup-card-stats em{color:var(--text-1);font-size:var(--fs-14);font-weight:600;font-style:normal;font-variant-numeric:tabular-nums}.sup-board{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctrl);padding:16px 20px;overflow-y:auto;height:calc(100vh - 150px)}.sup-board-empty{background:var(--surface);border:1px dashed var(--border);border-radius:var(--r-ctrl);color:var(--text-3);font-size:var(--fs-13);padding:60px 20px;text-align:center}.sup-board-loading{color:var(--text-3);font-size:var(--fs-13);padding:60px 20px;text-align:center}.sup-board-error{color:var(--danger, var(--danger-ink));font-size:var(--fs-13);padding:40px 20px;text-align:center}.sup-board-error .ua-btn{margin-left:8px}.sup-board-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.sup-board-head h3{margin:0;font-size:var(--fs-16);color:var(--text-1)}.sup-board-head>span{color:var(--text-3);font-size:var(--fs-12)}.sup-board-acts{margin-left:auto}.sup-tabs{display:flex;gap:2px;margin:0 0 12px;border-bottom:1px solid var(--border);overflow-x:auto}.sup-tab{flex:none;padding:7px 12px;border:none;border-bottom:2px solid transparent;background:transparent;border-radius:var(--r-6) var(--r-6) 0 0;font-size:var(--fs-13);color:var(--text-3);cursor:pointer;white-space:nowrap}.sup-tab:hover{color:var(--text-1);background:var(--surface-2)}.sup-tab.on{color:var(--theme-strong);border-bottom-color:var(--theme);background:transparent;font-weight:500}.sup-pane{display:none}.sup-pane:not([hidden]){display:block}.sup-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.sup-kpi{border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;background:#f8fafc}.sup-kpi label{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.sup-kpi b{display:block;color:var(--text-1);font-size:var(--fs-22);font-variant-numeric:tabular-nums}.sup-kpi b.money{color:#f59e0b}.sup-kpi span{display:block;color:var(--text-3);font-size:var(--fs-12);margin-top:4px}.sup-sec{margin-bottom:16px}.sup-sec h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:var(--fs-14);color:var(--text-1)}.sup-sec h4 em{font-style:normal;font-weight:400;color:var(--text-3);font-size:var(--fs-12)}.sup-chart-wrap{border:1px solid var(--border);border-radius:var(--r-ctrl);background:#f8fafc;padding:12px 10px 6px}.sup-chart{display:block;width:100%;max-width:720px;height:auto}.sup-bar{fill:color-mix(in srgb,var(--primary) 55%,#fff)}.sup-bar-po{fill:color-mix(in srgb,#0e9f6e 62%,#fff)}.sup-bar:hover,.sup-bar-last{fill:var(--primary)}.sup-bar-v{font-size:var(--fs-11);fill:var(--text-2);font-variant-numeric:tabular-nums}.sup-bar-m{font-size:var(--fs-11);fill:var(--text-3)}.sup-orders{border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.sup-orders .module-table th{background:#f1f5f9}.sup-order-row{cursor:pointer;transition:background var(--dur-fast)}.sup-order-row:hover td{background:#f4f8ff}.sup-empty-tip{border:1px dashed var(--border);border-radius:var(--r-ctrl);color:var(--text-3);font-size:var(--fs-12);padding:20px 12px;text-align:center;background:var(--surface-2)}.oss-detail-acts{margin-top:12px;text-align:right}.sup-pay-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.sup-pay-kpi{border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;background:#f8fafc}.sup-pay-kpi label{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.sup-pay-kpi b{display:block;color:var(--text-1);font-size:var(--fs-18);font-variant-numeric:tabular-nums}.sup-pay-kpi b.money{color:#e11d48}.sup-pay-kpi span{display:block;color:var(--text-3);font-size:var(--fs-12);margin-top:4px}.sup-pay-plans{display:flex;flex-wrap:wrap;gap:8px}.sup-pay-plan{border:1px solid var(--border);border-left:3px solid #f59e0b;border-radius:var(--r-ctrl);padding:8px 12px;background:var(--warn-bg);min-width:210px;cursor:pointer;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.sup-pay-plan:hover{border-color:#f59e0b;box-shadow:0 2px 8px #f59e0b26}.sup-pay-plan b{display:block;color:var(--text-1);font-size:var(--fs-13);margin-bottom:4px}.sup-pay-plan span{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.sup-pay-plan em{display:block;font-style:normal;font-weight:700;color:#e11d48;font-size:var(--fs-14);font-variant-numeric:tabular-nums}.sup-pay-plan i{display:block;color:var(--text-3);font-size:var(--fs-12);margin-top:4px;font-style:normal}.sup-inv-badge{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);background:#eef4ff;color:var(--primary);font-size:var(--fs-12)}.sup-purchase-row{cursor:pointer;transition:background var(--dur-fast)}.sup-purchase-row:hover td{background:#f4f8ff}.sup-inv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sup-inv-item{border:1px solid var(--border);border-radius:var(--r-ctrl);overflow:hidden;cursor:zoom-in;background:var(--surface-2)}.sup-inv-item img{width:100%;height:150px;object-fit:cover;display:block}.sup-inv-item span{display:block;text-align:center;color:var(--text-3);font-size:var(--fs-12);padding:4px 0;background:var(--surface)}.sup-inv-item.broken{background:var(--danger-bg);border-color:#f5b5ab}.sup-inv-item.broken img{display:none}.sup-inv-item.broken:after{content:"🚫 无法加载";display:flex;align-items:center;justify-content:center;height:150px;color:var(--danger-ink);font-size:var(--fs-12)}.sup-lightbox{display:flex;align-items:center;justify-content:center;cursor:zoom-out}.sup-lightbox img{max-width:92vw;max-height:90vh;border-radius:var(--r-sm);box-shadow:0 12px 40px #0000004d}.sup-lb-close{position:absolute;top:16px;right:22px;font-size:var(--fs-28);color:#fff;cursor:pointer}.pay-sum-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.pay-card{display:flex;gap:8px;align-items:center;border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;background:var(--surface);box-shadow:0 1px 3px #0f172a0a;transition:box-shadow var(--dur-base),transform var(--dur-base)}.pay-card:hover{box-shadow:0 4px 14px #0f172a14;transform:translateY(-1px)}.pay-card-icon{width:38px;height:38px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:var(--fs-18);background:#f1f5f9;flex:0 0 38px}.pay-card-body{flex:1;min-width:0}.pay-card label{display:block;color:var(--text-3);font-size:var(--fs-12);margin-bottom:4px}.pay-card b{display:block;color:var(--text-1);font-size:var(--fs-18);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:var(--lh-snug)}.pay-card b.money{color:#1f2937}.pay-card.warn b.money{color:#b45309}.pay-card.warn .pay-card-icon{background:#fef3c7}.pay-card.blue b.money{color:var(--theme-strong)}.pay-card.blue .pay-card-icon{background:#00bfa629}.pay-card.cyan b.money{color:var(--theme-strong)}.pay-card.cyan .pay-card-icon{background:#cffafe}.pay-card.danger b.money{color:#e11d48}.pay-card.danger .pay-card-icon{background:var(--danger-bg)}.pay-card.ok b.money{color:#15803d}.pay-card.ok .pay-card-icon{background:var(--ok-bg)}.pay-card span{color:var(--text-3);font-size:var(--fs-12);white-space:nowrap}.pay-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.pay-dash{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin-bottom:16px}.pay-panel{border:1px solid var(--border);border-radius:var(--r-ctrl);padding:12px 16px;background:var(--surface)}.pay-panel-title{font-size:var(--fs-13);font-weight:600;color:var(--text-1);margin-bottom:12px}.pay-month{margin-bottom:8px}.pay-month:last-child{margin-bottom:0}.pay-month-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.pay-month-top b{color:var(--text-1);font-size:var(--fs-12)}.pay-month-top span{color:var(--text-3);font-size:var(--fs-12)}.pay-month-bar{height:7px;border-radius:var(--r-pill);background:#f1f5f9;overflow:hidden}.pay-month-bar i{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--info),var(--ok-ink))}.pay-top{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background var(--dur-fast)}.pay-top:last-child{border-bottom:0}.pay-top:hover{background:#f8fafc}.pay-top-rank{width:18px;height:18px;border-radius:var(--r-ctrl);background:#eef2ff;color:#4338ca;font-size:var(--fs-12);font-weight:700;display:flex;align-items:center;justify-content:center;flex:0 0 18px}.pay-top-name{flex:1;color:var(--text-1);font-size:var(--fs-12);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pay-top em{font-style:normal;color:#b45309;font-weight:700;font-size:var(--fs-12);font-variant-numeric:tabular-nums}.pay-top i{font-style:normal;color:var(--text-3);font-size:var(--fs-12)}.dragging-active,.dragging-active *{user-select:none!important;-webkit-user-select:none!important}body.col-resizing-mode,body.col-resizing-mode *{cursor:col-resize!important}body.scroll-dragging-mode,body.scroll-dragging-mode *{cursor:grabbing!important}.sup-import-tip{display:inline-block;margin:0 0 12px;padding:4px 12px;border-radius:var(--r-sm);background:#e7f3f5;border:1px solid #c2e0ea;color:var(--theme-strong);font-size:var(--fs-12)}.mp-static{padding:8px 12px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-1);font-size:var(--fs-13);border:1px solid var(--border);min-height:20px}.deploy-btn{color:var(--theme-strong)!important;border-color:color-mix(in srgb,var(--theme) 30%,transparent)!important;background:#00bfa614!important}.deploy-btn:hover{background:color-mix(in srgb,var(--theme) 16%,transparent)!important}.deploy-log{width:100%;max-height:300px;overflow:auto;margin:0;padding:8px 12px;border-radius:var(--r-sm);background:var(--info-ink);color:#e2e8f0;font-size:var(--fs-12);line-height:var(--lh-base);white-space:pre-wrap;word-break:break-all;font-family:var(--font-mono)}@media(max-width:1280px){.pay-sum-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.pay-dash{grid-template-columns:1fr}}@media(max-width:900px){.pay-sum-cards{grid-template-columns:1fr 1fr}}.pay-card.pay-card-click{cursor:pointer;position:relative}.pay-card.pay-card-click:hover{box-shadow:0 6px 18px color-mix(in srgb,var(--theme) 18%,transparent);transform:translateY(-2px);border-color:var(--info)}.pay-card.pay-card-click:active{transform:translateY(0)}.pay-card-go{color:var(--theme);font-size:var(--fs-12);font-weight:600;white-space:nowrap;opacity:.8;cursor:pointer}.pay-card.pay-card-click:hover .pay-card-go{opacity:1}.pay-inv-list{display:flex;flex-direction:column;gap:8px}.pay-inv-card{border:1px solid #e1eef4;border-left:3px solid var(--theme);border-radius:var(--r-sm);padding:8px 12px;background:#f5f9ff}.pay-inv-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:var(--fs-13)}.pay-inv-row b{font-family:SFMono-Regular,Consolas,monospace;color:var(--theme-strong)}.pay-inv-k{color:var(--text-3);font-size:var(--fs-12)}.pay-inv-imgs{margin-top:12px}@media(max-width:1280px){.sup-layout{grid-template-columns:1fr}.sup-cards{height:auto;max-height:46vh;min-height:260px}.sup-cards.sup-cards-shrink{min-height:0!important}.sup-board{height:auto;overflow-y:visible}.sup-kpis,.sup-inv-grid{grid-template-columns:1fr 1fr}}.ap-tabs{display:flex;gap:8px;margin-bottom:12px}.ap-tab{padding:8px 16px;font-size:var(--fs-13);border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-sm);cursor:pointer;color:var(--text-2)}.ap-content{min-height:200px}.ap-loading{text-align:center;color:var(--text-3);padding:40px 0}.ap-empty{text-align:center;color:var(--text-3);padding:32px 0;font-size:var(--fs-13)}.ap-error{color:var(--danger);text-align:center;padding:20px 0}.ap-table .ap-title{color:var(--text-1);font-weight:500}.ap-detail-modal .modal-head{padding:16px 24px;font-size:var(--fs-16);font-weight:600;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.ap-tl-node.done:before{background:var(--ok)}.ap-tl-node.current:before{background:var(--theme)}.ap-tl-node.done .ap-tl-dot{background:var(--ok);color:#fff}.ap-tl-node.current .ap-tl-dot{background:var(--theme-strong);color:#fff}.ap-tl-node.pending .ap-tl-dot{background:var(--surface-2);color:var(--text-3)}.ap-flow-toolbar{margin-bottom:12px}.ap-flow-modal .modal-head{padding:16px 24px;font-size:var(--fs-16);font-weight:600;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.ap-node-row .mp-input{flex:1;height:30px}.ap-node-row .mp-input:first-child{flex:2}.ap-page-head{display:flex;align-items:center;gap:12px}.ap-head-tip{font-size:var(--fs-12);color:var(--text-3);font-weight:400}.ap-page-head .ap-new-submit{margin-left:auto}select.dlg-input{height:38px;appearance:auto}textarea.dlg-input{resize:vertical;min-height:60px}.ap-tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.ap-tab{padding:8px 20px;font-size:var(--fs-13);border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-ctrl);cursor:pointer;color:var(--text-2);display:inline-flex;align-items:center;gap:4px;transition:all var(--dur-base)}.ap-tab:hover{border-color:var(--theme);color:var(--theme)}.ap-tab.on{background:var(--theme-strong);color:#fff;border-color:var(--theme)}.ap-badge{min-width:18px;height:18px;padding:0 4px;border-radius:var(--r-pill);background:var(--danger);color:#fff;font-size:var(--fs-12);display:inline-flex;align-items:center;justify-content:center;font-weight:600}.ap-tab.on .ap-badge{background:var(--surface);color:var(--danger)}.ap-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.ap-toolbar select{height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:var(--fs-13);background:var(--surface);color:var(--text-1);outline:none}.ap-toolbar select:focus{border-color:var(--theme)}.ap-count{font-size:var(--fs-12);color:var(--text-3)}.ap-count b{color:var(--text-1)}.ap-check-col{width:36px}.ap-check,.ap-check-all{width:15px;height:15px;accent-color:var(--theme);cursor:pointer}.ap-ops{white-space:nowrap}.ap-ops .ua-btn{margin-right:4px}.ap-batch-bar{display:flex;align-items:center;gap:12px;margin-top:12px;padding:8px 16px;background:var(--theme-weak);border:1px solid #d3e8f1;border-radius:var(--r-sm);font-size:var(--fs-13);color:var(--text-1)}.ap-batch-bar b{color:var(--theme)}.ap-batch-bar[hidden]{display:none!important}.ap-batch-bar .ua-btn{height:30px}.fe-tl-list{display:flex;flex-direction:column}.fe-tl-item{display:flex;gap:12px}.fe-tl-rail{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0}.fe-tl-dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);flex-shrink:0;z-index:1}.fe-tl-dot.ok{background:var(--ok);color:#fff}.fe-tl-dot.red{background:var(--danger);color:#fff}.fe-tl-dot.blue{background:var(--theme-strong);color:#fff}.fe-tl-dot.mute{background:#e3e6eb;color:var(--text-3)}.fe-tl-item:not(.last) .fe-tl-rail:after{content:"";flex:1;width:2px;background:var(--surface-2);margin-top:2px}.fe-tl-body{flex:1;padding-bottom:20px}.fe-tl-item.last .fe-tl-body{padding-bottom:0}.fe-tl-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fe-tl-user{font-size:var(--fs-13);font-weight:600;color:var(--text-1)}.fe-tl-node{font-size:var(--fs-12);color:var(--text-3)}.fe-tl-time{font-size:var(--fs-12);color:var(--text-3);margin-left:auto}.fe-tl-comment{margin-top:4px;padding:8px 12px;background:var(--surface-2);border-radius:var(--r-sm);font-size:var(--fs-13);color:var(--text-2);line-height:var(--lh-base)}.fe-tl-comment:before{content:"「";color:var(--text-3)}.fe-tl-comment:after{content:"」";color:var(--text-3)}.fe-flow-mask{z-index:var(--zi-modal);display:flex;align-items:center;justify-content:center}.fe-flow-modal{width:960px;max-width:96vw;height:80vh;background:var(--surface);border-radius:var(--r-card);box-shadow:0 16px 48px #0003;display:flex;flex-direction:column;overflow:hidden}.fe-flow-head{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border-light)}.fe-flow-head-left{display:flex;align-items:center;gap:8px}.fe-flow-name{font-size:var(--fs-16);font-weight:600;border:1px solid transparent;padding:4px 8px;border-radius:var(--r-sm);width:200px;outline:none}.fe-flow-name:hover,.fe-flow-name:focus{border-color:var(--border-strong);background:var(--surface-2)}.fe-flow-biz{height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:var(--fs-13)}.fe-flow-head-right{display:flex;align-items:center;gap:8px}.fe-close{font-size:var(--fs-22);color:var(--text-3);cursor:pointer;margin-left:8px}.fe-close:hover{color:var(--theme)}.fe-flow-body{flex:1;display:flex;overflow:hidden}.fe-canvas{flex:1;overflow-y:auto;padding:24px 32px;background:var(--surface-2)}.fe-canvas-inner{display:flex;flex-direction:column;align-items:center}.fe-node{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r-card);min-width:280px;max-width:420px;transition:all var(--dur-base)}.fe-node-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-16);flex-shrink:0}.fe-start{background:var(--surface-2);border:1px solid var(--border)}.fe-start .fe-node-icon{background:var(--border-strong);color:var(--text-2)}.fe-approval{background:var(--surface);border:2px solid #ff9c2e;cursor:pointer;position:relative;box-shadow:0 2px 8px #ff9c2e1a}.fe-approval:hover{box-shadow:0 4px 12px #ff9c2e33}.fe-approval.selected{border-color:var(--theme);box-shadow:0 4px 12px color-mix(in srgb,var(--theme) 20%,transparent)}.fe-approval .fe-node-icon{background:#ff9c2e;color:#fff}.fe-node-info{flex:1;min-width:0}.fe-node-title{font-size:var(--fs-14);font-weight:600;color:var(--text-1)}.fe-node-desc{font-size:var(--fs-12);color:var(--text-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fe-node-del{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;background:var(--danger);color:#fff;font-size:var(--fs-14);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity var(--dur-base)}.fe-approval:hover .fe-node-del{opacity:1}.fe-node-del:hover{background:#c93541}.fe-add{background:transparent;border:1px dashed #c4c7cc}.fe-add-btn{background:transparent;border:1px dashed var(--theme);color:var(--theme);padding:8px 20px;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-13)}.fe-add-btn:hover{background:var(--theme-weak)}.fe-end{background:var(--surface-2);border:1px solid var(--border)}.fe-end .fe-node-icon{background:var(--ok);color:#fff}.fe-arrow{color:var(--text-3);font-size:var(--fs-16);line-height:24px;text-align:center}.fe-config-panel{width:360px;border-left:1px solid var(--border-light);overflow-y:auto;flex-shrink:0;background:var(--surface)}.fe-config-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-3);font-size:var(--fs-13)}.fe-config-head{padding:16px 20px;border-bottom:1px solid var(--border-light)}.fe-config-name{width:100%;font-size:var(--fs-16);font-weight:600;border:1px solid transparent;padding:4px 8px;border-radius:var(--r-sm);outline:none}.fe-config-name:hover,.fe-config-name:focus{border-color:var(--border-strong);background:var(--surface-2)}.fe-config-tabs{display:flex;border-bottom:1px solid var(--border-light)}.fe-config-tab{flex:1;padding:8px;font-size:var(--fs-13);border:none;background:none;cursor:pointer;color:var(--text-3);border-bottom:2px solid transparent}.fe-config-tab.on{color:var(--theme);border-bottom-color:var(--theme);font-weight:500}.fe-config-content{padding:16px 20px}.fe-config-section{margin-bottom:20px}.fe-config-label{font-size:var(--fs-12);font-weight:600;color:var(--text-2);margin-bottom:8px}.fe-radio-group{display:flex;gap:12px}.fe-radio{display:flex;align-items:center;gap:4px;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;padding:4px 12px;border:1px solid var(--border);border-radius:var(--r-sm);position:relative}.fe-radio.on{border-color:var(--theme);background:var(--theme-weak);color:var(--theme)}.fe-radio input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.fe-check-group{display:flex;flex-wrap:wrap;gap:8px}.fe-check{display:flex;align-items:center;gap:4px;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;padding:4px 12px;border:1px solid var(--border);border-radius:var(--r-sm);position:relative}.fe-check input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.fe-check.on{border-color:var(--theme);background:var(--theme-weak);color:var(--theme)}.fe-member-list{max-height:280px;overflow-y:auto;border:1px solid #eef0f4;border-radius:var(--r-sm);padding:4px}.fe-member{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-13);position:relative}.fe-member:hover{background:var(--surface-2)}.fe-member.on{background:var(--theme-weak)}.fe-member input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.fe-member-avatar{width:28px;height:28px;border-radius:50%;background:var(--theme-strong);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:600;flex-shrink:0}.fe-member-name{flex:1;color:var(--text-1)}.fe-member-role{font-size:var(--fs-12);color:var(--text-3)}.fe-empty-action{width:100%;height:32px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:var(--fs-13)}.fe-mode-card{display:flex;align-items:center;gap:12px;padding:12px;border:2px solid var(--border);border-radius:var(--r-card);cursor:pointer;margin-bottom:8px;position:relative}.fe-mode-card.on{border-color:var(--theme);background:var(--theme-weak)}.fe-mode-card input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.fe-mode-icon{width:36px;height:36px;border-radius:var(--r-sm);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:var(--fs-18)}.fe-mode-card.on .fe-mode-icon{background:var(--theme-strong);color:#fff}.fe-mode-name{font-size:var(--fs-14);font-weight:600;color:var(--text-1)}.fe-mode-desc{font-size:var(--fs-12);color:var(--text-3);margin-top:2px}.fe-config-hint{font-size:var(--fs-12);color:var(--text-3);margin-top:8px}.fe-cc-box{display:flex;flex-wrap:wrap;gap:8px;min-height:36px;padding:8px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:var(--surface-2)}.fe-cc-empty{color:var(--text-3);font-size:var(--fs-13);padding:4px 2px}.fe-cc-chip{display:inline-flex;align-items:center;gap:4px;background:var(--theme-weak);color:var(--theme-strong);border:1px solid #c2dfe8;border-radius:var(--r-pill);padding:4px 8px;font-size:var(--fs-13)}.fe-cc-chip-x{cursor:pointer;font-weight:700;line-height:1;opacity:.65}.fe-cc-chip-x:hover{opacity:1;color:#f5222d}.fe-cc-add{margin-top:8px;height:34px;padding:0 12px;border:1px solid var(--theme);background:var(--surface);color:var(--theme);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-13);font-weight:600}.fe-cc-add:hover{background:var(--theme-weak)}.ap-sub-cc-wrap{margin-top:4px}.ap-sub-cc-box{display:flex;flex-wrap:wrap;gap:8px;min-height:34px;padding:8px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:var(--surface-2);margin:4px 0}.ap-sub-cc-empty{color:var(--text-3);font-size:var(--fs-13);padding:4px 2px}.ap-sub-cc-chip{display:inline-flex;align-items:center;gap:4px;background:var(--theme-weak);color:var(--theme-strong);border:1px solid #c2dfe8;border-radius:var(--r-pill);padding:4px 8px;font-size:var(--fs-13)}.ap-sub-cc-x{cursor:pointer;font-weight:700;line-height:1;opacity:.65}.ap-sub-cc-x:hover{opacity:1;color:#f5222d}.ap-sub-cc-add{height:32px;padding:0 12px;border:1px solid var(--theme);background:var(--surface);color:var(--theme);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-13);font-weight:600}.ap-sub-cc-add:hover{background:var(--theme-weak)}.fe-d-cc-note{padding:8px 12px;background:var(--warn-bg);border:1px solid #ffe58f;color:#ad6800;border-radius:var(--r-sm);font-size:var(--fs-13)}.fe-detail-mask{z-index:var(--zi-modal);display:flex;align-items:center;justify-content:center}.fe-detail-modal{width:680px;max-width:96vw;max-height:90vh;background:var(--surface);border-radius:var(--r-card);box-shadow:0 16px 48px #0003;display:flex;flex-direction:column;overflow:hidden}.fe-detail-head{padding:20px 24px 16px;border-bottom:1px solid var(--border-light);position:relative}.fe-detail-title-row{display:flex;align-items:center;gap:12px}.fe-detail-title{font-size:var(--fs-18);font-weight:600;margin:0}.fe-detail-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:500}.fe-st-icon{font-size:var(--fs-14)}.fe-st-running{background:#e3f3f5;color:var(--theme)}.fe-st-passed{background:var(--ok-bg);color:var(--ok)}.fe-st-rejected{background:var(--danger-bg);color:var(--danger)}.fe-st-revoked{background:var(--surface-2);color:var(--text-3)}.fe-detail-meta{display:flex;gap:16px;margin-top:8px;font-size:var(--fs-13);color:var(--text-3)}.fe-meta-item{display:flex;align-items:center;gap:4px}.fe-avatar{width:32px;height:32px;border-radius:50%;background:var(--theme-strong);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-13);font-weight:600}.fe-avatar.sm{width:24px;height:24px;font-size:var(--fs-12)}.fe-detail-close{position:absolute;top:16px;right:20px;font-size:var(--fs-22);color:var(--text-3);cursor:pointer}.fe-detail-close:hover{color:var(--theme)}.fe-detail-body{flex:1;overflow-y:auto;padding:16px 24px}.fe-section{margin-bottom:20px}.fe-section-title{font-size:var(--fs-14);font-weight:600;color:var(--text-1);margin-bottom:12px}.fe-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.fe-form-item{background:var(--surface-2);border-radius:var(--r-sm);padding:8px 12px}.fe-form-label{font-size:var(--fs-12);color:var(--text-3);margin-bottom:4px}.fe-form-val{font-size:var(--fs-14);color:var(--text-1);font-weight:500}@keyframes fe-pulse{0%,to{box-shadow:0 0 0 4px color-mix(in srgb,var(--theme) 8%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--theme) 12%,transparent)}}.dyn-flow-wrap{overflow:visible}.dyn-track{position:relative;padding:28px 12px 16px}.dyn-lines{position:absolute;top:50%;left:0;right:0;height:3px;transform:translateY(-4px);z-index:1;display:flex;align-items:center;pointer-events:none}.dyn-line{flex:1;height:3px;position:relative;margin:0 -2px;min-width:24px}.dyn-line-core{position:absolute;inset:0;background:#e3e6eb;border-radius:var(--r-4)}.dyn-line.active .dyn-line-core{background:linear-gradient(90deg,#52c41a,var(--theme))}.dyn-nodes{display:flex;align-items:flex-start;justify-content:space-between;position:relative;z-index:2;gap:4px}.dyn-node{display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:4px;border-radius:var(--r-ctrl);transition:all var(--dur-slow) var(--ease);min-width:64px;max-width:140px;flex:1}.dyn-node:hover{background:color-mix(in srgb,var(--theme) 5%,transparent);transform:translateY(-2px)}.dyn-node.dyn-selected{background:color-mix(in srgb,var(--theme) 8%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 20%,transparent)}.dyn-circle{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;background:#f0f2f5;border:2.5px solid var(--border-strong);transition:all .35s var(--ease);flex-shrink:0}.dyn-icon{font-size:var(--fs-18);line-height:1;z-index:2;position:relative}.dyn-st-done .dyn-circle{background:linear-gradient(135deg,#f0fdf4,var(--ok-bg));border-color:#86efac;box-shadow:0 2px 8px #16a34a2e}.dyn-st-current .dyn-circle{background:linear-gradient(135deg,#00bfa614,#00bfa629);border-color:var(--theme);box-shadow:0 4px 16px color-mix(in srgb,var(--theme) 25%,transparent)}.dyn-st-rejected .dyn-circle{background:linear-gradient(135deg,var(--danger-bg),var(--danger-bg));border-color:var(--danger-ink);box-shadow:0 2px 8px #e14d592e}.dyn-st-pending .dyn-circle{background:#f7f8fa;border-color:#e3e6eb}.dyn-ring{position:absolute;inset:-5px;border-radius:50%;border:2px solid color-mix(in srgb,var(--theme) 35%,transparent);animation:ringExpand 2s var(--ease) infinite}@keyframes ringExpand{0%{transform:scale(.85);opacity:1}to{transform:scale(1.6);opacity:0}}.dyn-done-ring{position:absolute;inset:-3px;border-radius:50%;background:#22c55e1f;animation:doneGlow 2.5s var(--ease) infinite}@keyframes doneGlow{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.08)}}.dyn-st-pending .dyn-circle{animation:pendingBlink 3s var(--ease) infinite}@keyframes pendingBlink{0%,to{border-color:#e3e6eb}50%{border-color:var(--info)}}.dyn-label{text-align:center;margin-top:4px;min-width:0}.dyn-name{font-size:var(--fs-12);font-weight:600;color:#1f2733;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:var(--lh-snug)}.dyn-name em{font-style:normal;font-weight:400;font-size:var(--fs-12);color:var(--text-4);margin-left:2px;display:block}.dyn-sub{font-size:var(--fs-12);color:var(--text-4);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.dyn-st-done .dyn-name{color:#166534}.dyn-st-current .dyn-name{color:var(--theme-strong)}.dyn-st-rejected .dyn-name{color:#dc2626}.dyn-detail-panel{margin-top:12px;border-radius:var(--r-ctrl);background:#fafbfc;border:1px solid #e8eaef;overflow:hidden;max-height:0;transition:max-height .35s var(--ease),padding .35s var(--ease);padding:0 16px}.dyn-detail-panel.show{max-height:360px;padding:12px 16px}.dyn-detail-inner{overflow-y:auto;max-height:332px}.dd-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #e8eaef}.dd-head .dd-icon{font-size:var(--fs-22)}.dd-head b{font-size:var(--fs-14);color:#1f2733}.dd-head em{font-style:normal;font-size:var(--fs-12);color:var(--text-4);background:#f0f2f5;padding:1px 8px;border-radius:var(--r-sm);margin-left:4px}.dd-row{display:flex;align-items:baseline;gap:12px;padding:4px 0;font-size:var(--fs-13)}.dd-row label{color:var(--text-4);min-width:60px;font-size:var(--fs-12)}.dd-row span{color:#1f2733;font-weight:500}.dd-st{padding:1px 8px;border-radius:var(--r-sm);font-size:var(--fs-12);font-weight:600}.dd-st.done{background:#f0fdf4;color:#166534}.dd-st.rejected{background:var(--danger-bg);color:#dc2626}.dd-st.pending{background:#f0f2f5;color:var(--text-3)}.dd-approvers{display:flex;flex-direction:column;gap:8px;margin-top:8px}.dd-ap-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-sm);background:var(--surface);border:1px solid #e8eaef;transition:all var(--dur-slow)}.dd-ap-pass{border-left:3px solid #52c41a}.dd-ap-rej{border-left:3px solid var(--danger)}.dd-ap-pend{border-left:3px solid var(--theme)}.dd-avatar{width:32px;height:32px;border-radius:50%;background:var(--theme-strong);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-13);font-weight:600;flex-shrink:0}.dd-ap-body{flex:1;min-width:0}.dd-ap-name{font-size:var(--fs-13);font-weight:600;color:#1f2733}.dd-ap-st{font-size:var(--fs-12);color:var(--text-4);margin-top:1px}.dd-ap-cmt{font-size:var(--fs-12);color:var(--text-3);font-style:italic;margin-top:4px;padding-top:4px;border-top:1px dashed var(--border-light)}.dd-cc-row{flex-wrap:wrap}.dd-cc-tag{font-size:var(--fs-12);color:var(--text-3);background:#f5f6f8;border:1px solid #e3e6eb;padding:2px 8px;border-radius:var(--r-sm);margin:2px 4px 2px 0;display:inline-block}.fe-detail-foot{padding:12px 24px;border-top:1px solid var(--border-light);display:flex;gap:8px;align-items:center;background:var(--surface)}.fe-foot-input-wrap{flex:1}.fe-foot-input{width:100%;height:36px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13);outline:none}.fe-foot-input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}.fe-foot-btns{display:flex;gap:8px}.fe-btn{padding:8px 20px;font-size:var(--fs-14);border:none;border-radius:var(--r-ctrl);cursor:pointer;font-weight:500}.fe-btn:disabled{opacity:.6;cursor:default}.fe-btn-approve{background:var(--ok);color:#fff}.fe-btn-approve:hover{background:#49b018}.fe-btn-reject{background:var(--surface);color:var(--danger);border:1px solid var(--danger)}.fe-btn-reject:hover{background:var(--danger-bg)}.fe-btn-revoke{background:var(--surface);color:#fa8c16;border:1px solid #fa8c16}.fe-btn-revoke:hover{background:var(--warn-bg)}.info-bar{display:flex;gap:16px;margin-bottom:16px}.info-card{background:var(--surface);border-radius:var(--r-sm);box-shadow:0 1px 4px #0000000f;overflow:hidden}.user-info-card{flex:0 0 340px;padding:20px;display:flex;flex-direction:column;gap:12px;border-left:4px solid var(--theme)}.user-avatar{position:relative;overflow:hidden;cursor:pointer;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--theme-strong),#0ea5a4);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-22);font-weight:600;flex:0 0 auto}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.user-avatar .avatar-cam{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:#00000073;font-size:var(--fs-18);color:#fff}.user-avatar:hover .avatar-cam{display:flex}.nav-avatar{width:32px;height:32px;font-size:var(--fs-14);border:2px solid rgba(255,255,255,.85);box-shadow:0 1px 3px #00000026}.nav-avatar .avatar-cam{font-size:var(--fs-13)}.user-menu{width:230px;background:#fff;border-radius:var(--r-sm);box-shadow:0 8px 30px #00000029;padding:8px;color:var(--text-1);font-size:var(--fs-14);z-index:4000}.user-menu .um-head{display:flex;align-items:center;gap:8px;padding:8px 4px}.user-menu .um-avatar{width:44px;height:44px;font-size:var(--fs-18);flex:0 0 auto;border:none;box-shadow:none;cursor:default}.user-menu .um-avatar .avatar-cam{display:none}.user-menu .um-meta{min-width:0}.user-menu .um-name{font-weight:600;font-size:var(--fs-14);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu .um-role{font-size:var(--fs-12);color:var(--text-3);margin-top:2px}.user-menu .um-divider{height:1px;background:var(--border-light);margin:4px 0}.user-menu .um-item{padding:8px;border-radius:var(--r-ctrl);cursor:pointer;display:flex;align-items:center;gap:8px}.user-menu .um-item:hover{background:var(--surface-2)}.user-menu .um-logout{color:#d4380d}.user-menu .um-logout:hover{background:var(--danger-bg)}.user-menu .um-rh-item .um-caret{margin-left:auto;color:var(--text-3);transition:transform var(--dur-base);font-size:var(--fs-12)}.user-menu .um-rh-item.open .um-caret{transform:rotate(90deg)}.user-menu .um-rh-sub{padding:2px 0 4px}.user-menu .um-rh-sub[hidden]{display:none}.user-menu .um-rh-opt{padding:8px 8px 8px 32px;border-radius:var(--r-ctrl);cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--text-1)}.user-menu .um-rh-opt:hover{background:var(--surface-2)}.user-menu .um-rh-opt .um-check{width:14px;text-align:center;color:var(--theme);font-weight:700}.user-menu .um-rh-opt.um-rh-active{color:var(--theme);font-weight:600}.profile-modal{width:360px}.profile-tip{margin-top:12px;font-size:var(--fs-12);color:var(--text-3);text-align:center}.profile-tip-warn{margin-top:12px;font-size:var(--fs-12);color:#d4820a;text-align:center;background:var(--warn-bg);border:1px solid #ffe2b8;border-radius:var(--r-ctrl);padding:8px}.pf-row{display:flex;align-items:center;padding:8px 4px;border-bottom:1px solid var(--bg);font-size:var(--fs-14)}.pf-row label{width:56px;color:var(--text-3);flex:0 0 auto}.pf-input{flex:1;height:32px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-14);outline:none;box-sizing:border-box;transition:border-color var(--dur-base)}.pf-input:focus{border-color:var(--theme)}.pf-readonly{color:var(--text-1)}.pf-text{color:var(--text-1);font-weight:500;word-break:break-all}body{--vs-row-h: 30px;--vs-cell-py: 4px;--vs-cell-px: 10px;--vs-font: 12px;--vs-line: 18px}body.rh-loose{--vs-row-h: 42px;--vs-cell-py: 9px;--vs-cell-px: 14px;--vs-font: 14px;--vs-line: 22px}body.rh-standard{--vs-row-h: 34px;--vs-cell-py: 6px;--vs-cell-px: 12px;--vs-font: 13px;--vs-line: 20px}body.rh-compact{--vs-row-h: 30px;--vs-cell-py: 4px;--vs-cell-px: 10px;--vs-font: 12px;--vs-line: 18px}body.rh-dense{--vs-row-h: 26px;--vs-cell-py: 3px;--vs-cell-px: 9px;--vs-font: 12px;--vs-line: 16px}.vs-table{font-size:var(--vs-font)}.vs-table th,.vs-table tbody tr:not(.vs-pad) td{height:var(--vs-row-h)!important;padding:var(--vs-cell-py) var(--vs-cell-px)!important;line-height:var(--vs-line)!important;white-space:nowrap}.vs-table .att-chip{height:22px;max-height:22px;line-height:18px;overflow:hidden;vertical-align:middle}body.rh-dense .vs-table .att-chip{height:18px;max-height:18px;line-height:14px}.module-table{font-size:var(--vs-font)}.module-table th,.module-table td{padding:var(--vs-cell-py) var(--vs-cell-px)!important;line-height:var(--vs-line)!important}body.rh-compact .pf-row,body.rh-compact .profile-row,body.rh-dense .pf-row,body.rh-dense .profile-row{padding-top:4px;padding-bottom:4px}body.rh-compact .nav-item,body.rh-dense .nav-item{padding-top:8px;padding-bottom:8px}body.rh-compact .tbl th,body.rh-compact .tbl td,body.rh-dense .tbl th,body.rh-dense .tbl td{padding-top:4px;padding-bottom:4px}.perm-modal{width:560px;max-width:94vw}.perm-modal .mp-row{margin-bottom:12px}.perm-modal .mp-input{background:var(--surface)!important;border:1px solid var(--border-strong)!important;color:#1f2733!important;padding:0 8px!important;border-radius:var(--r-ctrl)!important;height:34px;font-size:var(--fs-13);outline:none;appearance:none;-webkit-appearance:none}.perm-modal .mp-input:focus{border-color:var(--theme)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 15%,transparent)!important}.perm-role{font-size:var(--fs-14);color:var(--text-1);margin-bottom:12px}.perm-role b{color:var(--theme)}.perm-list{display:flex;flex-wrap:wrap;gap:8px}.perm-chip{display:inline-block;padding:4px 12px;background:#eef3ff;color:var(--theme);border-radius:var(--r-ctrl);font-size:var(--fs-13)}.perm-loading,.perm-empty{padding:16px 4px;font-size:var(--fs-14);color:var(--text-3)}.cp-modal{width:380px}.cp-row{margin:12px 0}.cp-row label{display:block;font-size:var(--fs-13);color:var(--text-3);margin-bottom:4px}.cp-input{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-14);outline:none;transition:border-color var(--dur-base)}.cp-input:focus{border-color:var(--theme)}.cp-err{color:#d4380d;font-size:var(--fs-13);min-height:18px;margin-top:2px}.rp-modal{width:420px}.rp-row{margin:12px 0}.rp-row label{display:block;font-size:var(--fs-13);color:var(--text-3);margin-bottom:4px}.rp-input{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-14);outline:none;transition:border-color var(--dur-base)}.rp-input:focus{border-color:var(--theme)}.rp-actions{margin:8px 0 2px}.rp-err{color:#d4380d;font-size:var(--fs-13);min-height:18px;margin-top:2px}.rp-result{margin-top:12px;padding:12px;background:#f4f8ff;border:1px solid #d3e8f1;border-radius:var(--r-sm)}.rp-result-label{font-size:var(--fs-13);color:var(--text-3);margin-bottom:8px}.rp-result-box{display:flex;align-items:center;gap:8px}.rp-result-box code{flex:1;font-size:var(--fs-16);font-weight:600;letter-spacing:1px;color:var(--text-1);background:#fff;border:1px solid #d3e8f1;border-radius:var(--r-ctrl);padding:8px;word-break:break-all}.avatar-modal{width:360px;max-width:92vw}.avatar-preview{width:120px;height:120px;margin:8px auto 4px;border-radius:50%;background:linear-gradient(135deg,var(--theme-strong),#0ea5a4);color:#fff;display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:600;position:relative;overflow:hidden}.avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-preview .avatar-cam{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:#00000073;font-size:var(--fs-28);color:#fff}.avatar-preview:hover .avatar-cam{display:flex}.avatar-hint{text-align:center;font-size:var(--fs-12);color:var(--text-4);margin:4px 0 12px}.avatar-actions{display:flex;gap:8px;justify-content:center;margin-bottom:4px}.avatar-err{min-height:16px;text-align:center;font-size:var(--fs-12);color:var(--danger);margin-top:4px}.user-meta{display:flex;flex-direction:column;gap:4px}.user-name{font-size:var(--fs-18);font-weight:600;color:#1f2733}.utag{font-size:var(--fs-12);padding:2px 8px;border-radius:var(--r-ctrl);background:var(--surface-2);color:var(--text-2)}.user-extra{display:flex;gap:16px;padding-top:8px;border-top:1px solid var(--border-light)}.ue-item{display:flex;flex-direction:column;gap:2px}.ue-label{font-size:var(--fs-12);color:var(--text-4)}.ue-val{font-size:var(--fs-13);color:#1f2733;font-weight:500}.notify-card{flex:1;display:flex;flex-direction:column;max-height:280px}.notify-head{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border-light)}.notify-title{font-size:var(--fs-14);font-weight:600;color:#1f2733}.notify-badge{background:var(--danger);color:#fff;font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-ctrl);min-width:18px;text-align:center}.notify-body{flex:1;overflow-y:auto;padding:4px 0}.notify-loading,.notify-empty,.notify-error{text-align:center;color:var(--text-4);font-size:var(--fs-13);padding:32px 0}.notify-item{display:flex;align-items:flex-start;gap:8px;padding:8px 20px;cursor:pointer;border-bottom:1px solid #f5f6f8;transition:background var(--dur-fast);position:relative}.notify-item:hover{background:#f7f8fa}.notify-icon{width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:var(--fs-14);flex-shrink:0}.nt-announce .notify-icon{background:#e3f3f5}.nt-approval .notify-icon{background:#f6ffed}.nt-task .notify-icon{background:var(--warn-bg)}.notify-content{flex:1;min-width:0}.notify-item-title{font-size:var(--fs-13);font-weight:500;color:#1f2733;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notify-item-desc{font-size:var(--fs-12);color:var(--text-4);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notify-item-time{font-size:var(--fs-12);color:#b0b6bf;margin-top:2px}.notify-priority{position:absolute;top:10px;right:18px;font-size:var(--fs-12);padding:1px 4px;border-radius:var(--r-4);background:var(--danger);color:#fff}@media(max-width:900px){.info-bar{flex-direction:column}.user-info-card{flex:1}.notify-card{max-height:400px}}.org-chart-wrap{overflow-x:auto;overflow-y:visible;padding:16px 0}.org-chart-wrap .oc-container{position:relative;min-width:940px;margin:0 auto;overflow:visible}.org-chart-wrap .oc-svg{position:absolute;top:0;left:0;pointer-events:none;z-index:0}.oc-line{fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;opacity:.85}.oc-cards-layer{position:relative;z-index:1;padding-bottom:40px;overflow:visible}.oc-card{position:absolute;width:230px;background:var(--surface);border-radius:var(--r-sm);box-shadow:0 1px 4px #0000000f,0 0 0 1px #0000000d;padding:12px 12px 12px 48px;cursor:pointer;transition:all var(--dur-slow) cubic-bezier(.4,0,.2,1);border:1.5px solid transparent;overflow:visible}.oc-card:hover{box-shadow:0 4px 12px #0000001a,0 0 0 1px color-mix(in srgb,var(--theme) 15%,transparent);transform:translateY(-2px);border-color:var(--theme)}.oc-card.oc-disabled{opacity:.45;filter:grayscale(30%)}.oc-avatar{position:absolute;left:10px;top:14px;width:30px;height:30px;border-radius:var(--r-sm);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-13);font-weight:700;flex-shrink:0}.oc-body{display:flex;flex-direction:column;gap:4px;min-height:56px}.oc-name{font-size:var(--fs-14);font-weight:600;color:#1f2733;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:136px}.oc-leader{font-size:var(--fs-12);color:var(--text-4)}.oc-bottom{display:flex;align-items:center;gap:8px;margin-top:2px}.oc-count{font-size:var(--fs-12);color:var(--theme);font-weight:600;background:#eef3ff;padding:1px 8px;border-radius:var(--r-pill)}.oc-count.alt{color:var(--text-3);background:var(--surface-2);font-weight:500}.oc-status{font-size:var(--fs-12);padding:1px 4px;border-radius:var(--r-pill)}.oc-status.on{background:#eafaec;color:#52c41a}.oc-status.off{background:var(--danger-bg);color:var(--danger)}.oc-card.oc-root{border-color:color-mix(in srgb,var(--theme) 55%,var(--border));box-shadow:0 3px 12px color-mix(in srgb,var(--theme) 16%,transparent)}.oc-card.oc-root .oc-name{font-size:var(--fs-14);letter-spacing:.3px}.oc-card.oc-root .oc-avatar{font-size:var(--fs-16)}.oc-expand{position:absolute;right:-9px;top:-9px;width:22px;height:22px;border-radius:var(--r-sm);border:2px solid #fff;background:var(--theme-strong);font-size:var(--fs-14);line-height:18px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;z-index:3;box-shadow:0 1px 4px color-mix(in srgb,var(--theme) 25%,transparent);transition:all var(--dur-base)}.oc-expand:hover{background:var(--ok-ink)}.oc-more{position:absolute;right:6px;top:8px;width:24px;height:24px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-3);font-size:var(--fs-14);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3}.oc-more:hover{background:var(--surface-2);color:var(--text-1)}.oc-menu{position:fixed;z-index:var(--zi-dropdown);min-width:148px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:0 8px 24px #0f122224}.oc-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;background:transparent;border-radius:var(--r-6);font-size:var(--fs-13);color:var(--text-1);cursor:pointer;text-align:left;line-height:var(--lh-snug)}.oc-menu-item:hover{background:var(--surface-2)}.oc-menu-item.danger{color:var(--danger)}.oc-menu-item.danger:hover{background:var(--danger-bg)}.oc-menu-ico{width:16px;text-align:center;font-size:var(--fs-13);color:var(--text-3);flex:none}.oc-menu-item.danger .oc-menu-ico{color:var(--danger)}html.dark .oc-menu-item.danger:hover{background:#d645452e}.oc-ctl{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 10px}.oc-ctl-tip{font-size:var(--fs-12);color:var(--text-3)}.oc-ctl-btn{height:26px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);line-height:1;cursor:pointer;white-space:nowrap}.oc-ctl-btn:hover{border-color:var(--theme);color:var(--theme)}@media(max-width:900px){.org-chart-wrap .oc-container{min-width:auto;width:auto!important;height:auto!important}.oc-cards-layer{position:static;display:flex;flex-direction:column;gap:8px;padding:0 8px;width:auto!important}.oc-card{position:relative!important;left:auto!important;top:auto!important;width:100%!important;margin-bottom:4px}.oc-svg{display:none}.oc-card[data-depth="1"]{margin-left:28px!important;width:calc(100% - 26px)!important}.oc-card[data-depth="2"]{margin-left:52px!important;width:calc(100% - 52px)!important}.oc-card[data-depth="3"]{margin-left:78px!important;width:calc(100% - 78px)!important}.oc-card[data-depth="4"]{margin-left:104px!important;width:calc(100% - 104px)!important}.oc-card[data-depth="5"]{margin-left:130px!important;width:calc(100% - 130px)!important}.oc-card[data-depth="6"]{margin-left:156px!important;width:calc(100% - 156px)!important}.oc-card[data-depth]:not([data-depth="0"]):before{content:"";position:absolute;left:-15px;top:-10px;bottom:-3px;width:2px;background:var(--border);border-radius:var(--r-4)}.oc-card[data-depth]:not([data-depth="0"]).oc-last:before{bottom:50%}.oc-card[data-depth]:not([data-depth="0"]):after{content:"";position:absolute;left:-15px;top:50%;width:15px;height:2px;background:var(--border)}}.pms-tabs{display:flex;gap:0;margin-bottom:20px;align-items:center;background:var(--bg);border-radius:var(--r-sm);padding:4px}.pms-tab{padding:8px 20px;font-size:var(--fs-13);border:none;background:transparent;border-radius:var(--r-sm);cursor:pointer;color:var(--text-3);font-weight:500;transition:all var(--dur-slow)}.pms-tab:hover{color:#1f2733;background:#ffffff80}.pms-tab.on{background:#fff;color:#1f2733;font-weight:600;box-shadow:0 1px 3px #00000014}.wc-note{background:#eef6ff;color:var(--text-2);border:1px solid var(--theme-weak);border-radius:var(--r-sm);padding:8px 12px;font-size:var(--fs-12);line-height:var(--lh-relaxed);margin-bottom:12px}.wc-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.wc-batch{font-size:var(--fs-13);color:var(--text-3)}.wc-batch b{color:#1f2733}.wc-result{margin-bottom:12px}.wc-cfg{max-width:520px;display:grid;gap:12px}.wc-field{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:8px}.wc-field>label{font-size:var(--fs-13);color:var(--text-2)}.wc-input{padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13);outline:none;box-sizing:border-box}.wc-input:focus{border-color:var(--theme)}.wc-subtitle{font-size:var(--fs-13);font-weight:600;color:#1f2733;margin:4px 0 2px}.wc-test-result{font-size:var(--fs-12);margin-left:12px}.wc-test-result.ok{color:#2ba471}.wc-test-result.err{color:#d83931}.wc-ops{white-space:nowrap}.wc-ops .btn-primary,.wc-ops .btn-secondary,.wc-ops .btn-danger{margin-right:4px}.up-layout{display:flex;gap:24px;min-height:400px}.up-dept-tree{width:220px;flex-shrink:0;background:#fff;border-radius:var(--r-sm);padding:12px;box-shadow:0 1px 3px #0000000d}.up-dept-head{font-size:var(--fs-12);font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.5px;padding:0 0 8px 8px}.up-dept-list{display:flex;flex-direction:column;gap:1px;max-height:500px;overflow-y:auto}.up-dept-item{padding:8px;font-size:var(--fs-13);line-height:var(--lh-base);color:var(--text-2);cursor:pointer;border-radius:var(--r-ctrl);white-space:normal;word-break:break-word;overflow:visible;transition:all var(--dur-base)}.up-dept-item:hover{background:#f0f5ff;color:var(--theme)}.up-dept-item.on{background:var(--theme-strong);color:#fff;font-weight:500;box-shadow:0 2px 6px color-mix(in srgb,var(--theme) 25%,transparent)}.up-member-area{flex:1;min-width:0;background:#fff;border-radius:var(--r-sm);padding:0 16px 16px;box-shadow:0 1px 3px #0000000d}.up-member-count{font-size:var(--fs-13);color:var(--text-4);margin-top:16px;margin-bottom:12px;font-weight:500}.up-member-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}.up-main-table thead th{position:sticky;top:var(--head-h, 58px);z-index:15;background:#fbfcfe;box-shadow:0 1px 0 var(--border-light)}.up-unassigned .up-member-table th{position:static}.up-member-table th{padding:8px 12px;text-align:left;font-size:var(--fs-12);font-weight:600;color:var(--text-4);border-bottom:1px solid var(--border-light);white-space:nowrap}.up-member-table td{padding:8px 12px;vertical-align:middle;border-bottom:1px solid #f7f8fa}.up-member-table tbody tr{transition:background var(--dur-base)}.up-member-table tbody tr:hover{background:#f7f8fc}.up-mavatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-14);font-weight:700;color:#fff;background:linear-gradient(135deg,var(--theme-strong),#0ea5a4)}.up-mname{font-size:var(--fs-14);font-weight:600;color:#1f2733;line-height:var(--lh-tight)}.up-role-sel{height:30px;padding:0 8px;border:1px solid var(--surface-3);border-radius:var(--r-ctrl);font-size:var(--fs-12);min-width:100px;background:#fff;transition:border-color var(--dur-slow)}.up-role-sel:focus{border-color:var(--theme);outline:none}.pms-role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.pms-role-card{background:var(--surface);border-radius:var(--r-sm);padding:24px;box-shadow:0 1px 3px #0000000d;position:relative;transition:box-shadow var(--dur-slow),transform var(--dur-base);border:1px solid transparent}.pms-role-card:hover{box-shadow:0 8px 24px #00000014;border-color:var(--surface-3);transform:translateY(-1px)}.pms-role-card.pms-sys{border-left:4px solid var(--theme)}.pms-role-card .pms-sys-tag{position:absolute;top:16px;right:16px;font-size:var(--fs-12);padding:4px 12px;border-radius:var(--r-sm);background:#eef3ff;color:var(--theme);font-weight:600}.pms-role-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.pms-role-avatar{width:44px;height:44px;border-radius:var(--r-ctrl);background:linear-gradient(135deg,var(--theme-strong),#0ea5a4);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-18);font-weight:700;flex-shrink:0}.pms-role-name{font-size:var(--fs-16);font-weight:600;color:#1f2733}.pms-role-key{font-size:var(--fs-12);color:var(--text-4);margin-top:2px;font-family:var(--font-mono)}.pms-role-meta{display:flex;gap:16px;font-size:var(--fs-13);color:var(--text-3);margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-light)}.pms-role-meta span{display:flex;align-items:center;gap:4px}.pms-role-acts{display:flex;gap:8px}.pms-matrix-wrap{overflow-x:auto;background:#fff;border-radius:var(--r-sm);box-shadow:0 1px 3px #0000000d}.pms-matrix{width:auto;min-width:100%;border-collapse:collapse;font-size:var(--fs-12)}.pms-matrix th,.pms-matrix td{border-right:1px solid var(--border-light);border-bottom:1px solid var(--border-light);padding:8px;text-align:center}.pms-matrix th:last-child,.pms-matrix td:last-child{border-right:none}.pms-matrix thead th{background:#f7f8fa;position:sticky;top:0;z-index:2;white-space:nowrap}.pms-matrix thead th:first-child{position:sticky;left:0;z-index:3;background:#f7f8fa;text-align:left;width:140px}.pms-matrix tbody td:first-child{position:sticky;left:0;background:#fff;z-index:1;text-align:left;font-weight:500}.pms-matrix tbody tr:hover td,.pms-matrix tbody tr:hover td:first-child{background:#f7f8fc}.pms-mt-label{text-align:left;width:140px;white-space:nowrap}.pms-mt-role{min-width:80px}.pms-mt-avatar{width:28px;height:28px;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--theme-strong),#0ea5a4);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:600}.pms-mt-name{font-size:var(--fs-12);color:var(--text-2);margin-top:4px;font-weight:500}.pms-mg-row td{background:#f0f5ff;font-weight:600;color:var(--theme);padding:8px 12px;text-align:left;font-size:var(--fs-13);letter-spacing:.3px}.pms-mg-row td:first-child{background:#f0f5ff}.pms-mp-label{text-align:left;color:#1f2733;font-weight:500;white-space:nowrap}.pms-mp-cell{cursor:pointer;font-size:var(--fs-14);font-weight:600;transition:all var(--dur-base);user-select:none;min-width:36px}.pms-mp-cell.on{background:#f0fdf4;color:#16a34a}.pms-mp-cell:not(.on){color:var(--border-strong)}.pms-mp-cell:not(.on):hover{color:var(--text-3);background:#f7f8fa}.pms-mp-cell.on:hover{background:var(--ok-bg)}.pms-editor-mask{z-index:var(--zi-modal);display:flex;align-items:center;justify-content:center}.pms-editor{width:720px;max-width:95vw;max-height:85vh;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 16px 64px #00000024;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.pms-ed-head{padding:20px 24px;font-size:var(--fs-16);font-weight:600;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;background:#fafbfc}.pms-ed-close{font-size:var(--fs-22);color:var(--text-4);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-ctrl);transition:all var(--dur-base)}.pms-ed-close:hover{background:var(--border-light);color:#1f2733}.pms-ed-body{flex:1;overflow-y:auto;padding:16px 24px}.pms-ed-group{margin-bottom:12px;border:1px solid var(--border-light);border-radius:var(--r-sm);overflow:hidden;transition:border-color var(--dur-base)}.pms-ed-group:hover{border-color:var(--border-strong)}.pms-ed-ghead{display:flex;align-items:center;padding:8px 12px;background:#fafbfc;gap:8px;border-bottom:1px solid var(--border-light)}.pms-ed-glabel{font-size:var(--fs-14);font-weight:600;color:#1f2733;cursor:pointer;flex:1;display:flex;align-items:center;gap:8px}.pms-ed-glabel input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--theme)}.pms-ed-ga{font-size:var(--fs-12);padding:4px 12px;border-radius:var(--r-6);background:#fff;border:1px solid var(--surface-3);color:var(--text-3);cursor:pointer;transition:all var(--dur-base)}.pms-ed-ga:hover{border-color:var(--theme);color:var(--theme)}.pms-ed-gitems{display:flex;flex-wrap:wrap;gap:4px;padding:8px 12px}.pms-ed-item{font-size:var(--fs-13);color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--r-ctrl);border:1px solid #eef0f4;background:#fff;transition:all var(--dur-base)}.pms-ed-item:hover{background:#f0f5ff;border-color:var(--theme-weak)}.pms-ed-item input[type=checkbox]{cursor:pointer;accent-color:var(--theme);width:14px;height:14px}.pms-ed-foot{padding:12px 24px;border-top:1px solid var(--border-light);display:flex;align-items:center;gap:8px;background:#fafbfc}.pms-ed-summary{font-size:var(--fs-13);color:var(--text-4);flex:1}.pms-ed-tip{padding:12px 24px;font-size:var(--fs-13);color:var(--text-4);text-align:center;background:var(--warn-bg)}.pms-ed-legend{font-size:var(--fs-12);color:var(--text-4);padding:8px 12px;margin-bottom:12px;background:#fafbfc;border:1px solid var(--border-light);border-radius:var(--r-sm);line-height:var(--lh-loose)}.pms-ed-legend .pms-src,.pms-ed-legend .pms-lvl{margin:0 2px}.pms-src{display:inline-flex;align-items:center;padding:1px 8px;font-size:var(--fs-12);line-height:16px;border-radius:var(--r-ctrl);font-weight:500;vertical-align:middle;white-space:nowrap}.pms-src.pms-src-default{background:#eef3ff;color:var(--info);border:1px solid var(--theme-weak)}.pms-src.pms-src-override{background:var(--warn-bg);color:#c97a16;border:1px solid #fbe0bd}.pms-lvl{display:inline-flex;align-items:center;padding:1px 8px;font-size:var(--fs-12);line-height:16px;border-radius:var(--r-ctrl);font-weight:500;vertical-align:middle;white-space:nowrap;margin-left:4px}.pms-lvl.pms-lvl-view{background:var(--ok-bg);color:#2f9e63;border:1px solid #c8ecd6}.pms-lvl.pms-lvl-edit{background:#f1ecfb;color:#7a4ec2;border:1px solid #e2d4f7}.pms-lvl.pms-lvl-manage{background:#eaf2fb;color:var(--ok-ink);border:1px solid var(--theme-weak)}.pms-lvl.pms-lvl-other{background:var(--border-light);color:var(--text-4);border:1px solid var(--surface-3)}.pms-ed-item{flex-wrap:wrap}.pms-ed-item .pms-src,.pms-ed-item .pms-lvl{margin-left:4px}.pms-ed-item i{font-style:normal;font-size:var(--fs-12);color:#aeb4bf;margin-left:2px}.dept-members-layout{display:flex;gap:16px}.dept-section{flex:1}.dept-section .fe-member-list{max-height:280px}.up-layout{display:flex;gap:20px}.up-dept-tree{width:200px;flex-shrink:0;border-right:1px solid var(--border-light);padding-right:8px}.up-dept-head{font-size:var(--fs-13);font-weight:600;color:#1f2733;padding:0 0 8px}.up-dept-manage{display:block;width:100%;margin:2px 0 8px;padding:4px 8px;font-size:var(--fs-12);color:var(--theme);background:#f0f5ff;border:none;border-radius:var(--r-ctrl);cursor:pointer;text-align:left}.up-dept-manage:hover{background:#e4f1f3}.dept-hint{padding:8px 12px;margin-bottom:8px;font-size:var(--fs-12);color:var(--warn-ink);background:var(--warn-bg);border-radius:var(--r-ctrl);line-height:var(--lh-base)}.up-dept-list{display:flex;flex-direction:column;gap:2px;max-height:500px;overflow-y:auto}.up-dept-item{padding:4px 8px;font-size:var(--fs-13);line-height:var(--lh-base);color:var(--text-2);cursor:pointer;border-radius:var(--r-ctrl);white-space:normal;word-break:break-word;overflow:visible}.up-dept-item:hover{background:#f0f5ff}.up-dept-item.on{background:var(--theme-strong);color:#fff;font-weight:500}.up-member-area{flex:1;min-width:0}.up-member-count{font-size:var(--fs-13);color:var(--text-4);margin-bottom:8px}.up-member-table td{vertical-align:middle}.up-member-info{display:flex;align-items:center;gap:8px}.up-mname{font-size:var(--fs-14);font-weight:500;color:#1f2733}.up-mphone{font-size:var(--fs-12);color:var(--text-4)}.up-role-sel{height:28px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-12);min-width:100px}.up-unassigned{margin-top:16px;padding-top:16px;border-top:1px dashed #e3e6eb}.up-unassigned .up-member-count{margin-bottom:4px}.up-dept-assign{height:28px;padding:0 4px;border:1px solid var(--border-strong);border-radius:var(--r-4);font-size:var(--fs-12)}.up-member-table tbody tr{transition:opacity var(--dur-base),transform var(--dur-base)}.up-member-table tbody tr.up-dragging{opacity:.45;transform:scale(.98);background:#f0f5ff}.up-member-table tbody tr.up-drop-target{background:#e6f3f4;box-shadow:inset 0 2px 0 var(--theme)}.up-dept-item{transition:all var(--dur-base)}.up-dept-item.drag-over{background:#e6f3f4!important;color:var(--theme)!important;box-shadow:inset 2px 0 0 var(--theme);font-weight:600}.up-dept-drag-hint{font-size:var(--fs-12);color:var(--text-4);padding:8px 12px;font-style:italic;border:1px dashed var(--border-strong);border-radius:var(--r-ctrl);margin-top:8px;text-align:center}.oc-member-area{margin-top:4px;padding-top:4px;border-top:1px solid #eef0f4;display:flex;flex-wrap:wrap;gap:4px;max-height:80px;overflow-y:auto}.oc-member-chip{display:inline-flex;align-items:center;gap:2px;padding:1px 4px;background:#f0f5ff;color:var(--theme);border-radius:var(--r-pill);font-size:var(--fs-12);cursor:pointer;transition:all var(--dur-fast);border:1px solid transparent}.oc-chip-drag{cursor:grab}.oc-chip-drag:active{cursor:grabbing}.oc-chip-dragging{opacity:.4;border-style:dashed;border-color:var(--theme)}.oc-card.oc-drop-target{outline:2px dashed var(--theme);outline-offset:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--theme) 16%,transparent)}.oc-card.oc-drop-target .oc-member-area{background:color-mix(in srgb,var(--theme) 10%,transparent);border-radius:var(--r-sm)}.oc-member-chip:hover{background:var(--theme-strong);color:#fff;border-color:var(--theme)}.oc-member-chip .oc-chip-avatar{width:16px;height:16px;border-radius:var(--r-4);background:var(--theme-strong);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-11);font-weight:600}.oc-member-chip:hover .oc-chip-avatar{background:#fff;color:var(--theme)}.oc-member-chip .oc-chip-remove{font-size:var(--fs-12);font-weight:700;opacity:0;transition:opacity var(--dur-fast)}.oc-member-chip:hover .oc-chip-remove{opacity:1}.oc-card.oc-drop-target{border-color:var(--theme)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--theme) 20%,transparent)!important;transform:translateY(-2px)}.oc-card .oc-more-members{font-size:var(--fs-12);color:var(--text-4);cursor:pointer;padding:2px 0}.oc-card .oc-more-members:hover{color:var(--theme)}.oc-cards-layer .oc-card{transition:left .3s var(--ease),top .3s var(--ease),opacity var(--dur-slow),transform var(--dur-slow),box-shadow var(--dur-slow)}.oc-card.oc-expanding{opacity:0;transform:scale(.9)}.oc-card.oc-collapsing{opacity:.6}.oc-drag-handle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:var(--r-sm);background:#fff;border:1.5px solid var(--border-strong);color:var(--text-4);display:none;align-items:center;justify-content:center;font-size:var(--fs-13);line-height:1;cursor:grab;z-index:4;box-shadow:0 1px 3px #0000001a;touch-action:none;user-select:none}.oc-card:hover .oc-drag-handle{display:flex}.oc-drag-handle:active{cursor:grabbing;background:var(--theme-strong);color:#fff;border-color:var(--theme)}.oc-card.oc-dragging-src{opacity:.4;border:1.5px dashed var(--theme)!important;background:var(--theme-weak);box-shadow:none!important}.oc-card.oc-dragging-src *{visibility:hidden}.oc-drag-ghost{position:fixed!important;z-index:var(--zi-top);pointer-events:none;margin:0!important;left:0;top:0;opacity:.96;box-shadow:0 6px 16px color-mix(in srgb,var(--theme) 25%,transparent),0 0 0 1.5px var(--theme)!important;transition:none!important}@media(hover:none){.oc-drag-handle{display:flex}}.modal-mask{transition:opacity var(--duration-normal) var(--ease-out-quart)}.modal-box{animation:modalSlideIn var(--duration-slow) var(--ease-out-quart);background:#fff;border:1px solid var(--border-light);box-shadow:var(--shadow-lg)}@keyframes modalSlideIn{0%{opacity:.6;transform:translateY(16px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}.mp-mask{animation:maskFadeIn var(--duration-slow) var(--ease-out-quart)}@keyframes maskFadeIn{0%{opacity:0}to{opacity:1}}.up-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:8px 12px;background:#f9fafb;border-radius:var(--r-sm);border:1px solid #eef0f4;position:sticky;top:0;z-index:20}.up-toolbar-count{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-13);font-weight:600;color:#1f2733;background:#fff;border:1px solid #e3e6eb;border-radius:var(--r-sm);padding:8px 12px;white-space:nowrap}.up-toolbar-count b{color:var(--theme);font-variant-numeric:tabular-nums}.up-toolbar .up-search-box{flex:1;min-width:180px;position:relative}.up-toolbar .up-search-box input{width:100%;height:34px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);padding:0 32px 0 8px;font-size:var(--fs-13);outline:none;background:var(--surface);transition:border-color var(--dur-base)}.up-toolbar .up-search-box input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}.up-toolbar .up-search-box .up-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--text-4);font-size:var(--fs-16);line-height:1}.up-toolbar .up-search-box .up-search-clear:hover{color:var(--theme)}.up-filter-sel{height:34px;border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:0 8px;font-size:var(--fs-13);background:#fff;color:#1f2733;min-width:100px;cursor:pointer}.up-filter-sel:focus{border-color:var(--theme)}.up-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#f0f5ff;color:var(--theme);border-radius:var(--r-ctrl);font-size:var(--fs-12)}.up-filter-chip .up-chip-x{cursor:pointer;font-weight:700}.up-filter-chip .up-chip-x:hover{color:var(--danger)}.up-view-toggle{display:flex;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);overflow:hidden;height:34px}.up-view-btn{padding:0 12px;border:0;background:var(--surface);color:var(--text-2);font-size:var(--fs-13);cursor:pointer;transition:all var(--dur-fast)}.up-view-btn:hover{background:var(--theme-weak)}.up-view-btn.on{background:var(--theme-strong);color:#fff}.up-batch-bar{display:none;gap:8px;align-items:center;padding:8px 12px;background:#e6f3f4;border-radius:var(--r-sm);margin-bottom:12px;font-size:var(--fs-13);color:#1f2733}.up-batch-bar.show{display:flex}.up-batch-bar .up-batch-count{font-weight:600;color:var(--theme)}.up-batch-bar select{height:30px;border:1px solid var(--info);border-radius:var(--r-ctrl);padding:0 4px;font-size:var(--fs-12);background:var(--surface)}.up-batch-bar button{height:30px;padding:0 12px;border:1px solid var(--info);border-radius:var(--r-6);background:#fff;color:var(--theme);font-size:var(--fs-12);cursor:pointer;transition:all var(--dur-fast)}.up-batch-bar button:hover{background:var(--theme-strong);color:#fff;border-color:var(--theme)}.up-batch-bar button.danger{color:var(--danger);border-color:#ffccc7}.up-batch-bar button.danger:hover{background:var(--danger);color:#fff}.up-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:4px 0}.up-mcard{background:var(--surface);border:1px solid #eef0f4;border-radius:var(--r-sm);padding:16px;cursor:pointer;transition:all var(--dur-base);position:relative}.up-mcard:hover{border-color:var(--theme);box-shadow:0 4px 16px color-mix(in srgb,var(--theme) 8%,transparent);transform:translateY(-1px)}.up-mcard.selected{border-color:var(--theme);background:var(--theme-weak);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 15%,transparent)}.up-mcard .up-mc-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}.up-mcard .up-mc-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--fs-16);font-weight:600;flex-shrink:0;background:var(--theme-strong)}.up-mcard .up-mc-name{font-size:var(--fs-14);font-weight:600;color:#1f2733}.up-mcard .up-mc-phone{font-size:var(--fs-12);color:var(--text-4);margin-top:2px}.up-mcard .up-mc-body{display:flex;flex-wrap:wrap;gap:4px}.up-mcard .up-mc-tag{padding:4px 8px;border-radius:var(--r-sm);font-size:var(--fs-12);font-weight:500}.up-mcard .up-mc-tag.dept{background:var(--theme-weak);color:var(--theme)}.up-mcard .up-mc-tag.role,.up-mcard .up-mc-tag.status-active{background:#f6ffed;color:#52c41a}.up-mcard .up-mc-tag.status-disabled{background:var(--danger-bg);color:var(--danger)}.up-mcard .up-mc-tag.status-pending{background:var(--warn-bg);color:#d48806}.up-acc-appr{margin:0 0 12px;border:1px solid #ffd591;background:#fffbe6;border-radius:var(--r-ctrl);overflow:hidden}.up-acc-appr-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;font-size:var(--fs-14);font-weight:700;color:#874d00;background:#fff7e6;border-bottom:1px solid #ffe7ba}.up-acc-appr-tip{font-size:var(--fs-12);font-weight:400;color:#a66a00}.up-acc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #f3e9d2;flex-wrap:wrap}.up-acc-row:last-child{border-bottom:none}.up-acc-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.up-acc-info b{font-size:var(--fs-14);color:var(--text-1)}.up-acc-phone{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums}.up-acc-reason{flex-basis:100%;font-size:var(--fs-12);color:var(--text-3);max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-acc-ops{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.up-acc-days{height:30px;border:1px solid #d9dce3;border-radius:var(--r-sm);padding:0 6px;font-size:var(--fs-12);background:#fff;color:var(--text-1)}.up-acc-pwd{height:30px;width:150px;border:1px solid #d9dce3;border-radius:var(--r-sm);padding:0 8px;font-size:var(--fs-12)}.up-acc-pwd:focus,.up-acc-days:focus{outline:none;border-color:var(--theme)}.up-acc-exp{margin-top:2px;font-size:var(--fs-11);color:#8a94a6}.up-acc-exp.soon{color:#d46b08;font-weight:600}.up-mcard .up-mc-tag.acc-exp{background:#f0f5ff;color:#4a6fa5}.up-mcard .up-mc-tag.acc-exp.soon{background:#fff7e6;color:#d46b08}.up-pw-vis-btn{margin-left:auto;height:30px;padding:0 12px;font-size:var(--fs-12);color:#6b747d;background:#fff;border:1px solid #d4d7de;border-radius:8px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.up-pw-vis-btn:hover{color:#41464c;border-color:#b9bec7;background:#f9fafb}.up-pw-vis-btn.on{color:#b45309;border-color:#e8c39a;background:#fff8ec}.up-mcard .up-mc-acts{position:absolute;top:12px;right:12px;display:flex;gap:4px;opacity:0;transition:opacity var(--dur-base)}.up-mcard:hover .up-mc-acts{opacity:1}.up-mcard .up-mc-acts button{width:28px;height:28px;border:1px solid #eef0f4;border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-13);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}.up-mcard .up-mc-acts button:hover{background:var(--theme-weak);border-color:var(--theme);color:var(--theme)}.up-mcard .up-mc-check{position:absolute;top:0;left:0;width:100%;height:100%}.up-mcard .up-mc-checkbox{position:absolute;top:12px;left:12px;width:18px;height:18px;cursor:pointer;accent-color:var(--theme)}.up-member-table tbody tr .ua-cell{visibility:hidden}.up-member-table tbody tr:hover .ua-cell{visibility:visible}.up-member-table tbody tr .ua-row-check{width:32px}.up-member-table tbody tr .ua-row-check input{cursor:pointer;accent-color:var(--theme)}.up-dept-tree{position:relative}.up-dept-tree .up-dept-search{margin-bottom:8px}.up-dept-tree .up-dept-search input{width:100%;height:28px;border:1px solid var(--border);border-radius:var(--r-ctrl);padding:0 8px;font-size:var(--fs-12);outline:none}.up-dept-tree .up-dept-search input:focus{border-color:var(--theme)}.up-dept-item .up-dept-icon{margin-right:4px}.up-dept-item.has-children{font-weight:500}.up-member-area{max-height:none;overflow-y:visible;scroll-behavior:smooth}.up-card-grid{overflow-y:auto;max-height:calc(100vh - 340px)}@media(max-width:900px){.up-toolbar{flex-direction:column;align-items:stretch}.up-card-grid{grid-template-columns:1fr}.up-dept-tree{width:100%;border-right:0;border-bottom:1px solid var(--border-light);padding-bottom:8px}.up-layout{flex-direction:column}}.mp-mask{position:fixed;inset:0;background:#00000052;z-index:2200;display:flex;align-items:center;justify-content:center;animation:mpFade var(--dur-base) var(--ease)}.modal-mask.ap-submit-mask{z-index:2000}.ap-addsign-mask{z-index:2200}.ap-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0 4px}.ap-pg-info{font-size:var(--fs-13);color:var(--text-3)}.ap-pg-info b{color:var(--text-1)}.ap-pg-btn[disabled]{opacity:.45;cursor:not-allowed}@keyframes mpFade{0%{opacity:0}to{opacity:1}}.mp-panel{width:480px;max-width:94vw;max-height:80vh;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 20px 60px #00000038;display:flex;flex-direction:column;overflow:hidden;animation:mpSlide var(--dur-slow) var(--ease)}@keyframes mpSlide{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.mp-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border-light)}.mp-head h3{margin:0;font-size:var(--fs-16);font-weight:600;color:#1f2733}.mp-head .mp-sub{font-size:var(--fs-12);color:var(--text-4);margin-left:8px;font-weight:400}.mp-close{font-size:var(--fs-18);color:var(--text-4);cursor:pointer;line-height:1;padding:2px 4px;border-radius:var(--r-4);transition:all var(--dur-fast)}.mp-close:hover{color:var(--danger);background:var(--danger-bg)}.mp-search-wrap{padding:8px 20px;border-bottom:1px solid #f5f6f8;position:relative}.mp-search-wrap input{width:100%;height:36px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);padding:0 12px 0 34px;font-size:var(--fs-13);outline:none;background:#f9fafb;transition:all var(--dur-base)}.mp-search-wrap input:focus{border-color:var(--theme);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--theme) 10%,transparent)}.mp-search-wrap .mp-search-icon{position:absolute;left:32px;top:50%;transform:translateY(-50%);color:var(--text-4);font-size:var(--fs-14);pointer-events:none}.mp-selected{display:flex;flex-wrap:wrap;gap:4px;padding:8px 20px;max-height:72px;overflow-y:auto;border-bottom:1px solid #f5f6f8}.mp-selected:empty{display:none}.mp-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 8px;background:#f0f5ff;color:var(--theme);border-radius:var(--r-ctrl);font-size:var(--fs-12);font-weight:500;animation:mpChipIn var(--dur-base) var(--ease)}@keyframes mpChipIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.mp-chip .mp-chip-x{cursor:pointer;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);transition:all var(--dur-fast)}.mp-chip .mp-chip-x:hover{background:var(--theme-strong);color:#fff}.mp-list{flex:1;overflow-y:auto;padding:4px 0}.mp-group{margin-bottom:2px}.mp-group-head{display:flex;align-items:center;gap:4px;padding:8px 20px 4px;font-size:var(--fs-12);font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.3px;cursor:pointer;user-select:none}.mp-group-head:hover{color:var(--theme)}.mp-group-head .mp-group-arrow{transition:transform var(--dur-base);font-size:var(--fs-11)}.mp-group.collapsed .mp-group-arrow{transform:rotate(-90deg)}.mp-group.collapsed .mp-group-items{display:none}.mp-group-count{font-weight:400;opacity:.7}.mp-item{display:flex;align-items:center;gap:8px;padding:8px 20px;cursor:pointer;transition:background var(--dur-fast);position:relative}.mp-item:hover{background:#f7f8fa}.mp-item.selected{background:var(--theme-weak)}.mp-item.selected:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--theme)}.mp-item.disabled{opacity:.45;cursor:not-allowed}.mp-item.disabled:hover{background:transparent}.mp-check{width:18px;height:18px;border:1.5px solid var(--border-strong);border-radius:var(--r-6);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}.mp-item.selected .mp-check{background:var(--theme-strong);border-color:var(--theme);color:#fff}.mp-item.selected .mp-check:after{content:"✓";font-size:var(--fs-12);font-weight:700}.mp-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-13);font-weight:600;color:#fff}.mp-info{flex:1;min-width:0}.mp-info-row{display:flex;align-items:center;gap:4px}.mp-name{font-size:var(--fs-14);font-weight:500;color:#1f2733}.mp-meta{font-size:var(--fs-12);color:var(--text-4);margin-top:1px}.mp-status{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-sm);flex-shrink:0}.mp-status.active{background:var(--ok-bg);color:var(--ok-ink)}.mp-status.disabled{background:var(--danger-bg);color:var(--danger-ink)}.mp-status.pending{background:var(--warn-bg);color:#b9791a}.mp-empty{text-align:center;padding:40px 20px;color:var(--text-4);font-size:var(--fs-13)}.mp-empty .mp-empty-icon{font-size:32px;margin-bottom:8px}.mp-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border-light);background:#fafbfc}.mp-foot-count{font-size:var(--fs-13);color:var(--text-4)}.mp-foot-count b{color:var(--theme)}.mp-foot-btns{display:flex;gap:8px}.mp-btn{padding:8px 20px;font-size:var(--fs-14);border-radius:var(--r-ctrl);cursor:pointer;font-weight:500;transition:all var(--dur-fast);border:none}.mp-btn-cancel{background:var(--surface-2);color:var(--text-2)}.mp-btn-cancel:hover{background:#e8eaef}.mp-btn-ok{background:var(--theme-strong);color:#fff}.mp-btn-ok:hover{background:var(--theme)}.mp-btn-ok:disabled{background:var(--info);cursor:default}@media(max-width:640px){.mp-panel{width:100vw;max-width:100vw;max-height:85vh;border-radius:var(--r-ctrl) var(--r-ctrl) 0 0;align-self:flex-end}.mp-item{padding:8px 16px}.mp-group-head{padding:8px 16px 4px}.mp-search-wrap,.mp-selected,.mp-foot{padding-left:16px;padding-right:16px}}.sp-detail-body{padding:20px 24px}.sp-detail-header{display:flex;gap:12px;margin-bottom:20px}.sp-dh-info{flex:1}.sp-dh-info h3{margin:0 0 4px;font-size:var(--fs-16)}.sp-dh-meta{display:flex;gap:12px;font-size:var(--fs-12);color:var(--text-4)}.sp-tl-item.last{padding-bottom:0}.sp-tl-item.active .sp-tl-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--theme) 20%,transparent);animation:tlPulse 2s var(--ease) infinite}@keyframes tlPulse{0%,to{box-shadow:0 0 0 4px color-mix(in srgb,var(--theme) 20%,transparent)}50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--theme) 10%,transparent)}}.sp-loading{text-align:center;color:var(--text-4);padding:20px 0;font-size:var(--fs-13)}.sp-process-preview{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.sp-step{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--r-ctrl);background:#f7f8fa;border:1px solid #eef0f4;font-size:var(--fs-12)}.sp-step-num{width:20px;height:20px;border-radius:50%;background:var(--theme-strong);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:600}.sp-step-tag{font-size:var(--fs-12);padding:1px 4px;border-radius:var(--r-4)}.sp-in{background:#e3f3f5;color:var(--theme)}.sp-out{background:var(--warn-bg);color:#fa8c16}.sp-progress-bar{height:6px;background:#eef0f4;border-radius:var(--r-4);margin:4px 0;overflow:hidden}.sp-progress-fill{height:100%;background:linear-gradient(90deg,var(--theme),#52c41a);border-radius:var(--r-4);transition:width .3s}.sp-progress-text{font-size:var(--fs-12);color:var(--text-4);margin-bottom:12px}.sp-process-list{display:flex;flex-direction:column}.sp-pr-item{display:flex;gap:12px;padding-bottom:8px}.sp-pr-left{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0}.sp-pr-num{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:700;background:#eef0f4;color:var(--text-4)}.sp-pr-done .sp-pr-num{background:#52c41a;color:#fff}.sp-pr-active .sp-pr-num{background:var(--theme-strong);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--theme) 15%,transparent)}.sp-pr-line{width:2px;flex:1;min-height:20px;background:#eef0f4}.sp-pr-done .sp-pr-line{background:#52c41a}.sp-pr-body{flex:1;min-width:0;padding-bottom:8px}.sp-pr-name{font-size:var(--fs-14);font-weight:600;color:#1f2733}.sp-out-tag,.sp-in-tag{font-size:var(--fs-12);padding:1px 4px;border-radius:var(--r-4);margin-left:4px}.sp-out-tag{background:var(--warn-bg);color:#fa8c16}.sp-in-tag{background:#e3f3f5;color:var(--theme)}.sp-pr-supplier{font-size:var(--fs-12);color:var(--text-4);margin-top:2px}.sp-pr-status{font-size:var(--fs-12);color:var(--text-2);margin-top:2px;display:flex;align-items:center;gap:8px}.sp-pr-status-sel{height:26px;padding:0 4px;border:1px solid var(--border-strong);border-radius:var(--r-4);font-size:var(--fs-12)}.sp-pr-time{color:var(--text-4)}.sp-pr-note{color:var(--text-4);font-style:italic}.col-draggable{cursor:grab;user-select:none}.col-draggable:active{cursor:grabbing}.col-draggable:hover{background:#eef3ff!important}.col-order-reset{margin-left:auto;font-size:var(--fs-12)}.ta-card{margin:0 0 16px;background:var(--surface);border:1px solid var(--surface-3);border-radius:var(--r-sm);box-shadow:0 1px 4px #1f23290f;overflow:hidden}.ta-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid #f0f1f5;background:linear-gradient(180deg,#fafbff,#fff)}.ta-title-wrap{min-width:0}.ta-title{font-size:var(--fs-14);font-weight:700;color:var(--text-1)}.ta-sub{margin-top:4px;font-size:var(--fs-12);color:var(--text-3)}.ta-body{padding:16px 20px 20px}.ta-row{margin-bottom:16px}.ta-row:last-of-type{margin-bottom:0}.ta-label{display:block;margin-bottom:8px;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}.ta-textarea,.ta-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:var(--fs-13);color:var(--text-1);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-ctrl);outline:none;resize:vertical;font-family:inherit;line-height:var(--lh-base)}.ta-textarea:focus,.ta-input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}.ta-input{padding-right:42px}.ta-token-wrap{position:relative}.ta-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;background:transparent;cursor:pointer;font-size:var(--fs-14);color:var(--text-3);border-radius:var(--r-ctrl)}.ta-eye:hover{background:var(--surface-2);color:var(--theme)}.ta-hint{margin-top:4px;font-size:var(--fs-12);color:var(--text-3);line-height:var(--lh-base)}.ta-actions{display:flex;align-items:center;gap:12px;margin-top:20px}.ta-status{font-size:var(--fs-13);color:var(--text-3)}.ta-status.on{color:#2ea121;font-weight:600}.ta-status.off{color:var(--text-3)}.ta-status.err{color:var(--danger);font-weight:600}.ta-switch{position:relative;display:inline-block;flex:0 0 auto;width:46px;height:26px}.ta-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.ta-slider{position:absolute;inset:0;background:var(--border-strong);border-radius:var(--r-ctrl);transition:background var(--dur-slow);pointer-events:none}.ta-slider:before{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform var(--dur-slow);box-shadow:0 1px 3px #00000040}.ta-switch input:checked+.ta-slider{background:var(--theme)}.ta-switch input:checked+.ta-slider:before{transform:translate(20px)}.shell-banner{display:flex;align-items:flex-start;gap:12px;margin:0 0 12px;padding:12px 16px;background:linear-gradient(90deg,#eef3ff,var(--gradient-start));border:1px solid var(--theme-weak);border-radius:var(--r-sm)}.sh-badge{flex:0 0 auto;padding:4px 8px;font-size:var(--fs-12);font-weight:600;color:var(--theme);background:#fff;border:1px solid var(--info);border-radius:var(--r-card);white-space:nowrap}.sh-banner-text{font-size:var(--fs-13);line-height:var(--lh-base);color:#41464c}.sh-banner-text strong{color:var(--text-1)}.sh-banner-text code{padding:1px 4px;font-size:var(--fs-12);color:var(--theme);background:#eef3ff;border-radius:var(--r-4)}.shell-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.shell-count{margin-left:auto;font-size:var(--fs-12);color:var(--text-3)}.shell-table.shell-table{background:#fff;border:1px solid #edeff2;border-radius:var(--r-sm);overflow:hidden}.shell-table thead th{background:#f7f8fa;color:var(--text-3);font-weight:600;font-size:var(--fs-13);padding:12px;text-align:left;border-bottom:1px solid #edeff2}.shell-tbody td{padding:12px;border-bottom:1px solid var(--surface-2)}.skel-bar{display:block;height:12px;width:80%;border-radius:var(--r-6);background:linear-gradient(90deg,#eef0f3 25%,#f6f7f9 37%,#eef0f3 63%);background-size:400% 100%;animation:skelShine 1.3s var(--ease) infinite}@keyframes skelShine{0%{background-position:100% 0}to{background-position:-100% 0}}.shell-empty{padding:12px 16px;font-size:var(--fs-13);color:var(--text-3);background:#fafbfc;border-top:1px dashed #eceef1}.shell-plan{margin-top:16px;padding:16px 20px;background:#fff;border:1px solid #edeff2;border-radius:var(--r-sm)}.sh-plan-head{font-size:var(--fs-14);font-weight:600;color:var(--text-1);margin-bottom:12px}.sh-field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.sh-field{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f7f8fa;border:1px solid #edeff2;border-radius:var(--r-sm)}.sh-flabel{font-size:var(--fs-13);color:var(--text-1);font-weight:500}.sh-type{font-size:var(--fs-12);color:var(--text-3);background:#eef0f3;border-radius:var(--r-4);padding:1px 8px}.sh-req{font-size:var(--fs-12);color:var(--danger);background:var(--danger-bg);border-radius:var(--r-4);padding:1px 8px}.sh-muted{color:#a8abb2}.sh-demo-note{margin-bottom:12px;padding:8px 12px;font-size:var(--fs-12);color:var(--warn-ink);background:var(--warn-bg);border:1px solid #ffe6a8;border-radius:var(--r-sm)}.sh-form{display:flex;flex-direction:column;gap:12px}.sh-form-row{display:flex;flex-direction:column;gap:4px}.sh-label{font-size:var(--fs-13);color:#41464c;font-weight:500}.sh-star{color:var(--danger);margin-left:2px}.sh-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:var(--fs-13);color:var(--text-1);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-ctrl);outline:none;font-family:inherit;line-height:var(--lh-base)}.sh-input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}textarea.sh-input{resize:vertical;min-height:72px}.sh-detail-list{display:flex;flex-direction:column;gap:2px}.sh-detail-row{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--surface-2)}.sh-detail-row:last-child{border-bottom:none}.sh-detail-label{flex:0 0 130px;font-size:var(--fs-13);color:var(--text-3)}.sh-detail-val{flex:1;font-size:var(--fs-13);color:var(--text-1);word-break:break-all}.shell-modal{width:520px;max-width:95vw}.shell-detail{width:480px;max-width:95vw}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:HarmonyOS Sans,-apple-system,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text-1)}::selection{background:color-mix(in srgb,var(--theme) 20%,transparent);color:var(--text-1)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#0b375440;border-radius:var(--r-4);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#0b375473}*{scrollbar-width:thin;scrollbar-color:rgba(11,55,84,.25) transparent}:focus-visible{outline:2px solid var(--theme);outline-offset:2px;border-radius:var(--r-4)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.btn-primary{background:var(--ink);color:#fff;border-color:transparent}.btn-primary:hover{background:var(--ink-2);opacity:1}.btn-primary:active{background:var(--ink);opacity:.96}.btn-secondary,.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text-1)}.btn-secondary:hover,.btn-ghost:hover{border-color:var(--theme);color:var(--theme);background:var(--theme-weak)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible{outline:none;box-shadow:var(--focus-ring)}input[type=text],input[type=password],input[type=number],input[type=email],input[type=tel],input[type=search],input[type=date],input[type=datetime-local],textarea,.input{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctrl);color:var(--text-1);transition:border-color var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):focus,textarea:focus,.input:focus,.field-cfg-input:focus{border-color:var(--theme);box-shadow:var(--focus-ring);outline:none}::placeholder{color:var(--text-3);opacity:1}.cell-edit-input,.cell-edit-select{border-color:var(--theme)!important}select{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-1);transition:border-color var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease)}select:focus{border-color:var(--theme);box-shadow:var(--focus-ring);outline:none}.switch.on,.switch.checked,.role-switch .rs.on,.rs.on{background:var(--theme)!important;border-color:var(--theme)!important}.role-switch .rs.on,.rs.on{background:var(--theme-strong)!important;border-color:var(--theme-strong)!important}.badge.ok,.tag.ok,.tag.green{background:#2bb98a1f;color:var(--ok-ink)}.badge.warn,.tag.warn,.tag.orange{background:#c07a1f1f;color:var(--warn-ink)}.badge.danger,.tag.red{background:#e5484d1f;color:var(--danger-ink)}.badge.info,.tag.info,.tag.blue{background:var(--theme-weak);color:var(--theme-strong)}.badge.neutral,.tag.mute,.tag.gray,.tag.purple{background:var(--surface-2);color:var(--text-2)}.pager .pg.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.pager .pg:hover:not([disabled]):not(.on){border-color:var(--theme);color:var(--theme)}.side-title{color:var(--text-3)}.nav-item .ico{color:color-mix(in srgb,var(--nv, var(--text-3)) 72%,var(--text-3));transition:color var(--dur-base) var(--ease)}.nav-item.mod-stub .ico{color:var(--text-3)}.nav-item:hover{background:color-mix(in srgb,var(--nv, var(--theme)) 9%,transparent);color:var(--text-1)}.nav-item:hover .ico{color:var(--nv, var(--theme))}.nav-item.active{background:color-mix(in srgb,var(--nv, var(--theme)) 12%,transparent);color:var(--text-1);font-weight:600}.nav-item.active .ico{color:var(--nv, var(--theme))}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:56%;border-radius:0 var(--r-4) var(--r-4) 0;background:var(--nv, var(--theme))}.topnav{background:var(--surface-glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid rgba(11,55,84,.08)}.brand{color:var(--ink)}.modal-mask,.modal-mask.dlg-mask,.oss-drawer-mask,.filter-mask,.gc-picker-mask{background:#0b375459!important}.img-preview-overlay,.fin-lightbox,.oss-lightbox{background:#0b1e30e6!important}.modal-box,.grp-config,.gc-picker,.pms-editor,.filter-panel,.field-cfg,.dlg,.dlg-box{background:var(--surface-glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--r-card);border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow-card),inset 0 1px #ffffffe6}.oss-drawer{background:var(--surface-glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--r-card) 0 0 var(--r-card);border-left:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow-card),inset 1px 0 #ffffffe6}.modal-box .modal-head,.modal-box .modal-foot,.grp-config-head,.gc-section,.filter-panel .fp-head,.field-cfg-head,.oss-drawer-head{border-color:#0b375414}.module-table th,html.dark .module-table th{background:var(--surface)}.module-table tbody tr:nth-child(2n),.vs-table tbody tr.vs-row:nth-child(2n),.tbl tbody tr:nth-child(2n),.cost-oss-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--theme) 4%,transparent)}.module-table tbody tr:hover,.vs-table tbody tr.vs-row:hover,.cost-oss-table tbody tr:hover,.tbl tbody tr:hover{background:color-mix(in srgb,var(--theme) 7%,transparent)!important}.module-table th,.module-table td{line-height:22px}.tbl th,.tbl td{line-height:24px}.cell-money,.dv.money,.cell-num,.num,[class*=money],[data-num]{font-variant-numeric:tabular-nums}:focus-visible{outline:none!important;box-shadow:var(--focus-ring);border-radius:var(--r-4)}.brand-logo{width:28px;height:28px;border-radius:var(--r-ctrl);flex:0 0 auto;box-shadow:0 4px 12px #031e3247,inset 0 1px #ffffff26}.empty:before,.mp-empty:before,.oss-empty:before,.fin-empty:before,.im-empty:before,.im-empty-sm:before,.cost-empty:before,.col-restore-empty:before,.gc-picker-empty:before,.ap-sub-cc-empty:before,.shell-empty:before,.oss-compare-empty:before,.oss-rec-empty:before,.up-trash-empty:before{content:"";display:block;width:168px;height:126px;margin:0 auto 12px;background:url(/dashboard/assets/empty-illustration.svg?v=20260818b) center / contain no-repeat;flex:0 0 auto}.fe-config-empty,.mp-list .mp-empty,.up-trash-empty{flex-direction:column}.mp-empty-icon,.up-trash-empty-icon{display:none!important}.dv.empty{display:inline-flex;align-items:center;gap:4px;color:var(--text-3);vertical-align:middle}.dv.empty:before{content:"";display:inline-block!important;width:14px;height:14px;margin:0!important;flex:0 0 auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='6' fill='none' stroke='%23b8c0cc' stroke-width='1.2'/%3E%3Cpath d='M4.5 7h5' stroke='%23b8c0cc' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat!important}.skel-bar{background:linear-gradient(90deg,#e9f4f9,#eef6f9 22%,#bfe6f2,#eef6f9 78%,#e9f4f9);background-size:400% 100%;animation:skelShine 1.2s var(--ease) infinite}.oss-detail-error{position:relative;padding:40px 24px 32px!important;gap:12px!important}.oss-detail-error:before{content:"";display:block;width:140px;height:105px;margin-bottom:4px;background:url(/dashboard/assets/empty-illustration.svg?v=20260818b) center / contain no-repeat;flex:0 0 auto}.oss-detail-error b{color:var(--theme)!important;font-size:var(--fs-16)!important;font-weight:600}.oss-detail-error p{color:var(--text-3, var(--text-4));max-width:320px;line-height:var(--lh-base)}.mp-empty{padding:36px 20px 28px!important;gap:8px!important}.mp-empty:not(:has(.mp-empty-icon)){color:var(--text-2, #52596a);font-size:var(--fs-13)}@media print{*{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:transparent!important;box-shadow:none!important;text-shadow:none!important}body,html{background:#fff!important;color:#000!important;font-size:11pt;line-height:var(--lh-base)}.login-mask,.topnav,.sidebar,.mask,.overlay,.drawer-mask,.oc-clock,.oc-online,.im-pane,.im-status-menu,[class*=toast],[class*=tooltip],[class*=dropdown]{display:none!important}.app,.body,.main{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;position:static!important}.module-wrap,.card,.mp-card,.oss-detail-body,table,.module-table,.tbl,.shell-table{border-collapse:collapse!important;width:100%!important}th,td{border:1px solid #ccc!important;padding:4pt 6pt!important;color:#000!important;font-size:10pt}th{background:var(--border-light)!important;font-weight:700}a,a:link,a:visited{color:#000!important;text-decoration:underline!important}button,.btn,.oss-btn,.ta-switch{display:none!important}img{max-width:100%!important;height:auto!important;page-break-inside:avoid}h1,h2,h3{page-break-after:avoid}}.po-loading{color:var(--theme);font-size:var(--fs-13)}.order-view-tabs .ovt-n{display:inline-block;min-width:18px;margin-left:6px;padding:0 6px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-3);font-size:var(--fs-12);line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.order-view-tabs .ovt-btn.active .ovt-n{background:var(--surface);color:var(--theme-strong);font-weight:700}.order-view-tabs .ovt-n.zero{opacity:.55}.order-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 2px 0;padding:8px 12px;border-radius:var(--r-sm);background:#f4f7f9;font-size:var(--fs-13);color:var(--text-3)}.order-summary b{font-weight:600;color:#16232e;font-variant-numeric:tabular-nums}.order-summary .os-sep{color:#b6c4cf}.order-summary .os-unpaid{color:#b45309}.order-pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 2px 4px;font-size:var(--fs-13);color:#41525f}.order-pager .pg-info{color:var(--text-3)}.pg-btn{height:32px;padding:0 12px;border:1px solid color-mix(in srgb,var(--theme) 30%,transparent);border-radius:var(--r-ctrl);background:#fffc;color:var(--theme-strong);font-size:var(--fs-13);cursor:pointer;transition:all var(--dur-base)}.pg-btn:hover:not(:disabled){background:var(--theme-strong);color:#fff;border-color:var(--theme-strong)}.pg-btn:disabled{opacity:.45;cursor:not-allowed}.pg-jump-wrap{display:inline-flex;align-items:center;gap:4px}.pg-jump{width:64px;height:32px;padding:0 8px;border:1px solid color-mix(in srgb,var(--theme) 30%,transparent);border-radius:var(--r-sm);text-align:center;font-size:var(--fs-13);outline:none}.pg-jump:focus{border-color:var(--theme)}.vs-sel-th,.vs-sel-cell{width:40px;min-width:40px;max-width:40px;padding:0 4px;text-align:center;box-sizing:border-box}.vs-sel-th{background:#f4f7fae6;position:sticky;top:0;z-index:2}.vs-sel-all,.vs-row-cb,.po-sel-all,.po-row-cb{width:16px;height:16px;cursor:pointer;accent-color:var(--theme)}.batch-bar{position:fixed;left:50%;bottom:22px;z-index:var(--zi-overlay);transform:translate(-50%) translateY(20px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:12px;padding:8px 16px;border-radius:var(--r-ctrl);background:#fff;border:1px solid rgba(31,45,61,.12);box-shadow:0 12px 40px #14405c38;transition:transform var(--dur-base) var(--ease),opacity var(--dur-base) var(--ease)}.batch-bar.show{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.batch-bar .bb-count{font-size:var(--fs-13);color:#41525f}.batch-bar .bb-count b{color:var(--theme);font-size:var(--fs-14)}.bb-btn{height:32px;padding:0 12px;border:1px solid color-mix(in srgb,var(--theme) 30%,transparent);border-radius:var(--r-ctrl);background:#ffffffe6;color:var(--theme-strong);font-size:var(--fs-13);cursor:pointer;transition:all var(--dur-base)}.bb-btn:hover{background:var(--theme-strong);color:#fff;border-color:var(--theme)}.bb-clear{border-color:#e34d5959;color:var(--danger-ink)}.bb-clear:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.pop-menu{position:fixed;z-index:var(--zi-top);min-width:150px;padding:4px;background:#fff;border:1px solid rgba(31,45,61,.12);border-radius:var(--r-sm);box-shadow:0 10px 36px #14405c33}.pop-item{padding:8px 12px;border-radius:var(--r-ctrl);font-size:var(--fs-13);color:#1f2d3d;cursor:pointer;white-space:nowrap}.pop-item:hover{background:color-mix(in srgb,var(--theme) 10%,transparent)}.pop-disabled{color:#9aa7b2;cursor:default}.pop-disabled:hover{background:transparent}.pop-current{color:var(--theme);font-weight:600}.pop-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--theme);margin-right:8px;vertical-align:middle}.pop-danger{color:var(--danger)}.mf-modal{width:440px;max-width:92vw}.mf-list{max-height:320px;overflow:auto;display:flex;flex-direction:column;gap:4px}.mf-row{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgba(31,45,61,.08);border-radius:var(--r-sm)}.mf-name{font-weight:600;flex:0 0 120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mf-meta{flex:1;color:var(--text-3);font-size:var(--fs-12);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mf-empty{color:var(--text-3);padding:20px;text-align:center}.mf-sec-title{font-size:var(--fs-13);font-weight:600;color:#33445c;margin:12px 0 4px}.mf-sec-note{font-weight:400;font-size:var(--fs-11);color:var(--text-4);margin-left:6px}.sv-list .mf-row{background:#4085ff08}.sv-row .mf-name{flex:0 0 140px;color:var(--info)}.mf-modal.sv-create-modal{width:420px}.sv-create-modal .sv-name-input{width:100%;box-sizing:border-box;margin-bottom:4px}.sv-role-list{max-height:220px}[data-theme=dark] .sv-list .mf-row{background:#4085ff12}[data-theme=dark] .sv-row .mf-name{color:var(--info)}.order-view-tabs .ovt-custom{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.order-view-tabs .ovt-btn.cvw-btn{padding:0 14px;border-style:dashed}.order-view-tabs .ovt-btn.cvw-btn.active{border-style:solid}.order-view-tabs .ovt-btn.ovt-add{padding:0 11px;font-size:var(--fs-14);color:var(--text-3)}.order-view-tabs .ovt-btn.ovt-add:hover{color:var(--accent, var(--primary))}.vm-modal{width:560px;max-width:94vw}.vm-row{flex-wrap:wrap}.vm-row.on{border-color:var(--accent, var(--primary));background:color-mix(in srgb,var(--accent, var(--primary)) 6%,transparent)}.vm-row .mf-name{flex:0 0 150px}.vm-acts{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;margin-left:auto}.vm-acts .ua-btn{min-width:26px;padding:2px 7px;font-size:var(--fs-12);height:24px;line-height:20px}.vm-acts .ua-btn[disabled]{opacity:.35;cursor:not-allowed}[data-theme=dark] .vm-row.on{background:color-mix(in srgb,var(--accent, var(--primary)) 12%,transparent)}.module-table tr.kb-sel>td{background-color:#e3f2fb!important}.module-table tbody tr.kb-sel{outline:2px solid var(--theme);outline-offset:-2px;position:relative}.module-table tbody tr.kb-sel>td:first-child:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--theme)}.no-ac-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--zi-dropdown);background:#fff;border:1px solid color-mix(in srgb,var(--theme) 25%,transparent);border-radius:var(--r-sm);box-shadow:0 12px 30px #14405c29;max-height:240px;overflow-y:auto;padding:4px}.no-ac-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-13);color:var(--info-ink)}.no-ac-item:hover,.no-ac-item.on{background:color-mix(in srgb,var(--theme) 12%,transparent)}.no-ac-name{font-weight:600}.no-ac-sub{color:var(--text-4);font-size:var(--fs-12)}.no-date-quick{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.no-dq{height:30px;padding:0 8px;border:1px solid color-mix(in srgb,var(--theme) 30%,transparent);border-radius:var(--r-sm);background:#fff;color:#0b4f45;font-size:var(--fs-12);cursor:pointer;transition:all var(--dur-base)}.no-dq:hover{background:var(--theme-strong);color:#fff;border-color:var(--theme)}.no-row-inline{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.no-row-inline>label:first-child{min-width:84px}.no-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}.no-switch input{position:absolute;opacity:0;width:0;height:0}.no-switch-track{width:42px;height:22px;border-radius:var(--r-pill);background:#cfd8e0;transition:background var(--dur-base);display:inline-block;position:relative}.no-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform var(--dur-base)}.no-switch input:checked+.no-switch-track{background:var(--theme)}.no-switch input:checked+.no-switch-track:after{transform:translate(20px)}.no-inline-label{color:#41525f;font-size:var(--fs-13)}.no-cur{width:96px}.no-field-tip{display:block;color:var(--danger);font-size:var(--fs-12);margin-top:4px}.no-input.valid,.mp-input.valid{border-color:#1a9e63!important;box-shadow:0 0 0 2px #1a9e6326}.no-input.invalid,.mp-input.invalid{border-color:var(--danger)!important;box-shadow:0 0 0 2px #e34d5926}.btn-ghost{height:34px;padding:0 16px;border:1px solid color-mix(in srgb,var(--theme) 35%,transparent);border-radius:var(--r-ctrl);background:transparent;color:var(--theme-strong);font-size:var(--fs-13);cursor:pointer;transition:all var(--dur-base)}.btn-ghost:hover{background:color-mix(in srgb,var(--theme) 10%,transparent)}.side-recent{margin-top:12px;padding-top:12px;border-top:1px solid #eef0f3}.side-recent-title{font-size:var(--fs-12);color:var(--text-3);padding:4px 12px 8px;letter-spacing:1px}.recent-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-sm);color:var(--text-2);font-size:var(--fs-13);cursor:pointer;transition:background var(--dur-base) var(--ease),color var(--dur-base) var(--ease)}.recent-item:hover{background:color-mix(in srgb,var(--theme) 8%,transparent);color:#1f2733}.recent-dot{width:6px;height:6px;border-radius:50%;background:var(--theme);flex:0 0 auto}.recent-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-mount{margin-top:4px}.todo-loading,.todo-error{padding:24px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.todo-error{color:var(--danger)}.todo-empty-all{padding:32px;text-align:center;color:#1a9e63;font-size:var(--fs-14);background:var(--ok-bg);border:1px dashed #b6e3c8;border-radius:var(--r-ctrl)}.todo-zero-bar{margin-top:8px;padding:8px 12px;font-size:var(--fs-12);color:#7a8494;background:var(--surface-2, #f5f6f8);border-radius:var(--r-sm)}.todo-section{margin-top:2px}.todo-section-title{font-size:var(--fs-14);font-weight:600;color:var(--text-1);margin:12px 2px 8px;display:flex;align-items:center;gap:4px}.todo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}.todo-card{background:var(--surface);border:1px solid rgba(31,35,41,.08);border-left:4px solid var(--text-4);border-radius:var(--r-sm);padding:12px 16px;box-shadow:0 1px 6px #1f23290d;transition:box-shadow var(--dur-base),transform var(--dur-base)}.todo-card[data-jump]{cursor:pointer}.todo-card[data-jump]:hover{box-shadow:0 4px 16px #1f23291f;transform:translateY(-1px)}.todo-card.urgent{border-left-color:var(--danger)}.todo-card.warn{border-left-color:#f80}.todo-card.normal{border-left-color:var(--theme)}.todo-card.info{border-left-color:var(--text-4)}.todo-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.todo-label{font-size:var(--fs-14);font-weight:600;color:var(--text-1)}.todo-badge{min-width:22px;height:22px;padding:0 8px;border-radius:var(--r-ctrl);background:var(--danger);color:#fff;font-size:var(--fs-13);font-weight:700;display:inline-flex;align-items:center;justify-content:center}.todo-card.warn .todo-badge{background:#f80}.todo-card.normal .todo-badge{background:var(--theme)}.todo-card.info .todo-badge{background:var(--text-4)}.todo-badge.zero{background:#1a9e63}.todo-items{list-style:none;margin:8px 0 0;padding:0}.todo-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:var(--r-sm);font-size:var(--fs-13);color:var(--text-2)}.todo-item+.todo-item{border-top:1px solid rgba(31,35,41,.05)}.todo-item.clickable{cursor:pointer}.todo-item.clickable:hover{background:color-mix(in srgb,var(--theme) 6%,transparent)}.todo-item-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-1)}.todo-item-sub{flex:0 0 auto;color:var(--text-3);font-size:var(--fs-12);max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-item-go{flex:0 0 auto;color:#b0b6bf;font-size:var(--fs-16)}.todo-card-foot{margin-top:12px;padding-top:8px;border-top:1px dashed rgba(31,35,41,.1)}.todo-jump{font-size:var(--fs-12);color:var(--theme-strong);font-weight:600}.todo-empty-ok{margin-top:8px;color:#1a9e63;font-size:var(--fs-14);font-weight:600}.todo-empty-sub{margin-top:4px;color:var(--text-3);font-size:var(--fs-12)}.todo-metric .todo-metric-value{margin-top:8px;font-size:var(--fs-28);font-weight:700;color:var(--text-1)}.cost-section.cost-guard{border:1px solid var(--danger);background:var(--danger-bg)}.cost-section.cost-guard>h3{color:var(--danger)}.guard-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:var(--r-ctrl);background:var(--danger);color:#fff;font-size:var(--fs-12);font-weight:600;vertical-align:middle}.cost-summary{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 16px}.cs-item{background:#f7f9fc;border:1px solid #e6ebf2;border-radius:var(--r-sm);padding:8px 12px;min-width:160px}.cs-item label{display:block;font-size:var(--fs-12);color:var(--text-4)}.cs-item b{font-size:var(--fs-18);color:var(--text-1)}.cs-item.cs-margin.ok b{color:#1a9e63}.cs-item.cs-margin.bad b{color:var(--danger)}.cs-sub{display:block;font-size:var(--fs-12);color:#aab2c0;margin-top:2px}.cost-comp{border:1px solid #e6ebf2;border-radius:var(--r-sm);margin-bottom:8px;overflow:hidden}.cost-comp-head{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;background:#fbfcfe;user-select:none}.cost-comp-head:hover{background:#f1f5fa}.cc-title{font-weight:600;color:var(--text-1)}.cc-amt{margin-left:auto;font-weight:700;color:var(--text-1)}.cc-caret{color:var(--text-4);transition:transform var(--dur-base)}.cost-comp.open .cc-caret{transform:rotate(90deg)}.cost-comp-body{display:none;padding:4px 12px 8px}.cost-comp.open .cost-comp-body{display:block}.cost-comp-table{width:100%;border-collapse:collapse}.cost-comp-table th,.cost-comp-table td{text-align:left;padding:4px 8px;border-bottom:1px solid #eef1f6;font-size:var(--fs-13)}.cost-comp-table th{color:var(--text-4);font-weight:500;background:#fafbfd}.cost-comp-table .cell-money{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:900px){.topnav{height:auto;min-height:52px;flex:0 0 auto;flex-wrap:wrap;padding:4px 8px;gap:8px}.nav-left{order:1;flex:0 0 auto;min-width:0}.notify-bell{order:2;margin:0 0 0 auto}.top-right{order:3;flex:1 1 100%;min-width:0;gap:8px;justify-content:flex-end}.nav-avatar,.role-badge,#logout{flex:0 0 auto}.role-badge{white-space:nowrap}}@media(max-width:640px){.top-right .deploy-btn,.top-right .sync-btn{display:none}.role-badge{font-size:var(--fs-12);padding:2px 8px}#logout{padding:4px 8px}.page-head{gap:8px;margin-bottom:8px;align-items:center}.page-head .ph-icon{width:30px;height:30px;flex:0 0 30px;font-size:var(--fs-16);border-radius:var(--r-sm)}.page-head h2{font-size:var(--fs-16)}.page-head .ph-sub{font-size:var(--fs-12);margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.filter-bar{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;margin:8px 0;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-bar>*{flex:0 0 auto}}.order-cards-wrap{overflow-y:auto;padding:8px 8px 16px}.order-cards{display:flex;flex-direction:column;gap:8px;max-width:720px;margin:0 auto}.order-card{background:var(--surface);border:1px solid var(--border, var(--border));border-radius:var(--r-sm);padding:12px;cursor:pointer;box-shadow:0 1px 2px #0000000a}.order-card:active{background:var(--theme-weak)}.oc-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.oc-no{font-weight:600;font-size:var(--fs-14);color:var(--text-1, #1f2329);word-break:break-all}.oc-cust{font-size:var(--fs-13);color:var(--text-2, var(--text-2));margin-top:4px}.oc-main{display:flex;align-items:baseline;gap:8px;margin-top:4px;flex-wrap:wrap}.oc-amt{font-size:var(--fs-18);font-weight:700;color:var(--theme)}.oc-unpaid{font-size:var(--fs-12);color:#d83931;font-weight:600}.oc-paid{font-size:var(--fs-12);color:#2ea121}.oc-meta{font-size:var(--fs-12);color:var(--text-3, var(--text-4));margin-top:4px}.oc-remark{font-size:var(--fs-12);color:var(--text-2, var(--text-2));margin-top:4px;padding-top:4px;border-top:1px dashed var(--border, #eef0f3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cust-detail-btn{padding:4px 8px;font-size:var(--fs-12);border-radius:var(--r-ctrl)}.cell-detail-btn{white-space:nowrap}.po-detail-box{max-width:min(1080px,calc(100vw - 48px))!important;width:auto!important;box-sizing:border-box!important;max-height:88vh;overflow:hidden;display:flex;flex-direction:column}.po-detail-box .modal-head{padding:16px 32px;font-size:var(--fs-16);font-weight:700;border-bottom:1px solid rgba(11,55,84,.08)}.po-detail-body{padding:20px 32px!important;overflow-y:auto;flex:1}.po-d-head{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#f5f8ff,#eef5f9);border:1px solid rgba(31,35,41,.06);border-radius:var(--r-ctrl);padding:20px 24px;margin-bottom:4px;flex-wrap:wrap;min-width:0;box-sizing:border-box}.po-d-sup{min-width:0;flex:1 1 320px}.po-d-sup-name{font-size:var(--fs-18);font-weight:700;color:var(--text-1);word-break:break-word;line-height:var(--lh-snug)}.po-d-sup-sub{font-size:var(--fs-13);color:var(--text-3);margin-top:4px;word-break:break-all;line-height:var(--lh-base)}.po-d-amts{display:flex;gap:36px;flex-shrink:0;flex-wrap:wrap}.po-d-amt{display:flex;flex-direction:column;align-items:flex-end;min-width:0}.po-d-amt-lab{font-size:var(--fs-12);color:var(--text-3)}.po-d-amt-val{font-size:var(--fs-22);font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums}.po-d-sec{font-size:var(--fs-14);font-weight:700;color:var(--text-1);margin:24px 0 8px;padding-left:12px;border-left:4px solid var(--primary,var(--theme))}.po-d-fold{cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between}.po-d-fold:hover{color:var(--primary,var(--theme))}.po-d-fold-ico{font-size:11px;font-weight:400;color:var(--text-4);transition:transform var(--dur-slow)}.po-d-fold.open .po-d-fold-ico{transform:rotate(90deg)}.po-d-sec-body{margin-bottom:8px}.po-d-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.po-d-row{display:flex;padding:8px 0;border-bottom:1px solid var(--surface-2);font-size:var(--fs-14);min-width:0;gap:8px}.po-d-row.po-d-wide{grid-column:1 / -1}.po-d-lab{width:104px;flex:none;color:var(--text-3)}.po-d-val{flex:1;color:var(--text-1);word-break:break-all;min-width:0;font-size:var(--fs-14);line-height:var(--lh-base)}@media(max-width:900px){.po-d-grid{grid-template-columns:1fr}.po-d-amts{gap:20px}.po-d-amt-val{font-size:var(--fs-18)}.po-detail-box{max-width:calc(100vw - 32px)!important}}.wo-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:var(--r-ctrl);padding:8px 12px 12px;box-shadow:0 1px 3px #17293d0d}.wo-row{cursor:pointer;transition:background var(--dur-base)}.wo-row:hover{background:#f6fafd}.wo-row.active{background:color-mix(in srgb,var(--theme) 6%,transparent)}.wo-row td:first-child b{display:block;font-size:var(--fs-13);color:var(--text-1)}.wo-sub{display:block;font-size:var(--fs-12);color:var(--text-4);margin-top:2px}.wo-due{font-size:var(--fs-12);color:var(--text-2);white-space:nowrap}.wo-due.soon{color:#b45309;background:#f59e0b1f;border-radius:var(--r-ctrl);padding:2px 8px;font-weight:600}.wo-due.over{color:var(--danger-ink);background:#ef44441f;border-radius:var(--r-ctrl);padding:2px 8px;font-weight:700}.wo-prog{position:relative;height:18px;background:var(--surface-2);border-radius:var(--r-ctrl);min-width:110px;overflow:hidden}.wo-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--info-ink),var(--theme));border-radius:var(--r-ctrl);transition:width .3s}.wo-prog span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:700;color:var(--text-1)}.wo-panel{margin-top:12px;border:1px solid #cfe3ef;border-radius:var(--r-ctrl);background:#f8fbfd;padding:12px}.wo-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}.wo-panel-head b{font-size:var(--fs-14);color:var(--text-1)}.wo-panel-meta{font-size:var(--fs-12);color:var(--text-2);background:#fff;border:1px solid #e2e8f0;border-radius:var(--r-sm);padding:4px 8px}.wo-matrix{width:100%;border-collapse:collapse;font-size:var(--fs-13);background:#fff;border-radius:var(--r-ctrl);overflow:hidden}.wo-matrix th{font-size:var(--fs-12);color:var(--text-3);font-weight:600;padding:8px 12px;background:#f3f7fa;border-bottom:1px solid #e2e8f0;text-align:center;white-space:nowrap}.wo-matrix th:first-child,.wo-matrix td:first-child{text-align:left}.wo-matrix td{padding:8px;border-bottom:1px solid var(--surface-2);text-align:center;color:var(--text-1)}.wo-cell{min-width:64px;padding:4px 12px;border-radius:var(--r-sm);border:1px solid #cfe3ef;background:#fff;color:var(--ok-ink);font-weight:700;font-size:var(--fs-12);cursor:pointer;transition:all var(--dur-base);font-family:inherit}.wo-cell:hover:not(:disabled){border-color:var(--theme);background:color-mix(in srgb,var(--theme) 8%,transparent);transform:translateY(-1px)}.wo-cell:active:not(:disabled){transform:none}.wo-cell.full{background:var(--ok-bg);border-color:#b6e4cb;color:#15803d;cursor:default}.wo-cell.none{background:var(--bg);color:#b6c0ca;cursor:default;border-style:dashed}.wo-cell:disabled{opacity:.75;cursor:default}.wo-tip{margin:8px 2px 0;font-size:var(--fs-12);color:var(--text-4)}.od-prod-info{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12);border-radius:var(--r-sm);padding:4px 12px;font-weight:600}.od-prod-info.done{background:var(--ok-bg);color:#15803d;border:1px solid #b6e4cb}.od-prod-info.doing{background:color-mix(in srgb,var(--theme) 9%,transparent);color:var(--ok-ink);border:1px solid #cfe3ef}@media(max-width:900px){.wo-matrix{font-size:var(--fs-12)}.wo-cell{min-width:48px;padding:4px}}.wo-form-preview{display:flex;flex-wrap:wrap;gap:4px 16px;background:color-mix(in srgb,var(--theme) 6%,transparent);border:1px solid color-mix(in srgb,var(--theme) 14%,transparent);border-radius:var(--r-sm);padding:8px 12px;font-size:var(--fs-12);color:var(--text-2);margin:8px 0 12px}.wo-form-preview b{color:var(--text-1)}.wo-pieces-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-13);font-weight:700;color:var(--text-1);margin:12px 0 8px}.wo-piece-list{display:flex;flex-direction:column;gap:8px}.wo-piece-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 56px auto 26px;gap:4px;align-items:center}.wo-piece-row input{height:34px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);padding:0 8px;font-size:var(--fs-12);font-family:inherit;min-width:0;width:100%;box-sizing:border-box}.wo-piece-row .wo-p-paint{display:flex;align-items:center;gap:4px;font-size:var(--fs-12);color:var(--text-2);white-space:nowrap}.wo-piece-row .wo-p-del{width:28px;height:34px;border:none;border-radius:var(--r-sm);background:var(--danger-bg);color:var(--danger-ink);font-size:var(--fs-14);cursor:pointer}.wo-piece-row .wo-p-del:disabled{opacity:.35;cursor:default}@media(max-width:640px){.wo-piece-row{grid-template-columns:1fr 1fr}.wo-piece-row .wo-p-paint{grid-column:1}.wo-piece-row .wo-p-del{grid-column:2;justify-self:end}}.wo-qcship{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}.wo-qs-block{flex:1;min-width:260px;border:1px solid #e2e8f0;border-radius:var(--r-sm);background:#fff;padding:8px 12px}.wo-qs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-13);font-weight:700;color:var(--text-1);margin-bottom:4px}.wo-qs-badge{font-size:var(--fs-12);font-weight:700;border-radius:var(--r-ctrl);padding:2px 8px}.wo-qs-badge.ok{background:var(--ok-bg);color:#15803d}.wo-qs-badge.bad{background:var(--danger-bg);color:var(--danger-ink)}.wo-qs-badge.info{background:color-mix(in srgb,var(--theme) 10%,transparent);color:var(--ok-ink)}.wo-qs-badge.warn{background:var(--warn-bg);color:#b45309}.wo-qs-badge.none{background:var(--bg);color:var(--text-4)}.wo-qs-body{font-size:var(--fs-12);color:var(--text-2);line-height:var(--lh-relaxed);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.wo-qs-btn{padding:4px 8px;font-size:var(--fs-12);border-radius:var(--r-ctrl);border:1px solid #cfe3ef;background:var(--surface);color:var(--ok-ink);cursor:pointer;font-family:inherit}.wo-qs-btn:hover{background:color-mix(in srgb,var(--theme) 8%,transparent);border-color:var(--theme)}.wo-qs-btn.primary{background:var(--theme-strong);color:#fff;border-color:var(--theme-strong)}.wo-qs-tip{color:var(--text-4)}.wo-dlg{width:420px;max-width:94vw;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 18px 48px #17293d38;overflow:hidden}.wo-dlg .oss-drawer-body{padding:12px 16px 20px}.wo-dlg .oss-btn.primary{width:100%;margin-top:12px;height:38px}.od-prod-info.bad{background:var(--danger-bg);color:var(--danger-ink);border:1px solid #f5c2c2}@media(max-width:900px){.wo-qs-block{min-width:100%}}.od-tl-section{padding-top:2px}.od-chain{display:flex;align-items:flex-start;margin:6px 0 14px;overflow-x:auto;padding-bottom:2px}.od-chain-step{flex:1;min-width:76px;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;padding:0 2px}.od-chain-step:not(:first-child):before{content:"";position:absolute;top:7px;right:50%;width:100%;height:2px;background:var(--border)}.od-chain-step.done:not(:first-child):before{background:var(--ok)}.od-chain-step.cur:not(:first-child):before{background:var(--theme)}.od-chain-dot{width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--border);z-index:1;margin-top:1px}.od-chain-step.done .od-chain-dot{background:var(--ok);border-color:var(--ok)}.od-chain-step.cur .od-chain-dot{background:var(--theme-strong);border-color:var(--theme-strong);box-shadow:0 0 0 4px color-mix(in srgb,var(--theme) 18%,transparent)}.od-chain-name{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap}.od-chain-step.done .od-chain-name{color:var(--text-1);font-weight:600}.od-chain-step.cur .od-chain-name{color:var(--theme-strong);font-weight:700}.od-chain-date{font-size:var(--fs-11);color:var(--text-3)}.od-chain-cancel{display:inline-block;margin:2px 0 10px;padding:2px 10px;border-radius:var(--r-pill);background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;font-size:var(--fs-12)}.od-tl-sub{margin:6px 0 8px;font-size:var(--fs-12);color:var(--text-3);font-weight:500}.od-timeline{display:flex;flex-direction:column;max-height:340px;overflow-y:auto;padding-right:4px}.od-tl-item{display:flex;gap:8px}.od-tl-rail{width:14px;flex:0 0 14px;display:flex;flex-direction:column;align-items:center}.od-tl-dot{width:10px;height:10px;border-radius:50%;background:var(--border);border:2px solid var(--surface);flex:0 0 auto;margin-top:5px}.od-tl-item.done .od-tl-dot{background:var(--ok)}.od-tl-item.cur .od-tl-dot{background:#f59e0b}.od-tl-item.mute .od-tl-dot{background:#94a3b8}.od-tl-line{width:2px;flex:1;background:var(--surface-2);margin:2px 0}.od-tl-item:last-child .od-tl-line{display:none}.od-tl-body{flex:1;min-width:0;padding-bottom:10px}.od-tl-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.od-tl-head b{font-size:var(--fs-13);color:var(--text-1);font-weight:600}.od-tl-item.mute .od-tl-head b{color:var(--text-3);text-decoration:line-through}.od-tl-at{font-size:var(--fs-11);color:var(--text-3);flex:0 0 auto}.od-tl-meta{font-size:var(--fs-12);color:var(--text-3);margin-top:2px;line-height:var(--lh-base)}.od-tl-empty{color:var(--text-3);font-size:var(--fs-12);padding:8px 0 4px}.od-tl-del{flex:0 0 auto;align-self:flex-start;margin-top:2px;width:22px;height:22px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-3);font-size:var(--fs-12);line-height:1;cursor:pointer;opacity:.55;transition:opacity var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.od-tl-item:hover .od-tl-del{opacity:1}.od-tl-del:hover{color:var(--danger-ink);border-color:#e7a3a3;background:var(--surface)}@media(max-width:640px){.od-chain-step{min-width:64px}.od-timeline{max-height:260px}}.wo-view-tabs{display:flex;gap:8px;margin:8px 0 12px}.wvt-btn{padding:4px 16px;font-size:var(--fs-12);border-radius:var(--r-ctrl);border:1px solid #dfe4ea;background:var(--surface);color:var(--text-2);cursor:pointer;font-family:inherit}.wvt-btn.active{background:var(--theme-strong);color:#fff;border-color:var(--theme-strong);font-weight:700}.wo-week{background:#fff;border:1px solid #e2e8f0;border-radius:var(--r-ctrl);padding:12px}.wo-wk-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.wo-wk-bar button{padding:4px 12px;font-size:var(--fs-12);border-radius:var(--r-sm);border:1px solid #cfe3ef;background:#fff;color:var(--ok-ink);cursor:pointer;font-family:inherit}.wo-wk-bar button:hover:not(:disabled){background:color-mix(in srgb,var(--theme) 8%,transparent)}.wo-wk-bar button:disabled{opacity:.45;cursor:default}.wo-wk-range{font-size:var(--fs-14);color:var(--text-1)}.wo-wk-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr)) minmax(140px,.8fr);gap:8px;overflow-x:auto;padding-bottom:4px}.wo-wk-col{border:1px solid #e2e8f0;border-radius:var(--r-sm);background:#fbfdfe;min-height:150px;display:flex;flex-direction:column}.wo-wk-col.today{border-color:var(--theme);background:color-mix(in srgb,var(--theme) 5%,transparent)}.wo-wk-col.wo-wk-free{background:#f7f8fa;border-style:dashed}.wo-wk-head{display:flex;align-items:center;gap:4px;padding:8px;border-bottom:1px solid var(--surface-2);font-size:var(--fs-12);color:var(--text-2);flex-wrap:wrap}.wo-wk-wd{font-weight:700;color:var(--text-1);font-size:var(--fs-12)}.wo-wk-md{color:var(--text-4)}.wo-wk-today{margin-left:2px;background:var(--theme);color:#fff;border-radius:var(--r-6);padding:1px 4px;font-size:var(--fs-12);font-weight:700}.wo-wk-cnt{margin-left:auto;font-size:var(--fs-12);color:var(--ok-ink);font-weight:600}.wo-wk-body{flex:1;padding:8px;display:flex;flex-direction:column;gap:8px}.wo-wk-none{color:#c3ccd4;font-size:var(--fs-12);padding:4px 2px}.wo-card{border:1px solid #dfe4ea;border-left:3px solid var(--theme);border-radius:var(--r-sm);background:var(--surface);padding:8px;cursor:pointer;transition:box-shadow var(--dur-base),transform var(--dur-base)}.wo-card:hover{box-shadow:0 3px 10px #17293d1a;transform:translateY(-1px)}.wo-card.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 35%,transparent)}.wo-card.done{border-left-color:#15803d}.wo-card.over{border-left-color:#dc2626}.wo-card.soon{border-left-color:#f59e0b}.wo-card-top{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:var(--fs-12);color:var(--text-1)}.wo-card-top span{font-size:var(--fs-12);color:var(--text-4);white-space:nowrap}.wo-card-cust{font-size:var(--fs-12);color:var(--text-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wo-card-prod{font-size:var(--fs-12);color:var(--text-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wo-card .wo-prog{height:12px;margin-top:4px;min-width:0}.wo-card .wo-prog span{font-size:9.5px}.wo-card-tag{display:inline-block;margin-top:4px;font-size:var(--fs-12);border-radius:var(--r-sm);padding:1px 4px;margin-right:4px}.wo-card-tag.ok{background:var(--ok-bg);color:#15803d}.wo-card-tag.bad{background:var(--danger-bg);color:var(--danger-ink)}.wo-card-tag.info{background:color-mix(in srgb,var(--theme) 10%,transparent);color:var(--theme-strong)}@media(max-width:1280px){.wo-wk-grid{grid-template-columns:repeat(7,minmax(110px,1fr)) minmax(130px,.8fr)}}@media(max-width:900px){.wo-wk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stmt-mask{position:fixed;inset:0;z-index:var(--zi-modal);background:#17293d73;overflow:auto;padding:24px 16px}.stmt-sheet{max-width:920px;margin:0 auto;background:#fff;border-radius:var(--r-ctrl);box-shadow:0 18px 48px #17293d47;padding:28px 32px 32px;color:var(--text-1)}.stmt-bar{display:flex;gap:8px;justify-content:flex-end;margin-bottom:12px}.stmt-head{text-align:center;border-bottom:2px solid var(--info-ink);padding-bottom:12px}.stmt-head h1{font-size:var(--fs-18);margin:0 0 4px;letter-spacing:1px}.stmt-head h2{font-size:var(--fs-14);margin:0 0 12px;letter-spacing:4px;color:var(--info-ink)}.stmt-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 24px;font-size:var(--fs-12);color:var(--text-2)}.stmt-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0 4px}.stmt-sum-cell{border:1px solid #e2e8f0;border-radius:var(--r-ctrl);padding:8px 12px;background:#fbfdfe}.stmt-sum-cell label{display:block;font-size:var(--fs-12);color:var(--text-3);margin-bottom:4px}.stmt-sum-cell b{font-size:var(--fs-16);color:var(--text-1)}.stmt-sum-cell.hi{border-color:var(--info-ink);background:color-mix(in srgb,var(--theme) 6%,transparent)}.stmt-sum-cell.hi b{color:var(--info-ink)}.stmt-sec{margin-top:20px}.stmt-sec h3{font-size:var(--fs-13);margin:0 0 8px;color:var(--text-1);border-left:3px solid var(--info-ink);padding-left:8px}.stmt-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-12)}.stmt-tbl th{background:#f3f7fa;color:var(--text-2);font-weight:600;text-align:left;padding:8px;border:1px solid #e2e8f0;white-space:nowrap}.stmt-tbl td{padding:4px 8px;border:1px solid var(--surface-2);color:var(--text-1)}.stmt-tbl td.num{text-align:right;font-variant-numeric:tabular-nums}.stmt-tbl tr:nth-child(2n) td{background:#fcfdfe}.stmt-total td{font-weight:700;background:#f3f7fa!important}.stmt-none{padding:16px;text-align:center;color:var(--text-4);font-size:var(--fs-12);background:#fafbfc;border-radius:var(--r-sm)}.stmt-foot{margin-top:20px;border-top:1px dashed #cbd5e1;padding-top:12px;font-size:var(--fs-12);color:var(--text-3)}.stmt-foot p{margin:0 0 12px}.stmt-sign{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}@media(max-width:900px){.stmt-sheet{padding:20px 12px}.stmt-sum{grid-template-columns:repeat(2,1fr)}.stmt-tbl{font-size:var(--fs-12)}}@media print{body *{visibility:hidden!important}#stmtView,#stmtView *{visibility:visible!important}.stmt-mask{position:static;inset:auto;background:#fff;padding:0;overflow:visible}.stmt-sheet{max-width:none;box-shadow:none;border-radius:0;padding:0;margin:0}.no-print{display:none!important}.stmt-tbl th,.stmt-total td{background:var(--border-light)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.stmt-sec{page-break-inside:avoid}}.ovt-btn.dalert-btn{margin-left:auto;border-color:#f0b429;color:#b45309;background:var(--warn-bg)}.ovt-btn.dalert-btn:hover{background:#fef3c7}.dalert-n.bad{background:#dc2626}.dalert-n.warn{background:#f59e0b}.dal-box .oss-drawer-body{overflow:auto;padding:12px 16px 16px}.dal-row.over{border-left-color:#dc2626}.dal-row.soon{border-left-color:#f59e0b}.dal-row.stale{opacity:.72}.wc-policy{display:flex;flex-direction:column;gap:8px;margin:8px 0 12px}.wc-policy-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:var(--r-ctrl);background:#fff}.wc-policy-row:hover{background:#f8fafc}.wc-policy-txt b{display:block;font-size:var(--fs-13);color:var(--text-1)}.wc-policy-txt span{font-size:var(--fs-12);color:var(--text-3)}.cr-tbl .cr-ledger-row:hover td{background:color-mix(in srgb,var(--theme) 8%,transparent)}.cr-tbl .cr-ledger-row:active td{background:color-mix(in srgb,var(--theme) 15%,transparent)}.cr-tbl .cr-ledger-row.nolink{cursor:not-allowed;opacity:.75}.cr-tbl .cr-ledger-go{color:var(--ok-ink);font-size:var(--fs-12);white-space:nowrap}.cr-tbl .cr-ledger-row.nolink .cr-ledger-go{color:#b8bec4}.cr-tbl th.num,.cr-tbl td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cr-tbl td.cr-num-bad{color:var(--danger);font-weight:700}.cr-tbl .cr-ledger-row{cursor:pointer;transition:background var(--dur-fast)}.cr-tbl .cr-ledger-row:hover td{background:color-mix(in srgb,var(--theme) 8%,transparent)!important}.cr-tbl .cr-ledger-row:active td{background:color-mix(in srgb,var(--theme) 15%,transparent)!important}.cr-tbl .cr-ledger-row.nolink{cursor:not-allowed}.cr-pager{display:flex;align-items:center;gap:4px;padding:8px 2px 2px;flex-wrap:wrap}.cr-pager .cr-btn[disabled]{opacity:.45;cursor:not-allowed}.cr-pager select{padding:4px 8px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-12)}.cr-initbar{margin-bottom:12px}.cr-initbar summary{cursor:pointer;font-size:var(--fs-12);color:var(--theme);padding:4px 2px;user-select:none}.cr-initbar summary:hover{text-decoration:underline}.cwb-wrap{padding:4px 2px 24px}.cwb-ct{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:8px 10px;margin-bottom:6px;background:var(--surface)}.cwb-ct-hd{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cwb-ct-hd>b{font-size:var(--fs-13);color:var(--text-1)}.cwb-ct-ops{margin-left:auto;display:flex;gap:4px}.cwb-role{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-pill);font-weight:500;white-space:nowrap}.cwb-role.dec{background:var(--ok-bg);color:#15803d}.cwb-role.own{background:#00bfa629;color:var(--theme-strong)}.cwb-role.tech{background:#e8f1ff;color:var(--theme)}.cwb-role.fin{background:#f4edfa;color:#7c3aed}.cwb-role.oth{background:var(--surface-3);color:var(--text-2)}.cwb-ct-chs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.cwb-ch{font-size:var(--fs-12);padding:2px 8px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-2);cursor:pointer}.cwb-ch:hover{background:color-mix(in srgb,var(--theme) 14%,transparent);color:var(--theme-strong)}.cwb-ch.pri{background:color-mix(in srgb,var(--theme) 12%,transparent);color:var(--theme-strong);cursor:default}.cwb-ch.pri b{font-weight:700}.cwb-ct-rm{font-size:var(--fs-12);margin-top:4px}.cwb-ch-row{display:flex;gap:6px;align-items:center;margin-bottom:6px}.cwb-ch-row .cwb-ch-type{flex:0 0 92px}.cwb-ch-row .cwb-ch-val{flex:1;min-width:0}.cwb-ch-pri{width:28px;height:28px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-4);cursor:pointer;flex:0 0 auto}.cwb-ch-pri.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.cwb-ch-del{width:28px;height:28px;border:none;border-radius:var(--r-ctrl);background:var(--danger-bg);color:var(--danger);cursor:pointer;flex:0 0 auto}.cwb-fu-filter{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.cwb-fu-note{font-size:var(--fs-12);color:var(--text-3);margin-bottom:4px}.cwb-fu-hd{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cwb-fu-ops{margin-left:auto}.cwb-fu-res{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-pill);font-weight:500}.cwb-fu-res.ok{background:var(--ok-bg);color:#15803d}.cwb-fu-res.dim{background:var(--surface-3);color:var(--text-2)}.cwb-fu-res.win{background:var(--theme-strong);color:#fff}.cwb-fu-res.bad{background:var(--danger-bg);color:var(--danger-ink, var(--danger))}.cwb-fu-res.wait{background:var(--warn-bg, #fef9e6);color:var(--warn-ink, #8a5612)}.cwb-vis-box{max-height:132px;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--r-ctrl);padding:6px 8px;display:flex;flex-wrap:wrap;gap:4px 14px}.cwb-vis-item{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;white-space:nowrap}.cwb-vis-item input{margin:0}.cwb-search-field{min-width:0;position:relative}.cwb-search-select{position:relative;min-width:0}.cwb-search-input{width:100%;min-width:0;min-height:38px;box-sizing:border-box;padding-right:60px}.cwb-search-toggle,.cwb-search-clear{position:absolute;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--text-3);cursor:pointer;z-index:2}.cwb-search-toggle{right:5px;width:30px;height:30px;padding:0;font-size:18px;line-height:1}.cwb-search-clear{right:34px;width:24px;height:24px;padding:0;border-radius:50%;font-size:17px;line-height:1}.cwb-search-clear:hover{background:var(--surface-3);color:var(--danger)}.cwb-search-toggle:hover{color:var(--theme-strong)}.cwb-search-clear[hidden]{display:none}.cwb-search-select.is-selected .cwb-search-input{border-color:color-mix(in srgb,var(--theme) 55%,var(--border-strong))}.cwb-search-select.is-invalid .cwb-search-input{border-color:var(--danger)}.cwb-search-menu{position:absolute;z-index:80;top:calc(100% + 6px);left:0;right:0;max-height:286px;overflow-y:auto;box-sizing:border-box;padding:4px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);background:var(--surface);box-shadow:var(--shadow-1)}.cwb-search-select.drop-up .cwb-search-menu{top:auto;bottom:calc(100% + 6px)}.cwb-search-count{position:sticky;top:-4px;z-index:1;padding:6px 9px;background:var(--surface);color:var(--text-3);font-size:var(--fs-11);border-bottom:1px solid var(--border-light)}.cwb-search-option{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:8px 9px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-1);text-align:left;cursor:pointer}.cwb-search-option:hover,.cwb-search-option.active{background:var(--theme-weak)}.cwb-search-option-name{min-width:0;font-size:var(--fs-13);font-weight:600;overflow-wrap:anywhere}.cwb-search-option-meta{grid-column:1;color:var(--text-3);font-size:var(--fs-11);line-height:1.45;overflow-wrap:anywhere}.cwb-search-option-check{grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--theme-strong);font-weight:700}.cwb-search-option.selected .cwb-search-option-name{color:var(--theme-strong)}.cwb-search-empty{padding:16px 10px;color:var(--text-3);font-size:var(--fs-12);text-align:center}.cwb-search-hint{min-height:18px;margin-top:4px;color:var(--text-3);font-size:var(--fs-12);line-height:1.5}.cwb-search-hint.is-ok{color:var(--ok-ink)}.cwb-search-hint.is-error{color:var(--danger-ink)}.cwb-acquisition-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.cwb-acquisition-head .cwb-btn{flex:none;font-weight:400}.cwb-permission-grid{gap:14px 20px;align-items:start}.cwb-permission-grid>.cwb-f>.cwb-input{width:100%;min-height:38px;box-sizing:border-box}.cwb-switch-row{display:flex!important;align-items:center;gap:10px;min-height:38px;margin:0!important;color:var(--text-2)!important;cursor:pointer}.cwb-switch-row input{position:absolute;width:1px;height:1px;opacity:0}.cwb-switch-track{position:relative;flex:0 0 40px;width:40px;height:22px;border-radius:var(--r-pill);background:var(--surface-3);transition:background var(--dur-fast)}.cwb-switch-track i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform var(--dur-fast)}.cwb-switch-row input:checked+.cwb-switch-track{background:var(--theme-strong)}.cwb-switch-row input:checked+.cwb-switch-track i{transform:translate(18px)}.cwb-switch-row input:focus-visible+.cwb-switch-track{box-shadow:var(--focus-ring)}.cwb-selected-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.cwb-selected-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 8px;border-radius:var(--r-pill);background:var(--theme-weak);color:var(--theme-strong);font-size:var(--fs-12)}.cwb-selected-chip button{border:0;padding:0 2px;background:transparent;color:inherit;cursor:pointer;font-size:15px}.cwb-vis-filter{width:100%;min-height:38px;box-sizing:border-box;margin-bottom:6px}.cwb-visible-field .cwb-vis-box{max-height:190px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;padding:6px;background:var(--surface)}.cwb-visible-field .cwb-vis-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;padding:6px;border-radius:var(--r-sm);white-space:normal}.cwb-visible-field .cwb-vis-item:hover{background:var(--surface-2)}.cwb-vis-name{color:var(--text-1);font-weight:600}.cwb-vis-meta{flex:1 1 100%;padding-left:21px;color:var(--text-3);font-size:var(--fs-11);line-height:1.4;overflow-wrap:anywhere}#fAcquisitionSection.is-telesales{border-color:color-mix(in srgb,var(--theme) 35%,var(--border-light))}#fAcquisitionSection.is-acquisition-focus{animation:cwbAcqFocus 1.2s ease-out}@keyframes cwbAcqFocus{0%,35%{box-shadow:0 0 0 3px color-mix(in srgb,var(--theme) 22%,transparent)}to{box-shadow:none}}@media(max-width:640px){.cwb-permission-grid,.cwb-visible-field .cwb-vis-box{grid-template-columns:1fr}.cwb-search-menu{max-height:250px}}.cwb-groups{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.cwb-grp{padding:5px 12px;border:1px solid var(--border-light);border-radius:var(--r-pill, 100px);background:var(--surface);color:var(--text-2);font-size:var(--fs-13);cursor:pointer;white-space:nowrap}.cwb-grp:hover{border-color:var(--theme);color:var(--theme)}.cwb-grp.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.cwb-grp-n{display:inline-block;margin-left:3px;font-size:var(--fs-12);opacity:.75;font-variant-numeric:tabular-nums}.cwb-dtabs{display:flex;gap:6px;overflow-x:auto;margin:12px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border-light);scrollbar-width:thin}.cwb-dtab{flex:0 0 auto;padding:5px 12px;border:1px solid var(--border-light);border-radius:var(--r-pill, 100px);background:var(--surface);color:var(--text-2);font-size:var(--fs-13);cursor:pointer;white-space:nowrap}.cwb-dtab:hover{border-color:var(--theme);color:var(--theme-strong)}.cwb-dtab.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.cwb-dpanel{min-width:0}.cwb-d2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}@media(max-width:900px){.cwb-d2col{grid-template-columns:1fr}}.cwb-card.is-restricted{background:color-mix(in srgb,var(--surface) 92%,var(--surface-3))}.cwb-mini-lock{color:var(--text-3);font-size:var(--fs-12)}.cwb-mini-redact{display:flex;gap:8px;margin-top:10px;filter:blur(3px);opacity:.45;user-select:none}.cwb-mini-redact i{display:block;height:9px;border-radius:6px;background:var(--text-3)}.cwb-mini-redact i:nth-child(1){width:31%}.cwb-mini-redact i:nth-child(2){width:24%}.cwb-mini-redact i:nth-child(3){width:37%}.cwb-restricted-notice{margin:10px 0;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-13);line-height:1.6}.cwb-kpi-locked{overflow:hidden}.cwb-masked-value{filter:blur(5px);opacity:.45;user-select:none}.cwb-dtab:disabled{cursor:not-allowed;opacity:.62;color:var(--text-2)!important;pointer-events:none}.cwb-dtab:disabled:hover{border-color:var(--border-light);color:var(--text-2)!important}.cwb-redacted-grid{align-items:stretch}.cwb-redacted{position:relative;min-height:154px;padding:12px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface-2);overflow:hidden}.cwb-redacted .cwb-dsec{position:relative;z-index:2}.cwb-redacted-body{display:flex;flex-direction:column;gap:12px;margin-top:18px;filter:blur(6px);opacity:.48;pointer-events:none;user-select:none}.cwb-redacted-body i{display:block;width:88%;height:10px;border-radius:8px;background:var(--text-3)}.cwb-redacted-body i:nth-child(2){width:64%}.cwb-redacted-body i:nth-child(3){width:76%}.cwb-redacted-body i:nth-child(4){width:48%}.cwb-redacted-mask{position:absolute;inset:52px 0 0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;background:color-mix(in srgb,var(--surface-2) 48%,transparent);backdrop-filter:blur(2px)}.cwb-redacted-mask b{color:var(--text-2);font-size:var(--fs-13)}.cwb-redacted-mask span{color:var(--text-3);font-size:var(--fs-12)}.cwb-handover-title{margin-top:18px;padding-top:14px;border-top:1px solid var(--border-light)}.cwb-handover-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.cwb-handover-item{padding:10px 12px;border:1px solid var(--border-light);border-left:3px solid var(--theme);border-radius:var(--r-ctrl);background:var(--surface)}.cwb-handover-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.cwb-handover-top b{color:var(--theme-strong);font-size:var(--fs-13)}.cwb-handover-top span{color:var(--text-3);font-size:var(--fs-12);font-variant-numeric:tabular-nums}.cwb-handover-changes{margin:7px 0 5px;color:var(--text-1);font-size:var(--fs-13);line-height:1.7}.cwb-handover-note{margin-top:7px;padding:7px 9px;border-radius:var(--r-sm, 6px);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-12);line-height:1.6;white-space:pre-wrap}.cwb-handover-current{margin-bottom:12px;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-13);line-height:1.6}.cwb-handover-modal{max-width:760px}.cwb-kv-edit select{max-width:150px;padding:3px 6px;font-size:var(--fs-13)}.cwb-photowall{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin:6px 0 4px}.cwb-photo{position:relative;display:block;aspect-ratio:1 / 1;border:1px solid var(--border-light);border-radius:var(--r-sm, 6px);overflow:hidden;background:var(--surface-3);cursor:pointer;padding:0}.cwb-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .18s ease}.cwb-photo:hover img{transform:scale(1.06)}.cwb-photo:hover{border-color:var(--theme)}.cwb-photo-x{position:absolute;top:2px;right:2px;width:18px;height:18px;line-height:16px;text-align:center;border:none;border-radius:50%;background:#0000009e;color:#fff;font-size:12px;cursor:pointer;padding:0}.cwb-photo-x:hover{background:var(--danger)}.sup-wrap{display:flex;flex-direction:column;gap:10px}.sup-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sup-input{padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13);background:var(--surface);color:var(--text-1);outline:none}.sup-input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}#supKw{min-width:220px;flex:1;max-width:320px}.sup-btn{padding:7px 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-1);font-size:var(--fs-13);cursor:pointer;white-space:nowrap}.sup-btn:hover{border-color:var(--theme);color:var(--theme-strong)}.sup-btn.primary{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.sup-btn.primary:hover{background:var(--theme)}.sup-btn.sm{padding:4px 10px;font-size:var(--fs-12)}.sup-btn:disabled{opacity:.5;cursor:default}.sup-groups{display:flex;gap:6px;flex-wrap:wrap}.sup-grp{padding:5px 12px;border:1px solid var(--border-light);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.sup-grp:hover{border-color:var(--theme);color:var(--theme-strong)}.sup-grp.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.sup-grp-n{font-size:var(--fs-12);opacity:.8;margin-left:2px}.sup-panes{display:grid;grid-template-columns:340px minmax(0,1fr);gap:14px;align-items:start;min-height:0}.sup-list-meta{font-size:var(--fs-12);color:var(--text-3);margin-bottom:6px}.sup-list{height:calc(100vh - 280px);min-height:320px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:8px;padding-right:4px}.sup-detail{min-width:0;max-height:calc(100vh - 280px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.sup-detail .sup-ov{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--theme) 5%,var(--surface))}.sup-card{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface);cursor:pointer;transition:border-color .12s}.sup-card:hover{border-color:var(--theme)}.sup-card.on{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 14%,transparent)}.sup-card-t{display:flex;align-items:center;gap:8px;margin-bottom:5px}.sup-card-name{font-size:var(--fs-14);font-weight:600;color:var(--text-1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sup-card-l2{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.sup-card-l3{font-size:var(--fs-12);color:var(--text-3)}.sup-pager{position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;padding:7px 2px;background:var(--surface)}.sup-pager .sup-input{width:auto;padding:4px 6px;font-size:var(--fs-12)}.sup-mobile-toggle{display:none}.sup-card{flex:0 0 auto}@media(max-width:960px){.sup-mobile-toggle{display:block;width:100%;margin:8px 0;position:sticky;top:0;z-index:8;background:var(--surface)}.sup-panes .sup-list{height:min(48vh,360px);min-height:220px}.sup-panes.supplier-selected .sup-list{display:none}.sup-panes:not(.supplier-selected) .sup-detail{display:none}.sup-detail{max-height:none;overflow:visible;padding-right:0}}.sup-lv{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-pill);font-weight:600;white-space:nowrap}.sup-lv.lv-strategic{background:#fbe9d0;color:#b45309;font-weight:600}.sup-lv.lv-common{background:#e8f1ff;color:var(--theme)}.sup-lv.lv-normal{background:var(--surface-3);color:var(--text-2)}.sup-lv.lv-none{background:var(--surface-3);color:var(--text-3)}html.dark .sup-lv.lv-strategic{background:#b4530940;color:#fbbf24}html.dark .sup-lv.lv-common{background:#3b82f633;color:#93c5fd}.sup-enum-row{display:flex;gap:6px;align-items:center}.sup-enum-row .sup-input{flex:1;min-width:0}.sup-enum-add{flex:0 0 auto;width:30px;height:30px;border:1px dashed var(--border-strong);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-3);font-size:14px;cursor:pointer;line-height:1}.sup-enum-add:hover{border-color:var(--theme);color:var(--theme-strong);border-style:solid}.sup-grade-cur{font-size:var(--fs-13);color:var(--text-2)}.sup-status{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-pill);white-space:nowrap}.sup-status.on{background:var(--ok-bg);color:#15803d}.sup-status.pause{background:var(--surface-3);color:var(--text-2)}.sup-status.eval{background:var(--warn-bg, #fef9e6);color:var(--warn-ink, #8a5612)}.sup-status.bad{background:var(--danger-bg);color:var(--danger-ink, var(--danger))}.sup-cat{font-size:var(--fs-12);color:var(--text-3)}.sup-flag{font-size:var(--fs-12);padding:0 6px;border-radius:var(--r-pill)}.sup-flag.eval{background:#f4edfa;color:#7c3aed}.sup-detail{min-height:400px}.sup-empty,.sup-empty-lg{border:1px dashed var(--border-light);border-radius:var(--r-sm);padding:24px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.sup-empty-lg{padding:60px 24px}.sup-empty.sm{padding:10px 12px;font-size:var(--fs-12);margin:6px 0}.sup-loading{padding:30px;text-align:center;color:var(--text-3)}.sup-ov{border:1px solid color-mix(in srgb,var(--theme) 26%,transparent);background:color-mix(in srgb,var(--theme) 5%,transparent);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:12px}.sup-ov-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sup-ov-name{font-size:var(--fs-18);font-weight:700;color:var(--text-1)}.sup-ov-l2{font-size:var(--fs-13);color:var(--text-2);margin:6px 0 10px}.sup-ov-ops{display:flex;gap:8px;align-items:center}.sup-more{position:relative}.sup-more-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:128px;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--r-sm);box-shadow:0 6px 18px #0000001f;padding:4px;display:none;z-index:30}.sup-more-menu.open{display:block}.sup-mi{display:block;width:100%;text-align:left;padding:7px 10px;border:none;background:none;font-size:var(--fs-13);color:var(--text-1);border-radius:var(--r-ctrl);cursor:pointer}.sup-mi:hover{background:var(--surface-3)}.sup-mi.warn{color:var(--warn-ink, #8a5612)}.sup-mi.danger{color:var(--danger)}.sup-sec{font-size:var(--fs-14);font-weight:600;color:var(--text-1);margin:16px 0 8px;padding-top:4px}.sup-subsec{font-size:var(--fs-12);color:var(--text-3);margin:10px 0 5px;font-weight:500}.sup-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.sup-kpi{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:8px 10px;background:var(--surface)}.sup-kpi-l{font-size:var(--fs-12);color:var(--text-3)}.sup-kpi-v{font-size:var(--fs-16);font-weight:700;color:var(--text-1);margin-top:2px;font-variant-numeric:tabular-nums}.sup-kpi-v[class*=empty]{color:var(--text-4);font-weight:400;font-size:var(--fs-13);padding:0!important;text-align:left}.sup-kpi-v[class*=empty]:before{content:none!important;display:none!important;background:none!important}.sup-kpi-h{font-size:var(--fs-12);color:var(--text-3);margin-top:1px}.sup-note.warn{margin-top:8px;padding:8px 12px;background:var(--warn-bg, #fef9e6);color:var(--warn-ink, #8a5612);border:1px solid color-mix(in srgb,var(--warn, #c07a1f) 32%,transparent);border-radius:var(--r-sm);font-size:var(--fs-13)}.sup-kvgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 12px}.sup-kv{font-size:var(--fs-13);color:var(--text-2)}.sup-kv span{color:var(--text-3);margin-right:6px}.sup-kv b{color:var(--text-1);font-weight:500}.sup-photowall{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-top:8px}.sup-photo{position:relative;display:block;aspect-ratio:1 / 1;border:1px solid var(--border-light);border-radius:var(--r-sm, 6px);overflow:hidden;background:var(--surface-3);cursor:pointer;padding:0}.sup-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .18s ease}.sup-photo:hover img{transform:scale(1.06)}.sup-photo:hover{border-color:var(--theme, #2563eb)}.sup-photo-x{position:absolute;top:2px;right:2px;width:18px;height:18px;line-height:16px;text-align:center;border:none;border-radius:50%;background:#0000009e;color:#fff;font-size:12px;cursor:pointer;padding:0}.sup-photo-x:hover{background:var(--danger)}.sup-lic{font-size:var(--fs-12);padding:2px 10px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-2);border:1px solid var(--border-light)}.sup-ev{font-size:var(--fs-13);color:var(--text-1);padding:6px 0;border-bottom:1px solid var(--border-light)}.sup-ev:last-child{border-bottom:none}.sup-ev-score{font-weight:600;color:var(--theme-strong)}.sup-dim{color:var(--text-3);font-size:var(--fs-12)}.sup-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-12);margin-top:4px}.sup-tbl th{text-align:left;padding:6px 8px;background:var(--surface-3);color:var(--text-2);font-weight:600;border-bottom:1px solid var(--border-light);white-space:nowrap}.sup-tbl td{padding:6px 8px;border-bottom:1px solid var(--border-light);color:var(--text-1);vertical-align:top}.sup-tbl .num,.sup-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}.sup-ds{font-size:var(--fs-12);padding:1px 8px;border-radius:var(--r-pill)}.sup-ds.ok{background:var(--ok-bg);color:#15803d}.sup-ds.bad{background:var(--danger-bg);color:var(--danger-ink, var(--danger))}.sup-ds.warn{background:var(--warn-bg, #fef9e6);color:var(--warn-ink, #8a5612)}.sup-more-hint{margin-top:4px}.sup-sug{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface)}.sup-sug.differ{border-color:color-mix(in srgb,var(--theme) 30%,transparent);background:color-mix(in srgb,var(--theme) 5%,transparent)}.sup-sug-t{font-size:var(--fs-14);color:var(--text-1);display:flex;align-items:center;gap:8px}.sup-sug-r{font-size:var(--fs-12);color:var(--text-3);margin:6px 0}.sup-grade-set{margin-top:10px;display:flex;gap:8px;align-items:center;font-size:var(--fs-13);color:var(--text-2)}.sup-mask{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.sup-modal{background:var(--surface);border-radius:var(--r-card);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 50px #0003}.sup-modal-h{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-light);font-size:var(--fs-15);font-weight:600;color:var(--text-1)}.sup-x{background:none;border:none;font-size:18px;color:var(--text-3);cursor:pointer}.sup-modal-b{padding:16px 18px}.sup-modal-f{padding:12px 18px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px}.sup-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.sup-f{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.sup-f label{font-size:var(--fs-12);color:var(--text-2)}.sup-f label em{color:var(--danger);font-style:normal}.sup-f .sup-input{width:100%;box-sizing:border-box}.sup-modal-wide{max-width:720px}.sup-fgroup{font-size:var(--fs-13);font-weight:600;color:var(--text-1);margin:14px 0 8px;padding-left:8px;border-left:3px solid var(--theme)}.sup-fgroup:first-child{margin-top:0}.sup-fnote{font-size:var(--fs-12);color:var(--text-3);line-height:1.5;margin:2px 0 8px}.sup-subtbl{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.sup-subrow{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:6px;align-items:center}.sup-subrow5{grid-template-columns:1fr 1fr 1fr 40px auto}.sup-subrow input[type=radio]{justify-self:center;accent-color:var(--theme);width:15px;height:15px;cursor:pointer}.sup-primary{display:inline-block;padding:0 6px;border-radius:100px;font-size:10px;font-weight:600;color:#fff;background:var(--theme);vertical-align:1px}.sup-spec{font-size:var(--fs-13);color:var(--text-1);line-height:1.6;background:var(--surface-2, rgba(0,0,0,.02));border:1px solid var(--border-light);border-radius:var(--r-sm);padding:8px 10px;white-space:pre-wrap}.sup-subrow b{font-size:var(--fs-12);color:var(--text-3);padding-left:2px}.sup-subrow .sup-mi{justify-self:end}.sup-capbox{display:flex;flex-wrap:wrap;gap:6px}.sup-cap2{display:flex;flex-direction:column;gap:8px}.sup-cap2-l1{display:flex;flex-wrap:wrap;gap:8px}.sup-proc{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border:1.5px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-13);font-weight:600;cursor:pointer;color:var(--text-1)}.sup-proc i{font-style:normal;font-size:15px}.sup-proc em{font-style:normal;font-size:10px;font-weight:400;color:var(--text-3);margin-left:2px}.sup-proc:hover{border-color:var(--theme)}.sup-proc.on{border-color:var(--theme);background:color-mix(in srgb,var(--theme) 8%,transparent);color:var(--theme-strong)}.sup-proc.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 25%,transparent)}.sup-cap2-l2{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2, rgba(0,0,0,.02))}.sup-cap2-sub{display:flex;flex-wrap:wrap;gap:6px}.sup-cap2-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border-light);padding-bottom:6px}.sup-mat-tab{padding:3px 12px;border:none;background:none;font-size:var(--fs-12);cursor:pointer;color:var(--text-2);border-radius:var(--r-sm)}.sup-mat-tab:hover{color:var(--theme-strong)}.sup-mat-tab.on{background:var(--theme-weak, rgba(0,191,166,.12));color:var(--theme-strong);font-weight:600}.sup-cap2-mats{display:flex;flex-wrap:wrap;gap:6px}.sup-cap2-sel{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:var(--fs-12);color:var(--text-3)}.sup-cap.sm{padding:2px 8px;font-size:11px}.sup-cap-add{border-style:dashed;color:var(--text-3);background:transparent}.sup-cap-add:hover{border-color:var(--theme);color:var(--theme-strong);border-style:solid}.sup-cap-custom{border-color:color-mix(in srgb,var(--theme) 45%,transparent)}.sup-mat-tab-add:after{content:" ＋";color:var(--text-3)}.sup-cap{padding:4px 12px;border:1px solid var(--border-strong);border-radius:100px;background:var(--surface);font-size:var(--fs-12);cursor:pointer;color:var(--text-2)}.sup-cap:hover{border-color:var(--theme)}.sup-cap.on{background:var(--theme);border-color:var(--theme);color:#fff}.sup-bl-info{font-size:var(--fs-13);color:var(--danger);background:color-mix(in srgb,var(--danger) 6%,transparent);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:var(--r-sm);padding:8px 10px}@media(max-width:960px){.sup-panes{grid-template-columns:1fr}.sup-list{max-height:320px}}.cwb-own{display:flex;gap:10px;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--theme) 28%,transparent);background:color-mix(in srgb,var(--theme) 6%,transparent);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:4px}.cwb-own-item{display:flex;align-items:baseline;gap:8px;min-width:150px}.cwb-own-k{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap}.cwb-own-item b{font-size:var(--fs-14);color:var(--theme-strong);font-weight:700}.cwb-owner b{font-weight:600;color:var(--text-1)}.order-month-bar{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:6px 12px;border:1px solid var(--border, #e6ebf1);border-radius:var(--r-sm, 8px);background:var(--surface, #ffffff)}.omb-label{font-size:12px;color:var(--text-3, #54707e);white-space:nowrap;flex:0 0 auto}.omb-sel{display:flex;align-items:center;gap:8px;flex:0 0 auto}.omb-month{padding:3px 6px;border:1px solid var(--border, #e6ebf1);border-radius:var(--r-sm, 6px);background:var(--surface, #ffffff);color:var(--text-1, #0e2430);font-size:13px;font-weight:600;cursor:pointer;max-width:190px}.omb-stat{font-size:12px;color:var(--text-2, #33505e);white-space:nowrap}.omb-stat b{color:var(--text-1, #0e2430);font-weight:600}.omb-clear{border:none;background:none;color:var(--text-3, #54707e);cursor:pointer;font-size:12px;padding:2px 4px;line-height:1;border-radius:4px}.omb-clear:hover{color:var(--danger, #dc2626);background:var(--danger-bg, #fef2f2)}.omb-chart{flex:1 1 auto;min-width:0;height:42px;display:block}.omb-chart .omc-bar{cursor:pointer}.omb-chart .omc-bar rect{fill:#cbd5e1;transition:fill .12s ease}.omb-chart .omc-bar text{fill:var(--text-3, #54707e);font-size:8px}.omb-chart .omc-bar:hover rect{fill:var(--theme, #00bfa6)}.omb-chart .omc-bar.on rect{fill:var(--theme-strong, #00796b)}.omb-chart .omc-bar.on text{fill:var(--theme-strong, #00796b);font-weight:700}html.dark .omb-chart .omc-bar rect{fill:#475569}html.dark .omb-chart .omc-bar:hover rect{fill:var(--theme, #00bfa6)}html.dark .omb-chart .omc-bar.on rect{fill:var(--theme, #00bfa6)}@media(max-width:960px){.order-month-bar{flex-wrap:wrap}.omb-chart{flex-basis:100%;order:3}}.cwb-unassigned{display:inline-block;padding:1px 8px;border-radius:var(--r-pill, 100px);font-size:var(--fs-12, 12px);font-weight:500;color:var(--warn-ink, #8a5612);background:var(--warn-bg, #fef9e6);border:.5px solid var(--warn, #c07a1f)}.cwb-owner-team,.cwb-owner-asst{font-size:var(--fs-12);margin-top:1px}.cwb-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.cwb-input{padding:8px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-13);background:var(--surface);color:var(--text-1, #1f2329);outline:none}.cwb-input:focus{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 12%,transparent)}#cwbKw{min-width:220px}.cwb-seg{display:inline-flex;border:1px solid #d8dee9;border-radius:var(--r-sm);overflow:hidden}.cwb-seg-btn{padding:8px 12px;border:none;background:var(--surface);font-size:var(--fs-13);cursor:pointer;color:var(--text-2, #4e5969)}.cwb-seg-btn.on{background:var(--theme-strong);color:#fff}.cwb-btn{padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);background:var(--surface);font-size:var(--fs-13);cursor:pointer;color:var(--text-1, #1f2329)}.cwb-btn:hover{border-color:var(--theme);color:var(--theme);background:var(--theme-weak)}.cwb-btn.primary{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.cwb-btn.primary:hover{background:var(--theme-strong);filter:brightness(1.12);color:#fff}.cwb-btn.sm{padding:4px 8px;font-size:var(--fs-12)}.cwb-btn[disabled]{opacity:.45;cursor:not-allowed}.cwb-tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e8ef;border-radius:var(--r-sm);overflow:hidden;font-size:var(--fs-13)}.cwb-ttbl,.cwb-tbl th{text-align:left}.cwb-tbl th{padding:8px;background:#f7f9fc;font-weight:600;font-size:var(--fs-12);color:var(--text-2, #4e5969);border-bottom:1px solid #e3e8ef;white-space:nowrap}.cwb-tbl th.num,.cwb-tbl td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cwb-tbl th.cwb-th{cursor:pointer;user-select:none}.cwb-tbl th.cwb-th:hover,.cwb-tbl th.cwb-th.on{color:var(--theme)}.cwb-tbl td{padding:8px;border-bottom:1px solid #f0f3f7}.cwb-tbl tr:last-child td{border-bottom:none}.cwb-row{cursor:pointer;transition:background var(--dur-fast)}.cwb-row:hover td{background:color-mix(in srgb,var(--theme) 7%,transparent)}.cwb-row.nolink{cursor:default}.cwb-panes{display:grid;grid-template-columns:340px 1fr;gap:14px;align-items:start}.cwb-pane-list{min-width:0;max-height:calc(100vh - 280px);overflow-y:auto;padding-right:4px;position:sticky;top:0}.cwb-pane-detail{min-width:0;min-height:420px;border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--surface);padding:16px 18px 24px}.cwb-pane-empty{border:1px dashed var(--border-light);border-radius:var(--r-sm);padding:60px 24px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.cwb-pane-loading{padding:48px 24px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.cwb-pane-away{background:var(--warn-bg, #fef9e6);color:var(--warn-ink, #8a5612);border:1px solid color-mix(in srgb,var(--warning, #EFAA17) 40%,transparent);border-radius:var(--r-sm);padding:8px 12px;font-size:var(--fs-12);margin:8px 0 12px}.cwb-cards-meta{font-size:var(--fs-12);color:var(--text-3);margin-bottom:8px}.cwb-card{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:8px;background:var(--surface);cursor:pointer;transition:border-color .12s}.cwb-card:hover{border-color:var(--theme)}.cwb-card.on{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 14%,transparent)}.cwb-card-t{display:flex;align-items:center;gap:8px;margin-bottom:5px}.cwb-card-name{font-size:var(--fs-14);font-weight:600;color:var(--text-1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwb-card-l2{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.cwb-card-ind{font-size:var(--fs-12);color:var(--text-3)}.cwb-card-flag{font-size:var(--fs-11);padding:1px 6px;border-radius:var(--r-pill);font-weight:500}.cwb-card-flag.unassigned{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.cwb-card-flag.silent{color:var(--warn-ink, #8a5612);background:var(--warn-bg, #fef9e6)}.cwb-card-l3{font-size:var(--fs-12);color:var(--text-3);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwb-card-l4{display:flex;gap:12px;font-size:var(--fs-12);color:var(--text-3);flex-wrap:wrap}.cwb-card-l4 b{font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums}.cwb-badge.tier.st-strategic{color:var(--theme-strong);border:1px solid var(--theme);background:color-mix(in srgb,var(--theme) 10%,transparent)}.cwb-ov{border:1px solid color-mix(in srgb,var(--theme) 26%,transparent);background:color-mix(in srgb,var(--theme) 5%,transparent);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:12px}.cwb-ov-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cwb-ov-name{font-size:var(--fs-16);font-weight:700;color:var(--text-1)}.cwb-ov-l2{font-size:var(--fs-13);color:var(--text-2);margin:6px 0 10px}.cwb-management-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 28px}.cwb-management-summary span{display:flex;align-items:baseline;gap:6px;min-width:0}.cwb-management-summary em{flex:none;color:var(--text-3);font-size:var(--fs-12);font-style:normal}.cwb-management-summary b{min-width:0;color:var(--text-2);font-weight:500;overflow-wrap:anywhere}@media(max-width:640px){.cwb-management-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}}.cwb-business-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;margin:-2px 0 10px;font-size:var(--fs-12)}.cwb-business-summary>span{display:flex;align-items:center;gap:6px;min-width:0}.cwb-business-summary em{color:var(--text-3);font-style:normal}.cwb-business-summary b{display:inline-flex;flex-wrap:wrap;gap:4px;color:var(--text-2);font-weight:500}.cwb-unit-tag,.cwb-card-unit{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--theme) 24%,transparent);border-radius:var(--r-pill);padding:1px 7px;color:var(--theme-strong);background:color-mix(in srgb,var(--theme) 7%,transparent);font-size:var(--fs-11);font-style:normal;line-height:1.5}.cwb-card-group{color:var(--text-2);font-size:var(--fs-11)}.cwb-unit-checks{display:flex;flex-wrap:wrap;gap:6px;max-height:148px;overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}.cwb-unit-check{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:3px 8px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.cwb-unit-check:has(input:checked){border-color:var(--theme);color:var(--theme-strong);background:var(--theme-weak)}.cwb-unit-check input{margin:0}.cwb-ov-ops{display:flex;gap:8px;align-items:center}.cwb-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.cwb-kpi{background:var(--surface-muted, #f2f3f5);border-radius:var(--r-sm);padding:8px 10px;text-align:center}.cwb-kpi-v{font-size:var(--fs-14);font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums}.cwb-kpi-l{font-size:var(--fs-11);color:var(--text-3);margin-top:2px}.cwb-kpi.warn .cwb-kpi-v{color:var(--danger)}@media(max-width:1500px){.cwb-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:1200px){.cwb-panes{grid-template-columns:1fr}.cwb-pane-list{max-height:380px;overflow-y:auto;position:static}}.cwb-dim{color:#b8c0cc;font-size:var(--fs-12)}.cwb-tag{font-size:var(--fs-12);background:#eef1f6;padding:2px 8px;border-radius:var(--r-pill);color:#4e5969;margin-left:4px}.cwb-tag-more{background:transparent;border:1px dashed var(--border-strong, #c9d2e0);color:var(--text-4)}.cwb-fu-method{font-size:var(--fs-11);background:#eef1f6;padding:1px 6px;border-radius:var(--r-pill);color:#4e5969;margin-left:2px}.cwb-more{padding:6px 2px;font-size:var(--fs-12)}@media(max-width:900px){.cwb-tbl th:nth-child(2),.cwb-tbl td:nth-child(2),.cwb-tbl th:nth-child(4),.cwb-tbl td:nth-child(4),.cwb-tbl th:nth-child(5),.cwb-tbl td:nth-child(5),.cwb-tbl th:nth-child(6),.cwb-tbl td:nth-child(6),.cwb-tbl th:nth-child(11),.cwb-tbl td:nth-child(11){display:none}}@media(max-width:680px){.cwb-tbl th:nth-child(9),.cwb-tbl td:nth-child(9),.cwb-tbl th:nth-child(10),.cwb-tbl td:nth-child(10),.cwb-tbl th:nth-child(12),.cwb-tbl td:nth-child(12){display:none}}.cwb-badge{display:inline-block;font-size:var(--fs-12);padding:2px 8px;border-radius:var(--r-pill)}.cwb-badge.st-复购活跃{background:var(--ok-bg);color:#0e9f6e}.cwb-badge.st-首单成交{background:#e8f1ff;color:var(--theme)}.cwb-badge.st-跟进中{background:#eef1f6;color:#4e5969}.cwb-badge.st-潜在{background:var(--border-light);color:var(--text-3)}.cwb-badge.st-沉睡{background:var(--warn-bg);color:#b45309}.cwb-badge.st-流失{background:var(--danger-bg);color:var(--danger-ink)}.cwb-badge.st-挽回中{background:#f4edfa;color:#7c3aed}.cwb-badge.tier{background:var(--warn-bg);color:#b45309;border:1px solid #f3e2bb}.cwb-od{color:var(--danger);font-size:var(--fs-12)}.cwb-tbl td.bad,.cwb-credit-low{color:var(--danger);font-weight:700}.cwb-tbl.sm td,.cwb-tbl.sm th{padding:8px;font-size:var(--fs-12)}.cwb-pager{display:flex;align-items:center;gap:4px;padding:8px 2px 0;flex-wrap:wrap}.cwb-empty{padding:40px 20px;text-align:center;color:var(--text-3, var(--text-4));background:#fff;border:1px dashed #dfe5ec;border-radius:var(--r-sm);font-size:var(--fs-13)}.cwb-empty.sm{padding:12px;font-size:var(--fs-12)}.cwb-mask{position:fixed;inset:0;background:#0f151c6b;z-index:var(--zi-drawer);display:flex;justify-content:flex-end}.cwb-drawer{width:min(560px,92vw);background:#fff;height:100%;overflow-y:auto;box-shadow:-8px 0 24px #0f151c24;display:flex;flex-direction:column;animation:cwbIn var(--dur-base) var(--ease)}@keyframes cwbIn{0%{transform:translate(40px);opacity:.4}to{transform:none;opacity:1}}.cwb-drawer-head{position:sticky;top:0;background:#fff;padding:16px 20px;border-bottom:1px solid #eef1f6;font-size:var(--fs-16);font-weight:700;display:flex;justify-content:space-between;align-items:center;z-index:2}.cwb-drawer-body{padding:16px 20px 32px}.cwb-dsec{font-size:var(--fs-13);font-weight:700;margin:16px 0 8px;padding-top:8px;border-top:1px solid #f0f3f7}.cwb-drawer-body>.cwb-dsec:first-child{border-top:none;padding-top:0;margin-top:0}.cwb-kvgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.cwb-kv{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-13);padding:4px 0;border-bottom:1px dashed #f0f3f7}.cwb-kv span{color:var(--text-3, var(--text-4))}.cwb-remark{margin-top:8px;padding:8px 12px;background:#f7f9fc;border-radius:var(--r-sm);font-size:var(--fs-12);color:var(--text-2, #4e5969)}.cwb-fu{padding:8px 0;border-bottom:1px dashed #f0f3f7;font-size:var(--fs-12)}.cwb-fu b{color:var(--text-1, #1f2329)}.cwb-modal{width:min(480px,92vw);margin:auto;background:#fff;border-radius:var(--r-ctrl);overflow:hidden}.cwb-modal{max-height:calc(100vh - 48px);display:flex;flex-direction:column}.cwb-modal-b{padding:16px 20px;overflow-y:auto;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch}.cwb-mask:not(:has(.cwb-drawer)){justify-content:center;align-items:center}.cwb-modal-h{padding:12px 20px;font-size:var(--fs-14);font-weight:700;border-bottom:1px solid #eef1f6;display:flex;justify-content:space-between;align-items:center}.cwb-modal-f{padding:12px 20px;border-top:1px solid #eef1f6;text-align:right}.cwb-customer-form-modal{width:min(1040px,92vw);max-height:86vh;background:var(--surface);border-radius:var(--r-card, 18px);box-shadow:var(--shadow-card)}.cwb-form-head{padding:16px 24px;align-items:flex-start;background:var(--surface)}.cwb-form-title{font-size:var(--fs-18, 18px);line-height:1.4;color:var(--text-1)}.cwb-form-subtitle{margin-top:4px;color:var(--text-3);font-size:var(--fs-12);font-weight:400;line-height:1.5}.cwb-form-body{padding:18px 24px;background:var(--surface)}.cwb-form-section{margin-bottom:14px;padding:15px 18px 16px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface-2)}.cwb-form-section:last-of-type{margin-bottom:10px}.cwb-form-section-title{color:var(--text-1);font-size:var(--fs-14);font-weight:650;line-height:1.5}.cwb-form-section-sub{margin:2px 0 14px;color:var(--text-3);font-size:var(--fs-12);line-height:1.5}.cwb-form-grid{gap:16px 20px}.cwb-form-grid .cwb-f{min-width:0;margin-bottom:0}.cwb-form-grid .cwb-f label{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px;margin-bottom:6px;color:var(--text-2)}.cwb-form-grid .cwb-input{width:100%;min-width:0;min-height:38px;box-sizing:border-box;background:var(--surface)}.cwb-form-grid .cwb-opt-add{float:none!important;flex:0 0 auto;white-space:nowrap;padding:0 4px!important}.cwb-form-section>.cwb-f:last-child{margin-bottom:0}.cwb-form-section>.cwb-f .cwb-input{width:100%;min-height:38px;box-sizing:border-box;background:var(--surface)}.cwb-form-section>textarea.cwb-input{width:100%;min-height:96px;box-sizing:border-box;background:var(--surface)}.cwb-form-guide{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border-light)}.cwb-form-guide summary,.cwb-form-other summary{color:var(--theme-strong);font-size:var(--fs-12);font-weight:600;cursor:pointer;list-style-position:inside}.cwb-form-guide-body{margin-top:8px;padding:10px 12px;border-radius:var(--r-sm, 8px);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);line-height:1.7}.cwb-form-other{margin:2px 4px 0}.cwb-form-other-body{margin-top:7px;color:var(--text-3);font-size:var(--fs-12);line-height:1.65}.cwb-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--surface);position:relative;z-index:2}.cwb-form-footer-note{color:var(--text-3);font-size:var(--fs-12)}.cwb-form-footer-note em{color:var(--danger);font-style:normal}.cwb-form-footer-actions{display:flex;gap:8px}.cwb-form-footer .cwb-btn{min-width:88px}.cwb-followup-form-modal{width:min(980px,94vw)}.cwb-form-section-title em{color:var(--danger);font-style:normal}.cwb-fu-topic{display:inline-block;margin:4px 0;padding:3px 8px;border-radius:var(--r-pill, 100px);background:var(--theme-weak);color:var(--theme-strong);font-size:var(--fs-12);font-weight:650}.cwb-fu-block{margin-top:8px;padding:8px 10px;border-radius:var(--r-sm, 8px);background:var(--surface-2);font-size:var(--fs-13);line-height:1.65;white-space:pre-wrap}.cwb-fu-block b{display:block;margin-bottom:4px;color:var(--text-2)}.cwb-file-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.cwb-file-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 10px;border:1px solid var(--border-light);border-radius:var(--r-pill, 100px);background:var(--surface);color:var(--theme-strong);font-size:var(--fs-12);line-height:1.4;text-decoration:none}.cwb-file-chip:hover{border-color:var(--theme)}.cwb-file-del{padding:0 2px;border:none;background:transparent;color:var(--text-3);font-size:var(--fs-14);cursor:pointer}.cwb-file-del:hover{color:var(--danger)}.cwb-legacy-content{white-space:pre-wrap}@media(max-width:640px){.cwb-customer-form-modal{width:94vw;max-height:90vh}.cwb-form-head,.cwb-form-body{padding:14px 16px}.cwb-form-section{padding:13px 14px}.cwb-customer-form-modal .cwb-form-grid{grid-template-columns:1fr;gap:12px}.cwb-form-footer{padding:12px 16px;justify-content:flex-end}.cwb-form-footer-note{display:none}}.cwb-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.cwb-f{margin-bottom:8px}.cwb-f label{display:block;font-size:var(--fs-12);color:var(--text-3, var(--text-4));margin-bottom:4px}.cwb-f label em{color:var(--danger);font-style:normal}.cwb-f textarea.cwb-input{width:100%;resize:vertical}.cwb-x{border:none;background:none;font-size:var(--fs-16);cursor:pointer;color:var(--text-3, var(--text-4));padding:4px 8px;border-radius:var(--r-ctrl)}.cwb-x:hover{background:#f0f3f7;color:var(--text-1, #1f2329)}.ap-addsign-box{width:min(480px,92vw)}.ap-addsign-list{max-height:220px;overflow-y:auto;border:1px solid var(--border, var(--surface-3));border-radius:var(--r-sm);padding:8px}.ap-addsign-item{display:block;padding:4px 2px;font-size:var(--fs-13);cursor:pointer}.ap-addsign-item:hover{background:#f7f9fc}.fe-btn-addsign{background:var(--surface);border:1px solid var(--border, var(--border-strong));color:var(--text-1, #1f2329)}.fe-btn-addsign:hover{border-color:var(--theme);color:var(--theme);background:var(--theme-weak)}.ap-sub-extra-tip{background:var(--warn-bg);border:1px solid #fde68a;color:#92400e;border-radius:var(--r-sm);padding:8px;font-size:var(--fs-12);margin:8px 0;line-height:var(--lh-base)}.ap-sub-extra:empty{display:none}.ap-submit-dlg{width:min(620px,94vw);max-height:88vh;display:flex;flex-direction:column}.ap-submit-dlg .dlg-head{flex:0 0 auto}.ap-submit-body{flex:1 1 auto;overflow-y:auto;padding-right:4px}.ap-submit-dlg .dlg-foot,.ap-submit-dlg .modal-foot{flex:0 0 auto}.ap-submit-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}@media(max-width:640px){.ap-submit-grid2{grid-template-columns:1fr}}.ap-submit-body .dlg-label{margin-bottom:4px}.ap-submit-body .ap-sub-cc-wrap{margin-top:2px}.mp-hint{font-size:var(--fs-12);color:var(--text-3, var(--text-4))}.mp-ok{color:#0e9f6e;font-size:var(--fs-13);padding:4px 0}.mp-diff-item{font-size:var(--fs-12);padding:4px 0;border-bottom:1px dashed #f0f3f7;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.mp-diff-type{background:var(--warn-bg);color:#b45309;font-size:var(--fs-12);padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap}.mp-diff-base{color:var(--text-3, var(--text-4));font-size:var(--fs-12)}.mp-btn-danger{margin-top:8px;padding:4px 12px;background:var(--danger-bg);color:var(--danger-ink);border:1px solid #f5c2c0;border-radius:var(--r-ctrl);cursor:pointer;font-size:var(--fs-12)}.mp-btn-danger:hover{background:var(--danger-bg)}.detail-actions.od-sub{padding:2px 4px 0;margin:-8px 0 16px;border:none;background:transparent;gap:8px}.detail-actions .od-sub-label{font-size:var(--fs-12);color:var(--text-3, var(--text-4));white-space:nowrap}.detail-actions .od-act-btn{height:30px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface, var(--surface));color:var(--text-1);font-size:var(--fs-12);cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast),background var(--dur-fast)}.detail-actions .od-act-btn:hover{border-color:var(--accent, var(--primary));color:var(--accent, var(--primary));opacity:1;background:var(--surface-2, #f6f8fb)}.od-action-group{display:flex;align-items:flex-start;gap:8px;padding:4px 10px 4px 0;border-right:1px solid var(--border-light)}.od-action-group:last-child{border-right:0}.od-action-group-label{flex:0 0 auto;padding-top:7px;color:var(--text-3);font-size:var(--fs-12);white-space:nowrap}.od-action-group-btns{display:flex;flex-wrap:wrap;gap:6px}.od-act-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;margin-left:3px;padding:0 4px;border-radius:var(--r-pill);background:var(--theme-weak);color:var(--theme-strong);font-size:var(--fs-11)}.exec-tip{margin:-4px 0 12px;color:var(--text-3);font-size:var(--fs-12)}.exec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.exec-card{min-width:0;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface-2)}.exec-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:var(--text-1);font-size:var(--fs-13);font-weight:650}.exec-card-head b{color:var(--theme-strong)}.exec-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:6px 0;border-top:1px dashed var(--border-light);font-size:var(--fs-12)}.exec-no{overflow:hidden;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap}.exec-status{color:var(--theme-strong);white-space:nowrap}.exec-next{grid-column:1 / -1;color:var(--text-3)}.exec-empty{padding:10px 0;color:var(--text-3);font-size:var(--fs-12)}@media(max-width:900px){.exec-grid{grid-template-columns:1fr}.od-action-group{border-right:0}}@media(max-width:640px){.pur-item-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 28px}.pur-item-row .pur-c-name,.pur-item-row .pur-c-spec{grid-column:1 / 3}.pur-item-row .pur-c-qty{grid-column:1}.pur-item-row .pur-c-amt{grid-column:2}.pur-item-row .pur-c-del{grid-column:3;grid-row:1}.oss-cmp-row{grid-template-columns:1fr!important}}.dv-more{margin-top:8px;border-top:1px dashed var(--border, #e5e9f0);padding-top:4px}.dv-more summary{font-size:var(--fs-12);color:var(--text-3, var(--text-4));cursor:pointer;user-select:none;padding:4px 2px;width:fit-content;border-radius:var(--r-ctrl)}.dv-more summary:hover{color:var(--accent, var(--primary))}.dv-more[open] summary{color:var(--accent, var(--primary))}.dv-more .detail-grid{padding-top:4px}.sup-board-profile{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:var(--fs-12);color:var(--text-2, var(--text-3))}.sup-board-profile .sup-lv{background:color-mix(in srgb,var(--theme) 10%,transparent);color:var(--ok-ink);border:1px solid #cfe3ef;border-radius:var(--r-pill);padding:2px 8px}.sup-board-profile .sup-lic{background:var(--ok-bg);color:#15803d;border:1px solid #b6e4cb;border-radius:var(--r-pill);padding:2px 8px;cursor:pointer}.sup-board-profile .sup-lic-none{background:var(--warn-bg);color:#b45309;border:1px solid #f2e2c0;border-radius:var(--r-pill);padding:2px 8px;cursor:default}.filter-bar.sup-toolbar{margin:6px 2px 8px}.sup-toolbar .sup-new{margin-left:0}.sup-toolbar .sup-search{flex:1;min-width:140px;max-width:320px}.sup-fp-grp{padding:4px 4px 6px}.sup-fp-grp+.sup-fp-grp{border-top:.5px solid var(--border-light);margin-top:2px;padding-top:8px}.sup-fp-grp label{display:block;padding:0 8px 4px;font-size:var(--fs-12);color:var(--text-3)}.sup-fp-opts{display:flex;flex-wrap:wrap;gap:4px;padding:0 4px;max-width:360px}.sup-fp-opt{padding:3px 10px;border:.5px solid var(--border-light);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease),border-color .12s var(--ease)}.sup-fp-opt:hover{border-color:var(--theme);color:var(--theme-strong)}.sup-fp-opt.on{background:var(--theme-weak);border-color:var(--theme);color:var(--theme-strong);font-weight:500}.sup-fp-foot{display:flex;align-items:center;gap:8px;padding:8px 8px 4px;border-top:.5px solid var(--border-light);margin-top:4px}.sup-fp-hit{font-size:var(--fs-12);color:var(--text-3)}.sup-fp-clear{margin-left:auto;font-size:var(--fs-12)}.sup-card-namegrp{display:flex;align-items:center;gap:4px;min-width:0}.sup-card-namegrp b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sup-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.sup-card-tags .sup-ctag{margin-right:0}.sup-card-stats .sup-lv{display:inline;font-style:normal;background:color-mix(in srgb,var(--theme) 10%,transparent);color:var(--theme-strong);border:1px solid #cfe3ef;border-radius:var(--r-pill);padding:1px 8px;font-size:var(--fs-12);white-space:nowrap}@media(hover:hover){.sup-pick,.sup-tag-btn{opacity:0;transition:opacity .12s var(--ease)}.sup-card:hover .sup-pick,.sup-card:hover .sup-tag-btn,.sup-pick:checked,.sup-pick:focus-visible,.sup-tag-btn:focus-visible{opacity:1}}.sup-board-acts{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sup-board-acts .sup-act{font-size:var(--fs-12);padding:4px 12px}.sup-board-acts .sup-act-danger{color:var(--danger-ink);border-color:#f5c2c0}.sup-board-acts .sup-act-del{color:var(--text-4)}.sup-board-acts .sup-act-del:hover{color:var(--danger-ink);border-color:#f5c2c0}#supViewbarHost:empty{display:none}.sup-viewbar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin}.sup-vtab{flex:none;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--border);background:#f8fafc;color:var(--text-2);font-size:var(--fs-12);cursor:pointer;white-space:nowrap}.sup-vtab:hover{border-color:color-mix(in srgb,var(--theme) 45%,var(--border));color:var(--text-1)}.sup-vtab.on{background:color-mix(in srgb,var(--theme) 12%,transparent);border-color:color-mix(in srgb,var(--theme) 45%,var(--border));color:var(--text-1);font-weight:600}.sup-vtab-n{font-size:var(--fs-11);color:var(--text-3);font-variant-numeric:tabular-nums}.sup-vtab.on .sup-vtab-n{color:inherit;opacity:.75}.sup-vtab-sep{flex:none;width:1px;height:16px;background:var(--border);margin:0 2px}.sup-eval{background:#eef4ff;color:var(--info);border:1px solid var(--theme-weak);border-radius:var(--r-pill);padding:2px 8px}.sup-pager{display:flex;align-items:center;gap:8px;padding:8px 4px;border-top:1px dashed var(--border)}.sup-pager .cr-note{font-size:var(--fs-12);color:var(--text-3)}.sup-pagejump{height:26px;padding:0 6px;font-size:var(--fs-12)}@media(max-width:900px){.sup-layout{flex-direction:column}.sup-cards{width:100%;max-height:46vh;overflow-y:auto}.sup-card,#supBoard{width:100%}.sup-layout.sup-mobile-board .sup-cards{display:none}.sup-layout.sup-mobile-board #supBoard{width:100%;max-height:none}.sup-back{display:none}.sup-layout.sup-mobile-board .sup-back{display:inline-block}.sup-toolbar{flex-wrap:nowrap}.sup-toolbar .sup-new{height:36px;padding:0 10px}.sup-toolbar .sup-search{min-width:80px;height:36px}.sup-toolbar .tb-btn{height:36px}.sup-toolbar .filter-count{font-size:var(--fs-12)}}.sup-back{display:none}@media(max-width:900px){.sup-layout{display:grid;grid-template-columns:1fr;gap:12px}.sup-cards{width:100%;min-width:0;height:auto;max-height:46vh;overflow-y:auto}.sup-card{width:100%;min-width:0}#supBoard{min-width:0;overflow-x:auto}.sup-board table,.sup-orders table{display:block;overflow-x:auto;white-space:nowrap}.sup-layout.sup-mobile-board .sup-cards{display:none}.sup-layout.sup-mobile-board .sup-back{display:inline-block}}.po-recv{margin:8px 0;padding:8px 12px;border:1px solid var(--border, #e5e9f0);border-radius:var(--r-sm);background:var(--surface-2, #fafbfc)}.po-recv-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-12);color:var(--text-2, var(--text-3));margin-bottom:4px}.po-recv-head b{font-size:var(--fs-14);color:var(--text-1)}.po-recv-bar{height:6px;border-radius:var(--r-pill);background:#eceef2;overflow:hidden}.po-recv-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--theme),var(--ok-ink));transition:width var(--dur-slow)}.po-recv-note{margin-top:4px;font-size:var(--fs-12);color:var(--text-2, var(--text-4))}.po-recv-btn{margin-top:8px}.po-d-row.po-d-missing .po-d-val{color:#b9c0cc}.po-d-row[data-fill]:hover{background:var(--warn-bg)}.po-d-files{padding:4px 2px 8px}.po-d-file-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.po-d-file-row .po-d-lab{width:84px;flex:none}.po-files{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-height:20px}.po-file{font-size:var(--fs-12);color:var(--primary, var(--ok-ink));text-decoration:none;border:1px solid #dbe6f0;border-radius:var(--r-ctrl);padding:2px 8px;background:#f7fbff}.po-file:hover{background:#eef6fd}.po-stats-wrap{margin:8px 0 12px}.po-stats-bar{display:flex;align-items:center;gap:8px;font-size:var(--fs-13);font-weight:700;color:var(--text-2,var(--text-3));cursor:pointer;user-select:none;padding:10px 12px;border:1px solid var(--border,#e5e9f0);border-radius:var(--r-ctrl);background:var(--surface,#fff)}.po-stats-bar:hover{color:var(--text-1)}.po-stats-bar .po-stats-fold-ico{margin-left:auto;font-size:11px;font-weight:400;transition:transform var(--dur-slow)}.po-stats-wrap.folded .po-stats-bar .po-stats-fold-ico{transform:rotate(-90deg)}.po-stats-wrap.folded .po-stats{display:none}.po-stats-wrap:not(.folded) .po-stats-bar{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.po-stats-wrap:not(.folded) .po-stats{margin:0;border-top:none;border-top-left-radius:0;border-top-right-radius:0}.po-stats{margin:8px 0 12px;padding:12px;border:1px solid var(--border, #e5e9f0);border-radius:var(--r-ctrl);background:var(--surface, #fff)}.po-stats-loading{font-size:var(--fs-12);color:var(--text-4)}.po-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.po-kpi{padding:8px 12px;border-radius:var(--r-sm);background:#f7f9fc;border:1px solid #eef1f5;display:flex;flex-direction:column;gap:2px}.po-kpi-lab{font-size:var(--fs-12);color:var(--text-4)}.po-kpi-val{font-size:var(--fs-18);font-weight:700;color:var(--text-1)}.po-kpi-val.up{color:var(--danger-ink)}.po-kpi-val.down{color:var(--ok-ink)}.po-kpi-val.warn{color:#b45309}.po-kpi-sub{font-size:var(--fs-12);color:var(--text-4)}.po-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.po-pill{font-size:var(--fs-12);padding:4px 8px;border-radius:var(--r-pill);background:#f4f6f9;color:var(--text-2);border:1px solid #e6eaf0}.po-pill b{color:var(--text-1)}.po-stats-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin-top:12px}.po-stats-col h4{margin:0 0 8px;font-size:var(--fs-13);color:var(--text-2, var(--text-3))}.po-stats-empty{font-size:var(--fs-12);color:var(--text-4)}.po-rank{display:flex;align-items:center;gap:8px;font-size:var(--fs-12);padding:4px 0}.po-rank:hover{background:var(--warn-bg)}.po-rank-i{width:18px;text-align:center;color:var(--text-4)}.po-rank-n{width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.po-rank-bar{flex:1;height:7px;background:#eef1f5;border-radius:var(--r-pill);overflow:hidden}.po-rank-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--theme),var(--info))}.po-rank-v{width:170px;text-align:right}.po-rank-v em{font-style:normal;color:var(--text-4);font-size:var(--fs-12)}.po-trends{display:flex;align-items:flex-end;gap:12px;height:120px}.po-trend{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.po-trend-bar{width:100%;height:84px;display:flex;align-items:flex-end}.po-trend-bar i{display:block;width:100%;background:linear-gradient(180deg,var(--info),var(--theme));border-radius:var(--r-4) var(--r-4) 0 0}.po-trend-y{font-size:var(--fs-12);color:var(--text-4)}.po-trend-v{font-size:var(--fs-12);color:var(--text-1)}@media(max-width:900px){.po-kpis{grid-template-columns:repeat(2,1fr)}.po-stats-cols{grid-template-columns:1fr}.po-rank-n{width:92px}.po-rank-v{width:110px}}.pay-sched{display:flex;flex-direction:column;gap:4px}.pay-sched-item{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-12);padding:4px 8px;border-radius:var(--r-ctrl);background:#f7f9fc}.pay-sched-item.done{background:var(--ok-bg);color:#15803d}.dash-chart-panel{margin-top:12px}.dash-chart-row{display:flex;align-items:center;gap:8px;padding:4px}.dash-chart-label{width:64px;font-size:var(--fs-12);color:var(--text-3, var(--text-4));flex:none}.dash-chart-track{flex:1;height:14px;background:var(--surface-2, #f0f1f4);border-radius:var(--r-6);overflow:hidden}.dash-chart-bar{display:block;height:100%;background:linear-gradient(90deg,var(--info),var(--info));border-radius:var(--r-6);min-width:2px}.dash-chart-val{width:110px;text-align:right;font-size:var(--fs-12);font-variant-numeric:tabular-nums;flex:none}button,.ua-btn,.cr-btn,.btn-new-order{transition:transform 50ms var(--ease),filter 50ms var(--ease)}button:active,.ua-btn:active,.cr-btn:active{transform:translateY(1px) scale(.985);filter:brightness(.92)}.ui-busy{filter:saturate(.4) brightness(.85);cursor:progress}#globalFetchBar{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--info),var(--info));z-index:99999;opacity:0;transition:width .3s var(--ease),opacity .3s var(--ease);pointer-events:none}#globalFetchBar.on{opacity:1;width:82%;transition:width 8s var(--ease),opacity var(--dur-fast) var(--ease)}.skel{position:relative;overflow:hidden;background:#eceff3;border-radius:var(--r-ctrl)}.skel:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:skel-sweep 1.2s infinite}@keyframes skel-sweep{to{transform:translate(100%)}}.skel-line{height:14px}.skel-card{height:84px}.skel-block{background:var(--surface, #fff);border:1px solid rgba(31,35,41,.06);border-radius:var(--r-ctrl);padding:4px 0;margin:4px 0}.page-fade-in{animation:page-fade .16s var(--ease)}@keyframes page-fade{0%{opacity:.35}to{opacity:1}}.dark .skel,.dark-theme .skel{background:#2a2f38}.dark .skel:after,.dark-theme .skel:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}.dlg,.pms-editor,.cr-modal,.dlg-box{animation:dlg-in var(--dur-ui) var(--ease-ui)}@keyframes dlg-in{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}.modal-mask,.pms-editor-mask,.cr-modal-mask{animation:mask-in .15s var(--ease)}@keyframes mask-in{0%{opacity:0}to{opacity:1}}.toast{animation:toast-in .2s var(--ease-ui)}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.cr-row-flash{animation:row-flash 1.2s var(--ease)}@keyframes row-flash{0%{background:var(--warn-bg)}to{background:transparent}}.info-bar-compact{align-items:flex-start}.info-bar-compact .user-info-card{flex:1 1 auto;align-self:flex-start;flex-direction:row;align-items:center;gap:12px;padding:8px 16px}.info-bar-compact .user-avatar{width:40px;height:40px;font-size:var(--fs-18)}.info-bar-compact .user-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.info-bar-compact .user-name{font-size:var(--fs-14);font-weight:600;color:var(--text-1)}.info-bar-compact .user-extra{display:flex;align-items:center;gap:16px;margin-left:auto}.info-bar-compact .ue-item{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12)}.info-bar-compact .info-card.notify-card{flex:0 0 auto;min-width:320px;max-width:46%}.todo-metric-sub{display:flex;justify-content:space-between;gap:8px;padding:4px 2px 0;font-size:var(--fs-12);color:var(--text-2, var(--text-3))}.todo-metric-sub b{color:var(--text-1, #2b3742);font-variant-numeric:tabular-nums}.notify-desc-pre{white-space:pre-line!important;overflow:hidden;text-overflow:unset}.supmk-note{padding:8px;background:var(--info-bg);border-radius:var(--r-sm);font-size:var(--fs-12);line-height:var(--lh-relaxed);color:var(--text-2);margin-bottom:8px}.supmk-grp{margin-bottom:8px}.supmk-lb{font-size:var(--fs-12);color:var(--text-2);margin-bottom:4px;font-weight:500}.supmk-chips{display:flex;flex-wrap:wrap;gap:4px}.supmk-chip{padding:4px 8px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);font-size:var(--fs-12);cursor:pointer;background:var(--surface);color:var(--text-1);transition:all var(--dur-fast)}.supmk-chip:hover{border-color:var(--info)}.supmk-chip.on{background:var(--info);border-color:var(--info);color:#fff}.supmk-ck{display:block;font-size:var(--fs-12);color:var(--text-2);margin:4px 0 12px}.supmk-foot{display:flex;align-items:center;gap:8px;margin-bottom:8px}.supmk-count{font-size:var(--fs-12);color:var(--text-3)}.supmk-result{border-top:1px solid var(--border-light);padding-top:8px}.supmk-empty{padding:24px 0;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.supmk-table{width:100%;font-size:var(--fs-12)}.supmk-table th{text-align:left;padding:4px 8px;color:var(--text-2);font-weight:500;border-bottom:1px solid var(--border-light)}.supmk-table td{padding:8px;border-bottom:1px solid var(--border-light);color:var(--text-1)}.supmk-caps{color:var(--text-2)}.supmk-infer{display:inline-block;padding:0 4px;border-radius:var(--r-sm);background:var(--warn-bg);color:#b07c21;font-size:var(--fs-12)}.supmk-warn{display:inline-block;padding:0 4px;border-radius:var(--r-sm);background:var(--danger-bg);color:var(--danger-ink);font-size:var(--fs-12)}.sup-tagwall{background:var(--surface);border:.5px solid var(--border-light);border-radius:var(--r-ctrl);padding:8px 12px;margin:8px 0}.sup-tagwall-loading{font-size:var(--fs-12);color:var(--text-3);padding:4px 0}.sup-tagwall.sup-tagwall-fold{padding:2px 12px}.sup-tagwall-fold .sup-tagwall-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:6px 0;border:none;background:transparent;cursor:pointer;text-align:left}.sup-tagwall-toggle:hover .sup-tw-lbl{color:var(--theme-strong)}.sup-tw-lbl{flex:none;color:var(--text-1);font-size:var(--fs-13);font-weight:500}.sup-tw-info{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12);color:var(--text-3)}.sup-tw-info b{color:var(--theme-strong);font-weight:500}.sup-tw-arrow{flex:none;font-size:var(--fs-12);color:var(--text-3)}.sup-tag-fold{margin-left:auto;font-size:var(--fs-12)}.sup-tag-top{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:.5px solid var(--border-light);margin-bottom:8px}.sup-tag-sel{font-size:var(--fs-12);color:var(--text-2)}.sup-tag-sel b{color:var(--theme-strong);font-weight:500}.sup-tag-sel-none{color:var(--text-3)}.sup-tag-hit{font-size:var(--fs-12);color:var(--text-2)}.sup-tag-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px}.sup-tag-grp{flex:0 0 66px;font-size:var(--fs-12);color:var(--text-2)}.sup-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:.5px solid var(--border-strong);border-radius:var(--r-ctrl);font-size:var(--fs-12);cursor:pointer;background:var(--surface);color:var(--text-1);transition:all var(--dur-fast)}.sup-tag:hover{border-color:var(--info)}.sup-tag.on{background:var(--info-bg);border-color:var(--border-strong);color:var(--theme-strong)}.sup-tag i{font-style:normal;font-size:var(--fs-12);color:var(--text-3)}.sup-tag.on i{color:var(--theme-strong)}.sup-tag-proc{font-weight:600;border-width:1px}.sup-tag-proc.on{background:var(--theme-weak, rgba(0,191,166,.12))}.sup-tag-sep{flex:0 0 1px;align-self:stretch;margin:2px 4px;background:var(--border-light)}.sup-tag-matlbl{font-size:var(--fs-12);color:var(--text-3);padding:0 2px}.sup-tag-foot{display:flex;align-items:center;gap:8px;font-size:var(--fs-12);color:var(--text-3);padding-top:4px;border-top:.5px solid var(--border-light)}.sup-tag-add,.sup-tag-clear,.sup-tag-clear2{font-size:var(--fs-12);padding:2px 8px}.sup-ctag{display:inline-block;padding:1px 8px;margin-right:4px;border-radius:var(--r-sm);background:var(--info-bg);color:var(--theme-strong);font-size:var(--fs-12)}.sup-ctag-more{background:var(--surface-2);color:var(--text-3)}.sup-tag-btn{margin-left:4px;padding:0 4px;border:.5px solid var(--border-strong);border-radius:var(--r-ctrl);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.sup-tag-btn:hover{border-color:var(--info);color:var(--info)}.sup-tp-new{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:8px;border-top:.5px solid var(--border-light)}.sup-tp-cnt{font-size:var(--fs-12);color:var(--text-2)}.sup-pick{position:absolute;top:8px;left:8px;width:15px;height:15px;cursor:pointer;z-index:2}.sup-card{position:relative}.sup-batchbar{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:8px 0;border-radius:var(--r-ctrl);background:var(--info-bg);border:.5px solid var(--border-strong)}.sup-batch-cnt{font-size:var(--fs-13);color:var(--theme-strong)}.sup-batch-cnt b{font-weight:500}.sup-batch-hint{font-size:var(--fs-12);color:var(--text-3);margin-left:auto}.sup-batch-modes{display:flex;gap:16px;margin:4px 0 2px;font-size:var(--fs-13)}.sup-batch-mode{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.st-cards{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.st-card{flex:1;min-width:170px;background:var(--surface);border:1px solid var(--surface-3);border-radius:var(--r-sm);padding:12px}.st-card.ok{border-color:#c9e7cf;background:#f7fdf8}.st-card.good{border-color:var(--theme-weak);background:#f6faff}.st-card.warn{border-color:#f0dfb8;background:var(--warn-bg)}.st-ct{font-size:var(--fs-12);color:#8a8a8a}.st-cv{font-size:var(--fs-18);font-weight:600;margin:4px 0;color:#222}.st-cs{font-size:var(--fs-12);color:#aaa}.st-bar{display:flex;align-items:center;gap:8px;margin:8px 0;flex-wrap:wrap}.st-bar-l{font-size:var(--fs-12);color:#888}.st-chip{border:1px solid #e3e3e3;background:#fff;border-radius:var(--r-ctrl);padding:4px 12px;font-size:var(--fs-12);cursor:pointer;color:#555}.st-chip.on{background:var(--theme-strong);border-color:var(--theme-strong);color:#fff}.st-refresh{margin-left:auto;border:1px solid #e3e3e3;background:#fff;border-radius:var(--r-ctrl);padding:4px 8px;font-size:var(--fs-12);cursor:pointer}.st-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r-sm);overflow:hidden}.st-table th{background:var(--bg);font-size:var(--fs-12);color:#666;text-align:left;padding:8px 12px;border-bottom:1px solid var(--border-light);font-weight:500}.st-table td{padding:8px;border-bottom:1px solid var(--border-light);font-size:var(--fs-13);color:#333}.st-detail-top{background:#fafbff;border:1px solid #e6ebf5;border-radius:var(--r-sm);padding:8px 12px;font-size:var(--fs-13);line-height:var(--lh-loose);color:#444}.st-claimed{color:var(--theme-strong)}.st-tip{font-size:var(--fs-12);color:var(--text-3);margin:4px 0}.st-ta{font-family:var(--font-mono);font-size:var(--fs-12);line-height:var(--lh-relaxed)}.st-ok{background:#f0f9f2;border:1px solid #c9e7cf;border-radius:var(--r-ctrl);padding:4px 8px;font-size:var(--fs-12);color:#2d7a45;margin-top:4px}.st-dup{background:var(--danger-bg);border:1px solid #f3c2c2;border-radius:var(--r-ctrl);padding:8px;font-size:var(--fs-12);color:var(--danger-ink);margin-top:4px}.st-dup-line{margin:4px 0;padding-left:8px;border-left:3px solid #e88}.st-force{display:block;margin:4px 0;font-size:var(--fs-12);color:#666}.st-err{color:var(--danger-ink);font-size:var(--fs-12)}.st-recon{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border-strong);font-size:var(--fs-12)}.st-recon-title{font-weight:600;margin-bottom:4px;color:#333}.st-recon-sec{margin:4px 0;border-radius:var(--r-ctrl);padding:8px}.st-recon-bad{background:var(--danger-bg);border:1px solid #f3c2c2;color:var(--danger-ink)}.st-recon-warn{background:var(--warn-bg);border:1px solid #f0dfb8;color:var(--warn-ink)}.st-recon-ok{background:#f0f9f2;border:1px solid #c9e7cf;color:#2d7a45;border-radius:var(--r-ctrl);padding:4px 8px;margin:4px 0}.st-recon-none{background:#f8f9fb;border:1px solid #e6ebf5;border-radius:var(--r-ctrl);padding:8px;color:var(--text-3)}.st-recon-line{padding:2px 0 2px 8px;border-left:2px solid rgba(0,0,0,.08);margin:2px 0;line-height:var(--lh-base)}.st-recon-m{display:flex;align-items:center;gap:6px;cursor:pointer}.st-recon-m input{flex:none}.st-pull-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 4px;font-size:var(--fs-12)}.st-pull-list{max-height:220px;overflow-y:auto;border:1px solid var(--border-strong);border-radius:var(--r-ctrl);padding:6px 8px;margin-bottom:6px}.st-pull-row{display:grid;grid-template-columns:20px 92px 150px 44px 1fr 90px 60px;gap:6px;align-items:center;font-size:var(--fs-12);padding:3px 0;cursor:pointer}.st-pull-row.claimed{opacity:.55;cursor:not-allowed}.st-pull-no{font-family:var(--font-mono);font-size:var(--fs-12)}.st-pull-type{color:var(--text-3)}.st-owner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-6px 0 10px;padding:8px 12px;background:#f0f7ff;border:1px solid #cfe3f7;border-radius:var(--r-sm);font-size:var(--fs-13)}.st-owner-sub{color:#8a97a5}.st-owner-sel{margin-left:auto;max-width:160px}.st-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.st-toolbar .st-bar{margin:0}.st-input{border:1px solid var(--border-light,#e3e8ef);border-radius:var(--r-ctrl);padding:6px 10px;font-size:var(--fs-13);background:var(--surface);color:var(--text-1);min-width:220px}.st-input:focus{outline:none;border-color:var(--theme)}.st-sel{border:1px solid var(--border-light,#e3e8ef);border-radius:var(--r-ctrl);padding:6px 8px;font-size:var(--fs-12);background:var(--surface);color:var(--text-1);min-width:132px;cursor:pointer}.st-panes{display:grid;grid-template-columns:340px 1fr;gap:14px;align-items:start}.st-pane-list{min-width:0;max-height:calc(100vh - 280px);overflow-y:auto;padding-right:4px;position:sticky;top:0}.st-pane-detail{min-width:0;min-height:420px;border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--surface);padding:16px 18px 24px}.st-pane-empty{border:1px dashed var(--border-light);border-radius:var(--r-sm);padding:60px 24px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.st-pane-loading{padding:48px 24px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}.st-pane-away{background:var(--warn-bg,#fef9e6);color:var(--warn-ink,#8a5612);border:1px solid color-mix(in srgb,var(--warning,#EFAA17) 40%,transparent);border-radius:var(--r-sm);padding:8px 12px;font-size:var(--fs-12);margin-bottom:12px}.st-cards-meta{font-size:var(--fs-12);color:var(--text-3);margin-bottom:8px}.st-item{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:8px;background:var(--surface);cursor:pointer;transition:border-color .12s}.st-item:hover{border-color:var(--theme)}.st-item.on{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 14%,transparent)}.st-item-t{display:flex;align-items:center;gap:8px;margin-bottom:5px}.st-item-no{font-size:var(--fs-14);font-weight:600;color:var(--text-1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-item-sup{font-size:var(--fs-13);color:var(--text-2);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-item-meta{font-size:var(--fs-12);color:var(--text-3);margin-bottom:4px}.st-item-amt{display:flex;gap:12px;font-size:var(--fs-12);color:var(--text-3);flex-wrap:wrap}.st-item-amt b{font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums}.st-item-amt .disc{color:var(--danger)}.st-pager{display:flex;align-items:center;gap:8px;padding:6px 2px}.st-pg{border:1px solid var(--border-light,#e3e3e3);background:var(--surface);border-radius:var(--r-ctrl);padding:4px 10px;font-size:var(--fs-12);cursor:pointer;color:var(--text-2)}.st-pg:disabled{opacity:.4;cursor:default}.st-dim{color:#b8c0cc;font-size:var(--fs-12)}.st-pg-info{font-size:var(--fs-12);color:var(--text-3);margin-left:auto}.st-pager .st-pg-info:first-child{margin-left:0}.st-empty-sub{display:block;margin-top:8px;font-size:var(--fs-12);color:var(--text-3)}.mp-due{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap}.wo-prog.mp-prog{min-width:96px;max-width:150px;height:16px}.wo-prog.mp-prog span{font-size:11px}.mp-detail-head{margin-bottom:4px}.mp-dh-no{font-size:var(--fs-16);font-weight:700;color:var(--text-1);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mp-dh-sub{font-size:var(--fs-13);color:var(--text-2);margin-top:4px}.mp-sec{border-top:1px solid var(--border-light,#eef1f5);padding:12px 0 6px}.mp-sec:first-of-type{border-top:none;padding-top:6px}.mp-sec-t{font-size:var(--fs-13);font-weight:700;color:var(--text-1);margin:0 0 8px}.mp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 18px}.mp-kv{display:flex;gap:8px;font-size:var(--fs-13);min-width:0;align-items:baseline}.mp-k{color:var(--text-3);flex:0 0 auto}.mp-v{color:var(--text-1);min-width:0;overflow-wrap:anywhere}.mp-guide{font-size:var(--fs-13);color:var(--text-2);background:var(--surface-2,#f6f8fa);border:1px solid var(--border-light,#eef1f5);border-radius:var(--r-sm);padding:10px 12px;margin:0;line-height:1.6}.mp-tl-loading{font-size:var(--fs-12);color:var(--text-3)}.mp-tl-item{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-bottom:1px dashed var(--border-light,#eef1f5);font-size:var(--fs-13);flex-wrap:wrap}.mp-tl-item:last-child{border-bottom:none}.mp-tl-ico{flex:0 0 auto}.mp-tl-title{color:var(--text-1);font-weight:600}.mp-tl-meta{color:var(--text-3);font-size:var(--fs-12)}.mp-tl-at{margin-left:auto;color:var(--text-3);font-size:var(--fs-12);white-space:nowrap}.ms-copy-wrap{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.ms-copy{border:1px solid var(--border-light,#e3e3e3);background:var(--surface);border-radius:var(--r-ctrl);padding:2px 10px;font-size:var(--fs-12);cursor:pointer;color:var(--text-2)}.ms-copy:hover{border-color:var(--theme);color:var(--theme)}.ms-order-line{font-size:var(--fs-14);font-weight:600;color:var(--text-1);display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.ms-order-sub{font-size:var(--fs-13);color:var(--text-2);margin-bottom:2px}.ms-order-tip{color:var(--text-3);font-size:var(--fs-12);margin-top:6px}.me-group{margin-bottom:12px}.me-group-t{font-size:var(--fs-12);font-weight:700;padding:4px 10px;border-radius:var(--r-ctrl);margin-bottom:6px;display:inline-block}.me-group-t.hi{background:var(--danger-bg);color:var(--danger-ink)}.me-group-t.mid{background:var(--warn-bg);color:var(--warn-ink,#8a5612)}.po-sel-all-wrap{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-12);color:var(--text-2);cursor:pointer;white-space:nowrap}.po-pane-detail{min-width:0}.po-pane-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.po-pane-no{font-size:var(--fs-16);font-weight:700;color:var(--text-1)}.po-pane-acts{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px dashed var(--border-strong,#ddd)}.st-item.kb-sel,.sup-card.kb-sel{border-color:var(--theme);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme) 22%,transparent)}.sup-btn.sup-clear{color:var(--text-2);border-style:dashed}.sup-btn.sup-clear:hover{color:var(--theme-strong)}.sup-more-link{display:inline-block;margin-top:4px;padding:2px 8px;border:1px solid var(--border-light);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.sup-more-link:hover{border-color:var(--theme);color:var(--theme-strong)}.sup-tbl tbody tr.sup-coop-row{cursor:pointer}.sup-tbl tbody tr.sup-coop-row:hover{background:var(--surface-2,#f5f7fa)}.sup-tbl tbody tr.sup-coop-row:hover td{color:var(--theme-strong)}.aud-date-l{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12);color:var(--text-2);white-space:nowrap}.aud-detail-full{white-space:pre-wrap;word-break:break-word;font-size:var(--fs-13);line-height:var(--lh-loose);background:var(--surface-2,#fafbfc);border:1px solid var(--border-light);border-radius:var(--r-sm);padding:12px;margin-top:10px;color:var(--text-1)}.aud-ref{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text-2)}.aud-foot{font-size:12px;color:var(--text-3);padding:4px;margin-top:8px}.aud-nav{display:flex;align-items:center;gap:8px;margin-bottom:8px}.st-pane-detail .oss-detail-hero{margin:0 0 12px;border-radius:var(--r-sm)}.oss-pane-review{margin:12px 0;padding:12px;background:var(--surface-2,#fafbfc);border:1px solid var(--border-light);border-radius:var(--r-sm)}.oss-pane-review .oss-op{display:flex;align-items:center;gap:8px;font-size:var(--fs-13);color:var(--text-2)}.oss-pane-review .oss-op-input{flex:1;min-width:0;border:1px solid var(--border-light);border-radius:var(--r-ctrl);padding:6px 10px;font-size:var(--fs-13)}.oss-pane-review-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.oss-pane-del{margin-top:4px;text-align:right}.st-dtbl{margin-top:8px}.st-forced{background:#fff7e6}.st-act{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border-strong,#ddd)}.st-act-t{font-weight:600;margin-bottom:4px}.st-act-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.st-amt-in{width:150px}.st-disc{color:var(--danger)}.st-exp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.stmt-break{page-break-inside:auto}.stmt-break .stmt-tbl tr{page-break-inside:avoid}.stmt-reason{margin:8px 0 0;font-size:var(--fs-12);color:var(--text-2);background:#fafbfc;border:1px solid var(--border-light);border-radius:var(--r-ctrl);padding:6px 10px}.set-wrap{padding:4px 2px 24px}.set-sec-t{font-size:var(--fs-13);font-weight:600;color:var(--text-2);margin:14px 0 10px}.set-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.set-stat{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--r-sm);padding:12px 14px}.set-stat-v{font-size:var(--fs-20);font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums}.set-stat-l{font-size:var(--fs-12);color:var(--text-3);margin-top:2px}.set-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.set-group{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--r-sm);padding:14px 16px;cursor:pointer;transition:border-color .12s}.set-group:hover{border-color:var(--theme)}.set-group-icon{font-size:22px;margin-bottom:6px}.set-group-t{font-size:var(--fs-14);font-weight:600;color:var(--text-1);margin-bottom:4px}.set-group-d{font-size:var(--fs-12);color:var(--text-3);line-height:var(--lh-relaxed)}@media(max-width:900px){.set-stats{grid-template-columns:repeat(2,1fr)}.set-groups{grid-template-columns:1fr}}.ss-group{border:1px solid var(--border-light);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:12px;background:var(--surface)}.ss-group-t{font-size:var(--fs-13);font-weight:600;color:var(--text-1);margin-bottom:2px}.ss-group-d{font-size:var(--fs-12);color:var(--text-3);margin-bottom:8px}.ss-bk-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-13);padding:4px 0}.ss-bk-row b{color:var(--text-1)}.ss-bk-note{font-size:var(--fs-12);color:var(--text-3)}html.dark .set-stat,html.dark .set-group,html.dark .ss-group{background:var(--surface)}@media(max-width:1200px){.st-panes{grid-template-columns:1fr}.st-pane-list{max-height:380px;overflow-y:auto;position:static}}.arp-detail-warn{background:var(--danger-bg);border:1px solid #f3c2c2;border-radius:var(--r-sm);padding:8px 12px;font-size:var(--fs-12);color:var(--danger-ink);margin-bottom:12px}.pp-fchip{display:inline-flex;align-items:center;gap:4px;border:1px solid color-mix(in srgb,var(--theme) 40%,transparent);background:color-mix(in srgb,var(--theme) 8%,transparent);color:var(--theme-strong);border-radius:var(--r-pill);padding:4px 10px;font-size:var(--fs-12);cursor:pointer}.pp-fchip:hover{background:color-mix(in srgb,var(--theme) 16%,transparent)}.pp-chip-em{font-style:normal;color:var(--text-4);margin-left:2px}.st-chip.on .pp-chip-em{color:#fffc}.pay-month[data-month]{cursor:pointer;border-radius:var(--r-ctrl);padding:2px 6px;margin-left:-6px;margin-right:-6px}.pay-month[data-month]:hover{background:var(--surface-3)}html.dark .arp-detail-warn{background:var(--surface);border-color:var(--border-light);color:var(--danger-ink)}html.dark .pp-fchip,html.dark .pay-month[data-month]:hover{background:var(--surface)}html.dark .st-owner{background:var(--surface);border-color:var(--border-light)}html.dark .st-input,html.dark .st-pg,html.dark .st-sel{background:var(--surface)}html.dark .st-pane-empty{border-color:var(--border-light)}@keyframes ds-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ds-cascade>*{animation:ds-rise var(--dur-base) var(--ease) backwards}@keyframes ds-breathe{0%,to{opacity:1}50%{opacity:.55}}.ds-ripple-host{position:relative;overflow:hidden}.ds-ripple{position:absolute;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#ffffff8c,#fff0 70%);transform:scale(0);opacity:.9;animation:ds-ripple-out var(--dur-ripple) var(--ease) forwards}.ds-ripple.is-dark{background:radial-gradient(circle,color-mix(in srgb,var(--theme) 28%,transparent) 0%,transparent 70%)}@keyframes ds-ripple-out{to{transform:scale(2.6);opacity:0}}@media(prefers-reduced-motion:reduce){.ds-cascade>*{animation:none!important;opacity:1!important}.ds-ripple{display:none!important}}.panel,.cards .card,.detail-card,.info-card,.pms-role-card,.mp-mod-card,.fin-budget-card,.fin-account-card{border-radius:var(--r-card)}.cards .card .card-icon,.pay-card-icon{border-radius:var(--r-sm)}.cost-card,.cost-oss,.cost-comp,.fin-flow-card,.fin-att-item,.sup-card,.sup-inv-item,.oss-sup-card,.pay-inv-card,.pay-sched-item,.fe-mode-card,.fe-d-cc-item,.dd-ap-card,.d-item,.up-mcard,.up-dept-item,.mp-perm-item,.st-card,.st-recon-sec,.st-ok,.st-dup,.st-recon-ok,.st-recon-none,.todo-item,.recent-item,.sp-info-item,.cs-item,.wo-card,.wo-panel-meta,.rp-item,.pop-item,.no-ac-item,.role-perm-panel{border-radius:var(--r-ctrl)}.sidebar{margin:0;border-radius:0;border-right:1px solid var(--border);box-shadow:none;background:var(--surface-2);-webkit-backdrop-filter:none;backdrop-filter:none}.topnav{margin:12px 12px 0;border-radius:var(--r-pill);border-bottom:0;box-shadow:0 6px 18px #0f172a0d;padding:0 24px}.app,.body{background:var(--bg)}.sup-card:hover,.oss-sup-card:hover,.order-card:hover,.fe-mode-card:hover,.up-mcard:hover,.pay-card:hover,.wo-card:hover,.todo-card[data-jump]:hover{transform:translateY(-2px)}thead th{letter-spacing:.04em}.cwb-tbl th,.cwb-tbl.sm th{font-size:var(--fs-12)}.vis-ws .page-head{margin-bottom:24px}.vis-ws .page-head h2{font-size:var(--fs-22);font-weight:700;letter-spacing:-.01em}.vis-ws .page-head .sub{font-size:var(--fs-12);color:var(--text-3)}.vis-ws .info-bar{margin-bottom:20px}.vis-ws .todo-mount{margin:0 0 28px}.vis-ws .quick{margin-bottom:20px}.vis-ws .panels .panel{margin-bottom:0}.vis-ws .dash-chart-panel{margin-top:0;margin-bottom:20px}.vis-ws .panels{margin-bottom:12px}.vis-ws .todo-section.folded .todo-grid,.vis-ws .todo-section.folded .todo-zero-bar{display:none}.vis-ws .todo-fold-head{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.vis-ws .todo-fold-head:hover .todo-fold-btn{text-decoration:underline}.vis-ws .todo-fold-sum{font-size:var(--fs-12);font-weight:400;color:var(--text-3)}.vis-ws .todo-fold-btn{margin-left:auto;font-size:var(--fs-12);color:var(--theme);white-space:nowrap}html.dark{color-scheme:dark;--bg: #0F172A;--surface: #151E32;--surface-2: #1B2740;--surface-3: #223050;--surface-glass: rgba(21, 30, 50, .78);--surface-glass-strong: rgba(21, 30, 50, .96);--border: #26334D;--border-strong: #33425F;--border-light: #1E2942;--text-1: #E8EDF7;--text-2: #A9B6CC;--text-3: #7C8AA3;--text: #E8EDF7;--ink: #F2F6FF;--ink-2: #E3EAF8;--theme-weak: rgba(0, 191, 166, .22);--ok: #34D399;--ok-ink: #6EE7B7;--warn: #FBBF24;--warn-ink: #FCD34D;--danger: #F87171;--danger-ink: #FCA5A5;--ok-bg: rgba(52, 211, 153, .16);--warn-bg: rgba(251, 191, 36, .16);--danger-bg: rgba(248, 113, 113, .16);--theme-strong: #00A896;--shadow-1: 0 24px 60px -20px rgba(0, 0, 0, .6);--shadow-2: 0 4px 14px rgba(0, 0, 0, .35);--shadow-3: inset 0 1px 0 rgba(255, 255, 255, .06);--shadow: 0 2px 8px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.25);--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-lg: var(--shadow-1), var(--shadow-2)}html.dark body,html.dark .app,html.dark .body,html.dark .main{background:var(--bg);color:var(--text-1)}html.dark .panel,html.dark .card,html.dark .todo-card,html.dark .info-card,html.dark .detail-card,html.dark .sup-card,html.dark .pay-card,html.dark .up-mcard,html.dark .st-card,html.dark [class$=-card],html.dark .dlg,html.dark .dlg-box,html.dark .modal-box,html.dark .filter-panel{background:var(--surface);border-color:var(--border)}html.dark .panel-head,html.dark .todo-card-head,html.dark thead th,html.dark .tbl th{background:var(--surface-2);border-color:var(--border)}html.dark .tbl td,html.dark table td{border-color:var(--border-light)}html.dark tr:hover td,html.dark tbody tr:hover{background:var(--surface-2)}html.dark input,html.dark select,html.dark textarea,html.dark .dlg-input{background:var(--surface-2);color:var(--text-1);border-color:var(--border)}html.dark input::placeholder,html.dark textarea::placeholder{color:var(--text-3)}html.dark .sidebar{background:#151e32b8;border-right-color:var(--border);box-shadow:0 8px 24px #00000059}html.dark .topnav{background:var(--surface-glass);border-bottom-color:var(--border);box-shadow:0 6px 18px #0000004d}html.dark .nav-item{color:var(--text-2)}html.dark .nav-item:hover{background:var(--surface-2)}html.dark .nav-item.active{color:#fff}html.dark .nav-item .ico{color:color-mix(in srgb,var(--nv, var(--text-3)) 78%,transparent)}html.dark .nav-item.active .ico,html.dark .nav-item:hover .ico{color:var(--nv, var(--theme))}html.dark .banner,html.dark .shell-banner,html.dark .ds-cloud,html.dark .uik-empty,html.dark .empty{background:var(--surface-2);color:var(--text-2);border-color:var(--border)}html.dark .ds-ripple{background:radial-gradient(circle,#ffffff38,#fff0 70%)}html.dark .btn-recycle,html.dark .dtrash-tree,html.dark .att-chip,html.dark .att-upload-btn,html.dark .btn-filter,html.dark .ft-clear:hover,html.dark .fp-label,html.dark .fp-reset,html.dark .fp-comb,html.dark .fp-comb-select,html.dark .fp-field-select,html.dark .fp-op-select,html.dark .fp-value-select,html.dark .fp-value-input,html.dark .ft-chip[data-cid=__quick_customer],html.dark .ft-chip[data-cid=__quick_owner],html.dark .grp-field,html.dark .grp-field-label,html.dark .field-cfg-head,html.dark .field-cfg-close:hover,html.dark .field-type-item,html.dark .field-cfg-input,html.dark .field-cfg-type-show,html.dark .grp-config-head,html.dark .gc-field,html.dark .gc-mode label,html.dark .gc-scope-enable,html.dark .gc-cond select,html.dark .gc-cond input,html.dark .grp-dd-head,html.dark .grp-dd-item,html.dark .gc-picker-head,html.dark .gc-pk-item,html.dark .grp-name,html.dark .col-ctx-menu,html.dark .col-del-text,html.dark .col-restore-name,html.dark .fp-role-tab,html.dark .fp-matrix th,html.dark .fp-field-name,html.dark .mp-section-title,html.dark .mp-row label,html.dark .mp-input,html.dark .mp-checkbox-group .mp-check,html.dark .mp-mod-row span,html.dark .mp-perm-name,html.dark .mp-role-name,html.dark .mp-role-avatar,html.dark .mp-detail-title,html.dark .mp-detail-icon,html.dark .mp-detail-name,html.dark .dp-field-name,html.dark .dp-radio,html.dark .vp-view-row,html.dark .mp-mod-table .mp-mod-name,html.dark .mp-mod-row2 .mp-mod-name,html.dark .mp-radio,html.dark .new-order-modal .modal-head,html.dark .no-section-title,html.dark .no-row label,html.dark .fin-kpi b,html.dark .fin-panel-head,html.dark .fin-chart-title,html.dark .fin-toolbar b,html.dark .fin-btn,html.dark .fin-subject,html.dark .fin-table td{color:var(--text-1)}html.dark .fin-table .mono,html.dark .fin-approval-stats b,html.dark .fin-link,html.dark .fin-field>span,html.dark .fin-flow-hint,html.dark .fin-txn-cell b{color:var(--text-1)}html.dark .fin-txn-cell b.mono,html.dark .fin-att-name,html.dark .fin-upload-item,html.dark .fin-account-total span,html.dark .fin-account-head b,html.dark .fin-recon-row,html.dark .fin-confirm-msg,html.dark .fin-reconcile-hint,html.dark .st-gray,html.dark .lvl-normal,html.dark .lvl-none,html.dark .oss-detail-notice.success,html.dark .pay-card b.money,html.dark .fe-d-start .fe-d-node-icon,html.dark .fe-d-node-name,html.dark .fe-ap-name,html.dark .dyn-name,html.dark .dyn-st-done .dyn-name,html.dark .dd-head b,html.dark .dd-row span,html.dark .dd-st.done,html.dark .dd-ap-name,html.dark .fe-log-item,html.dark .user-menu,html.dark .user-menu .um-rh-opt,html.dark .profile-value,html.dark .pf-readonly,html.dark .pf-text,html.dark .perm-modal .mp-input,html.dark .perm-role,html.dark .rp-result-box code,html.dark .user-name,html.dark .utag,html.dark .ue-val,html.dark .notify-title,html.dark .notify-item-title,html.dark .oc-name{color:var(--text-1)}html.dark .oc-act,html.dark .pms-tab:hover,html.dark .pms-tab.on,html.dark .wc-note,html.dark .wc-batch b,html.dark .wc-field>label{color:var(--text-1)}html.dark .wc-subtitle,html.dark .up-dept-item,html.dark .up-mname,html.dark .pms-role-name,html.dark .btn-secondary-outline,html.dark .pms-mt-name,html.dark .pms-mp-label,html.dark .pms-ed-close:hover,html.dark .pms-ed-glabel,html.dark .pms-ed-item,html.dark .up-dept-head,html.dark .up-toolbar-count,html.dark .up-filter-sel,html.dark .up-view-btn,html.dark .up-batch-bar,html.dark .up-mcard .up-mc-name,html.dark .mp-head h3,html.dark .mp-name,html.dark .mp-btn-cancel,html.dark .sp-info-item span,html.dark .sp-tl-label,html.dark .sp-pr-name,html.dark .sp-pr-status,html.dark .ta-title,html.dark .ta-label,html.dark .ta-textarea,html.dark .ta-input,html.dark .sh-banner-text,html.dark .sh-banner-text strong,html.dark .sh-plan-head,html.dark .sh-flabel,html.dark .sh-label,html.dark .sh-input,html.dark .sh-detail-val,html.dark body,html.dark html,html.dark .module-wrap,html.dark .card,html.dark .mp-card,html.dark .oss-detail-body,html.dark .fin-card,html.dark th,html.dark td,html.dark a,html.dark a:link,html.dark a:visited,html.dark .order-pager,html.dark .pg-btn,html.dark .batch-bar .bb-count,html.dark .bb-btn,html.dark .pop-item,html.dark .no-ac-item,html.dark .no-dq,html.dark .no-inline-label,html.dark .btn-ghost,html.dark .recent-item,html.dark .recent-item:hover,html.dark .todo-section-title,html.dark .todo-label,html.dark .todo-item,html.dark .todo-item-title,html.dark .todo-metric .todo-metric-value,html.dark .cs-item b,html.dark .cc-title,html.dark .cc-amt,html.dark .po-d-sup-name,html.dark .po-d-sec,html.dark .po-d-val,html.dark .wo-row td:first-child b,html.dark .wo-prog span,html.dark .wo-panel-head b,html.dark .wo-matrix td,html.dark .wo-form-preview b,html.dark .wo-pieces-head,html.dark .wo-qs-head,html.dark .wo-wk-range,html.dark .wo-wk-wd,html.dark .wo-card-top,html.dark .stmt-sheet,html.dark .stmt-sum-cell b,html.dark .stmt-sec h3,html.dark .stmt-tbl td,html.dark .dal-sum b,html.dark .dal-sec h4,html.dark .dal-l b,html.dark .wc-policy-txt b,html.dark .cwb-tag,html.dark .cwb-badge.st-跟进中,html.dark .po-pill,html.dark .st-cv,html.dark .st-chip,html.dark .st-table th,html.dark .st-table td,html.dark .st-detail-top,html.dark .st-force,html.dark .st-recon-title{color:var(--text-1)}html.dark #login::selection,html.dark #login .tl-pill,html.dark #login .tl-pill:hover,html.dark #login .tl-inbox input:focus,html.dark #login .tl-sw:after{background:var(--surface)}html.dark #login .tl-sso-item,html.dark #login .tl-trait{background:var(--surface)}html.dark .dlg-input:focus,html.dark .btn-recycle,html.dark .btn-recycle:hover,html.dark .dtrash-tree,html.dark .dtrash-badge,html.dark .topnav{background:var(--surface)}html.dark .btn-ghost,html.dark .btn-secondary,html.dark .sidebar,html.dark .nav-item.mod-stub .mod-soon,html.dark .nav-group-count,html.dark .footer,html.dark .card,html.dark .panel,html.dark .panel-head,html.dark .tbl th,html.dark .quick,html.dark .quick-btn,html.dark .module-wrap,html.dark .vs-scroll,html.dark .vs-table th,html.dark .vs-table thead,html.dark .vs-table tr.vs-row:hover,html.dark .detail-actions .od-next-btn.od-cancel,html.dark .dv-edit:hover,html.dark .dv-editor,html.dark .cost-card-oss,html.dark .cost-oss-table th{background:var(--surface)}html.dark .detail-actions .od-next-btn.od-reopen{background:#1a3a35;color:#5dbfae;border-color:#2a5a50}html.dark .detail-actions .od-block-why{color:#e8a33d}html.dark .cost-oss-table tbody tr:hover,html.dark .cost-oss-total td,html.dark .cost-oss-view,html.dark .cost-oss-view:hover,html.dark .cost-note,html.dark .cost-card-logistics,html.dark .log-type-errand,html.dark .log-contact-hist,html.dark .log-contact-add:hover,html.dark .att-chip,html.dark .att-chip .att-img,html.dark .att-chip .att-thumb,html.dark .img-preview-img,html.dark .att-chip .att-img.att-broken,html.dark .att-remove-btn,html.dark .att-upload-btn,html.dark .att-upload-btn:hover,html.dark .att-progress,html.dark .tag.ok,html.dark .tag.warn,html.dark .tag.purple,html.dark .tag.red,html.dark .tag.green,html.dark .tag.orange,html.dark .error-box,html.dark .btn-retry,html.dark .btn-filter,html.dark .btn-filter.active,html.dark .ft-chip,html.dark .filter-panel,html.dark .fp-reset,html.dark .fp-condition,html.dark .fp-comb-select,html.dark .fp-field-select,html.dark .fp-op-select,html.dark .fp-value-select,html.dark .fp-value-input,html.dark .fp-remove,html.dark .fp-remove:hover,html.dark .fp-add,html.dark .fp-add:hover,html.dark .fp-group,html.dark .fp-group-comb{background:var(--surface)}html.dark .fp-group{border-color:var(--text-2)}html.dark .fp-group-del:hover{background:#f5222d1f}html.dark .fp-group-add:hover{background:#4080ff1f}html.dark .ft-chip[data-cid=__quick_customer],html.dark .ft-chip[data-cid=__quick_owner],html.dark .view-seg .vs-btn,html.dark .grp-field,html.dark .grp-add,html.dark .grp-field-label,html.dark .grp-field-label:hover,html.dark .grp-config-btn,html.dark .grp-config-btn:hover,html.dark .grp-ungroup-btn,html.dark .grp-ungroup-btn:hover,html.dark .field-cfg,html.dark .field-cfg-close:hover,html.dark .field-cfg-side,html.dark .field-type-item:hover,html.dark .field-type-icon,html.dark .field-cfg-type-show,html.dark .field-cfg-cancel,html.dark .grp-config,html.dark .gc-field,html.dark .gc-bucket,html.dark .gc-chip,html.dark .gc-addval,html.dark .gc-delb,html.dark .gc-addb,html.dark .gc-auto,html.dark .gc-cond-add,html.dark .gc-picker-ok,html.dark .gc-addval:hover,html.dark .gc-addb:hover,html.dark .gc-auto:hover,html.dark .gc-cond-add:hover,html.dark .gc-cond select,html.dark .gc-cond input,html.dark .grp-field-dropdown,html.dark .grp-dd-item:hover,html.dark .grp-dd-item.on,html.dark .grp-dd-adv,html.dark .grp-dd-adv:hover,html.dark .gc-cancel,html.dark .gc-picker,html.dark .gc-pk-item:hover,html.dark .grp-add:hover,html.dark .grp,html.dark .grp-head,html.dark .grp-count,html.dark .grp-sum,html.dark .grp-foot{background:var(--surface)}html.dark .kb-col,html.dark .kb-col-head{background:var(--surface-2, var(--surface))}html.dark .kb-col.drop-target{background:var(--surface-2)}html.dark .kb-card{background:var(--surface);border-color:var(--border)}html.dark .kb-card:hover{border-color:var(--border-strong)}html.dark .kb-card-no,html.dark .kb-card-amt{color:var(--text-1, #e8ecf2)}html.dark .kb-card-cust{color:var(--text-2, #9aa5b8)}html.dark .kb-card-cust.is-empty,html.dark .kb-prog-none{color:#5d6879}html.dark .kb-col-count{background:var(--border);color:#9aa5b8}html.dark .kb-col-sum{color:#9aa5b8}html.dark .kb-due{background:var(--border);color:#9aa5b8}html.dark .kb-due.overdue{background:#3a2020;color:#ff7875}html.dark .kb-empty{color:#5d6879;border-color:var(--border)}html.dark .grp-actions button,html.dark .grp-actions .grp-del:hover,html.dark .grp-body .module-table thead th,html.dark .grp-body .module-table thead,html.dark .col-ctx-menu,html.dark .col-ctx-item:hover,html.dark .col-ctx-sep,html.dark .col-ctx-item.col-ctx-danger:hover,html.dark .col-del-modal,html.dark .col-restore-modal,html.dark .col-restore-row:hover,html.dark .col-modal,html.dark .col-color-picker,html.dark .col-color-clear,html.dark .col-insert-picker,html.dark .col-insert-row:hover,html.dark .col-insert-badge,html.dark .col-insert-badge-hidden,html.dark .col-insert-new:hover,html.dark .cell-editable:hover,html.dark .cell-editing,html.dark .cell-saved,html.dark .cell-edit-input,html.dark .cell-edit-select,html.dark .cell-readonly,html.dark .cell-readonly:hover,html.dark .fp-modal,html.dark .fp-role-tab{background:var(--surface)}html.dark .fp-matrix th,html.dark .fp-v .fp-icon,html.dark .fp-h .fp-icon,html.dark .fp-leg.fp-v:before,html.dark .fp-leg.fp-h:before,html.dark .mp-modal{background:var(--surface)}html.dark .mp-input,html.dark .mp-checkbox-group .mp-check,html.dark .mp-checkbox-group .mp-check:hover,html.dark .mp-hint,html.dark .mp-perm-item.extra,html.dark .mp-perm-item.denied,html.dark .mp-perm-state,html.dark .mp-role-tag,html.dark .mp-left,html.dark .mp-roles-search,html.dark .mp-role-item:hover,html.dark .mp-role-item.active,html.dark .mp-roles-add:hover,html.dark .mp-detail-title,html.dark .mp-detail-head:hover,html.dark .mp-detail-body,html.dark .dp-field-row:hover,html.dark .dp-field-type,html.dark .dp-radio.on,html.dark .vp-view-row,html.dark .vp-view-row:hover,html.dark .vp-view-row.on,html.dark .mp-right,html.dark .mp-tabs,html.dark .mp-tab.active,html.dark .mp-mod-table .mp-mod-row:hover,html.dark .mp-mod-card,html.dark .mp-chevron:hover,html.dark .mp-source-tag.mp-src-default,html.dark .mp-mod-child{background:var(--surface)}html.dark .mp-radio input[type=radio]:checked:after,html.dark .mp-radio.on,html.dark .new-order-modal,html.dark .oss-tab.active .oss-badge,html.dark .fin-tabs,html.dark .fin-tab:hover{background:var(--surface)}html.dark .fin-tab.active,html.dark .fin-loading,html.dark .fin-error,html.dark .fin-kpi,html.dark .fin-panel,html.dark .fin-chart,html.dark .fin-toolbar,html.dark .fin-btn,html.dark .fin-btn:hover,html.dark .fin-subject,html.dark .fin-table-wrap,html.dark .fin-table th,html.dark .fin-table tbody tr:hover{background:var(--surface)}html.dark .fin-type.income,html.dark .fin-type.expense{background:var(--danger-bg);color:var(--danger)}html.dark .fin-status.pending{background:var(--warn-bg);color:var(--warn)}html.dark .fin-status.approved{background:var(--ok-bg);color:var(--ok)}html.dark .fin-status.rejected{background:var(--danger-bg);color:var(--danger)}html.dark .fin-year select,html.dark .fin-subject-bar>div,html.dark .fin-budget-card,html.dark .fin-budget-head em,html.dark .fin-budget-card.warning em,html.dark .fin-budget-card.danger em{background:var(--surface)}html.dark .fin-progress,html.dark .fin-approval-stats span,html.dark .fin-modal,html.dark .fin-modal-head,html.dark .fin-field input,html.dark .fin-field select{background:var(--surface)}html.dark .fin-field textarea,html.dark .fin-flow-hint,html.dark .fin-request-hero>div,html.dark .fin-txn-hero,html.dark .fin-txn-type-badge.income,html.dark .fin-txn-type-badge.expense{background:var(--surface)}html.dark .fin-att-item,html.dark .fin-att-item img,html.dark .fin-att-file,html.dark .fin-upload-btn,html.dark .fin-upload-btn:hover,html.dark .fin-upload-item{background:var(--surface)}html.dark .fin-lightbox-close,html.dark .fin-account-card,html.dark .fin-reconcile-hint,html.dark .oss-table-wrap::-webkit-scrollbar-track,html.dark .oss-act-delete:hover,html.dark .oss-compare{background:var(--surface)}html.dark .oss-compare-mode,html.dark .oss-cmp-card.oss-cmp-picked,html.dark .oss-cmp-tag,html.dark .oss-cmp-row,html.dark .oss-cmp-lead[type=date],html.dark .oss-cmp-remove{background:var(--surface)}html.dark .oss-cmp-tr,html.dark .oss-cmp-note,html.dark .oss-detail-notice.waiting,html.dark .oss-detail-notice.success,html.dark .oss-detail-notice.rejected,html.dark .oss-detail-section h4>span{background:var(--surface)}html.dark .po-att-del:hover,html.dark .oss-supplier-name span,html.dark .oss-po-card>div,html.dark .sup-card.on,html.dark .sup-kpi,html.dark .sup-chart-wrap{background:var(--surface)}html.dark .sup-bar{fill:color-mix(in srgb,var(--primary) 50%,#2a2f3a)}html.dark .sup-orders .module-table th,html.dark .sup-order-row:hover td,html.dark .sup-pay-kpi,html.dark .sup-pay-plan,html.dark .sup-inv-badge,html.dark .sup-purchase-row:hover td{background:var(--surface)}html.dark .sup-inv-item.broken,html.dark .pay-card-icon,html.dark .pay-month-bar,html.dark .pay-top:hover,html.dark .pay-top-rank{background:var(--info-bg);color:var(--theme)}html.dark .sup-import-tip,html.dark .deploy-btn,html.dark .sync-btn,html.dark .pay-inv-card,html.dark .fe-d-cc-item,html.dark .dyn-circle,html.dark .dyn-st-pending .dyn-circle,html.dark .dyn-detail-panel,html.dark .dd-head em,html.dark .dd-st.done,html.dark .dd-st.rejected,html.dark .dd-st.pending,html.dark .dd-ap-card,html.dark .dd-cc-tag,html.dark .fe-btn-reject:hover,html.dark .fe-btn-revoke,html.dark .info-card,html.dark .user-menu,html.dark .user-menu .um-divider,html.dark .user-menu .um-item:hover,html.dark .user-menu .um-logout:hover,html.dark .user-menu .um-rh-opt:hover,html.dark .profile-tip-warn,html.dark .perm-modal .mp-input,html.dark .perm-chip,html.dark .rp-result,html.dark .rp-result-box code,html.dark .utag,html.dark .notify-item:hover,html.dark .nt-approval .notify-icon,html.dark .oc-card,html.dark .oc-count,html.dark .oc-status.on,html.dark .oc-status.off,html.dark .oc-act,html.dark .pms-tabs,html.dark .pms-tab:hover,html.dark .pms-tab.on,html.dark .wc-note,html.dark .up-search,html.dark .up-dept-tree,html.dark .up-dept-item:hover,html.dark .up-member-area,html.dark .up-main-table thead th,html.dark .up-member-table tbody tr:hover,html.dark .up-role-sel,html.dark .pms-role-card,html.dark .pms-role-card .pms-sys-tag,html.dark .btn-secondary-outline,html.dark .pms-matrix-wrap,html.dark .pms-matrix thead th,html.dark .pms-matrix thead th:first-child,html.dark .pms-matrix tbody td:first-child,html.dark .pms-matrix tbody tr:hover td,html.dark .pms-matrix tbody tr:hover td:first-child,html.dark .pms-mg-row td{background:var(--surface)}html.dark .pms-mg-row td:first-child,html.dark .pms-mp-cell.on,html.dark .pms-mp-cell:not(.on):hover,html.dark .pms-editor,html.dark .pms-ed-head,html.dark .pms-ed-close:hover{background:var(--surface)}html.dark .pms-ed-ghead,html.dark .pms-ed-ga,html.dark .pms-ed-item,html.dark .pms-ed-item:hover,html.dark .pms-ed-foot,html.dark .pms-ed-legend,html.dark .pms-src.pms-src-default,html.dark .pms-lvl.pms-lvl-view,html.dark .pms-lvl.pms-lvl-edit,html.dark .pms-lvl.pms-lvl-manage,html.dark .pms-lvl.pms-lvl-other,html.dark .up-dept-manage,html.dark .up-member-table tbody tr.up-dragging,html.dark .oc-member-chip,html.dark .oc-member-chip:hover .oc-chip-avatar,html.dark .oc-drag-handle,html.dark .oc-card.oc-dragging-src,html.dark .modal-box,html.dark .up-toolbar,html.dark .up-toolbar-count,html.dark .up-toolbar .up-search-box input,html.dark .up-filter-sel,html.dark .up-filter-chip,html.dark .up-view-btn,html.dark .up-view-btn:hover,html.dark .up-batch-bar select,html.dark .up-batch-bar button,html.dark .up-mcard,html.dark .up-mcard.selected,html.dark .up-mcard .up-mc-tag.dept,html.dark .up-mcard .up-mc-tag.role,html.dark .up-mcard .up-mc-tag.status-active,html.dark .up-mcard .up-mc-tag.status-disabled,html.dark .up-mcard .up-mc-acts button,html.dark .up-mcard .up-mc-acts button:hover,html.dark .mp-panel{background:var(--surface)}html.dark .mp-close:hover,html.dark .mp-search-wrap input,html.dark .mp-search-wrap input:focus,html.dark .mp-chip,html.dark .mp-item:hover,html.dark .mp-item.selected{background:var(--surface)}html.dark .mp-status.active,html.dark .mp-status.disabled,html.dark .mp-status.pending,html.dark .mp-foot,html.dark .mp-btn-cancel,html.dark .mp-btn-cancel:hover,html.dark .sp-dh-left,html.dark .sp-info-item,html.dark .sp-step,html.dark .sp-progress-bar,html.dark .sp-pr-num,html.dark .sp-pr-line{background:var(--surface)}html.dark .col-draggable:hover,html.dark .ta-card,html.dark .ta-textarea,html.dark .ta-input,html.dark .ta-eye:hover,html.dark .ta-slider:before{background:var(--surface)}html.dark .sh-badge,html.dark .sh-banner-text code,html.dark .shell-table.shell-table,html.dark .shell-table thead th,html.dark .shell-empty,html.dark .shell-plan,html.dark .sh-field,html.dark .sh-type,html.dark .sh-req,html.dark .sh-input,html.dark body,html.dark html,html.dark .mp-card,html.dark .oss-detail-body,html.dark .fin-card,html.dark th,html.dark .pg-btn,html.dark .vs-sel-th,html.dark .batch-bar,html.dark .bb-btn,html.dark .pop-menu,html.dark .no-ac-pop,html.dark .no-dq{background:var(--surface)}html.dark .no-switch-track:after,html.dark .todo-empty-all,html.dark .todo-card,html.dark .cost-section.cost-guard,html.dark .cs-item,html.dark .cost-comp-head{background:var(--surface)}html.dark .cost-comp-head:hover,html.dark .cost-comp-table th,html.dark .order-card,html.dark .order-card:active,html.dark .wo-wrap,html.dark .wo-row:hover,html.dark .wo-prog,html.dark .wo-panel,html.dark .wo-panel-meta,html.dark .wo-matrix,html.dark .wo-matrix th,html.dark .wo-cell,html.dark .wo-cell.full,html.dark .wo-cell.none,html.dark .od-prod-info.done,html.dark .wo-piece-row .wo-p-del,html.dark .wo-qs-block,html.dark .wo-qs-badge.ok,html.dark .wo-qs-badge.bad,html.dark .wo-qs-badge.none,html.dark .wo-qs-btn,html.dark .wo-dlg,html.dark .od-prod-info.bad,html.dark .wvt-btn,html.dark .wo-week,html.dark .wo-wk-bar button,html.dark .wo-wk-col,html.dark .wo-wk-col.wo-wk-free,html.dark .wo-card,html.dark .wo-card-tag.ok{background:var(--surface)}html.dark .wo-card-tag.bad,html.dark .stmt-sheet,html.dark .stmt-sum-cell,html.dark .stmt-tbl th,html.dark .stmt-tbl tr:nth-child(2n) td,html.dark .stmt-total td{background:var(--surface)}html.dark .stmt-none,html.dark .stmt-mask,html.dark .ovt-btn.dalert-btn,html.dark .dal-box,html.dark .dal-sum,html.dark .dal-row,html.dark .dal-row:hover,html.dark .dal-stale,html.dark .dal-empty,html.dark .wc-policy-row,html.dark .wc-policy-row:hover,html.dark .cr-pager select,html.dark .cwb-input,html.dark .cwb-seg-btn,html.dark .cwb-btn,html.dark .cwb-btn:hover,html.dark .cwb-tbl,html.dark .cwb-tbl th,html.dark .cwb-tag,html.dark .cwb-badge.st-首单成交,html.dark .cwb-badge.st-跟进中,html.dark .cwb-badge.st-流失,html.dark .cwb-badge.tier,html.dark .cwb-empty,html.dark .cwb-drawer,html.dark .cwb-drawer-head,html.dark .cwb-remark,html.dark .cwb-modal,html.dark .cwb-x:hover,html.dark .fe-btn-addsign:hover,html.dark .ap-sub-extra-tip,html.dark .mp-diff-type,html.dark .mp-btn-danger,html.dark .sup-board-profile .sup-lic,html.dark .sup-board-profile .sup-lic-none,html.dark .sup-board-profile .sup-eval,html.dark .sup-vtab,html.dark .po-recv-bar,html.dark .po-d-row[data-fill]:hover,html.dark .po-file,html.dark .po-file:hover,html.dark .po-kpi,html.dark .po-pill,html.dark .po-rank:hover,html.dark .po-rank-bar,html.dark .pay-sched-item,html.dark .pay-sched-item.done,html.dark .supmk-warn,html.dark .st-card,html.dark .st-card.ok,html.dark .st-card.good,html.dark .st-card.warn,html.dark .st-chip,html.dark .st-refresh,html.dark .st-table,html.dark .st-table th,html.dark .st-detail-top,html.dark .st-ok,html.dark .st-dup,html.dark .st-recon-bad,html.dark .st-recon-warn,html.dark .st-recon-ok,html.dark .st-recon-none{background:var(--surface)}.page-head .ph-icon{flex:0 0 auto;line-height:1}.page-head .ph-text{flex:1 1 auto;min-width:0}.page-head .ph-text h2{margin:0}.page-head .btn-refresh{flex:0 0 auto}.wo-stats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.wo-stat-card{flex:1 1 0;min-width:104px;display:flex;flex-direction:column;gap:4px;background:var(--surface-2, #f7f9fc);border:1px solid var(--border, #e6ebf2);border-radius:var(--r-sm);padding:8px 12px}.wo-stat-card>span{font-size:var(--fs-12);color:var(--text-3, var(--text-4));line-height:var(--lh-tight)}.wo-stat-card>b{font-size:var(--fs-22);font-weight:700;line-height:var(--lh-tight);color:var(--text-1, #1f2329);font-variant-numeric:tabular-nums}.wo-stat-card.warn>b{color:var(--warn, var(--warn))}.wo-stat-card.danger>b{color:var(--danger, var(--danger))}.wo-stat-card.ok>b{color:var(--ok, var(--ok))}.wo-search-bar{display:flex;align-items:center;gap:8px;margin:0 0 12px}.wo-search{flex:0 1 320px;height:34px;padding:0 12px;border:1px solid var(--border, #e6ebf2);border-radius:var(--r-sm);background:var(--surface, #fff);color:var(--text-1, #1f2329);font-size:var(--fs-13);outline:none}.wo-search:focus{border-color:var(--theme, var(--theme));box-shadow:0 0 0 3px color-mix(in srgb,var(--theme) 12%,transparent)}.wo-count{font-size:var(--fs-12);color:var(--text-3, var(--text-4));font-variant-numeric:tabular-nums}.cwb-tbl:not(.sm){min-width:1424px;table-layout:fixed}.cwb-tbl:not(.sm) th,.cwb-tbl:not(.sm) td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cwb-tbl:not(.sm) th:nth-child(1),.cwb-tbl:not(.sm) td:nth-child(1){width:300px}.cwb-tbl:not(.sm) th:nth-child(12),.cwb-tbl:not(.sm) td:nth-child(12){width:96px}.cwb-tag{display:inline-block;vertical-align:middle}.sup-card-top{padding-left:28px}.notify-content{padding-right:56px}.ds-cloud{display:inline-flex;align-items:center;height:28px;flex:none;padding:0 12px 0 8px;margin-right:4px;border-radius:var(--r-pill, var(--r-pill));background:#fff9;border:1px solid rgba(15,23,42,.06);font-size:var(--fs-12);color:var(--text-2);cursor:pointer;user-select:none;transition:background .16s var(--ease),box-shadow .16s var(--ease)}.ds-cloud:hover{background:#ffffffeb;box-shadow:0 2px 10px #0f172a12}html.dark .ds-cloud{background:#ffffff0f;border-color:#ffffff17}html.dark .ds-cloud:hover{background:#ffffff1c}.ds-cloud-track{position:relative;display:block;height:18px;width:100%;min-width:0}.ds-cloud-slide{position:absolute;inset:0;display:flex;align-items:center;gap:4px;opacity:0;white-space:nowrap;overflow:hidden;will-change:opacity,transform}.ds-cloud-slide .ds-cloud-label{color:var(--text-1);font-weight:600;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ds-cloud-slide .ds-cloud-val{color:var(--text-2);overflow:hidden;text-overflow:ellipsis}.ds-cloud-empty{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.ds-cloud[data-n="1"] .ds-cloud-slide{animation:none;opacity:1}.ds-cloud[data-n="2"] .ds-cloud-slide{animation:cloudCycle2 6s linear infinite}.ds-cloud[data-n="3"] .ds-cloud-slide{animation:cloudCycle3 9s linear infinite}@keyframes cloudCycle2{0%,3%{opacity:0;transform:translateY(6px)}8%,45%{opacity:1;transform:none}50%,to{opacity:0;transform:translateY(-6px)}}@keyframes cloudCycle3{0%,2%{opacity:0;transform:translateY(6px)}6%,30%{opacity:1;transform:none}33%,to{opacity:0;transform:translateY(-6px)}}.ds-cloud:hover .ds-cloud-slide{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.ds-cloud-slide{animation:none!important;opacity:0;transform:none}.ds-cloud-slide:first-child{opacity:1}}.ds-cloud-ring{width:14px;height:14px;border-radius:50%;flex:none;background:conic-gradient(var(--cloud-c, var(--theme)) calc(var(--p, 0) * 1%),rgba(15,23,42,.12) 0);-webkit-mask:radial-gradient(circle at 50% 50%,transparent 3px,#000 3.5px);mask:radial-gradient(circle at 50% 50%,transparent 3px,#000 3.5px)}.ds-cloud-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--cloud-c, var(--theme))}.ds-cloud-ring.urgent,.ds-cloud-dot.urgent{--cloud-c: var(--danger, var(--danger))}.ds-cloud-ring.warn,.ds-cloud-dot.warn{--cloud-c: var(--warn, #f0a838)}.ds-cloud-ring.ok,.ds-cloud-dot.ok{--cloud-c: var(--theme)}.ds-cloud-ring.info,.ds-cloud-dot.info{--cloud-c: var(--text-3, var(--text-4))}.ds-cloud{flex:0 4 200px;min-width:86px;max-width:200px}.top-right{flex-wrap:nowrap;min-width:0}.role-switch{flex:none}.role-switch .rs,.role-badge,.top-right .user,.top-right .btn-ghost,.top-right .deploy-btn,.top-right .notify-bell,.top-right .wx-avatar,#topnav .brand{white-space:nowrap;flex:none}@media(max-width:1280px){.top-right .deploy-btn{padding:4px 8px}.top-right .deploy-btn .deploy-label{display:none}}.ds-cloud{container-type:inline-size}@container (max-width: 156px){.ds-cloud-slide .ds-cloud-label{display:none}.ds-cloud-slide .ds-cloud-val{color:var(--text-1);font-weight:600}}@media(max-width:1280px){.ds-cloud{display:none}}.role-switch{position:relative}.rs-dd-btn{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;border:1px solid var(--border, var(--border));border-radius:var(--r-ctrl, var(--r-sm));background:var(--surface, var(--surface));color:var(--text-2);font-size:var(--fs-12);cursor:pointer;white-space:nowrap;flex:none;transition:background .14s var(--ease),border-color .14s var(--ease)}.rs-dd-btn:hover{background:var(--surface-2);border-color:var(--theme);color:var(--text-1)}.role-switch.open .rs-dd-btn{border-color:var(--theme);color:var(--text-1)}.rs-dd-caret{font-size:var(--fs-11);opacity:.7;transition:transform .14s var(--ease)}.role-switch.open .rs-dd-caret{transform:rotate(180deg)}.rs-dd-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:var(--zi-dropdown);min-width:150px;padding:4px;border-radius:var(--r-ctrl, var(--r-ctrl));background:var(--surface, #fff);border:1px solid var(--border, #e3e6eb);box-shadow:var(--shadow-lg, 0 8px 28px rgba(15, 23, 42, .14))}.rs-dd-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:4px 8px;border:0;border-radius:var(--r-ctrl);background:transparent;color:var(--text-1);font-size:var(--fs-12);cursor:pointer;text-align:left;white-space:nowrap}.rs-dd-item:hover{background:var(--surface-2)}.rs-dd-item.on{background:var(--theme-weak);color:var(--theme-strong);font-weight:600}.rs-dd-check{color:var(--theme-strong);font-size:var(--fs-12)}.pc-order-list{margin-top:4px;max-height:168px;overflow-y:auto}.pc-order-item{display:flex;gap:8px;align-items:baseline;padding:8px;border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:4px;cursor:pointer;font-size:var(--fs-12);background:var(--surface)}.pc-order-item:hover{border-color:var(--theme);background:var(--theme-weak)}.pc-order-item b{font-weight:600}.pc-order-item span{color:var(--text-3);font-size:var(--fs-12)}.pc-picked{margin-top:4px;padding:8px;border-radius:var(--r-sm);background:var(--theme-weak);font-size:var(--fs-12);display:flex;align-items:center;gap:8px}.pc-picked .pc-order-clear{margin-left:auto;border:0;background:transparent;color:var(--theme);cursor:pointer;font-size:var(--fs-12)}.pc-hint{margin-top:4px;font-size:var(--fs-12);color:var(--text-4)}.att-section .att-field{margin-bottom:12px}.att-section .att-field:last-child{margin-bottom:0}.att-field-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.att-field-label{font-size:var(--fs-13);font-weight:600;color:var(--text-1)}.att-field-head .att-upload-btn{margin-left:auto}.att-empty-fields{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:10px;margin-top:12px;border-top:1px dashed var(--border)}.att-empty-lead{font-size:var(--fs-12);color:var(--text-3)}.att-empty-item{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.att-empty-chip{border:1px dashed var(--border-strong);background:var(--surface);color:var(--text-3);border-radius:var(--r-pill);padding:3px 12px;font-size:var(--fs-12);cursor:pointer}.att-empty-chip:hover{color:var(--theme);border-color:var(--theme);background:var(--theme-weak)}.att-empty-chip.ro{cursor:default}.att-empty-item .att-list{display:block;width:100%}.att-empty-item .att-list:empty{display:none}.att-section .att-count{font-size:var(--fs-12);color:var(--theme);font-weight:600;margin-bottom:2px}.att-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:6px;width:100%}.att-row{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctrl);padding:5px 8px;min-width:0}.att-row:hover{border-color:var(--border-strong)}.att-row-thumb{width:34px;height:34px;min-width:34px;border-radius:var(--r-6);object-fit:cover;background:var(--surface-2);cursor:zoom-in}.att-row-doc{width:34px;height:34px;min-width:34px;border-radius:var(--r-6);background:var(--theme-weak);color:var(--theme);font-size:var(--fs-11);font-weight:700;display:inline-flex;align-items:center;justify-content:center}.att-row-name{flex:1;min-width:0;font-size:var(--fs-13);color:var(--text-1);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-row-name:hover{color:var(--theme);text-decoration:underline}.att-more{margin-top:4px;border:none;background:none;color:var(--theme);font-size:var(--fs-12);cursor:pointer;padding:2px 0;text-align:left}.att-more:hover{text-decoration:underline}.dt-nav{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin:8px 0 12px}.dt-tab{border:none;background:none;color:var(--text-3);font-size:var(--fs-13);padding:7px 12px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0;font-family:inherit}.dt-tab:hover{color:var(--theme)}.dt-tab.on{color:var(--theme);border-bottom-color:var(--theme);font-weight:600}.dt-badge{display:inline-block;min-width:16px;padding:0 5px;margin-left:3px;border-radius:var(--r-pill);background:var(--theme-weak);color:var(--theme);font-size:var(--fs-11);line-height:16px;text-align:center}.dt-panel{display:none}.dt-panel.on{display:block}.od-base .detail-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:row;grid-auto-rows:minmax(42px,auto);gap:0 18px}.od-base .df-w1{grid-column:span 1}.od-base .df-w2{grid-column:span 2}.od-base .df-w3{grid-column:span 3}.od-base .df-w6{grid-column:span 6}.od-base .df-h2{grid-row:span 2}.od-base .df-h3{grid-row:span 3}@media(max-width:1200px)and (min-width:901px){.od-base .detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.od-base .df-w3{grid-column:span 2}.od-base .df-w6{grid-column:span 4}}@media(max-width:900px)and (min-width:641px){.od-base .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.od-base .df-w2,.od-base .df-w3,.od-base .df-w6{grid-column:span 2}}.od-base .d-item{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:10px;min-width:0;background:none;border:none;border-radius:0;border-bottom:1px solid var(--border);padding:7px 2px}.od-base .d-item .dl{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap}.od-base .d-item .dv{min-width:0;font-size:var(--fs-13);word-break:break-word;overflow-wrap:anywhere}.od-base .d-item .dv.empty{padding:0}.od-base .dv-more{margin-top:6px}.att-gal-mask{position:fixed;inset:0;z-index:var(--zi-top);background:#0f172acc;display:none;align-items:center;justify-content:center}.att-gal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctrl);width:min(860px,92vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #00000059}.att-gal-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border)}.att-gal-name{flex:1;min-width:0;font-size:var(--fs-13);color:var(--text-1);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-gal-count{font-size:var(--fs-12);color:var(--text-3)}.att-gal-close{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:var(--r-ctrl);padding:4px 10px;font-size:var(--fs-12);cursor:pointer}.att-gal-close:hover{border-color:var(--danger-ink, var(--danger-ink));color:var(--danger-ink, var(--danger-ink))}.att-gal-body{flex:1;min-height:320px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);overflow:hidden}.att-gal-img{max-width:100%;max-height:64vh;object-fit:contain}.att-gal-pdf{width:100%;height:64vh;border:none;background:#fff}.att-gal-video{max-width:100%;max-height:64vh;border-radius:var(--r-8);background:#000;outline:none}.att-row-video{cursor:pointer;color:#fff;background:var(--theme);box-shadow:0 1px 4px #0f375f40}.att-gal-plain{text-align:center;color:var(--text-2);font-size:var(--fs-13);line-height:var(--lh-loose);padding:24px}.att-gal-nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 16px;border-top:1px solid var(--border)}.att-gal-prev,.att-gal-next{border:1px solid var(--border);background:var(--surface);color:var(--text-1);border-radius:var(--r-ctrl);padding:4px 12px;font-size:var(--fs-12);cursor:pointer}.att-gal-prev:hover,.att-gal-next:hover{border-color:var(--theme);color:var(--theme);background:var(--theme-weak)}.att-gal-open{font-size:var(--fs-12);color:var(--theme);text-decoration:none}.att-gal-open:hover{text-decoration:underline}html.dark .att-gal{box-shadow:0 24px 64px #0009}.page-head{background:var(--surface);border-bottom:1px solid var(--border-light);margin:-20px -24px 16px;padding:12px 24px;align-items:center;position:sticky;top:-12px;z-index:var(--zi-sticky)}.page-head .ph-icon{background:var(--theme-weak);color:var(--theme)}.filter-bar{background:var(--surface-2);border:1px solid var(--border-light);border-radius:var(--r-ctrl);padding:8px 12px}.dlg-head{padding:16px 20px 12px;border-bottom:1px solid var(--border-light);margin-bottom:4px}.page-head{border-top:3px solid var(--theme)}.module-table tbody tr:hover,.tbl tbody tr:hover,.vs-table tbody tr.vs-row:hover{background:color-mix(in srgb,var(--theme) 10%,transparent)}html.dark .tbl tbody tr:hover,html.dark table tbody tr:hover,html.dark .module-table tbody tr:hover{background:color-mix(in srgb,var(--theme) 14%,transparent)}:where(button,[role=button],a[href],summary,.nav-item,.kpi-click):focus-visible{outline:2px solid var(--theme);outline-offset:2px;border-radius:inherit}.card.kpi-click:active{transform:scale(.98);transition:transform var(--dur-fast) var(--ease)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.dlg,.modal-box,.pms-editor,.cr-modal,.dlg-box{border-radius:var(--r-card);box-shadow:var(--shadow-card)}.modal-mask,.pms-editor-mask,.cr-modal-mask{animation:mask-in .15s var(--ease),b3-mask-deepen 2s var(--ease) forwards}@keyframes b3-mask-deepen{0%,10%{opacity:.78}to{opacity:1}}:root{--zi-base: 1;--zi-sticky: 100;--zi-dropdown: 1000;--zi-drawer: 1200;--zi-modal: 2100;--zi-overlay: 9000;--zi-top: 9999;--zi-toast: 10000;--head-h: 58px}:where(input,select,textarea):focus{outline:none;border-color:var(--theme);box-shadow:0 0 0 3px var(--theme-weak)}:where(input,textarea)::placeholder{color:var(--text-3);opacity:.8}:where(button,input,select,textarea):disabled,.is-loading{position:relative;color:transparent!important;pointer-events:none}.is-loading:after{content:"";position:absolute;inset:0;margin:auto;width:14px;height:14px;border:2px solid var(--border-strong);border-top-color:var(--theme);border-radius:50%;animation:p4-spin .7s linear infinite}@keyframes p4-spin{to{transform:rotate(360deg)}}:where(button,.ua-btn,[role=button]):active{transform:scale(.985)}.is-exiting{pointer-events:none!important}.dlg.is-exiting,.modal-box.is-exiting,.pms-editor.is-exiting,.cr-modal.is-exiting,.dlg-box.is-exiting,.fin-modal.is-exiting,.cwb-modal.is-exiting,.mp-modal.is-exiting,.dv-editor.is-exiting,.ap-submit-dlg.is-exiting,.fe-detail-modal.is-exiting,.fe-flow-modal.is-exiting{animation:dlg-out var(--dur-ui, .18s) var(--ease) forwards}.cwb-drawer.is-exiting{animation:drawer-out var(--dur-ui, .18s) var(--ease) forwards}[class*=mask].is-exiting{animation:mask-out .15s var(--ease) forwards}@keyframes dlg-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.96) translateY(6px)}}@keyframes mask-out{0%{opacity:1}to{opacity:0}}@keyframes drawer-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-32px)}}:root{--mask-overlay: rgba(11, 55, 84, .38)}.modal-mask,.dlg-mask,.cr-modal-mask,.cwb-mask,.oss-drawer-mask,.fin-modal-mask,.fp-mask,.mp-mask,.stmt-mask,.filter-mask,.field-cfg-mask,.col-del-mask,.col-restore-mask,.new-order-mask,.fe-flow-mask,.fe-detail-mask,.pms-editor-mask{background:var(--mask-overlay)!important;animation:mask-in .15s var(--ease)}.modal-mask,.cr-modal-mask,.fin-modal-mask,.mp-mask{z-index:var(--zi-modal)!important}.cwb-modal,.fin-modal,.fp-modal,.mp-modal,.up-trash-modal,.col-modal,.col-del-modal,.col-restore-modal{animation:dlg-in var(--dur-ui, .18s) var(--ease-ui)}.oss-drawer,.cwb-drawer{animation:drawer-in var(--dur-ui, .18s) var(--ease)}@keyframes drawer-in{0%{transform:translate(48px);opacity:0}to{transform:none;opacity:1}}.oss-drawer.is-exiting{animation:drawer-out var(--dur-ui, .18s) var(--ease) forwards}.cr-modal{border-radius:var(--r-card)!important}.cr-btn.primary{background:var(--theme-strong)!important;border-color:var(--theme-strong)!important}.cr-btn.primary:hover{background:color-mix(in srgb,var(--theme-strong) 85%,#000)!important;border-color:color-mix(in srgb,var(--theme-strong) 85%,#000)!important}.cr-switch input:checked+.cr-slider{background:var(--theme-strong)!important}.cwb-worktabs{display:flex;gap:4px;margin:0 0 10px;padding:4px;width:fit-content;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface-2)}.cwb-worktabs button{padding:7px 18px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);cursor:pointer}.cwb-worktabs button.on{background:var(--surface);color:var(--theme-strong);box-shadow:var(--shadow-sm);font-weight:600}.cwa-wrap{display:flex;flex-direction:column;gap:12px}.cwa-loading,.cwa-empty{padding:30px 16px;color:var(--text-3);text-align:center}.cwa-filters{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:10px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface)}.cwa-filters .cwb-input{width:auto;min-width:118px}.cwa-filters #cwaKw{min-width:160px;flex:1}.cwa-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cwa-kpi{min-width:0;padding:12px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface)}.cwa-kpi>span{display:block;color:var(--text-3);font-size:var(--fs-12)}.cwa-kpi>b{display:block;margin:5px 0 3px;color:var(--text-1);font-size:var(--fs-18);font-variant-numeric:tabular-nums}.cwa-kpi>small{display:block;overflow:hidden;color:var(--text-3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.cwa-kpi.warn>b,.cwa-danger{color:var(--danger-ink)}.cwa-risk-filter{display:flex;flex-wrap:wrap;gap:6px}.cwa-risk-chip{padding:6px 10px;border:1px solid var(--border-light);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.cwa-risk-chip b{margin-left:4px;color:var(--danger-ink)}.cwa-risk-chip.on{border-color:var(--theme);background:var(--theme-weak);color:var(--theme-strong)}.cwa-risk-clear{padding:5px 8px;border:0;background:transparent;color:var(--theme);cursor:pointer}.cwa-analysis-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.cwa-products,.cwa-next,.cwa-table-wrap{padding:14px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface)}.cwa-sec-title{margin-bottom:10px;color:var(--text-1);font-size:var(--fs-14);font-weight:600}.cwa-product-row{display:grid;grid-template-columns:120px minmax(0,1fr) 46px;align-items:center;gap:8px;margin:8px 0;font-size:var(--fs-12)}.cwa-product-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwa-product-row>div{height:7px;overflow:hidden;border-radius:10px;background:var(--surface-2)}.cwa-product-row i{display:block;height:100%;border-radius:inherit;background:var(--theme)}.cwa-product-row b{color:var(--text-3);font-size:11px;font-weight:400;text-align:right}.cwa-basis{margin-top:10px;color:var(--text-3);font-size:11px;line-height:1.6}.cwa-units{margin-bottom:12px;padding:14px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface)}.cwa-unit-table-scroll{max-width:100%;overflow-x:auto}.cwa-unit-table{min-width:520px}.cwa-next-list{display:flex;flex-direction:column;gap:10px;color:var(--text-2);font-size:var(--fs-12);line-height:1.6}.cwa-table-wrap{min-width:0;padding:0;overflow:hidden}.cwa-table-meta{padding:10px 12px;border-bottom:1px solid var(--border-light);color:var(--text-3);font-size:var(--fs-12)}.cwa-table-scroll{max-width:100%;overflow:auto}.cwa-table{width:100%;min-width:1080px;border-collapse:collapse;font-size:var(--fs-12)}.cwa-table th{padding:9px 10px;border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-3);font-weight:500;text-align:left;white-space:nowrap}.cwa-table td{padding:10px;border-bottom:1px solid var(--border-light);vertical-align:top}.cwa-table tbody tr:hover{background:var(--theme-weak)}.cwa-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cwa-customer{min-width:210px}.cwa-customer b,.cwa-customer span,.cwa-customer small,.cwa-table td>small{display:block}.cwa-customer b{margin-bottom:4px;color:var(--theme-strong);font-size:var(--fs-13)}.cwa-customer span,.cwa-customer small,.cwa-table td>small{margin-top:3px;color:var(--text-3);font-size:11px}.cwa-risks{display:flex;flex-wrap:wrap;gap:4px;max-width:240px}.cwa-risk{display:inline-flex;padding:2px 6px;border-radius:4px;background:var(--danger-weak);color:var(--danger-ink);font-size:10px;white-space:nowrap}.cwa-risk-contact,.cwa-risk-unassigned{background:var(--surface-2);color:var(--text-3)}.cwa-risk-sample,.cwa-risk-maintenance{background:var(--warning-weak);color:var(--warning-ink)}.cwa-ok{color:var(--ok)}.cwa-ops{min-width:116px;white-space:nowrap}.cwa-ops button{margin:1px}.cwa-config-modal{width:min(450px,calc(100vw - 32px))}.cwa-advice{margin:12px 0;padding:12px;border:1px solid var(--theme-weak);border-radius:var(--r-ctrl);background:var(--theme-weak)}.cwa-advice p{margin:7px 0;color:var(--text-1);font-size:var(--fs-13);line-height:1.7}.cwa-advice .cwb-btn{margin-top:8px}.cwa-product-tags{display:flex;flex-wrap:wrap;gap:6px}.cwa-product-tags span{padding:6px 8px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-12)}.cwa-product-tags b{margin-left:6px;color:var(--text-3);font-weight:400}.cwa-kpis-detail{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1100px){.cwa-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cwa-analysis-grid{grid-template-columns:1fr}}@media(max-width:640px){.cwa-kpis,.cwa-kpis-detail{grid-template-columns:repeat(2,minmax(0,1fr))}.cwa-kpi{padding:9px}.cwa-kpi>b{font-size:var(--fs-15)}.cwa-filters{padding:8px}.cwa-filters .cwb-input{min-width:105px;flex:1}.cwa-filters #cwaKw{flex-basis:100%}.cwa-product-row{grid-template-columns:95px minmax(0,1fr) 42px}}.cwa-subnav{display:flex;gap:4px;width:fit-content;padding:4px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface-2)}.cwa-subnav button{padding:6px 14px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);font-size:var(--fs-12);cursor:pointer}.cwa-subnav button.on{background:var(--surface);color:var(--theme-strong);box-shadow:var(--shadow-sm);font-weight:600}.cwa-score>b{color:var(--theme-strong);font-size:var(--fs-16)}.cwa-score>small{display:block;margin:2px 0}.cwa-adopt{display:block;margin-top:4px;padding:2px 5px;border:1px solid var(--theme-weak);border-radius:4px;background:var(--theme-weak);color:var(--theme-strong);font-size:10px;cursor:pointer;white-space:nowrap}.cwa-task-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.cwa-task-head h3{margin:0 0 4px;font-size:var(--fs-16)}.cwa-task-head p{margin:0;color:var(--text-3);font-size:var(--fs-12)}.cwa-task-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.cwa-task-filters{display:flex;flex-wrap:wrap;gap:8px}.cwa-task-filters .cwb-input{width:auto;min-width:150px}.cwa-task-list{display:flex;flex-direction:column;gap:8px}.cwa-task-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--border-light);border-radius:var(--r-ctrl);background:var(--surface)}.cwa-task-card:hover{border-color:var(--theme)}.cwa-task-main{min-width:0}.cwa-task-title{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:6px}.cwa-task-title>b{color:var(--theme-strong);font-size:var(--fs-14)}.cwa-due-overdue,.cwa-due-today{padding:2px 6px;border-radius:4px;background:var(--danger-weak);color:var(--danger-ink);font-size:10px}.cwa-due-week{padding:2px 6px;border-radius:4px;background:var(--warning-weak);color:var(--warning-ink);font-size:10px}.cwa-due-later,.cwa-due-done{padding:2px 6px;border-radius:4px;background:var(--surface-2);color:var(--text-3);font-size:10px}.cwa-task-reason{color:var(--text-1);font-size:var(--fs-13);line-height:1.6}.cwa-task-meta{margin-top:5px;color:var(--text-3);font-size:11px;line-height:1.6}.cwa-task-actions{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:235px}@media(max-width:1100px){.cwa-task-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.cwa-task-head{align-items:flex-start;flex-direction:column}.cwa-task-card{align-items:stretch;flex-direction:column}.cwa-task-actions{max-width:none;justify-content:flex-start}.cwa-subnav{width:100%}.cwa-subnav button{flex:1;padding:6px 8px}}.ofd-modal{width:min(1440px,calc(100vw - 24px));height:92vh;display:flex;flex-direction:column;overflow:hidden}.ofd-loading{padding:48px 24px;color:var(--text-3);text-align:center}.ofd-global{margin-left:12px;color:var(--text-3);font-size:var(--fs-12);font-weight:400}.ofd-devices{display:flex;gap:4px;margin-left:auto;padding:3px;border-radius:var(--r-ctrl);background:var(--surface-2)}.ofd-device{padding:6px 10px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-3);font-size:var(--fs-12);cursor:pointer}.ofd-device.on{background:var(--surface);color:var(--theme-strong);box-shadow:var(--shadow-sm)}.ofd-note{margin:10px 14px 0;padding:8px 12px;border:1px solid var(--theme-weak);border-radius:var(--r-ctrl);background:var(--theme-weak);color:var(--text-2);font-size:var(--fs-12);line-height:1.6}.ofd-workspace{flex:1;min-height:0;display:grid;grid-template-columns:218px minmax(0,1fr) 252px;margin-top:10px;border-top:1px solid var(--border)}.ofd-library,.ofd-properties{min-height:0;padding:12px;overflow-y:auto;background:var(--surface-2)}.ofd-library{border-right:1px solid var(--border)}.ofd-properties{border-left:1px solid var(--border);background:var(--surface)}.ofd-library-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:var(--fs-14)}.ofd-library-head button{padding:4px 8px;border:1px solid var(--theme-weak);border-radius:var(--r-sm);background:var(--theme-weak);color:var(--theme-strong);cursor:pointer}.ofd-kit-search{width:100%;height:32px;margin-bottom:10px;padding:5px 9px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}.ofd-kits{display:flex;flex-direction:column;gap:6px}.ofd-kit{display:grid;grid-template-columns:22px minmax(0,1fr) 20px;align-items:center;gap:7px;padding:8px;border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--surface);cursor:grab}.ofd-kit:hover,.ofd-kit.is-selected{border-color:var(--theme)}.ofd-kit.is-available{border-style:dashed}.ofd-kit-icon{color:var(--theme);text-align:center}.ofd-kit-text{min-width:0;display:flex;flex-direction:column;gap:2px}.ofd-kit-text b{overflow:hidden;font-size:var(--fs-12);text-overflow:ellipsis;white-space:nowrap}.ofd-kit-text small{overflow:hidden;color:var(--text-3);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.ofd-kit-add{width:20px;height:22px;padding:0;border:0;border-radius:var(--r-sm);background:var(--theme-weak);color:var(--theme-strong);cursor:pointer}.ofd-kit-placed{color:var(--ok)}.ofd-library-tip,.ofd-library-empty{margin-top:12px;color:var(--text-3);font-size:11px;line-height:1.6;text-align:center}.ofd-canvas{min-width:0;min-height:0;padding:14px;overflow:auto;overscroll-behavior:contain;background:var(--surface-2)}.ofd-section{margin-bottom:14px;padding:10px;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--surface)}.ofd-section>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.ofd-section>header b{font-size:var(--fs-13)}.ofd-section>header span{color:var(--text-3);font-size:11px}.ofd-grid{display:grid;grid-template-columns:repeat(var(--ofd-cols, 6),minmax(0,1fr));grid-auto-flow:row;grid-auto-rows:82px;gap:8px;min-height:90px;padding:8px;border:1px dashed var(--border);border-radius:var(--r-sm);background-color:var(--surface-2);background-image:linear-gradient(var(--border-light) 1px,transparent 1px),linear-gradient(90deg,var(--border-light) 1px,transparent 1px);background-size:100% 90px,calc(100% / var(--ofd-cols, 6)) 100%}.ofd-grid.drag-over{border-color:var(--theme);background-color:var(--theme-weak)}.ofd-card{position:relative;grid-column:span min(var(--card-w),var(--ofd-cols));grid-row:span var(--card-h);min-width:0;min-height:0;padding:9px 10px;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:0 1px 2px #0f23320a;cursor:grab}.ofd-card:hover{border-color:var(--theme)}.ofd-card.is-selected{border-color:var(--theme);box-shadow:0 0 0 2px var(--theme-weak)}.ofd-card.is-dragging,.ofd-kit.is-dragging{opacity:.42}.ofd-card.drag-over{border-color:var(--theme);box-shadow:inset 3px 0 0 var(--theme)}.ofd-card-head{display:flex;align-items:center;gap:5px;min-width:0}.ofd-card-head b{min-width:0;overflow:hidden;font-size:var(--fs-12);text-overflow:ellipsis;white-space:nowrap}.ofd-card-head b i{margin-left:3px;color:var(--danger)}.ofd-drag{color:var(--text-3);font-size:16px;line-height:1;user-select:none}.ofd-card-size{margin-left:auto;color:var(--text-3);font-size:9px;white-space:nowrap}.ofd-card-preview{margin-top:9px;padding:6px 7px;overflow:hidden;border-radius:4px;background:var(--surface-2);color:var(--text-3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ofd-card-meta{margin-top:5px;color:var(--text-3);font-size:9px}.ofd-grid-empty{display:none;grid-column:1 / -1;place-items:center;min-height:72px;color:var(--text-3);font-size:var(--fs-12)}.ofd-grid-empty:only-child{display:grid}.ofd-property-title{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.ofd-property-title>span{color:var(--text-3);font-size:11px}.ofd-property-title b{font-size:var(--fs-15)}.ofd-property-title small{color:var(--text-3);font-size:10px;word-break:break-all}.ofd-property-grid{display:grid;gap:10px}.ofd-properties label{display:flex;flex-direction:column;gap:5px;color:var(--text-2);font-size:var(--fs-12)}.ofd-properties select,.ofd-properties input{width:100%;min-width:0;height:34px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-1)}.ofd-properties select:disabled,.ofd-properties button:disabled{color:var(--text-3)!important;opacity:.6;background:var(--surface-2)}.ofd-size-presets{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.ofd-size-presets>span{flex-basis:100%;color:var(--text-3);font-size:11px}.ofd-size-preset{padding:5px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-size:11px;cursor:pointer}.ofd-size-preset.on{border-color:var(--theme);background:var(--theme-weak);color:var(--theme-strong)}.ofd-property-options{margin-bottom:10px}.ofd-properties .ofd-required{flex-direction:row;align-items:center;margin:12px 0}.ofd-properties .ofd-required input{width:auto;height:auto}.ofd-auto-options,.ofd-property-note{color:var(--text-3);font-size:11px;line-height:1.6}.ofd-property-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px}.ofd-move,.ofd-hide{padding:7px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);cursor:pointer}.ofd-hide{width:100%}.ofd-move:hover,.ofd-hide:hover{border-color:var(--theme);color:var(--theme-strong)}.ofd-property-empty{padding:40px 8px;color:var(--text-3);font-size:var(--fs-12);line-height:1.8;text-align:center}.ofd-foot-note{margin-right:auto;color:var(--text-3);font-size:11px}.ofd-modal>.dlg-foot{flex-shrink:0;gap:8px}.ofd-modal>.dlg-error{padding:0 16px}.ofd-add-mask{z-index:2200!important}.ofd-add-modal{width:min(480px,calc(100vw - 32px))}.dv-multi-editor{min-width:min(280px,70vw);padding:7px;border:1px solid var(--theme);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-card)}.dv-multi-editor>label{display:flex;align-items:center;gap:6px;padding:4px;color:var(--text-1);font-weight:400}.dv-multi-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}.dv-multi-actions button{padding:4px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);cursor:pointer}.dv-multi-actions .dv-multi-save{border-color:var(--theme);background:var(--theme);color:#fff}.dv-multi-values{display:flex;flex-wrap:wrap;gap:4px}.dv-textarea{white-space:pre-wrap;overflow-wrap:anywhere}.dv-textarea-editor{width:min(420px,70vw);resize:vertical}@media(max-width:980px){.ofd-workspace{grid-template-columns:180px minmax(0,1fr) 220px}.ofd-global{display:none}}@media(max-width:720px){.ofd-modal{width:calc(100vw - 12px);height:95vh;max-height:95vh}.ofd-modal>.dlg-head{align-items:flex-start;gap:8px}.ofd-devices{flex-shrink:0}.ofd-device{padding:5px 6px;font-size:10px}.ofd-note{margin:7px 8px 0;padding:6px 8px}.ofd-workspace{grid-template-columns:1fr;grid-template-rows:126px minmax(240px,1fr) auto;margin-top:7px;overflow-y:auto}.ofd-library{padding:7px;overflow:hidden;border-right:0;border-bottom:1px solid var(--border)}.ofd-library-head{float:left;margin:0 8px 6px 0}.ofd-kit-search{width:150px;height:28px;margin:0 0 6px}.ofd-kits{flex-direction:row;max-height:68px;padding-bottom:4px;overflow-x:auto;overflow-y:hidden}.ofd-kit{flex:0 0 148px;padding:6px}.ofd-library-tip{display:none}.ofd-canvas{--ofd-cols: 1 !important;min-height:240px;overflow:auto;padding:8px}.ofd-properties{max-height:260px;padding:10px;overflow-y:auto;border-top:1px solid var(--border);border-left:0}.ofd-property-title{margin-bottom:8px}.ofd-property-grid{grid-template-columns:1fr 1fr;gap:8px}.ofd-foot-note{display:none}.ofd-modal>.dlg-foot{justify-content:flex-end}.page-head .od-form-design{padding:6px 8px;font-size:var(--fs-12);white-space:nowrap}}.dv-edit-ico{margin-right:4px;color:var(--theme);font-size:var(--fs-12)}.dv-readonly{color:var(--text-2);cursor:help}.dv-readonly:after{content:" 🔒";margin-left:4px;color:var(--text-3);font-size:11px}.meta-customer{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.meta-customer-link{padding:0;border:0;background:none;color:var(--theme-strong);cursor:pointer;text-align:left;font:inherit}.meta-customer-link:hover{text-decoration:underline}.meta-relink{padding:2px 8px;border:1px solid var(--theme-weak);border-radius:var(--r-ctrl);background:var(--theme-weak);color:var(--theme-strong);font-size:var(--fs-12);cursor:pointer}.meta-relink:hover{border-color:var(--theme)}.meta-relink-lock{color:var(--text-3);cursor:help}.od-relink-modal{width:min(600px,calc(100vw - 32px));max-height:88vh;display:flex;flex-direction:column}.od-relink-current{margin-bottom:8px;color:var(--text-1)}.od-relink-note{margin-bottom:14px;padding:8px 10px;border:1px solid var(--theme-weak);border-radius:var(--r-sm);background:var(--theme-weak);color:var(--text-2);font-size:var(--fs-12);line-height:1.6}.od-relink-results{max-height:250px;margin:6px 0 12px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--r-sm)}.od-relink-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-bottom:1px solid var(--border-light);background:var(--surface);color:var(--text-1);text-align:left;cursor:pointer}.od-relink-row:last-child{border-bottom:0}.od-relink-row span{color:var(--text-3);font-size:var(--fs-12)}.od-relink-row:hover,.od-relink-row.on{background:var(--theme-weak)}.od-relink-row.on{box-shadow:inset 3px 0 0 var(--theme)}.od-relink-empty{padding:16px 10px;color:var(--text-3);font-size:var(--fs-12);text-align:center}.dlg-error{min-height:18px;color:var(--danger-ink);font-size:var(--fs-12)}@media(max-width:640px){.detail-card{padding:14px 12px}.detail-meta{gap:10px 14px}.meta-customer{flex-basis:100%}.od-base .detail-grid{grid-template-columns:1fr;gap:0}.od-base .d-item{grid-template-columns:96px minmax(0,1fr);grid-column:span 1;grid-row:span 1}.dt-nav{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}.dt-tab{flex:0 0 auto;white-space:nowrap;padding:7px 10px}.od-relink-modal{max-height:88vh}}.after-sales-section{min-height:160px}.osa-dlg{width:min(880px,calc(100vw - 32px));max-height:90vh;display:flex;flex-direction:column}.osa-small-dlg{width:min(560px,calc(100vw - 32px));max-height:86vh;display:flex;flex-direction:column}.osa-dlg .dlg-head,.osa-small-dlg .dlg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.osa-dlg .dlg-head h3,.osa-small-dlg .dlg-head h3{margin:0;font-size:18px}.osa-dlg .dlg-head p{margin:5px 0 0;color:var(--text-3);font-size:var(--fs-12)}.osa-x,.dlg-x{border:0;background:transparent;color:var(--text-3);font-size:24px;cursor:pointer}.osa-body{overflow-y:auto}.osa-steps,.osa-status-steps{display:flex;align-items:center;gap:10px;margin-bottom:18px;color:var(--text-3);font-size:var(--fs-12)}.osa-steps span,.osa-status-steps span{padding:6px 10px;border-radius:999px;background:var(--surface-subtle)}.osa-steps span.on,.osa-status-steps span.done{background:var(--theme-weak);color:var(--theme-strong);font-weight:600}.osa-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.osa-form-grid label>span,.osa-field>span{display:block;margin-bottom:6px;color:var(--text-2);font-size:var(--fs-12);font-weight:600}.osa-field{display:block;margin-top:14px}.osa-field small{margin-left:6px;color:var(--text-3);font-weight:400}.osa-upload-row{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:var(--fs-12)}.osa-upload-btn{display:inline-flex;align-items:center;cursor:pointer}.osa-file-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.osa-file-chip,.osa-file-link{display:inline-flex;align-items:center;gap:5px;margin:3px 6px 3px 0;padding:5px 8px;border-radius:6px;background:var(--surface-subtle);color:var(--text-2);font-size:var(--fs-12);text-decoration:none}.osa-file-chip button{border:0;background:transparent;color:var(--text-3);cursor:pointer}.osa-muted,.osa-phase{color:var(--text-3);font-size:var(--fs-12);line-height:1.6}.osa-preview-title,.osa-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 12px}.osa-preview-title>span{color:var(--text-3);font-size:var(--fs-12)}.osa-impact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.osa-impact-cell{min-width:0;padding:12px;border:1px solid var(--border-light);border-radius:10px;background:var(--surface)}.osa-impact-cell span,.osa-impact-cell small{display:block;color:var(--text-3);font-size:11px}.osa-impact-cell b{display:block;margin:7px 0 5px;color:var(--text-1);font-size:17px;font-variant-numeric:tabular-nums}.osa-alert{margin:12px 0;padding:11px 13px;border:1px solid var(--theme-weak);border-radius:9px;background:var(--theme-weak);color:var(--text-2);font-size:var(--fs-12);line-height:1.65}.osa-alert p{margin:4px 0 0}.osa-alert-danger{border-color:#fecaca;background:#fff1f2;color:#9f1239}.osa-alert-ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.osa-error{min-height:20px;margin-top:8px;color:var(--danger-ink);font-size:var(--fs-12);line-height:1.5}.osa-subtitle{margin:16px 0 8px;color:var(--text-2);font-size:var(--fs-12);font-weight:700}.osa-invoice-plan{margin:8px 0;padding:12px;border:1px solid var(--border-light);border-radius:10px;background:var(--surface-subtle)}.osa-invoice-head,.osa-invoice-numbers,.osa-card-head,.osa-card-foot,.osa-status-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.osa-invoice-numbers{justify-content:flex-start;flex-wrap:wrap;margin-top:10px;color:var(--text-3);font-size:var(--fs-12)}.osa-tag{display:inline-block;padding:2px 7px;border-radius:5px;background:var(--theme-weak);color:var(--theme-strong);font-size:11px}.osa-tag.muted{background:var(--surface);color:var(--text-3)}.danger-text{color:var(--danger-ink)}.osa-group-box{margin-top:10px;padding:8px 10px;border-radius:8px;background:var(--surface)}.osa-group-row{display:flex;justify-content:space-between;gap:14px;padding:5px 0;color:var(--text-2);font-size:var(--fs-12)}.osa-summary{margin:0 0 12px}.osa-summary h3{margin:0 0 5px}.osa-summary p{margin:0;color:var(--text-3);font-size:var(--fs-12)}.osa-card{margin:10px 0;padding:14px;border:1px solid var(--border-light);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .15s,box-shadow .15s}.osa-card:hover{border-color:var(--theme);box-shadow:0 4px 16px #0f172a0f}.osa-card-head>div{display:flex;align-items:center;gap:10px}.osa-card-head>span{color:var(--text-3);font-size:11px}.osa-status{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--surface-subtle);color:var(--text-3);font-size:11px}.osa-status.warn{background:#fff7ed;color:#c2410c}.osa-status.info{background:#eff6ff;color:#1d4ed8}.osa-status.ok{background:#ecfdf5;color:#047857}.osa-status.danger{background:#fff1f2;color:#be123c}.osa-card-main{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:14px 0 10px}.osa-card-main span,.osa-card-main b{display:block}.osa-card-main span{margin-bottom:4px;color:var(--text-3);font-size:11px}.osa-card-reason{overflow:hidden;color:var(--text-2);font-size:var(--fs-12);text-overflow:ellipsis;white-space:nowrap}.osa-card-foot{margin-top:12px;color:var(--text-3);font-size:11px}.osa-empty{padding:40px 16px;text-align:center;color:var(--text-3)}.osa-empty p{margin:7px 0;font-size:var(--fs-12)}.osa-status-steps{flex-wrap:wrap}.osa-detail-section{margin-top:18px;padding-top:4px;border-top:1px solid var(--border-light)}.osa-kv{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;padding:6px 0;font-size:var(--fs-12)}.osa-kv span{color:var(--text-3)}.osa-kv b{color:var(--text-2);font-weight:500;white-space:pre-wrap;word-break:break-word}.osa-execution-row{position:relative}.osa-execution-actions{display:flex;justify-content:flex-end;margin:-4px 0 10px}.osa-loading{padding:30px;color:var(--text-3);text-align:center}@media(max-width:700px){.osa-form-grid,.osa-card-main{grid-template-columns:1fr}.osa-impact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.osa-preview-title,.osa-summary{align-items:flex-start;flex-direction:column}.osa-dlg,.osa-small-dlg{width:calc(100vw - 20px);max-height:94vh}.osa-steps{gap:4px}.osa-steps i{display:none}}.cwb-team-quick{display:flex;align-items:flex-start;gap:12px;margin:0 0 10px;padding:9px 12px;border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--surface)}.cwb-team-quick-label{flex:none;padding-top:6px;color:var(--text-2);font-size:var(--fs-12);font-weight:600}.cwb-team-filters{display:flex;flex:1;flex-wrap:wrap;gap:6px;min-width:0}.cwb-team-filter{padding:4px 10px;border:1px solid var(--border-light);border-radius:var(--r-pill);background:var(--surface);color:var(--text-2);font-size:var(--fs-12);cursor:pointer;white-space:nowrap}.cwb-team-filter span{margin-left:3px;color:var(--text-3);font-variant-numeric:tabular-nums}.cwb-team-filter:hover{border-color:var(--theme);color:var(--theme-strong)}.cwb-team-filter.on{border-color:var(--theme-strong);background:var(--theme-strong);color:#fff}.cwb-team-filter.on span{color:#fff;opacity:.78}.cwb-team-batch{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0 0 10px;padding:9px 12px;border:1px solid var(--theme-weak);border-radius:var(--r-sm);background:var(--theme-weak)}.cwb-team-batch[hidden]{display:none!important}.cwb-team-batch>b{color:var(--theme-strong);font-size:var(--fs-13)}.cwb-team-batch .cwb-input{width:auto;min-width:170px}.cwb-card-check{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;cursor:pointer}.cwb-team-check{width:16px;height:16px;margin:0;accent-color:var(--theme);cursor:pointer}.cwb-card.is-team-checked{border-color:var(--theme);background:color-mix(in srgb,var(--theme) 4%,var(--surface))}.cwb-card-team{padding:1px 7px;border-radius:var(--r-pill);background:var(--theme-weak);color:var(--theme-strong);font-size:var(--fs-11)}@media(max-width:700px){.cwb-team-quick{gap:8px;padding:8px}.cwb-team-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;overscroll-behavior-x:contain}.cwb-team-filter{flex:0 0 auto}.cwb-team-batch{align-items:stretch}.cwb-team-batch .cwb-input{flex:1;min-width:150px}.page-head{margin:-12px -12px 12px;padding:10px 12px;box-sizing:border-box}}#cwbArchivedToggle.on{border-color:var(--theme);background:var(--theme-weak);color:var(--theme-strong)}.cl-modal{width:min(660px,calc(100vw - 30px));max-height:88vh;display:flex;flex-direction:column}.cl-modal.wide{width:min(860px,calc(100vw - 30px))}.cl-modal .dlg-head{display:flex;align-items:center;justify-content:space-between}.cl-modal .dlg-head h3{margin:0;font-size:var(--fs-17)}.cl-body{overflow-y:auto}.cl-note{margin-bottom:12px;padding:10px 12px;border:1px solid var(--theme-weak);border-radius:var(--r-sm);background:var(--theme-weak);color:var(--text-2);font-size:var(--fs-12);line-height:1.65}.cl-warning{margin:12px 0;padding:10px 12px;border:1px solid #fed7aa;border-radius:var(--r-sm);background:#fff7ed;color:#9a3412;font-size:var(--fs-12);line-height:1.6}.cl-zero{padding:12px;border:1px solid #bbf7d0;border-radius:var(--r-sm);background:#f0fdf4;color:#166534;font-size:var(--fs-13)}.cl-counts{display:flex;flex-wrap:wrap;gap:6px}.cl-counts span{padding:4px 8px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-12)}.cl-counts b{color:var(--danger-ink);font-variant-numeric:tabular-nums}.cl-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cl-two section{min-width:0;padding:10px;border:1px solid var(--border-light);border-radius:var(--r-sm)}.cl-two h4,.cl-dup-group h4{margin:0 0 8px;font-size:var(--fs-13)}.cl-merge-head{display:grid;grid-template-columns:1fr 36px 1fr;align-items:center;gap:8px;margin-bottom:12px}.cl-merge-head>div:not(.cl-arrow){min-width:0;padding:12px;border-radius:var(--r-sm);background:var(--surface-2)}.cl-merge-head span{display:block;margin-bottom:5px;color:var(--text-3);font-size:var(--fs-11)}.cl-merge-head b{display:block;overflow-wrap:anywhere}.cl-arrow{color:var(--theme);text-align:center;font-size:22px}.cl-subtitle{margin:16px 0 8px;color:var(--text-2);font-size:var(--fs-13);font-weight:600}.cl-diff{max-height:250px;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--r-sm)}.cl-diff-row{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1fr);gap:10px;padding:8px 10px;border-bottom:1px solid var(--border-light);font-size:var(--fs-12)}.cl-diff-row:last-child{border-bottom:0}.cl-diff-row span{color:var(--text-3)}.cl-diff-row b,.cl-diff-row i{overflow-wrap:anywhere;font-weight:400}.cl-diff-row i{color:var(--text-3);font-style:normal}.cl-field{display:block;margin-top:14px}.cl-field>span{display:block;margin-bottom:6px;color:var(--text-2);font-size:var(--fs-12);font-weight:600}.cl-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.cl-error{min-height:20px;margin-top:8px;color:var(--danger-ink);font-size:var(--fs-12)}.cl-dim{padding:10px 0;color:var(--text-3);font-size:var(--fs-12)}.cl-search{display:flex;gap:8px;margin-bottom:10px}.cl-search .dlg-input{flex:1}.cl-results{max-height:320px;overflow-y:auto}.cl-result{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-bottom:6px;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--surface);color:var(--text-1);text-align:left;cursor:pointer}.cl-result:hover{border-color:var(--theme);background:var(--theme-weak)}.cl-result span{color:var(--text-3);font-size:var(--fs-11)}.cl-dup-group{margin-bottom:12px;padding:12px;border:1px solid var(--border-light);border-radius:var(--r-sm)}.cl-dup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border-light)}.cl-dup-row>div{min-width:0}.cl-dup-row b,.cl-dup-row span{display:block}.cl-dup-row>div>span{margin-top:3px;color:var(--text-3);font-size:var(--fs-11)}.cl-main{flex:none;padding:3px 8px;border-radius:var(--r-pill);background:var(--theme-weak);color:var(--theme-strong);font-size:var(--fs-11)}.cl-empty{padding:36px 16px;color:#166534;text-align:center}@media(max-width:640px){.cl-two{grid-template-columns:1fr}.cl-diff-row{grid-template-columns:72px minmax(0,1fr)}.cl-diff-row i{grid-column:2}.cl-dup-row{align-items:flex-start;flex-direction:column}.cl-search{flex-direction:column}}@media(max-width:640px){.fe-detail-mask,.mp-mask{padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));box-sizing:border-box}.fe-detail-modal,.mp-modal{max-width:100%;max-height:calc(100vh - 16px - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 16px - env(safe-area-inset-bottom,0px))}.fe-detail-head{padding:14px 52px 12px 16px}.fe-detail-title-row,.fe-detail-meta{flex-wrap:wrap;gap:8px 12px}.fe-detail-close,.mp-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px}.fe-detail-close{top:8px;right:8px}.fe-detail-body{padding:12px 16px}.fe-form-grid{grid-template-columns:1fr}.fe-form-val{overflow-wrap:anywhere}.fe-detail-foot{flex-wrap:wrap;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}.fe-foot-input-wrap{flex:1 1 100%}.fe-foot-input{height:44px}.fe-foot-btns{display:flex;flex:1 1 100%;flex-wrap:wrap;gap:8px}.fe-detail-foot .fe-btn{flex:1 1 auto;min-width:64px;min-height:44px;padding:8px 14px}.mp-modal .modal-head,.mp-body{padding:14px 16px}.mp-row{flex-direction:column;gap:6px;margin-bottom:12px}.mp-row>label{width:auto;line-height:1.5}.mp-input{width:100%;max-width:100%;min-height:44px;box-sizing:border-box}.mp-static{line-height:1.65;overflow-wrap:anywhere}.mp-modal .modal-foot{flex-wrap:wrap;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}.mp-modal .modal-foot .btn-primary,.mp-modal .modal-foot .btn-secondary{min-height:44px;padding:8px 16px}#obPreview{width:100%;min-height:44px}#obGo{min-width:128px}.hamburger{min-width:44px;min-height:44px}.filter-bar.order-toolbar{padding-bottom:6px;scrollbar-width:thin}.order-toolbar .tb-btn,.order-toolbar .btn-secondary,.order-toolbar .btn-new-order,.btn-refresh{min-width:44px;min-height:44px}.order-view-tabs .ovt-btn{min-height:44px;line-height:42px}.order-view-tabs .ovt-search .f-search{height:44px}#login .tl-eye,#login .tl-sso-item{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}#login .tl-link{display:inline-block;min-height:30px;line-height:30px}.ap-table th{position:static}.pms-tabs{flex-wrap:wrap;gap:6px}.pms-tabs .pms-tab{flex:1 1 calc(25% - 6px);min-width:64px;padding:8px 6px;white-space:nowrap}.pms-tabs #oaNewMember,.pms-tabs #oaOffboarding{margin-left:0;flex:1 1 calc(50% - 6px);min-height:44px;white-space:nowrap}.pms-matrix-wrap,.fin-tabs,.filter-bar:not(.order-toolbar){scrollbar-width:thin}.pms-matrix th,.pms-matrix td{white-space:nowrap}.fin-tab{min-height:44px}.cwb-toolbar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.cwb-toolbar>*{flex:0 0 auto}.cwb-toolbar .cwb-btn,.cwb-ov-ops .cwb-btn{min-height:44px;white-space:nowrap}.cwb-pane-detail{padding:12px;scroll-margin-top:82px}.cwb-ov{padding:12px}.cwb-ov-ops{flex-wrap:wrap}.cwb-ov-ops .cwb-btn{flex:1 1 88px;padding:8px}.cwb-dtab{min-height:44px}.cwb-dpanel .cwb-tbl,.po-pane-detail table{display:block;max-width:100%;overflow-x:auto;scrollbar-width:thin}.cwb-kv,.cwb-kv b,.cwb-ov-l2{overflow-wrap:anywhere}.modal-mask{padding:8px;box-sizing:border-box}.modal-mask>.modal-box{display:flex;flex-direction:column;box-sizing:border-box;width:100%;max-width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}.modal-mask>.modal-box>.modal-head,.modal-mask>.modal-box>.modal-foot{flex:0 0 auto}.modal-mask>.modal-box>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-mask>.modal-box>.modal-foot{flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--border-light)}.modal-mask .modal-foot button{min-height:44px;box-sizing:border-box}.sup-mask{padding:0}.sup-modal{display:flex;flex-direction:column;max-width:100%;max-height:100vh;max-height:100dvh;border-radius:0;overflow:hidden}.sup-modal-h{flex:0 0 auto;gap:8px;padding:10px 12px 10px 16px;overflow-wrap:anywhere}.sup-modal-b{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 16px;-webkit-overflow-scrolling:touch}.sup-modal-f{flex:0 0 auto;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface)}.sup-x{flex:0 0 44px;width:44px;height:44px}.sup-modal-f .sup-btn,.sup-ov-ops .sup-btn,.sup-grade-set .sup-btn{min-height:44px;white-space:nowrap}.sup-modal-f .sup-btn{flex:1}.sup-grid2{grid-template-columns:minmax(0,1fr)}.sup-f{min-width:0}.sup-f .sup-input,.sup-subrow .sup-input{min-height:44px;min-width:0}.sup-subrow5:first-child{display:none}.sup-subrow5{grid-template-columns:minmax(0,1fr) 44px 44px;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-light)}.sup-subrow5>input.sup-input:nth-child(1),.sup-subrow5>input.sup-input:nth-child(2){grid-column:1 / -1}.sup-subrow5>input[data-k=phone]{grid-column:1}.sup-subrow5 .sup-mi{min-width:44px;min-height:44px;padding:8px}.sup-proc,.sup-cap,.sup-mat-tab{min-height:40px}.sup-grade-set{flex-wrap:wrap}.sup-grade-set .sup-input{flex:1;min-width:140px;min-height:44px}.sup-tbl{display:block;max-width:100%;overflow-x:auto}.po-pane-detail{scroll-margin-top:82px}body:has(.sup-mask,.cwb-mask,.modal-mask,.fe-detail-mask,.mp-mask) #agentFab{display:none}#agentDrawer{max-width:100vw}#agentDrawer .ag-x,#agentDrawer .send{min-width:44px;min-height:44px}}@media(max-width:380px){.fe-detail-foot .fe-btn{padding-left:10px;padding-right:10px;font-size:var(--fs-13)}.mp-modal .modal-foot{justify-content:stretch}.mp-modal .modal-foot .btn-primary,.mp-modal .modal-foot .btn-secondary{flex:1}}
