
/* Main action paint comes from the original view reset, independent of layout. */
:root{
  --primary-action-background:linear-gradient(135deg,#0a84ff,#006fe6);
  --primary-action-hover-background:linear-gradient(135deg,#2997ff,#0077ed);
  --primary-action-shadow:0 7px 18px rgba(0,122,255,.24),inset 0 1px 0 rgba(255,255,255,.22);
  --primary-action-hover-shadow:0 9px 22px rgba(0,122,255,.28),inset 0 1px 0 rgba(255,255,255,.24);
  --primary-action-active-shadow:0 4px 11px rgba(0,122,255,.20);
  --primary-action-radius:14px;--primary-action-ink:#fff;--primary-action-border:transparent;
  --primary-action-transform:none;--primary-action-hover-transform:none;--primary-action-active-transform:none;--primary-action-transition:none;
  --workspace-shared-header-height:60px;--workspace-shared-header-line:1px;
  --workspace-shared-close-size:44px;--workspace-shared-close-dot:18px;--workspace-shared-action-inset:8px;
  --workspace-shared-close-top:calc((var(--workspace-shared-header-height) - var(--workspace-shared-header-line) - var(--workspace-shared-close-size))/2);
}
@media(prefers-reduced-motion:no-preference){:root{--primary-action-transition:background 110ms ease,box-shadow 110ms ease,transform 110ms ease;--primary-action-hover-transform:translateY(-1px);--primary-action-active-transform:scale(.985);}}
/* State variables let existing component owners share paint even where legacy
   panel rules retain important declarations; neutral controls consume none. */
@media(hover:hover){:is(button.primary,a.primary,button.nav-primary,a.nav-primary,button.apply-btn,button.rebuild-board-btn,button.board-e-apply,button.qmc-apply,button.view-menu-reset,button.subscription-plan-action,button.frame-board-generate,#exit-presentation,.manual-price-actions button[type="submit"],button[data-password-ready=true]):not(.danger):hover:not(:disabled):not(.disabled){--primary-action-background:var(--primary-action-hover-background);--primary-action-shadow:var(--primary-action-hover-shadow);--primary-action-transform:var(--primary-action-hover-transform);}}
:is(button.primary,a.primary,button.nav-primary,a.nav-primary,button.apply-btn,button.rebuild-board-btn,button.board-e-apply,button.qmc-apply,button.view-menu-reset,button.subscription-plan-action,button.frame-board-generate,#exit-presentation,.manual-price-actions button[type="submit"],button[data-password-ready=true]):not(.danger):active:not(:disabled):not(.disabled){--primary-action-shadow:var(--primary-action-active-shadow);--primary-action-transform:var(--primary-action-active-transform);}
/* Website palette. Namespaced tokens are safe to share with editor dialogs. */
:root{
  --site-bg:#f6f5f8;--site-surface:#fff;--site-soft:#f0eef5;--site-text:#24212b;--site-muted:#665f72;
  --site-line:#dedbe5;--site-accent:#6336df;--site-action:#6336df;--site-accent-hover:#5128c5;--site-accent-soft:#eee8ff;
  --site-danger:#b52d39;--site-success:#187449;--site-warning:#805713;--site-warning-bg:#fff6df;--site-warning-line:#e6d2a2;
  --site-shadow:0 16px 48px rgba(30,22,49,.12);--site-focus:#147df5;--site-header:rgba(255,255,255,.97);
  --site-header-height:56px;--site-note-height:0px;--site-font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
html[data-theme=dark]{
  --site-bg:#18171c;--site-surface:#242229;--site-soft:#302d38;--site-text:#f3f0f8;--site-muted:#b8b1c5;
  --site-line:#45404f;--site-accent:#c4b1ff;--site-action:#7142db;--site-accent-hover:#6134c5;--site-accent-soft:#382b54;
  --site-danger:#ff929d;--site-success:#79d5a9;--site-warning:#edcc88;--site-warning-bg:#342b1e;--site-warning-line:#675235;
  --site-shadow:0 20px 56px rgba(0,0,0,.3);--site-focus:#77b6ff;--site-header:rgba(36,34,41,.97);
}
html:has(body.site-page){background:var(--site-bg);color-scheme:light}
html[data-theme=dark]:has(body.site-page){color-scheme:dark}
body.site-page{
  --bg:var(--site-bg);--bg-strong:var(--site-soft);--surface:var(--site-surface);--surface-solid:var(--site-surface);--surface-muted:var(--site-soft);
  --text:var(--site-text);--ink:var(--site-text);--muted:var(--site-muted);--line:var(--site-line);--soft:var(--site-soft);
  --blue:var(--site-action);--blue-strong:var(--site-accent);--blue-soft:var(--site-accent-soft);--red:var(--site-danger);--green:var(--site-success);--amber:var(--site-warning);
  margin:0;background:var(--site-bg);color:var(--site-text);font-family:var(--site-font);-webkit-font-smoothing:antialiased;
}
/* The editor's original wordmark is the single brand paint owner on product pages. */
.brand{display:flex;align-items:center;min-height:44px;flex:none;white-space:nowrap;text-decoration:none;}
.site-page a.brand,.site-page a.brand:hover{text-decoration:none;}
.brand-wordmark{display:flex;align-items:center;height:36px;font:700 18px/1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:-.3px;white-space:nowrap;background:linear-gradient(135deg,#60a5ff,#7f53ac);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#6d7fd4;}
@media(min-width:1081px) and (max-width:1400px){.brand-wordmark{font-size:17px;}}
@media(forced-colors:active){.brand-wordmark{background:none;-webkit-text-fill-color:LinkText;color:LinkText;}}
body.site-page *,body.site-page *::before,body.site-page *::after{box-sizing:border-box}
body.site-page :is(button,input,select,textarea){font-family:inherit}
body.site-page [hidden],.subscription-dialog [hidden],.subscription-plan [hidden]{display:none}
:focus,:focus-visible{outline:none}
body.site-page input,body.site-page textarea{caret-color:var(--site-accent)}
body.site-page input::placeholder,body.site-page textarea::placeholder{color:var(--site-muted);opacity:1}
body.site-page ::selection,.subscription-dialog ::selection{background:var(--site-accent-soft);color:var(--site-text)}
body.site-page{scrollbar-color:var(--site-muted) var(--site-bg);scrollbar-width:thin}
body.site-page :is(.primary,.nav-primary),.subscription-dialog .primary{border:1px solid var(--primary-action-border);min-height:40px;padding:8px 12px;font:inherit;cursor:pointer;border-color:var(--primary-action-border);border-radius:var(--primary-action-radius);background:var(--primary-action-background);color:var(--primary-action-ink);box-shadow:var(--primary-action-shadow);transition:var(--primary-action-transition);transform:var(--primary-action-transform);}
@media(hover:hover){body.site-page :is(.primary,.nav-primary):hover:not(:disabled),.subscription-dialog .primary:hover:not(:disabled){background:var(--primary-action-hover-background);border-color:var(--primary-action-border);color:var(--primary-action-ink);box-shadow:var(--primary-action-hover-shadow);transform:var(--primary-action-transform);}}
body.site-page :is(.primary,.nav-primary):active:not(:disabled),.subscription-dialog .primary:active:not(:disabled){background:var(--primary-action-background);box-shadow:var(--primary-action-active-shadow);transform:var(--primary-action-active-transform);}
body.site-page :is(button,.button):disabled{opacity:.5;cursor:default;transform:none}
html:has(body[data-fixed-header]){scroll-padding-top:calc(var(--site-header-height) + var(--site-note-height) + 16px)}
body[data-fixed-header]{padding-top:calc(var(--site-header-height) + var(--site-note-height))}
body>header.site-header{position:fixed;inset:0 0 auto;z-index:60;min-height:56px;padding:0 24px;border:0;border-bottom:1px solid var(--site-line);border-radius:0;background:var(--site-header);color:var(--site-text);box-shadow:none}
body>header.site-header :is(.nav,.app-nav-inner,.site-header-inner){width:100%;max-width:1280px;min-height:56px;height:auto;margin:0 auto;padding:4px 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
body>header.site-header .site-header-inner>nav{margin-inline-start:auto;}
body>header.site-header .nav-links{flex-wrap:wrap;justify-content:flex-end}
body[data-fixed-header] :is(.side-card,[id]){scroll-margin-top:calc(var(--site-header-height) + var(--site-note-height) + 16px)}
body[data-fixed-header] .side-card{top:calc(var(--site-header-height) + var(--site-note-height) + 16px)}
body[data-fixed-header] .layout{min-height:calc(100vh - var(--site-header-height) - var(--site-note-height))}
#trial-watermark{position:fixed;inset:var(--app-header-height,56px) 0 0;pointer-events:none;z-index:145;background-repeat:repeat;background-size:520px 580px}
#local-site-announcements{position:fixed;top:calc(var(--editor-toolbar-bottom,60px) + 8px);left:50%;transform:translateX(-50%);z-index:165;max-width:min(640px,calc(100vw - 24px));padding:12px 16px;background:var(--site-warning-bg);color:var(--site-warning);border:1px solid var(--site-warning-line);border-radius:12px;font:13px/1.6 var(--site-font)}
#local-site-announcements p{margin:0 0 8px;white-space:pre-wrap}#local-site-announcements button{border:0;background:transparent;color:var(--site-accent);cursor:pointer}
/* One shared website theme action; the editor retains its own radio control. */
/* Shared website switch: 44px hit area, two stable icon positions, one moving thumb. */
body>header.site-header .site-theme-toggle{position:relative;display:block;flex:0 0 80px;box-sizing:border-box;width:80px;min-width:80px;max-width:80px;height:44px;min-height:44px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--site-muted);box-shadow:none;transform:none;cursor:pointer;touch-action:manipulation;}
body>header.site-header .site-theme-toggle::before{content:"";position:absolute;inset:5px 0;border:1px solid var(--site-line);border-radius:999px;background:var(--site-soft);}
body>header.site-header .site-theme-slider{position:absolute;left:4px;top:8px;width:34px;height:28px;border-radius:999px;background:var(--site-surface);box-shadow:none;transform:translateX(0);}
body>header.site-header .site-theme-toggle[aria-checked=true] .site-theme-slider{transform:translateX(38px);}
body>header.site-header .site-theme-position{position:absolute;top:0;display:grid;place-items:center;width:38px;height:44px;}
body>header.site-header .site-theme-sun{left:2px;}body>header.site-header .site-theme-moon{right:2px;}
body>header.site-header .site-theme-toggle svg{display:block;width:18px;height:18px;pointer-events:none;}
body>header.site-header .site-theme-toggle[aria-checked=false] .site-theme-sun,body>header.site-header .site-theme-toggle[aria-checked=true] .site-theme-moon{color:var(--site-text);}
@media(hover:hover) and (pointer:fine){body>header.site-header .site-theme-toggle:hover::before{border-color:var(--site-accent);}}
body>header.site-header .site-theme-toggle:focus-visible{outline:2px solid var(--site-focus);outline-offset:3px;}
@media(prefers-reduced-motion:no-preference){body>header.site-header .site-theme-slider{transition:transform 220ms cubic-bezier(.16,1,.3,1);}}
@media(forced-colors:active){body>header.site-header .site-theme-slider{background:Canvas;border:1px solid Highlight;box-shadow:none;}body>header.site-header .site-theme-toggle::before{border-color:ButtonText;}}
/* Shared subscription component: website pages and editor modal. */
/* Card appearance from the user-selected reference; content and primary actions retain their owners. */
.subscription-plans{--plan-surface:linear-gradient(165deg,#f0f6ff,#f2edff);--plan-line:rgba(20,30,60,.09);--plan-free-surface:#e9ecf2;--plan-free-line:rgba(20,30,60,.09);--plan-free-check:#9aa0ac;--plan-hot-bg:linear-gradient(165deg,#e0ecff,#e9ddff);--plan-hot-line:rgba(80,120,230,.45);--plan-hot-shadow:0 24px 60px rgba(60,100,220,.18),inset 0 1px 0 rgba(255,255,255,.9);--plan-hot-title:linear-gradient(90deg,#2563eb,#7c3aed);}
html[data-theme=dark] .subscription-plans{--plan-surface:linear-gradient(165deg,#202c48,#302443);--plan-line:rgba(255,255,255,.11);--plan-free-surface:rgba(255,255,255,.028);--plan-free-line:rgba(255,255,255,.08);--plan-free-check:rgba(255,255,255,.42);--plan-hot-bg:linear-gradient(165deg,#263b63,#442e61);--plan-hot-line:rgba(130,160,255,.5);--plan-hot-shadow:0 28px 70px rgba(59,100,246,.30),inset 0 1px 0 rgba(255,255,255,.18);--plan-hot-title:linear-gradient(90deg,#93c5fd,#c4b5fd);}
.subscription-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0;padding:12px 8px;align-items:stretch;text-align:left}
/* Deeply inset actions use a smaller corner without changing the confirmed card spacing. */
.subscription-plan{--plan-action-radius:8px;--primary-action-radius:var(--plan-action-radius);position:relative;min-width:0;display:flex;flex-direction:column;gap:16px;padding:24px 22px;border:1px solid var(--plan-rest-line,var(--plan-line));border-radius:24px;background:var(--plan-rest-bg,var(--plan-surface));color:var(--site-text);font:14px/1.6 var(--site-font);backdrop-filter:blur(26px) saturate(1.5);-webkit-backdrop-filter:blur(26px) saturate(1.5)}
.subscription-plan[data-plan=free]{--plan-rest-bg:var(--plan-free-surface);--plan-rest-line:var(--plan-free-line);}
.subscription-plan[data-plan=free] .subscription-features li:not(.is-limited) .feature-icon{stroke:var(--plan-free-check);}
.subscription-plan :is(h3,p){margin:0}.subscription-plans .subscription-plan h3{font-size:17px;font-weight:650;line-height:1.4}
.subscription-plan-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:26px}
.plan-badge{padding:3px 7px;border-radius:8px;background:var(--site-accent-soft);color:var(--site-accent);font-size:11px;line-height:1.5;white-space:nowrap}
.subscription-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px;font-variant-numeric:tabular-nums;min-height:56px}
.subscription-price .currency{font-size:20px;font-weight:550}.subscription-price .amount,.subscription-plan>strong{font-size:44px;font-weight:650;line-height:1.15;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.subscription-price .period{font-size:12px;color:var(--site-muted);margin-left:4px}
.subscription-description{font-size:13px;color:var(--site-muted);min-height:42px}
.subscription-features{display:grid;gap:13px;list-style:none;padding:18px 0 0;margin:0 0 8px;border-top:1px solid var(--site-line)}
.subscription-features li{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.subscription-features .feature-icon{display:block;width:17px;height:17px;flex:0 0 17px;margin-top:2px;fill:none;stroke:var(--site-accent);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.subscription-features li.is-limited{color:var(--site-muted)}.subscription-features li.is-limited .feature-icon{stroke:var(--site-muted)}
.subscription-plans .subscription-plan button{margin-top:auto;min-height:44px;width:100%;padding:10px 12px;border-radius:var(--plan-action-radius);border:1px solid var(--site-line);background:var(--site-soft);color:var(--site-text);cursor:pointer;font:600 13px/1.5 var(--site-font)}
.subscription-plan button:hover:not(:disabled){background:var(--site-accent-soft);border-color:var(--site-accent);color:var(--site-accent)}
.subscription-plan[data-plan]:not([data-plan=free]) .subscription-plan-action{border-color:var(--primary-action-border);border-radius:var(--primary-action-radius);background:var(--primary-action-background);color:var(--primary-action-ink);box-shadow:var(--primary-action-shadow);transition:var(--primary-action-transition);transform:var(--primary-action-transform);}
.subscription-plan[data-plan]:not([data-plan=free]) .subscription-plan-action:hover:not(:disabled){background:var(--primary-action-hover-background);border-color:var(--primary-action-border);color:var(--primary-action-ink);box-shadow:var(--primary-action-hover-shadow);transform:var(--primary-action-transform);}
.subscription-plan button:disabled{opacity:.5;cursor:default}.subscription-plan-footnote{margin:0;min-height:3.2em;font-size:11px;line-height:1.6;color:var(--site-muted)}
.subscription-plan [data-plan-expiry][aria-hidden=true]{visibility:hidden}
.subscription-plan.is-current{border-color:var(--site-accent)}
.subscription-note{color:var(--site-muted);font-size:13px;line-height:1.75;max-width:72ch}

.subscription-dialog{position:fixed;inset:0;margin:auto;box-sizing:border-box;height:fit-content;min-width:0;width:min(1120px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:hidden;padding:calc(var(--workspace-shared-close-top) + var(--workspace-shared-close-size) + 8px) 0 0;border:1px solid var(--site-line);border-radius:24px;background:var(--site-surface);color:var(--site-text);box-shadow:var(--site-shadow);font:14px/1.6 var(--site-font);color-scheme:light;scrollbar-color:var(--site-muted) var(--site-surface);scrollbar-width:thin}
.subscription-dialog-body{box-sizing:border-box;max-height:calc(100dvh - 48px - var(--workspace-shared-close-top) - var(--workspace-shared-close-size) - 8px);margin:0 8px 14px;padding:0 20px 12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b9bdc5 transparent;}
html[data-theme=dark] .subscription-dialog-body{scrollbar-color:#777d89 transparent;}
.subscription-dialog-body::-webkit-scrollbar{width:8px;}
.subscription-dialog-body::-webkit-scrollbar-track{background:transparent;margin-block:6px;}
.subscription-dialog-body::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#b9bdc5;background-clip:padding-box;}
html[data-theme=dark] .subscription-dialog-body::-webkit-scrollbar-thumb{background-color:#777d89;}
/* Compact only the plan chooser. Checkout, upgrade and order details retain their content layout. */
.subscription-dialog[data-stage=plans] h2{margin:0 0 8px;padding-inline-end:32px;}
.subscription-dialog[data-stage=plans] .subscription-plans{margin:0;padding-block:12px;}
.subscription-dialog[data-stage=plans] .subscription-plan{gap:6px;padding:14px 18px;}
.subscription-dialog[data-stage=plans] .subscription-price{min-height:0;}
.subscription-dialog[data-stage=plans] .subscription-description{min-height:0;}
.subscription-dialog[data-stage=plans] .subscription-features{gap:4px;padding-top:10px;margin-bottom:0;}
.subscription-dialog[data-stage=plans] .subscription-features li{line-height:1.5;}
.subscription-dialog[data-stage=plans] .subscription-note{margin:0;font-size:12px;line-height:1.6;}
html[data-theme=dark] .subscription-dialog{color-scheme:dark}.subscription-dialog::backdrop{background:rgba(8,5,15,.6)}
.subscription-dialog h2{font-size:22px;line-height:1.4;margin:8px 0 18px}.subscription-dialog button:not(.subscription-plan-action):not(.site-circle-close):not(.primary):not(:where(.subscription-channel-tab,.subscription-qr-refresh,.subscription-payment-check)){min-height:40px;padding:8px 12px;border:1px solid var(--site-line);border-radius:12px;background:var(--site-soft);color:var(--site-text);font:inherit;cursor:pointer}
.subscription-dialog .subscription-close{position:absolute;z-index:2;top:var(--workspace-shared-close-top);right:var(--workspace-shared-action-inset);margin:0;}.subscription-dialog button:disabled{opacity:.5;cursor:default}
.subscription-test-actions{margin-top:20px;padding-top:16px;border-top:1px dashed var(--site-line)}.subscription-test-actions button{font-size:12px;background:transparent}.subscription-test-actions .subscription-note{font-size:12px}
#membership:not([hidden]){display:block}#membership .subscription-plans{text-align:left}
.subscription-page .page{max-width:1200px}.subscription-page h1{font-size:30px;line-height:1.3;letter-spacing:-.025em;margin-bottom:10px}.subscription-page .page-intro{color:var(--site-muted);max-width:65ch;line-height:1.8}.subscription-page .account-section{padding-top:24px;border-top:1px solid var(--site-line)}.subscription-page .account-section h2{font-size:18px}.subscription-page .account-section p{max-width:80ch;color:var(--site-muted);font-size:13px;line-height:1.9}
/* Scoped close control shared by the subscription dialog and its standalone page.
   Help keeps its existing circle owner and consumes the same single SVG glyph. */
.site-page .site-circle-close:not(.subscription-close){position:relative;}
.site-page .site-circle-close,.subscription-dialog .site-circle-close{display:grid;place-items:center;flex:0 0 44px;width:var(--workspace-shared-close-size);height:var(--workspace-shared-close-size);min-height:var(--workspace-shared-close-size);padding:0;border:0;border-radius:50%;background:transparent;color:#74130e;box-shadow:none;cursor:pointer;}
.site-page .site-circle-close::before,.subscription-dialog .site-circle-close::before{content:"";position:absolute;width:var(--workspace-shared-close-dot);height:var(--workspace-shared-close-dot);inset:50% auto auto 50%;transform:translate(-50%,-50%);border:1px solid #e0443e;border-radius:50%;background:#ff5f57;box-shadow:inset 0 1px rgba(255,255,255,.28),0 1px 2px rgba(0,0,0,.14);}
.site-close-glyph{opacity:var(--close-glyph-opacity,0);position:relative;z-index:1;display:block;width:12px;height:12px;pointer-events:none;background:url('../icons/window-close.svg') center / 12px 12px no-repeat;}
.site-page .site-circle-close:active::before,.subscription-dialog .site-circle-close:active::before{transform:translate(-50%,-50%) scale(.92);}
.subscription-page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.subscription-page .subscription-page-heading h1{margin:0;}
.membership-feature-icon{position:relative;display:grid;place-items:center;width:60px;height:60px;margin:8px auto 24px;border-radius:16px;background:#147df5;overflow:visible;}
html[data-theme=dark] .membership-feature-icon{background:#246dde;}
.membership-feature-download{display:block;width:32px;height:32px;max-width:none;}
/* Badge occupies its own paint layer; clipping ancestors are handled by their owner. */
#bom .bom-export-action{position:relative;overflow:visible;isolation:isolate}
.auth-card{--auth-switch-duration:280ms}.auth-card h2{will-change:auto}
@media(max-width:1000px){.subscription-plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.subscription-plan-footnote{min-height:0}.subscription-plan [data-plan-expiry][aria-hidden=true]{display:none}body>header.site-header{padding-inline:12px}body>header.site-header :is(.nav,.app-nav-inner,.site-header-inner){gap:4px 10px}body>header.site-header .nav-links .nav-link{display:inline-flex;padding-inline:9px}.subscription-dialog-body{padding-inline:12px;}.subscription-page h1{font-size:25px}}
@media(max-width:520px){.subscription-plans{grid-template-columns:1fr}.subscription-plan{padding:22px}.subscription-description{min-height:0}}
@media(prefers-reduced-motion:reduce){body.site-page :is(button,a,input,select,textarea){transition:none;animation:none;scroll-behavior:auto}}

/* Confirmation has its own compact measure; other native dialog stages retain theirs. */
.subscription-dialog[data-stage=checkout]{width:min(460px,calc(100vw - 32px));padding-top:24px;}
.subscription-dialog[data-stage=checkout] .subscription-dialog-body{max-height:calc(100dvh - 96px);}
.subscription-dialog[data-stage=checkout] h2{margin:0 0 24px;padding-inline-end:44px;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-summary:not([hidden]){display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:20px;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-plan{flex:1 1 160px;min-width:0;overflow-wrap:anywhere;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-plan h3{margin:0 0 4px;font-size:18px;font-weight:600;line-height:1.5;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-plan p{margin:0;color:var(--site-muted);font-size:13px;line-height:1.6;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-price{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:2px;margin:0 0 0 auto;max-width:100%;min-width:0;font-size:32px;font-weight:650;line-height:1.125;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-currency{font-size:18px;font-weight:600;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-amount{min-width:0;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-status{margin:0 0 20px;padding-top:16px;border-top:1px solid var(--site-line);color:var(--site-muted);font-size:13px;line-height:1.7;overflow-wrap:anywhere;}
.subscription-dialog[data-stage=checkout] .subscription-checkout-confirm{width:100%;min-height:44px;}

.subscription-dialog[data-stage=upgrade]{width:min(420px,calc(100vw - 32px));}
.subscription-upgrade-content{text-align:center}.subscription-upgrade-content p{color:var(--site-muted);line-height:1.8}
.subscription-upgrade-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
.subscription-dialog .subscription-upgrade-actions button{min-height:44px}
.subscription-dialog .subscription-upgrade-actions .primary{border-color:var(--primary-action-border);border-radius:var(--primary-action-radius);background:var(--primary-action-background);color:var(--primary-action-ink);box-shadow:var(--primary-action-shadow);transition:var(--primary-action-transition);transform:var(--primary-action-transform);}
.subscription-plan:focus-within{z-index:1;background:var(--plan-hot-bg);box-shadow:var(--plan-hot-shadow);}
.subscription-plan:focus-within h3{background:var(--plan-hot-title);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
@media(hover:hover) and (pointer:fine){.subscription-plan:hover{z-index:1;border-color:var(--plan-hot-line);background:var(--plan-hot-bg);box-shadow:var(--plan-hot-shadow);}.subscription-plan:hover h3{background:var(--plan-hot-title);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}}
@media(prefers-reduced-motion:no-preference){.subscription-plan{transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,border-color .28s,background .3s;}.subscription-plan:focus-within{transform:translateY(-6px) scale(1.02);}@media(hover:hover) and (pointer:fine){.subscription-plan:hover{transform:translateY(-6px) scale(1.02);}}}
@media(forced-colors:active){.subscription-plan:focus-within h3,.subscription-plan:hover h3{background:none;-webkit-text-fill-color:CanvasText;color:CanvasText;}}
#trial-upgrade-action{position:fixed;left:50%;top:var(--trial-upgrade-top,64px);transform:translateX(-50%);max-width:min(320px,calc(100vw - 24px));min-height:36px;padding:7px 14px;border:1px solid var(--site-line);border-radius:12px;background:var(--site-surface);color:var(--site-accent);font:600 12px/1.5 var(--site-font);cursor:pointer;z-index:146;}

#trial-upgrade-action[hidden]{display:none}
@media(pointer:coarse){#trial-upgrade-action{min-height:44px}}

/* Authenticated editor access stays blocked while identity cannot be verified. */
.editor-session-guard{box-sizing:border-box;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;border:1px solid var(--site-line);border-radius:24px;background:var(--site-surface);color:var(--site-text);font:14px/1.6 var(--site-font);box-shadow:var(--site-shadow);}
.editor-session-guard::backdrop{background:rgba(8,5,15,.6);}
.editor-session-guard h2{font-size:20px;margin:0 0 16px;}.editor-session-guard p{margin:0 0 20px;}
.editor-session-guard button{min-height:44px;margin:4px 8px 0 0;padding:8px 12px;border:1px solid var(--site-line);border-radius:12px;background:var(--site-soft);color:var(--site-text);font:inherit;cursor:pointer;}
.editor-session-guard button.primary{background:var(--primary-action-background);color:var(--primary-action-ink);border-color:var(--primary-action-border);box-shadow:var(--primary-action-shadow);}

/* Shared native order/refund details reuse the subscription dialog. */
.subscription-dialog .sao-detail-list{margin:20px 0;}
.subscription-dialog .sao-detail-list>div{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:10px 0;border-bottom:1px solid var(--site-line);font-size:13px;}
.subscription-dialog .sao-detail-list dt{flex:none;color:var(--site-muted);}.subscription-dialog .sao-detail-list dd{margin:0;text-align:right;overflow-wrap:anywhere;min-width:0;}
.subscription-dialog .sao-dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:24px;}
.subscription-dialog[data-stage=order-detail]{width:min(520px,calc(100vw - 32px));}

.subscription-dialog .sao-dialog-actions button.primary{border-color:var(--primary-action-border);border-radius:var(--primary-action-radius);background:var(--primary-action-background);color:var(--primary-action-ink);box-shadow:var(--primary-action-shadow);transition:var(--primary-action-transition);transform:var(--primary-action-transform);}
.subscription-dialog .sao-dialog-actions button.primary:hover:not(:disabled){background:var(--primary-action-hover-background);border-color:var(--primary-action-border);color:var(--primary-action-ink);box-shadow:var(--primary-action-hover-shadow);transform:var(--primary-action-transform);}

/* A single adjustable badge for upgrade and export. */
.member-vip-badge{position:absolute;z-index:3;right:var(--vip-right,-8px);top:var(--vip-top,-6px);display:block;padding:2px 5px;border-radius:5px;background:#ff9f32;color:#4e2300;font:750 var(--vip-font-size,9px)/1.3 var(--site-font);white-space:nowrap;pointer-events:none;}
.member-vip-badge[hidden]{display:none;}.membership-feature-icon{--vip-right:-13px;--vip-top:-5px;--vip-font-size:10px;}
html[data-theme=dark] .member-vip-badge{background:#ffac49;color:#4e2300;}
.site-circle-close:hover .site-close-glyph,.site-circle-close:focus-visible:not([data-space-focus]) .site-close-glyph{opacity:1;}
@media(hover:none),(pointer:coarse){.site-circle-close{--close-glyph-opacity:1;}}


/* Existing editor account card: shared look; each surface owns positioning. */
.account-card{--account-menu-width:240px;--account-input:#fff;--account-ink:#1f2430;--account-muted:#6d7480;--account-line:rgba(34,40,52,.10);--account-hover:rgba(34,40,52,.055);--account-surface:var(--model-dock-surface,rgba(250,251,253,.95));--account-border:var(--model-dock-border,rgba(32,39,52,.10));--account-shadow:var(--model-dock-panel-shadow,0 18px 48px rgba(32,39,53,.12),inset 0 1px rgba(255,255,255,.92));border:1px solid var(--account-border);border-radius:16px;background:var(--account-surface);color:var(--account-ink);box-shadow:var(--account-shadow);-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);}
html[data-theme=dark] .account-card{--account-input:#292d35;--account-ink:#f5f7fb;--account-muted:#a9afbb;--account-line:rgba(255,255,255,.10);--account-hover:rgba(255,255,255,.08);--account-surface:var(--model-dock-surface,rgba(20,25,34,.84));--account-border:var(--model-dock-border,rgba(255,255,255,.13));--account-shadow:var(--model-dock-panel-shadow,0 20px 54px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.10));}
    .account-card .toolbar-user-summary{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px;padding:7px 7px 12px;border-bottom:1px solid var(--account-line)}
    .account-card .toolbar-user-avatar{width:44px;height:44px;display:grid;place-items:center;overflow:hidden;border-radius:13px;background:linear-gradient(145deg,#7d9cff,#6a55dc);color:#fff;font-size:15px;font-weight:720;box-shadow:0 6px 15px rgba(73,78,135,.20)}
    .account-card .toolbar-user-avatar img{width:100%;height:100%;object-fit:cover}
    .account-card .toolbar-user-copy{min-width:0}.toolbar-user-copy strong,.account-card .toolbar-user-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .account-card .toolbar-user-copy strong{font-size:13px;line-height:19px;font-weight:720}.toolbar-user-copy small{margin-top:1px;font-size:10.5px;line-height:16px;color:var(--account-muted)}
    .account-card .toolbar-user-actions{display:grid;gap:2px;padding-top:7px}
    .account-card .toolbar-user-footer{margin-top:7px;padding-top:7px;border-top:1px solid var(--account-line)}
    .account-card .toolbar-user-name-row{display:flex;align-items:center;gap:6px;min-width:0}
    .account-card .toolbar-user-name-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .account-card .toolbar-nickname-edit{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:5px;border:0;border-radius:7px;background:transparent;color:var(--account-muted);cursor:pointer}
    .account-card .toolbar-nickname-edit svg{width:18px;height:18px}
    .account-card .toolbar-nickname-edit:hover{color:var(--account-ink);background:var(--account-hover)}
    .account-card .toolbar-nickname-input{width:100%;min-width:0;height:32px;padding:4px 7px;border:1px solid var(--account-line);border-radius:7px;background:var(--bg-input,var(--account-input,#fff));color:var(--account-ink);font:inherit}
    .account-card .toolbar-user-name-row [hidden]{display:none}
    .account-card .toolbar-user-feedback{margin:8px 8px 2px;font-size:11.5px;line-height:1.5;color:var(--account-ink);overflow-wrap:anywhere}
    .account-card .toolbar-user-action{width:100%;min-height:44px;padding:0 10px;display:flex;align-items:center;gap:9px;border:0;border-radius:10px;background:transparent;color:inherit;font:560 11.5px/1 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;text-align:left;cursor:pointer;transition:background-color 90ms ease}
    .account-card [hidden]{display:none}
    .account-card .toolbar-user-action:disabled{opacity:.5;cursor:wait}
    .account-card .toolbar-user-action svg{width:16px;height:16px;flex:none;color:var(--account-muted)}.toolbar-user-action span{flex:1}.toolbar-user-action .user-action-tail{font-size:15px;color:var(--account-muted);flex:none}
    @media(hover:hover) and (pointer:fine){.account-card .toolbar-user-action:hover{background:var(--account-hover)}}
    @media(prefers-reduced-motion:reduce){.account-card .toolbar-user-action{transition:none}}

/* Gate recovery reuses the subscription surface and shared controls. No automatic motion. */
#site-gate-recovery.subscription-dialog{width:min(440px,calc(100vw - 32px));padding:24px;overflow:auto}
#site-gate-recovery h2{margin:0 0 12px;font-size:20px;line-height:1.4}
#site-gate-recovery p{margin:0 0 16px;overflow-wrap:anywhere}
#site-gate-recovery .gate-recovery-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
#site-gate-recovery .gate-recovery-actions a{text-decoration:none;text-align:center}
#site-gate-recovery [aria-busy=true]{opacity:.65;cursor:wait}

/* Typed color stops interpolate the gradient itself; no QR opacity animation. */
@property --payment-start{syntax:"<color>";inherits:true;initial-value:#d9eaff;}
@property --payment-middle{syntax:"<color>";inherits:true;initial-value:#e7f1ff;}
@property --payment-end{syntax:"<color>";inherits:true;initial-value:#f3f8ff;}
@property --payment-glow{syntax:"<color>";inherits:true;initial-value:#9dc8ff52;}
@property --payment-edge{syntax:"<color>";inherits:true;initial-value:#adc9eb;}
@property --payment-line{syntax:"<color>";inherits:true;initial-value:#8baed34d;}
@property --payment-footer{syntax:"<color>";inherits:true;initial-value:#99bde624;}
@property --payment-shadow{syntax:"<color>";inherits:true;initial-value:#2564ad15;}
@property --payment-text{syntax:"<color>";inherits:true;initial-value:#242831;}
/* C v2 checkout: one whole-card brand gradient, intrinsic content, no card scroll. */
.subscription-dialog[data-payment-channel]{--payment-motion:280ms;--payment-text:var(--site-text);--payment-accent:#1677ff;--payment-ink:#075cc6;--payment-wash:#ffffff70;--payment-start:#d9eaff;--payment-middle:#e7f1ff;--payment-end:#f3f8ff;--payment-glow:#9dc8ff52;--payment-edge:#adc9eb;--payment-line:#8baed34d;--payment-muted:#526b88;--payment-footer:#99bde624;--payment-shadow:#2564ad15;--payment-pad:22px;--payment-qr-size:274px;box-sizing:border-box;width:100vw;height:100dvh;max-width:none;max-height:none;inset:0;margin:0;padding:12px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:auto;overscroll-behavior:contain;transition:--payment-start var(--payment-motion) ease,--payment-middle var(--payment-motion) ease,--payment-end var(--payment-motion) ease,--payment-glow var(--payment-motion) ease,--payment-edge var(--payment-motion) ease,--payment-line var(--payment-motion) ease,--payment-footer var(--payment-motion) ease,--payment-shadow var(--payment-motion) ease,--payment-text var(--payment-motion) ease;}
.subscription-dialog[data-stage=checkout][data-payment-channel][open]{display:flex;}
.subscription-dialog[data-payment-channel] .subscription-dialog-shell{box-sizing:border-box;flex:none;position:relative;width:min(390px,100%);height:fit-content;margin:auto;border:1px solid var(--payment-edge);border-radius:24px;color:var(--payment-text);background:radial-gradient(ellipse at 2% 100%,var(--payment-glow),transparent 62%),linear-gradient(125deg,var(--payment-start),var(--payment-middle) 53%,var(--payment-end));box-shadow:0 16px 44px var(--payment-shadow),0 2px 6px #18233005;overflow:visible;}
.subscription-dialog[data-payment-channel=wechat]{--payment-accent:#07c160;--payment-ink:#087541;--payment-start:#d9efdf;--payment-middle:#e6f5ea;--payment-end:#f3faf5;--payment-glow:#95d8ac4a;--payment-edge:#acd1b7;--payment-line:#86b6964d;--payment-muted:#506f5b;--payment-footer:#92cba624;--payment-shadow:#287b4314;}
:root[data-theme=dark] .subscription-dialog[data-payment-channel]{--payment-ink:#92c0ff;--payment-wash:#92bfff12;--payment-start:#1e3551;--payment-middle:#1c2d43;--payment-end:#1c2737;--payment-glow:#24548240;--payment-edge:#425e7c;--payment-line:#789ac83d;--payment-muted:#b1c5dd;--payment-footer:#11243a38;--payment-shadow:#0003;}
:root[data-theme=dark] .subscription-dialog[data-payment-channel=wechat]{--payment-ink:#78dfa6;--payment-wash:#92e5ae12;--payment-start:#203f30;--payment-middle:#20362b;--payment-end:#1e2c26;--payment-glow:#32654535;--payment-edge:#446a52;--payment-line:#85b2933d;--payment-muted:#b0ccba;--payment-footer:#132d1f38;}
.subscription-dialog[data-stage=checkout][data-payment-channel] .subscription-dialog-body{max-height:none;margin:0;padding:0;overflow:visible;}
.subscription-dialog[data-payment-channel] .subscription-payment-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 76px 14px var(--payment-pad);}
.subscription-dialog[data-payment-channel] .subscription-payment-head h2{margin:0;padding:0;font-size:17px;line-height:26px;letter-spacing:-.02em;color:inherit;}
.subscription-dialog[data-payment-channel] .subscription-payment-caption:not([hidden]){display:inline-flex;align-items:center;gap:6px;color:var(--payment-muted);font-size:11px;white-space:nowrap;}
.subscription-dialog[data-payment-channel] .subscription-close{top:14px;right:16px;}
.subscription-dialog[data-payment-channel] .subscription-payment-content{display:grid;grid-template-columns:minmax(0,1fr);column-gap:0;row-gap:0;padding:0 var(--payment-pad) 14px;min-width:0;}
.subscription-dialog[data-payment-channel] .subscription-checkout-channels:not([hidden]){grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;border-bottom:1px solid var(--payment-line);}
.subscription-dialog[data-payment-channel] button.subscription-channel-tab{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;min-width:0;padding:9px 8px 14px;border:0;border-radius:10px 10px 0 0;background:transparent;color:var(--payment-muted);box-shadow:none;font-size:13px;line-height:20px;white-space:nowrap;transition:background-color var(--payment-motion) ease,color var(--payment-motion) ease;}
.subscription-dialog[data-payment-channel] button.subscription-channel-tab:hover:not(:disabled){background:var(--payment-wash);color:var(--payment-ink);}
.subscription-dialog[data-payment-channel] button.subscription-channel-tab[aria-selected=true]{background:var(--payment-wash);color:var(--payment-ink);font-weight:600;}
.subscription-dialog[data-payment-channel] .subscription-checkout-channels[data-channel-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:544px){.subscription-dialog[data-payment-channel] .subscription-checkout-channels[data-channel-count="3"] button.subscription-channel-tab{flex-direction:column;gap:4px;padding-inline:4px;}}
.subscription-channel-tab::after{content:'';position:absolute;inset:auto 0 -1px;height:2px;border-radius:1px;background:var(--payment-accent);opacity:0;transition:opacity var(--payment-motion) ease,background-color var(--payment-motion) ease;}
.subscription-channel-tab[aria-selected=true]::after{opacity:1;}
.subscription-channel-logo{display:block;flex:none;width:21px;height:21px;fill:currentColor;stroke:none;stroke-width:0;}
.subscription-channel-tab:is([data-channel-id=alipay],[data-channel-id=zpay-alipay]) .subscription-channel-logo{color:#1677ff;}
.subscription-channel-tab:is([data-channel-id=zpay-wxpay],[data-channel-id=wechat]) .subscription-channel-logo{color:#07c160;width:24px;height:24px;transform:translateY(-.5px);}
.subscription-dialog[data-payment-channel] .subscription-checkout-summary:not([hidden]){grid-column:1;grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;margin:0;padding:22px 0;border:0;text-align:left;}
.subscription-dialog[data-payment-channel] .subscription-checkout-plan{display:block;min-width:0;}
.subscription-dialog[data-payment-channel] .subscription-checkout-plan h3{margin:0;font-size:14px;line-height:24px;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .subscription-checkout-plan p{margin:3px 0 0;color:var(--payment-muted);font-size:11px;line-height:17px;}
.subscription-dialog[data-payment-channel] .subscription-checkout-plan .subscription-payment-product{display:none;}
.subscription-dialog[data-payment-channel] .subscription-checkout-price{display:flex;align-items:baseline;gap:3px;flex:none;flex-wrap:nowrap;min-width:0;margin:0;font-size:32px;line-height:1.1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;}
.subscription-dialog[data-payment-channel] .subscription-checkout-currency{font-size:16px;font-weight:500;}
.subscription-dialog[data-payment-channel] .subscription-checkout-amount{overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .subscription-payment-area{grid-column:1;grid-row:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:0;padding:0;text-align:center;}
.subscription-dialog[data-payment-channel] .subscription-qr-frame{position:relative;flex:none;width:var(--payment-qr-size);max-width:100%;}
.subscription-native-qr{aspect-ratio:1;display:grid;place-items:center;margin:20px auto 12px;width:224px;max-width:100%;background:#fff;border:1px solid var(--site-line);border-radius:16px;overflow:hidden;}
/* A stable empty viewport prevents checkout content moving while its code is prepared. */
.subscription-qr-placeholder{position:absolute;inset:1px;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;border-radius:15px;background:#fff;color:#616b77;font-size:11px;line-height:18px;text-align:center;}
.subscription-qr-placeholder[hidden]{display:none;}
.subscription-qr-activity{display:block;width:25px;height:25px;box-sizing:border-box;border:2px solid #e4e9ee;border-top-color:#9ba8b7;border-radius:50%;}
.subscription-qr-frame[data-qr-state=loading] .subscription-qr-activity{animation:payment-qr-turn 1.2s linear infinite;}
.subscription-qr-frame[data-qr-state=error] .subscription-qr-activity,.subscription-qr-frame[data-qr-state=closed] .subscription-qr-activity{width:24px;height:2px;border:0;border-radius:2px;background:#c7cdd5;}
@keyframes payment-qr-turn{to{transform:rotate(1turn);}}
@media(prefers-reduced-motion:reduce){.subscription-qr-frame[data-qr-state=loading] .subscription-qr-activity{animation:none;}}
/* Both channels reserve the complete, unscaled hosted-page viewport. */
.subscription-alipay-frame{display:block;flex:none;width:240px;height:240px;border:0;background:#fff;}
.subscription-native-qr svg{display:block;width:100%;height:auto;fill:none;stroke:none;stroke-width:0;}
.subscription-dialog[data-payment-channel] .subscription-native-qr{box-sizing:border-box;width:100%;margin:0;padding:24px;border:1px solid #e4e8ed;box-shadow:0 5px 20px #152f5010;}
/* Official mode 4 aligns its 224px code at the top-left of the 240px page.
   Balance its trailing 16px whitespace and keep all code pixels away from the rounded border. */
.subscription-dialog[data-payment-kind=alipay-webpay] .subscription-native-qr{padding:24px 8px 8px 24px;}
.subscription-dialog[data-payment-channel] .subscription-payment-copy{min-width:0;max-width:100%;min-block-size:56px;margin-top:12px;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .subscription-checkout-status{display:flex;align-items:center;justify-content:center;gap:2px;padding:0;margin:0;border:0;color:var(--payment-ink);font-size:12px;font-weight:550;line-height:18px;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .subscription-payment-description{margin:4px 0 0;color:var(--payment-muted);font-size:11px;line-height:17px;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .subscription-payment-controls:not([hidden]){grid-column:1;grid-row:4;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 8px;min-width:0;margin-top:17px;padding-top:8px;border-top:1px solid var(--payment-line);}
.subscription-dialog[data-payment-channel] .subscription-payment-deadline-slot{min-block-size:36px;display:flex;align-items:center;}
.subscription-dialog[data-payment-channel] .subscription-payment-action-slot{min-block-size:44px;min-width:0;}
.subscription-dialog[data-payment-channel] .subscription-payment-deadline{margin:0;color:var(--payment-muted);font-size:11px;line-height:18px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .subscription-payment-actions:not([hidden]){min-height:44px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px;margin:0;}
.subscription-dialog[data-payment-channel] button.subscription-qr-refresh:not([hidden]),.subscription-dialog[data-payment-channel] button.subscription-payment-check:not([hidden]){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:6px 0;border:0;background:transparent;color:var(--payment-ink);font-size:11px;line-height:18px;box-shadow:none;}
.subscription-dialog[data-payment-channel] button.subscription-qr-refresh:hover:not(:disabled),.subscription-dialog[data-payment-channel] button.subscription-payment-check:hover:not(:disabled){background:var(--payment-wash);}
.subscription-qr-refresh img{display:block;width:20px;height:20px;object-fit:contain;}
.subscription-dialog[data-payment-channel] .subscription-payment-reference{grid-column:1/-1;width:100%;min-block-size:16px;margin:0;color:var(--payment-muted);font-size:10px;line-height:16px;text-align:left;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .legal-consent{margin:0;padding:13px var(--payment-pad);border-top:1px solid var(--payment-line);border-radius:0 0 23px 23px;background:var(--payment-footer);color:var(--payment-muted);font-size:10px;line-height:17px;text-align:center;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-channel] .legal-consent p{margin:0;font-size:inherit;line-height:inherit;}
.subscription-dialog[data-payment-channel] .legal-consent nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0 12px;}
.subscription-dialog[data-payment-channel] .legal-consent a{display:inline-flex;align-items:center;min-height:32px;color:inherit;}
.subscription-payment-success{padding:28px 8px 32px;text-align:center;}
.subscription-payment-success-icon,.subscription-payment-sync-icon{display:grid;place-items:center;color:var(--payment-ink,var(--site-accent));background:transparent;border-radius:50%;width:72px;height:72px;margin:0 auto 12px;}
.subscription-payment-success-icon svg,.subscription-payment-sync-icon svg{width:38px;height:38px;}
.subscription-dialog[data-payment-channel] .subscription-payment-visual{position:relative;display:grid;place-items:center;width:72px;height:72px;border-radius:50%;isolation:isolate;}
.subscription-dialog[data-payment-channel] .subscription-payment-loader-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,var(--payment-ink) 200deg,var(--payment-accent) 290deg,transparent 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));opacity:0;}
.subscription-dialog[data-payment-channel] .subscription-payment-visual-fill{position:absolute;inset:0;border-radius:50%;background:var(--payment-accent);transform:scale(.06);opacity:0;}
.subscription-dialog[data-payment-channel] .subscription-payment-visual-check{position:relative;z-index:1;color:#fff;fill:none;stroke:#fff;stroke-width:2.5;opacity:0;transform:scale(.92);}
.subscription-dialog[data-payment-channel] [data-visual-state=loading] .subscription-payment-loader-ring,.subscription-dialog[data-payment-channel] [data-visual-state=paused] .subscription-payment-loader-ring{opacity:1;animation:payment-loader-spin 1.2s linear infinite;}
.subscription-dialog[data-payment-channel] [data-visual-state=paused] .subscription-payment-loader-ring{animation-play-state:paused;opacity:.45;}
.subscription-dialog[data-payment-channel] [data-visual-state=complete] .subscription-payment-visual-fill{transform:scale(1);opacity:1;}
.subscription-dialog[data-payment-channel] [data-visual-state=complete] .subscription-payment-visual-check{transform:scale(1);opacity:1;}
.subscription-dialog[data-payment-channel] .subscription-payment-loading-dots:not([hidden]){display:inline-flex;align-items:center;justify-content:center;gap:3px;width:15px;height:12px;flex:none;}
.subscription-dialog[data-payment-channel] .subscription-payment-loading-dots span{width:3px;height:3px;border-radius:50%;background:currentColor;}
.subscription-dialog[data-payment-channel] .subscription-payment-loading-dots[data-loading-active=true] span{animation:payment-loader-dot 1.2s ease-in-out infinite;}
.subscription-dialog[data-payment-channel] .subscription-payment-loading-dots span:nth-child(2){animation-delay:.15s;}
.subscription-dialog[data-payment-channel] .subscription-payment-loading-dots span:nth-child(3){animation-delay:.3s;}
@keyframes payment-loader-spin{to{transform:rotate(1turn);}}
@keyframes payment-loader-dot{0%,65%,100%{transform:translateY(0);opacity:.4;}32%{transform:translateY(-2px);opacity:1;}}
@supports not (mask:radial-gradient(#000,transparent)){.subscription-dialog[data-payment-channel] .subscription-payment-loader-ring{box-sizing:border-box;border:3px solid var(--payment-accent);border-right-color:transparent;background:none;}}
@media(prefers-reduced-motion:reduce){
 .subscription-dialog[data-payment-channel] [data-visual-state=loading] .subscription-payment-loader-ring,.subscription-dialog[data-payment-channel] [data-visual-state=paused] .subscription-payment-loader-ring,.subscription-dialog[data-payment-channel] .subscription-payment-loading-dots[data-loading-active=true] span{animation:none;}
}
.subscription-dialog[data-payment-channel] .subscription-checkout-plan p,.subscription-dialog[data-payment-channel] :is(.subscription-checkout-status,.subscription-payment-description,.subscription-payment-deadline,.subscription-payment-reference,.legal-consent,.subscription-payment-caption,.subscription-qr-refresh,.subscription-payment-check){transition:color var(--payment-motion) ease;}
.subscription-dialog[data-payment-channel] .subscription-payment-sync-icon{transition:color var(--payment-motion) ease,background-color var(--payment-motion) ease;}
.subscription-dialog[data-payment-channel] .subscription-payment-success-icon{color:#fff;}
.subscription-dialog[data-payment-channel] .subscription-payment-outgoing{user-select:none;z-index:1;}
.subscription-dialog[data-payment-channel] [data-completion-motion=running] .subscription-payment-success-icon{transition:none;}
.subscription-payment-success p{font-size:18px;font-weight:600;margin:0;overflow-wrap:anywhere;}
.subscription-dialog[data-payment-state=complete] .subscription-payment-area{grid-column:1/-1;grid-row:2;}
.subscription-native-qr.is-expired svg{filter:blur(5px);opacity:.3;}
.subscription-native-qr.is-expired{position:relative;}
.subscription-native-qr.is-expired::after{content:'二维码已过期';position:absolute;inset:0;display:grid;place-items:center;color:#222;background:#ffffff80;}
.subscription-qr-frame.is-expired .subscription-native-qr::after{content:'';}
.subscription-dialog[data-payment-channel] .subscription-qr-frame.is-expired .subscription-native-qr{min-height:var(--payment-qr-size);}
.subscription-dialog[data-payment-channel] .subscription-qr-frame.is-expired>button.subscription-qr-refresh:not([hidden]){position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:10px;width:100%;margin:0;border-radius:16px;background:#ffffffed;color:#27313e;}
.subscription-dialog[data-payment-channel] .subscription-qr-frame.is-expired>button.subscription-qr-refresh img{width:28px;height:28px;}
/* Normal windows use the confirmed portrait card; only short wide windows reflow. */
@media(max-width:544px) and (max-height:740px){
 .subscription-dialog[data-stage=checkout][data-payment-channel]{--payment-pad:16px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-head{padding-block:12px 8px;}
 .subscription-dialog[data-payment-channel] .subscription-close{top:3px;right:10px;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-summary:not([hidden]){padding-block:12px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-content{padding-bottom:8px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-controls:not([hidden]){margin-top:10px;padding-top:4px;}
 .subscription-dialog[data-payment-channel] .legal-consent{padding-block:8px;}
}
/* Short portrait windows keep the full code pixels and reduce surrounding chrome. */
@media(max-width:544px) and (max-height:760px){
 .subscription-dialog[data-stage=checkout][data-payment-channel]{--payment-pad:8px;--payment-qr-size:258px;padding:4px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-head{box-sizing:border-box;min-height:44px;padding:4px 64px 4px var(--payment-pad);}
 .subscription-dialog[data-payment-channel] .subscription-close{top:0;right:4px;}
 .subscription-dialog[data-payment-channel] button.subscription-channel-tab{min-height:44px;padding-block:6px;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-summary:not([hidden]){padding-block:4px;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-plan{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 6px;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-plan p{margin:0;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-price{font-size:28px;}
 .subscription-dialog[data-payment-channel] .subscription-native-qr{padding:16px;}
 .subscription-dialog[data-payment-kind=alipay-webpay] .subscription-native-qr{padding:16px 0 0 16px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-copy{min-block-size:40px;margin-top:4px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-description{margin-top:2px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-content{padding-bottom:4px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-controls:not([hidden]){margin-top:2px;padding-top:2px;}
 .subscription-dialog[data-payment-channel] .legal-consent:not([hidden]){display:flex;align-items:center;justify-content:center;gap:8px;padding:4px var(--payment-pad);}
 .subscription-dialog[data-payment-channel] .legal-consent p{flex:1;min-width:0;}
 .subscription-dialog[data-payment-channel] .legal-consent nav{flex:none;}
 .subscription-dialog[data-payment-channel] .legal-consent a{min-height:44px;}
}
@media(min-width:545px) and (max-height:600px){
 .subscription-dialog[data-payment-channel] .subscription-dialog-shell{width:min(632px,100%);}
 .subscription-dialog[data-payment-channel] .subscription-payment-content{grid-template-columns:minmax(0,1fr) var(--payment-qr-size);}
 .subscription-dialog[data-payment-channel] .subscription-checkout-summary:not([hidden]){display:flex;padding:0;}
 .subscription-dialog[data-payment-channel] .subscription-payment-area{display:contents;}
 .subscription-dialog[data-payment-channel] .subscription-qr-frame,.subscription-dialog[data-payment-channel] .subscription-payment-sync-icon{grid-column:2;grid-row:2/5;align-self:center;justify-self:center;}
 .subscription-dialog[data-payment-channel] .subscription-payment-copy{grid-column:1;grid-row:4;text-align:left;margin-top:8px;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-status{justify-content:flex-start;}
 .subscription-dialog[data-payment-channel] .subscription-payment-success{grid-column:1/-1;grid-row:2/5;}
 .subscription-dialog[data-payment-channel] .subscription-payment-controls:not([hidden]){grid-column:1;grid-row:3;display:block;}
 .subscription-dialog[data-payment-state=complete] .subscription-payment-area{grid-column:1/-1;grid-row:2;}
 .subscription-dialog[data-stage=checkout][data-payment-channel]{--payment-pad:20px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-head{padding-block:8px 6px;}
 .subscription-dialog[data-payment-channel] .subscription-close{top:3px;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-channels:not([hidden]){margin-bottom:8px;}
 .subscription-dialog[data-payment-channel] button.subscription-channel-tab{min-height:44px;padding-block:5px 9px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-content{column-gap:20px;padding-bottom:12px;}
 .subscription-dialog[data-payment-channel] .subscription-checkout-price{margin:0;font-size:32px;}
 .subscription-dialog[data-payment-channel] .subscription-payment-controls:not([hidden]){margin-top:8px;padding-top:4px;}
 .subscription-dialog[data-payment-channel] .legal-consent{padding-block:6px;}
}
@media(pointer:coarse){.subscription-dialog[data-payment-channel] .legal-consent a{min-height:44px;}}
@media(max-width:360px){.subscription-dialog[data-stage=checkout][data-payment-channel]{--payment-pad:8px;padding:4px;}}
@media(prefers-reduced-motion:reduce){.subscription-dialog[data-payment-channel]{--payment-motion:0ms;transition:none;}.subscription-dialog[data-payment-channel] .subscription-channel-tab,.subscription-dialog[data-payment-channel] .subscription-channel-tab::after{transition:none;}}

.project-name-edit{display:inline-grid;place-items:center;margin-left:8px;min-width:28px;min-height:28px;padding:3px;border:0;background:transparent;color:var(--site-muted);box-shadow:none}.project-name-edit:hover{color:var(--site-accent)}
