:root{--blue:#2563eb;--ink:#182744;--muted:#738099;--border:#e5eaf2;--bg:#f5f7fb;--soft:#edf3ff;--red:#b42335;--green:#12845c;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.65}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--border);background:white;border-radius:8px;padding:10px 18px;color:var(--ink);font-weight:600;transition:background .15s}button:hover{background:#f0f4fc}button:disabled{opacity:.48;cursor:not-allowed}button.primary{background:var(--blue);border-color:var(--blue);color:white}button.primary:hover{background:#1d4ed8}button.danger{color:var(--red)}button.link{border:0;background:transparent;padding:4px 8px;color:var(--blue)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #94b8ff;outline-offset:3px}input,select{background:white;border:1px solid #dce3ed;border-radius:7px;padding:11px 12px;color:var(--ink);width:100%;min-width:0}input::placeholder{color:#94a0b5}input[type=radio],input[type=checkbox]{width:auto;accent-color:var(--blue)}label.field{display:block;margin-bottom:20px;font-weight:600}label.field>input,label.field>select,label.field>.input-row{margin-top:8px}.hint,.muted{color:var(--muted);font-size:13px;font-weight:400}h1{font-size:28px;line-height:1.3;margin:0 0 10px;letter-spacing:-.6px}h2{font-size:19px;margin:0 0 16px;line-height:1.4}h3{font-size:16px;margin:0 0 10px}p{margin:8px 0 16px}[hidden]{display:none!important}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:20px}.grow{flex:1;min-width:0}.input-row{display:flex;gap:8px;align-items:center}.input-row button{flex-shrink:0}.primary.full{width:100%}.brand{font-size:32px;font-weight:800;letter-spacing:-1.5px;color:var(--blue);line-height:1.2}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:white;border-right:1px solid var(--border);padding:32px 22px;display:flex;flex-direction:column;z-index:20}.brand-sub{color:var(--muted);margin:8px 0 38px}.nav{display:grid;gap:9px}.nav a,.nav button{display:flex;align-items:center;gap:13px;padding:13px 16px;border:0;border-radius:8px;background:transparent;color:#52617b;font-weight:600;text-align:left}.nav a.active{color:var(--blue);background:var(--soft)}.nav a:hover,.nav button:hover{background:var(--bg);text-decoration:none}.nav svg{width:20px;height:20px;flex-shrink:0}.sidebar-foot{margin-top:auto;padding-top:40px;color:var(--muted);font-size:12px}.workspace{margin-left:224px;min-height:100vh}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--border);background:white;color:var(--muted)}.avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#dce9ff;color:var(--blue);font-weight:600}.content{max-width:1260px;padding:44px 40px;margin:auto}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.page-heading p{margin:0;color:var(--muted)}.panel{background:white;border:1px solid var(--border);border-radius:11px;overflow:hidden}.panel.pad{padding:28px}.panel-head{padding:22px 26px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h2{margin:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{background:#f8faff;color:#6d7d97;font-size:12px;font-weight:500;padding:16px 24px;white-space:nowrap}td{padding:24px;border-top:1px solid var(--border)}td .row{flex-wrap:nowrap}.shop-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#e8efff;color:var(--blue);font-size:18px;font-weight:700;flex-shrink:0}.shop-name{max-width:280px;overflow-wrap:anywhere;font-weight:600}.tag{font-size:12px;color:var(--green);background:#eef9f4;border-radius:5px;padding:3px 8px;white-space:nowrap}.tag.warn{color:#a65c12;background:#fff6e9}.tag.neutral{background:#f0f3f9;color:#64748b}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.actions button{white-space:nowrap}.money{font-variant-numeric:tabular-nums;font-size:32px;font-weight:700;letter-spacing:-.5px}.money.small{font-size:20px}.summary{display:flex;gap:40px;align-items:center;flex-wrap:wrap;padding:28px;background:white;border:1px solid var(--border);border-radius:11px;margin-bottom:24px}.summary .primary{margin-left:auto}.summary p{margin:0}.summary>div{min-width:110px}.tip{padding:16px 20px;background:#edf3fd;border:1px solid #e0eafa;border-radius:8px;color:#586e91;margin-top:24px}.empty{text-align:center;padding:64px 20px;color:var(--muted)}.empty h2{color:var(--ink);margin-top:14px}.empty svg{width:42px;height:42px;color:#8da5cd}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:18px 24px;border-top:1px solid var(--border)}.pagination button{padding:6px 14px}.alert{padding:12px 16px;border-radius:8px;background:#edf4ff;color:#315a98;overflow-wrap:anywhere}.alert.error{background:#fff0f1;color:var(--red)}.alert.success{background:#eefaf4;color:var(--green)}.loading{padding:70px 20px;text-align:center;color:var(--muted)}.form-panel{max-width:640px}.details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.details dt{color:var(--muted);font-size:13px}.details dd{margin:6px 0 0;overflow-wrap:anywhere;font-weight:600}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 22px}.plan{border:1px solid var(--border);border-radius:8px;padding:16px;cursor:pointer;position:relative}.plan:has(input:checked){background:#f5f8ff;border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.plan input{position:absolute;right:12px;top:16px}.plan strong{display:block;padding-right:20px}.plan .price{font-size:22px;color:var(--blue);margin:9px 0}.plan p{margin:3px 0;font-size:12px;color:var(--muted)}dialog{border:1px solid var(--border);border-radius:14px;max-width:min(840px,calc(100% - 32px));width:760px;max-height:90dvh;padding:0;box-shadow:0 24px 80px #16315a26;color:var(--ink)}dialog::backdrop{background:#14233f65}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--border);position:sticky;top:0;background:white;z-index:2}.dialog-head h2{margin:0}.icon-button{border:0;padding:0 8px;font-size:26px;line-height:1.3;color:var(--muted)}#dialog-body{padding:26px 28px}#dialog-error{margin:0 28px 26px}.dialog-footer{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:24px}.stepper{display:flex;gap:8px;margin-bottom:24px}.stepper span{flex:1;padding:8px;background:var(--bg);font-size:12px;color:var(--muted);border-radius:5px;text-align:center}.stepper .done{background:#eaf6f0;color:var(--green)}.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.bill{background:#f7f9fd;padding:20px;border-radius:8px}.bill .row{justify-content:space-between;margin:10px 0}.bill .total{border-top:1px solid var(--border);padding-top:14px;margin-top:14px}.channel{display:flex;gap:10px;flex-wrap:wrap}.channel label{display:flex;align-items:center;gap:8px;border:1px solid var(--border);padding:12px 16px;border-radius:8px;cursor:pointer}.channel label:has(input:checked){border-color:var(--blue);background:var(--soft)}#pay-box{text-align:center;margin-top:22px;border-top:1px solid var(--border);padding-top:20px}#qr{display:inline-block;background:white;padding:12px}#cashier iframe{width:280px;height:300px;border:0}#flow-meta{font-size:12px;color:var(--muted);overflow-wrap:anywhere;margin-top:15px}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(280px,1fr) minmax(420px,1fr)}.auth-side{padding:60px 12%;background:#edf3ff;display:flex;flex-direction:column;justify-content:space-between}.auth-side h1{font-size:38px;line-height:1.4;letter-spacing:-1px}.auth-side .lead{font-size:16px;color:#6480a9}.auth-side .bottom{color:#7890b1;font-size:13px}.auth-main{display:flex;align-items:center;justify-content:center;padding:50px 30px;background:white}.auth-card{width:100%;max-width:400px}.auth-card h1{font-size:28px}.auth-card>.muted{margin-bottom:32px}.auth-foot{text-align:center;margin-top:24px;color:var(--muted)}.captcha img{width:108px;height:43px;object-fit:contain;border:1px solid var(--border);border-radius:6px;cursor:pointer}.captcha input{min-width:0}.agreement{font-size:12px;margin:14px 0;display:flex;gap:8px;align-items:flex-start}.agreement input{margin-top:6px}.protocol{max-height:240px;overflow:auto;white-space:pre-wrap}.mobile-menu{display:none}.scrim{display:none}.skip{position:fixed;top:-80px;z-index:100;background:white;padding:12px}.skip:focus{top:0}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);background:#182744;color:white;padding:12px 24px;border-radius:9px;z-index:100;text-align:center;box-shadow:0 8px 30px #18274433}.resume{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;border:1px solid #d5e4ff;background:#eff5ff;padding:14px 18px;border-radius:8px}.resume p{margin:0;color:#476186}.receipt-success{text-align:center;padding:24px 0}.receipt-success h2{color:var(--green)}.copy-row{display:flex;gap:12px;align-items:center;margin:16px 0}.copy-row input{background:#f8faff}.toolbar{display:flex;gap:12px;align-items:center}.toolbar select{width:auto}.search{max-width:230px}.break{overflow-wrap:anywhere}.filter{margin-bottom:18px}.negative{color:var(--ink)}.positive{color:var(--green)}@media(max-width:1000px){.sidebar{width:196px;padding:28px 16px}.workspace{margin-left:196px}.content{padding:30px 24px}.topbar{padding:0 24px}.page-heading{align-items:flex-start}.page-heading>.row{justify-content:flex-end}.plans{grid-template-columns:repeat(2,minmax(0,1fr))}td,th{padding:18px}.auth-side{padding:40px 9%}.auth-side h1{font-size:30px}.details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .15s;width:224px}.menu-open .sidebar{transform:translateX(0)}.menu-open .scrim{display:block;position:fixed;inset:0;background:#14233f65;z-index:15}.workspace{margin-left:0}.mobile-menu{display:block;border:0;background:transparent;padding:6px}.topbar{height:62px;padding:0 16px}.content{padding:28px 16px}.page-heading{flex-direction:column;gap:18px}h1{font-size:25px}.page-heading>.row{width:100%;justify-content:space-between}.summary{gap:22px;padding:22px}.summary .primary{margin-left:0}.panel.pad{padding:20px}.panel-head{padding:18px;flex-wrap:wrap}.details{gap:18px}.shop-table thead{display:none}.shop-table,.shop-table tbody,.shop-table tr,.shop-table td{display:block}.shop-table tr{padding:18px;border-top:1px solid var(--border)}.shop-table tr:first-child{border:0}.shop-table td{border:0;padding:7px 0}.shop-table td[data-label]:before{content:attr(data-label);display:inline-block;color:var(--muted);width:72px}.shop-table .actions{margin-left:64px}.shop-name{max-width:220px}.auth-wrap{grid-template-columns:1fr}.auth-side{padding:28px 24px;gap:20px}.auth-side h1{display:none}.auth-side .lead,.auth-side .bottom{display:none}.auth-main{padding:30px 24px;align-items:flex-start}.auth-card{max-width:450px}.brand-sub{margin-bottom:30px}.auth-side .brand-sub{margin:4px 0 0}.quote-grid{grid-template-columns:1fr}.plans{grid-template-columns:repeat(2,minmax(0,1fr))}.plan{padding:12px}.plan .price{font-size:19px}.dialog-head{padding:18px}#dialog-body{padding:20px 18px}#dialog-error{margin:0 18px 20px}.stepper{gap:4px}.stepper span{padding:8px 4px;font-size:11px}.resume{align-items:flex-start}.copy-row{flex-wrap:wrap}.copy-row input{flex-basis:100%}.pagination{padding:16px;gap:8px}.toolbar{flex-wrap:wrap}.money{font-size:28px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* 行内信息与可操作区域的层次；长店名、订单号不挤出视口。 */
.shop-name{display:flex;align-items:center;gap:14px}.shop-name>div{min-width:0}.shop-name strong{display:block;font-size:14px}.shop-name small,td small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:4px;overflow-wrap:anywhere}.plan>strong,.plan>span{display:block}.plan input{position:absolute;right:12px;top:12px}.plan>strong{padding-right:20px;margin-bottom:10px}.plan small{font-size:12px;color:var(--muted);font-weight:400}.plan .muted{font-size:12px;margin-top:8px}.bill>div{display:flex;justify-content:space-between;gap:16px;margin:8px 0}.panel+.panel{margin-top:22px}.panel-head label{display:flex;gap:8px;align-items:center;white-space:nowrap}.panel-head select{width:auto}a.primary{display:inline-block;background:var(--blue);color:white;border-radius:8px;padding:10px 18px}.money{white-space:nowrap}.table-wrap td{overflow-wrap:anywhere}.dialog-footer button{min-height:42px}@media(max-width:700px){.shop-name{max-width:100%}.shop-table .actions{margin-left:0;gap:10px;margin-top:8px}.input-row{min-width:0}.stepper{line-height:1.4}.plan .money.small{font-size:18px}#cashier iframe{max-width:100%}.pagination{flex-wrap:wrap}}
/* 面向顾客的收银台：账单、支付方式、扫码与结果分层。 */
.payment-methods{border:0;padding:0;margin:24px 0}.payment-methods legend{font-weight:600;margin-bottom:12px}.payment-methods .channel{display:grid;grid-template-columns:1fr 1fr;gap:12px}.payment-methods .channel label{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:16px;cursor:pointer;background:#fff}.payment-methods .channel label:has(input:checked){border-color:var(--blue);background:var(--soft)}.payment-methods small{display:block;color:var(--muted);font-size:12px;font-weight:400}.payment-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:#fff;font-weight:700;flex-shrink:0}.payment-mark.alipay{background:#1677ff}.payment-mark.wechat{background:#07a85c}#pay-box{text-align:center;margin:20px 0;padding:24px 12px;border:1px solid var(--border);border-radius:12px;background:#fff}#pay-heading{margin-bottom:8px}.purchase-success{display:flex;align-items:center;gap:12px;padding:16px;background:#eefaf4;border-radius:10px;margin-bottom:20px;color:var(--green);font-size:20px}.purchase-success>span{border-radius:50%;background:var(--green);color:white;width:32px;height:32px;text-align:center;line-height:32px}@media(max-width:700px){.payment-methods .channel{grid-template-columns:1fr}#flow-buttons>button.primary{width:100%;order:-1}}

/* 扫码阶段优先展示付款码，账单折叠，常见桌面窗口无需滚动。 */
/* Compact registration retains scrolling when the viewport or zoom needs it. */
body[data-page="register"] .auth-main{padding:24px 32px}
body[data-page="register"] .auth-card{max-width:420px}
body[data-page="register"] .auth-card>h1{margin-bottom:6px}
body[data-page="register"] .auth-card>.muted{margin:0 0 16px}
body[data-page="register"] .auth-card form{margin-top:0}
body[data-page="register"] label.field{margin-bottom:10px}
body[data-page="register"] label.field>input,body[data-page="register"] label.field>.input-row{margin-top:5px}
body[data-page="register"] .auth-card input:not([type="checkbox"]){padding:8px 12px;min-height:40px}
body[data-page="register"] .auth-card .input-row button{padding:8px 12px;min-height:40px}
body[data-page="register"] .auth-card .captcha button{padding:0;line-height:0}
body[data-page="register"] .captcha img{display:block;height:40px}
body[data-page="register"] .auth-card form>.hint{margin:0 0 10px;font-size:12px;line-height:1.5}
body[data-page="register"] .agreement{margin:0 0 12px}
body[data-page="register"] .auth-foot{margin-top:14px}
@media(min-width:701px) and (max-height:800px){body[data-page="register"] .auth-main{padding-top:14px;padding-bottom:14px}body[data-page="register"] label.field{margin-bottom:7px}body[data-page="register"] .auth-card>.muted{margin-bottom:12px}body[data-page="register"] .auth-foot{margin-top:8px}}
@media(max-width:700px){body[data-page="register"] .auth-main{padding:22px 24px}body[data-page="register"] .auth-card input:not([type="checkbox"]){min-height:44px}body[data-page="register"] .auth-card .input-row button{min-height:44px}}
.auth-side{padding:28px clamp(28px,5.6vw,100px);gap:20px;background:radial-gradient(ellipse at 0 0,#fff 0,transparent 65%),linear-gradient(145deg,#edf4ff,#e7effc);border-right:1px solid #e2eaf6}
.auth-logo{display:inline-block;line-height:0}
.auth-logo img{display:block;width:140px;height:auto;max-height:58px;object-fit:contain}
.auth-side .brand-sub{margin:8px 0 0}
.auth-side h1{font-size:32px;line-height:1.4}
.auth-side .lead{margin-bottom:0}
.auth-contact{width:100%;max-width:380px;padding:18px 20px;border:1px solid #fff;border-radius:16px;background:#ffffffa8;box-shadow:0 12px 40px #23467808}
.auth-qr-list{display:flex;gap:24px;justify-content:center}
.auth-qr-list figure{margin:0;text-align:center}
.auth-qr-list img{display:block;width:128px;height:128px;background:#fff;border:1px solid #e9eef5;border-radius:10px;padding:6px;object-fit:contain}
.auth-qr-list figcaption{font-size:12px;margin-top:8px;color:var(--ink)}
.auth-qr-list small{display:block;font-size:11px;color:var(--muted)}
.auth-contact-info{display:flex;align-items:center;justify-content:center;gap:6px 18px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #dfe7f3;font-size:12px;text-align:center}
.auth-contact-info>a{font-size:18px;font-weight:600;color:var(--ink)}
.auth-contact-info p{width:100%;margin:0;color:var(--muted);font-size:12px}
@media(min-width:701px) and (max-height:800px){.auth-side{padding-top:24px;padding-bottom:24px;gap:14px}.auth-side h1{font-size:30px}.auth-contact{padding:14px 16px}.auth-qr-list img{width:116px;height:116px}}
@media(min-width:701px) and (max-width:1000px){.auth-contact{padding:14px 12px}.auth-qr-list{gap:12px}.auth-qr-list img{width:108px;height:108px}}
@media(max-width:700px){.auth-wrap .auth-side{display:contents}.auth-side>div:first-child{grid-row:1;padding:20px 24px;background:var(--soft)}.auth-side .auth-contact{grid-row:3;padding:24px;background:var(--soft);max-width:none;border:0;border-radius:0;box-shadow:none}.auth-main{grid-row:2}.auth-logo img{width:116px}.auth-qr-list{justify-content:center}.auth-contact-info{justify-content:center;text-align:center}.auth-wrap{grid-template-rows:auto auto auto}}
body[data-page="login"] .auth-main{background:radial-gradient(ellipse at 100% 0,#f0f5ff,transparent 65%),#f9fbfe;padding:36px}
body[data-page="login"] .auth-card{max-width:460px;padding:40px;background:#fff;border:1px solid #e5ebf5;border-radius:20px;box-shadow:0 18px 60px #18396409}
.auth-eyebrow{font-size:11px;font-weight:600;letter-spacing:1.5px;color:var(--blue);margin-bottom:14px}
body[data-page="login"] .auth-card h1{font-size:30px;letter-spacing:-.5px}
body[data-page="login"] .auth-card>.muted{margin-bottom:28px;line-height:1.7}
body[data-page="login"] .auth-card input:not([type=checkbox]){min-height:48px;background:#fbfcff;border-color:#dce4f0;transition:border-color .15s,background .15s}
body[data-page="login"] .auth-card input:focus{background:white;border-color:var(--blue)}
.login-help{text-align:right;margin:-8px 0 20px;font-size:12px}
body[data-page="login"] .auth-card .primary.full{min-height:48px;box-shadow:0 5px 12px #2563eb1c}
body[data-page="login"] .auth-foot{border-top:1px solid #eef1f6;padding-top:20px;margin-top:24px;font-size:13px}
@media(max-width:1000px) and (min-width:701px){body[data-page="login"] .auth-main{padding:24px}body[data-page="login"] .auth-card{padding:28px}}
@media(max-width:700px){body[data-page="login"] .auth-main{padding:28px 20px 32px}body[data-page="login"] .auth-card{padding:28px 24px;border-radius:16px}.auth-eyebrow{margin-bottom:10px}}
.plan .plan-limit-badge{display:block;font-size:11px;color:#935c12;margin-top:8px;font-weight:600}
.plan-limit-notice{margin:14px 0 0;padding:10px 12px;border:1px solid #f2d8a6;border-radius:8px;background:#fffaed;color:#805718;font-size:12px;line-height:1.7;font-weight:400}
.cashier-mode #pay-heading{margin:0 0 4px}
/* Keep the payment surface in place while the gateway loads or the code renews. */
#payment-stage{position:relative;width:280px;height:300px;margin:10px auto 8px;display:grid;place-items:center;max-width:100%}
#payment-stage #qr,#payment-stage #cashier{grid-area:1/1;margin:0}
#payment-stage #qr{padding:12px;line-height:0}
#payment-stage #cashier iframe{display:block;width:280px;height:300px;border:0;background:#fff}
#payment-loading{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;background:#fff;color:var(--muted);font-size:13px;text-align:center;padding:16px}
#payment-loading[hidden]{display:none}
#payment-loading .request-spinner{width:28px;height:28px;border-width:3px}
.cashier-mode #pay-expiry{min-height:20px;font-variant-numeric:tabular-nums}
.cashier-mode #pay-heading{font-size:15px;color:var(--muted)}
.pay-heading-row{display:flex;justify-content:center;align-items:center;gap:16px;min-height:30px}
.payment-switch{display:flex;gap:4px;padding:3px;background:var(--soft);border-radius:8px}
.payment-switch button{padding:3px 9px;min-height:28px;border:0;font-size:12px;background:transparent}
.payment-switch button[aria-pressed="true"]{opacity:1;background:#fff;color:var(--blue);box-shadow:0 1px 4px #18274416}
@media(max-width:480px){.pay-heading-row{gap:8px}.payment-switch button{padding:3px 7px}}
@media(min-width:701px) and (max-height:760px){.cashier-mode #dialog-body{padding-top:6px!important;padding-bottom:6px!important}.cashier-mode .dialog-head{padding-top:10px!important;padding-bottom:10px!important}}
.cashier-mode #dialog-body{padding:16px 24px}.cashier-mode #pay-box{margin:0 0 12px;padding:12px 10px}.cashier-mode #pay-amount{margin:4px 0;font-size:20px}.cashier-mode #pay-expiry{margin:4px 0 0;font-size:12px}.cashier-mode #flow-status{margin:10px 0;padding:10px 12px;font-size:13px}.cashier-mode #flow-buttons{margin-top:12px}.cashier-mode #flow-meta{margin-top:12px}.cashier-mode #flow-meta>summary{cursor:pointer;color:var(--muted)}.cashier-mode #flow-meta .stepper{margin-top:16px}.cashier-mode #qr:empty,.cashier-mode #cashier:empty{display:none}.cashier-mode .dialog-head{padding:14px 24px}@media(max-width:700px){.cashier-mode #dialog-body{padding:12px 16px}.cashier-mode #flow-buttons{gap:6px}.cashier-mode #flow-buttons button{padding:8px 10px}.cashier-mode #flow-buttons>button.primary{width:auto;flex:1}}
.request-spinner{display:inline-block;width:16px;height:16px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:middle;animation:request-spin .8s linear infinite}
.phone-prefix{width:80px;flex:0 0 80px}
.mobile-pay-hint{display:none}
@media(max-width:700px){.mobile-pay-hint{display:block;margin:8px 0 0;font-size:12px;color:var(--muted)}}
@media(max-width:480px){.cashier-mode #flow-buttons>button.primary{flex-basis:100%;width:100%;order:-1}.cashier-mode #flow-buttons>button{flex:1;min-height:40px}}
@media(max-width:700px){.auth-wrap{grid-template-rows:auto 1fr}.auth-side{display:block;padding:22px 24px}.auth-side>div:not(:first-child){display:none}.auth-main{padding-top:32px}input,select{font-size:16px}.sidebar{overflow-y:auto}.menu-open{overflow:hidden}.mobile-menu,.icon-button{min-width:40px;min-height:40px}#qr{max-width:100%}#qr canvas,#qr img{max-width:100%;height:auto}.shop-table .actions{margin-left:0}.topbar>.row{gap:8px}.topbar>.row:last-child{font-size:12px}}
@media(max-width:360px){.plans{grid-template-columns:1fr}.topbar .avatar{display:none}.pagination{gap:6px}.pagination button{padding:6px 10px}}
@keyframes request-spin{to{transform:rotate(360deg)}}
.request-pending>.request-spinner{margin-right:7px}
.image-pending{position:relative}
.image-pending img{opacity:.35}
.image-pending::after{content:'';position:absolute;left:calc(50% - 8px);top:calc(50% - 8px);width:16px;height:16px;border:2px solid #285ff0;border-right-color:transparent;border-radius:50%;animation:request-spin .8s linear infinite}
.loading>.request-spinner{margin-right:10px;color:#285ff0}
.request-feedback{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;align-items:center;gap:10px;max-width:min(380px,calc(100vw - 40px));padding:12px 16px;border:1px solid #dbe5ff;border-radius:10px;background:#fff;color:#17376a;box-shadow:0 4px 18px #14305918;font-size:14px;pointer-events:none}
#dialog .request-feedback{position:sticky;bottom:0;right:auto;max-width:100%;margin-top:10px}
#flow-status>.request-feedback{position:static;margin:0;padding:0;border:0;box-shadow:none;background:transparent;color:inherit;font-size:inherit}
@media(prefers-reduced-motion:reduce){.request-spinner,.image-pending::after{animation:none;border-right-color:currentColor;opacity:.65}}
/* Compact plan selection, with full limits visible alongside the selected plan. */
#dialog.package-picker-mode{width:min(1120px,calc(100vw - 40px));max-width:1120px}.package-picker-mode #dialog-body{padding:20px 24px}.package-picker-mode .dialog-head{padding:16px 24px}.create-fields{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.create-fields .field{margin-bottom:18px}.package-picker{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:24px;align-items:start}.package-options{margin:0;padding:0;border:0;min-width:0}.package-options legend{font-weight:700;margin-bottom:12px}.package-options .plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.package-options .plan{padding:13px 10px}.package-options .plan>strong{font-size:13px;padding-right:17px;margin-bottom:8px}.package-options .plan input{right:8px;top:12px}.package-options .money.small{font-size:18px}.package-options .plan small{font-size:10px}.package-options .plan .muted{font-size:11px;margin-top:6px}.package-options .hint{font-size:12px;margin:12px 0 0}.package-detail{background:#f5f8ff;border:1px solid #e1e9f8;border-radius:10px;padding:17px 18px;min-width:0}.package-detail h3{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:16px;margin:0 0 6px}.package-detail h3 span{font-size:12px;font-weight:500;white-space:nowrap}.package-description{font-size:12px;color:var(--muted);margin:0 0 12px}.package-detail .details{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;margin:0}.package-detail .details div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #e1e9f8;padding-bottom:5px}.package-detail .details dt{font-size:11px}.package-detail .details dd{font-size:12px;font-weight:600;margin:0}.package-rule{font-size:12px;line-height:1.7;margin:13px 0 0}.package-scope{font-size:11px;color:var(--muted);line-height:1.6;margin:10px 0 0}.package-picker-mode .dialog-footer{margin-top:16px}.package-picker-mode form>.hint{margin:14px 0 0;font-size:12px}
@media(max-width:1000px) and (min-width:701px){.package-picker{grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:18px}.package-options .plans{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){#dialog.package-picker-mode{width:calc(100vw - 20px)}.package-picker-mode #dialog-body{padding:16px}.package-picker-mode .dialog-head{padding:14px 16px}.create-fields{grid-template-columns:1fr;gap:0}.package-picker{grid-template-columns:1fr;gap:16px}.package-options .plans{grid-template-columns:repeat(2,minmax(0,1fr))}.package-options .plan{padding:12px}.package-detail{padding:16px}.package-picker-mode .dialog-footer{position:sticky;bottom:-16px;background:#fff;padding:12px 0;margin-top:12px;border-top:1px solid var(--border);z-index:1}.package-detail h3{flex-wrap:wrap}}
@media(min-width:1001px) and (max-height:800px){.package-picker-mode .dialog-head{padding:12px 24px}.package-picker-mode #dialog-body{padding:14px 24px}.create-fields .field{margin-bottom:12px}.package-detail{padding:13px 16px}.package-detail .details{gap:5px 12px}.package-detail .details div{padding-bottom:3px}.package-description{margin-bottom:8px}.package-rule{margin-top:9px}.package-scope{margin-top:6px}.package-picker-mode .dialog-footer{margin-top:12px}.package-picker-mode form>.hint{margin-top:10px}}
/* Stack all descriptions in one grid cell to reserve the tallest plan at each width. */
.package-detail{display:grid}.package-detail-panel{grid-area:1 / 1;min-width:0;visibility:hidden;pointer-events:none}.package-detail-panel.is-active{visibility:visible;pointer-events:auto}
/* Shop type is the first, explicit required decision; no preselected radio. */
.create-fields{grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:24px;margin-bottom:16px;align-items:start}.shop-type-field{border:0;padding:0;margin:0;min-width:0}.shop-type-field legend{font-weight:700;margin-bottom:8px;color:#163d82}.shop-type-field legend>span{font-size:11px;font-weight:500;color:#b42335;margin-left:8px}.shop-type-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shop-type-option{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid #cad8ee;border-radius:8px;cursor:pointer;background:#f8faff}.shop-type-option input{margin:4px 0 0;flex-shrink:0;accent-color:var(--blue)}.shop-type-option strong{display:block;font-size:13px}.shop-type-option small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.shop-type-option:has(input:checked){border-color:var(--blue);background:#edf3ff;box-shadow:inset 0 0 0 1px var(--blue)}.shop-type-option:focus-within{outline:2px solid #97baff;outline-offset:2px}.create-fields .shop-name-field{margin:0}.shop-name-field input{margin-top:8px}
@media(max-width:700px){.create-fields{grid-template-columns:1fr;gap:16px;margin-bottom:18px}.shop-type-options{grid-template-columns:1fr}.shop-type-option{padding:12px}.shop-type-option small{font-size:12px}}
@media(min-width:1001px) and (max-height:800px){.create-fields{margin-bottom:10px}.shop-type-option{padding:7px 10px}.shop-type-field legend{margin-bottom:6px}}
/* Required markers and a compact action row for the create form. */
.required-mark{color:#d92d20;font-size:15px;font-weight:700;margin-left:4px;line-height:1}.plan-required{display:none}form .plan-required{display:inline}.package-picker-mode form[data-form="create"]>.dialog-footer{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
@media(max-width:700px){.package-picker-mode form[data-form="create"]>.dialog-footer{margin-top:12px;padding-top:12px}}
.plan:has(input:disabled){background:#f3f4f6!important;border-color:#e1e4e9!important;box-shadow:none!important;color:#9299a5;cursor:not-allowed}.plan:has(input:disabled) .muted,.plan:has(input:disabled) .money{color:#9299a5}.free-limit-info{font-size:12px;line-height:1.7;color:#29497c;background:#eaf0fc;border-radius:6px;padding:8px 10px;margin:10px 0 0}
/* 套餐确认：套餐权益与实际订单金额分区展示。 */
.quote-grid:has(.order-package){gap:20px;align-items:start}
.order-package{padding:20px;border:1px solid #dde6f7;border-radius:10px;background:linear-gradient(145deg,#f3f7ff,#fff);min-width:0}
.order-eyebrow{color:#647796;font-size:12px}.order-package h2{margin:5px 0 8px;font-size:22px}
.order-plan-price{font-size:27px;font-weight:700;line-height:1.3;margin:0;color:#2459be;font-variant-numeric:tabular-nums}.order-plan-price span{font-size:12px;font-weight:400;color:#738099}
.order-plan-description{font-size:12px;color:#738099;margin:8px 0 16px}
.order-plan-features{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;font-size:12px}.order-plan-features div{min-width:0}.order-plan-features dt{color:#738099}.order-plan-features dd{margin:2px 0 0;font-weight:600}
.order-validity{border-top:1px solid #e1e8f4;padding-top:12px;margin:16px 0 0;font-size:12px;color:#647796}
.order-bill{padding:22px 20px;border:1px solid #e5eaf2;background:#fafbfe}.order-bill h3{margin:0 0 20px}.order-bill>div{display:flex;justify-content:space-between;gap:12px;margin:12px 0;font-size:13px}.order-bill .total{align-items:center;margin-top:20px;padding-top:18px}.order-bill .total strong{font-size:25px;color:#2459be;font-variant-numeric:tabular-nums}.order-bill-note{font-size:12px;color:#738099;margin:10px 0 0}
@media(max-width:700px){.quote-grid:has(.order-package){grid-template-columns:1fr;gap:14px}.order-package,.order-bill{padding:18px}.order-plan-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
.account-brand-logo{display:block;width:140px;height:58px;object-fit:contain;object-position:left center}
.pending-orders{border:1px solid #dde5f1;background:white;border-radius:10px;margin-bottom:24px;overflow:hidden}.pending-orders>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;list-style:none;font-weight:600}.pending-orders>summary::-webkit-details-marker{display:none}.pending-orders>summary:after{content:'⌄';color:#738099}.pending-orders[open]>summary:after{transform:rotate(180deg)}.pending-orders summary b{display:inline-block;margin-left:8px;padding:0 8px;background:#edf3ff;color:#2563eb;border-radius:12px;font-size:12px}.pending-orders summary>.muted{margin-left:auto}.pending-list{border-top:1px solid #e5eaf2;padding:0 18px}.pending-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #eef1f6}.pending-row:last-child{border:0}.pending-row>span{overflow-wrap:anywhere}.pending-row small{display:block;color:#738099;margin-top:3px}.pending-row button{font-size:12px;padding:7px 10px;white-space:nowrap}.pending-row>.row{flex-shrink:0;gap:4px}
@media(max-width:700px){.pending-row{align-items:flex-start;flex-direction:column;gap:8px}.pending-orders>summary{padding:12px;font-size:13px}.pending-orders summary>.muted{font-size:11px}}
#balance-log-list{position:relative;min-height:140px}#balance-log-list.list-updating{opacity:.65;pointer-events:none}#balance-log-list.list-updating:before{content:'正在更新记录…';position:absolute;right:16px;top:8px;z-index:1;background:#edf3ff;color:#315a98;padding:4px 10px;border-radius:6px;font-size:12px}
.auth-brand-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.auth-home-link{font-size:13px;font-weight:500;letter-spacing:0;white-space:nowrap}
/* 统一认证页：深蓝品牌区与浅色表单区组成完整画布。 */
body:has(.auth-premium){background:#edf0f5}
.auth-wrap.auth-premium{width:calc(100% - 64px);max-width:1240px;margin:32px auto;min-height:calc(100dvh - 64px);grid-template-columns:44% 56%;border:1px solid #dce3ed;border-radius:24px;overflow:hidden;box-shadow:0 24px 80px #18274412}
.auth-premium .auth-side{display:flex;position:relative;isolation:isolate;overflow:hidden;padding:36px 44px;gap:26px;background:radial-gradient(ellipse at 100% 20%,#244b7b 0,transparent 62%),linear-gradient(150deg,#14233c,#101c31);border:0;justify-content:space-between}
.auth-premium .auth-side:before{content:'';position:absolute;z-index:-1;pointer-events:none;width:560px;height:560px;border:1px solid #ffffff0a;border-radius:50%;top:-280px;right:-250px;box-shadow:0 0 0 65px #ffffff03,0 0 0 130px #ffffff02}
.auth-premium .auth-logo img{width:132px;height:auto}.auth-premium .brand-sub{margin:14px 0 0;color:#aebed5;font-size:12px}.auth-premium .auth-home-link{color:#d1dff3;font-size:12px}
.auth-story-kicker{font-size:11px;letter-spacing:2px;color:#91b7ee;margin-bottom:20px}.auth-premium .auth-side h1{color:#fff;font-size:clamp(30px,2.7vw,40px);line-height:1.4;letter-spacing:-1px;margin-bottom:16px}.auth-premium .auth-side .lead{font-size:14px;line-height:1.95;color:#b5c4da;margin:0}
.auth-premium .auth-contact{width:100%;max-width:none;padding:20px 0 0;border:0;border-top:1px solid #ffffff20;border-radius:0;background:none;box-shadow:none}.auth-premium .auth-qr-list{justify-content:flex-start;gap:24px}.auth-premium .auth-qr-list img{width:104px;height:104px;padding:5px;border:0;border-radius:8px}.auth-premium .auth-qr-list figcaption{color:#e6edf8;font-size:11px}.auth-premium .auth-qr-list small{color:#99abc6;font-size:10px}.auth-premium .auth-contact-info{justify-content:flex-start;text-align:left;border:0;margin-top:16px;padding:0;gap:4px 16px;color:#b5c4da;font-size:11px}.auth-premium .auth-contact-info>a{color:#fff;font-size:18px;letter-spacing:.4px}.auth-premium .auth-contact-info p{color:#99abc6;font-size:11px}
body .auth-premium .auth-main{background:#fff;padding:32px 54px;min-width:0}
body .auth-premium .auth-card{max-width:420px;width:100%;padding:0;border:0;border-radius:0;box-shadow:none;background:none}
body .auth-premium .auth-card h1{font-size:29px;line-height:1.3;letter-spacing:-.5px;margin-bottom:10px}.auth-premium .auth-eyebrow{font-size:10px;letter-spacing:1.8px;color:#6680a4;margin-bottom:12px}body .auth-premium .auth-card>.muted{font-size:13px;line-height:1.6;margin-bottom:26px}
.auth-premium label.field{font-size:13px;margin-bottom:16px}.auth-premium label.field>input,.auth-premium label.field>.input-row{margin-top:6px}body .auth-premium .auth-card input:not([type=checkbox]){min-height:44px;padding:10px 12px;background:#f9fbfd;border-color:#dde4ee;border-radius:8px;font-size:14px}.auth-premium .auth-card input:focus{outline:2px solid #b5cefb;outline-offset:1px;background:#fff}.auth-premium .auth-card .primary.full{min-height:46px;border-radius:8px;background:#245ada;box-shadow:0 6px 16px #245ada18}
body .auth-premium .auth-foot{margin-top:20px;padding-top:16px;border-top:1px solid #e9edf3;font-size:12px}.auth-premium .auth-card form>.hint{font-size:11px;line-height:1.5;margin:8px 0}.auth-premium .agreement{margin:12px 0;font-size:11px}.auth-premium .captcha img{height:40px}
body[data-page="register"] .auth-premium label.field{margin-bottom:10px}body[data-page="register"] .auth-premium .auth-card>.muted{margin-bottom:18px}
@media(min-width:701px) and (max-height:800px){.auth-wrap.auth-premium{margin:16px auto;min-height:calc(100dvh - 32px);width:calc(100% - 32px)}.auth-premium .auth-side{padding:26px 36px;gap:20px}.auth-premium .auth-side h1{font-size:30px}.auth-premium .auth-story-kicker{margin-bottom:12px}body .auth-premium .auth-main{padding:20px 40px}body[data-page="register"] .auth-premium .auth-card input:not([type=checkbox]){min-height:38px;padding:7px 11px}body[data-page="register"] .auth-premium label.field{margin-bottom:7px}body[data-page="register"] .auth-premium .auth-card>.muted{margin-bottom:12px}body[data-page="register"] .auth-premium .auth-foot{margin-top:12px;padding-top:10px}.auth-premium .auth-qr-list img{width:96px;height:96px}}
@media(min-width:701px) and (max-width:1000px){.auth-wrap.auth-premium{grid-template-columns:42% 58%;width:calc(100% - 24px);margin:12px auto}.auth-premium .auth-side{padding:28px 24px}body .auth-premium .auth-main{padding:26px}.auth-premium .auth-qr-list{gap:14px}.auth-premium .auth-qr-list img{width:88px;height:88px}.auth-premium .auth-side h1{font-size:28px}}
@media(max-width:700px){.auth-wrap.auth-premium{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;width:100%;margin:0;min-height:100dvh;border:0;border-radius:0;box-shadow:none}.auth-premium .auth-side{display:contents}.auth-premium .auth-side:before{display:none}.auth-premium .auth-side>div:first-child{grid-row:1;padding:22px 24px;background:#14233c}.auth-premium .auth-logo img{width:112px}.auth-premium .auth-story{display:none}body .auth-premium .auth-main{grid-row:2;padding:30px 24px 36px}.auth-premium .auth-side .auth-contact{grid-row:3;background:#14233c;padding:26px 24px;border:0}.auth-premium .auth-qr-list{justify-content:center}.auth-premium .auth-contact-info{justify-content:center;text-align:center}.auth-premium .auth-card input:not([type=checkbox]){font-size:16px!important}.auth-premium .auth-card h1{font-size:26px!important}}
body[data-page="register"] .auth-premium .auth-main{padding-top:22px;padding-bottom:22px}body[data-page="register"] .auth-premium label.field{margin-bottom:8px}body[data-page="register"] .auth-premium label.field>input,body[data-page="register"] .auth-premium label.field>.input-row{margin-top:4px}
@media(min-width:701px) and (max-height:800px){body[data-page="register"] .auth-premium .auth-main{padding-top:14px;padding-bottom:14px}body[data-page="register"] .auth-premium .auth-eyebrow{margin-bottom:6px}body[data-page="register"] .auth-premium label.field{margin-bottom:5px}body[data-page="register"] .auth-premium .auth-card input:not([type=checkbox]){min-height:36px;padding:6px 11px}body[data-page="register"] .auth-premium .auth-card .input-row button{min-height:36px;padding:6px 10px}body[data-page="register"] .auth-premium .agreement{margin:8px 0}}
@media(min-width:701px) and (max-height:740px){.auth-wrap.auth-premium{margin:4px auto;min-height:calc(100dvh - 8px);border-radius:16px}.auth-premium .auth-side{padding-top:22px;padding-bottom:22px}}
/* 账户工作台：紧凑品牌区、清晰信息层级、低对比度边界。 */
body[data-page="account"]{background:#f3f5f9}
.sidebar{padding:28px 20px;background:linear-gradient(180deg,#fff,#fbfcff);border-right:1px solid #e2e7ef}
.sidebar .account-brand-logo{width:110px;height:46px}.sidebar .brand{padding:0 12px}.sidebar .brand-sub{font-size:11px;letter-spacing:1.5px;margin:8px 12px 32px;color:#8794a9}
.nav{gap:6px}.nav a,.nav button{font-size:13px;padding:12px 14px;border-radius:9px;color:#607088}.nav a.active{background:#eaf0fc;color:#2456bc;box-shadow:inset 3px 0 #3264d6}.nav svg{width:18px;height:18px}
.sidebar-foot{display:grid;gap:12px;padding:24px 12px 0;font-size:12px}.sidebar-foot .link{text-align:left;font-size:12px;padding:0;font-weight:400}
.topbar{height:68px;background:#ffffffed;border-color:#e4e9f1;font-size:12px}.avatar{background:#eaf0fc;border:1px solid #dde7fb}
.content{padding-top:32px}.page-heading{margin-bottom:24px}.page-heading h1{font-size:26px;font-weight:650;letter-spacing:-.7px}.page-heading p{font-size:13px}.page-heading .muted{font-size:12px}
.panel{border-color:#e0e6ef;border-radius:14px;box-shadow:0 4px 20px #243c6104}.panel-head{padding:20px 24px}.panel-head h2{font-size:17px;font-weight:600}.panel-head h2 .muted{margin-left:6px}th{background:#f8fafd;color:#8190a7;font-size:11px}td{border-color:#edf0f5;padding:22px 24px}.shop-table tbody tr:hover{background:#fafcff}.shop-mark{background:linear-gradient(145deg,#edf3ff,#e2eafa);border:1px solid #dce6f8;color:#456697;font-size:16px;border-radius:12px}.shop-name strong{font-weight:600}.shop-name small{font-size:11px}.tag{font-size:11px}.actions button{font-size:12px;padding:8px 13px}.actions a{font-size:12px}button.primary{background:#285ddd;border-color:#285ddd;box-shadow:0 3px 9px #285ddd12}
.pending-orders{background:#fffaf0;border:1px solid #eeddb8;border-radius:10px;box-shadow:none;margin-bottom:24px;color:#805b23}.pending-orders>summary{padding:13px 18px;font-size:12px;line-height:20px}.pending-orders>summary:after{display:none}.pending-orders summary b{color:#986615;background:#f6e7c5}.pending-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:12px;color:#94703b;font-weight:400;flex-shrink:0}.pending-toggle i{display:block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-4px}.pending-orders[open] .pending-toggle i{transform:rotate(225deg);margin-top:4px}.pending-collapse{display:none}.pending-orders[open] .pending-collapse{display:inline}.pending-orders[open] .pending-expand{display:none}.pending-list{border-color:#eeddb8;background:#fffdf8}.pending-row{border-color:#f0e6d3;color:#52617a}.pending-row .link{color:#8e7043}.pending-row small{font-size:11px}
@media(max-width:700px){.content{padding:24px 16px}.page-heading h1{font-size:24px}.topbar{height:62px}.pending-orders>summary{padding:12px 14px}.pending-toggle{gap:8px}.shop-table tr{padding:16px}.shop-table td{padding:7px 0}.page-heading>.row{gap:8px}}
/* 侧栏品牌区与工作台顶栏对齐。 */
.sidebar{padding-top:0}.sidebar>.brand{display:flex;align-items:center;justify-content:center;flex:0 0 68px;height:68px;margin:0 -20px;padding:0 20px;border-bottom:1px solid #e4e9f1}.sidebar>.brand .account-brand-logo{width:110px;height:46px;object-position:center}.sidebar>.brand-sub{margin-top:14px}
@media(max-width:700px){.sidebar>.brand{flex-basis:62px;height:62px}}

/* 店铺检索与到期提醒 */
.sidebar>.brand .account-brand-logo{width:90px;height:auto}
.shop-filters{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid #e7edf5}.shop-filters label,.shop-filters form{display:flex;align-items:center;gap:10px}.shop-filters input{width:230px}.shop-filters>.muted{margin-left:auto;font-size:12px}.shop-table tr.shop-expiring td{background:#fffbf1}.shop-table tr.shop-expiring:hover td{background:#fff5dc}.shop-table tr.shop-expiring td:first-child{box-shadow:inset 3px 0 #e9b353}.expiry-notice{color:#a16a10!important;font-weight:500;margin-top:6px}
@media(max-width:700px){.shop-filters{padding:16px;gap:12px}.shop-filters form{width:100%}.shop-filters input{min-width:0;flex:1;width:100%}.shop-filters>.muted{margin-left:0}}

.renewal-shop{font-size:14px;color:#526580;margin:8px 0 20px}.renewal-dates{margin:22px 0 12px}.renewal-dates>div{padding:14px 0;border-top:1px solid #e1e8f4}.renewal-dates dt{font-size:12px;color:#6e7f99}.renewal-dates dd{margin:6px 0 0;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.renewal-dates>div:last-child dd{color:#295ce0}.upgrade-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f3}.upgrade-footer .hint{margin:0;line-height:1.8}.upgrade-footer button{flex-shrink:0;min-height:46px;padding-inline:24px}.upgrade-footer button span{margin-left:12px}@media(max-width:700px){.upgrade-footer{flex-direction:column;align-items:stretch;gap:14px}.upgrade-footer button{width:100%}}

[data-form="create"] input[name="shop_name"].is-empty{border-color:#dc4545;background:#fffafa}[data-form="create"] input[name="shop_name"].is-empty:focus{border-color:#dc4545;box-shadow:0 0 0 3px rgba(220,69,69,.12)}

/* 确认套餐订单：沿用建店弹窗宽度，桌面端紧凑展示完整信息。 */
@media(min-width:901px){
#dialog:has(#flow-summary .order-package):not(.cashier-mode){width:min(1120px,calc(100vw - 40px));max-width:1120px}
#dialog:has(#flow-summary .order-package):not(.cashier-mode) .dialog-head{padding:16px 24px}
#dialog:has(#flow-summary .order-package):not(.cashier-mode) #dialog-body{padding:18px 24px}
#dialog:not(.cashier-mode) .quote-grid:has(.order-package){grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px}
#dialog:not(.cashier-mode) .order-package,#dialog:not(.cashier-mode) .order-bill{padding:16px 20px}
#dialog:not(.cashier-mode) .order-plan-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px}
#dialog:not(.cashier-mode) .order-package h2{margin:4px 0 6px}
#dialog:not(.cashier-mode) .order-plan-price{margin:4px 0 6px;font-size:24px}
#dialog:not(.cashier-mode) .order-plan-description{margin:0 0 10px}
#dialog:not(.cashier-mode) .order-validity{margin:12px 0 0;padding-top:10px}
#dialog:has(.order-package):not(.cashier-mode) .stepper{margin-bottom:16px}
#dialog:has(.order-package):not(.cashier-mode) #flow-status{margin:14px 0;padding:10px 14px;font-size:12px}
#dialog:has(.order-package):not(.cashier-mode) .payment-methods{margin:12px 0}
#dialog:has(.order-package):not(.cashier-mode) .channel label{padding:10px 16px}
#dialog:has(.order-package):not(.cashier-mode) #flow-meta{margin-top:10px;font-size:12px}
#dialog:has(.order-package):not(.cashier-mode) #flow-buttons{margin-top:12px}
}

@media(min-width:901px){#dialog:has(.order-package):not(.cashier-mode) .order-bill>div{padding:8px 0}#dialog:has(.order-package):not(.cashier-mode) .order-bill .total{margin-top:8px;padding-top:12px}#dialog:has(.order-package):not(.cashier-mode) .order-bill-note{margin:8px 0 0}#dialog:has(.order-package):not(.cashier-mode) .stepper{margin-top:0;margin-bottom:12px}#dialog:has(.order-package):not(.cashier-mode) .payment-methods legend{margin-bottom:6px}#dialog:has(.order-package):not(.cashier-mode) #flow-status{margin:10px 0}#dialog:has(.order-package):not(.cashier-mode) #flow-orders{margin:6px 0;font-size:12px;overflow-wrap:anywhere}}

@media(min-width:901px){#dialog:has(.order-package):not(.cashier-mode){max-height:calc(100vh - 24px)}#dialog:not(.cashier-mode) .order-plan-features>div{display:flex;justify-content:space-between;gap:6px;padding:5px 0;border-bottom:1px solid #e5ebf5}#dialog:not(.cashier-mode) .order-plan-features dd{margin:0;white-space:nowrap}#dialog:not(.cashier-mode) .order-plan-features{gap:4px 16px}#dialog:has(.order-package):not(.cashier-mode) .order-bill>div{margin:4px 0;padding:3px 0}#dialog:has(.order-package):not(.cashier-mode) .order-bill h3{margin-bottom:12px}#dialog:has(.order-package):not(.cashier-mode) .payment-methods .channel label{padding:8px 14px}#dialog:has(.order-package):not(.cashier-mode) .order-bill .total{margin-top:8px;padding-top:10px}}

/* 扫码页与建店向导同宽：支付在左，完整订单在右。 */
@media(min-width:901px){
#dialog.cashier-mode:has(.order-package){width:min(1120px,calc(100vw - 40px));max-width:1120px;max-height:calc(100vh - 24px)}
.cashier-mode:has(.order-package) #dialog-body{display:grid;grid-template-columns:minmax(340px,1fr) minmax(0,1.15fr);gap:12px 24px;padding:20px 24px}
.cashier-mode:has(.order-package) #pay-box{grid-column:1;grid-row:1/4;margin:0;align-self:start}
.cashier-mode:has(.order-package) #flow-meta{grid-column:2;grid-row:2;margin:0}
.cashier-mode:has(.order-package) #payment-order-overview{grid-column:2;grid-row:1;margin:0;padding:10px 14px}
.cashier-mode:has(.order-package) #flow-status{grid-column:1;grid-row:4;margin:0}
.cashier-mode:has(.order-package) #flow-buttons{grid-column:2;grid-row:4;margin:0;align-self:end}
.cashier-mode:has(.order-package) #flow-meta>summary{display:none}
.cashier-mode:has(.order-package) #flow-steps{display:none}
.cashier-mode .quote-grid:has(.order-package){grid-template-columns:1fr;gap:10px}
.cashier-mode .order-package,.cashier-mode .order-bill{padding:12px 16px}
.cashier-mode .order-plan-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px}
.cashier-mode .order-package h2{font-size:18px;margin:3px 0}
.cashier-mode .order-plan-price{font-size:22px}
.cashier-mode .order-plan-description{margin:4px 0 8px}
.cashier-mode .order-validity{margin:8px 0 0;padding-top:8px}
.cashier-mode .order-bill h3{margin-bottom:6px}
.cashier-mode .order-bill>div{margin:3px 0;font-size:12px}
.cashier-mode .order-bill .total{margin-top:6px;padding-top:6px}
.cashier-mode .order-bill-note{margin:4px 0 0}
.cashier-mode #flow-orders{font-size:11px;margin:8px 0 0;overflow-wrap:anywhere}
}

.pay-heading-row{flex-direction:column;gap:12px}.payment-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:420px;padding:0;background:none}.payment-switch-label{grid-column:1/-1;text-align:left;font-size:12px;color:#6b7890}.payment-switch button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:62px;padding:10px 14px;border:1px solid #d7e0ee;background:#fff;border-radius:10px;font-size:14px;text-align:left;transition:background .15s,border-color .15s,box-shadow .15s}.payment-switch button small{display:block;font-size:11px;font-weight:400;color:#687b96;margin-top:2px}.payment-switch button:hover{border-color:#7596d7;background:#f4f7ff;box-shadow:0 3px 10px #18274412}.payment-switch button[aria-pressed="true"]{border:2px solid #1677ff;background:#eef5ff;color:#155bc1;box-shadow:none}.payment-switch button[data-method="wechat"][aria-pressed="true"]{border-color:#13a65b;background:#eefaf3;color:#147444}.payment-switch button .payment-mark{width:30px;height:30px;flex-shrink:0}.payment-switch button[aria-pressed="true"] small{color:inherit}@media(max-width:480px){.payment-switch button{padding:8px;gap:7px;min-height:58px}}

@media(min-width:901px){.cashier-mode:has(.order-package) #dialog-body{gap:10px 20px;padding:14px 24px}.cashier-mode:has(.order-package) #pay-box{padding:12px}.cashier-mode .pay-heading-row{gap:6px}.cashier-mode .payment-switch{gap:6px 10px}.cashier-mode .payment-switch button{min-height:52px;padding:6px 12px}.cashier-mode #pay-amount{margin:8px 0 4px}.cashier-mode #payment-stage{margin:4px auto}.cashier-mode #pay-expiry{margin:4px 0}.cashier-mode:has(.order-package) #flow-status{padding:8px 12px;font-size:12px}.cashier-mode .order-plan-features>div{display:flex;justify-content:space-between;gap:5px;border-bottom:1px solid #e5ebf5;padding:4px 0}.cashier-mode .order-plan-features dd{margin:0;white-space:nowrap}.cashier-mode #payment-order-overview{font-size:12px}.cashier-mode .dialog-head{padding:12px 24px}}

/* 收银台视觉层次：支付操作与订单核对分区。 */
@media(min-width:901px){
#dialog.cashier-mode:has(.order-package){background:#fff;border:1px solid #dce4f0;border-radius:18px}
.cashier-mode:has(.order-package) .dialog-head{background:#fff;border-bottom:1px solid #e8edf5}
.cashier-mode:has(.order-package) #dialog-body{background:linear-gradient(90deg,#fff 46%,#f7f9fd 46%);column-gap:28px}
.cashier-mode:has(.order-package) #pay-box{border:0;border-radius:0;background:transparent;padding:4px 12px 10px}
.cashier-mode .pay-heading-row #pay-heading{order:2;margin:6px 0 0;color:#566780;font-size:13px;font-weight:500}
.cashier-mode .payment-switch{max-width:390px;text-align:left}
.cashier-mode .payment-switch-label{font-size:13px;font-weight:600;color:#263855}
.cashier-mode #pay-amount{font-size:23px;letter-spacing:-.5px;color:#152743;margin:7px 0}
.cashier-mode #payment-stage{background:#fff;border-radius:12px;box-shadow:0 0 0 1px #e6ebf3,0 8px 24px #15274308}
.cashier-mode #pay-expiry{font-size:12px;color:#76839a;margin-top:10px}
.cashier-mode:has(.order-package) #payment-order-overview{background:transparent;border:0;border-left:3px solid #3265df;border-radius:0;padding:3px 12px;color:#344967;line-height:1.7}
.cashier-mode .order-package{background:#fff;border-color:#e2e8f2;border-radius:12px}
.cashier-mode .order-bill{background:#fff;border-color:#e2e8f2;border-radius:12px}
.cashier-mode .order-eyebrow{font-size:11px;letter-spacing:1px}
.cashier-mode .order-plan-features dt{font-size:11px}.cashier-mode .order-plan-features dd{font-size:12px}
.cashier-mode:has(.order-package) #flow-status{background:#f3f7fd;border:0;color:#667995;line-height:1.6}
.cashier-mode:has(.order-package) #flow-buttons{padding-top:10px;border-top:1px solid #e0e7f1}
.cashier-mode:has(.order-package) #flow-buttons .primary{min-width:190px;box-shadow:0 4px 10px #245ee51a}
}

@media(min-width:901px){#dialog.cashier-mode:has(.order-package){width:min(1120px,calc(100vw - 40px));height:min(750px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}.cashier-mode:has(.order-package) #dialog-body{min-height:0}.cashier-mode:has(.order-package) #flow-status{max-width:100%;overflow-wrap:anywhere}.cashier-mode:has(.order-package) #flow-buttons{flex-wrap:nowrap}.cashier-mode:has(.order-package) #flow-buttons .primary{min-width:160px}.cashier-mode:has(.order-package) .payment-switch button{border-width:2px}}

.shop-name .shop-type-badge{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:2px 8px;border-radius:5px;font-size:11px;line-height:1.6;font-weight:500;white-space:nowrap;border:1px solid transparent}.shop-type-badge b{font-size:12px;font-weight:700;letter-spacing:.3px}.shop-type-badge.is-b2c{background:#edf4ff;border-color:#d6e5ff;color:#245bc1}.shop-type-badge.is-b2b{background:#f3efff;border-color:#e3d9fb;color:#7041aa}.shop-name .shop-domain{margin-top:5px;color:#7c899c;font-size:11px}

/* 侧栏菜单加载提示固定在右侧，不挤动图标和文字。 */
.nav a,.nav button{position:relative;padding-right:38px}.nav .request-pending>.request-spinner{position:absolute;right:14px;top:50%;margin:-8px 0 0;width:16px;height:16px}

.recharge-amount-row{display:flex;align-items:center;gap:14px;margin:12px 0 22px}.recharge-amount-row .order-plan-price{margin:0;font-size:32px!important;line-height:1.2}.recharge-edit{padding:5px 12px;font-size:12px;font-weight:600;color:#245bd1;border:1px solid #cad9f6;background:#f6f9ff;border-radius:7px}.recharge-edit:hover{background:#eaf1ff;border-color:#6994eb}.recharge-summary .recharge-balances{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 20px;padding:18px 0;border-top:1px solid #e6ebf4;border-bottom:1px solid #e6ebf4}.recharge-balances dt{font-size:12px;color:#74829b}.recharge-balances dd{margin:6px 0 0;font-size:20px;font-weight:600;color:#233855}.recharge-balances>div:last-child dd{color:#245bd1}.cashier-mode .recharge-summary{padding:22px}.recharge-summary h2{color:#233855!important}.recharge-summary .hint{line-height:1.8;margin-bottom:10px}

/* Upgrade quote explanation follows the server calculation basis. */
.order-bill .upgrade-calculation{display:block;background:#eef3ff;border:1px solid #dce6ff;border-radius:8px;padding:12px;margin:0 0 14px;font-size:12px;line-height:1.65}.upgrade-calculation h4{margin:0 0 6px;font-size:13px}.upgrade-calculation p{margin:4px 0}.upgrade-calculation .calculation-result{color:#2558cf}.upgrade-calculation small{display:block;color:#65789c;font-size:11px}

/* Align the two confirmation cards to the taller card. */
#dialog:not(.cashier-mode) .quote-grid:has(.order-package){align-items:stretch}

/* Shared modal alignment: independent of content length and completion state. */
#dialog:not(.cashier-mode) .quote-grid>.order-package,#dialog:not(.cashier-mode) .quote-grid>.order-bill{align-self:stretch;min-width:0;margin-block:0}
#dialog .order-bill>div{align-items:baseline}
#dialog .order-bill>div>strong,#dialog .order-bill>div>span:last-child{flex-shrink:0;text-align:right;font-variant-numeric:tabular-nums}
#dialog .order-plan-features>div,#dialog .package-detail .details>div{align-items:baseline;min-width:0}
#dialog .order-plan-features dd,#dialog .package-detail .details dd{flex-shrink:0;text-align:right;font-variant-numeric:tabular-nums}
#dialog .channel{align-items:stretch}
#dialog .channel>label{margin:0;min-width:0;align-items:center}
#dialog .dialog-footer{align-items:center;gap:12px}
#dialog .dialog-footer>button{margin-block:0;min-height:44px}
#dialog .stepper>span{display:flex;align-items:center;justify-content:center;text-align:center}
#dialog .upgrade-calculation{overflow-wrap:anywhere}

/* Compact renewal result. */

.renewal-complete .purchase-success{display:none}
.renewal-success-card{text-align:center;padding:22px 16px 12px}
.renewal-success-icon{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 20px;border-radius:50%;background:#e9f8f0;color:#12845c;font-size:32px}
.renewal-success-card h2{font-size:22px;margin-bottom:16px}
.renewal-success-card>p{color:#738099;margin:8px 0}
.renewal-success-expiry{display:block;font-size:32px;color:#182744;font-variant-numeric:tabular-nums}
.renewal-success-badge{display:inline-block;margin:12px 0 20px;padding:3px 12px;border-radius:20px;background:#e9f8f0;color:#12845c;font-size:12px}
.renewal-success-card .renewal-success-plan{border-top:1px solid #e5eaf2;padding-top:20px;color:#738099}
.renewal-success-plan strong{color:#182744;margin-left:12px}
.renewal-complete #flow-buttons{justify-content:center;margin-top:20px}
.renewal-complete #flow-buttons button{min-width:160px}

/* All transaction steps retain the same outer dimensions. */
#dialog.transaction-dialog{width:min(1120px,calc(100vw - 40px));max-width:1120px;height:min(750px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
#dialog.transaction-dialog.renewal-complete #dialog-body{display:flex;flex-direction:column;justify-content:center}
.renewal-complete .renewal-success-card{max-width:560px;margin-inline:auto;width:100%}
@media(max-width:700px){#dialog.transaction-dialog{width:calc(100vw - 20px)}}

/* A shared footer outside scrolling content keeps actions stationary at every step. */
#dialog.transaction-dialog[open]{display:flex;flex-direction:column;overflow:hidden;padding:0}
#dialog.transaction-dialog .dialog-head{flex:none;padding:16px 24px!important;position:static}
#dialog.transaction-dialog #dialog-body{flex:1;min-height:0;overflow:auto;padding:18px 24px!important}
#dialog.transaction-dialog #transaction-actions{flex:none;padding:14px 24px 20px;background:#fff;border-top:1px solid var(--border)}
#dialog.transaction-dialog #transaction-actions .dialog-footer,#dialog.transaction-dialog #transaction-actions .upgrade-footer{position:static;margin:0;padding:0;border:0;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:12px;width:100%;flex-wrap:wrap}
#dialog.transaction-dialog #transaction-actions button{min-height:44px;margin:0}
#dialog.transaction-dialog #transaction-actions .upgrade-footer .hint{margin-right:auto}
#dialog.transaction-dialog #transaction-actions .primary{min-width:160px}
@media(max-width:700px){#dialog.transaction-dialog .dialog-head{padding:14px 16px!important}#dialog.transaction-dialog #dialog-body{padding:16px!important}#dialog.transaction-dialog #transaction-actions{padding:12px 16px 16px}#transaction-actions .upgrade-footer .hint{display:none}}

#dialog.transaction-dialog #transaction-actions button{height:44px;min-height:44px;padding-block:0;white-space:nowrap}
#dialog.transaction-dialog #transaction-actions .upgrade-footer .hint{font-size:12px;line-height:1.5}

#dialog.transaction-dialog #transaction-actions .dialog-footer,#dialog.transaction-dialog #transaction-actions .upgrade-footer{flex-wrap:nowrap}
#dialog.transaction-dialog #transaction-actions button{width:auto;flex:0 0 auto}
@media(max-width:700px){#dialog.transaction-dialog #transaction-actions button{padding-inline:12px}#dialog.transaction-dialog #transaction-actions .primary{min-width:140px}}

#dialog.transaction-dialog #transaction-actions .primary{order:10;margin-left:0;margin-right:0}
#dialog.transaction-dialog #transaction-actions button:not(.primary){order:0}

/* Account contact page: concise company introduction and direct contact. */
.contact-company{display:grid;grid-template-columns:1fr 1fr;border:1px solid #dce5f3;border-radius:18px;overflow:hidden;background:white;box-shadow:0 18px 50px #25467a08}
.contact-intro{padding:42px;background:radial-gradient(ellipse at 0 0,#cddfff,transparent 68%),linear-gradient(145deg,#f2f6ff,#edf0fb);position:relative}
.contact-intro>img{width:140px;height:auto;display:block;margin-bottom:32px}.contact-eyebrow{display:block;color:#526e9e;font-size:12px;letter-spacing:1px;margin-bottom:15px}.contact-intro h2{font-size:34px;line-height:1.4;margin:0 0 20px;color:#172f55}.contact-intro>p{font-size:14px;line-height:2;color:#586d8e;max-width:410px}.contact-tags{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 36px}.contact-tags span{font-size:12px;color:#355f9e;background:#ffffffb0;border:1px solid #cedcf0;border-radius:20px;padding:5px 11px}.contact-intro .contact-company-name{font-size:13px;color:#3c557c;margin:0}
.contact-reach{padding:42px}.contact-reach h3{font-size:22px;margin:0 0 12px}.contact-reach>p{color:#6b7c96;font-size:13px;line-height:1.8}.contact-methods{display:flex;flex-wrap:wrap;gap:24px 38px;margin:26px 0}.contact-methods span{display:block;color:#6b7c96;font-size:12px;margin-bottom:8px}.contact-methods a,.contact-methods strong{font-size:20px;color:#1e4f9b;font-weight:600;white-space:nowrap}.contact-methods a:hover{color:#2863ec}.contact-codes{display:flex;gap:20px}.contact-codes figure{margin:0;padding:14px;border:1px solid #e0e7f3;border-radius:12px;background:#fafcff;text-align:center;flex:1;min-width:0}.contact-codes img{display:block;width:100%;max-width:160px;height:auto;aspect-ratio:1;margin:auto;background:#fff}.contact-codes figcaption{font-size:13px;color:#24446f;margin-top:12px}.contact-codes small{display:block;font-size:11px;color:#75859d;margin-top:5px}
@media(max-width:1100px){.contact-company{grid-template-columns:1fr}.contact-intro,.contact-reach{padding:30px}.contact-codes{max-width:420px}.contact-intro>p{max-width:650px}}
@media(max-width:480px){.contact-intro,.contact-reach{padding:24px 20px}.contact-intro h2{font-size:28px}.contact-codes{gap:12px}.contact-codes figure{padding:10px}.contact-methods{gap:20px}.contact-methods a,.contact-methods strong{font-size:19px}}

.profile-menu{position:relative}.topbar .profile-trigger{display:flex;align-items:center;gap:10px;border:1px solid transparent;background:transparent;padding:6px 8px;color:#607599;border-radius:10px;font-size:12px;transition:background .25s,border-color .25s,box-shadow .25s}.profile-menu.is-open .profile-trigger{background:#eef3ff;border-color:#dce6fc;box-shadow:0 4px 14px #2d5fc510}.profile-chevron{transition:transform .25s}.is-open .profile-chevron{transform:rotate(180deg)}.profile-dropdown{position:absolute;right:0;top:100%;padding:8px;width:168px;background:white;border:1px solid #e0e7f4;border-radius:12px;box-shadow:0 12px 32px #203c6724;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s;z-index:80}.is-open .profile-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.profile-dropdown a,.profile-dropdown button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:11px 12px;border-radius:7px;color:#27436d;font-size:13px;text-align:left;transition:background .2s,color .2s}.profile-dropdown a:hover,.profile-dropdown button:hover{background:#edf3ff;color:#245ed4}.profile-dropdown svg{width:17px;height:17px;flex-shrink:0}.topbar{position:relative;z-index:30}

.contact-home-link{display:inline-flex;align-items:center;gap:7px;margin-top:16px;color:#285ed2;font-size:13px;padding:4px 0;transition:color .25s}.contact-home-link span{transition:transform .25s}.contact-home-link:hover{color:#1748b3}.contact-home-link:hover span{transform:translate(2px,-2px)}

.shop-name .shop-created{display:block;color:#71819b;font-size:11px;line-height:1.6;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap}

.shop-filters .shop-type-label{white-space:nowrap;flex-shrink:0}.shop-filters>label{flex-shrink:0}

.balance-filter-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 24px;background:#f0f5ff;border-bottom:1px solid #dce7fa;color:#566e94;font-size:12px}.balance-filter-notice button{white-space:nowrap}

.balance-change{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.balance-change.is-credit{color:#087b54}.balance-change.is-debit{color:#c43c43}.balance-change.is-neutral{color:#66758d}td .balance-type{display:table;margin-top:6px;padding:2px 7px;border-radius:5px;font-size:11px;line-height:1.6}td .balance-type.is-credit{color:#087b54;background:#e9f7f0}td .balance-type.is-debit{color:#b4323a;background:#fceef0}td .balance-type.is-neutral{color:#66758d;background:#f0f3f8}

/* Alipay mode 4 renders a 232px QR at the iframe origin. Center that viewport. */
#payment-stage #cashier{width:232px;height:232px;max-width:100%;align-self:center;justify-self:center;line-height:0}
#payment-stage #cashier iframe{width:232px;height:232px;max-width:100%;margin:0;border:0;display:block}

/* Keep the signed 232px QR complete; hide the gateway's extra blank document area. */
#payment-stage #cashier{overflow:hidden;width:232px;height:232px;border-radius:0}
#payment-stage #cashier iframe{width:232px;height:300px;max-width:none;overflow:hidden}
#payment-stage #qr{overflow:hidden}

/* Auth cards keep a bounded height and center on tall desktop screens. */
@media(min-width:701px){
 .auth-wrap.auth-premium{height:clamp(640px,calc(100dvh - 32px),780px);min-height:0;max-height:780px;margin:max(16px,calc((100dvh - 780px)/2)) auto}
 body .auth-premium .auth-main{min-height:0;overflow-y:auto}
 .auth-premium .auth-side{min-height:0}
}

/* Shop rows: clear identity, restrained metadata and consistent actions. */
.shop-table td{padding:22px 24px;vertical-align:middle;transition:background-color .22s ease}
.shop-table tbody tr:hover td{background:#f7faff}
.shop-table .shop-name{max-width:none;min-width:220px;gap:14px}
.shop-table .shop-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(145deg,#edf3ff,#e2ebff);border:1px solid #d9e5fc;color:#3861a5}
.shop-table .shop-name strong{font-size:15px;line-height:1.5;color:#182d4c;font-weight:650}
.shop-table .shop-name .shop-domain{font-size:12px;color:#73829a;margin-top:6px}
.shop-table .shop-created{font-size:11px;color:#8491a5;margin-top:3px}
.shop-table td[data-label="套餐"] .tag{display:inline-flex;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}
.shop-table td[data-label="到期"]{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;color:#43546e}
.shop-table .actions{gap:8px;max-width:390px}
.shop-table .actions button,.shop-table .actions a{font-size:12px;line-height:20px;padding:8px 11px;border-radius:7px;min-height:36px;text-decoration:none;transition:background-color .22s ease,color .22s ease,border-color .22s ease}
.shop-table .actions button.link,.shop-table .actions a.link{color:#4167ab}
.shop-table .actions button.link:hover,.shop-table .actions a.link:hover{background:#eaf1ff;color:#245bd0}
.shop-table .actions button[data-act="shop-admin"]{background:#edf3ff;color:#285fc5}
@media(max-width:700px){.shop-table .shop-name{min-width:0}.shop-table td{padding:12px 18px}.shop-table .actions{max-width:none;gap:8px}.shop-table .actions button,.shop-table .actions a{min-height:40px}.shop-table .shop-created{white-space:normal}}
@media(prefers-reduced-motion:reduce){.shop-table td,.shop-table .actions button,.shop-table .actions a{transition:none}}

/* A unified action group, with the daily management entry emphasized. */
.shop-table .actions{gap:8px;max-width:440px}
.shop-table .actions button,.shop-table .actions a.link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border:1px solid #dce5f3;border-radius:8px;background:#fff;color:#476080;font-size:12px;font-weight:500;line-height:20px;white-space:nowrap;box-shadow:0 1px 2px #19365b04;transition:background-color .24s ease,border-color .24s ease,color .24s ease,box-shadow .24s ease}
.shop-table .actions button.link,.shop-table .actions a.link{color:#476080}
.shop-table .actions button:hover,.shop-table .actions a.link:hover{background:#f0f5ff;border-color:#adc5f1;color:#245bd0;box-shadow:0 2px 6px #245bd00c}
.shop-table .actions button[data-act="upgrade"],.shop-table .actions button[data-act="renew"]{background:#f3f7ff;border-color:#dce7fc;color:#315eac}
.shop-table .actions button[data-act="shop-admin"]{background:#2e5cdb;border-color:#2e5cdb;color:#fff;box-shadow:0 2px 5px #2e5cdb18}
.shop-table .actions button[data-act="shop-admin"]:hover{background:#244fc5;border-color:#244fc5;color:#fff;box-shadow:0 3px 9px #2e5cdb26}
.shop-table .actions button:active,.shop-table .actions a.link:active{box-shadow:none}
@media(max-width:700px){.shop-table .actions{max-width:none}.shop-table .actions button,.shop-table .actions a.link{min-height:40px}}
@media(prefers-reduced-motion:reduce){.shop-table .actions button,.shop-table .actions a.link{transition:none}}

/* Dialog rule: no visible scrollbars; retain touch/keyboard access on small screens. */
dialog,dialog *{scrollbar-width:none!important}
dialog::-webkit-scrollbar,dialog *::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
#dialog.renewal-review:not(.cashier-mode) .quote-grid{gap:18px;grid-template-columns:1.2fr 1fr}
#dialog.renewal-review:not(.cashier-mode) .order-package,#dialog.renewal-review:not(.cashier-mode) .order-bill{padding:16px 20px}
#dialog.renewal-review:not(.cashier-mode) .order-package h2{font-size:20px;margin:4px 0}
#dialog.renewal-review:not(.cashier-mode) .renewal-shop{margin:2px 0 8px;font-size:13px}
#dialog.renewal-review:not(.cashier-mode) .order-plan-price{margin:6px 0;font-size:24px}
#dialog.renewal-review:not(.cashier-mode) .order-plan-description{margin:4px 0;font-size:12px}
#dialog.renewal-review .renewal-dates{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0 8px}
#dialog.renewal-review .renewal-dates>div{padding:10px 0 0}
#dialog.renewal-review .renewal-dates dd{font-size:18px;margin:4px 0}
#dialog.renewal-review:not(.cashier-mode) .order-package>.hint{margin:8px 0 0;font-size:12px}
#dialog.renewal-review:not(.cashier-mode) #flow-status{margin:10px 0;padding:8px 12px;font-size:12px}
#dialog.renewal-review:not(.cashier-mode) #flow-channel{margin:10px 0 0}
#dialog.renewal-review:not(.cashier-mode) #flow-channel label{padding:8px 14px}
#dialog.renewal-review:not(.cashier-mode) #flow-meta{margin-top:8px}
#dialog.renewal-review:not(.cashier-mode) .stepper{margin-bottom:12px}
@media(max-width:700px){#dialog.renewal-review:not(.cashier-mode) .quote-grid{grid-template-columns:1fr;gap:10px}#dialog.renewal-review .renewal-dates{gap:10px}}

/* Domain setup uses short steps so DNS instructions fit without inner scroll panels. */
.domain-panel{max-width:660px;margin:auto}.domain-host{overflow-wrap:anywhere;margin:0 0 10px}.domain-dns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.domain-dns>div{padding:10px 14px;border:1px solid var(--border);border-radius:8px}.domain-dns dt{color:var(--muted);font-size:12px}.domain-dns dd{margin:4px 0 0;font-weight:600}.domain-dns .domain-value{grid-column:1/-1}.domain-value dd{display:flex;gap:8px;align-items:center}.domain-value input{font-family:monospace;font-size:13px}.domain-status{font-size:13px;background:var(--soft);padding:8px 12px;border-radius:8px;overflow-wrap:anywhere}.domain-panel .dialog-footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.shop-table .actions{flex-wrap:wrap}.shop-table .actions button[data-act="shop-domain"],.shop-table .actions button[data-act="shop-cf-purge"]{font-weight:500}.domain-panel .hint{margin:8px 0;font-size:13px}
@media(max-width:700px){.domain-dns{gap:8px}.domain-dns>div{padding:8px 10px}.domain-panel .dialog-footer button{padding:8px 12px}.domain-value dd{gap:6px}}

.domain-value button{flex-shrink:0;white-space:nowrap}

/* Three-step domain wizard, no inner scrolling. */
.domain-steps{display:flex;list-style:none;padding:0;margin:0 0 18px;gap:12px}.domain-steps li{flex:1;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;border-bottom:2px solid var(--border);padding-bottom:9px}.domain-steps li.reached{color:var(--blue);border-color:var(--blue)}.domain-steps li span{border-radius:50%;background:var(--soft);width:22px;height:22px;display:grid;place-items:center}.domain-records{border:1px solid var(--border);border-radius:8px;overflow:hidden}.domain-records table{table-layout:fixed}.domain-records th,.domain-records td{padding:10px 8px;font-size:12px;overflow-wrap:anywhere}.domain-records th{white-space:normal}.domain-records th:first-child{width:76px}.domain-records th:nth-child(2){width:66px}.domain-expected{display:flex;align-items:center;gap:6px;min-width:0}.domain-expected input{min-width:0;width:100%;font-size:12px;padding:6px;border:0;background:var(--bg)}.domain-expected button{flex-shrink:0;padding:5px 8px;font-size:12px}.domain-current small{display:block;font-size:11px}.domain-current.is-error,.domain-result.is-error{color:var(--red)}.domain-current.is-ok,.domain-result.is-ok{color:var(--green)}.domain-result{background:var(--soft);padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}.domain-result.is-error{background:#fff0f1}.domain-result p{margin:4px 0 0}#dialog:has(.domain-panel){max-height:none;overflow:visible}#dialog:has(.domain-panel) #dialog-body{overflow:visible}
@media(max-width:600px){.domain-steps{gap:6px;margin-bottom:10px}.domain-steps li{font-size:11px;gap:4px}.domain-records table,.domain-records tbody{display:block}.domain-records thead{display:none}.domain-records tr{display:grid;grid-template-columns:1fr 1fr;padding:6px 8px;gap:2px 8px}.domain-records tr+tr{border-top:1px solid var(--border)}.domain-records td{display:block;padding:2px 0;border:0}.domain-records td:nth-child(n+3){grid-column:1/-1}.domain-records td:before{content:attr(data-label) '：';color:var(--muted);font-size:11px}.domain-records td:last-child{display:flex;align-items:center}.domain-records td:last-child:before{flex-shrink:0}.domain-expected{flex:1}.domain-current small{display:inline;margin-left:8px}.domain-panel .hint{font-size:11px;line-height:1.5}.domain-result{font-size:12px;padding:8px}.domain-panel .field{margin-bottom:10px}}
/* Domain wizard retains its frame and action positions between all steps. */
#dialog:has(.domain-panel){width:min(760px,calc(100vw - 24px));height:560px;max-width:760px;display:flex;flex-direction:column}
#dialog:not([open]):has(.domain-panel){display:none}
#dialog:has(.domain-panel) #dialog-body{flex:1;min-height:0;position:relative;padding-bottom:82px}
.domain-panel .dialog-footer{position:absolute;bottom:24px;right:28px;left:28px;margin:0;flex-wrap:nowrap}
.domain-panel .dialog-footer button{min-width:94px;height:44px;white-space:nowrap}
#dialog:has(.domain-panel) #dialog-error{position:absolute;bottom:72px;left:0;right:0;margin-bottom:0;font-size:12px}
@media(max-width:600px){#dialog:has(.domain-panel){height:620px}.domain-panel .dialog-footer{bottom:18px;left:18px;right:18px;gap:6px}.domain-panel .dialog-footer button{min-width:80px;padding:8px 10px}}
/* Keep domain maintenance beside the domain, and daily shop actions together. */
.shop-table .shop-domain-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.shop-table .shop-domain-line .shop-domain{margin:0;font-size:12px;overflow-wrap:anywhere;min-width:0}
.shop-domain-tools{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}
.shop-domain-tools:empty{display:none}
.shop-domain-tools .domain-inline-action{border:0;background:transparent;box-shadow:none;padding:4px 6px;min-height:28px;font-size:12px;font-weight:500;line-height:20px;color:#4167ab;white-space:nowrap}
.shop-domain-tools .domain-inline-action:hover:not(:disabled){background:#eaf1ff;color:#245bd0}
.shop-domain-tools .domain-inline-action:disabled{color:#8491a5;opacity:.7}
.shop-table .shop-row-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:210px}
.shop-primary-actions,.shop-secondary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.shop-primary-actions{order:-1}
.shop-table .shop-secondary-actions button{border:0;background:transparent;box-shadow:none;color:#62738c;padding:2px 5px;min-height:28px}
.shop-table .shop-secondary-actions button:hover{background:#eaf1ff;box-shadow:none}
@media(max-width:760px){.shop-table .shop-row-actions{min-width:0}.shop-domain-tools .domain-inline-action{min-height:36px}.shop-table .shop-domain-line{gap:4px 8px}}
.domain-connection-status{list-style:none;padding:0;margin:12px 0;display:grid;gap:10px}
.domain-connection-status li{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:13px}
.domain-connection-status li>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#f0f3f8;flex-shrink:0}
.domain-connection-status strong{display:block;font-size:13px;font-weight:600}
.domain-connection-status small{display:block;font-size:12px;line-height:1.5}
.domain-connection-status .is-done{color:var(--green)}
.domain-connection-status .is-done>span{background:#eaf7f0}
.domain-connection-status .is-current{color:var(--blue)}
.domain-connection-status .is-current>span{background:var(--soft)}
/* Domain action help: HTML tooltips above the buttons, without layout movement. */
.domain-tip{position:relative;display:inline-flex;flex-shrink:0}
.domain-tip-content{position:absolute;bottom:calc(100% + 10px);left:0;z-index:30;width:min(280px,calc(100vw - 64px));padding:12px 14px;border-radius:8px;background:#182744;color:#fff;font-size:12px;font-weight:400;line-height:1.7;text-align:left;white-space:normal;overflow-wrap:anywhere;box-shadow:0 6px 20px #18274426;visibility:hidden;opacity:0;pointer-events:none}
.domain-tip-content:after{content:"";position:absolute;top:100%;left:32px;border:6px solid transparent;border-top-color:#182744}
.domain-tip-restore .domain-tip-content{left:auto;right:0}
.domain-tip-restore .domain-tip-content:after{left:auto;right:32px}
.domain-tip:hover>.domain-tip-content,.domain-tip:focus-within>.domain-tip-content{visibility:visible;opacity:1;pointer-events:auto}
.domain-tip-content:before{content:"";position:absolute;top:100%;height:12px;left:0;right:0}
@media(max-width:600px){.domain-tip-restore .domain-tip-content{right:-48px}.domain-tip-restore .domain-tip-content:after{right:80px}}

/* Stable package colors; unknown packages retain the neutral fallback. */
.tag.package-tag{background:#f0f3f8;color:#536176}
.tag.package-tag[data-package="basic"]{background:#eaf2ff;color:#2459b8}
.tag.package-tag[data-package="advanced"]{background:#e5f6fa;color:#126579}
.tag.package-tag[data-package="professional"]{background:#e8f6ef;color:#14734e}
.tag.package-tag[data-package="enterprise"]{background:#f1eafd;color:#7040ac}
.tag.package-tag[data-package="premium"]{background:#fff2db;color:#8a570a}
.tag.package-tag[data-package="ultimate"]{background:#fce9ef;color:#a32d55}

#dialog .hint.domain-dns-warning{color:#b48750;background:#fffaf2;border:1px solid #f5e9d6;border-radius:8px;padding:8px 12px;margin:10px 0 0;font-size:12px;line-height:1.7}

/* Replace inline action text visually with a centered spinner, keeping its layout. */
.shop-domain-tools .domain-inline-action:is([data-act="shop-domain"],[data-act="shop-cf-purge"]){position:relative;flex:none;padding:4px 6px;text-align:center}
.shop-domain-tools .domain-inline-action:is([data-act="shop-domain"],[data-act="shop-cf-purge"]).request-pending{color:transparent}
.shop-domain-tools .domain-inline-action:is([data-act="shop-domain"],[data-act="shop-cf-purge"])>.request-spinner{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;color:#4167ab}

.domain-upgrade-tip .domain-tip-content{left:50%;transform:translateX(-50%);width:240px}
.domain-upgrade-tip .domain-tip-content:after{left:50%;margin-left:-6px}
.domain-upgrade-tip>button:disabled{pointer-events:none}

.domain-action-tip .domain-tip-content{left:50%;transform:translateX(-50%);width:240px}
.domain-action-tip .domain-tip-content:after{left:50%;margin-left:-6px}

.shop-action-tip .domain-tip-content{left:auto;right:0;width:max-content;max-width:240px;padding:8px 12px;white-space:nowrap}
.shop-action-tip .domain-tip-content:after{left:auto;right:16px}

/* Secondary shop actions show hints below, clear of the primary action row. */
.shop-secondary-actions .shop-action-tip .domain-tip-content{top:calc(100% + 10px);bottom:auto}
.shop-secondary-actions .shop-action-tip .domain-tip-content:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#182744}
.shop-secondary-actions .shop-action-tip .domain-tip-content:before{top:auto;bottom:100%}

/* Shop rows flow with the page; tooltips must not create a nested scroll area. */
.table-wrap.shop-table-wrap{height:auto;max-height:none;overflow:visible}

/* Reserve the check icon slot so the label and button stay fixed during requests. */
.domain-panel button[data-act="domain-check"]{position:relative;padding-right:42px}
.domain-panel button[data-act="domain-check"]>.request-spinner{position:absolute;right:16px;top:50%;width:16px;height:16px;margin:-8px 0 0;color:#fff}

.domain-panel button[data-act="domain-check"]>.domain-check-countdown{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;line-height:16px;pointer-events:none}
.domain-panel button[data-act="domain-check"].request-pending>.domain-check-countdown{visibility:hidden}

/* Leave a clear gap above the fixed domain actions. */
.domain-panel .domain-records th,.domain-panel .domain-records td{padding-top:7px;padding-bottom:7px}
#dialog .hint.domain-dns-warning{font-size:12px;line-height:1.6;padding:7px 10px}

/* Match fixed action edges to the centered 660px domain content. */
#dialog:has(.domain-panel) #dialog-body{padding-left:28px;padding-right:28px}
.domain-panel .dialog-footer{left:max(28px,calc((100% - 660px)/2));right:max(28px,calc((100% - 660px)/2))}
@media(max-width:600px){#dialog:has(.domain-panel) #dialog-body{padding-left:18px;padding-right:18px}.domain-panel .dialog-footer{left:18px;right:18px}}

/* Round the white header itself without clipping domain tooltips. */
#dialog:has(.domain-panel)>.dialog-head{border-radius:13px 13px 0 0;background-clip:padding-box}

/* Align domain errors with the same centered content column as fields and actions. */
#dialog:has(.domain-panel) #dialog-error{left:50%;right:auto;transform:translateX(-50%);width:min(660px,calc(100% - 56px));box-sizing:border-box}
@media(max-width:600px){#dialog:has(.domain-panel) #dialog-error{width:calc(100% - 36px)}}

/* 账户中心用量：保持列表简洁，详情页展示完整容量。 */
.quota-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.quota-card{min-width:0;padding:22px;border:1px solid #e2e8f3;border-radius:12px;background:#fff}
.quota-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.quota-card-top h3{font-size:15px;margin:0}.quota-card-top>span{font-size:12px;color:#59708f}
.quota-value{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin:16px 0 14px;font-variant-numeric:tabular-nums}
.quota-value strong{font-size:30px;font-weight:650;line-height:1.2;color:#1d3153}.quota-value>span{color:#687b96;font-size:14px}
.quota-track{height:7px;border-radius:20px;overflow:hidden;background:#edf1f8}.quota-track>span{height:100%;display:block;background:#2a5de8;border-radius:inherit}
.quota-card.warning .quota-track>span{background:#cf8b21}.quota-card.danger .quota-track>span{background:#d34654}
.quota-card.warning .quota-card-top>span{color:#98641b}.quota-card.danger .quota-card-top>span{color:#b82e40}
.quota-card.unknown .quota-track{background:repeating-linear-gradient(135deg,#eef1f6,#eef1f6 7px,#f7f9fc 7px,#f7f9fc 14px)}
.quota-card p{margin:12px 0 0;color:#6d7f99;font-size:12px;line-height:1.7}
.quota-types{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:22px;padding-top:20px;border-top:1px solid #edf1f7}
.quota-types>div{display:flex;flex-direction:column;gap:7px;min-width:0}.quota-types>div>span{font-size:12px;color:#6d7f99}.quota-types strong{font-size:14px;font-weight:500;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.quota-types small{font-size:11px;font-weight:400;color:#6d7f99}.quota-note{margin-bottom:0}
@media(max-width:900px){.quota-types{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.quota-grid{grid-template-columns:1fr;gap:12px}.quota-card{padding:18px}.quota-panel>.row{align-items:flex-start;gap:8px}.quota-panel>.row>.muted{font-size:12px}.quota-types{gap:16px 12px}}

/* 各项额度统一展示，菜单项使用单组最高值。 */
.quota-all{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.quota-all .quota-card{padding:18px 20px}.quota-all .quota-value strong{font-size:24px}.quota-all .quota-card p{min-height:20px;margin-top:9px}.quota-all .quota-card-top{align-items:baseline}.quota-all .quota-card-top>span{white-space:nowrap}
@media(max-width:950px){.quota-all{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.quota-all{grid-template-columns:1fr}.quota-all .quota-card{padding:16px 18px}}

/* 店铺列表资源预警：只在接口返回超限提醒时出现。 */
.resource-warning{margin:0 0 22px;padding:22px 26px;border:1px solid #f1d49e;border-radius:14px;background:#fffaf0;color:#85530b}
.resource-warning-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.resource-warning-title>span{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:#f5dfb3;font-weight:700}
.resource-warning h2{margin:0 0 6px;font-size:17px;color:#754807}.resource-warning p{margin:0;font-size:13px;line-height:1.7}
.resource-warning-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-top:1px solid #f0dfc0}
.resource-warning-row>div:first-child{min-width:0;overflow-wrap:anywhere}.resource-warning-row strong{color:#593d14}.resource-warning-row .actions{flex-shrink:0}
.resource-warning .domain-tip-content{top:auto;bottom:calc(100% + 8px)}.resource-warning summary{cursor:pointer;padding-top:12px;font-size:13px;font-weight:600}
@media(max-width:600px){.resource-warning{padding:18px}.resource-warning-row{align-items:flex-start;flex-direction:column;gap:10px}.resource-warning-row .actions{flex-wrap:wrap}}

.resource-warning-shop-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:5px}.resource-warning-shop-heading .shop-type-badge{margin:0}.resource-warning .resource-warning-shop{margin-bottom:3px;color:#75634a}

.expiry-warning{background:#fff7f2;border-color:#f0c6ad;color:#924824}.expiry-warning h2,.expiry-warning .resource-warning-row strong{color:#813c1c}.expiry-warning .resource-warning-title>span{background:#f8dccb}.expiry-warning .resource-warning-row{border-top-color:#f0d8c9}

/* 邮件购买弹窗的提示框向内展开，避免被弹窗右边界裁切。 */
#dialog form[data-form="email-buy"] .domain-tip-content{left:auto;right:0;transform:none;width:min(260px,calc(100vw - 100px));max-width:none;white-space:normal}
#dialog form[data-form="email-buy"] .domain-tip-content:after{left:auto;right:24px;margin-left:0}

/* 邮件卡片的上方提示不受面板裁切，右侧对齐避免窄屏溢出。 */
.email-summary{overflow:visible}.email-summary>.domain-tip{margin-left:auto}.email-summary>.domain-tip>.domain-tip-content{left:auto;right:0}.email-summary>.domain-tip>.domain-tip-content:after{left:auto;right:24px}

#flow-buttons .domain-tip-content{left:auto;right:0;width:240px;white-space:normal}#flow-buttons .domain-tip-content:after{left:auto;right:24px}

/* 邮件购买内容较少，紧凑排版，避免套用套餐长列表造成弹窗滚动。 */
#dialog.email-checkout #dialog-body{overflow:visible}
@media(max-width:900px){
 #dialog.email-checkout .quote-grid{grid-template-columns:1fr;gap:10px}
 #dialog.email-checkout .order-package{padding:10px 14px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4px}
 #dialog.email-checkout .order-eyebrow{display:none}
 #dialog.email-checkout .order-package h2{margin:0;font-size:17px}
 #dialog.email-checkout .order-plan-price{font-size:22px;margin:0;text-align:right}
 #dialog.email-checkout .order-package>p:last-child{grid-column:1/-1;margin:0;font-size:12px}
 #dialog.email-checkout .order-bill{padding:10px 14px}
 #dialog.email-checkout .order-bill h3{margin:0 0 6px}
 #dialog.email-checkout .order-bill>div{margin:3px 0;padding:0}
 #dialog.email-checkout .order-bill .total{padding-top:6px;margin-top:6px}
 #dialog.email-checkout .order-bill-note{margin:4px 0 0}
 #dialog.email-checkout #flow-status{margin:10px 0;padding:8px 12px;font-size:12px}
 #dialog.email-checkout .stepper{margin:0 0 10px}
 #dialog.email-checkout .payment-methods{margin:8px 0;padding:0}
 #dialog.email-checkout .payment-methods legend{margin-bottom:6px}
 #dialog.email-checkout .channel label{padding:8px 10px;flex:1}
 #dialog.email-checkout #flow-meta{margin-top:6px;font-size:11px}
 #dialog.email-checkout #flow-orders{margin:4px 0;word-break:break-all;font-size:10px}
 #dialog.email-checkout.cashier-mode #flow-meta{display:none}
 #dialog.email-checkout.cashier-mode #payment-order-overview{margin:6px 0;padding:6px 10px;font-size:12px}
 #dialog.email-checkout.cashier-mode #flow-status{margin:6px 0}
}

@media(max-width:900px){#dialog.email-checkout .channel{display:grid;grid-template-columns:1fr 1fr;gap:8px}#dialog.email-checkout .channel label{min-width:0;gap:6px}#dialog.email-checkout .channel small{display:none}#dialog.email-checkout .channel .payment-mark{width:24px;height:24px}#dialog.email-checkout .channel input{flex:none}}

/* 记录卡片的提示可越过面板边界；仅表格自身保留横向滚动。 */
.email-records{overflow:visible}
.email-records>.panel-head{border-radius:14px 14px 0 0}
.email-records>.panel-head>.domain-tip>.domain-tip-content,.email-records .pagination>.domain-tip>.domain-tip-content{left:auto;right:0}
.email-records>.panel-head>.domain-tip>.domain-tip-content:after,.email-records .pagination>.domain-tip>.domain-tip-content:after{left:auto;right:24px}
@media(max-width:600px){.email-records>.panel-head>.row .domain-tip-content{width:220px}.email-records>.panel-head>.row>.domain-tip:last-child>.domain-tip-content{left:-90px}.email-records>.panel-head>.row>.domain-tip:last-child>.domain-tip-content:after{left:112px}}

#email-list[aria-busy="true"]{opacity:.55;pointer-events:none}

/* 低于100点提醒，不改变剩余点数的正常使用。 */
.email-summary.email-credit-low{background:#fffaf0;border-color:#f0d296}.email-credit-low .money{color:#a65c12}.email-summary .email-credit-warning{display:flex;align-items:center;gap:7px;color:#92540d;font-size:13px;font-weight:600;margin:6px 0 10px}.email-credit-warning>span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#fae3b4;flex-shrink:0}
/* 套餐原价只作展示，特价仍使用服务端 amount；咨询卡片不含可提交的套餐字段。 */
.plan-reference{display:flex;align-items:center;gap:6px;color:#6b7891;font-size:11px;line-height:1.5;margin:3px 0 5px}.plan-sale{padding:1px 5px;border-radius:4px;background:#edf1ff;color:#3158bc;font-size:10px;white-space:nowrap}.plan-monthly{font-size:11px;line-height:1.6;color:#61718c;margin:4px 0}.package-options .plan-reference{font-size:10px;flex-wrap:wrap;gap:4px}.package-options .plan .plan-monthly{font-size:10px;margin-top:3px}.package-options .plan>strong{margin-bottom:4px}.package-detail .plan-reference{margin:2px 0 3px}.package-detail .plan-monthly{margin-bottom:7px}.buyout-plan{background:#f2f6ff!important;border:1px dashed #a3b9e0!important;cursor:default!important;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.buyout-plan-desc{font-size:11px;line-height:1.5;color:#4e6488}.buyout-plan .muted{line-height:1.6}.buyout-contact{font-size:11px;color:#285acb;font-weight:600;line-height:1.7}.buyout-plan .domain-tip{margin-top:auto}.buyout-plan .domain-tip-content{width:240px;left:0}.buyout-plan .domain-tip-content:after{left:20px}.order-package .plan-reference{margin-top:8px}
@media(min-width:1001px) and (max-height:820px){.package-options .plan{padding:9px 10px}.package-options .plan .money.small{font-size:17px}.package-options .plan .muted{font-size:10px;line-height:1.5;margin-top:3px}.package-options .plan-reference{font-size:9px;margin:2px 0}.package-options .plan .plan-monthly{font-size:9px;margin:2px 0}.package-detail .plan-monthly{margin:2px 0 5px}}
.compact-plan-select{display:none}
@media(max-width:1000px){.compact-plan-select{display:block;font-size:12px;font-weight:600;margin-bottom:10px}.compact-plan-select select{display:block;width:100%;height:42px;margin-top:6px;font-size:12px;padding:6px 9px}.package-options .plans{display:block}.package-options .plans>label.plan{display:none}.package-options .buyout-plan{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:10px 12px}.buyout-plan>strong{margin:0!important}.buyout-plan-desc{grid-column:1;font-size:10px}.package-options .buyout-plan>.muted{display:none}.buyout-plan>.domain-tip{grid-column:2;grid-row:1/3;align-self:center;margin:0}.buyout-plan .domain-tip-content{left:auto;right:0}.buyout-plan .domain-tip-content:after{left:auto;right:20px}.package-options .hint{margin:7px 0 0;font-size:11px}.package-picker{gap:10px}.package-detail{padding:12px 14px}.package-detail .details{gap:4px 12px}.package-detail .details div{padding-bottom:3px}.package-rule{font-size:11px;line-height:1.6;margin-top:8px}.package-scope{font-size:10px;margin-top:5px}.package-description{margin-bottom:6px;font-size:11px}.package-detail .plan-monthly{font-size:10px;margin:2px 0 5px}.package-detail .plan-reference{font-size:10px}.create-fields .field{margin-bottom:10px}.create-fields .shop-type-field{margin-bottom:10px}.package-picker-mode .create-fields .shop-type-option{padding:9px}.package-picker-mode .create-fields input[name="shop_name"]{height:38px}.package-options legend{margin-bottom:8px}.package-detail h3{font-size:14px}.package-detail h3>span{font-size:11px}}
.package-options .plans{margin:8px 0 10px}
@media(max-width:700px){.package-picker-mode .create-fields{gap:8px;margin-bottom:10px}.package-picker-mode .shop-type-options{grid-template-columns:1fr 1fr;gap:8px}.package-picker-mode .shop-type-option small{font-size:10px;line-height:1.5}.package-picker-mode .shop-type-option strong{font-size:11px}.package-picker-mode .shop-type-option input{margin-top:2px}.package-picker-mode .shop-type-field{margin-bottom:0}.package-picker-mode .shop-type-field legend{font-size:12px}.package-picker-mode .field{font-size:12px}.package-picker-mode .package-detail .package-scope{display:none}}
.plan-detail-view-button{display:none}
@media(max-width:1000px){.package-picker-mode .package-picker{grid-template-columns:1fr;gap:10px}.package-detail .details,.package-detail .package-rule{display:none}.package-detail .plan-detail-view-button{display:inline-flex;grid-row:2;margin-top:8px}.plan-detail-view-button button{padding:5px 10px;font-size:11px;min-height:30px}.package-picker-mode.compact-details .create-fields,.package-picker-mode.compact-details .package-options,.package-picker-mode.compact-details #transaction-actions{display:none}.package-picker-mode.compact-details .package-detail .details{display:grid}.package-picker-mode.compact-details .package-detail .package-rule{display:block}.package-picker-mode .package-detail{padding:12px 14px}.package-picker-mode .package-detail .package-scope{display:none}.package-picker-mode .package-detail-panel{min-height:0}.package-picker-mode .package-detail .package-description{margin:0}.package-picker-mode .package-detail h3{margin-bottom:2px}.package-picker-mode .package-options .hint{margin:5px 0 0}}
@media(max-width:1000px){.package-picker-mode:not(.compact-details) .package-detail .package-description{display:none}.compact-plan-select select{margin-top:0}}

/* 邮件记录按钮原位加载，spinner 不参与布局。 */
.email-records [data-email-inline] button{position:relative}.email-records [data-email-inline] button.request-pending{color:transparent}.email-records [data-email-inline] button>.request-spinner{position:absolute;left:50%;top:50%;margin:-8px 0 0 -8px;color:#315de4}.email-records [data-email-inline] button.primary>.request-spinner{color:white}.email-status-hidden{visibility:hidden;pointer-events:none}.email-summary .email-credit-warning[hidden]{display:none}

/* 店铺翻页栏保持在列表底部，短页也填满当前可见区域。 */
#shop-list{display:flex;flex-direction:column;overflow-anchor:none}#shop-list>.pagination{margin-top:auto}#shop-list>.pagination button{position:relative}#shop-list>.pagination button.request-pending{color:transparent}#shop-list>.pagination button>.request-spinner{position:absolute;left:50%;top:50%;margin:-8px 0 0 -8px;color:#315de4}

/* 刷新店铺时保留原内容，按钮加载图标不撑动布局。 */
.shop-warning-slot{display:contents}[data-shop-inline] button{position:relative}[data-shop-inline] button.request-pending{color:transparent}[data-shop-inline] button>.request-spinner{position:absolute;left:50%;top:50%;margin:-8px 0 0 -8px;color:#315de4}

/* 修改密码：表单与安全说明分区，保持账户中心的蓝白视觉。 */
.password-settings{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);max-width:1000px;align-items:stretch;gap:24px}.password-form-panel{padding:32px;box-shadow:0 6px 26px #21457506}.password-form-heading{display:flex;gap:16px;align-items:center;padding-bottom:26px;margin-bottom:28px;border-bottom:1px solid #edf1f8}.password-heading-icon{display:grid;place-items:center;flex:0 0 52px;height:52px;background:#edf2ff;border:1px solid #dce6ff;border-radius:15px;color:#315de4}.password-heading-icon svg{width:24px;height:24px}.password-eyebrow{color:#6b7f9c;font-size:12px;letter-spacing:1px}.password-form-heading h2{font-size:20px;margin:6px 0 8px}.password-form-heading p{font-size:13px;color:#6b7d96;margin:0}.password-setting-field{margin:0 0 24px}.password-setting-field>label{display:block;margin-bottom:10px;font-weight:600;font-size:13px}.password-setting-input{position:relative}.password-setting-input input{height:52px;padding:12px 52px 12px 15px;background:#fcfdff;transition:border-color .15s,box-shadow .15s}.password-setting-input input:focus{background:white;outline:none;border-color:#4164e8;box-shadow:0 0 0 3px #4164e810}.password-setting-input>.domain-tip{position:absolute;right:7px;top:7px}.password-visibility{display:grid;place-items:center;width:38px;height:38px;padding:8px;border:0;background:transparent;color:#6e83a1;box-shadow:none}.password-visibility:hover{color:#315de4;background:#edf2ff}.password-visibility svg{width:20px;height:20px}.password-length-note{display:flex;align-items:center;gap:7px;font-size:12px;color:#697d96;line-height:1.8;margin:0 0 26px}.password-length-note svg{width:15px;height:15px}.password-save{padding-top:24px;border-top:1px solid #edf1f8;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.password-save-button{padding:13px 25px;position:relative}.password-save-button.request-pending{color:transparent}.password-save-button>.request-spinner{position:absolute;left:50%;top:50%;margin:-8px 0 0 -8px;color:white}.password-save>span:last-child{font-size:12px;color:#7789a1}.password-security-note{padding:32px;border-radius:16px;background:linear-gradient(150deg,#eef3ff,#f7faff 60%,#eef8f7);border:1px solid #e0e9f6;min-width:0}.password-security-art{height:136px;max-width:220px;margin:0 auto 25px;position:relative;display:grid;place-items:center}.password-art-orbit{position:absolute;width:132px;height:132px;border:1px solid #ceddfb;border-radius:50%;background:#ffffff50}.password-art-orbit:before{content:'';position:absolute;inset:13px;border:1px dashed #c4d7f7;border-radius:50%}.password-art-lock{position:relative;display:grid;place-items:center;width:82px;height:82px;border-radius:23px;background:white;box-shadow:0 12px 30px #315de414;color:#315de4;border:1px solid #dfe8fb}.password-art-lock svg{width:36px;height:36px}.password-art-check{position:absolute;left:calc(50% + 20px);top:85px;width:28px;height:28px;display:grid;place-items:center;border:4px solid #f3f7ff;border-radius:50%;background:#26977d;color:white;font-size:14px}.password-security-note h2{font-size:23px;line-height:1.5;margin:10px 0}.password-security-note>p{font-size:14px;line-height:1.9;color:#6b7f9b;margin:0}.password-security-note ul{list-style:none;padding:0;margin:28px 0 24px;display:grid;gap:20px}.password-security-note li{display:flex;gap:10px;align-items:flex-start}.password-security-note li>span{color:#287f70;background:#e1f2ec;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;flex-shrink:0;font-size:12px}.password-security-note li strong{font-size:13px;font-weight:600}.password-security-note li p{font-size:12px;color:#6b7f9b;margin:6px 0 0;line-height:1.7}.password-signin-note{font-size:12px;color:#657e9f;line-height:1.8;border-top:1px solid #dbe6f4;padding-top:20px}@media(max-width:1100px){.password-settings{gap:18px;grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr)}.password-form-panel,.password-security-note{padding:26px}}@media(max-width:850px){.password-settings{grid-template-columns:1fr;max-width:640px}.password-security-art{display:none}.password-security-note ul{margin-top:22px}.password-security-note>p br{display:none}}@media(max-width:500px){.password-form-panel,.password-security-note{padding:22px}.password-form-heading{gap:12px;margin-bottom:24px;padding-bottom:24px}.password-heading-icon{flex-basis:44px;height:44px;border-radius:12px}.password-form-heading h2{font-size:18px}.password-setting-field{margin-bottom:22px}.password-save{display:block}.password-save>.domain-tip{display:flex}.password-save-button{width:100%}.password-save>span:last-child{display:block;text-align:center;margin-top:12px}.password-security-note h2{font-size:21px}}

/* 退出确认：紧凑弹窗与清晰的账户保留说明。 */
#dialog.logout-confirm{width:460px;max-width:calc(100vw - 32px);border-radius:18px;overflow:visible}#dialog.logout-confirm .dialog-head{padding:20px 26px 12px;border-bottom:0}#dialog.logout-confirm .dialog-head h2{font-size:15px;color:#657a96;font-weight:500}#dialog.logout-confirm #dialog-body{padding:8px 26px 26px;overflow:visible;max-height:none}.logout-confirm-content{text-align:center}.logout-confirm-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:linear-gradient(145deg,#edf2ff,#e6edff);color:#315de4;border:1px solid #dce5ff;margin:0 auto 20px}.logout-confirm-icon svg{width:29px;height:29px}.logout-confirm-content h3{font-size:22px;margin:0 0 12px;line-height:1.4}.logout-confirm-content>p{font-size:13px;color:#6b7d96;line-height:1.8;margin:0}.logout-current-account{display:flex;justify-content:center;gap:12px;align-items:center;font-size:12px;color:#7688a1;margin:20px 0}.logout-current-account strong{font-size:13px;font-weight:500;color:#365371}.logout-preserve{display:flex;align-items:center;justify-content:center;gap:9px;background:#f4f8fc;padding:13px 12px;border-radius:9px;color:#59728e;font-size:12px;line-height:1.7;margin-top:20px}.logout-preserve svg{width:18px;height:18px;color:#6587b4;flex-shrink:0}.logout-confirm-actions{display:flex;gap:12px;margin-top:26px;padding-top:0;border-top:0}.logout-confirm-actions>.domain-tip{flex:1;min-width:0}.logout-confirm-actions button{width:100%;position:relative;min-height:46px}.logout-confirm-actions button[data-act="confirm-logout"].request-pending{color:transparent}.logout-confirm-actions button>.request-spinner{position:absolute;left:50%;top:50%;margin:-8px 0 0 -8px;color:white}#dialog.logout-confirm #dialog-error{font-size:12px;line-height:1.7;margin:0 26px 22px}@media(max-width:500px){#dialog.logout-confirm .dialog-head{padding:18px 22px 10px}#dialog.logout-confirm #dialog-body{padding:8px 22px 24px}.logout-confirm-content h3{font-size:20px}.logout-confirm-icon{width:58px;height:58px;border-radius:17px}.logout-preserve{padding:12px 8px;gap:7px}.logout-confirm-actions{margin-top:22px;gap:10px}.logout-confirm-actions button{padding:11px 8px}}

#dialog.logout-confirm .dialog-head{border-radius:18px 18px 0 0}

/* Keep financial and mail columns readable on phones; scroll the table, not the page. */
#balance-log-list table{min-width:760px}
.email-send-table{min-width:1000px}
.email-send-table th:first-child{width:180px}
.email-send-table th:nth-child(2){width:240px}
.email-send-table th:nth-child(4){width:190px}
.email-credit-table{min-width:720px}
.email-records .table-wrap td{vertical-align:top}
/* 人机验证容器预留高度，加载、成功和刷新状态不撑动表单。 */
/* SaaS: request verification only when the user asks for an SMS. */
.human-on-demand .sms-tip{flex-shrink:0}
.human-on-demand #send-sms{width:124px;min-width:124px;flex-shrink:0;white-space:nowrap}
#dialog.human-verification{width:420px;max-width:calc(100vw - 32px);max-height:none;overflow:visible}
#dialog.human-verification .dialog-head{padding:20px 24px}
#dialog.human-verification #dialog-body{padding:20px 24px;overflow:visible}
.human-intro p{margin:0 0 20px;font-size:13px;line-height:1.8;color:var(--muted)}
#human-widget{min-height:65px;width:100%;display:flex;justify-content:center}
#human-status{font-size:12px;line-height:1.7;min-height:41px;margin:14px 0 0;color:var(--muted)}
#dialog.human-verification .dialog-footer{margin-top:16px;display:flex;justify-content:flex-end;gap:16px;align-items:center}
#dialog.human-verification .domain-tip{overflow:visible}
#human-retry{min-width:80px;white-space:nowrap}
@media(max-width:380px){#dialog.human-verification .dialog-head{padding:16px}#dialog.human-verification #dialog-body{padding:16px}#human-widget{min-height:140px}}
