@charset "UTF-8";.logout-btn[data-v-23e42957]{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--border-medium);border-radius:var(--radius);background:#fff;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .2s}.logout-btn[data-v-23e42957]:hover{border-color:var(--up-red);color:var(--up-red)}.login-page[data-v-c5e30fce]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#0f2847,#1a3a52 40%,#2c5f7a,#1a3a52);background-size:400% 400%;animation:gradientShift-c5e30fce 15s ease infinite;position:relative;overflow:hidden}@keyframes gradientShift-c5e30fce{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.particle-canvas[data-v-c5e30fce]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.bg-blob[data-v-c5e30fce]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;z-index:0;pointer-events:none}.blob-1[data-v-c5e30fce]{width:500px;height:500px;background:radial-gradient(circle,rgba(58,125,156,.6) 0%,transparent 70%);top:-10%;left:-5%;animation:floatBlob1-c5e30fce 20s ease-in-out infinite}.blob-2[data-v-c5e30fce]{width:400px;height:400px;background:radial-gradient(circle,rgba(44,95,122,.5) 0%,transparent 70%);bottom:-10%;right:-5%;animation:floatBlob2-c5e30fce 25s ease-in-out infinite}@keyframes floatBlob1-c5e30fce{0%,to{transform:translate(0) scale(1)}33%{transform:translate(60px,40px) scale(1.1)}66%{transform:translate(-30px,60px) scale(.95)}}@keyframes floatBlob2-c5e30fce{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-50px,-30px) scale(1.05)}66%{transform:translate(40px,-50px) scale(.9)}}.login-card[data-v-c5e30fce]{position:relative;z-index:2;width:820px;max-width:100%;min-height:440px;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:0;box-shadow:0 8px 32px #0003,0 0 0 1px #ffffff1a inset;display:flex;overflow:hidden}.brand-panel[data-v-c5e30fce]{flex:1;background:linear-gradient(160deg,#1a3a52,#0f2847);color:#dce8f2;padding:48px 36px;display:flex;flex-direction:column;justify-content:center;text-align:center;position:relative;overflow:hidden}.brand-panel[data-v-c5e30fce]:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 30%,rgba(58,125,156,.15) 0%,transparent 50%);pointer-events:none}.brand-panel .brand-eyebrow[data-v-c5e30fce]{font-size:11px;font-weight:700;color:var(--accent-gold);letter-spacing:2px;text-transform:uppercase;position:relative}.brand-panel .brand-name[data-v-c5e30fce]{font-size:36px;font-weight:800;letter-spacing:6px;margin-top:12px;line-height:1.3;position:relative}.brand-panel .brand-name .n1[data-v-c5e30fce]{color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.2)}.brand-panel .brand-name .n2[data-v-c5e30fce]{color:var(--accent-gold);text-shadow:0 2px 10px rgba(212,175,55,.3)}.brand-panel .brand-domain[data-v-c5e30fce]{font-size:12px;font-weight:600;color:#8fa9bd;letter-spacing:3px;margin-top:8px;position:relative}.brand-panel .brand-slogan[data-v-c5e30fce]{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);font-size:14px;color:#b7cbe0;letter-spacing:1.5px;position:relative}.form-panel[data-v-c5e30fce]{width:360px;padding:48px 40px;display:flex;flex-direction:column;justify-content:center}.form-title[data-v-c5e30fce]{font-size:24px;font-weight:800;color:var(--text-dark);letter-spacing:1px}.form-sub[data-v-c5e30fce]{font-size:13px;color:var(--text-light);margin-top:8px;margin-bottom:32px}.login-form[data-v-c5e30fce]{display:flex;flex-direction:column;gap:16px}.field[data-v-c5e30fce]{display:flex;flex-direction:column;gap:6px}.field .field-label[data-v-c5e30fce]{font-size:13px;font-weight:600;color:var(--text-muted)}.field .field-input[data-v-c5e30fce]{display:flex;align-items:center;gap:10px;padding:0 12px;height:42px;border:1px solid var(--border-medium);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s}.field .field-input i[data-v-c5e30fce]{color:var(--text-light);font-size:14px}.field .field-input input[data-v-c5e30fce]{flex:1;border:none;outline:none;font-size:14px;color:var(--text-dark);background:transparent;font-family:inherit}.field .field-input input[data-v-c5e30fce]::placeholder{color:var(--text-light)}.field .field-input[data-v-c5e30fce]:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #2c5f7a1f}.error-tip[data-v-c5e30fce]{color:var(--up-red);font-size:13px;display:flex;align-items:center;gap:6px}.submit-btn[data-v-c5e30fce]{margin-top:8px;height:46px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,#2c5f7a,#1a3a52);color:#fff;font-size:15px;font-weight:700;letter-spacing:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 15px #2c5f7a4d;position:relative;overflow:hidden}.submit-btn[data-v-c5e30fce]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.submit-btn[data-v-c5e30fce]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #2c5f7a66}.submit-btn[data-v-c5e30fce]:hover:not(:disabled):before{left:100%}.submit-btn[data-v-c5e30fce]:active:not(:disabled){transform:translateY(0)}.submit-btn[data-v-c5e30fce]:disabled{opacity:.7;cursor:default;transform:none}.hint[data-v-c5e30fce]{margin-top:10px;text-align:center;font-size:12px;color:var(--text-light)}@media (max-width: 768px){.login-card[data-v-c5e30fce]{flex-direction:column;width:100%}.brand-panel[data-v-c5e30fce]{padding:32px 24px}.form-panel[data-v-c5e30fce]{width:100%;padding:32px 24px}}[data-v-4e39e496]:root{--bg-body: #f5f8fc;--card-bg: #ffffff;--border-light: #e2e8f0;--border-medium: #cbd5e1;--primary: #2c5f7a;--primary-hover: #1f4a62;--primary-soft: #eef2fa;--text-dark: #1a2c3a;--text-muted: #4a627a;--text-light: #7892a8;--accent-gold: #c9a458;--accent-gold-dark: #b48b3a;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .05);--radius: 4px;--sidebar-bg: #1f3e52;--hover-bg: #f0f5fb;--up-red: #d43d3d;--down-green: #1e9e6a;--down-green-light: #e4f8ef2f;--flat-gray: #7892a8;--sidebar-width: 216px;--topbar-height: 56px;--content-padding: 24px;--module-gap: 20px;--stat-card-height: 92px}.upload-file-wrap[data-v-4e39e496]{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.download-template-btn[data-v-4e39e496]{font-size:13px}.utab-refresh[data-v-4e39e496]{margin-left:auto;align-self:center;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:6px;transition:color .2s,background .2s}.utab-refresh[data-v-4e39e496]:hover:not(:disabled){color:var(--primary);background:var(--bg-hover, rgba(0, 0, 0, .04))}.utab-refresh[data-v-4e39e496]:disabled{cursor:not-allowed;opacity:.6}.form-row-top[data-v-0354ec3f]{align-items:center}.sync-user-select[data-v-0354ec3f]{flex:1;max-width:480px}.selected-tags[data-v-0354ec3f]{display:flex;flex-wrap:wrap;margin-top:8px;padding:0 30px 30px 120px;gap:10px}.selected-tag[data-v-0354ec3f]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#e6f4ff;border:1px solid #91caff;border-radius:4px;font-size:12px;color:#0958d9}.selected-tag i[data-v-0354ec3f]{cursor:pointer;font-size:11px}.selected-tag i[data-v-0354ec3f]:hover{color:#cf1322}.time-slots[data-v-0354ec3f]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.time-slot[data-v-0354ec3f]{display:flex;align-items:center;gap:6px}.time-input[data-v-0354ec3f]{height:34px;border:1px solid var(--border-light);border-radius:var(--radius);padding:0 8px;font-size:14px;outline:none;transition:border-color .2s}.time-input[data-v-0354ec3f]:focus{border-color:var(--primary)}.time-del[data-v-0354ec3f]{cursor:pointer;color:var(--text-muted);font-size:13px}.time-del[data-v-0354ec3f]:hover{color:var(--up-red)}.btn-sm[data-v-0354ec3f]{height:28px;padding:0 10px;font-size:12px}.switch-wrap[data-v-0354ec3f]{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.switch-wrap input[data-v-0354ec3f]{display:none}.switch-wrap .switch-slider[data-v-0354ec3f]{width:40px;height:22px;background:#ccc;border-radius:11px;position:relative;transition:background .2s}.switch-wrap .switch-slider[data-v-0354ec3f]:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.switch-wrap input:checked+.switch-slider[data-v-0354ec3f]{background:var(--primary)}.switch-wrap input:checked+.switch-slider[data-v-0354ec3f]:after{transform:translate(18px)}.switch-wrap .switch-text[data-v-0354ec3f]{font-size:13px;color:var(--text-muted)}.form-tip[data-v-0354ec3f]{font-size:12px;color:var(--text-muted);margin-left:8px}.time-badge[data-v-0354ec3f]{display:inline-block;padding:2px 8px;margin:0 4px 2px 0;background:#f5f5f5;border-radius:4px;font-size:12px;color:var(--text-dark)}.col-actions[data-v-0354ec3f]{width:160px}.link-danger[data-v-0354ec3f]{color:var(--up-red)}.toolbar-filters[data-v-0354ec3f]{display:flex;align-items:center;gap:8px}.filter-input[data-v-0354ec3f]{height:28px;padding:0 8px;border:1px solid var(--border-light);border-radius:var(--radius);font-size:13px;outline:none;transition:border-color .2s}.filter-input[data-v-0354ec3f]:focus{border-color:var(--primary)}.btn-auto-sync[data-v-0354ec3f]{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;background:#fff;border:1px solid var(--primary);border-radius:var(--radius);font-size:12px;color:var(--primary);cursor:pointer;transition:all .2s}.btn-auto-sync i[data-v-0354ec3f]{font-size:11px}.btn-auto-sync[data-v-0354ec3f]:hover{background:var(--primary);color:#fff}.btn-auto-sync[data-v-0354ec3f]:active{transform:scale(.96)}.confirm-body[data-v-0354ec3f]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0}.confirm-icon[data-v-0354ec3f]{font-size:40px;color:#faad14}.confirm-icon.danger[data-v-0354ec3f]{color:var(--up-red)}.confirm-message[data-v-0354ec3f]{font-size:14px;color:var(--text-dark);text-align:center;line-height:1.6}:root{--bg-body: #f5f8fc;--card-bg: #ffffff;--border-light: #e2e8f0;--border-medium: #cbd5e1;--primary: #2c5f7a;--primary-hover: #1f4a62;--primary-soft: #eef2fa;--text-dark: #1a2c3a;--text-muted: #4a627a;--text-light: #7892a8;--accent-gold: #c9a458;--accent-gold-dark: #b48b3a;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .05);--radius: 4px;--sidebar-bg: #1f3e52;--hover-bg: #f0f5fb;--up-red: #d43d3d;--down-green: #1e9e6a;--down-green-light: #e4f8ef2f;--flat-gray: #7892a8;--sidebar-width: 216px;--topbar-height: 56px;--content-padding: 24px;--module-gap: 20px;--stat-card-height: 92px}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg-body);font-family:Inter,Segoe UI,PingFang SC,微软雅黑,system-ui,sans-serif;font-size:14px;line-height:1.5;color:var(--text-dark)}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:#dce8f2;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:20}.sidebar .sidebar-brand{padding:20px 12px 18px;border-bottom:1px solid #2c5268;text-align:center}.sidebar .sidebar-brand .brand-eyebrow{font-size:11px;font-weight:700;color:var(--accent-gold);letter-spacing:1px;padding-left:1px}.sidebar .sidebar-brand .brand-name{font-size:24px;font-weight:800;letter-spacing:3px;padding-left:3px;line-height:1.35}.sidebar .sidebar-brand .brand-name .n1{color:#dce8f2}.sidebar .sidebar-brand .brand-name .n2{color:var(--accent-gold)}.sidebar .sidebar-brand .brand-domain{font-size:12px;font-weight:600;color:#8fa9bd;letter-spacing:2.5px;padding-left:2.5px}.sidebar .menu{flex:1;padding:12px 0}.sidebar .menu .menu-label{font-size:13px;font-weight:600;color:#8fa9bd;letter-spacing:1px;padding:10px 16px 8px}.sidebar .menu .menu-item{display:flex;align-items:center;gap:10px;padding:11px 16px;font-size:14px;color:#c3d4e2;cursor:pointer;border-left:3px solid transparent;transition:all .2s;-webkit-user-select:none;user-select:none}.sidebar .menu .menu-item i{width:18px;text-align:center;font-size:14px}.sidebar .menu .menu-item:hover{background:#ffffff0d;color:#fff}.sidebar .menu .menu-item.active{background:#c9a4581f;border-left-color:var(--accent-gold);color:#fff;font-weight:600}.sidebar .menu .menu-item.active i{color:var(--accent-gold)}.sidebar .menu .menu-item.menu-parent{position:relative}.sidebar .menu .menu-item.sub{padding-left:40px;font-size:13px}.sidebar .menu .menu-arrow{position:absolute;right:14px;font-size:10px;color:#7d99ad;transition:transform .2s}.sidebar .menu .menu-group.collapsed .menu-arrow{transform:rotate(-90deg)}.sidebar .menu .submenu{overflow:hidden;max-height:100px;transition:max-height .25s ease}.sidebar .menu .menu-group.collapsed .submenu{max-height:0}.sidebar .sidebar-footer{padding:12px 16px;border-top:1px solid #2c5268;font-size:12px;color:#7d99ad}.sidebar .sidebar-footer a{color:#c3d4e2;text-decoration:none}.sidebar .sidebar-footer a:hover{color:var(--accent-gold)}.main{flex:1;margin-left:var(--sidebar-width);min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-height);background:var(--card-bg);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;padding:0 var(--content-padding);position:sticky;top:0;z-index:10}.topbar .topbar-title{font-size:16px;font-weight:700}.topbar .topbar-title .crumb{font-size:12px;color:var(--text-light);font-weight:400;margin-left:8px}.topbar .topbar-right{display:flex;align-items:center;gap:16px}.topbar .admin-chip{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.topbar .admin-avatar{width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--accent-gold);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.content{padding:var(--content-padding)}.view{display:none}.view.active{display:block;animation:viewFade .25s ease both}@keyframes viewFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width: 768px){:root{--sidebar-width: 60px;--content-padding: 12px}.sidebar .menu-label,.sidebar .menu-item span,.sidebar .sidebar-footer{display:none}.sidebar .sidebar-brand{padding:14px 0}.sidebar .sidebar-brand .brand-eyebrow,.sidebar .sidebar-brand .brand-domain,.sidebar .sidebar-brand .brand-name{display:none}.sidebar .sidebar-brand:after{content:"聊";color:var(--accent-gold);font-size:20px;font-weight:800}.sidebar .menu-item{justify-content:center;padding:14px 0}.topbar-title .crumb{display:none}}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--module-gap);margin-bottom:var(--module-gap)}.stat-card{background:var(--card-bg);border-radius:var(--radius);height:var(--stat-card-height);padding:16px 20px;display:flex;align-items:center;gap:16px;box-shadow:0 0 0 1px var(--border-light),var(--shadow-sm)}.stat-card .stat-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.stat-card .stat-icon.blue{background:var(--primary-soft);color:var(--primary)}.stat-card .stat-icon.gold{background:#f7f0e0;color:var(--accent-gold-dark)}.stat-card .stat-icon.green{background:#e6f5ef;color:var(--down-green)}.stat-card .stat-num{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.stat-card .stat-num small{font-size:12px;color:var(--text-light);font-weight:400;margin-left:2px}.stat-card .stat-label{font-size:12px;color:var(--text-light)}.panel{background:var(--card-bg);border-radius:var(--radius);box-shadow:0 0 0 1px var(--border-light),var(--shadow-sm)}.panel .panel-toolbar{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border-light);flex-wrap:wrap}.panel .panel-toolbar .spacer{flex:1}.panel .panel-title{font-size:15px;font-weight:700}.form-block{padding:20px 24px}.form-row{display:flex;align-items:center;gap:12px;margin-bottom:18px}.form-row:last-child{margin-bottom:0}.form-label{width:110px;flex-shrink:0;font-size:13px;color:var(--text-muted);text-align:right}.form-label .req{color:var(--up-red)}select.form-select{width:320px;height:36px;border:1px solid var(--border-light);border-radius:var(--radius);padding:0 10px;font-size:14px;font-family:inherit;color:var(--text-dark);background:#fff;outline:none;cursor:pointer;transition:border-color .2s}select.form-select:hover,select.form-select:focus{border-color:var(--primary)}.search-select{position:relative;width:320px;z-index:10}.search-select.open{z-index:100}.ss-input-wrap{position:relative;display:flex;align-items:center;height:36px;border:1px solid var(--border-light);border-radius:var(--radius);background:#fff;padding:0 30px 0 32px;cursor:text;transition:border-color .2s}.ss-input-wrap:hover,.ss-input-wrap:focus-within{border-color:var(--primary)}.ss-icon{position:absolute;left:10px;font-size:13px;color:var(--text-muted);pointer-events:none}.ss-input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--text-dark);min-width:0}.ss-input::placeholder{color:var(--text-light)}.ss-clear{position:absolute;right:28px;border:none;background:transparent;cursor:pointer;color:var(--text-light);font-size:12px;padding:2px;display:flex;align-items:center;border-radius:50%}.ss-clear:hover{color:var(--text-muted);background:var(--hover-bg)}.ss-arrow{position:absolute;right:10px;font-size:13px;color:var(--text-muted);transition:transform .2s;pointer-events:none}.ss-arrow.open{transform:rotate(180deg)}.ss-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:0 6px 20px #0f1c261f;overflow-y:auto;z-index:20}.ss-list{list-style:none;margin:0;padding:4px 0}.ss-item{padding:8px 12px;font-size:14px;color:var(--text-dark);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s}.ss-item:hover{background:var(--hover-bg)}.ss-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.ss-loading,.ss-empty{padding:16px 12px;text-align:center;font-size:13px;color:var(--text-muted)}.ss-loading i,.ss-empty i{margin-right:6px}.ss-drop-enter-active,.ss-drop-leave-active{transition:opacity .15s ease,transform .15s ease}.ss-drop-enter-from,.ss-drop-leave-to{opacity:0;transform:translateY(-6px)}.capsule-switch{position:relative;display:inline-flex;background:var(--primary-soft);border-radius:999px;padding:3px}.capsule-switch .cap{position:relative;z-index:1;border:none;background:none;cursor:pointer;width:76px;height:30px;font-size:13px;font-weight:600;color:var(--text-muted);font-family:inherit;transition:color .2s}.capsule-switch .cap.active{color:#fff}.capsule-switch .cap-slider{position:absolute;top:3px;left:3px;width:76px;height:30px;background:var(--primary);border-radius:999px;transition:transform .25s ease}.file-drop{border:1px dashed var(--border-medium);border-radius:var(--radius);padding:30px;text-align:center;cursor:pointer;color:var(--text-light);transition:all .2s;width:470px}.file-drop:hover{border-color:var(--primary);background:var(--hover-bg)}.file-drop.has-file{border-color:var(--down-green);border-style:solid;color:var(--primary);background:var(--down-green-light)}.file-drop.has-file .file-drop-text{color:var(--text-dark);font-weight:600}.file-drop i{font-size:24px;display:block;margin-bottom:8px;color:var(--primary)}.file-drop .file-drop-text{font-size:14px;color:var(--text-muted)}.file-drop .file-drop-hint{font-size:12px;margin-top:4px}.user-tabs{position:relative;display:flex;padding:0 16px;border-bottom:1px solid var(--border-light)}.user-tabs .utab{width:96px;text-align:center;padding:13px 0 12px;font-size:14px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.user-tabs .utab:hover{color:var(--primary)}.user-tabs .utab.active{color:var(--primary);font-weight:700}.user-tabs .utab-baseline{position:absolute;left:16px;bottom:0;width:192px;height:2px;background:var(--border-light)}.user-tabs .utab-indicator{width:96px;height:2px;background:var(--primary);transition:transform .25s ease}.user-tabs .utab-refresh{margin-left:auto;align-self:center;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:6px;transition:color .2s,background .2s}.user-tabs .utab-refresh:hover:not(:disabled){color:var(--primary);background:var(--bg-hover, rgba(0, 0, 0, .04))}.user-tabs .utab-refresh:disabled{cursor:not-allowed;opacity:.6}.usub{display:none}.usub.active{display:block}.icon-btn.active{background:var(--primary);color:#fff}.company-cell{display:flex;align-items:center}.normal-table{table-layout:fixed}.normal-table th:nth-child(1){width:56px}.normal-table th:nth-child(2){width:26%}.normal-table th:nth-child(3){width:15%}.normal-table th:nth-child(4){width:14%}.normal-table th:nth-child(5){width:13%}.normal-table th:nth-child(6){width:11%}.normal-table th:nth-child(7){width:128px}.normal-table td{overflow:hidden;text-overflow:ellipsis}.contact-count{display:inline-block;font-size:11px;font-weight:600;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:1px 8px;margin-left:8px;white-space:nowrap}tr.contact-subrow td{background:#f7fafd;font-size:14px;padding:10px 12px;border-bottom:1px solid var(--border-light)}tr.contact-subrow td:nth-child(3){font-weight:700}tr.contact-subrow:hover td{background:#f2f7fc}tr.contact-subrow .primary-star{color:var(--accent-gold-dark);font-size:11px;margin-left:4px}.add-contact-btn{border:1px dashed var(--border-medium);background:none;color:var(--text-muted);font-size:12px;padding:4px 14px;border-radius:var(--radius);cursor:pointer;font-family:inherit;transition:all .2s}.add-contact-btn:hover{border-color:var(--primary);color:var(--primary)}.link-btn{border:none;background:none;cursor:pointer;color:var(--primary);font-size:12px;height:28px;padding:0 4px;font-family:inherit}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--up-red)}.input-line{height:34px;border:none;border-bottom:1px solid var(--border-light);background:transparent;font-size:14px;color:var(--text-dark);padding:0 4px;outline:none;transition:border-color .2s;font-family:inherit}.input-line:hover,.input-line:focus{border-bottom-color:var(--primary)}.input-line::placeholder{color:var(--text-light)}select.input-line{cursor:pointer}.search-box{display:flex;align-items:center;gap:6px;color:var(--text-light)}.btn{height:34px;padding:0 16px;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:6px;transition:all .2s;font-family:inherit}.btn.btn-primary{background:var(--primary);color:#fff}.btn.btn-primary:hover{background:var(--primary-hover)}.btn.btn-ghost{background:transparent;border:1px solid var(--border-medium);color:var(--text-muted)}.btn.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn.btn-danger{background:var(--up-red);color:#fff}.btn.btn-danger:hover{background:#b83232}.confirm-body{display:flex;align-items:flex-start;gap:14px;padding:4px 0}.confirm-body .confirm-icon{font-size:22px;color:var(--text-muted);flex-shrink:0;margin-top:2px}.confirm-body .confirm-icon.danger{color:var(--up-red)}.confirm-body .confirm-message{margin:0;font-size:14px;line-height:1.6;color:var(--text-primary, #334155)}.table-wrapper{overflow-x:auto}.data-table{width:100%;min-width:860px;border-collapse:collapse;font-size:14px}.data-table thead{background:var(--primary-soft)}.data-table thead th{padding:12px;text-align:left;font-weight:700;font-size:13px;letter-spacing:.3px;white-space:nowrap;border-bottom:2px solid var(--primary)}.data-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border-light);vertical-align:middle}.data-table tbody tr:hover{background:var(--hover-bg)}.data-table .col-index{width:48px;text-align:center;color:var(--text-light)}.data-table .col-action{width:120px;text-align:center;white-space:nowrap}.cell-main{font-weight:700;font-size:14px}.cell-sub{font-size:12px;color:var(--text-light)}.num{font-variant-numeric:tabular-nums}.price-num{font-weight:700;font-size:15px;color:var(--accent-gold-dark);font-variant-numeric:tabular-nums}.price-num small{font-size:12px;color:var(--text-light);font-weight:400}.chg{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.chg.up{color:var(--up-red)}.chg.down{color:var(--down-green)}.chg.flat{color:var(--flat-gray)}.trend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.trend-dot.up{background:var(--up-red)}.trend-dot.down{background:var(--down-green)}.trend-dot.flat{background:var(--flat-gray)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 10px;border-radius:999px;white-space:nowrap}.badge.on{background:#e6f5ef;color:var(--down-green)}.badge.off{background:#f3f4f6;color:var(--text-light)}.badge.pending{background:#f7f0e0;color:var(--accent-gold-dark)}.badge.role-admin{background:var(--primary-soft);color:var(--primary)}.badge.role-vip{background:#f7f0e0;color:var(--accent-gold-dark)}.badge.role-normal{background:#f3f4f6;color:var(--text-muted)}.row-actions{display:inline-flex;gap:8px}.icon-btn{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s;background:var(--primary-soft);color:var(--primary)}.icon-btn:hover{background:var(--primary);color:#fff}.icon-btn.danger{background:#fbeaea;color:var(--up-red)}.icon-btn.danger:hover{background:var(--up-red);color:#fff}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:12px 16px;font-size:13px;color:var(--text-muted);flex-wrap:wrap}.page-btn{min-width:30px;height:30px;border:1px solid var(--border-light);background:#fff;border-radius:var(--radius);cursor:pointer;font-size:13px;color:var(--text-muted);padding:0 8px;font-family:inherit;flex-shrink:0}.page-btn:hover{border-color:var(--primary);color:var(--primary)}.page-btn.current{background:var(--primary);border-color:var(--primary);color:#fff}.page-btn:disabled{opacity:.4;cursor:default}.page-total{margin-right:auto;color:var(--text-light)}.page-ellipsis{padding:0 4px;color:var(--text-muted);-webkit-user-select:none;user-select:none}.page-size-wrap{display:inline-flex;align-items:center}.page-size-select{height:30px;border:1px solid var(--border-light);border-radius:var(--radius);background:#fff;padding:0 24px 0 8px;font-size:13px;color:var(--text-primary, #334155);cursor:pointer;font-family:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.page-size-select:hover,.page-size-select:focus{border-color:var(--primary);outline:none}.page-jump-wrap{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted)}.page-jump-input{width:48px;height:30px;border:1px solid var(--border-light);border-radius:var(--radius);background:#fff;padding:0 6px;font-size:13px;text-align:center;color:var(--text-primary, #334155);font-family:inherit}.page-jump-input:hover,.page-jump-input:focus{border-color:var(--primary);outline:none}.page-jump-input::-webkit-outer-spin-button,.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.page-jump-input{-moz-appearance:textfield}.page-jump-btn{height:30px;padding:0 10px;border:1px solid var(--border-light);background:#fff;border-radius:var(--radius);cursor:pointer;font-size:13px;color:var(--text-muted);font-family:inherit}.page-jump-btn:hover{border-color:var(--primary);color:var(--primary)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1c2673;display:none;align-items:center;justify-content:center;z-index:100}.modal-mask.show{display:flex}.modal{width:440px;max-width:calc(100vw - 32px);background:#fff;border-radius:8px;box-shadow:0 12px 40px #0000002e;animation:modalIn .2s ease both}.modal .modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-light)}.modal .modal-head h3{font-size:15px}.modal .modal-close{border:none;background:none;cursor:pointer;color:var(--text-light);font-size:16px}.modal .modal-close:hover{color:var(--text-dark)}.modal .modal-body{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.modal .modal-foot{padding:12px 20px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:10px}@keyframes modalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.form-item{display:flex;flex-direction:column;gap:4px}.form-item.full{grid-column:1/-1}.form-item label{font-size:12px;color:var(--text-muted)}.form-item label .req{color:var(--up-red)}.form-item .input-line{border:1px solid var(--border-light);border-radius:var(--radius);padding:0 10px;height:36px}.form-item .input-line:hover,.form-item .input-line:focus{border-color:var(--primary)}.toast{position:fixed;top:72px;left:50%;transform:translate(-50%) translateY(-8px);background:var(--text-dark);color:#fff;font-size:13px;padding:8px 20px;border-radius:var(--radius);opacity:0;pointer-events:none;transition:all .25s;z-index:200}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.empty-tip{padding:48px 0;text-align:center;color:var(--text-light);font-size:14px}.empty-tip i{font-size:28px;display:block;margin-bottom:10px;color:var(--border-medium)}@media (max-width: 768px){.stat-row{grid-template-columns:1fr}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-colored:#ddd}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;transform:translate3d(0,0,var(--toastify-z-index) px);width:var(--toastify-toast-width);z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:1em;top:1em}.Toastify__toast-container--top-center{left:50%;top:1em;transform:translate(-50%)}.Toastify__toast-container--top-right{right:1em;top:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{left:0;margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translate(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translate(0)}.Toastify__toast-container--rtl{left:auto;right:0}}.Toastify__toast{border-radius:4px;box-shadow:0 1px 10px #0000001a,0 2px 15px #0000000d;box-sizing:border-box;cursor:pointer;direction:ltr;display:flex;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:var(--toastify-toast-max-height);min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px;white-space:pre-wrap}.Toastify__toast-body>div:last-child{flex:1}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify__toast-text{display:flex;flex-direction:column;gap:2px;line-height:1.35;width:100%}.Toastify__toast-text-title{font-weight:600}.Toastify__toast-text-content{opacity:.92}.Toastify--animate{animation-duration:.7s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:var(--toastify-color-info);color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:var(--toastify-color-success);color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:var(--toastify-color-warning);color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:var(--toastify-color-error);color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--default{background:var(--toastify-color-progress-colored)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentcolor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:5px;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{left:auto;right:0;transform-origin:right}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__none{0%,60%,75%,90%,to{animation-duration:0;animation-timing-function:none}0%{opacity:1;transform:translateZ(0)}to{transform:translateZ(0)}}.Toastify__none-enter--bottom-center,.Toastify__none-enter--bottom-left,.Toastify__none-enter--bottom-right,.Toastify__none-enter--top-center,.Toastify__none-enter--top-left,.Toastify__none-enter--top-right{animation-name:Toastify__none}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px) rotateX(-20deg)}to{opacity:0;transform:perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{transform:translate3d(110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{transform:translate3d(-110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}
