:root{--bg:#f5f7fa;--panel:#fff;--panel-muted:#f8fafc;--sidebar:#263445;--sidebar-hover:#31445a;--sidebar-active:#1f6fd1;--text:#303133;--regular:#606266;--muted:#909399;--border:#dcdfe6;--border-light:#ebeef5;--primary:#409eff;--primary-dark:#337ecc;--success:#67c23a;--danger:#f56c6c;--input:#fff;--sans:Arial, "Microsoft YaHei", sans-serif;font:14px/1.5 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}#app{min-height:100svh}h1,h2,p{margin:0}.login-page{background:linear-gradient(90deg, #d8e9ff 0 18%, transparent 18% 100%), linear-gradient(180deg, transparent 0 66%, #e8f3ff 66% 100%), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:22px;min-height:100svh;display:flex;position:relative;overflow:hidden}.login-page--modal{background:0 0;min-height:0;overflow:visible}.login-page:before,.login-page:after{content:"";pointer-events:none;display:block;position:absolute}.login-page.login-page--modal:before,.login-page.login-page--modal:after{display:none}.login-page:before{filter:blur(2px);background:linear-gradient(90deg,#409eff 0 42%,#0000 42% 100%),linear-gradient(#0000 0 48%,#79bbff 48% 100%);width:360px;height:180px;top:72px;right:8%;transform:rotate(-8deg)}.login-page:after{filter:blur(3px);background:linear-gradient(90deg,#0000 0 18%,#a0cfff 18% 60%,#0000 60% 100%),linear-gradient(#337ecc 0 34%,#0000 34% 100%);width:420px;height:260px;bottom:56px;left:8%;transform:rotate(10deg)}.brand-panel{z-index:1;color:var(--text);background:0 0;padding:0;position:relative}.brand-panel h1{letter-spacing:0;text-align:center;font-size:32px;font-weight:700;line-height:1.2}.login-page--modal .login-panel{width:100%;min-height:0;box-shadow:none;border:0;padding:18px 22px 4px}.login-page--modal .login-form{gap:14px}.login-page--modal .panel-heading{display:none}.login-panel{z-index:2;border:1px solid var(--border-light);background:var(--panel);border-radius:6px;flex-direction:column;justify-content:center;width:min(420px,100vw - 48px);padding:40px;display:flex;position:relative}.panel-heading{margin-bottom:24px}.panel-heading h2{letter-spacing:0;font-size:22px;font-weight:700;line-height:1.2}.login-form{flex-direction:column;gap:16px;display:flex}.field{text-align:left;flex-direction:column;gap:6px;display:flex}.field span,.field>label{color:var(--regular);font-size:14px;font-weight:500}.required-label:before{content:"*";color:var(--danger);margin-right:4px;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--input);width:100%;color:var(--text);border-radius:4px;outline:none;transition:border-color .15s,background-color .15s}.field input,.field select{height:36px;padding:0 12px}.field textarea{resize:vertical;min-height:136px;line-height:1.6;font:inherit;padding:10px 12px}.field input:hover,.field select:hover,.field textarea:hover{border-color:#c0c4cc}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)}.platform-select{width:100%;position:relative}.platform-select-trigger{border:1px solid var(--border);background:var(--input);width:100%;height:36px;color:var(--text);text-align:left;white-space:nowrap;border-radius:4px;align-items:center;gap:7px;padding:0 28px 0 10px;font-size:13px;transition:border-color .15s,background-color .15s;display:flex}.platform-select-trigger:hover,.platform-select-trigger:focus{border-color:var(--primary);outline:none}.platform-select-arrow{border-top:5px solid #909399;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;position:absolute;right:10px}.platform-select-menu{z-index:30;border:1px solid var(--border);background:#fff;border-radius:4px;width:100%;min-width:132px;padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 18px #1f2d3d1f}.platform-select-option{width:100%;height:30px;color:var(--regular);text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.platform-select-option:hover,.platform-select-option.active{color:var(--primary);background:#ecf5ff}.platform-select-icon,.platform-select-empty-icon{flex:none;width:18px;height:18px}.platform-select-icon{object-fit:contain}.platform-select-empty-icon{background:#f5f7fa;border:1px solid #dcdfe6;border-radius:2px}.check-field{height:36px;color:var(--regular);white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.check-field input{width:14px;height:14px;accent-color:var(--primary);margin:0}.code-row{grid-template-columns:1fr 112px;align-items:end;gap:10px;display:grid}.primary-button,.secondary-button,.flat-button{border:1px solid var(--border);border-radius:4px;height:36px;font-weight:500}.primary-button{border-color:var(--primary);background:var(--primary);color:#fff;margin-top:4px}.primary-button:not(:disabled):hover{border-color:var(--primary-dark);background:var(--primary-dark)}.secondary-button,.flat-button{color:var(--text);background:#fff}.secondary-button:not(:disabled):hover,.flat-button:not(:disabled):hover{border-color:var(--primary);color:var(--primary)}.flat-button.accent{border-color:var(--primary);background:var(--primary);color:#fff}.flat-button.accent:hover{border-color:var(--primary-dark);background:var(--primary-dark);color:#fff}.flat-button.danger{color:#fff;background:#f56c6c;border-color:#f56c6c}.flat-button.danger:hover{color:#fff;background:#dd6161;border-color:#dd6161}.primary-button:disabled,.secondary-button:disabled,.flat-button:disabled{border-color:var(--border);color:#a8abb2;background:#f5f7fa}.feedback{border:1px solid var(--border-light);background:var(--panel-muted);border-radius:4px;padding:8px 10px;font-weight:500}.feedback.success{color:var(--success);border-color:#b3e19d}.feedback.error{color:var(--danger);border-color:#fab6b6}.app-shell{background:var(--bg);grid-template-columns:auto 1fr;height:100svh;min-height:100svh;display:grid;overflow:hidden}.app-sidebar{background:var(--sidebar);color:#e5eaf3;width:220px;height:100svh;min-height:100svh;transition:width .18s;position:sticky;top:0;overflow:hidden auto}.app-sidebar.collapsed{width:64px}.sidebar-toggle{background:var(--sidebar);color:#e5eaf3;border:0;border-radius:0;justify-content:center;align-items:center;width:100%;height:56px;display:flex}.sidebar-toggle:hover,.sidebar-item:hover,.sidebar-subitem:hover{background:var(--sidebar-hover)}.sidebar-item.active{background:var(--sidebar-active);color:#fff}.sidebar-toggle svg,.sidebar-item svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:square;stroke-linejoin:miter;width:18px;height:18px}.sidebar-group-toggle{position:relative}.sidebar-group-toggle .sidebar-caret{width:14px;height:14px;transition:transform .16s;position:absolute;right:14px}.sidebar-group.open .sidebar-caret{transform:rotate(180deg)}.sidebar-subnav{gap:2px;padding:0 0 6px;display:grid}.sidebar-subitem{color:#b9c7d8;min-height:38px;font:inherit;text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:48px 1fr;align-items:center;padding:0;font-size:13px;text-decoration:none;display:grid}.sidebar-subitem:before{content:"";background:0 0;border:1px solid;justify-self:center;width:6px;height:6px}.sidebar-subitem.active{color:#fff;background:#1f6fd1}.sidebar-nav{flex-direction:column;padding:8px 0;display:flex}.sidebar-item{color:#d3dce6;text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:48px 1fr;align-items:center;width:100%;min-height:48px;padding:0;font-weight:500;text-decoration:none;display:grid}.sidebar-item svg{justify-self:center}.app-sidebar.collapsed .sidebar-item{grid-template-columns:1fr}.app-sidebar.collapsed .sidebar-item span,.app-sidebar.collapsed .sidebar-caret,.app-sidebar.collapsed .sidebar-subnav{display:none}.main-area{grid-template-rows:56px 1fr;min-width:0;height:100svh;min-height:0;display:grid;overflow:hidden}.app-header{border-bottom:1px solid var(--border-light);background:var(--panel);justify-content:space-between;align-items:center;min-width:0;height:56px;display:flex}.header-title,.header-account{align-items:center;min-width:0;display:flex}.header-title{gap:10px;padding-left:20px;font-size:16px;font-weight:700}.header-sub-title{color:var(--muted);font-size:13px;font-weight:500}.header-account{height:100%;color:var(--regular);padding-right:12px;font-size:14px;font-weight:500}.header-account span{text-overflow:ellipsis;white-space:nowrap;max-width:180px;padding:0 12px;overflow:hidden}.header-account button{border:1px solid var(--border);min-width:64px;height:32px;color:var(--regular);background:#fff;border-radius:4px;font-weight:500}.header-account button:hover{border-color:var(--danger);color:var(--danger)}.main-workspace{background:var(--bg);min-width:0;min-height:0;overflow:auto}.page-view{min-height:100%}.home-page{padding:16px;overflow:auto}.home-waterfall{grid-template-columns:minmax(420px,720px);align-items:start;gap:14px;display:grid}.home-guide-card{border:1px solid var(--border-light);background:var(--panel);border-radius:4px;width:100%;padding:18px}.home-guide-card header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.home-guide-card h2,.home-guide-card h3,.home-guide-card p{margin:0}.home-guide-card h2{color:var(--text);font-size:18px}.home-guide-card header span{color:var(--muted);margin-top:4px;font-size:13px;display:block}.home-guide-card section{padding-top:14px}.home-guide-card h3{color:var(--regular);margin-bottom:6px;font-size:14px}.home-guide-card p{color:var(--regular);font-size:13px;line-height:1.75}.home-guide-card p+p{margin-top:4px}.word-cloud-card{min-height:440px}.word-cloud-card header .flat-button{flex:none}.word-cloud{aspect-ratio:1;background:#f8fbff;border:1px solid #dbeafe;border-radius:50%;flex-wrap:wrap;place-content:center;align-items:center;gap:10px 12px;width:min(100%,430px);margin:22px auto 0;padding:34px;display:flex;overflow:hidden}.word-cloud span{white-space:nowrap;font-weight:700;line-height:1.1;display:inline-block}.word-cloud-empty{aspect-ratio:1;width:min(100%,430px);color:var(--muted);background:#f8fbff;border:1px solid #dbeafe;border-radius:50%;place-items:center;margin:22px auto 0;display:grid}.player-monitor-page{height:100%;min-height:0}.gs-manage-page{padding:16px}.gs-manage-page,.manage-panel,.table-wrap{min-width:0;max-width:100%}.table-wrap{scrollbar-gutter:stable;overflow:auto hidden}.manage-panel{gap:12px;display:grid}.manage-form{grid-template-columns:104px 104px;justify-content:start}.manage-filters{grid-template-columns:180px 148px 240px 128px;justify-content:start;gap:8px}.confirm-text{color:var(--regular);margin:0;line-height:1.7}.monitor-layout{grid-template-columns:minmax(0,1fr);height:100%;min-height:0;display:grid;position:relative}.monitor-main{min-width:0;min-height:0;padding:16px;overflow:auto}.filter-panel{border:1px solid var(--border-light);background:var(--panel);border-radius:4px;grid-template-columns:180px minmax(260px,340px) 96px 128px;align-items:end;gap:12px;padding:16px;display:grid}.core-filter-panel{grid-template-columns:160px 148px 220px 128px 104px;justify-content:start}.server-combobox{position:relative}.server-dropdown{z-index:5;border:1px solid var(--border);background:var(--panel);border-radius:4px;width:100%;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;overflow:auto}.server-option{border:0;border-bottom:1px solid var(--border-light);background:var(--panel);width:100%;min-height:34px;color:var(--text);text-align:left;border-radius:0;padding:7px 12px;display:block}.server-option:hover{color:var(--primary);background:#ecf5ff}.server-option.disabled,.server-option:disabled{cursor:not-allowed;color:#a8abb2;background:#f5f7fa}.server-option.disabled:hover,.server-option:disabled:hover{color:#a8abb2;background:#f5f7fa}.server-option span{float:right;color:#a8abb2;font-size:12px}.server-option.muted{color:var(--muted)}.server-option.error,.inline-error{color:var(--danger)}.server-list{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.server-chip{color:#2b6fb4;background:#ecf5ff;border:1px solid #d9ecff;border-radius:4px;grid-template-columns:auto auto auto 48px;align-items:center;gap:8px;min-height:32px;padding-left:10px;font-size:13px;display:grid}.server-chip strong,.server-chip small{font-weight:500}.server-chip button{color:var(--regular);background:#fff;border:0;border-left:1px solid #d9ecff;border-radius:0 4px 4px 0;align-self:stretch;font-weight:500}.server-chip button:hover{color:var(--danger)}.inline-error{margin-top:10px;font-weight:500}.field-error{color:var(--danger);margin:-2px 0 0;font-size:12px;font-weight:500;line-height:1.4}.inline-info{color:var(--muted);margin-top:10px;font-weight:500}.page-toast{z-index:80;color:#529b2e;text-align:center;pointer-events:none;opacity:0;background:#f0f9eb;border:1px solid #b3e19d;border-radius:4px;min-width:120px;padding:9px 18px;font-size:14px;font-weight:600;transition:opacity .22s,transform .22s;position:fixed;top:14px;left:50%;transform:translate(-50%,-22px)}.page-toast.show{opacity:1;transform:translate(-50%)}.auth-toast{z-index:100;max-width:min(360px,100vw - 36px);color:var(--danger);pointer-events:none;opacity:0;background:#fef0f0;border:1px solid #fde2e2;border-radius:4px;padding:10px 16px;font-size:14px;font-weight:600;line-height:1.5;transition:opacity .22s,transform .22s;position:fixed;top:18px;right:18px;transform:translate(12px,-12px)}.auth-toast.show{opacity:1;transform:translate(0)}.table-wrap{border:1px solid var(--border-light);background:var(--panel);border-radius:4px;margin-top:12px;overflow:auto}.table-meta-row{color:var(--muted);justify-content:flex-end;margin:0 0 -12px;font-size:13px;font-weight:500;display:flex}.data-table{table-layout:auto;border-collapse:collapse;width:100%;min-width:1080px;font-size:13px}.data-table th,.data-table td{border-bottom:1px solid var(--border-light);text-align:left;vertical-align:middle;padding:8px 10px}.data-table th.money-col,.data-table td.money-col{text-align:right;white-space:nowrap;padding-left:4px;padding-right:8px}.data-table th.pad-tight,.data-table td.pad-tight{padding-left:4px}.data-table th:first-child,.data-table td:first-child{min-width:170px}.data-table th.chat-week-col,.data-table td.chat-week-col,.data-table th.chat-yesterday-col,.data-table td.chat-yesterday-col,.data-table th.chat-today-col,.data-table td.chat-today-col{text-align:right;padding-right:6px}.player-monitor-page .data-table th.server-col,.player-monitor-page .data-table td.server-col{width:230px;max-width:230px;padding-right:8px}.player-monitor-page .data-table td.server-col strong,.player-monitor-page .data-table td.server-col span{text-overflow:ellipsis;max-width:210px;display:block;overflow:hidden}.player-monitor-page .data-table th.player-action-col,.player-monitor-page .data-table td.player-action-col{white-space:nowrap;width:156px;min-width:156px}.player-monitor-page .data-table td.player-action-col .player-action-buttons{align-items:center;gap:6px;display:flex}.player-monitor-page .data-table td.player-action-col .table-action{margin-left:0;padding-left:7px;padding-right:7px}.gs-manage-page .data-table{min-width:1550px}.gs-manage-page .data-table th:first-child,.gs-manage-page .data-table td:first-child{width:84px;min-width:0;padding-right:6px}.gs-manage-page .data-table th:nth-child(2),.gs-manage-page .data-table td:nth-child(2),.gs-manage-page .data-table th:nth-child(3),.gs-manage-page .data-table td:nth-child(3){text-align:center;padding-left:4px;padding-right:4px}.gs-manage-page .data-table th:nth-child(4),.gs-manage-page .data-table td:nth-child(4){padding-left:4px}.gs-manage-page .data-table th.profile-role-col,.gs-manage-page .data-table td.profile-role-col{padding-right:14px}.gs-manage-page .data-table td.profile-role-col strong,.gs-manage-page .data-table td.profile-role-col span{max-width:none}.gs-manage-page .data-table td.profile-role-col span{font-size:11px}.gs-manage-page .data-table th:last-child,.gs-manage-page .data-table td:last-child{white-space:nowrap}.data-table th{color:var(--regular);background:#f5f7fa;font-weight:600}.sortable-head{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.sort-buttons{gap:2px;display:inline-grid}.sort-button{cursor:pointer;background:0 0;border:0;width:12px;height:8px;padding:0}.sort-button:before{content:"";width:0;height:0;margin:0 auto;display:block}.sort-up:before{border-bottom:6px solid #c0c4cc;border-left:5px solid #0000;border-right:5px solid #0000}.sort-down:before{border-top:6px solid #c0c4cc;border-left:5px solid #0000;border-right:5px solid #0000}.sort-up.active:before{border-bottom-color:var(--primary)}.sort-down.active:before{border-top-color:var(--primary)}.data-table tbody tr{cursor:default}.data-table tbody tr:hover,.data-table tbody tr.active{background:#ecf5ff}.data-table td strong,.data-table td span{display:block}.data-table td strong{white-space:nowrap}.data-table td span{color:var(--muted);white-space:nowrap;margin-top:2px;font-size:12px}.table-action{height:28px;color:var(--primary);white-space:nowrap;background:#ecf5ff;border:1px solid #d9ecff;border-radius:4px;padding:0 8px;font-size:13px}.table-action+.table-action{margin-left:6px}.table-action:hover{border-color:var(--primary);background:#fff}.table-action.danger{color:var(--danger);background:#fef0f0;border-color:#fde2e2}.expand-button{border:1px solid var(--border);width:22px;height:22px;color:var(--regular);background:#fff;border-radius:2px;margin-right:6px;line-height:18px}.source-tag{white-space:nowrap;border-radius:2px;flex:none;align-items:center;height:20px;margin-left:6px;padding:0 6px;font-size:12px;font-weight:600;line-height:20px;display:inline-flex}.data-table td .source-tag{margin-top:0;display:inline-flex}.source-tag-unspecified{color:#909399;background:#f4f4f5}.source-tag-rival{color:#f56c6c;background:#ffbcbc}.source-tag-support{color:#e6a23c;background:#f8e0bf}.platform-badge{object-fit:contain;vertical-align:middle;width:24px;height:24px}.data-table td .platform-badge,.opponent-item .platform-badge,.detail-list .platform-badge{margin-top:0;display:inline-block}.player-name-line{align-items:center;gap:2px;display:flex}.data-table td .player-name-line{display:flex}.opponent-row td{background:#fafafa;padding:0}.opponent-list{border-left:3px solid var(--border);gap:8px;padding:12px 16px 12px 44px;display:grid}.opponent-item{min-height:34px;color:var(--regular);align-items:center;gap:14px;display:flex}.opponent-item strong{color:var(--text)}.empty-text{color:var(--muted)}.player-detail-panel{z-index:20;border-left:1px solid var(--border-light);background:var(--panel);width:min(50vw,760px);min-width:520px;height:100%;min-height:0;padding:20px;position:absolute;top:0;right:0;overflow:auto}.detail-backdrop{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#141c2661;position:absolute;inset:0}.player-detail-panel h2{margin:0;font-size:18px;font-weight:700}.detail-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.range-switch{border:1px solid var(--border);border-radius:4px;display:inline-flex;overflow:hidden}.range-switch button{border:0;border-right:1px solid var(--border);height:28px;color:var(--regular);background:#fff;padding:0 8px;font-size:12px}.range-switch button:last-child{border-right:0}.range-switch button.active{background:var(--primary);color:#fff}.player-detail-panel dl{border-top:1px solid var(--border-light);gap:0;margin:0;display:grid}.player-detail-panel dl div{border-bottom:1px solid var(--border-light);grid-template-columns:82px minmax(0,1fr);gap:8px;padding:10px 0;display:grid}.player-detail-panel dt{color:var(--muted);font-size:13px;font-weight:500}.player-detail-panel dd{overflow-wrap:anywhere;margin:0;font-weight:500}.chart-stack{gap:14px;margin-top:16px;display:grid}.chart-toolbar{justify-content:flex-end;display:flex}.mini-chart{border:1px solid var(--border-light);background:var(--panel-muted);border-radius:4px;padding:12px}.mini-chart h3{color:var(--regular);margin:0 0 12px;font-size:14px;font-weight:600}.echart-box{width:100%;height:260px}.detail-log-mask{z-index:80;background:#141c266b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.detail-log-panel{border:1px solid var(--border);background:#fff;border-radius:4px;flex-direction:column;width:min(720px,92vw);max-height:min(680px,86vh);animation:.18s ease-out detail-pop;display:flex;box-shadow:0 18px 46px #141c262e}.detail-log-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.detail-log-header h2{margin:0;font-size:16px}.detail-log-header button{border:1px solid var(--border);width:30px;height:30px;color:var(--regular);background:#fff;border-radius:4px;font-size:18px}.detail-log-body{min-height:160px;padding:10px 16px 16px;overflow:auto}.detail-log-item{border-bottom:1px solid var(--border-light);grid-template-columns:72px minmax(120px,180px) minmax(0,1fr);align-items:start;gap:10px;padding:10px 0;display:grid}.detail-log-item:last-child{border-bottom:0}.detail-log-time{color:var(--muted);font-size:12px}.detail-log-item strong{color:var(--text);font-size:13px}.detail-log-item p{color:var(--regular);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.6}@keyframes detail-pop{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=860px){.home-waterfall{grid-template-columns:1fr}.login-page{justify-content:flex-start;padding-top:64px}.brand-panel{width:min(420px,100vw - 48px)}.login-panel{padding:24px}}@media (width<=520px){.home-waterfall{grid-template-columns:1fr}.home-guide-card header{display:grid}.code-row{grid-template-columns:1fr}.secondary-button{width:100%}.app-sidebar{width:64px}.app-sidebar .sidebar-item{grid-template-columns:1fr}.app-sidebar .sidebar-item span{display:none}.header-title{padding-left:12px;font-size:15px}.header-account span{max-width:100px;padding:0 10px}.header-account button{min-width:56px}.filter-panel,.monitor-layout{grid-template-columns:1fr}.player-detail-panel{border-left:0;width:100%;min-width:0}.server-chip{grid-template-columns:1fr;width:100%;padding:8px 10px}.server-chip button{border-top:1px solid #d9ecff;border-left:0;border-radius:0 0 4px 4px;min-height:30px}}.chat-col{white-space:nowrap}.chat-col .chat-col-inner{align-items:center;gap:4px;display:inline-flex}.chat-count-text{text-align:right;min-width:20px}.chat-inline-wrap{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:2px;display:flex}.chat-num{color:#000;line-height:1}.role-id-full{word-break:break-all;color:#666;font-size:12px}.chat-dist-btn{width:18px;height:18px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.chat-dist-btn:hover{border-color:var(--primary);color:var(--primary);background:#ecf5ff}.modal-panel--persona{flex-direction:column;width:min(520px,100vw - 48px);max-height:80vh;display:flex;overflow:hidden}.modal-panel--persona .modal-body{overflow-y:auto}.persona-header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.persona-records{border-bottom:1px solid var(--border-light);background:#f7f9fc;max-height:220px;padding:10px 18px;overflow:auto}.persona-record-item{width:100%;color:var(--regular);text-align:left;background:#fff;border:1px solid #e4e7ed;border-radius:4px;grid-template-columns:140px 1fr;padding:8px 10px;display:grid}.persona-record-item+.persona-record-item{margin-top:6px}.persona-record-item strong{color:var(--text);font-size:12px}.persona-record-item span{min-width:0;color:var(--regular);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.persona-record-item:hover{border-color:#409eff}.persona-result{flex-direction:column;gap:12px;display:flex}.persona-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.persona-reanalyze-btn{margin-left:auto;padding:5px 12px;font-size:12px}.persona-type-badge{color:#fff;background:#409eff;border-radius:10px;padding:2px 10px;font-size:14px;font-weight:600;display:inline-block}.persona-tag{color:#409eff;background:#ecf5ff;border-radius:8px;padding:1px 8px;font-size:12px;display:inline-block}.persona-summary{color:var(--regular);background:#f5f7fa;border-radius:6px;padding:8px 12px;font-size:14px;line-height:1.6}.persona-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.persona-card{background:#fafafa;border:1px solid #ebeef5;border-radius:6px;padding:10px 12px}.persona-card h4{color:var(--primary);margin:0 0 6px;font-size:13px}.persona-card p{color:var(--regular);margin:2px 0;font-size:12px;line-height:1.6}.persona-card strong{color:var(--text)}.persona-score{color:#409eff;text-align:center;font-size:28px;font-weight:700}.persona-score small{color:var(--muted);font-size:14px;font-weight:400}.persona-warn p,.persona-ok p{margin:1px 0;font-size:11px}.persona-risk{text-align:center;border-radius:6px;padding:6px 12px;font-size:13px}.persona-risk.risk-low{color:#67c23a;background:#f0f9eb}.persona-risk.risk-medium{color:#e6a23c;background:#fdf6ec}.persona-risk.risk-high{color:#f56c6c;background:#fef0f0}.persona-weaknesses{background:#fff5f5;border:1px solid #f5c6cb;border-radius:6px;padding:10px 12px}.persona-weaknesses h4{color:#c0392b;margin:0 0 8px;font-size:13px}.weakness-item{background:#fff;border-radius:4px;margin-bottom:8px;padding:6px 8px}.weakness-item:last-child{margin-bottom:0}.weakness-item p{color:var(--regular);margin:1px 0;font-size:12px;line-height:1.5}.weakness-item strong{color:#c0392b}.weakness-suggestion strong{color:#409eff}.persona-preview{margin-bottom:16px}.preview-table{border-collapse:collapse;width:100%;font-size:13px}.preview-table td{border-bottom:1px solid var(--border-light);padding:5px 8px}.preview-table td:first-child{width:90px;color:var(--muted);font-weight:500}.preview-table td:last-child{color:var(--regular)}.persona-actions{justify-content:center;margin-top:12px;display:flex}.persona-loading-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:260px;display:flex}.persona-loading-state strong{color:var(--text);font-size:15px}.persona-loading-state p{color:var(--muted);margin:0;font-size:12px}.persona-loading-state .persona-progress-text{border:1px solid var(--line);color:#303133;background:#f5f7fa;max-width:560px;padding:8px 10px;line-height:1.7}.persona-loading-spinner{border:3px solid #d9ecff;border-top-color:#409eff;border-radius:50%;width:42px;height:42px;animation:.8s linear infinite spin}.spinner{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:4px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay--auth{background:0 0}.modal-panel{border:1px solid var(--border-light);background:var(--panel);border-radius:6px;width:min(640px,100vw - 48px);box-shadow:0 8px 32px #00000026}.modal-panel--chart{max-height:80vh;overflow:hidden}.modal-panel--auth{width:min(400px,100vw - 32px);padding-bottom:12px}.global-refresh-panel{z-index:1200;border:1px solid #dcdfe6;border-left:4px solid var(--primary);background:#fff;border-radius:4px;width:min(360px,100vw - 36px);animation:.24s ease-out refresh-panel-slide-in;position:fixed;top:18px;right:18px;overflow:hidden;box-shadow:0 8px 24px #00000029}.global-refresh-panel.state-success{border-left-color:var(--success)}.global-refresh-panel.state-error{border-left-color:var(--danger)}.global-refresh-head{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px 8px;display:flex}.global-refresh-head>div{gap:2px;display:grid}.global-refresh-head strong{align-items:center;gap:7px;font-size:15px;display:inline-flex}.global-refresh-spinner{border:2px solid #d9ecff;border-top-color:var(--primary);border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite refresh-spin;display:inline-block}.global-refresh-spinner--icon{object-fit:contain;border:0;border-radius:0;width:16px;height:16px}.global-refresh-head span{color:var(--regular);font-size:13px}.state-success .global-refresh-head span{color:var(--success)}.state-error .global-refresh-head span{color:var(--danger)}.global-refresh-info{gap:8px;margin:0;padding:12px 14px;display:grid}.global-refresh-info div{grid-template-columns:52px minmax(0,1fr);gap:8px;display:grid}.global-refresh-info dt{color:var(--muted);font-size:12px}.global-refresh-info dd{color:var(--text);word-break:break-word;margin:0;font-size:13px}.global-refresh-message{color:var(--regular);white-space:pre-line;margin:0;padding:0 14px 14px;font-size:13px;line-height:1.5}@keyframes refresh-panel-slide-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes refresh-spin{to{transform:rotate(360deg)}}.modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-header h3{margin:0;font-size:16px;line-height:1.4}.modal-header p{color:var(--muted);margin-top:4px;font-size:13px}.modal-header h2{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.modal-close{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:4px;flex-shrink:0;margin-left:12px;font-size:20px;line-height:1}.modal-close:hover{color:var(--text);background:#f5f7fa}.modal-body{min-height:100px;padding:18px}.chat-dist-chart-box{width:100%;height:320px}@media (width<=520px){.chat-dist-chart-box{height:240px}}.modal-panel--confirm{width:min(380px,100vw - 48px)}.modal-footer{justify-content:flex-end;gap:8px;padding:0 18px 14px;display:flex}.churn-toggle{cursor:pointer;vertical-align:middle;background:#c0c4cc;border-radius:10px;width:38px;height:20px;transition:background .2s;display:inline-flex;position:relative}.churn-toggle.active{background:#f56c6c}.churn-toggle-knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.churn-toggle.active .churn-toggle-knob{left:20px}
