:root{--accent: #0e7490;--accent-hover: #0c647c;--accent-active: #0a5266;--accent-ink: #155e75;--accent-soft: #e4f4f7;--on-accent: #ffffff;--accent-lite: #0f8aa8;--accent-glow: rgba(14, 116, 144, .22);--bg-page: #f2f5f9;--surface: #ffffff;--surface-muted: #f6f8fb;--surface-hover: #f3f7fa;--border: #dfe3ea;--border-soft: #e9edf3;--divider: #eef1f6;--fg: #1c2532;--fg-2: #4a5568;--muted: #67748a;--success: #22a06b;--success-bg: #e9f7ef;--success-text: #1a7f56;--warn: #96682f;--warn-bg: #f6efe0;--danger: #cf1322;--danger-hover: #b01220;--danger-bg: #fff1f0;--danger-text: #b01220;--chart-primary: #0e7490;--chart-2: #d97706;--chart-3: #64748b;--chart-4: #7c3aed;--chart-grid: #eef0f4;--chart-axis: #9aa4b2;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, "Roboto Mono", monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 22px;--text-kpi: 28px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--control-h: 36px;--control-h-lg: 40px;--table-row-h: 44px;--table-head-h: 40px;--cell-px: 12px;--drawer-w: 480px;--sidebar-w: 220px;--content-max: 1440px;--radius-sm: 8px;--radius-md: 12px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .035), 0 4px 14px -8px rgba(16, 24, 40, .09);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08), 0 18px 40px -12px rgba(16, 24, 40, .18);--shadow-lg: 0 24px 60px -16px rgba(13, 27, 46, .28);--focus-ring: 0 0 0 3px rgba(14, 116, 144, .22);--motion-fast: .12s;--motion-base: .2s;--motion-slow: .26s;--ease-standard: cubic-bezier(.2, 0, 0, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--fg);background:var(--bg-page);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:var(--text-base)}a{color:var(--accent-ink);text-decoration:none}svg{display:inline-block;vertical-align:middle}.num,.mono{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.text-danger{color:var(--danger-text)}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.w-full{width:100%}.ml-auto{margin-left:auto}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-word{overflow-wrap:anywhere}.text-right{text-align:right}body.no-scroll{overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--fg-2)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink);background:var(--surface-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost{background:transparent;color:var(--fg-2);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--fg)}.btn-danger-ghost{background:transparent;color:var(--danger-text);border-color:transparent}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-bg)}.btn-lg{height:var(--control-h-lg);padding:0 var(--space-5);font-size:var(--text-base)}.btn-sm{height:32px;padding:0 var(--space-3);font-size:var(--text-xs)}.btn-icon{width:var(--control-h);height:var(--control-h);padding:0}.btn-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}.btn-secondary .btn-spinner{border-color:#0e749040;border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--divider)}.card-title{font-size:var(--text-md);font-weight:600}.card-body{padding:var(--space-5)}.page-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.page-h1{font-size:var(--text-lg);font-weight:600}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.side-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--divider);min-height:57px}.brand-mark{color:var(--accent);flex-shrink:0}.brand-name{font-size:14px;font-weight:700;line-height:1.25;letter-spacing:.2px;white-space:normal;word-break:break-word}.brand-sub{font-size:var(--text-xs);color:var(--muted)}.side-nav{flex:1;padding:var(--space-3);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--space-3);height:40px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--fg-2);font-size:var(--text-sm);font-weight:500;width:100%;background:none;border:none;cursor:pointer;text-align:left;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.nav-item:hover{background:var(--surface-hover);color:var(--fg)}.nav-item.active{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 2px 0 0 var(--accent)}.nav-item .nav-icon{flex-shrink:0}.nav-group{margin-top:var(--space-2)}.nav-group-head{display:flex;align-items:center;gap:var(--space-3);width:100%;height:34px;padding:0 var(--space-3);background:none;border:none;cursor:pointer;text-align:left;color:var(--muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.5px;border-radius:var(--radius-sm);transition:color var(--motion-fast) var(--ease-standard)}.nav-group-head:hover{color:var(--fg-2)}.nav-group-head .nav-icon{flex-shrink:0}.nav-group-head span{flex:1;min-width:0}.nav-group-head .nav-caret{flex-shrink:0;transition:transform var(--motion-fast) var(--ease-standard)}.nav-group-head .nav-caret.collapsed{transform:rotate(-90deg)}.nav-group-body{display:flex;flex-direction:column;gap:2px}.nav-item.nav-sub{padding-left:calc(var(--space-3) + 18px)}.side-foot{border-top:1px solid var(--divider);padding:var(--space-3)}.side-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--text-sm);flex-shrink:0}.user-meta{flex:1;min-width:0}.user-name{font-size:var(--text-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--text-xs);color:var(--muted)}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:var(--space-3);height:57px;padding:0 var(--space-6);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar-menu-btn{display:none}.content{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-6)}.demo-banner{margin-bottom:var(--space-4);background:var(--warn-bg);color:var(--warn);font-size:var(--text-xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);display:flex;align-items:center;gap:var(--space-2)}.sidebar-mask{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:60}@media (max-width: 1199px){.app-sidebar{width:64px}.side-brand{justify-content:center;padding:var(--space-4) var(--space-2)}.brand-mark svg{width:24px;height:24px}.brand-name,.brand-sub,.side-user .user-meta,.side-user .logout-btn{display:none}.nav-item{justify-content:center;padding:0}.side-user{justify-content:center}}@media (max-width: 767px){.app-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:70;transform:translate(-100%);transition:transform var(--motion-slow) var(--ease-standard);width:var(--sidebar-w)}.app-sidebar.open{transform:translate(0)}.app-sidebar .brand-name,.app-sidebar .brand-sub,.app-sidebar .side-user .user-meta,.app-sidebar .side-user .logout-btn{display:revert}.app-sidebar .side-brand{justify-content:flex-start}.app-sidebar .nav-item{justify-content:flex-start;padding:0 var(--space-3)}.sidebar-mask.show{display:block}.topbar-menu-btn{display:inline-flex}.content{padding:var(--space-4)}}.monthly-finance-fixed-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:var(--space-4) var(--space-5) 0;padding:10px var(--space-4);border:1px dashed rgba(190,18,60,.3);border-radius:var(--radius-sm);background:#be123c09}.monthly-finance-fixed-row .fixed-label{font-size:var(--text-sm);font-weight:600;color:var(--fg-2)}.monthly-finance-fixed-row .fixed-value{font-size:var(--text-md);font-weight:700;color:#be123c}.monthly-finance-fixed-row .fixed-flag{font-size:var(--text-xs);padding:1px 7px;border-radius:var(--radius-pill);background:#64748b1f;color:var(--muted)}.monthly-finance-fixed-row .fixed-note{font-size:var(--text-xs);color:var(--muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.login-card{width:400px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-8) var(--space-6) var(--space-6);box-shadow:var(--shadow-sm)}.brand-block{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);text-align:center}.brand-block .brand-title{font-size:18px;font-weight:600;line-height:1.35}.brand-block .brand-tag{font-size:var(--text-sm);color:var(--muted)}.login-error{background:var(--danger-bg);color:var(--danger-text);font-size:var(--text-xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.login-foot{margin-top:var(--space-5);text-align:center;font-size:var(--text-xs);color:var(--muted)}.field{margin-bottom:var(--space-4)}.field-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--fg-2);margin-bottom:var(--space-2)}.req-star{color:var(--danger);margin-left:2px}.input,.select,.textarea{width:100%;height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg);transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.textarea{height:auto;min-height:72px;padding:var(--space-2) var(--space-3);resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.input::placeholder,.textarea::placeholder{color:var(--muted)}.input.has-error,.select.has-error{border-color:var(--danger)}.input.has-error:focus{box-shadow:0 0 0 3px #cf132233}.field-error{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-1);font-size:var(--text-xs);color:var(--danger-text)}.field-hint{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}.form-banner-error{background:var(--danger-bg);color:var(--danger-text);font-size:var(--text-xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.form-foot-actions{display:flex;justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap}.search-box{position:relative}.search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search-box .input{padding-left:34px}kbd.hint{background:var(--surface-muted);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;font-family:var(--font-mono);font-size:11px;padding:1px 5px;color:var(--muted)}.filter-bar{display:flex;align-items:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);flex-wrap:wrap}.filter-field{display:flex;flex-direction:column;gap:var(--space-1)}.filter-label{font-size:var(--text-xs);color:var(--muted)}.filter-field .select,.filter-field .input{min-width:150px}.filter-field .input.search{min-width:240px}@media (max-width: 767px){.filter-bar{flex-direction:column;align-items:stretch}.filter-field .select,.filter-field .input.search{min-width:0}}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;min-width:860px}.table th{text-align:left;padding:0 var(--cell-px);height:var(--table-head-h);background:var(--surface-muted);color:var(--fg-2);font-size:var(--text-sm);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0}.table td{padding:0 var(--cell-px);height:var(--table-row-h);border-bottom:1px solid var(--border-soft);font-size:var(--text-base);vertical-align:middle;white-space:nowrap}.table tbody tr{transition:background var(--motion-fast)}.table tbody tr:hover{background:var(--surface-hover)}.table-payroll th:first-child,.table-payroll td:first-child{position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:1px 0 0 0 var(--border)}.table-payroll thead th:first-child{z-index:3;background:var(--surface-muted)}.table-payroll tbody tr:hover td:first-child{background:var(--surface-hover)}.table-freeze-1 th:first-child,.table-freeze-1 td:first-child{position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:1px 0 0 0 var(--border)}.table-freeze-1 thead th:first-child{z-index:3;background:var(--surface-muted)}.table-freeze-1 tbody tr:hover td:first-child{background:var(--surface-hover)}.table .th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.table .th-sort .sort-icons{display:inline-flex;flex-direction:column;margin-left:4px;vertical-align:middle;line-height:0}.cell-mono{font-family:var(--font-mono);font-size:var(--text-sm)}.cell-num{text-align:right;font-variant-numeric:tabular-nums}.cell-note{max-width:260px;overflow:hidden;text-overflow:ellipsis}.table td .break-word,.table td.break-word{white-space:normal;overflow-wrap:anywhere}.row-actions{display:flex;gap:var(--space-1);justify-content:flex-end;opacity:.85}.row-actions .btn{padding:0 var(--space-2)}.store-cell{display:inline-flex;align-items:center;gap:var(--space-2)}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.abnormal-chip{display:inline-block;background:var(--warn-bg);color:var(--warn);font-size:var(--text-xs);border-radius:4px;padding:1px 6px;margin-right:4px;font-weight:500}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:500;background:var(--surface-muted);color:var(--fg-2);white-space:nowrap}.badge-admin,.badge-store{background:var(--accent-soft);color:var(--accent-ink)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block}.status-dot.off{background:#c4c9d4}.status-dot.warn{background:var(--warn)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);flex-wrap:wrap}.page-info{font-size:var(--text-sm);color:var(--muted)}.page-btns{display:flex;align-items:center;gap:var(--space-1)}.page-btn{min-width:32px;height:32px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg-2);font-size:var(--text-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.page-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.page-btn:disabled{opacity:.5;cursor:not-allowed}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.kpi-card{padding:var(--space-4) var(--space-5)}.kpi-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-2)}.kpi-value{font-size:var(--text-kpi);font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.kpi-delta{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted);display:flex;align-items:center;gap:4px}.kpi-delta.up{color:var(--success-text)}.kpi-delta.flat{color:var(--muted)}@media (max-width: 1023px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.kpi-grid{grid-template-columns:1fr 1fr;gap:var(--space-3)}.kpi-value{font-size:22px}}.chart-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.chart-desc{font-size:var(--text-xs);color:var(--muted)}.legend{display:flex;gap:var(--space-4);flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--fg-2)}.legend-dot{width:10px;height:10px;border-radius:3px}.trend-svg{display:block;width:100%;height:auto}.hbar-list{display:flex;flex-direction:column;gap:var(--space-3)}.hbar-row{display:grid;grid-template-columns:110px 1fr 56px;align-items:center;gap:var(--space-3)}.hbar-label{font-size:var(--text-sm);color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-track{height:18px;background:var(--surface-muted);border-radius:var(--radius-sm);overflow:hidden}.hbar-fill{height:100%;border-radius:var(--radius-sm);min-width:2px;transition:width var(--motion-base) var(--ease-standard)}.hbar-val{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--fg);text-align:right}.trend-empty{display:flex;align-items:center;justify-content:center;min-height:180px;color:var(--muted);font-size:var(--text-sm)}.overlay-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:90;display:flex;animation:fadeIn var(--motion-fast) var(--ease-standard)}.drawer{margin-left:auto;width:var(--drawer-w);max-width:100%;height:100%;background:var(--surface);display:flex;flex-direction:column;animation:slideIn var(--motion-slow) var(--ease-standard);box-shadow:var(--shadow-md)}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--divider)}.drawer-title{font-size:var(--text-md);font-weight:600}.drawer-body{flex:1;overflow-y:auto;padding:var(--space-5)}.drawer-foot{padding:var(--space-4) var(--space-5);border-top:1px solid var(--divider);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap}.drawer-foot-left{margin-right:auto;font-size:var(--text-xs);color:var(--muted);display:flex;gap:var(--space-2);align-items:center}.dialog{width:440px;max-width:calc(100vw - 32px);margin:auto;background:var(--surface);border-radius:var(--radius-md);animation:popIn var(--motion-base) var(--ease-standard);box-shadow:var(--shadow-md)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--divider)}.dialog-title{font-size:var(--text-md);font-weight:600}.dialog-body{padding:var(--space-5)}.dialog-foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:0 var(--space-5) var(--space-5)}.icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted);border-radius:var(--radius-sm);cursor:pointer}.icon-btn:hover{background:var(--surface-hover);color:var(--fg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(40px);opacity:.4}to{transform:translate(0);opacity:1}}@keyframes popIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 767px){.drawer{width:100%}.drawer-foot{position:sticky;bottom:0;background:var(--surface)}.form-grid{grid-template-columns:1fr}}.toast-viewport{position:fixed;top:var(--space-4);left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;width:min(420px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:var(--space-2);background:#26303e;color:#fff;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);box-shadow:var(--shadow-md);animation:toastIn var(--motion-base) var(--ease-standard);pointer-events:auto}.toast.success .toast-ic{color:#4ade80}.toast.error .toast-ic{color:#fda4af}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;padding:var(--space-12) var(--space-5);color:var(--muted)}.empty-state .es-title{font-size:var(--text-md);font-weight:600;color:var(--fg)}.error-state .es-title{font-size:var(--text-md);font-weight:600;color:var(--danger-text)}.skeleton{border-radius:var(--radius-sm)}.sk-line{height:12px;border-radius:4px;background:var(--surface-muted);animation:skPulse 1.2s ease-in-out infinite}.sk-block{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.sk-row{display:flex;gap:var(--space-4)}@keyframes skPulse{0%,to{opacity:1}50%{opacity:.45}}.return-cards{display:none}@media (max-width: 767px){.flow-table{display:none}.return-cards{display:flex;flex-direction:column;gap:var(--space-3)}.return-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.rc-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.rc-no{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;word-break:break-all}.rc-meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--fg-2);margin-bottom:var(--space-2)}.rc-note{font-size:var(--text-sm);color:var(--fg-2)}}.member-name-cell{display:flex;align-items:center;gap:var(--space-3)}.abnormal-summary{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-2)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:start}@media (max-width: 1023px){.two-col{grid-template-columns:1fr}}.grid-main-side{display:grid;grid-template-columns:3fr 2fr;gap:var(--space-4);align-items:start}@media (max-width: 1023px){.grid-main-side{grid-template-columns:1fr}}.quick-add-fab{display:none}@media (max-width: 767px){.quick-add-fab{display:inline-flex;position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:50;border-radius:var(--radius-pill);box-shadow:var(--shadow-md)}}.mobile-add-in-top{display:none}@media (max-width: 767px){.desktop-add-btn{display:none}.mobile-add-in-top{display:inline-flex}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.version-chip{font-size:12px;color:var(--muted);margin-left:12px;white-space:nowrap;-webkit-user-select:none;user-select:none}.version-chip:hover{color:var(--accent-ink)}.kpi-link{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.kpi-link:hover{border-color:var(--accent);box-shadow:0 6px 18px #0f172a12}.kpi-link .kpi-label{display:flex;align-items:center;gap:6px}.kpi-go{margin-left:auto;color:var(--border);transition:color .15s ease}.kpi-link:hover .kpi-go,.recent-row:hover .row-go,.kw-row:hover .row-go{color:var(--accent)}.kw-row{text-decoration:none;padding:4px 6px;margin:0 -6px;border-radius:6px;transition:background .12s ease}.kw-row:hover{background:var(--surface-muted)}.recent-row{text-decoration:none;color:inherit;padding:10px 6px;margin:0 -6px;border-radius:6px;border-bottom:1px solid var(--divider);transition:background .12s ease}.recent-row:hover{background:var(--surface-muted)}.row-go{color:var(--border);transition:color .15s ease}.preset-line{display:flex;align-items:center;gap:10px;padding:8px 16px;border-top:1px dashed var(--divider);flex-wrap:wrap}.content{position:relative}.app-main{background:radial-gradient(900px 420px at 85% -8%,rgba(14,116,144,.05),transparent 60%),radial-gradient(760px 360px at -5% 0%,rgba(14,116,144,.04),transparent 55%),var(--bg-page)}.app-sidebar{background:linear-gradient(180deg,#1f4fc9,#2d6eee 58%,#3b7cf3);border-right:1px solid rgba(255,255,255,.16);color:#fff}.side-brand{border-bottom:1px solid rgba(255,255,255,.16)}.app-sidebar .brand-mark{color:#fff;filter:drop-shadow(0 0 8px rgba(255,255,255,.4))}.app-sidebar .brand-name{color:#fff;letter-spacing:.2px}.app-sidebar .brand-sub{color:#ffffffb8}.nav-item{color:#ffffffd6;border-radius:var(--radius-sm);font-weight:500}.nav-item:hover{background:#ffffff24;color:#fff}.nav-item.active{background:#fff3;color:#fff;font-weight:600;box-shadow:inset 3px 0 #fff,0 2px 10px -4px #08163a73}.app-sidebar .nav-group-head{color:#ffffffa8}.app-sidebar .nav-group-head:hover{color:#fff}.side-foot{border-top:1px solid rgba(255,255,255,.16)}.side-user .avatar{background:#fff;color:#2a63e4;box-shadow:0 3px 10px -2px #08163a66}.side-user .user-name{color:#fff}.side-user .user-role{color:#ffffffb3}.side-user .logout-btn{color:#ffffffbd}.side-user .logout-btn:hover{color:#fff;background:#ffffff29}.topbar{height:60px;background:#ffffffd1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(223,227,234,.7)}.version-chip{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--muted)}.version-chip:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.version-chip-btn{cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:11.5px}.version-chip-btn:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.version-chip-new{cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:11.5px;font-weight:600;color:#047857;border-color:#10b98173;background:#10b98124;animation:hqVersionPulse 2.4s ease-in-out infinite}.version-chip-new:hover{background:#10b98138;color:#065f46}@keyframes hqVersionPulse{0%,to{box-shadow:0 0 #10b98159}50%{box-shadow:0 0 0 4px #10b98100}}.version-chip-new:hover .version-spin,.version-chip-btn:hover .version-spin{animation:hqVersionSpin 1s linear infinite}@keyframes hqVersionSpin{to{transform:rotate(360deg)}}.rb-panel{border-radius:16px;padding:18px;background:radial-gradient(1200px 220px at 0% 0%,#22b8cf29,#22b8cf00 60%),linear-gradient(135deg,#0e749012,#22b8cf0d 45%,#ffffffeb);border:1px solid rgba(14,116,144,.18);box-shadow:0 8px 26px #0e74901a,inset 0 1px #ffffffa6}.rb-kpi{border-radius:13px;padding:12px 14px;border:1px solid transparent;min-width:0;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.rb-kpi-label{font-size:12px;display:flex;align-items:center;gap:5px;opacity:.85;white-space:nowrap}.rb-kpi-value{font-size:21px;font-weight:700;letter-spacing:-.015em;line-height:1.25;white-space:nowrap}.rb-kpi-sub{font-size:11.5px;opacity:.7;white-space:nowrap}.rb-block{background:#ffffffbd;border:1px solid rgba(14,116,144,.12);border-radius:13px;padding:12px 14px;box-shadow:inset 0 1px #ffffffb3}.rb-block-title{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;margin-bottom:10px}.rb-block-title:before{content:"";width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,#22b8cf,#0e7490)}.rb-bar{height:6px;border-radius:999px;background:#0e74901f;overflow:hidden}.rb-bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#22b8cf,#0e7490)}.rb-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 8px;color:var(--muted);font-size:12.5px}.card{border:1px solid #e4e8ef;box-shadow:var(--shadow-sm)}.card-head{border-bottom:1px solid var(--divider)}.card-title{letter-spacing:.2px}.page-h1{font-size:20px;font-weight:700;letter-spacing:.2px}.btn{border-radius:9px;font-weight:600;letter-spacing:.2px}.btn-primary{background:linear-gradient(180deg,#118aa8,#0d6f8a);box-shadow:0 2px 8px -2px #0e749073}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#1598b8,#0e7490);box-shadow:0 4px 12px -2px #0e749080}.btn-primary:active:not(:disabled){background:linear-gradient(180deg,#0c6b85,#0a5a72)}.btn-secondary{background:#fff}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-danger{border-radius:9px}.btn-sm{border-radius:7px}.btn-lg{border-radius:10px}.input,.select,.textarea{border-color:#d8dde6;border-radius:9px;background:#fff}.input:focus,.select:focus,.textarea:focus{box-shadow:var(--focus-ring),0 0 0 1px var(--accent)}.field-label{font-weight:600;letter-spacing:.2px}.filter-bar{padding:14px 20px}.filter-field .select,.filter-field .input{border-radius:8px}.table th{background:linear-gradient(180deg,#f8fafd,#f4f6fa);color:#56616f;font-size:12.5px;letter-spacing:.4px;border-bottom:1px solid #e3e8f0}.table td{border-bottom:1px solid #eef1f6;height:46px}.table tbody tr{transition:background var(--motion-fast) var(--ease-standard)}.table tbody tr:hover{background:#f4f8fb}@media (hover: hover){.table tbody tr .row-actions{opacity:0;transition:opacity var(--motion-fast)}.table tbody tr:hover .row-actions{opacity:1}}.page-btn{border-radius:8px}.page-btn.active{background:var(--accent)}.page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink)}.kpi-card{padding:18px 20px 16px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,rgba(14,116,144,.5),transparent);opacity:0;transition:opacity var(--motion-base)}.kpi-link:hover:before{opacity:1}.kpi-top{display:flex;align-items:center;gap:10px;margin-bottom:14px}.kpi-tile{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.kpi-label{margin:0;font-weight:500;letter-spacing:.2px}.kpi-value{font-size:30px;font-weight:700;letter-spacing:-.6px;line-height:1.05}.kpi-delta{margin-top:10px}.kpi-go{margin-left:auto}.kpi-warn .kpi-value{color:var(--warn)}@media (max-width: 480px){.kpi-tile{width:32px;height:32px;border-radius:9px}.kpi-value{font-size:23px}.kpi-card{padding:14px}}.hbar-track{height:14px;border-radius:999px;background:#edf1f6}.hbar-fill{border-radius:999px}.hbar-val{font-weight:600}.trend-empty{background:var(--surface)}.abnormal-chip{border-radius:6px;padding:2px 8px;letter-spacing:.2px}.badge{border:1px solid transparent}.badge-admin{background:linear-gradient(135deg,#0e74901f,#0e749033)}.overlay-mask{background:#0a142280;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.drawer{box-shadow:var(--shadow-lg)}.drawer-head,.dialog-head{background:linear-gradient(180deg,#fbfcfe,#f6f8fb)}.dialog{border:1px solid #e6eaf1;box-shadow:var(--shadow-lg);border-radius:16px}.drawer-title,.dialog-title{letter-spacing:.2px}.toast{border-radius:10px;background:#1e2a3af5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.empty-state>div:first-child,.error-state>div:first-child{width:64px;height:64px;border-radius:18px;background:var(--surface-muted);display:flex;align-items:center;justify-content:center;margin-bottom:6px}.kpi-link{text-decoration:none;color:inherit}.kpi-link:hover{transform:translateY(-2px);border-color:#0e749073;box-shadow:0 10px 24px -10px #0d1b2e2e}.login-scene{min-height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1100px 640px at 85% -12%,rgba(13,148,178,.16),transparent 60%),radial-gradient(900px 560px at -8% 112%,rgba(14,116,144,.14),transparent 55%),linear-gradient(160deg,#eef5fa,#e7f0f7 48%,#eef5fa)}.login-glow{position:absolute;border-radius:50%;pointer-events:none}.lg-1{width:560px;height:560px;left:-180px;top:-160px;background:radial-gradient(circle at 35% 35%,rgba(14,148,178,.22),transparent 68%)}.lg-2{width:640px;height:640px;right:-220px;bottom:-220px;background:radial-gradient(circle at 60% 60%,rgba(14,116,144,.18),transparent 66%)}.lg-3{width:360px;height:360px;right:8%;top:-90px;background:radial-gradient(circle,rgba(63,208,234,.14),transparent 70%)}.login-card{width:408px;max-width:100%;position:relative;z-index:1;background:#ffffffe6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.95);border-radius:22px;padding:40px 36px 28px;box-shadow:0 24px 70px -20px #0d1b2e59}.brand-logo{width:54px;height:54px;border-radius:16px;color:#fff;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0d7d99,#15a7c6);box-shadow:0 10px 24px -6px #0e74908c;margin-bottom:4px}.login-scene .brand-title{font-size:18px;font-weight:700;letter-spacing:.2px}.login-scene .brand-tag{color:var(--muted)}.login-scene .demo-banner{border-radius:10px}.login-field{display:grid;grid-template-areas:"lbl" "ic";margin-bottom:18px}.login-field .field-label{grid-area:lbl;margin-bottom:7px}.login-field .lf-ic{grid-area:ic;justify-self:start;align-self:center;position:relative;z-index:1;margin-left:16px;color:#98a3b3;pointer-events:none;transition:color .15s}.login-field .lf-input{grid-area:ic;padding-left:44px;height:44px;border-radius:11px;position:relative}.login-field:focus-within .lf-ic{color:var(--accent)}.login-submit{height:46px;border-radius:12px;font-size:15px;letter-spacing:2px}.demo-quick{margin-top:16px;display:flex;flex-direction:column;gap:8px}.demo-quick .btn{border-radius:10px}.login-foot{margin-top:22px;letter-spacing:.2px}.login-error{border-radius:10px}.return-card{border-radius:14px;box-shadow:var(--shadow-xs)}.rc-no{letter-spacing:.2px}.empty-state>div:first-child svg,.error-state>div:first-child svg{color:#aeb9c7}.editable{display:inline-block;max-width:100%;padding:2px 6px;margin:-2px -6px;border-radius:7px;cursor:text;vertical-align:middle;transition:background var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}.editable:hover{background:var(--accent-soft);box-shadow:0 0 0 1px #0e749059}.cell-inline-edit{height:30px;min-width:120px;font-size:13px;padding:0 8px;border-radius:7px;border-color:var(--accent);box-shadow:var(--focus-ring)}.cell-inline-edit.has-error{border-color:var(--danger);box-shadow:0 0 0 3px #cf13222e}.table .cell-num .editable,.table .cell-num .cell-inline-edit{text-align:right}td .editable .store-cell{margin:0}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;padding:16px 18px}.fb-field{display:flex;flex-direction:column;gap:8px;min-width:0}.fb-label{display:flex;align-items:center;gap:6px;height:16px;line-height:16px;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap}.fb-quick{display:inline-flex;align-items:center;gap:2px;margin-left:2px}.fb-quick button{border:none;background:transparent;padding:0 6px;font-size:12px;line-height:16px;color:var(--accent-ink);cursor:pointer;border-radius:5px;transition:background var(--motion-fast) var(--ease-standard)}.fb-quick button:hover{background:var(--accent-soft)}.fb-ctl{display:flex;align-items:center;gap:8px;height:36px;min-width:0}.fb-ctl .input,.fb-ctl .select{height:36px}.fb-ctl.is-area{height:auto;align-items:stretch}.fb-ctl.is-area .input{height:auto;min-height:72px;padding:10px 12px;line-height:1.7;resize:vertical}.fb-ctl.is-area .input:disabled{resize:none}.fb-store .select{width:132px}.fb-date .input{width:152px}.fb-sep{color:var(--muted);font-size:13px;-webkit-user-select:none;user-select:none}.fb-kw{flex:1 1 260px}.fb-search{position:relative;height:36px;flex:1;min-width:220px}.fb-search .input.search{width:100%;height:36px;padding-left:34px;padding-right:30px}.fb-search>svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.fb-search .icon-btn{position:absolute;right:5px;top:50%;transform:translateY(-50%)}.fb-actions{display:flex;align-items:center;height:36px}.fb-actions .btn{height:36px}@media (max-width: 900px){.filter-bar{flex-direction:row;align-items:flex-end}.fb-kw{flex-basis:100%}.fb-kw .fb-search{width:100%}}@media (max-width: 640px){.fb-date .input{width:136px}}.select-sm{height:32px;font-size:13px}.stage-inline{display:inline-flex;align-items:center;gap:6px}.stage-inline .select,.op-act{min-width:156px}.badge.board-pending{background:#dc26261f;color:#dc2626;font-weight:600}.badge.board-done{background:#10b98121;color:#059669;font-weight:600}.op-cell{display:inline-flex;align-items:center;gap:8px}.op-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:600;flex:none}.detail-summary{border:1px solid var(--border-soft);border-radius:12px;padding:6px 14px;margin:6px 0 18px;background:var(--surface-muted)}.detail-row{display:flex;align-items:baseline;gap:16px;padding:8px 0;border-bottom:1px dashed var(--divider);font-size:14px}.detail-row:last-child{border-bottom:none}.detail-label{flex:0 0 92px;color:var(--muted);font-size:13px}.detail-row>span:last-child{flex:1;word-break:break-all}.log-section-title{font-size:14px;font-weight:700;margin:4px 0 12px;color:var(--fg)}.log-list{list-style:none;margin:0;padding:0}.log-item{position:relative;display:flex;gap:12px;padding:0 0 16px}.log-item:before{content:"";position:absolute;left:7px;top:18px;bottom:0;width:2px;background:var(--divider)}.log-item:last-child:before{display:none}.log-dot{position:relative;z-index:1;flex:none;width:16px;height:16px;margin-top:2px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px var(--surface)}.log-body{flex:1;min-width:0}.log-head{display:flex;align-items:baseline;gap:10px}.log-head b{font-size:13.5px;color:var(--fg)}.log-time{font-size:12px;color:var(--muted)}.log-chg{font-size:13px;color:var(--fg-2);margin-top:4px;line-height:1.55}.pending-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:10px 18px;border-radius:var(--radius-md);background:linear-gradient(90deg,#be123c09,#96682f09,#2563eb09);border:1px solid rgba(148,163,184,.26)}.pending-title{font-weight:700;font-size:14px;color:var(--fg);white-space:nowrap}.pending-chips{display:inline-flex;gap:8px;flex-wrap:wrap}.chip-link{display:inline-flex;align-items:center;padding:3px 13px;border-radius:999px;font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap;border:1px solid rgba(148,163,184,.16);transition:filter .15s ease,box-shadow .15s ease}a.chip-link:hover{filter:brightness(.97);box-shadow:0 2px 8px -4px #10182859}.pending-hint{margin-left:auto;font-size:12px;color:var(--muted)}@media (max-width: 760px){.pending-hint{display:none}}.abn-row>td{background:#be123c0e}.abn-row>td:first-child{box-shadow:inset 3px 0 #be123c}.abn-row:hover>td{background:#be123c17}.abn-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;background:#be123c1f;color:#be123c;font-size:11.5px;font-weight:600;line-height:18px;white-space:nowrap;vertical-align:middle}.abn-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.abn-reason{font-size:12.5px;color:#be123c}.abn-card{border-color:#be123c4d!important;box-shadow:inset 3px 0 #be123c}.media-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;background:#0e74901a;color:#0e7490;font-size:11.5px;font-weight:600;line-height:18px}.abn-box{border:1px solid rgba(148,163,184,.35);border-radius:12px;padding:12px 14px;background:#f8fafc99;transition:border-color .18s,background .18s}.abn-box.is-on{border-color:#be123c73;background:#be123c0d}.abn-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.abn-toggle input{width:16px;height:16px;accent-color:#be123c;cursor:pointer;flex:none}.abn-toggle-text{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:#334155}.abn-box.is-on .abn-toggle-text{color:#be123c}.abn-tag{margin-left:auto;font-size:11px;color:var(--muted);background:#64748b1a;border-radius:999px;padding:1px 8px}.abn-detail{margin-top:10px;display:flex;flex-direction:column;gap:8px}.abn-chips{display:flex;flex-wrap:wrap;gap:6px}.abn-chip{border:1px solid rgba(148,163,184,.4);background:#fff;color:#475569;font-size:12px;line-height:22px;padding:0 10px;border-radius:999px;cursor:pointer;transition:all .15s}.abn-chip:hover{border-color:#be123c66;color:#be123c}.abn-chip.is-picked{background:#be123c1a;border-color:#be123c80;color:#be123c;font-weight:600}.rmedia{display:flex;flex-direction:column;gap:8px}.rmedia-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.rmedia-input{display:none}.rmedia-progress{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#0e7490;background:#0e749014;border-radius:8px;padding:5px 10px}.rmedia-spin{animation:rmedia-rot 1s linear infinite}@keyframes rmedia-rot{to{transform:rotate(360deg)}}.rmedia-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}.rmedia-item{margin:0;display:flex;flex-direction:column;gap:5px;min-width:0}.rmedia-frame{position:relative;border:1px solid rgba(148,163,184,.32);border-radius:10px;overflow:hidden;background:#f1f5f9;aspect-ratio:4 / 3}.rmedia-ph{display:block;width:100%;height:100%;padding:0;border:none;background:#f1f5f9;cursor:pointer}.rmedia-ph img{width:100%;height:100%;object-fit:cover;display:block}.rmedia-ph-loading{display:flex;align-items:center;justify-content:center;color:var(--muted)}.rmedia-video{width:100%;height:100%;object-fit:cover;display:block;background:#0f172a}.rmedia-del{position:absolute;top:5px;right:5px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:#0f172a99;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.rmedia-del:hover{background:#be123ce6}.rmedia-kind{position:absolute;left:5px;bottom:5px;display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:6px;background:#0f172a8c;color:#fff;font-size:10.5px;line-height:15px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.rmedia-cap{display:flex;flex-direction:column;gap:2px;min-width:0}.rmedia-name{font-size:11.5px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rmedia-meta{font-size:11px;color:var(--muted)}.rmedia-dl{align-self:flex-start;margin-top:2px;padding:2px 8px!important;font-size:11.5px!important;color:#0e7490!important}.rmedia-dl:hover{background:#0e74901a!important}.rmedia-empty{border:1px dashed rgba(148,163,184,.5);border-radius:10px;padding:16px;text-align:center;font-size:12.5px;color:var(--muted)}.detail-media{margin-top:12px;padding-top:12px;border-top:1px solid rgba(148,163,184,.25)}.fb-abn .fb-ctl{height:auto}.fb-check{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border:1px solid rgba(148,163,184,.4);border-radius:8px;background:#fff;font-size:12.5px;color:#475569;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.fb-check input{width:15px;height:15px;accent-color:#be123c;cursor:pointer}.fb-check:has(input:checked){border-color:#be123c73;background:#be123c12;color:#be123c;font-weight:600}.kpi-grid.kpi-grid-6{grid-template-columns:repeat(3,1fr);gap:14px}.kpi-t1{--kpi-tint: 14, 116, 144;--kpi-ic: #0e7490}.kpi-t2{--kpi-tint: 79, 70, 229;--kpi-ic: #4f46e5}.kpi-t3{--kpi-tint: 217, 119, 6;--kpi-ic: #b45309}.kpi-t4{--kpi-tint: 124, 58, 237;--kpi-ic: #6d28d9}.kpi-t5{--kpi-tint: 190, 18, 60;--kpi-ic: #be123c}.kpi-t6{--kpi-tint: 5, 150, 105;--kpi-ic: #047857}.kpi-card:is(.kpi-t1,.kpi-t2,.kpi-t3,.kpi-t4,.kpi-t5,.kpi-t6){background:linear-gradient(158deg,rgba(var(--kpi-tint),.11),rgba(var(--kpi-tint),.045) 52%,#fff);border-color:rgba(var(--kpi-tint),.22)}.kpi-card:is(.kpi-t1,.kpi-t2,.kpi-t3,.kpi-t4,.kpi-t5,.kpi-t6):before{background:linear-gradient(90deg,transparent,rgba(var(--kpi-tint),.55),transparent)}.kpi-card:is(.kpi-t1,.kpi-t2,.kpi-t3,.kpi-t4,.kpi-t5,.kpi-t6) .kpi-tile{background:rgba(var(--kpi-tint),.15);color:var(--kpi-ic);box-shadow:inset 0 0 0 1px rgba(var(--kpi-tint),.18)}.kpi-card:is(.kpi-t1,.kpi-t2,.kpi-t3,.kpi-t4,.kpi-t5,.kpi-t6) .kpi-value{color:var(--kpi-ic)}.kpi-card:is(.kpi-t1,.kpi-t2,.kpi-t3,.kpi-t4,.kpi-t5,.kpi-t6):hover{border-color:rgba(var(--kpi-tint),.42);box-shadow:0 10px 24px -12px rgba(var(--kpi-tint),.5)}@media (max-width: 1023px){.kpi-grid.kpi-grid-6{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.kpi-grid.kpi-grid-6{grid-template-columns:1fr;gap:10px}}.memo-card{padding:16px 18px 18px;background:radial-gradient(120% 130% at 100% 0%,#0e749021,#0e749000 58%),linear-gradient(180deg,#0e749013,#14b8a609 45%,#fff);border-color:#0e74903d;position:relative;overflow:hidden}.memo-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#0e7490,#14b8a6 45%,#14b8a600)}.memo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.memo-head-left{display:flex;align-items:center;gap:10px;min-width:0}.memo-icon{width:34px;height:34px;border-radius:10px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:#ffffffe6;color:#0e7490;box-shadow:inset 0 0 0 1px #0e749038}.memo-head-text{min-width:0}.memo-title{font-size:14.5px;font-weight:700;color:#0f2a3a;letter-spacing:.2px}.memo-sub{font-size:12px;color:#56788a;margin-top:2px}.memo-badge{display:inline-flex;align-items:center;gap:4px;flex:none;padding:3px 9px;border-radius:999px;background:#ffffffd9;color:#0e7490;font-size:11.5px;font-weight:600;box-shadow:inset 0 0 0 1px #0e749033}.memo-compose{margin-top:12px;background:#fff;border:1px solid rgba(14,116,144,.2);border-radius:12px;padding:10px 12px;box-shadow:0 2px 8px -4px #0d1b2e29}.memo-compose:focus-within{border-color:#0e749085;box-shadow:0 0 0 3px #0e74901a,0 2px 8px -4px #0d1b2e29}.memo-input{display:block;width:100%;min-height:62px;border:none;outline:none;background:transparent;resize:vertical;padding:0;font-family:inherit;font-size:13.5px;line-height:1.75;color:var(--fg)}.memo-input::placeholder{color:#94a3b8}.memo-input:disabled{cursor:not-allowed}.memo-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(148,163,184,.35)}.memo-hint{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:#7b8fa1}.memo-count{margin-left:6px;padding:1px 8px;border-radius:999px;background:#0e749017;color:#0e7490;font-weight:600}.memo-list{margin-top:12px;display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;padding-right:2px}.memo-item{background:#fff;border:1px solid rgba(148,163,184,.3);border-left:3px solid rgba(14,116,144,.5);border-radius:10px;padding:10px 12px;transition:border-color .15s ease,box-shadow .15s ease}.memo-item:hover{border-color:#0e74906b;border-left-color:#0e7490;box-shadow:0 6px 16px -10px #0d1b2e66}.memo-item.is-editing{border-left-color:#14b8a6;background:#fbfdfe}.memo-item.is-mine{background:linear-gradient(180deg,#fbbf2426,#fbbf240d);border-color:#d977066b;border-left:3px solid #d97706;box-shadow:0 6px 18px -12px #b453098c}.memo-item.is-mine:hover{border-color:#d977069e;border-left-color:#b45309}.memo-mine-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:#d9770626;color:#b45309;font-size:11.5px;font-weight:600}.memo-mine-tip{display:flex;align-items:center;gap:7px;margin-top:12px;padding:9px 12px;border:1px solid rgba(217,119,6,.35);border-radius:10px;background:#fbbf241f;color:#92400e;font-size:12.5px}.memo-mine-tip b{color:#b45309}.memo-text{white-space:pre-wrap;line-height:1.75;word-break:break-word;font-size:13.5px;color:#1e2c39}.memo-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--muted)}.memo-acts{margin-left:auto;display:flex;gap:6px}.memo-empty{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px;padding:18px;border:1px dashed rgba(14,116,144,.3);border-radius:10px;background:#fff9;font-size:12.5px;color:#6b8394}.card{transition:border-color .18s ease,box-shadow .18s ease}.card[data-component=kpi-card]:hover{box-shadow:var(--shadow-md, var(--shadow-sm))}.page-h1,.card-title{letter-spacing:.2px}.payslip-sheet{border:1px solid #e2e8f0;border-radius:8px;padding:14px 16px;background:#fff;max-width:640px}.payslip-print-root{display:none}@media print{@page{size:A4;margin:14mm}body>*:not(.payslip-print-root):not(.reimburse-print-root){display:none!important}.payslip-print-root{display:block!important;position:static;background:#fff}.payslip-print-root .payslip-sheet{border:none;border-radius:0;max-width:none;padding:0;page-break-after:always;break-after:page}.payslip-print-root .payslip-sheet:last-child{page-break-after:auto;break-after:auto}}.ro-num{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:#334155}.table-payroll{min-width:1780px}.table-payroll th{white-space:nowrap}.table-payroll td{white-space:nowrap;vertical-align:middle}.table-payroll .input{flex:0 0 auto;min-width:76px}.table-payroll td .input{box-sizing:border-box}.reimburse-sheet{border:1px solid #e2e8f0;border-radius:8px;padding:14px 16px;background:#fff;max-width:660px}.reimburse-print-root{display:none}@media print{body>*:not(.reimburse-print-root):not(.payslip-print-root){display:none!important}.reimburse-print-root{display:block!important;position:static;background:#fff}.reimburse-print-root .reimburse-sheet{border:none;border-radius:0;max-width:none;padding:0;page-break-after:always;break-after:page}.reimburse-print-root .reimburse-sheet:last-child{page-break-after:auto;break-after:auto}}.payroll-unpaid{margin-top:14px;border:1px solid #fed7aa;background:#fffaf3;border-radius:10px;overflow:hidden}.payroll-unpaid-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #fde3c4}.payroll-unpaid-head b{font-size:13px;color:#b45309}.payroll-unpaid-head .muted{font-size:12px}.payroll-unpaid .table-wrap{background:#fff}.payroll-unpaid-foot{padding:9px 14px;font-size:11.5px;color:#92400e;border-top:1px solid #fde3c4}.payroll-unpaid-tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11.5px;background:#fff7ed;color:#b45309;font-weight:600}.payroll-all-paid{margin-top:14px;font-size:12.5px;color:#047857;background:var(--success-bg);border-radius:9px;padding:10px 14px}.payroll-diff{margin-top:14px;border:2px solid #fca5a5;background:#fff5f5;border-radius:10px;overflow:hidden}.payroll-diff-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 14px;border-bottom:1px solid #fecdd3;background:#fff1f2}.payroll-diff-head b{font-size:14px;color:#b91c1c}.payroll-diff-head span{font-size:12px;color:#9f1239}.payroll-diff .table-wrap{background:#fff}.payroll-diff-foot{padding:9px 14px;border-top:1px solid #fecdd3;font-size:11.5px;color:#9f1239}.payroll-diff-over{color:#b91c1c;font-weight:700}.payroll-diff-under{color:#b45309;font-weight:700}.payroll-diff-tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:700}.payroll-diff-tag.over{background:#fee2e2;color:#b91c1c}.payroll-diff-tag.under{background:#fef3c7;color:#b45309}.payroll-deduct-break{margin-top:10px;font-size:12.5px;color:#334155;background:var(--surface-muted);border-radius:9px;padding:9px 13px;line-height:1.8}.payroll-deduct-break b{color:#0f172a}.payroll-deduct-break .muted{font-size:11.5px;margin-left:6px}.payroll-ok-tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;background:var(--success-bg);color:#047857}.payroll-toggle{display:flex;align-items:center;gap:6px;width:100%;margin-top:12px;padding:10px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--fg-2);font-size:12.5px;cursor:pointer;text-align:left}.payroll-toggle:hover{color:#0e7490;border-color:#a5d8e6}.payroll-pay-ok{margin-top:14px;font-size:12.5px;color:#047857;background:var(--success-bg);border-left:3px solid #10b981;border-radius:9px;padding:10px 14px}@media (max-width: 640px){.payroll-diff-head{flex-direction:column;align-items:flex-start;gap:4px}}@media (max-width: 640px){.payroll-unpaid-head{flex-wrap:wrap;gap:4px}}.assignee-picker{position:relative;width:100%}.assignee-picker-btn{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:6px}.assignee-picker-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.assignee-picker-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-picker-panel{position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:230px;max-width:320px;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(14,116,144,.18);border-radius:10px;box-shadow:0 12px 30px #0f2a3824;overflow:hidden}.assignee-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;font-size:12.5px;color:var(--muted);border-bottom:1px solid rgba(14,116,144,.12)}.assignee-picker-list{max-height:240px;overflow-y:auto;padding:4px}.assignee-picker-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 8px;border:0;background:transparent;border-radius:8px;cursor:pointer;font-size:13px}.assignee-picker-item:hover{background:#0e749012}.assignee-picker-item.is-on{background:#0e74901c;color:#0e7490;font-weight:600}.assignee-picker-check{width:16px;height:16px;flex:0 0 16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(14,116,144,.35);border-radius:4px;color:#0e7490}.assignee-picker-item.is-on .assignee-picker-check{background:#0e749024;border-color:#0e74908c}.assignee-picker-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-picker-empty{padding:10px;font-size:12.5px;color:var(--muted)}.table tbody tr.is-mine td{background:linear-gradient(180deg,#fbbf2426,#fbbf240f)}.table tbody tr.is-mine td:first-child{box-shadow:inset 3px 0 #d97706}.table tbody tr.is-mine:hover td{background:#fbbf2438}@media (max-width: 767px){.topbar{flex-wrap:wrap;height:auto;min-height:54px;padding:8px 12px;row-gap:6px;column-gap:8px}.topbar>*{min-width:0}.topbar .version-chip,.topbar .version-chip-btn,.topbar .version-chip-new{flex-shrink:1;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn,.input,.select,.version-chip-btn,.version-chip-new{min-height:40px}.muted{line-height:1.6}.content{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.quick-add-fab{bottom:calc(16px + env(safe-area-inset-bottom))}}.flow-page-desc{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.7;max-width:940px}.flow-page-desc-tail{color:var(--muted)}.flow-card-gap{margin-bottom:16px}.flow-summary-card{padding:18px 20px 0}.flow-summary-top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}.flow-summary-main{min-width:0}.flow-summary-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.flow-total{font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1.14;margin-top:6px;font-variant-numeric:tabular-nums}.flow-mom{display:flex;align-items:center;gap:5px;font-size:13px;margin-top:4px}.flow-mom-empty{color:var(--muted)}.flow-summary-side{display:flex;flex-direction:column;gap:8px;margin-left:auto;padding-top:4px}.flow-summary-side>div{display:flex;align-items:baseline;justify-content:flex-end;gap:10px;font-size:12.5px}.flow-summary-side span{color:var(--muted);white-space:nowrap}.flow-summary-side b{color:var(--fg-2);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));border-top:1px solid var(--divider);margin-top:18px;padding:14px 0 16px}.mcell{padding:0 16px;border-left:1px solid var(--divider);min-width:0}.mcell:first-child{padding-left:0;border-left:0}.mcell-label{font-size:12.5px;color:var(--muted);margin-bottom:4px;line-height:1.3}.mcell-value{font-size:18px;font-weight:600;line-height:1.25;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-chart{display:flex;align-items:flex-end;gap:6px;height:168px;padding:0 2px;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--border)}.flow-bar-col{flex:1 0 54px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;padding:0 2px;border-radius:6px 6px 0 0}.flow-bar-col:hover{background:var(--surface-hover)}.flow-bar-slot{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;min-height:0}.flow-bar-val{font-size:10.5px;font-weight:600;color:var(--accent);white-space:nowrap}.flow-bar-val.is-empty{color:var(--muted);font-weight:400}.flow-bar{width:100%;border-radius:5px 5px 2px 2px}.flow-bar.is-active{box-shadow:0 0 0 2px var(--accent-glow)}.flow-bar-month{height:18px;line-height:18px;font-size:11px;color:var(--muted);white-space:nowrap;text-align:center}.flow-bar-month.is-active{color:var(--accent-ink);font-weight:700}.flow-chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:168px;border-bottom:1px solid var(--border);color:var(--muted);font-size:13px;text-align:center}.flow-hint{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.6}.flow-addhint{margin-top:8px}.mcard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px}.mcard{display:flex;flex-direction:column;gap:10px;text-align:left;cursor:pointer;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;transition:border-color .15s ease,box-shadow .15s ease}.mcard:hover{border-color:var(--accent);box-shadow:0 6px 18px #0f172a12}.mcard.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset,0 6px 18px #0f172a12}.mcard-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px}.mcard-key{font-size:13.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.mcard-amount{font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.2;color:var(--accent-ink);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mcard-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mcard-breakdown>div{min-width:0}.mcard-breakdown span{display:block;font-size:11.5px;color:var(--muted);margin-bottom:2px}.mcard-breakdown b{display:block;font-size:12.5px;font-weight:600;color:var(--fg-2);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mcard-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--divider);padding-top:9px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.flow-badge-now{background:#0e74901f;color:#0e7490;font-weight:600;white-space:nowrap}.flow-badge-past{background:#64748b21;color:#475569;font-weight:600;white-space:nowrap}.flow-addbar{display:grid;grid-template-columns:186px 186px 116px 186px auto;grid-template-areas:"type payee amount time submit";gap:8px;align-items:center;justify-content:start}.flow-addbar-type{grid-area:type}.flow-addbar-payee{grid-area:payee}.flow-addbar-amount{grid-area:amount}.flow-addbar-time{grid-area:time}.flow-addbar-btn{grid-area:submit}.flow-addbar .select,.flow-addbar .input{height:36px}.flow-addbar-amount{text-align:right;font-variant-numeric:tabular-nums}.flow-addbar-btn{height:36px;white-space:nowrap}.flow-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 12px}.flow-search{position:relative;display:flex;align-items:center;width:230px}.flow-search>svg{position:absolute;left:10px;pointer-events:none}.flow-search .input{height:36px;padding-left:30px;width:100%}.flow-filter-type{width:128px;height:36px}.flow-filter-clear{height:36px}.flow-filter-count{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.flow-filter-global{margin-top:0}.flow-filter-date{width:148px;height:36px}.flow-filter-payee{width:250px}.flow-table{max-height:560px;overflow-y:auto}.flow-table th{white-space:nowrap}.flow-time{white-space:nowrap;color:var(--fg-2);font-size:12.5px}.flow-payee{font-weight:600;word-break:break-word}.flow-amount{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.flow-actions{display:inline-flex;align-items:center;gap:6px}.flow-type-tag{font-weight:600;white-space:nowrap}.flow-row-editing{background:#0e74900b}.flow-row-editing td{vertical-align:middle}.flow-edit-ctl{width:100%;height:32px}.flow-edit-amount{text-align:right;font-variant-numeric:tabular-nums}.flow-edit-time{font-size:12.5px}.flow-cards{display:none}@media (max-width: 1023px){.flow-addbar{grid-template-columns:176px 176px 116px 178px;grid-template-areas:"type payee amount time" "submit submit submit submit"}.flow-filter-count{margin-left:0}}@media (max-width: 900px){.mgrid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:16px}.mcell{padding:0 14px;border-left:1px solid var(--divider)}.mcell:nth-child(3n+1){padding-left:0;border-left:0}}@media (max-width: 560px){.mgrid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}.mcell,.mcell:nth-child(3n+1){padding:0 12px;border-left:1px solid var(--divider)}.mcell:nth-child(odd){padding-left:0;border-left:0}.mcell-value{font-size:16px}}@media (max-width: 767px){.flow-summary-card{padding:16px 16px 0}.flow-total{font-size:30px}.flow-summary-side{margin-left:0;width:100%}.flow-summary-side>div{justify-content:space-between}.flow-addbar{grid-template-columns:1fr auto;grid-template-areas:"type type" "payee payee" "amount amount" "time time" "submit submit";gap:8px}.flow-filter{align-items:stretch}.flow-search{width:100%}.flow-filter-type{flex:1 1 auto}.flow-filter-date{width:calc(50% - 16px)}.flow-filter-payee{width:100%}.flow-filter-global .flow-filter-count{margin-left:0}.flow-cards{display:flex;flex-direction:column;gap:12px}.flow-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 14px}.flow-card.is-editing{border-color:var(--accent)}.flow-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.flow-card-payee{font-weight:600;word-break:break-word;min-width:0}.flow-card-amount{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.flow-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:7px;font-size:12.5px;color:var(--fg-2)}.flow-card-actions{display:flex;gap:8px;margin-top:11px}.flow-card-editor{display:flex;flex-direction:column;gap:10px}.flow-card-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.flow-card-editor-fields>.fce-full{grid-column:1 / -1}}.combo{position:relative;width:100%}.combo-panel{position:fixed;z-index:80;min-width:232px;max-width:calc(100vw - 32px);max-height:236px;overflow-y:auto;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px #0f172a24}.combo-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:7px;cursor:pointer;font-size:13.5px;color:var(--fg)}.combo-opt.is-active{background:var(--accent-soft);color:var(--accent-ink)}.combo-opt.is-empty{color:var(--muted);cursor:default;font-size:12.5px}.combo-opt-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-hit{background:transparent;color:var(--accent);font-weight:700}.combo-opt-hint{color:var(--muted);font-size:11.5px;white-space:nowrap}.combo-new{margin-top:4px;padding:7px 10px;border-top:1px dashed var(--border);font-size:11.5px;color:var(--muted)}.combo-new b{color:var(--accent-ink)}.flow-summary-body{padding:18px 20px 0}.flow-edit-combo{width:100%}.table.flush-first th:first-child,.table.flush-first td:first-child{padding-left:0}.struct-split{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px}.struct-block-title{font-size:13px;font-weight:600;color:var(--fg-2);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.struct-donut-wrap{position:relative;width:172px;height:172px;margin:0 auto 14px}.struct-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none}.struct-donut-center span{font-size:11.5px;color:var(--muted)}.struct-donut-center b{font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.struct-legend{display:flex;flex-direction:column;gap:2px}.struct-legend-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;font-size:12.5px;cursor:pointer;transition:background .15s ease}.struct-legend-row:hover{background:var(--surface-muted)}.struct-dot{width:10px;height:10px;border-radius:3px;display:block}.struct-legend-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.struct-legend-amount{font-variant-numeric:tabular-nums}.struct-legend-pct{font-variant-numeric:tabular-nums;color:var(--accent-ink);font-weight:600;min-width:46px;text-align:right}.struct-legend-count{color:var(--muted);font-size:11.5px;min-width:40px;text-align:right}.struct-bars{display:flex;flex-direction:column;gap:12px}.struct-bar-row{cursor:pointer}.struct-bar-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12.5px;margin-bottom:5px}.struct-bar-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.struct-bar-name em{font-style:normal;color:var(--muted);font-weight:400;margin-left:6px}.struct-bar-right{white-space:nowrap}.struct-bar-amount{font-variant-numeric:tabular-nums;font-weight:600}.struct-bar-pct{color:var(--accent-ink);margin-left:8px;font-variant-numeric:tabular-nums}.struct-bar-track{height:9px;border-radius:5px;background:#94a3b829;overflow:hidden}.struct-bar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#22b8cf,#0e7490);transition:width .3s ease}.struct-bar-row:hover .struct-bar-fill{background:linear-gradient(90deg,#38c6da,#0b5e73)}.struct-hint{margin-top:14px;font-size:11.5px;color:var(--muted)}@media (max-width: 1023px){.struct-split{grid-template-columns:minmax(0,1fr);gap:22px}.struct-donut-wrap{margin-left:0}}@media (max-width: 560px){.struct-donut-wrap{width:148px;height:148px}.struct-legend-row{grid-template-columns:10px minmax(0,1fr) auto auto}.struct-legend-count{display:none}}.flow-year-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.flow-year-tools>.muted{min-width:0;text-align:right}.flow-year-tools>.select{width:104px;flex:0 0 auto}@media (max-width: 560px){.flow-year-tools{margin-left:0;width:100%;justify-content:space-between}.flow-year-tools>.muted{text-align:left}}.flow-range-head{flex-wrap:wrap;gap:10px}.flow-range-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.flow-range-controls>.input,.flow-range-controls>.select{width:auto;height:30px;flex:0 0 auto}.flow-range-mode{width:136px!important}.flow-range-month,.flow-range-date{width:142px!important}.flow-range-sep{color:var(--muted);font-size:12px}.flow-range-error{padding:18px;border-radius:10px;background:var(--danger-soft);color:var(--danger);text-align:center}.flow-year-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.flow-dim-switch{display:inline-flex;padding:3px;border:1px solid var(--border);background:var(--surface-muted);border-radius:9px}.flow-dim-switch button{border:0;background:transparent;padding:5px 12px;border-radius:6px;color:var(--muted);font-size:12px;cursor:pointer}.flow-dim-switch button.is-active{background:var(--surface);color:var(--accent-ink);font-weight:700;box-shadow:0 1px 4px #0f172a1a}@media (max-width: 767px){.flow-range-controls{width:100%;margin-left:0}.flow-range-mode,.flow-range-month,.flow-range-date{width:100%!important}.flow-range-sep{width:100%;text-align:center;line-height:1}.flow-year-title{width:100%;justify-content:space-between}.flow-dim-switch{width:100%}.flow-dim-switch button{flex:1}}.yd-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--divider);border-radius:12px;padding:12px 4px;margin-bottom:14px;background:var(--surface-muted)}.yd-sum-item{display:flex;flex-direction:column;gap:3px;padding:0 14px;border-left:1px solid var(--divider);min-width:0}.yd-sum-item:first-child{border-left:0}.yd-sum-item span{font-size:11.5px;color:var(--muted)}.yd-sum-item b{font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.yd-multi{margin-bottom:12px;padding:8px 12px;border-radius:9px;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;line-height:1.7;word-break:break-word}.yd-multi-title{margin-bottom:8px}.yd-multi-list{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto;padding-right:2px}.yd-multi-row{cursor:pointer}.yd-multi-head{display:flex;align-items:baseline;gap:8px;font-size:12px;line-height:1.5}.yd-multi-rank{min-width:16px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.yd-multi-name{flex:1 1 auto;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yd-multi-cnt{color:var(--muted);white-space:nowrap}.yd-multi-amt{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.yd-multi-pct{min-width:46px;text-align:right;color:var(--accent-ink);font-variant-numeric:tabular-nums}.yd-multi-track{height:7px;margin-top:3px;border-radius:4px;background:#94a3b829;overflow:hidden}.yd-multi-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#7fd8e6,#0b5e73)}.yd-multi-row:hover .yd-multi-fill{background:linear-gradient(90deg,#38c6da,#0b5e73)}.yd-scroll{max-height:min(56vh,520px);overflow-y:auto;border:1px solid var(--divider);border-radius:10px}.yd-scroll .table th{position:sticky;top:0;z-index:1;background:var(--surface-muted)}@media (max-width: 560px){.yd-sum{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}.yd-sum-item:nth-child(3){border-left:0}.yd-scroll{max-height:48vh}}.yd-table{min-width:0;table-layout:fixed}.yd-table th:nth-child(1),.yd-table td:nth-child(1){width:152px}.yd-table th:nth-child(3),.yd-table td:nth-child(3){width:104px}.yd-table th:nth-child(4),.yd-table td:nth-child(4){width:122px}.yd-table .flow-payee{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 767px){.yd-desktop-only{display:none}.yd-cards{display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow-y:auto}}.th-pro .select{min-width:220px}@media (max-width: 767px){.th-pro .select{min-width:160px}}.amt-todo{display:inline-block;padding:1px 7px;border-radius:6px;background:#fef3c7;color:#b45309;font-size:12px;font-weight:600;white-space:nowrap}.amt-form{display:flex;flex-direction:column;gap:14px}.amt-form-row{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--fg-2)}.amt-form-row>.input{width:100%;text-align:right;font-variant-numeric:tabular-nums}.amt-form-hint{font-size:12px;color:var(--muted);line-height:1.7}.rb-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.rb-kpicard{display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px 16px 12px;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s;font:inherit}.rb-kpicard:hover{border-color:#99d6e3;box-shadow:0 4px 14px #0e74901f;transform:translateY(-1px)}.rb-kpicard:focus-visible{outline:2px solid #0E7490;outline-offset:2px}.rb-kpicard.is-main{background:linear-gradient(180deg,#ecfeff,#f7fdfe);border-color:#a5e3ee}.rb-kpicard-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.rb-kpicard-name{font-size:13px;font-weight:700;color:var(--fg-2)}.rb-kpicard-month{font-size:12px;color:var(--muted);white-space:nowrap}.rb-kpicard-amt{font-size:24px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.rb-kpicard-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px}.rb-kpicard-cnt{color:var(--muted)}.rb-kpicard-more{color:#0e7490;font-weight:600}.rb-kpicard-hint{font-size:11.5px;color:var(--muted)}.kpi-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;padding-bottom:14px;margin-bottom:12px;border-bottom:1px solid var(--divider)}.kpi-sum-cell{display:flex;flex-direction:column;gap:3px}.kpi-sum-lb{font-size:12px;color:var(--muted)}.kpi-sum-vl{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.kpi-list{max-height:46vh;overflow-y:auto}.kpi-table{min-width:0;table-layout:fixed}.kpi-table th,.kpi-table td{padding:8px 10px}@media (max-width: 900px){.rb-kpis{grid-template-columns:1fr;gap:10px}.rb-kpicard-amt{font-size:21px}}@media (max-width: 560px){.rb-kpicard{padding:12px 14px 10px}.rb-kpicard-amt{font-size:20px}.kpi-list{max-height:40vh}}@media (max-width: 767px){.ml-auto,.page-tools{flex-wrap:wrap}.ml-auto .input,.page-tools .input{min-width:0}}.overlay-mask{overflow-y:auto}@media (max-width: 767px){.yd-multi-list{max-height:240px}}.monthly-finance-head{align-items:flex-start}.monthly-finance-desc{font-size:13px;color:var(--muted);margin-top:4px}.monthly-finance-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.monthly-finance-month{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding-left:10px}.monthly-finance-month .input{width:136px;border:0;box-shadow:none}.monthly-finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.monthly-finance-kpi{background:var(--surface);border:1px solid var(--border);border-left:4px solid #64748b;border-radius:10px;padding:14px 16px;min-width:0}.monthly-finance-kpi.cyan{border-left-color:#0e7490;background:#f3fafb}.monthly-finance-kpi.purple{border-left-color:#7c3aed;background:#faf7ff}.monthly-finance-kpi.amber{border-left-color:#b45309;background:#fffaf0}.monthly-finance-kpi.green{border-left-color:#047857;background:#f1faf6}.monthly-finance-kpi.red{border-left-color:#be123c;background:#fff7f8}.monthly-finance-kpi-label{font-size:12px;color:var(--muted)}.monthly-finance-kpi-value{font-size:23px;font-weight:700;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.monthly-finance-kpi-note{font-size:11.5px;color:var(--muted);margin-top:3px}.monthly-finance-stack{display:flex;flex-direction:column;gap:14px}.monthly-finance-section{overflow:hidden}.monthly-finance-section-title{display:flex;align-items:center;gap:8px;min-width:0}.monthly-finance-section-title b{font-size:13px;color:#047857;margin-left:6px;font-variant-numeric:tabular-nums}.monthly-finance-records{display:flex;flex-direction:column}.monthly-finance-record{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:16px;align-items:center;padding:13px 16px;border-top:1px solid var(--divider)}.monthly-finance-record:first-child{border-top:0}.monthly-finance-record-main{display:flex;flex-direction:column;gap:3px;min-width:0}.monthly-finance-record-main span{font-size:12.5px;color:var(--fg-2)}.monthly-finance-record-main small{font-size:11.5px;color:var(--muted);white-space:normal;line-height:1.6}.monthly-finance-record-net{text-align:right;display:flex;flex-direction:column;gap:2px}.monthly-finance-record-net span{font-size:11px;color:var(--muted)}.monthly-finance-record-net b{color:#047857;font-variant-numeric:tabular-nums}.monthly-finance-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.monthly-finance-field{display:flex;flex-direction:column;gap:6px}.monthly-finance-field>span{font-size:12.5px;color:var(--muted);font-weight:600}.monthly-finance-field.is-wide{grid-column:1/-1}.monthly-finance-form-total{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;background:var(--success-bg);color:var(--success-text);padding:12px 14px;border-radius:9px}.monthly-finance-form-total strong{font-size:19px}.monthly-finance-salary{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:18px}.monthly-finance-salary>div,.monthly-finance-salary>label{display:flex;flex-direction:column;gap:6px}.monthly-finance-salary span{font-size:12.5px;color:var(--muted)}.monthly-finance-salary strong{font-size:22px}.monthly-finance-salary small{font-size:11.5px;color:var(--muted)}.monthly-finance-salary>label{display:grid;grid-template-columns:1fr 140px auto;align-items:center}.monthly-profit-card{overflow:hidden}.monthly-profit-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:20px}.monthly-profit-grid h2{font-size:14px;margin:0 0 10px}.monthly-profit-row{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--divider);font-size:13px}.monthly-profit-row strong{font-variant-numeric:tabular-nums}.monthly-profit-op{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;background:var(--surface-muted);font-size:0}.monthly-profit-op.green{color:#047857;background:var(--success-bg)}.monthly-profit-op.red{color:#be123c;background:var(--danger-bg)}.monthly-profit-subtotal{display:flex;justify-content:space-between;padding-top:12px;font-size:14px}.monthly-profit-final{margin:0 20px 20px;background:var(--success-bg);color:var(--success-text);border-radius:10px;padding:18px;display:grid;grid-template-columns:1fr auto;align-items:center}.monthly-profit-final>strong{font-size:28px;grid-row:1/3;grid-column:2}.monthly-profit-final>small{color:inherit;opacity:.75;margin-top:3px}.monthly-profit-final.loss{background:var(--danger-bg);color:var(--danger-text)}@media (max-width:900px){.monthly-finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.monthly-finance-head{flex-direction:column;align-items:stretch}.monthly-finance-toolbar{width:100%}.monthly-finance-month{flex:1}.monthly-finance-month .input{width:100%;min-width:110px}.monthly-finance-kpis{grid-template-columns:1fr 1fr;gap:8px}.monthly-finance-kpi{padding:11px 12px}.monthly-finance-kpi-value{font-size:18px}.monthly-finance-record{grid-template-columns:1fr auto;padding:12px}.monthly-finance-record-net{grid-column:2}.monthly-finance-record .row-actions{grid-column:1/-1;justify-content:flex-end;border-top:1px dashed var(--divider);padding-top:8px}.monthly-finance-form{grid-template-columns:1fr}.monthly-finance-field.is-wide,.monthly-finance-form-total{grid-column:auto}.monthly-finance-salary{grid-template-columns:1fr;gap:16px}.monthly-finance-salary>label{grid-template-columns:1fr;align-items:stretch}.monthly-profit-grid{grid-template-columns:1fr;padding:14px}.monthly-profit-final{margin:0 14px 14px}.monthly-profit-final>strong{font-size:21px}}.dropship-form{display:flex;flex-direction:column;gap:16px}.dropship-form-block{border:1px solid var(--border);border-radius:10px;padding:14px;background:var(--surface)}.dropship-form-block.receivable{border-color:#a5e3d2;background:#f4fbf8}.dropship-form-block.cost{border-color:#fed7aa;background:#fffaf3}.dropship-form-block-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:13px}.dropship-form-block-head>div{display:flex;flex-direction:column;gap:3px}.dropship-form-block-head b{font-size:14px}.dropship-form-block-head span{font-size:11.5px;color:var(--muted)}.dropship-form-block-head>strong{font-size:18px;font-variant-numeric:tabular-nums;color:#047857}.dropship-form-block.cost .dropship-form-block-head>strong{color:#b45309}.dropship-subtotal{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);font-size:13px}.dropship-subtotal b{font-size:16px;font-variant-numeric:tabular-nums}.dropship-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dropship-summary>div{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border-radius:9px;background:var(--surface-muted)}.dropship-summary span{font-size:11.5px;color:var(--muted)}.dropship-summary strong{font-size:18px;font-variant-numeric:tabular-nums}.dropship-summary>div:last-child{background:var(--success-bg);color:var(--success-text)}.dropship-summary>div.loss{background:var(--danger-bg);color:var(--danger-text)}.dropship-record-totals{display:flex;align-items:center;gap:16px;text-align:right}.dropship-record-totals>div{display:flex;flex-direction:column;gap:2px;min-width:86px}.dropship-record-totals span{font-size:11px;color:var(--muted)}.dropship-record-totals b{font-size:14px;font-variant-numeric:tabular-nums}.dropship-record-totals>div:last-child b{color:#047857}.dropship-record-totals>div.loss b{color:#be123c}@media (max-width:640px){.dropship-summary{grid-template-columns:1fr}.dropship-form-block{padding:12px}.dropship-form-block-head{align-items:center}.dropship-record-totals{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;text-align:left}.dropship-record-totals>div{min-width:0;background:var(--surface-muted);padding:7px;border-radius:7px}.dropship-record-totals b{font-size:12.5px}}.sched-tabs{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.sched-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--fg-2);font-size:13px;cursor:pointer}.sched-tab.active{background:#0e7490;border-color:#0e7490;color:#fff;font-weight:600}.sched-role-hint{display:inline-flex;align-items:center;gap:5px;margin-left:auto;font-size:12px;color:var(--muted)}.sched-board{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.sched-board-hint{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);padding:9px 14px;border-bottom:1px solid var(--divider);background:var(--surface-muted);flex-wrap:wrap}.sched-count{color:#0e7490;margin-left:10px}.sched-roster-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.sched-roster-list{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto}.sched-roster-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;gap:10px;align-items:center;border:1px solid var(--divider);border-radius:8px;padding:8px 11px}.sched-roster-item b{font-size:13px}.sched-roster-item span{font-size:11.5px;color:var(--muted)}.sched-others-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:10px 16px;border:0;border-top:1px solid var(--divider);background:var(--surface-muted);color:var(--muted);font-size:12px;cursor:pointer;text-align:left}.sched-others-toggle:hover{color:#0e7490}.sched-privacy-tip{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);background:var(--surface-muted);border:1px solid var(--divider);border-radius:8px;padding:8px 12px}.sched-rest-grid.single{grid-template-columns:minmax(0,620px)}.sched-scroll{overflow:auto;max-height:70vh}.sched-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.sched-table th,.sched-table td{border-bottom:1px solid var(--divider);border-right:1px solid var(--divider);padding:0;text-align:center}.sched-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-muted);font-weight:600;font-size:11.5px;color:var(--muted);padding:7px 4px;min-width:74px}.sched-table thead th b{display:block;font-size:12.5px;color:var(--fg)}.sched-table thead th.weekend,.sched-table td.weekend{background:#fbf7f2}.sched-table thead th.sched-name-col{position:sticky;left:0;z-index:3;min-width:118px;text-align:left;padding:7px 10px}.sched-table tbody th.sched-name-col{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;padding:8px 10px;font-weight:600}.sched-table tbody th.sched-name-col b{display:block;font-size:13px}.sched-table tbody th.sched-name-col span{font-size:11px;color:var(--muted)}.sched-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;min-height:44px;background:transparent;border:0;cursor:pointer;padding:4px 2px}.sched-cell:disabled{cursor:default}.sched-cell:not(:disabled):hover{background:#eef7fa}.sched-cell b{font-size:12px;line-height:1.3}.sched-cell span{font-size:10px;color:var(--muted)}.sched-cell.has-shift b{color:#0e7490}.sched-cell.is-rest{background:#fff7ed}.sched-cell.is-rest b{color:#b45309}.sched-empty-mark{color:transparent;font-size:13px}.sched-cell:not(:disabled):hover .sched-empty-mark{color:#0e7490}.sched-legend{display:flex;align-items:center;gap:14px;padding:10px 14px;font-size:11.5px;color:var(--muted);flex-wrap:wrap}.sched-legend>span{display:inline-flex;align-items:center;gap:5px}.sched-legend .dot{width:9px;height:9px;border-radius:3px;display:inline-block}.sched-legend .dot.shift{background:#0e7490}.sched-legend .dot.rest{background:#f59e0b}.sched-editor-meta{display:flex;align-items:baseline;gap:10px;background:var(--surface-muted);border-radius:8px;padding:10px 12px}.sched-editor-meta b{font-size:14px}.sched-editor-meta span{font-size:12.5px;color:var(--muted)}.sched-preset-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sched-preset{display:flex;flex-direction:column;gap:2px;padding:9px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;text-align:center}.sched-preset b{font-size:13px}.sched-preset span{font-size:11px;color:var(--muted)}.sched-preset.active{border-color:#0e7490;background:#eef7fa}.sched-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sched-editor-grid label{display:flex;flex-direction:column;gap:6px}.sched-editor-grid label>span{font-size:12.5px;color:var(--muted);font-weight:600}.sched-editor-grid label.is-wide{grid-column:1/-1}.sched-rest{display:flex;flex-direction:column;gap:14px}.sched-rest-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px}.sched-my-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px}.sched-my-body{display:flex;flex-direction:column;gap:14px;padding:16px}.sched-my-name b{font-size:15px;display:block}.sched-my-name span{font-size:12px;color:var(--muted)}.sched-my-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sched-my-stats>div{background:var(--surface-muted);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.sched-my-stats span{font-size:11.5px;color:var(--muted)}.sched-my-stats strong{font-size:20px;font-variant-numeric:tabular-nums}.sched-my-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sched-my-form label{display:flex;flex-direction:column;gap:5px}.sched-my-form label>span{font-size:12px;color:var(--muted);font-weight:600}.sched-my-form label.is-wide{grid-column:1/-1}.sched-my-form>button{grid-column:1/-1;justify-content:center}.sched-my-hint{font-size:11.5px;color:var(--muted);line-height:1.7;background:var(--surface-muted);border-radius:8px;padding:9px 11px}.sched-tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11.5px}.sched-tag.rest{background:#fff7ed;color:#b45309}.sched-tag.other{background:#eff6ff;color:#1d4ed8}.sched-rules{padding:14px 16px;display:flex;flex-direction:column;gap:8px}.sched-rule{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1.4fr) auto;gap:10px;align-items:center;border:1px solid var(--divider);border-radius:8px;padding:9px 12px}.sched-rule b{font-size:13px}.sched-rule span{font-size:13px;color:#0e7490;font-weight:600}.sched-rule small{font-size:11.5px;color:var(--muted)}.sched-rule .row-actions{display:flex;gap:4px}tr.is-me{background:#eef7fa}@media (max-width:1024px){.sched-rest-grid{grid-template-columns:1fr}}@media (max-width:640px){.sched-role-hint{margin-left:0;width:100%}.sched-table thead th{min-width:60px}.sched-table thead th.sched-name-col{min-width:96px}.sched-scroll{max-height:64vh}.sched-preset-row,.sched-editor-grid{grid-template-columns:1fr}.sched-my-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.sched-my-form{grid-template-columns:1fr}.sched-rule{grid-template-columns:1fr auto;row-gap:4px}.sched-rule small{grid-column:1/-1}}.crm-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a61;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:60}.crm-panel{width:min(960px,96vw);max-height:88vh;display:flex;flex-direction:column;background:var(--surface, #fff);border-radius:16px;box-shadow:0 24px 60px #0f172a38;overflow:hidden}.crm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.crm-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.crm-title{font-size:16px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-sub{font-size:12px;color:var(--muted)}.crm-body{padding:14px 16px;overflow:auto}.crm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.crm-field{display:flex;flex-direction:column;gap:4px;min-width:0}.crm-plats{display:flex;gap:8px;margin-bottom:12px}.crm-plat{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 14px;font-size:13px;font-weight:600;color:var(--fg-2);cursor:pointer}.crm-plat.on{border-color:var(--accent, #22a3bf);background:#22a3bf1a;color:var(--accent-strong, #0e7490)}.crm-section{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;color:var(--fg-2);margin:16px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.crm-fees{display:flex;flex-direction:column;gap:2px}.crm-fee{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:12.5px;border-bottom:1px dashed rgba(0,0,0,.05)}.crm-fee>span,.crm-check{flex:1;color:var(--fg-2)}.crm-fee em{font-style:normal;font-size:12px;color:var(--muted);min-width:66px;text-align:right}.crm-fee b{min-width:74px;text-align:right;font-variant-numeric:tabular-nums}.crm-fee.crm-empty{color:var(--muted);justify-content:center;border:0}.crm-check{display:inline-flex;align-items:center;gap:7px}.crm-mini{width:62px;height:26px;padding:0 6px;font-size:12px}.crm-sku{display:grid;grid-template-columns:1.4fr repeat(4,1fr) 32px;gap:8px;align-items:center;margin-bottom:8px}.crm-table-wrap{overflow-x:auto}.crm-table{min-width:760px;width:100%;font-size:12.5px}.crm-table th,.crm-table td{padding:7px 8px}.crm-tiny{font-size:11px;color:var(--muted)}.crm-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px}.crm-kv-item{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.crm-kv-item b{font-size:14px;color:var(--fg-1);font-variant-numeric:tabular-nums}.crm-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid var(--border);background:#00000003}.crm-foot-right{display:flex;gap:8px;margin-left:auto}.crm-danger{color:var(--danger-text, #b91c1c);border-color:#b91c1c47}.crm-danger:hover{background:#b91c1c0f}@media (max-width: 720px){.crm-mask{padding:10px}.crm-panel{max-height:92vh}.crm-grid,.crm-kv{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-sku{grid-template-columns:1fr 1fr}}.crm-sku-block{border:1px dashed var(--border);border-radius:10px;padding:10px;margin-bottom:10px}.crm-sku-name{display:flex;gap:8px;align-items:center}.crm-sku-name .input{flex:1}.crm-sku-line{display:grid;gap:8px;margin-top:8px}.crm-sku-line-3{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-sku-line-4{grid-template-columns:repeat(4,minmax(0,1fr))}.crm-mini-num{display:flex;flex-direction:column;gap:3px;min-width:0}.crm-mini-num span{font-size:11px;color:var(--muted)}@media (max-width: 720px){.crm-sku-line-3,.crm-sku-line-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.crm-thumb{width:46px;height:46px;border-radius:9px;border:1px solid var(--border);overflow:hidden;padding:0;background:#f8fafc;cursor:zoom-in;flex:0 0 46px}.crm-thumb img{width:100%;height:100%;object-fit:cover;display:block}.crm-panel{width:min(1160px,96vw)}.crm-sku-table{min-width:1020px;border-collapse:separate;border-spacing:0}.crm-sku-table thead th{background:#f8fafc;font-size:11px;font-weight:600;letter-spacing:.2px;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.crm-sku-table thead tr:first-child th{padding-top:9px}.crm-sku-table thead tr:last-child th{padding-bottom:7px}.crm-grp{text-align:center!important;color:var(--fg-2)!important;border-left:1px solid var(--border)}.crm-grp-solo{color:var(--fg-2)!important}.crm-th-name{text-align:left!important;font-size:11.5px!important}.crm-key{background:#eef7f5!important;color:#0b6b64!important}.crm-sku-table tbody td{padding:9px 8px;border-bottom:1px solid #f1f4f7;font-variant-numeric:tabular-nums;white-space:nowrap}.crm-sku-table tbody tr:last-child td{border-bottom:0}.crm-sku-table tbody tr:hover td{background:#f7fbfa}.crm-td-name{font-weight:600;color:var(--fg);max-width:260px;white-space:normal}.crm-dim{color:#8a94a6}.crm-strong{font-weight:700;color:var(--fg)}.crm-key-cell{background:#f6fbfa;font-weight:700}.crm-sku-table tbody tr:hover .crm-key-cell{background:#eef7f5}@media (max-width: 760px){.crm-panel{width:96vw}.crm-sku-table{min-width:900px}.crm-sku-table tbody td{padding:8px 6px;font-size:12px}}.crm-sku-table .num,.crm-sku-table td.num,.crm-sku-table th.num{text-align:right;font-variant-numeric:tabular-nums}.crm-sku-table tbody td:nth-child(7),.crm-sku-table tbody td:nth-child(10),.crm-sku-table tbody td:nth-child(13){background:#f1f9f7;font-weight:700}.crm-sku-table thead th.crm-key{background:#e3f4f1!important}.crm-sku-table tbody tr:hover td:nth-child(7),.crm-sku-table tbody tr:hover td:nth-child(10),.crm-sku-table tbody tr:hover td:nth-child(13){background:#e8f5f2}.crm-sku-table{table-layout:fixed}.crm-sku-table td,.crm-sku-table th{overflow:hidden;text-overflow:ellipsis}.crm-sku-table thead th.crm-grp-solo{text-align:right;vertical-align:bottom;padding-bottom:12px;padding-right:8px}.pc-page{display:block}.op-desc{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.7;max-width:940px}.pc-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pc-chip{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--accent-soft, #e6f7fb);color:var(--accent-strong, #0e7490)}.pc-chip-warn{background:#fff5e5;color:#b45309}.pc-plat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.pc-plat{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:14px 16px;border-radius:14px;cursor:pointer;text-align:left;border:1px solid var(--border);background:var(--surface);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.pc-plat:hover{border-color:var(--accent, #22a3bf)}.pc-plat.on{border-color:var(--accent, #22a3bf);background:linear-gradient(180deg,#22a3bf1a,#22a3bf05);box-shadow:0 6px 18px #0e74901a}.pc-plat-name{font-size:16px;font-weight:700;color:var(--fg-1)}.pc-plat-hint{font-size:12px;color:var(--muted);line-height:1.5}.pc-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--space-4);align-items:start}.pc-col{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.pc-col-result{position:sticky;top:14px}.pc-card{padding:0;overflow:hidden}.pc-card .card-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.pc-body{padding:14px 16px 16px}.pc-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pc-row+.pc-row{margin-top:12px}.pc-field{display:flex;flex-direction:column;gap:5px;min-width:0}.pc-label{font-size:12px;font-weight:600;color:var(--fg-2)}.pc-hint{font-size:11.5px;color:var(--muted);line-height:1.5}.pc-input-wrap{position:relative;display:flex;align-items:center}.pc-input-wrap .input{padding-left:24px;width:100%}.pc-affix{position:absolute;left:9px;font-size:12px;color:var(--muted);pointer-events:none}.pc-affix-end{left:auto;right:9px}.pc-input-wrap:has(.pc-affix-end) .input{padding-left:10px;padding-right:22px}.pc-sku{border:1px dashed var(--border);border-radius:12px;padding:10px 12px}.pc-sku+.pc-sku{margin-top:10px}.pc-sku-head{display:flex;align-items:center;gap:8px}.pc-sku-head .input{flex:1}.pc-icon-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.pc-icon-btn:disabled{opacity:.4;cursor:not-allowed}.pc-sku-costs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.pc-numcell{display:flex;flex-direction:column;gap:4px;min-width:0}.pc-numcell .pc-label{font-size:11px}.pc-fee-title{font-size:12px;font-weight:700;color:var(--fg-2);margin:4px 0 6px}.pc-fee-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px dashed rgba(0,0,0,.05);font-size:13px}.pc-fee-name{flex:1;color:var(--fg-2)}.pc-fee-rate{font-size:12px;color:var(--muted);min-width:64px;text-align:right;display:inline-flex;align-items:center;gap:4px;justify-content:flex-end}.pc-fee-amt{min-width:76px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.pc-fee-sum{margin-top:6px;text-align:right;font-size:12px;color:var(--accent-strong, #0e7490);font-weight:700}.pc-check{display:inline-flex;align-items:center;gap:7px;flex:1;cursor:pointer}.pc-mini{width:64px!important;height:26px;padding:0 6px!important;font-size:12px}.pc-result .pc-hero{padding:6px 0 12px}.pc-hero-label{font-size:12px;color:var(--muted)}.pc-hero-value{font-size:44px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.pc-hero-sub{font-size:12px;color:var(--muted);margin-top:4px}.tone-good{color:#0f766e}.tone-mid{color:#0e7490}.tone-warn{color:#b45309}.tone-bad{color:#b91c1c}.pc-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden}.pc-switch button{border:0;background:transparent;padding:4px 12px;font-size:12px;cursor:pointer;color:var(--muted);font-weight:600}.pc-switch button.on{background:var(--accent, #22a3bf);color:#fff}.pc-res-table{min-width:0!important;width:100%;font-size:12.5px}.pc-res-table th,.pc-res-table td{padding:7px 8px}.pc-cell-sub{font-size:11px;color:var(--muted);font-weight:500}.pc-breakdown{margin-top:12px;border-top:1px solid var(--border);padding-top:8px}.pc-rec{border:1px solid var(--border);border-radius:12px;overflow:hidden}.pc-rec+.pc-rec{margin-top:10px}.pc-rec-head{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:0;cursor:pointer;text-align:left;font-size:13px}.pc-rec-head:hover{background:#22a3bf0d}.pc-rec-plat{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accent-soft, #e6f7fb);color:var(--accent-strong, #0e7490)}.pc-rec-name{font-weight:600}.pc-rec-store,.pc-rec-meta{font-size:12px;color:var(--muted)}.pc-rec-margin{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}.pc-rec-actions{display:inline-flex;gap:10px}.pc-link{font-size:12px;color:var(--accent-strong, #0e7490);font-weight:600;cursor:pointer}.pc-rec-body{padding:10px 12px 14px;border-top:1px solid var(--border);background:#00000003}.pc-rec-prices{font-size:12px;color:var(--muted);margin-bottom:8px}@media (max-width: 1100px){.pc-grid{grid-template-columns:minmax(0,1fr)}.pc-col-result{position:static}.pc-plat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 720px){.pc-plat-grid,.pc-row{grid-template-columns:minmax(0,1fr)}.pc-sku-costs{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-hero-value{font-size:36px}.pc-rec-head{flex-wrap:wrap}.pc-rec-margin{margin-left:0}}.pc-need-bar{margin-top:10px;padding:8px 12px;border-radius:10px;background:#fff8e6;color:#92400e;font-size:12.5px;font-weight:600}.pc-hero-amount{margin-top:6px;font-size:13px;color:var(--fg-2)}.pc-hero-amount b{font-size:18px;font-variant-numeric:tabular-nums;margin-left:2px}.pc-sku-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}@media (max-width: 720px){.pc-sku-prices{grid-template-columns:repeat(2,minmax(0,1fr))}}.pc-stack{display:flex;flex-direction:column;gap:var(--space-4)}.pc-sku-table{--sku-cols: 26px minmax(110px, 1.6fr) repeat(3, minmax(74px, 1fr)) repeat(4, minmax(70px, .95fr)) 32px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.pc-sku-groups,.pc-sku-head-row,.pc-sku-tr{display:grid;grid-template-columns:var(--sku-cols);gap:10px;align-items:center}.pc-sku-groups{padding:8px 12px 0;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.2px}.pc-grp-name{grid-column:2}.pc-grp-price{grid-column:3 / 6;color:var(--accent, #0c7f78)}.pc-grp-cost{grid-column:6 / 10}.pc-sku-head-row{padding:4px 12px 8px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg-soft, #f8fafc)}.pc-sku-tr{padding:8px 12px;border-bottom:1px dashed var(--border)}.pc-sku-tr:last-of-type{border-bottom:0}.pc-sku-tr.alt{background:#fbfcfd}.pc-sku-tr:hover{background:#f4f8fa}.pc-sku-tr>:nth-child(6),.pc-sku-head-row>:nth-child(6){border-left:1px dashed var(--border);padding-left:10px}.pc-idx{font-size:11px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}.pc-cell{display:flex;align-items:center;min-width:0}.pc-cell-lab{display:none}.pc-cell .input{width:100%;min-width:0;height:32px;font-size:13px}.pc-cell-name .input{font-weight:500}.pc-row-del{justify-self:end}@media (max-width: 760px){.pc-sku-table{border:0;border-radius:0}.pc-sku-groups,.pc-sku-head-row{display:none}.pc-sku-tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px;gap:8px;padding:12px;margin-bottom:10px;border:1px solid var(--border);border-radius:12px;background:#fff}.pc-sku-tr.alt{background:#fff}.pc-sku-tr>:nth-child(6){border-left:0;padding-left:0}.pc-idx{display:none}.pc-cell{flex-direction:column;align-items:stretch;gap:3px}.pc-cell-lab{display:block;font-size:11px;color:var(--muted)}.pc-cell-name{grid-column:1 / 3}.pc-row-del{grid-column:3;grid-row:1;align-self:center}}.pc-sku-tr>:nth-child(6),.pc-sku-head-row>:nth-child(6){border-left:1px solid rgba(15,23,42,.12)}@media (max-width: 760px){.pc-sku-tr{position:relative;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 12px 14px}.pc-cell-name{grid-column:1 / -1;margin-right:40px}.pc-row-del{position:absolute;top:10px;right:10px;grid-column:auto;grid-row:auto}.pc-sku-tr>:nth-child(6){border-left:0;padding-left:0}.pc-cell .input{height:34px}.pc-res-table th,.pc-res-table td{padding:6px 5px;font-size:11.5px}.pc-res-table th{white-space:nowrap}}@media (max-width: 360px){.pc-sku-tr{grid-template-columns:repeat(2,minmax(0,1fr))}}.pc-sku-tr>:nth-child(6),.pc-sku-head-row>:nth-child(6){border-left:2px solid rgba(15,23,42,.1)}.pc-head-row{display:flex;align-items:flex-end;gap:14px}.pc-img-cell{display:flex;flex-direction:column;gap:5px;align-items:center}.pc-thumb{width:78px;height:78px;border-radius:10px;border:1px dashed var(--border);background:#f8fafc;color:var(--muted);cursor:pointer;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;padding:0}.pc-thumb.has-img{border-style:solid}.pc-thumb:hover{border-color:#b9e3dd}.pc-img-ops{display:flex;gap:8px;font-size:12px}.pc-link{background:none;border:0;padding:0;color:#0c7f78;font-size:12px;cursor:pointer}.pc-link-danger{color:#c0392b}.pc-field-grow{flex:1 1 auto;min-width:0}.pc-field-store{flex:0 0 200px;max-width:200px}.pc-rec-thumb{width:26px;height:26px;border-radius:6px;object-fit:cover;flex:0 0 26px}.pc-rec-thumb-empty{display:inline-flex;align-items:center;justify-content:center;background:#f1f5f9;color:var(--muted)}.pc-zoom-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f172ab8;display:flex;align-items:center;justify-content:center;padding:24px}.pc-zoom-img{max-width:92vw;max-height:88vh;border-radius:10px;background:#fff;box-shadow:0 24px 60px #00000059}.pc-zoom-close{position:absolute;top:18px;right:22px;width:36px;height:36px;border-radius:50%;border:0;background:#ffffff29;color:#fff;font-size:22px;line-height:1;cursor:pointer}@media (max-width: 720px){.pc-head-row{flex-wrap:wrap;align-items:flex-start}.pc-field-grow{flex:1 1 100%}.pc-field-store{flex:1 1 100%;max-width:none}}.pc-rec-metrics{display:inline-flex;align-items:center;gap:14px;margin-left:auto}.pc-rec-metric{display:inline-flex;align-items:baseline;gap:5px;font-size:11.5px;color:var(--muted);white-space:nowrap}.pc-rec-metric b{font-size:13px;font-variant-numeric:tabular-nums}.pc-rec-actions{margin-left:12px}@media (max-width: 760px){.pc-rec-metrics{margin-left:0;gap:10px;flex-wrap:wrap}.pc-rec-actions{margin-left:auto}}.pc-head-row{display:grid;grid-template-columns:72px minmax(0,1fr) 220px;gap:16px;align-items:end}.pc-thumb-wrap{position:relative;width:72px;height:72px}.pc-thumb{width:72px;height:72px;border-radius:12px;border:1px dashed var(--border);background:#f8fafc;color:var(--muted);cursor:pointer;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;padding:0;position:relative;transition:border-color .15s,box-shadow .15s}.pc-thumb.has-img{border-style:solid;border-color:#0f172a14}.pc-thumb img{width:100%;height:100%;object-fit:cover;display:block}.pc-thumb:hover{border-color:#0c7f78;box-shadow:0 0 0 3px #0c7f781a}.pc-thumb-empty{display:inline-flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;line-height:1.2;color:var(--muted)}.pc-thumb-mask{position:absolute;inset:auto 0 0 0;padding:3px 0;font-size:10px;color:#fff;background:#0f172a8c;opacity:0;transition:opacity .15s}.pc-thumb:hover .pc-thumb-mask{opacity:1}.pc-thumb-tool{position:absolute;top:-7px;right:-7px;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--fg-2);font-size:11px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0f172a1f}.pc-thumb-tool-del{right:auto;left:-7px;color:#c0392b}.pc-thumb-tool:hover{border-color:#0c7f78;color:#0c7f78}.pc-field-store{max-width:220px}@media (max-width: 900px){.pc-head-row{grid-template-columns:72px minmax(0,1fr)}.pc-field-store{grid-column:1 / -1;max-width:none}}@media (max-width: 560px){.pc-head-row{grid-template-columns:minmax(0,1fr)}.pc-field-store{grid-column:auto}}.pc-sku-table{--sku-cols: 26px minmax(110px, 1.35fr) repeat(3, minmax(70px, 1fr)) repeat(7, minmax(62px, .92fr)) 32px}.pc-sku-costs,.pc-sku-prices{display:contents}.pc-match-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border:1px solid #b9e3dd;border-radius:10px;background:#f2fbf9;font-size:12.5px}.pc-match-ok{padding:2px 8px;border-radius:999px;background:#0c7f78;color:#fff;font-size:11px;font-weight:600}.pc-match-meta{color:var(--muted);font-variant-numeric:tabular-nums}.pc-match-bar .btn{margin-left:auto}.pc-grid{grid-template-columns:minmax(0,1fr) minmax(560px,1.35fr)}@media (max-width: 1180px){.pc-grid{grid-template-columns:minmax(0,1fr)}}.pc-res-caption{font-size:11.5px;color:var(--muted);margin:2px 0 6px;text-align:right}.pc-res-table th,.pc-res-table td{white-space:nowrap}@media (max-width: 760px){.pc-sku-table{--sku-cols: repeat(3, minmax(0, 1fr))}.pc-sku-prices,.pc-sku-costs{display:grid;grid-column:1 / -1}.pc-sku-prices{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pc-sku-costs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}}@media (max-width: 1180px){.pc-sku-table,.pc-result .pc-body,.pc-res-table{overflow-x:auto}}@media (max-width: 760px){.pc-sku-table{overflow-x:auto}.pc-sku-tr{min-width:0}.pc-result .pc-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.pc-res-table{min-width:520px}}.fc-page{display:flex;flex-direction:column;gap:var(--space-4)}.fc-actions{display:flex;gap:8px;flex-wrap:wrap}.fc-head-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.fc-card{padding:0;overflow:hidden}.fc-card .card-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.fc-body{padding:12px 16px 14px}.fc-step-hint{font-size:12px;color:var(--muted)}.fc-hint{font-size:12px;color:var(--muted);line-height:1.6}.fc-muted{color:var(--muted)}.fc-danger{color:#c0392b}.fc-rate-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fc-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;background:#f1f5f9;color:var(--fg-2);border:1px solid var(--border)}.fc-chip-ok{background:#e8f6f3;color:#0c7f78;border-color:#bde5e0}.fc-paste{margin-top:12px}.fc-textarea{width:100%;min-height:108px;resize:vertical;font-family:inherit;font-size:13px;line-height:1.6}.fc-paste-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.fc-rate-table-wrap{margin-top:12px;max-height:320px;overflow:auto;border:1px solid var(--border);border-radius:10px}.fc-table{width:100%;font-size:12.5px}.fc-table thead th{position:sticky;top:0;background:var(--bg-soft, #f8fafc);z-index:1}.fc-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.fc-form-second{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.fc-field{display:flex;flex-direction:column;gap:5px;min-width:0}.fc-field-wide{grid-column:span 4}.fc-label{font-size:12px;color:var(--muted)}.fc-static{display:flex;align-items:center;justify-content:space-between;gap:8px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:#fafbfc}.fc-static-solo{justify-content:flex-start;font-variant-numeric:tabular-nums;color:var(--fg-2)}.fc-static-val{font-size:13px;font-variant-numeric:tabular-nums;color:var(--fg-2)}.fc-check{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--fg-2);cursor:pointer}.fc-field-charge .fc-charge{height:34px;display:flex;align-items:center;justify-content:flex-end;padding:0 10px;border-radius:8px;background:#e8f6f3;color:#0b6b64;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.fc-empty{display:flex;align-items:center;gap:8px;justify-content:center;padding:26px 10px;color:var(--muted);font-size:13px}.fc-matrix-wrap{max-height:560px;overflow:auto;border:1px solid var(--border);border-radius:10px}.fc-matrix{width:100%;font-size:13px}.fc-matrix thead th{position:sticky;top:0;z-index:2;background:var(--bg-soft, #f8fafc);white-space:nowrap;font-size:12px}.fc-col-prov{position:sticky;left:0;z-index:1;background:#fff;font-weight:600}.fc-matrix thead .fc-col-prov{z-index:3;background:var(--bg-soft, #f8fafc)}.fc-matrix td.fc-col-prov{background:#fff}.fc-matrix tbody tr:nth-child(2n) td{background:#fbfcfd}.fc-matrix tbody tr:nth-child(2n) td.fc-col-prov{background:#f7f9fb}.fc-col-best{white-space:nowrap}.fc-matrix td.fc-col-best{font-size:12.5px;color:#0b6b64}.fc-best{background:#e8f6f3!important;color:#0b6b64!important;font-weight:700;box-shadow:inset 0 0 0 1px #b9e3dd}.fc-best-tag{display:inline-block;margin-left:5px;padding:0 4px;border-radius:4px;font-size:10px;font-weight:600;line-height:15px;background:#0c7f78;color:#fff;vertical-align:1px}.fc-best-flag{font-weight:700;color:#0b6b64}.fc-row-miss td{color:var(--muted)}.fc-quote-list{display:flex;flex-direction:column;gap:8px}.fc-quote{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:100%;text-align:left;cursor:pointer;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}.fc-quote:hover{border-color:#b9e3dd;background:#fbfdfd}.fc-quote-name{font-weight:600;font-size:13.5px}.fc-quote-meta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.fc-quote-low{color:#0b6b64;font-weight:600}.fc-quote-time{margin-left:auto;font-size:12px;color:var(--muted)}.fc-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0f172a61;display:flex;align-items:center;justify-content:center;padding:20px}.fc-modal{width:min(940px,96vw);max-height:88vh;background:#fff;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px #0f172a38}.fc-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.fc-modal-title{font-size:15px;font-weight:700}.fc-modal-sub{display:block;font-size:12px;color:var(--muted);margin-top:3px}.fc-modal-body{padding:12px 16px;overflow:auto}.fc-modal-body .fc-matrix{font-size:12.5px}.fc-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid var(--border)}.fc-modal-right{display:flex;gap:8px;margin-left:auto}.fc-icon-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}@media (max-width: 900px){.fc-form{grid-template-columns:repeat(2,minmax(0,1fr))}.fc-field-wide{grid-column:span 2}}@media (max-width: 640px){.fc-actions{width:100%}.fc-actions .btn{flex:1;justify-content:center}.fc-form{grid-template-columns:minmax(0,1fr)}.fc-field-wide{grid-column:span 1}.fc-quote-time{margin-left:0}.fc-modal{width:96vw}}.fc-danger-solid{background:#c0392b!important;border-color:#c0392b!important;color:#fff!important}.fc-rate-groups{display:flex;flex-direction:column;gap:12px;margin-top:12px}.fc-rate-group{border:1px solid var(--border);border-radius:10px;overflow:hidden}.fc-rate-group-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:13px}.fc-rate-group .fc-table-wrap{max-height:260px;overflow:auto;border:0;border-radius:0;margin:0}.fc-metrics{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.fc-metric{display:flex;align-items:baseline;gap:6px;font-size:12px;color:var(--muted)}.fc-metric b{font-size:15px;color:var(--fg);font-variant-numeric:tabular-nums}.fc-metric-check{align-items:center;gap:5px;cursor:pointer}.fc-chip-warn{background:#fff5ed;color:#b45309;border-color:#f6d9bf}.fc-matrix thead tr:nth-child(2) th.fc-charge{font-size:11px;color:var(--muted);font-weight:500;padding-top:0}.fc-blocked{font-size:11px}.fc-textarea{width:100%;min-height:108px;resize:vertical;font-family:inherit;font-size:13px;line-height:1.6;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}.fc-zone-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;flex-wrap:wrap}.fc-zone-title{font-size:13px;font-weight:700;display:inline-flex;align-items:baseline;gap:8px}.fc-zone-title .fc-hint{font-weight:400}.fc-zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-bottom:14px}.fc-zone{border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:#fbfdfd}.fc-zone-head{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}.fc-zone-head b{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:20px;padding:0 6px;border-radius:6px;background:#0c7f78;color:#fff;font-size:12px;font-weight:700}.fc-zone-price{font-size:13.5px;font-weight:700;color:#0b6b64;font-variant-numeric:tabular-nums}.fc-zone-head em{margin-left:auto;font-style:normal;font-size:11px;color:var(--muted)}.fc-zone-prov{font-size:12px;color:var(--fg-2);line-height:1.6}.fc-zone-tag{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;font-size:10px;line-height:15px;font-weight:600;background:#e8f6f3;color:#0b6b64;vertical-align:1px}@media (max-width: 640px){.fc-zone-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px){.fc-modal-foot{flex-wrap:wrap;gap:8px;padding:10px 12px}.fc-modal-right{width:100%;margin-left:0;justify-content:space-between}.fc-modal-right .btn{flex:1 1 0;justify-content:center}.fc-modal-foot>.btn{width:100%;justify-content:center}}.fc-matrix thead{position:sticky;top:0;z-index:4}.fc-matrix thead th{position:static}.fc-matrix thead .fc-col-prov{z-index:5}.fc-matrix thead tr:first-child th{border-bottom:0}.fc-matrix thead tr:nth-child(2) th{box-shadow:inset 0 -1px 0 var(--border)}.fc-act-col{width:118px;white-space:nowrap;text-align:right}.fc-act-col .btn{padding:2px 8px;font-size:12px;margin-left:4px}.fc-link{background:none;border:0;padding:0 4px;color:#0c7f78;font-size:12px;cursor:pointer}.fc-link-danger{color:#c0392b}.fc-link+.fc-link{margin-left:6px}.fc-mini{height:28px;padding:0 6px;font-size:12px;min-width:64px;text-align:right}select.fc-mini{text-align:left;min-width:88px}.fc-row-editing td{background:#f6fbfa!important}.fc-dim{color:var(--muted)}.fc-rate-add{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px dashed var(--border);flex-wrap:wrap}@media (max-width: 640px){.fc-rate-group .fc-table thead th{position:static}.fc-rate-group .fc-act-col{position:sticky;right:0;background:#fff;box-shadow:-6px 0 8px -6px #0f172a2e}.fc-rate-group .fc-row-editing .fc-act-col{background:#f6fbfa}}@media (max-width: 640px){.fc-rate-group .fc-table thead th.fc-act-col{position:sticky;right:0;z-index:3;background:#f8fafc;box-shadow:-6px 0 8px -6px #0f172a2e}}.op-page{display:block}.op-desc{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.7;max-width:900px}.op-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 12px}.op-tab{height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--fg-2);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.op-tab:hover{background:var(--surface-hover)}.op-tab.on{background:var(--accent-soft);border-color:#0e749059;color:var(--accent-ink)}.op-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.op-kpi{padding:12px 14px}.op-kpi-label{font-size:12px;color:var(--muted);margin-bottom:6px}.op-kpi-value{font-size:21px;font-weight:700;letter-spacing:-.4px;font-variant-numeric:tabular-nums;line-height:1.15}.op-kpi-note{font-size:11.5px;color:var(--muted);margin-top:4px}.op-kpi.good .op-kpi-value{color:var(--accent-ink)}.op-kpi.bad .op-kpi-value{color:var(--danger-text)}.op-kpi.warn .op-kpi-value{color:var(--warn)}.op-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.op-toolbar .select,.op-toolbar .input{height:34px}.op-spacer{flex:1 1 auto}.op-table td,.op-table th{padding:8px 10px;font-size:12.5px}.op-table td.num,.op-table th.num{text-align:right;font-variant-numeric:tabular-nums}.op-table .op-input{height:30px;width:84px;text-align:right;padding:0 6px;font-size:12.5px}.op-table .op-input.wide{width:110px}.op-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:11.5px;font-weight:600}.op-tag.good{background:var(--success-bg);color:var(--success-text)}.op-tag.warn{background:var(--warn-bg);color:var(--warn)}.op-tag.bad{background:var(--danger-bg);color:var(--danger-text)}.op-tag.mute{background:var(--surface-muted);color:var(--muted)}.op-barcell{display:flex;align-items:center;gap:8px;min-width:130px}.op-barcell .track{flex:1;height:6px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.op-barcell .track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0e7490,#1496b6)}.op-barcell.warn .track i{background:linear-gradient(90deg,#b45309,#d9a05b)}.op-barcell.bad .track i{background:linear-gradient(90deg,#b01220,#e06a70)}.op-note{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;color:var(--muted);line-height:1.7;margin:10px 2px 4px}.op-note svg{flex:none;margin-top:2px}.op-form-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end}.op-form-row .field{margin-bottom:0}.op-form-row .field-label{font-size:12px}.op-check{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px}.op-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}@media (max-width: 1200px){.op-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.op-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 600px){.op-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.op-form-row{grid-template-columns:minmax(0,1fr)}.op-kpi-value{font-size:18px}}.op-table td.op-neg{color:var(--danger-text);font-weight:600}.op-table tr.op-missing td{background:#fffdf5}.om-store{margin-bottom:14px}.om-table{min-width:980px}.om-table th{white-space:nowrap}.om-prod{display:inline-flex;align-items:center;gap:8px;min-width:0}.om-prod-name{font-weight:500}
