/* 第四批增量：真实断点、统一列表与双栏登录。 */
html,body{height:100%;overflow:hidden}
.visual-capture .login-prototype,.visual-capture .tour-mask{display:none!important}
.app-shell,.main-wrap{height:100vh;min-height:0}
.main-wrap{display:flex;flex-direction:column;overflow:hidden}
.offline-banner,.topbar{flex:0 0 auto}
#pageContent{width:100%;max-width:1680px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0 auto;padding-bottom:64px}
.chart{height:260px!important;min-height:260px}.chart-card{min-height:330px}
.table-card .card-head{flex-wrap:wrap}.column-template-download{margin-left:4px;text-decoration:none;white-space:nowrap}
.data-table{table-layout:fixed}.data-table th:last-child,.data-table td:last-child{width:auto}.data-table th:first-child,.data-table td:first-child{width:44px}
.empty-state{min-height:220px;display:grid;place-items:center;text-align:center}
.smart-pagination{min-height:54px;padding:9px 14px;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);color:var(--sub);font-size:11px}
.smart-pagination button,.smart-pagination select,.smart-pagination input{height:30px;border:1px solid var(--line2);border-radius:7px;background:var(--card);color:var(--text);padding:0 9px}
.smart-pagination button{cursor:pointer}.smart-pagination button:disabled{opacity:.4;cursor:not-allowed}.smart-pagination input{width:58px;text-align:center}.smart-pagination label{display:flex;align-items:center;gap:5px}.page-count{margin-right:auto}
.virtual-list-shell{max-height:520px;overflow:auto}.virtual-member-scroll{height:520px;overflow:auto;position:relative}.member-data-table{min-width:1160px}.member-data-table th,.member-data-table td{height:46px}
.virtual-spacer td{height:0;padding:0!important;border:0!important}.list-loading{position:absolute;inset:46px 0 0;display:none;place-items:center;background:color-mix(in srgb,var(--card) 76%,transparent);backdrop-filter:blur(2px);z-index:4}.list-loading.show{display:grid}
.query-selection{min-height:48px;padding:8px 14px;display:flex;align-items:center;gap:15px;flex-wrap:wrap;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 96%,var(--blue) 4%)}.query-selection label{display:flex;align-items:center;gap:6px}.query-selection input{accent-color:var(--blue)}
.member-list-tools{flex-wrap:wrap}.member-table-card{overflow:hidden}.member-table-card .row-action{opacity:1}

/* 登录页 */
.login-prototype{display:block;overflow:hidden;padding:0;background:radial-gradient(circle at 22% 36%,rgba(255,212,0,.08),transparent 28%),radial-gradient(circle at 78% 20%,rgba(61,123,255,.13),transparent 36%),var(--page)}
.login-stage{position:relative;z-index:2;width:100%;height:100%;display:grid;grid-template-columns:46vw 1fr}
.login-brand-panel,.login-form-panel{position:relative;min-width:0;display:flex;align-items:center;justify-content:center}
.login-brand-panel{flex-direction:column;padding:7vh 5vw 5vh;border-right:1px solid var(--line)}
.login-form-panel{padding:5vh 6vw;overflow:hidden}
.login-form-panel::before{content:"";position:absolute;inset:12% 10%;background:radial-gradient(circle,rgba(61,123,255,.11),transparent 63%);filter:blur(28px)}
.login-theme-toggle{z-index:9;right:24px;top:22px}
.login-mark-stage{position:relative;width:220px;height:205px;display:grid;place-items:center;filter:drop-shadow(0 14px 28px rgba(255,212,0,.08))}
.login-mark-stage::before{content:"";position:absolute;width:190px;height:150px;border-radius:50%;background:rgba(255,212,0,.08);filter:blur(28px)}
.login-hero-logo{position:relative;width:220px;height:150px;z-index:2;animation:brand-jelly 1.6s ease-in-out infinite;transform-origin:50% 100%}
.login-mark-shadow{position:absolute;left:50%;bottom:19px;width:120px;height:16px;border-radius:50%;background:rgba(15,23,42,.28);filter:blur(9px);transform:translateX(-50%);animation:brand-shadow 1.6s ease-in-out infinite}
.login-falling-slogan{display:flex;justify-content:center;align-items:center;min-height:64px;font-size:clamp(25px,2.25vw,39px);font-weight:750;letter-spacing:.18em;white-space:nowrap;color:var(--text)}
.login-falling-slogan span{display:inline-block;opacity:0;animation:char-drop .9s cubic-bezier(.2,.9,.3,1.2) forwards;animation-delay:calc(var(--i) * 120ms)}
.login-falling-slogan .brand-char{color:#FFD400;text-shadow:-2px 4px 10px rgba(0,0,0,.22)}
.login-brand-panel .server-health{position:absolute;left:5vw;right:5vw;bottom:4vh;justify-content:flex-start;margin:0;padding:14px 0 0}.login-brand-panel .server-health .health-version{margin-left:auto}
.login-card{position:relative;z-index:2;width:min(480px,100%);padding:34px 38px 30px;margin:0;background:color-mix(in srgb,var(--card) 82%,transparent);border:1px solid var(--line2);backdrop-filter:blur(22px);box-shadow:0 32px 100px rgba(15,23,42,.18)}
.login-identity{display:flex;align-items:center;justify-content:flex-start;gap:14px;text-align:left;margin-bottom:22px}.login-logo{width:74px;height:54px}.login-identity>div{display:grid}.login-product{font-size:17px!important;margin:0!important}.login-identity p{margin:4px 0 0;color:var(--sub);letter-spacing:.08em}
.ghost-slogan{position:absolute;right:-5vw;top:10%;font-size:clamp(70px,9vw,154px);font-weight:900;white-space:nowrap;color:var(--text);opacity:.025;transform:rotate(-8deg);pointer-events:none}
.captcha-trigger{width:100%;height:42px;margin-top:10px;border:1px dashed rgba(61,123,255,.45);border-radius:8px;background:rgba(61,123,255,.06);color:var(--blue);display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}.captcha-trigger.passed{border-style:solid;border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.08);color:var(--green)}
.captcha-countdown{min-height:18px;text-align:center;color:var(--green);font-size:11px}.login-submit:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.login-prototype.login-success .login-hero-logo{animation:success-hop .52s cubic-bezier(.2,.9,.3,1.2)}.login-prototype.login-success .login-stage{animation:login-fade-out .52s ease forwards}
.captcha-backdrop{position:absolute;inset:0;z-index:20;background:rgba(15,23,42,.34);backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:.18s}.captcha-backdrop.show{opacity:1;visibility:visible}
.captcha-modal{position:absolute;z-index:21;left:50%;top:50%;width:min(390px,calc(100% - 30px));padding:18px;border:1px solid var(--line2);border-radius:15px;background:var(--float);box-shadow:0 28px 90px rgba(0,0,0,.32);opacity:0;visibility:hidden;transform:translate(-50%,-47%) scale(.97);transition:.18s}.captcha-modal.show{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.captcha-modal.wrong{animation:captcha-shake .42s ease}
.captcha-modal header{display:flex;align-items:center;margin-bottom:14px}.captcha-modal header>div{display:grid}.captcha-modal header small{color:var(--sub)}.captcha-modal header button{margin-left:auto}.captcha-prompt{display:flex;gap:6px;align-items:center;color:var(--sub)}.captcha-prompt b{color:var(--text);letter-spacing:.15em}.captcha-prompt span{margin-left:auto;color:var(--amber);font:11px ui-monospace,monospace}
.captcha-canvas{height:190px;margin:14px 0 10px;border:1px solid var(--line);border-radius:11px;position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(61,123,255,.06),rgba(255,212,0,.05))}.captcha-canvas::before,.captcha-canvas::after{content:"";position:absolute;inset:35% -10%;border-top:1px dashed rgba(61,123,255,.13);transform:rotate(-9deg);pointer-events:none}.captcha-canvas::after{transform:rotate(13deg)}
.captcha-canvas button{position:absolute;left:var(--x);top:50%;width:58px;height:58px;margin:-29px 0 0 -16px;border:1px solid var(--line2);border-radius:14px;background:var(--card);color:var(--text);font-size:27px;font-weight:700;box-shadow:0 8px 22px rgba(15,23,42,.12);cursor:pointer}.captcha-canvas button span{display:block;animation:captcha-float var(--d) ease-in-out infinite alternate}.captcha-canvas button:nth-child(2){top:32%}.captcha-canvas button:nth-child(3){top:67%}.captcha-canvas button.picked{border-color:var(--green);color:var(--green);opacity:.48}.captcha-progress{min-height:25px;text-align:center;letter-spacing:.25em;color:var(--green)}.captcha-refresh{width:100%}
@keyframes brand-jelly{0%,100%{transform:translateY(-14px) scale(1)}48%{transform:translateY(13px) scaleX(1.04) scaleY(.92)}62%{transform:translateY(4px) scaleX(.98) scaleY(1.03)}}
@keyframes brand-shadow{0%,100%{transform:translateX(-50%) scale(.68);opacity:.22}48%{transform:translateX(-50%) scale(1.18);opacity:.48}62%{transform:translateX(-50%) scale(.88);opacity:.34}}
@keyframes char-drop{0%{opacity:0;transform:translateY(-40vh) rotate(-6deg)}75%{opacity:1;transform:translateY(7px) rotate(1deg)}100%{opacity:1;transform:none}}
@keyframes captcha-float{from{transform:rotate(calc(var(--r) * -1)) translateY(-5px)}to{transform:rotate(var(--r)) translateY(5px)}}
@keyframes captcha-shake{0%,100%{transform:translate(-50%,-50%)}20%{transform:translate(calc(-50% - 12px),-50%)}40%{transform:translate(calc(-50% + 10px),-50%)}60%{transform:translate(calc(-50% - 7px),-50%)}80%{transform:translate(calc(-50% + 4px),-50%)}}
@keyframes success-hop{0%{transform:translateY(0)}45%{transform:translateY(-24px) scale(1.06)}100%{transform:translateY(0)}}
@keyframes login-fade-out{to{opacity:0;transform:scale(1.015)}}

@media(min-width:1600px){
  #pageContent{max-width:1680px}
  #pageContent .grid.cols-2,#pageContent .grid.cols-3,#pageContent .grid.cols-4,#pageContent .stats-9{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))!important}
  #pageContent .table-card{width:100%}
}
@media(min-width:1200px) and (max-width:1599px){
  .data-table .col-opt{display:none}.data-table th.col-opt{display:none}
}
@media(max-width:1199px){
  :root{--sidebar:64px}.sidebar{width:64px}.main-wrap{margin-left:64px}.sidebar .brand-copy,.sidebar .nav-copy,.sidebar .operator .brand-copy,.sidebar .nav-count{display:none}.sidebar .brand{padding:0 11px}.sidebar .sidebar-logo{width:40px}.sidebar .collapse-btn{display:none}.sidebar nav{padding:10px 7px}.sidebar .nav-item{padding:0;justify-content:center}.sidebar-foot{padding:10px;justify-content:center}.sidebar-foot .operator{display:none}
  .topbar{padding:0 18px}.global-search{width:44px}.global-search span,.global-search kbd{display:none}
}
@media(max-width:899px){
  #pageContent{padding:14px 14px 52px}.topbar{height:auto;min-height:70px;gap:10px}.page-heading{min-width:0}.page-heading p{display:none}.top-actions{gap:5px}.top-actions .primary-btn span,.bot-state{display:none}
  #pageContent .grid,#pageContent .todo-workbench,#pageContent .split-workspace{grid-template-columns:1fr!important}.split-workspace{display:grid}.ticket-list{max-height:560px}.conversation{min-height:540px}
  #pageContent .grid.cols-4,#pageContent .stats-9{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .page-tools{align-items:stretch;flex-direction:column}.page-tools>*{width:100%!important}.page-tools .grow{display:none}.page-tools .filter-chip{text-align:left;border-radius:8px}.member-list-tools{display:grid;grid-template-columns:1fr 1fr}.member-list-tools>*{width:100%!important}.member-list-tools #memberQuery{grid-column:1/-1}
  .drawer{width:90vw}.table-scroll{overflow:auto}.data-table{min-width:980px}.data-table th:first-child,.data-table td:first-child{position:sticky;left:0;z-index:4}.smart-pagination{justify-content:flex-start}.page-count{width:100%;margin:0}.query-selection{align-items:flex-start}.audit-list{overflow:auto}
  .login-stage{grid-template-columns:1fr;overflow:auto}.login-brand-panel{min-height:43vh;padding:5vh 20px 3vh;border-right:0;border-bottom:1px solid var(--line)}.login-form-panel{min-height:57vh;padding:28px 18px 50px}.login-mark-stage{width:150px;height:130px}.login-hero-logo{width:150px;height:105px}.login-mark-shadow{bottom:5px;width:90px}.login-falling-slogan{font-size:24px}.login-brand-panel .server-health{position:static;width:100%;margin-top:auto}.login-card{padding:26px 24px}.ghost-slogan{font-size:68px}
}
@media(max-width:520px){
  :root{--sidebar:0px}.sidebar{transform:translateX(-100%)}.main-wrap{margin-left:0}.mobile-menu{display:grid}.topbar{padding:0 10px}.top-actions #pagePrimary,.top-actions #replayTour{display:none}.page-heading h1{font-size:16px}.global-search{display:none}
  #pageContent .grid.cols-4,#pageContent .stats-9{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}.stat-card{min-height:102px}.stat-value{font-size:23px}
  .member-list-tools{grid-template-columns:1fr}.member-list-tools #memberQuery{grid-column:auto}.smart-pagination{gap:6px}.smart-pagination span:nth-of-type(2){display:none}.query-selection .grow{display:none}.query-selection button{flex:1}.virtual-member-scroll{height:470px}.drawer{width:90vw}
  .login-brand-panel{min-height:39vh}.login-form-panel{padding:22px 14px 40px}.login-card{width:100%;padding:22px 18px}.login-identity{margin-bottom:12px}.login-logo{width:62px;height:44px}.login-product{font-size:15px!important}.login-falling-slogan{font-size:20px}.login-mark-stage{height:110px}.login-hero-logo{width:130px;height:90px}.login-brand-panel .server-health{font-size:10px}.captcha-modal{padding:15px}.captcha-canvas{height:175px}
}
@media(prefers-reduced-motion:reduce){.login-hero-logo,.login-mark-shadow,.login-falling-slogan span,.captcha-canvas button span{animation-duration:.01ms!important;animation-iteration-count:1!important}}
