:root{--brand-50:#eef4ff;--brand-100:#dbe6ff;--brand-200:#bed0ff;--brand-400:#6b8ff5;--brand-500:#3b6ef0;--brand-600:#2563eb;--brand-700:#1d4ed8;--brand-800:#1e40af;--ink-900:#0f172a;--ink-800:#1e293b;--ink-700:#334155;--ink-600:#475569;--ink-500:#64748b;--ink-400:#94a3b8;--ink-300:#cbd5e1;--ink-200:#e2e8f0;--ink-100:#f1f5f9;--ink-50:#f8fafc;--white:#fff;--success-50:#ecfdf5;--success-100:#d1fae5;--success-600:#059669;--success-700:#047857;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-600:#d97706;--warning-700:#b45309;--danger-50:#fef2f2;--danger-100:#fee2e2;--danger-600:#dc2626;--danger-700:#b91c1c;--info-50:#f0f9ff;--info-100:#e0f2fe;--info-600:#0284c7;--violet-50:#f5f3ff;--violet-600:#7c3aed;--violet-100:#ede9fe;--teal-50:#f0fdfa;--teal-600:#0d9488;--teal-100:#ccfbf1;--sidebar-w:236px;--sidebar-w-collapsed:64px;--header-h:56px;--radius-sm:6px;--radius:9px;--radius-lg:14px;--radius-full:999px;--shadow-xs:0 1px 2px #0f172a0d;--shadow-sm:0 1px 3px #0f172a14, 0 1px 2px #0f172a0a;--shadow:0 4px 14px #0f172a14;--shadow-lg:0 12px 36px #0f172a24;--shadow-xl:0 24px 60px #0f172a33;--border:#e5e9f0;--border-strong:#d5dbe6;--bg-body:#f4f6fa;--bg-card:#fff;--bg-subtle:#f8fafc;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--dur:.18s;--ease:cubic-bezier(.4,0,.2,1)}*{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);color:var(--ink-800);background:var(--bg-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:13px;line-height:1.55}h1,h2,h3,h4,h5{color:var(--ink-900);margin:0;font-weight:600}a{color:var(--brand-600);text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#cfd7e3 padding-box padding-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#b3bece padding-box padding-box}::-webkit-scrollbar-track{background:0 0}.app{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);transition:width var(--dur) var(--ease), flex-basis var(--dur) var(--ease);z-index:30;background:linear-gradient(178deg,#101b33 0%,#0d1730 60%,#0b1428 100%);flex-direction:column;display:flex;position:relative}.sidebar.collapsed{width:var(--sidebar-w-collapsed);flex-basis:var(--sidebar-w-collapsed)}.brand{min-height:var(--header-h);border-bottom:1px solid #ffffff12;align-items:center;gap:10px;padding:16px 16px 14px;display:flex}.brand-mark{background:#fff;border-radius:10px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 2px 8px #00000059}.brand-mark img{object-fit:contain;width:30px;height:30px}.brand-text{white-space:nowrap;overflow:hidden}.brand-text b{color:#fff;letter-spacing:.5px;font-size:15px;font-weight:700;display:block}.brand-text span{color:#7f9ac0;letter-spacing:.6px;font-size:10.5px;display:block}.sidebar.collapsed .brand-text{display:none}.nav{flex:1;padding:10px 8px 18px;overflow-y:auto}.nav::-webkit-scrollbar{width:6px}.nav::-webkit-scrollbar-thumb{background:#ffffff24}.nav-group-title{color:#5f7799;letter-spacing:1.1px;text-transform:uppercase;padding:14px 10px 6px;font-size:10.5px;font-weight:600}.sidebar.collapsed .nav-group-title{text-align:center;padding:10px 0 4px;font-size:9px;overflow:hidden}.nav-item{color:#b3c3da;cursor:pointer;transition:background var(--dur), color var(--dur);white-space:nowrap;border-radius:8px;align-items:center;gap:10px;margin:1px 0;padding:8.5px 10px;font-size:13px;display:flex;position:relative}.nav-item:hover{color:#e8eefb;background:#ffffff0f}.nav-item.active{color:#fff;background:linear-gradient(90deg,#3b6ff0f2,#2563ebb8);font-weight:500;box-shadow:0 3px 12px #2563eb59}.nav-item .ic{opacity:.92;flex:0 0 17px;width:17px;height:17px}.nav-item .badge{color:#dbe6f7;border-radius:var(--radius-full);background:#ffffff24;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:600}.nav-item.active .badge{background:#ffffff42}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.sidebar.collapsed .nav-item .label,.sidebar.collapsed .nav-item .badge{display:none}.sidebar-foot{border-top:1px solid #ffffff12;padding:10px}.collapse-btn{color:#9fb3cd;cursor:pointer;background:#ffffff0f;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;padding:7px;display:flex}.collapse-btn:hover{color:#fff;background:#ffffff1f}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--header-h);flex:0 0 var(--header-h);background:var(--bg-card);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:14px;padding:0 18px;display:flex;position:relative}.crumb{align-items:center;gap:7px;min-width:0;display:flex}.crumb h2{letter-spacing:.2px;font-size:16px}.crumb .sub{color:var(--ink-400);border-left:1px solid var(--border-strong);padding-left:8px;font-size:12px}.topbar-spacer{flex:1}.topbar-search{background:var(--ink-100);border-radius:var(--radius-full);width:260px;transition:border-color var(--dur), background var(--dur);border:1px solid #0000;align-items:center;gap:7px;padding:6px 12px;display:flex}.topbar-search:focus-within{border-color:var(--brand-400);box-shadow:0 0 0 3px var(--brand-50);background:#fff}.topbar-search input{width:100%;color:var(--ink-800);background:0 0;border:0;outline:none}.topbar-search svg{width:15px;height:15px;color:var(--ink-400);flex:0 0 15px}.user-chip{border-radius:var(--radius-full);cursor:default;align-items:center;gap:8px;padding:4px 10px 4px 4px;display:flex}.user-chip:hover{background:var(--ink-100)}.avatar{background:linear-gradient(135deg, var(--brand-500), var(--teal-600));color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:11.5px;font-weight:600;display:grid}.user-chip .who b{font-size:12.5px;line-height:1.2;display:block}.user-chip .who span{color:var(--ink-400);font-size:10.5px;display:block}.content{flex:1;padding:18px;overflow:auto}.content.flush{padding:0}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);height:32px;color:var(--ink-700);cursor:pointer;white-space:nowrap;transition:all var(--dur) var(--ease);background:#fff;align-items:center;gap:6px;padding:0 13px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--brand-400);color:var(--brand-600);background:var(--brand-50)}.btn:active{transform:translateY(1px)}.btn svg{width:15px;height:15px}.btn.primary{background:linear-gradient(180deg, var(--brand-500), var(--brand-600));border-color:var(--brand-600);color:#fff;box-shadow:0 1px 3px #2563eb4d}.btn.primary:hover{background:linear-gradient(180deg, var(--brand-600), var(--brand-700));color:#fff;border-color:var(--brand-700)}.btn.danger{color:var(--danger-600);border-color:#f3c9c9}.btn.danger:hover{background:var(--danger-50);border-color:var(--danger-600);color:var(--danger-700)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--ink-100);color:var(--ink-900);border-color:#0000}.btn.sm{height:27px;padding:0 9px;font-size:12px}.btn.sm svg{width:13px;height:13px}.btn[disabled]{opacity:.5;pointer-events:none}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-left:0}.btn-group .btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.field{flex-direction:column;gap:5px;display:flex}.field>label{color:var(--ink-600);align-items:center;gap:4px;font-size:12px;font-weight:500;display:flex}.field>label .req{color:var(--danger-600)}.input,.select,.textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:32px;color:var(--ink-800);width:100%;transition:border-color var(--dur), box-shadow var(--dur);background:#fff;outline:none;padding:0 10px}.textarea{resize:vertical;height:auto;min-height:68px;padding:8px 10px;line-height:1.6}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50)}.select{appearance:none;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 7px center;background-repeat:no-repeat;background-size:15px;padding-right:26px}.input[type=number]{font-variant-numeric:tabular-nums}.err-msg{color:var(--danger-600);font-size:11.5px}.input.invalid,.select.invalid{border-color:var(--danger-600)}.switch{cursor:pointer;flex:0 0 36px;width:36px;height:20px;position:relative}.switch input{display:none}.switch i{background:var(--ink-300);transition:background var(--dur);border-radius:999px;position:absolute;inset:0}.switch i:after{content:"";width:16px;height:16px;transition:transform var(--dur);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked+i{background:var(--brand-600)}.switch input:checked+i:after{transform:translate(16px)}.tag{border-radius:var(--radius-full);white-space:nowrap;background:var(--ink-100);color:var(--ink-600);border:1px solid #0000;align-items:center;gap:4px;padding:1px 8px;font-size:11.5px;font-weight:500;line-height:18px;display:inline-flex}.tag:before{content:"";opacity:.75;background:currentColor;border-radius:50%;width:5px;height:5px}.tag.no-dot:before{display:none}.tag.green{background:var(--success-50);color:var(--success-700);border-color:#bfe9d5}.tag.yellow{background:var(--warning-50);color:var(--warning-700);border-color:#f2ddb0}.tag.red{background:var(--danger-50);color:var(--danger-700);border-color:#f4cccc}.tag.gray{background:var(--ink-100);color:var(--ink-500);border-color:var(--ink-200)}.tag.blue{background:var(--brand-50);color:var(--brand-700);border-color:#cddffd}.tag.violet{background:var(--violet-50);color:var(--violet-600);border-color:#ddd6fe}.tag.teal{background:var(--teal-50);color:var(--teal-600);border-color:#b8efe6}.tag.purple{color:#a21caf;background:#fdf4ff;border-color:#f5d0fe}.chip{border-radius:var(--radius-full);background:var(--ink-100);color:var(--ink-600);cursor:pointer;transition:all var(--dur);border:1px solid #0000;align-items:center;gap:5px;padding:3px 9px;font-size:12px;display:inline-flex}.chip:hover{background:var(--brand-50);color:var(--brand-700)}.chip.active{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.muted{color:var(--ink-500)}.tiny{font-size:11.5px}.text-right{text-align:right}.text-center{text-align:center}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.card-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 15px;display:flex}.card-head h3{font-size:13.5px}.card-head .spacer{flex:1}.card-body{padding:15px}.card-body.flush{padding:0}.grid{gap:14px;display:grid}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:14px 15px;position:relative;overflow:hidden}.kpi:after{content:"";background:var(--brand-50);opacity:.85;border-radius:50%;width:64px;height:64px;position:absolute;top:-18px;right:-18px}.kpi .k-top{color:var(--ink-500);align-items:center;gap:8px;font-size:12px;display:flex;position:relative}.kpi .k-ic{background:var(--brand-50);width:26px;height:26px;color:var(--brand-600);border-radius:8px;place-items:center;display:grid}.kpi .k-ic svg{width:15px;height:15px}.kpi .k-val{color:var(--ink-900);letter-spacing:-.4px;font-variant-numeric:tabular-nums;margin-top:9px;font-size:23px;font-weight:700;position:relative}.kpi .k-val small{color:var(--ink-500);margin-left:3px;font-size:12px;font-weight:500}.kpi .k-sub{color:var(--ink-400);align-items:center;gap:6px;margin-top:5px;font-size:11.5px;display:flex;position:relative}.kpi.green .k-ic{background:var(--success-50);color:var(--success-600)}.kpi.green:after{background:var(--success-50)}.kpi.amber .k-ic{background:var(--warning-50);color:var(--warning-600)}.kpi.amber:after{background:var(--warning-50)}.kpi.red .k-ic{background:var(--danger-50);color:var(--danger-600)}.kpi.red:after{background:var(--danger-50)}.kpi.violet .k-ic{background:var(--violet-50);color:var(--violet-600)}.kpi.violet:after{background:var(--violet-50)}.kpi.teal .k-ic{background:var(--teal-50);color:var(--teal-600)}.kpi.teal:after{background:var(--teal-50)}.trend-up{color:var(--danger-600)}.trend-down{color:var(--success-600)}.page{flex-direction:column;gap:14px;display:flex}.page.flush{gap:0;height:100%}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.panel-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:11px 14px;display:flex}.panel-head .spacer{flex:1}.panel-title{align-items:center;gap:8px;display:flex}.panel-title h3{font-size:13.5px}.panel-title .count{color:var(--ink-400);font-size:12px;font-weight:400}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-box{border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:240px;max-width:380px;height:32px;transition:border-color var(--dur), box-shadow var(--dur);background:#fff;flex:240px;align-items:center;gap:7px;padding:0 10px;display:flex}.search-box:focus-within{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50)}.search-box input{background:0 0;border:0;outline:none;width:100%}.search-box svg{width:15px;height:15px;color:var(--ink-400);flex:0 0 15px}.search-box .clear{cursor:pointer;color:var(--ink-400);display:none}.search-box.has-value .clear{display:block}.search-box .clear:hover{color:var(--ink-700)}.quick-filters{flex-wrap:wrap;align-items:center;gap:6px;padding:0 14px 10px;display:flex}.quick-filters:empty{display:none}.filter-panel{border-bottom:1px solid var(--border);background:var(--bg-subtle);padding:12px 14px;display:none}.filter-panel.open{display:block}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.filter-row .and-or{color:var(--ink-400);text-align:center;flex:0 0 34px;width:34px;font-size:11.5px}.filter-row .f-field{width:156px}.filter-row .f-op{width:116px}.filter-row .f-val{flex:1;align-items:center;gap:6px;min-width:150px;display:flex}.filter-row .f-val .input,.filter-row .f-val .select{min-width:90px}.filter-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;padding-left:42px;display:flex}.filter-hint{color:var(--ink-400);font-size:11.5px}.active-filters{flex-wrap:wrap;align-items:center;gap:6px;padding:0 14px 10px;display:flex}.filter-tag{background:var(--brand-50);color:var(--brand-700);border-radius:var(--radius-full);border:1px solid #cddffd;align-items:center;gap:6px;padding:2px 4px 2px 10px;font-size:11.5px;display:inline-flex}.filter-tag b{font-weight:600}.filter-tag .x{cursor:pointer;width:16px;height:16px;color:var(--brand-500);border-radius:50%;place-items:center;display:grid}.filter-tag .x:hover{background:var(--brand-100);color:var(--brand-800)}.table-wrap{max-height:calc(100vh - 260px);position:relative;overflow:auto}.table-wrap.fullscreen{max-height:calc(100vh - 120px)}table.grid-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12.5px}table.grid-table th,table.grid-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;background:#fff;height:40px;padding:0 10px}table.grid-table.dense th,table.grid-table.dense td{height:30px;padding:0 8px;font-size:12px}table.grid-table.comfy th,table.grid-table.comfy td{height:50px}table.grid-table thead th{z-index:5;color:var(--ink-600);white-space:nowrap;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-strong);background:#f7f9fc;font-size:12px;font-weight:600;position:sticky;top:0}table.grid-table thead th.sortable{cursor:pointer}table.grid-table thead th.sortable:hover{color:var(--brand-700);background:#eef2f9}table.grid-table thead th .th-in{align-items:center;gap:5px;display:flex}table.grid-table thead th .sort-ic{opacity:.34;flex-direction:column;gap:0;display:inline-flex}table.grid-table thead th .sort-ic svg{width:9px;height:9px;margin:-1px 0;display:block}table.grid-table thead th.sorted{color:var(--brand-700);background:#eaf1ff}table.grid-table thead th.sorted .sort-ic{opacity:1}table.grid-table thead th .sort-idx{background:var(--brand-600);color:#fff;border-radius:50%;place-items:center;width:12px;height:12px;margin-left:2px;font-size:9px;display:grid;position:absolute}table.grid-table tbody tr:hover td{background:#f8fbff}table.grid-table tbody tr.selected td{background:var(--brand-50)}table.grid-table tbody tr:last-child td{border-bottom:0}table.grid-table td.col-actions,table.grid-table th.col-actions{z-index:4;background:#fff;position:sticky;right:0;box-shadow:-6px 0 8px -6px #0f172a24}table.grid-table thead th.col-actions{z-index:6;background:#f7f9fc}table.grid-table tbody tr:hover td.col-actions{background:#f8fbff}table.grid-table tbody tr.selected td.col-actions{background:var(--brand-50)}table.grid-table th.col-check,table.grid-table td.col-check{z-index:4;text-align:center;background:#fff;width:40px;min-width:40px;position:sticky;left:0}table.grid-table thead th.col-check{z-index:6;background:#f7f9fc}table.grid-table tbody tr:hover td.col-check{background:#f8fbff}table.grid-table tbody tr.selected td.col-check{background:var(--brand-50)}table.grid-table td.col-seq{color:var(--ink-400);font-variant-numeric:tabular-nums}.row-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:2px;display:flex}.icon-btn{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--ink-500);cursor:pointer;transition:all var(--dur);background:0 0;border:0;place-items:center;display:grid}.icon-btn:hover{background:var(--brand-50);color:var(--brand-600)}.icon-btn.danger:hover{background:var(--danger-50);color:var(--danger-600)}.icon-btn svg{width:15px;height:15px}.cell-main{color:var(--ink-900);font-weight:500}.cell-sub{color:var(--ink-400);margin-top:1px;font-size:11px}.cell-stack{flex-direction:column;justify-content:center;padding:4px 0;line-height:1.35;display:flex}.cell-tags{flex-wrap:wrap;gap:4px;display:flex}.bar-cell{align-items:center;gap:7px;display:flex}.bar-cell .bar{background:var(--ink-100);border-radius:3px;flex:1;min-width:40px;height:5px;overflow:hidden}.bar-cell .bar i{background:linear-gradient(90deg, var(--brand-400), var(--brand-600));border-radius:3px;height:100%;display:block}.checkbox{width:15px;height:15px;accent-color:var(--brand-600);cursor:pointer;vertical-align:middle}.col-resizer{cursor:col-resize;width:6px;position:absolute;top:0;bottom:0;right:0}.col-resizer:hover{background:var(--brand-200)}th{position:relative}.empty{text-align:center;color:var(--ink-400);padding:54px 20px}.empty .e-ic{background:var(--ink-100);width:54px;height:54px;color:var(--ink-300);border-radius:16px;place-items:center;margin:0 auto 12px;display:grid}.empty .e-ic svg{width:26px;height:26px}.empty b{color:var(--ink-600);margin-bottom:3px;font-size:13.5px;display:block}.skeleton-row td{background:#fff}.sk{background:linear-gradient(90deg,#eef2f7 25%,#f7f9fc 37%,#eef2f7 63%) 0 0/400% 100%;border-radius:4px;height:11px;animation:1.3s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.spinner{border:2px solid var(--brand-100);border-top-color:var(--brand-600);border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pager{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:11px 14px;display:flex}.pager .p-info{color:var(--ink-500);font-size:12px}.pager .spacer{flex:1}.pager .p-btns{align-items:center;gap:4px;display:flex}.page-btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);min-width:28px;height:28px;color:var(--ink-600);cursor:pointer;font-variant-numeric:tabular-nums;transition:all var(--dur);background:#fff;place-items:center;padding:0 8px;font-size:12.5px;display:grid}.page-btn:hover{border-color:var(--brand-400);color:var(--brand-600)}.page-btn.active{background:var(--brand-600);border-color:var(--brand-600);color:#fff;font-weight:600}.page-btn[disabled]{opacity:.45;pointer-events:none}.page-btn svg{width:14px;height:14px}.popover{z-index:200;border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:190px;animation:pop .13s var(--ease);background:#fff;padding:8px;position:absolute}@keyframes pop{0%{opacity:0;transform:translateY(-4px)scale(.985)}}.popover .po-title{color:var(--ink-400);border-bottom:1px solid var(--border);align-items:center;margin-bottom:5px;padding:4px 8px 7px;font-size:11.5px;display:flex}.popover .po-title .spacer{flex:1}.popover .po-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-700);align-items:center;gap:8px;padding:5.5px 8px;font-size:12.5px;display:flex}.popover .po-item:hover{background:var(--brand-50);color:var(--brand-700)}.popover .po-item.on{color:var(--brand-700);font-weight:500}.popover .po-item svg{width:14px;height:14px}.popover .po-sep{background:var(--border);height:1px;margin:5px 0}.col-list{max-height:min(60vh,560px);overflow:auto}.col-item{border-radius:var(--radius-sm);align-items:center;gap:8px;padding:4px 6px;display:flex}.col-item:hover{background:var(--ink-50)}.col-item.drag-over{box-shadow:inset 0 2px 0 var(--brand-500)}.col-item .drag{cursor:grab;color:var(--ink-300);display:flex}.col-item .drag:active{cursor:grabbing}.col-item[draggable=false] .drag{opacity:.35;cursor:not-allowed}.col-search{margin:0 0 6px}.col-empty{text-align:center;padding:10px 6px}.col-item .drag svg{width:13px;height:13px}.col-item label{cursor:pointer;flex:1;align-items:center;gap:7px;font-size:12.5px;display:flex}.col-item .lock{color:var(--ink-300);font-size:10.5px}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:300;animation:fade .16s var(--ease);background:#0f172a6b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:min(720px,96vw);max-height:90vh;animation:rise .2s var(--ease);background:#fff;flex-direction:column;display:flex}.modal.wide{width:min(940px,96vw)}.modal.narrow{width:min(440px,96vw)}@keyframes rise{0%{opacity:0;transform:translateY(14px)scale(.985)}}.modal-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:15px 18px;display:flex}.modal-head h3{font-size:15px}.modal-head .spacer{flex:1}.modal-body{padding:18px;overflow:auto}.modal-foot{border-top:1px solid var(--border);background:var(--bg-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;gap:9px;padding:13px 18px;display:flex}.close-x{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--ink-400);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.close-x:hover{background:var(--ink-100);color:var(--ink-800)}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px 16px;display:grid}.form-grid .span-2{grid-column:span 2}.form-grid .span-3{grid-column:span 3}.form-section{grid-column:1/-1;align-items:center;gap:9px;margin:8px 0 -2px;display:flex}.form-section:first-child{margin-top:0}.form-section b{color:var(--ink-800);font-size:12.5px}.form-section .line{background:var(--border);flex:1;height:1px}.form-section .ic{background:var(--brand-50);width:22px;height:22px;color:var(--brand-600);border-radius:7px;place-items:center;display:grid}.form-section .ic svg{width:13px;height:13px}.form-note{background:var(--info-50);color:#075985;border-radius:var(--radius-sm);border:1px solid #cfe8fb;grid-column:1/-1;gap:7px;padding:8px 11px;font-size:12px;display:flex}.form-note svg{flex:0 0 15px;width:15px;height:15px;margin-top:1px}.drawer-overlay{z-index:300;animation:fade .16s var(--ease);background:#0f172a5c;position:fixed;inset:0}.drawer{background:var(--bg-body);z-index:301;width:min(880px,94vw);box-shadow:var(--shadow-xl);animation:slideIn .24s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer.wide{width:min(1060px,96vw)}@keyframes slideIn{0%{opacity:.4;transform:translate(30px)}}.drawer-head{border-bottom:1px solid var(--border);background:#fff;align-items:flex-start;gap:12px;padding:14px 18px;display:flex}.drawer-head .d-title{flex:1;min-width:0}.drawer-head h3{flex-wrap:wrap;align-items:center;gap:9px;font-size:16px;display:flex}.drawer-head .d-sub{color:var(--ink-500);flex-wrap:wrap;gap:12px;margin-top:4px;font-size:12px;display:flex}.drawer-head .d-sub span{align-items:center;gap:4px;display:inline-flex}.drawer-head .d-sub svg{width:13px;height:13px;color:var(--ink-400)}.drawer-body{flex:1;padding:16px 18px 30px;overflow:auto}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:15px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--ink-500);white-space:nowrap;transition:all var(--dur);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-weight:500;display:inline-flex}.tab:hover{color:var(--brand-600)}.tab.active{color:var(--brand-700);border-bottom-color:var(--brand-600)}.tab .n{background:var(--ink-100);color:var(--ink-500);border-radius:var(--radius-full);padding:0 6px;font-size:10.5px;font-weight:600}.tab.active .n{background:var(--brand-100);color:var(--brand-700)}.desc-grid{border:1px solid var(--border);border-radius:var(--radius);background:#fff;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0;display:grid;overflow:hidden}.desc-item{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:10px 13px}.desc-item .k{color:var(--ink-400);margin-bottom:3px;font-size:11.5px}.desc-item .v{color:var(--ink-900);word-break:break-all;font-weight:500}.desc-item.span-all{grid-column:1/-1}.mini-table{border-collapse:collapse;background:#fff;width:100%;font-size:12.5px}.mini-table th{color:var(--ink-600);text-align:left;border-bottom:1px solid var(--border-strong);white-space:nowrap;background:#f7f9fc;padding:8px 10px;font-size:11.5px;font-weight:600}.mini-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.mini-table tbody tr:hover td{background:#f8fbff}.mini-table .act{text-align:right;white-space:nowrap}.inline-rows-scroll{border:1px solid var(--border,#e5e7eb);border-radius:8px;max-height:420px;overflow:auto}.inline-rows-scroll .mini-table,.inline-rows-scroll table.grid-table{margin:0}table.inline-rows-wide{min-width:100%}table.inline-rows th:not(.act),table.inline-rows td:not(.act){min-width:96px}table.inline-rows-sticky thead th{z-index:3;background:#f7f9fc;position:sticky;top:0}table.inline-rows-sticky tfoot td{z-index:3;border-top:1px solid var(--border-strong,#d8dee9);box-shadow:0 -1px 0 var(--border-strong,#d8dee9);background:#f7f9fc;position:sticky;bottom:0}.timeline{padding-left:22px;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:6px;bottom:6px;left:5px}.tl-item{padding:0 0 15px;position:relative}.tl-item:before{content:"";border:2px solid var(--brand-400);background:#fff;border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-21px}.tl-item:first-child:before{border-color:var(--brand-600);background:var(--brand-600);box-shadow:0 0 0 3px var(--brand-100)}.tl-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tl-head b{font-size:12.5px}.tl-date{color:var(--ink-400);font-variant-numeric:tabular-nums;font-size:11.5px}.tl-body{color:var(--ink-600);margin-top:3px;font-size:12.5px}.tl-meta{color:var(--ink-400);flex-wrap:wrap;gap:12px;margin-top:3px;font-size:11.5px;display:flex}.todo-list{flex-direction:column;display:flex}.todo-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:9px 14px;display:flex}.todo-item:last-child{border-bottom:0}.todo-item:hover{background:var(--bg-subtle)}.todo-item .dot{background:var(--brand-500);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.todo-item .dot.warn{background:var(--warning-600)}.todo-item .dot.red{background:var(--danger-600)}.todo-item .t-main{flex:1;min-width:0}.todo-item .t-main b{font-size:12.5px;font-weight:500;display:block}.todo-item .t-main span{color:var(--ink-400);font-size:11.5px}.chart-box{position:relative}.chart-box svg{width:100%;display:block;overflow:visible}.legend{flex-wrap:wrap;gap:14px;margin-top:10px;display:flex}.legend .lg{color:var(--ink-600);align-items:center;gap:6px;font-size:12px;display:flex}.legend .lg i{border-radius:3px;width:9px;height:9px}.donut-center{text-align:center}.donut-center .dc-val{fill:var(--ink-900);font-size:21px;font-weight:700}.donut-center .dc-lb{fill:var(--ink-400);font-size:11px}.grid-line{stroke:#eef2f7;stroke-width:1px}.axis-text{fill:#94a3b8;font-size:10.5px}#toast-root{z-index:900;pointer-events:none;flex-direction:column;align-items:center;gap:9px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:dropIn .22s var(--ease);min-width:220px;color:var(--ink-800);background:#fff;align-items:center;gap:9px;padding:10px 15px;font-size:13px;display:flex}@keyframes dropIn{0%{opacity:0;transform:translateY(-12px)}}.toast .t-ic{color:#fff;border-radius:50%;flex:0 0 19px;place-items:center;width:19px;height:19px;display:grid}.toast .t-ic svg{width:12px;height:12px}.toast.success .t-ic{background:var(--success-600)}.toast.error .t-ic{background:var(--danger-600)}.toast.warn .t-ic{background:var(--warning-600)}.toast.info .t-ic{background:var(--brand-600)}.toast.out{animation:fadeOut .2s var(--ease) forwards}@keyframes fadeOut{to{opacity:0;transform:translateY(-8px)}}.section-title{align-items:center;gap:9px;margin:22px 0 12px;display:flex}.section-title:first-child{margin-top:0}.section-title h3{font-size:14px}.section-title .line{background:var(--border);flex:1;height:1px}.section-title .more{color:var(--ink-400);font-size:12px}.hint-bar{background:var(--brand-50);color:#1e40af;border-radius:var(--radius);border:1px solid #cddffd;align-items:center;gap:9px;padding:9px 13px;font-size:12.5px;display:flex}.hint-bar svg{flex:0 0 16px;width:16px;height:16px}.hint-bar .spacer{flex:1}.stats-range-tip{color:var(--ink-500);background:var(--bg-200);border:1px dashed var(--border);border-radius:var(--radius);align-items:flex-start;gap:6px;margin-top:8px;padding:8px 12px;font-size:12.5px;line-height:1.6;display:flex}.stats-range-tip b{color:var(--ink-700)}.stats-range-tip .warn{color:var(--amber-700,#b45309);font-weight:600}.stats-range-tip.is-all{background:var(--brand-50);color:#1e40af;border-style:solid;border-color:#cddffd}.stats-range-tip.is-all b{color:#1e40af}.chart-note{color:var(--ink-400);margin:8px 0 0;font-size:11.5px;line-height:1.6}.tc-remind-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 13px;font-size:12.5px;display:flex}.tc-remind-ic{color:#b45309;background:#fef3c7;border-radius:8px;flex:0 0 24px;place-items:center;width:24px;height:24px;display:grid}.tc-remind-ic svg{width:14px;height:14px}.tc-remind-lb{color:var(--ink-800);font-weight:600}.tc-remind-note{color:var(--ink-500);font-size:12px}.progress{background:var(--ink-100);border-radius:3px;height:6px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--brand-400), var(--brand-600));border-radius:3px;height:100%;display:block}.progress.green i{background:linear-gradient(90deg, #34d399, var(--success-600))}.progress.amber i{background:linear-gradient(90deg, #fbbf24, var(--warning-600))}.file-item{border:1px solid var(--border);border-radius:var(--radius);background:#fff;align-items:center;gap:11px;padding:9px 12px;display:flex}.file-item+.file-item{margin-top:7px}.file-ic{letter-spacing:.3px;border-radius:8px;flex:0 0 32px;place-items:center;width:32px;height:32px;font-size:7.5px;font-weight:700;display:grid}.file-ic.pdf{background:var(--danger-50);color:var(--danger-600)}.file-ic.xlsx{background:var(--success-50);color:var(--success-700)}.file-ic.jpg,.file-ic.png{background:var(--violet-50);color:var(--violet-600)}.file-ic.doc,.file-ic.docx{background:var(--brand-50);color:var(--brand-600)}.file-item .f-info{flex:1;min-width:0}.file-item .f-info b{font-size:12.5px;font-weight:500;display:block}.file-item .f-info span{color:var(--ink-400);font-size:11px}.checklist{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;display:grid}.checklist-item{border:1px solid var(--border);border-radius:var(--radius);background:#fff;align-items:center;gap:9px;padding:9px 12px;display:flex}.checklist-item.missing{background:var(--danger-50);border-color:#f4cccc}.checklist-item .st{color:#fff;border-radius:50%;flex:0 0 17px;place-items:center;width:17px;height:17px;display:grid}.checklist-item .st.ok{background:var(--success-600)}.checklist-item .st.no{background:var(--danger-600)}.checklist-item .st svg{width:11px;height:11px}.checklist-item .ci-main{flex:1;min-width:0}.checklist-item .ci-main b{font-size:12.5px;font-weight:500;display:block}.checklist-item .ci-main span{color:var(--ink-400);font-size:11px}.split-2{grid-template-columns:1.35fr 1fr;gap:14px;display:grid}.split-3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (width<=1180px){.split-2,.split-3{grid-template-columns:1fr}}@media (width<=900px){.form-grid{grid-template-columns:1fr}.form-grid .span-2,.form-grid .span-3{grid-column:span 1}}.table-scroll{overflow-x:auto}.child-table th:last-child,.child-table td:last-child{background:#fff;position:sticky;right:0;box-shadow:-8px 0 8px -8px #0f1c362e}.child-table thead th:last-child{z-index:6;background:var(--ink-50,#f8fafc)}.child-table td:last-child{z-index:3}:root{--el-color-primary:#2563eb;--el-color-primary-light-3:#6b8ff5;--el-color-primary-light-5:#bed0ff;--el-color-primary-light-7:#dbe6ff;--el-color-primary-light-8:#e8efff;--el-color-primary-light-9:#eef4ff;--el-color-primary-dark-2:#1d4ed8;--el-color-success:#059669;--el-color-warning:#d97706;--el-color-danger:#dc2626;--el-color-error:#dc2626;--el-color-info:#64748b;--el-text-color-primary:#1e293b;--el-text-color-regular:#475569;--el-text-color-secondary:#64748b;--el-text-color-placeholder:#94a3b8;--el-border-color:#e5e9f0;--el-border-color-light:#eef2f7;--el-border-color-lighter:#f1f5f9;--el-border-radius-base:6px;--el-font-size-base:13px;--el-font-family:var(--font)}.el-button{font-weight:500}.el-dialog__header{border-bottom:1px solid var(--border);margin-right:0;padding-bottom:14px}.el-dialog__title{color:var(--ink-900);font-size:15px;font-weight:600}.el-dialog__body{padding:18px 20px}.el-dialog__footer{border-top:1px solid var(--border);padding-top:12px}.el-drawer__header{border-bottom:1px solid var(--border);color:var(--ink-900);margin-bottom:0;padding:14px 18px;font-size:15px;font-weight:600}.el-drawer__body{padding:16px 18px 28px;overflow:auto}.el-tabs__item{font-size:13px}.vxe-table--render-default{font-family:var(--font);color:var(--ink-800);font-size:12.5px}.vxe-table--render-default .vxe-header--column{color:var(--ink-600);background:#f7f9fc;font-weight:600}.vxe-table--render-default .vxe-header--column .vxe-cell{font-size:12px}.vxe-table--render-default .vxe-body--row.row--hover,.vxe-table--render-default .vxe-body--row:hover{background:#f8fbff}.vxe-table--render-default .vxe-body--row.row--checked{background:var(--brand-50)!important}.vxe-table--border-line{border-color:var(--border)}.vxe-table .vxe-cell{padding-left:10px;padding-right:10px}.vxe-table--render-default .vxe-header--column .vxe-resizable{width:8px}.vxe-table--render-default .vxe-resizable.is--line:before{background-color:var(--brand-200)}.tc-form .el-form-item{margin-bottom:12px}.tc-form .field{min-width:0}.tc-form .el-input-number .el-input__inner{text-align:left}.kv-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 18px;margin-bottom:6px;display:grid}.kv{border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border);align-items:flex-start;gap:10px;min-width:0;padding:7px 10px;display:flex}.kv-label{color:var(--ink-500);flex:0 0 88px;font-size:12px}.kv-value{min-width:0;color:var(--ink-900);flex:1}.long-block{margin-top:12px}.long-label{color:var(--ink-500);margin-bottom:5px;font-size:12px}.long-text{white-space:pre-wrap;word-break:break-word;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-700);max-height:260px;padding:10px 12px;line-height:1.7;overflow:auto}.empty span.tiny{margin-top:4px;display:block}.spacer{flex:1}.line{background:var(--border);flex:1;height:1px}.btn.xs{height:22px;padding:0 7px;font-size:11.5px}.req{color:var(--danger-600)}.tc-page{flex-direction:column;gap:10px;height:100%;display:flex}.tc-topbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tc-navbox{align-items:center;gap:6px;display:flex}.tc-title{text-align:center;min-width:130px;color:var(--ink-900);font-size:15.5px}.tc-vswitch{border:1px solid var(--ink-200);background:#fff;border-radius:9px;display:inline-flex;overflow:hidden}.tc-vbtn{cursor:pointer;color:var(--ink-500);border:0;border-right:1px solid var(--ink-200);background:0 0;padding:6px 16px;font-size:12.5px}.tc-vbtn:last-child{border-right:0}.tc-vbtn:hover{background:var(--ink-50);color:var(--ink-900)}.tc-vbtn.on{background:var(--brand-600);color:#fff}.tc-body{flex:1;gap:12px;min-height:0;display:flex}.tc-side{flex-direction:column;flex:0 0 216px;gap:14px;width:216px;padding:2px 4px 8px 2px;display:flex;overflow-y:auto}.tc-main{border:1px solid var(--ink-200);background:#fff;border-radius:12px;flex:1;min-width:0;overflow:auto}.tc-mini{border:1px solid var(--ink-200);background:#fff;border-radius:12px;padding:10px 12px 12px}.tc-mini-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.tc-mini-head b{color:var(--ink-900);font-size:13px}.tc-mini-nav{gap:2px;display:inline-flex}.tc-mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.tc-mini-wh{color:var(--ink-500);padding:3px 0;font-size:10.5px}.tc-mini-d{cursor:pointer;color:var(--ink-900);border-radius:6px;padding:4px 0;font-size:11.5px}.tc-mini-d:hover{background:var(--ink-50)}.tc-mini-d.dim{color:#b6bfcc}.tc-mini-d.today{color:var(--brand-600);font-weight:700}.tc-mini-d.sel{background:var(--brand-600);color:#fff;font-weight:600}.tc-side-sec{border:1px solid var(--ink-200);background:#fff;border-radius:12px;padding:10px 12px 12px}.tc-side-title{color:var(--ink-500);letter-spacing:.06em;margin-bottom:8px;font-size:12px;font-weight:700}.tc-radio,.tc-check{cursor:pointer;color:var(--ink-900);border-radius:7px;align-items:center;gap:8px;padding:5px 6px;font-size:13px;display:flex}.tc-radio:hover,.tc-check:hover{background:var(--ink-50)}.tc-radio.on{background:var(--brand-50,#eff6ff);color:var(--brand-600);font-weight:600}.tc-radio input,.tc-check input{accent-color:var(--brand-600);margin:0}.tc-side-hint{color:var(--ink-500);margin-left:auto;font-size:10.5px}.tc-dot{border-radius:50%;flex:0 0 9px;width:9px;height:9px}.tc-ava{background:var(--brand-600);color:#fff;border-radius:50%;flex:0 0 20px;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.tc-ava.self{background:#0d9488}.tc-viewbar-slot:empty{display:none}.tc-viewbar{color:var(--ink-900);background:#f0fdfa;border:1px solid #99f6e4;border-radius:10px;align-items:center;gap:8px;padding:7px 12px;font-size:12.5px;display:flex}.tc-viewbar-t{flex:1;min-width:0}.tc-viewbar-t b{color:#0d9488}.tc-bg-blue{background:#2563eb}.tc-bg-teal{background:#0d9488}.tc-bg-violet{background:#7c3aed}.tc-bg-green{background:#059669}.tc-bg-amber{background:#d97706}.tc-bg-red{background:#dc2626}.tc-bg-gray{background:#94a3b8}.tc-chip{cursor:pointer;background:var(--ink-50);color:var(--ink-900);border-left:3px solid;border-radius:5px;align-items:center;gap:4px;margin:2px 0;padding:2px 6px;font-size:11.5px;line-height:1.45;display:flex}.tc-chip:hover{filter:brightness(.96)}.tc-chip-t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tc-chip.done{opacity:.55}.tc-chip.done .tc-chip-t{text-decoration:line-through}.tc-auto-ic{flex:none;display:inline-flex}.tc-chip.tc-blue{background:#eff6ff;border-left-color:#2563eb}.tc-chip.tc-teal{background:#f0fdfa;border-left-color:#0d9488}.tc-chip.tc-violet{background:#f5f3ff;border-left-color:#7c3aed}.tc-chip.tc-green{background:#ecfdf5;border-left-color:#059669}.tc-chip.tc-amber{background:#fffbeb;border-left-color:#d97706}.tc-chip.tc-red{background:#fef2f2;border-left-color:#dc2626}.tc-chip.tc-gray{background:var(--ink-50);border-left-color:#94a3b8}.tc-month{flex-direction:column;height:100%;display:flex}.tc-month-head{border-bottom:1px solid var(--ink-200);grid-template-columns:repeat(7,1fr);display:grid}.tc-wh{text-align:center;color:var(--ink-500);padding:8px 0;font-size:12px;font-weight:600}.tc-month-grid{flex:1;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;display:grid}.tc-cell{border-right:1px solid var(--ink-50);border-bottom:1px solid var(--ink-200);cursor:pointer;min-height:96px;padding:4px 5px 6px;overflow:hidden}.tc-cell:nth-child(7n){border-right:0}.tc-cell:hover{background:var(--ink-50)}.tc-cell.dim{background:#fbfbfc}.tc-cell.dim .tc-date{color:#b6bfcc}.tc-cell.today{background:#f5f9ff}.tc-date{color:var(--ink-900);text-align:center;border-radius:50%;width:22px;height:22px;margin-bottom:2px;font-size:12px;font-weight:600;line-height:22px}.tc-date.on{background:var(--brand-600);color:#fff}.tc-more{color:var(--brand-600);cursor:pointer;border-radius:4px;padding:1px 6px;font-size:11px}.tc-more:hover{background:var(--brand-50,#eff6ff)}.tc-week{min-width:780px;padding-bottom:10px}.tc-whead{z-index:6;border-bottom:1px solid var(--ink-200);background:#fff;grid-template-columns:64px repeat(7,minmax(0,1fr));display:grid;position:sticky;top:0}.tc-whead-corner{z-index:7;border-right:1px solid var(--ink-200);color:var(--ink-500);background:#fff;justify-content:flex-end;align-items:flex-end;padding:0 8px 6px;font-size:10.5px;display:flex;position:sticky;left:0}.tc-wcol-head{text-align:center;cursor:pointer;border-bottom:0;border-right:1px solid var(--ink-50);padding:8px 6px}.tc-wcol-head:hover{background:var(--ink-50)}.tc-wcol-head.today{background:#f5f9ff}.tc-wd{color:var(--ink-500);font-size:11.5px;display:block}.tc-dd{color:var(--ink-900);border-radius:50%;width:28px;height:28px;margin-top:2px;font-size:16px;font-weight:700;line-height:28px;display:inline-block}.tc-dd.on{background:var(--brand-600);color:#fff}.tc-wallday-row{border-bottom:1px solid var(--ink-200);grid-template-columns:64px repeat(7,minmax(0,1fr));display:grid}.tc-wallday-label{z-index:5;border-right:1px solid var(--ink-200);color:var(--ink-500);text-align:right;background:#fff;padding:8px;font-size:11.5px;position:sticky;left:0}.tc-wallday-cell{cursor:pointer;border-right:1px solid var(--ink-50);min-height:38px;padding:4px 5px}.tc-wallday-cell:hover{background:var(--ink-50)}.tc-wallday-cell.today{background:#f5f9ff}.tc-wbody{grid-template-columns:64px repeat(7,minmax(0,1fr));display:grid}.tc-wscale{z-index:4;border-right:1px solid var(--ink-200);background:#fff;position:sticky;left:0}.tc-wsl{box-sizing:border-box;text-align:right;height:46px;color:var(--ink-500);padding:1px 8px 0 0;font-family:ui-monospace,monospace;font-size:11.5px}.tc-wcol{border-right:1px solid var(--ink-50)}.tc-wcol.today{background:#f5f9ff}.tc-wtrack{position:relative}.tc-wcell{box-sizing:border-box;border-bottom:1px solid var(--ink-50);cursor:pointer;min-height:46px}.tc-wcell:hover{background:var(--ink-50)}.tc-track-layer{pointer-events:none;z-index:3;height:100%;position:absolute;top:0;left:0;right:0}.tc-track>.tc-track-layer{left:64px}.tc-ev{box-sizing:border-box;pointer-events:auto;cursor:pointer;background:var(--ink-50);color:var(--ink-900);border-left:3px solid;border-radius:6px;padding:2px 6px;font-size:11.5px;line-height:1.35;position:absolute;overflow:hidden}.tc-ev:hover{filter:brightness(.97)}.tc-ev-t{color:var(--ink-500);font-family:ui-monospace,monospace;font-size:10.5px}.tc-ev-b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tc-ev-m{color:var(--ink-500);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.tc-ev.done{opacity:.55}.tc-ev.done .tc-ev-b{text-decoration:line-through}.tc-ev .tc-auto-ic{vertical-align:-1px;margin-right:2px;display:inline-flex}.tc-ev.tc-blue{background:#eff6ff;border-left-color:#2563eb}.tc-ev.tc-teal{background:#f0fdfa;border-left-color:#0d9488}.tc-ev.tc-violet{background:#f5f3ff;border-left-color:#7c3aed}.tc-ev.tc-green{background:#ecfdf5;border-left-color:#059669}.tc-ev.tc-amber{background:#fffbeb;border-left-color:#d97706}.tc-ev.tc-red{background:#fef2f2;border-left-color:#dc2626}.tc-ev.tc-gray{background:var(--ink-50);border-left-color:#94a3b8}.tc-day{flex-direction:column;min-width:0;display:flex}.tc-allday{border-bottom:1px solid var(--ink-200);min-height:44px;display:flex}.tc-allday-label{color:var(--ink-500);text-align:right;border-right:1px solid var(--ink-200);flex:0 0 64px;padding:10px 8px;font-size:11.5px}.tc-allday-body{cursor:pointer;flex:1;padding:6px 10px}.tc-allday-body:hover{background:var(--ink-50)}.tc-track{position:relative}.tc-hrow{border-bottom:1px solid var(--ink-50);min-height:46px;display:flex}.tc-hlabel{z-index:4;box-sizing:border-box;color:var(--ink-500);text-align:right;border-right:1px solid var(--ink-200);background:#fff;flex:0 0 64px;padding:2px 8px 0 0;font-family:ui-monospace,monospace;font-size:11.5px;position:sticky;left:0}.tc-hcell{cursor:pointer;flex:1}.tc-hcell:hover{background:var(--ink-50)}.tc-list,.tc-list .tc-table{height:100%}.tc-table{border-collapse:collapse;background:#fff;width:100%;font-size:13px}.tc-table th{text-align:left;color:var(--ink-500);border-bottom:1px solid var(--ink-200);background:var(--ink-50);z-index:2;padding:9px 12px;font-size:12px;font-weight:600;position:sticky;top:0}.tc-table td{border-bottom:1px solid var(--ink-50);vertical-align:middle;padding:9px 12px}.tc-table td.num{text-align:right;font-variant-numeric:tabular-nums}.tc-row{cursor:pointer}.tc-row:hover{background:var(--ink-50)}.tc-row.done td{opacity:.6}.tc-ratebar{background:var(--ink-200);border-radius:5px;min-width:120px;height:8px;overflow:hidden}.tc-ratebar i{background:var(--success-600);border-radius:5px;height:100%;display:block}.tc-detail-head{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.tc-detail-title{color:var(--ink-900);margin-bottom:10px;font-size:16px;font-weight:700;line-height:1.5}.tc-detail-info{border:1px solid var(--ink-200);border-radius:10px;margin-bottom:12px;padding:6px 12px}.tc-ir{border-bottom:1px dashed var(--ink-50);gap:12px;padding:6px 0;font-size:13px;display:flex}.tc-ir:last-child{border-bottom:0}.tc-ik{color:var(--ink-500);flex:0 0 76px}.tc-iv{color:var(--ink-900);word-break:break-all;flex:1}.tc-daylist-item{margin-bottom:2px}@media (width<=1100px){.tc-side{display:none}.tc-cell{min-height:72px}}.tc-badge{background:var(--danger-600);color:#fff;border-radius:9px;place-items:center;min-width:17px;height:17px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;line-height:1;display:inline-grid}.tc-remind-sec{margin-bottom:10px}.tc-remind-title{align-items:center;gap:8px;margin-bottom:4px;display:flex}.tc-remind-item{cursor:pointer;border-radius:8px;align-items:center;gap:9px;padding:7px 8px;display:flex}.tc-remind-item:hover{background:var(--ink-50)}.tc-remind-item .dot{background:var(--brand-600);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.tc-remind-item .dot.red{background:var(--danger-600)}.tc-remind-item .t-main{flex:1;min-width:0}.tc-remind-item .t-main b{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.tc-remind-item .t-main span{color:var(--ink-500);font-size:11.5px}.tc-remind-item svg{color:var(--ink-500);flex:none}.imp-wrap{flex-direction:column;gap:12px;display:flex}.imp-picker{flex-direction:column;gap:6px;display:flex}.imp-status{min-height:18px;color:var(--ink-500);font-size:12.5px}.imp-status.ok{color:var(--success-600,#059669)}.imp-status.bad{color:var(--danger-600,#dc2626)}.imp-sheet{align-items:center;gap:8px;display:flex}.imp-sum{color:var(--ink-700);align-items:center;gap:16px;font-size:13px;display:flex}.imp-sum .ok{color:var(--success-600,#059669)}.imp-sum .bad{color:var(--danger-600,#dc2626)}.imp-map{border:1px solid var(--ink-200);border-radius:8px;flex-direction:column;gap:6px;max-height:190px;padding:8px;display:flex;overflow:auto}.imp-map-row{grid-template-columns:1fr 220px;align-items:center;gap:10px;display:grid}.imp-col{color:var(--ink-700);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.imp-rows{border:1px solid var(--ink-200);border-radius:8px;max-height:300px;overflow:auto}.imp-table{border-collapse:collapse;width:100%;font-size:12.5px}.imp-table th,.imp-table td{border-bottom:1px solid var(--ink-100);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:220px;padding:5px 8px;overflow:hidden}.imp-table th{background:var(--ink-50);z-index:1;color:var(--ink-600);font-weight:600;position:sticky;top:0}.imp-table tr.bad td{background:#dc26260d}.imp-table td.bad{color:var(--danger-600,#dc2626)}.imp-table td.ok{color:var(--ink-400)}.imp-result{flex-direction:column;gap:8px;display:flex}.imp-result .form-section{margin-bottom:0}.imp-result .form-section .bad{color:var(--danger-600,#dc2626)}.imp-result .imp-rows{max-height:220px}.imp-result .imp-table td:nth-child(3){white-space:normal;max-width:520px}.imp-mode{border:1px solid var(--ink-200);background:var(--ink-50);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.imp-notices{flex-direction:column;gap:4px;display:flex}.imp-notice{color:#92400e;background:var(--warning-50,#fffbeb);border:1px solid var(--warning-200,#fde68a);border-radius:6px;padding:6px 10px;font-size:12.5px;line-height:1.55}.m-root{--m-top-h:50px;background:var(--bg-body);height:100dvh;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;overflow:hidden}.m-top{height:var(--m-top-h);background:var(--bg-card);border-bottom:1px solid var(--border);z-index:20;flex:none;align-items:center;gap:6px;padding:0 8px 0 10px;display:flex;position:relative}.m-top-l{flex:none;align-items:center;gap:6px;display:flex}.m-top-c{flex:auto;justify-content:center;align-items:center;min-width:0;display:flex}.m-top-r{flex:none;align-items:center;gap:2px;display:flex}.m-ttl{color:var(--ink-900);white-space:nowrap;font-size:15.5px;font-weight:650}.m-tbtn{border:1px solid var(--border-strong);background:var(--bg-card);border-radius:var(--radius-full);height:30px;color:var(--ink-700);cursor:pointer;white-space:nowrap;padding:0 12px;font-size:13px}.m-tbtn:active{background:var(--ink-100)}.m-nav{align-items:center;gap:2px;display:flex}.m-ibtn{width:34px;height:34px;color:var(--ink-600);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.m-ibtn:active{background:var(--ink-100)}.m-avatar{cursor:pointer;background:0 0;border:none;border-radius:50%;width:32px;height:32px;margin-left:4px;padding:0}.m-avatar .av{background:var(--brand-600);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:13px;font-weight:650;display:grid}.m-avatar.sim .av{background:var(--warning-600)}.m-body{-webkit-overflow-scrolling:touch;flex:auto;position:relative;overflow:hidden auto}.m-tabs{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:20;flex:none;grid-template-columns:repeat(4,1fr);display:grid;position:relative}.m-tabs.hide{display:none}.m-tab{height:40px;color:var(--ink-500);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;display:flex;position:relative}.m-tab .lb{line-height:1}.m-tab.on{color:var(--brand-600);font-weight:600}.m-tab.on:after{content:"";background:var(--brand-600);border-radius:2px;width:22px;height:2.5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.m-tab .ic{place-items:center;height:22px;display:grid}.m-tab{position:relative}.m-tab .tc-badge{background:var(--danger-600);color:#fff;min-width:15px;height:15px;box-shadow:0 0 0 2px var(--bg-card);border-radius:8px;place-items:center;margin-left:4px;padding:0 4px;font-size:9.5px;font-weight:700;line-height:1;display:inline-grid;position:absolute;top:4px;left:50%}.m-sheet-host{top:var(--m-top-h);z-index:400;pointer-events:none;position:fixed;bottom:0;left:0;right:0}.m-sheet-host.open{pointer-events:auto}.m-sheet-mask{opacity:0;background:#0f172a61;transition:opacity .2s;position:absolute;inset:0}.m-sheet-host.open .m-sheet-mask{opacity:1}.m-sheet{background:var(--bg-card);width:min(84vw,320px);box-shadow:var(--shadow-xl);flex-direction:column;transition:transform .22s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(102%)}.m-sheet-host.open .m-sheet{transform:none}.el-drawer .m-sheet{width:auto;height:100%;box-shadow:none;background:0 0;transition:none;position:static;transform:none}.m-sheet-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;padding:12px 12px 12px 16px;display:flex}.m-sheet-head b{color:var(--ink-900);font-size:15px}.m-sheet-body{flex:auto;padding:6px 0 20px;overflow-y:auto}.m-sheet-sec{padding:8px 0 2px}.m-sheet-t{width:100%;color:var(--ink-700);letter-spacing:.2px;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:11px 16px 8px;font-size:13px;font-weight:600;display:flex}.m-sheet-t .tt{flex:none}.m-sheet-t .sum{color:var(--ink-400);flex:auto;font-size:11.5px;font-weight:400}.m-sheet-t .ar{flex:none;place-items:center;margin-left:auto;display:grid}.m-sheet-t .ar i{border-right:1.6px solid var(--ink-400);border-bottom:1.6px solid var(--ink-400);width:7px;height:7px;transition:transform .18s;display:block;transform:rotate(45deg)translate(-1px,-1px)}.m-sheet-t.collapsed .ar i{transform:rotate(-45deg)translate(-1px,1px)}.m-sheet-list[hidden]{display:none}.m-sheet-note{background:var(--brand-50);border:1px solid var(--brand-100);color:var(--ink-600);border-radius:8px;margin:2px 16px 12px;padding:9px 11px;font-size:11.5px;line-height:1.55}.m-sheet-item{width:100%;color:var(--ink-800);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:11px 16px;font-size:14px;display:flex}.m-sheet-item:active{background:var(--ink-50)}.m-sheet-item .ic{color:var(--ink-500);flex:none;place-items:center;display:grid}.m-sheet-item .dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.m-sheet-item .dot-gray{background:#94a3b8}.m-sheet-item .dot-violet{background:#8b5cf6}.m-sheet-item .dot-amber{background:#f59e0b}.m-sheet-item .dot-red{background:#ef4444}.m-sheet-item .dot-teal{background:#14b8a6}.m-sheet-item .dot-green{background:#22c55e}.m-sheet-item .dot-brand{background:var(--brand-600)}.m-sheet-item .lb{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.m-sheet-item .hn{color:var(--ink-400);flex:none;font-size:11.5px}.m-sheet-item .ck{flex:none;place-items:center;width:18px;display:grid}.m-sheet-item .ck i{background:var(--brand-600);border-radius:50%;width:18px;height:18px;position:relative}.m-sheet-item .ck i:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:8px;height:4px;position:absolute;top:5px;left:5px;transform:rotate(-45deg)}.m-sheet-item.on{color:var(--brand-600);font-weight:600}.m-sheet-item.on .ic{color:var(--brand-600)}.m-search{width:min(92vw,420px)}.m-si{color:var(--ink-400);flex:none;place-items:center;display:grid}.m-search-in{height:32px;color:var(--ink-900);background:0 0;border:none;outline:none;flex:auto;font-size:15px}.m-search-list{flex:auto;padding:4px 0 16px;overflow-y:auto}.m-sitem{border-bottom:1px solid var(--ink-100);cursor:pointer;padding:11px 16px}.m-sitem:active{background:var(--ink-50)}.m-sitem b{color:var(--ink-900);font-size:14px;display:block}.m-sitem span{color:var(--ink-500);font-size:12px}.m-month{padding:0 0 90px}.m-month-head{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:3;grid-template-columns:repeat(7,1fr);display:grid;position:sticky;top:0}.m-wh{text-align:center;color:var(--ink-400);padding:7px 0;font-size:11px}.m-month-grid{background:var(--border);grid-template-columns:repeat(7,1fr);align-items:stretch;gap:1px;display:grid}.m-cell{background:var(--bg-card);cursor:pointer;flex-direction:column;gap:2px;min-width:0;min-height:46px;padding:3px 2px 4px;display:flex;position:relative}.m-cell.dim{background:var(--ink-50)}.m-cell.sel{background:var(--brand-50)}.m-date{min-width:20px;height:20px;color:var(--ink-700);border-radius:10px;align-self:flex-start;place-items:center;padding:0 5px;font-size:12px;font-weight:600;display:grid}.m-cell.dim .m-date{color:var(--ink-300)}.m-date.on{background:var(--brand-600);color:#fff}.m-evs{flex-direction:column;gap:2px;min-width:0;display:flex;overflow:hidden}.m-ev{background:var(--brand-50);color:var(--brand-700);white-space:nowrap;text-overflow:ellipsis;border-radius:3px;align-items:center;gap:2px;min-width:0;padding:1px 4px;font-size:10.5px;line-height:1.35;display:flex;overflow:hidden}.m-ev span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-ev i{opacity:.7;flex:none;place-items:center;display:grid}.m-ev.done{opacity:.55;text-decoration:line-through}.m-ev.m-blue{background:var(--brand-50);color:var(--brand-700)}.m-ev.m-teal{background:var(--teal-50);color:var(--teal-600)}.m-ev.m-violet{background:var(--violet-50);color:var(--violet-600)}.m-ev.m-green{color:#047857;background:#ecfdf5}.m-ev.m-amber{background:var(--warning-50);color:var(--warning-700)}.m-ev.m-red{background:var(--danger-50);color:var(--danger-700)}.m-more{color:var(--ink-400);padding-left:4px;font-size:10px}.m-dotn{background:var(--danger-600);border-radius:50%;width:5px;height:5px;position:absolute;top:4px;right:3px}.m-tl{background:var(--bg-card);padding-bottom:90px}.m-tl-head{z-index:3;background:var(--bg-card);border-bottom:1px solid var(--border);grid-template-columns:46px 1fr;display:grid;position:sticky;top:0}.m-tl-head.m-tl-3{grid-template-columns:46px repeat(3,1fr)}.m-tl-head.m-tl-7{grid-template-columns:34px repeat(7,1fr)}.m-tl-7 .m-tl-col{padding:5px 0}.m-tl-7 .m-tl-col .wd{font-size:9.5px}.m-tl-7 .m-tl-col .dd{border-radius:9px;min-width:18px;height:18px;font-size:11px}.m-tl-7 .m-tsl{padding-right:3px;font-size:9px}.m-tl-7 .m-allday .m-ev{padding:1px 3px;font-size:9px}.m-tl-7 .m-allday .m-ev span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-tl-one .m-tl-head{grid-template-columns:46px 1fr}.m-tl-corner{border-right:1px solid var(--ink-100)}.m-tl-col{text-align:center;cursor:pointer;border-right:1px solid var(--ink-100);min-width:0;padding:6px 2px;position:relative}.m-tl-col .wd{color:var(--ink-400);font-size:10.5px;display:block}.m-tl-col .dd{min-width:22px;height:22px;color:var(--ink-800);border-radius:11px;place-items:center;font-size:13px;font-weight:650;display:inline-grid}.m-tl-col .dd.on{background:var(--brand-600);color:#fff}.m-tl-body{grid-template-columns:46px 1fr;display:grid;position:relative}.m-tl-body.m-tl-3{grid-template-columns:46px repeat(3,1fr)}.m-tl-body.m-tl-7{grid-template-columns:34px repeat(7,1fr)}.m-tl-one .m-tl-body{grid-template-columns:46px 1fr}.m-tl-scale{border-right:1px solid var(--ink-100)}.m-tsl{text-align:right;height:44px;color:var(--ink-400);padding-right:6px;font-size:10.5px}.m-tl-col.today{background:#2563eb08}.m-track{position:relative}.m-trow{border-bottom:1px solid var(--ink-100);height:44px}.m-trow:active{background:var(--brand-50)}.m-track-layer{pointer-events:none;position:absolute;inset:0}.m-track-layer>*{pointer-events:auto}.m-allday{position:relative}.m-blk{background:var(--brand-50);color:var(--brand-700);border-left:3px solid var(--brand-600);cursor:pointer;border-radius:4px;padding:2px 4px;font-size:10.5px;line-height:1.3;position:absolute;overflow:hidden}.m-blk .ic{display:none}.m-blk .tt{opacity:.85;font-size:9.5px;font-weight:650}.m-blk .tb{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.m-blk .tm{opacity:.8;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.m-blk.done{opacity:.55}.m-blk.done .tb{text-decoration:line-through}.m-blk.m-blue{background:var(--brand-50);border-left-color:var(--brand-600);color:var(--brand-700)}.m-blk.m-teal{background:var(--teal-50);border-left-color:var(--teal-600);color:var(--teal-600)}.m-blk.m-violet{background:var(--violet-50);border-left-color:var(--violet-600);color:var(--violet-600)}.m-blk.m-green{color:#047857;background:#ecfdf5;border-left-color:#059669}.m-blk.m-amber{background:var(--warning-50);border-left-color:var(--warning-600);color:var(--warning-700)}.m-blk.m-red{background:var(--danger-50);border-left-color:var(--danger-600);color:var(--danger-700)}.m-llist{padding:8px 0 96px}.m-lday{color:var(--ink-500);background:var(--bg-body);z-index:2;padding:9px 14px 5px;font-size:12px;font-weight:650;position:sticky;top:0}.m-lday.on{color:var(--brand-600)}.m-li{background:var(--bg-card);border-bottom:1px solid var(--ink-100);cursor:pointer;align-items:flex-start;gap:9px;padding:10px 14px;display:flex}.m-li-bar{background:var(--ink-200);border-radius:2px;flex:0 0 3px;align-self:stretch;width:3px}.m-li.m-blue .m-li-bar{background:var(--brand-600)}.m-li.m-teal .m-li-bar{background:var(--teal-600)}.m-li.m-violet .m-li-bar{background:var(--violet-600)}.m-li.m-green .m-li-bar{background:#059669}.m-li.m-amber .m-li-bar{background:var(--warning-600)}.m-li.m-red .m-li-bar{background:var(--danger-600)}.m-li-main{flex:auto;min-width:0}.m-li-main b{color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;display:block;overflow:hidden}.m-li-meta{color:var(--ink-500);margin-top:1px;font-size:11.5px;display:block}.m-li-cust{color:var(--brand-600);margin-top:1px;font-size:11.5px;display:block}.m-li-late{color:var(--danger-600);background:var(--danger-50);border-radius:3px;margin-top:3px;padding:0 5px;font-size:10.5px;display:inline-block}.m-li-r{flex:none;align-items:center;display:flex}.m-li-del{width:30px;height:30px;color:var(--ink-400);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;margin-left:2px;display:grid}.m-li-del:active{background:var(--danger-50);color:var(--danger-600)}.m-li-st{background:var(--ink-100);color:var(--ink-600);border-radius:3px;padding:0 5px;font-size:10px;font-style:normal;display:inline-block}.m-li-chk{border:1.5px solid var(--ink-300);color:#fff;cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.m-li-chk.on{background:var(--success-600);border-color:var(--success-600)}.m-li.done .m-li-main b{color:var(--ink-400);text-decoration:line-through}.m-tasks{padding-bottom:96px}.m-hint{background:var(--brand-50);border:1px solid var(--brand-100);color:var(--ink-600);border-radius:8px;align-items:flex-start;gap:7px;margin:10px 12px 0;padding:9px 11px;font-size:11.5px;line-height:1.55;display:flex}.m-hint .ic{color:var(--brand-600);flex:none;margin-top:1px}.m-fchips{flex-wrap:wrap;gap:7px;padding:10px 12px 4px;display:flex}.m-fchip{border:1px solid var(--ink-200);background:var(--bg-card);color:var(--ink-600);cursor:pointer;border-radius:14px;align-items:center;gap:4px;padding:5px 11px;font-size:12px;display:inline-flex}.m-fchip.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.m-fchip-more{border-style:dashed}.m-pager{justify-content:center;align-items:center;gap:12px;padding:14px 12px 20px;font-size:12px;display:flex}.m-pager .btn[disabled]{opacity:.45;pointer-events:none}.m-cnt{color:var(--ink-600);background:var(--bg-body);align-items:center;gap:6px;padding:9px 14px;font-size:12.5px;display:flex}.m-cnt .ic{color:var(--ink-400);place-items:center;display:grid}.m-cnt b{color:var(--ink-900)}.m-tg{margin-bottom:8px}.m-tg>b{color:var(--ink-500);align-items:center;gap:6px;padding:8px 14px 4px;font-size:11.5px;font-weight:650;display:flex}.m-tg>b .n{color:var(--ink-400);background:var(--ink-100);border-radius:8px;padding:0 6px;font-size:10.5px;font-weight:500}.m-tg-list{background:var(--bg-card)}.m-fab{right:16px;bottom:calc(66px + env(safe-area-inset-bottom));background:var(--brand-600);color:#fff;cursor:pointer;z-index:30;border:none;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:fixed;box-shadow:0 6px 20px #2563eb61}.m-fab:active{transform:scale(.94)}.m-dd{flex-direction:column;gap:8px;display:flex}.m-dd-h{align-items:baseline;gap:8px;padding:0 2px 4px;display:flex}.m-dd-h b{color:var(--ink-900);font-size:15px}.m-dd-list{border:1px solid var(--ink-100);border-radius:var(--radius);max-height:56vh;overflow:hidden auto}.m-dd-f{padding-top:4px}.m-dd-add{border:1px dashed var(--brand-400);border-radius:var(--radius);background:var(--brand-50);width:100%;height:42px;color:var(--brand-700);cursor:pointer;justify-content:center;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.m-tp{flex-direction:column;gap:10px;display:flex}.m-tp-head{flex-wrap:wrap;gap:5px;display:flex}.m-tp-title{color:var(--ink-900);font-size:17px;font-weight:650;line-height:1.4}.m-tp-info{border:1px solid var(--ink-100);border-radius:var(--radius);overflow:hidden}.m-ir{border-bottom:1px solid var(--ink-100);gap:10px;padding:8px 11px;font-size:13px;display:flex}.m-ir:last-child{border-bottom:none}.m-ik{color:var(--ink-500);flex:0 0 68px}.m-iv{color:var(--ink-800);word-break:break-word;flex:auto}.m-ta{border:1px solid var(--ink-200);border-radius:var(--radius);resize:vertical;width:100%;padding:8px 10px;font-family:inherit;font-size:13.5px}.m-ta:focus{border-color:var(--brand-400);outline:none}.m-form{flex-direction:column;gap:4px;display:flex}.m-form .form-grid{grid-template-columns:1fr}.m-form .form-grid .span-2,.m-form .form-grid .span-3{grid-column:span 1}.m-ally{background:var(--bg-subtle);border:1px solid var(--ink-100);border-radius:var(--radius);align-items:center;gap:10px;margin-bottom:6px;padding:9px 12px;display:flex}.m-ally .lb{color:var(--ink-800);font-size:13.5px;font-weight:600}.m-pwd .field{margin-bottom:10px}.m-stats{flex-direction:column;gap:12px;padding:10px 12px 96px;display:flex}.m-chips{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.m-chips::-webkit-scrollbar{display:none}.m-chip{border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--bg-card);height:30px;color:var(--ink-600);cursor:pointer;flex:none;padding:0 13px;font-size:12.5px}.m-chip.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff;font-weight:600}.m-kpi{grid-template-columns:1fr 1fr;gap:8px;display:grid}.m-kpi-i{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:11px 12px;display:flex}.m-kpi-i .ic{color:var(--brand-600);place-items:center;display:grid}.m-kpi-i.green .ic{color:var(--success-600)}.m-kpi-i.amber .ic{color:var(--warning-600)}.m-kpi-i.teal .ic{color:var(--teal-600)}.m-kpi-i .v{color:var(--ink-900);font-size:21px;font-weight:700;line-height:1.2}.m-kpi-i .v small{color:var(--ink-500);margin-left:2px;font-size:11.5px;font-weight:500}.m-kpi-i .l{color:var(--ink-500);font-size:11.5px}.m-kpi-i .s{color:var(--ink-400);margin-top:1px;font-size:10.5px}.m-range{color:var(--ink-500);align-items:center;gap:8px;padding:8px 12px 2px;font-size:12px;display:flex}.m-range-w{align-items:center;gap:5px;display:inline-flex}.m-range-w input{border:1px solid var(--border-strong);color:var(--ink-700);background:var(--bg-card);border-radius:6px;padding:4px 7px;font-size:12px}.m-range-t{color:var(--ink-400)}.m-range-tip{color:var(--ink-400);padding:2px 12px 6px;font-size:11px}.m-mtrend{align-items:flex-end;gap:4px;height:128px;padding:12px 2px 0;display:flex;overflow-x:auto}.m-mt-c{flex-direction:column;flex:1 0 26px;justify-content:flex-end;align-items:center;gap:3px;min-width:26px;height:100%;display:flex}.m-mt-c .v{color:var(--ink-500);font-size:10px}.m-mt-c i{background:linear-gradient(180deg, var(--brand-400,#6f9bf5), var(--brand-600));border-radius:3px 3px 0 0;width:70%;min-height:3px;display:block}.m-mt-c .l{color:var(--ink-400);white-space:nowrap;font-size:9.5px}.m-otbl{flex-direction:column;display:flex}.m-otr{border-bottom:1px solid var(--ink-100);color:var(--ink-700);grid-template-columns:1fr 44px 48px 48px 96px;align-items:center;gap:4px;padding:7px 0;font-size:12px;display:grid}.m-otr:last-child{border-bottom:none}.m-otr-h{color:var(--ink-400);padding-bottom:4px;font-size:10.5px;font-weight:600}.m-otr .c1,.m-otr .c2,.m-otr .c3{text-align:right;font-variant-numeric:tabular-nums}.m-otr .c4{justify-content:flex-end;align-items:center;gap:5px;font-size:11px;display:flex}.m-otr .c0{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-otr-bar{background:var(--ink-100);border-radius:3px;width:52px;height:5px;display:block;overflow:hidden}.m-otr-bar b{background:var(--success-600);height:100%;display:block}.m-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.m-card-h{border-bottom:1px solid var(--ink-100);color:var(--ink-900);align-items:center;gap:7px;padding:10px 12px;font-size:13.5px;display:flex}.m-card-h .ic{color:var(--brand-600);place-items:center;display:grid}.m-card-b{flex-direction:column;gap:9px;padding:8px 12px 12px;display:flex}.m-bar-t{color:var(--ink-700);justify-content:space-between;align-items:baseline;gap:8px;font-size:12.5px;display:flex}.m-bar-t b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.m-bar-t .n{color:var(--ink-500);flex:none;font-size:11.5px}.m-bar-track{background:var(--ink-100);border-radius:3px;height:6px;margin-top:4px;overflow:hidden}.m-bar-track i{background:var(--brand-500);border-radius:3px;height:100%;display:block}.m-bar-track i.m-blue{background:var(--brand-500)}.m-bar-track i.m-teal{background:var(--teal-600)}.m-bar-track i.m-violet{background:var(--violet-600)}.m-bar-track i.m-green{background:var(--success-600)}.m-bar-track i.m-amber{background:var(--warning-600)}.m-bar-track i.m-red{background:var(--danger-600)}.m-bar-track i.m-gray{background:var(--ink-300)}.m-me{flex-direction:column;gap:14px;padding:12px 12px 40px;display:flex}.m-me-imp{background:var(--warning-50);border:1px solid var(--warning-100);border-radius:var(--radius);align-items:center;gap:10px;padding:10px 12px;display:flex}.m-me-imp .ic{color:var(--warning-600);flex:none;place-items:center;display:grid}.m-me-imp .tx{color:var(--warning-700);flex:auto;font-size:12.5px;line-height:1.5}.m-me-card{background:linear-gradient(135deg, var(--brand-600), var(--brand-500));border-radius:var(--radius-lg);color:#fff;align-items:center;gap:12px;padding:15px 14px;display:flex}.m-me-ava{background:#ffffff38;border-radius:50%;flex:none;place-items:center;width:52px;height:52px;font-size:21px;font-weight:700;display:grid}.m-me-info b{font-size:17px;font-weight:650;display:block}.m-me-info span{opacity:.85;margin-top:2px;font-size:12px;display:block}.m-me-sec{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.m-me-t{color:var(--ink-500);align-items:center;gap:7px;padding:10px 12px 4px;font-size:12.5px;font-weight:650;display:flex}.m-me-hint{color:var(--ink-400);padding:0 12px 6px;font-size:11.5px;line-height:1.6}.m-me-list{flex-direction:column;display:flex}.m-me-item,.m-me-row{border-top:1px solid var(--ink-100);color:var(--ink-800);cursor:pointer;text-align:left;background:0 0;border-bottom:none;border-left:none;border-right:none;align-items:center;gap:10px;width:100%;padding:12px;font-size:14px;display:flex}.m-me-item:active,.m-me-row:active{background:var(--ink-50)}.m-me-item .ic{color:var(--ink-500);flex:none;place-items:center;display:grid}.m-me-item .lb{flex:auto}.m-me-item .hn{color:var(--ink-400);font-size:11.5px}.m-me-item .ck{color:var(--ink-300);flex:none;place-items:center;display:grid}.m-me-row .ava{background:var(--brand-50);width:32px;height:32px;color:var(--brand-700);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:650;display:grid}.m-me-row .tx{flex:auto;min-width:0}.m-me-row .tx b{color:var(--ink-900);font-size:14px;display:block}.m-me-row .tx span{color:var(--ink-500);margin-top:1px;font-size:11.5px;display:block}.m-me-row .ck{color:var(--ink-300);flex:none;place-items:center;display:grid}.m-me-row.dis{opacity:.45;cursor:not-allowed}.m-me-out{justify-content:center;padding:4px 0;display:flex}.m-me-out .btn{height:40px;padding:0 28px}.m-me-ver{text-align:center;color:var(--ink-300);font-size:11px}.m-viewbar{z-index:4;background:var(--warning-50);color:var(--warning-700);border-bottom:1px solid var(--warning-100);align-items:center;gap:7px;padding:7px 12px;font-size:12px;display:flex;position:sticky;top:0}.m-viewbar .ck{display:none}.m-viewbar-x{border:1px solid var(--warning-600);color:var(--warning-700);border-radius:var(--radius-full);cursor:pointer;background:#fff;margin-left:auto;padding:2px 10px;font-size:11.5px}.m-sim{background:var(--warning-50);border-bottom:1px solid var(--warning-100);color:var(--warning-700);flex:none;align-items:center;gap:7px;padding:6px 12px;font-size:11.5px;display:flex}.m-sim .ic{flex:none;place-items:center;display:grid}.m-sim .tx{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.m-sim-x{border:1px solid var(--warning-600);color:var(--warning-700);border-radius:var(--radius-full);cursor:pointer;background:#fff;flex:none;padding:2px 10px;font-size:11px}.m-demo{color:var(--ink-700);background:linear-gradient(#eef4ff 0%,#f7f9fd 100%);border-bottom:1px solid #dbe6f8;flex-direction:column;flex:none;font-size:12px;display:flex}.m-demo-r1{align-items:center;gap:8px;padding:6px 12px 2px;display:flex}.m-demo-who{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.m-demo-who .lb{color:var(--ink-500)}.m-demo-who b{color:var(--ink-900)}.m-demo-who .tag{margin-left:5px;font-size:10.5px}.m-demo-b{color:var(--brand-600);border-radius:var(--radius-full);cursor:pointer;background:#fff;border:1px solid #c7d7f0;flex:none;align-items:center;gap:4px;padding:3px 10px;font-size:11.5px;display:inline-flex}.m-demo-b.ghost{color:var(--ink-500);border-color:#dbe2ee}.m-demo-r2{align-items:center;gap:7px;padding:0 12px 7px;display:flex}.m-demo-ic{color:var(--brand-500);flex:none;place-items:center;display:grid}.m-demo-sel{border-radius:var(--radius-full);min-width:0;max-width:58%;color:var(--ink-800);background:#fff;border:1px solid #c7d7f0;flex:0 auto;padding:4px 8px;font-family:inherit;font-size:12px}.m-demo-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--brand-600);flex:auto;font-size:11.5px;overflow:hidden}.m-demo-hint b{color:var(--brand-700)}.m-root.m-stage{width:100%;max-width:412px;box-shadow:0 0 0 1px var(--border), 0 12px 40px #0f172a1a;margin:0 auto;position:relative;transform:translateZ(0)}body.m-stage-body{background:#e8ecf3}@media (width>=821px) and (width<=1199px){.m-root.m-stage{max-width:none;box-shadow:none}body.m-stage-body{background:var(--bg-body)}}@media (width<=820px){.m-root .modal{border-radius:var(--radius-lg);width:calc(100vw - 24px);max-width:none;max-height:calc(100vh - 40px)}.m-root .modal.xwide,.m-root .modal.wide{width:calc(100vw - 16px)}.m-root .modal-body{padding:14px}.m-root .modal-foot{flex-wrap:wrap}.m-root .modal-foot .btn{flex:auto;min-width:40%}.m-root .drawer{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:none;height:86vh;animation:.22s cubic-bezier(.4,0,.2,1) mSheetUp;inset:auto 0 0}.m-root .field{margin-bottom:10px}.m-root .form-grid{grid-template-columns:1fr}.m-root .form-grid .span-2,.m-root .form-grid .span-3{grid-column:span 1}.m-root .input,.m-root .select,.m-root .textarea{font-size:15px}}@keyframes mSheetUp{0%{transform:translateY(100%)}to{transform:none}}@media (width<=820px) and (orientation:landscape){.m-cell{min-height:38px}.m-month-grid .m-ev:nth-child(2){display:none}}.mv{-webkit-overflow-scrolling:touch;flex-direction:column;gap:12px;min-height:0;max-height:58vh;display:flex;overflow-y:auto}.mv-hints{background:var(--brand-50);border:1px solid var(--brand-100);border-radius:10px;flex-direction:column;flex-shrink:0;gap:7px;padding:11px 13px;display:flex}.mv-hint{align-items:baseline;gap:7px;min-width:0;display:flex}.mv-hint-n{background:var(--brand-600);color:#fff;text-align:center;border-radius:50%;flex:none;width:16px;height:16px;font-size:10.5px;font-style:normal;font-weight:600;line-height:16px}.mv-hint-t{color:var(--brand-700);white-space:nowrap;flex:none;font-size:13px;font-weight:600}.mv-hint-ex{min-width:0;color:var(--ink-400);white-space:normal;word-break:break-word;flex:auto;font-size:11.5px;font-weight:400}.mv-panel{flex-direction:column;gap:7px;display:flex}.mv-text{resize:vertical;border:1px solid var(--border);background:var(--bg-card);width:100%;min-height:92px;color:var(--ink-800);-webkit-appearance:none;border-radius:10px;padding:10px 12px;font-family:inherit;font-size:15px;line-height:1.65}.mv-text:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50);outline:none}.mv.rec .mv-text{border-color:var(--danger-500,var(--danger-600))}.mv-info{color:var(--ink-500);font-size:12px;display:none}.mv-info.on{display:block}.mv-hits{flex-wrap:wrap;gap:6px;display:flex}.mv-hit{background:var(--success-50);border:1px solid var(--success-100);border-radius:999px;align-items:baseline;gap:5px;padding:3px 9px;font-size:11.5px;display:inline-flex}.mv-hit b{color:var(--success-700);font-weight:600}.mv-hit i{color:var(--ink-500);font-size:11px;font-style:normal}.mv-hit-warn{background:var(--warning-50);border-color:var(--warning-100)}.mv-hit-warn b{color:var(--warning-700)}.mv-bar{align-items:center;gap:9px;display:flex}.mv-mic{cursor:pointer;background:var(--brand-600);color:#fff;border:none;border-radius:24px;flex:auto;justify-content:center;align-items:center;gap:8px;height:48px;font-size:15px;font-weight:600;display:flex;box-shadow:0 6px 16px #2563eb3d}.mv-mic:disabled{background:var(--ink-300);box-shadow:none;cursor:not-allowed}.mv.rec .mv-mic{background:var(--danger-600);animation:1.15s ease-in-out infinite mv-pulse;box-shadow:0 6px 16px #dc262647}@keyframes mv-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}.mv-stop,.mv-again{border:1px solid var(--border);cursor:pointer;background:var(--bg-card);height:40px;color:var(--ink-700);border-radius:20px;flex:none;padding:0 15px;font-size:13.5px}.mv-stop{display:none}.mv.rec .mv-stop{display:inline-block}.mv.rec .mv-again{display:none}.mv-hintline{color:var(--ink-400);text-align:center;font-size:11.5px}.m-fab-mic{background:var(--violet-600);width:46px;height:46px;box-shadow:0 6px 20px #7c3aed57}.mv-actions{gap:9px;display:flex}.mv-ok{cursor:pointer;background:var(--success-600);color:#fff;border:none;border-radius:23px;flex:auto;height:46px;font-size:15px;font-weight:600}.mv-diag{border-top:1px dashed var(--line-200);margin-top:10px;padding-top:10px;display:block}.mv-diag-btn,.mv-diag-set,.mv-diag-probe{cursor:pointer;border:1px solid var(--line-300);background:var(--bg-200);color:var(--ink-500);border-radius:14px;padding:6px 12px;font-size:12px}.mv-diag-btn{border-color:var(--violet-300);color:var(--violet-600)}.mv-diag-probe{border-color:var(--red-300,#e0a0a0);color:var(--red-600,#b3403f);font-weight:500}.mv-diag-probe[disabled]{opacity:.6;cursor:default}.mv-diag-out{background:var(--bg-200);color:var(--ink-600);white-space:pre-wrap;word-break:break-all;border-radius:9px;flex:100%;max-height:260px;margin:0;padding:9px 10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;line-height:1.55;overflow:auto}.mv-diag-copy{opacity:0;position:fixed;top:0;left:-9999px}.mv-diag-fold{width:100%}.mv-diag-sum{cursor:pointer;color:var(--ink-400);-webkit-user-select:none;user-select:none;padding:4px 0;font-size:12px;list-style:none;display:block}.mv-diag-sum::-webkit-details-marker{display:none}.mv-diag-sum::marker{content:""}.mv-diag-sum:before{content:"▸ ";color:var(--ink-400)}.mv-diag-fold[open]>.mv-diag-sum:before{content:"▾ "}.mv-diag-inner{flex-wrap:wrap;align-items:flex-start;gap:8px;padding-top:8px;display:flex}.el-dialog.m-voice-dialog{flex-direction:column;max-height:82vh;display:flex}.el-dialog.m-voice-dialog .el-dialog__header{flex:none;margin:0;padding:12px 16px 8px}.el-dialog.m-voice-dialog .el-dialog__body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:4px 16px 16px;overflow-y:auto}.el-dialog.m-voice-dialog .el-dialog__headerbtn{top:12px;right:12px}.el-overlay{padding:0}body.m-voice-open .m-fab-mic{display:none}.tc-chg-pwd[data-v-8c6b8eb1]{flex-direction:column;gap:13px;display:flex}.tc-chg-pwd .field label[data-v-8c6b8eb1]{color:#5a6478;margin-bottom:6px;font-size:13px;display:block}.loc-picker[data-v-1b6c08c6]{align-items:center;gap:10px;min-height:32px;display:flex}.loc-hint[data-v-1b6c08c6]{color:var(--el-text-color-secondary,#909399);font-size:12px}.loc-search[data-v-1b6c08c6]{align-items:center;gap:10px;margin-bottom:8px;display:flex}.loc-status[data-v-1b6c08c6]{color:var(--el-text-color-secondary,#909399);white-space:nowrap;font-size:12px}.loc-sug-error[data-v-1b6c08c6]{border:1px solid var(--el-color-warning-light-5,#f3d19e);background:var(--el-color-warning-light-9,#fdf6ec);color:var(--el-color-warning-dark-2,#b88230);border-radius:6px;margin-bottom:8px;padding:6px 10px;font-size:12.5px;line-height:1.6}.loc-sug[data-v-1b6c08c6]{border:1px solid var(--el-border-color-lighter,#e4e7ed);border-radius:6px;max-height:150px;margin-bottom:8px;overflow:auto}.loc-sug-item[data-v-1b6c08c6]{cursor:pointer;padding:6px 10px;font-size:13px;line-height:1.5}.loc-sug-item[data-v-1b6c08c6]:hover{background:var(--el-color-primary-light-9,#ecf5ff)}.loc-sug-sub[data-v-1b6c08c6]{color:var(--el-text-color-secondary,#909399);margin-left:6px;font-size:12px}.loc-map[data-v-1b6c08c6]{height:380px;color:var(--el-text-color-secondary,#909399);border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:flex;overflow:hidden}.loc-result[data-v-1b6c08c6]{min-height:18px;color:var(--el-text-color-secondary,#909399);margin-top:8px;font-size:12px}.inline-block[data-v-87c33711]{grid-column:1/-1}.inline-table-wrap[data-v-87c33711]{border:1px solid var(--border);border-radius:8px;overflow-x:auto}table.it[data-v-87c33711]{border-collapse:collapse;width:100%;min-width:640px;font-size:12.5px}table.it th[data-v-87c33711]{color:var(--ink-600);text-align:left;border-bottom:1px solid var(--border-strong);white-space:nowrap;background:#f7f9fc;padding:7px 8px;font-size:11.5px;font-weight:600}table.it td[data-v-87c33711]{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}table.it tbody tr:last-child td[data-v-87c33711]{border-bottom:0}table.it td.num[data-v-87c33711],table.it td.act[data-v-87c33711]{text-align:right;white-space:nowrap}table.it tfoot td[data-v-87c33711]{border-top:1px solid var(--border-strong);background:#fafbfd;padding:8px}.foot-label[data-v-87c33711]{text-align:right;color:var(--ink-500)}.empty-cell[data-v-87c33711]{text-align:center;color:var(--ink-400);padding:20px 0}.inline-add[data-v-87c33711]{margin-top:9px}.inline-block[data-v-de74d86a]{grid-column:1/-1}.file-list[data-v-de74d86a]{flex-direction:column;gap:6px;display:flex}.file-row[data-v-de74d86a]{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:9px;padding:7px 10px;display:flex}.file-name[data-v-de74d86a]{color:var(--brand-600);word-break:break-all;font-weight:500;text-decoration:none}.file-name[data-v-de74d86a]:hover{text-decoration:underline}.empty-cell[data-v-de74d86a]{text-align:center;color:var(--ink-400);border:1px dashed var(--border);border-radius:8px;padding:18px 0}.upload-bar[data-v-de74d86a]{align-items:center;gap:9px;margin-top:9px;display:flex}.attach-field[data-v-4640894b]{align-items:flex-start;gap:8px;min-width:0;display:flex}.attach-list[data-v-4640894b]{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}.attach-item[data-v-4640894b]{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:8px;align-items:center;gap:8px;min-width:0;padding:4px 8px;display:flex}.file-ic[data-v-4640894b]{background:var(--brand-50,#eff6ff);width:22px;height:22px;color:var(--brand-700,#1d4ed8);border-radius:5px;flex:none;place-items:center;font-size:7.5px;font-weight:700;display:grid}.file-link[data-v-4640894b]{color:var(--brand-600,#2563eb);word-break:break-all;border-bottom:1px dashed;text-decoration:none}.file-link[data-v-4640894b]:hover{border-bottom-style:solid}.attach-spacer[data-v-4640894b]{flex:1}.attach-empty[data-v-4640894b]{border:1px dashed var(--border,#e5e7eb);color:var(--ink-400,#9ca3af);border-radius:8px;padding:5px 8px;font-size:12px}.attach-bar[data-v-4640894b]{flex:none;align-items:center;gap:8px;padding-top:1px;display:flex}.attach-bar .btn[data-v-4640894b]{white-space:nowrap}[data-v-4640894b] table.inline-rows td .attach-field{display:block}[data-v-4640894b] table.inline-rows td .attach-bar{margin-top:6px}.inline-block[data-v-657428a3]{grid-column:1/-1;min-width:0}.inline-rows-wrap[data-v-657428a3]{overflow-x:auto}.inline-rows[data-v-657428a3]{border-collapse:collapse;width:100%}.inline-rows th[data-v-657428a3],.inline-rows td[data-v-657428a3]{border-bottom:1px solid var(--border,#e5e7eb);text-align:left;vertical-align:top;padding:5px 7px}.inline-rows th[data-v-657428a3]{color:var(--ink-500,#6b7280);white-space:nowrap;font-size:12.5px;font-weight:600}.inline-rows th.act[data-v-657428a3],.inline-rows td.act[data-v-657428a3]{text-align:center;width:44px}.inline-rows .req[data-v-657428a3]{color:var(--danger,#dc2626)}.inline-rows .input[data-v-657428a3]{width:100%;min-width:90px}.inline-rows-empty[data-v-657428a3]{color:var(--ink-500,#6b7280);flex-direction:column;align-items:center;gap:2px;padding:18px;display:flex}.inline-add[data-v-657428a3]{margin-top:9px}.inline-rows tfoot .inline-foot td[data-v-657428a3]{text-align:right;white-space:nowrap;border-bottom:none;padding-top:8px}.inline-rows tfoot em[data-v-657428a3]{color:var(--ink-500,#6b7280);font-style:normal}.inline-rows tfoot b[data-v-657428a3]{font-variant-numeric:tabular-nums}.form-section-block+.form-section-block[data-v-8d85f1e2]{margin-top:6px}.upload-row[data-v-8d85f1e2]{align-items:center;gap:8px;display:flex}.upload-row .el-button[data-v-8d85f1e2]{flex-shrink:0}.attach-list[data-v-8d85f1e2]{flex-direction:column;gap:6px;min-width:0;display:flex}.attach-item[data-v-8d85f1e2]{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:8px;align-items:center;gap:9px;min-width:0;padding:5px 9px;display:flex}.attach-item .file-link[data-v-8d85f1e2]{word-break:break-all}.attach-spacer[data-v-8d85f1e2]{flex:1}.attach-empty[data-v-8d85f1e2]{border:1px dashed var(--border,#e5e7eb);color:var(--ink-400,#9ca3af);border-radius:8px;padding:5px 9px;font-size:12px}.attach-bar[data-v-8d85f1e2]{align-items:center;gap:9px;margin-top:6px;display:flex}.inline-tip[data-v-8d85f1e2]{margin:-4px 0 9px}.file-link[data-v-f8a19625]{color:var(--brand-600,#2563eb);cursor:pointer;word-break:break-all;border-bottom:1px dashed;text-decoration:none}.file-link[data-v-f8a19625]:hover{color:var(--brand-700,#1d4ed8);border-bottom-style:solid}.attach-links[data-v-f8a19625]{flex-direction:column;gap:2px;display:flex}.fc-picker[data-v-5f321422]{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.fc-fields[data-v-5f321422]{border:1px solid var(--line,#e5e7eb);border-radius:6px;max-height:260px;overflow:auto}.fc-block[data-v-5f321422]{padding:4px 0 8px}.fc-pick[data-v-5f321422]{cursor:pointer;align-items:center;gap:8px;padding:4px 0 8px;font-size:13px;display:flex}tr.dim td[data-v-5f321422]{color:var(--muted,#9ca3af)}.imp-status[data-v-5f321422]{margin:8px 0;font-size:13px}.imp-status.ok[data-v-5f321422]{color:#16a34a}.imp-status.warn[data-v-5f321422]{color:#d97706}.imp-status.bad[data-v-5f321422],.imp-table .bad[data-v-5f321422],td.bad[data-v-5f321422],span.bad[data-v-5f321422]{color:#dc2626}.drawer-body[data-v-1043a37a]{min-height:240px}.tab-toolbar[data-v-1043a37a]{align-items:center;margin-bottom:8px;display:flex}.empty-cell[data-v-1043a37a]{text-align:center;color:var(--ink-400);padding:22px 0}.boot-error[data-v-c08dd291]{place-items:center;height:100vh;display:grid}.clickable[data-v-c08dd291]{cursor:pointer}.user-chip[data-v-c08dd291]{cursor:pointer;outline:none}.user-chip-inner[data-v-c08dd291]{align-items:center;gap:10px;display:flex}.imp-banner[data-v-c08dd291]{color:#b8860b;background:#fdf6ec;border-bottom:1px solid #faecd8;align-items:center;gap:10px;padding:8px 18px;font-size:13px;display:flex}.imp-text b[data-v-c08dd291]{color:#946200}.imp-stop[data-v-c08dd291]{color:#b8860b;cursor:pointer;background:#fff;border:1px solid #e6a23c;border-radius:6px;margin-left:auto;padding:3px 12px;font-size:12px}.imp-stop[data-v-c08dd291]:hover{color:#fff;background:#e6a23c}.clickable[data-v-f4a18c13]{cursor:pointer}.cm-empty[data-v-0c7c0774]{text-align:center;color:var(--ink-400,#9ca3af);padding:28px 0}.cm-group[data-v-0c7c0774]{border:1px solid var(--line,#e5e7eb);border-radius:8px;margin-bottom:12px;padding:10px 12px}.cm-group-head[data-v-0c7c0774]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.cm-group-head .spacer[data-v-0c7c0774]{flex:1}tr.cm-keep td[data-v-0c7c0774]{background:var(--el-color-success-light-9,#f0f9eb)}.mono[data-v-0c7c0774]{font-family:ui-monospace,Consolas,monospace}.dt-root[data-v-5d1feb0a]{flex-direction:column;height:calc(100vh - 128px);min-height:420px;display:flex}.dt-root.dt-fullscreen[data-v-5d1feb0a]{z-index:2000;border-radius:0;height:100vh;position:fixed;inset:0}.dt-table-wrap[data-v-5d1feb0a]{flex:1;min-height:0}.dt-pager[data-v-5d1feb0a]{border-top:1px solid var(--border);align-items:center;padding:8px 12px;display:flex}.col-setting-head[data-v-5d1feb0a]{align-items:center;margin-bottom:8px;display:flex}.col-list[data-v-5d1feb0a]{max-height:320px;overflow:auto}.col-item[data-v-5d1feb0a]{cursor:default;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;display:flex}.col-item[data-v-5d1feb0a]:hover{background:var(--ink-50)}.col-item.dragging[data-v-5d1feb0a]{opacity:.5;background:var(--brand-50)}.drag-h[data-v-5d1feb0a]{cursor:grab;color:var(--ink-400);display:inline-flex}.cname[data-v-5d1feb0a]{flex:1}.density-list .di[data-v-5d1feb0a]{cursor:pointer;border-radius:6px;padding:6px 10px}.density-list .di[data-v-5d1feb0a]:hover{background:var(--ink-50)}.density-list .di.active[data-v-5d1feb0a]{background:var(--brand-50);color:var(--brand-700);font-weight:600}.adv-row[data-v-5d1feb0a]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.and-or[data-v-5d1feb0a]{width:34px;color:var(--ink-400);flex:0 0 34px;font-size:12px}.adv-val[data-v-5d1feb0a]{flex:1;min-width:0}.th-in[data-v-5d1feb0a]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;display:inline-flex}.sort-ic[data-v-5d1feb0a]{opacity:.34;flex-direction:column;gap:0;display:inline-flex}.sort-ic svg[data-v-5d1feb0a]{width:9px;height:9px;margin:-1px 0;display:block}.th-in:hover .sort-ic[data-v-5d1feb0a]{opacity:1}.th-in:has(.sort-idx) .sort-ic[data-v-5d1feb0a]{opacity:1}.sort-idx[data-v-5d1feb0a]{background:var(--brand-600);color:#fff;border-radius:50%;place-items:center;width:12px;height:12px;margin-left:2px;font-size:9px;display:grid}.login-page[data-v-b5862534]{background:linear-gradient(160deg,#0f1c36 0%,#16305c 60%,#2563eb 130%);place-items:center;min-height:100vh;display:grid}.login-card[data-v-b5862534]{background:#fff;border-radius:14px;width:400px;padding:36px 36px 30px;box-shadow:0 18px 50px #06122e73}.brand[data-v-b5862534]{align-items:center;gap:12px;margin-bottom:26px;display:flex}.ding-note[data-v-b5862534]{color:#0d9488;background:#f0fdfa;border:1px solid #b8efe6;border-radius:8px;margin:-10px 0 16px;padding:9px 12px;font-size:12.5px;line-height:1.5}.ding-note--warn[data-v-b5862534]{color:#92400e;background:#fffbeb;border-color:#fde68a}.ding-id[data-v-b5862534]{align-items:center;gap:8px;margin-top:7px;display:flex}.ding-id__label[data-v-b5862534]{opacity:.8;white-space:nowrap;font-size:12px}.ding-id code[data-v-b5862534]{text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all;background:#ffffffb8;border-radius:6px;flex:1;min-width:0;padding:3px 7px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;overflow:hidden}.brand-mark[data-v-b5862534]{background:#fff;border-radius:11px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 1px 4px #17233d1a}.brand-mark img[data-v-b5862534]{object-fit:contain;width:36px;height:36px}.brand-text b[data-v-b5862534]{color:#17233d;letter-spacing:1px;font-size:19px;display:block}.brand-text span[data-v-b5862534]{color:#8a94a6;letter-spacing:2.5px;font-size:11px}.scan[data-v-b5862534]{border-bottom:1px dashed #e5e8ef;margin:-6px 0 18px;padding-bottom:16px}.scan__toggle[data-v-b5862534]{color:#2b6cf6;cursor:pointer;background:#fff;border:1px solid #d3d9e6;border-radius:8px;width:100%;padding:9px 0;font-size:13.5px;font-weight:600}.scan__toggle[data-v-b5862534]:hover{background:#f5f8ff;border-color:#2b6cf6}.scan__panel[data-v-b5862534]{flex-direction:column;align-items:center;gap:8px;margin-top:12px;display:flex}.scan__box[data-v-b5862534]{width:300px;max-width:100%;min-height:380px}.scan__msg[data-v-b5862534]{color:#8a94a6;text-align:center;font-size:12.5px;line-height:1.5}.scan__msg--ok[data-v-b5862534]{color:#0d9488}.scan__msg--err[data-v-b5862534]{color:#d03050}.scan__tip[data-v-b5862534]{color:#8a94a6;text-align:center;font-size:12px;line-height:1.6}.scan__id[data-v-b5862534]{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.scan__id-label[data-v-b5862534]{color:#92400e;white-space:nowrap;font-size:12px}.scan__id code[data-v-b5862534]{text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all;background:#ffffffb8;border-radius:6px;flex:1;min-width:0;padding:3px 7px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;overflow:hidden}.form[data-v-b5862534]{flex-direction:column;gap:16px;display:flex}.fld span[data-v-b5862534]{color:#5a6478;margin-bottom:6px;font-size:13px;display:block}.go[data-v-b5862534]{letter-spacing:6px;width:100%;margin-top:4px}.err[data-v-b5862534]{flex-direction:column;gap:4px;display:flex}.err b[data-v-b5862534]{color:#d03050;font-size:13px;font-weight:600}.err .tip[data-v-b5862534]{color:#8a94a6;font-size:12px;line-height:1.6}.help[data-v-b5862534]{color:#8a94a6;border-top:1px dashed #e5e8ef;padding-top:12px;font-size:12px;line-height:1.7}.help b[data-v-b5862534]{color:#5a6478}.hint[data-v-b5862534]{margin-bottom:18px}.page[data-v-d900b0d7]{flex-direction:column;gap:14px;display:flex}.toolbar[data-v-d900b0d7]{align-items:center;gap:10px;display:flex}.search input[data-v-d900b0d7]{background:#fff;border:1px solid #dcdfe6;border-radius:6px;outline:none;width:280px;height:32px;padding:0 10px;font-size:13px}.search input[data-v-d900b0d7]:focus{border-color:#2563eb}.spacer[data-v-d900b0d7]{flex:1}.tbl[data-v-d900b0d7]{width:100%}.role-tag[data-v-d900b0d7]{margin-right:4px}.dim[data-v-d900b0d7]{color:#9aa3b2;font-size:12px}.pager[data-v-d900b0d7]{justify-content:flex-end;display:flex}.frm[data-v-d900b0d7]{flex-direction:column;gap:14px;display:flex}.fld span[data-v-d900b0d7]{color:#5a6478;margin-bottom:5px;font-size:13px;display:block}.fld span i[data-v-d900b0d7]{color:#d03050;font-style:normal}.tiny-note[data-v-d900b0d7]{color:#b8860b;background:#fdf6ec;border-radius:6px;padding:8px 10px;font-size:12px}.role-row[data-v-d900b0d7]{padding:4px 0}.role-row .dim[data-v-d900b0d7]{margin-left:8px}.pwd-box[data-v-d900b0d7]{background:#f4f6fa;border:1px dashed #c6cbd4;border-radius:8px;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 14px;display:flex}.pwd-box code[data-v-d900b0d7]{letter-spacing:2px;color:#17233d;font-size:18px;font-weight:700}.pwd-user[data-v-d900b0d7]{color:#5a6478;margin-top:10px;font-size:13px}.pwd-user b[data-v-d900b0d7]{color:#17233d}.page[data-v-e1e096f4]{flex-direction:column;gap:14px;display:flex}.toolbar[data-v-e1e096f4]{align-items:center;gap:10px;display:flex}.hint-line[data-v-e1e096f4]{color:#8a94a6;font-size:12.5px}.spacer[data-v-e1e096f4]{flex:1}.tbl[data-v-e1e096f4]{width:100%}.frm[data-v-e1e096f4]{flex-direction:column;gap:14px;display:flex}.fld span[data-v-e1e096f4]{color:#5a6478;margin-bottom:5px;font-size:13px;display:block}.fld span i[data-v-e1e096f4]{color:#d03050;font-style:normal}.perm-head[data-v-e1e096f4]{align-items:center;gap:6px;display:flex}.perm-list[data-v-e1e096f4]{border:1px solid #e4e7ed;border-radius:8px;max-height:340px;padding:4px 12px 10px;overflow:auto}.perm-nav[data-v-e1e096f4]{padding:8px 0 4px}.perm-nav-head[data-v-e1e096f4]{border-bottom:2px solid #eef1f6;align-items:baseline;gap:8px;margin-top:4px;padding-bottom:4px;display:flex}.perm-nav-head b[data-v-e1e096f4]{color:var(--brand-700,#2b4a86);font-size:12.5px}.perm-nav-hint[data-v-e1e096f4]{color:var(--ink-400,#98a1b0);font-size:11.5px}.perm-nav-body[data-v-e1e096f4]{padding-top:2px}.perm-row[data-v-e1e096f4]{padding:3px 0}.perm-row-label[data-v-e1e096f4]{font-size:13px}.perm-code[data-v-e1e096f4]{color:var(--ink-400,#98a1b0);margin-left:2px;font-size:11px}.perm-btns[data-v-e1e096f4]{flex-wrap:wrap;gap:3px 18px;padding-left:24px;display:flex}
