:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#253a32;background:#f7f8f4;font-size:16px;line-height:1.65;--accent:#275b49;--muted:#617168;--line:#dde4dc;--surface:#fff;--soft:#edf2e9;--danger:#a43535;--warn:#805a16}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}a{color:var(--accent);text-underline-offset:4px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button,a,input,select{transition:background-color .18s ease-out,border-color .18s ease-out}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #629880;outline-offset:4px}::selection{background:#c4ddcb;color:#19392c}input{caret-color:var(--accent)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:1.875rem;line-height:1.4;letter-spacing:-.025em;font-weight:650}h2{font-size:1.25rem;font-weight:650;line-height:1.5}h3{font-size:1rem;font-weight:650}p{max-width:70ch}small,.small{font-size:.8125rem}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip{position:fixed;top:-100px;left:16px;background:#fff;padding:10px;z-index:20}.skip:focus{top:10px}.initial{padding:80px}.layout{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:34px 24px 24px;background:#eff3ed;border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--accent);font-size:1.375rem;font-weight:700;text-decoration:none;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--accent);color:#fff}.brand-mark .icon{width:23px;height:23px}.brand-note{font-size:.8125rem;color:var(--muted);margin:10px 0 38px}.nav{display:flex;flex-direction:column;gap:7px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:9px;text-decoration:none;color:#516158;font-size:.9375rem;white-space:nowrap}.nav a:hover{background:#e3ebe0}.nav a[aria-current=page]{color:#214d3b;background:#dce9d9;font-weight:650}.sidebar-bottom{margin-top:auto;padding-top:30px}.account-label{display:flex;align-items:center;gap:10px;font-size:.875rem;margin-bottom:12px;overflow-wrap:anywhere}.avatar{width:32px;height:32px;display:grid;place-items:center;border:1px solid #c3d0c2;border-radius:50%;font-size:.8125rem}.text-button{border:0;background:none;color:var(--muted);padding:4px 0;text-decoration:underline;text-underline-offset:4px;font-size:.875rem}.text-button:hover{color:var(--accent)}.workspace{min-width:0}.topbar{height:76px;padding:0 46px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fafbf8;gap:16px;font-size:.875rem}.topbar-meta{display:flex;align-items:center;gap:22px}.topbar small{color:var(--muted)}.content{max-width:1180px;margin:0 auto;padding:42px 46px 60px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:30px}.page-heading p{margin-top:9px;color:var(--muted);font-size:.9375rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 17px;border:1px solid #c9d6ca;border-radius:8px;background:#fff;color:var(--accent);font-weight:600;font-size:.875rem;text-decoration:none;white-space:nowrap}.button:hover{background:#edf3e9;border-color:#9bb8a5}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:#1d4537}.button.danger{color:var(--danger);border-color:#ddbbbb}.button.danger:hover{background:#fff1f1}.button.compact{min-height:34px;padding:5px 11px;font-size:.8125rem}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:5px;background:#e8f0e5;color:#315b3f;padding:3px 9px;font-size:.75rem;line-height:1.6;font-weight:550;white-space:nowrap}.badge.warning{background:#f7edda;color:#75511d}.badge.neutral{background:#edf0ed;color:#58645d}.badge.error{background:#faeaea;color:#993737}.status-line{display:flex;align-items:center;gap:10px;font-size:.875rem;margin-bottom:24px}.dot{width:7px;height:7px;background:#3e7952;border-radius:50%;display:inline-block}.status-line.off .dot{background:#946824}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px}.quota-panel{padding:30px 32px;background:#edf3e8;border-color:#d7e2d0}.quota-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.quota-reading{display:flex;align-items:baseline;gap:9px;margin-top:24px}.quota-reading strong{font-size:3rem;font-weight:600;letter-spacing:-.03em;line-height:1.2}.quota-reading span{font-size:.875rem;color:#4b644e}.quota-bar{height:10px;border-radius:6px;background:#d4dfce;margin-top:18px;overflow:hidden}.quota-bar progress{display:block;width:100%;height:10px;appearance:none;border:0;background:#d4dfce;color:var(--accent)}progress::-webkit-progress-bar{background:#d4dfce}progress::-webkit-progress-value{background:var(--accent);border-radius:6px}progress::-moz-progress-bar{background:var(--accent);border-radius:6px}.quota-meta{display:flex;justify-content:space-between;gap:20px;margin-top:16px;font-size:.8125rem;color:#4b644e}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.section-title{margin:32px 0 16px}.detail-list{margin:12px 0 0}.detail-list>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #edf0eb;font-size:.875rem}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.panel-footer{border-top:1px solid var(--line);padding-top:16px;margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.8125rem;color:var(--muted)}.connection-copy{font-size:.875rem;color:var(--muted);margin:16px 0 20px}.connection-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.help-list{margin-top:8px}.help-list>a{display:flex;align-items:center;justify-content:space-between;gap:24px;color:inherit;text-decoration:none;padding:18px 0;border-bottom:1px solid var(--line)}.help-list>a:hover{color:var(--accent)}.help-list>a span{font-size:.875rem}.help-list>a small{display:block;color:var(--muted);margin-top:3px}.footer-note{font-size:.75rem;color:var(--muted);margin-top:34px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.steps{list-style:none;margin:26px 0;padding:0;counter-reset:steps}.steps li{counter-increment:steps;display:grid;grid-template-columns:32px 1fr;gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}.steps li:before{content:counter(steps);display:grid;place-items:center;align-self:start;width:28px;height:28px;border-radius:50%;background:var(--soft);font-size:.875rem;font-weight:600}.steps li p{margin-top:7px;font-size:.875rem;color:var(--muted)}.hint{padding:18px 20px;background:#f2f5ee;border-radius:9px;font-size:.875rem;color:#4d624f;line-height:1.8}.faq{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{cursor:pointer;font-weight:550;list-style-position:outside;margin-left:18px;padding:4px 0}.faq p{color:var(--muted);font-size:.875rem;margin:12px 0 0 18px}.subheading{margin:30px 0 14px}.login{min-height:100dvh;display:grid;grid-template-columns:minmax(340px,1fr) minmax(400px,1fr)}.login-story{background:#e6efdf;padding:56px 12%;display:flex;flex-direction:column;justify-content:space-between}.login-story h1{font-size:2.5rem;line-height:1.6;margin:70px 0 22px;max-width:10em;font-weight:550}.login-story p{color:#50684f;font-size:.9375rem}.login-foot{margin-top:70px;font-size:.8125rem;color:#50684f}.login-main{display:flex;align-items:center;justify-content:center;padding:42px}.login-box{width:100%;max-width:350px}.login-box h2{font-size:1.625rem}.login-box>p{color:var(--muted);font-size:.875rem;margin-top:9px}.form{display:grid;gap:18px;margin-top:30px}.field{display:grid;gap:7px;font-size:.875rem;font-weight:550}.field input,.field select{width:100%;min-height:44px;padding:9px 12px;border:1px solid #b8c7b9;border-radius:7px;background:#fff;color:#263c30;font-weight:400;min-width:0}.field input::placeholder{color:#6c786e}.field small{font-weight:400;color:var(--muted);line-height:1.6}.form-error{color:var(--danger);font-size:.875rem;min-height:22px}.login-note{font-size:.75rem;color:var(--muted);margin-top:28px}.alert{padding:16px 20px;border:1px solid #e4ceab;border-radius:9px;background:#fcf7ed;color:#77501b;font-size:.875rem;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.alert a{color:inherit;font-weight:600}.load-panel{padding:35px;border-radius:12px;background:#edf1e8;color:var(--muted)}.load-bar{height:12px;background:#d8e3d4;border-radius:4px;margin:18px 0;width:70%}.load-bar:last-child{width:45%}dialog{border:0;border-radius:14px;padding:30px;width:min(94vw,470px);color:inherit;background:#fff;box-shadow:0 20px 70px #0f2d2c33;max-height:90dvh;overflow:auto}dialog::backdrop{background:#142c284d}dialog h2{font-size:1.25rem}dialog>p{font-size:.875rem;color:var(--muted);margin-top:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.dialog-form{gap:14px;margin-top:22px}.mobile-brand{display:none}.admin .sidebar{background:#223c34;color:#dce8df;border-right:0}.admin .brand{color:#fff}.admin .brand-mark{background:#e4eddf;color:#244a39}.admin .brand-note{color:#acbfb2}.admin .nav a{color:#bfcec4}.admin .nav a:hover{background:#2c493f}.admin .nav a[aria-current=page]{background:#355a49;color:#fff}.admin .account-label{color:#dce8df}.admin .avatar{border-color:#608170}.admin .text-button{color:#bfcec4}.admin .content{max-width:1450px;padding:34px 38px 60px}.admin .topbar{padding:0 38px;height:70px}.admin h1{font-size:1.625rem}.admin .page-heading{margin-bottom:26px}.admin .panel{padding:23px 25px}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:26px;gap:20px}.stat{border-right:1px solid var(--line);padding-left:20px}.stat:first-child{padding-left:0}.stat:last-child{border-right:0}.admin .two-column{margin-top:26px}.admin .footer-note{margin-top:24px}
@media(min-width:1500px){.content{padding-top:52px}.admin .content{padding-top:42px}}
@media(max-width:1100px){.layout{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding:28px 17px}.content,.admin .content{padding:30px 26px 50px}.topbar,.admin .topbar{padding:0 26px}.two-column{gap:16px}.admin-columns{grid-template-columns:1fr}.stat-strip{gap:12px}.stat{padding-left:12px}.stat-value{font-size:1.5rem}.quota-panel{padding:26px}}
@media(max-width:760px){.layout{display:block}.sidebar{position:static;height:auto;padding:20px 20px 0;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:1.25rem}.brand-note{display:none}.nav{flex-direction:row;gap:18px;margin-top:18px;overflow-x:auto;padding:0 0 8px;scrollbar-width:thin}.nav a{padding:9px 0;border-radius:0;gap:6px;font-size:.875rem;border-bottom:2px solid transparent}.nav .icon{width:17px;height:17px}.nav a[aria-current=page]{background:none;border-bottom-color:var(--accent)}.nav a:hover{background:none}.sidebar-bottom{display:none}.topbar,.admin .topbar{height:52px;padding:0 20px;font-size:.75rem;background:#f7f8f4}.topbar-meta{gap:15px}.content,.admin .content{padding:28px 20px 40px}.page-heading{gap:14px;margin-bottom:24px}h1{font-size:1.625rem}.page-heading p{font-size:.875rem}.page-heading>.button{padding:8px 11px;min-height:38px}.status-line{align-items:flex-start;font-size:.8125rem;gap:8px}.status-line .dot{margin-top:9px;flex-shrink:0}.panel,.admin .panel{padding:22px}.quota-panel{padding:24px}.quota-title{align-items:flex-start}.quota-title h2{font-size:1.125rem}.quota-reading{margin-top:22px}.quota-reading strong{font-size:2.75rem}.quota-meta{flex-direction:column;gap:5px}.two-column{grid-template-columns:1fr;gap:16px;margin-top:16px}.panel-footer{flex-wrap:wrap}.footer-note{margin-top:26px}.login{display:flex;flex-direction:column}.login-story{padding:28px 26px 24px}.login-story h1{font-size:1.75rem;margin:26px 0 12px;max-width:none}.login-story p{font-size:.875rem}.login-foot{display:none}.login-main{padding:32px 26px 40px;display:block}.login-box{max-width:420px;margin:0 auto}.login-box h2{font-size:1.375rem}.form{margin-top:24px;gap:16px}.admin .sidebar{padding-bottom:0}.admin .nav{gap:22px}.admin .nav a[aria-current=page]{background:none;color:#fff;border-bottom-color:#d0e3bf}.admin .nav a:hover{background:none}.stat-strip{grid-template-columns:1fr 1fr;gap:22px 16px;padding:22px 0}.stat{padding-left:0;border-right:0}.stat-value{font-size:1.5rem}.stat:nth-child(2n){padding-left:18px;border-left:1px solid var(--line)}.admin .page-heading{margin-bottom:22px}.admin h1{font-size:1.5rem}.admin-columns{gap:16px}.budget-row{align-items:flex-start}.table-tools{align-items:flex-start;flex-direction:column;gap:13px}.search{max-width:none}.data-table{font-size:.75rem}.data-table td{padding:14px 12px}.admin .two-column{margin-top:16px}.alert{align-items:flex-start;flex-direction:column;gap:8px}.chart{gap:7px}.chart-label{font-size:.625rem}.topbar .desktop-only{display:none}.mobile-logout{display:inline-flex!important}.help-list>a small{max-width:29ch}.footer-note{font-size:.6875rem}dialog{padding:24px}}
.mobile-logout{display:none}
.dialog-form .form-error:empty{display:none}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}


/* Admin-specific extensions. */
/* Admin tables keep the full account record readable on desktop. */
.admin .table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
.admin .data-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;table-layout:auto;font-size:.875rem;font-variant-numeric:tabular-nums}
.admin .data-table th,.admin .data-table td{padding:17px 18px;border-bottom:1px solid #edf0eb;text-align:left;vertical-align:top;line-height:1.55}
.admin .data-table th{background:#f4f7f2;color:#4e6256;font-size:.75rem;font-weight:650;letter-spacing:.02em;white-space:nowrap}
.admin .data-table tbody tr:last-child td{border-bottom:0}
.admin .data-table tbody tr:hover td{background:#fbfdf9}
.admin .data-table td strong{display:block;font-weight:650;line-height:1.45;overflow-wrap:anywhere}
.admin .data-table td small{display:block;margin-top:5px;color:var(--muted);font-size:.75rem;line-height:1.45;white-space:normal}
.admin .data-table th:first-child,.admin .data-table td:first-child{min-width:190px}
.admin .data-table th:nth-child(2),.admin .data-table td:nth-child(2){min-width:150px}
.admin .data-table th:nth-child(3),.admin .data-table td:nth-child(3){min-width:190px}
.admin .data-table th:nth-child(4),.admin .data-table td:nth-child(4){min-width:165px}
.admin .data-table th:nth-child(5),.admin .data-table td:nth-child(5){min-width:175px}
.admin .data-table th:last-child,.admin .data-table td:last-child{min-width:190px}
.admin .row-actions{display:flex;flex-wrap:wrap;gap:9px;min-width:170px}
.admin .row-actions .button{margin-top:0}
.login-admin .password-control{position:relative;display:block}
.login-admin .password-control input{padding-right:48px}
.login-admin .password-toggle{position:absolute;top:50%;right:8px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);transform:translateY(-50%)}
.login-admin .password-toggle:hover{background:var(--soft);color:var(--accent)}
.login-admin .password-toggle .icon{width:18px;height:18px;stroke-width:1.8}

@media(max-width:760px){.admin .sidebar-bottom{display:flex;justify-content:flex-end;margin-top:12px;padding:0 0 12px}.admin .sidebar-bottom .account-label{display:none}}

/* Palmini user app — MiniZone appweb visual system.
   Content uses solid surfaces; glass is reserved for navigation and overlays. */
body:has(.user-layout),body:has(.login-user){
  --page:#f2f4f7;--surface:#fff;--field:#f5f6f9;--ink:#20242e;--muted:#687080;
  --faint:#818998;--line:rgba(24,32,48,.08);--accent:#2368f5;--accent-deep:#1750c8;
  --accent-soft:rgba(35,104,245,.09);--danger:#cc302b;--success:#158567;--success-soft:#e6f6f0;
  --warning:#936314;--warning-soft:#faf0db;--glass:linear-gradient(145deg,rgba(255,255,255,.82),rgba(250,251,253,.68));
  --glass-border:rgba(255,255,255,.8);--card-shadow:0 2px 8px rgba(18,26,40,.025);
  --glass-shadow:0 14px 38px rgba(18,26,40,.13),0 2px 8px rgba(18,26,40,.05),inset 0 1px 0 rgba(255,255,255,.85);
  --font-ui:"MiSans","PingFang SC","HarmonyOS Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
  margin:0;background:var(--page);color:var(--ink);font-family:var(--font-ui);line-height:1.55;
  -webkit-font-smoothing:antialiased;color-scheme:light;
}
html:has(.user-layout),html:has(.login-user){background:#f2f4f7}
body:has(.user-layout){overflow:hidden}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
dialog.feedback-dialog .dialog-actions .button{width:100%}
dialog.feedback-dialog #action-error:empty{display:none}
:is(.user-layout,.login-user) *,body:has(:is(.user-layout,.home-page,.login-user)) dialog *{box-sizing:border-box}
:is(.user-layout,.login-user) :is(h1,h2,h3,p,dl){margin:0}
:is(.user-layout,.login-user) :is(button,input,textarea,select){font:inherit}
:is(.user-layout,.login-user) a{color:inherit;text-decoration:none}
:is(.user-layout,.login-user) :is(button,a,input,textarea,summary):focus-visible,
body:has(:is(.user-layout,.home-page,.login-user)) dialog :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
:is(.user-layout,.login-user) .icon{width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.user-layout{position:relative;isolation:isolate;display:block;width:100%;max-width:480px;height:100dvh;min-height:0;margin:0 auto;background:var(--page);color:var(--ink);overflow:hidden}
.user-layout::before,.login-user::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 50% at 88% -4%,rgba(82,160,240,.1),transparent 70%),radial-gradient(90% 40% at 0% 20%,rgba(119,88,244,.05),transparent 70%),linear-gradient(180deg,#f6f8fb,var(--page) 30%,#eef1f6)}
.user-layout .workspace{position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0}
.user-layout .content{position:absolute;inset:0;display:block;width:100%;max-width:none;min-width:0;margin:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;scrollbar-width:none;padding:calc(26px + env(safe-area-inset-top)) 20px calc(128px + env(safe-area-inset-bottom));outline:none}
.user-layout .content::-webkit-scrollbar{display:none}
.user-layout .user-page{width:100%;min-width:0}
.user-layout .qq-connect-page{display:grid;gap:16px}
.user-layout .wechat-connect-page{display:grid;gap:16px}
.user-layout .wechat-tutorial ol{display:grid;gap:18px;margin:20px 0 0;padding-left:22px}
.user-layout .wechat-tutorial li::marker{color:var(--accent);font-weight:650}
.user-layout .wechat-tutorial strong{font-size:14px;font-weight:600}
.user-layout .wechat-tutorial p{margin-top:5px;color:var(--muted);font-size:13px;line-height:1.8}
.user-layout .wechat-state-copy{margin-top:14px;color:var(--muted);font-size:13px;line-height:1.8}
.user-layout .wechat-authorization-actions{display:grid;gap:10px;margin-top:24px}
.user-layout .wechat-authorization-actions>.button{width:100%}
.user-layout .wechat-authorization-actions>.button[data-wechat-start]{background:#148443;color:#fff}
.user-layout .wechat-authorization-actions>.button[data-wechat-check]{background:#148443;color:#fff}
.user-layout .wechat-authorization-note{margin-top:14px;color:var(--muted);font-size:12px;line-height:1.8;text-align:center}
.user-layout .wechat-account-details{display:grid;gap:20px;margin-top:24px;font-size:14px}
.user-layout .wechat-account-details>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;line-height:1.7}
.user-layout .wechat-account-details dt{color:var(--muted)}
.user-layout .wechat-account-details dd{margin:0;overflow-wrap:anywhere}
.user-layout .wechat-pairing{display:grid;gap:12px;margin-top:20px;padding:0;background:transparent;box-shadow:none}
.user-layout .wechat-pairing>small{font-size:12px;color:var(--muted);line-height:1.7}
@media(hover:hover){.user-layout .wechat-authorization-actions>.button[data-wechat-start]:hover{background:#106b36}.user-layout .wechat-authorization-actions>.button[data-wechat-check]:hover{background:#106b36}}
.user-layout .qq-connect-page p,.user-layout .qq-intro ol{font-size:14px;line-height:1.8;color:var(--muted)}
.user-layout .qq-connect-page h2+p{margin-top:10px}
.user-layout .qq-intro ol{margin:16px 0 0;padding-left:22px}
.user-layout .qq-intro li+li{margin-top:9px}
.user-layout a.qq-platform-link{display:flex;align-items:center;gap:14px;min-height:80px;margin-top:20px;padding:16px;border-radius:16px;background:var(--field)}
.user-layout .qq-platform-link>span:nth-child(2){flex:1;min-width:0}
.user-layout .qq-platform-link strong{display:block;font-size:16px;font-weight:650}
.user-layout .qq-platform-link small{display:block;margin-top:5px;color:var(--muted);font-size:12px}
.user-layout .qq-platform-link>.icon{width:18px;color:var(--muted)}
.user-layout .qq-status-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.user-layout .qq-connection-status>p{margin-top:10px;overflow-wrap:anywhere}
.user-layout .qq-connect-form{display:grid;gap:18px;margin-top:22px}
.user-layout .qq-connect-form .qq-field-note{font-size:12px;line-height:1.7}
.user-layout .qq-connect-form #qq-secret-help{margin-top:-10px}
.user-layout .qq-connect-form input::placeholder{color:var(--muted)}
.user-layout .qq-connect-page .form-error{color:var(--danger)}
.user-layout .qq-connect-page .form-error[hidden]{display:none}
.user-layout .qq-connect-form .button.primary{background:#2368f5;color:#fff}
.user-layout .qq-owner-guide{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.user-layout .qq-owner-guide>strong{font-size:14px;font-weight:650}
.user-layout .qq-owner-guide>p{margin-top:7px;font-size:13px}
.user-layout .qq-binding-command{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px;background:var(--field);border-radius:12px}
.user-layout .qq-binding-command code{font-size:15px;overflow-wrap:anywhere;user-select:all}
.user-layout .qq-binding-command .button{min-height:44px;padding:8px 12px;font-size:12px;flex-shrink:0}
.user-layout .qq-connection-status>[data-qq-disconnect]{width:100%;margin-top:24px}
.user-layout .qq-advantages ul{display:grid;gap:18px;margin:22px 0 0;padding:0;list-style:none}
.user-layout .qq-advantages li>strong{display:block;font-size:14px;font-weight:650}
.user-layout .qq-advantages li>span{display:block;margin-top:5px;color:var(--muted);font-size:14px;line-height:1.8}
@media(hover:hover){.user-layout .qq-platform-link:hover{background:var(--accent-soft)}.user-layout .qq-connect-form .button.primary:hover{background:#1750c8}}
.user-layout .content[data-page-enter] > :is(.user-page,.personalization-panel,.plans-panel,.guide-page){animation:page-enter .2s ease-out both}
.user-layout .user-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 26px}
.user-layout h1{font-family:var(--font-ui);font-size:28px;font-weight:700;line-height:1.25;letter-spacing:-.02em}
.user-layout h2{font-size:18px;line-height:1.4;font-weight:650;letter-spacing:-.015em}
.user-layout h3{font-size:16px;font-weight:650;line-height:1.5}
:is(.user-layout,.login-user) .button,body:has(:is(.user-layout,.home-page,.login-user)) dialog .button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:11px 20px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:15px;font-weight:600;line-height:1.4;text-decoration:none;cursor:pointer;box-shadow:none;transition:background .16s,transform .16s,box-shadow .16s}
:is(.user-layout,.login-user) .button.primary,body:has(:is(.user-layout,.home-page,.login-user)) dialog .button.primary{border-color:transparent;background:var(--accent);color:#fff;box-shadow:0 5px 14px rgba(35,104,245,.15)}
:is(.user-layout,.login-user) .button.danger,body:has(:is(.user-layout,.home-page,.login-user)) dialog .button.danger{color:var(--danger);background:var(--surface)}
:is(.user-layout,.login-user) .button:active{transform:scale(.98)}
:is(.user-layout,.login-user) .button:disabled{opacity:.55;cursor:wait;transform:none}
.user-layout .panel{display:block;min-width:0;margin:0;padding:20px;border:0;border-radius:24px;background:var(--surface);color:var(--ink);box-shadow:var(--card-shadow)}
.user-layout .badge{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:3px 9px;border:0;border-radius:8px;background:var(--accent-soft);color:var(--accent-deep);font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap}
.user-layout .badge.neutral{background:var(--field);color:var(--muted)}
.user-layout .badge.warning{background:var(--warning-soft);color:var(--warning)}
.user-layout .badge.error{background:#fdecea;color:var(--danger)}
.user-layout .dot{width:6px;height:6px;margin-top:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.user-layout .connection-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.user-layout .connection-mark{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;border-radius:15px;background:var(--success-soft);color:var(--success)}
.user-layout .connection-mark .icon{width:25px;height:25px}
.user-layout .connection-heading p{margin-top:3px;font-size:12px;color:var(--muted)}
.user-layout .connection-status-list{margin:0}
.user-layout .connection-status-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}
.user-layout .connection-status-list>div:last-child{border:0}
.user-layout .connection-status-list dt{color:var(--muted);flex-shrink:0}
.user-layout .context-usage-label{display:flex;align-items:center;gap:4px}
.user-layout .context-tip-trigger{display:inline-grid;place-items:center;flex-shrink:0;width:44px;height:44px;margin:-10px -10px -10px -10px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted)}
.user-layout .context-tip-trigger .icon{width:16px;height:16px}
.user-layout .context-tip-trigger:hover{background:var(--accent-soft);color:var(--accent)}
.user-layout .context-tip-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
.user-layout .context-toggletip{position:fixed;inset:auto;margin:0;padding:12px 16px;max-width:calc(100vw - 32px);border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:400;line-height:1.7;text-align:left;box-shadow:0 8px 24px rgba(18,26,40,.14);overflow-wrap:anywhere}
.user-layout .context-toggletip::backdrop{background:transparent}
.user-layout .connection-status-list dd{margin:0;text-align:right;font-weight:550;min-width:0;font-variant-numeric:tabular-nums}
.user-layout .connection-model{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}
.user-layout .service-state{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.user-layout .service-state.ready{color:var(--success)}
.user-layout .service-state .dot{margin:0}
.user-layout .connection-copy{margin:10px 0 0;padding:12px 14px;border-radius:12px;background:var(--field);color:var(--muted);font-size:13px;line-height:1.65;overflow-wrap:anywhere}
.user-layout .connection-footer{margin-top:16px}
.user-layout .connection-footer>.form-error{margin-top:12px;line-height:1.65;overflow-wrap:anywhere}
.user-layout .connection-actions,.user-layout .connection-actions>.button,.user-layout .connection-actions>form{width:100%}
.user-layout .connection-actions>.button:disabled{cursor:not-allowed}
.user-layout .connection-actions .settings-form{padding:0;background:transparent;box-shadow:none}
.user-layout .connection-panel .connection-actions .button[data-connect-qq]{background:#2368f5;border-color:transparent;color:#fff;box-shadow:0 5px 14px rgba(35,104,245,.15)}
.user-layout .connection-panel .connection-actions .button[data-connect]{background:#148443;border-color:transparent;color:#fff;box-shadow:0 5px 14px rgba(20,132,67,.15)}
@media(hover:hover){
  .user-layout .connection-panel .connection-actions .button[data-connect-qq]:hover{background:#1750c8}
  .user-layout .connection-panel .connection-actions .button[data-connect]:hover{background:#106b36}
}
.user-layout .qr-box{margin:20px auto 0;text-align:center}
.user-layout .qr-box img{display:block;width:min(220px,100%);height:auto;margin:auto;padding:12px;border-radius:16px;background:#fff}
.user-layout .qr-box p{margin-top:10px;font-size:13px;color:var(--muted)}
.user-layout .menu-section-title{margin:26px 4px 10px;font-size:13px;font-weight:550;color:var(--muted);letter-spacing:0}
.user-layout .official-agent-entry{--entry-tone:#e4edf8;--entry-light:#f1f6fc;position:relative;isolation:isolate;display:flex;align-items:flex-start;width:100%;max-width:100%;min-height:128px;aspect-ratio:3/1;margin-top:20px;padding:20px;overflow:hidden;border-radius:24px;background:linear-gradient(120deg,#d5e4f4,var(--entry-tone) 56%,var(--entry-light));box-shadow:var(--card-shadow);color:#283a52;text-decoration:none}
.user-layout .official-agent-entry::after{position:absolute;z-index:0;inset:0;content:"";background:linear-gradient(90deg,transparent 50%,color-mix(in srgb,var(--entry-tone) 85%,transparent) 56%,var(--entry-tone) 65%,var(--entry-light));pointer-events:none}
.user-layout .official-entry-copy{position:relative;z-index:1;width:calc(36% + 26px);min-width:126px;margin-top:24px;margin-left:auto;padding-right:26px}
.user-layout .official-entry-copy strong{display:block;font-size:20px;font-weight:700;line-height:1.5;text-wrap:balance}
.user-layout .official-entry-copy strong>span{display:block}
.user-layout .official-entry-art{position:absolute;top:50%;left:0;display:block;width:100%;height:auto;transform:translateY(-50%);mask-image:linear-gradient(180deg,transparent,#000 8px,#000 calc(100% - 8px),transparent);pointer-events:none}
.user-layout .official-entry-copy>.icon{position:absolute;top:50%;right:-4px;width:18px;height:18px;transform:translateY(-50%);color:#60748d}
.user-layout .official-catalog-intro{margin:0 4px 20px}
.user-layout .official-catalog-intro>p{color:var(--muted);font-size:14px;line-height:1.8}
.user-layout .official-catalog{display:grid;gap:12px}
.user-layout .official-catalog-card{--agent-tone:var(--surface);--agent-edge:var(--surface);--agent-ink:var(--ink);position:relative;isolation:isolate;min-height:164px;overflow:hidden;border-radius:24px;background:var(--agent-tone);color:var(--agent-ink);box-shadow:var(--card-shadow)}
.user-layout .official-catalog-card[data-official-agent="pig-teammate"]{--agent-figure-scale:1.044709;--agent-tone:#f4e2d4;--agent-edge:#b68d71;--agent-ink:#392c24;--agent-dark-tone:#2d2624;--agent-dark-edge:#6b5044;--agent-dark-ink:#f2e4db}
.user-layout .official-catalog-card[data-official-agent="campus-boy"]{--agent-figure-scale:1.040831;--agent-tone:#eef0e3;--agent-edge:#cfd2bd;--agent-ink:#263c3a;--agent-dark-tone:#252c2b;--agent-dark-edge:#697168;--agent-dark-ink:#e3eeea}
.user-layout .official-catalog-card[data-official-agent="campus-girl"]{--agent-figure-scale:1.024105;--agent-tone:#f4ead5;--agent-edge:#b69e72;--agent-ink:#3d352b;--agent-dark-tone:#302b23;--agent-dark-edge:#6b5a3f;--agent-dark-ink:#f0e7d7}
.user-layout .official-catalog-card[data-official-agent="yandere-boyfriend"]{--agent-figure-scale:1.004298;--agent-tone:#5d6672;--agent-edge:#939da9;--agent-ink:#fcfdff;--agent-dark-tone:#535b66;--agent-dark-edge:#7b8795;--agent-dark-ink:#f4f6fa}
.user-layout .official-catalog-card[data-official-agent="yandere-girlfriend"]{--agent-figure-scale:1.044709;--agent-tone:#6a606a;--agent-edge:#a394a0;--agent-ink:#fffaff;--agent-dark-tone:#615965;--agent-dark-edge:#938695;--agent-dark-ink:#fbf5fa}
.user-layout .official-catalog-card[data-official-agent="tsundere-boy"]{--agent-figure-scale:1.053343;--agent-tone:#eee8e5;--agent-edge:#a88b7d;--agent-ink:#2d3850;--agent-dark-tone:#292b34;--agent-dark-edge:#6b5b56;--agent-dark-ink:#e5e9f5}
.user-layout .official-catalog-card[data-official-agent="outspoken-friend"]{--agent-figure-scale:1.078462;--agent-tone:#eae5d2;--agent-edge:#8c805f;--agent-ink:#3c3827;--agent-dark-tone:#292b23;--agent-dark-edge:#4d452e;--agent-dark-ink:#ede9d8}
.user-layout .official-catalog-card[data-official-agent="relaxed-senior"]{--agent-figure-scale:1.039288;--agent-tone:#efe9d8;--agent-edge:#b7a17e;--agent-ink:#2b3b2a;--agent-dark-tone:#2a2c23;--agent-dark-edge:#6b6248;--agent-dark-ink:#e8eddb}
.user-layout .official-catalog-card[data-official-agent="rational-strategist"]{--agent-figure-scale:1.080123;--agent-tone:#eee0cd;--agent-edge:#977558;--agent-ink:#463425;--agent-dark-tone:#2b211d;--agent-dark-edge:#564033;--agent-dark-ink:#f0e3d7}
.user-layout .official-catalog-card[data-official-agent="sunshine-friend"]{--agent-figure-scale:1.058113;--agent-tone:#f8eac6;--agent-edge:#c6ab64;--agent-ink:#493a1d;--agent-dark-tone:#302c22;--agent-dark-edge:#75633e;--agent-dark-ink:#f5ebce}
.user-layout .official-catalog-card[data-official-agent="night-radio"]{--agent-figure-scale:1.110055;--agent-tone:#586574;--agent-edge:#92a1b4;--agent-ink:#f9fcff;--agent-dark-tone:#515d6c;--agent-dark-edge:#7d8da2;--agent-dark-ink:#f2f6fc}
.user-layout .official-catalog-backdrop{position:absolute;z-index:0;inset:0 0 0 54%;background:linear-gradient(145deg,color-mix(in srgb,var(--agent-tone) 78%,var(--agent-edge)),color-mix(in srgb,var(--agent-tone) 50%,var(--agent-edge)) 55%,color-mix(in srgb,var(--agent-tone) 75%,var(--agent-edge)));pointer-events:none}
.user-layout .official-catalog-card::after{position:absolute;z-index:1;inset:0 0 0 54%;content:"";background:linear-gradient(90deg,var(--agent-tone),color-mix(in srgb,var(--agent-tone) 88%,transparent) 15%,color-mix(in srgb,var(--agent-tone) 45%,transparent) 30%,transparent 45%);pointer-events:none}
.user-layout .official-catalog-image{position:absolute;z-index:2;inset:auto clamp(2px,calc((100% - 300px)*.2 + 4px),24px) 0 auto;display:block;width:calc((34% + 12px) * var(--agent-figure-scale,1));height:calc((100% - 24px) * var(--agent-figure-scale,1));object-fit:contain;object-position:right bottom;background:transparent}
.user-layout .official-catalog-copy{position:relative;z-index:3;display:flex;flex-direction:column;align-items:flex-start;width:63%;min-height:164px;padding:16px 20px}
.user-layout .official-catalog-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.user-layout .official-catalog-heading h2{font-size:20px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.user-layout .official-catalog-tagline{margin-top:6px;margin-bottom:12px;font-size:12px;line-height:1.7;color:color-mix(in srgb,var(--agent-ink) 86%,var(--agent-tone));overflow-wrap:anywhere}
.user-layout .official-catalog-actions{margin-top:auto}
.user-layout .official-catalog-actions>.button{gap:6px;min-width:80px;min-height:44px;padding:8px 16px;font-size:13px}
.user-layout .official-catalog-actions>.button:disabled{background:color-mix(in srgb,var(--agent-ink) 8%,var(--agent-tone));color:var(--agent-ink);border-color:transparent;opacity:1;cursor:default}
.user-layout .official-catalog-actions>.button:focus-visible{outline-color:var(--agent-ink)}
.user-layout .official-catalog-actions>.button .icon{width:16px;height:16px}
.user-layout .config-entries{display:grid;gap:12px;margin-top:20px}
.user-layout .config-entries .navigation-row{border-radius:20px;box-shadow:var(--card-shadow)}
.user-layout .config-resets{display:grid;gap:12px;margin-top:20px}
.user-layout .navigation-row.danger-action-card{min-height:52px;padding:9px 16px;border-radius:20px;box-shadow:var(--card-shadow)}
.user-layout .danger-action-card .row-mark{background:rgba(204,48,43,.08);color:var(--danger)}
.user-layout .danger-action-card strong,.user-layout .navigation-row.danger-action-card>.icon{color:var(--danger)}
.user-layout .navigation-row{display:flex;align-items:center;gap:12px;width:100%;min-width:0;min-height:72px;margin:0;padding:15px 16px;border:0;background:var(--surface);color:var(--ink);text-align:left;text-decoration:none;font-size:15px;cursor:pointer;transition:background .16s}
.user-layout .row-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--accent-soft);color:var(--accent);flex-shrink:0}
.user-layout .row-mark .icon{width:20px;height:20px}
.user-layout .config-entries .navigation-row:last-child .row-mark{background:rgba(119,88,244,.09);color:#7758d8}
.user-layout .row-copy{display:block;min-width:0;flex:1}
.user-layout .row-copy strong{display:block;font-size:15px;font-weight:550}
.user-layout .row-copy small{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.user-layout .navigation-row>.icon{width:16px;height:16px;margin-left:auto;color:var(--faint)}
.user-layout .row-label{display:flex;align-items:center;gap:12px}
.user-layout .page-signature{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:30px;color:var(--muted);font-size:11px}
.user-layout .page-signature .icon{width:15px;height:15px;stroke-width:1.7}
.user-layout .invite-banner{position:relative;isolation:isolate;display:flex;align-items:center;min-height:100px;margin-bottom:20px;padding:14px 16px 14px 34%;overflow:hidden;background:#edf3ff;color:#243455;text-decoration:none;cursor:pointer}
.user-layout .invite-banner-art{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:contain;object-position:left center}
.user-layout .invite-banner-copy{position:relative;min-width:0}
.user-layout .invite-banner h2{font-size:17px;line-height:1.5}
.user-layout .invite-banner p{margin-top:7px;font-size:12px;line-height:1.7;color:#5b6782}
.user-layout .config-promotions{position:relative;margin-bottom:20px}
.user-layout .config-promotion-slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;border-radius:24px;cursor:grab}
.user-layout .config-promotion-slides::-webkit-scrollbar{display:none}
.user-layout .config-promotion-slides[data-dragging]{scroll-snap-type:none;cursor:grabbing;user-select:none}
.user-layout .config-promotion-slides .invite-banner{flex:0 0 100%;min-width:0;min-height:124px;margin-bottom:0;padding-bottom:32px;scroll-snap-align:start;scroll-snap-stop:always}
.user-layout .config-promotion-slides .invite-banner:focus-visible{outline-offset:-3px}
.user-layout .qq-benefits-banner{padding-left:max(36%,118px);background:#eff8ff;color:#243e59}
.user-layout .qq-benefits-banner .invite-banner-art{object-fit:cover}
.user-layout .qq-benefits-banner p{color:#48627c}
.user-layout .config-promotion-dots{position:absolute;left:50%;bottom:12px;z-index:1;display:flex;align-items:center;gap:6px;transform:translateX(-50%);pointer-events:none}
.user-layout .config-promotion-dots span{width:7px;height:7px;border-radius:8px;background:var(--muted)}
.user-layout .config-promotion-dots span[aria-current=true]{width:20px;background:var(--accent)}
.user-layout .invitation-entry{margin-top:16px;border-radius:20px;box-shadow:var(--card-shadow)}
.user-layout .invitation-hero{text-align:center;padding:24px 20px}
.user-layout .invitation-art{display:block;width:min(100%,300px);height:auto;margin:0 auto 24px;object-fit:contain}
.user-layout .invitation-hero h2{font-size:14px;font-weight:550;color:var(--muted)}
.user-layout .invitation-code{margin:10px auto 0;font-size:32px;font-weight:700;line-height:1.35;letter-spacing:.08em;overflow-wrap:anywhere;user-select:all}
.user-layout .invitation-code[data-unavailable]{font-size:22px;color:var(--muted);letter-spacing:0}
.user-layout .invitation-reward{margin:16px auto 0;font-size:13px;line-height:1.85;color:var(--muted)}
.user-layout .invitation-actions{margin-top:24px}
.user-layout .invitation-actions .button{width:100%;padding:11px 8px;font-size:14px}
.user-layout .invitation-summary{margin:20px auto 0;font-size:12px;line-height:1.8;color:var(--muted)}
.user-layout .invitation-people{display:grid;gap:12px;list-style:none;margin:16px 0 0;padding:0}
.user-layout .panel.invitation-person{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-radius:20px}
.user-layout .invitation-person-copy{min-width:0}
.user-layout .invitation-person-copy strong{display:block;font-size:14px;font-weight:550;overflow-wrap:anywhere}
.user-layout .invitation-person-copy time{display:block;margin-top:5px;font-size:12px;color:var(--muted)}
.user-layout .invitation-person>.badge{flex-shrink:0}
.user-layout .invitation-empty{margin:32px 0;color:var(--muted);font-size:13px;text-align:center}
.user-layout .invitation-binding{margin-top:16px}
.user-layout .invitation-binding-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.user-layout .invitation-binding h2{font-size:15px}
.user-layout .bound-invite-code{font-size:16px;font-weight:600;letter-spacing:.04em;overflow-wrap:anywhere;user-select:all}
.user-layout .bound-invite-code.is-unbound{color:var(--muted);font-size:14px;font-weight:450;letter-spacing:0}
.user-layout .invitation-binding>p{margin-top:12px;color:var(--muted);font-size:12px;line-height:1.8}
.user-layout .bottom-nav{position:absolute;z-index:21;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6px;height:74px;margin:0;padding:8px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass);box-shadow:var(--glass-shadow);backdrop-filter:blur(28px) saturate(1.65);-webkit-backdrop-filter:blur(28px) saturate(1.65)}
.user-layout .bottom-nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:5px 12px;border:1px solid transparent;border-radius:999px;color:var(--muted);font-size:11px;font-weight:550;line-height:1.3;transition:color .18s,background .18s}
.user-layout .bottom-nav a[aria-current=page]{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(219,231,255,.55));border-color:rgba(255,255,255,.9);color:var(--accent-deep);box-shadow:0 2px 8px rgba(35,104,245,.05)}
.user-layout .bottom-nav .icon{width:23px;height:23px;stroke-width:1.9}
.user-layout .account-profile{display:flex;align-items:center;gap:16px;margin:8px 2px 28px}
.user-layout .profile-avatar{display:grid;place-items:center;width:72px;height:72px;flex-shrink:0;border:1px solid rgba(255,255,255,.7);border-radius:24px;background:linear-gradient(145deg,#dfebff,#d6e5fb 55%,#ebe4ff);color:#4c74b9;box-shadow:0 5px 18px rgba(64,95,146,.08),inset 0 1px 0 rgba(255,255,255,.9)}
.user-layout .profile-avatar .icon{width:34px;height:34px;stroke-width:1.5}
.user-layout .profile-identity{min-width:0}
.user-layout .profile-identity h2{font-size:21px;font-weight:650;overflow-wrap:anywhere}
.user-layout .profile-identity p{margin-top:5px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.user-layout .quota-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.user-layout .quota-title h2{font-size:16px}
.user-layout .quota-reading{display:flex;align-items:baseline;gap:10px;margin-top:22px}
.user-layout .quota-reading strong{font-size:36px;font-weight:650;line-height:1.15;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.user-layout .quota-reading>span{font-size:12px;color:var(--muted)}
.user-layout .quota-bar{height:7px;margin-top:18px;border-radius:999px;background:var(--field);overflow:hidden}
.user-layout .quota-bar progress{display:block;appearance:none;width:100%;height:7px;border:0;border-radius:999px;background:var(--field);color:var(--ink)}
.user-layout progress::-webkit-progress-bar{background:var(--field)}
.user-layout progress::-webkit-progress-value{border-radius:999px;background:var(--ink)}
.user-layout progress::-moz-progress-bar{border-radius:999px;background:var(--ink)}
.user-layout .quota-meta{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;margin-top:14px;color:var(--muted);font-size:12px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.user-layout .quota-category{margin-top:24px}
.user-layout .quota-category+.quota-category{padding-top:24px;border-top:1px solid var(--line)}
.user-layout .quota-category h3{font-size:14px;font-weight:550}
.user-layout .quota-category .quota-reading{margin-top:12px}
.user-layout .quota-empty{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.7}
.user-layout .redeem-entry{margin-top:16px;border-radius:20px;box-shadow:var(--card-shadow)}
.user-layout .redeem-heading{display:flex;align-items:center;gap:12px}
.user-layout .redeem-heading h2{font-size:16px}
.user-layout .redeem-heading p{font-size:12px;color:var(--muted);margin-top:4px}
.user-layout .redeem-controls{display:flex;gap:8px;margin-top:18px}
.user-layout .redeem-controls input{min-width:0;flex:1;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--field);color:var(--ink);font-size:16px}
.user-layout .redeem-controls input::placeholder{color:var(--muted)}
.user-layout .redeem-controls .button{min-height:48px;padding:10px 18px;border-radius:14px;flex-shrink:0}
.user-layout .redeem-panel .form-error{margin-top:12px;min-height:0}
.user-layout #redeem-result{margin-top:12px;color:var(--accent-deep);font-size:13px;line-height:1.7}
.user-layout .redemption-list{display:grid;gap:12px;list-style:none;margin:16px 0 0;padding:0}
.user-layout .panel.redemption-record-card{padding:16px 20px;border-radius:20px}
.user-layout .redemption-record-heading,.user-layout .redemption-record-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.user-layout .redemption-record-heading strong{font-size:14px;font-weight:550;overflow-wrap:anywhere}
.user-layout .redemption-record-heading>span{font-size:12px;color:var(--accent-deep)}
.user-layout .redemption-record-meta{margin-top:5px;color:var(--muted);font-size:12px}
.user-layout .redemption-empty{margin:32px 0;color:var(--muted);font-size:13px;text-align:center}
.redeem-admin-form{grid-template-columns:repeat(2,minmax(0,1fr));max-width:800px}
.generated-code{margin-top:24px;padding:20px;background:var(--soft);border-radius:12px}
.generated-code code{display:block;font-size:18px;overflow-wrap:anywhere;margin:12px 0}
@media(max-width:540px){.redeem-admin-form{grid-template-columns:1fr}}
.user-layout .qq-group-entry{margin-top:16px;border-radius:20px;box-shadow:var(--card-shadow)}
.user-layout .qq-group-details{margin-top:24px}
.user-layout .qq-group-details>div{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px}
.user-layout .qq-group-details dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}
.user-layout .qq-group-qr{width:min(100%,280px);margin:24px auto 0;text-align:center}
.user-layout .qq-group-qr>img{display:block;width:100%;height:auto;aspect-ratio:1;background:#f8f8f8}
.user-layout .qq-group-qr>figcaption{margin-top:16px;color:var(--muted);font-size:14px;line-height:1.5}
.user-layout .logout-row{margin-top:20px}
.user-layout .account-footnote{margin:24px 6px 0;color:var(--muted);font-size:11px;line-height:1.8;text-align:center}
.user-layout .subscribe-card{padding:24px}
.user-layout .subscription-mark{display:grid;place-items:center;width:44px;height:44px;margin-bottom:18px;border-radius:14px;background:var(--accent-soft);color:var(--accent)}
.user-layout .subscribe-card p{margin-top:8px;color:var(--muted);font-size:14px}
.user-layout .subscribe-card .button{width:100%;margin-top:24px;background:var(--ink);color:var(--surface);box-shadow:none}

/* Child pages keep the same 480px app canvas and a single back/title bar. */
.user-layout.user-child .content{top:calc(76px + env(safe-area-inset-top));padding:10px 20px calc(32px + env(safe-area-inset-bottom))}
.user-layout .user-topbar:not([hidden]){position:absolute;z-index:12;top:0;left:0;right:0;display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;height:calc(76px + env(safe-area-inset-top));margin:0;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;border:0;background:transparent;color:var(--ink)}
.user-layout .user-topbar h1{font-size:22px;letter-spacing:-.015em}
.user-layout .page-back{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--glass-border);border-radius:50%;background:var(--glass);color:var(--ink);box-shadow:0 3px 12px rgba(18,26,40,.03)}
.user-layout .page-back .icon{width:19px;height:19px;transform:rotate(180deg)}
.user-layout .personalization-panel{padding:0;background:transparent;border-radius:0;box-shadow:none}
.user-layout .profile-reference{min-width:0;padding-top:8px}
.user-layout .profile-reference-hint{margin:8px 0 12px;color:var(--muted);font-size:13px;line-height:1.7}
.user-layout .profile-reference-preview{display:block;width:auto;max-width:100%;max-height:240px;margin:0 0 12px;border-radius:16px;object-fit:contain}
.user-layout .profile-reference-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.user-layout .profile-reference-actions .button{min-height:44px}
.user-layout .profile-reference>small,.user-layout .profile-reference-description small{display:block;color:var(--muted);font-size:12px;line-height:1.7}
.user-layout .profile-reference-status{margin:12px 0 0;color:var(--accent-deep);font-size:13px}
.user-layout .profile-reference-description{display:grid;gap:9px;margin-top:20px}
.user-layout .profile-reference-description p{padding:12px 14px;border-radius:12px;background:var(--field);color:var(--ink);font-size:13px;font-weight:450;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.user-layout .personalization-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 20px;padding:5px;border-radius:999px;background:rgba(128,141,164,.1)}
.user-layout .personalization-tab{min-width:0;min-height:42px;padding:9px 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:14px;font-weight:550;cursor:pointer}
.user-layout .personalization-tab[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(18,26,40,.07)}
.user-layout .private-agent-list{display:grid;gap:12px}
.user-layout .private-agent-create{display:flex;align-items:center;gap:16px;width:100%;min-height:104px;padding:20px;border:1px dashed var(--accent);border-radius:24px;background:var(--accent-soft);color:var(--accent-deep);text-align:left;cursor:pointer}
.user-layout .private-agent-create:disabled{opacity:.6;cursor:default}
.user-layout .private-agent-create-mark{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:16px;background:var(--surface)}
.user-layout .private-agent-create-mark .icon{width:24px;height:24px}
.user-layout .private-agent-create strong{display:block;font-size:16px;font-weight:650}
.user-layout .private-agent-create small{display:block;margin-top:5px;font-size:12px;line-height:1.6}
.user-layout .private-agent-create>.icon{flex:none;width:18px;height:18px;margin-left:auto}
.user-layout .private-agent-list-heading{display:flex;align-items:center;justify-content:space-between;margin:14px 4px 0}
.user-layout .private-agent-list-heading h3{font-size:14px;font-weight:600}
.user-layout .private-agent-list-heading>span{font-size:12px;color:var(--muted)}
.user-layout .private-agent-card{overflow:hidden;border:1px solid transparent;border-radius:24px;background:var(--surface);box-shadow:var(--card-shadow)}
.user-layout .private-agent-card.is-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.user-layout .private-agent-open{display:flex;align-items:center;gap:16px;width:100%;min-width:0;padding:20px 20px 0;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}
.user-layout .private-agent-avatar{display:grid;place-items:center;flex:none;width:56px;height:56px;overflow:hidden;border-radius:18px;background:var(--accent-soft);color:var(--accent-deep);font-size:24px;font-weight:650}
.user-layout .private-agent-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.user-layout .private-agent-copy{display:block;min-width:0;flex:1}
.user-layout .private-agent-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.user-layout .private-agent-title strong{font-size:16px;font-weight:650;overflow-wrap:anywhere}
.user-layout .private-agent-active,.user-layout .private-agent-official{padding:2px 7px;border-radius:6px;background:var(--accent-soft);color:var(--accent-deep);font-size:10px;line-height:1.6;white-space:nowrap}
.user-layout .private-agent-official{background:var(--accent);color:var(--surface);font-weight:600}
.user-layout .private-agent-description{display:-webkit-box;margin-top:6px;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.user-layout .private-agent-card-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:12px 20px 12px 92px}
.user-layout .private-agent-meta{color:var(--muted);font-size:11px}
.user-layout .private-agent-actions{display:flex;align-items:center;gap:4px;margin-left:auto}
.user-layout .private-agent-delete{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.user-layout .private-agent-delete .icon{width:16px;height:16px}
.user-layout .private-agent-use{min-width:64px;min-height:44px;padding:8px 14px;background:var(--accent);border-color:transparent;color:var(--surface);font-size:12px}
.user-layout .private-agent-use:disabled{background:var(--field);color:var(--muted);opacity:1}
.user-layout .private-agent-empty{padding:28px 16px;text-align:center}
.user-layout .private-agent-empty h3{font-size:15px;font-weight:600}
.user-layout .private-agent-empty p,.user-layout .private-agent-note{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.8}
.user-layout .private-agent-note{margin:8px 8px 0;text-align:center}
.user-layout .private-avatar-editor{display:flex;align-items:center;gap:16px;min-width:0}
.user-layout .private-agent-avatar.is-large{width:72px;height:72px;border-radius:22px;font-size:30px}
.user-layout .private-avatar-controls{min-width:0;flex:1}
.user-layout .private-avatar-controls>strong{font-size:14px;font-weight:550}
.user-layout .private-avatar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}
.user-layout .private-avatar-actions .button{flex-shrink:0;width:76px;min-height:44px;padding:8px 12px;font-size:12px}
.user-layout .private-avatar-controls small{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.7}
.user-layout .private-avatar-remove{min-height:44px;padding:4px 8px;border:0;background:transparent;color:var(--danger);font-size:12px;cursor:pointer}
.user-layout .settings-form{display:grid;gap:24px;margin:0;padding:20px;border-radius:24px;background:var(--surface);box-shadow:var(--card-shadow)}
:is(.user-layout,.login-user) .field{display:grid;min-width:0;gap:9px;font-size:14px;font-weight:550;line-height:1.5}
:is(.user-layout,.login-user) .field :is(input,textarea,select),.user-layout .select-trigger{display:block;width:100%;min-width:0;min-height:48px;margin:0;padding:12px 14px;border:1px solid transparent;border-radius:12px;background:var(--field);color:var(--ink);font-size:16px;font-weight:450;line-height:1.5;box-shadow:none;transition:border-color .15s,background .15s}
:is(.user-layout,.login-user) .field :is(input,textarea):focus{border-color:var(--accent);background:var(--surface)}
:is(.user-layout,.login-user) .field :is(input,textarea)::placeholder{color:var(--faint);opacity:1}
:is(.user-layout,.login-user) .field textarea{resize:none;min-height:112px;overflow-y:hidden}
.user-layout .persona-field textarea{min-height:216px;line-height:1.7}
:is(.user-layout,.login-user) .field small{display:block;color:var(--muted);font-size:12px;font-weight:450;line-height:1.65}
.user-layout .floating-select{min-width:0;position:relative}
.user-layout .select-trigger{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;cursor:pointer}
.user-layout .select-trigger .icon{width:16px;height:16px;color:var(--muted)}
.user-layout .select-menu{position:fixed;inset:auto;margin:0;padding:6px;border:1px solid var(--glass-border);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 12px 38px rgba(18,26,40,.17);overflow:auto;overscroll-behavior:contain}
.user-layout .select-menu::backdrop{background:transparent}
.user-layout .select-menu::-webkit-scrollbar{width:5px}
.user-layout .select-menu::-webkit-scrollbar-thumb{border-radius:999px;background:var(--line)}
.user-layout .select-menu::-webkit-scrollbar-button{display:none}
.user-layout .select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;margin:0;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:left;font-size:14px;cursor:pointer}
.user-layout .select-option .icon{width:17px;height:17px;color:var(--accent);visibility:hidden}
.user-layout .select-option[aria-selected=true]{color:var(--accent-deep);background:var(--accent-soft);font-weight:600}
.user-layout .select-option[aria-selected=true] .icon{visibility:visible}
.user-layout .select-option:focus-visible{outline-offset:-3px}
.user-layout .setting-toggle{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:18px;padding:4px 0 22px;border-bottom:1px solid var(--line);cursor:pointer}
.user-layout .setting-toggle>span{display:block;flex:1}
.user-layout .setting-toggle strong{display:block;font-size:14px;font-weight:550}
.user-layout .setting-toggle small{display:block;margin-top:5px;font-size:12px;line-height:1.65;color:var(--muted)}
.user-layout .setting-toggle input{appearance:none;position:relative;width:46px;height:28px;min-width:46px;margin:0;border:0;border-radius:999px;background:#c8ced8;cursor:pointer;transition:background .18s}
.user-layout .setting-toggle input::before{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);transition:transform .18s}
.user-layout .setting-toggle input:checked{background:var(--accent)}
.user-layout .setting-toggle input:checked::before{transform:translateX(18px)}
.user-layout .quality-fieldset{min-width:0;margin:0;padding:0;border:0}
.user-layout .quality-fieldset legend{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:0;font-size:14px;font-weight:550}
.user-layout .quality-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.user-layout .quality-option{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--field);color:var(--muted);font-size:13px}
.user-layout .quality-option strong{font-weight:500}
.user-layout .quality-option input{display:none}
.user-layout .quality-option.selected{border-color:rgba(35,104,245,.2);background:var(--accent-soft);color:var(--accent-deep)}
.user-layout .quality-option.selected::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.user-layout .settings-actions{display:grid;gap:12px;padding-top:4px}
.user-layout .settings-actions .button{width:100%}
.user-layout .settings-actions small{font-size:11px;text-align:center;color:var(--muted);line-height:1.6}
.user-layout .profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px 14px;min-width:0}
.user-layout .field-wide{grid-column:1/-1}
.user-layout .plans-panel{padding:0;background:transparent;border-radius:0;box-shadow:none}
.user-layout .plans-panel .panel-heading{display:block;margin:0 2px 22px}
.user-layout .plans-panel .panel-heading h2{font-size:18px}
.user-layout .panel-description{margin-top:6px;color:var(--muted);font-size:13px}
.user-layout .subscription-plans{display:grid;grid-template-columns:1fr;gap:16px}
.user-layout .subscription-plan{padding:22px;border:1px solid transparent;border-radius:24px;background:var(--surface);box-shadow:var(--card-shadow)}
.user-layout .subscription-plan.current{border-color:rgba(35,104,245,.3)}
.user-layout .plan-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.user-layout .plan-top h3{font-size:20px;font-weight:650}
.user-layout .plan-price{margin:18px 0;font-size:34px;font-weight:650;letter-spacing:-.02em;line-height:1.3}
.user-layout .plan-price span{margin-left:4px;font-size:13px;font-weight:450;letter-spacing:0;color:var(--muted)}
.user-layout .subscription-plan dl>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
.user-layout .subscription-plan dt{flex-shrink:0;color:var(--muted)}
.user-layout .subscription-plan dd{margin:0;text-align:right}
.user-layout .plan-actions{margin-top:20px}
.user-layout .plan-actions .button{width:100%;background:var(--ink);color:var(--surface);border:0;box-shadow:none}
.user-layout .plan-actions .button.primary{background:var(--accent);color:#fff}
.user-layout .plan-note{margin:18px 8px 0;font-size:12px;line-height:1.8;color:var(--muted);text-align:center}
.user-layout .guide-page{font-size:14px;line-height:1.85}
.user-layout .guide-page a{color:var(--ink);font-weight:600}
.user-layout .guide-heading p{color:var(--muted);font-size:13px;line-height:1.8}
.user-layout .guide-start{margin-top:24px}
.user-layout .guide-start h2{font-size:17px}
.user-layout .guide-start ol{margin:8px 0 0;padding-left:22px}
.user-layout .guide-start li::marker{color:var(--muted);font-size:13px}
.user-layout .guide-start a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 0;color:var(--ink);font-size:13px}
.user-layout .guide-start .icon{width:16px;height:16px;flex-shrink:0}
.user-layout .guide-toc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;margin-top:24px;border-top:1px solid var(--line)}
.user-layout .guide-toc a{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:72px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);line-height:1.5;overflow-wrap:anywhere}
.user-layout .guide-toc strong{font-size:14px;font-weight:600}
.user-layout .guide-toc span{color:var(--muted);font-size:12px}
.user-layout .guide-toc a:focus-visible,.user-layout .guide-disclosure>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.user-layout .guide-section{margin-top:24px;padding:20px;border-radius:24px;background:var(--surface);box-shadow:var(--card-shadow);overflow-wrap:anywhere}
.user-layout .guide-section h2{margin-bottom:12px;scroll-margin-top:20px}
.user-layout .guide-section h3{margin:24px 0 8px;font-size:15px}
.user-layout .guide-section p{color:var(--muted)}
.user-layout .guide-section p+p{margin-top:10px}
.user-layout .guide-steps{margin:20px 0 0;padding-left:22px}
.user-layout .guide-steps li{margin:0 0 20px;padding-left:4px}
.user-layout .guide-steps li::marker{color:var(--ink);font-weight:650}
.user-layout .guide-steps h3{margin:0 0 6px}
.user-layout .guide-disclosure{margin-top:12px;border-bottom:1px solid var(--line)}
.user-layout .guide-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:12px 0;list-style:none;cursor:pointer;color:var(--ink);font-size:14px;font-weight:600;line-height:1.6}
.user-layout .guide-disclosure>summary::-webkit-details-marker{display:none}
.user-layout .guide-disclosure>summary .icon{width:18px;height:18px;flex-shrink:0;color:var(--muted)}
.user-layout .guide-disclosure[open]>summary .icon{transform:rotate(180deg)}
.user-layout .guide-disclosure-body{padding:2px 0 16px}
.user-layout .guide-disclosure-body .guide-steps{margin-top:10px}
.user-layout .guide-disclosure-body .guide-action{margin-top:6px}
.user-layout .guide-disclosure-body .guide-note{margin-top:12px}
.user-layout .guide-examples{margin:16px 0;padding:0;list-style:none}
.user-layout .guide-examples li{padding:10px 0;border-bottom:1px solid var(--line)}
.user-layout .guide-examples q{display:block;color:var(--ink);font-size:14px}
.user-layout .guide-examples span{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.user-layout .guide-faq .guide-disclosure{margin-top:0}
.user-layout .guide-footer{margin-top:20px;padding:0 4px}
.user-layout .guide-footer p{color:var(--muted);font-size:12px}
.user-layout .guide-definitions{margin:18px 0 0}
.user-layout .guide-definitions>div+div{margin-top:20px}
.user-layout :is(.guide-definitions,.guide-options) dt{font-size:14px;font-weight:600}
.user-layout :is(.guide-definitions,.guide-options) dd{margin:5px 0 0;color:var(--muted);font-size:13px}
.user-layout .guide-options{margin-top:12px}
.user-layout .guide-options>div{padding:12px 0;border-bottom:1px solid var(--line)}
.user-layout .guide-table-wrap{margin-top:20px;overflow-x:auto}
.user-layout .guide-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;line-height:1.6}
.user-layout .guide-table :is(th,td){padding:12px 8px;border-bottom:1px solid var(--line);font-weight:450}
.user-layout .guide-table thead{background:var(--field);color:var(--muted)}
.user-layout .guide-table th:first-child{padding-left:10px}
.user-layout .guide-table td:last-child{white-space:nowrap}
.user-layout .guide-table-hint{margin-top:12px;font-size:12px}
.user-layout .guide-table-scroll{max-width:100%;margin-top:8px;border-radius:12px;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--muted) var(--field)}
.user-layout .guide-table-scroll:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.user-layout .guide-table-scroll .guide-table{table-layout:fixed}
.user-layout .guide-scenario-table{min-width:800px}
.user-layout .guide-price-table{min-width:980px;font-variant-numeric:tabular-nums}
.user-layout .guide-usage-table{min-width:860px;font-variant-numeric:tabular-nums}
.user-layout .guide-usage-table th:nth-child(3){width:230px}
.user-layout .guide-table-scroll :is(th,td){padding:12px;vertical-align:top;overflow-wrap:anywhere;white-space:normal}
.user-layout .guide-table-scroll th:first-child{position:sticky;z-index:1;left:0;width:132px;padding-left:12px;background:var(--surface);color:var(--ink);font-weight:600}
.user-layout .guide-table-scroll thead th{color:var(--ink);font-weight:600}
.user-layout .guide-table-scroll thead th:first-child{z-index:2;background:var(--field)}
.user-layout .guide-table-scroll .guide-table td:last-child{white-space:normal}
.user-layout .guide-table-scroll small{display:block;margin-top:4px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.user-layout .guide-price-table th:nth-child(2){width:166px}
.user-layout .guide-price-table th:last-child{width:220px}
.user-layout .guide-source-links{display:flex;flex-wrap:wrap;column-gap:16px;margin-top:12px}
.user-layout .guide-source-links a{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
.user-layout .guide-model-group{padding:18px 0;border-bottom:1px solid var(--line)}
.user-layout .guide-model-group h3{margin:0 0 8px;font-size:15px}
.user-layout .guide-model-list{margin:0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.8}
.user-layout .guide-model-list li+li{margin-top:4px}
.user-layout .guide-model-group .guide-note{margin-top:8px}
.user-layout .guide-section blockquote{margin:16px 0;padding:12px 14px;border-left:3px solid var(--accent);border-radius:0 10px 10px 0;background:var(--field);font-size:13px}
.user-layout .guide-section .guide-note{margin-top:20px;font-size:12px}
.user-layout .guide-action{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:18px;color:var(--ink);font-size:13px;font-weight:600}
.user-layout .guide-action .icon{width:16px;height:16px}
.user-layout .pull-refresh{position:absolute;z-index:23;top:calc(8px + env(safe-area-inset-top));left:50%;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;width:max-content;max-width:90%;padding:8px 16px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass);color:var(--muted);box-shadow:var(--glass-shadow);backdrop-filter:blur(28px);font-size:12px;transform:translateX(-50%);pointer-events:none}
.user-layout .pull-refresh .icon{width:17px;height:17px;transform:rotate(var(--pull-angle,0deg))}
.user-layout.is-refreshing .pull-refresh .icon{animation:refresh-spin .8s linear infinite}
.user-layout:not(.is-pulling) .content{transition:transform .2s ease}
.user-layout .load-panel{padding:24px;border-radius:24px;background:var(--surface);color:var(--muted);font-size:14px}
.user-layout .load-bar{height:10px;background:var(--field);border-radius:6px}
.user-layout .page-heading{align-items:flex-start;margin:20px 0}
.user-layout .page-heading p{margin-top:10px;color:var(--muted);font-size:14px}
.user-layout .muted{color:var(--muted)}

/* Shared navigation feedback lives outside #app so replacing a page cannot remove it. */
.page-loading{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:16px;background:rgba(242,244,247,.94);color:#4d5a70;font-family:var(--font-ui,system-ui,sans-serif);font-size:14px;line-height:1.5;text-align:center;pointer-events:none}
.loading-spinner{display:block;width:36px;height:36px;border:3px solid rgba(35,104,245,.16);border-top-color:#2368f5;border-radius:50%;animation:page-loading-spin .8s linear infinite}
.page-loading.is-paused .loading-spinner{animation-play-state:paused}
@keyframes page-loading-spin{to{transform:rotate(360deg)}}
@media(prefers-color-scheme:dark){.page-loading{background:rgba(14,17,22,.94);color:#a1aab9}.loading-spinner{border-color:rgba(90,141,255,.2);border-top-color:#5a8dff}}
@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none}}

/* Authentication and transient UI use the same material, type and action colors. */
.login-user{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100vh;min-height:100svh;height:auto;max-height:none;width:100%;max-width:480px;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));overflow:visible;touch-action:pan-y pinch-zoom;background:var(--page);color:var(--ink)}
.login-user .login-story{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-shrink:0;height:44px;margin:0;padding:0;background:transparent}
.login-user .brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:19px;font-weight:650;letter-spacing:0}
.login-user .brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--accent);color:#fff}
.login-user .brand-mark .icon{width:24px;height:24px}
.login-user .brand-name small{margin-left:4px;color:var(--muted);font-size:12px;font-weight:450}
.login-user .login-main{display:flex;align-items:center;justify-content:center;flex:1 0 auto;min-height:min-content;min-width:0;padding:16px 0}
.login-user .login-box{flex:none;width:100%;max-width:432px;height:auto;margin:0;padding:24px;border:0;border-radius:24px;background:var(--surface);box-shadow:var(--card-shadow)}
.login .auth-header{text-align:center}
.login .auth-header p,.login .login-note{margin-inline:auto;text-align:center}
.login .form-error,.login .auth-input-error{text-align:center}
.login-user .auth-header{display:block}
.login-user .auth-header h1{font-size:26px;font-weight:700;line-height:1.35;letter-spacing:-.02em;text-align:center}
.login-user .auth-header p{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.7}
.login-user .auth-form{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:28px}
.login-user .auth-form .button{width:100%}
.login-user .form-error{min-height:0;color:var(--danger);font-size:13px;line-height:1.65}
.login-user .form-error:empty{display:none}
.login-user .login-note{margin-top:16px;color:var(--muted);font-size:11px;line-height:1.7}
.login-user .password-control{position:relative;display:block}
.login-user .password-control input{padding-right:52px}
.login-user .password-toggle{position:absolute;top:50%;right:2px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--muted);transform:translateY(-50%);cursor:pointer}
.login-user .password-toggle .icon{width:19px;height:19px}
.login-user .auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
/* Persistent labels keep the field's purpose visible while typing and autofilling. */
.login .auth-form .auth-field{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0}
.login .auth-input-wrap{--auth-control-height:52px;position:relative;display:block;min-width:0;height:var(--auth-control-height);border:1px solid color-mix(in srgb,var(--muted) 40%,transparent);border-radius:12px;background:var(--surface);transition:border-color 200ms ease-out}
.login .auth-input-wrap::after{content:"";position:absolute;inset:-1px;z-index:1;border:2px solid var(--accent);border-radius:inherit;pointer-events:none;clip-path:inset(0 50% 0 50%);transition:clip-path 200ms ease-out,border-color 200ms ease-out}
.login .auth-form .auth-field input{display:block;width:100%;height:100%;min-height:0;margin:0;padding:12px 14px;border:0;border-radius:inherit;outline:none;background:transparent;color:inherit;font-size:16px;font-weight:450;line-height:1.5;box-shadow:none;caret-color:var(--accent)}
.login .auth-form .password-field input{padding-right:52px}
.login .auth-field input::selection{background:color-mix(in srgb,var(--accent) 24%,var(--surface));color:inherit}
.login .auth-floating-label{position:absolute;z-index:2;top:50%;left:10px;max-width:calc(100% - 24px);padding:0 4px;color:var(--muted);font-size:16px;font-weight:450;line-height:1.5;white-space:nowrap;cursor:text;transform:translateY(-50%);transform-origin:left center;transition:transform 200ms ease-out,color 200ms ease-out,background-color 200ms ease-out}
.login .password-field .auth-floating-label{max-width:calc(100% - 62px)}
.login .auth-input-wrap:is(:focus-within,.is-filled,:has(input:autofill)) .auth-floating-label{background:var(--surface);transform:translateY(calc(-50% - var(--auth-control-height)/2)) scale(.8)}
.login .auth-input-wrap:focus-within .auth-floating-label{color:var(--accent)}
.login .auth-input-wrap:is(:focus-within,.is-invalid)::after{clip-path:inset(0)}
.login .auth-input-wrap.is-invalid{border-color:var(--danger)}
.login .auth-input-wrap.is-invalid::after{border-color:var(--danger)}
.login .auth-input-wrap.is-invalid .auth-floating-label{color:var(--danger)}
.login .auth-form .auth-input-error{margin:0;color:var(--danger);font-size:13px;font-weight:450;line-height:1.65;opacity:1;transition:opacity 200ms ease-out}
.login .auth-input-error:empty{display:none}
.login .auth-input-error.is-clearing{opacity:0}
@media(prefers-reduced-motion:reduce){.login .auth-form *,.login .auth-input-wrap::after{transition:none!important;animation:none!important}}
/* Auth forms keep their natural size; the document scrolls above the keyboard. */
html:has(.login-user:not(.home-page)),body:has(.login-user:not(.home-page)){height:auto;min-height:100%;overflow-x:clip;overflow-y:auto}
body:has(.login-user:not(.home-page)) #app{min-height:100vh;min-height:100svh;height:auto;overflow:visible}
.login-user .auth-field input{scroll-margin-block:24px}
/* The public introduction retains its single-screen carousel layout. */
html:has(.home-page),body:has(.home-page){height:100%;overflow:hidden;overscroll-behavior:none}
body:has(.home-page) #app{height:100dvh;overflow:hidden}
.login-user.home-page{display:flex;flex-direction:column;gap:24px;height:100dvh;min-height:0;max-height:100dvh;overflow:hidden;padding: max(24px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));overscroll-behavior:none;touch-action:pan-x}
.home-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;height:44px}
.home-header .brand{letter-spacing:0}
.home-account{position:relative}
.home-avatar{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--accent-soft);color:var(--accent-deep)}
.home-avatar .icon{width:23px;height:23px}
.home-account-menu{position:absolute;z-index:10;top:54px;right:0;width:196px;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 12px 32px rgba(18,26,40,.14)}
.home-account-menu p{padding:8px 10px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.home-account-menu :is(a,button){display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-size:14px;text-decoration:none;text-align:left}
.home-account-menu [data-home-logout]{color:var(--danger)}
.home-account-menu :is(a,button):hover{background:var(--field)}
.home-main{display:flex;flex-direction:column;justify-content:center;gap:20px;flex:1;min-height:0}
.home-carousel{display:flex;flex-direction:column;flex:1;min-height:0;max-height:590px;touch-action:none}
.home-slides{flex:1;min-height:0;overflow:hidden;border-radius:24px;background:var(--surface)}
.home-slide{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto}
.home-art{min-height:0;overflow:hidden;background:#eaf1f7}
.home-art{cursor:grab;user-select:none;-webkit-user-select:none}
.home-art:active{cursor:grabbing}
.home-art img{display:block;width:100%;height:100%;object-fit:cover}
.home-copy{padding:24px 16px;text-align:center}
.home-copy h1{font-size:clamp(20px,5.2vw,25px);font-weight:700;line-height:1.5;letter-spacing:-.025em;text-wrap:balance}
.home-copy p{margin:8px auto 0;color:var(--muted);font-size:14px;line-height:1.9;white-space:pre-line}
.home-carousel-controls{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:24px;margin-top:4px}
.home-carousel-controls button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted)}
.home-dots{display:flex;align-items:center}
.home-dots span{display:block;width:14px;height:5px;border-radius:999px;background:var(--faint);transform:scaleX(.36);transition:transform .22s ease-out,background .22s ease-out}
.home-dots [aria-current] span{transform:scaleX(1);background:var(--accent)}
.home-actions{display:grid;grid-template-columns:1fr;gap:12px;flex-shrink:0}
.home-actions-invited{grid-template-columns:1fr}
.home-page .home-actions .button{min-height:52px}
@media(max-height:650px){
  .login-user.home-page{gap:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .home-main{gap:12px}
  .home-copy{padding:18px 12px 20px}
  .home-copy h1{font-size:21px}
  .home-copy p{margin-top:8px;font-size:13px;line-height:1.75}
}
@media(max-height:480px){
  .login-user.home-page{gap:8px;padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .home-main{gap:6px}
  .home-copy{padding:10px 12px}
  .home-copy h1{font-size:19px}
  .home-copy p{margin-top:4px;font-size:12px;line-height:1.6}
  .home-carousel-controls{height:24px;margin-top:0}
  .home-page .home-actions .button{min-height:44px}
}
body:has(:is(.user-layout,.home-page,.login-user)) dialog{padding:24px;width:min(calc(100vw - 32px),420px);max-height:calc(100dvh - 48px);border:1px solid var(--glass-border);border-radius:28px;background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgba(18,26,40,.22);font-family:var(--font-ui)}
body:has(:is(.user-layout,.home-page,.login-user)) dialog::backdrop{background:rgba(15,22,35,.32);backdrop-filter:blur(6px)}
body:has(:is(.user-layout,.home-page,.login-user)) dialog h2{margin:0;font-size:20px;font-weight:650;letter-spacing:-.015em}
body:has(:is(.user-layout,.home-page,.login-user)) dialog>p{margin-top:12px;font-size:14px;line-height:1.8;color:var(--muted)}
body:has(:is(.user-layout,.home-page,.login-user)) dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px}
body:has(:is(.user-layout,.home-page,.login-user)) dialog .form-error{color:var(--danger);font-size:13px}
/* MiniZone's shared, centered confirmation dialog; forms keep their own layout. */
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm{width:min(320px,calc(100vw - 64px));padding:22px 20px 18px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(248,250,253,.88));border:1px solid rgba(255,255,255,.65);backdrop-filter:blur(28px) saturate(1.65);-webkit-backdrop-filter:blur(28px) saturate(1.65);box-shadow:0 24px 60px rgba(18,26,40,.2),0 6px 18px rgba(18,26,40,.08),inset 0 1px 0 rgba(255,255,255,.12)}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm[open]{animation:confirm-enter .26s cubic-bezier(.34,1.45,.64,1) both}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm::backdrop{background:rgba(8,10,16,.46);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm h2{font-size:16.5px;font-weight:700;line-height:1.4;text-align:center;letter-spacing:-.015em}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm>p{margin-top:8px;font-size:13.5px;line-height:1.65;text-align:center;white-space:pre-line;overflow-wrap:anywhere}
body:has(:is(.user-layout,.home-page,.login-user)) dialog[data-trial-dialog] .trial-benefit-art{display:block;width:clamp(104px,22dvh,160px);height:clamp(104px,22dvh,160px);margin:0 auto 12px;object-fit:contain;pointer-events:none;user-select:none}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .dialog-form{display:block;margin:0}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .dialog-actions{display:flex;flex-wrap:nowrap;gap:10px;margin-top:20px}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .dialog-actions .button{flex:1;min-width:0;min-height:44px;height:44px;padding:0 10px;border:0;border-radius:999px;background:rgba(120,132,160,.22);color:var(--ink);font-size:14.5px;font-weight:600;box-shadow:none;transition:transform .18s cubic-bezier(.34,1.45,.64,1),filter .18s}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .dialog-actions .button.primary{background:var(--accent);color:#fff}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .dialog-actions .button.danger{background:#d92d24;color:#fff}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .dialog-actions .button:active{transform:scale(.96);filter:brightness(1.12)}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .dialog-actions .button:disabled{cursor:wait;opacity:.6;transform:none}
body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm .form-error:not(:empty){margin-top:12px;text-align:center;font-size:12px;line-height:1.6}
body:has(.user-layout) dialog.connection-success-dialog[open]{animation:none}
.connection-success-symbol{width:80px;height:80px;margin:0 auto 18px;color:#148443}
.connection-success-symbol svg{display:block;width:100%;height:100%;overflow:visible}
.connection-success-disc{fill:currentColor;transform-origin:36px 36px;animation:connection-dot-circle .55s cubic-bezier(.16,1,.3,1) both}
.connection-success-tick{fill:none;stroke:#fff;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:42;stroke-dashoffset:0;animation:connection-draw-check .28s .43s cubic-bezier(.16,1,.3,1) both}
@keyframes connection-dot-circle{from{transform:scale(.12)}to{transform:scale(1)}}
@keyframes connection-draw-check{from{stroke-dashoffset:42;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@keyframes confirm-enter{from{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes page-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes refresh-spin{to{transform:rotate(360deg)}}
@media(min-width:640px){.user-layout,.login-user{box-shadow:0 0 80px rgba(18,26,40,.1)}}
@media(hover:hover){
  :is(.user-layout,.login-user) .button:hover{background:var(--field)}
  :is(.user-layout,.login-user) .button.primary:hover{background:var(--accent-deep);color:#fff}
  .user-layout .navigation-row:hover,.user-layout .select-option:hover{background:var(--field)}
  .user-layout .plan-actions .button:not(.primary):hover,.user-layout .subscribe-card .button:hover{background:var(--ink);opacity:.85}
  .user-layout .bottom-nav a:not([aria-current]):hover{color:var(--accent-deep);background:rgba(255,255,255,.4)}
}
@media(max-width:359px){
  .user-layout .invite-banner h2{font-size:16px}
  .user-layout .content{padding-left:16px;padding-right:16px}
  .user-layout.user-child .content{padding-left:16px;padding-right:16px}
  .user-layout .panel:not(.plans-panel):not(.personalization-panel):not(.invite-banner),.user-layout .settings-form,.user-layout .guide-section{padding:18px}
  .user-layout .quota-reading strong{font-size:32px}
  .user-layout .quota-reading{gap:7px}
  .user-layout .guide-toc{column-gap:12px}
  .user-layout .guide-toc span{font-size:12px}
}
@media(prefers-color-scheme:dark){
  .user-layout .official-catalog-card[data-official-agent]{--agent-tone:var(--agent-dark-tone,var(--surface));--agent-edge:var(--agent-dark-edge,var(--surface));--agent-ink:var(--agent-dark-ink,var(--ink))}
  html:has(.user-layout),html:has(.login-user){background:#0e1116}
  body:has(.user-layout),body:has(.login-user){--page:#0e1116;--surface:#1a1f27;--field:#232a35;--ink:#ecf0f8;--muted:#a1aab9;--faint:#8893a4;--line:rgba(200,212,235,.1);--accent:#5a8dff;--accent-deep:#a6c2ff;--accent-soft:rgba(90,141,255,.13);--success:#75d5b9;--success-soft:rgba(47,191,154,.12);--warning:#e6c27c;--warning-soft:rgba(189,144,63,.13);--danger:#ff8a84;--glass:linear-gradient(145deg,rgba(37,44,57,.82),rgba(22,28,38,.75));--glass-border:rgba(200,212,235,.13);--card-shadow:0 2px 8px rgba(0,0,0,.08);--glass-shadow:0 14px 38px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06);color-scheme:dark}
  .user-layout::before,.login-user::before{background:radial-gradient(120% 50% at 88% -4%,rgba(63,104,180,.1),transparent 70%),radial-gradient(90% 40% at 0% 20%,rgba(92,65,153,.07),transparent 70%),var(--page)}
  .user-layout .bottom-nav a[aria-current=page]{background:linear-gradient(145deg,rgba(77,102,148,.35),rgba(40,64,108,.28));border-color:rgba(166,194,255,.16);color:#b0caff;box-shadow:0 2px 8px rgba(0,0,0,.1)}
  .user-layout .config-entries .navigation-row:last-child .row-mark{color:#b7a5fa}
  .user-layout .profile-avatar{background:linear-gradient(145deg,#273f60,#26334e 55%,#3b3155);border-color:rgba(200,212,235,.1);color:#a6c2ff;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
  .user-layout .setting-toggle input{background:#465165}
  :is(.user-layout,.login-user) .button.primary,body:has(:is(.user-layout,.home-page,.login-user)) dialog .button.primary{color:#fff}
  .user-layout .invitation-actions .button.primary{background:#2368f5}
  .login-user .button.primary{background:#2368f5}
  .user-layout .invitation-actions .button.primary:hover{background:#1750c8}
  .user-layout .badge.error{background:rgba(255,90,80,.12)}
  :is(.user-layout,.login-user) .button.primary:hover{background:#3974ef;color:#fff}
  .login-user .button.primary:hover{background:#1750c8}
  body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm{background:linear-gradient(180deg,rgba(34,39,50,.95),rgba(24,28,36,.92));border-color:rgba(160,180,220,.14);box-shadow:0 24px 60px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12)}
}
@media(prefers-reduced-motion:reduce){.user-layout *,.login-user *,body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm,body:has(:is(.user-layout,.home-page,.login-user)) dialog.minizone-confirm *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.user-layout :is(.panel,.navigation-row,.bottom-nav,.select-menu){border:1px solid CanvasText}.user-layout .bottom-nav a[aria-current=page]{outline:2px solid Highlight}.user-layout .setting-toggle input{appearance:auto}.user-layout .setting-toggle input::before{display:none}}

/* ========================================================================== 
   管理端 — 与 MiniZone 客户端同源的蓝白界面
   管理端样式集中维护；客户端与公开页面保持独立。
   ========================================================================== */
body:has(.admin),body:has(.login-admin){
  --a-bg:#f2f4f7;--a-card:#fff;--a-field:#f5f6f9;--a-ink:#20242e;--a-muted:#687080;
  --a-line:rgba(24,32,48,.1);--a-line-2:rgba(24,32,48,.07);--a-accent:#2368f5;--a-accent-2:#1750c8;
  --a-accent-soft:rgba(35,104,245,.09);--a-ok:#137357;--a-ok-soft:#e6f6f0;
  --a-warn:#805b15;--a-warn-soft:#faf0db;--a-bad:#bd302b;--a-bad-soft:#fff0ee;
  --a-radius:24px;--a-shadow:0 2px 8px rgba(18,26,40,.025);--a-scrim:rgba(16,24,40,.3);
  --accent:var(--a-accent);--muted:var(--a-muted);--line:var(--a-line);--surface:var(--a-card);--soft:var(--a-field);--danger:var(--a-bad);
  background:var(--a-bg);color:var(--a-ink);color-scheme:light;
  font-family:"MiSans","PingFang SC","HarmonyOS Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
  line-height:1.55;-webkit-font-smoothing:antialiased;
}
html:has(.admin),html:has(.login-admin){background:#f2f4f7}
body:has(.admin) ::selection,body:has(.login-admin) ::selection{background:rgba(35,104,245,.2);color:var(--a-ink)}
body:has(.admin) :is(button,a,input,select,textarea,summary):focus-visible,
body:has(.login-admin) :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--a-accent);outline-offset:3px}
body:has(.admin) :is(input,textarea),body:has(.login-admin) :is(input,textarea){caret-color:var(--a-accent)}
body:has(.admin) *,body:has(.login-admin) *{scrollbar-width:thin;scrollbar-color:rgba(104,112,128,.35) transparent}
body:has(.admin) .muted,body:has(.login-admin) .muted{color:var(--a-muted)}
body:has(.admin) kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:1px solid var(--a-line);border-radius:6px;background:var(--a-field);color:var(--a-muted);font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
body:has(.admin) .button,body:has(.login-admin) .button{min-height:44px;padding:10px 16px;border:1px solid var(--a-line);border-radius:999px;background:var(--a-card);color:var(--a-ink);font-size:14px;font-weight:600;line-height:1.4;box-shadow:none}
body:has(.admin) .button:hover,body:has(.login-admin) .button:hover{background:var(--a-field);border-color:rgba(104,112,128,.3)}
body:has(.admin) .button.primary,body:has(.login-admin) .button.primary{min-height:48px;background:var(--a-accent);border-color:var(--a-accent);color:#fff}
body:has(.admin) .button.primary:hover,body:has(.login-admin) .button.primary:hover{background:var(--a-accent-2);border-color:var(--a-accent-2)}
body:has(.admin) .button.danger{background:var(--a-bad-soft);border-color:transparent;color:var(--a-bad)}
body:has(.admin) .button.danger:hover{border-color:var(--a-bad);background:var(--a-bad-soft)}
body:has(.admin) .button.compact{min-height:44px;padding:9px 14px;font-size:13px}
body:has(.admin) .field{gap:8px;font-size:13px;font-weight:600;color:var(--a-ink)}
body:has(.admin) .field :is(input,select,textarea){width:100%;min-width:0;min-height:48px;padding:11px 13px;border:1px solid var(--a-line);border-radius:12px;background:var(--a-field);color:var(--a-ink);font-family:inherit;font-size:16px;font-weight:400;line-height:1.5}
body:has(.admin) .field input::placeholder{color:var(--a-muted)}
body:has(.admin) .field small{color:var(--a-muted);font-size:12px;font-weight:400}
body:has(.admin) .form-error{color:var(--a-bad);font-size:13px}

/* 下拉选择：原控件保留表单值，展开菜单进入浏览器顶层。 */
body:has(.admin) .a-select-control{position:relative;min-width:0;max-width:100%}
body:has(.admin) select[data-admin-select-native]{display:none}
body:has(.admin) .a-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:48px;margin:0;padding:11px 13px;border:1px solid var(--a-line);border-radius:12px;background:var(--a-field);color:var(--a-ink);font-family:inherit;font-size:16px;font-weight:450;line-height:1.5;text-align:left;cursor:pointer}
body:has(.admin) .a-select-value{flex:1;min-width:0;overflow-wrap:anywhere;white-space:normal}
body:has(.admin) .a-select-arrow{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;color:var(--a-muted);transition:transform .18s ease-out}
body:has(.admin) .a-select-arrow>.icon,body:has(.admin) .a-select-check>.icon{width:18px;height:18px}
body:has(.admin) .a-select-trigger[aria-expanded=true]{border-color:var(--a-accent);background:var(--a-card)}
body:has(.admin) .a-select-trigger[aria-expanded=true]>.a-select-arrow{transform:rotate(180deg);color:var(--a-accent-2)}
body:has(.admin) .a-select-trigger:disabled{background:var(--a-field);color:var(--a-muted);cursor:not-allowed;opacity:.6}
body:has(.admin) .a-select-menu{position:fixed;inset:auto;max-width:calc(100vw - 24px);margin:0;padding:6px;border:0;border-radius:16px;background:var(--a-card);color:var(--a-ink);font-family:inherit;box-shadow:0 12px 36px rgba(18,26,40,.18);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scroll-padding:6px;scrollbar-gutter:stable}
body:has(.admin) .a-select-menu::backdrop{background:transparent}
body:has(.admin) .a-select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:44px;margin:0;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--a-ink);font-family:inherit;font-size:15px;font-weight:450;line-height:1.5;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
body:has(.admin) .a-select-option>span:not(.a-select-check){flex:1;min-width:0}
body:has(.admin) .a-select-check{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;color:var(--a-accent-2);visibility:hidden}
body:has(.admin) .a-select-option[aria-selected=true]{background:var(--a-accent-soft);color:var(--a-accent-2);font-weight:650}
body:has(.admin) .a-select-option[aria-selected=true]>.a-select-check{visibility:visible}
body:has(.admin) .a-select-option:focus-visible{outline-offset:-3px}
body:has(.admin) .a-select-option:disabled{color:var(--a-muted);cursor:not-allowed;opacity:.6}
@media(hover:hover){
  body:has(.admin) .a-select-trigger:not(:disabled):hover{border-color:var(--a-accent)}
  body:has(.admin) .a-select-option:not(:disabled):hover{background:var(--a-field)}
  body:has(.admin) .a-select-option[aria-selected=true]:not(:disabled):hover{background:var(--a-accent-soft)}
}
body:has(.admin) .a-select-trigger[aria-invalid=true]{border-color:var(--a-bad)}

/* 框架与导航 */
.admin{display:grid;grid-template-columns:224px minmax(0,1fr);gap:24px;min-height:100dvh;padding:24px;background:var(--a-bg);color:var(--a-ink)}
.admin .sidebar{position:sticky;top:24px;height:calc(100dvh - 48px);min-height:460px;padding:26px 16px 16px;border:0;border-radius:var(--a-radius);background:var(--a-card);color:var(--a-ink);box-shadow:var(--a-shadow)}
.admin .brand{gap:10px;padding:0 6px;color:var(--a-ink);font-size:19px;font-weight:700;letter-spacing:0}
.admin .brand-mark{width:38px;height:38px;border-radius:13px;background:var(--a-accent);color:#fff}
.admin .brand-mark .icon{width:23px;height:23px}
.admin .brand-name small{font-size:11px;font-weight:500;color:var(--a-muted)}
.admin .brand-note{margin:8px 6px 28px;color:var(--a-muted);font-size:12px;letter-spacing:0}
.admin .nav{display:flex;flex-direction:column;gap:6px;margin:24px 0 0;padding:0}
.admin .nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 16px;border:0;border-radius:999px;color:var(--a-muted);font-size:14px;font-weight:550;text-decoration:none;white-space:nowrap}
.admin .nav a .icon{width:20px;height:20px;opacity:1}
.admin .nav a:hover{background:var(--a-field);color:var(--a-ink)}
.admin .nav a[aria-current=page]{background:var(--a-accent-soft);color:var(--a-accent-2);font-weight:700}
.admin .sidebar-bottom{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:auto;padding:20px 8px 0;border-top:1px solid var(--a-line-2)}
.admin .account-label{display:flex;align-items:center;gap:10px;margin:0;color:var(--a-ink);font-size:13px;overflow-wrap:anywhere}
.admin .account-label .avatar{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border:0;border-radius:12px;background:var(--a-accent-soft);color:var(--a-accent-2);font-size:13px;font-weight:650}
.admin .account-label small{color:var(--a-muted);font-size:12px}
.admin .text-button{min-height:44px;padding:10px 0;text-align:left;color:var(--a-muted);font-size:13px;text-decoration:none}
.admin .text-button:hover{color:var(--a-bad)}
.admin .workspace{min-width:0}
.a-sidebar-head,.a-top-leading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.a-menu-toggle,.a-nav-close,.a-nav-scrim{display:none}
.admin .topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;height:auto;min-height:64px;padding:0 0 16px;border:0;background:var(--a-bg);font-size:13px}
.admin .content{width:100%;max-width:1480px;margin:0 auto;padding:20px 0 40px;outline:none}
.admin h1{font-size:28px;font-weight:700;line-height:1.3;letter-spacing:-.02em}
.admin h2{font-size:18px;font-weight:650;line-height:1.4;letter-spacing:-.01em}
.a-crumb{display:flex;align-items:center;gap:8px;min-width:0;color:var(--a-muted)}
.a-crumb .icon{width:14px;height:14px}
.a-crumb b{font-weight:600;color:var(--a-ink);white-space:nowrap}
.a-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}
@media(min-width:900px){
  .admin .a-top-leading,.admin .a-menu-toggle,.admin .a-nav-close{display:none}
  .admin .topbar{justify-content:flex-end}
}
.a-search-trigger{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:44px;min-height:44px;padding:10px 12px;border:1px solid var(--a-line);border-radius:999px;background:var(--a-card);color:var(--a-muted);font-size:13px}
.a-search-trigger:hover{border-color:var(--a-accent);color:var(--a-ink)}
.a-search-trigger .icon-wrap{display:grid;place-items:center}
.a-search-trigger .icon{width:18px;height:18px}
.a-search-trigger kbd{margin-left:4px}
.a-sync{font-size:12px;color:var(--a-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.admin .topbar .button.compact{min-height:44px;background:var(--a-card);font-size:13px}
.admin .topbar .button.compact .icon{width:17px;height:17px}
.a-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 24px}
.a-head p{margin-top:8px;color:var(--a-muted);font-size:14px;line-height:1.6}
.a-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}

/* 概览 */
.a-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px;padding:8px 0;border-radius:var(--a-radius);background:var(--a-card);box-shadow:var(--a-shadow)}
.a-kpi{display:flex;flex-direction:column;gap:14px;min-width:0;padding:16px 24px;border:0;border-right:1px solid var(--a-line-2);background:transparent;box-shadow:none}
.a-kpi:last-child{border-right:0}
.a-kpi header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--a-muted);font-size:13px}
.a-kpi header em{font-size:12px;font-style:normal}
.a-kpi-value{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;min-width:0;color:var(--a-ink);font-size:32px;font-weight:700;line-height:1.2;letter-spacing:-.025em;overflow-wrap:anywhere}
.a-kpi-value small{color:var(--a-muted);font-size:13px;font-weight:500;letter-spacing:0}
.a-kpi footer{display:flex;align-items:center;gap:8px;min-height:32px;color:var(--a-muted);font-size:12px;line-height:1.5}
.a-kpi footer a{display:inline-flex;align-items:center;min-height:44px;margin-left:auto;color:var(--a-accent-2);font-weight:600;text-decoration:none;white-space:nowrap}
.a-kpi-tags{display:inline-flex;flex-wrap:wrap;gap:6px}
.a-kpi-tags b{padding:3px 8px;border-radius:6px;background:var(--a-warn-soft);color:var(--a-warn);font-size:11px;font-weight:600}
.a-grid-2{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:20px;margin-bottom:20px}
.a-card{min-width:0;padding:24px;border:0;border-radius:var(--a-radius);background:var(--a-card);box-shadow:var(--a-shadow)}
.a-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.a-card-head a{display:inline-flex;align-items:center;min-height:44px;margin:-12px 0;color:var(--a-accent-2);font-size:13px;font-weight:600;text-decoration:none}
.a-card-head a:hover{text-decoration:underline}
.a-card-head>.a-muted{font-size:12px}
.a-muted{color:var(--a-muted)}
.a-note{max-width:none;margin-top:16px;color:var(--a-muted);font-size:12px;line-height:1.7}
.a-chart{display:flex;gap:12px;height:188px;padding-top:8px}
.a-chart-scale{display:flex;flex-direction:column;justify-content:space-between;min-width:64px;padding-bottom:22px;color:var(--a-muted);font-size:11px;font-variant-numeric:tabular-nums;text-align:right}
.a-bars{position:relative;display:flex;align-items:flex-end;gap:8px;flex:1;min-width:0;padding-bottom:22px;border-bottom:1px solid var(--a-line-2)}
.a-bar{position:relative;display:flex;align-items:flex-end;justify-content:center;flex:1;min-width:4px;height:100%}
.a-bar i{display:block;width:100%;max-width:32px;border-radius:6px 6px 2px 2px;background:rgba(35,104,245,.3)}
.a-bar.is-today i{background:var(--a-accent)}
.a-bar b{position:absolute;bottom:-20px;color:var(--a-muted);font-size:10px;font-weight:500;font-variant-numeric:tabular-nums}
.a-budget-amount{display:flex;flex-direction:column;gap:5px;margin:4px 0 20px;color:var(--a-muted);font-size:13px}
.a-budget-amount strong{color:var(--a-ink);font-size:36px;font-weight:700;line-height:1.2;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.a-budget-bar{height:8px;border-radius:999px;background:var(--a-field);overflow:hidden}
.a-budget-bar i{display:block;height:100%;border-radius:inherit;background:var(--a-accent)}
.a-budget-bar i.is-warn{background:#ba8125}
.a-budget-bar i.is-over{background:var(--a-bad)}
.a-budget-legend{display:flex;justify-content:space-between;gap:12px;margin:10px 0 20px;color:var(--a-muted);font-size:12px;font-variant-numeric:tabular-nums}
.a-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:0}
.a-facts div{display:flex;flex-direction:column;gap:4px;min-width:0}
.a-facts dt{color:var(--a-muted);font-size:12px}
.a-facts dd{margin:0;color:var(--a-ink);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.a-issues,.a-ranks{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.a-issues li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--a-line-2)}
.a-issues li:first-child,.a-ranks li:first-child{padding-top:0}
.a-issues li:last-child,.a-ranks li:last-child{padding-bottom:0;border-bottom:0}
.a-issues strong,.a-ranks strong{display:block;color:var(--a-ink);font-size:14px;font-weight:600}
.a-issues small,.a-ranks small{color:var(--a-muted);font-size:12px;line-height:1.6}
.a-ranks li{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--a-line-2)}
.a-ranks div{flex:1;min-width:0}
.a-ranks b{font-size:14px;font-weight:600}
.a-rank{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--a-field);color:var(--a-muted);font-size:12px;font-weight:600}
.a-ok{display:flex;align-items:center;gap:10px;padding:16px;border-radius:16px;background:var(--a-ok-soft);color:var(--a-ok);font-size:13px}
.a-ok .icon{width:20px;height:20px;flex-shrink:0}
.a-ok.big{align-items:flex-start;gap:14px;padding:24px;font-size:14px}
.a-ok.big p{margin-top:5px;color:inherit;font-size:13px;line-height:1.6}
.a-alert{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:16px 20px;border:0;border-radius:20px;background:var(--a-warn-soft);color:var(--a-warn)}
.a-alert.is-over{background:var(--a-bad-soft);color:var(--a-bad)}
.a-alert .icon{width:20px;height:20px;flex-shrink:0}
.a-alert strong{display:block;font-size:14px;font-weight:650}
.a-alert p{margin-top:4px;color:inherit;font-size:13px;line-height:1.6}
.a-alert .button{margin-left:auto;flex-shrink:0}
.a-tip{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:16px 20px;border-radius:20px;background:var(--a-accent-soft);color:var(--a-accent-2);font-size:13px;line-height:1.7}
.a-tip .icon{width:18px;height:18px;flex-shrink:0;margin-top:2px}
.a-tip p{max-width:none}

/* 筛选与操作 */
.a-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.a-chips{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:4px;border-radius:999px;background:rgba(104,112,128,.07);overflow-x:auto}
.a-chips-inline{margin-bottom:16px}
.a-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:9px 15px;border:0;border-radius:999px;background:transparent;color:var(--a-muted);font-size:13px;font-weight:550;white-space:nowrap;transition:background-color .18s ease-out,color .18s ease-out}
.a-chip b{color:inherit;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.a-chip:hover{background:var(--a-card);color:var(--a-ink)}
.a-chip.is-on{background:var(--a-card);color:var(--a-accent-2);font-weight:650;box-shadow:0 1px 4px rgba(18,26,40,.05)}
.a-tools{display:flex;align-items:center;gap:8px;min-width:0}
.a-search{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 13px;border:1px solid var(--a-line);border-radius:12px;background:var(--a-card);color:var(--a-muted)}
.a-search:focus-within{border-color:var(--a-accent)}
.a-search .icon{width:18px;height:18px}
.a-search input{width:180px;min-width:0;min-height:42px;padding:8px 0;border:0;background:transparent;outline:none;color:var(--a-ink);font-size:16px}
.a-search input::placeholder{color:var(--a-muted)}
.a-select{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px 0 12px;border:1px solid var(--a-line);border-radius:12px;background:var(--a-card);color:var(--a-muted)}
.a-select .icon{width:16px;height:16px}
.a-select select{min-height:42px;max-width:180px;padding:8px 2px;border:0;background:transparent;outline:none;color:var(--a-ink);font-size:16px;cursor:pointer}
.a-select:has(.a-select-control){min-width:150px;padding:0 0 0 12px;gap:2px}
.a-select .a-select-control{flex:1;min-width:0;max-width:200px}
.a-select .a-select-value{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}
body:has(.admin) .a-select .a-select-trigger{min-height:42px;padding:9px 10px 9px 4px;border:0;border-radius:11px;background:transparent;font-size:14px}
.a-select:has(.a-select-trigger[aria-expanded=true]){border-color:var(--a-accent)}
.a-select:has(.a-select-trigger[aria-invalid=true]){border-color:var(--a-bad)}
.a-icon-button,.a-ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px 14px;border:1px solid var(--a-line);border-radius:999px;background:var(--a-card);color:var(--a-muted);font-size:13px;font-weight:600;text-decoration:none}
.a-icon-button{width:44px;height:44px;padding:0;flex-shrink:0}
.a-icon-button:hover,.a-ghost-button:hover{border-color:var(--a-accent);background:var(--a-accent-soft);color:var(--a-accent-2)}
.a-icon-button .icon,.a-ghost-button .icon{width:18px;height:18px}

/* 桌面表格；手机以完整字段的紧凑卡片呈现 */
.a-table-wrap{max-width:100%;max-height:calc(100dvh - 260px);overflow:auto;border:1px solid var(--a-line);border-radius:20px;background:var(--a-card)}
.a-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}
.a-table th{position:sticky;top:0;z-index:2;padding:14px 16px;border-bottom:1px solid var(--a-line);background:var(--a-field);color:var(--a-muted);font-size:12px;font-weight:650;text-align:left;white-space:nowrap}
.a-table td{padding:14px 16px;border-bottom:1px solid var(--a-line-2);vertical-align:middle;line-height:1.6}
.a-table tbody tr:last-child td{border-bottom:0}
.a-table tbody tr{cursor:pointer;transition:background-color .18s ease-out}
.a-table tbody tr:hover{background:var(--a-field)}
.a-table tbody tr:focus-visible{outline:3px solid var(--a-accent);outline-offset:-3px}
.a-table td strong{font-weight:600}
.a-table td small{display:block;margin-top:4px;color:var(--a-muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.a-table .a-num{text-align:right;white-space:nowrap}
.a-wrap{min-width:240px;max-width:440px;color:var(--a-muted);white-space:normal;overflow-wrap:anywhere}
#a-accounts{min-width:1080px}
.a-id{display:flex;align-items:center;gap:8px;min-width:0}
.a-id strong{font-size:14px;overflow-wrap:anywhere}
.a-tag{flex-shrink:0;padding:3px 7px;border-radius:6px;background:var(--a-accent-soft);color:var(--a-accent-2);font-size:11px;font-weight:600;white-space:nowrap}
.a-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap}
.a-mini{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:9px 12px;border:1px solid var(--a-line);border-radius:999px;background:var(--a-card);color:var(--a-ink);font-size:12px;font-weight:600;white-space:nowrap}
.a-mini:hover{border-color:var(--a-accent);background:var(--a-accent-soft);color:var(--a-accent-2)}
.a-mini.is-danger{color:var(--a-bad)}
.a-mini.is-danger:hover{border-color:var(--a-bad);background:var(--a-bad-soft)}
.a-mini.is-ghost{border-color:transparent;background:var(--a-field);color:var(--a-accent-2)}
.a-mini:disabled{opacity:.45;cursor:not-allowed}
.a-copy{display:inline-grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--a-muted)}
.a-copy:hover{background:var(--a-accent-soft);color:var(--a-accent-2)}
.a-copy .icon{width:16px;height:16px}
.a-id-cell{display:flex;align-items:center;gap:6px;min-width:0}
.a-id-cell code,.a-issue-meta code{padding:4px 7px;border-radius:6px;background:var(--a-field);color:var(--a-muted);font:500 12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.a-state{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;max-width:100%;padding:4px 9px;border-radius:999px;background:var(--a-field);color:var(--a-muted);font-size:12px;font-weight:600;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.a-state i{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:currentColor}
.a-state.active{background:var(--a-ok-soft);color:var(--a-ok)}
.a-state.paused,.a-state.pending{background:var(--a-warn-soft);color:var(--a-warn)}
.a-state.expired,.a-state.banned{background:var(--a-bad-soft);color:var(--a-bad)}
.a-state.inactive,.a-state.deleted{background:var(--a-field);color:var(--a-muted)}
.a-meter{width:100%;max-width:140px;height:6px;border-radius:999px;background:var(--a-field);overflow:hidden}
.a-meter i{display:block;height:100%;border-radius:inherit;background:var(--a-accent)}
.a-meter i.is-low{background:#ba8125}
.a-meter.big{max-width:none;height:8px;margin-bottom:12px}
.a-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 2px 0;color:var(--a-muted);font-size:12px}
.a-pager div{display:flex;gap:8px}
.a-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:44px 24px;color:var(--a-muted);text-align:center}
.a-empty .icon{width:28px;height:28px}
.a-empty strong{color:var(--a-ink);font-size:15px;font-weight:600}
.a-empty p{max-width:38ch;font-size:13px;line-height:1.7}
.a-empty-inline{padding:20px;color:var(--a-muted);font-size:13px;text-align:center}

/* 兑换码与费用核对 */
.a-grid-forms{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.a-grid-forms .form{gap:16px;margin-top:0}
.admin .redeem-admin-form{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
.admin .generated-code{margin-top:20px;padding:20px;border-radius:16px;background:var(--a-accent-soft);color:var(--a-accent-2);font-size:13px}
.admin .generated-code code{display:block;margin:12px 0;font:600 18px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.a-table-codes{min-width:580px}
.a-table-codes td,.a-table-codes th{white-space:nowrap}
.a-table-codes td:first-child code{font:500 12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--a-ink)}
.a-issue-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.a-issue{display:flex;flex-direction:column;gap:16px;min-width:0;height:100%;padding:24px;border:0;border-radius:var(--a-radius);background:var(--a-card);box-shadow:var(--a-shadow)}
.a-issue header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.a-issue strong{display:block;font-size:15px;font-weight:650}
.a-issue small{color:var(--a-muted);font-size:12px;line-height:1.6}
.a-issue-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;font-size:12px}
.a-issue footer{display:flex;justify-content:flex-end;margin-top:auto}

/* 抽屉与权限 */
.a-lock{overflow:hidden}
.a-scrim{position:fixed;inset:0;z-index:60;background:var(--a-scrim);animation:a-fade .18s ease-out}
.a-drawer{position:fixed;top:12px;right:12px;bottom:12px;z-index:70;display:flex;flex-direction:column;width:min(460px,calc(100% - 24px));max-height:calc(100dvh - 24px);border:0;border-radius:24px;background:var(--a-card);color:var(--a-ink);box-shadow:-8px 8px 48px rgba(18,26,40,.15);overflow:hidden;animation:a-slide .2s cubic-bezier(.16,1,.3,1)}
.a-drawer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:24px 24px 20px;border-bottom:1px solid var(--a-line-2)}
.a-drawer h2{font-size:22px;font-weight:700;line-height:1.35;letter-spacing:-.02em}
.a-drawer>header p{margin-top:5px;color:var(--a-muted);font-size:13px}
.a-drawer-body{display:flex;flex-direction:column;gap:24px;min-height:0;padding:24px;overflow-y:auto;overscroll-behavior:contain}
.a-drawer-block h3{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;color:var(--a-ink);font-size:15px;font-weight:650}
.a-drawer-block h3 .a-muted{font-size:12px;font-weight:500}
.a-drawer-quota{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:12px;color:var(--a-muted);font-size:13px}
.a-drawer-quota strong{color:var(--a-ink);font-size:28px;font-weight:700;letter-spacing:-.02em}
.a-sources,.a-mini-calls{list-style:none;margin:0;padding:0;border:0;border-radius:0}
.a-sources li,.a-mini-calls li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--a-line-2);font-size:13px}
.a-sources li:first-child,.a-mini-calls li:first-child{padding-top:0}
.a-sources li:last-child,.a-mini-calls li:last-child{padding-bottom:0;border-bottom:0}
.a-sources strong,.a-mini-calls strong{display:block;font-size:13px;font-weight:600}
.a-sources small,.a-mini-calls small{color:var(--a-muted);font-size:12px}
.a-sources b{font-size:13px;font-weight:600;text-align:right}
.a-sources b small{font-weight:400}
.a-invitation-people{list-style:none;margin:16px 0 0;padding:0}
.a-invitation-people>li{padding:16px 0;border-top:1px solid var(--a-line-2);font-size:13px;overflow-wrap:anywhere}
.a-invitation-people strong{display:block;margin-bottom:8px;font-weight:600}
.a-invitation-people p{margin:8px 0 0}
.a-invitation-people small{display:block;margin-top:5px;color:var(--a-muted);font-size:12px;line-height:1.6}
.a-drawer-actions{position:sticky;bottom:-24px;display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;margin:0 -24px -24px;padding:16px 24px;background:var(--a-card);border-top:1px solid var(--a-line-2)}
.a-drawer-actions .button{flex:1;min-height:48px;font-size:13px}
.a-drawer-hint{margin:0 0 14px;color:var(--a-muted);font-size:13px;line-height:1.7}
.a-perm-grid{display:grid;grid-template-columns:1fr;gap:8px}
.a-perm-button{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 14px;border:1px solid var(--a-line);border-radius:12px;background:var(--a-card);color:var(--a-ink);font-size:13px;font-weight:600;text-align:left}
.a-perm-button .icon{width:18px;height:18px;color:var(--a-muted)}
.a-perm-button:hover{border-color:var(--a-accent);background:var(--a-accent-soft);color:var(--a-accent-2)}
.a-perm-button.is-warn{border-color:transparent;background:var(--a-warn-soft);color:var(--a-warn)}
.a-perm-button.is-danger{border-color:transparent;background:var(--a-bad-soft);color:var(--a-bad)}
.a-perm-button:is(.is-warn,.is-danger) .icon{color:inherit}
.a-perm-button:disabled{opacity:.45;cursor:not-allowed}
.a-secret{display:flex;align-items:center;gap:12px;margin:20px 0 4px;padding:16px;border:1px dashed var(--a-line);border-radius:16px;background:var(--a-field)}
.a-secret code{flex:1;min-width:0;color:var(--a-ink);font:600 15px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;overflow-wrap:anywhere}
.a-secret .button{flex-shrink:0}
.a-skeleton{display:flex;flex-direction:column;gap:12px}
.a-skeleton i{display:block;height:14px;border-radius:6px;background:var(--a-field)}
.a-skeleton i:nth-child(2){width:82%}.a-skeleton i:nth-child(3){width:64%}.a-skeleton i:nth-child(4){width:88%}.a-skeleton i:nth-child(5){width:52%}

/* 快速跳转 */
.a-palette{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 24px;background:var(--a-scrim);animation:a-fade .18s ease-out}
.a-palette-box{width:min(560px,100%);max-height:calc(88dvh - 24px);border:0;border-radius:24px;background:var(--a-card);color:var(--a-ink);box-shadow:0 24px 64px rgba(18,26,40,.18);overflow:hidden;animation:a-pop .2s cubic-bezier(.16,1,.3,1)}
.a-palette-input{display:flex;align-items:center;gap:12px;min-height:72px;padding:16px 20px;border-bottom:1px solid var(--a-line-2);color:var(--a-muted)}
.a-palette-input .icon{width:20px;height:20px}
.a-palette-input input{flex:1;min-width:0;min-height:44px;padding:8px 0;border:0;outline:none;background:transparent;color:var(--a-ink);font-size:16px}
.a-palette-input input::placeholder{color:var(--a-muted)}
.a-palette-list{max-height:min(380px,55dvh);padding:8px;overflow-y:auto;overscroll-behavior:contain}
.a-palette-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:12px;border:0;border-radius:12px;background:transparent;color:var(--a-ink);font-size:14px;text-align:left}
.a-palette-item .icon{width:18px;height:18px;color:var(--a-muted)}
.a-palette-item span{flex:1;min-width:0;font-weight:550}
.a-palette-item small{color:var(--a-muted);font-size:12px}
.a-palette-item:is(.is-on,:hover){background:var(--a-accent-soft);color:var(--a-accent-2)}
.a-palette-item.is-on .icon{color:inherit}
.a-palette-empty{padding:28px 20px;color:var(--a-muted);font-size:13px;text-align:center}
.a-palette-hint{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--a-line-2);color:var(--a-muted);font-size:12px}

/* 管理端登录与操作确认 */
.login-admin{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;min-height:100dvh;padding:40px 24px;background:var(--a-bg);color:var(--a-ink)}
.login-admin .login-story{display:block;width:100%;max-width:440px;padding:0;background:transparent}
.login-admin .brand{justify-content:center;gap:10px;color:var(--a-ink);font-size:20px;letter-spacing:0}
.login-admin .brand-mark{width:40px;height:40px;border-radius:14px;background:var(--a-accent);color:#fff}
.login-admin .brand-name small{font-size:12px;color:var(--a-muted);font-weight:500}
.login-admin .login-story-copy{margin-top:24px;text-align:center}
.login-admin .login-story h1{max-width:none;margin:0;font-size:28px;font-weight:700;line-height:1.3;letter-spacing:-.02em}
.login-admin .login-story p{margin-top:8px;color:var(--a-muted);font-size:14px}
.login-admin .login-main{display:block;width:100%;max-width:440px;padding:0}
.login-admin .login-box{width:100%;max-width:none;margin:0;padding:32px;border-radius:24px;background:var(--a-card);box-shadow:var(--a-shadow)}
.login-admin .auth-header h1{font-size:28px;font-weight:700;line-height:1.35;letter-spacing:-.02em}
.login-admin .auth-header p{margin-top:8px;color:var(--a-muted);font-size:14px;line-height:1.6}
.login-admin .auth-form{display:grid;gap:20px;margin-top:28px}
.login-admin .auth-form .button{width:100%}
.login-admin .auth-input-wrap{--auth-control-height:52px;border-color:rgba(104,112,128,.4);background:var(--a-card)}
.login-admin .password-toggle{right:3px;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--a-muted)}
.login-admin .password-toggle:hover{background:var(--a-accent-soft);color:var(--a-accent-2)}
.login-admin .password-toggle .icon{width:19px;height:19px}
.login-admin .form-error{min-height:0;color:var(--a-bad);font-size:13px}
.login-admin .form-error:empty{display:none}
.login-admin .login-note{margin-top:20px;color:var(--a-muted);font-size:12px;line-height:1.7}
body:has(.admin) dialog,body:has(.login-admin) dialog{width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:28px;border:0;border-radius:24px;background:var(--a-card);color:var(--a-ink);box-shadow:0 20px 64px rgba(18,26,40,.2);overflow:auto}
body:has(.admin) dialog::backdrop,body:has(.login-admin) dialog::backdrop{background:var(--a-scrim);backdrop-filter:blur(4px)}
body:has(.admin) dialog h2,body:has(.login-admin) dialog h2{font-size:20px;font-weight:700;line-height:1.4;letter-spacing:-.01em}
body:has(.admin) dialog>p,body:has(.login-admin) dialog>p{margin-top:10px;color:var(--a-muted);font-size:14px;line-height:1.7}
body:has(.admin) dialog .dialog-form{gap:16px;margin-top:24px}
body:has(.admin) dialog .dialog-actions,body:has(.login-admin) dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px}
body:has(.admin) dialog .dialog-actions .button,body:has(.login-admin) dialog .dialog-actions .button{flex:1;min-height:48px;border:0;background:var(--a-field);color:var(--a-ink)}
body:has(.admin) dialog .dialog-actions .button.primary,body:has(.login-admin) dialog .dialog-actions .button.primary{background:var(--a-accent);color:#fff}
body:has(.admin) dialog .dialog-actions .button.danger{background:var(--a-bad);color:#fff}

@keyframes a-fade{from{opacity:0}to{opacity:1}}
@keyframes a-slide{from{transform:translateX(16px);opacity:.7}to{transform:none;opacity:1}}
@keyframes a-pop{from{transform:translateY(-6px);opacity:.7}to{transform:none;opacity:1}}

@media(max-width:1200px){
  .admin{grid-template-columns:208px minmax(0,1fr);gap:20px;padding:20px}
  .admin .sidebar{top:20px;height:calc(100dvh - 40px)}
  .a-grid-2,.a-grid-forms{grid-template-columns:1fr}
  .a-search-trigger .a-search-label,body:has(.admin) .a-search-trigger kbd{display:none}
  .a-kpi{padding:16px 18px}
  .a-kpi header em{font-size:11px}
  .a-sync{display:none}
}
@media(max-width:899px){
  .admin{display:block;padding:16px}
  .admin .sidebar{position:fixed;inset:0 auto 0 0;z-index:90;display:flex;flex-direction:column;width:min(304px,86vw);height:100dvh;min-height:0;padding:calc(20px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));border-radius:0 24px 24px 0;overflow-y:auto;overscroll-behavior:contain;visibility:hidden;transform:translateX(-105%);transition:transform .2s cubic-bezier(.16,1,.3,1),visibility .2s;box-shadow:8px 0 40px rgba(18,26,40,.14)}
  .admin.is-nav-open .sidebar{visibility:visible;transform:translateX(0)}
  .admin .a-menu-toggle,.admin .a-nav-close{display:inline-flex;flex-shrink:0}
  .admin .a-nav-scrim{display:block;position:fixed;inset:0;z-index:85;background:var(--a-scrim)}
  .admin .a-sidebar-head{gap:8px}
  .admin .brand{padding:0;font-size:18px}
  .admin .brand-mark{width:34px;height:34px;border-radius:12px}
  .admin .brand-note{display:block;margin:6px 0 0;font-size:12px}
  .admin .nav{flex-direction:column;flex:1;gap:6px;margin:24px 0;padding:0;overflow:visible}
  .admin .nav a{flex-shrink:0;min-height:48px;padding:12px 14px;border:0;border-radius:999px;font-size:14px}
  .admin .nav a .icon{width:18px;height:18px}
  .admin .nav a[aria-current=page]{background:var(--a-accent-soft);color:var(--a-accent-2)}
  .admin .nav a:hover{background:var(--a-field)}
  .admin .sidebar-bottom{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:auto;padding:20px 0 0}
  .admin .sidebar-bottom .account-label{display:flex;font-size:12px}
  .admin .account-label .avatar{width:30px;height:30px;border-radius:10px}
  .admin .account-label small{font-size:11px}
  .admin .text-button{min-height:44px;padding:10px 4px;font-size:12px;white-space:nowrap}
  .admin .topbar{flex-wrap:wrap;gap:12px;min-height:64px;margin-top:0;padding:8px 0 12px}
  .admin .content{padding:16px 0 32px}
  .a-top-leading .a-crumb{display:none}
  .a-crumb b{font-size:13px}
  .a-top-actions{gap:8px;margin-left:auto}
  .a-search-trigger{width:44px;height:44px;padding:0}
  .admin .topbar .button.compact{padding:10px 12px}
  .a-head{align-items:flex-start;gap:14px;margin-bottom:20px}
  .a-head p{margin-top:6px;font-size:13px}
  .a-head-actions{flex-wrap:wrap;justify-content:flex-end}
  .a-kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:0;margin-bottom:16px}
  .a-kpi{gap:12px;padding:20px;border-right:1px solid var(--a-line-2)}
  .a-kpi:nth-child(2n){border-right:0}
  .a-kpi:nth-child(n+3){border-top:1px solid var(--a-line-2)}
  .a-kpi-value{font-size:30px}
  .a-kpi header{font-size:12px}
  .a-kpi header em{font-size:11px}
  .a-kpi footer{font-size:11px;gap:6px}
  .a-grid-2,.a-grid-forms{grid-template-columns:1fr;gap:16px;margin-bottom:16px}
  .a-card,.a-issue{padding:20px}
  .a-card-head{margin-bottom:18px}
  .a-chart{height:164px}
  .a-bars{gap:6px}
  .a-chart-scale{min-width:58px;font-size:10px}
  .a-budget-amount strong{font-size:32px}
  .a-toolbar{gap:12px;margin-bottom:12px}
  .a-tools{width:100%;flex-wrap:wrap}
  .a-search{flex:1;min-width:140px}
  .a-search input{width:100%}
  .a-chips{width:100%}
  .a-chip{flex-shrink:0}
  .a-table-wrap{max-height:none;overflow:visible;border:0;border-radius:0;background:transparent}
  .a-table,.a-table-codes,#a-accounts{display:block;width:100%;min-width:0;font-size:13px}
  .a-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
  .a-table tbody{display:grid;gap:12px}
  .a-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;min-width:0;padding:20px;border:0;border-radius:20px;background:var(--a-card);box-shadow:var(--a-shadow)}
  .a-table tbody tr:hover{background:var(--a-card)}
  .a-table td,.a-table td.a-num{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;max-width:none;padding:0;border:0;text-align:left;white-space:normal;overflow-wrap:anywhere}
  .a-table td[data-label]::before{display:block;color:var(--a-muted);font-size:11px;font-weight:500;line-height:1.5;content:attr(data-label)}
  .a-table td small{margin-top:0;font-size:12px}
  #a-accounts td:first-child,#a-codes td:first-child,.a-table td.a-wrap{grid-column:1/-1}
  #a-accounts td:first-child,#a-codes td:first-child{padding-bottom:14px;border-bottom:1px solid var(--a-line-2)}
  .a-table td.a-actions,.a-table td:has(.a-actions){grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;padding-top:2px}
  .a-table td.a-actions::before,.a-table td:has(.a-actions)::before{display:none}
  .a-table tbody tr:has(td[colspan]){display:block;padding:0}
  .a-table td[colspan]{display:block;width:100%}
  .a-id-cell{max-width:100%;flex-wrap:wrap}
  .a-id-cell code{min-width:0}
  .a-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px}
  .a-meter{max-width:180px;margin-top:3px}
  .a-wrap{min-width:0;max-width:none}
  .a-table-codes td,.a-table-codes th{white-space:normal}
  .a-pager{padding:16px 0 0;flex-wrap:wrap;gap:12px}
  .a-pager>span{flex:1;min-width:140px}
  .a-issue-list{grid-template-columns:1fr;gap:12px}
  .a-alert,.a-tip{margin-bottom:16px;padding:16px}
  .a-alert{flex-wrap:wrap;align-items:flex-start}
  .a-alert>div{flex:1;min-width:180px}
  .a-alert .button{margin-left:32px}
  .a-drawer{top:8px;right:8px;bottom:8px;width:calc(100% - 16px);max-width:480px;max-height:calc(100dvh - 16px);border-radius:24px}
  .a-drawer>header{padding:20px 20px 16px}
  .a-drawer-body{padding:20px;gap:24px}
  .a-drawer-actions{bottom:-20px;margin:0 -20px -20px;padding:14px 20px calc(14px + env(safe-area-inset-bottom))}
  .a-palette{padding-top:max(24px,env(safe-area-inset-top))}
  .a-palette-box{max-height:calc(100dvh - 48px)}
  .a-palette-list{max-height:calc(100dvh - 180px)}
}
@media(max-width:480px){
  .admin{padding:12px}
  .admin .sidebar{padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom))}
  .admin .topbar{gap:8px;padding:12px 0 8px}
  .a-top-actions{gap:6px}
  .a-head{flex-direction:column;gap:12px}
  .a-head-actions{width:100%;justify-content:flex-start}
  .a-kpi{padding:18px 16px;gap:10px}
  .a-kpi-value{font-size:28px}
  .a-kpi header{align-items:flex-start;flex-direction:column;gap:2px}
  .a-kpi footer{align-items:flex-start;flex-wrap:wrap;min-height:34px}
  .a-kpi footer a{margin-left:0}
  .a-card,.a-issue{padding:18px}
  .a-table tbody tr{padding:18px;gap:12px 14px}
  .a-search{min-width:150px}
  .a-tools:has(.a-select-control){display:grid;grid-template-columns:minmax(0,1fr) 44px}
  .a-tools:has(.a-select-control) .a-search{grid-column:1/-1;min-width:0}
  .a-select{flex:1}
  .a-select .a-select-control{max-width:none}
  .a-select select{width:100%;max-width:none}
  .admin .redeem-admin-form{grid-template-columns:1fr}
  .a-chart{gap:8px}
  .a-chart-scale{min-width:56px}
  .a-bars{gap:4px}
  .a-secret{align-items:stretch;flex-direction:column}
  .a-secret .button{align-self:flex-start}
  .login-admin{gap:24px;padding:32px 16px}
  .login-admin .login-box{padding:28px 24px}
  .login-admin .login-story-copy{margin-top:20px}
  body:has(.admin) dialog,body:has(.login-admin) dialog{padding:24px}
}
@media(prefers-color-scheme:dark){
  body:has(.admin),body:has(.login-admin){
    --a-bg:#0e1116;--a-card:#1a1f27;--a-field:#242b35;--a-ink:#ecf0f8;--a-muted:#a4adbd;
    --a-line:rgba(224,232,248,.13);--a-line-2:rgba(224,232,248,.08);--a-accent:#5a8dff;--a-accent-2:#91b2ff;
    --a-accent-soft:rgba(90,141,255,.14);--a-ok:#73d8b5;--a-ok-soft:#163c32;--a-warn:#e8bd75;--a-warn-soft:#3c301d;
    --a-bad:#ff9b95;--a-bad-soft:#422725;--a-shadow:0 2px 8px rgba(0,0,0,.08);--a-scrim:rgba(0,0,0,.55);color-scheme:dark;
  }
  html:has(.admin),html:has(.login-admin){background:#0e1116}
  body:has(.admin) .button.primary,body:has(.login-admin) .button.primary{color:#0e1e42}
  body:has(.admin) .button.primary:hover,body:has(.login-admin) .button.primary:hover{background:#91b2ff;border-color:#91b2ff}
  body:has(.admin) dialog .dialog-actions .button.primary,body:has(.login-admin) dialog .dialog-actions .button.primary{color:#0e1e42}
  body:has(.admin) dialog .dialog-actions .button.danger{background:#c43730;color:#fff}
  .admin .brand-mark,.login-admin .brand-mark{color:#0e1e42}
  .a-bar i{background:rgba(90,141,255,.38)}
  .a-meter i.is-low,.a-budget-bar i.is-warn{background:#d69d46}
  body:has(.admin) .a-select-menu{box-shadow:0 12px 36px rgba(0,0,0,.4)}
}
@media(forced-colors:active){
  body:has(.admin) .a-select-trigger,body:has(.admin) .a-select-menu{border:1px solid ButtonText}
  body:has(.admin) .a-select-option[aria-selected=true]{outline:1px solid Highlight;outline-offset:-1px}
}
@media(prefers-reduced-motion:reduce){
  body:has(.admin) *,body:has(.login-admin) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* CSP-safe 尺寸类：进度与图表不使用内联样式。 */
.a-w0{width:0%}.a-w1{width:1%}.a-w2{width:2%}.a-w3{width:3%}.a-w4{width:4%}.a-w5{width:5%}.a-w6{width:6%}.a-w7{width:7%}.a-w8{width:8%}.a-w9{width:9%}.a-w10{width:10%}.a-w11{width:11%}.a-w12{width:12%}.a-w13{width:13%}.a-w14{width:14%}.a-w15{width:15%}.a-w16{width:16%}.a-w17{width:17%}.a-w18{width:18%}.a-w19{width:19%}.a-w20{width:20%}.a-w21{width:21%}.a-w22{width:22%}.a-w23{width:23%}.a-w24{width:24%}.a-w25{width:25%}.a-w26{width:26%}.a-w27{width:27%}.a-w28{width:28%}.a-w29{width:29%}.a-w30{width:30%}.a-w31{width:31%}.a-w32{width:32%}.a-w33{width:33%}.a-w34{width:34%}.a-w35{width:35%}.a-w36{width:36%}.a-w37{width:37%}.a-w38{width:38%}.a-w39{width:39%}.a-w40{width:40%}.a-w41{width:41%}.a-w42{width:42%}.a-w43{width:43%}.a-w44{width:44%}.a-w45{width:45%}.a-w46{width:46%}.a-w47{width:47%}.a-w48{width:48%}.a-w49{width:49%}.a-w50{width:50%}.a-w51{width:51%}.a-w52{width:52%}.a-w53{width:53%}.a-w54{width:54%}.a-w55{width:55%}.a-w56{width:56%}.a-w57{width:57%}.a-w58{width:58%}.a-w59{width:59%}.a-w60{width:60%}.a-w61{width:61%}.a-w62{width:62%}.a-w63{width:63%}.a-w64{width:64%}.a-w65{width:65%}.a-w66{width:66%}.a-w67{width:67%}.a-w68{width:68%}.a-w69{width:69%}.a-w70{width:70%}.a-w71{width:71%}.a-w72{width:72%}.a-w73{width:73%}.a-w74{width:74%}.a-w75{width:75%}.a-w76{width:76%}.a-w77{width:77%}.a-w78{width:78%}.a-w79{width:79%}.a-w80{width:80%}.a-w81{width:81%}.a-w82{width:82%}.a-w83{width:83%}.a-w84{width:84%}.a-w85{width:85%}.a-w86{width:86%}.a-w87{width:87%}.a-w88{width:88%}.a-w89{width:89%}.a-w90{width:90%}.a-w91{width:91%}.a-w92{width:92%}.a-w93{width:93%}.a-w94{width:94%}.a-w95{width:95%}.a-w96{width:96%}.a-w97{width:97%}.a-w98{width:98%}.a-w99{width:99%}.a-w100{width:100%}
.a-h0{height:0%}.a-h1{height:1%}.a-h2{height:2%}.a-h3{height:3%}.a-h4{height:4%}.a-h5{height:5%}.a-h6{height:6%}.a-h7{height:7%}.a-h8{height:8%}.a-h9{height:9%}.a-h10{height:10%}.a-h11{height:11%}.a-h12{height:12%}.a-h13{height:13%}.a-h14{height:14%}.a-h15{height:15%}.a-h16{height:16%}.a-h17{height:17%}.a-h18{height:18%}.a-h19{height:19%}.a-h20{height:20%}.a-h21{height:21%}.a-h22{height:22%}.a-h23{height:23%}.a-h24{height:24%}.a-h25{height:25%}.a-h26{height:26%}.a-h27{height:27%}.a-h28{height:28%}.a-h29{height:29%}.a-h30{height:30%}.a-h31{height:31%}.a-h32{height:32%}.a-h33{height:33%}.a-h34{height:34%}.a-h35{height:35%}.a-h36{height:36%}.a-h37{height:37%}.a-h38{height:38%}.a-h39{height:39%}.a-h40{height:40%}.a-h41{height:41%}.a-h42{height:42%}.a-h43{height:43%}.a-h44{height:44%}.a-h45{height:45%}.a-h46{height:46%}.a-h47{height:47%}.a-h48{height:48%}.a-h49{height:49%}.a-h50{height:50%}.a-h51{height:51%}.a-h52{height:52%}.a-h53{height:53%}.a-h54{height:54%}.a-h55{height:55%}.a-h56{height:56%}.a-h57{height:57%}.a-h58{height:58%}.a-h59{height:59%}.a-h60{height:60%}.a-h61{height:61%}.a-h62{height:62%}.a-h63{height:63%}.a-h64{height:64%}.a-h65{height:65%}.a-h66{height:66%}.a-h67{height:67%}.a-h68{height:68%}.a-h69{height:69%}.a-h70{height:70%}.a-h71{height:71%}.a-h72{height:72%}.a-h73{height:73%}.a-h74{height:74%}.a-h75{height:75%}.a-h76{height:76%}.a-h77{height:77%}.a-h78{height:78%}.a-h79{height:79%}.a-h80{height:80%}.a-h81{height:81%}.a-h82{height:82%}.a-h83{height:83%}.a-h84{height:84%}.a-h85{height:85%}.a-h86{height:86%}.a-h87{height:87%}.a-h88{height:88%}.a-h89{height:89%}.a-h90{height:90%}.a-h91{height:91%}.a-h92{height:92%}.a-h93{height:93%}.a-h94{height:94%}.a-h95{height:95%}.a-h96{height:96%}.a-h97{height:97%}.a-h98{height:98%}.a-h99{height:99%}.a-h100{height:100%}
