/* Shared presentation contract for public, student, onboarding, commerce and admin.
   Existing theme variables remain the source of color. No business behavior here. */
:root{
 --tg-font:'Segoe UI Variable','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
 --tg-xs:.75rem;--tg-sm:.875rem;--tg-md:.9375rem;--tg-lg:1.125rem;
 --tg-display:clamp(2rem,2.7vw,2.5rem);--tg-h1:clamp(1.75rem,2.3vw,2.125rem);--tg-h2:clamp(1.375rem,1.8vw,1.75rem);--tg-h3:clamp(1.125rem,1.4vw,1.375rem);
 --tg-space-1:4px;--tg-space-2:8px;--tg-space-3:12px;--tg-space-4:16px;--tg-space-5:20px;--tg-space-6:24px;--tg-space-8:32px;--tg-space-10:40px;
 --tg-radius-sm:6px;--tg-radius-md:10px;--tg-radius-lg:14px;
 --tg-shadow-sm:0 2px 8px #0000000d;--tg-shadow-md:0 12px 32px #00000026;
 --tg-primary:var(--op-accent);--tg-secondary:var(--op-muted);--tg-accent:var(--op-accent);--tg-background:var(--op-bg);--tg-surface:var(--op-surface);--tg-border:var(--op-border);--tg-text:var(--op-text);--tg-muted:var(--op-muted);
 --tg-success:#89c9a6;--tg-warning:#e3c17f;--tg-error:#efaaa8;--tg-info:#a3cce1;
}
html[data-theme="2"]{--tg-success:#1c6542;--tg-warning:#79531d;--tg-error:#a12f36;--tg-info:#255c7b}
html body.tg-ui.tg-ui{font-family:var(--tg-font)!important;font-size:var(--tg-md)!important;line-height:1.55;letter-spacing:0!important}
html body.tg-ui.tg-ui.tg-ui :is(h1,h2,h3,h4,p,a,button,input,select,textarea,label,legend,summary,th,td){font-family:var(--tg-font)!important}
html body.tg-ui.tg-ui.tg-ui h1{font-size:var(--tg-h1)!important;line-height:1.16!important;letter-spacing:-.025em!important;font-weight:650!important;margin:0 0 var(--tg-space-4)!important;overflow-wrap:break-word}
html body.tg-ui.tg-ui.tg-ui h2{font-size:var(--tg-h2)!important;line-height:1.25!important;letter-spacing:-.02em!important;font-weight:600!important;margin:0 0 var(--tg-space-3)!important}
html body.tg-ui.tg-ui.tg-ui h3{font-size:var(--tg-h3)!important;line-height:1.35!important;letter-spacing:-.01em!important;font-weight:600!important;margin:0 0 var(--tg-space-2)!important}
html body.tg-ui.tg-ui.tg-ui :is(.welcome-copy,.lobby-head,.dawn-copy,.avatar-editor) h1{font-size:var(--tg-display)!important}
html body.tg-ui.tg-ui.tg-ui p{line-height:1.6;letter-spacing:0;font-weight:400}
html body.tg-ui.tg-ui.tg-ui :is(.lead,.intro,.op-lead,.dawn-narrative){font-size:var(--tg-md)!important;max-width:70ch}
html body.tg-ui.tg-ui.tg-ui :is(.eyebrow,.kicker,.op-kicker,.stage-kicker){font-size:var(--tg-xs)!important;line-height:1.4!important;letter-spacing:.09em!important;font-weight:600!important;margin-bottom:var(--tg-space-2)}
html body.tg-ui.tg-ui.tg-ui :is(button,.button,.cta){min-height:40px;font-size:var(--tg-sm)!important;font-weight:600!important;line-height:1.3!important;letter-spacing:0!important;border-radius:var(--tg-radius-md)!important;padding:10px 16px!important;box-shadow:none;max-width:100%;white-space:normal;cursor:pointer}
html body.tg-ui.tg-ui :is(button,.button,.cta):focus-visible,html body.tg-ui.tg-ui :is(a,summary,input,select,textarea):focus-visible{outline:3px solid var(--op-accent)!important;outline-offset:3px!important}
html body.tg-ui.tg-ui :is(button,.button):disabled,html body.tg-ui.tg-ui [aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important}
html body.tg-ui.tg-ui button[aria-busy=true]{cursor:progress;opacity:.75}
html body.tg-ui.tg-ui :is(.secondary,.outline){background:var(--op-raised)!important;border:1px solid var(--op-border)!important;color:var(--op-text)!important}
html body.tg-ui.tg-ui :is(.ghost,.tertiary){background:transparent!important;color:var(--op-text)!important;border-color:transparent!important}
html body.tg-ui.tg-ui :is(.danger,button.danger){background:transparent!important;color:var(--tg-error)!important;border:1px solid var(--tg-error)!important}
html body.tg-ui.tg-ui.tg-ui :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]),select){min-height:42px;padding:10px 12px!important;font-size:var(--tg-md)!important;line-height:1.35!important;border-radius:var(--tg-radius-sm)!important;max-width:100%;min-width:0}
html body.tg-ui.tg-ui textarea{padding:12px!important;font-size:var(--tg-md)!important;line-height:1.6!important;border-radius:var(--tg-radius-sm)!important;max-width:100%;min-height:96px}
html body.tg-ui.tg-ui :is(input,select,textarea):disabled{opacity:.65;cursor:not-allowed}
html body.tg-ui.tg-ui :is(input,textarea)::placeholder{opacity:1;color:var(--op-muted)}
html body.tg-ui.tg-ui.tg-ui :is(.field>label,.form-field>label,legend){font-size:.8125rem!important;font-weight:500!important;letter-spacing:0!important}
html body.tg-ui.tg-ui :is(.field,.form-field){min-width:0;margin-bottom:16px}
html body.tg-ui.tg-ui :is(.actions,.academy-actions){gap:12px;flex-wrap:wrap;margin:20px 0}
html body.tg-ui.tg-ui :is(.form-grid,.academy-grid){gap:16px;margin-top:16px;margin-bottom:20px}
html body.tg-ui.tg-ui :is(.card,.panel,.op-panel,.commercial-panel){border-radius:var(--tg-radius-md)!important;padding:20px!important;box-shadow:var(--tg-shadow-sm)!important}
html body.tg-ui.tg-ui :is(.card,.panel,.op-panel) :is(.card,.panel,.op-panel){box-shadow:none!important}
html body.tg-ui.tg-ui :is(.notice,.error,.ok,[role=alert]){border-radius:var(--tg-radius-sm);padding:12px 16px;font-size:var(--tg-sm);line-height:1.5;max-width:100%;overflow-wrap:anywhere}
html body.tg-ui.tg-ui :is(.empty,.empty-state){padding:24px!important;max-width:760px;line-height:1.6}
html body.tg-ui.tg-ui .tg-command-header{min-height:68px;padding:8px 24px;gap:24px;flex-wrap:wrap}
html body.tg-ui.tg-ui .cinema-header{min-height:68px!important;padding:8px 24px!important;gap:24px!important}
html body.tg-ui.tg-ui :is(.top,.site-header,.intro-top){padding:12px 24px!important;gap:16px}
html body.tg-ui.tg-ui .dashboard{grid-template-columns:224px minmax(0,1fr)}
html body.tg-ui.tg-ui .admin-layout{grid-template-columns:224px minmax(0,1fr)}
html body.tg-ui.tg-ui :is(.dashboard>.side,.admin-nav){padding:20px 16px!important;min-width:0}
html body.tg-ui.tg-ui :is(.side nav>a,.admin-nav a){font-size:var(--tg-sm)!important;font-weight:500;padding:9px 12px!important;border-radius:var(--tg-radius-sm)!important;margin:3px 0;line-height:1.4}
html body.tg-ui.tg-ui .admin-nav small{margin:12px 0 20px;font-size:var(--tg-xs)}
html body.tg-ui.tg-ui .admin-nav img{width:200px;height:auto;max-width:100%}
html body.tg-ui.tg-ui :is(.main,.operations-main,.admin-main){min-width:0;width:100%;max-width:1440px;margin-inline:auto;padding:24px 32px 96px!important}
html body.tg-ui.tg-ui .cinema-main{max-width:1360px;padding:24px 32px 40px!important}
html body.tg-ui.tg-ui.cinema-dawn .cinema-main{max-width:none;padding:0!important}
html body.tg-ui.tg-ui .cinema-progress{gap:12px;padding:12px 0;margin-bottom:24px;flex-wrap:wrap}
html body.tg-ui.tg-ui .welcome-film{min-height:520px;grid-template-columns:1.1fr 1fr}
html body.tg-ui.tg-ui .welcome-image{min-height:520px}
html body.tg-ui.tg-ui .welcome-copy{padding:32px!important}
html body.tg-ui.tg-ui .welcome-copy p{max-width:56ch;font-size:var(--tg-md)!important}
html body.tg-ui.tg-ui .lobby-head{margin-bottom:20px}.tg-ui .lobby-grid{gap:12px;padding-top:12px}
html body.tg-ui.tg-ui .lobby-brief{padding:20px 24px;gap:24px}
html body.tg-ui.tg-ui .lobby-career-copy strong{font-size:20px!important;font-weight:650;line-height:1.2;font-family:var(--tg-font)!important}
html body.tg-ui.tg-ui .avatar-editor h1{line-height:1.15!important}
html body.tg-ui.tg-ui .avatar-editor fieldset{margin:20px 0}
html body.tg-ui.tg-ui .avatar-platform{max-width:300px}
html body.tg-ui.tg-ui .avatar-display.compact .avatar-platform{max-width:190px}
html body.tg-ui.tg-ui .dawn-copy{padding:80px 40px 96px;width:52%}
html body.tg-ui.tg-ui .dawn-mission{padding:24px;margin-top:24px}
html body.tg-ui.tg-ui .dawn-mission h2{font-size:var(--tg-h2)!important}
html body.tg-ui.tg-ui .qg-copy{padding:24px!important}
html body.tg-ui.tg-ui .qg-mission{padding:24px!important}
html body.tg-ui.tg-ui :is(.qg-status strong,.op-stats strong){font-size:clamp(22px,2vw,28px)!important;font-weight:600!important}
html body.tg-ui.tg-ui .operator-viewer.compact .operator-stage{max-width:190px}
html body.tg-ui.tg-ui .operator-viewer.compact .operator-label b{font-size:16px}
html body.tg-ui.tg-ui .table-scroll{overflow-x:auto;max-width:100%;border-radius:var(--tg-radius-sm);overscroll-behavior-x:contain}
html body.tg-ui.tg-ui table{width:100%;border-collapse:collapse;font-size:var(--tg-sm)}
html body.tg-ui.tg-ui :is(th,td){padding:10px 12px!important;line-height:1.4!important;vertical-align:top}
html body.tg-ui.tg-ui th{font-size:.8125rem!important;font-weight:600!important;text-align:left}
html body.tg-ui.tg-ui .admin-main :is(th,td){padding:8px 12px!important;font-size:.8125rem!important}
html body.tg-ui.tg-ui :is(dialog,.modal-shell){border-radius:var(--tg-radius-lg)!important;max-width:min(960px,calc(100vw - 32px));max-height:90dvh;overflow:auto}
html body.tg-ui.tg-ui dialog{padding:24px}
html body.tg-ui.tg-ui :is(.modal-head,.rank-dialog-head,.operator-dialog-head){padding:0 0 16px!important;gap:16px}
html body.tg-ui.tg-ui .modal-scroll{padding:20px!important;overflow-wrap:break-word}
html body.tg-ui.tg-ui .modal-scroll :is(p,li){font-size:var(--tg-md)!important;line-height:1.7!important}
html body.tg-ui.tg-ui :is(.badge,.tag,.pill){font-size:var(--tg-xs);line-height:1.4;padding:4px 8px;font-weight:500}
html body.tg-ui.tg-ui :is(.rank-card,.achievement,.achievement-card){border-radius:var(--tg-radius-md);box-shadow:var(--tg-shadow-sm)}
html body.tg-ui.tg-ui .prologue-line strong{font:650 clamp(28px,4vw,48px)/1.15 var(--tg-font);letter-spacing:-.025em}
html body.tg-ui.tg-ui .prologue-line.p-two strong{font-size:clamp(24px,2.7vw,36px)}
@media(max-width:1100px){html body.tg-ui.tg-ui :is(.main,.operations-main,.admin-main){padding:24px 20px 96px!important}html body.tg-ui.tg-ui .welcome-film{grid-template-columns:1fr 1fr}.tg-ui .welcome-copy{padding:24px!important}}
@media(max-width:850px){html body.tg-ui.tg-ui :is(.dashboard,.admin-layout){grid-template-columns:1fr!important}html body.tg-ui.tg-ui :is(.dashboard>.side,.admin-nav){position:static!important;height:auto!important;padding:16px!important}html body.tg-ui.tg-ui .admin-nav nav{display:flex;flex-wrap:wrap;gap:4px}html body.tg-ui.tg-ui .admin-nav a{display:inline-flex;align-items:center}html body.tg-ui.tg-ui .admin-nav small{margin:8px 0 12px}}
@media(max-width:760px){
 :root{--tg-display:clamp(1.75rem,6.3vw,2rem);--tg-h1:clamp(1.5rem,5.7vw,1.875rem);--tg-h2:1.375rem;--tg-h3:1.125rem}
 html body.tg-ui.tg-ui :is(.main,.operations-main,.admin-main){padding:20px 16px 112px!important}
 html body.tg-ui.tg-ui .cinema-main{padding:20px 16px 32px!important}
 html body.tg-ui.tg-ui :is(.cinema-header,.tg-command-header){padding:8px 16px!important;gap:12px!important}
 html body.tg-ui.tg-ui :is(button,.button,.cta,.side nav>a,.admin-nav a,summary){min-height:44px}
 html body.tg-ui.tg-ui :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=range]),select,textarea){font-size:16px!important}
 html body.tg-ui.tg-ui :is(.card,.panel,.op-panel,.commercial-panel){padding:16px!important}
 html body.tg-ui.tg-ui :is(.form-grid,.academy-grid){grid-template-columns:1fr;gap:12px}
 html body.tg-ui.tg-ui .welcome-film{display:flex;flex-direction:column;min-height:0}
 html body.tg-ui.tg-ui .welcome-image{min-height:340px}
 html body.tg-ui.tg-ui .welcome-copy{padding:24px 16px!important}
 html body.tg-ui.tg-ui .dawn-copy{width:100%;padding:88px 20px 100px;background:linear-gradient(90deg,#07101965,#071019c9)}
 html body.tg-ui.tg-ui .lobby-brief{padding:16px;gap:16px}
 html body.tg-ui.tg-ui .lobby-career-copy strong{font-size:16px!important}
 html body.tg-ui.tg-ui .avatar-platform{max-width:230px}
 html body.tg-ui.tg-ui :is(dialog,.modal-shell){max-width:calc(100vw - 16px);max-height:92dvh;padding:16px}
 html body.tg-ui.tg-ui .notification-shortcut{font-size:var(--tg-sm)}
}
@media(prefers-reduced-motion:reduce){html body.tg-ui *,html body.tg-ui *::before,html body.tg-ui *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

html body.tg-ui.tg-cinema:not(.cinema-dashboard){--op-bg:#08111a;--op-surface:#101c27;--op-raised:#172735;--op-border:#4b606f;--op-text:#edf1f4;--op-muted:#b9c7d0;--op-accent:#dec48c;--tg-error:#efaaa8}
/* Admin surfaces share the selected theme rather than old hard-coded greens. */
html body.tg-ui.tg-ui .admin-nav{background:var(--op-surface)!important;border-color:var(--op-border)!important;color:var(--op-text)!important}
html body.tg-ui.tg-ui .admin-nav :is(a,small){color:var(--op-text)!important}
html body.tg-ui.tg-ui .admin-nav a.active{background:var(--op-raised)!important;border-left:2px solid var(--op-accent)}
html body.tg-ui.tg-ui .admin-main :is(.card,.panel){background:var(--op-surface)!important;color:var(--op-text)!important;border-color:var(--op-border)!important}
html body.tg-ui.tg-ui .admin-main :is(input,select,textarea){background:var(--op-raised)!important;color:var(--op-text)!important;border-color:var(--op-border)!important}
html body.tg-ui.tg-ui .admin-main :is(label,legend,th){color:var(--op-text)!important}
html body.tg-ui.tg-ui .admin-main :is(p,td,small){color:var(--op-muted)}
html body.tg-ui.tg-ui .admin-main th{background:var(--op-raised)!important}
html body.tg-ui.tg-ui .admin-main :is(.notice,.ok){background:var(--op-raised);border-color:var(--op-border)}
html[data-theme="2"] body.tg-ui:not(.tg-cinema) img.brand-logo,html[data-theme="2"] body.tg-ui .tg-command-header img.brand-logo,html[data-theme="2"] body.tg-ui .admin-nav>img{background:#111d27!important;padding:6px 10px!important;border-radius:8px}
