:root{--bg:#f5f7fb;--surface:#fff;--surface-soft:#f8faff;--text:#1d2738;--muted:#7c8798;--line:#e8edf4;--primary:#315efb;--primary-soft:#edf2ff;--green:#16a574;--shadow:0 8px 30px rgba(23,43,77,.035)}:root[data-theme="dark"]{--bg:#111827;--surface:#1b2535;--surface-soft:#202c3e;--text:#edf2fb;--muted:#a5b0c1;--line:#303d50;--primary:#7896ff;--primary-soft:#293a61;--shadow:0 8px 30px rgba(0,0,0,.12)}body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans","Noto Sans SC",system-ui,sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:210px;position:fixed;inset:0 auto 0 0;background:var(--surface);border-right:1px solid var(--line);padding:26px 16px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 34px;font-size:15px;font-weight:700;letter-spacing:-.3px}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:500;letter-spacing:0;margin-top:2px}.brand-mark,.login-logo{display:grid;place-items:center;width:39px;height:39px;background:linear-gradient(145deg,#4c7cff,#3153df);color:white;border-radius:12px;font-weight:800;font-size:14px;box-shadow:0 6px 14px #315efb33}.nav-caption{padding:0 12px 10px;color:#9aa5b5;font-size:10px;letter-spacing:1.2px;font-weight:700;text-transform:uppercase}.sidebar-link{display:flex;align-items:center;gap:13px;padding:12px 13px;border-radius:9px;color:var(--muted);font-weight:500;margin-bottom:4px;transition:.15s}.sidebar-link>span{font-size:18px;width:18px;text-align:center}.sidebar-link:hover{background:var(--surface-soft);color:var(--text)}.sidebar-link.active{background:var(--primary-soft);color:var(--primary);font-weight:700}.sidebar-nav-scroll{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-bottom:10px}.sidebar-nav-scroll::-webkit-scrollbar{width:5px}.sidebar-nav-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}.sidebar-bottom{flex:0 0 auto;margin-top:auto;border-top:1px solid var(--line);padding:20px 7px 0;display:flex;align-items:center;justify-content:center;text-align:center}.live-pill i{width:8px;height:8px;border-radius:50%;background:#22bf83;box-shadow:0 0 0 4px #22bf8318}.sidebar-bottom-name{display:block;width:100%;max-width:100%;margin:0;color:var(--muted);font-size:12px;font-weight:600;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-area{margin-left:210px;min-width:0;width:calc(100% - 210px)}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:var(--surface);border-bottom:1px solid var(--line)}.top-actions{display:flex;align-items:center;gap:20px}.user-chip{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e7edff;color:#315efb;font-weight:700}.page-content{padding:31px 34px 44px;max-width:1600px;margin:auto}.live-pill{display:inline-flex;align-items:center;gap:7px;background:#eafaf3;color:#159768;padding:6px 10px;border-radius:20px;font-size:10px;font-weight:700}.live-pill i{width:6px;height:6px;box-shadow:none}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:500}.stat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:17px}.stat-icon.blue{background:#edf2ff;color:#4268f5}.stat-icon.violet{background:#f1edff;color:#8866e9}.stat-icon.green{background:#e7f9f1;color:#17a573}.stat-icon.orange{background:#fff2e7;color:#ef9144}.stat-number{font-size:30px;font-weight:700;letter-spacing:-1px;margin-top:9px;line-height:1.1}.stat-foot{font-size:10px;color:var(--muted);margin-top:9px}.content-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:18px}.install-panel h2{font-size:15px;margin:0 0 5px;letter-spacing:-.2px}.chart-area{height:215px;display:flex;gap:14px;padding:20px 0 0}.chart-y{display:flex;flex-direction:column;justify-content:space-between;color:#a4adbb;font-size:10px;padding:0 0 23px}.chart-bars{flex:1;display:flex;align-items:stretch;justify-content:space-around;gap:12px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 49px,var(--line) 50px,var(--line) 51px);position:relative}.bar-column{flex:1;max-width:52px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;z-index:1}.bar{width:65%;min-height:4px;background:linear-gradient(180deg,#7595ff,#4168f7);border-radius:6px 6px 2px 2px;box-shadow:0 4px 10px #4168f71c}.bar-value{font-size:10px;color:var(--muted)}.bar-column>span{font-size:10px;color:var(--muted);position:absolute;bottom:-23px}.empty-chart{margin:auto;color:var(--muted);font-size:12px}.ranking-panel{display:flex;flex-direction:column}.rank-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:18px}.ranking-list{margin-top:19px}.ranking-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.rank-num{width:22px;height:22px;display:grid;place-items:center;background:var(--surface-soft);color:var(--muted);border-radius:6px;font-size:10px;font-weight:700}.rank-num.top-rank{background:#edf2ff;color:#315efb}.rank-name{flex:1;font-size:12px;font-weight:500}.ranking-row strong{font-size:12px}.text-link{display:flex;justify-content:space-between;margin-top:auto;padding-top:20px;color:var(--primary);font-size:11px;font-weight:700}.notice-card{display:flex;gap:12px;margin-top:19px;padding:16px 18px;border:1px solid #dce7ff;background:var(--primary-soft);border-radius:11px;color:var(--text)}.notice-symbol{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:white;font-size:12px;font-weight:700}.notice-card strong{font-size:12px}.notice-card p{font-size:11px;color:var(--muted);line-height:1.8;margin:5px 0 0}.notice-card.compact{margin-top:25px}.visitor-cell,.tenant-name{display:flex;align-items:center;gap:10px}.visitor-cell strong,.tenant-name strong{display:block;color:var(--text);font-size:12px}.visitor-cell small,.tenant-name small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.visitor-avatar,.tenant-logo{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9efff;color:#4b6cf0;font-weight:700}.tenant-logo{border-radius:50%;color:#fff;object-fit:cover;overflow:hidden}.unread-dot{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;margin-left:6px;background:#ef4444;color:white;border-radius:20px;font-size:10px}.empty-table,.empty-state{text-align:center;color:var(--muted);padding:34px}.form-panel{margin-bottom:18px}.reply-form textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);outline:none}.reply-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #315efb17}.install-panel{max-width:850px;padding:30px}.install-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-size:22px;margin-bottom:16px}.install-panel>p{color:var(--muted);font-size:12px;line-height:1.8}.code-box{display:flex;align-items:center;gap:12px;margin-top:22px;background:#172033;border-radius:10px;padding:14px;color:#dce6ff}.code-box code{flex:1;white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.7}.info-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.info-list>div{padding:14px;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px}.info-list span{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.info-list strong{font-size:12px}.color-swatch{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:7px;vertical-align:-1px}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at top left,#e9efff 0,transparent 45%),var(--bg)}.login-logo{margin-bottom:23px}.login-card h1{font-size:25px;margin:0 0 7px}.muted{color:var(--muted);font-size:12px;margin:0 0 25px}.login-note{border-top:1px solid var(--line);margin-top:24px;padding-top:17px;color:var(--muted);font-size:11px;line-height:1.9}.login-note strong{color:#c27b25}
@media(max-width:1100px){.sidebar{width:210px}.main-area{margin-left:210px;width:calc(100% - 210px)}.page-content{padding:25px 22px}.topbar{padding:0 22px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}}
@media(max-width:700px){.sidebar{width:64px;padding:20px 7px}.brand{padding:0 5px 28px}.brand>span:last-child,.nav-caption,.sidebar-link:not(.active){font-size:0}.brand-mark{width:42px;height:42px;flex:0 0 42px}.sidebar-link{justify-content:center;padding:13px 4px;gap:0;font-size:0}.sidebar-link>span{font-size:19px}.sidebar-bottom{justify-content:center;padding:17px 0 0}.sidebar-bottom-name{display:none}.main-area{margin-left:64px;width:calc(100% - 64px)}.topbar{height:60px;padding:0 13px}.topbar .topbar-breadcrumb,.breadcrumb-sep,.user-chip>span:last-child{display:none}.top-actions{gap:11px}.page-content{padding:22px 13px 32px}.stats-grid{gap:10px}.stat-number{font-size:26px}.stat-top{font-size:11px}.stat-icon{width:29px;height:29px}.content-grid{gap:12px}.chart-area{height:185px;gap:7px}.chart-bars{gap:4px}.info-list{grid-template-columns:1fr}.code-box{align-items:flex-start;flex-direction:column}.chat-detail{padding:0}.message-stream{padding:14px;max-height:55vh}.reply-actions{align-items:flex-start;flex-direction:column}.bubble{max-width:78vw}}/* V1 后台补充样式：统一搜索栏、分页、弹窗和窄屏操作布局。 */
.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.mobile-menu-toggle{display:none;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:7px 9px}.page-tabs{height:43px;display:flex;align-items:stretch;gap:5px;padding:0 22px;background:var(--surface-soft);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}.page-tab{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;max-width:210px;padding:0 12px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:11px;white-space:nowrap}.page-tab.active{border-bottom-color:var(--primary);background:var(--surface);color:var(--text)}.page-tab-dot{width:6px;height:6px;border-radius:50%;background:var(--muted)}.page-tab.active .page-tab-dot{background:var(--primary)}.page-tab-close{font-size:16px;line-height:1;padding:1px 2px;border-radius:4px}.page-tab-close:hover{background:var(--surface-soft);color:var(--text)}.nav-parent{width:100%;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}.nav-chevron{margin-left:auto;font-size:12px;font-weight:500;transition:transform .15s}.nav-parent.expanded .nav-chevron{transform:rotate(180deg)}.nav-submenu{display:none;padding:2px 0 7px 43px}.nav-submenu.open{display:block}.nav-sublink{display:block;padding:9px 11px;margin:2px 0;border-radius:7px;color:var(--muted);font-size:12px}.nav-sublink:hover,.nav-sublink.active{background:var(--primary-soft);color:var(--primary);font-weight:700}.form-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px;margin:18px 0 14px}.form-divider:after{content:"";height:1px;flex:1;background:var(--line)}.avatar-upload-row{display:flex;align-items:center;gap:14px;margin-bottom:19px}.avatar-upload-row>div{min-width:0}.profile-avatar-preview{width:58px;height:58px;flex:0 0 58px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}.avatar-fallback{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:22px;font-weight:700}.avatar-image{object-fit:cover}.user-chip{border:0;background:transparent;padding:0;color:var(--text);cursor:pointer}.sidebar-backdrop{display:none}:root[data-theme="dark"] .live-pill{background:#193b32;color:#73d8b2}:root[data-theme="dark"] .rank-num.top-rank{background:#293a61;color:#a9bcff}:root[data-theme="dark"] .notice-card{border-color:var(--line)}
@media(max-width:1100px){.page-tabs{padding:0 14px}}
@media(max-width:700px){.page-tabs{display:none!important}.sidebar{width:238px;transform:translateX(-105%);transition:transform .2s;box-shadow:12px 0 36px #0002;padding:22px 15px}.sidebar.mobile-open{transform:translateX(0)}.sidebar-backdrop.show{display:block;position:fixed;inset:0;z-index:9;background:#0b1220a3}.brand>span:last-child,.nav-caption,.sidebar-link,.nav-sublink{font-size:inherit}.sidebar-link{justify-content:flex-start;gap:13px;padding:12px 13px}.sidebar-link>span{font-size:18px;width:18px}.nav-parent{display:flex}.nav-submenu{padding-left:43px}.sidebar-bottom{justify-content:center;padding:20px 7px 0}.sidebar-bottom-name{display:block}.main-area{margin-left:0;width:100%}.mobile-menu-toggle{display:block;flex:0 0 auto}.topbar{padding:0 12px;gap:8px}.topbar-left{gap:8px}.topbar .topbar-breadcrumb,.top-actions{gap:10px}.user-chip .avatar{width:28px;height:28px}.page-tabs{height:41px;padding:0 8px}.page-tab{padding:0 9px}.page-content{padding:19px 12px 30px}.profile-avatar-preview{width:50px;height:50px;flex-basis:50px}.avatar-upload-row{align-items:flex-start}.page-tabs{overflow-x:auto}}/* V3：侧栏、弹窗与异步反馈统一使用同一套主题变量和过渡效果。 */
.sidebar-link>span:first-child{font-size:18px;width:18px;flex:0 0 18px;text-align:center}.sidebar-link .nav-text{min-width:0;flex:1;font-size:13px;white-space:nowrap}.nav-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 4px 4px auto;flex:0 0 7px;transition:transform .2s ease}.nav-parent.expanded .nav-chevron{transform:rotate(225deg);margin-bottom:0}.nav-submenu{display:block;max-height:0;min-height:0;opacity:0;overflow:hidden;pointer-events:none;padding-top:0;padding-bottom:0;transition:max-height .22s ease,opacity .18s ease,padding .22s ease}.nav-submenu.open{max-height:1000px;min-height:max-content;opacity:1;overflow:visible;pointer-events:auto;padding:2px 0 7px 43px}.sidebar,.main-area{transition:width .22s ease,margin-left .22s ease,transform .22s ease}.sidebar-collapse-toggle{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);transition:background .18s ease,border-color .18s ease}.sidebar-collapse-toggle:hover,.mobile-menu-toggle:hover{background:var(--surface-soft);border-color:var(--primary)}.main-area.sidebar-collapsed{margin-left:76px;width:calc(100% - 76px)}.sidebar.collapsed{width:76px;padding-left:12px;padding-right:12px}.sidebar.collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .brand>span:last-child,.sidebar.collapsed .nav-caption,.sidebar.collapsed .nav-text,.sidebar.collapsed .nav-chevron,.sidebar.collapsed .sidebar-bottom-name{display:none}.sidebar.collapsed .sidebar-link{justify-content:center;gap:0;padding-left:7px;padding-right:7px}.sidebar.collapsed .nav-submenu{display:none}.sidebar.collapsed .sidebar-bottom{justify-content:center;padding-left:0;padding-right:0}.page-content{transition:opacity .16s ease,transform .16s ease}.page-tab{transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}.dialog-actions{padding-top:16px;margin-top:16px}.avatar-upload-row [hidden]{display:none!important}.profile-avatar-preview{transition:opacity .16s ease,transform .16s ease}.profile-avatar-preview:not([hidden]){animation:avatar-appear .18s ease both}
@keyframes avatar-appear{from{opacity:.4;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.user-chip{gap:8px}

@media(max-width:700px){.sidebar{width:238px;padding:22px 15px;transform:translateX(-105%);transition:transform .22s ease;width:238px}.sidebar.mobile-open{transform:translateX(0)}.sidebar .brand>span:last-child,.sidebar .nav-caption,.sidebar .nav-text,.sidebar .nav-sublink,.sidebar .sidebar-bottom-name{display:block!important;font-size:12px!important}.sidebar .brand>span:last-child{font-size:15px!important}.sidebar .nav-caption{font-size:10px!important}.sidebar .nav-text{font-size:13px!important}.sidebar .sidebar-link,.sidebar .sidebar-link:not(.active){font-size:13px!important;justify-content:flex-start;gap:13px;padding:12px 13px}.sidebar .sidebar-link>span:first-child{font-size:18px;width:18px;flex-basis:18px}.sidebar .nav-parent{display:flex}.sidebar .nav-chevron{display:block!important}.sidebar .nav-submenu{padding-left:43px}.sidebar .nav-submenu.open{padding-left:43px}.sidebar .sidebar-bottom{justify-content:center;padding:20px 7px 0}.sidebar .sidebar-bottom-name{display:block!important}.sidebar.collapsed{width:238px;padding:22px 15px}.sidebar.collapsed .brand>span:last-child,.sidebar.collapsed .nav-caption,.sidebar.collapsed .nav-text,.sidebar.collapsed .nav-chevron,.sidebar.collapsed .sidebar-bottom-name{display:block!important}.sidebar.collapsed .sidebar-link{justify-content:flex-start;gap:13px;padding:12px 13px}.main-area.sidebar-collapsed{margin-left:0;width:100%}.sidebar-collapse-toggle{display:none}.main-area{margin-left:0;width:100%}.mobile-menu-toggle{display:block}.topbar-left{gap:8px}
    
    
    
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}/* V4：一级菜单图标列统一宽度，父级选中态由当前路由统一控制。 */
#mainSidebar .sidebar-nav-scroll>.sidebar-link{width:100%;min-height:42px;align-items:center;}#mainSidebar .sidebar-nav-scroll>.sidebar-link>span:first-child{width:18px;flex:0 0 18px;text-align:center;}#mainSidebar>.nav-parent .nav-text{flex:1;}#mainSidebar .nav-parent.active{background:var(--primary-soft);color:var(--primary);font-weight:700;}.tab-context-menu{position:fixed;z-index:200;min-width:132px;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 30px #0002;display:flex;flex-direction:column;gap:2px;animation:tabMenuIn .12s ease-out;}.tab-context-menu button{border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left;padding:9px 12px;font-size:12px;}.tab-context-menu button:hover,.tab-context-menu button:focus-visible{background:var(--primary-soft);color:var(--primary);outline:0;}
@keyframes tabMenuIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.tab-context-menu{animation:none}}/* V5：一级菜单文本左对齐；折叠状态下父级菜单可点击展开侧栏。 */
#mainSidebar .nav-text,#mainSidebar .nav-text1{ text-align:left; }#mainSidebar .sidebar-nav-scroll>.sidebar-link,#mainSidebar .sidebar-nav-scroll>.nav-parent{ justify-content:flex-start; }#mainSidebar .sidebar-nav-scroll>.sidebar-link .nav-text,#mainSidebar .sidebar-nav-scroll>.nav-parent .nav-text{ text-align:left; }.merchant-settings-panel{max-width:760px}







@media(max-width:700px){}/* V6：登录审计表格在窄屏上允许 User-Agent 换行，避免撑坏整体布局。 */
.user-agent-cell{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.6;min-width:0}#openProfileModal{border-radius:8px;transition:background .16s ease,opacity .16s ease}#openProfileModal:hover{background:var(--surface-soft)}#serviceProfileForm input[readonly]{background:var(--surface-soft);color:var(--muted);cursor:not-allowed}
@media(prefers-reduced-motion:reduce){.page-content,.page-tab,.tab-context-menu{transition:none!important;animation:none!important}}/* V7：保留后台专属布局与图表样式，常用控件交由 Bootstrap 统一处理。 */
:root{ --bs-body-bg: var(--bg); --bs-body-color: var(--text); --bs-border-color: var(--line); }:root[data-theme="dark"]{ --bs-body-bg: var(--bg); --bs-body-color: var(--text); --bs-border-color: var(--line); }body{ background:var(--bg); color:var(--text); }.login-body{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; background:var(--bg); }.login-card{ width:min(100%,430px); background:var(--surface); color:var(--text); }.login-card h1{ font-size:1.5rem; margin:0 0 .5rem; }.login-logo{ display:grid; place-items:center; width:44px; height:44px; margin-bottom:20px; background:linear-gradient(145deg,#4c7cff,#3153df); color:#fff; border-radius:12px; font-weight:800; }.login-note{ margin-top:22px; color:var(--muted); font-size:.8rem; line-height:1.7; }.modal-content{ color:var(--text); background:var(--surface); border-color:var(--line); }.modal-header,.modal-footer{ border-color:var(--line); }.modal-header p{ margin:4px 0 0; color:var(--muted); font-size:.82rem; }.modal-body .form-label{ display:block; margin-bottom:.8rem; }.modal-body .form-control,.modal-body .form-select{ margin-top:.35rem; }.modal-body .modal-footer{ margin:1rem -1rem -1rem; }.form-control,.form-select{ transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease; }.form-check-input{ cursor:pointer; transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease; }.btn{ transition:color .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease; }.btn:active{ transform:translateY(1px); }.card{ color:var(--text); background-color:var(--surface); border-color:var(--line); }.table{ --bs-table-bg:var(--surface); --bs-table-color:var(--text); --bs-table-border-color:var(--line); --bs-table-hover-bg:var(--surface-soft); --bs-table-hover-color:var(--text); }.table thead th{ color:var(--muted); background:var(--surface-soft); font-size:.78rem; font-weight:600; white-space:nowrap; }.page-content .table-responsive{ width:100%; }:root[data-theme="dark"] .btn-outline-secondary{ --bs-btn-color:var(--text); --bs-btn-border-color:var(--line); --bs-btn-hover-color:var(--text); --bs-btn-hover-bg:var(--surface-soft); --bs-btn-hover-border-color:var(--muted); --bs-btn-active-color:var(--text); --bs-btn-active-bg:var(--surface-soft); --bs-btn-active-border-color:var(--line); }:root[data-theme="dark"] .form-control,:root[data-theme="dark"] .form-select{ background-color:var(--surface-soft); color:var(--text); border-color:var(--line); }:root[data-theme="dark"] .form-control::placeholder{ color:var(--muted); }:root[data-theme="dark"] .form-control:focus,:root[data-theme="dark"] .form-select:focus{ background-color:var(--surface-soft); color:var(--text); }:root[data-theme="dark"] .text-body-secondary{ color:var(--muted)!important; }.avatar-upload-row{ display:flex; align-items:center; gap:1rem; margin-bottom:1rem; }.avatar-upload-row .form-control{ max-width:100%; }.user-agent-cell{ max-width:320px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.6; min-width:0; }
@media (max-width:700px) {.page-content{ padding:1rem; }.stats-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }.content-grid{ grid-template-columns:minmax(0,1fr); }.topbar{ padding:0 1rem; }.top-actions{ gap:.5rem; }.modal-dialog{ margin:.5rem; }.modal-content{ max-height:calc(100vh - 1rem); } }/* V8：统一表单和按钮字号，修正顶部标题对齐，并完善登录与状态操作的间距。 */
.btn,button,.form-control,.form-select,input,select,textarea,.form-check-label{
    font-size: 14px;
}.page-tab,.tab-context-menu button{
    font-size: 14px;
}.btn-sm{
    --bs-btn-font-size: 14px;
}.login-body{
    padding: 24px 16px;
}.login-card{
    width: min(100%, 440px);
    border-radius: 16px;
    padding: 32px !important;
    box-shadow: 0 18px 55px rgba(25, 42, 70, .09) !important;
}.login-card .login-logo{
    margin-bottom: 24px !important;
}.login-card h1{
    font-size: 24px;
    line-height: 1.35;
    font-weight: 700;
}.login-subtitle{
    font-size: 14px;
    line-height: 1.6;
}.login-card .form-label{
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 500;
}.login-card .form-control{
    min-height: 42px;
    padding: 9px 12px;
}.login-card .btn{
    min-height: 42px;
}.login-note{
    font-size: 12px;
    line-height: 1.8;
}.modal-header{
    align-items: flex-start;
    gap: 16px;
}.modal-header > div:first-child{
    min-width: 0;
    flex: 1 1 auto;
}.modal-body .form-control,.modal-body .form-select{
    font-size: 14px;
}:root[data-theme="dark"] .login-card{
    box-shadow: 0 18px 55px rgba(0, 0, 0, .24) !important;
}:root[data-theme="dark"] .login-body{
    background: radial-gradient(ellipse at top left, #202c45 0, transparent 45%), var(--bg);
}
@media (max-width: 575.98px) {.login-card{
        padding: 26px 22px !important;
        border-radius: 14px;
    }
}/* V9：Bootstrap Icons、本地刷新按钮与统一表格内容展示。 */
.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;flex:0 0 18px;font-size:17px;line-height:1}.nav-icon .bi{display:block}.stat-icon .bi,.rank-icon .bi,.install-icon .bi{font-size:1em;line-height:1}.login-logo .bi{font-size:23px;line-height:1}.topbar-left .btn,.top-actions .btn{white-space:nowrap}.page-refresh-btn{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 34px;padding:0;border-radius:8px}.page-refresh-btn .bi{font-size:15px}.cell-detail-ready{position:relative;padding-right:28px!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}.cell-ellipsis-text{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cell-inner-ellipsis{min-width:0;max-width:100%;overflow:hidden}.tenant-name,.visitor-cell{min-width:0;max-width:100%;white-space:nowrap}.tenant-name>div,.visitor-cell>div{min-width:0;max-width:100%;flex:1 1 auto;overflow:hidden}.tenant-name strong,.tenant-name small,.visitor-cell strong,.visitor-cell small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-expand-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:inline-grid;place-items:center;width:21px;height:23px;padding:0;border:0;border-radius:5px;background:var(--surface);color:var(--muted);opacity:0;pointer-events:none;transition:opacity .14s ease,background-color .14s ease,color .14s ease;z-index:2}.cell-detail-ready:hover .cell-expand-toggle,.cell-expand-toggle:focus-visible,.cell-expand-toggle.expanded{opacity:1;pointer-events:auto}.cell-expand-toggle:hover,.cell-expand-toggle.expanded{background:var(--primary-soft);color:var(--primary)}.cell-expand-toggle .bi{font-size:12px}.cell-detail-popover{position:fixed;z-index:1200;max-width:min(380px,calc(100vw - 24px));max-height:min(55vh,360px);overflow:auto;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);box-shadow:0 12px 36px #0002;animation:cellDetailIn .12s ease-out;overflow-wrap:anywhere;white-space:normal;font-size:13px;line-height:1.65}.cell-detail-text{white-space:pre-wrap;overflow-wrap:anywhere}
@keyframes cellDetailIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.page-content .xy-card--table .table.v9-nowrap-table{table-layout:fixed;width:100%;}.page-content .xy-card--table .table.v9-nowrap-table th,.page-content .xy-card--table .table.v9-nowrap-table td{white-space:nowrap;vertical-align:middle;}.page-content .xy-card--table .table.v9-nowrap-table td .d-flex{flex-wrap:nowrap!important;}.page-content .xy-card--table .table.v9-nowrap-table td form{white-space:nowrap;flex:0 0 auto;}.page-content .xy-card--table .table.v9-nowrap-table td .btn{white-space:nowrap;flex:0 0 auto;}.page-content .xy-card--table .table.v9-nowrap-table td .badge{white-space:nowrap;}
@media(max-width:700px){#themeToggle{width:34px;height:34px;min-width:34px;display:inline-grid;place-items:center;padding:0;}#themeToggle .theme-toggle-icon{font-size:16px;}.topbar-left{gap:6px;}.page-refresh-btn,.sidebar-collapse-toggle,.mobile-menu-toggle{width:32px;height:32px;flex-basis:32px;padding:0;}.cell-expand-toggle{opacity:1;pointer-events:auto;background:var(--surface-soft);}.cell-detail-popover{max-width:calc(100vw - 24px);}
}
@media(hover:none){.cell-expand-toggle{opacity:1;pointer-events:auto;}}
@media(prefers-reduced-motion:reduce){.cell-detail-popover{animation:none!important;}}/* V10：统一顶部工具按钮、提示文字层级与页面加载反馈。 */
.topbar .sidebar-collapse-toggle,.topbar .mobile-menu-toggle,.topbar .page-refresh-btn,.topbar #themeToggle,.topbar .top-actions form > button{
    min-height:34px; height:34px; box-sizing:border-box; border:1px solid var(--line); border-radius:8px;
    background:var(--surface); color:var(--muted); box-shadow:none;
    transition:color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}.topbar .sidebar-collapse-toggle,.topbar .mobile-menu-toggle,.topbar .page-refresh-btn,.topbar #themeToggle{
    width:34px; min-width:34px; flex:0 0 34px; display:inline-flex; align-items:center; justify-content:center; padding:0;
}.topbar .top-actions form > button{ padding:0 11px; display:inline-flex; align-items:center; justify-content:center; gap:5px; white-space:nowrap; }.topbar .sidebar-collapse-toggle:hover,.topbar .mobile-menu-toggle:hover,.topbar .page-refresh-btn:hover,.topbar #themeToggle:hover,.topbar .top-actions form > button:hover{
    color:var(--text); background:var(--surface-soft); border-color:var(--primary); box-shadow:0 0 0 2px var(--primary-soft);
}.topbar .sidebar-collapse-toggle:focus-visible,.topbar .mobile-menu-toggle:focus-visible,.topbar .page-refresh-btn:focus-visible,.topbar #themeToggle:focus-visible,.topbar .top-actions form > button:focus-visible{ outline:2px solid var(--primary); outline-offset:2px; }.topbar .sidebar-collapse-toggle .bi,.topbar .mobile-menu-toggle .bi,.topbar .page-refresh-btn .bi,.topbar #themeToggle .bi,.topbar .top-actions form > button .bi{ font-size:15px; line-height:1; }/* 小提示弱化显示，正文和表格数据颜色不受影响。 */
.form-text,.page-content small,.form-label small,.modal-content small,.login-note,.brand small,.sidebar-bottom small,.stat-foot,.notice-card p,.login-subtitle,.text-body-secondary{ color:var(--muted)!important; }.page-content.is-updating{ opacity: .72; pointer-events: none; transition: opacity .16s ease; }.page-content.is-loading{ min-height:280px; display:grid; place-items:center; opacity:1!important; transform:none!important; pointer-events:none; }.page-loading-state{ min-height:220px; width:100%; display:flex; align-items:center; justify-content:center; color:var(--primary); }.page-loading-state .spinner-border{ width:2rem; height:2rem; border-width:.2em; animation:spinner-border .72s linear infinite; }.page-content-fade-out{ opacity:0!important; transform:translateY(3px); transition:opacity .09s ease, transform .09s ease; }.page-content-fade-in{ animation:v10PageContentFadeIn .24s ease both; }
@keyframes v10PageContentFadeIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:700px) {.topbar .mobile-menu-toggle{ display:inline-flex; }.topbar .sidebar-collapse-toggle,.topbar .mobile-menu-toggle,.topbar .page-refresh-btn,.topbar #themeToggle{ width:32px; min-width:32px; height:32px; min-height:32px; flex-basis:32px; }.topbar .top-actions form > button{ height:32px; min-height:32px; padding:0 8px; }
}
@media(prefers-reduced-motion:reduce) {.page-content-fade-in,.page-content-fade-out,.page-loading-state .spinner-border{ animation:none!important; transition:none!important; } }

@media(min-width:701px){.topbar .mobile-menu-toggle{display:none!important;}}/* V11：顶部不再展示标题分组；手机端统一隐藏侧边栏折叠按钮，仅保留菜单按钮。 */

@media(max-width:700px){.topbar .sidebar-collapse-toggle{display:none!important}}/* V22：系统提示音、客服个人通知与账号下拉菜单，使用统一主题变量。 */
.profile-action-menu{position:absolute;right:18px;top:calc(100% - 8px);z-index:120;min-width:168px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #0002;transform-origin:top right;animation:profileMenuIn .15s ease-out}.profile-action-menu[hidden]{display:none!important}.profile-action-menu button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left;font-size:12px;transition:background .15s,color .15s}.profile-action-menu button i{font-size:15px;color:var(--muted)}.profile-action-menu button:hover{background:var(--primary-soft);color:var(--primary)}.top-actions{position:relative}
@keyframes profileMenuIn{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.system-sound-upload-form{margin-top:22px;padding:18px;background:var(--surface-soft);border:1px solid var(--line);border-radius:10px}.system-sound-list{display:grid;gap:9px}.system-sound-row{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .16s,background .16s}.system-sound-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:9px;background:var(--primary-soft);color:var(--primary);font-size:18px}.system-sound-info{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.system-sound-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.system-sound-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.system-sound-row form{margin:0}.system-sound-row .badge{white-space:nowrap}.notification-sound-setting,.notification-setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.notification-setting-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.notification-setting-copy strong{font-size:13px}.notification-setting-copy small{font-size:11px;color:var(--muted);line-height:1.7}.notification-sound-picker{display:flex;align-items:center;gap:10px}.notification-sound-picker .form-select{min-width:0;flex:1}.notification-permission-note{display:flex;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:11px;line-height:1.8}.service-personal-settings-panel{max-width:860px}:root[data-theme="dark"] .system-sound-upload-form{background:var(--surface-soft)}
@media(max-width:700px){.system-sound-row{flex-wrap:wrap;gap:8px}.system-sound-info{flex-basis:calc(100% - 50px)}.system-sound-row .badge{margin-left:auto}.notification-sound-setting,.notification-setting-row{align-items:flex-start;padding:13px;gap:12px}.notification-sound-picker{align-items:stretch;flex-direction:column}.notification-sound-picker .form-select{width:100%}.profile-action-menu{right:8px}.system-sound-row form{display:inline-flex}}
@media(prefers-reduced-motion:reduce){.profile-action-menu{animation:none}}/* 总后台设置分类与图标库 */
.system-settings-pane[hidden]{display:none!important}.launcher-icon-gallery{display:flex;flex-wrap:wrap;gap:12px}.launcher-icon-card{position:relative;width:76px;height:76px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);transition:border-color .18s,background-color .18s,transform .18s}.launcher-icon-card.ui-choice-option.ui-icon-choice{align-items:center;justify-content:center}.launcher-icon-card:hover{border-color:var(--primary);transform:translateY(-2px)}.launcher-icon-image{display:flex;align-items:center;justify-content:center;flex:0 0 60px;width:60px;height:60px;padding:8px;margin:auto;background-image:linear-gradient(45deg,#e7e7e7 25%,transparent 25%),linear-gradient(-45deg,#e7e7e7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e7e7e7 75%),linear-gradient(-45deg,transparent 75%,#e7e7e7 75%);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0;border-radius:6px}.launcher-icon-image img{display:block;width:40px;height:40px;object-fit:contain}.launcher-icon-card form{margin:0}.launcher-icon-delete{position:absolute;top:-7px;right:-7px;width:23px;height:23px;border:0;border-radius:50%;display:grid;place-items:center;background:#e84b55;color:#fff;font-size:10px;box-shadow:0 2px 6px #0002;transition:transform .16s}.launcher-icon-delete:hover{transform:scale(1.1)}@media(max-width:700px){.launcher-icon-gallery{gap:10px}}.ui-launcher-icon-choices{display:flex;flex-wrap:wrap;gap:9px}.ui-icon-choice{flex:0 0 auto}.ui-icon-choice>span{display:grid;place-items:center;width:60px;height:60px;padding:8px}.ui-icon-choice img{width:40px;height:40px;object-fit:contain;background-image:linear-gradient(45deg,#e7e7e7 25%,transparent 25%),linear-gradient(-45deg,#e7e7e7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e7e7e7 75%),linear-gradient(-45deg,transparent 75%,#e7e7e7 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0;border-radius:4px}.ui-preview-launcher-icon{display:none;width:24px;height:24px;object-fit:contain}.ui-preview-launcher:has(.ui-preview-launcher-icon[src]:not([src=""])) .ui-preview-launcher-icon{display:block}.ui-preview-launcher:has(.ui-preview-launcher-icon[src]:not([src=""]))>i{display:none}/* 总后台设置分类与图标库 */
.system-settings-pane[hidden]{display:none!important}.launcher-icon-gallery{display:flex;flex-wrap:wrap;gap:12px}.launcher-icon-card{position:relative;width:76px;height:76px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);transition:border-color .18s,background-color .18s,transform .18s}.launcher-icon-card:hover{border-color:var(--primary);transform:translateY(-2px)}.launcher-icon-image{display:grid;place-items:center;width:60px;height:60px;padding:8px;background-image:linear-gradient(45deg,#e7e7e7 25%,transparent 25%),linear-gradient(-45deg,#e7e7e7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e7e7e7 75%),linear-gradient(-45deg,transparent 75%,#e7e7e7 75%);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0;border-radius:6px}.launcher-icon-image img{display:block;width:40px;height:40px;object-fit:contain}.launcher-icon-card form{margin:0}.launcher-icon-delete{position:absolute;top:-7px;right:-7px;width:23px;height:23px;border:0;border-radius:50%;display:grid;place-items:center;background:#e84b55;color:#fff;font-size:10px;box-shadow:0 2px 6px #0002;transition:transform .16s}.launcher-icon-delete:hover{transform:scale(1.1)}.ui-launcher-icon-choices{display:flex;flex-wrap:wrap;gap:9px}.ui-icon-choice{flex:0 0 auto}.ui-icon-choice>span{display:grid;place-items:center;width:60px;height:60px;padding:8px}.ui-icon-choice img{width:40px;height:40px;object-fit:contain;background-image:linear-gradient(45deg,#e7e7e7 25%,transparent 25%),linear-gradient(-45deg,#e7e7e7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e7e7e7 75%),linear-gradient(-45deg,transparent 75%,#e7e7e7 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0;border-radius:4px}.ui-preview-launcher-icon{display:none;width:24px;height:24px;object-fit:contain}.ui-preview-launcher:has(.ui-preview-launcher-icon[src]:not([src=""])) .ui-preview-launcher-icon{display:block}.ui-preview-launcher:has(.ui-preview-launcher-icon[src]:not([src=""]))>i{display:none}@media(max-width:700px){.launcher-icon-gallery{gap:10px}}/* V41：商户设置、个人设置复用客户端获取选项卡与统一的卡片式单选布局。 */
.settings-tab-view[hidden]{display:none!important}.settings-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-choice-card{position:relative;display:flex;align-items:flex-start;gap:12px;min-width:0;padding:16px;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.settings-choice-card:hover{border-color:var(--primary);transform:translateY(-1px)}.settings-choice-card.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 12%,transparent)}.settings-choice-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:var(--surface-soft);color:var(--primary);font-size:19px}.settings-choice-card>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:6px;padding-right:12px}.settings-choice-card strong{font-size:13px}.settings-choice-card small{font-size:11px;line-height:1.7;color:var(--muted)}.settings-choice-check{position:absolute;top:13px;right:13px;color:var(--primary);opacity:0;transform:scale(.8);transition:opacity .16s ease,transform .16s ease}.settings-choice-card.active .settings-choice-check{opacity:1;transform:scale(1)}@keyframes settings-view-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.settings-choice-grid{grid-template-columns:1fr}}/* 在线状态实时切换时保留轻微过渡，不影响表格布局。 */
.agent-presence-badge{transition:background-color .18s ease,color .18s ease,border-color .18s ease}.agent-presence-icon{transition:opacity .18s ease}
@media(prefers-reduced-motion:reduce){.agent-presence-badge,.agent-presence-icon{transition:none}}/* V63 公告管理与通知中心：沿用后台主题变量，列表和编辑器在窄屏下保持可用。 */
.announcement-title-cell{display:flex;align-items:center;gap:7px;min-width:280px;max-width:440px}.announcement-title-cell strong{font-weight:600;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement-sender-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}.announcement-sender-cell img,.announcement-sender-line img{width:30px;height:30px;object-fit:cover;border-radius:50%;border:1px solid var(--line)}.announcement-target-label{display:block;max-width:230px;white-space:normal;overflow-wrap:anywhere;color:var(--muted);font-size:12px}.announcement-read-stats{padding:2px 0;text-decoration:none;font-size:12px}.announcement-editor-wrap{position:relative;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}.announcement-quill-toolbar{display:flex;gap:3px;flex-wrap:wrap;border:0!important;border-bottom:1px solid var(--line)!important;background:var(--surface-soft);padding:8px!important}.announcement-quill-toolbar .ql-formats{margin-right:5px!important}.announcement-quill-toolbar button,.announcement-quill-toolbar select{color:var(--text)}.announcement-quill-toolbar button:hover,.announcement-quill-toolbar button:focus{color:var(--primary)!important}.announcement-editor.ql-container.ql-snow{border:0;min-height:230px;max-height:48vh;overflow:auto;font:inherit;color:var(--text)}.announcement-editor .ql-editor{min-height:230px;padding:13px 15px;overflow-wrap:anywhere}.announcement-editor .ql-editor.ql-blank::before{left:15px;right:15px;color:var(--muted);font-style:normal}.announcement-editor .ql-editor img{max-width:100%;height:auto;border-radius:7px}.announcement-editor .ql-editor iframe{max-width:100%}.announcement-image-resize-handle{position:fixed;z-index:2100;border:2px solid var(--surface);border-radius:3px;background:var(--primary);box-shadow:0 0 0 1px var(--primary);cursor:nwse-resize;touch-action:none;padding:0;transition:transform .12s}.announcement-image-resize-handle:hover{transform:scale(1.12)}.announcement-editor-wrap .ql-snow .ql-picker-options{z-index:5}.announcement-editor-wrap .ql-snow .ql-tooltip{z-index:6;max-width:calc(100% - 20px)}.announcement-editor img,.announcement-rich-content img{max-width:100%;height:auto;border-radius:7px}.announcement-editor ul,.announcement-editor ol,.announcement-rich-content ul,.announcement-rich-content ol{padding-left:1.5rem}.announcement-editor a,.announcement-rich-content a{color:var(--primary);text-decoration:underline}.announcement-sender-line{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;padding:10px 0 17px;border-bottom:1px solid var(--line);margin-bottom:18px}.announcement-sender-line time{margin-left:auto;white-space:nowrap}.announcement-rich-content{font-size:14px;line-height:1.85;overflow-wrap:anywhere}.announcement-rich-content>*:first-child{margin-top:0}.announcement-rich-content>*:last-child{margin-bottom:0}.announcement-bell-btn{position:relative;display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:17px;transition:background .18s,border-color .18s,color .18s}.announcement-bell-btn:hover{background:var(--surface-soft);border-color:var(--primary);color:var(--primary)}.announcement-unread-dot{position:absolute;right:5px;top:4px;width:8px;height:8px;border-radius:50%;background:#ef4444;border:1.5px solid var(--surface);box-shadow:0 0 0 1px #ef444455}.announcement-bell-btn.has-unread>i{animation:announcement-bell-wiggle 1.15s ease-in-out infinite;transform-origin:50% 10%}.announcement-bell-btn:not(.has-unread)>i{animation:none}@keyframes announcement-bell-wiggle{0%,70%,100%{transform:rotate(0)}74%{transform:rotate(12deg)}78%{transform:rotate(-12deg)}82%{transform:rotate(9deg)}86%{transform:rotate(-7deg)}90%{transform:rotate(4deg)}}.merchant-announcement-body{max-height:min(65vh,650px);overflow:auto}.merchant-announcement-list{display:flex;flex-direction:column}.merchant-announcement-item{display:flex;align-items:center;gap:11px;width:100%;padding:13px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;transition:background .15s;padding-left:8px;padding-right:8px;border-radius:7px}.merchant-announcement-item:hover{background:var(--surface-soft)}.merchant-announcement-item.is-unread .merchant-announcement-item-title{font-weight:700}.merchant-announcement-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}.merchant-announcement-item-main{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.merchant-announcement-item-title{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.merchant-announcement-item-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.merchant-announcement-item-meta time{white-space:nowrap}.merchant-announcement-item-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#ef4444}.merchant-announcement-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:38px 12px;color:var(--muted);font-size:12px}.merchant-announcement-empty i{font-size:25px}.merchant-announcement-empty[hidden],#merchantAnnouncementDetailPane[hidden],#merchantAnnouncementListPane[hidden]{display:none!important}
@media(max-width:700px){.announcement-target-label{max-width:160px}.announcement-editor{min-height:180px}.announcement-sender-line{flex-wrap:wrap}.announcement-sender-line time{width:100%;margin-left:39px}.merchant-announcement-item{gap:9px}.merchant-announcement-item-meta{flex-direction:row;align-items:center;gap:8px}.merchant-announcement-item-meta .merchant-announcement-sender{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchant-announcement-item-meta time{flex:0 0 auto;white-space:nowrap}.announcement-bell-btn{width:32px;height:32px;flex-basis:32px}}
@media(prefers-reduced-motion:reduce){.announcement-bell-btn.has-unread>i{animation:none}.announcement-bell-btn{transition:none}}/* Quill 工具栏跟随系统主题，避免深色模式下图标和编辑区对比不足。 */
[data-theme="dark"] .announcement-quill-toolbar .ql-stroke{stroke:var(--text)}[data-theme="dark"] .announcement-quill-toolbar .ql-fill,[data-theme="dark"] .announcement-quill-toolbar .ql-stroke.ql-fill{fill:var(--text)}[data-theme="dark"] .announcement-quill-toolbar .ql-picker-label{color:var(--text)}[data-theme="dark"] .announcement-quill-toolbar .ql-picker-options{background:var(--surface);border-color:var(--line)}[data-theme="dark"] .announcement-quill-toolbar .ql-picker-item{color:var(--text)}.announcement-editor .ql-editor .ql-video{max-width:100%}/* V65：固定公告表格列宽，避免长标题撑开单元格并覆盖发送者列。 */
.announcement-title-cell{display:flex;align-items:center;gap:7px;width:100%;min-width:0;max-width:100%;overflow:hidden}.announcement-title-cell strong{display:block;flex:1 1 auto;width:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement-title-cell .badge{flex:0 0 auto}/* V65：公告编辑器选择器中文化，避免默认英文项直接展示。 */
.announcement-quill-toolbar .ql-picker.ql-font .ql-picker-label::before,.announcement-quill-toolbar .ql-picker.ql-font .ql-picker-item::before{content:'默认字体'}.announcement-quill-toolbar .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,.announcement-quill-toolbar .ql-picker.ql-font .ql-picker-item[data-value=serif]::before{content:'衬线字体'}.announcement-quill-toolbar .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,.announcement-quill-toolbar .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before{content:'等宽字体'}.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-label:not([data-value])::before,.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-item:not([data-value])::before{content:'正常'}.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-label[data-value=small]::before,.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-item[data-value=small]::before{content:'小号'}.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-label[data-value=large]::before,.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-item[data-value=large]::before{content:'大号'}.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,.announcement-quill-toolbar .ql-picker.ql-size .ql-picker-item[data-value=huge]::before{content:'特大号'}/* V73：总后台消息趋势、商户消息排行与实时刷新开关。 */
.dashboard-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.overview-live-toggle{display:inline-flex;align-items:center;gap:10px;position:relative;user-select:none;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .18s,background .18s,box-shadow .18s}.overview-live-toggle:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:var(--surface-soft)}.overview-live-copy{display:flex;flex-direction:column;line-height:1.3;gap:3px}.overview-live-copy strong{font-size:11px;font-weight:700;color:var(--text)}.overview-live-copy small{font-size:9px;color:var(--muted)}.dashboard-content-grid{align-items:stretch}.trend-range{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);flex-shrink:0}.trend-range button{border:0;border-radius:6px;padding:6px 9px;background:transparent;color:var(--muted);font:inherit;font-size:10px;white-space:nowrap;transition:background .16s,color .16s,box-shadow .16s}.trend-range button:hover{color:var(--text)}.trend-range button.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 4px #0000000c;font-weight:700}.ranking-panel{min-height:390px;min-width:0}.dashboard-ranking-list{max-height:450px;min-height:120px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;margin:15px -4px 0;padding:0 4px}.dashboard-ranking-list::-webkit-scrollbar{width:5px}.dashboard-ranking-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}.dashboard-ranking-list .ranking-row{gap:9px;padding:10px 0;min-width:0;animation:ranking-row-in .2s ease both}.ranking-avatar{display:block;width:30px;height:30px;flex:0 0 30px;border-radius:50%;object-fit:cover;background:var(--surface-soft);border:1px solid var(--line)}.ranking-avatar-fallback{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:700}.dashboard-ranking-list .rank-num{flex:0 0 22px}.dashboard-ranking-list .rank-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-ranking-list .ranking-row strong{flex:0 0 auto;font-variant-numeric:tabular-nums}.ranking-empty{padding:26px 10px}.stat-number-updating{animation:stat-value-pulse .26s ease}@keyframes ranking-row-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes stat-value-pulse{0%{opacity:.55;transform:translateY(2px)}100%{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.dashboard-heading-actions{width:100%;justify-content:space-between}.dashboard-content-grid{grid-template-columns:minmax(0,1fr)}.ranking-panel{min-height:0}.dashboard-ranking-list{max-height:360px}}
@media(max-width:600px){.dashboard-heading-actions{width:100%;align-items:center;justify-content:flex-start;flex-direction:row;gap:10px;flex-wrap:nowrap}.dashboard-heading-actions .live-pill{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-live-toggle{align-self:center;margin-top:0;flex-shrink:0}.chart-panel .trend-range{max-width:100%}.trend-range button{padding:6px 10px}.dashboard-ranking-list{max-height:320px}}
@media(prefers-reduced-motion:reduce){.overview-live-toggle,.trend-range button{transition:none!important}.ranking-row-in,.stat-value-pulse{animation:none!important}}/* V77：一级菜单展开后不挤压子菜单，菜单整体在侧栏可视区域内滚动。 */
.sidebar-nav-scroll{min-height:0;max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;}.sidebar-nav-scroll>*{flex:0 0 auto;min-height:max-content;}.sidebar-nav-scroll .nav-submenu{flex:0 0 auto;min-height:0;overflow:hidden;pointer-events:none;}.sidebar-nav-scroll .nav-submenu.open{display:block;min-height:max-content;overflow:visible;pointer-events:auto;}.sidebar-nav-scroll .nav-sublink{flex:0 0 auto;min-height:34px;}/* V79：消息记录文件卡片沿用客服工作台的附件样式。 */
.mr-chat-stream .workspace-media-bubble{position:relative;width:fit-content;max-width:min(320px,64vw);padding:0;overflow:hidden;background:transparent;border-color:transparent;box-shadow:none;border-radius:10px}.mr-chat-stream .workspace-media-bubble img,.mr-chat-stream .workspace-media-bubble video{display:block;width:auto;max-width:min(320px,64vw);max-height:300px;object-fit:contain;border-radius:10px}.mr-chat-stream .workspace-file-bubble{width:fit-content;max-width:min(360px,72vw);overflow:visible}.mr-chat-stream .chat-file-card{display:flex;align-items:center;gap:12px;min-width:220px;max-width:min(320px,68vw);padding:12px;border:1px solid var(--bs-border-color,rgba(128,128,128,.28));border-radius:10px;background:var(--bs-tertiary-bg,#f6f7f9);color:var(--bs-body-color,#212529);box-sizing:border-box;text-decoration:none}.mr-chat-stream .chat-file-card-link:hover{border-color:var(--primary);color:var(--bs-body-color,#212529)}.mr-chat-stream .chat-file-icon{font-size:30px;line-height:1;color:var(--bs-secondary-color,#6c757d);flex:0 0 auto}.mr-chat-stream .chat-file-meta{display:flex;flex-direction:column;gap:5px;min-width:0;max-width:240px}.mr-chat-stream .chat-file-meta strong{font-size:13px;font-weight:600;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mr-chat-stream .chat-file-meta small{font-size:11px;color:var(--bs-secondary-color,#6c757d)}@media(max-width:600px){.mr-chat-stream .chat-file-card{min-width:190px;max-width:72vw;padding:10px}.mr-chat-stream .chat-file-icon{font-size:26px}.mr-chat-stream .chat-file-meta{max-width:calc(72vw - 65px)}}/* V80：公告列表复用风控管理的标签、滚动容器与表格样式。 */
.announcement-list-view{padding:20px}.announcement-risk-scroll{max-height:65vh}.announcement-risk-table{min-width:980px}.announcement-risk-table .announcement-title-cell{min-width:0;max-width:320px}.announcement-risk-table .announcement-title-cell strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement-risk-table .announcement-sender-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}.announcement-risk-table .announcement-sender-cell img{width:30px;height:30px;object-fit:cover;border-radius:50%;border:1px solid var(--line)}.announcement-risk-table .announcement-target-label{max-width:210px;white-space:normal;overflow-wrap:anywhere;color:var(--muted);font-size:12px}.announcement-risk-table .announcement-read-stats{padding:2px 0;text-decoration:none;font-size:12px}@media(max-width:767.98px){.announcement-list-view{padding:16px 12px}.announcement-risk-scroll{max-height:60vh}.announcement-risk-table{min-width:900px}}/* V81：公告标题列保留可读的最小宽度，避免表格窄屏布局挤压标题。 */
.announcement-risk-table th:first-child,.announcement-risk-table td:first-child{min-width:220px}.announcement-risk-table .announcement-title-cell{min-width:220px}/* V82：桌面端将排行栏控制在 0.7fr，窄屏仍由原有断点改为单列。 */
@media(min-width:1101px){.dashboard-content-grid{grid-template-columns:minmax(0,2.3fr) minmax(0,.7fr)}}/* V82：全站品牌图使用原尺寸占位，不添加背景、圆角或阴影。 */
.brand-logo{display:block;width:39px;height:39px;flex:0 0 39px;object-fit:contain;background:transparent;box-shadow:none;border:0;border-radius:0}.login-logo-image{display:block;width:44px;height:44px;object-fit:contain;background:transparent;box-shadow:none;border:0;border-radius:0}.system-settings-card .system-settings-pane{padding:22px;animation:settings-view-in .18s ease both}.system-settings-card .system-settings-pane[hidden]{display:none!important}.system-branding-form{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);margin-bottom:24px}.system-branding-preview{display:flex;align-items:center;gap:12px;min-height:48px}.system-branding-preview img{width:42px;height:42px;object-fit:contain;background:transparent;box-shadow:none}.system-branding-preview span{font-weight:650;color:var(--text)}@media(max-width:700px){.system-settings-card .system-settings-pane{padding:16px 12px}.system-branding-form{padding:12px}}.login-logo.has-brand-logo{background:transparent;box-shadow:none;border-radius:0}/* V107：套餐配置、商户权益及功能未开通提示。 */
.package-icon{display:inline-grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:17px}.package-feature-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--text);transition:border-color .18s ease,background .18s ease,transform .18s ease}.package-feature-toggle:has(.form-check-input:checked){border-color:color-mix(in srgb,var(--primary) 35%,var(--line));background:var(--primary-soft)}.package-feature-toggle strong{display:block;font-size:12px;font-weight:650}.package-feature-toggle small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.package-feature-toggle .form-check{display:flex;align-items:center;flex:0 0 auto;min-height:22px;padding-left:0}.package-feature-toggle .form-check-input{float:none;margin:0;width:2.1em;height:1.2em;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.package-feature-toggle .form-check-input:focus{box-shadow:0 0 0 .2rem color-mix(in srgb,var(--primary) 20%,transparent)}.merchant-package-picker{padding:15px 16px;margin:18px 0;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);transition:border-color .18s ease,background .18s ease}.merchant-package-picker:focus-within{border-color:var(--primary)}.merchant-package-picker .form-label{margin-bottom:0;font-weight:650;color:var(--text)}.merchant-package-picker .form-select{margin-top:8px;background-color:var(--surface);color:var(--text);border-color:var(--line)}.merchant-package-picker small{display:block;margin-top:8px;color:var(--muted);line-height:1.6}.merchant-entitlement-section{padding:17px 17px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);}.merchant-entitlement-section h3{font-size:14px;font-weight:700;margin:0 0 4px;color:var(--text)}.merchant-entitlement-section p{font-size:11px;color:var(--muted);margin:0}.merchant-entitlement-section .form-label{font-size:12px;font-weight:600;color:var(--text)}.merchant-entitlement-section .form-control{background:var(--surface);color:var(--text);border-color:var(--line)}.merchant-entitlement-section .form-text{font-size:10px;color:var(--muted);font-weight:400}.merchant-entitlement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.merchant-entitlement-item{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:49px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);font-size:12px;font-weight:600;transition:border-color .18s ease,background .18s ease,transform .18s ease}.merchant-entitlement-item:has(.form-check-input:checked){border-color:color-mix(in srgb,var(--primary) 35%,var(--line));background:var(--primary-soft)}.merchant-entitlement-item .form-check{display:flex;align-items:center;min-height:22px;padding-left:0}.merchant-entitlement-item .form-check-input{float:none;margin:0;width:2.15em;height:1.2em;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.merchant-entitlement-item .form-check-input:focus{box-shadow:0 0 0 .2rem color-mix(in srgb,var(--primary) 20%,transparent)}.feature-locked-shell{display:grid;place-items:center;min-height:min(62vh,620px);padding:24px 12px;animation:v107LockedIn .28s ease both}.feature-locked-card{width:min(100%,620px);padding:clamp(25px,5vw,45px);border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);text-align:center}.feature-locked-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 17px;border-radius:18px;background:var(--primary-soft);color:var(--primary);font-size:27px}.feature-locked-eyebrow{display:block;color:var(--primary);font-size:10px;font-weight:800;letter-spacing:1.5px;margin-bottom:8px}.feature-locked-card h1{font-size:clamp(20px,3vw,25px);font-weight:750;letter-spacing:-.4px;color:var(--text);margin:0 0 12px}.feature-locked-card>p{max-width:470px;margin:0 auto;color:var(--muted);font-size:13px;line-height:1.9}.feature-locked-note{display:inline-flex;align-items:center;gap:3px;max-width:100%;margin-top:24px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--muted);font-size:11px;line-height:1.6}
@keyframes v107LockedIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.merchant-entitlement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.merchant-entitlement-grid{grid-template-columns:minmax(0,1fr)}.merchant-entitlement-section{padding:13px}.merchant-package-picker{padding:13px}.feature-locked-shell{min-height:52vh;padding:12px 0}.feature-locked-card{border-radius:13px;padding:25px 17px}.feature-locked-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){.merchant-package-picker,.merchant-entitlement-item,.merchant-entitlement-item .form-check-input,.package-feature-toggle,.package-feature-toggle .form-check-input,.feature-locked-shell{transition:none!important;animation:none!important}}/* V110 注册设置：沿用系统设置卡片与 Bootstrap 控件，开关行在窄屏自动堆叠。 */
.registration-setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);transition:background .18s ease,border-color .18s ease}.registration-setting-row .form-label{font-weight:600}.registration-setting-row .form-check-input{width:2.5em;height:1.35em;cursor:pointer;transition:background-color .18s ease,border-color .18s ease}.system-registration-form{padding-top:10px}.system-registration-form .form-text{line-height:1.65}.system-registration-form #registrationTrialDays+.input-group-text{font-size:14px}@media(max-width:575.98px){.registration-setting-row{align-items:flex-start}.registration-setting-row>div:first-child{min-width:0}.registration-setting-row .form-check{padding-top:3px;flex:0 0 auto}}/* V111：固定验证码图片区域宽度，避免弹性布局压缩图片。 */
.captcha-control{
    width: 100%;
    max-width: 100%;
    min-width: 0;
}.captcha-control .captcha-row{
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
    gap: .5rem;
}.captcha-control .captcha-input{
    flex: 1 1 0%;
    width: 0;
    min-width: 0;
}.captcha-control .captcha-refresh{
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 118px;
    width: 118px;
    min-width: 118px;
    max-width: 118px;
    height: 44px;
    padding: 0 !important;
    line-height: 0;
    box-sizing: border-box;
}.captcha-control .captcha-image{
    display: block;
    flex: 0 0 116px;
    width: 116px !important;
    min-width: 116px !important;
    max-width: none !important;
    height: 42px !important;
    object-fit: cover;
}/* 个人资料浮层：总后台与商户后台共用结构，商户版额外展示套餐和卡密入口。 */
.profile-menu-wrap{position:relative;display:flex;align-items:center;flex:0 0 auto;z-index:130}.profile-action-menu.profile-action-card{position:absolute;top:100%;right:0;z-index:140;width:360px;max-width:calc(100vw - 22px);min-width:0;padding:0;overflow:hidden;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 48px #00000024;transform:translateY(-6px) scale(.99);transform-origin:top right;opacity:0;visibility:hidden;pointer-events:none;animation:none;transition:opacity .17s ease,transform .17s ease,visibility .17s ease}.profile-action-menu.profile-action-card[hidden]{display:none!important}.profile-action-menu.profile-action-card.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.profile-card-head{display:flex;align-items:center;gap:12px;padding:16px 17px;border-bottom:1px solid var(--line);background:var(--surface-soft)}.profile-card-avatar{display:block;width:43px;height:43px;flex:0 0 43px;object-fit:cover;border-radius:50%;border:1px solid var(--line);background:var(--surface)}.profile-card-avatar-fallback{display:grid;place-items:center;color:var(--primary);font-size:17px;font-weight:700;background:var(--primary-soft)}.profile-card-identity{display:flex;flex-direction:column;gap:3px;min-width:0}.profile-card-identity strong{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;color:var(--text)}.profile-card-identity span{font-size:11px;color:var(--muted)}.profile-card-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 14px 4px}.profile-card-stats>div{display:flex;flex-direction:column;gap:4px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.profile-card-stats span{font-size:10px;color:var(--muted)}.profile-card-stats strong{font-size:12px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.profile-card-stats .profile-card-date{font-size:10px;letter-spacing:-.2px;white-space:nowrap}.profile-card-redeem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 14px 12px}.profile-card-redeem .form-control{min-width:0;height:34px;border-color:var(--line);background:var(--surface);color:var(--text);font-size:12px}.profile-card-redeem .form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--primary) 16%,transparent)}.profile-card-redeem>.btn{width:auto;min-width:62px;height:34px;padding:0 12px;border:1px solid var(--primary);background:var(--primary);color:#fff;font-size:12px}.profile-card-redeem-message{grid-column:1/-1;padding:7px 9px;border-radius:7px;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.profile-card-redeem-message.is-success{color:#16845b;background:#e8f8f0}.profile-card-redeem-message.is-error{color:#c13d3d;background:#fff0f0}html[data-theme="dark"] .profile-card-redeem-message.is-success{color:#8ce0b9;background:#15372b}html[data-theme="dark"] .profile-card-redeem-message.is-error{color:#ffaaaa;background:#402323}.profile-card-agent-note{padding:10px 15px 12px;font-size:11px;color:var(--muted)}.profile-card-actions{display:flex;flex-direction:column;padding:6px;border-top:1px solid var(--line)}.profile-card-actions button,.profile-card-actions a{width:100%;display:flex;align-items:center;gap:10px;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;text-decoration:none;font-size:12px;transition:background .15s ease,color .15s ease}.profile-card-actions button i,.profile-card-actions a i{width:17px;color:var(--muted);font-size:15px;text-align:center}.profile-card-actions button:hover,.profile-card-actions a:hover{background:var(--primary-soft);color:var(--primary)}.profile-card-actions button:hover i,.profile-card-actions a:hover i{color:var(--primary)}.profile-action-card--admin{width:270px}.profile-action-card--admin .profile-card-head{padding:15px 16px}.profile-action-card--admin .profile-card-actions{border-top:0}
@media(max-width:700px){.profile-action-menu.profile-action-card{right:0;width:min(360px,calc(100vw - 18px));top:100%}.profile-action-card--admin{width:min(270px,calc(100vw - 18px))}.profile-card-head{padding:13px 14px}.profile-card-stats{padding:10px 11px 3px;gap:7px}.profile-card-stats>div{padding:8px}.profile-card-redeem{padding:9px 11px 11px}}
@media(prefers-reduced-motion:reduce){.profile-action-menu.profile-action-card{transition:none;transform:none}.profile-action-menu.profile-action-card.is-visible{transform:none}}/* V113：手机端侧栏与个人资料卡片统一使用可淡入淡出的遮罩层。 */
@media(max-width:700px){
    .sidebar{transition:transform .24s cubic-bezier(.22,.61,.36,1);will-change:transform;touch-action:pan-y;}
    .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:9;background:rgba(11,18,32,.62);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility 0s linear .22s;}
    .sidebar-backdrop.show{display:block;opacity:1;visibility:visible;pointer-events:auto;transition:opacity .22s ease,visibility 0s;}
    .profile-mobile-backdrop{display:block;position:fixed;inset:0;z-index:120;background:rgba(11,18,32,.46);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s;}
    .profile-mobile-backdrop.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s ease,visibility 0s;}
    .profile-menu-wrap{z-index:130;}
}
@media(min-width:701px){.profile-mobile-backdrop{display:none!important;}}
@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-backdrop,.profile-mobile-backdrop{transition:none!important;}
}

/* V159：两个后台的当前菜单使用更清晰的主题底色，深浅主题均沿用主色变量。 */
.sidebar-nav-scroll .sidebar-link.active,
.sidebar-nav-scroll .nav-sublink.active,
#mainSidebar .sidebar-nav-scroll .nav-parent.active {
    background-color: color-mix(in srgb, var(--primary) 10%, var(--surface));
}
:root[data-theme="dark"] .sidebar-nav-scroll .sidebar-link.active,
:root[data-theme="dark"] .sidebar-nav-scroll .nav-sublink.active,
:root[data-theme="dark"] #mainSidebar .sidebar-nav-scroll .nav-parent.active {
    background-color: color-mix(in srgb, var(--primary) 22%, var(--surface));
}

/* V160：系统设置沿用商户个人设置的内容宽度，提示音操作在手机端统一成组排列。 */
.system-settings-card{width:100%;max-width:860px;margin-bottom:18px}
.system-settings-card .system-settings-pane .empty-state{display:flex;width:100%;min-height:124px;align-items:center;justify-content:center;gap:8px;text-align:center}
.system-sound-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.system-sound-actions form{display:inline-flex;align-items:center;margin:0}
.system-sound-actions .badge{white-space:nowrap}
.login-log-ip{display:flex;min-width:112px;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.4}
.login-log-ip code{display:block;padding:0;background:transparent;color:var(--text);font-size:12px;font-weight:600;white-space:nowrap}
.login-log-ip small{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.launcher-icon-delete.is-loading{pointer-events:none;opacity:.85}
.launcher-icon-spinner{display:block;width:12px;height:12px;border:1.6px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:launcher-icon-spin .7s linear infinite}
@keyframes launcher-icon-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){
 .system-sound-row{align-items:flex-start}
 .system-sound-info{flex:1 1 calc(100% - 50px);width:calc(100% - 50px)}
 .system-sound-actions{flex:0 0 calc(100% - 48px);width:calc(100% - 48px);margin-left:48px;justify-content:flex-end;flex-wrap:wrap;gap:8px}
 .system-sound-actions form{display:inline-flex}
 .system-sound-actions .badge{margin:0}
 .system-settings-card .system-settings-pane{padding:16px 12px}
}
@media(prefers-reduced-motion:reduce){.launcher-icon-spinner{animation:none}}

/* V161：图标库卡片内的图片容器始终水平、垂直居中。 */
.launcher-icon-card.ui-choice-option.ui-icon-choice{display:flex;align-items:center;justify-content:center}
.launcher-icon-card.ui-choice-option.ui-icon-choice .launcher-icon-image{display:flex;align-items:center;justify-content:center;margin:auto}

/* V162：个人菜单中的卡密购买入口，与核销输入框保持同一套卡片风格。 */
.profile-card-purchase-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 14px 12px}.profile-card-purchase-links.is-single{grid-template-columns:minmax(0,1fr)}.profile-card-purchase-links .btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.profile-card-purchase-links .btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(max-width:700px){.profile-card-purchase-links{padding:0 11px 11px;gap:7px}}

.system-setting-block{padding:16px 0;border-bottom:1px solid var(--line)}.system-setting-block:first-of-type{padding-top:4px}.system-setting-block:last-of-type{border-bottom:0;padding-bottom:4px}

/* 登录页内的文字操作沿用正文链接字号，按钮仅保留语义与键盘操作能力。 */
.login-inline-action{font:inherit;line-height:inherit;text-decoration:none;border:0;background:transparent;padding:0;cursor:pointer}.login-inline-action:focus-visible{outline:2px solid var(--bs-primary);outline-offset:3px;border-radius:2px}
