.draft-model-cell{flex-wrap:nowrap;gap:12px}
.draft-table-poster{position:relative;display:block;flex:0 0 72px;width:72px;height:58px;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:var(--tint)}
.draft-table-poster .table-art{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:contain}
.draft-poster-fallback{display:none;height:100%;align-items:center;justify-content:center;font-size:11px;color:var(--muted)}
.draft-table-poster[data-state="error"] .draft-poster-fallback{display:flex}
.service-auth{max-width:460px;width:100%;padding-inline:24px}
.service-auth h1{font-size:clamp(28px,3vw,36px);letter-spacing:-.8px}
.service-auth>p{margin-top:14px;line-height:1.75}
.service-google-host{display:flex;justify-content:center;align-items:center;min-height:48px;margin-top:28px;max-width:100%}
/* Match the Google iframe canvas scheme so its transparent margin stays transparent. */
.service-google-host iframe{color-scheme:light}
.service-google-host{position:relative}
.service-google-host>:not(.google-button-placeholder){position:relative;z-index:1}
.google-button-placeholder{position:absolute;left:50%;top:50%;width:min(100%,400px);height:40px;transform:translate(-50%,-50%);border-radius:4px;background:linear-gradient(110deg,#16303a 30%,#21424e 50%,#16303a 70%);background-size:220% 100%;animation:google-button-wait 1.4s ease-in-out infinite;z-index:0}
@keyframes google-button-wait{from{background-position:120% 0}to{background-position:-120% 0}}
@media(prefers-reduced-motion:reduce){.google-button-placeholder{animation:none}}
.service-auth .service-auth-status{font-size:14px;min-height:24px;margin-top:16px;color:var(--muted,#666)}
.service-auth-status[data-state="error"]{color:var(--ink,#171717)}
.service-auth-retry{min-height:44px;margin-top:12px}
.service-auth-retry[hidden]{display:none}
.service-auth-links{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 20px;margin-top:24px;font-size:14px}
.service-auth button:focus-visible,.service-auth a:focus-visible,.service-consent button:focus-visible{outline:2px solid var(--ink,#171717);outline-offset:3px}
.service-consent-host{position:fixed;left:20px;bottom:20px;z-index:90;max-width:calc(100vw - 40px);width:360px}
.service-consent{border:1px solid var(--line,#e5e5e5);border-radius:12px;background:var(--paper,#fff);color:var(--ink,#171717);padding:20px;box-shadow:0 8px 32px #00000012;max-height:calc(100dvh - 40px);overflow:auto}
.service-consent h2{font-size:16px;font-weight:600;line-height:1.4;letter-spacing:0;margin:0 0 9px}
.service-consent p{font-size:13px;line-height:1.7;color:var(--muted,#666)}
.service-consent-actions{display:flex;gap:10px;margin-top:18px}
.service-consent .btn{flex:1;min-height:44px;font-size:14px;padding:9px 12px;border:1px solid var(--line,#e5e5e5);color:var(--ink,#171717);background:var(--paper,#fff)}
.service-consent .btn.primary{border-color:var(--ink,#171717);background:var(--ink,#171717);color:var(--paper,#fff)}
.service-consent-status:empty{display:none}
.service-consent .service-consent-status{margin-top:12px}
@media(max-width:480px){.service-auth{padding-inline:16px}.service-consent-host{left:12px;bottom:12px;width:calc(100vw - 24px);max-width:none}.service-consent{padding:16px;max-height:calc(100dvh - 24px)}}
@media(prefers-reduced-motion:reduce){.service-auth,.service-consent{scroll-behavior:auto}}

html.service-login-open{overflow:hidden;scrollbar-gutter:stable}
.service-login-dialog{width:440px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:0;overflow:auto;border:1px solid var(--line,#e5e5e5);border-radius:16px;background:var(--paper,#fff);box-shadow:0 24px 80px #00000024;overscroll-behavior:contain}
.service-login-dialog::backdrop{background:#11111166;backdrop-filter:blur(3px)}
.service-login-dialog .service-auth{margin:0;border:0;border-radius:0;padding:48px 32px 32px;text-align:center}
.service-login-dialog .eyebrow{font-size:12px;letter-spacing:.04em;color:var(--muted,#666);margin-bottom:12px}
.service-login-dialog h2{font-size:28px;line-height:1.3;letter-spacing:-.6px;margin:0}
.service-login-dialog .service-auth>p{font-size:15px;line-height:1.65;margin:14px 0 0}
.service-login-dialog .service-auth .service-auth-status{font-size:13px;min-height:22px;margin-top:16px}
.service-login-dialog .service-auth-links{padding-top:20px;margin-top:22px;border-top:1px solid var(--line,#e5e5e5);font-size:13px}
.service-login-close{position:absolute;top:10px;right:10px;width:40px;height:40px;display:grid;place-items:center;background:transparent;color:var(--ink,#171717);border:0;border-radius:8px;cursor:pointer}
.service-login-close svg{width:20px;height:20px}
.service-login-close:hover{background:var(--tint,#f3f3f3)}
.service-login-close:focus-visible{outline:2px solid var(--ink,#171717);outline-offset:2px}
@media(max-width:480px){.service-login-dialog .service-auth{padding:48px 20px 24px}.service-login-dialog h2{font-size:26px}}

/* Account and export decisions sit above the whole page, not in a parameter panel. */
.service-login-dialog{width:420px;color:var(--ink);background:var(--paper);border-color:var(--line);box-shadow:0 24px 90px #0008}
.service-login-dialog .service-auth{max-width:none;padding:30px 32px 24px}
.service-auth-brand{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 24px;font-size:20px;font-weight:750;letter-spacing:-.4px}
.service-auth-brand svg{width:25px;height:28px;color:var(--accent,#39e9ed)}
.service-login-dialog .eyebrow{font-size:12px;color:var(--muted);margin-bottom:10px}
.service-login-dialog h2{font-size:25px;line-height:1.35;color:var(--ink)}
.service-login-dialog .service-google-host{margin-top:24px}
.service-login-dialog .service-auth>p{font-size:14px;margin-top:10px}
.service-login-dialog .service-auth-links{border:0;padding:0;margin-top:16px;font-size:12px}
.service-auth-context{text-align:left;display:grid;gap:6px;margin-top:24px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--tint)}
.service-auth-context>span,.service-auth-context>small{font-size:12px;color:var(--muted)}
.service-auth-context>strong{font-size:16px;color:var(--ink)}
.service-login-dialog .service-auth .service-auth-reassurance{font-size:12px;color:var(--muted);margin-top:18px}
.service-auth-status[data-state="error"]{color:#ffc594}
html.commerce-dialog-open{overflow:hidden;scrollbar-gutter:stable}
.commerce-dialog{width:620px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 24px 90px #0009;overflow:auto;overscroll-behavior:contain}
.commerce-dialog::backdrop{background:#020a0ddb;backdrop-filter:blur(4px)}
.commerce-dialog-close{position:absolute;right:12px;top:12px;z-index:2;width:40px;height:40px;border-radius:8px;background:var(--tint);color:var(--ink);font-size:28px;line-height:1}
.commerce-dialog-close:hover{background:var(--line);color:var(--ink)}
.commerce-dialog-close:focus-visible,.commerce-dialog .btn:focus-visible,.commerce-dialog .text-link:focus-visible{outline:2px solid var(--accent,#39e9ed);outline-offset:3px}
.commerce-dialog-content{padding:28px}
.commerce-dialog .page-title{padding:0;margin:0 40px 24px 0}
.commerce-dialog-content>.notice{margin:0 48px 20px 0;padding:8px 12px}
.commerce-dialog .page-title h1{font-size:26px;letter-spacing:-.4px}
.commerce-dialog .page-title p{font-size:14px;margin-top:8px}
.commerce-dialog .commerce-checkout-grid{grid-template-columns:1fr;gap:20px;align-items:start}
.commerce-dialog .panel{padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.commerce-dialog .export-model-summary{padding-bottom:16px;border-bottom:1px solid var(--line)}
.commerce-dialog .flow-summary{display:flex;flex-direction:row;align-items:center;gap:16px}
.commerce-dialog .flow-summary .table-art{width:80px;height:80px;flex:0 0 80px;object-fit:contain;border-radius:8px}
.commerce-dialog .flow-summary h2{font-size:17px;line-height:1.5}
.commerce-dialog .flow-summary small{font-size:11px;color:var(--muted)}
.commerce-dialog .export-model-summary>p{display:none}
.commerce-dialog .export-model-summary>.btn{display:none}
.commerce-dialog .export-model-summary p{font-size:13px;line-height:1.7}
.commerce-dialog .flow-specs{margin:18px 0;font-size:13px}
.commerce-dialog .flow-specs .facts{grid-template-columns:1fr}
.export-purchase{min-width:0}
.purchase-eyebrow{font-size:13px;color:var(--muted)}
.purchase-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin:8px 0 14px}
.purchase-price strong{font-size:36px;line-height:1.2;letter-spacing:-1px;color:var(--ink)}
.purchase-price span{font-size:12px;color:var(--muted)}
.purchase-choice h2{font-size:20px;line-height:1.5;margin:12px 0}
.purchase-benefits{list-style:none;padding:0;margin:12px 0 20px;display:grid;gap:8px;font-size:14px;color:var(--ink)}
.purchase-benefits li::before{content:'✓';color:var(--accent,#39e9ed);margin-right:10px}
.purchase-submit{width:100%;min-height:48px;font-size:16px}
.commerce-dialog:has(.purchase-compare){width:820px}
.purchase-compare-hint{margin:0 0 14px;font-size:14px;line-height:1.7;color:var(--ink)}
.purchase-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.purchase-card{display:flex;flex-direction:column;min-width:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:#0b1c23}
.purchase-card.featured{border-color:var(--accent,#39e9ed);background:#0f2c33;box-shadow:0 0 0 1px var(--accent,#39e9ed) inset}
.purchase-card h2{font-size:18px;line-height:1.5;margin:6px 0 4px}
.purchase-card .purchase-price{margin:6px 0 4px}
.purchase-card .purchase-price strong{font-size:32px}
.purchase-card .purchase-benefits{margin:10px 0 18px;font-size:13px}
.purchase-card .purchase-benefits li{display:flex;gap:8px;line-height:1.6}
.purchase-card .purchase-benefits li::before{margin-right:0;flex:0 0 auto}
.purchase-benefits li.is-excluded{color:var(--muted)}
.purchase-benefits li.is-excluded::before{content:'–';color:var(--muted)}
.purchase-card .purchase-submit{margin-top:auto}
.purchase-card .flow-caption{margin-top:10px}
.purchase-card:not(.featured) .purchase-submit:not(:disabled){color:var(--ink);background:transparent;border-color:#4c6d78}
.purchase-tag{align-self:flex-start;padding:3px 10px;border-radius:999px;background:var(--accent,#39e9ed);color:#042126;font-size:12px;font-weight:700}
.commerce-dialog fieldset.period-options{display:flex;gap:4px;margin:10px 0 6px;padding:4px;border:1px solid var(--line);border-radius:9px;min-width:0}
.period-option{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;padding:4px;border-radius:6px;font-size:13px;color:var(--muted);cursor:pointer}
.period-option input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.period-option small{font-size:11px;color:var(--accent,#39e9ed)}
.period-option:has(input:checked){background:var(--accent,#39e9ed);color:#042126;font-weight:700}
.period-option:has(input:checked) small{color:#042126}
.period-option:has(input:focus-visible){outline:2px solid var(--accent,#39e9ed);outline-offset:2px}
.period-option:has(input:disabled){cursor:not-allowed}
.upgrade-hint{display:grid;gap:4px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:13px}
.upgrade-hint span{color:var(--muted)}
.upgrade-hint .text-link{justify-self:start;color:var(--accent,#39e9ed)}
@media(max-width:720px){.purchase-cards{grid-template-columns:1fr}.purchase-card.featured{order:-1}.commerce-dialog-content{padding:22px 18px}}
.commerce-dialog .btn.primary{background:var(--accent,#39e9ed);border-color:var(--accent,#39e9ed);color:#042126}
.commerce-dialog .btn.primary:hover:not(:disabled){background:#79f5f2;border-color:#79f5f2;color:#042126}
.commerce-dialog .btn:disabled{background:#19343e;border-color:#38525d;color:#a6bcc4;cursor:not-allowed;opacity:1}
.subscription-invitation{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.subscription-invitation strong{display:block;font-size:14px;margin-bottom:5px}
.subscription-invitation span{color:var(--muted);font-size:12px}
.subscription-invitation .btn{align-self:flex-start;color:var(--accent,#39e9ed);background:transparent;border-color:var(--line)}
.commerce-dialog .plan-option:has(input:checked){color:var(--ink);background:#153a44;border-color:var(--accent,#39e9ed)}
.commerce-dialog .plan-option:has(input:checked) strong,.commerce-dialog .plan-price{color:var(--ink)}
.commerce-dialog .plan-option:has(input:checked) small{color:#c0dce2}
.commerce-dialog .plan-option input{accent-color:var(--accent,#39e9ed)}
.commerce-dialog fieldset.plan-options{border:0;padding:0;min-width:0}
.commerce-dialog .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.commerce-dialog .flow-caption{font-size:12px;line-height:1.8;margin-top:14px}
.purchase-policy{margin-top:18px;color:var(--muted);font-size:12px;line-height:1.7}
.purchase-policy summary{cursor:pointer}.purchase-policy p{margin-top:10px}
.commerce-dialog:has(.download-confirmation){width:480px}
.download-confirmation h2{font-size:20px;margin:0 0 8px}
.download-dimensions{font-size:14px;color:var(--muted)}
.download-file-facts{padding:16px 0;margin:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:10px;font-size:13px}
.download-file-facts>div{display:flex;justify-content:space-between;gap:16px}.download-file-facts dt{color:var(--muted)}.download-file-facts dd{margin:0;text-align:right}
.download-confirmation .actions-row{margin-top:22px}
.export-preparing{text-align:center;padding:30px 20px}
.export-state-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 22px;border:1px solid var(--line);border-radius:16px;font-size:30px;color:var(--accent,#39e9ed);background:var(--tint)}
.export-preparing h2{font-size:24px;margin-bottom:12px}
.export-preparing .actions-row{justify-content:center;margin-top:24px}
.commerce-dialog:has(.payment-embed-host){width:560px}
.payment-embed-heading{padding-right:40px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.payment-embed-heading h2{font-size:20px}.payment-embed-heading p{font-size:12px;margin:4px 0 0;color:var(--muted)}
.payment-embed-heading>.btn{padding:6px 0;min-height:32px;border:0;background:transparent;font-size:13px;color:var(--muted)}
.payment-test-label{font-size:11px;color:var(--muted)}
.payment-embed-host{height:min(660px,calc(100dvh - 190px));min-height:320px;margin-top:16px;border-radius:10px;overflow:hidden}
.payment-embed-status{padding:12px 0;color:var(--muted);font-size:14px}
.payment-embed-fallback{padding-top:16px;font-size:13px}
.commerce-dialog [hidden]{display:none!important}
@media(max-width:700px){.commerce-dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.commerce-dialog-content{padding:24px 18px}.commerce-dialog .commerce-checkout-grid{grid-template-columns:1fr;gap:14px}.commerce-dialog .flow-summary{flex-direction:row;align-items:center}.commerce-dialog .flow-summary .table-art{width:84px;height:84px}.commerce-dialog .export-model-summary{padding:14px}.commerce-dialog .flow-specs{margin:12px 0}.service-login-dialog .service-auth{padding:38px 24px 26px}.payment-embed-host{height:calc(100dvh - 240px)}}
/* REQ-CV-06 unfinished exports at the top of 我的模型文件 */
.pending-checkouts{margin-bottom:18px}.pending-checkouts h2{font-size:18px}.pending-checkouts>.flow-caption{margin:6px 0 14px}
.pending-checkout{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.pending-checkout .flow-summary{margin-bottom:10px}.pending-checkout>p{font-size:13px;margin:6px 0 10px}
