/* Product-only additions; the approved v6 visual tokens stay in styles.css/v6.css. */
.portal-usage{display:grid;gap:6px;padding:14px 16px;border-radius:12px;background:var(--surface-3);font-variant-numeric:tabular-nums}.portal-usage span{color:var(--muted);font-size:14px}
[hidden]{display:none!important}.page-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:var(--bg);color:var(--accent)}.page-loader-card{display:grid;justify-items:center;gap:20px}.page-loader-card strong{letter-spacing:.24em}.page-loader-dots{display:grid;grid-template-columns:repeat(3,16px);gap:10px}.page-loader-dots i{width:16px;height:16px;border-radius:50%;background:currentColor;animation:portal-dot 1.2s ease-in-out infinite}.page-loader-dots i:nth-child(3n+2){animation-delay:.15s}.page-loader-dots i:nth-child(3n){animation-delay:.3s}@keyframes portal-dot{0%,70%,100%{opacity:.25;transform:scale(.65)}35%{opacity:1;transform:scale(1)}}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.portal-card{padding:26px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);display:grid;gap:16px}.portal-card h2{font-size:24px}.portal-card button{justify-self:start}.portal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px}.portal-head h1{font-size:32px}.portal-note{margin:16px 0}.portal-settings{max-width:780px;display:grid;gap:28px}.portal-settings label{display:grid;gap:10px}.portal-settings select{padding:12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--pop);color:var(--text);font:inherit}.portal-busy{opacity:.7;pointer-events:none}.portal-skeleton{min-height:180px;background:linear-gradient(110deg,var(--surface) 20%,var(--surface-3) 45%,var(--surface) 70%);background-size:200% 100%;animation:portal-shimmer 1.4s linear infinite;border-radius:var(--r-lg)}@keyframes portal-shimmer{to{background-position:-200% 0}}.portal-secret{overflow-wrap:anywhere;user-select:all}.portal-check{display:flex!important;align-items:flex-start;gap:12px;font-size:14px}.portal-check input{margin-top:4px}.portal-error{max-width:720px;margin:32px auto}.portal-date{font-variant-numeric:tabular-nums}.portal-footer{margin-top:24px}.entry .connect-card.entry-card{z-index:1}.portal-account-id{overflow-wrap:anywhere}.portal-toast{padding:14px 22px;border-radius:14px;background:var(--pop);border:1px solid var(--line);box-shadow:var(--shadow);margin:10px}.portal-credential-actions{display:flex;gap:10px;flex-wrap:wrap}.view.enter .portal-card{animation:rise .25s var(--ease) both}@media(prefers-reduced-motion:reduce){.page-loader-dots i,.portal-skeleton,.view.enter .portal-card{animation:none}}@media(max-width:700px){.portal-head{align-items:flex-start;flex-direction:column}.portal-grid{grid-template-columns:1fr}}

.admin-shell{max-width:720px;margin:48px auto;padding:0 24px}.admin-card{gap:20px}.admin-card h1{font-size:32px}.admin-form{display:grid;gap:12px}.admin-form input{font:inherit;padding:14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--text)}.admin-form button{margin-top:12px}.admin-card [role=alert]:empty{display:none}.admin-card [role=alert]{color:var(--text);border-left:3px solid var(--accent);padding-left:12px}.admin-shell button:disabled{opacity:.6;cursor:wait}

.admin-product{display:grid;gap:16px;border-top:1px solid var(--line);padding-top:24px}.admin-form select{font:inherit;height:auto;min-height:48px;line-height:1.5;padding:10px 14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--text)}

.admin-product>select{font:inherit;min-height:48px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--text)}.admin-form fieldset{border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:10px}

/* Prototype parity (workbench-v6): full-page nine-dot loader is 68px (16px dots, 10px gap), set by the user on 2026-11-03. */
.side-nav a .nav-soon{margin-left:auto;font-style:normal;font-size:11px;letter-spacing:.02em;color:var(--text-3);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.soon-panel{display:grid;gap:12px;justify-items:start;max-width:720px;padding:26px 28px;border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--surface)}.soon-panel p{color:var(--text-2);max-width:64ch}
.plans6 .portal-skeleton{min-height:220px}.home-grid .orders-mini .chip{flex:none}

/* Admin (admin.html loads admin.css + this file): sign-in card, alert line and "soon" markers for the prototype shell. */
.admin-root{min-height:100vh}.adm-login{min-height:100vh;display:grid;place-items:center;padding:24px}.adm-login .card{width:min(520px,100%);display:grid;gap:14px;padding:28px}
.adm-login-top,.adm-login-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.adm-login h1{margin:0;font-size:26px}.adm-login .eyebrow{margin:0;font-size:12px;letter-spacing:.2em;color:var(--text-3)}
.admin-alert:empty{display:none}.admin-alert{margin:0 0 16px;padding:10px 14px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:8px}
.anav nav a .nsoon{margin-left:auto;font-style:normal;font-size:11px;color:rgba(240,234,255,.55);border:1px solid rgba(240,234,255,.2);border-radius:999px;padding:0 7px}
.atop-gap{flex:1}.soon-module{display:grid;justify-items:center;gap:8px}.soon-module .ic{width:22px;height:22px}.soon-module p{margin:0;max-width:60ch}
.admin-product h2,.card>section>h2,.admin-product>h2{margin:0 0 8px;font-size:16px}.admin-form label{font-size:12.5px;color:var(--text-2)}
body:has(.admin-root)>.skip{position:absolute;left:-9999px;top:12px;z-index:100;padding:8px 14px;border-radius:10px;background:var(--pop)}body:has(.admin-root)>.skip:focus{left:12px}
.admin-root .card p{margin:0 0 10px}.admin-root .card .admin-product{border-top:0;padding-top:0;gap:10px}.admin-root .admin-form{max-width:640px;gap:8px}
.admin-root .admin-form input,.admin-root .admin-form select,.admin-root .admin-product>select{min-height:38px;height:38px;padding:0 12px;border-radius:10px;font-size:14px}
.admin-root .admin-form button[type=submit]{justify-self:start;margin-top:8px}.admin-root .tbl-wrap{margin:4px 0 16px}.admin-root .tbl tr[aria-current]{background:var(--accent-soft)}
.admin-root .admin-product>select{max-width:640px}
.ann-body,.an-full{white-space:pre-wrap;overflow-wrap:anywhere}.side-nav a .nav-badge{margin-left:auto}
.admin-root .notice-form textarea{min-height:110px;height:auto;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--pop);font:inherit;width:100%}.admin-root .fld small{font-size:11px}.admin-root .withdraw-form{display:grid;gap:6px;min-width:240px}

/* Product-only state; keep the shared prototype styles unchanged. */
.st-r-compensated { color: var(--accent); }

@media (min-width:761px) and (max-width:1100px){
 .mode-platform .side-nav a .nav-soon{display:none}
}
.cf-box input[type="email"] { font-family: inherit; letter-spacing: normal; }

/* Entry hall (I9-C): product-only states on top of the shared ent-card/notice/state-card styles. */
.channel-hall>.notice,.channel-hall>.state-card{margin:0 0 16px}.channel-hall>p[role=status]{margin:0 0 12px}
.channel-card[aria-current="true"]{border-color:var(--accent)}.channel-card footer p{margin:0}

/* First-sale balance (I10-E): sits under the page header on home, plan and the entry hall; reuses ent-card/notice/state-card. */
.sales-ent{margin:0 0 20px}.sales-ent>.notice,.sales-ent>.state-card{margin:0}.sales-ent .ent-card .notice{margin:0}
.sales-chips{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}

/* Manual orders (admin-orders.mjs, I10-C): fulfilment form, unconfirmed-operation card, list and detail drawer; reuses card/fld/tbl/u-pending/u-error/drawer. */
.mo-result{margin:0 0 16px}.mo-form-card .u-pending{margin-top:0}
.mo-form{display:grid;gap:4px;max-width:960px}.mo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}
.mo-fld{margin:0}.mo-fld input{font-size:14px}.mo-fld input[aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 3px rgba(194,51,74,.1)}
#mo-batch_id,#mo-code_id{font-family:var(--mono);font-size:13px}
.admin-root .card p.mo-hint{margin:4px 0 8px}.mo-form .ferr{margin:0 0 8px}
.mo-fixed{grid-template-columns:repeat(2,minmax(0,max-content));column-gap:32px;margin:4px 0 14px}.mo-fixed>div{grid-template-columns:auto 1fr}
.mo-tbl code{font-size:12px}.mo-tbl .linkish{font-size:13px;overflow-wrap:anywhere;text-align:left}
.mo-kv>div{grid-template-columns:120px 1fr}.mo-kv code{overflow-wrap:anywhere}
.mo-list .card-h .btns{margin:0}

/* Redemption summary (I10-E): first block under the page header on home and plan; reuses ent-card/ent-dl/notice. */
.redeem-sum{margin:0 0 20px}.redeem-sum .ent-card .notice{margin:0}.redeem-sum h2:focus-visible{outline:2px solid var(--focus);outline-offset:0;border-radius:4px}

/* Usage ledger (I10-E): page-level pending notice between the summary and the records table. */
.usage-pending{margin:16px 0 0}.usage-pending p{margin:2px 0 0}

/* Partner batches (partner.html + partner-batches.mjs, I10-F1): reuses the admin shell, card/kpi/tbl/u-note/u-comp-result/u-error. */
.pb-summary{margin:0 0 18px}.pb-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.pb-tbl code{font-size:12px}.pb-tbl td .chip+.small{display:block;margin-top:2px}.pb-list .card-h .btns{margin:0}
.pb-delivery .card-h{align-items:center}.pb-delivery h3 code{font-size:14px}.pb-warning p{margin:0 0 4px}.pb-warning p:last-child{margin:0}
.pb-formats{display:grid;gap:8px;margin:4px 0 14px}.pb-format{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text);cursor:pointer}
.pb-formats .pb-format input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--accent)}.pb-formats .pb-format input:focus{outline:none}.pb-formats .pb-format input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pb-result h4{margin:0 0 6px}.pb-result h4:focus{outline:none}.pb-result h4:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.pb-identity h1{margin:0;font-size:26px}.pb-identity h1:focus{outline:none}#partner-batches:focus,main.adm-login:focus{outline:none}.pb-identity button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.pb-identity input[readonly]{opacity:.7}
@media(max-width:900px){.pb-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* After-sales (admin-aftersales.mjs, partner-aftersales.mjs, I10-H): reuses card/kpi/tbl/fld/u-pending/u-error/u-comp-result. */
.as-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:6px}.as-result{margin:0 0 16px}
.as-search{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.as-search .fld{margin:0}.as-search-value{flex:1 1 320px}.as-search #as-search-submit{height:36px}
.as-tbl code{font-size:12px}.as-reason,.pas-reason{max-width:360px;white-space:pre-wrap;overflow-wrap:anywhere}
.as-radio{display:inline-flex;align-items:center;gap:8px;margin:0 18px 0 0;font-size:14px;color:var(--text);cursor:pointer}
.admin-root .as-radio input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.admin-root .as-op textarea{width:100%}
.as-op h3 code{font-size:12px}.as-op .u-pending{margin-top:0}
.pas{margin-top:18px}.pas-grid{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:4px 20px}.pas-grid .ferr{grid-column:1/-1}
.pas .fld textarea{width:100%}.pas-noscope p{margin:0 0 4px}.pas-result{margin:0 0 14px}#partner-aftersales:focus{outline:none}
.pas-batches{display:flex;flex-wrap:wrap;gap:6px 16px;align-content:flex-start}.pas-batches legend{width:100%}.pas-batch{display:inline-flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.pas .pas-batch input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
