/* One component contract; legacy class names are migration aliases for JS. */
button,.ui-button,.secondary-btn,.tile-open,.table-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-block-size:var(--control-height);border:1px solid var(--line);border-radius:var(--control-radius);padding:10px var(--control-padding);background:var(--soft);color:var(--text);font:var(--weight-strong) var(--text-sm)/var(--leading-control) var(--font-sans);letter-spacing:var(--tracking-control);text-align:center;vertical-align:middle;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .15s ease;white-space:normal;max-inline-size:100%}
button:hover,.ui-button:hover,.secondary-btn:hover,.tile-open:hover,.table-action:hover{background:var(--control-hover);color:var(--text);border-color:var(--muted)}
button:active,.ui-button:active{transform:translateY(1px)}
button:disabled,.ui-button[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}
button[aria-busy=true]{cursor:progress;opacity:.7}
.ui-button--primary,.primary-form-button,.get-key-button,.spin-btn{background:var(--brand-lime);color:var(--accent-ink);border-color:transparent}
.ui-button--primary:hover,.primary-form-button:hover,.get-key-button:hover,.spin-btn:hover{background:#c1ed43;color:var(--accent-ink);border-color:transparent}
.ui-button--quiet,.panel-link,.link-text{background:transparent;border-color:transparent;color:var(--lime)}
.ui-button--danger,.danger-btn{background:var(--panel);color:var(--danger);border-color:var(--danger)}
.ui-button--danger:hover,.danger-btn:hover{background:var(--danger);color:var(--bg);border-color:var(--danger)}
.ui-button--icon,.signout,.close-modal{inline-size:var(--control-height);block-size:var(--control-height);flex:0 0 var(--control-height);padding:0;font-size:var(--icon-size)}
html .close-modal{border-radius:var(--control-radius)}
.ui-button--full,.primary-form-button{inline-size:100%}
button.on,.filter-chip.active,[role=tab][aria-selected=true]{background:var(--accent-soft);color:var(--lime);border-color:var(--lime)}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea,.ui-input{box-sizing:border-box;min-block-size:var(--control-height);border:1px solid var(--line);border-radius:var(--control-radius);padding:10px var(--space-3);background:var(--field);color:var(--text);font:var(--weight-regular) var(--text-md)/var(--leading-control) var(--font-sans);max-inline-size:100%;min-inline-size:0;color-scheme:inherit}
textarea{line-height:var(--leading-body);resize:vertical}
html input[type=checkbox],html input[type=radio]{inline-size:18px;block-size:18px;min-block-size:18px;flex:0 0 18px;margin:0;accent-color:var(--lime)}
html label:has(>input[type=checkbox]),html label:has(>input[type=radio]){display:flex;align-items:center;gap:var(--space-3);min-block-size:var(--control-height);font:var(--weight-medium) var(--text-sm)/var(--leading-body) var(--font-sans)}
label{font-size:var(--text-sm);font-weight:var(--weight-strong);letter-spacing:var(--tracking-control)}
:is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:var(--focus-width) solid var(--lime);outline-offset:3px}
.ui-card{border:1px solid var(--line);border-radius:var(--card-radius);background:var(--panel);padding:var(--space-6)}
.ui-modal,.modal-content{border-radius:var(--modal-radius);padding:var(--space-8);background:var(--panel);color:var(--text);box-shadow:var(--shadow)}
.ui-stack{display:flex;flex-direction:column;gap:var(--space-4)}
.ui-cluster,.top-actions,.auth-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
html .top-actions{margin-left:auto;justify-content:flex-end;min-width:0}
.preference-controls{display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0}
html .theme-toggle{block-size:var(--control-height);inline-size:6.75rem;min-inline-size:6.75rem;flex-shrink:0;white-space:nowrap}
html .language-picker{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);margin:0}
html .language-picker::after{content:'';position:absolute;right:14px;top:calc(50% - 5px);width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);pointer-events:none}
html .language-picker>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html .language-select{appearance:none;block-size:var(--control-height);inline-size:4.75rem;min-inline-size:4.75rem;font-size:var(--text-sm);font-weight:var(--weight-strong);line-height:var(--leading-control);padding-inline:var(--space-3) 28px}
html .console-entry{min-inline-size:100px;block-size:var(--control-height)}
html .signout{block-size:var(--control-height)}
html .user-email{display:inline-flex;align-items:center;min-block-size:var(--control-height);max-inline-size:200px;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--weight-regular) var(--text-xs)/var(--leading-control) var(--font-sans);color:var(--muted)}
html .topbar{gap:var(--space-6);padding-block:var(--space-4)}
html .top-nav{gap:var(--space-5)}
html .login-gate{padding:var(--space-6);overflow-y:auto;align-items:center}
html .login-card{padding:0;max-width:960px;grid-template-columns:1fr 1fr;max-height:calc(100dvh - 48px);border-radius:var(--modal-radius)}
html .login-pane{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8)}
html .login-pane>.brand{align-self:flex-start}
html .login-pane h1{font:var(--weight-strong) var(--heading-lg)/var(--leading-heading) var(--font-sans);letter-spacing:-.035em;margin:0}
html .login-pane h1 em{font-weight:inherit}
html .login-pane>p{font:var(--weight-regular) var(--text-sm)/var(--leading-body) var(--font-sans)}
html .login-pane form,html .login-pane input{margin:0}
html .login-pane input{margin-block:var(--space-2) var(--space-4)}
html .auth-toolbar{margin:0;gap:var(--space-2)}
.auth-brand{margin-bottom:var(--space-1)}
html .login-pane .micro-title{font-size:var(--text-xs);line-height:var(--leading-body);letter-spacing:.08em}
html .login-pane .support-link{font-size:var(--text-sm);font-weight:var(--weight-strong);line-height:var(--leading-body)}
body:has(.login-gate.open) :is(.topbar,.operations-top,.admin-sidebar){visibility:hidden;pointer-events:none}
html h1{font-size:var(--heading-xl);font-weight:var(--weight-strong);line-height:var(--leading-heading)}
html h2{font-size:var(--heading-lg);font-weight:var(--weight-strong);line-height:var(--leading-heading)}
html h3{font-size:var(--heading-md);font-weight:var(--weight-strong);line-height:1.3}
html .ui-card h2,html .support-card h2,html .art-caption h2{font-size:var(--heading-md);line-height:1.3}
html .brand{font-family:var(--font-sans);font-size:1.4375rem;font-weight:var(--weight-strong)}
html .brand b{font-weight:var(--weight-bold)}
html .admin-heading h1,html .admin-heading h2{font-size:var(--heading-xl)}
html .order-meta{gap:var(--space-4);padding:var(--space-4);border-radius:var(--card-radius)}
html .delivery-widget,html .bundle-unit,html .revealed-key,html .won-key,html .support-card,html .walkthrough-card,html .readiness-matrix article{border-radius:var(--card-radius)}
html .bundle-unit button,html .bundle-unit a{margin-top:var(--space-3)}
html .toast{border-radius:var(--control-radius);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);line-height:var(--leading-body)}
html .search-box{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--field)}
html .search-box input{border:0;border-radius:0;background:transparent;padding-inline:0;inline-size:100%}
html .data-table{font-size:var(--text-sm);line-height:var(--leading-body)}
html .data-table th{font-size:var(--text-xs);font-weight:var(--weight-strong)}
html .admin-tabs button{font-size:var(--text-xs);line-height:1.4;justify-content:flex-start;padding-inline:var(--space-3)}
@media(max-width:1100px){html .topbar{flex-wrap:wrap}html .top-nav{order:3;inline-size:100%;justify-content:center}html .top-actions{gap:var(--space-2)}}
@media(max-width:760px){html .login-card{display:block;max-width:500px}html .login-art{display:none}html .login-pane{padding:var(--space-6)}html .user-email{max-inline-size:160px}html .top-actions{inline-size:100%;justify-content:flex-start}.ui-modal,.modal-content{padding:var(--space-6)}}
@media(max-width:440px){html .login-gate{padding:var(--space-3)}html .login-card{max-height:calc(100dvh - 24px)}html .login-pane{padding:var(--space-5);gap:var(--space-3)}html .topbar{padding-inline:var(--space-4)}html .top-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-2)}html .top-actions .preference-controls{grid-column:1/-1}html .top-actions .user-email{grid-column:1;max-inline-size:100%;min-block-size:var(--control-height)}html .top-actions .console-entry{grid-column:2;min-inline-size:88px;padding-inline:var(--space-2)}html .top-actions .signout{grid-column:3}html .language-select{inline-size:4.25rem;min-inline-size:4.25rem}html .theme-toggle{inline-size:6.25rem;min-inline-size:6.25rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Readiness identifiers and order references must wrap inside narrow cards. */
html .readiness-matrix article{min-inline-size:0;overflow-wrap:anywhere}
html .walkthrough-card{min-inline-size:0}

html .full-product-title{font-size:var(--heading-order)}
html body[data-view=customer] #heroTitle{font-size:var(--heading-lg)}

/* Public runtime: fixture proof forms and test-only controls have no user flow. */
body[data-runtime="production-safe"] :is(#admissionForm,#claimForm,#claimEntry,.demo-label,[data-tab="walkthrough"],[data-tab="procurement"],[data-tab="engine"],[data-tab="ggsel"],[data-tab="suppliers"],#tab-walkthrough,#tab-procurement,#tab-engine,#tab-ggsel,#tab-suppliers,#importPrizes,#prizeImport){display:none!important;}
