.app-shell.product-shell{min-width:0;overflow-wrap:anywhere}.product-shell .skip-link{z-index:var(--layer-skip-link)}.product-shell .shell-masthead{position:sticky;top:0;z-index:var(--layer-shell-nav);display:block;padding:0}.product-shell__masthead-inner{width:min(var(--percent-full),var(--layout-max));min-width:0;min-height:var(--shell-masthead-min);grid-template-areas:"brand logout" "live live";grid-template-columns:minmax(0,var(--grid-flex-track)) auto;align-items:center;flex-wrap:wrap;gap:0 var(--space-3);margin-inline:auto;padding:var(--space-2) var(--page-inline)}.product-shell .shell-brand{grid-area:brand;width:fit-content}.product-shell__session{display:contents}.product-shell__live{grid-area:live;min-width:0;min-height:var(--control-min);align-content:center;font-size:var(--text-small)}.product-shell__live>*{margin-block:0}.product-shell__logout{grid-area:logout;min-width:0}.product-shell__logout .logout-control{display:grid;min-width:0;gap:var(--space-2);justify-items:end}.product-shell__logout .button{width:auto}.product-shell__logout .button--quiet{color:var(--color-surface-raised)}.product-shell__logout .inline-alert{max-width:var(--tooltip-max);color:var(--color-ink);overflow-wrap:anywhere;text-align:start}.product-shell__logout .inline-alert strong{flex-shrink:0}.product-shell .shell-masthead:has(.inline-alert){position:static}.product-shell__masthead-inner:has(.inline-alert){grid-template-areas:"brand brand" "live live" "logout logout"}.product-shell__logout:has(.inline-alert){grid-column:1 / -1}.app-shell.product-shell>.shell-nav--compact{position:fixed;right:0;bottom:0;left:0;z-index:var(--layer-shell-nav);min-height:calc(var(--bottom-nav-min) + var(--safe-area-bottom));grid-template-columns:repeat(var(--shell-nav-columns),minmax(0,var(--grid-flex-track)));padding-bottom:var(--safe-area-bottom)}.product-shell .shell-nav a{min-width:var(--control-min);min-height:var(--control-min)}.product-shell__content{min-width:0;min-height:calc(var(--viewport-min) - var(--shell-masthead-min));padding:var(--page-top) var(--page-inline) var(--shell-content-bottom);background:radial-gradient(circle at var(--percent-half) 0,var(--color-canvas-glow),var(--color-canvas) var(--canvas-glow-stop))}.product-shell__content>*{width:min(var(--percent-full),var(--layout-max));min-width:0;margin-inline:auto}.product-shell__content>.product-shell__auth{width:min(var(--percent-full),var(--auth-panel-max))}.product-shell__content.session-state>h1,.product-shell__content.session-state>output,.product-shell__content.session-state>.correlation-id{color:var(--color-surface-raised)}.product-shell #route-heading{scroll-margin-top:calc(var(--shell-masthead-min) + var(--space-4))}.product-shell .page-header h1{margin-block:0;font-family:var(--font-display);font-size:var(--text-h1)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media(forced-colors:active){.product-shell .shell-masthead{color:CanvasText;background:Canvas}.product-shell .shell-brand,.product-shell .shell-nav a,.product-shell__live{color:CanvasText}.product-shell__logout .button--quiet{color:ButtonText}.product-shell__content.session-state>h1,.product-shell__content.session-state>output,.product-shell__content.session-state>.correlation-id{color:CanvasText}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:var(--border-strong) solid Highlight;outline-offset:var(--border-strong)}.product-shell .shell-nav a[aria-current=page]{outline:var(--border-strong) solid Highlight;outline-offset:calc(var(--border-strong) * -1)}}.map-field{isolation:isolate;block-size:var(--map-field-min);overflow:clip;background:var(--color-map-base)}.map-terrain{position:absolute;z-index:0;inset:0;width:var(--percent-full);height:var(--percent-full);pointer-events:none}.map-terrain__base{fill:var(--color-map-base)}.map-terrain__lowlands{fill:var(--color-map-lowland)}.map-terrain__highlands{fill:var(--color-map-highland)}.map-terrain__river{fill:none;stroke:var(--color-map-water);stroke-linecap:round;stroke-width:var(--space-8);opacity:var(--map-water-opacity)}.map-terrain__contour,.map-terrain__grid{fill:none;stroke:var(--color-map-contour);stroke-width:var(--border-strong);opacity:var(--map-contour-opacity)}.map-terrain__grid{stroke:var(--color-map-grid);stroke-width:var(--border-thin);opacity:var(--map-grid-opacity)}.map-field>.map-marker{position:relative;z-index:1}@media(forced-colors:active){.map-field{background:Canvas}.map-terrain{display:none}.map-field>.map-marker span{forced-color-adjust:none;color:Canvas;background:CanvasText;border-color:Canvas}}.map-page{display:grid;min-width:0;gap:var(--space-4)}.map-page>h1{color:var(--color-surface-raised)}.map-pan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.map-page .map-layout,.map-page .panel,.map-page .map-field{min-width:0}.map-page .map-field{width:100%;margin:0;border:0;grid-template-columns:repeat(auto-fit,minmax(var(--map-marker-hit),1fr));overflow:clip}.map-page .map-marker{grid-column:auto;grid-row:auto;justify-self:center}.map-page label{display:grid;grid-template-columns:minmax(0,1fr) minmax(5rem,8rem);align-items:center;gap:var(--space-2);margin-block:var(--space-2)}.map-page input{width:100%;min-width:0}.map-dispatch-receipt{display:block;padding:var(--space-3);color:var(--color-ink);background:var(--color-surface-raised);border:var(--border-strong) solid var(--color-bronze)}.map-dispatch-receipt a{color:var(--color-ink);font-weight:700;text-decoration-thickness:var(--border-strong)}@media(min-width:48rem){.map-pan{grid-template-columns:repeat(4,minmax(0,1fr))}}.alpha-tools{max-height:calc(var(--viewport-min) - var(--space-8));overflow:auto}.alpha-tools__form,.alpha-tools__resources,.alpha-tools__presets,.alpha-tools__result,.alpha-tools__result dl{display:grid;gap:var(--space-3)}.alpha-tools__form{margin-top:var(--space-5)}.alpha-tools__resources,.alpha-tools__presets{min-width:0;padding:0;border:0}.alpha-tools__resources legend,.alpha-tools__presets legend,.alpha-tools__amount>span{font-weight:700}.alpha-tools__resource-grid,.alpha-tools__preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--control-min) * 2),var(--grid-flex-track)));gap:var(--space-2)}.alpha-tools__check{display:flex;min-height:var(--control-min);align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface-muted);border:var(--border-thin) solid var(--color-rule);border-radius:var(--radius-sm);cursor:pointer}.alpha-tools__check:has(input:checked),.alpha-tools__preset-grid .button[aria-pressed=true]{border-color:var(--color-bronze);box-shadow:var(--shadow-inset)}.alpha-tools__check input{width:var(--space-5);min-height:var(--space-5);margin:0}.alpha-tools__amount{display:grid;gap:var(--space-2)}.alpha-tools__amount input{width:var(--percent-full);padding:var(--space-2) var(--space-3);color:var(--color-ink);background:var(--color-surface-raised);border:var(--border-thin) solid var(--color-rule-strong);border-radius:var(--radius-sm)}.alpha-tools__amount input:disabled,.alpha-tools__check:has(input:disabled){color:var(--color-ink-muted);background:var(--color-surface-muted);cursor:not-allowed}.alpha-tools__result{padding:var(--space-3);background:var(--color-surface-muted);border-inline-start:var(--border-strong) solid var(--color-success)}.alpha-tools__result dl,.alpha-tools__result dd,.alpha-tools__result p{margin:0}.alpha-tools__result dl>div{display:grid;grid-template-columns:var(--space-12) minmax(0,var(--grid-flex-track));align-items:start;gap:var(--space-2)}.alpha-tools__result dt{font-weight:700}.alpha-tools__outcome{align-items:stretch}.alpha-tools .field-error,.alpha-tools__outcome>span,.alpha-tools__outcome .button{text-wrap:balance}.alpha-tools__actions{justify-content:flex-end}@media(forced-colors:active){.alpha-tools{color:CanvasText;background:Canvas}.alpha-tools,.alpha-tools__check,.alpha-tools__amount input,.alpha-tools__result{border-color:CanvasText}.alpha-tools__check:has(input:checked),.alpha-tools__preset-grid .button[aria-pressed=true]{outline:var(--border-strong) solid Highlight}}:root{color-scheme:light;--color-canvas: #181713;--color-canvas-glow: #2a261d;--color-surface: #f0e4c6;--color-surface-raised: #fff8e6;--color-surface-muted: #ddd0ad;--color-ink: #26231d;--color-ink-muted: #5f594a;--color-rule: #9b8d6e;--color-rule-strong: #5a503e;--color-accent: #9f312d;--color-accent-hover: #7f211f;--color-bronze: #8c642c;--color-bronze-light: #d4aa58;--color-success: #3e6b45;--color-warning: #8b5a17;--color-danger: #8f2727;--color-info: #315f72;--color-focus: #176b8b;--color-veil: rgb(17 15 11 / 72%);--color-map-base: #c9b783;--color-map-lowland: #a8ad72;--color-map-highland: #7f8259;--color-map-water: #668797;--color-map-contour: #5f594a;--color-map-grid: #5a503e;--map-contour-opacity: .34;--map-grid-opacity: .24;--map-water-opacity: .82;--viewport-min: 100dvh;--body-min-inline: 20rem;--icon-size: 1.25rem;--visually-hidden-size: 1px;--visually-hidden-offset: -1px;--percent-full: 100%;--percent-half: 50%;--percent-negative-half: -50%;--canvas-glow-stop: 55%;--font-display: Georgia, Cambria, "Times New Roman", serif;--font-interface: "Segoe UI", Tahoma, sans-serif;--text-display: clamp(2rem, 5vw, 3.5rem);--text-h1: 2rem;--text-h2: 1.5rem;--text-h3: 1.125rem;--text-body: 1rem;--text-small: .875rem;--text-caption: .75rem;--line-height-h1: 1.15;--tracking-display: -.02em;--tracking-h1: -.015em;--tracking-eyebrow: .08em;--tracking-caption: .06em;--hero-title-max: 16ch;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--layout-max: 80rem;--control-min: 2.75rem;--page-header-padding: var(--space-4);--page-header-gap: var(--space-2);--content-stack-gap: var(--space-3);--content-nested-gap: var(--space-2);--content-item-padding: var(--space-3);--meter-block-padding: var(--space-2);--meter-inline-padding: var(--space-3);--radius-sm: .25rem;--radius-md: .5rem;--radius-round: 999px;--motion-micro: .12s;--motion-standard: .22s;--motion-emphasis: .36s;--motion-none: 0s;--ease-out: cubic-bezier(.2, .8, .2, 1);--shadow-panel: 0 .25rem 1rem rgb(15 12 8 / 22%);--shadow-raised: 0 .75rem 2rem rgb(15 12 8 / 34%), inset 0 1px rgb(255 255 255 / 70%);--shadow-inset: inset 0 .125rem .5rem rgb(38 35 29 / 18%);--focus-ring: 0 0 0 .125rem var(--color-surface-raised), 0 0 0 .25rem var(--color-focus);--map-grid: 1.5rem;--border-thin: 1px;--border-strong: 2px;--tab-indicator: 3px;--hero-lead-max: 38rem;--heraldic-size: 4rem;--heraldic-icon-size: 2rem;--tabpanel-min: 5rem;--map-field-min: 15rem;--map-marker-hit: 3.25rem;--map-marker-glyph: 2.5rem;--marker-lift: -.25rem;--tooltip-max: 16rem;--toast-region-min: 5rem;--dialog-max: 32rem;--press-offset: 1px;--motion-spinner: .7s;--gradient-angle-hero: 135deg;--gradient-angle-grid: 90deg;--gradient-angle-panel: 150deg;--gradient-angle-dialog: 145deg;--heraldic-rotation: 45deg;--heraldic-icon-rotation: -45deg;--spinner-rotation: 1turn;--grid-flex-track: 1fr;--shell-masthead-min: 4rem;--bottom-nav-min: 4rem;--auth-panel-max: 32rem;--shell-nav-columns: 4;--safe-area-bottom: env(safe-area-inset-bottom, 0px);--shell-content-bottom: calc( var(--bottom-nav-min) + var(--safe-area-bottom) + var(--space-6) );--layer-shell-nav: 3;--layer-skip-link: 4;--skip-link-visible: var(--space-2);--skip-link-size: 1px;--skip-link-clip: inset(50%);--state-grid-columns: 1;--map-layout-columns: 1;--map-field-columns: 4;--marker-player-shape: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);--marker-barbarian-shape: polygon(50% 0%, 100% 100%, 0% 100%);--marker-ai-shape: polygon( 25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50% );--page-inline: var(--space-4);--page-top: var(--space-4);--panel-padding: var(--space-4);--resource-columns: 1;--panel-span: 12;--panel-wide-span: 12;--panel-narrow-span: 12;--panel-full-span: 12;--hero-align: flex-start;--hero-padding: var(--space-6);--button-inline-size: 100%;--inline-alert-direction: column;--inline-alert-alignment: stretch;--inline-alert-action-width: var(--percent-full);--tabs-overflow: auto}.product-shell__masthead-inner{display:grid}@media(min-width:48rem){:root{--page-inline: var(--space-6);--page-top: var(--space-4);--panel-padding: var(--space-4);--resource-columns: 2;--hero-align: center;--hero-padding: var(--space-8);--heraldic-size: 6rem;--heraldic-icon-size: 3rem;--button-inline-size: auto;--inline-alert-direction: row;--inline-alert-alignment: center;--inline-alert-action-width: auto;--tabs-overflow: visible;--state-grid-columns: 2;--map-layout-columns: 2;--shell-content-bottom: var(--space-12)}.showcase{padding-bottom:var(--space-12)}.app-shell .shell-masthead .shell-nav{display:flex}.app-shell>.shell-nav--compact{display:none}.product-shell__masthead-inner{display:flex}.app-shell.product-shell .shell-masthead .shell-nav{flex-grow:1;justify-content:center}.product-shell .shell-masthead:has(.inline-alert){position:sticky}.state-catalog .page-header{flex-direction:row;align-items:center;justify-content:space-between}}@media(min-width:64rem){:root{--resource-columns: 4;--panel-span: 6;--panel-wide-span: 7;--panel-narrow-span: 5}}@media(min-width:80rem){:root{--page-inline: var(--space-8)}}*{box-sizing:border-box}html{background:var(--color-canvas)}body{margin:0;min-width:var(--body-min-inline);min-height:var(--viewport-min);color:var(--color-ink);background:var(--color-canvas);font-family:var(--font-interface);font-size:var(--text-body);line-height:1.55}button,input,select{min-height:var(--control-min);font:inherit}svg{display:block;width:var(--icon-size);height:var(--icon-size)}.sr-only{position:absolute;width:var(--visually-hidden-size);height:var(--visually-hidden-size);padding:0;margin:var(--visually-hidden-offset);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:var(--motion-none)!important;animation-duration:var(--motion-none)!important;animation-iteration-count:1!important}.button:active,.dialog[open],.map-marker:hover,.map-marker[aria-pressed=true],.spinner,.tooltip{transform:none!important}}.showcase{min-height:var(--viewport-min);padding:var(--page-top) var(--page-inline) calc(var(--space-12) + var(--bottom-nav-min));background:radial-gradient(circle at var(--percent-half) 0,var(--color-canvas-glow),var(--color-canvas) var(--canvas-glow-stop))}.showcase>*{width:min(var(--percent-full),var(--layout-max));margin-inline:auto}.hero{position:relative;display:flex;align-items:var(--hero-align);justify-content:space-between;gap:var(--space-6);padding:var(--hero-padding);overflow:hidden;background:linear-gradient(var(--gradient-angle-hero),var(--color-surface-raised),var(--color-surface));border:var(--border-thin) solid var(--color-rule-strong);border-bottom:0;box-shadow:var(--shadow-panel)}.hero:after{position:absolute;inset:0;content:"";pointer-events:none;opacity:.28;background-image:linear-gradient(var(--color-rule) var(--border-thin),transparent var(--border-thin)),linear-gradient(var(--gradient-angle-grid),var(--color-rule) var(--border-thin),transparent var(--border-thin));background-size:var(--map-grid) var(--map-grid)}.hero>*{position:relative;z-index:1}.hero h1{max-width:var(--hero-title-max);margin:0;font-family:var(--font-display);font-size:var(--text-display);line-height:1.05;letter-spacing:var(--tracking-display)}.hero__lead{max-width:var(--hero-lead-max);margin:var(--space-3) 0 0;color:var(--color-ink-muted)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-accent);font-size:var(--text-caption);font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.heraldic-mark{display:grid;width:var(--heraldic-size);height:var(--heraldic-size);place-items:center;color:var(--color-surface-raised);background:var(--color-accent);border:var(--space-1) double var(--color-surface);transform:rotate(var(--heraldic-rotation));box-shadow:var(--shadow-panel)}.heraldic-mark svg{width:var(--heraldic-icon-size);height:var(--heraldic-icon-size);transform:rotate(var(--heraldic-icon-rotation))}.resource-strip{display:grid;grid-template-columns:repeat(var(--resource-columns),var(--grid-flex-track));gap:var(--border-thin);padding:var(--border-thin);background:var(--color-rule-strong);box-shadow:var(--shadow-panel)}.meter{padding:var(--meter-block-padding) var(--meter-inline-padding);background:var(--color-surface-muted)}.meter__line,.meter__label{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.meter__label{justify-content:flex-start;color:var(--color-ink);font-size:var(--text-small)}.meter strong{font-size:var(--text-small);font-variant-numeric:tabular-nums}.meter__state{color:var(--color-ink);font-size:var(--text-caption);font-weight:700}.meter progress{width:var(--percent-full);height:var(--space-2);margin-top:var(--space-1);accent-color:var(--color-bronze)}.showcase-grid{display:grid;grid-template-columns:repeat(12,var(--grid-flex-track));gap:var(--space-5);padding-top:var(--space-5)}.panel{padding:var(--panel-padding);background:linear-gradient(var(--gradient-angle-panel),var(--color-surface-raised),var(--color-surface));border:var(--border-thin) solid var(--color-rule);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel)}.showcase-grid>.panel{grid-column:span var(--panel-span)}.showcase-grid>.panel:nth-child(3),.showcase-grid>.panel:nth-child(4){grid-column:span var(--panel-wide-span)}.showcase-grid>.panel:nth-child(4){grid-column:span var(--panel-narrow-span)}.showcase-grid>.panel:last-child{grid-column:span var(--panel-full-span)}.panel--raised{box-shadow:var(--shadow-raised)}.panel--inset{background-color:var(--color-surface-muted);background-image:linear-gradient(var(--color-rule) var(--border-thin),transparent var(--border-thin)),linear-gradient(var(--gradient-angle-grid),var(--color-rule) var(--border-thin),transparent var(--border-thin));background-size:var(--map-grid) var(--map-grid);box-shadow:var(--shadow-inset)}.panel--highlighted{border-color:var(--color-bronze)}.panel--empty{background:var(--color-surface-muted)}.panel--error{border-color:var(--color-danger)}.panel__header{margin-bottom:var(--space-5);border-bottom:var(--border-thin) solid var(--color-rule)}.panel h2,.panel h3{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--text-h2);line-height:1.2}.button-row,.badge-row{display:flex;align-items:center;gap:var(--space-2)}.button-row--wrap,.badge-row{flex-wrap:wrap}.badge-row{margin-top:var(--space-5)}.button{display:inline-flex;width:var(--button-inline-size);min-height:var(--control-min);align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--color-surface-raised);background:var(--color-accent);border:var(--border-thin) solid var(--color-accent-hover);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--motion-micro) var(--ease-out),filter var(--motion-micro) var(--ease-out)}.button:hover:not(:disabled){filter:brightness(.9)}.button:active:not(:disabled){transform:translateY(var(--press-offset))}.button--secondary{color:var(--color-ink);background:var(--color-bronze-light);border-color:var(--color-bronze)}.button--quiet{color:var(--color-ink);background:transparent;border-color:var(--color-rule)}.button--danger{background:var(--color-danger)}.button:disabled{color:var(--color-ink-muted);background:var(--color-surface-muted);border-color:var(--color-rule-strong);cursor:not-allowed}@media(forced-colors:active){.button{color:ButtonText;background:ButtonFace;border-color:ButtonText}.button:disabled{color:GrayText;background:Canvas;border-color:GrayText}}.spinner{width:var(--space-4);height:var(--space-4);border:var(--border-strong) solid var(--color-surface);border-top-color:transparent;border-radius:var(--radius-round);animation:spin var(--motion-spinner) linear infinite}@keyframes spin{to{transform:rotate(var(--spinner-rotation))}}.badge{display:inline-flex;align-items:center;min-height:var(--space-6);padding:0 var(--space-2);color:var(--color-ink);background:var(--color-surface-muted);border:var(--border-thin) solid var(--color-rule);border-radius:var(--radius-round);font-size:var(--text-caption);font-weight:700}.badge--success{color:var(--color-surface-raised);background:var(--color-success);border-color:var(--color-success)}.badge--warning{color:var(--color-surface-raised);background:var(--color-warning);border-color:var(--color-warning)}.badge--danger{color:var(--color-surface-raised);background:var(--color-danger);border-color:var(--color-danger)}.badge--info{color:var(--color-surface-raised);background:var(--color-info);border-color:var(--color-info)}.inline-alert{display:flex;min-height:var(--control-min);flex-direction:var(--inline-alert-direction);align-items:var(--inline-alert-alignment);gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-muted);border-inline-start:var(--border-strong) solid var(--color-info)}.inline-alert--success{border-color:var(--color-success)}.inline-alert--warning{border-color:var(--color-warning)}.inline-alert--error{border-color:var(--color-danger)}.inline-alert strong{display:block;flex-shrink:0;overflow-wrap:normal;white-space:nowrap}.inline-alert>span{display:block;min-width:0;overflow-wrap:anywhere}.inline-alert>.button-row{width:var(--inline-alert-action-width)}.inline-alert>.button,.inline-alert>.button-row>.button{width:var(--inline-alert-action-width);overflow-wrap:normal;word-break:normal}.tabs{display:flex;gap:var(--space-1);border-bottom:var(--border-thin) solid var(--color-rule);overflow-x:var(--tabs-overflow)}.tabs button{padding:var(--space-2) var(--space-3);color:var(--color-ink-muted);background:transparent;border:0;border-bottom:var(--tab-indicator) solid transparent;cursor:pointer}.tabs button[aria-selected=true]{color:var(--color-ink);border-bottom-color:var(--color-accent)}.tabs button:disabled{cursor:not-allowed;opacity:.5}.tabpanel{min-height:var(--tabpanel-min);padding:var(--space-4);background:var(--color-surface-muted);border-radius:0 0 var(--radius-sm) var(--radius-sm)}table{width:var(--percent-full);border-collapse:collapse;text-align:left}.table-wrap{overflow-x:auto}th,td{padding:var(--space-3);border-bottom:var(--border-thin) solid var(--color-rule)}thead th{color:var(--color-ink-muted);font-size:var(--text-caption);letter-spacing:var(--tracking-caption);text-transform:uppercase}.panel--empty thead th{color:var(--color-ink)}tbody tr:hover{background:var(--color-surface-muted)}tbody tr[aria-selected=true]{background:var(--color-surface-muted);box-shadow:inset var(--border-strong) 0 var(--color-bronze)}.table-sort{min-height:var(--control-min);padding:0;color:inherit;background:transparent;border:0;font:inherit;cursor:pointer}.timer{font-variant-numeric:tabular-nums;font-weight:700}.timer--urgent{color:var(--color-danger)}.map-field{position:relative;display:grid;grid-template-columns:repeat(var(--map-field-columns),var(--grid-flex-track));align-items:center;min-height:var(--map-field-min);padding:var(--space-4)}.map-marker{display:grid;width:var(--map-marker-hit);height:var(--map-marker-hit);min-height:0;place-items:center;padding:0;color:var(--color-surface-raised);background:transparent;border:0;cursor:pointer;transition:transform var(--motion-standard) var(--ease-out)}.map-marker span{display:grid;width:var(--map-marker-glyph);height:var(--map-marker-glyph);place-items:center;background:var(--color-bronze);border:var(--border-strong) solid var(--color-surface-raised);clip-path:var(--marker-player-shape);box-shadow:var(--shadow-panel)}.map-marker svg{transform:none}.map-marker:hover,.map-marker[aria-pressed=true]{transform:translateY(var(--marker-lift)) scale(1.05)}.map-marker--player{grid-column:2;grid-row:2}.map-marker--barbarian{grid-column:1;grid-row:1}.map-marker--barbarian span{background:var(--color-ink-muted);clip-path:var(--marker-barbarian-shape)}.map-marker--ai{grid-column:4;grid-row:3}.map-marker--ai span{background:var(--color-danger);clip-path:var(--marker-ai-shape)}.map-marker:disabled{cursor:not-allowed;opacity:.5}.map-marker:disabled:hover{transform:none}.map-marker:disabled:last-child{grid-column:3;grid-row:1}.map-selection{display:block;padding:var(--space-2) var(--space-3);color:var(--color-ink);background:var(--color-surface-raised);border:var(--border-thin) solid var(--color-rule);font-size:var(--text-small);font-weight:700}.map-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-3);background:var(--color-surface-raised);border:var(--border-thin) solid var(--color-rule);font-size:var(--text-small)}.map-legend span{display:flex;align-items:center;gap:var(--space-2)}.key{width:var(--space-3);height:var(--space-3);background:var(--color-bronze);clip-path:var(--marker-player-shape)}.key--barbarian{background:var(--color-ink-muted);clip-path:var(--marker-barbarian-shape)}.key--ai{background:var(--color-danger);clip-path:var(--marker-ai-shape)}.form-stack,.feedback-stack{display:grid;gap:var(--space-4)}.form-stack label:not(.check-row){display:grid;gap:var(--space-1);color:var(--color-ink-muted);font-size:var(--text-small);font-weight:700}input,select{width:var(--percent-full);padding:var(--space-2) var(--space-3);color:var(--color-ink);background:var(--color-surface-raised);border:var(--border-thin) solid var(--color-rule-strong);border-radius:var(--radius-sm)}input[aria-invalid=true]{border-color:var(--color-danger)}.check-row{display:flex;align-items:center;gap:var(--space-3);min-height:var(--control-min)}.check-row input{width:var(--control-min);min-height:var(--control-min);accent-color:var(--color-accent)}.form-error{margin:calc(var(--space-3) * -1) 0 0;color:var(--color-danger);font-size:var(--text-small);font-weight:700}.form-hint{margin:calc(var(--space-3) * -1) 0 0;color:var(--color-ink-muted);font-size:var(--text-small)}.tooltip-wrap{position:relative;display:inline-flex;width:fit-content;margin:0;padding:0;border:0}.tooltip-trigger{min-height:var(--control-min);padding:0;color:inherit;background:transparent;border:0;cursor:help}.tooltip-demo{display:inline-flex;gap:var(--space-2);padding:var(--space-2);border-bottom:var(--border-thin) dashed var(--color-rule-strong)}.tooltip{position:absolute;bottom:calc(var(--percent-full) + var(--space-2));left:var(--percent-half);z-index:2;width:max-content;max-width:var(--tooltip-max);padding:var(--space-2) var(--space-3);color:var(--color-surface-raised);background:var(--color-ink);border-radius:var(--radius-sm);opacity:0;pointer-events:none;transform:translate(var(--percent-negative-half),var(--space-1));transition:opacity var(--motion-standard) var(--ease-out),transform var(--motion-standard) var(--ease-out)}.tooltip[data-open=true]{opacity:1;pointer-events:auto;transform:translate(var(--percent-negative-half))}.toast-region{min-height:var(--toast-region-min)}.toast{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--color-surface-raised);background:var(--color-info);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel)}.toast--success{background:var(--color-success)}.toast--warning{background:var(--color-warning)}.toast--error{background:var(--color-danger)}.toast span,.toast small{display:block}.toast button,.icon-button{display:grid;width:var(--control-min);min-height:var(--control-min);place-items:center;padding:0;color:inherit;background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer}.dialog{position:fixed;width:min(calc(var(--percent-full) - var(--space-8)),var(--dialog-max));padding:var(--space-8);color:var(--color-ink);background:linear-gradient(var(--gradient-angle-dialog),var(--color-surface-raised),var(--color-surface));border:var(--border-thin) solid var(--color-rule-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-raised)}.dialog[open]{animation:dialog-in var(--motion-emphasis) var(--ease-out)}.dialog::backdrop{background:var(--color-veil)}.dialog__close{position:absolute;top:var(--space-3);right:var(--space-3);color:var(--color-ink)}.dialog h2{font-family:var(--font-display)}.dialog .button-row{justify-content:flex-end;margin-top:var(--space-6)}@keyframes dialog-in{0%{opacity:0}}.app-shell{min-height:var(--viewport-min);background:var(--color-canvas)}.skip-link{position:fixed;top:var(--skip-link-visible);left:var(--space-2);z-index:4;padding:var(--space-3) var(--space-4);min-height:var(--control-min);width:var(--skip-link-size);height:var(--skip-link-size);overflow:hidden;clip-path:var(--skip-link-clip);white-space:nowrap;color:var(--color-surface-raised);background:var(--color-ink);border-radius:var(--radius-sm)}.skip-link:focus{width:auto;height:auto;clip-path:none}.shell-masthead{display:flex;min-height:var(--shell-masthead-min);align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--page-inline);color:var(--color-surface-raised);background:var(--color-canvas-glow);border-bottom:var(--border-thin) solid var(--color-rule-strong)}.shell-brand{display:grid;min-height:var(--control-min);align-items:center;color:inherit;font-family:var(--font-display);font-size:var(--text-h3);font-weight:700;text-decoration:none}.shell-nav{display:none;gap:var(--space-1)}.shell-nav a{display:grid;min-width:var(--control-min);min-height:var(--control-min);place-items:center;padding:var(--space-2) var(--space-3);color:inherit;border-bottom:var(--tab-indicator) solid transparent;text-decoration:none}.shell-nav a[aria-current=page]{border-color:var(--color-bronze-light)}.shell-nav--compact{position:fixed;right:0;bottom:0;left:0;z-index:3;display:grid;min-height:var(--bottom-nav-min);grid-template-columns:repeat(3,var(--grid-flex-track));color:var(--color-surface-raised);background:var(--color-canvas-glow);border-top:var(--border-thin) solid var(--color-rule-strong)}.page-header{display:flex;flex-direction:column;gap:var(--page-header-gap);padding:var(--page-header-padding);color:var(--color-ink);background:var(--color-surface-raised);border:var(--border-thin) solid var(--color-rule)}.page-header h2,.page-header p{margin-block:0}.page-header h2{font-family:var(--font-display);font-size:var(--text-h1)}.page-header__actions{flex:none}.state-catalog,.map-catalog{padding-top:var(--space-4)}.state-grid{display:grid;grid-template-columns:repeat(var(--state-grid-columns),minmax(0,var(--grid-flex-track)));gap:var(--content-stack-gap);padding-top:var(--content-stack-gap)}.state-grid .panel{grid-column:auto}.state-stack,.connection-states{display:grid;gap:var(--content-nested-gap)}.queue-list{padding:0;margin:0;list-style:none}.async-state{display:flex;min-height:var(--control-min);flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-muted);border-inline-start:var(--border-strong) solid var(--color-info)}.async-state--ready{border-color:var(--color-success)}.action-card,.queue-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--content-stack-gap);padding:var(--content-item-padding);background:var(--color-surface-muted);border:var(--border-thin) solid var(--color-rule)}.action-card h4,.action-card p{margin-block:0}.action-card h4{font-size:var(--text-h3)}.queue-item>div{display:grid;gap:var(--space-1)}.pagination{display:grid;grid-template-columns:repeat(3,var(--grid-flex-track));align-items:center;gap:var(--space-2);margin-top:var(--space-4)}.pagination output{text-align:center}.map-layout{display:grid;grid-template-columns:repeat(var(--map-layout-columns),minmax(0,var(--grid-flex-track)));gap:var(--space-4)}.map-list{display:grid;gap:var(--space-2);padding:0;list-style:none}.map-list button{display:flex;width:var(--percent-full);min-height:var(--control-min);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--color-ink);background:var(--color-surface-raised);border:var(--border-thin) solid var(--color-rule);cursor:pointer}.map-list button[aria-pressed=true]{border-color:var(--color-bronze);box-shadow:inset var(--border-strong) 0 var(--color-bronze)}@media(forced-colors:active){.shell-nav a[aria-current=page],.tabs button[aria-selected=true],.map-marker[aria-pressed=true],.map-list button[aria-pressed=true]{outline:var(--border-strong) solid Highlight;outline-offset:calc(var(--border-strong) * -1)}.key,.map-marker span{border:var(--border-strong) solid CanvasText}}.route-harness{min-height:var(--viewport-min);padding:var(--page-top) var(--page-inline);color:var(--color-ink);background:var(--color-surface)}.route-harness h1{margin-block:0 var(--space-4);font-family:var(--font-display);font-size:var(--text-h1);letter-spacing:var(--tracking-h1);line-height:var(--line-height-h1)}.route-harness p{margin-block:0}
