:root {
  color-scheme: dark;
  --ink: #0a0e10;
  --night: #101719;
  --slate: #172124;
  --panel: #1b2629;
  --panel-2: #202e31;
  --panel-3: #26373a;
  --line: rgba(205, 190, 154, .14);
  --line-bright: rgba(220, 190, 119, .34);
  --parchment: #ded4ba;
  --muted: #928f82;
  --bronze: #c7924f;
  --bronze-bright: #edbd70;
  --ember: #d26938;
  --ember-bright: #f18b4f;
  --teal: #4da3a2;
  --violet: #9c7bd4;
  --danger: #c7584d;
  --success: #6da67a;
  --info: #5999a9;
  --radius: 5px;
  --shadow: 0 18px 60px rgba(0, 0, 0, .42);
  --topbar: 72px;
  --sidebar: 220px;
  --rail: 296px;
  --base: /;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--ink); color: var(--parchment); font-size: 14px; overflow-x: hidden; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible { outline: 2px solid var(--bronze-bright); outline-offset: 2px; }
[hidden] { display: none !important; }
svg { width: 1em; height: 1em; fill: none; }

::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: rgba(0,0,0,.16); }
::-webkit-scrollbar-thumb { background: #344345; border: 2px solid #182124; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #48595a; }

.boot-screen { position: fixed; inset: 0; z-index: 999; display: grid; place-content: center; gap: 22px; text-align: center; background: radial-gradient(circle at 50% 45%, #202828, #0a0e10 60%); color: var(--muted); letter-spacing: .09em; text-transform: uppercase; font-size: 11px; }
.boot-sigil { position: relative; width: 68px; height: 68px; margin: auto; border: 1px solid rgba(199,146,79,.22); border-radius: 50%; animation: sigil-turn 5s linear infinite; }
.boot-sigil::before, .boot-sigil::after { content: ""; position: absolute; inset: 9px; border: 1px solid rgba(199,146,79,.55); transform: rotate(45deg); }
.boot-sigil::after { inset: 22px; background: var(--ember); border: 0; box-shadow: 0 0 22px var(--ember); }
.boot-sigil span { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--bronze-bright); left: calc(50% - 2px); transform-origin: 2px 34px; }
.boot-sigil span:nth-child(1) { transform: rotate(0deg); }.boot-sigil span:nth-child(2) { transform: rotate(120deg); }.boot-sigil span:nth-child(3) { transform: rotate(240deg); }
.boot-sigil.small { width: 42px; height: 42px; }.boot-sigil.small::before { inset: 7px; }.boot-sigil.small::after { inset: 14px; }.boot-sigil.small span { transform-origin: 2px 21px; }
@keyframes sigil-turn { to { transform: rotate(360deg); } }

.auth-scene { position: relative; min-height: 100vh; overflow: hidden; isolation: isolate; background: #11191d url("../images/ashfall-realm.png?v=20260719.2630") center/cover fixed; }
.auth-scene::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,11,13,.89) 0%, rgba(9,13,15,.66) 42%, rgba(6,9,11,.36) 65%, rgba(6,9,11,.68) 100%), linear-gradient(0deg, #090d0f 0%, transparent 35%, rgba(5,8,9,.4)); }
.auth-atmosphere { position: absolute; inset: 0; z-index: -1; opacity: .35; background-image: radial-gradient(circle at 20% 74%, rgba(218,101,41,.28), transparent 20%), radial-gradient(circle at 73% 43%, rgba(132,87,184,.22), transparent 16%); animation: atmosphere 9s ease-in-out infinite alternate; }
@keyframes atmosphere { to { opacity: .58; transform: scale(1.025); } }
.landing-header, .landing-footer { position: relative; display: flex; align-items: center; justify-content: space-between; max-width: 1420px; margin: auto; padding: 27px 5vw; }
.landing-header { border-bottom: 1px solid rgba(222,212,186,.12); }
.wordmark { display: inline-flex; align-items: center; gap: 11px; color: var(--parchment); text-decoration: none; }
.wordmark-mark { width: 43px; height: 43px; color: var(--bronze-bright); filter: drop-shadow(0 0 10px rgba(199,146,79,.25)); }
.wordmark span { display: flex; flex-direction: column; line-height: 1; letter-spacing: .13em; }
.wordmark b { font-family: Georgia, "Times New Roman", serif; font-size: 19px; font-weight: 500; }.wordmark small { margin-top: 5px; color: var(--bronze); font-size: 8px; letter-spacing: .38em; }
.world-status { display: inline-flex; align-items: center; gap: 9px; padding: 9px 13px; border: 1px solid rgba(222,212,186,.12); background: rgba(11,16,18,.46); color: #aaa898; font-size: 11px; letter-spacing: .05em; backdrop-filter: blur(12px); }
.world-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 10px var(--success); }
.landing-grid { position: relative; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(350px, 440px); align-items: center; gap: clamp(50px, 10vw, 160px); min-height: calc(100vh - 170px); max-width: 1320px; margin: auto; padding: 70px 5vw 90px; }
.landing-copy { max-width: 720px; text-shadow: 0 3px 20px rgba(0,0,0,.75); }
.eyebrow, .view-eyebrow { margin: 0 0 20px; color: var(--bronze-bright); font-size: 11px; font-weight: 700; letter-spacing: .28em; }
.landing-copy h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(48px, 6.1vw, 86px); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.landing-copy h1 em { color: var(--bronze-bright); font-style: normal; }
.landing-lede { max-width: 630px; margin: 28px 0 30px; color: #bbb8aa; font-family: Georgia, serif; font-size: clamp(17px, 1.7vw, 21px); line-height: 1.6; }
.feature-runes { display: flex; flex-wrap: wrap; gap: 10px; }.feature-runes > span { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid rgba(222,212,186,.13); background: rgba(10,15,17,.48); color: #b4b1a3; font-size: 11px; letter-spacing: .04em; backdrop-filter: blur(8px); }.feature-runes > span > .ui-icon { width: 20px; height: 20px; padding: 0; border: 0; background-color: transparent; color: var(--bronze-bright); backdrop-filter: none; }
.panel-cut { clip-path: polygon(0 13px,13px 0,calc(100% - 13px) 0,100% 13px,100% calc(100% - 13px),calc(100% - 13px) 100%,13px 100%,0 calc(100% - 13px)); }
.auth-card { position: relative; background: linear-gradient(145deg, rgba(31,43,45,.96), rgba(15,22,24,.98)); border: 1px solid var(--line-bright); box-shadow: 0 35px 90px rgba(0,0,0,.55); backdrop-filter: blur(20px); }
.auth-card::before { content: ""; position: absolute; inset: 7px; pointer-events: none; border: 1px solid rgba(222,212,186,.06); clip-path: inherit; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); }.auth-tab { border: 0; padding: 18px 10px 15px; background: rgba(0,0,0,.17); color: #8d8c82; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }.auth-tab.active { position: relative; background: transparent; color: var(--bronze-bright); }.auth-tab.active::after { content: ""; position: absolute; left: 22%; right: 22%; bottom: -1px; height: 2px; background: var(--bronze-bright); box-shadow: 0 0 10px var(--bronze); }
.auth-form { position: relative; padding: 30px 34px 28px; }.form-heading { display: flex; flex-direction: column; margin-bottom: 24px; }.form-heading span { font-family: Georgia, serif; font-size: 22px; }.form-heading small { margin-top: 6px; color: var(--muted); }
label { display: flex; flex-direction: column; gap: 7px; color: #a8a596; font-size: 11px; font-weight: 600; letter-spacing: .04em; }
label + label { margin-top: 16px; }
input, select, textarea { width: 100%; border: 1px solid rgba(222,212,186,.16); border-radius: 2px; padding: 12px 13px; background: rgba(7,11,12,.65); color: var(--parchment); transition: border .18s, box-shadow .18s, background .18s; }
input:hover, select:hover, textarea:hover { border-color: rgba(222,212,186,.28); } input:focus, select:focus, textarea:focus { border-color: var(--bronze); box-shadow: 0 0 0 3px rgba(199,146,79,.1); background: rgba(7,11,12,.86); outline: 0; }
textarea { min-height: 110px; resize: vertical; line-height: 1.5; } select { appearance: none; background-image: linear-gradient(45deg,transparent 50%,#898679 50%),linear-gradient(135deg,#898679 50%,transparent 50%); background-position: calc(100% - 17px) 52%,calc(100% - 12px) 52%; background-size: 5px 5px; background-repeat: no-repeat; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 40px; padding: 10px 16px; border: 1px solid rgba(222,212,186,.18); border-radius: 2px; background: #273336; color: var(--parchment); font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: transform .16s, border-color .16s, filter .16s, background .16s; }.btn:hover { border-color: rgba(222,212,186,.38); filter: brightness(1.08); }.btn:active { transform: translateY(1px); }.btn.primary { border-color: #d79e55; background: linear-gradient(180deg,#cf8c48,#a75a32); color: #170f0b; box-shadow: inset 0 1px rgba(255,255,255,.18),0 5px 20px rgba(191,91,42,.18); }.btn.primary:hover { background: linear-gradient(180deg,#e3a458,#bd6839); }.btn.secondary { border-color: rgba(199,146,79,.42); background: rgba(199,146,79,.1); color: var(--bronze-bright); }.btn.danger { border-color: rgba(199,88,77,.6); background: rgba(199,88,77,.15); color: #ef9a90; }.btn.ghost { background: transparent; }.btn.small { min-height: 31px; padding: 7px 10px; font-size: 9px; }.btn.wide { width: 100%; margin-top: 24px; padding: 14px; }.btn svg { width: 16px; height: 16px; }.btn:disabled { opacity: .42; filter: grayscale(.5); cursor: not-allowed; }
.form-note { margin: 18px 0 0; color: #77786f; text-align: center; font-size: 10px; }.landing-footer { padding-top: 15px; padding-bottom: 18px; border-top: 1px solid rgba(222,212,186,.08); color: #656a67; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }

.game-shell { min-height: 100vh; padding-top: var(--topbar); padding-left: var(--sidebar); padding-right: var(--rail); background: radial-gradient(circle at 55% 0,#1a2729 0,transparent 34%),#101719; }
.topbar { position: fixed; z-index: 60; inset: 0 0 auto 0; height: var(--topbar); display: flex; align-items: stretch; border-bottom: 1px solid var(--line); background: rgba(13,19,21,.97); box-shadow: 0 8px 30px rgba(0,0,0,.22); backdrop-filter: blur(16px); }
.topbar .wordmark { width: var(--sidebar); flex: 0 0 var(--sidebar); padding-left: 22px; border-right: 1px solid var(--line); }.wordmark.compact .wordmark-mark { width: 35px; height: 35px; }.wordmark.compact b { font-size: 15px; }.wordmark.compact small { font-size: 7px; }
.city-picker { display: flex; align-items: center; gap: 10px; width: 215px; padding: 0 17px; border: 0; border-right: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; }.city-picker:hover { background: rgba(255,255,255,.025); }.city-picker > svg { width: 27px; height: 27px; color: var(--bronze); }.city-picker span { flex: 1; min-width: 0; display: flex; flex-direction: column; }.city-picker small { margin-bottom: 3px; color: #6f7774; font-size: 8px; letter-spacing: .14em; }.city-picker b { overflow: hidden; color: #d5ceba; font-family: Georgia,serif; font-size: 14px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }.city-picker .chevron { width: 12px; height: 12px; color: var(--muted); }
.resource-bar { flex: 1; display: flex; align-items: stretch; min-width: 0; }.resource-chip { position: relative; display: flex; align-items: center; gap: 8px; min-width: 92px; padding: 0 14px; border-right: 1px solid var(--line); cursor: default; }.resource-chip svg { width: 22px; height: 22px; color: var(--resource-color,var(--bronze)); }.resource-chip span { display: flex; flex-direction: column; min-width: 0; }.resource-chip b { font-size: 13px; font-variant-numeric: tabular-nums; }.resource-chip small { margin-top: 2px; color: #707875; font-size: 8px; }.resource-chip .cap-line { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: rgba(255,255,255,.04); }.resource-chip .cap-line i { display: block; height: 100%; max-width: 100%; background: var(--resource-color,var(--bronze)); box-shadow: 0 0 7px var(--resource-color,var(--bronze)); }.resource-chip.capped b { color: #e08772; }
.top-actions { display: flex; align-items: center; margin-left: auto; }.icon-button { display: inline-grid; place-items: center; width: 38px; height: 38px; border: 1px solid transparent; border-radius: 3px; background: transparent; color: #9d9c92; cursor: pointer; }.icon-button:hover { border-color: var(--line); background: rgba(255,255,255,.035); color: var(--bronze-bright); }.icon-button svg { width: 19px; height: 19px; }.top-actions > .icon-button { width: 45px; height: 100%; border-left: 1px solid var(--line); border-radius: 0; }
.badge-wrap { position: relative; }.badge { position: absolute; display: grid; place-items: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--ember); color: white; font-size: 8px; font-style: normal; font-weight: 800; box-shadow: 0 0 0 2px var(--night); }.top-actions .badge { top: 14px; right: 7px; }
.profile-chip { display: flex; align-items: center; gap: 10px; min-width: 175px; height: 100%; padding: 0 18px; border: 0; border-left: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; }.profile-chip:hover { background: rgba(255,255,255,.025); }.avatar { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--bronze); transform: rotate(45deg); background: linear-gradient(135deg,#523425,#222b2d); color: var(--bronze-bright); font-family: Georgia,serif; }.avatar::first-letter { transform: rotate(-45deg); }.profile-chip > span:last-child { display: flex; flex-direction: column; }.profile-chip b { font-size: 11px; }.profile-chip small { margin-top: 3px; color: #777c78; font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }
.mobile-menu { display: none; }

.sidebar { position: fixed; z-index: 50; top: var(--topbar); bottom: 0; left: 0; width: var(--sidebar); display: flex; flex-direction: column; padding: 18px 12px 14px; border-right: 1px solid var(--line); background: linear-gradient(180deg,#141d1f,#0f1517); overflow-y: auto; transition: transform .2s; }
.sidebar nav { flex: 1; }.nav-label { margin: 16px 11px 7px; color: #59615f; font-size: 8px; font-weight: 800; letter-spacing: .18em; }.nav-item { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 40px; margin: 2px 0; padding: 7px 11px; border: 1px solid transparent; border-radius: 2px; background: transparent; color: #878c88; cursor: pointer; text-align: left; transition: .16s; }.nav-item svg { width: 19px; height: 19px; flex: 0 0 auto; }.nav-item span { font-size: 11px; font-weight: 600; letter-spacing: .025em; }.nav-item:hover { background: rgba(255,255,255,.025); color: #c6c2b3; }.nav-item.active { border-color: rgba(199,146,79,.15); background: linear-gradient(90deg,rgba(199,146,79,.14),rgba(199,146,79,.025)); color: var(--bronze-bright); }.nav-item.active::before { content: ""; position: absolute; top: 7px; bottom: 7px; left: -12px; width: 2px; background: var(--bronze-bright); box-shadow: 0 0 10px var(--bronze); }.nav-badge { top: 11px; right: 9px; }.nav-pulse { position: absolute; right: 12px; width: 7px; height: 7px; border-radius: 50%; background: var(--ember); box-shadow: 0 0 8px var(--ember); }
.season-card { display: flex; align-items: center; gap: 10px; padding: 13px 10px; border: 1px solid rgba(154,117,200,.17); background: linear-gradient(135deg,rgba(112,76,153,.09),rgba(0,0,0,.1)); }.season-sigil { display: grid; place-items: center; width: 34px; height: 34px; color: var(--violet); }.season-sigil svg { width: 28px; height: 28px; }.season-card > span { display: flex; flex-direction: column; }.season-card small { color: #796b89; font-size: 7px; letter-spacing: .1em; }.season-card b { margin-top: 3px; color: #b6a7c7; font-size: 10px; font-variant-numeric: tabular-nums; }

.main-content { min-height: calc(100vh - var(--topbar)); padding: 26px clamp(18px,2.2vw,36px) 60px; background-image: linear-gradient(rgba(207,194,153,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(207,194,153,.018) 1px,transparent 1px); background-size: 36px 36px; }
.right-rail { position: fixed; z-index: 40; top: var(--topbar); right: 0; bottom: 0; width: var(--rail); padding: 18px 16px; border-left: 1px solid var(--line); background: #121a1c; overflow-y: auto; }
.rail-section { padding-bottom: 19px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }.rail-section:last-child { border: 0; }.rail-section > header { display: flex; align-items: center; justify-content: space-between; min-height: 28px; margin-bottom: 10px; }.rail-section header > span { display: inline-flex; align-items: center; gap: 7px; color: #9d9c90; font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.rail-section header svg { width: 15px; height: 15px; color: var(--bronze); }.text-button { padding: 3px; border: 0; background: transparent; color: #777d79; font-size: 9px; cursor: pointer; }.text-button:hover { color: var(--bronze-bright); }
.active-orders { display: grid; gap: 7px; }.queue-mini { position: relative; padding: 10px; border: 1px solid var(--line); background: rgba(255,255,255,.018); overflow: hidden; }.queue-mini > div { display: flex; align-items: center; gap: 9px; }.queue-mini .order-icon { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid rgba(199,146,79,.24); color: var(--bronze); }.queue-mini svg { width: 16px; height: 16px; }.queue-mini span { min-width: 0; display: flex; flex: 1; flex-direction: column; }.queue-mini b { overflow: hidden; color: #bcb8aa; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.queue-mini small { margin-top: 2px; color: #686f6c; font-size: 8px; }.queue-mini time { color: var(--bronze-bright); font-size: 9px; font-variant-numeric: tabular-nums; }.mini-progress { height: 2px; margin: 8px -10px -10px; background: rgba(255,255,255,.04); }.mini-progress i { display: block; height: 100%; background: linear-gradient(90deg,var(--bronze),var(--ember)); }
.event-rail { position: relative; }.event-visual { min-height: 120px; padding: 14px; border: 1px solid rgba(154,117,200,.18); background: linear-gradient(0deg,rgba(16,14,24,.92),rgba(16,14,24,.18)),url("../images/ashfall-realm.png") 55% 37%/cover; }.event-visual small { color: var(--violet); font-size: 8px; letter-spacing: .1em; }.event-visual h4 { margin: 6px 0; font-family: Georgia,serif; font-size: 17px; font-weight: 400; }.event-visual p { margin: 0; color: #898494; font-size: 9px; line-height: 1.5; }.quest-mini { padding: 10px 0; }.quest-mini + .quest-mini { border-top: 1px solid var(--line); }.quest-mini header { display: flex; justify-content: space-between; }.quest-mini b { color: #aaa89d; font-size: 10px; }.quest-mini span { color: var(--bronze); font-size: 9px; }.quest-mini .progress { margin-top: 8px; }
.mobile-nav { display: none; }

.view-loading { display: grid; gap: 16px; }.skeleton-view span { height: 110px; border: 1px solid var(--line); background: linear-gradient(90deg,#182225 20%,#202d30 40%,#182225 60%); background-size: 200% 100%; animation: skeleton 1.4s infinite; }.skeleton-view span:first-child { height: 170px; }.skeleton-view span:nth-child(2) { width: 65%; }.skeleton-view span:nth-child(3) { width: 82%; }
@keyframes skeleton { to { background-position: -200% 0; } }
.view-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }.view-title h1 { margin: 2px 0 0; font-family: Georgia,serif; font-size: clamp(26px,2.6vw,38px); font-weight: 400; letter-spacing: -.02em; }.view-title p { max-width: 700px; margin: 8px 0 0; color: #7f8580; line-height: 1.55; }.view-eyebrow { margin: 0; font-size: 8px; }.view-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.panel { border: 1px solid var(--line); background: linear-gradient(145deg,rgba(31,44,47,.86),rgba(22,31,34,.92)); box-shadow: 0 8px 30px rgba(0,0,0,.12); }.panel-inner { padding: 17px; }.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-height: 44px; padding: 0 15px; border-bottom: 1px solid var(--line); background: rgba(0,0,0,.1); }.section-heading > span, .section-heading h2, .section-heading h3 { margin: 0; color: #aaa99d; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.section-heading em { color: #707774; font-size: 9px; font-style: normal; font-weight: 400; letter-spacing: 0; text-transform: none; }
.city-hero { position: relative; min-height: 210px; margin-bottom: 20px; overflow: hidden; border: 1px solid var(--line-bright); background: linear-gradient(90deg,rgba(10,15,17,.92),rgba(10,15,17,.28) 65%,rgba(10,15,17,.55)),url("../images/ashfall-realm.png") center 58%/cover; box-shadow: var(--shadow); }.city-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(transparent,rgba(10,15,17,.82)); pointer-events: none; }.city-hero-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; min-height: 210px; max-width: 580px; padding: 28px; }.city-hero .view-eyebrow { color: var(--bronze-bright); }.city-hero h1 { margin: 7px 0 5px; font-family: Georgia,serif; font-size: clamp(32px,4vw,50px); font-weight: 400; }.city-hero p { margin: 0; color: #aaa99e; }.city-meta { display: flex; flex-wrap: wrap; gap: 17px; margin-top: 20px; }.city-meta span { display: flex; align-items: center; gap: 6px; color: #898e88; font-size: 10px; }.city-meta svg { width: 15px; height: 15px; color: var(--bronze); }
.city-overview-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.75fr); gap: 18px; align-items: start; }.building-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; padding: 12px; }.building-card { position: relative; min-height: 132px; padding: 12px; overflow: hidden; border: 1px solid rgba(222,212,186,.11); background: linear-gradient(145deg,rgba(255,255,255,.03),rgba(0,0,0,.12)); cursor: pointer; transition: .17s; }.building-card:hover { z-index: 1; border-color: var(--line-bright); background: linear-gradient(145deg,rgba(199,146,79,.09),rgba(0,0,0,.13)); transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0,0,0,.2); }.building-card.locked { filter: saturate(.3); opacity: .58; }.building-art { position: absolute; right: -9px; bottom: -10px; width: 86px; height: 86px; color: rgba(199,146,79,.13); transform: rotate(-7deg); }.building-icon { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid rgba(199,146,79,.24); color: var(--bronze); background: rgba(0,0,0,.15); }.building-icon svg { width: 21px; height: 21px; }.building-card h3 { max-width: 70%; margin: 11px 0 4px; color: #bab7aa; font-family: Georgia,serif; font-size: 14px; font-weight: 400; }.building-card p { max-width: 72%; margin: 0; color: #68706d; font-size: 9px; line-height: 1.35; }.level-badge { position: absolute; top: 10px; right: 10px; min-width: 28px; padding: 4px 6px; border: 1px solid rgba(199,146,79,.28); color: var(--bronze-bright); font-size: 8px; text-align: center; }.building-card.locked .level-badge { color: #797e7a; border-color: var(--line); }
.city-side { display: grid; gap: 18px; }.population-card { padding: 15px; }.population-head { display: flex; align-items: center; justify-content: space-between; }.population-ledger-link{width:100%;padding:2px 0 5px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.population-ledger-link:hover b,.population-ledger-link:focus-visible b{color:var(--bronze-bright)}.population-ledger-link:focus-visible{outline:1px solid rgba(207,164,89,.5);outline-offset:4px}.population-head span { display: flex; align-items: center; gap: 8px; color: #aaa99e; font-size: 10px; }.population-head svg { width: 20px; height: 20px; color: var(--bronze); }.population-head b { font-variant-numeric: tabular-nums; }.progress { height: 5px; overflow: hidden; background: rgba(255,255,255,.055); }.progress i { display: block; height: 100%; max-width: 100%; background: linear-gradient(90deg,var(--bronze),var(--ember)); box-shadow: 0 0 10px rgba(210,105,56,.3); }.population-card .progress { margin-top: 12px; }.unit-list { max-height: 500px; overflow: auto; }.unit-row { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 12px; border-bottom: 1px solid var(--line); }.unit-row:last-child { border: 0; }.unit-portrait { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid rgba(222,212,186,.11); background: rgba(0,0,0,.15); color: #9b8060; }.unit-portrait svg { width: 22px; height: 22px; }.unit-row > span { display: flex; flex: 1; flex-direction: column; min-width: 0; }.unit-row b { color: #aaa99e; font-size: 10px; }.unit-row small { margin-top: 3px; color: #646b68; font-size: 8px; text-transform: capitalize; }.unit-row strong { color: var(--parchment); font-size: 14px; font-variant-numeric: tabular-nums; }
.cost-row { display: flex; flex-wrap: wrap; gap: 7px; }.cost { display: inline-flex; align-items: center; gap: 4px; color: #9a9a91; font-size: 9px; font-variant-numeric: tabular-nums; }.cost svg { width: 13px; height: 13px; color: var(--resource-color,var(--bronze)); }.cost.insufficient { color: #d67668; }.cost.insufficient svg { color: var(--danger); }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(100px,1fr)); gap: 8px; }.stat-box { padding: 11px; border: 1px solid var(--line); background: rgba(0,0,0,.12); }.stat-box small { display: block; color: #686f6c; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }.stat-box b { display: block; margin-top: 5px; color: #bdb8aa; font-size: 14px; }
.tabs { display: flex; gap: 2px; margin-bottom: 16px; border-bottom: 1px solid var(--line); overflow-x: auto; }.tab { position: relative; flex: 0 0 auto; padding: 11px 15px; border: 0; background: transparent; color: #777d79; font-size: 9px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }.tab:hover { color: #b2b0a6; }.tab.active { color: var(--bronze-bright); }.tab.active::after { content: ""; position: absolute; right: 8px; bottom: -1px; left: 8px; height: 2px; background: var(--bronze-bright); }

.map-layout { display: grid; grid-template-columns: minmax(0,1fr) 260px; min-height: calc(100vh - 170px); border: 1px solid var(--line); background: #11191b; }.map-shell { position: relative; min-height: 650px; overflow: hidden; border-right: 1px solid var(--line); }.world-map { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(rgba(9,15,17,.32),rgba(9,15,17,.4)),url("../images/ashfall-realm.png") center/cover; cursor: grab; }.world-map:active { cursor: grabbing; }.world-map::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(220,210,177,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(220,210,177,.08) 1px,transparent 1px); background-size: 7.1428% 10%; mask-image: linear-gradient(to bottom,transparent,black 13%,black 87%,transparent); }.map-vignette { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 100px #070b0d; }.map-marker { position: absolute; z-index: 3; display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(222,212,186,.36); border-radius: 50% 50% 50% 0; transform: translate(-50%,-50%) rotate(-45deg); background: #202c2e; color: var(--bronze-bright); box-shadow: 0 5px 15px rgba(0,0,0,.45); cursor: pointer; transition: transform .16s,filter .16s; }.map-marker svg { width: 20px; height: 20px; transform: rotate(45deg); }.map-marker:hover, .map-marker.selected { z-index: 5; filter: brightness(1.25); transform: translate(-50%,-50%) rotate(-45deg) scale(1.15); }.map-marker.own { border-color: #7eb2a2; background: #24403d; color: #8fd2bd; }.map-marker.hostile { border-color: #b4655d; background: #432929; color: #e48475; }.map-marker.npc_village { border-color: #c19a62; }.map-marker.ruin { border-color: #777b77; color: #989d99; }.map-marker.shrine { border-color: var(--violet); color: #bea5eb; background: #302941; box-shadow: 0 0 22px rgba(154,117,200,.38); }.map-marker.fort { border-radius: 2px; transform: translate(-50%,-50%); }.map-marker.fort svg { transform: none; }.map-marker.fort:hover,.map-marker.fort.selected { transform: translate(-50%,-50%) scale(1.15); }.map-label { position: absolute; z-index: 2; transform: translate(-50%,24px); padding: 3px 6px; border-radius: 2px; background: rgba(7,11,12,.72); color: #cac4b3; font-size: 8px; white-space: nowrap; pointer-events: none; text-shadow: 0 1px 3px #000; }.map-controls { position: absolute; z-index: 10; top: 14px; left: 14px; display: flex; gap: 5px; padding: 4px; border: 1px solid var(--line); background: rgba(12,18,20,.85); backdrop-filter: blur(8px); }.map-controls button { width: 32px; height: 32px; border: 0; background: rgba(255,255,255,.03); color: #aaa; cursor: pointer; }.map-controls button:hover { color: var(--bronze-bright); background: rgba(255,255,255,.07); }.map-coordinates { position: absolute; z-index: 10; right: 14px; bottom: 14px; padding: 7px 10px; border: 1px solid var(--line); background: rgba(12,18,20,.8); color: #8f958f; font-size: 9px; font-variant-numeric: tabular-nums; }.map-inspector { padding: 17px; background: #151e20; }.map-inspector.empty { display: grid; place-content: center; color: #626a67; text-align: center; }.inspector-icon { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 13px; border: 1px solid var(--line); color: #68716f; }.inspector-icon svg { width: 34px; height: 34px; }.map-inspector h2 { margin: 0 0 5px; font-family: Georgia,serif; font-size: 23px; font-weight: 400; }.map-inspector .owner { color: var(--bronze); font-size: 10px; }.map-inspector .coordinate-line { margin: 12px 0; color: #7b827e; font-size: 9px; }.map-inspector .btn { width: 100%; margin-top: 8px; }

.card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 12px; }.content-card { position: relative; padding: 16px; border: 1px solid var(--line); background: linear-gradient(145deg,rgba(255,255,255,.025),rgba(0,0,0,.1)); }.content-card:hover { border-color: rgba(222,212,186,.2); }.content-card header { display: flex; align-items: flex-start; gap: 11px; }.content-card header > span { flex: 1; }.content-card h3 { margin: 0; color: #b9b5a8; font-family: Georgia,serif; font-size: 16px; font-weight: 400; }.content-card header small { display: block; margin-top: 4px; color: #69716d; font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }.content-card p { min-height: 38px; margin: 12px 0; color: #7e837e; font-size: 10px; line-height: 1.5; }.content-card footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.movement-list { display: grid; gap: 9px; }.movement-card { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--line); background: rgba(255,255,255,.018); }.movement-icon { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid rgba(199,146,79,.23); color: var(--bronze); }.movement-icon.hostile { border-color: rgba(199,88,77,.4); color: #df786c; }.movement-icon svg { width: 24px; height: 24px; }.movement-route { min-width: 0; }.movement-route h3 { margin: 0 0 5px; overflow: hidden; color: #b2b0a4; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.movement-route p { margin: 0; color: #676f6b; font-size: 9px; }.movement-route .progress { margin-top: 9px; }.movement-time { min-width: 76px; text-align: right; }.movement-time time { display: block; color: var(--bronze-bright); font-size: 13px; font-variant-numeric: tabular-nums; }.movement-time small { display: block; margin-top: 3px; color: #68706d; font-size: 8px; }
.tech-tree { display: grid; grid-template-columns: repeat(4,minmax(220px,1fr)); gap: 14px; overflow-x: auto; }.tech-column { min-width: 220px; }.tech-column > h2 { margin: 0 0 11px; color: var(--category,var(--bronze)); font-size: 9px; letter-spacing: .11em; text-transform: uppercase; }.tech-card { position: relative; min-height: 188px; margin-bottom: 10px; padding: 15px; border: 1px solid var(--line); background: linear-gradient(145deg,rgba(255,255,255,.025),rgba(0,0,0,.12)); }.tech-card::before { content: ""; position: absolute; top: -11px; left: 29px; width: 1px; height: 11px; background: var(--line-bright); }.tech-card:first-of-type::before { display:none; }.tech-card.unavailable { opacity: .48; filter: saturate(.3); }.tech-icon { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid color-mix(in srgb,var(--category,var(--bronze)) 45%,transparent); color: var(--category,var(--bronze)); }.tech-icon svg { width: 23px; height: 23px; }.tech-level { position: absolute; top: 15px; right: 15px; color: var(--category,var(--bronze)); font-size: 9px; }.tech-card h3 { margin: 11px 0 5px; font-family: Georgia,serif; font-size: 15px; font-weight: 400; }.tech-card p { min-height: 42px; margin: 0 0 11px; color: #6f7672; font-size: 9px; line-height: 1.45; }.tech-card .btn { width: 100%; margin-top: 12px; }
.market-layout { display: grid; grid-template-columns: minmax(270px,.55fr) minmax(0,1.45fr); gap: 18px; }.exchange-wheel { padding: 18px; }.exchange-arrow { display: grid; place-items: center; width: 32px; height: 32px; margin: 10px auto; border: 1px solid var(--line); transform: rotate(90deg); color: var(--bronze); }.exchange-arrow svg { width: 17px; height: 17px; }.rate-preview { margin: 15px 0; padding: 12px; border: 1px solid var(--line); background: rgba(0,0,0,.12); color: #838985; font-size: 10px; text-align: center; }.trade-table, .data-table { width: 100%; border-collapse: collapse; }.trade-table th,.trade-table td,.data-table th,.data-table td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; }.trade-table th,.data-table th { color: #646c69; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }.trade-table td,.data-table td { color: #a6a499; font-size: 10px; }.trade-table tr:hover td,.data-table tr:hover td { background: rgba(255,255,255,.018); }
.quest-list { display: grid; gap: 10px; }.quest-card { display: grid; grid-template-columns: 58px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--line); background: rgba(255,255,255,.018); }.quest-card.complete { border-color: rgba(109,166,122,.32); background: rgba(109,166,122,.04); }.quest-icon { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(199,146,79,.24); color: var(--bronze); }.quest-icon svg { width: 28px; height: 28px; }.quest-card h3 { margin: 0 0 4px; font-family: Georgia,serif; font-size: 16px; font-weight: 400; }.quest-card p { margin: 0 0 9px; color: #717873; font-size: 9px; }.quest-progress { display: flex; align-items: center; gap: 9px; }.quest-progress .progress { flex: 1; }.quest-progress span { color: #7b817e; font-size: 8px; }.reward-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }.reward { padding: 3px 6px; border: 1px solid var(--line); color: #99998f; font-size: 8px; }
.report-list { display: grid; gap: 8px; }.report-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); background: rgba(255,255,255,.016); cursor: pointer; }.report-row:hover { border-color: var(--line-bright); }.report-outcome { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); }.report-outcome.attacker { color: var(--success); border-color: rgba(109,166,122,.3); }.report-outcome.defender,.report-outcome.failed { color: var(--danger); border-color: rgba(199,88,77,.3); }.report-outcome svg { width: 21px; height: 21px; }.report-row h3 { margin: 0 0 4px; color: #afada1; font-size: 11px; }.report-row p { margin: 0; color: #676e6b; font-size: 8px; }.report-row time { color: #727976; font-size: 8px; }
.message-layout { display: grid; grid-template-columns: minmax(280px,.7fr) minmax(300px,1.3fr); min-height: 560px; }.message-list { border-right: 1px solid var(--line); }.message-item { display: block; width: 100%; padding: 13px; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; cursor: pointer; }.message-item:hover,.message-item.active { background: rgba(255,255,255,.025); }.message-item.unread { border-left: 2px solid var(--bronze); }.message-item h3 { margin: 0; overflow: hidden; color: #aaa89e; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.message-item p { margin: 5px 0 0; color: #686f6b; font-size: 8px; }.message-view { padding: 21px; }.message-view h2 { margin: 0; font-family: Georgia,serif; font-size: 23px; font-weight: 400; }.message-meta { margin: 7px 0 20px; color: #737976; font-size: 9px; }.message-body { color: #a4a297; font-size: 11px; line-height: 1.7; white-space: pre-wrap; }
.alliance-hero { display: grid; grid-template-columns: 90px minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 22px; margin-bottom: 18px; }.alliance-crest { display: grid; place-items: center; width: 78px; height: 78px; border: 1px solid var(--bronze); transform: rotate(45deg); background: radial-gradient(circle,#3b2b24,#162022); color: var(--bronze-bright); }.alliance-crest svg { width: 46px; height: 46px; transform: rotate(-45deg); }.alliance-hero h1 { margin: 0; font-family: Georgia,serif; font-size: 30px; font-weight: 400; }.alliance-hero p { margin: 5px 0 0; color: #747b77; }.alliance-chat { height: 440px; overflow-y: auto; padding: 14px; }.chat-line { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; margin: 0 0 13px; }.chat-avatar { display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);color:var(--bronze);font-size:9px}.chat-line h4 { margin: 0 0 3px; color: #a7a59a; font-size: 9px; }.chat-line h4 time { margin-left: 6px; color: #5e6563; font-weight: 400; }.chat-line p { margin: 0; color: #888d87; font-size: 10px; line-height: 1.45; }.chat-form { display: flex; gap: 7px; padding: 11px; border-top: 1px solid var(--line); }.chat-form input { flex:1; }
.hero-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(310px,1fr)); gap: 14px; }.hero-card { position: relative; min-height: 280px; padding: 19px; overflow: hidden; }.hero-card::after { content:"";position:absolute;right:-40px;bottom:-60px;width:220px;height:220px;border:1px solid rgba(199,146,79,.08);transform:rotate(45deg);box-shadow:0 0 0 30px rgba(199,146,79,.025),0 0 0 60px rgba(199,146,79,.015)}.hero-head { position:relative;z-index:1;display:flex;align-items:center;gap:13px}.hero-portrait { display:grid;place-items:center;width:66px;height:66px;border:1px solid var(--bronze);background:linear-gradient(145deg,#3c3029,#182224);color:var(--bronze-bright)}.hero-portrait svg{width:40px;height:40px}.hero-head h2{margin:0;font-family:Georgia,serif;font-size:23px;font-weight:400}.hero-head p{margin:4px 0 0;color:#777e79;font-size:9px;text-transform:capitalize}.hero-level{margin-left:auto;text-align:center}.hero-level b{display:block;color:var(--bronze-bright);font-size:21px}.hero-level small{font-size:7px;color:#6c736f;text-transform:uppercase}.skill-list{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:18px}.skill{display:flex;align-items:center;justify-content:space-between;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.12);font-size:9px}.skill b{color:var(--bronze)}
.ranking-podium { display: grid; grid-template-columns: repeat(3,1fr); align-items: end; gap: 10px; max-width: 620px; margin: 20px auto 30px; }.podium { padding: 18px 10px; border: 1px solid var(--line); background: rgba(255,255,255,.02); text-align: center; }.podium:first-child { order: 2; min-height: 150px; border-color: rgba(199,146,79,.35); }.podium:nth-child(2) { order: 1; min-height: 120px; }.podium:nth-child(3) { order: 3; min-height: 100px; }.podium strong { display: block; color: var(--bronze-bright); font-family: Georgia,serif; font-size: 26px; }.podium b { display:block;margin-top:10px;color:#b4b1a5 }.podium small { color:#6f7672 }
.empty-state { display: grid; place-content: center; min-height: 230px; padding: 30px; color: #666d69; text-align: center; }.empty-state svg { width: 48px; height: 48px; margin: 0 auto 12px; color: #4f5957; }.empty-state h3 { margin: 0 0 6px; color: #8d918b; font-family: Georgia,serif; font-size: 17px; font-weight: 400; }.empty-state p { max-width: 360px; margin: 0 auto 14px; font-size: 10px; line-height: 1.5; }

.popover { position: fixed; z-index: 100; width: 285px; border: 1px solid var(--line-bright); background: rgba(22,31,33,.98); box-shadow: var(--shadow); backdrop-filter: blur(18px); }.city-popover { top: 65px; left: calc(var(--sidebar) + 12px); }.notification-popover { top: 65px; right: 15px; width: 340px; max-height: min(560px,calc(100vh - 80px)); overflow-y: auto; }.popover-header { display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid var(--line);color:#9d9b90;font-size:9px;font-weight:700;text-transform:uppercase}.city-option,.notification-item { display:flex;width:100%;gap:10px;padding:12px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.city-option:hover,.notification-item:hover { background:rgba(255,255,255,.025) }.city-option.active { color:var(--bronze-bright);background:rgba(199,146,79,.06)}.city-option svg{width:24px;height:24px;color:var(--bronze)}.city-option span,.notification-item span{display:flex;flex:1;flex-direction:column}.city-option b,.notification-item b{color:#a9a69b;font-size:10px}.city-option small,.notification-item small{margin-top:3px;color:#676e6b;font-size:8px}.notification-item.unread{border-left:2px solid var(--ember)}.notification-item svg{width:21px;height:21px;color:var(--bronze)}
.tooltip { position: fixed; z-index: 150; max-width: 260px; padding: 7px 9px; border: 1px solid rgba(199,146,79,.3); background: rgba(7,11,12,.96); color: #aaa89d; box-shadow: 0 7px 20px rgba(0,0,0,.4); font-size: 9px; line-height: 1.4; pointer-events: none; }
.toast-stack { position: fixed; z-index: 250; right: 18px; bottom: 18px; display: grid; gap: 8px; width: min(360px,calc(100vw - 30px)); }.toast { display: grid; grid-template-columns: 27px 1fr auto; align-items: start; gap: 9px; padding: 12px; border: 1px solid var(--line-bright); background: rgba(25,35,37,.98); box-shadow: var(--shadow); animation: toast-in .22s ease-out; }.toast.success{border-color:rgba(109,166,122,.4)}.toast.error{border-color:rgba(199,88,77,.45)}.toast svg{width:22px;height:22px;color:var(--bronze)}.toast.success svg{color:var(--success)}.toast.error svg{color:var(--danger)}.toast b{display:block;color:#b7b4a8;font-size:10px}.toast p{margin:3px 0 0;color:#727976;font-size:9px;line-height:1.4}.toast button{border:0;background:transparent;color:#737a76;cursor:pointer}@keyframes toast-in{from{opacity:0;transform:translateX(18px)}}
.modal { width: min(640px,calc(100vw - 24px)); max-height: calc(100vh - 30px); padding: 0; border: 0; background: transparent; color: var(--parchment); }.modal::backdrop { background: rgba(4,7,8,.76); backdrop-filter: blur(4px); }.modal-frame { margin:0;border:1px solid var(--line-bright);background:linear-gradient(145deg,#202d30,#141d1f);box-shadow:0 30px 100px rgba(0,0,0,.65)}.modal-frame > header { display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-frame header small{display:block;color:var(--bronze);font-size:8px;letter-spacing:.1em;text-transform:uppercase}.modal-frame h2{margin:3px 0 0;font-family:Georgia,serif;font-size:24px;font-weight:400}.modal-body{max-height:calc(100vh - 200px);padding:18px;overflow-y:auto}.modal-frame > footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:13px 18px;border-top:1px solid var(--line);background:rgba(0,0,0,.1)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label+label{margin-top:0}.form-grid .full{grid-column:1/-1}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:7px}.choice{position:relative;display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12);cursor:pointer}.choice:hover{border-color:var(--line-bright)}.choice input{width:auto}.choice svg{width:20px;height:20px;color:var(--bronze)}.army-picker{display:grid;gap:6px}.army-input{display:grid;grid-template-columns:35px 1fr 100px;align-items:center;gap:9px;padding:8px;border:1px solid var(--line)}.army-input svg{width:24px;height:24px;color:var(--bronze)}.army-input span{display:flex;flex-direction:column}.army-input b{font-size:10px}.army-input small{font-size:8px;color:#666e6a}.army-input input{padding:8px}.action-loader{position:fixed;z-index:300;inset:0;display:grid;place-content:center;gap:13px;background:rgba(6,9,10,.7);backdrop-filter:blur(3px);color:#a3a095;text-align:center;text-transform:uppercase;font-size:9px;letter-spacing:.1em}
.pagination{display:flex;justify-content:center;gap:6px;margin-top:16px}.pagination button{min-width:32px;height:32px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:#858a85;cursor:pointer}.pagination button.active{border-color:var(--bronze);color:var(--bronze-bright)}

@media (max-width: 1240px) {
  :root { --rail: 0px; }
  .right-rail { display: none; }
  .resource-chip { min-width: 76px; padding: 0 9px; }.resource-chip small { display:none }.profile-chip { min-width: auto; }.profile-chip > span:last-child { display:none }
}
@media (max-width: 980px) {
  :root { --sidebar: 0px; --topbar: 64px; }
  .topbar .wordmark { display:none }.mobile-menu { display:grid; width:50px;height:100%;border-right:1px solid var(--line);border-radius:0 }.sidebar { width:220px;transform:translateX(-100%);box-shadow:20px 0 50px rgba(0,0,0,.45) }.sidebar.open { transform:translateX(0) }.city-picker { width:190px }.resource-chip:nth-child(4),.resource-chip:nth-child(5) { display:none }.city-overview-grid { grid-template-columns:1fr }.building-grid { grid-template-columns:repeat(3,1fr) }.map-layout { grid-template-columns:1fr }.map-inspector { position:absolute;z-index:15;right:10px;bottom:10px;width:250px;max-height:60%;overflow:auto;border:1px solid var(--line-bright);box-shadow:var(--shadow) }.market-layout { grid-template-columns:1fr }.tech-tree { grid-template-columns:repeat(4,230px) }
}
@media (max-width: 760px) {
  body { font-size:13px }.auth-scene { background-attachment:scroll }.landing-header { padding:18px 20px }.world-status { display:none }.landing-grid { display:block;min-height:auto;padding:68px 20px 80px }.landing-copy { text-align:center }.landing-copy h1 { font-size:48px }.landing-lede { font-size:16px }.feature-runes { justify-content:center }.auth-card { max-width:450px;margin:50px auto 0 }.landing-footer { display:none }
  .game-shell { padding-bottom:64px }.topbar { overflow:visible }.city-picker { width:auto;min-width:145px;flex:1 }.city-picker > svg { display:none }.resource-bar { flex:0 0 auto }.resource-chip { display:none!important }.resource-chip[data-resource="essence"] { display:flex!important;min-width:82px }.top-actions > .icon-button:first-child { display:none }.profile-chip { display:none }.main-content { padding:18px 12px 35px }.mobile-nav { position:fixed;z-index:70;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,1fr);height:62px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:rgba(13,19,21,.98);backdrop-filter:blur(15px) }.mobile-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;border:0;background:transparent;color:#717976;font-size:8px}.mobile-nav svg{width:19px;height:19px}.mobile-nav button.active{color:var(--bronze-bright)}
  .view-header { align-items:flex-start;flex-direction:column }.view-actions { justify-content:flex-start }.city-hero,.city-hero-content { min-height:190px }.city-hero-content { padding:20px }.city-hero h1 { font-size:35px }.building-grid { grid-template-columns:repeat(2,1fr);padding:8px }.building-card { min-height:125px }.map-layout { min-height:0 }.map-shell { min-height:min(620px,calc(100vh - 190px));border-right:0 }.map-inspector { position:relative;z-index:auto;inset:auto;width:auto;max-height:none;overflow:visible;border:0;border-top:1px solid var(--line-bright);box-shadow:none }.map-inspector.empty { min-height:120px }.movement-card { grid-template-columns:40px minmax(0,1fr); }.movement-time { grid-column:2;text-align:left;display:flex;gap:8px;align-items:center }.quest-card { grid-template-columns:45px minmax(0,1fr) }.quest-icon { width:42px;height:42px }.quest-card > .btn { grid-column:1/-1;width:100% }.message-layout { grid-template-columns:1fr }.message-list { border-right:0 }.message-view { display:none }.message-view.open { position:fixed;z-index:80;inset:64px 0 62px;display:block;background:#151e20;overflow:auto }.alliance-hero { grid-template-columns:64px minmax(0,1fr) }.alliance-crest { width:58px;height:58px }.alliance-hero>.btn { grid-column:1/-1 }.form-grid { grid-template-columns:1fr }.form-grid .full { grid-column:auto }.notification-popover { right:8px;left:8px;width:auto }.city-popover { top:58px;left:8px }.toast-stack { right:8px;bottom:72px }.modal-body { padding:14px }.trade-table { min-width:600px }.table-scroll { overflow-x:auto }
}
@media (max-width: 430px) {
  .landing-copy h1 { font-size:40px }.landing-lede { font-size:15px }.feature-runes span { font-size:9px }.auth-form { padding:25px 22px }.auth-tab { font-size:8px }.city-picker { min-width:120px;padding:0 10px }.city-picker b { font-size:12px }.top-actions>.icon-button { width:40px }.building-grid { grid-template-columns:1fr 1fr }.building-card h3,.building-card p { max-width:78% }.content-card footer { align-items:flex-start;flex-direction:column }.card-grid,.hero-grid { grid-template-columns:1fr }.ranking-podium { gap:4px }.podium { padding:12px 4px }.podium b { font-size:9px }
}
/* Illustrated content and readable action requirements. */
.landing-actions { display:flex;align-items:center;gap:10px }.language-switch { display:grid;place-items:center;min-width:38px;height:34px;padding:0 9px;border:1px solid var(--line-bright);background:rgba(13,20,22,.72);color:var(--bronze-bright);font-size:9px;font-weight:800;letter-spacing:.08em;cursor:pointer }.language-switch:hover { border-color:var(--bronze);background:rgba(199,146,79,.1) }.language-switch.compact { height:38px;align-self:center }
.asset-art { display:block;background-image:var(--asset-image);background-repeat:no-repeat;background-size:var(--asset-size-x) var(--asset-size-y);background-position:var(--asset-x) var(--asset-y);background-color:#172124 }.asset-art.fallback { display:grid;place-items:center;color:var(--bronze) }.asset-art.fallback svg { width:55%;height:55% }
.resource-glyph { display:grid!important;place-items:center;flex:0 0 auto;width:27px;height:27px;border:1px solid color-mix(in srgb,var(--resource-color,var(--bronze)) 42%,transparent);border-radius:50%;background:color-mix(in srgb,var(--resource-color,var(--bronze)) 12%,transparent);box-shadow:inset 0 0 12px rgba(0,0,0,.22) }.resource-glyph svg { width:17px!important;height:17px!important;color:var(--resource-color,var(--bronze)) }.cost .resource-glyph { width:22px;height:22px }.cost b { font-size:10px }.cost small { display:grid;place-items:center }.cost small svg { width:11px;height:11px }.cost.sufficient { color:#83c2a5 }.cost.sufficient>svg,.cost.sufficient small svg { color:#83c2a5 }.cost.insufficient { color:#e17a70 }.cost-row.compact { gap:5px }
.requirement-summary { display:flex;flex-wrap:wrap;gap:6px }.requirement { display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--line);background:rgba(0,0,0,.14);color:#838985;font-size:8px }.requirement svg { width:12px;height:12px }.requirement b { margin-left:3px;font-variant-numeric:tabular-nums }.requirement.met { border-color:rgba(100,174,145,.35);background:rgba(61,132,105,.1);color:#83c2a5 }.requirement.missing { border-color:rgba(218,102,92,.35);background:rgba(142,52,45,.12);color:#e17a70 }.requirement-block { margin:18px 0 }.requirement-block h3,.modal-body>h3 { margin:18px 0 9px;color:#aaa99e;font-size:10px;text-transform:uppercase;letter-spacing:.06em }.action-warning,.population-check { display:flex;align-items:center;gap:7px;margin:10px 0;color:#d8786e;font-size:9px }.action-warning svg,.population-check svg { width:14px;height:14px }.population-check.sufficient { color:#83c2a5 }.population-check.insufficient { color:#e17a70 }
.building-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) }.building-card { display:flex;flex-direction:column;min-height:245px;padding:0;background:#121b1d }.building-card .building-card-art { position:absolute;inset:0 0 auto;width:100%;height:128px;background-size:var(--asset-size-x) var(--asset-size-y);filter:saturate(.82) contrast(1.03);transition:filter .2s,transform .25s }.building-card .building-card-art::after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,#121b1d 100%) }.building-card:hover .building-card-art { filter:saturate(1.05) brightness(1.05);transform:scale(1.025) }.building-card>.building-icon { position:absolute;z-index:2;top:92px;left:12px;background:#172124 }.building-card>.level-badge { z-index:3;background:rgba(12,18,20,.84);backdrop-filter:blur(6px) }.building-card .building-copy { position:relative;z-index:2;margin-top:126px;padding:0 12px }.building-card h3,.building-card p { max-width:none }.building-card h3 { margin:9px 0 4px;font-size:16px }.building-card p { min-height:36px;line-height:1.5 }.building-card footer { position:relative;z-index:2;margin-top:auto;padding:9px 12px 12px;border-top:1px solid var(--line) }.building-card footer>.requirement-summary { margin-top:8px }.building-card.unaffordable { border-color:rgba(201,96,85,.2) }.building-card.locked { filter:none;opacity:.64 }.building-modal-head { display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:start }.building-modal-art { width:150px;height:115px;border:1px solid var(--line-bright) }.building-modal-head p { margin:0 0 12px;color:#96978d;line-height:1.6 }.level-badge.static { position:static;display:inline-block }
.unit-row>.asset-art { display:block;flex:0 0 46px;width:46px;height:46px;border:1px solid var(--line) }.unit-row>.asset-art+span { flex:1 }.unit-catalog-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:10px }.unit-detail-card { display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:13px;align-items:center;padding:11px;border:1px solid var(--line);background:rgba(0,0,0,.1) }.unit-detail-art { width:84px;height:84px;border:1px solid rgba(199,146,79,.2) }.unit-detail-card h3 { margin:0;color:#beb8a8;font-family:Georgia,serif;font-weight:400 }.unit-detail-card p { margin:5px 0;color:#727975;font-size:9px;line-height:1.45 }.unit-detail-card>strong { color:var(--bronze-bright);font-size:20px }.unit-stats { display:flex;flex-wrap:wrap;gap:6px }.unit-stats span { display:flex;align-items:center;gap:3px;color:#8b918c;font-size:8px }.unit-stats svg { width:12px;height:12px;color:var(--bronze) }.army-tabs { margin-top:4px }.army-tab-panel { min-height:260px }.army-tab-panel>.panel-inner { padding:13px }.reinforcement-list { display:grid;gap:8px }.reinforcement-card { display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:9px;border:1px solid var(--line);background:rgba(0,0,0,.12) }.reinforcement-card .asset-art { width:56px;height:56px }.reinforcement-card h3 { margin:0;color:#b9b5a8;font-family:Georgia,serif;font-weight:400 }.reinforcement-card p { margin:4px 0;color:#777f7a;font-size:9px }.reinforcement-card small { color:#59615e;font-size:8px }.reinforcement-card>strong { color:var(--bronze-bright) }
.modal:has(#recruitForm) { width:min(1000px,calc(100vw - 24px)) }.recruit-controls { position:sticky;z-index:5;top:-18px;display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:end;margin:-18px -18px 15px;padding:15px 18px;border-bottom:1px solid var(--line);background:rgba(20,29,31,.97);backdrop-filter:blur(12px) }.recruit-preview { min-height:58px }.recruit-preview>small { display:block;margin-bottom:5px;color:#777e79;font-size:8px;text-transform:uppercase }.recruit-preview .population-check { display:inline-flex;margin:7px 12px 0 0 }.recruit-unit-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:9px;margin:0;padding:0;border:0 }.recruit-unit-grid legend { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0) }.recruit-unit-card { position:relative;display:grid;grid-template-columns:92px minmax(0,1fr);min-height:142px;overflow:hidden;border:1px solid var(--line);background:rgba(0,0,0,.1);cursor:pointer }.recruit-unit-card:hover { border-color:var(--line-bright) }.recruit-unit-card:has(input:checked) { border-color:var(--bronze);box-shadow:inset 0 0 0 1px rgba(199,146,79,.2);background:rgba(199,146,79,.06) }.recruit-unit-card.locked { opacity:.55;cursor:not-allowed }.recruit-unit-art { width:92px;height:100% }.recruit-unit-card>input { position:absolute;top:8px;left:8px;accent-color:var(--bronze) }.unit-choice-copy { display:flex;flex-direction:column;padding:10px }.unit-choice-copy>b { color:#bcb7a8;font-family:Georgia,serif;font-weight:400 }.unit-choice-copy>small { margin-top:3px;color:#727a76;font-size:8px }.unit-choice-copy>em { flex:1;margin:7px 0;color:#767d78;font-size:9px;font-style:normal;line-height:1.4 }.unit-choice-copy .requirement-summary { margin-top:7px }
.hero-portrait-art { flex:0 0 86px;width:86px;height:86px;border:1px solid var(--bronze);box-shadow:0 7px 20px rgba(0,0,0,.35) }.hero-equipment { position:relative;z-index:1;display:grid;gap:5px;margin-top:15px }.hero-equipment>small { color:#6e7571;font-size:8px;text-transform:uppercase }.equipment { display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px 8px;border:1px solid var(--line);color:#737a76;font-size:8px }.equipment.equipped { border-color:rgba(156,123,212,.35);background:rgba(156,123,212,.07);color:#bba8df }.equipment svg { width:15px;height:15px }.equipment em { font-style:normal;text-transform:uppercase }.hero-footer { position:relative;z-index:1;display:block;margin-top:15px;color:#777d79;font-size:9px }.spell-card.locked { opacity:.65 }.spell-card .requirement-summary,.tech-card .requirement-summary { margin:9px 0 }

/* Deterministic terrain canvas, map modes, movement routes, and real pan/zoom. */
.world-map { touch-action:none;background:#142124 }.world-map::before { z-index:2;pointer-events:none;background-size:64px 64px;opacity:.24 }.world-map.dragging { cursor:grabbing }.world-map canvas,.map-movement-layer,.map-marker-layer { position:absolute;inset:0;width:100%;height:100% }.world-map canvas { z-index:0 }.map-movement-layer { z-index:2;overflow:visible;pointer-events:none }.map-marker-layer { z-index:3 }.map-vignette { z-index:7 }.map-route line { stroke:var(--route-color);stroke-width:3;stroke-dasharray:11 8;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(0,0,0,.9));animation:route-flow 1.2s linear infinite }.map-route.hostile line { stroke-width:4 }.map-route .route-origin { fill:#182326;stroke:var(--route-color);stroke-width:3;vector-effect:non-scaling-stroke }.map-route .route-unit { fill:var(--route-color);stroke:#efe2c2;stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px var(--route-color)) }.map-style-switch { display:flex;justify-content:flex-end;gap:3px;margin:-8px 0 10px }.map-style-switch button { display:flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid var(--line);background:#11191b;color:#747c78;font-size:8px;text-transform:uppercase;cursor:pointer }.map-style-switch button.active { border-color:var(--bronze);background:rgba(199,146,79,.09);color:var(--bronze-bright) }.map-style-switch svg { width:14px;height:14px }.map-controls { flex-wrap:wrap;width:124px }.map-controls button { flex:0 0 32px }.map-legend { position:absolute;z-index:10;right:14px;top:14px;display:flex;gap:10px;padding:7px 9px;border:1px solid var(--line);background:rgba(12,18,20,.82);backdrop-filter:blur(8px);font-size:8px }.map-legend span { display:flex;align-items:center;gap:4px }.map-legend span::before { content:"";width:7px;height:7px;border-radius:50%;background:#a49a7a }.map-legend .own::before { background:#79c3aa }.map-legend .hostile::before { background:#dc776d }.map-legend .movement::before { background:#d2a65d;box-shadow:0 0 6px #d2a65d }
@keyframes route-flow { to { stroke-dashoffset:-19 } }

@media (max-width:760px) {
  .landing-actions .world-status { display:none }.language-switch.compact { min-width:32px;padding:0 6px }.building-grid { grid-template-columns:1fr 1fr }.building-card { min-height:220px }.building-card .building-card-art { height:108px }.building-card .building-copy { margin-top:107px }.building-card>.building-icon { top:74px }.building-card footer { display:none }.recruit-controls { grid-template-columns:1fr;top:-14px;margin:-14px -14px 12px;padding:12px 14px }.recruit-unit-grid { grid-template-columns:1fr }.map-style-switch { justify-content:flex-start;overflow-x:auto }.map-legend { display:none }.map-controls { width:84px }.map-controls button:nth-child(n+3) { display:none }.unit-catalog-grid { grid-template-columns:1fr }.reinforcement-card { grid-template-columns:48px minmax(0,1fr) auto }.reinforcement-card .asset-art { width:48px;height:48px }.reinforcement-card .btn { grid-column:2/-1 }.hero-head { align-items:flex-start }.hero-portrait-art { flex-basis:74px;width:74px;height:74px }
}
@media (max-width:440px) {
  .building-grid { grid-template-columns:1fr }.building-card { min-height:225px }.building-card footer { display:block }.building-modal-head { grid-template-columns:1fr }.building-modal-art { width:100%;height:170px }.unit-detail-card { grid-template-columns:68px minmax(0,1fr) }.unit-detail-art { width:68px;height:68px }.unit-detail-card>strong { grid-column:2 }.recruit-unit-card { grid-template-columns:76px minmax(0,1fr) }.recruit-unit-art { width:76px }.map-style-switch button { flex:1;justify-content:center }.hero-head { display:grid;grid-template-columns:74px minmax(0,1fr) auto }
}

/* Square source art stays aspect-correct at every responsive size. */
.asset-art { aspect-ratio:1/1 }
.asset-art.ship-unit-art { background-color:transparent }
.building-card .building-card-art { inset:0 0 auto auto;width:128px;height:128px;aspect-ratio:1/1 }
.building-card .building-card-art::after { background:linear-gradient(135deg,transparent 48%,#121b1d 98%) }

/* Resource images, consistent construction cards, and compact upgrade dialogs. */
.resource-glyph.resource-art { width:34px;height:34px;border-radius:8px;background-image:var(--asset-image);background-repeat:no-repeat;background-size:contain;background-position:center;background-color:#10191b;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--resource-color,var(--bronze)) 32%,transparent),0 3px 9px rgba(0,0,0,.3) }
.resource-glyph.silver-glyph { background-image:var(--asset-image);background-repeat:no-repeat;background-size:contain;background-position:center;background-color:#10191b }
.cost .resource-glyph.resource-art { width:27px;height:27px;border-radius:6px }
.building-grid { grid-auto-rows:286px;align-items:stretch }
.building-card { width:100%;height:286px;min-height:286px;max-height:286px }
.building-card .building-copy p { display:-webkit-box;min-height:43px;max-height:43px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3 }
.building-card footer { min-height:70px;box-sizing:border-box }
.building-upgrade-modal { width:min(860px,calc(100vw - 24px));max-height:none;overflow:visible }
.building-upgrade-modal .modal-frame { overflow:visible }
.building-upgrade-modal .modal-body { position:relative;z-index:1;max-height:none;overflow:visible }
.building-upgrade-modal .modal-frame>footer { position:relative;z-index:5;background:#141d1f }
.building-upgrade-layout { display:grid;grid-template-columns:minmax(330px,.9fr) minmax(340px,1.1fr);gap:22px;align-items:start }
.building-upgrade-layout .building-modal-head { grid-template-columns:150px minmax(0,1fr);gap:15px }
.building-upgrade-layout .building-modal-art { position:relative;z-index:0;width:150px;height:150px;aspect-ratio:1/1 }
.building-upgrade-layout .requirement-block { margin:0 0 14px }
.building-upgrade-layout .building-upgrade-details>h3 { margin:14px 0 8px }
.building-time { display:flex;align-items:center;gap:8px;margin-top:11px;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.14) }
.building-time>svg { width:19px;height:19px;color:var(--bronze) }
.building-time span { display:flex;flex-direction:column;gap:2px }
.building-time small { color:#737b77;font-size:8px;text-transform:uppercase }
.building-time b { color:#c7c0ae;font-size:12px;font-variant-numeric:tabular-nums }

/* Persisted alliance crest designer. */
.alliance-crest-design { position:relative;isolation:isolate;display:grid;place-items:center;flex:0 0 auto;width:78px;height:88px;padding:5px;overflow:hidden;background:var(--crest-accent);color:var(--crest-accent);clip-path:polygon(8% 5%,92% 5%,96% 65%,50% 98%,4% 65%);filter:drop-shadow(0 8px 12px rgba(0,0,0,.35)) }
.alliance-crest-design>i { position:absolute;z-index:0;inset:4px;background:var(--crest-primary);clip-path:inherit }
.alliance-crest-design.pattern-split>i { background:linear-gradient(135deg,var(--crest-primary) 0 49%,color-mix(in srgb,var(--crest-primary) 70%,#000) 50% 100%) }
.alliance-crest-design.pattern-stripe>i { background:linear-gradient(90deg,var(--crest-primary) 0 31%,var(--crest-accent) 32% 43%,var(--crest-primary) 44% 56%,var(--crest-accent) 57% 68%,var(--crest-primary) 69%) }
.alliance-crest-design.pattern-sunburst>i { background:conic-gradient(from 22.5deg,var(--crest-primary) 0 12.5%,color-mix(in srgb,var(--crest-primary) 60%,#000) 12.5% 25%,var(--crest-primary) 25% 37.5%,color-mix(in srgb,var(--crest-primary) 60%,#000) 37.5% 50%,var(--crest-primary) 50% 62.5%,color-mix(in srgb,var(--crest-primary) 60%,#000) 62.5% 75%,var(--crest-primary) 75% 87.5%,color-mix(in srgb,var(--crest-primary) 60%,#000) 87.5%) }
.alliance-crest-design.shape-diamond { width:74px;height:74px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%) }
.alliance-crest-design.shape-round { width:78px;height:78px;border-radius:50%;clip-path:circle(50%) }
.alliance-crest-design.shape-banner { clip-path:polygon(5% 0,95% 0,95% 82%,72% 68%,50% 100%,28% 68%,5% 82%) }
.alliance-crest-design>svg { position:relative;z-index:2;width:46%;height:46%;transform:none!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.55)) }
.alliance-crest-design.alliance-crest { width:78px;height:88px;border:0;transform:none;background:var(--crest-accent) }
.alliance-designer-modal { width:min(820px,calc(100vw - 24px)) }
.crest-designer { display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;margin-bottom:18px;padding:16px;border:1px solid var(--line);background:rgba(0,0,0,.13) }
.crest-preview-stage { display:grid;place-items:center;align-content:center;min-height:245px;border:1px solid var(--line);background:radial-gradient(circle,rgba(199,146,79,.12),transparent 64%),#101719 }
.crest-preview-stage>small { margin-bottom:16px;color:#777f7b;font-size:8px;text-transform:uppercase;letter-spacing:.08em }
.crest-preview-stage>b { margin-top:12px;color:var(--bronze-bright);letter-spacing:.14em }
.alliance-crest-design.large { width:112px;height:126px }
.crest-controls { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px }
.crest-controls>label:first-child { grid-column:1/-1 }
.crest-palette { display:flex;gap:7px;margin:0;padding:0;border:0 }
.crest-palette legend { margin-bottom:7px;color:#777f7b;font-size:8px;text-transform:uppercase }
.crest-palette label { cursor:pointer }
.crest-palette input { position:absolute;width:1px;height:1px;opacity:0;pointer-events:none }
.crest-palette label>span { display:block;width:27px;height:27px;border:2px solid transparent;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px var(--line) }
.crest-palette label:has(input:checked)>span { border-color:#e7ddc2;box-shadow:0 0 0 2px var(--bronze),0 0 12px var(--swatch) }

@media (max-width:700px) {
  .building-grid { grid-auto-rows:246px }
  .building-card { height:246px;min-height:246px;max-height:246px }
  .building-upgrade-layout { grid-template-columns:1fr;gap:14px }
  .building-upgrade-layout .building-modal-head { grid-template-columns:112px minmax(0,1fr) }
  .building-upgrade-layout .building-modal-art { width:112px;height:112px }
  .crest-designer { grid-template-columns:1fr;gap:10px;margin-bottom:10px;padding:10px }
  .crest-preview-stage { min-height:140px }
  .alliance-crest-design.large { width:82px;height:92px }
  .crest-controls { gap:8px }
  .crest-palette { min-width:0;gap:3px }
  .crest-palette label>span { width:19px;height:19px }
}
.building-modal-art { width:150px;height:150px;aspect-ratio:1/1 }
.recruit-unit-art { align-self:center;width:92px;height:92px;aspect-ratio:1/1 }
.map-legend .river::before { border-radius:1px;background:#2d7683 }
.map-legend .ocean::before { border-radius:1px;background:#173f55;box-shadow:inset 0 0 0 1px rgba(104,179,192,.35) }
.map-legend .mountain::before { border-radius:1px;background:#aaa393;clip-path:polygon(50% 0,100% 100%,0 100%) }
.map-legend .vale::before { background:#587253 }
.terrain-note { color:#737c77;font-size:9px;line-height:1.5 }
.route-terrain-preview { display:flex;align-items:center;gap:10px;margin-top:14px;padding:10px;border:1px solid rgba(45,118,131,.38);background:rgba(27,70,80,.13) }.route-terrain-preview>svg { width:24px;height:24px;color:#5d9aa3 }.route-terrain-preview>span { display:grid;gap:3px }.route-terrain-preview small { color:#728c8f;font-size:8px;text-transform:uppercase }.route-terrain-preview b { color:#a7b9b5;font-weight:500 }.route-terrain-preview em { color:#687672;font-size:8px;font-style:normal }
.hero-vitals { display:flex;justify-content:space-between;gap:12px;margin:14px 0 6px;color:#747b77 }.hero-vitals span { display:flex;gap:6px }.hero-vitals small { text-transform:uppercase }.hero-vitals b { color:#aaa99e;font-size:9px }.hero-status-alert { display:flex;align-items:center;gap:8px;margin-top:12px;padding:9px;border:1px solid rgba(218,102,92,.35);background:rgba(142,52,45,.12);color:#e17a70;font-size:9px }.hero-status-alert svg { width:15px;height:15px }.active-mission { display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;margin-top:12px;padding:9px;border:1px solid rgba(156,123,212,.3);background:rgba(102,74,145,.1) }.active-mission>div { display:grid;gap:3px }.active-mission small { color:#837694;font-size:8px;text-transform:uppercase }.active-mission b { color:#c1b1db;font-family:Georgia,serif;font-weight:400 }.active-mission time { color:#b6a3d3;font-size:9px }.active-mission .progress { margin:2px 0 0 }.hero-footer { display:flex;align-items:center;justify-content:space-between;gap:10px }.hero-mission-heading { margin-top:32px }.mission-catalog { display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:10px }.mission-type-card .reward-row { margin-top:12px }.mission-risk { display:flex;flex-wrap:wrap;gap:6px;margin-top:10px }.mission-risk span { display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid var(--line);color:#838985;font-size:8px }.mission-risk svg { width:12px;height:12px }.mission-risk .danger { color:#d77a71 }.mission-history { display:grid;grid-template-columns:auto 1fr auto;gap:7px;margin-top:12px;padding:7px 9px;border-left:2px solid #6b857a;background:rgba(0,0,0,.14);font-size:8px }.mission-history.failed { border-color:#a55e57 }.mission-history small,.mission-history span { color:#727975 }.hero-mission-options { display:grid;gap:8px;margin:15px 0 0;padding:0;border:0 }.hero-mission-options>legend { color:#8b918c;font-size:9px;text-transform:uppercase }.hero-mission-option { display:grid;grid-template-columns:18px 38px minmax(0,1fr);gap:9px;align-items:start;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12);cursor:pointer }.hero-mission-option:has(input:checked) { border-color:var(--bronze);background:rgba(199,146,79,.06) }.hero-mission-option.locked { opacity:.58;cursor:not-allowed }.hero-mission-option>input { margin-top:12px;accent-color:var(--bronze) }.mission-option-copy { display:grid;gap:6px }.mission-option-copy>b { color:#bbb6a8;font-family:Georgia,serif;font-weight:400 }.mission-option-copy>em { color:#767d78;font-size:9px;font-style:normal;line-height:1.45 }
.alliance-score { display:grid;justify-items:end }.alliance-score b { color:var(--bronze-bright);font-size:21px }.alliance-score small { color:#737a76;font-size:8px;text-transform:uppercase }.alliance-dashboard { display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:14px;margin-top:14px }.alliance-dashboard>.panel { min-width:0 }.alliance-wide { grid-column:1/-1 }.alliance-chat-panel { grid-row:span 2 }.alliance-member-list { display:grid;max-height:410px;overflow:auto }.alliance-member { display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line) }.alliance-member>div { display:grid;gap:3px }.alliance-member b { color:#aaa99e }.alliance-member small { color:#6e7571;font-size:8px }.alliance-member>strong { color:var(--bronze-bright);font-size:10px }.icon-button.small { width:29px;height:29px }.alliance-operation-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px }.operation-card footer { display:flex;gap:7px }.diplomacy-list { display:grid;gap:7px }.diplomacy-row { display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:7px;align-items:center;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.1) }.diplomacy-row>div { display:grid;gap:3px }.diplomacy-row b { color:#aaa99e }.diplomacy-row small { color:#6e7571;font-size:8px }.permission-grid { display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px;padding:12px;border:1px solid var(--line) }.permission-grid legend { color:#858c87;font-size:8px;text-transform:uppercase }
@media (max-width:760px) {
  .building-card .building-card-art { width:108px;height:108px }
  .alliance-dashboard { grid-template-columns:1fr }.alliance-wide { grid-column:auto }.alliance-chat-panel { grid-row:auto }.alliance-score { grid-column:1/-1;justify-items:start }.mission-catalog { grid-template-columns:1fr }
}
@media (max-width:440px) {
  .building-modal-art { width:min(100%,220px);height:auto;aspect-ratio:1/1 }
  .recruit-unit-art { width:76px;height:76px }
  .hero-footer { align-items:stretch;flex-direction:column }.hero-footer .btn { width:100% }.permission-grid { grid-template-columns:1fr }.diplomacy-row { grid-template-columns:32px minmax(0,1fr) }.diplomacy-row .btn { grid-column:2 }.hero-mission-option { grid-template-columns:16px 34px minmax(0,1fr) }
}

/* Persistent world sites, boss health, and caravan orders. */
.map-marker.site { width:32px;height:32px;border-radius:4px;transform:translate(-50%,-50%) rotate(45deg);background:#2d3028 }
.map-marker.site svg { width:17px;height:17px;transform:rotate(-45deg) }
.map-marker.site:hover,.map-marker.site.selected { transform:translate(-50%,-50%) rotate(45deg) scale(1.17) }
.map-marker.site.woodcutter_camp { border-color:#9f7750;color:#c38f5e }
.map-marker.site.stone_quarry { border-color:#9b9d96;color:#c0c2ba }
.map-marker.site.iron_mine { border-color:#758c9c;color:#9eb5c5 }
.map-marker.site.farm { border-color:#b4a152;color:#d1bd63 }
.map-marker.site.bandit_village { border-color:#b65e55;color:#e27c70;background:#402725 }
.map-marker.site.season_monster { width:44px;height:44px;border-radius:50%;transform:translate(-50%,-50%);border-color:#be735a;color:#ff9b77;background:radial-gradient(circle,#673327,#251a1b);box-shadow:0 0 0 6px rgba(180,70,50,.1),0 0 30px rgba(220,79,55,.65);animation:boss-pulse 2s ease-in-out infinite }
.map-marker.site.season_monster svg { width:25px;height:25px;transform:none }
.map-marker.site.season_monster:hover,.map-marker.site.season_monster.selected { transform:translate(-50%,-50%) scale(1.15) }
.site-label { color:#d0bd98 }
.map-legend .outpost::before { border-radius:1px;background:#c19a62;transform:rotate(45deg) }
.map-legend .monster::before { background:#ef785d;box-shadow:0 0 8px #e85d46 }
@keyframes boss-pulse { 50% { box-shadow:0 0 0 10px rgba(180,70,50,.04),0 0 42px rgba(220,79,55,.82);filter:brightness(1.16) } }
.site-storage,.boss-health { margin-top:14px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.14) }
.site-storage>div:first-child { display:flex;align-items:center;gap:9px }
.site-storage>div:first-child>span:last-child { display:grid;gap:2px }
.site-storage small,.boss-health small { color:#707874;font-size:8px }
.site-storage b,.boss-health b { color:#bbb6a8;font-size:10px }
.site-storage .progress,.boss-health .progress { margin:8px 0 6px }
.boss-health { border-color:rgba(221,98,75,.32);background:rgba(112,42,32,.13) }
.boss-health header { display:flex;justify-content:space-between;gap:8px;color:#c77968;font-size:9px }
.boss-health .progress i { background:#cb604e;box-shadow:0 0 8px rgba(222,86,65,.7) }
.site-icon.season_monster { color:#e47a64;border-color:#a65345 }
.site-command-summary { display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12) }
.site-command-summary>span:last-child { display:grid;gap:4px }
.site-command-summary b { color:#bcb6a7;font-family:Georgia,serif;font-weight:400 }
.site-command-summary small { color:#707874;font-size:8px }
.army-input { grid-template-columns:46px minmax(0,1fr) 100px }
.army-input .army-unit-art { display:block;width:44px;height:44px;border:1px solid var(--line) }

/* GPU-only map previews keep dragging and wheel zoom independent from API work. */
.map-viewport { position:absolute;inset:0;contain:strict;will-change:auto;transform-origin:center;transition:none }
.world-map.dragging .map-viewport { transition:none }
.map-viewport>canvas,.map-viewport>.map-movement-layer,.map-viewport>.map-marker-layer { position:absolute;inset:0;width:100%;height:100% }

/* Hero training, army assignment, and narrative reports. */
.hero-modifiers { display:flex;flex-wrap:wrap;gap:5px;margin-top:10px }
.hero-modifiers span { display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid var(--line);color:#89938d;font-size:8px }
.hero-modifiers svg { width:12px;height:12px;color:#c7924f }
.hero-modifiers .signature { color:#bba672;border-color:rgba(199,146,79,.28) }
.skill { gap:8px;color:#959b96 }
.skill>span { display:flex;align-items:center;justify-content:space-between;min-width:0;flex:1;gap:7px }
.skill small { overflow:hidden;text-overflow:ellipsis;text-transform:uppercase }
.skill-plus { display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;padding:0;border:1px solid var(--bronze);border-radius:50%;background:rgba(199,146,79,.12);color:var(--bronze-bright);font-size:19px;line-height:1;cursor:pointer }
.skill-plus:hover:not(:disabled) { background:var(--bronze);color:#11191b;transform:scale(1.06) }
.skill-plus:disabled { opacity:.3;cursor:not-allowed }
.active-mission.army { border-color:rgba(199,146,79,.3);background:rgba(199,146,79,.08) }
.mission-history { width:100%;border-top:0;border-right:0;border-bottom:0;color:inherit;text-align:left;cursor:pointer }
.mission-history:disabled { cursor:default }
.hero-army-picker { display:grid;gap:6px;margin-top:12px;padding:11px;border:1px solid rgba(199,146,79,.3);background:rgba(199,146,79,.07) }
.hero-army-picker>span { color:#b9aa85;font-size:8px;text-transform:uppercase }
.hero-army-picker small { color:#747d77;font-size:8px;line-height:1.45 }
.hero-army-picker.disabled { opacity:.58 }
.hero-skill-level { display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);background:rgba(0,0,0,.14) }
.hero-skill-level>span { flex:1;color:#bcb7a8;font-family:Georgia,serif;font-size:18px }
.hero-skill-level>b { color:var(--bronze-bright);font-size:18px }.hero-skill-level i { color:#6f7772;font-style:normal }
.hero-skill-level small { color:#727a75;font-size:8px }
.skill-simulation { display:grid;grid-template-columns:1fr 1fr;gap:8px }
.skill-simulation>span { display:grid;gap:5px;padding:12px;border:1px solid rgba(91,155,136,.3);background:rgba(62,116,99,.1) }
.skill-simulation small,.modifier-comparison small { color:#77817b;font-size:8px;text-transform:uppercase }
.skill-simulation b { color:#92c4af;font-size:14px }
.modifier-comparison { display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:6px;margin-top:9px }
.modifier-comparison>span { display:grid;grid-template-columns:16px 1fr;gap:3px 6px;padding:8px;border:1px solid var(--line) }
.modifier-comparison svg { grid-row:1/3;width:15px;height:15px;color:#727a75 }.modifier-comparison b { color:#919890;font-size:9px }
.modifier-comparison .improved { border-color:rgba(91,155,136,.38);background:rgba(62,116,99,.09) }.modifier-comparison .improved b { color:#86c0a6 }
.mission-story { display:grid;gap:9px;margin-top:15px }
.story-brick { display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:11px;border:1px solid var(--line);background:rgba(0,0,0,.12) }
.story-brick>span { display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(199,146,79,.3);color:var(--bronze-bright) }.story-brick svg { width:16px;height:16px }
.story-brick small { color:#887755;font-size:8px;text-transform:uppercase }.story-brick p { margin:4px 0 0;color:#96988e;line-height:1.55 }
.hero-report-status { display:flex;gap:8px;align-items:center;padding:11px;border:1px solid rgba(91,155,136,.35);background:rgba(62,116,99,.1);color:#8bc3aa }.hero-report-status.failed { border-color:rgba(204,91,78,.35);background:rgba(125,43,36,.11);color:#db7468 }.hero-report-status svg { width:20px;height:20px }

/* Merchant logistics, alliance aid, and caravan routes. */
.alliance-crest-design>svg { color:var(--crest-symbol) }
.logistics-summary { display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:center;margin-bottom:16px;padding:12px 16px;border:1px solid var(--line);background:linear-gradient(90deg,rgba(199,146,79,.09),rgba(21,30,32,.94)) }
.logistics-caravan-art { width:72px;height:72px;border:1px solid rgba(199,146,79,.28) }
.logistics-summary>div:nth-child(2) { display:grid;gap:4px }.logistics-summary small { color:#747b77;font-size:8px;text-transform:uppercase }.logistics-summary b { color:#c8c1ae;font-family:Georgia,serif;font-size:17px;font-weight:400 }.logistics-summary span { color:#818a84;font-size:9px }
.resource-field { min-width:0 }.resource-select { display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;border:1px solid #313a3b;background:#11191b }.resource-select:focus-within { border-color:#8d693e;box-shadow:0 0 0 1px rgba(199,146,79,.15) }.resource-select>i { display:grid;place-items:center;width:40px;height:38px;border-right:1px solid var(--line);font-style:normal }.resource-select .resource-glyph { width:30px;height:30px }.resource-select select { height:38px;border:0;background:transparent;box-shadow:none }.resource-select select:focus { box-shadow:none }
.caravan-requirement { display:flex;align-items:center;gap:7px;margin:10px 0;padding:9px;border:1px solid var(--line);color:#7d8580;font-size:9px }.caravan-requirement svg { width:16px;height:16px }.caravan-requirement span { flex:1 }.caravan-requirement.met { border-color:rgba(91,155,136,.35);color:#84baa3;background:rgba(62,116,99,.07) }.caravan-requirement.missing { border-color:rgba(204,91,78,.35);color:#d57469;background:rgba(125,43,36,.07) }
.trade-table td>small { display:block;margin-top:4px;color:#626966;font-size:8px }.trade-table .cost-row { flex-wrap:nowrap }
.reinforcement-card .temporary-return { display:flex;align-items:center;gap:5px;margin-top:5px;color:#c49a57 }.reinforcement-card .temporary-return time { color:#d5b16d;font-variant-numeric:tabular-nums }
.quest-card.locked { opacity:.68;background:rgba(0,0,0,.12) }.quest-card.locked .quest-icon { color:#666d69;border-color:var(--line) }.quest-kind { display:block;margin-bottom:4px;color:#8c714d;font-size:8px;letter-spacing:.06em;text-transform:uppercase }
.map-marker.cargo-route-marker { z-index:6;width:31px;height:31px;border-radius:50%;transform:translate(-50%,-50%);background:#463a25;color:#f0c66e;box-shadow:0 0 0 4px rgba(224,183,101,.09),0 5px 14px rgba(0,0,0,.48) }.map-marker.cargo-route-marker svg { width:17px;height:17px;transform:none }.map-marker.cargo-route-marker:hover,.map-marker.cargo-route-marker.selected { transform:translate(-50%,-50%) scale(1.18) }.map-marker.cargo-route-marker.allied { border-color:#79c3aa;background:#24413b;color:#91d5bc }.map-marker.cargo-route-marker.hostile { border-color:#dc776d;background:#482927;color:#ef897c }.inspector-icon.cargo { color:#e0b765;border-color:rgba(224,183,101,.38) }.cargo-manifest { margin:12px 0 }.cargo-manifest h3 { margin-top:0 }.cargo-manifest>small { color:#767e79;font-size:8px }
.alliance-request-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:9px }.alliance-request-card>header { grid-template-columns:38px minmax(0,1fr) auto }.alliance-request-card time { color:#b08c58;font-size:9px }.alliance-request-card.complete { opacity:.72;border-color:rgba(91,155,136,.32) }.request-lines { display:grid;gap:8px;margin:12px 0 }.request-lines>div { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 9px;align-items:center }.request-lines>div>span:first-child { display:flex;align-items:center;gap:7px;min-width:0 }.request-lines .resource-glyph,.request-unit-art { width:28px;height:28px }.request-lines b { overflow:hidden;color:#a9aa9f;font-size:9px;text-overflow:ellipsis;white-space:nowrap }.request-lines>div>span:nth-child(2) { color:#828985;font-size:8px }.request-lines .progress { grid-column:1/-1 }.alliance-request-card footer { display:flex;gap:7px;align-items:center }.operation-goal { display:grid;gap:4px;margin:10px 0;padding:9px;border-left:2px solid var(--bronze);background:rgba(199,146,79,.06) }.operation-goal small { color:#786c56;font-size:8px;text-transform:uppercase }.operation-goal b { color:#b4b0a3;font-size:10px }
.forum-board { display:grid;gap:5px }.forum-thread-row { display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:5px;align-items:center;border-bottom:1px solid var(--line) }.forum-thread-row .message-item { border:0 }.forum-thread-row h3 svg { width:13px;height:13px;color:var(--bronze) }.forum-category,.forum-thread-meta { display:flex;align-items:center;gap:5px;color:#927b57;font-size:8px;text-transform:uppercase }.forum-category svg { width:12px;height:12px }.forum-thread-meta { justify-content:space-between;margin-bottom:12px;padding:8px;border:1px solid var(--line) }.forum-post .message-body { margin-top:12px;white-space:pre-wrap }.forum-post+ .forum-post { margin-top:7px } #allianceForumPostForm { margin-top:18px }

@media (max-width:700px) {
  .alliance-crest-design.alliance-crest { width:58px;height:66px }
  .logistics-summary { grid-template-columns:58px minmax(0,1fr) }.logistics-caravan-art { width:56px;height:56px }.logistics-summary>.requirement { grid-column:1/-1 }
  .alliance-request-grid { grid-template-columns:1fr }
  .army-input { grid-template-columns:42px minmax(0,1fr) 72px }
  .army-input .army-unit-art { width:40px;height:40px }
  .skill-simulation { grid-template-columns:1fr }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important }
}

/* Building production, demolition forecast, and unified active-task ledger. */
.building-grid{grid-auto-rows:310px}
.building-card{height:310px;min-height:310px;max-height:310px}
.building-card>.building-icon{display:none}
.building-card .building-copy{margin-top:112px}
.building-production{position:relative;z-index:2;display:grid;gap:5px;margin:7px 12px 0;padding:7px 0 0;border-top:1px solid var(--line)}
.building-production>small{color:#69716d;font-size:8px;letter-spacing:.06em;text-transform:uppercase}
.building-production>div{display:flex;flex-wrap:wrap;gap:6px}
.building-production>div>span:not(.no-production){display:flex;align-items:center;gap:5px;padding:3px 6px 3px 3px;border:1px solid color-mix(in srgb,var(--resource-color) 28%,var(--line));background:color-mix(in srgb,var(--resource-color) 7%,transparent);color:#a9b4ad;font-size:9px}
.building-production .resource-glyph{width:23px;height:23px}
.building-production .resource-glyph svg{width:14px!important;height:14px!important}
.building-production .no-production{color:#606965;font-size:8px;font-style:italic}
.building-card footer{min-height:69px}
.queue-mini>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto 24px;gap:8px;align-items:center}
.queue-mini .task-copy{display:grid;min-width:0;gap:2px}
.queue-mini .task-copy b{overflow:hidden;color:#aaa99e;text-overflow:ellipsis;white-space:nowrap}
.queue-mini .task-copy small{color:#69726d;font-size:8px}
.queue-mini.expanded .task-copy b{white-space:normal}
.all-task-list{display:grid;gap:8px}
.all-task-list .queue-mini{margin:0}
.task-overview-modal{width:min(720px,calc(100vw - 24px))}
.building-order>span{display:grid;grid-template-columns:1fr;gap:3px;min-width:0}
.building-order b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demolition-modal{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:hidden}
.demolition-modal .modal-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100vh - 24px);overflow:hidden}
.demolition-modal .modal-body{max-height:none;overflow:visible;padding:18px}
.demolition-confirm{grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:start}
.demolition-art{position:relative!important;right:auto!important;bottom:auto!important;width:150px;height:150px;transform:none!important;border:1px solid rgba(202,95,83,.32)}
.demolition-confirm p{margin:0 0 10px;line-height:1.45}
.demolition-confirm h3{margin:12px 0 7px;color:#aaa99e;font-size:9px;letter-spacing:.06em;text-transform:uppercase}
.demolition-production{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.demolition-production>span{display:grid;grid-template-columns:25px minmax(0,1fr);gap:1px 6px;align-items:center;min-width:0;padding:5px;border:1px solid var(--line);background:rgba(0,0,0,.12)}
.demolition-production .resource-glyph{grid-row:1/3;width:25px;height:25px}
.demolition-production small{overflow:hidden;color:#747c77;font-size:7px;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.demolition-production b{color:#9ba39e;font-size:8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.demolition-production .lowered{border-color:rgba(202,95,83,.34);background:rgba(121,42,35,.1)}
.demolition-production .lowered b{color:#df756b}
.demolition-production .raised{border-color:rgba(91,155,136,.35)}
.demolition-production .raised b{color:#83c2a5}
.demolition-production .steady{opacity:.62}

@media (max-width:760px){
  .building-grid{grid-auto-rows:270px}
  .building-card{height:270px;min-height:270px;max-height:270px}
  .building-card .building-copy{margin-top:102px}
  .demolition-modal .modal-body{overflow-y:auto}
  .demolition-confirm{grid-template-columns:110px minmax(0,1fr);gap:12px}
  .demolition-art{width:110px;height:110px}
  .demolition-production{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:440px){
  .building-grid{grid-auto-rows:310px}
  .building-card{height:310px;min-height:310px;max-height:310px}
  .demolition-confirm{grid-template-columns:1fr}
  .demolition-art{display:none}
}

/* Command planning, selectable portraits, and consistent task controls. */
.queue-mini>div:first-child>span:nth-child(2){min-width:0}.queue-stop{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;padding:0;border:1px solid rgba(202,95,83,.32);background:rgba(121,42,35,.12);color:#cb7167;cursor:pointer}.queue-stop:hover{border-color:#cb7167;background:rgba(121,42,35,.28)}.queue-stop svg{width:12px;height:12px}
.building-card{height:265px;min-height:265px}.building-active-orders{margin-top:14px;padding-top:11px;border-top:1px solid var(--line)}.building-active-orders>h3{margin:0 0 7px}.building-order{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.building-order+.building-order{margin-top:5px}.building-order>span{display:grid;grid-template-columns:18px 1fr;gap:2px 7px;align-items:center}.building-order svg{grid-row:1/3;width:16px;height:16px;color:var(--bronze)}.building-order b{color:#a9a79d;font-size:9px}.building-order small{color:#6f7772;font-size:8px}.demolition-confirm{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start}.demolition-art{width:150px;height:150px;border:1px solid rgba(202,95,83,.32)}.refund-row .cost.sufficient,.refund-row .cost{border-color:rgba(91,155,136,.35);color:#8bc3aa;background:rgba(62,116,99,.08)}
.unit-choice-input{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;opacity:0;pointer-events:none}.recruit-unit-card:has(.unit-choice-input:focus-visible){outline:2px solid var(--bronze);outline-offset:2px}.recruit-unit-card:has(.unit-choice-input:checked)::after{content:"✓";position:absolute;top:8px;left:8px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--bronze);color:#101719;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.resource-select{position:relative;overflow:hidden;border-radius:3px;background:linear-gradient(135deg,#151f21,#0e1618);box-shadow:inset 0 1px rgba(255,255,255,.025)}.resource-select::after{content:"⌄";position:absolute;right:11px;top:8px;color:var(--bronze);font-size:16px;pointer-events:none}.resource-select>i{position:relative;z-index:1;background:rgba(199,146,79,.045)}.resource-select select{position:relative;z-index:1;appearance:none;padding:0 34px 0 11px;color:#c0bcaf;cursor:pointer}.resource-select select:hover{background:rgba(199,146,79,.05)}.resource-field.unit-field .resource-select{border-color:rgba(110,135,127,.42)}
.dispatch-plan{margin-top:14px;border:1px solid rgba(199,146,79,.3);background:linear-gradient(135deg,rgba(199,146,79,.08),rgba(19,30,32,.85))}.dispatch-plan>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line)}.dispatch-plan>header>span{display:flex;align-items:center;gap:7px;color:#c4af80}.dispatch-plan>header svg{width:16px;height:16px}.dispatch-plan>header em{color:#777e79;font-size:8px;font-style:normal}.dispatch-plan-grid{display:grid;grid-template-columns:repeat(3,1fr)}.dispatch-plan-grid>div{display:grid;gap:4px;padding:11px}.dispatch-plan-grid>div+div{border-left:1px solid var(--line)}.dispatch-plan-grid small{color:#7a817c;font-size:8px;text-transform:uppercase}.dispatch-plan-grid b{color:#d2c4a4;font-family:Georgia,serif;font-size:17px;font-weight:400}.dispatch-plan-grid span{color:#6d7671;font-size:8px}.site-command-summary{grid-template-columns:58px minmax(0,1fr)}.site-summary-art{width:56px;height:56px;border:1px solid var(--line)}
.mailbox-tabs{display:flex;gap:5px;margin-bottom:8px}.mailbox-tabs .tab{display:flex;align-items:center;gap:7px}.mailbox-tabs svg{width:15px;height:15px}.mailbox-tabs b{min-width:18px;padding:2px 5px;border-radius:9px;background:rgba(199,146,79,.15);color:var(--bronze-bright);font-size:8px}
.avatar{width:38px;height:38px;padding:0;overflow:hidden;border:1px solid var(--bronze);transform:none;clip-path:polygon(50% 0,93% 22%,93% 78%,50% 100%,7% 78%,7% 22%);background:#182225}.avatar .topbar-avatar-art{width:100%;height:100%}.avatar-selector{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:7px;margin:0 0 5px;padding:11px;border:1px solid var(--line)}.avatar-selector legend{padding:0 6px;color:#8a918c;font-size:8px;text-transform:uppercase}.avatar-selector label{position:relative;display:grid;gap:6px;margin:0;padding:5px;border:1px solid var(--line);background:rgba(0,0,0,.12);cursor:pointer;text-align:center}.avatar-selector label:has(input:checked){border-color:var(--bronze);background:rgba(199,146,79,.08);box-shadow:inset 0 0 0 1px rgba(199,146,79,.18)}.avatar-selector input{position:absolute;width:1px;height:1px;opacity:0}.avatar-choice-art{width:100%;aspect-ratio:1/1}.avatar-selector label>span:last-child{color:#8d928d;font-size:8px}
.account-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:14px;border:1px solid rgba(218,102,92,.38);background:linear-gradient(120deg,rgba(142,52,45,.16),rgba(0,0,0,.08))}.account-danger-zone>div{min-width:0}.account-danger-zone small{display:block;color:#d8786e;font-size:8px;letter-spacing:.1em;text-transform:uppercase}.account-danger-zone b{display:block;margin-top:4px;color:#d7c6b3;font-family:Georgia,serif;font-size:16px;font-weight:400}.account-danger-zone p{max-width:420px;margin:5px 0 0;color:#858985;font-size:9px;line-height:1.5}.account-danger-zone .btn{flex:0 0 auto}.account-deletion-warning{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;margin-bottom:18px;padding:14px;border:1px solid rgba(218,102,92,.42);background:rgba(142,52,45,.15)}.account-deletion-warning>svg{width:26px;height:26px;color:#d8786e}.account-deletion-warning b{color:#d7c6b3}.account-deletion-warning p{margin:7px 0 0;color:#a09c93;font-size:10px;line-height:1.55}
.mission-board-state{display:flex!important;align-items:center;gap:4px;margin-left:auto;padding:4px 6px;border:1px solid rgba(91,155,136,.3);color:#83b69f!important;font-size:8px}.mission-board-state.away{border-color:rgba(199,146,79,.28);color:#b28f5b!important}.mission-board-state svg{width:12px;height:12px}.mission-type-card.mission-cycling{opacity:.72}.mission-decision-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;margin:16px 0 0;padding:0;border:0}.mission-decision-options>legend{grid-column:1/-1;color:#8b918c;font-size:9px;text-transform:uppercase}.mission-decision{display:grid;grid-template-columns:16px 1fr;gap:8px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12);cursor:pointer}.mission-decision:has(input:checked){border-color:var(--bronze);background:rgba(199,146,79,.07)}.mission-decision.locked{opacity:.5;cursor:not-allowed}.mission-decision input{margin-top:3px;accent-color:var(--bronze)}.mission-decision>span{display:grid;gap:5px}.mission-decision b{color:#bbb5a7;font-family:Georgia,serif;font-weight:400}.mission-decision em{color:#747c77;font-size:9px;font-style:normal;line-height:1.45}.mission-decision small{color:#9a835e;font-size:8px}.story-brick.decision-brick{border-color:rgba(199,146,79,.36);background:linear-gradient(90deg,rgba(199,146,79,.08),rgba(0,0,0,.12))}.story-influence{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.story-influence b,.story-influence span{padding:4px 6px;border:1px solid var(--line);font-size:8px}.story-influence b{color:#c4ad7b}.story-influence .positive{color:#83b89f;border-color:rgba(91,155,136,.28)}.story-influence .negative{color:#d1766c;border-color:rgba(204,91,78,.28)}
.danger-text{color:#cf7167!important}.forum-thread-meta .danger-text{margin-left:auto}.forum-post header{display:flex;align-items:center;justify-content:space-between;gap:8px}

/* Illustrated, clickable world markers and immersive navigation furniture. */
.map-marker:not(.cargo-route-marker),.map-marker.site:not(.cargo-route-marker),.map-marker.fort:not(.cargo-route-marker),.map-marker.site.season_monster:not(.cargo-route-marker){width:58px;height:58px;overflow:visible;border:0;border-radius:0;transform:translate(-50%,-50%);background:transparent;box-shadow:none;filter:drop-shadow(0 7px 6px rgba(0,0,0,.62));animation:none}.map-marker:not(.cargo-route-marker):hover,.map-marker:not(.cargo-route-marker).selected,.map-marker.site:not(.cargo-route-marker):hover,.map-marker.site:not(.cargo-route-marker).selected,.map-marker.site.season_monster:not(.cargo-route-marker):hover,.map-marker.site.season_monster:not(.cargo-route-marker).selected{z-index:8;transform:translate(-50%,-50%) scale(1.16);filter:brightness(1.15) drop-shadow(0 8px 8px rgba(0,0,0,.72))}.map-marker:not(.cargo-route-marker).selected::after{content:"";position:absolute;inset:3px;border:2px solid #e1bf75;border-radius:50%;box-shadow:0 0 14px rgba(225,191,117,.75);pointer-events:none}.map-marker .map-location-art{width:58px;height:58px;border-radius:50%;transform:none;clip-path:circle(47%);background-color:#172124}.map-marker.site.season_monster .map-location-art{width:72px;height:72px;animation:boss-pulse 2s ease-in-out infinite}.map-label{transform:translate(-50%,32px)}.map-compass{position:absolute;z-index:9;left:24px;bottom:20px;display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(199,146,79,.35);border-radius:50%;background:radial-gradient(circle,rgba(20,30,32,.92),rgba(8,13,14,.86));color:#c8a768;font-family:Georgia,serif;font-size:10px;box-shadow:0 4px 16px rgba(0,0,0,.4);pointer-events:none}.map-compass::before,.map-compass::after{content:"";position:absolute;background:rgba(199,146,79,.35)}.map-compass::before{width:1px;height:44px}.map-compass::after{width:44px;height:1px}.map-compass span{position:absolute;top:7px;width:8px;height:18px;background:linear-gradient(#d5b46f 50%,#58615d 50%);clip-path:polygon(50% 0,100% 100%,50% 78%,0 100%)}.map-compass b{position:absolute;top:-15px}.map-drag-hint{position:absolute;z-index:9;left:50%;bottom:17px;display:flex;align-items:center;gap:6px;transform:translateX(-50%);padding:6px 9px;border:1px solid var(--line);background:rgba(11,17,18,.82);color:#7b837e;font-size:8px;pointer-events:none}.map-drag-hint svg{width:13px;height:13px;color:var(--bronze)}.map-spot-marker{position:absolute;z-index:7;width:44px;height:44px;border:0;border-radius:50%;transform:translate(-50%,-50%);background:rgba(199,146,79,.08);box-shadow:0 0 0 1px rgba(231,196,121,.75),0 0 22px rgba(231,196,121,.55);pointer-events:none}.map-spot-marker::before,.map-spot-marker::after{content:"";position:absolute;left:50%;top:50%;background:#ebcc85;transform:translate(-50%,-50%)}.map-spot-marker::before{width:56px;height:1px}.map-spot-marker::after{width:1px;height:56px}.map-spot-marker span{position:absolute;inset:10px;border:1px solid #ebcc85;border-radius:50%}.inspector-icon.spot{color:var(--bronze);border-color:rgba(199,146,79,.35)}

@media (max-width:760px){.building-card{height:235px;min-height:235px}.demolition-confirm{grid-template-columns:1fr}.demolition-art{width:100%;max-width:220px;height:auto;aspect-ratio:1/1}.dispatch-plan-grid{grid-template-columns:1fr}.dispatch-plan-grid>div+div{border-left:0;border-top:1px solid var(--line)}.avatar-selector{grid-template-columns:repeat(2,1fr)}.map-drag-hint{display:none}.map-compass{width:42px;height:42px;left:15px;bottom:14px}.mission-decision-options{grid-template-columns:1fr}}

/* Keep these sizing rules last: earlier responsive legacy rules size the old cards/dialog. */
.building-card{height:310px;min-height:310px;max-height:310px}
.building-order>span{grid-template-columns:1fr;gap:3px;min-width:0}
@media (max-width:760px){
  .building-card{height:270px;min-height:270px;max-height:270px}
  .demolition-confirm{grid-template-columns:110px minmax(0,1fr);gap:12px}
  .demolition-art{width:110px;height:110px;max-width:none;aspect-ratio:auto}
}
@media (max-width:440px){
  .building-card{height:310px;min-height:310px;max-height:310px}
  .demolition-confirm{grid-template-columns:1fr}
  .demolition-art{display:none}
}

/* Spacious two-column city works overview. */
.building-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:420px;gap:16px;padding:16px}
.building-card{height:420px;min-height:420px;max-height:420px}
.building-card .building-card-art{inset:10px auto auto calc(50% - 78px);width:156px;height:156px}
.building-card>.level-badge{top:14px;right:14px;padding:5px 8px;font-size:9px}
.building-card .building-copy{margin-top:158px;padding:0 18px}
.building-card h3{margin:12px 0 7px;font-size:20px;line-height:1.2}
.building-card p,.building-card .building-copy p{min-height:52px;max-height:52px;font-size:11px;line-height:1.6;-webkit-line-clamp:3}
.building-production{gap:8px;margin:11px 18px 0;padding:11px 0 0}
.building-production>small{font-size:9px}
.building-production>div{gap:8px}
.building-production>div>span:not(.no-production){gap:7px;padding:4px 9px 4px 4px;font-size:10px}
.building-production .resource-glyph{width:28px;height:28px}
.building-card footer{display:block;min-height:74px;padding:12px 18px 15px}
.building-card footer .cost-row{gap:9px}
.building-card footer .cost b{font-size:11px}
.building-card footer .resource-glyph.resource-art{width:29px;height:29px}

@media (max-width:760px){
  .building-grid{grid-auto-rows:400px;gap:12px;padding:12px}
  .building-card{height:400px;min-height:400px;max-height:400px}
  .building-card .building-card-art{inset:9px auto auto calc(50% - 70px);width:140px;height:140px}
  .building-card .building-copy{margin-top:142px;padding:0 15px}
  .building-card h3{font-size:17px}
  .building-card p,.building-card .building-copy p{font-size:10px}
  .building-production{margin-right:15px;margin-left:15px}
  .building-card footer{display:block;padding-right:15px;padding-left:15px}
}
@media (max-width:620px){
  .building-grid{grid-template-columns:1fr;grid-auto-rows:400px}
}

/* Universal illustrated resource and unit combobox. */
.universal-field{position:relative;display:flex;flex-direction:column;gap:7px;min-width:0;color:#a8a596;font-size:11px;font-weight:600;letter-spacing:.04em}
.universal-field+label{margin-top:16px}
.form-grid>.universal-field+label{margin-top:0}
.universal-field:has(.universal-combobox.open){z-index:90}
.universal-field-label{display:block}
.universal-combobox{position:relative;min-width:0}
.universal-combobox-native{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;border:0!important;opacity:0!important;pointer-events:none!important}
.universal-combobox-trigger,.universal-combobox-option{font:inherit;letter-spacing:normal;text-align:left}
.universal-combobox-trigger{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;gap:10px;align-items:center;width:100%;min-height:52px;padding:5px 10px 5px 5px;border:1px solid #354041;border-radius:3px;background:linear-gradient(135deg,#172124,#101719);color:#c0bcaf;box-shadow:inset 0 1px rgba(255,255,255,.025);cursor:pointer}
.universal-combobox-trigger:hover{border-color:#695439;background:linear-gradient(135deg,#1a2628,#11191b)}
.universal-combobox-trigger:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}
.universal-combobox-trigger:disabled{cursor:not-allowed;filter:saturate(.25);opacity:.55}
.universal-combobox-art{display:grid;place-items:center;width:42px;height:42px;overflow:hidden;border:1px solid rgba(199,146,79,.2);border-radius:3px;background:#101719}
.universal-combobox-art>.asset-art,.universal-combobox-option>.asset-art,.universal-combobox-art .resource-glyph{width:38px;height:38px;border-radius:3px}
.universal-combobox-copy,.universal-combobox-option>span{display:flex;flex-direction:column;min-width:0;gap:3px}
.universal-combobox-copy b,.universal-combobox-option b{overflow:hidden;color:#c3bdad;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.universal-combobox-copy small,.universal-combobox-option small{color:#707975;font-size:8px;font-weight:400;text-transform:uppercase}
.universal-combobox-arrow{width:15px;height:15px;color:var(--bronze);transform:rotate(90deg);transition:transform .16s}
.universal-combobox.open .universal-combobox-arrow{transform:rotate(-90deg)}
.universal-combobox-menu{position:absolute;z-index:100;top:calc(100% + 5px);right:0;left:0;display:grid;max-height:290px;padding:4px;overflow-y:auto;border:1px solid var(--line-bright);border-radius:3px;background:rgba(14,22,24,.99);box-shadow:0 18px 45px rgba(0,0,0,.58);backdrop-filter:blur(14px)}
.universal-combobox-menu.floating{position:fixed;right:auto;bottom:auto}
.universal-combobox-menu.inline{position:relative;top:5px;right:auto;bottom:auto;left:auto;width:100%}
.universal-combobox-menu[hidden]{display:none}
.universal-combobox-option{display:grid;grid-template-columns:38px minmax(0,1fr) 16px;gap:10px;align-items:center;width:100%;min-height:48px;padding:5px 8px 5px 5px;border:1px solid transparent;background:transparent;color:#a8aaa1;cursor:pointer}
.universal-combobox-option+.universal-combobox-option{border-top-color:var(--line)}
.universal-combobox-option:hover,.universal-combobox-option:focus-visible{outline:0;border-color:rgba(199,146,79,.28);background:rgba(199,146,79,.075)}
.universal-combobox-option[aria-selected="true"]{border-color:rgba(91,155,136,.3);background:rgba(62,116,99,.09)}
.universal-combobox-option>.asset-art{border:1px solid rgba(199,146,79,.18)}
.universal-combobox-check{width:15px;height:15px;color:#83c2a5}
.universal-field.unit-field .universal-combobox-trigger{border-color:rgba(110,135,127,.5)}

@media (max-width:440px){
  .universal-combobox-trigger{grid-template-columns:38px minmax(0,1fr) 16px;min-height:48px}
  .universal-combobox-art{width:38px;height:38px}
  .universal-combobox-art>.asset-art,.universal-combobox-art .resource-glyph{width:34px;height:34px}
}

/* Shared illustrated values: rewards are green, spending and losses are red. */
.value-chip{display:inline-grid;grid-template-columns:32px minmax(0,1fr);gap:7px;align-items:center;min-height:40px;padding:4px 9px 4px 4px;border:1px solid var(--line);border-radius:2px;background:rgba(0,0,0,.13);color:#a9aaa1;font-variant-numeric:tabular-nums}
.value-chip>.resource-glyph,.value-chip>.value-glyph,.value-chip>.value-unit-art{width:32px;height:32px}
.value-glyph{display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;background:rgba(255,255,255,.025)}
.value-glyph svg{width:17px;height:17px}
.value-chip>span:last-child{display:grid;gap:2px;min-width:0}
.value-chip small{overflow:hidden;color:currentColor;font-size:7px;font-weight:500;letter-spacing:.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;opacity:.72}
.value-chip b{color:currentColor;font-size:10px;font-weight:700;white-space:nowrap}
.value-chip.gain{border-color:rgba(91,155,136,.42);background:rgba(62,116,99,.11);color:#86c5a9}
.value-chip.loss{border-color:rgba(204,91,78,.42);background:rgba(125,43,36,.11);color:#df786e}
.value-chip.neutral{border-color:rgba(149,155,149,.25);color:#a9aaa1}
.value-chip.unit-value{grid-template-columns:38px minmax(0,1fr)}
.value-chip>.value-unit-art{width:38px;height:38px;border:1px solid rgba(255,255,255,.09);border-radius:2px}
.resource-flow.loss{padding:7px;border:1px solid rgba(204,91,78,.22);background:rgba(125,43,36,.055)}

/* Spacious two-column research tree and spellbook. */
.tech-tree{grid-template-columns:repeat(4,minmax(240px,1fr));gap:16px;overflow-x:auto}
.tech-column{min-width:0;padding:16px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(255,255,255,.018),rgba(0,0,0,.13))}
.tech-column>h2{margin:0 0 15px;font-size:11px}
.tech-card{display:flex;flex-direction:column;min-height:300px;margin-bottom:15px;padding:20px}
.tech-card-head{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:13px;align-items:center}
.tech-card-head>span:nth-child(2){min-width:0}
.tech-card-head>span:nth-child(2)>small{display:block;color:var(--category,var(--bronze));font-size:8px;letter-spacing:.06em;text-transform:uppercase}
.tech-icon{width:52px;height:52px}
.tech-icon svg{width:28px;height:28px}
.tech-level{position:static;align-self:start;padding:5px 7px;border:1px solid color-mix(in srgb,var(--category,var(--bronze)) 32%,transparent);font-size:9px;white-space:nowrap}
.tech-card h3{margin:4px 0 0;font-size:19px;line-height:1.25}
.tech-card p{min-height:48px;margin:14px 0 7px;font-size:11px;line-height:1.6}
.research-effect-block,.research-cost{display:grid;gap:7px;margin-top:11px}
.research-effect-block>small,.research-cost>small,.mission-rewards>small,.quest-rewards>small{color:#737b77;font-size:8px;letter-spacing:.07em;text-transform:uppercase}
.research-effects{display:flex;flex-wrap:wrap;gap:7px}
.tech-card .requirement-summary{margin:12px 0}
.tech-card>.btn{min-height:38px;margin-top:auto}
.spell-grid{grid-template-columns:repeat(2,minmax(300px,1fr));gap:16px}
.spell-card{display:flex;flex-direction:column;min-height:285px;padding:20px}
.spell-card h3{font-size:19px}
.spell-card p{min-height:54px;font-size:11px;line-height:1.6}
.spell-card footer{margin-top:auto}
.spell-card footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:center}.spell-card footer .spell-cooldown{grid-column:1/-1}.spell-cooldown{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#d9b36d;font-size:10px;font-variant-numeric:tabular-nums}.spell-cooldown svg{flex:0 0 14px;width:14px;height:14px}.spell-cooldown time{color:#f0d18d;font-weight:700}.map-spell-option .spell-cooldown{margin-top:6px}.map-spell-option .spell-cooldown.target{color:#aa9ad0}

/* Roomier army, garrison, movement, and reinforcement cards. */
.army-tabs{gap:8px;margin-bottom:15px}
.army-tabs .tab{padding:11px 17px;font-size:10px}
.army-tab-panel>.panel-inner{padding:18px}
.unit-catalog-grid{grid-template-columns:repeat(2,minmax(320px,1fr));gap:16px}
.unit-detail-card{grid-template-columns:112px minmax(0,1fr) auto;gap:18px;align-items:start;min-height:170px;padding:16px}
.unit-detail-art{width:112px;height:112px}
.unit-detail-copy{min-width:0}
.unit-class{color:var(--bronze);font-size:8px;letter-spacing:.07em;text-transform:uppercase}
.unit-detail-card h3{margin:4px 0 7px;font-size:19px}
.unit-detail-card p{margin:0 0 12px;font-size:10px;line-height:1.6}
.unit-stats{display:grid;grid-template-columns:repeat(5,minmax(55px,1fr));gap:6px}
.unit-stats span{display:grid;grid-template-columns:16px minmax(0,1fr);gap:2px 5px;align-items:center;padding:6px;border:1px solid var(--line);background:rgba(0,0,0,.11)}
.unit-stats svg{grid-row:1/3;width:14px;height:14px}
.unit-stats small{color:#6f7773;font-size:7px;text-transform:uppercase}
.unit-stats b{color:#b2b0a5;font-size:10px}
.unit-count{display:grid;min-width:72px;gap:5px;padding:11px;border:1px solid rgba(199,146,79,.28);background:rgba(199,146,79,.055);text-align:center}
.unit-count small{color:#777e79;font-size:7px;letter-spacing:.05em;text-transform:uppercase}
.unit-count b{color:var(--bronze-bright);font-family:Georgia,serif;font-size:23px;font-weight:400}
.movement-list,.reinforcement-list{gap:12px}
.movement-card{grid-template-columns:58px minmax(0,1fr) auto;gap:16px;padding:17px}
.movement-card.friendly{border-color:rgba(91,155,136,.34);background:linear-gradient(90deg,rgba(62,116,99,.08),rgba(255,255,255,.012))}
.movement-card.friendly .movement-icon{border-color:rgba(91,155,136,.42);color:#86c5a9}
.movement-icon{width:54px;height:54px}
.movement-route h3{font-size:13px}
.movement-route p{font-size:10px;line-height:1.5}
.reinforcement-card{grid-template-columns:72px minmax(0,1fr) auto auto;gap:16px;padding:14px}
.reinforcement-card .asset-art{width:72px;height:72px}
.reinforcement-card h3{font-size:17px}

/* Hero mission board and quest journal share the same generous card rhythm. */
.mission-catalog{grid-template-columns:repeat(2,minmax(320px,1fr));gap:16px}
.mission-type-card{display:flex;flex-direction:column;min-height:310px;padding:20px}
.mission-type-card>header{display:grid;grid-template-columns:58px minmax(0,1fr);gap:13px;align-items:start}
.mission-type-card>header>span{flex:none;min-width:0}
.mission-emblem{display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(199,146,79,.3);background:rgba(199,146,79,.055);color:var(--bronze)}
.mission-emblem svg{width:31px;height:31px}
.mission-kind{color:var(--bronze)!important;font-size:8px!important;letter-spacing:.07em;text-transform:uppercase}
.mission-type-card h3{margin:4px 0 3px;font-size:19px}
.mission-board-state{grid-column:1/-1;justify-self:start;margin-left:0!important;padding:5px 8px}
.mission-type-card>p{min-height:54px;margin:15px 0;font-size:11px;line-height:1.6}
.mission-risk{gap:8px;margin-top:0}
.mission-risk span{padding:6px 8px;font-size:9px}
.mission-risk .loss,.mission-risk .danger{border-color:rgba(204,91,78,.34);background:rgba(125,43,36,.08);color:#df786e}
.mission-rewards{margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}
.mission-rewards .reward-row{margin-top:8px}
.quest-list{grid-template-columns:repeat(2,minmax(330px,1fr));gap:16px}
.quest-card{grid-template-columns:64px minmax(0,1fr);align-items:start;gap:16px;min-height:290px;padding:18px}
.quest-icon{width:64px;height:64px}
.quest-icon svg{width:31px;height:31px}
.quest-copy{display:flex;flex-direction:column;min-width:0;height:100%}
.quest-kind{color:var(--bronze);font-size:8px;letter-spacing:.07em;text-transform:uppercase}
.quest-card h3{margin:5px 0 8px;font-size:19px}
.quest-card p{min-height:52px;margin:0 0 11px;font-size:11px;line-height:1.6}
.quest-progress{margin:12px 0}
.quest-rewards{margin-top:auto;padding-top:14px}
.quest-card>.btn{grid-column:1/-1;width:100%;min-height:40px}

@media (max-width:1000px){
  .unit-catalog-grid{grid-template-columns:1fr}
}
@media (max-width:850px){
  .tech-tree,.spell-grid,.mission-catalog,.quest-list{grid-template-columns:1fr}
}
@media (max-width:620px){
  .tech-card-head{grid-template-columns:46px minmax(0,1fr)}
  .tech-icon{width:46px;height:46px}
  .tech-level{grid-column:1/-1;justify-self:start}
  .unit-detail-card{grid-template-columns:84px minmax(0,1fr);gap:13px}
  .unit-detail-art{width:84px;height:84px}
  .unit-count{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;text-align:left}
  .unit-stats{grid-template-columns:repeat(2,minmax(70px,1fr))}
  .movement-card{grid-template-columns:46px minmax(0,1fr)}
  .movement-icon{width:44px;height:44px}
  .movement-time{grid-column:2;text-align:left}
  .reinforcement-card{grid-template-columns:58px minmax(0,1fr) auto}
  .reinforcement-card .asset-art{width:58px;height:58px}
  .reinforcement-card .btn{grid-column:2/-1}
  .quest-card{grid-template-columns:52px minmax(0,1fr);padding:14px}
  .quest-icon{width:52px;height:52px}
}

/* Hero expedition preparation: illustrated choices, live authoritative odds, no native radios. */
.modal:has(#heroMissionForm){width:min(1180px,calc(100vw - 24px))}
.modal:has(#heroMissionForm) .modal-body{max-height:calc(100vh - 178px);padding:20px}
@media (max-width:600px){.account-danger-zone{align-items:stretch;flex-direction:column}.account-danger-zone .btn{width:100%}}
.hero-mission-preparation{display:grid;grid-template-columns:minmax(330px,380px) minmax(0,1fr);gap:20px;align-items:start}
.mission-prep-selector,.mission-prep-workspace{min-width:0}
.mission-prep-selector{display:grid;gap:14px}
.mission-hero-dossier{display:grid;grid-template-columns:74px minmax(0,1fr);gap:13px;align-items:center;padding:12px;border:1px solid var(--line-bright);background:linear-gradient(135deg,rgba(199,146,79,.07),rgba(0,0,0,.12))}
.mission-hero-art{width:74px;height:74px;border:1px solid rgba(199,146,79,.32)}
.mission-hero-dossier>span{display:grid;gap:4px}
.mission-hero-dossier small,.selected-mission-brief small{color:var(--bronze);font-size:8px;letter-spacing:.07em;text-transform:uppercase}
.mission-hero-dossier b{color:#c7c0af;font-family:Georgia,serif;font-size:19px;font-weight:400}
.mission-hero-dossier em{color:#777f7a;font-size:9px;font-style:normal}
.mission-origin{margin:0}
.hero-mission-options{display:grid;gap:9px;max-height:620px;margin:0;padding:0 5px 0 0;overflow-y:auto;border:0}
.hero-mission-options>legend,.mission-decision-options>legend{margin-bottom:9px;color:#8b918c;font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.hero-mission-option{position:relative;display:grid;grid-template-columns:50px minmax(0,1fr) 22px;gap:11px;align-items:start;padding:12px;border:1px solid var(--line);background:rgba(0,0,0,.12);cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.hero-mission-option:hover{border-color:rgba(199,146,79,.42);background:rgba(199,146,79,.045)}
.hero-mission-option:has(input:checked){border-color:var(--bronze);background:linear-gradient(135deg,rgba(199,146,79,.11),rgba(0,0,0,.11));box-shadow:inset 3px 0 var(--bronze)}
.hero-mission-option.locked{cursor:not-allowed;filter:saturate(.35);opacity:.55}
.hero-mission-option>input,.mission-decision>input{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;opacity:0!important;pointer-events:none!important}
.mission-choice-emblem,.decision-emblem{display:grid;place-items:center;width:50px;height:50px;border:1px solid rgba(199,146,79,.25);background:rgba(199,146,79,.055);color:var(--bronze)}
.mission-choice-emblem svg,.decision-emblem svg{width:27px;height:27px}
.mission-choice-emblem.large{width:62px;height:62px}
.mission-choice-emblem.large svg{width:34px;height:34px}
.mission-option-copy{display:grid;gap:6px;min-width:0}
.mission-option-copy>small{color:#7f6950;font-size:8px;letter-spacing:.05em;text-transform:uppercase}
.mission-option-copy>b{color:#c3bdad;font-family:Georgia,serif;font-size:16px;font-weight:400}
.mission-option-copy>em{color:#747c77;font-size:9px;font-style:normal;line-height:1.5}
.mission-choice-odds{display:grid;grid-template-columns:auto 1fr;gap:1px 8px;align-items:center;padding:7px 8px;border:1px solid rgba(91,155,136,.25);background:rgba(62,116,99,.07)}
.mission-choice-odds>b{grid-row:1/3;color:#8dceb0;font-size:20px}
.mission-choice-odds>small{color:#73817a;font-size:7px;text-transform:uppercase}
.mission-choice-odds>.danger{color:#d1766c;font-size:8px}
.choice-check{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);color:#606865}
.choice-check svg{width:13px;height:13px}
.hero-mission-option:has(input:checked)>.choice-check,.mission-decision:has(input:checked)>.choice-check{border-color:rgba(91,155,136,.5);background:rgba(62,116,99,.15);color:#86c5a9}
.mission-prep-workspace{display:grid;gap:16px}
.selected-mission-brief{display:grid;grid-template-columns:62px minmax(0,1fr);gap:14px;padding:16px;border:1px solid var(--line-bright);background:linear-gradient(135deg,rgba(255,255,255,.025),rgba(0,0,0,.14))}
.selected-mission-brief h3{margin:4px 0 6px;color:#c8c0ae;font-family:Georgia,serif;font-size:22px;font-weight:400}
.selected-mission-brief p{margin:0 0 8px;color:#7c837e;font-size:10px;line-height:1.55}
.selected-mission-brief div>span{color:#818984;font-size:9px}
.selected-mission-brief .loss{color:#df786e}
.mission-decision-options{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px;margin:0;padding:0;border:0}
.mission-decision-options>legend{grid-column:1/-1}
.mission-decision{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) 22px;gap:10px;align-items:start;min-height:178px;padding:12px;border:1px solid var(--line);background:rgba(0,0,0,.12);cursor:pointer;transition:border-color .16s,background .16s}
.mission-decision:hover{border-color:rgba(199,146,79,.4)}
.mission-decision:has(input:checked){border-color:var(--bronze);background:linear-gradient(145deg,rgba(199,146,79,.09),rgba(0,0,0,.12));box-shadow:inset 3px 0 var(--bronze)}
.mission-decision.locked{cursor:not-allowed;filter:saturate(.25);opacity:.5}
.decision-emblem{width:46px;height:46px}
.decision-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.decision-copy>small{color:var(--bronze);font-size:7px;letter-spacing:.06em;text-transform:uppercase}
.decision-copy>b{color:#beb8a9;font-family:Georgia,serif;font-size:16px;font-weight:400}
.decision-copy>em{flex:1;color:#767d78;font-size:9px;font-style:normal;line-height:1.5}
.decision-odds{display:flex;flex-wrap:wrap;gap:5px}
.decision-odds b{padding:4px 6px;border:1px solid var(--line);font-size:8px;font-weight:600}
.decision-odds .positive{border-color:rgba(91,155,136,.32);color:#86c5a9}
.decision-odds .negative{border-color:rgba(204,91,78,.28);color:#df786e}
.mission-final-forecast{padding:16px;border:1px solid rgba(91,155,136,.32);background:linear-gradient(145deg,rgba(62,116,99,.10),rgba(0,0,0,.13))}
.mission-final-forecast>header,.mission-procedural-brief>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.mission-final-forecast>header>span,.mission-procedural-brief>header>span{display:flex;align-items:center;gap:7px;color:#aaa99d;font-size:10px;text-transform:uppercase}
.mission-final-forecast>header svg,.mission-procedural-brief>header svg{width:17px;height:17px;color:var(--bronze)}
.mission-final-forecast>header small,.mission-procedural-brief>header small{max-width:420px;color:#65706b;font-size:8px;text-align:right}
.mission-final-chances{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mission-final-chances>span{display:grid;gap:4px;padding:12px;border:1px solid var(--line);background:rgba(0,0,0,.12)}
.mission-final-chances small{font-size:8px;text-transform:uppercase}
.mission-final-chances b{font-family:Georgia,serif;font-size:27px;font-weight:400}
.mission-final-chances .success{border-color:rgba(91,155,136,.34);color:#86c5a9}
.mission-final-chances .danger{border-color:rgba(204,91,78,.3);color:#df786e}
.mission-maximum-rewards{display:grid;gap:7px;margin-top:14px;padding-top:13px;border-top:1px solid rgba(91,155,136,.22)}
.mission-maximum-rewards>small{color:#84a596;font-size:8px;letter-spacing:.06em;text-transform:uppercase}
.mission-maximum-rewards>em{color:#65706b;font-size:8px;font-style:normal}
.mission-procedural-brief{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px;border:1px solid rgba(156,123,212,.27);background:linear-gradient(145deg,rgba(102,74,145,.08),rgba(0,0,0,.13))}
.mission-procedural-brief>header{grid-column:1/-1;margin-bottom:4px}
.mission-procedural-brief>article{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.13)}
.mission-procedural-brief>article>svg{width:20px;height:20px;color:#a68bd1}
.mission-procedural-brief article span{display:grid;gap:5px}
.mission-procedural-brief article small{color:#8c79aa;font-size:7px;letter-spacing:.06em;text-transform:uppercase}
.mission-procedural-brief article p{margin:0;color:#858a84;font-family:Georgia,serif;font-size:11px;line-height:1.5}

@media (max-width:900px){
  .hero-mission-preparation{grid-template-columns:1fr}
  .hero-mission-options{grid-template-columns:repeat(2,minmax(250px,1fr));max-height:none;padding-right:0;overflow:visible}
  .hero-mission-options>legend{grid-column:1/-1}
}
@media (max-width:680px){
  .hero-mission-options,.mission-decision-options,.mission-procedural-brief{grid-template-columns:1fr}
  .mission-final-chances{grid-template-columns:1fr}
  .mission-final-forecast>header,.mission-procedural-brief>header{align-items:flex-start;flex-direction:column}
  .mission-final-forecast>header small,.mission-procedural-brief>header small{text-align:left}
}

/* World map v2: cached terrain chunks, immersive materials, overview navigation, and decluttered placements. */
.map-shell{min-height:720px;background:#0b1214}
.world-map{background:#101b1d;box-shadow:inset 0 0 0 1px rgba(216,181,111,.12)}
.world-map::before{z-index:6;background:none;opacity:1;box-shadow:inset 0 0 0 1px rgba(223,191,128,.16),inset 0 0 85px rgba(1,5,6,.72);mask-image:none}
.map-viewport{overflow:visible;background:#142124;contain:layout size;will-change:auto;transform-origin:50% 50%;backface-visibility:visible}
.world-map.zooming .map-viewport,.world-map.dragging .map-viewport{transition:none}.world-map.camera-animating .map-viewport,.world-map.gliding .map-viewport{transition:transform 110ms cubic-bezier(.2,.72,.28,1)}
.map-viewport>canvas,.map-viewport>.map-material-layer,.map-viewport>.map-movement-layer,.map-viewport>.map-marker-layer{position:absolute;inset:auto;left:var(--map-projection-left,0);top:var(--map-projection-top,0);width:var(--map-projection-width,100%);height:var(--map-projection-height,100%)}
.map-material-layer{z-index:1;pointer-events:none;background-image:url("../images/world-map-relief-v2.webp"),url("../images/world-map-parchment-v2.webp");background-position:center,center;background-repeat:repeat,repeat;background-size:430px 430px,960px 960px;mix-blend-mode:soft-light;opacity:.25;filter:contrast(1.08)}
.map-movement-layer{z-index:3}.map-marker-layer{z-index:4}.map-vignette{z-index:7;box-shadow:inset 0 0 120px rgba(2,7,8,.78);pointer-events:none}
.world-map>#mapLoader{position:absolute;z-index:14;left:calc(50% - 21px);top:calc(50% - 21px)}
.map-navigation{position:absolute;z-index:11;top:14px;left:14px;width:220px;padding:8px;border:1px solid rgba(199,146,79,.28);background:linear-gradient(145deg,rgba(18,28,30,.96),rgba(8,14,16,.92));box-shadow:0 10px 28px rgba(0,0,0,.36);backdrop-filter:blur(10px)}
.map-navigation .map-controls{position:relative;inset:auto;display:grid;grid-template-columns:repeat(3,1fr);width:auto;margin:0 0 9px;padding:0;border:0;background:transparent;backdrop-filter:none}
.map-navigation .map-controls button{width:auto;min-width:0;height:30px;border:1px solid rgba(255,255,255,.035);background:rgba(255,255,255,.025);font-size:14px}
.map-navigation .map-controls button:nth-child(1),.map-navigation .map-controls button:nth-child(2){font-size:18px;color:#d7b66e}
.map-zoom-slider{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:9px;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.12)}
.map-zoom-slider>span{grid-column:1/-1;color:#858c87;font-size:8px;letter-spacing:.06em;text-transform:uppercase}
.map-zoom-slider input{grid-column:1/-1;width:100%;height:4px;margin:4px 0;accent-color:var(--bronze);cursor:pointer}
.map-zoom-slider em{color:#636c68;font-size:7px;font-style:normal;text-transform:uppercase}.map-zoom-slider em:last-child{text-align:right}
.map-coordinate-jump{display:flex;align-items:end;gap:6px}.map-coordinate-jump label{min-width:0;flex:1}.map-coordinate-jump label>span{display:block;margin-bottom:4px;color:#777f7b;font-size:7px;text-transform:uppercase}.map-coordinate-jump input{width:100%;height:30px;padding:5px 7px;font-size:9px;font-variant-numeric:tabular-nums}.map-coordinate-jump .btn{flex:0 0 auto;height:30px;margin:0;padding:0 9px}
.map-navigator{position:absolute;z-index:11;top:14px;right:14px;width:190px;padding:7px;border:1px solid rgba(199,146,79,.28);background:rgba(9,15,17,.9);box-shadow:0 10px 28px rgba(0,0,0,.34);backdrop-filter:blur(9px)}
.map-navigator header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:#8a918c;font-size:7px;letter-spacing:.05em;text-transform:uppercase}.map-navigator header button{border:0;background:transparent;color:var(--bronze);font:inherit;cursor:pointer}
.map-navigator canvas{display:block;width:100%;height:112px;border:1px solid rgba(221,195,139,.14);background:#111c1e;cursor:crosshair;image-rendering:auto}.map-navigator #mapNavigatorMovements{position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0;background:transparent;pointer-events:none}
.map-terrain-readout{position:absolute;z-index:9;left:50%;bottom:50px;display:flex;align-items:center;gap:6px;min-width:210px;transform:translateX(-50%);padding:6px 9px;border:1px solid rgba(199,146,79,.22);background:rgba(8,14,15,.78);color:#818985;font-size:8px;text-align:center;pointer-events:none;backdrop-filter:blur(7px)}
.map-terrain-readout svg{width:13px;height:13px;color:var(--bronze)}.map-terrain-readout b{color:#bcb7a9;font-weight:500;font-variant-numeric:tabular-nums}
.map-coordinates{right:14px;bottom:14px;max-width:320px;color:#a49f91;background:rgba(8,14,15,.9);border-color:rgba(199,146,79,.24)}
.map-legend{top:auto;right:14px;bottom:54px;max-width:330px;flex-wrap:wrap;justify-content:flex-end;background:rgba(8,14,15,.84)}
.map-legend .marsh::before{background:#47786d}.map-legend .badlands::before{background:#8b5943}
.map-compass{left:24px;bottom:22px}.map-drag-hint{bottom:17px}
.map-marker-cluster{position:absolute;z-index:5;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(224,187,111,.62);border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(78,62,35,.96),rgba(22,29,29,.94));color:#edca81;box-shadow:0 0 0 5px rgba(199,146,79,.08),0 8px 18px rgba(0,0,0,.52);cursor:pointer;transition:transform .16s,filter .16s}
.map-marker-cluster:hover{z-index:9;transform:translate(-50%,-50%) scale(1.12);filter:brightness(1.16)}.map-marker-cluster span{font-family:Georgia,serif;font-size:17px;line-height:1}.map-marker-cluster small{margin-top:-7px;color:#8f8878;font-size:6px;letter-spacing:.05em;text-transform:uppercase}
.map-marker-count{position:absolute;right:-2px;top:-2px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 3px;border:1px solid #dbb970;border-radius:9px;background:#182224;color:#e6c57e;font-size:7px;transform:none!important}
.map-marker:not(.cargo-route-marker),.map-marker.site:not(.cargo-route-marker),.map-marker.fort:not(.cargo-route-marker),.map-marker.site.season_monster:not(.cargo-route-marker){z-index:5}.map-label{z-index:4;padding:4px 7px;border:1px solid rgba(221,193,133,.11);background:rgba(5,10,11,.8);font-size:8px;letter-spacing:.01em}
.map-route line{stroke-width:2.5;stroke-dasharray:12 9;animation-duration:1s}.map-route .route-unit{filter:drop-shadow(0 0 8px var(--route-color))}

/* v0.14 · intelligence, ledgers, and command readability */
.language-switch,.language-switch.compact{min-width:82px;padding:0 13px;white-space:nowrap;font-size:9px;letter-spacing:.045em}
.top-actions .language-switch.compact{flex:0 0 auto}
.popover-actions{display:flex;align-items:center;gap:9px}.popover-actions .text-button{font-size:8px}.popover-actions .text-button:disabled{opacity:.35;cursor:not-allowed}
.notification-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:0;padding:0}.notification-open{display:flex;min-width:0;gap:10px;padding:12px;border:0;background:transparent;text-align:left;cursor:pointer}.notification-open:hover{background:rgba(255,255,255,.025)}.notification-open>svg{flex:0 0 21px;width:21px;height:21px;color:var(--bronze)}.notification-open>span{display:flex;min-width:0;flex-direction:column}.notification-open b{overflow:hidden;color:#aaa79d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.notification-open small{margin-top:4px;color:#737b76;font-size:9px;line-height:1.45}.notification-remove{display:grid;place-items:center;width:28px;height:28px;align-self:center;border:1px solid transparent;background:transparent;color:#7c6763;cursor:pointer}.notification-remove:hover{border-color:rgba(199,88,77,.35);background:rgba(199,88,77,.08);color:#d1766b}.notification-remove svg{width:13px;height:13px}
.report-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:5px;padding:0;cursor:default}.report-open{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:13px;min-width:0;padding:14px;border:0;background:transparent;text-align:left;cursor:pointer}.report-open:hover{background:rgba(255,255,255,.022)}.report-open>span:nth-child(2){min-width:0}.report-open h3{overflow:hidden;margin:0 0 5px;color:#bbb7aa;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.report-open p{margin:0;color:#79817c;font-size:10px;line-height:1.4}.report-open time{color:#838a85;font-size:9px}.report-delete{display:grid;place-items:center;width:30px;height:30px;align-self:center;border:1px solid transparent;background:transparent;color:#76625f;cursor:pointer}.report-delete:hover{border-color:rgba(199,88,77,.38);background:rgba(199,88,77,.08);color:#d1766b}.report-delete svg{width:14px;height:14px}
.message-layout{grid-template-columns:minmax(340px,.8fr) minmax(420px,1.2fr);min-height:610px}.message-item{padding:17px 18px}.message-item h3{color:#c4bfb0;font-size:14px;line-height:1.35}.message-item p{margin-top:7px;color:#818985;font-size:10px}.message-view{padding:30px 34px}.message-view h2{color:#ded3bb;font-size:29px;line-height:1.25}.message-meta{margin:10px 0 27px;color:#929a95;font-size:11px}.message-body{max-width:76ch;color:#c0bdb3;font-size:15px;line-height:1.85;overflow-wrap:anywhere}
.unit-detail-card,.unit-detail-copy{min-width:0}.unit-detail-card{overflow:hidden}.unit-detail-card p{overflow-wrap:anywhere}.unit-stats{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.unit-stats span{min-width:0}.unit-stats small,.unit-stats b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-stats.compact{grid-template-columns:repeat(3,minmax(62px,1fr));gap:5px}.unit-stats.compact span{padding:5px}.unit-stats.compact small{font-size:6.5px}.unit-stats.compact b{font-size:9px}.unit-count{max-width:92px;overflow:hidden}.unit-count b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recruit-unit-card{min-height:224px}.unit-choice-copy{min-width:0;gap:5px}.unit-choice-copy>em{flex:0 0 auto;min-height:39px;margin:3px 0;font-size:9px}.recruit-unit-card .unit-stats{margin:2px 0 5px}.recruit-unit-card .cost-row{margin-top:auto}
.npc-partner-field{margin-bottom:9px}.npc-partner-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 14px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.npc-partner-summary>span{display:flex;align-items:center;gap:8px;min-width:0}.npc-partner-summary>span:last-child{display:grid;flex:0 0 auto;gap:2px;text-align:right}.npc-partner-summary svg{flex:0 0 24px;width:24px;height:24px;color:var(--bronze)}.npc-partner-summary b{color:#bdb7a8;font-size:10px}.npc-partner-summary small{display:flex;align-items:center;gap:3px;color:#777f7a;font-size:8px}.npc-partner-summary .resource-glyph{width:18px;height:18px}.rate-preview{display:grid;gap:7px;padding:11px;line-height:1.5}.rate-preview>span{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.rate-preview b{display:inline-flex;align-items:center;gap:4px;color:var(--bronze-bright)}.rate-preview .resource-glyph{width:21px;height:21px}.npc-quote-receive .reward-row{display:inline-flex}.rate-preview>small{color:#707873;font-size:8px}
.map-route .route-unit-icon{color:#12191a;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(255,255,255,.3))}.cargo-route-marker>svg{width:19px;height:19px}

@media(max-width:900px){.message-layout{grid-template-columns:1fr}.message-view{padding:25px}.unit-stats,.unit-stats.compact{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.language-switch.compact{min-width:70px;padding:0 8px}.report-open{grid-template-columns:40px minmax(0,1fr)}.report-open time{grid-column:2}.message-view{padding:20px}.message-view h2{font-size:24px}.message-body{font-size:14px}.npc-partner-summary{align-items:flex-start;flex-direction:column}.npc-partner-summary>span:last-child{text-align:left}.unit-stats,.unit-stats.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* World map v3: organic political, danger, and natural-region overlays. */
.map-legend .neutral::before{background:#c49a54}.map-legend .friendly::before{background:#56ad8f}.map-legend .hostile::before{background:#d45f5a}.map-legend .region::before{width:10px;height:7px;border:1px dashed rgba(225,203,155,.7);border-radius:45% 55% 52% 48%;background:rgba(225,203,155,.08)}
.map-marker:not(.cargo-route-marker){--affiliation:#c89d59}.map-marker:not(.cargo-route-marker).friendly{--affiliation:#61b99a}.map-marker:not(.cargo-route-marker).hostile{--affiliation:#dc6b64}.map-marker:not(.cargo-route-marker).neutral{--affiliation:#c89d59}
.map-marker:not(.cargo-route-marker).friendly .map-location-art{box-shadow:inset 0 0 0 2px rgba(97,185,154,.72),0 0 13px rgba(76,158,132,.35)}.map-marker:not(.cargo-route-marker).hostile .map-location-art{box-shadow:inset 0 0 0 2px rgba(220,107,100,.72),0 0 14px rgba(194,69,66,.38)}.map-marker:not(.cargo-route-marker).neutral .map-location-art{box-shadow:inset 0 0 0 1px rgba(200,157,89,.58)}
.map-marker:not(.cargo-route-marker).selected::after{display:none}.map-selection-reticle{position:absolute;inset:-9px;z-index:3;pointer-events:none;background:linear-gradient(var(--affiliation),var(--affiliation)) left top/15px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) left top/2px 15px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right top/15px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right top/2px 15px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) left bottom/15px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) left bottom/2px 15px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right bottom/15px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right bottom/2px 15px no-repeat;filter:drop-shadow(0 0 5px var(--affiliation));animation:map-reticle-breathe 1.7s ease-in-out infinite}
@keyframes map-reticle-breathe{0%,100%{opacity:.64;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}
.map-label.friendly{border-color:rgba(97,185,154,.28);color:#a7d9c8}.map-label.hostile{border-color:rgba(220,107,100,.3);color:#e2a29d}.map-label.neutral{border-color:rgba(200,157,89,.24);color:#d5ba88}
.map-marker-cluster.friendly{border-color:#61b99a;color:#99d8c2;background:radial-gradient(circle,rgba(38,81,69,.96),rgba(18,31,30,.94))}.map-marker-cluster.hostile{border-color:#d76660;color:#ef9b94;background:radial-gradient(circle,rgba(91,42,40,.96),rgba(31,24,25,.94))}.map-marker-cluster.neutral{border-color:#c89d59}
.poi-inspector-visual{position:relative;display:grid;place-items:center;height:154px;margin:-17px -17px 16px;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(circle at 50% 48%,rgba(193,151,83,.18),rgba(6,12,13,.9) 72%)}.poi-inspector-visual::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 35%,rgba(255,255,255,.025) 50%,transparent 65%),radial-gradient(circle at center,transparent 46%,rgba(2,6,7,.68) 100%);pointer-events:none}.poi-inspector-visual.friendly{border-bottom-color:rgba(97,185,154,.45);background:radial-gradient(circle at 50% 48%,rgba(63,147,119,.27),rgba(6,12,13,.92) 72%)}.poi-inspector-visual.hostile{border-bottom-color:rgba(220,107,100,.5);background:radial-gradient(circle at 50% 48%,rgba(173,62,60,.29),rgba(10,10,12,.93) 72%)}
.poi-inspector-visual .inspector-map-art{position:relative;width:142px;height:142px;filter:drop-shadow(0 13px 11px rgba(0,0,0,.72));transform:translateY(4px)}.poi-inspector-visual>span{position:absolute;z-index:2;right:10px;bottom:9px;padding:5px 8px;border:1px solid currentColor;background:rgba(7,12,13,.84);color:#d4b574;font-size:7px;letter-spacing:.09em;text-transform:uppercase}.poi-inspector-visual.friendly>span{color:#7bc6aa}.poi-inspector-visual.hostile>span{color:#e17c73}
.map-inspector .stat-box[class*="threat-"]{grid-column:1/-1}.map-inspector .threat-safe b,.map-inspector .threat-low b{color:#79c5a8}.map-inspector .threat-guarded b{color:#d1ad65}.map-inspector .threat-dangerous b{color:#df8b67}.map-inspector .threat-deadly b{color:#e06d70}.map-inspector .threat-mythic b{color:#c886d4;text-shadow:0 0 10px rgba(178,90,194,.32)}
.world-map[data-map-style="political"] .map-material-layer,.world-map[data-map-style="area"] .map-material-layer{opacity:.11;mix-blend-mode:soft-light;filter:grayscale(.35) contrast(1.05)}
.map-legend .danger-unknown::before{background:#626a69}.map-legend .danger-low::before{background:#4f927a}.map-legend .danger-guarded::before{background:#b79a53}.map-legend .danger-dangerous::before{background:#c5734d}.map-legend .danger-deadly::before{background:#bd5961}.map-legend .danger-mythic::before{background:#a369b0;box-shadow:0 0 7px rgba(163,105,176,.65)}

/* Compact map markers and artwork-centered selection/inspection. */
.map-marker:not(.cargo-route-marker),.map-marker.site:not(.cargo-route-marker),.map-marker.fort:not(.cargo-route-marker){width:44px;height:44px}.map-marker .map-location-art{width:44px;height:44px;clip-path:circle(46%)}
.map-marker.site.season_monster:not(.cargo-route-marker){width:54px;height:54px}.map-marker.site.season_monster .map-location-art{width:54px;height:54px}
.map-marker:not(.cargo-route-marker):hover,.map-marker:not(.cargo-route-marker).selected,.map-marker.site:not(.cargo-route-marker):hover,.map-marker.site:not(.cargo-route-marker).selected,.map-marker.site.season_monster:not(.cargo-route-marker):hover,.map-marker.site.season_monster:not(.cargo-route-marker).selected{transform:translate(-50%,-50%) scale(1.1)}
.map-selection-reticle{left:50%;top:50%;right:auto;bottom:auto;width:50px;height:50px;border:1px solid var(--affiliation);border-radius:50%;background:linear-gradient(var(--affiliation),var(--affiliation)) center top/1px 6px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) center bottom/1px 6px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) left center/6px 1px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right center/6px 1px no-repeat;box-shadow:inset 0 0 0 3px rgba(7,12,13,.28),0 0 8px var(--affiliation);filter:none;transform:translate(-50%,-50%);transform-origin:center;animation:map-reticle-centered 1.7s ease-in-out infinite}.map-marker.site.season_monster .map-selection-reticle{width:60px;height:60px}.map-label{transform:translate(-50%,34px)}
@keyframes map-reticle-centered{0%,100%{opacity:.68;transform:translate(-50%,-50%) scale(.96)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.03)}}
.map-marker-cluster{width:40px;height:40px}.map-marker-cluster span{font-size:14px}.map-marker-count{min-width:15px;height:15px;font-size:6px}
.poi-inspector-visual::before{z-index:0}.poi-inspector-visual .inspector-map-art{position:relative;z-index:1;display:block!important;width:150px;height:150px;max-width:calc(100% - 16px);max-height:150px;aspect-ratio:1/1;opacity:1;background-image:var(--asset-image)!important;background-repeat:no-repeat;background-size:var(--asset-size-x) var(--asset-size-y);background-position:var(--asset-x) var(--asset-y);clip-path:none;border-radius:0;filter:drop-shadow(0 13px 11px rgba(0,0,0,.72));transform:none}.poi-inspector-visual>span{z-index:2}

@media (max-width:900px){
  .map-shell{min-height:650px}.map-navigation{width:184px}.map-navigator{width:146px}.map-navigator canvas{height:88px}.map-legend{display:none}.map-terrain-readout{bottom:54px}.map-coordinates{max-width:260px}
}
@media (max-width:600px){
  .map-shell{min-height:590px}.map-navigation{top:8px;left:8px;width:146px;padding:6px}.map-navigation .map-controls{grid-template-columns:repeat(2,1fr);margin-bottom:6px}.map-navigation .map-controls button:nth-child(n+3){display:none}.map-zoom-slider{margin-bottom:6px;padding:6px}.map-coordinate-jump label>span{display:none}.map-coordinate-jump .btn{padding:0 7px}.map-navigator{top:8px;right:8px;width:112px;padding:5px}.map-navigator header span{display:none}.map-navigator canvas{height:68px}.map-terrain-readout{left:8px;right:8px;bottom:54px;min-width:0;transform:none}.map-coordinates{right:8px;bottom:8px;max-width:calc(100% - 94px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-compass{left:14px;bottom:12px}.map-drag-hint{display:none}
}
.alliance-wide .report-row{grid-template-columns:42px minmax(0,1fr) auto;gap:12px;padding:12px;cursor:pointer}.map-inspector .threat-unknown b{color:#8b918e;font-style:italic}

.asset-art.standalone-unit-art{background-color:#11191b;background-position:center;background-size:contain}
.map-marker.movement-target-marker{z-index:7;border-color:#ed7c70;background:#4d2928;box-shadow:0 0 0 4px rgba(220,107,100,.13),0 0 16px rgba(220,107,100,.35)}
.inspector-icon.movement-hostile{color:#e17b72;border-color:rgba(220,107,100,.4)}
.movement-operation-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.movement-operation-actions .btn{justify-content:flex-start;min-width:0}.movement-operation-actions .btn>span{display:grid;text-align:left}.movement-operation-actions small{color:currentColor;font-size:7px;font-weight:400;opacity:.68}
.movement-operation-brief{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;align-items:center}.operation-agent-art{width:130px;height:130px;border:1px solid var(--line-bright)}.movement-operation-brief small,.operation-target-summary>small{color:#7c837f;font-size:8px;letter-spacing:.08em;text-transform:uppercase}.movement-operation-brief h3{margin:4px 0 7px}.movement-operation-brief p,.operation-target-summary p{color:#858b86;font-size:9px;line-height:1.55}.operation-target-summary{display:grid;gap:6px;margin-top:14px}.operation-target-summary b{color:#c2bbaa}.operation-report-route{display:grid;gap:4px;margin:12px 0}.operation-report-route h3{margin:0}.operation-report-route p{margin:0;color:#8c918c}.sabotage-delay{margin-top:14px}.sabotage-delay b{color:#e18176}
.mission-selector-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.mission-selector-toolbar .mission-origin{margin:0}.mission-selector-toolbar .btn{height:34px;white-space:nowrap}.hero-mission-options .empty-state.compact{grid-column:1/-1;min-height:150px;padding:20px}.hero-mission-options .empty-state.compact svg{width:28px;height:28px}
@media (max-width:600px){.movement-operation-actions,.mission-selector-toolbar{grid-template-columns:1fr}.movement-operation-brief{grid-template-columns:82px minmax(0,1fr)}.operation-agent-art{width:82px;height:82px}}

/* Independent movement art and stable interactive route markers. */
.top-actions .language-switch.compact{margin-right:9px}
.movement-art{display:block;width:100%;height:100%;background-image:var(--movement-image);background-repeat:no-repeat;background-position:center;background-size:contain;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.58))}
.movement-icon{overflow:hidden;background:radial-gradient(circle,rgba(199,146,79,.08),rgba(0,0,0,.16))}.movement-icon .movement-card-art{width:52px;height:52px;margin:auto}.movement-icon.hostile{background:radial-gradient(circle,rgba(220,107,100,.12),rgba(0,0,0,.18))}
.map-marker.cargo-route-marker{width:34px;height:34px;padding:0;overflow:visible;background:rgba(13,20,21,.9);isolation:isolate}.map-marker.cargo-route-marker .map-movement-art{width:40px;height:40px}.map-marker.cargo-route-marker::after{content:"";position:absolute;inset:-3px;z-index:-1;border:1px solid currentColor;border-radius:50%;opacity:.62;box-shadow:0 0 11px currentColor;pointer-events:none}.map-marker.cargo-route-marker.selected::after{inset:-6px;border-width:2px;opacity:1}.map-marker.cargo-route-marker.own{border-color:#d1a75e;color:#d1a75e}.map-marker.cargo-route-marker.allied{border-color:#79c3aa;color:#79c3aa}.map-marker.cargo-route-marker.hostile{border-color:#dc776d;color:#dc776d}.map-marker.cargo-route-marker.army-map-marker{z-index:7}
.inspector-icon .movement-inspector-art{width:72px;height:72px}.inspector-icon.movement-friendly{color:#79c3aa;border-color:rgba(121,195,170,.4)}.movement-relation{display:flex;margin-top:12px}.map-inspector .movement-operation-actions{margin-top:14px}
@media(max-width:620px){.top-actions .language-switch.compact{margin-right:5px}.movement-icon .movement-card-art{width:43px;height:43px}}

/* v0.16 · account economy, morale, and procedural relic inventory */
.resource-chip.account-resource .cap-line{display:none}.resource-chip.account-resource{min-width:96px;background:linear-gradient(135deg,rgba(198,210,214,.08),rgba(0,0,0,.08))}.resource-chip.account-resource .silver-glyph{filter:drop-shadow(0 0 6px rgba(200,214,220,.28))}
.inventory-ledger{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(360px,1.28fr);gap:14px;margin-bottom:16px}.inventory-ledger>article{display:flex;align-items:center;gap:16px;min-height:112px;padding:16px 20px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(199,146,79,.08),rgba(7,13,14,.9));box-shadow:0 12px 28px rgba(0,0,0,.22)}.inventory-ledger .resource-glyph,.morale-horn .item-art{flex:0 0 78px;width:78px;height:78px}.inventory-ledger article>span:last-child{display:grid;min-width:0;gap:3px}.inventory-ledger small,.inventory-item-copy>small,.active-item-effect small{color:#737d78;font-size:8px;letter-spacing:.12em;text-transform:uppercase}.inventory-ledger b{color:#ded2b9;font-family:Georgia,serif;font-size:25px}.inventory-ledger em{color:#818983;font-size:9px;font-style:normal}.morale-ledger>span:last-child>i{display:block;height:4px;margin-top:8px;overflow:hidden;background:#111a1b}.morale-ledger>span:last-child>i>i{display:block;height:100%;background:linear-gradient(90deg,#8a443f,#c3944d,#68a98f);box-shadow:0 0 8px #c3944d}
.inventory-active{margin-bottom:18px}.active-item-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.active-item-effect{--rarity:#8d9391;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid color-mix(in srgb,var(--rarity) 35%,var(--line));background:linear-gradient(105deg,color-mix(in srgb,var(--rarity) 8%,transparent),rgba(6,12,13,.55))}.active-item-art{width:58px;height:58px}.active-item-effect>span{display:grid;min-width:0;gap:3px}.active-item-effect b{overflow:hidden;color:#beb9aa;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.active-item-effect em{color:var(--rarity);font-size:9px;font-style:normal}.active-item-effect time{color:#d0aa67;font-size:10px}
.inventory-heading{margin-top:24px}.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.inventory-item{--rarity:#8d9391;position:relative;display:grid;grid-template-rows:164px auto 1fr auto;min-height:390px;overflow:hidden;border:1px solid color-mix(in srgb,var(--rarity) 45%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--rarity) 10%,#101819),#0b1213 55%);box-shadow:0 15px 30px rgba(0,0,0,.22)}.inventory-item::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 38%,color-mix(in srgb,var(--rarity) 10%,transparent) 50%,transparent 62%);transform:translateX(-90%)}.inventory-item.rarity-rare::after,.inventory-item.rarity-epic::after,.inventory-item.rarity-legendary::after,.inventory-item.rarity-mythical::after{animation:item-shimmer 5s ease-in-out infinite}.inventory-item-art{width:100%;height:164px;border-bottom:1px solid color-mix(in srgb,var(--rarity) 28%,var(--line));background-color:rgba(0,0,0,.16);background-size:300% 300%}.item-rarity{z-index:1;justify-self:start;margin:-12px 14px 0;padding:4px 8px;border:1px solid var(--rarity);background:#101718;color:var(--rarity);font-size:7px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.inventory-item-copy{display:grid;align-content:start;gap:7px;padding:12px 16px}.inventory-item h3{margin:0;color:#d7ccb5;font-family:Georgia,serif;font-size:18px}.inventory-item p{margin:0;color:#7e8781;font-size:9px;line-height:1.55}.item-effect{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;padding:8px;border-left:2px solid var(--rarity);background:color-mix(in srgb,var(--rarity) 7%,transparent)}.item-effect b{color:var(--rarity);font-size:10px}.item-effect span{color:#757d78;font-size:8px}.inventory-item footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;border-top:1px solid var(--line)}.inventory-item footer>span{color:#646d68;font-size:8px}
.rarity-ordinary{--rarity:#969b99}.rarity-unusual{--rarity:#62a96e}.rarity-rare{--rarity:#5799d3}.rarity-epic{--rarity:#9d6bd2}.rarity-legendary{--rarity:#d4a747}.rarity-mythical{--rarity:#9e373d}.inventory-use-preview{--rarity:#8d9391;display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center}.inventory-use-art{width:170px;height:170px;border:1px solid var(--rarity)}.inventory-use-preview h3{color:var(--rarity)}.inventory-use-preview p{color:#89908b;line-height:1.6}
.mission-selector-toolbar{grid-template-columns:minmax(150px,1fr) minmax(190px,1.25fr) auto}.mission-item-field{display:grid;gap:4px}.mission-item-field>span{color:#858c87;font-size:8px;letter-spacing:.08em;text-transform:uppercase}.mission-item-field select{height:34px}.mission-item-field small{color:#68716d;font-size:7px;line-height:1.35}
@keyframes item-shimmer{0%,60%,100%{transform:translateX(-90%)}75%{transform:translateX(90%)}}
@media(prefers-reduced-motion:reduce){.inventory-item::after{animation:none!important}}
@media(max-width:1050px){.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.active-item-list{grid-template-columns:1fr}}
@media(max-width:720px){.inventory-ledger,.inventory-grid{grid-template-columns:1fr}.inventory-use-preview{grid-template-columns:100px minmax(0,1fr)}.inventory-use-art{width:100px;height:100px}.mission-selector-toolbar{grid-template-columns:1fr}}

/* v0.17 · ruler profiles and procedural heroes */
.profile-name-button{display:inline;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.profile-name-button:hover{color:var(--bronze-bright);text-decoration:underline;text-underline-offset:3px}
.hero-capacity-ledger{display:grid;grid-template-columns:50px minmax(0,1fr) minmax(140px,28%);gap:14px;align-items:center;margin-bottom:15px;padding:14px 18px;border:1px solid var(--line);background:linear-gradient(110deg,rgba(199,146,79,.08),rgba(6,12,13,.72))}.hero-capacity-ledger>span{display:grid;place-items:center;width:50px;height:50px;border:1px solid rgba(199,146,79,.3);color:var(--bronze)}.hero-capacity-ledger svg{width:27px;height:27px}.hero-capacity-ledger>div{display:grid;gap:3px}.hero-capacity-ledger small,.hero-capacity-ledger em{color:#727b76;font-size:8px;font-style:normal;letter-spacing:.08em;text-transform:uppercase}.hero-capacity-ledger b{color:#d5c9af;font-family:Georgia,serif;font-size:18px}.hero-capacity-ledger>i{height:5px;overflow:hidden;background:#0a1112}.hero-capacity-ledger>i>i{display:block;height:100%;background:linear-gradient(90deg,#745b38,var(--bronze-bright));box-shadow:0 0 8px rgba(199,146,79,.45)}
.hero-offer-strip{margin:0 0 16px;border:1px solid rgba(91,155,136,.32);background:rgba(50,94,80,.06)}.hero-offer-strip>header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line)}.hero-offer-strip>header>span{display:flex;align-items:center;gap:7px;color:#a8c5b7;font-size:9px}.hero-offer-strip>header svg{width:15px;height:15px}.hero-offer-strip>header em{display:grid;place-items:center;min-width:20px;height:20px;border:1px solid rgba(91,155,136,.4);color:#8dc2a9;font-size:8px;font-style:normal}.hero-offer-strip>button{display:grid;grid-template-columns:54px minmax(0,1fr) 16px;gap:11px;align-items:center;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:left;cursor:pointer}.hero-offer-strip>button:last-child{border-bottom:0}.hero-offer-strip>button:hover{background:rgba(91,155,136,.08)}.offer-strip-art{width:54px;height:54px;border:1px solid var(--line-bright)}.hero-offer-strip>button>span{display:grid;gap:4px}.hero-offer-strip>button b{color:#c8c1b1;font-family:Georgia,serif}.hero-offer-strip>button small{font-size:8px}.hero-offer-strip>button>svg{width:14px;height:14px;color:#71817a}
.hero-card{--rarity:#969b99;position:relative;border-color:color-mix(in srgb,var(--rarity) 36%,var(--line))}.hero-card::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--rarity),transparent);opacity:.72}.hero-quality-band{display:flex;align-items:center;justify-content:space-between;min-height:25px;margin:-4px 0 10px}.rarity-text{color:var(--rarity);font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.favorite-hero{display:flex;align-items:center;gap:5px;color:#d7b66b;font-size:8px;text-transform:uppercase}.favorite-hero svg{width:13px;height:13px}.hero-portrait-art{border-color:color-mix(in srgb,var(--rarity) 50%,var(--line))!important;background-size:400% 400%!important}.hero-passives{display:grid;gap:6px;margin:12px 0}.hero-passive{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px;border-left:2px solid var(--rarity);background:color-mix(in srgb,var(--rarity) 5%,rgba(0,0,0,.14))}.hero-passive>span{display:grid;place-items:center;width:30px;height:30px;color:var(--rarity)}.hero-passive svg{width:17px;height:17px}.hero-passive>div{display:grid;gap:2px}.hero-passive b{color:#bdb7a8;font-size:9px}.hero-passive small{color:#727a76;font-size:7px;line-height:1.4}.hero-passive>em{font-style:normal}.hero-card.fallen{filter:saturate(.55)}.hero-card.fallen .hero-portrait-art{filter:grayscale(.72) contrast(1.08)}.hero-memorial,.hero-death-report{display:flex;align-items:center;gap:11px;margin:11px 0;padding:10px;border:1px solid rgba(142,50,56,.42);background:linear-gradient(90deg,rgba(116,37,43,.17),rgba(0,0,0,.12));color:#bd6469}.hero-memorial svg,.hero-death-report svg{width:24px;height:24px}.hero-memorial span,.hero-death-report span{display:grid;gap:2px}.hero-memorial b,.hero-death-report b{font-size:10px}.hero-memorial small,.hero-death-report small{color:#8b7472;font-size:8px}
.high-risk-heading{margin-top:34px!important;border-color:rgba(142,50,56,.32)}.high-risk-heading .view-eyebrow{color:#b45157}.high-risk-catalog .mission-type-card.high-risk{position:relative;overflow:hidden;border-color:rgba(142,50,56,.48);background:linear-gradient(155deg,rgba(110,29,36,.16),rgba(9,15,16,.94))}.mission-type-card.high-risk::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 32px rgba(110,29,36,.11)}.mission-type-card.high-risk .mission-emblem{border-color:rgba(176,65,72,.42);color:#c85d63}.mission-type-card .fatal,.mission-final-chances .fatal{border-color:rgba(176,65,72,.45)!important;color:#d7686e!important}.high-risk-warning{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:9px;padding:9px;border:1px solid rgba(176,65,72,.45);background:rgba(110,29,36,.13);color:#d7686e}.high-risk-warning svg{width:22px;height:22px}.high-risk-warning span{display:grid;gap:2px}.high-risk-warning small{color:#9d7774!important}.high-risk-mission-modal .game-dialog{border-color:rgba(176,65,72,.45)}
.hero-encounter-card{--rarity:#969b99;display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center}.hero-encounter-art{width:170px;height:170px;border:1px solid var(--rarity);background-size:400% 400%!important}.hero-encounter-card h2{margin:5px 0;color:#d8ccb5;font-family:Georgia,serif;font-size:27px}.hero-encounter-card p{color:#858d87}.hero-candidate-skills{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:11px}.hero-candidate-skills span{display:grid;padding:6px;border:1px solid var(--line)}.hero-candidate-skills small{color:#6f7873;font-size:7px;text-transform:uppercase}.hero-candidate-skills b{color:#bfb9aa}.candidate-passives{display:grid;gap:7px;margin-top:16px}.candidate-passives>article{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.candidate-passives>article>svg{width:19px;height:19px;color:var(--rarity)}.candidate-passives>article>span{display:grid;gap:2px}.candidate-passives b{color:#bfb9aa}.candidate-passives small{color:#737b77;font-size:8px}.hero-capacity-inline{display:flex;justify-content:space-between;margin-top:12px;padding:9px;border:1px solid var(--line);color:#838b86}.hero-capacity-inline b{color:#c8b17f}
.ruler-profile{display:grid;gap:14px}.ruler-profile-banner{display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:18px;align-items:center;padding:17px;border:1px solid var(--line);background:linear-gradient(120deg,rgba(199,146,79,.09),rgba(7,13,14,.9))}.profile-avatar-art{width:118px;height:118px;border:1px solid var(--bronze);background-size:400% 200%!important}.ruler-profile-banner>div{display:grid;gap:4px}.ruler-profile-banner small,.ruler-profile-banner em{color:#737d77;font-size:8px;font-style:normal;letter-spacing:.07em;text-transform:uppercase}.ruler-profile-banner h2{margin:0;color:#ded1b8;font-family:Georgia,serif;font-size:28px}.ruler-profile-banner p{margin:0;color:#9e8b66}.profile-score{justify-items:end}.profile-score b{color:#d3b36f;font-family:Georgia,serif;font-size:25px}.profile-ledger{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.profile-ledger>span{display:grid;gap:3px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.profile-ledger small{color:#6e7772;font-size:7px;text-transform:uppercase}.profile-ledger b{color:#c7c0b1;font-size:16px}.profile-favorite{--rarity:#969b99;display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;padding:12px;border:1px solid color-mix(in srgb,var(--rarity) 45%,var(--line));background:linear-gradient(125deg,color-mix(in srgb,var(--rarity) 9%,transparent),rgba(0,0,0,.12))}.profile-favorite>header{grid-column:1/-1;display:flex;justify-content:space-between}.profile-hero-art{grid-row:2;width:110px;height:110px;border:1px solid var(--rarity);background-size:400% 400%!important}.profile-favorite>div{align-self:center}.profile-favorite h3{margin:0;color:#d4c9b4;font-family:Georgia,serif;font-size:20px}.profile-favorite p{color:#7c847f}.profile-favorite>div>span{display:inline-flex;align-items:center;gap:4px;margin:3px;padding:4px 6px;border:1px solid var(--line);color:#9da39f;font-size:8px}.profile-favorite svg{width:12px;height:12px}.profile-hero-selector,.profile-section{display:grid;gap:8px}.profile-hero-selector h3,.profile-section h3{margin:0;color:#a99f8c;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.profile-hero-selector>button{display:grid;grid-template-columns:48px minmax(0,1fr) 16px;gap:9px;align-items:center;padding:7px;border:1px solid var(--line);background:rgba(0,0,0,.12);color:inherit;text-align:left;cursor:pointer}.profile-hero-selector>button:hover,.profile-hero-selector>button.active{border-color:var(--bronze);background:rgba(199,146,79,.06)}.profile-choice-art{width:48px;height:48px;background-size:400% 400%!important}.profile-hero-selector>button>span{display:grid;gap:2px}.profile-hero-selector b{color:#bbb5a7}.profile-hero-selector small{color:#747d77;font-size:8px}.profile-city-list,.profile-achievements{display:grid;gap:6px}.profile-city-list>article,.profile-achievements>article{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.11)}.profile-city-list svg,.profile-achievements svg{width:19px;height:19px;color:#aa8854}.profile-city-list span,.profile-achievements span{display:grid;gap:2px}.profile-city-list b,.profile-achievements b{color:#bfb9aa}.profile-city-list small,.profile-achievements small{color:#707974;font-size:8px}.profile-city-list strong,.profile-achievements strong{color:#b79b65;font-size:9px}
.alliance-invitation-panel{margin-bottom:15px}.alliance-invitation-panel article{display:grid;grid-template-columns:46px minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:9px;border-bottom:1px solid var(--line)}.alliance-invitation-panel article:last-child{border-bottom:0}.alliance-invitation-panel h3{margin:0;color:#c4bdad}.alliance-invitation-panel p{margin:3px 0 0;color:#737c76;font-size:8px}
@media(max-width:760px){.hero-capacity-ledger{grid-template-columns:44px minmax(0,1fr)}.hero-capacity-ledger>i{grid-column:1/-1}.hero-encounter-card{grid-template-columns:100px minmax(0,1fr)}.hero-encounter-art{width:100px;height:100px}.ruler-profile-banner{grid-template-columns:82px minmax(0,1fr)}.profile-avatar-art{width:82px;height:82px}.profile-score{grid-column:1/-1;justify-items:start}.alliance-invitation-panel article{grid-template-columns:40px minmax(0,1fr)}.alliance-invitation-panel article .btn{width:100%}.profile-ledger{grid-template-columns:1fr}.profile-favorite{grid-template-columns:84px minmax(0,1fr)}.profile-hero-art{width:84px;height:84px}}

/* Authoritative scouting forecast and immersive intelligence ledger. */
.scout-forecast{grid-column:1/-1;display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center;margin-top:12px;padding:12px;border:1px solid rgba(91,145,136,.34);background:linear-gradient(115deg,rgba(54,105,97,.12),rgba(6,12,13,.72))}.scout-forecast>div{display:grid;gap:3px}.scout-forecast small,.scout-forecast em{color:#74837e;font-size:8px;font-style:normal;letter-spacing:.08em;text-transform:uppercase}.scout-forecast b{color:#b8ccc5;font-family:Georgia,serif;font-size:15px}.scout-forecast p{margin:0;color:#727c77;font-size:8px;line-height:1.45}.scout-forecast-seal{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(105,180,160,.38);color:#70b69f;background:radial-gradient(circle,rgba(89,160,141,.14),transparent)}.scout-forecast-seal svg{width:24px;height:24px}.scout-forecast-seal.danger{border-color:rgba(196,82,76,.38);color:#d2756d}.scout-forecast>header{grid-column:1/-1;display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center}.scout-forecast>header>span:last-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px;align-items:center}.scout-forecast>header small,.scout-forecast>header em{grid-column:1}.scout-forecast>header b{grid-column:2;grid-row:1/4;color:#86d1b6;font-size:27px}.scout-intel-odds{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.scout-intel-odds article{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.14)}.scout-intel-odds article>svg{width:17px;height:17px;color:#88938e}.scout-intel-odds article>span{display:grid;gap:2px}.scout-intel-odds article b{font-family:inherit;font-size:9px}.scout-intel-odds article strong{color:#d2b06e;font-size:12px}.scout-intel-odds .guaranteed strong,.scout-intel-odds .guaranteed>svg{color:#70b69f}.scout-forecast>footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid var(--line);color:#7b837e;font-size:8px}.scout-forecast>footer span{display:flex;align-items:center;gap:5px}.scout-forecast>footer svg{width:13px;height:13px}
.scout-report-modal .game-dialog{width:min(1060px,calc(100vw - 24px));max-width:1060px}.scout-report-hero{display:grid;grid-template-columns:62px minmax(0,1fr);gap:16px;align-items:center;padding:18px;border:1px solid rgba(94,165,145,.38);background:linear-gradient(110deg,rgba(52,112,96,.17),rgba(4,10,11,.68))}.scout-report-hero.failed{border-color:rgba(176,67,66,.42);background:linear-gradient(110deg,rgba(117,37,40,.18),rgba(5,9,10,.72))}.scout-report-hero>svg{width:48px;height:48px;color:#73c0a6;filter:drop-shadow(0 0 10px rgba(79,174,147,.35))}.scout-report-hero.failed>svg{color:#cf6867}.scout-report-hero span{display:grid;gap:4px}.scout-report-hero small,.scout-ledger-section header small,.scout-ledger-core header small{color:#75817c;font-size:8px;letter-spacing:.13em;text-transform:uppercase}.scout-report-hero h2{margin:0;color:#d8d0bc;font-size:24px}.scout-report-hero p{margin:0;color:#87908b;font-size:9px}.scout-casualty-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0 16px;padding:10px 13px;border-left:2px solid #a34f4e;background:rgba(111,36,39,.11)}.scout-casualty-strip>span{display:grid;gap:5px}.scout-casualty-strip small{color:#8c7774;font-size:8px;text-transform:uppercase}.scout-casualty-strip>b{max-width:310px;color:#8f8980;font-size:9px;text-align:right}.scout-ledger-core,.scout-ledger-section{margin-top:12px;padding:14px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(18,29,30,.94),rgba(7,12,13,.86))}.scout-ledger-core>header,.scout-ledger-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.scout-ledger-core>header>span,.scout-ledger-section>header>span{display:flex;align-items:center;gap:10px}.scout-ledger-core>header svg,.scout-ledger-section>header>svg{width:25px;height:25px;color:#76af9e}.scout-ledger-core header span span,.scout-ledger-section header span span{display:grid;gap:2px}.scout-ledger-core h3,.scout-ledger-section h3{margin:0;color:#c8c1b0;font-size:15px}.scout-ledger-core>header>b,.scout-ledger-section>header>b{color:#d4b36e;font-size:11px}.scout-ledger-section.locked{border-style:dashed;opacity:.72;background:repeating-linear-gradient(135deg,rgba(16,24,25,.86),rgba(16,24,25,.86) 12px,rgba(11,18,19,.86) 12px,rgba(11,18,19,.86) 24px)}.scout-ledger-section.locked p,.scout-failure-story p{margin:0;color:#717a76;font-size:9px}
.scout-unit-grid,.scout-building-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.scout-unit-entry{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:9px;align-items:center;padding:7px;border:1px solid var(--line);background:rgba(0,0,0,.14)}.scout-unit-art{width:48px;height:48px}.scout-unit-entry>span{display:grid;gap:2px}.scout-unit-entry small{color:#6f7974;font-size:7px;text-transform:uppercase}.scout-unit-entry b{color:#aaa79d;font-size:9px}.scout-unit-entry strong{color:#e0c17c;font-size:15px}.scout-building-grid article{display:grid;grid-template-columns:62px minmax(0,1fr);gap:9px;align-items:center;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.14)}.scout-building-art{width:62px;height:62px}.scout-building-grid span{display:grid;gap:4px}.scout-building-grid b{color:#bcb6a7;font-size:9px}.scout-building-grid small{color:#d0a95f;font-size:8px}.scout-hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.scout-hero-entry{--rarity:#969b99;display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:10px;border:1px solid color-mix(in srgb,var(--rarity) 42%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--rarity) 7%,transparent),rgba(0,0,0,.14))}.scout-hero-art{width:104px;height:104px;border:1px solid var(--rarity)}.scout-hero-entry>div{display:grid;align-content:start;gap:4px}.scout-hero-entry h3{font-size:16px}.scout-hero-entry p{margin:0;color:#7c847f;font-size:8px}.scout-hero-stats{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.scout-hero-stats span{display:flex;gap:4px;padding:3px 5px;border:1px solid var(--line);font-size:7px}.scout-hero-stats small{color:#737d78}.scout-hero-ability{display:grid;grid-template-columns:18px minmax(0,1fr);gap:5px;align-items:center;padding:5px;background:rgba(0,0,0,.13)}.scout-hero-ability svg{width:14px;height:14px;color:var(--rarity)}.scout-hero-ability span{display:grid}.scout-hero-ability b{font-size:8px}.scout-hero-ability small{color:#747d78;font-size:7px}.scout-hero-entry footer{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;color:#8aa89e;font-size:7px}
.scout-order-list,.scout-movement-list{display:grid;gap:6px}.scout-order-list article,.scout-movement-list article{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:9px;align-items:center;padding:7px;border:1px solid var(--line);background:rgba(0,0,0,.13)}.scout-order-art,.scout-movement-art{width:48px;height:48px}.scout-order-list span,.scout-movement-list span{display:grid;gap:3px}.scout-order-list b,.scout-movement-list b{color:#b8b3a5;font-size:9px}.scout-order-list small,.scout-movement-list small{color:#737d78;font-size:8px}.scout-order-list time,.scout-movement-list time{color:#d0a95f;font-size:9px}.scout-failure-story{display:grid;justify-items:center;gap:8px;padding:34px;border:1px dashed rgba(158,69,69,.35);text-align:center;background:radial-gradient(circle,rgba(105,31,35,.12),transparent 70%)}.scout-failure-story svg{width:42px;height:42px;color:#9c5555}.scout-failure-story h3{margin:0;color:#b68c88}
.map-marker.cargo-route-marker{border:0!important;background:transparent!important;box-shadow:none!important}.map-marker.cargo-route-marker::after{display:none!important}.map-marker.cargo-route-marker .map-movement-art{filter:drop-shadow(0 4px 4px rgba(0,0,0,.7))}
@media(max-width:760px){.scout-intel-odds,.scout-unit-grid,.scout-building-grid,.scout-hero-grid{grid-template-columns:1fr}.scout-forecast>footer,.scout-casualty-strip{align-items:flex-start;flex-direction:column}.scout-casualty-strip>b{text-align:left}.scout-hero-entry{grid-template-columns:80px minmax(0,1fr)}.scout-hero-art{width:80px;height:80px}}
.scout-building-grid article,.scout-order-list article{position:relative;overflow:hidden}.scout-building-art,.scout-order-art{position:static!important;inset:auto!important;right:auto!important;bottom:auto!important;transform:none!important}

/* v0.17.1 · world ruler directory and compact relic vault */
.map-inspector-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:12px}.map-inspector-actions .btn{width:100%;justify-content:flex-start}.map-profile-link{border-color:rgba(199,146,79,.28);color:#bda475}.map-profile-link svg{width:15px;height:15px}
.ruler-search{margin-bottom:18px;overflow:hidden}.ruler-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:14px 16px;border-bottom:1px solid var(--line);background:linear-gradient(100deg,rgba(199,146,79,.08),rgba(6,12,13,.58))}.ruler-search-form label{display:grid;gap:5px}.ruler-search-form label>span{color:#9f9279;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.ruler-search-form input{height:38px}.ruler-search-form .btn{height:38px}.ruler-search-results{min-height:52px}.ruler-search-status{display:flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:12px;color:#78817c;font-size:9px}.ruler-search-status svg{width:17px;height:17px;color:#a7834f}.ruler-search-status.error{color:#d07169}.ruler-search-summary{padding:9px 16px 0;color:#737c77;font-size:8px;letter-spacing:.08em;text-transform:uppercase}.ruler-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px 12px 12px}.ruler-search-result{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;padding:8px;border:1px solid var(--line);background:rgba(5,10,11,.33);color:inherit;text-align:left;cursor:pointer}.ruler-search-result:hover,.ruler-search-result:focus-visible{border-color:var(--bronze);background:rgba(199,146,79,.07);outline:none}.search-avatar-art{width:58px;height:58px;border:1px solid rgba(199,146,79,.3);background-size:400% 200%!important}.ruler-search-result>span{display:grid;min-width:0;gap:2px}.ruler-search-result>span small{color:#756f63;font-size:7px;letter-spacing:.08em;text-transform:uppercase}.ruler-search-result>span b{overflow:hidden;color:#cec3ae;font-family:Georgia,serif;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.ruler-search-result>span em{overflow:hidden;color:#88795f;font-size:8px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.ruler-search-result>strong{display:grid;justify-items:end;color:#c3a260;font-size:13px}.ruler-search-result>strong small{color:#6c746f;font-size:6px;text-transform:uppercase}.ruler-search-result>i{position:absolute;right:8px;bottom:7px;color:#69726d;font-size:7px;font-style:normal}.ruler-search-pages{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px 12px}.ruler-search-pages>span{color:#747d78;font-size:8px}
.inventory-active{margin-bottom:12px}.inventory-active>.section-heading{min-height:31px;padding:7px 11px}.inventory-active>.section-heading span{font-size:8px}.inventory-active>.section-heading em{min-width:18px;height:18px}.active-item-list{display:flex;gap:6px;padding:7px;overflow-x:auto}.active-item-effect{flex:0 0 min(310px,82vw);grid-template-columns:36px minmax(0,1fr) auto;gap:8px;min-height:44px;padding:4px 7px}.active-item-art{width:36px;height:36px}.active-item-effect>span{gap:1px}.active-item-effect b{font-size:9px}.active-item-effect em{font-size:7px}.active-item-effect time{font-size:8px;white-space:nowrap}.active-effects-empty{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 7px;color:#6f7873;font-size:8px}.active-effects-empty svg{width:15px;height:15px;color:#8e7c5e}
.inventory-vault{overflow:hidden}.inventory-vault-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid var(--line);background:linear-gradient(100deg,rgba(199,146,79,.07),rgba(6,12,13,.48))}.inventory-vault-heading>div{display:grid;gap:3px}.inventory-vault-heading small{color:#a57d44;font-size:7px;font-weight:800;letter-spacing:.14em}.inventory-vault-heading h2{margin:0;color:#d4c7ad;font-family:Georgia,serif;font-size:21px}.inventory-vault-heading p{margin:0;color:#737c77;font-size:8px}.inventory-vault-heading>strong{color:#d1ae67;font-family:Georgia,serif;font-size:22px;white-space:nowrap}.inventory-vault-heading>strong span{color:#6d756f;font-size:12px}.inventory-grid{display:grid;grid-template-columns:repeat(6,minmax(78px,1fr));gap:9px;padding:14px}.inventory-slot{--rarity:#8d9391;position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1/1;overflow:hidden;border:1px solid color-mix(in srgb,var(--rarity) 45%,var(--line));background:radial-gradient(circle at 50% 44%,color-mix(in srgb,var(--rarity) 9%,transparent),rgba(5,10,11,.88) 70%);box-shadow:inset 0 0 0 3px rgba(0,0,0,.22),inset 0 0 22px rgba(0,0,0,.34);color:inherit}.inventory-slot.occupied{cursor:pointer}.inventory-slot.occupied::before,.inventory-slot.empty::before{content:"";position:absolute;inset:5px;border:1px solid color-mix(in srgb,var(--rarity) 20%,transparent)}.inventory-slot.occupied:hover,.inventory-slot.occupied:focus-visible{z-index:1;border-color:var(--rarity);outline:none;box-shadow:inset 0 0 0 3px rgba(0,0,0,.22),0 0 16px color-mix(in srgb,var(--rarity) 35%,transparent);transform:translateY(-2px)}.inventory-slot-art{width:86%;height:86%;background-size:300% 300%;filter:drop-shadow(0 6px 8px rgba(0,0,0,.58))}.inventory-slot-rarity{position:absolute;left:10%;right:10%;bottom:6px;height:2px;background:linear-gradient(90deg,transparent,var(--rarity),transparent);box-shadow:0 0 7px var(--rarity)}.inventory-slot>small{position:absolute;top:5px;left:7px;color:#5f6863;font-size:6px}.inventory-slot.empty{--rarity:#56605b}.inventory-slot.empty>i{width:34%;height:34%;border:1px solid rgba(111,123,116,.1);transform:rotate(45deg)}.inventory-slot-detail>div{display:grid;gap:7px}.inventory-slot-detail>div>small,.inventory-slot-detail>div>em{color:#737c77;font-size:8px;font-style:normal}.inventory-slot-detail .item-rarity{justify-self:start;margin:0}.inventory-slot-detail .item-effect{margin-top:3px}
@media(max-width:1050px){.inventory-grid{grid-template-columns:repeat(5,minmax(70px,1fr))}.ruler-search-grid{grid-template-columns:1fr}}
@media(max-width:760px){.ruler-search-form{grid-template-columns:1fr}.ruler-search-result{grid-template-columns:48px minmax(0,1fr) auto}.search-avatar-art{width:48px;height:48px}.inventory-grid{grid-template-columns:repeat(4,minmax(58px,1fr));gap:6px;padding:9px}.inventory-vault-heading{padding:12px}.inventory-vault-heading p{display:none}}
@media(max-width:430px){.inventory-grid{grid-template-columns:repeat(3,minmax(56px,1fr))}.ruler-search-result{grid-template-columns:44px minmax(0,1fr)}.search-avatar-art{width:44px;height:44px}.ruler-search-result>strong{display:none}}

/* v0.17.2 · visible alliance decisions and collision-free mission planning */
.notification-invite-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.35fr;gap:6px;padding:0 10px 10px}.notification-invite-actions .btn{width:100%;min-width:0;justify-content:center}.alliance-crest-design.small{width:46px;height:52px;padding:3px}.alliance-crest-design.small.shape-round,.alliance-crest-design.small.shape-diamond{width:46px;height:46px}.alliance-invite-confirm{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:center}.alliance-confirm-crest{width:92px;height:92px}.alliance-invite-confirm>div{display:grid;gap:5px}.alliance-invite-confirm small,.alliance-invite-confirm em{color:#777f79;font-size:8px;font-style:normal;letter-spacing:.06em;text-transform:uppercase}.alliance-invite-confirm h3{margin:0;color:#d0c4ad;font-family:Georgia,serif;font-size:22px}.alliance-invite-confirm p{margin:2px 0;color:#858c87;font-size:9px;line-height:1.55}
#heroMissionForm,.hero-mission-preparation,.mission-prep-selector,.mission-prep-workspace{width:100%;max-width:100%;box-sizing:border-box}.hero-mission-preparation{grid-template-columns:minmax(0,360px) minmax(0,1fr)}.mission-prep-selector{overflow:hidden}.mission-selector-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.mission-selector-toolbar .mission-origin,.mission-selector-toolbar .mission-item-field{min-width:0}.mission-selector-toolbar select{width:100%;min-width:0}.mission-selector-toolbar .btn{grid-column:1/-1;width:100%;height:auto;min-height:34px;white-space:normal}.hero-mission-options,.mission-decision-options{width:100%;max-width:100%;min-width:0;min-inline-size:0;box-sizing:border-box}.hero-mission-option,.mission-decision{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden}.mission-option-copy,.decision-copy,.mission-option-copy>*,.decision-copy>*{min-width:0;max-width:100%}.mission-option-copy>em,.decision-copy>em{overflow-wrap:anywhere}.mission-choice-odds{grid-template-columns:52px minmax(0,1fr);min-width:0;box-sizing:border-box}.hero-mission-option .requirement-summary{min-width:0}.hero-mission-option .requirement{max-width:100%;white-space:normal}.decision-odds b{min-width:0;overflow-wrap:anywhere}
@media(max-width:900px){.hero-mission-preparation{grid-template-columns:1fr}.mission-prep-selector{overflow:visible}}
@media(max-width:520px){.notification-invite-actions{grid-template-columns:1fr}.alliance-invite-confirm{grid-template-columns:66px minmax(0,1fr)}.alliance-confirm-crest{width:66px;height:66px}}

/* v2.1 · Forged Interface — readable icon scale and resilient layouts. */
.ui-icon{display:inline-block;flex:0 0 auto;width:1em;height:1em;background-image:var(--ui-icon-image);background-repeat:no-repeat;background-size:contain;background-position:center;vertical-align:-.16em;filter:drop-shadow(0 2px 3px rgba(0,0,0,.38))}
.icon-crest{--ui-icon-x:0%;--ui-icon-y:0%}.icon-citadel{--ui-icon-x:14.2857143%;--ui-icon-y:0%}.icon-map{--ui-icon-x:28.5714286%;--ui-icon-y:0%}.icon-swords{--ui-icon-x:42.8571429%;--ui-icon-y:0%}.icon-helmet{--ui-icon-x:57.1428571%;--ui-icon-y:0%}.icon-research{--ui-icon-x:71.4285714%;--ui-icon-y:0%}.icon-hero{--ui-icon-x:85.7142857%;--ui-icon-y:0%}.icon-scales{--ui-icon-x:100%;--ui-icon-y:0%}
.icon-banner{--ui-icon-x:0%;--ui-icon-y:14.2857143%}.icon-scroll{--ui-icon-x:14.2857143%;--ui-icon-y:14.2857143%}.icon-reports{--ui-icon-x:28.5714286%;--ui-icon-y:14.2857143%}.icon-message{--ui-icon-x:42.8571429%;--ui-icon-y:14.2857143%}.icon-ranking{--ui-icon-x:57.1428571%;--ui-icon-y:14.2857143%}.icon-admin{--ui-icon-x:71.4285714%;--ui-icon-y:14.2857143%}.icon-rune{--ui-icon-x:85.7142857%;--ui-icon-y:14.2857143%}.icon-bell{--ui-icon-x:100%;--ui-icon-y:14.2857143%}
.icon-hourglass{--ui-icon-x:0%;--ui-icon-y:28.5714286%}.icon-menu{--ui-icon-x:14.2857143%;--ui-icon-y:28.5714286%}.icon-arrow{--ui-icon-x:28.5714286%;--ui-icon-y:28.5714286%}.icon-chevron{--ui-icon-x:42.8571429%;--ui-icon-y:28.5714286%}.icon-close{--ui-icon-x:57.1428571%;--ui-icon-y:28.5714286%}
.icon-crest,.icon-citadel,.icon-map,.icon-swords,.icon-helmet,.icon-research,.icon-hero,.icon-scales{--ui-icon-y-offset:1.28%}
.icon-banner,.icon-scroll,.icon-reports,.icon-message,.icon-ranking,.icon-admin,.icon-rune,.icon-bell{--ui-icon-y-offset:2.19%}
.icon-hourglass,.icon-menu,.icon-arrow,.icon-chevron,.icon-close{--ui-icon-y-offset:2.01%}
.wordmark-mark.ui-icon{width:46px;height:46px;filter:drop-shadow(0 0 12px rgba(214,151,69,.32))}.wordmark.compact .wordmark-mark.ui-icon{width:38px;height:38px}.feature-runes .ui-icon,.btn>.ui-icon{width:20px;height:20px}.nav-item>.ui-icon{width:24px;height:24px}.top-actions .ui-icon,.mobile-menu .ui-icon{width:22px;height:22px}.city-picker>.ui-icon{display:inline-block;width:30px;height:30px;flex:0 0 30px}.city-picker>.chevron{width:14px;height:14px;flex-basis:14px}.rail-section header .ui-icon{width:18px;height:18px}.season-sigil .ui-icon{width:34px;height:34px}.mobile-nav .ui-icon{width:24px;height:24px}.icon-button>.ui-icon{width:21px;height:21px}.empty-state>.ui-icon{width:52px;height:52px;margin:0 auto 12px}.asset-art.fallback>.ui-icon{width:55%;height:55%}

:root{--topbar:78px;--sidebar:clamp(224px,15vw,252px);--rail:clamp(286px,19vw,330px);--radius:7px}
html{font-size:16px;text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-size:clamp(14px,.2vw + 13px,16px);line-height:1.5}.game-shell{min-height:100dvh}.main-content{min-width:0;min-height:calc(100dvh - var(--topbar));padding:clamp(22px,2.2vw,38px) clamp(16px,2.4vw,42px) 72px}.main-content>div,#viewRoot,#viewRoot>section{min-width:0;max-width:100%}
#viewRoot :is(section,article,div,span,header,footer,form,fieldset){min-width:0}#viewRoot :is(h1,h2,h3,h4,p,b,small,em,strong,label,td,th){overflow-wrap:anywhere}#viewRoot p{font-size:clamp(12px,.72vw,14px)!important;line-height:1.62}#viewRoot small{font-size:clamp(10px,.61vw,12px)!important;line-height:1.45}#viewRoot label{font-size:12px;line-height:1.45}.section-heading span,.view-eyebrow{font-size:11px;line-height:1.4}.view-title h1{font-size:clamp(34px,3.1vw,52px)}.view-title p{max-width:72ch;color:#a19f94}.panel,.content-card{border-color:rgba(219,191,132,.17);background:linear-gradient(145deg,rgba(27,39,41,.96),rgba(14,21,23,.96));box-shadow:inset 0 1px rgba(255,255,255,.018),0 14px 34px rgba(0,0,0,.12)}
.btn{min-height:44px;padding:10px 17px;font-size:12px;line-height:1.3;white-space:normal}.btn.small{min-height:36px;font-size:10px}.text-button{min-height:32px;padding:6px 8px;font-size:11px}.tab{min-height:42px;font-size:11px}input,select,textarea{min-height:44px;font-size:15px;line-height:1.5}textarea{min-height:124px}.tooltip{max-width:min(320px,calc(100vw - 20px));padding:10px 12px;font-size:12px}.toast{grid-template-columns:30px minmax(0,1fr) 32px;padding:14px}.toast>.ui-icon{width:26px;height:26px}.toast b{font-size:13px}.toast p{font-size:12px}.toast button{min-width:32px;min-height:32px}
.topbar{height:var(--topbar)}.topbar .wordmark{padding-left:20px}.city-picker{width:clamp(210px,15vw,238px);flex:0 0 clamp(210px,15vw,238px);padding:0 16px}.city-picker small{font-size:9px}.city-picker b{font-size:15px}.resource-chip{min-width:clamp(86px,6.2vw,112px);padding:0 clamp(8px,.8vw,14px)}.resource-chip b{font-size:14px}.resource-chip small{font-size:9px;line-height:1.3}.top-actions{gap:4px;padding-left:8px}.language-switch,.language-switch.compact{min-width:88px;height:42px;margin:0 8px;padding:0 13px;font-size:10px}.profile-chip b{font-size:12px}.profile-chip small{font-size:9px}.sidebar{padding:20px 13px 16px}.nav-item{min-height:46px;gap:13px;padding:9px 12px}.nav-item span{font-size:13px}.nav-label{font-size:9px}.right-rail{padding:20px 17px}.rail-section header>span{font-size:10px}.right-rail :is(p,small){font-size:10px!important;line-height:1.5}
.card-grid,.hero-grid,.alliance-grid,.alliance-request-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}.building-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px}.building-card{min-height:300px;padding:18px}.building-card h3{font-size:22px}.building-card p{max-width:60ch}.content-card{padding:16px}.city-overview-grid,.market-layout{gap:18px}.table-scroll{max-width:100%;overflow:auto}.data-table{min-width:620px}.quest-card{gap:18px;padding:18px}.quest-card h3{font-size:20px}.quest-icon{width:62px;height:62px}.quest-icon>.ui-icon{width:38px;height:38px}.unit-art{background-color:transparent;image-rendering:auto}.unit-detail-card,.recruit-unit-card{min-height:260px}.unit-stats,.unit-stats.compact{grid-template-columns:repeat(3,minmax(78px,1fr));gap:7px}.unit-stats span,.unit-stats.compact span{padding:8px}.unit-stats small,.unit-stats.compact small{font-size:10px!important;white-space:normal}.unit-stats b,.unit-stats.compact b{font-size:12px;white-space:normal}.unit-choice-copy>em{min-height:auto;font-size:12px}.modal{width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}.modal-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 24px);overflow:hidden}.modal-frame>header{padding:18px 20px}.modal-frame h2{font-size:clamp(24px,2vw,32px)}.modal-frame header small{font-size:10px}.modal-body{max-height:none;min-height:0;padding:22px;overflow:auto;overscroll-behavior:contain}.modal-frame>footer{flex-wrap:wrap;padding:15px 20px}.game-dialog{max-width:calc(100vw - 24px)}

.mailbox-tabs{gap:8px;margin-bottom:12px}.mailbox-tabs .tab{padding:9px 15px}.mailbox-tabs .ui-icon{width:21px;height:21px}.message-layout{grid-template-columns:minmax(310px,.72fr) minmax(420px,1.28fr);min-height:min(680px,calc(100dvh - 220px));max-height:calc(100dvh - 220px);overflow:hidden}.message-list{overflow-y:auto;border-right:1px solid var(--line);overscroll-behavior:contain}.message-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px;border-left:3px solid transparent}.message-item.unread{border-left-color:var(--bronze-bright);background:linear-gradient(90deg,rgba(199,146,79,.08),transparent)}.message-item.active{background:linear-gradient(90deg,rgba(75,142,133,.12),rgba(199,146,79,.04))}.message-item-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(199,146,79,.2);background:rgba(199,146,79,.05)}.message-item-icon .ui-icon{width:27px;height:27px}.message-item-copy{display:grid;gap:3px;min-width:0}.message-item-copy small{color:#a58c63;text-transform:uppercase;letter-spacing:.07em}.message-item h3{overflow:hidden;color:#d1c8b7;font-size:15px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.message-item p{display:-webkit-box;margin:0;color:#939891;font-size:12px!important;line-height:1.45;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.message-item-status{display:grid;justify-items:end;gap:5px}.message-item-status time{color:#858d88;font-size:10px;white-space:nowrap}.message-item-status b,.message-item-status em{padding:3px 6px;border:1px solid var(--line);color:#9c9e96;font-size:9px;font-style:normal;white-space:nowrap}.message-item-status em{border-color:rgba(199,146,79,.35);color:var(--bronze-bright)}.message-view{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;padding:0;background:radial-gradient(circle at 90% 0,rgba(199,146,79,.06),transparent 32%)}.message-thread-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:22px 24px;border-bottom:1px solid var(--line)}.message-thread-header>.text-button{grid-column:1/-1;justify-self:start;display:flex;align-items:center;gap:7px}.message-thread-header>.text-button .ui-icon{width:16px;height:16px;transform:rotate(180deg)}.message-thread-header>div small{color:#a18154;text-transform:uppercase;letter-spacing:.08em}.message-thread-header h2{margin:3px 0 0;font-size:clamp(23px,2vw,31px)}.message-thread-header>span{display:flex;align-items:center;gap:7px;color:#8c938e;font-size:11px}.message-thread-header>span .ui-icon{width:20px;height:20px}.message-thread{display:flex;flex-direction:column;gap:14px;min-height:0;padding:22px 24px;overflow-y:auto;overscroll-behavior:contain}.thread-entry{width:min(82%,720px);padding:15px 17px;border:1px solid var(--line);background:rgba(9,15,16,.64);box-shadow:0 8px 20px rgba(0,0,0,.12)}.thread-entry.own{align-self:flex-end;border-color:rgba(199,146,79,.27);background:linear-gradient(135deg,rgba(115,77,38,.16),rgba(12,19,20,.8))}.thread-entry.incoming{align-self:flex-start;border-color:rgba(79,151,141,.26)}.thread-entry header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.thread-entry header>span{display:flex;align-items:center;gap:7px}.thread-entry header .ui-icon{width:18px;height:18px}.thread-entry header b{color:#c7bfae;font-size:12px}.thread-entry time{color:#858c87;font-size:10px}.thread-entry .message-body{max-width:none;color:#d0cbc0;font-size:15px;line-height:1.72}.thread-reply{padding:17px 24px 20px;border-top:1px solid var(--line);background:rgba(8,13,14,.72)}.thread-reply label{margin:0}.thread-reply textarea{min-height:90px;max-height:210px;resize:vertical}.thread-reply footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px}.thread-reply footer small{color:#858c87}.thread-closed{display:flex;align-items:center;gap:10px;padding:18px 24px;border-top:1px solid var(--line);color:#8c938e}.thread-closed .ui-icon{width:24px;height:24px}

@media(max-width:1480px){:root{--rail:0px}.right-rail{display:none}.city-picker{width:220px;flex-basis:220px}.resource-chip{min-width:72px;padding:0 7px}.resource-chip small{display:none}.profile-chip{min-width:58px;padding:0 10px}.profile-chip>span:last-child{display:none}.building-card{min-height:280px}.message-layout{max-height:calc(100dvh - 205px)}}
@media(max-width:1240px){.topbar .wordmark{display:none}.message-layout{max-height:calc(100dvh - 205px)}}
@media(max-width:980px){:root{--sidebar:0px;--topbar:70px}.sidebar{width:min(286px,86vw);padding-top:18px}.topbar .wordmark{display:none}.mobile-menu{display:grid;width:54px}.city-picker{width:auto;min-width:160px;max-width:260px;flex:1}.main-content{padding:22px 16px 72px}.resource-chip{min-width:82px}.tech-tree{grid-template-columns:repeat(4,minmax(220px,1fr));overflow-x:auto}.message-layout{grid-template-columns:minmax(280px,.66fr) minmax(390px,1.34fr)}}
@media(max-width:760px){:root{--topbar:68px}.game-shell{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.topbar{min-width:0}.city-picker{min-width:0;max-width:none;padding:0 10px}.city-picker>.ui-icon{display:none}.city-picker small{font-size:8px}.city-picker b{font-size:14px}.resource-bar{flex:0 0 auto}.resource-chip[data-resource="essence"]{min-width:72px;padding:0 8px}.resource-chip[data-resource="essence"] .resource-glyph{width:25px;height:25px}.language-switch.compact{min-width:64px;margin:0 4px;padding:0 7px;font-size:9px}.top-actions>.icon-button{width:44px}.main-content{padding:18px 10px 34px}.mobile-nav{height:68px}.mobile-nav button{font-size:10px}.view-header{gap:14px}.view-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.view-actions .btn{width:100%}.building-grid{grid-template-columns:1fr;gap:12px;padding:10px}.building-card{min-height:270px;padding:16px}.building-card h3{font-size:21px}.quest-card{grid-template-columns:52px minmax(0,1fr);padding:14px}.quest-icon{width:52px;height:52px}.quest-card>.btn{grid-column:1/-1;width:100%}.card-grid,.hero-grid,.alliance-grid,.alliance-request-grid{grid-template-columns:1fr}.modal{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.modal-frame{max-height:calc(100dvh - 12px)}.modal-body{padding:16px}.modal-frame>footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.modal-frame>footer .btn{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.unit-stats,.unit-stats.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.message-layout{display:block;min-height:calc(100dvh - 202px);max-height:none;overflow:visible}.message-list{border-right:0;overflow:visible}.message-item{grid-template-columns:38px minmax(0,1fr) auto;padding:14px 11px}.message-item-icon{width:38px;height:38px}.message-item-status b{display:none}.message-view{display:none}.message-view.open{position:fixed;z-index:80;inset:var(--topbar) 0 calc(68px + env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;padding:0;overflow:hidden;background:#111a1c}.message-thread-header{padding:12px 14px}.message-thread-header>span{display:none}.message-thread{padding:14px 10px}.thread-entry{width:92%;padding:13px}.thread-entry .message-body{font-size:14px}.thread-reply{padding:10px}.thread-reply footer{align-items:stretch;flex-direction:column}.thread-reply footer .btn{width:100%}.thread-reply textarea{min-height:74px}.mailbox-tabs{position:sticky;top:0;z-index:2;background:#11191b}.data-table{min-width:560px}}
@media(max-width:430px){body{font-size:14px}.landing-header{padding:14px}.landing-actions{gap:5px}.landing-copy h1{font-size:clamp(36px,11vw,46px)}.auth-form{padding:24px 18px}.city-picker{max-width:calc(100vw - 162px)}.resource-chip[data-resource="essence"]{display:none!important}.view-actions{grid-template-columns:1fr}.modal-frame>footer{grid-template-columns:1fr}.message-item{grid-template-columns:34px minmax(0,1fr);gap:9px}.message-item-icon{width:34px;height:34px}.message-item-status{grid-column:2;grid-row:2;display:flex;justify-content:flex-start}.message-item-status em{margin-left:auto}.message-thread-header h2{font-size:21px}.thread-entry{width:96%}.unit-stats,.unit-stats.compact{grid-template-columns:1fr 1fr}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v2.1.1 ownership and icon corrections */
.ui-icon{flex:0 0 auto!important}
.city-option{align-items:center;min-height:72px;padding:10px 12px}
.city-option>.ui-icon{display:inline-block;width:42px;height:42px;flex-basis:42px!important;filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}
.city-option>span:not(.ui-icon){display:flex;min-width:0;flex:1 1 auto;flex-direction:column}
.city-option b{font-size:12px}.city-option small{font-size:10px;line-height:1.4}
.notification-open>.ui-icon{display:inline-block;width:22px;height:22px;flex-basis:22px!important}

.market-layout{grid-template-columns:minmax(400px,.86fr) minmax(0,1.14fr)}
.exchange-wheel{display:grid;gap:14px;padding:18px}
.exchange-wheel>.npc-partner-field,.exchange-wheel>label{margin:0!important}
.exchange-wheel>.resource-field{display:grid;gap:6px}
.exchange-wheel .universal-field-label,.npc-partner-field>span{color:#a89a7e;font-size:11px;font-weight:700;letter-spacing:.03em}
.exchange-arrow{width:40px;height:40px;margin:0 auto;border-color:rgba(199,146,79,.3);background:rgba(199,146,79,.055)}
.exchange-arrow>.ui-icon{width:20px;height:20px}
.npc-partner-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin:0;padding:14px;border-color:rgba(199,146,79,.24);background:linear-gradient(135deg,rgba(199,146,79,.075),rgba(7,13,14,.64))}
.npc-partner-identity{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center}
.npc-partner-identity>.ui-icon{width:32px;height:32px}
.npc-partner-identity>span{display:grid;gap:3px}
.npc-partner-identity b{overflow:hidden;color:#d0c5ad;font-family:Georgia,serif;font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.npc-partner-identity small{color:#829089;font-size:10px!important}
.npc-partner-route{display:grid;align-content:center;justify-items:end;gap:2px;padding-left:12px;border-left:1px solid var(--line)}
.npc-partner-route small{color:#717b76;font-size:9px!important;text-transform:uppercase}
.npc-partner-route b{color:#d5b36e;font-size:13px;white-space:nowrap}
.npc-partner-facts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px;padding-top:10px;border-top:1px solid var(--line)}
.npc-partner-facts>span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid rgba(218,194,146,.14);background:rgba(0,0,0,.15);color:#87918b;font-size:10px}
.npc-partner-facts .ui-icon,.npc-partner-facts .resource-glyph{width:20px;height:20px}
.npc-partner-facts b{color:#bdb5a4;font-size:10px}
.rate-preview{display:grid;gap:10px;margin:0;padding:14px;text-align:left;font-size:12px}
.rate-preview>.npc-rate-line,.rate-preview>.npc-return-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.rate-preview :is(.npc-rate-line,.npc-return-line)>small{color:#79827d;font-size:10px!important;text-transform:uppercase}
.npc-rate-line>b{display:flex;align-items:center;gap:6px;color:#d7bc80;font-size:13px;white-space:nowrap}
.npc-rate-line>b>i{color:#776c57;font-style:normal}
.npc-rate-line .resource-glyph,.npc-return-line .resource-glyph{width:24px;height:24px}
.npc-return-line .reward-row{display:flex;justify-content:flex-end}
.npc-rate-note{padding-top:9px;border-top:1px solid var(--line);color:#747d78!important;font-size:10px!important;line-height:1.5}
.caravan-requirement{min-height:48px;margin:0;padding:10px 12px;font-size:11px}
.caravan-requirement>.ui-icon{display:inline-block;width:22px;height:22px;flex-basis:22px!important}
.caravan-requirement>span:not(.ui-icon){min-width:0;flex:1 1 auto}
.caravan-requirement>b{flex:0 0 auto;font-size:10px;text-align:right}
.exchange-wheel>.btn.wide{margin-top:2px}

.army-morale-strip{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;margin:0 0 16px;padding:14px 18px;border:1px solid rgba(199,146,79,.24);background:linear-gradient(115deg,rgba(125,68,43,.15),rgba(19,30,31,.95) 52%,rgba(47,94,79,.12))}
.army-morale-art{width:70px;height:70px}
.army-morale-strip>div{display:grid;gap:2px}
.army-morale-strip small{color:#a48457;font-size:10px!important;letter-spacing:.1em;text-transform:uppercase}
.army-morale-strip b{color:#dfd1b7;font-family:Georgia,serif;font-size:23px;font-weight:400}
.army-morale-strip p{margin:0;color:#858d87;font-size:11px!important}
.army-morale-strip>strong{padding:7px 10px;border:1px solid currentColor;color:#d3af69;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.army-morale-strip>.morale-battle-ready,.army-morale-strip>.morale-steadfast{color:#78b39d}.army-morale-strip>.morale-strained{color:#d0a45d}.army-morale-strip>.morale-shaken{color:#d06f65}
.army-morale-strip>i{grid-column:1/-1;display:block;height:5px;overflow:hidden;background:#101718}
.army-morale-strip>i>i{display:block;height:100%;background:linear-gradient(90deg,#93493f,#d0a04f,#68ad94);box-shadow:0 0 9px rgba(202,151,73,.48)}
.inventory-ledger.currency-only{grid-template-columns:minmax(280px,460px)}

@media(max-width:1100px){.market-layout{grid-template-columns:1fr}}
@media(max-width:620px){.npc-partner-summary{grid-template-columns:1fr}.npc-partner-route{justify-items:start;padding:9px 0 0;border-top:1px solid var(--line);border-left:0}.npc-partner-facts{padding-top:8px}.rate-preview>.npc-rate-line,.rate-preview>.npc-return-line{grid-template-columns:1fr}.npc-return-line .reward-row{justify-content:flex-start}.caravan-requirement{align-items:flex-start;flex-wrap:wrap}.caravan-requirement>b{width:100%;padding-left:29px;text-align:left}.army-morale-strip{grid-template-columns:56px minmax(0,1fr)}.army-morale-art{width:54px;height:54px}.army-morale-strip>strong{grid-column:1/-1;justify-self:start}.inventory-ledger.currency-only{grid-template-columns:1fr}}

/* v2.1.2 army and fleet separation */
.army-tabs{display:flex;overflow-x:auto;overscroll-behavior-inline:contain}
.army-tabs .tab{flex:1 0 132px;white-space:nowrap}
.unit-detail-card{grid-template-columns:112px minmax(0,1fr) 82px;min-height:172px;padding:14px}
.unit-detail-art{width:112px;height:112px}
.unit-detail-copy{display:grid;align-content:center;gap:5px}
.unit-detail-copy h3{font-size:20px}
.unit-detail-copy>p{display:none}
.unit-count{display:grid;align-self:stretch;place-items:center;min-width:78px;max-width:none;padding:10px;text-align:center}
.unit-count small{display:none}
.unit-count b{overflow:visible;font-size:27px;text-align:center;text-overflow:clip}
.unit-stats,.unit-stats.compact{grid-template-columns:repeat(4,minmax(54px,1fr));gap:6px}
.unit-stats span,.unit-stats.compact span{display:flex;min-height:38px;align-items:center;justify-content:center;gap:7px;padding:7px}
.unit-stats span>.ui-icon,.unit-stats.compact span>.ui-icon{grid-row:auto;width:17px;height:17px;flex:0 0 17px}
.unit-stat-icon,.unit-stats .unit-stat-icon,.unit-stats.compact .unit-stat-icon{display:inline-block;width:30px;height:30px;min-height:0;flex:0 0 30px;padding:0;border:0;background-color:transparent;background-image:var(--stat-image);background-repeat:no-repeat;background-size:contain;background-position:center;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5))}
.unit-stat-icon.compact{width:19px;height:19px;flex-basis:19px}
.unit-stats small,.unit-stats.compact small{display:none!important}
.unit-stats b,.unit-stats.compact b{overflow:visible;font-size:12px;line-height:1;white-space:nowrap}
.fleet-unit-card,.fleet-recruit-card{border-color:rgba(90,145,156,.25);background:linear-gradient(135deg,rgba(40,91,102,.09),rgba(0,0,0,.12))}
.fleet-unit-card .unit-detail-art,.fleet-recruit-card .recruit-unit-art{border-color:rgba(90,157,169,.28)}
.recruit-unit-card{grid-template-columns:112px minmax(0,1fr);min-height:190px}
.recruit-unit-card{align-items:center}
.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:112px;height:112px;align-self:center;aspect-ratio:1/1;background-repeat:no-repeat}
.unit-choice-copy{justify-content:center;gap:8px;padding:13px}
.unit-choice-copy>em{display:none}
.unit-choice-copy .unit-stats{margin:0}
.unit-choice-copy>.cost-row{margin-top:2px}
.modal:has(#dispatchForm),.modal:has(#cargoInterceptForm){width:min(1120px,calc(100vw - 24px))}
.force-selection-title{margin:20px 0 10px;color:#c9b894;font-family:Georgia,serif;font-size:19px;font-weight:400}
.dispatch-force-zones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dispatch-force-zone{overflow:hidden;border:1px solid var(--line);background:rgba(5,10,11,.22)}
.dispatch-force-zone>header{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:58px;padding:9px 11px;border-bottom:1px solid var(--line);background:linear-gradient(105deg,rgba(199,146,79,.08),rgba(10,17,18,.72))}
.dispatch-force-zone.fleet-zone>header{background:linear-gradient(105deg,rgba(67,132,145,.13),rgba(10,17,18,.72))}
.dispatch-force-zone>header>.ui-icon{width:28px;height:28px}
.dispatch-force-zone>header>span{display:grid;gap:1px}
.dispatch-force-zone>header b{color:#cbbfa8;font-family:Georgia,serif;font-size:15px;font-weight:400}
.dispatch-force-zone>header small{color:#77817b;font-size:9px!important}
.dispatch-force-zone>header em{display:grid;place-items:center;min-width:34px;height:30px;border:1px solid rgba(199,146,79,.25);color:#d0ad66;font-size:11px;font-style:normal}
.dispatch-force-zone>.army-picker{gap:5px;padding:7px}
.dispatch-force-zone .army-input{grid-template-columns:50px minmax(0,1fr) 82px;min-height:62px;padding:6px}
.dispatch-force-zone .army-unit-art{width:48px;height:48px}
.army-input>span{gap:4px}
.army-input>span>b{font-size:11px}
.army-input>span>small{display:flex;flex-flow:row wrap;gap:8px;color:#87908a}
.army-input>span>small>i{display:inline-flex;align-items:center;gap:3px;color:#919a94;font-size:9px;font-style:normal}
.army-input>span>small .ui-icon{width:14px;height:14px;color:#b78c50}
.army-input>span>small .unit-stat-icon{width:19px;height:19px;flex-basis:19px}
.force-zone-empty{margin:0;padding:20px;color:#707a74;font-size:11px!important;text-align:center}
@media(max-width:900px){.dispatch-force-zones{grid-template-columns:1fr}.unit-detail-card{grid-template-columns:92px minmax(0,1fr) 72px}.unit-detail-art{width:92px;height:92px}.unit-stats,.unit-stats.compact{grid-template-columns:repeat(3,minmax(52px,1fr))}}
@media(max-width:620px){.unit-detail-card{grid-template-columns:78px minmax(0,1fr) 58px;gap:9px;padding:9px}.unit-detail-art{width:78px;height:78px}.unit-detail-copy h3{font-size:17px}.unit-count{grid-column:auto;min-width:54px;padding:5px}.unit-count b{font-size:21px}.unit-stats,.unit-stats.compact{grid-template-columns:repeat(3,minmax(46px,1fr));gap:4px}.unit-stats span,.unit-stats.compact span{min-height:34px;gap:4px;padding:5px}.unit-stats span>.ui-icon,.unit-stats.compact span>.ui-icon{width:15px;height:15px;flex-basis:15px}.unit-stats .unit-stat-icon,.unit-stats.compact .unit-stat-icon{width:24px;height:24px;flex-basis:24px}.recruit-unit-card{grid-template-columns:88px minmax(0,1fr)}.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:88px;height:88px}.dispatch-force-zone .army-input{grid-template-columns:44px minmax(0,1fr) 68px}.dispatch-force-zone .army-unit-art{width:42px;height:42px}}

/* v2.2 map navigation, filters, route geometry, and unified POI artwork. */
.map-filter-switch{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin:-4px 0 10px;overflow-x:auto;scrollbar-width:thin}
.map-filter-switch>span,.map-filter-switch button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:6px 9px;border:1px solid var(--line);background:rgba(12,19,20,.82);color:#747e78;font-size:8px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.map-filter-switch>span{border-color:transparent;background:transparent;color:#9b896b}.map-filter-switch>span .ui-icon{width:16px;height:16px}
.map-filter-switch button{cursor:pointer}.map-filter-switch button:hover{border-color:rgba(199,146,79,.45);color:#bdad8e}.map-filter-switch button.active{border-color:var(--bronze);background:linear-gradient(145deg,rgba(199,146,79,.14),rgba(53,39,24,.12));color:#e0c17b;box-shadow:inset 0 -2px rgba(199,146,79,.22)}
.map-navigator-canvas{position:relative}.map-navigator-viewport{position:absolute;z-index:2;display:block;min-width:3px;min-height:3px;border:1px solid #f0c66f;box-shadow:0 0 0 1px rgba(4,9,10,.72),0 0 8px rgba(240,198,111,.5);pointer-events:none;transition:left .04s linear,top .04s linear,width .04s linear,height .04s linear}
.world-map.dragging .map-navigator-viewport,.world-map.zooming .map-navigator-viewport{transition:none}
.map-target-core{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;overflow:hidden;pointer-events:none}.map-target-core>.map-location-art{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;background-repeat:no-repeat!important}
.map-marker.selected .map-target-core{filter:drop-shadow(0 0 5px var(--affiliation))}.map-marker .map-selection-reticle{z-index:5}
.map-route polyline{fill:none;stroke:var(--route-color);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:11 8;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(0,0,0,.9));animation:route-flow 1.2s linear infinite}.map-route.hostile polyline{stroke-width:4}
.map-legend .coast::before{background:#a88654}.map-legend .desert::before{background:#b68a49}
@media(max-width:900px){.map-filter-switch{justify-content:flex-start}.map-filter-switch>span{position:sticky;left:0;z-index:2;background:var(--bg)}}
@media(max-width:620px){.map-filter-switch{margin-top:0}.map-filter-switch>span,.map-filter-switch button{min-height:28px;padding:5px 7px;font-size:7px}}

/* V2.2 keeps the closest camera at the cartographic 566:394 ratio. This
   prevents the terrain and POI circles from being stretched by a square map
   shell on wide desktop layouts. */
@media(min-width:901px){
  .map-layout{min-height:0;align-items:start}
  .map-shell{width:100%;height:auto;min-height:394px;aspect-ratio:566/394;align-self:start}
  .map-inspector{align-self:stretch;max-height:calc((100vw - 330px)*394/566);overflow:auto}
}

/* v2.3 complete battle ledgers and bounded siege results. */
.battle-roster{margin-top:16px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(17,27,28,.94),rgba(7,12,13,.88))}
.battle-participants{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px;align-items:stretch;margin:0 0 16px;padding:8px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(151,75,57,.08),rgba(15,25,27,.84) 45%,rgba(70,112,96,.08))}
.battle-participants>i{display:grid;place-items:center;color:var(--bronze);font-style:normal;font-size:18px}.battle-participants article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;min-width:0;padding:9px 11px;border:1px solid rgba(255,255,255,.055);background:rgba(5,10,11,.35)}
.battle-participants article>.ui-icon{width:30px;height:30px}.battle-participants .attacker>.ui-icon{color:#d47767}.battle-participants .defender>.ui-icon{color:#7db69e}.battle-participants article>span{display:grid;min-width:0}.battle-participants small{color:#777f7a;font-size:10px;letter-spacing:.09em;text-transform:uppercase}.battle-participants b{overflow:hidden;color:#d1c6ad;font-family:Georgia,serif;font-size:15px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.battle-participants em{overflow:hidden;color:#858e88;font-size:11px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.battle-roster>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.018)}
.battle-roster>header>span{display:flex;align-items:center;gap:8px;color:#c8bda7}.battle-roster>header .ui-icon{width:20px;height:20px;color:var(--bronze)}
.battle-roster>header b{font-family:Georgia,serif;font-size:15px;font-weight:400}.battle-roster>header small{color:#727b76;font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.battle-roster-list{display:grid;gap:1px}.battle-roster-unit{display:grid;grid-template-columns:54px minmax(110px,1fr) minmax(210px,auto);gap:11px;align-items:center;min-height:66px;padding:6px 11px;border-bottom:1px solid rgba(255,255,255,.045)}
.battle-roster-unit:last-child{border-bottom:0}.battle-roster-art{width:54px;height:54px;border:1px solid rgba(199,146,79,.22);border-radius:3px}
.battle-roster-copy{display:grid;gap:8px;min-width:0}.battle-roster-copy>b{overflow:hidden;color:#bdb7a9;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.battle-loss-track{height:4px;overflow:hidden;background:#293431}.battle-loss-track>i{display:block;height:100%;background:linear-gradient(90deg,#823b39,#d26961);box-shadow:0 0 6px rgba(199,88,77,.35)}
.battle-roster-numbers{display:grid;grid-template-columns:repeat(3,minmax(58px,1fr));gap:5px}.battle-roster-numbers>span{display:grid;gap:2px;padding:5px 7px;border-left:1px solid var(--line)}
.battle-roster-numbers small{color:#717975;font-size:7px;letter-spacing:.06em;text-transform:uppercase}.battle-roster-numbers b{color:#b8b4a8;font-size:11px;font-variant-numeric:tabular-nums}
.battle-roster-numbers .loss b{color:#df786e}.battle-roster-numbers .survived b{color:#86c5a9}.battle-roster-empty{margin:0;padding:18px;color:#727b76;text-align:center}
.siege-report{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center;margin-top:16px;padding:12px;border:1px solid rgba(104,153,126,.34);background:rgba(54,102,78,.09)}
.siege-report.breached{border-color:rgba(204,91,78,.4);background:rgba(125,43,36,.11)}.siege-report>.ui-icon{width:34px;height:34px;color:#82b69d}.siege-report.breached>.ui-icon{color:#dd746b}
.siege-report>div{display:grid;gap:3px}.siege-report small{color:#77817b;font-size:8px;letter-spacing:.08em;text-transform:uppercase}.siege-report b{color:#c8c0ae;font-family:Georgia,serif;font-size:16px;font-weight:400}.siege-report span{color:#858d88;font-size:9px}.battle-report-heading{margin-top:20px}
@media(max-width:620px){.battle-participants{grid-template-columns:1fr}.battle-participants>i{height:12px;transform:rotate(90deg)}.battle-roster-unit{grid-template-columns:48px minmax(0,1fr);padding:7px}.battle-roster-art{width:48px;height:48px}.battle-roster-numbers{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.battle-roster>header{align-items:flex-start}.battle-roster>header small{max-width:120px;text-align:right}}

/* v2.3.1 natural map pieces: image transparency defines every silhouette;
   affiliation rings and circular clipping no longer surround settlements/POIs. */
.map-target-core{border-radius:0;overflow:visible}
.map-marker .map-location-art,.map-marker:not(.cargo-route-marker).friendly .map-location-art,.map-marker:not(.cargo-route-marker).hostile .map-location-art,.map-marker:not(.cargo-route-marker).neutral .map-location-art{border-radius:0;clip-path:none;background-color:transparent;box-shadow:none}
.map-marker.site.season_monster .map-location-art{animation:none}
.map-marker:not(.cargo-route-marker){filter:drop-shadow(0 7px 5px rgba(0,0,0,.72))}
.map-marker:not(.cargo-route-marker).selected,.map-marker:not(.cargo-route-marker):hover{filter:brightness(1.13) drop-shadow(0 8px 7px rgba(0,0,0,.8))}
.map-selection-reticle{left:50%;top:50%;width:54px;height:54px;border:0;border-radius:0;background:linear-gradient(var(--affiliation),var(--affiliation)) left top/14px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) left top/2px 14px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right top/14px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right top/2px 14px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) left bottom/14px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) left bottom/2px 14px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right bottom/14px 2px no-repeat,linear-gradient(var(--affiliation),var(--affiliation)) right bottom/2px 14px no-repeat;box-shadow:none;filter:drop-shadow(0 0 5px var(--affiliation));transform:translate(-50%,-50%)}
.map-marker.site.season_monster .map-selection-reticle{width:64px;height:64px}

/* v2.4 responsive ledgers, non-blocking map furniture, and rarity lighting. */
.city-title-line{display:flex;align-items:center;gap:12px;min-width:0}.city-title-line h1{min-width:0}.city-rename-button{flex:0 0 auto;width:36px;height:36px;border-color:rgba(199,146,79,.28);background:rgba(9,15,16,.48)}.city-rename-button>.ui-icon{width:21px;height:21px}

.building-grid{grid-auto-rows:auto!important;align-items:stretch}
.building-card{display:flex!important;flex-direction:column;height:auto!important;min-height:510px!important;max-height:none!important;padding:0!important;overflow:hidden}
.building-card .building-copy{flex:0 0 auto;margin-top:168px!important;padding:0 20px!important}
.building-card p,.building-card .building-copy p{display:block;min-height:0!important;max-height:none!important;-webkit-line-clamp:unset!important;overflow:visible!important}
.building-output-grid{display:grid;align-content:start;gap:10px;flex:1 1 auto;padding:0 20px}
.building-output-grid .building-production{margin:12px 0 0;padding-top:11px}
.building-effects{display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.building-effects>small{color:#65716d;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.building-effects>div{display:flex;flex-wrap:wrap;gap:7px}
.building-effects>div>span{display:grid;grid-template-columns:27px auto;grid-template-rows:auto auto;gap:0 6px;align-items:center;min-width:112px;padding:5px 8px;border:1px solid rgba(199,146,79,.16);background:rgba(0,0,0,.14)}
.building-effects .value-glyph{grid-row:1/3;width:27px;height:27px}.building-effects .value-glyph>.ui-icon,.building-effects .value-glyph>.asset-art{width:24px;height:24px}
.building-effects b{color:#7fbea3;font-size:11px}.building-effects em{overflow:hidden;color:#727c77;font-size:8px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.building-card footer{flex:0 0 auto;min-height:84px!important;margin-top:auto;padding:14px 20px 17px!important}.building-card footer .cost-row{align-content:flex-start;min-height:31px;overflow:visible}.building-card footer .cost{flex:0 0 auto;min-width:70px}

.map-panel-toggles{position:absolute;z-index:13;top:12px;left:50%;display:flex;gap:5px;transform:translateX(-50%);padding:4px;border:1px solid rgba(199,146,79,.2);background:rgba(8,14,15,.76);backdrop-filter:blur(8px)}
.map-panel-toggle{display:grid;place-items:center;width:34px;height:32px;border:1px solid transparent;background:rgba(255,255,255,.025);color:#6f7974;cursor:pointer}.map-panel-toggle>.ui-icon{width:20px;height:20px}.map-panel-toggle.active{border-color:rgba(199,146,79,.28);color:#d4ae65;background:rgba(199,146,79,.09)}
.map-navigation,.map-navigator{transition:opacity .16s ease,transform .16s ease,visibility .16s}.map-shell.navigation-hidden .map-navigation{visibility:hidden;opacity:0;transform:translateX(-18px);pointer-events:none}.map-shell.navigator-hidden .map-navigator{visibility:hidden;opacity:0;transform:translateX(18px);pointer-events:none}
.map-marker:not(.cargo-route-marker){filter:none!important}.map-marker:not(.cargo-route-marker):hover,.map-marker:not(.cargo-route-marker).selected{filter:brightness(1.13)!important}

/* v2.8 account ledger, administration, and clean movement glyphs */
.map-route .route-origin,.map-route .route-unit{display:none!important}.map-route .route-unit-image{pointer-events:none;filter:drop-shadow(0 4px 4px rgba(0,0,0,.8))}.map-marker.cargo-route-marker,.map-marker.cargo-route-marker.own,.map-marker.cargo-route-marker.allied,.map-marker.cargo-route-marker.hostile{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.map-marker.cargo-route-marker::before,.map-marker.cargo-route-marker::after{display:none!important}
.auth-help{display:flex;align-items:center;justify-content:center;gap:7px;margin:-3px 0 4px}.auth-help .ui-icon{width:16px;height:16px}.form-heading>span{display:flex;align-items:center;gap:8px}.form-heading .ui-icon{width:22px;height:22px}.invite-notice,.auth-notice{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:11px;border:1px solid rgba(199,146,79,.35);background:rgba(199,146,79,.08);color:#c8bdab;font-size:12px;line-height:1.5}.invite-notice[hidden],.auth-notice[hidden]{display:none}.auth-notice.success{border-color:rgba(91,183,145,.5);background:rgba(91,183,145,.09)}.auth-notice.warning{border-color:rgba(215,114,91,.5);background:rgba(215,114,91,.09)}.auth-notice .ui-icon,.invite-notice .ui-icon{flex:0 0 22px;width:22px;height:22px}.auth-notice span{display:grid;gap:8px}.auth-notice .text-button{text-align:left}
.settings-grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr);gap:18px}.settings-column{display:grid;align-content:start;gap:18px}.settings-panel{overflow:hidden}.settings-panel>.section-heading>span{display:flex;align-items:center;gap:8px}.settings-panel>.section-heading .ui-icon{width:22px;height:22px}.notification-settings{display:grid;border:1px solid var(--line);background:rgba(0,0,0,.12)}.notification-settings>header,.notification-setting-row{display:grid;grid-template-columns:minmax(180px,1fr) 92px 92px;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.notification-settings>header>span:first-child{display:grid}.notification-settings>header>span:last-child{display:contents}.notification-setting-row:last-child{border-bottom:0}.notification-setting-row>span,.notification-setting-row label{display:flex;align-items:center;gap:8px}.notification-setting-row .ui-icon{width:21px;height:21px}.notification-setting-row label{justify-content:center;font-size:10px;color:#9ca19a}.notification-setting-row input{accent-color:var(--bronze-bright)}.referral-panel .section-heading em{display:flex;align-items:center;gap:5px}.referral-panel .resource-glyph{width:20px;height:20px}.invite-link-state,.referral-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.invite-link-state>span{display:grid;flex:1}.referral-list{display:grid;gap:7px;margin-top:12px}.referral-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.referral-row>span:first-child{display:flex;align-items:center;gap:8px}.referral-avatar{width:30px;height:30px}.generated-invite-link{display:grid;grid-template-columns:36px 1fr;gap:10px}.generated-invite-link input{grid-column:1/-1;width:100%}.quest-actions{display:flex;align-items:center;gap:7px}.quest-pin.active{border-color:var(--bronze-bright);color:var(--bronze-bright);background:rgba(199,146,79,.15)}
.admin-users-panel{overflow:hidden}.admin-user-table td:first-child,.admin-user-table td:nth-child(2){min-width:150px}.admin-user-table td small{display:block;margin-top:4px}.admin-user-identity{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);background:rgba(0,0,0,.15)}.admin-user-identity .ui-icon{width:34px;height:34px}.admin-user-identity span{display:grid}.admin-account-actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.notification-settings>header,.notification-setting-row{grid-template-columns:minmax(130px,1fr) 72px 72px}}
@media(max-width:520px){.notification-settings>header,.notification-setting-row{grid-template-columns:minmax(105px,1fr) 58px 58px;padding:9px 7px}.notification-setting-row>span b{font-size:10px}.notification-setting-row label span{display:none}.admin-account-actions{flex-direction:column}.quest-actions{align-self:stretch;justify-content:flex-end}}
.dispatch-route-status{display:flex;align-items:center;gap:7px;margin:8px 0;padding:7px 9px;border:1px solid rgba(199,146,79,.2);background:rgba(0,0,0,.12);color:#a38e66;font-size:9px}.dispatch-route-status>.ui-icon{width:18px;height:18px}.dispatch-route-status.verified{border-color:rgba(94,163,134,.28);color:#77b99e}.dispatch-route-status.pending{animation:route-status-pulse 1.1s ease-in-out infinite}@keyframes route-status-pulse{50%{opacity:.58}}

@keyframes rarity-background-shimmer{0%,18%{transform:translateX(-130%) skewX(-16deg);opacity:0}32%{opacity:.48}48%,100%{transform:translateX(170%) skewX(-16deg);opacity:0}}
.hero-card,.profile-favorite,.scout-hero-entry{position:relative;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--rarity) 13%,#172123),#101718 58%,color-mix(in srgb,var(--rarity) 6%,#0c1213))!important;box-shadow:inset 0 0 34px color-mix(in srgb,var(--rarity) 8%,transparent),0 13px 28px rgba(0,0,0,.2)}
.hero-card::after,.profile-favorite::after,.scout-hero-entry::after{content:"";position:absolute;z-index:2;inset:-30% auto -30% -35%;width:28%;pointer-events:none;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--rarity) 38%,white),transparent);opacity:0}
.hero-card.rarity-unusual::after,.hero-card.rarity-rare::after,.hero-card.rarity-epic::after,.hero-card.rarity-legendary::after,.hero-card.rarity-mythical::after,.profile-favorite.rarity-rare::after,.profile-favorite.rarity-epic::after,.profile-favorite.rarity-legendary::after,.profile-favorite.rarity-mythical::after,.scout-hero-entry.rarity-rare::after,.scout-hero-entry.rarity-epic::after,.scout-hero-entry.rarity-legendary::after,.scout-hero-entry.rarity-mythical::after{animation:rarity-background-shimmer 5.4s ease-in-out infinite}
.hero-card>*,.profile-favorite>*,.scout-hero-entry>*{position:relative;z-index:3}.rarity-mythical{box-shadow:inset 0 0 38px rgba(128,22,30,.2),0 0 20px rgba(128,22,30,.14)}

.inventory-slot.occupied::after{content:"";position:absolute;z-index:2;inset:-25% auto -25% -42%;width:34%;pointer-events:none;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--rarity) 42%,white),transparent);opacity:0;transform:skewX(-16deg)}
.inventory-slot.rarity-ordinary{--rarity:#969b99}.inventory-slot.rarity-unusual{--rarity:#62a96e}.inventory-slot.rarity-rare{--rarity:#5799d3}.inventory-slot.rarity-epic{--rarity:#9d6bd2}.inventory-slot.rarity-legendary{--rarity:#d4a747}.inventory-slot.rarity-mythical{--rarity:#9e373d}
.inventory-slot.occupied.rarity-unusual::after,.inventory-slot.occupied.rarity-rare::after,.inventory-slot.occupied.rarity-epic::after,.inventory-slot.occupied.rarity-legendary::after,.inventory-slot.occupied.rarity-mythical::after{animation:rarity-background-shimmer 5.8s ease-in-out infinite}.inventory-slot.occupied>*{z-index:3}

.alliance-crest-design>.ui-icon{position:relative;z-index:2;width:64%;height:64%;filter:drop-shadow(0 2px 2px rgba(0,0,0,.55))}.alliance-crest-design.large>.ui-icon{width:70%;height:70%}.crest-preview-stage .ui-icon{image-rendering:auto}.alliance-hero .alliance-crest-design>.ui-icon{width:66%;height:66%}
.chat-line{grid-template-columns:34px minmax(0,1fr) 30px;align-items:start}.chat-avatar.asset-art,.alliance-member .chat-avatar.asset-art{width:34px;height:34px;border:1px solid rgba(199,146,79,.26);background-size:400% 200%}.chat-line .chat-delete{width:28px;height:28px;opacity:.18}.chat-line:hover .chat-delete,.chat-line:focus-within .chat-delete{opacity:1}.chat-line .chat-delete>.ui-icon{width:16px;height:16px}.alliance-member{grid-template-columns:38px minmax(0,1fr) auto auto!important}.alliance-member .chat-avatar.asset-art{width:38px;height:38px}

.ranking-columns{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:18px}.ranking-podium{max-width:860px}.ranking-podium .podium{display:grid;grid-template-columns:auto 70px minmax(0,1fr);gap:12px;align-items:center;min-height:120px;padding:14px;text-align:left}.ranking-podium .podium.rank-1{order:2;min-height:156px;border-color:#caa653;background:linear-gradient(145deg,rgba(202,166,83,.13),rgba(0,0,0,.12))}.ranking-podium .podium.rank-2{order:1;border-color:#8d9ba6}.ranking-podium .podium.rank-3{order:3;border-color:#a66d4c}.ranking-avatar{width:70px;height:70px;border:1px solid currentColor}.podium>div{display:grid;gap:5px;min-width:0}.podium .profile-name-button{overflow:hidden;color:#d5c7ac;font-family:Georgia,serif;font-size:17px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.podium b{margin:4px 0 0;color:#e2bd69;font-size:20px}.podium b em{color:#82785f;font-size:8px;font-style:normal;text-transform:uppercase}.ranking-list{display:grid}.ranking-row{display:grid;grid-template-columns:38px 46px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:66px;padding:8px 12px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(255,255,255,.018),transparent)}.ranking-row:last-child{border-bottom:0}.ranking-row.rank-1{--rank:#d4ad57}.ranking-row.rank-2{--rank:#95a4ae}.ranking-row.rank-3{--rank:#ae744f}.ranking-row.rank-4{--rank:#5c6865}.ranking-position{display:grid;place-items:center;width:30px;height:30px;border:1px solid color-mix(in srgb,var(--rank) 45%,var(--line));color:var(--rank);font-family:Georgia,serif;font-size:15px}.ranking-row-avatar{width:46px;height:46px;border:1px solid color-mix(in srgb,var(--rank) 42%,var(--line))}.ranking-identity{display:grid;gap:5px;min-width:0}.ranking-identity .profile-name-button,.ranking-identity>b{overflow:hidden;color:#c8bdab;font-size:12px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ranking-identity small{color:#6f7974;font-size:8px}.ranking-score{display:grid;gap:2px;min-width:92px;text-align:right}.ranking-score b{color:var(--rank);font-size:16px}.ranking-score small{color:#69716d;font-size:7px;letter-spacing:.08em;text-transform:uppercase}.ranking-banner{display:grid;place-items:center;width:46px;height:46px;color:var(--rank)}.ranking-banner>.ui-icon{width:32px;height:32px}

@media(max-width:900px){.building-card{min-height:500px!important}.ranking-columns{grid-template-columns:1fr}.ranking-podium .podium{grid-template-columns:auto 52px minmax(0,1fr)}.ranking-avatar{width:52px;height:52px}.map-panel-toggles{top:10px;bottom:auto}}
@media(max-width:620px){.building-card{min-height:480px!important}.building-card .building-card-art{inset:8px auto auto calc(50% - 68px);width:136px;height:136px}.building-card .building-copy{margin-top:144px!important;padding:0 15px!important}.building-output-grid{padding:0 15px}.building-card footer{padding:12px 15px 15px!important}.ranking-podium{grid-template-columns:1fr;align-items:stretch}.ranking-podium .podium,.ranking-podium .podium.rank-1{order:initial;min-height:96px}.ranking-row{grid-template-columns:32px 40px minmax(0,1fr);padding:8px}.ranking-row-avatar{width:40px;height:40px}.ranking-score{grid-column:3;min-width:0;text-align:left}.chat-line{grid-template-columns:34px minmax(0,1fr) 28px}}

/* v2.4.5 world forge */
.admin-map-lab{margin-top:20px;overflow:hidden;border-color:rgba(199,146,79,.32);background:linear-gradient(145deg,rgba(23,34,35,.98),rgba(11,18,20,.98))}
.admin-map-lab-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(199,146,79,.08),transparent 60%)}
.admin-map-lab-header>span{display:flex;align-items:center;gap:14px}.admin-map-lab-header>.admin-map-release{padding:7px 10px;border:1px solid rgba(199,146,79,.35);color:var(--bronze);font-size:11px;letter-spacing:.12em}
.admin-map-lab-header .ui-icon{width:42px;height:42px}.admin-map-lab-header small{color:var(--bronze);font-size:8px;letter-spacing:.18em}.admin-map-lab-header h2{margin:2px 0;color:var(--ivory);font-family:var(--serif);font-size:24px;font-weight:500}.admin-map-lab-header p{margin:0;color:var(--muted);font-size:10px}
.admin-map-regenerator{display:grid;grid-template-columns:minmax(330px,400px) minmax(0,1fr);min-height:520px}
.admin-map-controls{display:grid;align-content:start;grid-template-columns:1fr 1fr;gap:14px;padding:18px;border-right:1px solid var(--line);background:rgba(7,13,14,.22)}
.admin-map-controls .full{grid-column:1/-1}.admin-map-controls label>span{display:block;margin-bottom:7px;color:#a9aaa1;font-size:9px;letter-spacing:.05em}.admin-map-controls select,.admin-map-controls input[type=number],.admin-map-controls input[name=confirmation]{width:100%}
.admin-seed-field{grid-column:1/-1}.admin-seed-field>span:last-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.admin-seed-field .btn{min-height:39px}
.admin-scale-field{grid-column:1/-1;padding:10px 11px;border:1px solid var(--line);background:rgba(255,255,255,.018)}.admin-scale-field>span{display:flex!important;justify-content:space-between}.admin-scale-field b{color:var(--bronze)}.admin-scale-field input{width:100%;accent-color:var(--bronze)}
.admin-relocate-choice,.admin-reset-choice{align-items:flex-start!important;padding:10px 11px;border:1px solid var(--line)}.admin-relocate-choice span,.admin-reset-choice span{display:grid!important;gap:3px;margin:0!important}.admin-relocate-choice b,.admin-reset-choice b{color:var(--ivory);font-size:10px}.admin-relocate-choice small,.admin-reset-choice small{color:var(--muted);font-size:8px;line-height:1.45}
.admin-world-state{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid rgba(199,146,79,.28);background:linear-gradient(90deg,rgba(199,146,79,.07),transparent)}.admin-world-state>div{display:flex;align-items:center;gap:8px}.admin-world-state>div:first-child{display:grid;gap:2px}.admin-world-state small{color:var(--bronze);font-size:7px;letter-spacing:.12em;text-transform:uppercase}.admin-world-state b{color:var(--ivory);font-size:11px}.admin-world-state span{color:var(--muted);font-size:8px}.world-status-badge{display:inline-block;padding:4px 7px;border:1px solid var(--line);font-size:8px;text-transform:uppercase}.world-status-badge.open{border-color:rgba(91,155,136,.45);color:#83c2a5}.world-status-badge.locked{border-color:rgba(204,91,78,.45);color:#df786e}
.admin-map-readiness{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;padding:10px;border:1px solid}.admin-map-readiness>.ui-icon{width:24px;height:24px}.admin-map-readiness span{display:grid;gap:3px}.admin-map-readiness b{font-size:10px}.admin-map-readiness small{color:var(--muted);font-size:8px}.admin-map-readiness.ready{border-color:rgba(91,155,136,.4);background:rgba(62,116,99,.09);color:#83c2a5}.admin-map-readiness.blocked{border-color:rgba(204,91,78,.4);background:rgba(125,43,36,.09);color:#df786e}
.admin-confirm-field b{color:#df786e}.admin-map-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.admin-map-actions .btn{min-width:0}
.admin-map-preview{position:relative;display:grid;align-content:start;min-width:0;padding:18px}.admin-map-preview>.empty-state{min-height:390px}.admin-map-canvas-wrap{position:relative;overflow:hidden;border:1px solid rgba(199,146,79,.35);background:#10191b;box-shadow:0 18px 38px rgba(0,0,0,.26)}
.admin-map-canvas-wrap canvas{display:block;width:100%;height:auto;min-height:0;max-height:none;object-fit:contain}.admin-preview-seal{position:absolute;top:10px;right:10px;display:grid;padding:6px 9px;border:1px solid rgba(218,190,128,.35);background:rgba(8,15,16,.86);text-align:right}.admin-preview-seal small{color:var(--muted);font-size:7px;text-transform:uppercase}.admin-preview-seal b{color:var(--ivory);font-size:10px}
.admin-preview-ledger{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.admin-preview-ledger article{display:grid;grid-template-columns:28px minmax(0,1fr);gap:7px;align-items:center;min-width:0;padding:8px;border:1px solid var(--line);background:rgba(255,255,255,.018)}.admin-preview-ledger .ui-icon{width:24px;height:24px}.admin-preview-ledger span{display:grid;min-width:0}.admin-preview-ledger small{overflow:hidden;color:var(--muted);font-size:7px;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.admin-preview-ledger b{color:var(--ivory);font-size:11px}
.admin-preview-legend{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}.admin-preview-legend span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:8px}.admin-preview-legend span::before{width:8px;height:8px;border:1px solid rgba(0,0,0,.7);border-radius:50%;background:#ddd;content:""}.admin-preview-legend .player::before{background:#7ff0c3}.admin-preview-legend .settlement::before{background:#e4c074}.admin-preview-legend .production::before{background:#8cc887}.admin-preview-legend .hostile::before{background:#e46f66}.admin-preview-legend .naval::before{background:#76bddd}.admin-preview-legend .boss::before{background:#b98cff}
.admin-regeneration-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.admin-regeneration-summary span{display:grid;gap:4px;padding:10px;border:1px solid var(--line);color:var(--muted);font-size:8px;text-transform:uppercase}.admin-regeneration-summary b{color:var(--ivory);font-size:12px}.data-table td>small{display:block;margin-top:3px;color:var(--muted);font-size:8px}
@media(max-width:980px){.admin-map-regenerator{grid-template-columns:1fr}.admin-map-controls{border-right:0;border-bottom:1px solid var(--line)}.admin-preview-ledger{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.admin-map-lab-header{align-items:flex-start;padding:14px}.admin-map-lab-header h2{font-size:20px}.admin-map-regenerator{display:block}.admin-map-controls{grid-template-columns:1fr;padding:13px}.admin-map-controls>*{grid-column:1!important}.admin-map-actions{grid-template-columns:1fr}.admin-map-preview{padding:12px}.admin-preview-ledger{grid-template-columns:1fr 1fr}.admin-regeneration-summary{grid-template-columns:1fr 1fr}}

/* v2.4.6 · spacious command surfaces, lore workspaces, and modal map intelligence. */
:root{--sidebar:clamp(194px,13vw,216px);--rail-collapsed:48px}

@media(min-width:1481px){
  .game-shell,.right-rail{transition:padding-right .2s ease,width .2s ease}
  .game-shell.right-rail-collapsed{padding-right:var(--rail-collapsed)}
  .right-rail.collapsed{width:var(--rail-collapsed);padding:12px 6px;overflow:hidden}
  .right-rail.collapsed>.rail-section{display:none}
  .right-rail.collapsed .right-rail-toggle{width:34px;min-width:34px;padding:8px 6px}
  .right-rail.collapsed .right-rail-toggle>span:last-child{display:none}
  .right-rail.collapsed .right-rail-toggle>.ui-icon{transform:rotate(180deg)}
}
.right-rail-toggle{position:sticky;z-index:5;top:-10px;display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:34px;margin:0 0 13px;padding:7px 10px;border:1px solid var(--line);background:rgba(9,15,16,.92);color:#8e948e;font-size:9px;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;backdrop-filter:blur(8px)}
.right-rail-toggle:hover{border-color:var(--line-bright);color:var(--bronze-bright)}.right-rail-toggle>.ui-icon{width:17px;height:17px;transition:transform .2s ease}

/* The map owns the full content width; intelligence opens only after a target is chosen. */
.map-layout{position:relative!important;display:block!important;grid-template-columns:none!important;min-height:0!important;overflow:hidden}
.map-shell{width:100%!important;border-right:0!important}
.map-inspector{position:absolute!important;z-index:24!important;top:16px!important;right:16px!important;bottom:auto!important;left:auto!important;width:min(370px,calc(100% - 32px))!important;max-height:calc(100% - 32px)!important;padding:0!important;overflow:hidden!important;border:1px solid rgba(225,190,117,.38)!important;background:linear-gradient(150deg,rgba(25,37,39,.98),rgba(11,18,20,.98))!important;box-shadow:0 24px 58px rgba(0,0,0,.56),inset 0 1px rgba(255,255,255,.025)!important;backdrop-filter:blur(14px)}
.map-inspector.empty{display:none!important}.map-inspector-scroll{max-height:calc(100% - 0px);padding:22px;overflow:auto;overscroll-behavior:contain}.map-inspector-close{position:absolute;z-index:4;top:9px;right:9px;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);background:#111b1d;color:#8d948e;cursor:pointer}.map-inspector-close:hover{border-color:var(--bronze);color:var(--bronze-bright)}.map-inspector-close>.ui-icon{width:20px;height:20px}.map-inspector-scroll>.poi-inspector-visual,.map-inspector-scroll>.inspector-icon{margin-top:14px}
@media(max-width:760px){.map-inspector{top:auto!important;right:8px!important;bottom:8px!important;width:calc(100% - 16px)!important;max-height:min(62%,470px)!important}.map-inspector-scroll{padding:18px}.map-inspector .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Lore remains the primary navigation; only the selected discovery tree is expanded. */
.research-lore-categories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.research-lore-card{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr);gap:11px;align-items:center;min-height:94px;padding:13px;overflow:hidden;border:1px solid color-mix(in srgb,var(--category) 24%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--category) 7%,#172123),#101719);color:#8b918d;text-align:left;cursor:pointer}.research-lore-card::after{position:absolute;inset:auto 0 0;height:2px;background:var(--category);opacity:.25;content:""}.research-lore-card:hover,.research-lore-card.active{border-color:color-mix(in srgb,var(--category) 68%,#c5ae7a);background:linear-gradient(145deg,color-mix(in srgb,var(--category) 16%,#172123),#101719);color:#d2c9b7}.research-lore-card.active{box-shadow:inset 0 0 28px color-mix(in srgb,var(--category) 9%,transparent),0 7px 20px rgba(0,0,0,.16)}.research-lore-emblem{display:grid;place-items:center;width:54px;height:54px;border:1px solid color-mix(in srgb,var(--category) 48%,var(--line));background:color-mix(in srgb,var(--category) 10%,rgba(0,0,0,.2));color:var(--category)}.research-lore-emblem>.ui-icon{width:34px;height:34px}.research-lore-card>span:nth-child(2){display:grid;gap:2px}.research-lore-card small{color:#777f7a;font-size:8px;text-transform:uppercase;letter-spacing:.09em}.research-lore-card b{font-family:Georgia,serif;font-size:18px;font-weight:400}.research-lore-card em{font-size:9px;font-style:normal}.research-lore-card>i{position:absolute;right:10px;bottom:7px;left:10px;height:2px;background:rgba(255,255,255,.06)}.research-lore-card>i>i{display:block;height:100%;background:var(--category);box-shadow:0 0 7px var(--category)}
.research-lore-workspace{border:1px solid color-mix(in srgb,var(--category) 30%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--category) 5%,rgba(20,30,32,.96)),rgba(9,15,16,.96))}.research-lore-workspace>header{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 20px;border-bottom:1px solid color-mix(in srgb,var(--category) 24%,var(--line));background:linear-gradient(90deg,color-mix(in srgb,var(--category) 10%,transparent),transparent)}.research-lore-emblem.large{width:68px;height:68px}.research-lore-emblem.large>.ui-icon{width:43px;height:43px}.research-lore-workspace h2{margin:2px 0 3px;color:#d8cdb8;font-family:Georgia,serif;font-size:26px;font-weight:400}.research-lore-workspace header p{margin:0!important;color:#818984}.research-lore-workspace header small{color:var(--category);font-size:8px;text-transform:uppercase;letter-spacing:.1em}.research-lore-progress{display:grid;justify-items:end;gap:2px}.research-lore-progress b{color:var(--category);font-size:20px}.research-branch-tree{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:14px;padding:16px}.research-branch-tree .tech-card{height:100%;min-height:330px;padding:17px}.research-spellbook-heading{margin-top:34px}
@media(max-width:980px){.research-lore-categories{grid-template-columns:repeat(2,minmax(0,1fr))}.research-branch-tree{grid-template-columns:1fr}.research-branch-tree .tech-card{min-height:0}}
@media(max-width:520px){.research-lore-categories{grid-template-columns:1fr}.research-lore-card{min-height:78px}.research-lore-workspace>header{grid-template-columns:54px minmax(0,1fr)}.research-lore-emblem.large{width:54px;height:54px}.research-lore-progress{grid-column:1/-1;justify-items:start}.research-branch-tree{padding:9px}}

/* Stable square stat sprites and equal-sized army/fleet production cards. */
.unit-stat-icon,.unit-stats .unit-stat-icon,.unit-stats.compact .unit-stat-icon{display:block!important;box-sizing:border-box!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;max-width:30px!important;max-height:30px!important;flex:0 0 30px!important;aspect-ratio:1/1!important;padding:0!important;border:0!important;border-radius:0!important;background-image:var(--stat-image)!important;background-repeat:no-repeat!important;background-size:contain!important;background-position:center!important;transform:none!important}.unit-stat-icon.compact,.army-input>span>small .unit-stat-icon{width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;max-width:19px!important;max-height:19px!important;flex-basis:19px!important}
.recruit-unit-grid{grid-auto-rows:250px;align-items:stretch;gap:14px;padding:4px}.recruit-unit-card{height:250px;min-height:250px!important;padding:11px;gap:11px;align-items:center;border-color:rgba(215,190,139,.18);background:linear-gradient(145deg,rgba(29,41,43,.94),rgba(10,16,18,.96))}.recruit-unit-card.fleet-recruit-card{border-color:rgba(91,154,166,.3);background:linear-gradient(145deg,rgba(31,68,75,.2),rgba(9,17,19,.96))}.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:112px!important;height:112px!important;min-width:112px;min-height:112px;align-self:center;aspect-ratio:1/1!important}.unit-choice-copy{height:100%;justify-content:center;padding:10px 8px}.unit-choice-copy>b{font-size:17px}.unit-choice-copy>.cost-row{min-height:35px}.unit-choice-copy>.requirement-summary{min-height:29px;align-content:flex-start}
@media(max-width:620px){.recruit-unit-grid{grid-auto-rows:230px;padding:2px}.recruit-unit-card{height:230px;min-height:230px!important;padding:8px;gap:8px}.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:88px!important;height:88px!important;min-width:88px;min-height:88px}}

.daily-claim-notice{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:13px 15px;border:1px solid rgba(102,173,133,.34);background:linear-gradient(90deg,rgba(68,136,103,.13),rgba(17,28,27,.5));color:#80c19f}.daily-claim-notice>.ui-icon{width:27px;height:27px}.daily-claim-notice>span{display:grid;gap:2px}.daily-claim-notice b{color:#a4d5b9}.daily-claim-notice small{color:#7f9388}.quest-card.daily-blocked{opacity:.72}.quest-card.daily-blocked>.btn{border-color:rgba(102,173,133,.18);color:#75867d}

.message-thread-meta{display:flex!important;align-items:center;gap:8px}.message-thread-delete{display:grid;place-items:center;width:34px;height:34px;margin-left:5px;border:1px solid rgba(192,82,73,.25);background:rgba(115,39,35,.1);color:#c76b62;cursor:pointer}.message-thread-delete:hover{border-color:#c7584d;background:rgba(151,50,43,.2);color:#ed8b80}.message-thread-delete>.ui-icon{width:19px!important;height:19px!important}.message-thread-header>.message-thread-meta{justify-self:end}

/* Rarity light uses the exact grade hue on both heroes and inventory slots. */
.rarity-ordinary{--rarity:#969b99;--rarity-glow:rgba(150,155,153,.26)}.rarity-unusual{--rarity:#62b477;--rarity-glow:rgba(98,180,119,.31)}.rarity-rare{--rarity:#579fdf;--rarity-glow:rgba(87,159,223,.34)}.rarity-epic{--rarity:#a66ee0;--rarity-glow:rgba(166,110,224,.36)}.rarity-legendary{--rarity:#e0b34d;--rarity-glow:rgba(224,179,77,.4)}.rarity-mythical{--rarity:#a8343d;--rarity-glow:rgba(168,52,61,.44)}
.inventory-slot.rarity-ordinary{--rarity:#969b99;--rarity-glow:rgba(150,155,153,.26)}.inventory-slot.rarity-unusual{--rarity:#62b477;--rarity-glow:rgba(98,180,119,.31)}.inventory-slot.rarity-rare{--rarity:#579fdf;--rarity-glow:rgba(87,159,223,.34)}.inventory-slot.rarity-epic{--rarity:#a66ee0;--rarity-glow:rgba(166,110,224,.36)}.inventory-slot.rarity-legendary{--rarity:#e0b34d;--rarity-glow:rgba(224,179,77,.4)}.inventory-slot.rarity-mythical{--rarity:#a8343d;--rarity-glow:rgba(168,52,61,.44)}
.hero-card[class*="rarity-"],.profile-favorite[class*="rarity-"],.scout-hero-entry[class*="rarity-"],.inventory-slot.occupied[class*="rarity-"]{border-color:color-mix(in srgb,var(--rarity) 46%,var(--line))!important;box-shadow:inset 0 0 34px color-mix(in srgb,var(--rarity) 11%,transparent),0 0 19px var(--rarity-glow),0 13px 28px rgba(0,0,0,.2)!important}
.hero-card::after,.profile-favorite::after,.scout-hero-entry::after,.inventory-slot.occupied::after{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--rarity) 72%,white),transparent)!important}
.hero-card.rarity-ordinary::after,.hero-card.rarity-unusual::after,.hero-card.rarity-rare::after,.hero-card.rarity-epic::after,.hero-card.rarity-legendary::after,.hero-card.rarity-mythical::after,.profile-favorite.rarity-ordinary::after,.profile-favorite.rarity-unusual::after,.profile-favorite.rarity-rare::after,.profile-favorite.rarity-epic::after,.profile-favorite.rarity-legendary::after,.profile-favorite.rarity-mythical::after,.scout-hero-entry.rarity-ordinary::after,.scout-hero-entry.rarity-unusual::after,.scout-hero-entry.rarity-rare::after,.scout-hero-entry.rarity-epic::after,.scout-hero-entry.rarity-legendary::after,.scout-hero-entry.rarity-mythical::after,.inventory-slot.occupied.rarity-ordinary::after,.inventory-slot.occupied.rarity-unusual::after,.inventory-slot.occupied.rarity-rare::after,.inventory-slot.occupied.rarity-epic::after,.inventory-slot.occupied.rarity-legendary::after,.inventory-slot.occupied.rarity-mythical::after{animation:rarity-background-shimmer 5.8s ease-in-out infinite!important}

/* v2.4.9 administration workspaces and expedition preparation polish. */
.admin-workspace-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;width:100%;margin:0 0 18px}

#adminRoot[data-content-mode="announcements"] #adminPatchNoteForm,
#adminRoot[data-content-mode="announcements"] .admin-content-history:nth-of-type(2),
#adminRoot[data-content-mode="patchnotes"] #adminAnnouncementForm,
#adminRoot[data-content-mode="patchnotes"] .admin-content-history:nth-of-type(1){display:none}
#adminRoot[data-content-mode] .admin-content-grid{grid-template-columns:minmax(0,1fr)}
.title-requirements{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.title-requirements .requirement{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 7px;border:1px solid rgba(187,150,81,.28);background:rgba(4,12,13,.48);font-size:10px}.title-requirements .requirement.unmet{color:#e18a75;border-color:rgba(184,69,50,.5)}.title-requirements .special-resource-art{width:22px;height:22px;flex:0 0 22px}.god-switch-cooldown{display:inline-flex;margin-top:9px;max-width:max-content}
.admin-workspace-tabs>button{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:center;min-height:66px;padding:10px 13px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(18,29,30,.94),rgba(7,13,14,.9));color:#7d8781;text-align:left;cursor:pointer}
.admin-workspace-tabs>button>.ui-icon{width:30px;height:30px;padding:6px;border:1px solid rgba(199,146,79,.2);color:#b98645}
.admin-workspace-tabs>button>span{display:grid;gap:3px;min-width:0}.admin-workspace-tabs b{color:#c5bdac;font-size:13px}.admin-workspace-tabs small{color:#707a74;font-size:10px}
.admin-workspace-tabs>button:hover,.admin-workspace-tabs>button.active{border-color:rgba(199,146,79,.55);background:linear-gradient(135deg,rgba(199,146,79,.12),rgba(8,14,15,.94));box-shadow:inset 3px 0 #c7924f}

/* Public legal information and persistent access points. */
.landing-legal-links,.sidebar-legal-links{display:flex;align-items:center;justify-content:center;gap:8px}.landing-legal-links a,.sidebar-legal-links a{color:#7e8580;text-decoration:none;transition:color .16s}.landing-legal-links a:hover,.landing-legal-links a:focus-visible,.sidebar-legal-links a:hover,.sidebar-legal-links a:focus-visible{color:var(--bronze-bright);outline:none}.sidebar-legal-links{flex-wrap:wrap;padding:9px 8px 2px;color:#4f5753;font-size:10px;letter-spacing:.02em}.landing-footer .landing-legal-links{text-transform:none;letter-spacing:.02em}
.legal-page *{box-sizing:border-box}.legal-main,.legal-document,.legal-section{min-width:0}.legal-table-wrap{width:100%;max-width:100%;min-width:0}

.legal-page{min-height:100vh;background:#0b1113;color:#aaa99e}.legal-page::before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(115deg,rgba(7,12,13,.97),rgba(10,17,19,.82)),url("../images/ashfall-realm.png?v=20260719.2630") center/cover}.legal-page::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 0,rgba(199,146,79,.08),transparent 46%)}.legal-header{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1120px;margin:auto;padding:24px clamp(18px,4vw,48px);border-bottom:1px solid rgba(222,212,186,.1)}.legal-header .wordmark{text-decoration:none}.legal-back{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid rgba(199,146,79,.32);color:#b7aa91;font-size:11px;text-decoration:none}.legal-back:hover,.legal-back:focus-visible{border-color:#c7924f;color:#e0bd7a;outline:none}.legal-main{width:min(920px,calc(100% - 32px));margin:38px auto 64px}.legal-hero{padding:clamp(24px,5vw,48px);border:1px solid rgba(199,146,79,.3);background:linear-gradient(135deg,rgba(30,44,46,.96),rgba(10,17,18,.96));box-shadow:0 24px 70px rgba(0,0,0,.4)}.legal-eyebrow{margin:0;color:#c7924f;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.legal-hero h1{margin:10px 0 8px;color:#ded4bd;font-family:Georgia,serif;font-size:clamp(34px,6vw,56px);font-weight:400}.legal-hero>p:last-child{margin:0;color:#77817b;font-size:12px}.legal-document{display:grid;gap:12px;margin-top:16px}.legal-section{padding:clamp(20px,4vw,34px);border:1px solid rgba(222,212,186,.12);background:rgba(14,23,24,.94)}.legal-section h2{margin:0 0 14px;color:#d3c7ad;font-family:Georgia,serif;font-size:22px;font-weight:400}.legal-section h3{margin:20px 0 8px;color:#baa77f;font-size:13px}.legal-section p,.legal-section li,.legal-address{font-size:12px;line-height:1.75}.legal-section p{margin:9px 0}.legal-section ul{display:grid;gap:6px;margin:10px 0;padding-left:20px}.legal-section a{color:#d0a85f;text-underline-offset:3px}.legal-section a:hover{color:#efd28f}.legal-address{display:grid;gap:2px;margin:0;font-style:normal}.legal-table-wrap{overflow-x:auto;margin:14px 0}.legal-table{width:100%;min-width:620px;border-collapse:collapse}.legal-table th,.legal-table td;padding:10px 12px;border:1px solid rgba(222,212,186,.12);font-size:11px;line-height:1.55;text-align:left;vertical-align:top}.legal-table th{color:#c5ad7b;background:rgba(199,146,79,.07)}.legal-note{padding:13px 15px;border-left:2px solid #c7924f;background:rgba(199,146,79,.06);color:#a99d85}.legal-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;padding:22px;border-top:1px solid rgba(222,212,186,.1);color:#626b66;font-size:10px}.legal-footer a{color:#888f89;text-decoration:none}.legal-footer a:hover{color:#d0a85f}

@media(max-width:700px){.landing-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;padding-right:18px;padding-left:18px;text-align:center}.landing-footer>span{flex:0 1 auto}.legal-header{padding:16px}.legal-header .wordmark small{display:block}.legal-back{padding:0 10px}.legal-main{margin-top:22px}.legal-hero,.legal-section{padding:20px}.legal-section p,.legal-section li,.legal-address{font-size:12px}}

.mission-catalog{grid-auto-rows:1fr}.mission-type-card{height:100%;min-height:330px;box-sizing:border-box}.mission-type-card>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.hero-mission-modal{width:min(1320px,calc(100vw - 20px))!important}.hero-mission-modal .modal-frame{height:min(900px,calc(100dvh - 20px))}.hero-mission-modal .modal-body{min-height:0;overflow:auto;padding:16px 18px}
.hero-mission-modal .hero-mission-preparation{grid-template-columns:minmax(370px,420px) minmax(0,1fr);gap:16px;align-items:start}
.hero-mission-modal .mission-prep-selector{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:10px;min-height:0;overflow:visible}
.hero-mission-modal .mission-hero-dossier{grid-template-columns:60px minmax(0,1fr);padding:9px 11px}.hero-mission-modal .mission-hero-art{width:60px;height:60px}.hero-mission-modal .mission-hero-dossier b{font-size:18px}.hero-mission-modal .mission-hero-dossier em{font-size:10px}
.hero-mission-modal .mission-selector-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(155px,.7fr);gap:8px;align-items:stretch}.hero-mission-modal .mission-selector-toolbar .mission-origin{display:grid;gap:4px}.hero-mission-modal .mission-origin>span{color:#858d87;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero-mission-modal .mission-origin select{height:44px}
.mission-filter-toggle{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:center;min-width:0;min-height:44px;padding:7px 10px;border:1px solid var(--line-bright);background:rgba(0,0,0,.16);color:#929a94;text-align:left;cursor:pointer}.mission-filter-toggle>.ui-icon{width:22px;height:22px;color:#c7924f}.mission-filter-toggle>span{display:grid;gap:1px;min-width:0}.mission-filter-toggle b{overflow:hidden;color:#c9c0ae;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.mission-filter-toggle small{color:#6f7872;font-size:10px}.mission-filter-toggle:hover,.mission-filter-toggle.active{border-color:#c7924f;background:rgba(199,146,79,.09)}
.hero-mission-modal .hero-mission-options{display:grid;grid-auto-rows:182px;gap:8px;max-height:calc(100dvh - 285px);padding:0 5px 1px 0;overflow:auto;overscroll-behavior:contain}.hero-mission-modal .hero-mission-options>legend{padding-bottom:5px;font-size:10px}
.hero-mission-modal .hero-mission-option{grid-template-columns:44px minmax(0,1fr) 20px;gap:9px;height:182px;padding:10px;overflow:hidden;box-sizing:border-box}.hero-mission-modal .hero-mission-option.high-risk{border-color:rgba(176,65,72,.38);background:linear-gradient(145deg,rgba(110,29,36,.12),rgba(0,0,0,.12))}.hero-mission-modal .mission-choice-emblem{width:44px;height:44px}.hero-mission-modal .mission-choice-emblem>.ui-icon{width:25px;height:25px}
.hero-mission-modal .mission-option-copy{grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:4px}.hero-mission-modal .mission-option-copy>small{font-size:10px}.hero-mission-modal .mission-option-copy>b{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.hero-mission-modal .mission-option-copy>em{display:-webkit-box;overflow:hidden;align-self:start;max-height:2.9em;font-size:10px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.hero-mission-modal .mission-choice-odds{grid-template-columns:48px minmax(0,1fr);padding:5px 7px}.hero-mission-modal .mission-choice-odds>b{font-size:18px}.hero-mission-modal .mission-choice-odds>small,.hero-mission-modal .mission-choice-odds>.danger{font-size:10px}.mission-availability{display:flex;align-items:center;gap:5px;min-width:0;color:#87918b;font-size:10px;line-height:1.25}.mission-availability>.ui-icon{flex:0 0 auto;width:15px;height:15px}.mission-availability.met{color:#7fb59d}.mission-availability.missing{color:#ba6e66}
.hero-mission-modal .mission-prep-workspace{display:grid;gap:10px;min-width:0}.hero-mission-modal .selected-mission-brief{grid-template-columns:50px minmax(0,1fr);gap:11px;padding:11px}.hero-mission-modal .selected-mission-brief .mission-choice-emblem{width:50px;height:50px}.hero-mission-modal .selected-mission-brief h3{margin:2px 0 4px;font-size:19px}.hero-mission-modal .selected-mission-brief p{display:-webkit-box;overflow:hidden;margin-bottom:5px;font-size:10px;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.mission-item-picker{min-width:0;padding:10px;border:1px solid rgba(199,146,79,.25);background:linear-gradient(125deg,rgba(199,146,79,.055),rgba(4,9,10,.62))}.mission-item-picker>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.mission-item-picker>header>span{display:flex;align-items:center;gap:8px}.mission-item-picker>header .ui-icon{width:22px;height:22px;color:#c7924f}.mission-item-picker>header span span{display:grid;gap:1px}.mission-item-picker>header small{color:#9c7444;font-size:10px;text-transform:uppercase}.mission-item-picker>header b{color:#c8c0ae;font-size:12px}.mission-item-picker>header em{color:#707a74;font-size:10px;font-style:normal;text-align:right}.mission-item-picker>p{margin:7px 0 0;color:#707973;font-size:10px}
.mission-item-options{display:grid;grid-auto-columns:minmax(118px,145px);grid-auto-flow:column;gap:7px;max-width:100%;padding:1px 0 4px;overflow-x:auto;overscroll-behavior-inline:contain}.mission-item-option{--rarity:#8d9391;position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 7px;align-items:center;min-height:58px;padding:6px;border:1px solid color-mix(in srgb,var(--rarity) 38%,var(--line));background:color-mix(in srgb,var(--rarity) 6%,rgba(3,8,9,.86));cursor:pointer}.mission-item-option>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.mission-item-option>.asset-art,.mission-item-option>span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px}.mission-item-option>span>.ui-icon{width:20px;height:20px;color:#66706a}.mission-item-option>b{overflow:hidden;color:#bdb7a9;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.mission-item-option>small{color:var(--rarity);font-size:10px}.mission-item-option:has(input:checked){border-color:var(--rarity);box-shadow:inset 3px 0 var(--rarity),0 0 12px color-mix(in srgb,var(--rarity) 24%,transparent)}.mission-item-option.rarity-unusual{--rarity:#62b477}.mission-item-option.rarity-rare{--rarity:#579fdf}.mission-item-option.rarity-epic{--rarity:#a66ee0}.mission-item-option.rarity-legendary{--rarity:#e0b34d}.mission-item-option.rarity-mythical{--rarity:#a8343d}
.hero-mission-modal .mission-decision-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.hero-mission-modal .mission-decision{grid-template-columns:34px minmax(0,1fr) 18px;gap:7px;min-height:150px;padding:9px}.hero-mission-modal .decision-emblem{width:34px;height:34px}.hero-mission-modal .decision-emblem>.ui-icon{width:20px;height:20px}.hero-mission-modal .decision-copy{gap:4px}.hero-mission-modal .decision-copy>b{font-size:14px}.hero-mission-modal .decision-copy>em{display:-webkit-box;overflow:hidden;max-height:4.35em;font-size:10px;-webkit-box-orient:vertical;-webkit-line-clamp:3}.hero-mission-modal .decision-odds b{padding:3px 4px;font-size:10px}.hero-mission-modal .mission-final-forecast{padding:11px}.hero-mission-modal .mission-final-forecast>header{margin-bottom:8px}.hero-mission-modal .mission-final-chances{gap:6px}.hero-mission-modal .mission-final-chances>span{padding:8px}.hero-mission-modal .mission-final-chances b{font-size:22px}.hero-mission-modal .mission-procedural-brief{padding:11px}.hero-mission-modal .mission-procedural-brief>article{padding:8px}

.inventory-vault .inventory-grid{grid-template-columns:repeat(auto-fill,minmax(58px,72px));gap:7px;justify-content:start;padding:11px}.inventory-vault .inventory-slot{width:100%;max-width:72px}.inventory-vault .inventory-slot-art{width:82%;height:82%}.inventory-vault .inventory-slot>small{top:3px;left:5px;font-size:10px}

@media(max-width:1050px){.hero-mission-modal .hero-mission-preparation{grid-template-columns:1fr}.hero-mission-modal .hero-mission-options{grid-template-columns:repeat(2,minmax(260px,1fr));grid-auto-rows:182px;max-height:none;overflow:visible}.hero-mission-modal .hero-mission-options>legend{grid-column:1/-1}.hero-mission-modal .mission-decision-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.admin-workspace-tabs{grid-template-columns:1fr}.hero-mission-modal .modal-body{padding:12px}.hero-mission-modal .mission-selector-toolbar{grid-template-columns:1fr}.hero-mission-modal .hero-mission-options,.hero-mission-modal .mission-decision-options{grid-template-columns:1fr}.hero-mission-modal .hero-mission-option{height:188px}.hero-mission-modal .hero-mission-options{grid-auto-rows:188px}.hero-mission-modal .mission-final-chances{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-mission-modal .mission-procedural-brief{grid-template-columns:1fr}.mission-item-picker>header{align-items:flex-start;flex-direction:column}.mission-item-picker>header em{text-align:left}.inventory-vault .inventory-grid{grid-template-columns:repeat(auto-fill,minmax(54px,64px))}.inventory-vault .inventory-slot{max-width:64px}}
.rarity-ordinary::after{animation-duration:8.5s!important;opacity:.18}.rarity-mythical::after{animation-duration:4.4s!important}

/* v2.4.7 · undistorted stat crops and unclipped company/fleet cards. */
.unit-stat-icon,.unit-stats .unit-stat-icon,.unit-stats.compact .unit-stat-icon{
  overflow:hidden!important;
  background-size:contain!important;
  background-position:center!important;
}
.modal:has(#recruitForm){width:min(1180px,calc(100vw - 24px))}
.recruit-unit-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-rows:350px!important;
  align-items:stretch!important;
  gap:16px!important;
  padding:5px!important;
}
.recruit-unit-card{
  display:grid!important;
  grid-template-columns:112px minmax(0,1fr)!important;
  grid-template-rows:minmax(112px,auto) auto!important;
  align-items:center!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:100%!important;
  min-height:350px!important;
  margin:0!important;
  padding:16px!important;
  gap:12px 16px!important;
  overflow:visible!important;
}
.recruit-unit-card>.recruit-unit-art{grid-column:1;grid-row:1}
.recruit-unit-card>.unit-choice-copy{grid-column:2;grid-row:1;align-content:center;align-self:stretch;height:auto!important;padding:8px 4px!important}
.unit-choice-copy>b{font-size:19px!important;line-height:1.25}.unit-choice-copy>small{font-size:9px!important}
.recruit-card-details{display:grid;grid-column:1/-1;grid-row:2;grid-template-rows:auto auto auto;gap:10px;align-self:end;min-width:0}
.recruit-card-details>.unit-stats{grid-template-columns:repeat(5,minmax(0,1fr))!important;width:100%;margin:0!important}
.recruit-card-details>.unit-stats>span{box-sizing:border-box;min-width:0;padding:7px 5px!important}
.recruit-card-details>.cost-row{display:flex;min-height:38px;align-items:center;align-content:center;flex-wrap:wrap;gap:5px;margin:0!important;overflow:visible}
.recruit-card-details>.requirement-summary{display:flex;min-height:32px;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:5px;overflow:visible}

.unit-catalog-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr))!important;grid-auto-rows:1fr;align-items:stretch;gap:16px!important}
.unit-detail-card{box-sizing:border-box;width:100%;height:100%;min-height:196px!important;overflow:visible!important}
.unit-detail-copy{min-width:0}.unit-detail-copy>.unit-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%}
.unit-detail-copy>.unit-stats>span{box-sizing:border-box;min-width:0;padding:7px 5px!important}

.settlement-terrain-bonuses{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0}.settlement-terrain-bonuses>span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid currentColor;background:rgba(0,0,0,.13);font-size:9px}.settlement-terrain-bonuses .ui-icon{width:18px;height:18px}.settlement-terrain-bonuses .positive{color:#72bd91}.settlement-terrain-bonuses .negative{color:#d36e64}.settlement-terrain-bonuses.neutral{color:#7c8580}.city-hero-content>.settlement-terrain-bonuses{margin:10px 0 0}
.spellbook-page{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}

@media(max-width:760px){
  .recruit-unit-grid{grid-template-columns:1fr!important;grid-auto-rows:360px!important}
  .recruit-unit-card{grid-template-columns:92px minmax(0,1fr)!important;grid-template-rows:minmax(92px,auto) auto!important;min-height:360px!important;padding:13px!important;gap:10px 12px!important}
  .recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important}
  .recruit-card-details>.unit-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .unit-detail-card{grid-template-columns:82px minmax(0,1fr) 60px!important;min-height:180px!important;padding:11px!important}
  .unit-detail-art{width:82px!important;height:82px!important}
  .unit-detail-copy>.unit-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* v4.3.1: compact horizontal Dominion Atelier and resilient raven threads. */
.cosmetic-category>header{align-items:center}
.cosmetic-category-toolbar{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.cosmetic-category-toolbar>b{min-width:58px;margin-right:3px;color:#a99570;font-size:12px;text-align:right}
.cosmetic-category-toolbar>.icon-button{display:grid;place-items:center;width:36px;height:36px;border-color:rgba(199,146,79,.28);background:rgba(199,146,79,.045)}
.cosmetic-category-toolbar>.icon-button:hover{border-color:rgba(215,182,109,.62);background:rgba(199,146,79,.12)}
.cosmetic-category-toolbar>.icon-button .ui-icon{width:21px;height:21px}
.cosmetic-category-toolbar>.previous .ui-icon{transform:rotate(180deg)}
.cosmetic-carousel{position:relative;min-width:0;overflow:hidden}
.cosmetic-track{display:flex!important;grid-template-columns:none!important;gap:13px;min-width:0;padding:2px 2px 12px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-color:rgba(199,146,79,.42) rgba(255,255,255,.035);scrollbar-width:thin;overscroll-behavior-x:contain;touch-action:pan-x}
.cosmetic-track>.cosmetic-card{flex:0 0 clamp(250px,28vw,310px);width:clamp(250px,28vw,310px);min-height:410px;scroll-snap-align:start}
.cosmetic-traits{display:grid;justify-items:end;gap:5px;flex:0 0 auto}
.cosmetic-traits>small{padding:3px 6px;border:1px solid rgba(199,146,79,.22);color:#9d9484;font-size:9px;text-transform:uppercase;letter-spacing:.05em}

.message-layout{height:min(680px,calc(100dvh - 220px));min-height:0}
.message-view{min-width:0;min-height:0;max-height:100%;overflow:hidden}
.message-thread{min-height:0;overflow-y:scroll;overflow-anchor:auto;scrollbar-gutter:stable;scroll-padding-bottom:18px;-webkit-overflow-scrolling:touch}
.thread-reply{position:relative;z-index:2;flex:0 0 auto;max-height:min(34dvh,280px);overflow-y:auto;overscroll-behavior:contain}

@media(max-width:760px){
  .cosmetic-category>header{align-items:flex-start;flex-wrap:wrap}.cosmetic-category>header>span{min-width:min(100%,240px)}.cosmetic-category-toolbar{margin-left:auto}
  .cosmetic-track>.cosmetic-card{flex-basis:min(82vw,300px);width:min(82vw,300px)}
  .message-layout{height:auto}
  .message-view.open{height:calc(100dvh - var(--topbar) - 68px - env(safe-area-inset-bottom));max-height:calc(100dvh - var(--topbar) - 68px - env(safe-area-inset-bottom))}
  .thread-reply{max-height:min(42dvh,300px);padding-bottom:calc(10px + env(safe-area-inset-bottom))}
}

@media(prefers-reduced-motion:reduce){.cosmetic-track{scroll-behavior:auto}}

/* v2.8.3 account resources and point-scaled player settlements. */
.resource-chip.account-resource[data-resource="gems"]{min-width:88px;background:linear-gradient(135deg,rgba(151,39,48,.17),rgba(28,10,17,.14))}
.resource-chip.account-resource .gems-glyph{filter:drop-shadow(0 0 7px rgba(210,72,84,.45))}
.map-marker.player-city-progress.city-progress-tier-1{width:39px;height:39px;--city-tier-color:#81796d}
.map-marker.player-city-progress.city-progress-tier-2{width:43px;height:43px;--city-tier-color:#65a77f}
.map-marker.player-city-progress.city-progress-tier-3{width:48px;height:48px;--city-tier-color:#668fbe}
.map-marker.player-city-progress.city-progress-tier-4{width:52px;height:52px;--city-tier-color:#9a72bd}
.map-marker.player-city-progress.city-progress-tier-5{width:56px;height:56px;--city-tier-color:#d0a14d}
.map-marker.player-city-progress .map-target-core,.map-marker.player-city-progress .map-location-art{width:100%!important;height:100%!important}
.city-progress-badge{position:absolute;z-index:7;right:-7px;bottom:-6px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 3px;border:1px solid color-mix(in srgb,var(--city-tier-color) 78%,#e8d8ae);clip-path:polygon(50% 0,94% 24%,86% 76%,50% 100%,14% 76%,6% 24%);background:#11191b;color:var(--city-tier-color);font-family:Georgia,serif;font-size:9px;line-height:1;pointer-events:none}
.map-marker.player-city-progress.city-progress-tier-4+.map-label,.map-marker.player-city-progress.city-progress-tier-5+.map-label{transform:translate(-50%,39px)}
@media(max-width:760px){.resource-chip.account-resource[data-resource="gems"]{display:flex!important;min-width:66px;padding:0 7px}.resource-chip.account-resource[data-resource="gems"] .resource-glyph{width:25px;height:25px}}
@media(max-width:430px){
  .recruit-unit-grid{grid-auto-rows:400px!important}
  .recruit-unit-card{grid-template-columns:78px minmax(0,1fr)!important;min-height:400px!important;padding:10px!important}
  .recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important}
  .recruit-card-details>.unit-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .unit-detail-card{grid-template-columns:68px minmax(0,1fr)!important;height:auto;min-height:0!important}
  .unit-detail-art{width:68px!important;height:68px!important}.unit-count{grid-column:1/-1!important;min-height:48px!important}
  .unit-detail-copy>.unit-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v4.1: river realms, Pantheon muster, realm content, and administrative forge. */
.map-shell::after{content:"";position:absolute;z-index:40;inset:0;pointer-events:none;border:2px solid rgba(199,146,79,.38);box-shadow:inset 0 0 0 1px rgba(12,18,19,.92),inset 0 0 22px rgba(0,0,0,.58),0 0 0 1px rgba(7,11,12,.9)}
.world-map::after{content:"";position:absolute;z-index:39;inset:7px;pointer-events:none;border:1px solid rgba(222,190,124,.12);clip-path:polygon(0 0,34px 0,34px 2px,calc(100% - 34px) 2px,calc(100% - 34px) 0,100% 0,100% 34px,calc(100% - 2px) 34px,calc(100% - 2px) calc(100% - 34px),100% calc(100% - 34px),100% 100%,calc(100% - 34px) 100%,calc(100% - 34px) calc(100% - 2px),34px calc(100% - 2px),34px 100%,0 100%,0 calc(100% - 34px),2px calc(100% - 34px),2px 34px,0 34px)}
.pantheon-mythic-muster{margin:0 0 18px;border-color:rgba(168,119,201,.34);background:linear-gradient(115deg,rgba(92,51,112,.12),rgba(9,15,17,.94))}.pantheon-mythic-muster>.section-heading>span{display:flex;align-items:center;gap:7px}.pantheon-mythic-muster>.section-heading .ui-icon{width:22px;height:22px;color:#c49add}.pantheon-mythic-muster>div{display:grid;grid-template-columns:104px minmax(180px,1fr) minmax(190px,auto);align-items:center;gap:14px;padding:13px}.pantheon-mythic-muster .god-mythic-unit-art{width:100px;height:100px;object-fit:contain}.pantheon-mythic-muster>div>span{display:grid;gap:4px;min-width:0}.pantheon-mythic-muster>div>span>small{color:#9d7fb0;font-size:10px;text-transform:uppercase}.pantheon-mythic-muster>div>span>b{color:#dccce4;font:500 19px Georgia,serif}.pantheon-mythic-muster>div>span>em{color:#8e9690;font-size:10px;font-style:normal}.pantheon-mythic-muster>div>div{display:grid;justify-items:end;gap:10px}.mythic-muster-card{display:grid;grid-template-columns:116px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:12px;padding:12px;border:1px solid rgba(168,119,201,.28);background:rgba(91,49,111,.08)}.mythic-muster-card .god-mythic-unit-art{width:112px;height:112px;object-fit:contain}.mythic-muster-card h3{margin:3px 0;color:#ddcfe4;font:500 20px Georgia,serif}.mythic-muster-card p{margin:7px 0;color:#909790;font-size:12px;line-height:1.45}
.global-announcement-modal{--modal-width:min(680px,calc(100vw - 24px))}.global-announcement{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr);gap:15px;padding:20px;border:1px solid rgba(199,146,79,.3);background:radial-gradient(circle at 10% 10%,rgba(199,146,79,.12),transparent 42%),rgba(5,11,12,.45)}.global-announcement-seal{display:grid;place-items:center;width:64px;height:64px;border:1px solid rgba(199,146,79,.4);background:rgba(199,146,79,.07);color:#dbb86e}.global-announcement-seal .ui-icon{width:42px;height:42px}.global-announcement-body{color:#c2bcad;font-size:13px;line-height:1.7}.announcement-rewards{grid-column:1/-1;padding-top:13px;border-top:1px solid rgba(199,146,79,.18)}.announcement-rewards>small{display:block;margin-bottom:7px;color:#9e8965;font-size:10px;letter-spacing:.07em;text-transform:uppercase}
.patch-note-page{max-width:1040px;margin:0 auto}.patch-note-list{display:grid;gap:12px}.patch-note-card{padding:18px 20px}.patch-note-card>header>span{display:flex;align-items:center;gap:12px}.patch-note-card>header .ui-icon{width:34px;height:34px;color:#c99c54}.patch-note-card h2{margin:2px 0 0;color:#ded1b5;font:500 22px Georgia,serif}.patch-note-card header small{color:#8e7a5a;font-size:10px}.patch-note-summary{margin:15px 0 8px;color:#c2b493;font-size:13px;font-weight:700}.patch-note-body{color:#929a94;font-size:12px;line-height:1.65}
.admin-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-content-form>.panel-inner{padding:14px}.admin-content-form textarea{resize:vertical}.admin-reward-grid{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:8px;margin:0;padding:10px;border:1px solid rgba(199,146,79,.19)}.admin-reward-grid legend{padding:0 5px;color:#a58c61;font-size:10px;text-transform:uppercase}.admin-reward-grid label{margin:0}.admin-reward-grid label>span{display:flex;align-items:center;gap:5px}.admin-reward-grid .resource-glyph{width:19px;height:19px}.admin-content-history>.panel-inner{display:grid;gap:5px;padding:10px}.admin-content-history article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid rgba(255,255,255,.045);background:rgba(0,0,0,.12)}.admin-content-history article>span:first-child{display:grid;gap:2px;min-width:0}.admin-content-history article b{overflow:hidden;color:#c8bdA7;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.admin-content-history article small{color:#77807a;font-size:10px}.admin-content-history article em{color:#9d8a68;font-size:10px;font-style:normal;white-space:nowrap}.admin-world-create{margin-top:14px}.admin-world-create>.panel-inner{grid-template-columns:repeat(3,minmax(150px,1fr));padding:14px}.admin-search-form{display:grid;grid-template-columns:minmax(200px,420px) auto;align-items:end;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.admin-search-form label{margin:0}.admin-search-form .btn{min-height:39px}.god-shrine-regenerator{border-color:rgba(145,98,180,.32);background:linear-gradient(100deg,rgba(91,50,113,.12),rgba(4,10,11,.28))}.god-shrine-regenerator>span>.ui-icon{color:#b58acb}
@media(max-width:900px){.admin-content-grid{grid-template-columns:1fr}.admin-reward-grid{grid-template-columns:repeat(2,minmax(90px,1fr))}.pantheon-mythic-muster>div{grid-template-columns:88px minmax(0,1fr)}.pantheon-mythic-muster>div>div{grid-column:1/-1;justify-items:stretch}.pantheon-mythic-muster .god-mythic-unit-art{width:84px;height:84px}.admin-world-create>.panel-inner{grid-template-columns:repeat(2,minmax(130px,1fr))}}
@media(max-width:560px){.pantheon-mythic-muster>div{grid-template-columns:70px minmax(0,1fr);gap:9px}.pantheon-mythic-muster .god-mythic-unit-art{width:68px;height:68px}.mythic-muster-card{grid-template-columns:80px minmax(0,1fr)}.mythic-muster-card .god-mythic-unit-art{width:76px;height:76px}.global-announcement{grid-template-columns:46px minmax(0,1fr);padding:13px}.global-announcement-seal{width:44px;height:44px}.global-announcement-seal .ui-icon{width:28px;height:28px}.admin-reward-grid,.admin-world-create>.panel-inner{grid-template-columns:1fr}.admin-search-form{grid-template-columns:1fr}.patch-note-card{padding:14px}}

/* v4.0: city-bound divinities, Favor, divine shrines, and mythic units. */
.god-oath{display:grid;grid-template-columns:clamp(120px,15vw,190px) minmax(0,1fr) minmax(190px,260px);gap:20px;align-items:stretch;margin:18px 0;padding:18px;border:1px solid rgba(213,174,93,.32);background:linear-gradient(115deg,rgba(86,60,30,.18),rgba(14,25,27,.96) 42%,rgba(33,26,45,.4));overflow:hidden}
.god-oath.unbound{grid-template-columns:64px minmax(0,1fr);align-items:center;min-height:110px}.god-oath.unbound>.ui-icon{width:54px;height:54px;color:#cda957;filter:drop-shadow(0 0 12px rgba(206,162,72,.3))}
.god-portrait{display:block;width:100%;min-height:190px;background-image:linear-gradient(to top,rgba(8,13,15,.86),transparent 38%),var(--god-image);background-repeat:no-repeat;background-position:center;background-size:cover;box-shadow:inset 0 0 0 1px rgba(229,191,111,.2),0 12px 30px rgba(0,0,0,.35)}
.god-oath>div{display:flex;min-width:0;flex-direction:column;justify-content:center}.god-oath h2,.god-card h2{margin:2px 0 6px;color:#e4d2a9;font:500 clamp(21px,2vw,30px) Georgia,serif}.god-oath p,.god-card p{margin:0;color:#9da49b;line-height:1.5}.god-oath>aside{display:grid;align-content:center;gap:9px;padding-left:16px;border-left:1px solid rgba(203,158,76,.2)}
.god-oath>aside>span{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:8px;border:1px solid rgba(211,174,95,.22);background:rgba(3,8,9,.32)}.god-oath>aside>span>.resource-glyph{grid-row:1/3;width:31px;height:31px}.god-oath>aside>span>b{font:600 20px Georgia,serif;color:#e4bd66}.god-oath>aside>span>small{color:#899089}
.god-oath>aside>span>em{grid-column:2;color:#a08f6d;font-size:10px;font-style:normal;line-height:1.35}
.god-relation-seal>b{display:grid;grid-row:1/3;place-items:center;width:32px;height:32px;border:1px solid #cda554;border-radius:50%;color:#e2bd68}.god-oath>aside>.god-relation-seal>small{grid-column:2}
.god-bonus-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:12px}.god-bonus-list>span{display:grid;grid-template-columns:23px minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;padding:7px;border:1px solid rgba(207,166,82,.14);background:rgba(0,0,0,.18)}.god-bonus-list .ui-icon{width:21px;height:21px;color:#c7a355}.god-bonus-list small{overflow:hidden;color:#8e9991;text-overflow:ellipsis;white-space:nowrap}.god-bonus-list b{color:#7fc7a2;font-size:11px}
.god-shrine-ledger{margin:14px 0 18px}.god-shrine-ledger>.section-heading{padding:11px 13px}.god-shrine-ledger>.section-heading>em{color:#d9b76a}.god-shrine-ledger>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:7px;padding:10px}.god-shrine-ledger article{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px;border:1px solid rgba(192,153,75,.14);background:rgba(6,12,13,.4)}.god-shrine-ledger article.bound{border-color:rgba(222,181,87,.38);box-shadow:inset 3px 0 #cba34f}.god-shrine-ledger-art{width:58px;height:50px}.god-shrine-ledger article>span{display:grid;min-width:0}.god-shrine-ledger article b{overflow:hidden;color:#d4c5a5;text-overflow:ellipsis;white-space:nowrap}.god-shrine-ledger article small{color:#79847e}.god-shrine-ledger article>em{max-width:120px;color:#caa654;font-size:10px;text-align:right}
.god-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.god-card{display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-rows:auto auto 1fr auto;gap:0 15px;min-width:0;min-height:430px;padding:14px;border:1px solid rgba(190,151,75,.2);background:linear-gradient(145deg,rgba(34,29,24,.76),rgba(13,22,24,.98) 45%);box-shadow:0 12px 30px rgba(0,0,0,.18)}.god-card.selected{border-color:rgba(228,185,91,.66);box-shadow:inset 0 0 28px rgba(205,157,57,.07),0 12px 32px rgba(0,0,0,.3)}.god-card>.god-portrait{grid-row:1/5;min-height:100%;background-position:center top}.god-card>header{min-width:0}.god-card>header>small{color:#c79d4e;letter-spacing:.08em;text-transform:uppercase}.god-card h2{font-size:24px}.god-card .god-bonus-list{align-self:start}.god-card .god-mythic-unit{align-self:end}.god-card>footer{display:flex;align-items:center;justify-content:flex-end;padding-top:10px}.god-card>footer>.btn{min-width:150px}.god-selected-mark{display:flex;align-items:center;gap:6px;color:#d9b663}.god-selected-mark>.ui-icon{width:18px;height:18px}
.god-mythic-unit{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;margin-top:10px;padding:8px;border:1px solid rgba(180,111,72,.25);background:linear-gradient(90deg,rgba(87,40,28,.16),rgba(0,0,0,.18))}.god-mythic-unit-art{grid-row:1/3;width:82px;height:92px}.god-mythic-unit>span{display:grid;align-content:center;min-width:0}.god-mythic-unit>span>small{color:#ad7257;text-transform:uppercase}.god-mythic-unit>span>b{color:#dfc99e;font:500 16px Georgia,serif}.god-mythic-unit>span>em{color:#7f8983}.god-mythic-unit>.cost-row{grid-column:2;justify-content:flex-start}
.god-change-warning{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:stretch}.god-change-warning>.god-portrait{min-height:260px}.god-change-warning .negative b{color:#dc756a}.god-sanctum-warning{margin:14px 0}.divine-shrine-inspector{display:grid;grid-template-columns:44px minmax(0,1fr);gap:9px;align-items:center;padding:9px;border:1px solid rgba(220,178,86,.3);background:linear-gradient(100deg,rgba(174,121,45,.14),rgba(19,15,31,.34))}.divine-shrine-inspector>.resource-glyph{width:40px;height:40px}.divine-shrine-inspector small{color:#cba554}.divine-shrine-inspector h3{margin:1px 0 2px;color:#e0cc9e;font:500 16px Georgia,serif}.divine-shrine-inspector p{margin:0;color:#929a94;font-size:10px;line-height:1.4}
.map-marker.god_shrine>.map-target-core{filter:drop-shadow(0 0 3px rgba(255,255,255,.82)) drop-shadow(0 0 8px rgba(225,239,255,.42))}.map-marker.god_shrine::before{position:absolute;inset:16%;z-index:-1;border:1px solid rgba(244,249,255,.48);border-radius:50%;background:radial-gradient(circle,rgba(242,248,255,.12),transparent 67%);box-shadow:0 0 10px rgba(225,239,255,.34);content:"";pointer-events:none}.map-marker.god_shrine.selected::before{animation:divine-shrine-pulse 1.8s ease-in-out infinite}@keyframes divine-shrine-pulse{50%{transform:scale(1.12);opacity:.5}}
.mythic-recruit-card{background-image:linear-gradient(145deg,rgba(96,40,28,.16),transparent 48%)}.mythic-recruit-card:not(.locked){border-color:rgba(211,136,79,.38)}
@media(max-width:1180px){.god-card-grid{grid-template-columns:1fr}.god-card{grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:760px){.god-oath{grid-template-columns:92px minmax(0,1fr);gap:10px;padding:10px}.god-oath>.god-portrait{min-height:145px}.god-oath>aside{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));padding:9px 0 0;border-top:1px solid rgba(203,158,76,.2);border-left:0}.god-oath>aside>.btn,.god-oath>aside>em{grid-column:1/-1}.god-card{grid-template-columns:105px minmax(0,1fr);min-height:390px;padding:9px;gap:0 9px}.god-card h2{font-size:20px}.god-card .god-bonus-list{grid-template-columns:1fr}.god-card>.god-portrait{min-height:100%}.god-mythic-unit{grid-template-columns:58px minmax(0,1fr)}.god-mythic-unit-art{width:58px;height:72px}.god-mythic-unit>.cost-row{grid-column:1/-1}.god-shrine-ledger>div{grid-template-columns:1fr}.god-change-warning{grid-template-columns:90px minmax(0,1fr)}.god-change-warning>.god-portrait{min-height:220px}}
@media(max-width:430px){.god-card{display:flex;min-height:0;flex-direction:column}.god-card>.god-portrait{width:100%;min-height:180px;max-height:220px}.god-card .god-bonus-list{grid-template-columns:repeat(2,minmax(0,1fr))}.god-card>footer>.btn{width:100%}.god-shrine-ledger article{grid-template-columns:50px minmax(0,1fr)}.god-shrine-ledger article>em{grid-column:2;max-width:none;text-align:left}.god-shrine-ledger-art{width:48px;height:43px}}

/* Release-scoped static artwork. Dynamic artwork receives the same revision in app.js. */
.auth-scene{background-image:var(--release-realm-image,url("../images/ashfall-realm.png?v=20260719.2630"))}
.event-visual{background-image:linear-gradient(0deg,rgba(16,14,24,.92),rgba(16,14,24,.18)),var(--release-realm-image,url("../images/ashfall-realm.png?v=20260719.2630"))}
.city-hero{background-image:linear-gradient(90deg,rgba(10,15,17,.92),rgba(10,15,17,.28) 65%,rgba(10,15,17,.55)),var(--release-realm-image,url("../images/ashfall-realm.png?v=20260719.2630"))}
.world-map{background-image:linear-gradient(rgba(9,15,17,.32),rgba(9,15,17,.4)),var(--release-realm-image,url("../images/ashfall-realm.png?v=20260719.2630"))}
.map-material-layer{background-image:var(--release-map-relief,url("../images/world-map-relief-v2.webp?v=20260719.2630")),var(--release-map-parchment,url("../images/world-map-parchment-v2.webp?v=20260719.2630"))}

/* v2.4.6 · modular single-file artwork and Harbor-gated fleet controls. */
.asset-art.modular-art{
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  background-color:transparent!important;
}
.asset-art.modular-art.hero-art{
  background-size:cover!important;
}
.building-card .asset-art.modular-art.building-card-art,
.profile-hero-art.modular-art,
.profile-choice-art.modular-art,
.scout-hero-art.modular-art{
  background-position:center!important;
  background-size:cover!important;
}
.map-location-art.modular-art,
.inspector-map-art.modular-art,
.map-target-core>.map-location-art.modular-art{
  background-position:center!important;
  background-size:contain!important;
}
.settlement-terrain-bonuses .unlock{color:#e0b96d;border-color:rgba(224,185,109,.52);background:linear-gradient(90deg,rgba(160,111,42,.18),rgba(20,31,33,.34))}
.fleet-locked{border-color:rgba(115,126,126,.18)!important;background:linear-gradient(145deg,rgba(24,32,34,.62),rgba(8,13,14,.76))!important}
.fleet-locked>.section-heading,.dispatch-force-zone.fleet-locked>header{opacity:.62}
.fleet-locked .empty-state{min-height:132px}
.army-tabs .tab:disabled{cursor:not-allowed;filter:saturate(.2);opacity:.42}

/* v2.4.8 · every interface, resource, item, avatar, movement, and crest symbol is an independent file. */
.alliance-symbol-art{
  position:relative;
  z-index:2;
  display:block;
  width:64%;
  height:64%;
  background:var(--crest-symbol);
  -webkit-mask-image:var(--alliance-icon-image);
  mask-image:var(--alliance-icon-image);
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-size:contain;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.55));
}
.alliance-crest-design.large>.alliance-symbol-art{width:70%;height:70%}
.alliance-hero .alliance-crest-design>.alliance-symbol-art{width:66%;height:66%}

/* v2.4.9 · persistent guided oath and private training assault. */
.tutorial-layer[hidden]{display:none!important}
.tutorial-layer{position:fixed;inset:0;z-index:2200;pointer-events:none}
.tutorial-spotlight{position:fixed;z-index:1;box-sizing:border-box;border:2px solid #f0c56f;border-radius:8px;background:rgba(232,173,82,.035);box-shadow:0 0 0 9999px rgba(3,8,9,.74),0 0 0 5px rgba(226,174,83,.13),0 0 30px rgba(235,181,83,.72);transition:left .22s ease,top .22s ease,width .22s ease,height .22s ease;animation:tutorial-border-pulse 1.55s ease-in-out infinite;pointer-events:none}
.tutorial-card{position:fixed;z-index:3;box-sizing:border-box;width:min(390px,calc(100vw - 20px));padding:0;border:1px solid rgba(236,194,111,.66);background:linear-gradient(148deg,rgba(31,44,45,.99),rgba(11,18,20,.99));box-shadow:0 22px 58px rgba(0,0,0,.64),inset 0 1px rgba(255,255,255,.04);pointer-events:auto;transition:left .2s ease,top .2s ease}
.tutorial-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,#e5b85e,transparent);box-shadow:0 0 14px rgba(230,179,82,.55)}
.tutorial-card>header{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;padding:17px 18px 12px;border-bottom:1px solid rgba(200,157,89,.2)}
.tutorial-card>header h2{margin:2px 0 0;color:#eee0bd;font-family:Georgia,serif;font-size:21px;line-height:1.15}
.tutorial-card>header small{color:#b98c4d;font-size:7px;letter-spacing:.17em}
.tutorial-sigil{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(230,183,91,.55);border-radius:50%;background:radial-gradient(circle,rgba(225,157,54,.32),rgba(28,38,38,.1));box-shadow:0 0 17px rgba(220,144,45,.2)}
.tutorial-sigil::before{content:"";width:22px;height:27px;background:linear-gradient(#f2c46b,#a65c2c);clip-path:polygon(50% 0,74% 31%,69% 51%,100% 75%,60% 100%,48% 67%,17% 91%,0 56%,28% 35%)}
.tutorial-progress{align-self:start;padding:5px 7px;border:1px solid rgba(199,146,79,.28);background:#10191b;color:#938a76;font-size:7px;white-space:nowrap}
.tutorial-card>p{min-height:72px;margin:0;padding:16px 18px 10px;color:#b8c0bb;font-size:12px;line-height:1.6}
.tutorial-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px 17px}
.tutorial-card>footer .btn{min-width:142px;justify-content:center}.tutorial-skip{color:#8f9691!important;font-size:9px}.tutorial-skip:hover{color:#d0b375!important}
.tutorial-wait{display:flex;align-items:center;gap:9px;margin:2px 18px 5px;padding:9px 10px;border:1px solid rgba(210,161,77,.27);background:rgba(168,105,38,.1);color:#d5b06b;font-size:9px}.tutorial-wait .ui-icon{width:23px;height:23px}.tutorial-wait time{color:#f1c66f;font-weight:700}
.tutorial-target-active{outline:2px solid rgba(239,191,98,.85)!important;outline-offset:4px!important;filter:brightness(1.08);animation:tutorial-target-pulse 1.55s ease-in-out infinite!important}
.tutorial-bandit-marker{z-index:12!important;animation:tutorial-target-pulse 1.45s ease-in-out infinite!important}.tutorial-bandit-label{z-index:11!important;border-color:rgba(222,102,84,.42)!important;color:#f0a07d!important}.tutorial-route polyline{stroke-width:4;filter:drop-shadow(0 0 7px #e8a154)}
.tutorial-report-banner{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;margin-bottom:16px;padding:14px;border:1px solid rgba(100,190,144,.44);background:linear-gradient(90deg,rgba(50,130,94,.18),rgba(18,29,29,.42));color:#8bd2ac}.tutorial-report-banner>.ui-icon{width:38px;height:38px}.tutorial-report-banner small{display:block;color:#6fa987;font-size:7px;letter-spacing:.12em;text-transform:uppercase}.tutorial-report-banner b{display:block;margin:3px 0;color:#bce6cc;font-family:Georgia,serif;font-size:15px}.tutorial-report-banner p{margin:5px 0 0;color:#93aaa0;font-size:10px;line-height:1.45}
@keyframes tutorial-border-pulse{0%,100%{border-color:#d9a954;box-shadow:0 0 0 9999px rgba(3,8,9,.74),0 0 0 4px rgba(226,174,83,.1),0 0 17px rgba(235,181,83,.48)}50%{border-color:#ffe09a;box-shadow:0 0 0 9999px rgba(3,8,9,.71),0 0 0 8px rgba(226,174,83,.16),0 0 34px rgba(255,202,101,.86)}}
@keyframes tutorial-target-pulse{0%,100%{filter:brightness(1);outline-color:rgba(222,169,76,.68)}50%{filter:brightness(1.24);outline-color:#ffe2a0}}
@media(max-width:760px){.tutorial-card{width:calc(100vw - 16px)}.tutorial-card>header{grid-template-columns:38px minmax(0,1fr) auto;padding:14px 14px 10px}.tutorial-sigil{width:36px;height:36px}.tutorial-card>header h2{font-size:18px}.tutorial-card>p{min-height:0;padding:13px 14px 8px;font-size:11px}.tutorial-card>footer{padding:10px 14px 14px}.tutorial-card>footer .btn{min-width:124px}.tutorial-progress{font-size:6px}}
@media(prefers-reduced-motion:reduce){.tutorial-spotlight,.tutorial-target-active,.tutorial-bandit-marker{animation:none!important;transition:none!important}}

/* Readability floor: semantic compact copy stays at 10px; normal UI copy starts at 12px. */
.font-floor-small{font-size:10px!important}
.font-floor-normal{font-size:12px!important}
@media(max-width:980px){:root{--sidebar:0px}}

/* v2.7.2 · top-layer notices, mobile map dossiers, and living NPC exchange. */
.toast-stack[popover]{
  inset:auto 18px 18px auto;
  margin:0;
  padding:0;
  overflow:visible;
  border:0;
  background:transparent;
  color:inherit;
}
.toast-stack[popover]:popover-open{display:grid}
.inventory-target-city{margin:8px 0 0!important;padding:8px 10px;border:1px solid rgba(199,146,79,.2);background:rgba(199,146,79,.06);color:#89928c!important;font-size:10px!important}
.inventory-target-city b{color:#cfb477}
.alliance-shared-report-row{grid-template-columns:minmax(0,1fr) 38px!important}
.npc-daily-ledger{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 11px;border:1px solid rgba(106,177,137,.28);background:linear-gradient(100deg,rgba(61,143,104,.1),rgba(4,10,11,.28));color:#83b99d}
.npc-daily-ledger.exhausted{border-color:rgba(199,88,77,.34);background:rgba(126,45,42,.09);color:#c96f66}
.npc-daily-ledger>.ui-icon{width:26px;height:26px}.npc-daily-ledger>span{display:grid;gap:2px}.npc-daily-ledger small{color:#75827b;font-size:10px;text-transform:uppercase}.npc-daily-ledger b{color:currentColor;font-size:12px}.npc-daily-ledger time{color:#747e78;font-size:10px;white-space:nowrap}
.npc-production-profile{grid-column:1/-1;display:grid;grid-template-columns:minmax(120px,.55fr) minmax(0,1fr);gap:10px;align-items:center;padding-top:10px;border-top:1px solid var(--line)}
.npc-production-profile>small{color:#78817c;font-size:10px;text-transform:uppercase}.npc-production-profile>div{display:grid;grid-template-columns:repeat(4,minmax(54px,1fr));gap:5px}
.npc-production-factor{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;padding:5px;border:1px solid rgba(218,194,146,.12);background:rgba(0,0,0,.14)}.npc-production-factor.specialty{border-color:rgba(199,146,79,.45);background:rgba(199,146,79,.09);box-shadow:inset 0 -2px rgba(199,146,79,.35)}.npc-production-factor .resource-glyph{width:20px;height:20px}.npc-production-factor small{color:#9ca39e;font-size:10px;white-space:nowrap}

@media(max-width:760px){
  .toast-stack[popover]{inset:auto 8px calc(72px + env(safe-area-inset-bottom)) auto}
  .map-inspector{
    position:fixed!important;
    z-index:1900!important;
    top:calc(var(--topbar) + 8px)!important;
    right:8px!important;
    bottom:calc(70px + env(safe-area-inset-bottom))!important;
    left:8px!important;
    width:auto!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  .map-inspector-scroll{height:100%;max-height:none!important;box-sizing:border-box;padding:18px 16px 22px!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}
  .map-inspector-scroll>.poi-inspector-visual,.map-inspector-scroll>.inspector-icon{margin-top:24px}
  .npc-daily-ledger{grid-template-columns:28px minmax(0,1fr)}.npc-daily-ledger time{grid-column:2;white-space:normal}
  .npc-production-profile{grid-template-columns:1fr}.npc-production-profile>div{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* v2.8.5 Dominion Atelier, quest actions, and immersive city panorama. */
.city-picker{width:clamp(174px,13vw,205px)!important;flex:0 0 clamp(174px,13vw,205px)!important;padding-inline:13px!important}
.language-switch.compact{min-width:46px!important;width:46px!important;margin-inline:5px 7px!important;padding:0 6px!important;font-size:11px!important;text-transform:none!important}

.quest-card{position:relative;grid-template-columns:58px minmax(0,1fr) minmax(170px,220px);align-items:stretch;padding:16px}.quest-card>.quest-icon{align-self:start}.quest-card>.quest-copy{align-self:center;min-width:0}.quest-card .quest-pin{position:absolute;z-index:2;top:10px;right:10px;width:34px;height:34px;border-color:rgba(199,146,79,.22);background:#11191b}.quest-card .quest-pin .ui-icon{width:20px;height:20px}.quest-card .quest-actions{display:flex;align-items:flex-end;align-self:stretch;width:100%;padding-top:42px}.quest-card .quest-actions>.btn{width:100%;min-height:42px}.quest-card.daily-blocked .quest-actions>.btn{border-color:rgba(102,173,133,.18);color:#75867d}

.city-immersive-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(275px,330px);gap:18px;margin-top:18px}.city-primary-view{min-width:0}.city-view-heading{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 16px}.city-view-heading>span{display:flex;align-items:center;gap:8px}.city-view-heading>span>.ui-icon{width:22px;height:22px}.city-view-heading>em{grid-column:1;color:#7f8882}.city-view-switch{grid-column:2;grid-row:1/3;display:flex;gap:5px}.city-view-switch button{display:flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid var(--line);background:rgba(0,0,0,.16);color:#858c87;font-size:10px;cursor:pointer}.city-view-switch button.active{border-color:var(--bronze);background:rgba(199,146,79,.12);color:var(--bronze-bright)}.city-view-switch .ui-icon{width:17px;height:17px}.city-panorama-panel{overflow:hidden}.city-panorama-scroll{overflow:hidden;background:#091011}.city-panorama{position:relative;isolation:isolate;aspect-ratio:3/2;min-height:480px;overflow:hidden;background-image:linear-gradient(to bottom,rgba(7,12,13,.05),rgba(6,10,11,.34)),var(--city-panorama);background-position:center;background-size:cover;box-shadow:inset 0 0 70px rgba(0,0,0,.5)}.city-panorama::before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 34%,rgba(5,9,10,.24) 86%),linear-gradient(to bottom,rgba(215,176,104,.05),transparent 35%)}.city-building-plot{position:absolute;z-index:2;left:var(--plot-x);top:var(--plot-y);display:grid;place-items:center;width:clamp(78px,8.4vw,126px);aspect-ratio:1;border:0;background:transparent;transform:translate(-50%,-50%) scale(var(--plot-scale));transform-origin:center;cursor:pointer;filter:drop-shadow(0 9px 7px rgba(0,0,0,.64));transition:filter .18s ease,transform .18s ease}.city-building-plot:hover,.city-building-plot:focus-visible{z-index:8;outline:0;transform:translate(-50%,-50%) scale(calc(var(--plot-scale) * 1.1));filter:drop-shadow(0 10px 7px rgba(0,0,0,.75)) drop-shadow(0 0 8px rgba(227,181,99,.75))}.city-building-plot .city-panorama-building{width:100%!important;height:100%!important;background-size:contain!important;background-position:center bottom!important;background-repeat:no-repeat!important}.city-building-plot.unbuilt .city-panorama-building{opacity:.28;filter:grayscale(.75) brightness(.7)}.city-building-plot.locked{filter:grayscale(.78) drop-shadow(0 7px 6px rgba(0,0,0,.65))}.city-building-plot>span{position:absolute;top:calc(100% - 10px);left:50%;display:flex;align-items:center;gap:5px;max-width:145px;padding:4px 7px;border:1px solid rgba(199,146,79,.28);background:rgba(8,14,15,.9);color:#d4c7ad;font-size:9px;line-height:1.1;white-space:nowrap;transform:translateX(-50%);box-shadow:0 4px 12px rgba(0,0,0,.35)}.city-building-plot>span>b{display:flex;align-items:center;color:var(--bronze-bright);font-size:9px}.city-building-plot>span .ui-icon{width:13px;height:13px}.city-panorama-caption{position:absolute;z-index:3;right:12px;bottom:11px;display:grid;min-width:110px;padding:8px 11px;border:1px solid rgba(199,146,79,.25);background:rgba(8,14,15,.82);text-align:right}.city-panorama-caption small{color:#7f8882;font-size:9px;text-transform:uppercase}.city-panorama-caption b{margin-top:2px;color:#cfbea0;font-family:Georgia,serif;font-weight:400}.city-ledger-panel>.building-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.city-side{display:grid;align-content:start;gap:14px}

.cosmetics-view{--atelier-gold:#d7b66d}.cosmetic-gem-balance{display:grid;grid-template-columns:34px auto;align-items:center;gap:0 8px;min-width:126px;padding:7px 12px;border:1px solid rgba(209,86,101,.34);background:linear-gradient(135deg,rgba(133,34,47,.17),rgba(17,22,23,.85))}.cosmetic-gem-balance .resource-glyph{grid-row:1/3;width:32px;height:32px}.cosmetic-gem-balance b{font-size:15px}.cosmetic-gem-balance small{color:#a7878d;font-size:9px}.cosmetic-set-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 22px}.cosmetic-set-card{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:14px;overflow:hidden;padding:17px;border:1px solid var(--line);background:linear-gradient(135deg,#172123,#101718)}.cosmetic-set-card.enlightened{border-color:rgba(211,176,91,.42);background:radial-gradient(circle at 78% 0,rgba(40,154,144,.16),transparent 38%),linear-gradient(135deg,#22251f,#101718)}.cosmetic-set-card>span{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(199,146,79,.35);background:rgba(199,146,79,.07)}.cosmetic-set-card>span .ui-icon{width:31px;height:31px}.cosmetic-set-card h3{margin:2px 0;color:#d7ccb6;font:400 22px Georgia,serif}.cosmetic-set-card p{margin:0;color:#828b85;font-size:11px}.cosmetic-set-card>strong{display:grid;text-align:right;color:var(--atelier-gold);font-size:17px}.cosmetic-set-card>strong small{color:#78817c;font-size:9px;font-weight:400}.cosmetic-set-card>i{position:absolute;right:0;bottom:0;left:0;height:2px;background:rgba(255,255,255,.04)}.cosmetic-set-card>i>i{display:block;height:100%;background:linear-gradient(90deg,#4c9b91,var(--atelier-gold))}.cosmetic-category{margin:0 0 30px}.cosmetic-category>header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 11px;padding:0 3px}.cosmetic-category>header>span{display:flex;align-items:center;gap:12px}.cosmetic-category>header .ui-icon{width:34px;height:34px}.cosmetic-category>header small{color:#9b7c4d;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.cosmetic-category h2{margin:2px 0;color:#d8cebb;font:400 24px Georgia,serif}.cosmetic-category p{margin:0;color:#7f8882;font-size:11px}.cosmetic-category>header>b{color:#a99570;font-size:12px}.cosmetic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:13px}.cosmetic-card{position:relative;display:grid;grid-template-rows:190px minmax(0,1fr) auto;min-height:430px;overflow:hidden;border:1px solid color-mix(in srgb,var(--rarity,#777) 35%,var(--line));background:linear-gradient(150deg,color-mix(in srgb,var(--rarity,#777) 8%,#182123),#0e1517 58%);box-shadow:inset 0 0 40px color-mix(in srgb,var(--rarity,#777) 5%,transparent)}.cosmetic-card.selected{border-color:color-mix(in srgb,var(--rarity,#c7924f) 78%,#f0dca9);box-shadow:inset 0 0 38px color-mix(in srgb,var(--rarity,#c7924f) 10%,transparent),0 0 0 1px rgba(199,146,79,.18)}.cosmetic-card.locked .cosmetic-preview>.asset-art{filter:grayscale(.62) brightness(.65)}.cosmetic-preview{position:relative;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--rarity,#777) 10%,transparent),transparent 57%),rgba(5,10,11,.36)}.cosmetic-preview>.asset-art{width:150px!important;height:150px!important;background-size:contain!important;background-position:center!important}.cosmetic-preview>.cosmetic-city-preview{width:120px!important;height:120px!important}.cosmetic-preview>.cosmetic-avatar-preview{width:140px!important;height:140px!important;border-radius:50%}.cosmetic-equipped{position:absolute;right:9px;bottom:9px;display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid rgba(98,183,149,.42);background:rgba(18,50,42,.9);color:#8bcfb0;font-size:9px;text-transform:uppercase}.cosmetic-equipped .ui-icon{width:15px;height:15px}.cosmetic-copy{display:flex;flex-direction:column;padding:15px}.cosmetic-copy>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.cosmetic-copy>header small{color:#9b7c4d;font-size:9px;text-transform:uppercase}.cosmetic-copy h3{margin:3px 0;color:#d5c9b3;font:400 19px/1.15 Georgia,serif}.cosmetic-copy>header em{font-size:9px}.cosmetic-copy>p{min-height:46px;margin:10px 0;color:#8a918c;font-size:11px;line-height:1.48}.cosmetic-card>footer{padding:0 15px 15px}.cosmetic-card>footer>.btn{width:100%;min-height:40px}.cosmetic-card>footer .resource-glyph{width:22px;height:22px}.cosmetic-unlocked{display:flex;align-items:center;gap:6px;margin-top:auto;color:#75bd9e;font-size:10px}.cosmetic-unlocked .ui-icon{width:18px;height:18px}.cosmetic-requirement{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;margin-top:auto;padding:9px;border:1px solid var(--line);background:rgba(0,0,0,.17)}.cosmetic-requirement>.ui-icon{width:21px;height:21px}.cosmetic-requirement>span{display:grid}.cosmetic-requirement b{color:#b7b09f;font-size:10px}.cosmetic-requirement small{color:#7e8681;font-size:9px}.cosmetic-requirement>i{grid-column:1/-1;height:2px;background:rgba(255,255,255,.05)}.cosmetic-requirement>i>i{display:block;height:100%;background:var(--bronze)}.cosmetic-requirement.met{border-color:rgba(97,176,142,.35)}.cosmetic-requirement.met>i>i{background:#62b18e}

[data-art-skin="enlightened"].modular-art,.modular-art[data-art-skin="enlightened"]{filter:sepia(.18) saturate(1.18) brightness(1.08) drop-shadow(0 0 6px rgba(71,189,174,.26)) drop-shadow(0 7px 6px rgba(0,0,0,.55))}.cosmetic-card[data-art-skin="enlightened"] .cosmetic-preview::after,.profile-appearances article[data-art-skin="enlightened"]::after{content:"";position:absolute;inset:8%;pointer-events:none;background:radial-gradient(circle,transparent 54%,rgba(70,199,184,.12) 55%,transparent 57%),conic-gradient(from 45deg,transparent 0 11%,rgba(224,188,94,.35) 12% 13%,transparent 14% 36%,rgba(224,188,94,.25) 37% 38%,transparent 39% 100%);clip-path:polygon(50% 0,85% 15%,100% 50%,85% 85%,50% 100%,15% 85%,0 50%,15% 15%)}
.profile-quick-view{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px}.profile-quick-view>.profile-avatar-art{width:96px!important;height:96px!important}.profile-quick-view small{color:#a28455;text-transform:uppercase}.profile-quick-view h3{margin:4px 0;color:#d7ccb8;font:400 24px Georgia,serif}.profile-quick-view p{margin:0;color:#8a918c;line-height:1.5}.profile-appearances>div{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.profile-appearances article{position:relative;display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:8px;overflow:hidden;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.14)}.profile-appearances .profile-appearance-art{width:68px!important;height:68px!important;background-size:contain!important}.profile-appearances article>span{display:grid;position:relative;z-index:1}.profile-appearances article small{color:#927b58;text-transform:uppercase}.profile-appearances article b{margin-top:3px;color:#cfc5b2;font-size:10px}

.map-marker.player-city-progress,.map-marker.player-city-progress.own,.map-marker.player-city-progress.friendly,.map-marker.player-city-progress.hostile{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;filter:drop-shadow(0 5px 4px rgba(0,0,0,.62))}.map-marker.player-city-progress::before,.map-marker.player-city-progress::after{display:none!important}.map-marker.player-city-progress .map-target-core{overflow:visible!important}.map-marker.player-city-progress .map-location-art{background-size:contain!important;background-position:center!important}.city-progress-badge{display:none!important}

/* v2.8.6 camera-relative POIs. Close cameras reveal readable settlements;
   realm-scale views remain compact enough for uncluttered navigation. */
.map-marker:not(.cargo-route-marker),.map-marker.site:not(.cargo-route-marker),.map-marker.fort:not(.cargo-route-marker){width:calc(44px * var(--map-marker-zoom,1));height:calc(44px * var(--map-marker-zoom,1))}
.map-marker.site.season_monster:not(.cargo-route-marker),.map-marker.site.sea_monster:not(.cargo-route-marker){width:calc(54px * var(--map-marker-zoom,1));height:calc(54px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-1{width:calc(39px * var(--map-marker-zoom,1));height:calc(39px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-2{width:calc(43px * var(--map-marker-zoom,1));height:calc(43px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-3{width:calc(48px * var(--map-marker-zoom,1));height:calc(48px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-4{width:calc(52px * var(--map-marker-zoom,1));height:calc(52px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-5{width:calc(56px * var(--map-marker-zoom,1));height:calc(56px * var(--map-marker-zoom,1))}
.map-label{transform:translate(-50%,calc(27px * var(--map-marker-zoom,1) + 7px))}
.world-map,.map-marker-layer,.map-marker,.map-label{-webkit-user-select:none;user-select:none}.map-marker{-webkit-user-drag:none}.map-marker.divine-shrine>.map-target-core{filter:drop-shadow(0 0 3px rgba(255,255,255,.82)) drop-shadow(0 0 8px rgba(238,246,255,.42))}.map-marker.alliance-aura>.map-target-core{filter:drop-shadow(0 0 6px rgba(90,224,151,.95)) drop-shadow(0 0 16px rgba(57,176,116,.72))}.map-marker.divine-shrine.alliance-aura>.map-target-core{filter:drop-shadow(0 0 3px rgba(255,255,255,.75)) drop-shadow(0 0 10px rgba(84,224,148,.72))}.privacy-consent{grid-template-columns:20px minmax(0,1fr)!important;align-items:start!important;gap:9px!important}.privacy-consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--bronze)}.privacy-consent span{line-height:1.45}.privacy-consent a{color:var(--bronze-bright);text-decoration:underline}.dynasty-modifier-ledger>span.negative,.dynasty-trait.negative{border-color:rgba(198,81,75,.38);color:#e89b91;background:rgba(139,48,45,.12)}.dynasty-trait.negative em{color:#ef857a}
.map-marker.active-movement-target .map-target-core{filter:brightness(1.08) drop-shadow(0 0 5px rgba(226,183,94,.55))}
.map-marker.active-movement-target::after{position:absolute;inset:-5px;display:block!important;border:0!important;background:linear-gradient(#e2b75e,#e2b75e) left top/9px 1px no-repeat,linear-gradient(#e2b75e,#e2b75e) left top/1px 9px no-repeat,linear-gradient(#e2b75e,#e2b75e) right bottom/9px 1px no-repeat,linear-gradient(#e2b75e,#e2b75e) right bottom/1px 9px no-repeat;box-shadow:none!important;content:"";pointer-events:none}

.admin-database-health{margin:0 0 18px;overflow:hidden}.admin-database-health>.section-heading>span{display:flex;align-items:center;gap:8px}.admin-database-health>.section-heading .ui-icon{width:21px;height:21px}.admin-database-health.healthy>.section-heading{border-bottom-color:rgba(91,183,145,.24)}.admin-database-health.healthy>.section-heading .ui-icon,.admin-database-health.healthy>.section-heading>em{color:#72bd9e}.admin-database-health.unhealthy>.section-heading .ui-icon,.admin-database-health.unhealthy>.section-heading>em{color:#df766c}.admin-database-ledger{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}.admin-database-ledger>article{display:grid;gap:4px;min-width:0;padding:13px 15px;background:#11191b}.admin-database-ledger small{color:#7d8781;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.admin-database-ledger b{overflow:hidden;color:#d5c9b3;font:400 16px Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.admin-database-ledger span{overflow:hidden;color:#77817b;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.admin-email-confirm,.admin-email-confirmed{align-items:center!important;padding:11px 12px;border:1px solid var(--line);background:rgba(0,0,0,.13)}.admin-email-confirm>span,.admin-email-confirmed>span{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:2px 8px}.admin-email-confirm .ui-icon,.admin-email-confirmed .ui-icon{grid-row:1/3;width:21px;height:21px}.admin-email-confirm small{color:#7e8882}.admin-email-confirmed{border-color:rgba(91,183,145,.28);color:#7cc4a5}
.cosmetic-requirement.premium{grid-template-columns:30px minmax(0,1fr);border-color:rgba(95,176,215,.3);background:linear-gradient(90deg,rgba(39,95,119,.2),rgba(0,0,0,.12))}.cosmetic-requirement.premium>.resource-glyph{width:27px;height:27px;margin:0;filter:drop-shadow(0 0 6px rgba(88,189,222,.34))}.cosmetic-requirement.premium>span{display:grid;gap:2px}.cosmetic-requirement.premium b{color:#8bd7ec}.cosmetic-requirement.premium small{color:#92a9ab}
@media(max-width:760px){.admin-database-ledger{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:1480px){.city-immersive-layout{grid-template-columns:minmax(0,1fr) 285px}.city-panorama{min-height:420px}.city-picker{width:190px!important;flex-basis:190px!important}}
@media(max-width:1100px){.city-immersive-layout{grid-template-columns:1fr}.city-side{grid-template-columns:repeat(3,minmax(0,1fr))}.city-side>.panel{min-width:0}.city-panorama{min-height:500px}.cosmetic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.city-picker{width:185px!important;min-width:115px!important;max-width:185px!important;flex:0 1 185px!important}.resource-chip.account-resource[data-resource="silver"]{display:flex!important;min-width:66px;padding:0 7px}.resource-chip.account-resource[data-resource="silver"] .resource-glyph{width:25px;height:25px}.language-switch.compact{min-width:42px!important;width:42px!important;margin-inline:2px 4px!important}.quest-card{grid-template-columns:52px minmax(0,1fr);padding:14px}.quest-card>.quest-copy{padding-right:26px}.quest-card .quest-actions{grid-column:1/-1;padding-top:2px}.city-view-heading{grid-template-columns:1fr}.city-view-heading>em{grid-column:1}.city-view-switch{grid-column:1;grid-row:auto;width:100%;margin-top:7px}.city-view-switch button{flex:1;justify-content:center}.city-panorama-scroll{overflow-x:auto;overscroll-behavior-inline:contain}.city-panorama{width:780px;min-height:520px}.city-side{grid-template-columns:1fr}.city-ledger-panel>.building-grid{grid-template-columns:1fr}.cosmetic-set-overview,.cosmetic-grid{grid-template-columns:1fr}.cosmetic-set-card{grid-template-columns:48px minmax(0,1fr)}.cosmetic-set-card>strong{grid-column:2;text-align:left}.profile-appearances>div{grid-template-columns:1fr}}
@media(max-width:430px){.city-picker{width:120px!important;min-width:100px!important;max-width:120px!important;flex-basis:120px!important}.resource-chip.account-resource[data-resource="silver"],.resource-chip.account-resource[data-resource="gems"]{min-width:58px;padding-inline:4px}.quest-card{padding:13px}.quest-card .quest-pin{top:8px;right:8px}.city-panorama{width:700px}.cosmetic-card{min-height:410px}.cosmetic-category>header{align-items:flex-start}.cosmetic-category>header>span>.ui-icon{display:none}.profile-quick-view{grid-template-columns:74px minmax(0,1fr)}.profile-quick-view>.profile-avatar-art{width:74px!important;height:74px!important}}

/* v2.8.7: image-only city panorama and persistent administrator placement. */
.city-building-plot{z-index:var(--plot-z,2);width:clamp(74px,8.1vw,120px);border:0!important;background:transparent!important;box-shadow:none!important}.city-building-plot:hover,.city-building-plot:focus-visible{z-index:90;transform:translate(-50%,-50%) scale(calc(var(--plot-scale) * 1.08))}.city-building-plot .city-panorama-building{display:block;width:100%!important;height:100%!important;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important}.city-building-plot>span,.city-panorama-caption{display:none!important}.queue-mini.hero-task{border-left:2px solid rgba(111,187,173,.45)}
.admin-panorama-lab{overflow:hidden}.admin-panorama-form{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);min-height:620px}.admin-panorama-controls{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:12px;padding:18px;border-right:1px solid var(--line);background:rgba(5,10,11,.2)}.admin-panorama-controls .full{grid-column:1/-1}.admin-panorama-controls label>span{display:flex;justify-content:space-between;gap:8px}.admin-panorama-controls label b{color:var(--bronze-bright);font-weight:600}.admin-panorama-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px}.admin-panorama-stage{position:relative;isolation:isolate;min-height:620px;overflow:hidden;touch-action:none;background-image:linear-gradient(to bottom,rgba(7,12,13,.02),rgba(6,10,11,.24)),var(--city-panorama);background-position:center;background-size:cover;box-shadow:inset 0 0 70px rgba(0,0,0,.44)}.admin-panorama-stage::after{content:"";position:absolute;z-index:200;inset:8%;pointer-events:none;border:1px dashed rgba(199,146,79,.2)}.admin-panorama-building{position:absolute;z-index:var(--plot-z);left:var(--plot-x);top:var(--plot-y);display:grid;place-items:center;width:clamp(76px,8vw,122px);aspect-ratio:1;padding:0;border:0;background:transparent;transform:translate(-50%,-50%) scale(var(--plot-scale));filter:drop-shadow(0 8px 6px rgba(0,0,0,.64));cursor:pointer}.admin-panorama-building .admin-panorama-art{width:100%!important;height:100%!important;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important}.admin-panorama-building.selected{outline:1px dashed rgba(231,187,106,.78);outline-offset:7px;filter:drop-shadow(0 8px 6px rgba(0,0,0,.7)) drop-shadow(0 0 8px rgba(62,185,166,.68));cursor:grab}.admin-panorama-building.selected:active{cursor:grabbing}.admin-panorama-controls .terrain-note{display:flex;align-items:flex-start;gap:8px}.admin-panorama-controls .terrain-note>.ui-icon{flex:0 0 20px;width:20px;height:20px}
@media(max-width:980px){.admin-panorama-form{grid-template-columns:1fr}.admin-panorama-controls{border-right:0;border-bottom:1px solid var(--line)}.admin-panorama-stage{min-height:520px}}
@media(max-width:620px){.admin-panorama-controls{grid-template-columns:1fr}.admin-panorama-controls .full{grid-column:auto}.admin-panorama-stage{min-height:430px}.admin-panorama-actions{grid-template-columns:1fr}}

/* v2.8.7: protected rulers, fresh intelligence, and touch-safe close-map markers. */
.map-marker:not(.cargo-route-marker),.map-marker.site:not(.cargo-route-marker),.map-marker.fort:not(.cargo-route-marker),.map-marker.site.season_monster:not(.cargo-route-marker){transform:translate(calc(-50% + var(--marker-offset-x,0px)),calc(-50% + var(--marker-offset-y,0px)))}
.map-marker:not(.cargo-route-marker):hover,.map-marker:not(.cargo-route-marker).selected,.map-marker.site:not(.cargo-route-marker):hover,.map-marker.site:not(.cargo-route-marker).selected,.map-marker.site.season_monster:not(.cargo-route-marker):hover,.map-marker.site.season_monster:not(.cargo-route-marker).selected{transform:translate(calc(-50% + var(--marker-offset-x,0px)),calc(-50% + var(--marker-offset-y,0px))) scale(1.1)}
.map-marker.newcomer-protected:not(.cargo-route-marker){filter:drop-shadow(0 0 6px rgba(83,190,215,.98)) drop-shadow(0 0 14px rgba(74,143,213,.72))!important}
.map-marker.newcomer-protected:not(.cargo-route-marker):hover,.map-marker.newcomer-protected:not(.cargo-route-marker).selected{filter:brightness(1.12) drop-shadow(0 0 8px rgba(102,215,230,1)) drop-shadow(0 0 18px rgba(74,143,213,.78))!important}
.newcomer-shield{position:absolute;z-index:8;right:-7px;top:-8px;display:grid;place-items:center;width:20px;height:20px;border:1px solid rgba(161,229,238,.78);border-radius:50%;background:#15313a;color:#9de1e6;box-shadow:0 0 8px rgba(94,196,217,.8);pointer-events:none;animation:newcomer-shield-pulse 2.2s ease-in-out infinite}.newcomer-shield .ui-icon{width:13px!important;height:13px!important;transform:none!important}
.newcomer-shield-timer{position:absolute;z-index:8;left:50%;top:-19px;min-width:48px;transform:translateX(-50%);padding:2px 5px;border:1px solid rgba(139,200,239,.52);border-radius:9px;background:rgba(10,29,42,.92);color:#bce7ff;font-size:10px;font-style:normal;font-variant-numeric:tabular-nums;line-height:1.2;text-align:center;white-space:nowrap;box-shadow:0 0 10px rgba(89,164,224,.38);pointer-events:none}
@keyframes newcomer-shield-pulse{50%{box-shadow:0 0 13px rgba(112,216,232,1);color:#d4fbff}}
.newcomer-protection-card{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;margin:10px 0;padding:10px 11px;border:1px solid rgba(99,192,214,.38);background:linear-gradient(105deg,rgba(34,111,133,.2),rgba(7,16,18,.28));box-shadow:inset 3px 0 rgba(98,199,220,.52)}.newcomer-protection-card>.ui-icon{width:30px;height:30px;color:#8fd9e5}.newcomer-protection-card>div{display:grid;gap:2px}.newcomer-protection-card small,.site-intelligence-age small{color:#7f9698;font-size:10px;text-transform:uppercase}.newcomer-protection-card b{color:#b7edf1;font-size:13px}.newcomer-protection-card p{margin:2px 0 0;color:#88a0a1;font-size:10px;line-height:1.35}
.site-intelligence-age{display:flex;align-items:center;gap:9px;margin:10px 0;padding:8px 10px;border:1px solid rgba(93,164,148,.3);background:rgba(51,117,102,.1)}.site-intelligence-age>.ui-icon{width:24px;height:24px;color:#70bba6}.site-intelligence-age>span{display:grid;gap:1px}.site-intelligence-age b{color:#9dc9b9;font-size:11px}.site-intelligence-hidden{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;margin:11px 0;padding:12px;border:1px solid rgba(155,120,87,.3);background:linear-gradient(100deg,rgba(88,58,37,.15),rgba(4,9,10,.2))}.site-intelligence-hidden>.ui-icon{width:34px;height:34px;color:#a17c5f}.site-intelligence-hidden h3{margin:0 0 3px;color:#c7b294;font:400 15px Georgia,serif}.site-intelligence-hidden p{margin:0;color:#828985;font-size:10px;line-height:1.42}
.mission-guaranteed-xp{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:9px;margin:11px 0;padding:10px 12px;border:1px solid rgba(87,179,148,.42);background:linear-gradient(100deg,rgba(46,128,98,.16),rgba(4,10,11,.2));color:#83c8a9}.mission-guaranteed-xp>.value-glyph,.mission-guaranteed-xp>.resource-glyph{width:30px;height:30px}.mission-guaranteed-xp>span{display:grid}.mission-guaranteed-xp small{color:#80a395;font-size:10px;text-transform:uppercase}.mission-guaranteed-xp b{color:#9ce0be;font-size:14px}
.hero-xp-ledger{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;margin:14px 0;padding:11px 13px;border:1px solid rgba(87,179,148,.4);background:rgba(46,128,98,.12)}.hero-xp-ledger>.ui-icon{width:31px;height:31px;color:#83c8a9}.hero-xp-ledger>span{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2px 12px}.hero-xp-ledger small{grid-column:1/-1;color:#80a395;font-size:10px;text-transform:uppercase}.hero-xp-ledger b{color:#9ce0be;font-size:15px}.hero-xp-ledger em{color:#83908a;font-size:10px;font-style:normal}
.mission-roll-ledger{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;margin:10px 0 14px;padding:10px 13px;border:1px solid rgba(93,132,126,.38);background:rgba(16,31,31,.72)}.mission-roll-ledger>.ui-icon{width:30px;height:30px;color:#c99a4b}.mission-roll-ledger>span{display:grid;gap:2px}.mission-roll-ledger small{color:#82938d;font-size:10px;text-transform:uppercase}.mission-roll-ledger b{color:#d9cfb2;font-size:12px}.mission-roll-ledger em{color:#82938d;font-size:10px;font-style:normal}.mission-roll-ledger.success{border-color:rgba(87,179,148,.45);background:rgba(46,128,98,.10)}.mission-roll-ledger.failed{border-color:rgba(181,76,63,.42);background:rgba(112,39,31,.10)}
@media(max-width:760px){.map-marker:not(.cargo-route-marker){min-width:34px;min-height:34px}.newcomer-shield{right:-9px;top:-9px;width:22px;height:22px}.map-label{max-width:128px;overflow:hidden;text-overflow:ellipsis}.map-inspector-actions{display:grid;grid-template-columns:1fr}.map-inspector-actions>.btn{min-height:42px}}

/* v2.9: authoritative city modifier ledger, active enchantments, and remote magic. */
.city-modifier-summary{display:flex;align-items:center;flex-wrap:wrap;gap:5px;width:max-content;max-width:100%;margin-top:10px;padding:6px;border:1px solid rgba(196,150,83,.28);background:rgba(4,10,11,.5);color:#a5aca5;text-align:left}.city-modifier-summary>span{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:3px 6px;border:1px solid rgba(120,132,125,.2);background:rgba(17,27,28,.72)}.city-modifier-summary .resource-glyph,.city-modifier-summary .modifier-icon{display:grid;place-items:center;width:18px!important;height:18px!important}.city-modifier-summary .modifier-icon .ui-icon{width:16px;height:16px}.city-modifier-summary b{color:#d6c5a4;font-size:10px;font-variant-numeric:tabular-nums}.city-modifier-summary>em{display:inline-flex;align-items:center;gap:4px;padding-inline:5px;color:#a98551;font-size:10px;font-style:normal}.city-modifier-summary>em .ui-icon{width:14px;height:14px}.city-modifier-summary:hover,.city-modifier-summary:focus-visible{border-color:rgba(221,172,96,.65);background:rgba(17,28,28,.84)}
.city-modifier-modal{width:min(780px,calc(100vw - 24px))}.city-modifier-ledger>p{margin:0 0 14px;color:#89928c;line-height:1.5}.modifier-ledger-row{display:grid;grid-template-columns:minmax(155px,205px) minmax(0,1fr);border:1px solid var(--line);border-bottom:0;background:rgba(5,11,12,.2)}.modifier-ledger-row:last-child{border-bottom:1px solid var(--line)}.modifier-ledger-row>header{display:flex;align-items:center;gap:10px;padding:12px;border-right:1px solid var(--line);background:rgba(21,31,32,.72)}.modifier-ledger-row>header>.resource-glyph,.modifier-ledger-row>header>.modifier-icon{display:grid;place-items:center;flex:0 0 32px;width:32px!important;height:32px!important}.modifier-ledger-row>header>.modifier-icon .ui-icon{width:27px;height:27px}.modifier-ledger-row>header>span{display:grid;gap:3px}.modifier-ledger-row>header small{color:#82908a;font-size:10px;text-transform:uppercase}.modifier-ledger-row>header b{color:#e0c894;font:400 19px Georgia,serif}.modifier-ledger-row>div{display:grid;align-content:center;gap:1px;padding:5px}.modifier-source{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 9px;background:rgba(20,29,30,.62)}.modifier-source>span{display:grid;grid-template-columns:22px minmax(0,1fr);gap:1px 7px;min-width:0}.modifier-source>span>.ui-icon{grid-row:1/3;width:20px;height:20px}.modifier-source b{overflow:hidden;color:#beb9aa;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.modifier-source small{color:#74817b;font-size:10px}.modifier-source strong{font-size:11px}.modifier-source.positive strong{color:#74c09a}.modifier-source.negative strong{color:#db746b}.modifier-source time{min-width:54px;color:#b69a67;font-size:10px;text-align:right}.modifier-base{padding:9px;color:#6f7a74;font-size:10px}
.active-spell-overview{margin-bottom:24px}.active-spell-overview>.section-heading>span{display:flex;align-items:center;gap:8px}.active-spell-overview>.section-heading .ui-icon{width:20px;height:20px}.active-spell-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px}.active-spell-grid>.empty-state{grid-column:1/-1}.active-spell-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:78px;padding:11px;border:1px solid rgba(91,169,142,.28);background:linear-gradient(100deg,rgba(42,105,88,.14),rgba(5,11,12,.22));box-shadow:inset 2px 0 rgba(90,185,148,.45)}.active-spell-card.malus{border-color:rgba(187,78,72,.35);background:linear-gradient(100deg,rgba(115,43,40,.19),rgba(5,11,12,.22));box-shadow:inset 2px 0 rgba(213,91,81,.55)}.active-spell-emblem{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(193,151,83,.28);background:#10191a;color:#d0a75f}.active-spell-emblem .ui-icon{width:28px;height:28px}.active-spell-card>div{min-width:0}.active-spell-card small{color:#788780;font-size:10px;text-transform:uppercase}.active-spell-card h3{margin:2px 0 6px;color:#d7c8ad;font:400 16px Georgia,serif}.active-spell-card>time{color:#d0a75f;font-size:11px;font-variant-numeric:tabular-nums}.active-spell-card em{display:block;margin-top:5px;color:#bd6f68;font-size:10px;font-style:normal}.spell-catalog-heading{display:flex;justify-content:space-between;gap:12px;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.spell-catalog-heading>span{color:#c8aa73;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.spell-catalog-heading>small{color:#77827c;font-size:10px}.spell-card.hostile-spell{border-color:rgba(159,70,64,.38)}.spell-modifier-chips{display:flex;flex-wrap:wrap;gap:5px}.spell-modifier-chips>span{display:inline-grid;grid-template-columns:17px minmax(0,1fr) auto;align-items:center;gap:4px;padding:4px 6px;border:1px solid currentColor;background:rgba(0,0,0,.14);font-size:10px}.spell-modifier-chips .ui-icon{width:15px;height:15px}.spell-modifier-chips b{font-weight:500}.spell-modifier-chips em{font-style:normal;font-weight:700}.spell-modifier-chips .positive{color:#72bd91}.spell-modifier-chips .negative{color:#d36e64}.spell-modifier-chips.large{margin:12px 0}.spell-modifier-chips.large>span{padding:7px 9px}.spell-cast-ledger{margin-top:15px}.spell-cast-ledger>p{margin:8px 0 0;color:#7e8983;font-size:10px}
.map-spell-modal{width:min(780px,calc(100vw - 20px))}.map-spell-target,.spell-selected-target{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:13px;margin-bottom:14px;padding:10px;border:1px solid rgba(194,148,80,.3);background:linear-gradient(100deg,rgba(68,52,30,.18),rgba(4,9,10,.14))}.map-spell-target-art,.spell-target-art{width:82px!important;height:82px!important;background-size:contain!important}.map-spell-target span,.spell-selected-target span{display:grid;gap:3px}.map-spell-target small,.spell-selected-target small{color:#9a7e50;font-size:10px;text-transform:uppercase}.map-spell-target h3,.spell-selected-target b{margin:0;color:#dfccb0;font:400 20px Georgia,serif}.map-spell-target p{margin:2px 0 0;color:#82908a;font-size:10px;line-height:1.45}.spell-selected-target em{color:#89938d;font-size:10px;font-style:normal}.map-spell-options{display:grid;gap:7px}.map-spell-option{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);background:#11191a}.map-spell-option.hostile{border-color:rgba(158,70,65,.35);background:linear-gradient(90deg,rgba(102,38,35,.14),#11191a 48%)}.map-spell-option>span{display:grid;place-items:center;width:38px;height:38px;color:#c89951}.map-spell-option>span .ui-icon{width:29px;height:29px}.map-spell-option h3{margin:2px 0;color:#d2c4ab;font:400 16px Georgia,serif}.map-spell-option p{margin:3px 0 6px;color:#7d8983;font-size:10px;line-height:1.35}.map-spell-option small,.map-spell-option em{color:#88795f;font-size:10px;font-style:normal}.map-spell-option time{display:inline-block;margin-left:8px;color:#c39c60;font-size:10px}.map-spell-option strong{display:flex;align-items:center;gap:5px;margin-top:5px;color:#d0746b;font-size:10px}.map-spell-option strong .ui-icon{width:16px;height:16px}.spell-map-guidance{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:14px;padding:15px;border:1px solid rgba(189,143,75,.3);background:rgba(76,53,25,.13)}.spell-map-guidance>.ui-icon{width:48px;height:48px;color:#c59a56}.spell-map-guidance h3{margin:0 0 5px;color:#d7c5a6;font:400 19px Georgia,serif}.spell-map-guidance p{margin:0;color:#86918a;line-height:1.5}
.recruit-controls{align-items:end}.recruit-unlocked-filter{display:flex;align-items:center;gap:8px;min-height:48px;padding:7px 10px;border:1px solid var(--line);background:#11191a;color:#808b85;text-align:left}.recruit-unlocked-filter.active{border-color:rgba(99,180,147,.52);background:rgba(48,113,88,.16);color:#7dc29f}.recruit-unlocked-filter>.ui-icon{width:24px;height:24px}.recruit-unlocked-filter>span{display:grid;gap:2px}.recruit-unlocked-filter b{font-size:10px}.recruit-unlocked-filter small{font-size:10px}.recruit-unit-card{position:relative}.recruit-owned-count{position:absolute;z-index:2;top:9px;right:9px;display:grid;grid-template-columns:18px auto;align-items:center;gap:0 4px;min-width:42px;padding:4px 6px;border:1px solid rgba(196,151,82,.3);background:rgba(8,14,15,.9);color:#d4ab62}.recruit-owned-count>.ui-icon{grid-row:1/3;width:17px;height:17px}.recruit-owned-count b{font-size:11px}.recruit-owned-count small{grid-column:2;color:#7d8a84;font-size:9px}
@media(max-width:760px){.city-modifier-summary{width:100%}.city-modifier-summary>span{flex:1 0 66px;justify-content:center}.city-modifier-summary>em{width:100%;justify-content:center}.modifier-ledger-row{grid-template-columns:1fr}.modifier-ledger-row>header{border-right:0;border-bottom:1px solid var(--line)}.modifier-source{grid-template-columns:minmax(0,1fr) auto}.modifier-source time{grid-column:1/-1;text-align:left}.active-spell-grid{grid-template-columns:1fr}.spell-catalog-heading{align-items:flex-start;flex-direction:column}.map-spell-option{grid-template-columns:36px minmax(0,1fr)}.map-spell-option>.btn{grid-column:1/-1;width:100%}.map-spell-target,.spell-selected-target{grid-template-columns:64px minmax(0,1fr)}.map-spell-target-art,.spell-target-art{width:62px!important;height:62px!important}.recruit-controls{grid-template-columns:1fr}.recruit-unlocked-filter{width:100%}}

/* v2.9.1 · responsive command surfaces and cross-feature layout isolation. */
.forum-thread-row .message-item{
  display:block!important;
  grid-template-columns:none!important;
  min-width:0;
}
.forum-thread-row .message-item h3{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  line-height:1.35;
}
.forum-thread-row .message-item p{overflow-wrap:anywhere}
.message-item-copy h3{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:anywhere;
}
.table-scroll{
  max-width:100%;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}
.map-layout{padding-top:48px}
.map-panel-toggles{
  top:6px;
  right:8px;
  left:auto;
  transform:none;
}
.map-inspector{
  top:64px!important;
  max-height:calc(100% - 80px)!important;
}

@media(max-width:760px){
  .movement-route h3{
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
    line-height:1.35;
  }
  .report-open h3{
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
    line-height:1.35;
  }
  .map-panel-toggles{
    top:6px;
    right:8px;
    left:auto;
    transform:none;
  }
  .map-panel-toggle{width:38px;height:36px}
  .map-inspector{
    top:auto!important;
    height:min(62dvh,470px)!important;
    max-height:min(62%,470px)!important;
  }
  .map-inspector-scroll{
    height:100%!important;
    max-height:100%!important;
    overflow-y:auto!important;
  }
}

@media(max-width:430px){
  .topbar .mobile-menu{
    width:35px!important;
    min-width:35px!important;
    flex:0 0 35px!important;
  }
  .city-picker{
    width:88px!important;
    min-width:72px!important;
    max-width:88px!important;
    flex:0 1 88px!important;
    padding-inline:7px!important;
  }
  .city-picker small{display:none}
  .city-picker b{font-size:12px!important}
  .resource-bar{flex:0 0 auto;min-width:0;overflow:visible}
  .resource-chip.account-resource{
    width:auto!important;
    min-width:0!important;
    gap:3px!important;
    padding-inline:3px!important;
  }
  .resource-chip.account-resource .resource-glyph{
    width:21px!important;
    height:21px!important;
    min-width:21px!important;
  }
  .resource-chip.account-resource b{font-size:11px!important}
  .top-actions{flex:0 0 auto;min-width:0;margin-left:auto}
  .language-switch.compact{
    width:34px!important;
    min-width:34px!important;
    margin-inline:1px!important;
    padding:0 3px!important;
  }
  .top-actions>.icon-button{
    width:38px!important;
    min-width:38px!important;
  }
}

@media(max-width:360px){
  .city-picker{
    width:64px!important;
    min-width:56px!important;
    max-width:64px!important;
    flex-basis:64px!important;
  }
  .resource-chip.account-resource .resource-glyph{
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
  }
  .resource-chip.account-resource b{font-size:10px!important}
  .language-switch.compact{width:32px!important;min-width:32px!important}
  .top-actions>.icon-button{width:34px!important;min-width:34px!important}
}

/* v2.9.2 · Dryad Covenant premium cosmetic identity. */
.cosmetic-set-overview{grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr))}
.cosmetic-preview>.asset-art.modular-art.building-art.cosmetic-building-preview{
  position:static!important;
  inset:auto!important;
  right:auto!important;
  bottom:auto!important;
  transform:none!important;
  background-position:center!important;
  background-size:contain!important;
}
.cosmetic-set-card.dryad{
  border-color:rgba(111,151,72,.48);
  background:
    radial-gradient(circle at 80% 0,rgba(79,135,72,.2),transparent 40%),
    radial-gradient(circle at 6% 100%,rgba(172,111,38,.12),transparent 38%),
    linear-gradient(135deg,#17231b,#0d1512 62%,#151711);
}
.cosmetic-set-card.dryad>span{
  border-color:rgba(127,165,81,.42);
  background:radial-gradient(circle,rgba(101,155,77,.18),rgba(30,45,31,.3));
}
.cosmetic-set-card.dryad>i>i{background:linear-gradient(90deg,#547a47,#c0893e)}
[data-art-skin="dryad"].modular-art,.modular-art[data-art-skin="dryad"]{
  filter:saturate(1.06) contrast(1.03) drop-shadow(0 0 5px rgba(86,142,72,.18)) drop-shadow(0 8px 6px rgba(0,0,0,.58));
}
.cosmetic-card[data-art-skin="dryad"] .cosmetic-preview{
  background:
    radial-gradient(circle at 50% 52%,rgba(92,142,69,.16),transparent 52%),
    linear-gradient(155deg,rgba(31,48,34,.62),rgba(7,13,11,.82));
}
.cosmetic-card[data-art-skin="dryad"] .cosmetic-preview::after,
.profile-appearances article[data-art-skin="dryad"]::after{
  content:"";
  position:absolute;
  inset:6%;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 100%,rgba(191,126,47,.13),transparent 40%),
    radial-gradient(circle at 50% 48%,transparent 57%,rgba(92,151,77,.13) 58%,transparent 61%);
  clip-path:polygon(50% 0,64% 12%,80% 9%,88% 27%,100% 40%,91% 57%,94% 78%,72% 83%,50% 100%,28% 83%,6% 78%,9% 57%,0 40%,12% 27%,20% 9%,36% 12%);
}
@media(max-width:430px){
  .cosmetic-copy>header{display:grid;grid-template-columns:minmax(0,1fr);gap:5px}
  .cosmetic-copy>header em{justify-self:start;white-space:nowrap}
}

/* v2.9.2 atelier fixes: transparent modular buildings and persisted rotation. */
.city-building-plot{
  transform:translate(-50%,-50%) rotate(var(--plot-rotation,0deg)) scale(var(--plot-scale));
}
.city-building-plot:hover,.city-building-plot:focus-visible{
  transform:translate(-50%,-50%) rotate(var(--plot-rotation,0deg)) scale(calc(var(--plot-scale) * 1.08));
}
.city-building-plot .asset-art.modular-art.building-art.city-panorama-building,
.admin-panorama-building .asset-art.modular-art.building-art.admin-panorama-art{
  position:static!important;
  inset:auto!important;
  right:auto!important;
  bottom:auto!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  background-color:transparent!important;
  background-image:var(--asset-image)!important;
  background-position:center!important;
  background-size:contain!important;
  background-repeat:no-repeat!important;
  max-width:none!important;
  padding:0!important;
  border:0!important;
  color:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}
.admin-panorama-building{
  transform:translate(-50%,-50%) rotate(var(--plot-rotation,0deg)) scale(var(--plot-scale));
}
.admin-gem-grant{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(110px,.45fr);
  gap:10px;
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(174,70,91,.35);
  background:linear-gradient(145deg,rgba(105,33,52,.16),rgba(5,11,12,.38));
}
.admin-gem-grant>header,.admin-gem-grant>.full{grid-column:1/-1}
.admin-gem-grant>header{display:flex;align-items:center;gap:9px;color:#d6c6bd}
.admin-gem-grant>header .resource-glyph{width:28px;height:28px}
.admin-gem-grant>header span{display:grid}
.admin-gem-grant>header small{color:#9b747e;font-size:10px}
@media(max-width:620px){.admin-gem-grant{grid-template-columns:1fr}}

/* v2.9.2 world anchoring and panorama coordinate parity. */
.map-marker:not(.cargo-route-marker),
.map-marker.site:not(.cargo-route-marker),
.map-marker.fort:not(.cargo-route-marker),
.map-marker.site.season_monster:not(.cargo-route-marker){
  transform:translate(-50%,-50%)!important;
}
.map-marker:not(.cargo-route-marker):hover,
.map-marker:not(.cargo-route-marker).selected,
.map-marker.site:not(.cargo-route-marker):hover,
.map-marker.site:not(.cargo-route-marker).selected,
.map-marker.site.season_monster:not(.cargo-route-marker):hover,
.map-marker.site.season_monster:not(.cargo-route-marker).selected{
  transform:translate(-50%,-50%) scale(1.1)!important;
}
.city-panorama,
.admin-panorama-stage{
  width:100%;
  min-height:0!important;
  aspect-ratio:3/2;
  align-self:start;
  background-image:linear-gradient(to bottom,rgba(7,12,13,.05),rgba(6,10,11,.34)),var(--city-panorama);
  background-position:center;
  background-size:cover;
  box-shadow:inset 0 0 70px rgba(0,0,0,.5);
}
.admin-panorama-stage::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:radial-gradient(ellipse at 50% 45%,transparent 34%,rgba(5,9,10,.24) 86%),linear-gradient(to bottom,rgba(215,176,104,.05),transparent 35%);
}
.city-building-plot,
.admin-panorama-building{
  width:15.4%!important;
  filter:none!important;
  box-shadow:none!important;
}
.city-building-plot:hover,
.city-building-plot:focus-visible,
.admin-panorama-building.selected{
  filter:brightness(1.08)!important;
  box-shadow:none!important;
}
.city-building-plot.locked{filter:grayscale(.78)!important}

.building-card .asset-art.modular-art.building-art.building-card-art{
  position:absolute!important;
  inset:10px auto auto 50%!important;
  right:auto!important;
  bottom:auto!important;
  width:min(156px,52%)!important;
  height:auto!important;
  aspect-ratio:1;
  background-color:transparent!important;
  background-image:var(--asset-image)!important;
  background-position:center!important;
  background-size:contain!important;
  background-repeat:no-repeat!important;
  box-shadow:none!important;
  filter:none!important;
  transform:translateX(-50%)!important;
}
.building-card:hover .asset-art.modular-art.building-art.building-card-art{
  filter:none!important;
  transform:translateX(-50%)!important;
}
.building-card .asset-art.modular-art.building-art.building-card-art::after{display:none!important}

/* v2.9.2 maintenance · mission clarity, compact ledgers, and Ember Path cards. */
.map-marker.player-city-progress,
.map-marker.player-city-progress.own,
.map-marker.player-city-progress.friendly,
.map-marker.player-city-progress.hostile{
  filter:none!important;
  box-shadow:none!important;
}

.hero-skill-points{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:34px auto minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-height:48px;
  padding:7px 10px;
  border:1px solid var(--line);
  background:rgba(5,11,12,.32);
}
.hero-skill-points>.ui-icon{width:28px;height:28px;color:#707b75}
.hero-skill-points>span{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 7px}
.hero-skill-points small{grid-column:1;color:#7d8982;font-size:10px;text-transform:uppercase}
.hero-skill-points b{grid-column:2;grid-row:1;color:#858f89;font:400 24px Georgia,serif}
.hero-skill-points em{justify-self:end;color:#737f79;font-size:10px;font-style:normal;text-align:right}
.hero-skill-points.available{
  border-color:rgba(216,166,82,.58);
  background:linear-gradient(100deg,rgba(150,98,31,.2),rgba(8,15,16,.42));
  box-shadow:inset 3px 0 #d7a44f,0 0 18px rgba(190,129,42,.09);
}
.hero-skill-points.available>.ui-icon,.hero-skill-points.available b{color:#efbd67}
.hero-skill-points.available small{color:#c99c54}
.skill.trainable{border-color:rgba(207,155,76,.42);background:rgba(130,84,26,.11)}
.skill.trainable .skill-plus{box-shadow:0 0 0 3px rgba(199,146,79,.1),0 0 12px rgba(222,164,74,.22);animation:skill-point-pulse 1.8s ease-in-out infinite}
@keyframes skill-point-pulse{50%{box-shadow:0 0 0 5px rgba(199,146,79,.04),0 0 18px rgba(222,164,74,.38)}}

.active-spell-overview{margin-bottom:12px;overflow:hidden}
.active-spell-overview>.section-heading{min-height:31px;padding:7px 11px}
.active-spell-overview>.section-heading>span{font-size:10px}
.active-spell-overview>.section-heading em{min-width:18px;height:18px}
.active-spell-grid{
  display:flex;
  grid-template-columns:none;
  gap:6px;
  padding:7px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
}

/* v2.9.4 command planning and compact scout intelligence ledgers. */
.dispatch-force-zones.single-zone{grid-template-columns:minmax(0,1fr)}
.dispatch-force-zone .army-input{grid-template-columns:58px minmax(0,1fr) 82px;min-height:116px;align-items:center;padding:8px}
.dispatch-force-zone .army-unit-art{width:54px;height:54px}
.dispatch-unit-copy{display:grid!important;grid-template-columns:minmax(0,1fr);gap:5px;min-width:0}
.dispatch-unit-copy>small{display:flex!important;flex-flow:row wrap!important;gap:8px}
.dispatch-unit-copy>.unit-stats{display:grid!important;grid-template-columns:repeat(5,minmax(38px,1fr))!important;gap:3px;width:100%;margin:0}
.dispatch-unit-copy>.unit-stats>span{display:flex!important;flex-direction:row!important;min-height:29px;padding:3px 4px!important;gap:3px}
.dispatch-unit-copy>.unit-stats .unit-stat-icon{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;flex-basis:18px!important}
.dispatch-unit-copy>.unit-stats b{font-size:9px!important}
.scout-garrison-table{overflow:hidden;border:1px solid var(--line);background:rgba(0,0,0,.14)}
.scout-garrison-table>header,.scout-garrison-table>article{display:grid;grid-template-columns:minmax(0,1fr) 100px;align-items:center}
.scout-garrison-table>header{min-height:34px;border-bottom:1px solid var(--line);background:rgba(199,146,79,.07);color:#837d70;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.scout-garrison-table>header>span,.scout-garrison-table>article>strong{padding:7px 11px}
.scout-garrison-table>header>span:last-child{text-align:right}
.scout-garrison-table>article{min-height:52px}
.scout-garrison-table>article+article{border-top:1px solid rgba(129,115,88,.18)}
.scout-garrison-table>article>span{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding:5px 9px}
.scout-garrison-art{width:42px!important;height:42px!important}
.scout-garrison-table>article b{overflow:hidden;color:#beb8a9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.scout-garrison-table>article strong{border-left:1px solid var(--line);color:#e0bd72;font:400 18px Georgia,serif;text-align:right}
.scout-garrison-table>p{margin:0;padding:15px;color:#78817c}
@media(max-width:620px){.dispatch-unit-copy>.unit-stats{grid-template-columns:repeat(3,minmax(38px,1fr))!important}.dispatch-force-zone .army-input{grid-template-columns:48px minmax(0,1fr) 68px;min-height:142px}.dispatch-force-zone .army-unit-art{width:46px;height:46px}.scout-garrison-table>header,.scout-garrison-table>article{grid-template-columns:minmax(0,1fr) 72px}}
.active-spell-card{
  flex:0 0 min(282px,78vw);
  grid-template-columns:32px minmax(0,1fr) auto;
  gap:7px;
  min-height:40px;
  padding:4px 6px;
}
.active-spell-emblem{width:32px;height:32px}
.active-spell-emblem .ui-icon{width:20px;height:20px}
.active-spell-card small,.active-spell-card em,.active-spell-card>time{font-size:10px}
.active-spell-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;gap:1px 5px}
.active-spell-copy>small{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.active-spell-copy>b{grid-column:1;overflow:hidden;color:#beb9aa;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.active-spell-copy>.spell-modifier-chips{grid-column:2;grid-row:2;flex-wrap:nowrap}
.active-spell-copy>em{grid-column:1/-1;color:#7c8781;font-style:normal}
.active-spell-card .spell-modifier-chips{gap:3px}
.active-spell-card .spell-modifier-chips>span{grid-template-columns:13px auto auto;padding:1px 3px;white-space:nowrap}
.active-spell-card .spell-modifier-chips .ui-icon{width:13px;height:13px}
.alliance-request-card .own-request-lock{flex:1;min-width:0;white-space:normal}

/* v2.9 maintenance: modular cosmetics remain clean cutouts on the world map. */
.map-marker.player-city-progress .map-location-art.modular-art[data-art-skin="dryad"],
.map-marker.player-city-progress .map-location-art.modular-art[data-art-skin="enlightened"],
.poi-inspector-visual .inspector-map-art.modular-art[data-art-skin="dryad"],
.poi-inspector-visual .inspector-map-art.modular-art[data-art-skin="enlightened"]{
  filter:none!important;
  box-shadow:none!important;
}
.cosmetic-card[data-art-skin="dryad"] .cosmetic-preview::after,
.profile-appearances article[data-art-skin="dryad"]::after,
.cosmetic-card[data-art-skin="enlightened"] .cosmetic-preview::after,
.profile-appearances article[data-art-skin="enlightened"]::after{
  content:none!important;
  display:none!important;
}

/* Active enchantments use a wrapping ledger instead of a clipped horizontal rail. */
.active-spell-overview{overflow:visible}
.active-spell-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));
  gap:7px;
  padding:8px;
  overflow:visible;
}
.active-spell-card{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:start;
  gap:8px;
  min-width:0;
  min-height:70px;
  padding:8px;
}
.active-spell-emblem{width:32px;height:32px}
.active-spell-copy{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;min-width:0}
.active-spell-copy>small,
.active-spell-copy>em{
  grid-column:auto;
  overflow:hidden;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.active-spell-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.active-spell-heading>b{overflow:hidden;color:#beb9aa;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.active-spell-heading>time{color:#d0a75f;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.active-spell-copy>.spell-modifier-chips{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(116px,1fr));
  grid-column:auto;
  grid-row:auto;
  gap:4px;
  min-width:0;
}
.active-spell-card .spell-modifier-chips>span{
  grid-template-columns:14px minmax(0,1fr) auto;
  min-width:0;
  padding:3px 5px;
  white-space:normal;
}
.active-spell-card .spell-modifier-chips b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:520px){
  .active-spell-grid{grid-template-columns:minmax(0,1fr);padding:6px}
  .active-spell-heading{grid-template-columns:minmax(0,1fr)}
  .active-spell-heading>time{justify-self:start}
  .active-spell-copy>.spell-modifier-chips{grid-template-columns:minmax(0,1fr)}
}

.quest-list{grid-template-columns:1fr;gap:9px}
.quest-card{
  grid-template-columns:46px minmax(0,1fr) minmax(148px,178px);
  align-items:center;
  gap:12px;
  min-height:0;
  padding:11px 12px;
  border-left:3px solid rgba(145,107,57,.45);
  background:linear-gradient(100deg,rgba(41,48,44,.42),rgba(8,14,15,.25));
}
.quest-card.quest-daily{border-left-color:#648a79}
.quest-card.quest-seasonal{border-left-color:#8d6ba3}
.quest-card.complete{border-left-color:#68b18d;background:linear-gradient(100deg,rgba(49,112,83,.15),rgba(8,14,15,.25))}
.quest-card>.quest-icon{align-self:center;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,rgba(196,143,70,.12),transparent)}
.quest-card>.quest-icon>.ui-icon{width:27px;height:27px}
.quest-card>.quest-copy{display:grid;align-self:center;gap:5px;height:auto;padding:0;min-width:0}
.quest-card-heading{display:grid;gap:1px;min-width:0}
.quest-card-heading .quest-kind{margin:0;font-size:10px}
.quest-card h3{margin:0;font-size:18px;line-height:1.15}
.quest-card p{display:-webkit-box;min-height:0;margin:0;overflow:hidden;color:#86908a;font-size:12px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.quest-progress{display:grid;grid-template-columns:minmax(110px,1fr) auto;gap:9px}
.quest-progress b{color:#a9ac9f;font-size:11px;font-variant-numeric:tabular-nums}
.quest-rewards{display:flex;align-items:center;gap:8px;min-width:0}
.quest-rewards>small{flex:0 0 auto;color:#7c827d;font-size:10px;text-transform:uppercase}
.quest-rewards .reward-row{margin:0;gap:4px}
.quest-rewards .value-chip{min-height:27px;padding:3px 6px}
.quest-card .quest-actions{display:grid;align-content:end;gap:6px;align-self:stretch;width:100%;padding:32px 0 0}
.quest-card .quest-actions>.btn{width:100%;min-height:38px}
.quest-status{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:#7e8983;font-size:10px}
.quest-status>.ui-icon{width:15px;height:15px}
.quest-status.ready{color:#75bf97;font-weight:700}
.quest-card .quest-pin{top:9px;right:9px;width:30px;height:30px}
.quest-card .quest-pin .ui-icon{width:18px;height:18px}
.quest-lock-reason{margin-top:2px}

@media(max-width:760px){
  .hero-skill-points{grid-template-columns:30px auto minmax(0,1fr)}
  .hero-skill-points em{font-size:10px}
  .quest-card{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:11px}
  .quest-card>.quest-icon{width:40px;height:40px}
  .quest-card>.quest-copy{padding-right:25px}
  .quest-card .quest-actions{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(135px,45%);align-items:center;padding-top:2px}
  .quest-status{justify-content:flex-start}
}
@media(max-width:430px){
  .hero-skill-points{grid-template-columns:28px auto}.hero-skill-points em{grid-column:1/-1;justify-self:start;text-align:left}
  .quest-card .quest-actions{grid-template-columns:1fr}
  .quest-card .quest-actions>.btn{min-height:40px}
}

/* v2.9.5: POIs remain legible at the reduced close-zoom limit. Player-city
   progression markers keep their tier sizing; every neutral/hostile POI grows
   by exactly 25 percent without changing its world-space anchor. */
.map-marker:not(.cargo-route-marker):not(.player-city-progress){
  width:calc(55px * var(--map-marker-zoom,1));
  height:calc(55px * var(--map-marker-zoom,1));
}
.map-marker.site.season_monster:not(.cargo-route-marker),
.map-marker.site.sea_monster:not(.cargo-route-marker){
  width:calc(67.5px * var(--map-marker-zoom,1));
  height:calc(67.5px * var(--map-marker-zoom,1));
}
.map-marker:not(.cargo-route-marker):not(.player-city-progress)+.map-label{
  transform:translate(-50%,calc(34px * var(--map-marker-zoom,1) + 7px));
}

/* v2.9.6: compact map command inspector and stronger marker readability. */
.map-inspector-frame {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow: hidden;
}
.map-inspector-content{
  min-height:0;
  padding:14px 16px 10px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.poi-inspector-compact{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  align-items:center;
  gap:13px;
  min-height:112px;
  padding:0 38px 12px 0;
  border-bottom:1px solid var(--line);
}
.poi-inspector-compact>.poi-inspector-visual{
  width:112px;
  height:112px;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(194,151,83,.24);
  background:radial-gradient(circle at 50% 48%,rgba(193,151,83,.17),rgba(6,12,13,.85) 74%);
}
.poi-inspector-compact>.poi-inspector-visual .inspector-map-art{
  width:106px!important;
  height:106px!important;
  max-width:106px;
  max-height:106px;
  background-size:contain!important;
  background-position:center!important;
}
.poi-inspector-compact>.poi-inspector-visual>span{
  right:5px;
  bottom:5px;
  padding:3px 5px;
  font-size:10px;
}
.poi-inspector-heading{display:grid;align-content:center;gap:3px;min-width:0}
.poi-inspector-heading h2{margin:0;color:#dfd1b7;font-size:clamp(19px,2vw,25px);line-height:1.08;overflow-wrap:anywhere}
.poi-inspector-heading .owner{overflow:hidden;color:#989f99;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.poi-inspector-heading .coordinate-line{margin:3px 0 0;color:#b99a67;font-size:10px;line-height:1.35}
.poi-inspector-details{padding-top:10px}
.poi-inspector-details>.stat-grid{margin-top:0}
.poi-inspector-details .terrain-note{margin-bottom:0}
.map-inspector-footer.map-inspector-actions{
  position:relative;
  min-height: 20px;
  z-index:3;
  display:flex;
  align-items:stretch;
  gap:4px;
  min-width:0;
  margin:0;
  padding:6px 8px 8px;
  overflow-x:auto;
  overflow-y:hidden;
  border-top:1px solid rgba(216,174,102,.28);
  background:linear-gradient(180deg,rgba(17,27,29,.98),rgba(8,14,15,.99));
  box-shadow:0 -10px 24px rgba(0,0,0,.22);
  scrollbar-width:thin;
}
.map-inspector-footer.map-inspector-actions>.btn{flex:1 1 0;justify-content:center;min-width:54px;min-height:32px;padding:5px 6px;overflow:hidden;font-size:10px;line-height:1;white-space:nowrap}
.map-inspector-footer.map-inspector-actions>.btn>.ui-icon{flex:0 0 16px;width:16px;height:16px}
.map-inspector-footer.map-inspector-actions>.btn>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-inspector-footer.map-inspector-actions>.btn.primary{min-height:32px}
.map-inspector-footer.map-inspector-actions>.requirement,
.map-inspector-footer.map-inspector-actions>.action-warning{grid-column:1/-1;margin:0}

.map-marker:not(.cargo-route-marker):not(.player-city-progress){
  width:calc(78px * var(--map-marker-zoom,1));
  height:calc(78px * var(--map-marker-zoom,1));
}
.map-marker.site.season_monster:not(.cargo-route-marker),
.map-marker.site.sea_monster:not(.cargo-route-marker){
  width:calc(96px * var(--map-marker-zoom,1));
  height:calc(96px * var(--map-marker-zoom,1));
}
.map-marker.player-city-progress.city-progress-tier-1{width:calc(58px * var(--map-marker-zoom,1));height:calc(58px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-2{width:calc(64px * var(--map-marker-zoom,1));height:calc(64px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-3{width:calc(70px * var(--map-marker-zoom,1));height:calc(70px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-4{width:calc(76px * var(--map-marker-zoom,1));height:calc(76px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-5{width:calc(84px * var(--map-marker-zoom,1));height:calc(84px * var(--map-marker-zoom,1))}
.map-marker:not(.cargo-route-marker)+.map-label{
  transform:translate(-50%,calc(48px * var(--map-marker-zoom,1) + 7px));
}

.mission-failure-protection{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;margin:9px 0;padding:8px 10px;border:1px solid rgba(108,184,148,.38);background:rgba(44,112,83,.13);color:#7bc69f}
.mission-failure-protection>.ui-icon{width:26px;height:26px}.mission-failure-protection>span{display:grid;gap:1px}.mission-failure-protection small{color:#7f9990;font-size:10px}.mission-failure-protection b{font-size:11px}.mission-failure-protection>strong{color:#9ce0b8;font-size:14px}
.mission-chance-ledger{display:grid;gap:9px;margin:10px 0;padding:11px;border:1px solid rgba(171,139,79,.34);background:linear-gradient(145deg,rgba(85,63,31,.13),rgba(8,17,17,.3))}
.mission-chance-ledger>header,.mission-chance-ledger>footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.mission-chance-ledger>header>span{display:flex;align-items:center;gap:7px;color:#d3c49f}.mission-chance-ledger>header .ui-icon{width:20px;height:20px;color:#c99a4b}.mission-chance-ledger>header b{font-size:12px;text-transform:uppercase}.mission-chance-ledger>header strong{color:#e3bd6d;font:600 18px Georgia,serif}
.mission-chance-terms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.mission-chance-terms>span{display:grid;gap:2px;min-width:0;padding:7px 8px;border:1px solid rgba(112,119,107,.22);background:rgba(0,0,0,.13)}.mission-chance-terms small{overflow:hidden;color:#89908a;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.mission-chance-terms b{font-size:12px}.mission-chance-terms .positive b{color:#79c59d}.mission-chance-terms .negative b{color:#dc756b}.mission-chance-terms .neutral b{color:#d7c9a8}.mission-chance-ledger>footer{padding-top:7px;border-top:1px solid rgba(171,139,79,.2);color:#9da29b;font-size:10px}.mission-chance-ledger>footer b{color:#ddca9e;font-size:12px}
.mission-technical-ledger{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;margin:10px 0;padding:10px 12px;border:1px solid rgba(220,145,66,.48);background:rgba(126,73,23,.13)}.mission-technical-ledger>.ui-icon{width:28px;height:28px;color:#e0a85c}.mission-technical-ledger>span{display:grid;gap:2px}.mission-technical-ledger b{color:#e1bd86;font-size:12px}.mission-technical-ledger em{color:#a39785;font-size:10px;font-style:normal}.mission-roll-ledger.interrupted,.hero-report-status.interrupted{border-color:rgba(220,145,66,.42);background:rgba(126,73,23,.10)}

@media(max-width:760px){
  .mission-chance-terms{grid-template-columns:repeat(2,minmax(0,1fr))}
  .map-inspector-frame{height:100%;max-height:100%}
  .map-inspector-content{padding:10px 11px 8px}
  .poi-inspector-compact{grid-template-columns:88px minmax(0,1fr);gap:9px;min-height:88px;padding:0 34px 9px 0}
  .poi-inspector-compact>.poi-inspector-visual{width:88px;height:88px}
  .poi-inspector-compact>.poi-inspector-visual .inspector-map-art{width:84px!important;height:84px!important;max-width:84px;max-height:84px}
  .poi-inspector-heading h2{font-size:19px}
  .map-inspector-footer.map-inspector-actions{padding:5px 7px max(7px,env(safe-area-inset-bottom))}
  .map-inspector-footer.map-inspector-actions>.btn{min-width:52px;min-height:31px;padding:4px 5px;font-size:10px}
  .map-inspector-footer.map-inspector-actions>.btn.primary{min-height:31px}
}
@media(max-width:390px){
  .poi-inspector-compact{grid-template-columns:76px minmax(0,1fr)}
  .poi-inspector-compact>.poi-inspector-visual{width:76px;height:76px}
  .poi-inspector-compact>.poi-inspector-visual .inspector-map-art{width:72px!important;height:72px!important;max-width:72px;max-height:72px}
  .poi-inspector-heading h2{font-size:17px}
}

/* v2.9.2 POI garrison control and compact mission odds */
.site-owned-garrison{display:grid;gap:7px;margin:10px 0;padding:10px;border:1px solid rgba(108,164,137,.28);background:rgba(35,82,65,.1)}
.site-owned-garrison h3{margin:0;color:#bfcbbd;font-size:11px;text-transform:uppercase}
.site-owned-garrison>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px}
.site-owned-garrison>div>span{display:grid;grid-template-columns:38px auto;grid-template-rows:auto auto;align-items:center;gap:0 7px;min-width:0;padding:6px;border:1px solid rgba(123,143,128,.2);background:rgba(0,0,0,.13)}
.site-garrison-unit-art{grid-row:1/3;width:38px;height:38px}.site-owned-garrison b{color:#d7b366;font-size:13px}.site-owned-garrison small{overflow:hidden;color:#9ba69f;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.site-recall-summary{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:10px;border:1px solid rgba(93,158,129,.32);background:rgba(36,88,66,.13)}.site-recall-summary>.ui-icon{width:30px;height:30px;color:#76b894}.site-recall-summary span{display:grid;gap:3px}.site-recall-summary small{max-width:58ch;color:#98a29d;font-size:10px;line-height:1.45}
.site-recall-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.site-recall-unit{display:grid;grid-template-columns:58px minmax(0,1fr) 78px;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.site-recall-unit-art{width:58px;height:58px}.site-recall-unit>span{display:grid;gap:2px;min-width:0}.site-recall-unit small,.site-recall-unit em{color:#88938d;font-size:10px;font-style:normal}.site-recall-unit b{overflow:hidden;color:#d7cdb4;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.site-recall-unit input{width:78px;min-width:0;text-align:center}
.mission-final-chances .combined-modifier{display:block;margin-top:2px;font-size:10px;font-style:normal}.mission-final-chances .combined-modifier.positive{color:#86c5a9}.mission-final-chances .combined-modifier.negative{color:#df786e}
.mission-outcome-odds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.mission-outcome-odds>span{display:grid;gap:4px;padding:9px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.mission-outcome-odds small{color:#929c96;font-size:10px}.mission-outcome-odds b{color:#d9c59a;font-size:15px}.mission-outcome-odds b.positive{color:#86c5a9}.mission-outcome-odds b.negative,.mission-outcome-odds .fatal b{color:#df786e}
@media(max-width:620px){.site-recall-grid{grid-template-columns:1fr}.site-recall-unit{grid-template-columns:52px minmax(0,1fr) 70px}.site-recall-unit-art{width:52px;height:52px}.site-recall-unit input{width:70px}.mission-outcome-odds{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v3.0 rare-resource storage and claimed-outpost command */
.special-resource-art{display:block;width:48px;height:48px;flex:0 0 auto;background-position:center;background-repeat:no-repeat;background-size:contain;filter:drop-shadow(0 4px 5px rgba(0,0,0,.55))}
.special-storage-ledger{display:grid;gap:0;margin:0 0 18px;overflow:hidden;border:1px solid rgba(194,145,79,.34);background:linear-gradient(145deg,rgba(39,47,43,.9),rgba(8,14,15,.94));box-shadow:inset 0 0 42px rgba(0,0,0,.25)}
.special-storage-ledger>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid rgba(194,145,79,.22);background:linear-gradient(100deg,rgba(194,145,79,.09),rgba(12,20,20,.25))}
.special-storage-ledger>header>span{display:flex;align-items:center;gap:10px;min-width:0}.special-storage-ledger>header .ui-icon{width:30px;height:30px;color:#d2a457}.special-storage-ledger>header>span>span{display:grid;gap:2px}.special-storage-ledger>header small{color:#9b8a68;font-size:10px;font-weight:700;letter-spacing:.08em}.special-storage-ledger h3{margin:0;color:#dfd1b4;font:600 20px Georgia,serif}.special-storage-ledger p{margin:0;color:#929b94;font-size:10px;line-height:1.45}.special-storage-ledger>header>strong{display:grid;color:#deb466;font:600 24px Georgia,serif;text-align:right}.special-storage-ledger>header>strong small{font:700 10px Arial,sans-serif;text-transform:uppercase}
.special-resource-grid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;padding:12px}.special-resource-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:9px;min-height:72px;padding:10px;border:1px solid color-mix(in srgb,var(--special-color) 35%,rgba(100,110,105,.28));background:radial-gradient(circle at 18% 50%,color-mix(in srgb,var(--special-color) 12%,transparent),rgba(0,0,0,.18) 68%)}.special-resource-card::after{content:"";position:absolute;right:8px;bottom:6px;left:8px;height:1px;background:linear-gradient(90deg,transparent,var(--special-color),transparent);opacity:.55}.special-resource-card>div{display:grid;gap:2px;min-width:0}.special-resource-card small{overflow:hidden;color:#9aa39d;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.special-resource-card b{color:#e4d5b7;font:600 19px Georgia,serif}.special-resource-card em{color:#a78e68;font-size:10px;font-style:normal}
.special-storage-ledger>footer{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 12px;border-top:1px solid rgba(194,145,79,.18);background:rgba(0,0,0,.16)}.special-storage-ledger>footer>.ui-icon{width:22px;height:22px;color:#79ad92}.special-storage-ledger>footer>span{display:grid;gap:2px}.special-storage-ledger>footer b{color:#aec8b8;font-size:11px}.special-storage-ledger>footer small{color:#87918b;font-size:10px;line-height:1.35}
.site-storage.special-site-storage{border-color:rgba(193,145,76,.4);background:linear-gradient(100deg,rgba(97,69,31,.13),rgba(0,0,0,.14))}.site-storage.special-site-storage .special-resource-art{width:38px;height:38px}.site-storage.special-site-storage .progress i{background:linear-gradient(90deg,#95683c,#d0a253);box-shadow:0 0 9px rgba(208,162,83,.28)}.map-inspector-actions .stronghold-manage-button{grid-column:1/-1}
.special-resource-art.inline{display:inline-block;width:24px;height:24px;vertical-align:middle}.map-route.npc-invasion-route polyline{stroke-width:3.2;stroke-dasharray:9 5;filter:drop-shadow(0 0 4px rgba(229,76,65,.72));animation:npc-invasion-route-march 1.2s linear infinite}.special-invasion-marker .map-movement-art{filter:drop-shadow(0 0 9px rgba(232,73,62,.75))}.special-invasion-inspector{border-color:rgba(220,80,66,.62)!important;box-shadow:0 0 18px rgba(203,55,45,.25)}.invasion-formation{margin:10px 0}.invasion-formation small{color:#c98274;font-size:10px}.invasion-formation p{margin:4px 0 0;color:#c4b6a8;font-size:11px;line-height:1.45}@keyframes npc-invasion-route-march{to{stroke-dashoffset:-28}}

.special-site-modal{width:min(1040px,calc(100vw - 30px))}.special-site-modal .modal-frame{max-height:min(900px,calc(100dvh - 30px))}.special-site-modal .modal-body{padding:0;overflow:auto}.special-site-modal .modal-frame>footer{position:sticky;z-index:3;right:0;bottom:0;left:0;background:rgba(15,23,24,.97);box-shadow:0 -10px 24px rgba(0,0,0,.28)}
.stronghold-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:280px}.stronghold-loading>.ui-icon{width:36px;height:36px;color:#c59651;animation:spin 1.3s linear infinite}.stronghold-loading>span{display:grid;gap:3px}.stronghold-loading b{color:#d8c9aa;font-size:14px}.stronghold-loading small{color:#8e9891;font-size:10px}
.special-site-management{display:grid;gap:12px;padding:14px;background:radial-gradient(circle at 70% 0,rgba(175,122,58,.09),transparent 38%)}
.stronghold-hero{position:relative;display:grid;grid-template-columns:148px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:146px;overflow:hidden;padding:12px 16px 12px 8px;border:1px solid rgba(198,149,79,.35);background:linear-gradient(105deg,rgba(64,50,34,.33),rgba(12,22,22,.95) 60%)}.stronghold-hero::after{content:"";position:absolute;right:-90px;bottom:-140px;width:320px;height:240px;border:1px solid rgba(197,147,73,.13);transform:rotate(-16deg);pointer-events:none}.stronghold-hero-art{width:140px;height:140px;background-position:center;background-size:contain!important;filter:drop-shadow(0 11px 9px rgba(0,0,0,.6))}.stronghold-hero>div{display:grid;gap:4px;min-width:0}.stronghold-hero>div>small{color:#bd914e;font-size:10px;font-weight:800;letter-spacing:.12em}.stronghold-hero h2{margin:0;color:#e2d2b1;font:600 clamp(22px,3vw,34px) Georgia,serif}.stronghold-hero p{margin:0;color:#8f9b94;font-size:11px}.stronghold-resource-seal{z-index:1;display:grid;justify-items:center;gap:3px;min-width:96px;padding:9px;border-left:1px solid rgba(196,147,75,.25)}.stronghold-resource-seal .special-resource-art{width:62px;height:62px}.stronghold-resource-seal b{color:#d9c49c;font-size:11px;text-align:center}
.stronghold-yield{display:grid;grid-template-columns:minmax(180px,1fr) minmax(250px,1.15fr);align-items:center;gap:8px;padding:11px 13px;border:1px solid rgba(117,158,134,.28);background:rgba(28,65,50,.12)}.stronghold-yield>div:first-child{display:flex;align-items:center;gap:10px}.stronghold-yield>div:first-child>span{display:grid;gap:2px}.stronghold-yield small{color:#87958d;font-size:10px}.stronghold-yield b{color:#d9c8a4;font-size:15px}.stronghold-yield b em{color:#737f79;font-size:11px;font-style:normal}.stronghold-yield>div:nth-child(2){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.stronghold-yield>div:nth-child(2)>span{display:grid;grid-template-columns:22px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:1px 7px;padding:7px;border:1px solid rgba(112,132,119,.2);background:rgba(0,0,0,.13)}.stronghold-yield>div:nth-child(2) .ui-icon{grid-row:1/3;width:20px;height:20px;color:#b28b53}.stronghold-yield>.progress{grid-column:1/-1;margin:0}.stronghold-yield>.progress i{background:linear-gradient(90deg,#6e9e7e,#c59b56)}
.stronghold-invasion-warning,.stronghold-invasion-calm{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 13px}.stronghold-invasion-warning{border:1px solid rgba(213,99,80,.55);background:linear-gradient(100deg,rgba(119,43,33,.22),rgba(38,18,17,.15));box-shadow:inset 3px 0 #ce6855}.stronghold-invasion-warning>.ui-icon{width:32px;height:32px;color:#e17562}.stronghold-invasion-warning>div{display:grid;gap:2px}.stronghold-invasion-warning small{color:#cb8a7b;font-size:10px;font-weight:700;letter-spacing:.1em}.stronghold-invasion-warning h3{margin:0;color:#e0c0a9;font-size:15px}.stronghold-invasion-warning p{margin:0;color:#ad9388;font-size:10px;line-height:1.4}.stronghold-invasion-warning b{color:#e49b82;font-size:11px}.stronghold-invasion-warning>strong{display:grid;color:#ed947b;font:600 20px Georgia,serif;text-align:right}.stronghold-invasion-warning>strong small{font:700 10px Arial,sans-serif}.stronghold-invasion-calm{grid-template-columns:28px minmax(0,1fr);border:1px solid rgba(93,145,118,.28);background:rgba(38,81,61,.1)}.stronghold-invasion-calm>.ui-icon{width:26px;height:26px;color:#6ea98a}.stronghold-invasion-calm>span{display:grid;gap:2px}.stronghold-invasion-calm b{color:#a9c3b2;font-size:11px}.stronghold-invasion-calm small{color:#84928a;font-size:10px}
.stronghold-structures{display:grid;gap:0;border:1px solid var(--line);background:rgba(0,0,0,.1)}.stronghold-structures>.section-heading,.stronghold-garrison>.section-heading{padding:10px 12px}.stronghold-structures>.section-heading>span,.stronghold-garrison>.section-heading>span{display:flex;align-items:center;gap:7px}.stronghold-structures>.section-heading .ui-icon,.stronghold-garrison>.section-heading .ui-icon{width:20px;height:20px;color:#c39653}.stronghold-structures>.section-heading em,.stronghold-garrison>.section-heading em{color:#859089;font-size:10px;font-style:normal}.stronghold-structures>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:10px}
.stronghold-structure{display:grid;grid-template-rows:auto auto auto 1fr;gap:8px;min-width:0;padding:11px;border:1px solid rgba(122,132,124,.25);background:linear-gradient(145deg,rgba(39,50,47,.42),rgba(5,10,11,.3))}.stronghold-structure.mastered{border-color:rgba(103,168,132,.34)}.stronghold-structure>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.stronghold-structure>header>span{display:flex;align-items:center;gap:8px;min-width:0}.stronghold-structure>header .ui-icon{width:28px;height:28px;color:#bd914e}.stronghold-structure>header>span>span{display:grid;gap:1px;min-width:0}.stronghold-structure>header small{color:#78847d;font-size:10px}.stronghold-structure>header b{overflow:hidden;color:#d3c5a8;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.stronghold-structure>header>strong{display:grid;color:#d7aa5e;font:600 14px Georgia,serif;text-align:right;white-space:nowrap}.stronghold-structure>header>strong small{font-size:10px}.stronghold-structure>p{min-height:42px;margin:0;color:#8c9790;font-size:10px;line-height:1.4}.stronghold-tier-track{display:flex;gap:3px}.stronghold-tier-track i{flex:1;height:4px;background:#29322f}.stronghold-tier-track i.filled{background:#c0924f;box-shadow:0 0 5px rgba(192,146,79,.35)}.stronghold-structure>footer{display:grid;align-self:end;gap:9px;padding-top:7px;border-top:1px solid rgba(113,123,116,.17)}.stronghold-structure>footer>div{display:grid;gap:4px}.stronghold-structure>footer>div>small{color:#829088;font-size:10px}.stronghold-structure>footer .btn{width:100%}
.stronghold-garrison{display:grid;border:1px solid var(--line);background:rgba(0,0,0,.1)}.stronghold-garrison>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:7px;padding:10px}.stronghold-garrison>div>article{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;padding:8px;border:1px solid rgba(116,130,120,.22);background:rgba(0,0,0,.13)}.special-site-garrison-art{width:54px;height:54px;background-size:contain!important}.stronghold-garrison>div>article>span{display:grid;gap:2px;min-width:0}.stronghold-garrison>div>article b{overflow:hidden;color:#d2c6ad;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.stronghold-garrison>div>article small{color:#87928c;font-size:10px}.stronghold-garrison>div>article>strong{color:#d7a95d;font:600 18px Georgia,serif}.stronghold-garrison>footer{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:9px;padding:10px 12px;border-top:1px solid rgba(116,130,120,.2);background:rgba(41,75,58,.1)}.stronghold-garrison>footer>.ui-icon{width:24px;height:24px;color:#73a889}.stronghold-garrison>footer>span{display:grid;gap:2px}.stronghold-garrison>footer b{color:#aac1b2;font-size:11px}.stronghold-garrison>footer small{color:#84918a;font-size:10px;line-height:1.4}
.cost.special-cost{display:inline-grid;grid-template-columns:24px auto 14px;align-items:center;gap:4px;padding:4px 6px;border:1px solid rgba(111,127,117,.25);background:rgba(0,0,0,.14)}.cost.special-cost .special-resource-art{width:24px;height:24px}.cost.special-cost>.ui-icon{width:13px;height:13px}.cost.special-cost.sufficient{border-color:rgba(87,158,119,.38);color:#85c6a1}.cost.special-cost.insufficient{border-color:rgba(204,90,78,.42);color:#dd786c}.special-cost-row{margin-top:2px}
.scout-stronghold-ledger{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px solid rgba(188,142,75,.3);background:linear-gradient(110deg,rgba(91,62,30,.13),rgba(0,0,0,.13))}.scout-stronghold-ledger>h3{margin:0;color:#c9b78f;font-size:11px;text-transform:uppercase}.scout-stronghold-ledger>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.scout-stronghold-ledger article{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;padding:8px;border:1px solid rgba(116,128,119,.22);background:rgba(0,0,0,.14)}.scout-stronghold-ledger .ui-icon{width:28px;height:28px;color:#c19453}.scout-stronghold-ledger article>span{display:grid;gap:2px;min-width:0}.scout-stronghold-ledger small{overflow:hidden;color:#87928b;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.scout-stronghold-ledger b{color:#dcc8a2;font-size:13px}
.supported-strongholds{margin-top:14px}.supported-strongholds>.section-heading>span{display:flex;align-items:center;gap:7px}.supported-strongholds>.section-heading .ui-icon{width:20px;height:20px;color:#78ad8f}.supported-strongholds-note{margin:0;padding:9px 12px;border-bottom:1px solid var(--line);color:#87928b;font-size:10px}.supported-strongholds>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.supported-stronghold-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0;padding:9px;border:1px solid rgba(100,145,119,.27);background:linear-gradient(110deg,rgba(33,78,57,.12),rgba(0,0,0,.14))}.supported-stronghold-art{width:76px;height:76px;background-size:contain!important}.supported-stronghold-card>div{display:grid;gap:2px;min-width:0}.supported-stronghold-card>div>small{color:#84a291;font-size:10px}.supported-stronghold-card h3{overflow:hidden;margin:0;color:#d2c7ad;font:600 16px Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.supported-stronghold-card p{margin:0;color:#85918a;font-size:10px}.supported-stronghold-card>div>span{display:flex;gap:4px;margin-top:4px}.supported-stronghold-card>div>span>i{position:relative;display:block;width:30px;height:30px;border:1px solid rgba(108,126,114,.22);background:rgba(0,0,0,.18)}.supported-unit-art{width:28px;height:28px;background-size:contain!important}.supported-stronghold-card>div>span>i>b{position:absolute;right:-3px;bottom:-3px;min-width:15px;padding:1px 3px;border:1px solid #51655b;background:#17211e;color:#d5b268;font-size:10px;font-style:normal;text-align:center}.supported-stronghold-card>strong{display:grid;color:#d6ad65;font:600 20px Georgia,serif;text-align:center}.supported-stronghold-card>strong small{color:#809088;font:700 10px Arial,sans-serif;white-space:nowrap}

@media(max-width:860px){.special-resource-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}.stronghold-structures>div{grid-template-columns:1fr}.stronghold-structure{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto}.stronghold-structure>p{min-height:0}.stronghold-structure>footer{grid-template-columns:minmax(0,1fr) auto;align-items:end}.stronghold-structure>footer .btn{width:auto;min-width:150px}}
@media(max-width:760px){.special-storage-ledger>header{align-items:flex-start;padding:12px}.special-storage-ledger>header>strong{font-size:20px}.special-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}.special-resource-card{grid-template-columns:38px minmax(0,1fr);min-height:62px;padding:8px}.special-resource-card .special-resource-art{width:38px;height:38px}.special-storage-ledger>footer{grid-template-columns:22px minmax(0,1fr)}.special-storage-ledger>footer .btn{grid-column:1/-1;width:100%}.special-site-modal{width:calc(100vw - 10px)}.special-site-modal .modal-frame{max-height:calc(100dvh - 10px)}.special-site-management{padding:8px}.stronghold-hero{grid-template-columns:94px minmax(0,1fr);gap:8px;min-height:102px;padding:8px}.stronghold-hero-art{width:92px;height:92px}.stronghold-resource-seal{grid-column:1/-1;grid-template-columns:38px auto;justify-content:start;min-width:0;padding:6px;border-top:1px solid rgba(196,147,75,.2);border-left:0}.stronghold-resource-seal .special-resource-art{width:36px;height:36px}.stronghold-yield{grid-template-columns:1fr}.stronghold-yield>div:nth-child(2){grid-template-columns:1fr}.stronghold-invasion-warning{grid-template-columns:30px minmax(0,1fr)}.stronghold-invasion-warning>strong{grid-column:2;text-align:left}.stronghold-structure>footer{grid-template-columns:1fr}.stronghold-structure>footer .btn{width:100%;min-width:0}.stronghold-garrison>div{grid-template-columns:1fr}.special-site-modal .modal-frame>footer{grid-template-columns:1fr}.special-site-modal .modal-frame>footer .btn{width:100%}.scout-stronghold-ledger>div{grid-template-columns:1fr}}
@media(max-width:860px){.supported-strongholds>div{grid-template-columns:1fr}}
@media(max-width:620px){.supported-stronghold-card{grid-template-columns:60px minmax(0,1fr) auto}.supported-stronghold-art{width:60px;height:60px}.supported-stronghold-card>strong{display:none}.supported-stronghold-card>.btn{grid-column:1/-1;width:100%}}

/* Short browser windows still need a reachable building ledger and actions. */
@media(max-height:720px){
  .building-upgrade-modal{max-height:calc(100dvh - 12px);overflow:hidden}
  .building-upgrade-modal .modal-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 12px);overflow:hidden}
  .building-upgrade-modal .modal-body{min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain}
}

@media(max-width:430px){
  .special-site-modal .modal-frame>header{gap:8px;padding:12px}
  .special-site-modal .modal-frame>header>div{min-width:0}
  .special-site-modal .modal-frame>header h2{overflow:hidden;font-size:clamp(17px,5.5vw,22px);text-overflow:ellipsis;white-space:nowrap}
  .special-site-modal .modal-frame>header .icon-button{flex:0 0 auto}
  .special-site-modal .modal-frame>footer{grid-template-columns:repeat(2,minmax(0,1fr))}
  .special-site-modal .modal-frame>footer .btn:last-child{grid-column:1/-1}
}
/* Version 3.1: Honor, titles, and the living house ledger. */
.dynasty-view{display:grid;gap:18px}.honor-balance{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;column-gap:9px;align-items:center;min-width:132px;padding:8px 12px;border:1px solid rgba(211,164,78,.34);background:linear-gradient(135deg,rgba(139,91,34,.18),rgba(12,19,20,.74));color:#ddb761}.honor-balance>.ui-icon{grid-row:1/3;width:32px;height:32px}.honor-balance b{font-family:Georgia,serif;font-size:20px;line-height:1}.honor-balance small{color:#8d897e;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.title-command{overflow:hidden}.title-command-current{display:grid;grid-template-columns:78px minmax(0,1fr) minmax(230px,310px);gap:18px;align-items:center;padding:22px;border-bottom:1px solid rgba(211,164,78,.22);background:radial-gradient(circle at 7% 50%,rgba(205,142,52,.14),transparent 23%),linear-gradient(100deg,rgba(83,55,24,.16),rgba(13,21,22,.18))}.title-seal{display:grid;place-items:center;width:72px;height:72px;border:1px solid rgba(222,177,87,.5);clip-path:polygon(50% 0,92% 22%,92% 72%,50% 100%,8% 72%,8% 22%);background:linear-gradient(145deg,#3a2b1d,#121c1d);color:#e1b861;filter:drop-shadow(0 9px 14px rgba(0,0,0,.38))}.title-seal>.ui-icon{width:42px;height:42px}.title-command-current>div{display:grid;gap:5px}.title-command-current small,.title-command-current aside small{color:#b08f55;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.title-command-current h2{margin:0;color:#eadcbc;font-family:Georgia,serif;font-size:clamp(26px,2.2vw,38px);font-weight:400}.title-command-current p{max-width:66ch;margin:0;color:#9a9d96;font-size:12px}.title-command-current aside{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;padding:13px;border:1px solid rgba(205,159,76,.28);background:rgba(5,10,11,.32)}.title-command-current aside small{grid-column:1/-1}.title-command-current aside b{overflow:hidden;color:#d8c9aa;font-family:Georgia,serif;font-size:17px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.title-command-current aside>span{display:flex;align-items:center;gap:5px;color:#d7ad57;font-size:11px}.title-command-current aside>span>.ui-icon{width:20px;height:20px}.title-command-current aside>.btn{grid-column:1/-1;margin-top:6px}.title-command-current aside.complete{grid-template-columns:34px 1fr;color:#dbb661}.title-command-current aside.complete>.ui-icon{width:34px;height:34px}.title-current-benefits{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid var(--line)}.title-current-benefits>span{display:grid;gap:8px;padding:13px 18px}.title-current-benefits>span+span{border-left:1px solid var(--line)}.title-current-benefits>span>small{color:#7d837e;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.title-benefits{display:flex;flex-wrap:wrap;gap:6px}.title-benefits>span{display:flex;align-items:center;gap:5px;min-height:28px;padding:4px 7px;border:1px solid rgba(118,134,126,.18);background:rgba(5,11,12,.22);color:#8f9b92}.title-benefits>span.unlock{border-color:rgba(211,164,78,.26);color:#caaa6d}.title-benefits .ui-icon{flex:0 0 auto;width:17px;height:17px}.title-benefits b{font-size:10px;font-weight:500}.title-ladder{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:8px;padding:14px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-color:#7c5c32 #11191a}.title-rank-card{position:relative;display:grid;grid-template-rows:auto auto auto minmax(64px,1fr) auto;gap:5px;min-height:222px;padding:12px;border:1px solid rgba(109,122,116,.18);background:linear-gradient(155deg,rgba(27,38,39,.88),rgba(9,15,16,.92));scroll-snap-align:start}.title-rank-card.locked{opacity:.58}.title-rank-card.owned{border-color:rgba(105,151,128,.3)}.title-rank-card.current{border-color:rgba(222,177,87,.72);background:radial-gradient(circle at 84% 8%,rgba(222,177,87,.16),transparent 36%),linear-gradient(155deg,rgba(38,43,39,.96),rgba(13,20,20,.96));box-shadow:inset 0 0 24px rgba(222,177,87,.07)}.title-rank-card.next{border-color:rgba(199,146,79,.48)}.title-rank-card>header{display:flex;justify-content:space-between;align-items:center;color:#766d59}.title-rank-card>header>span{font-family:Georgia,serif;font-size:20px}.title-rank-card>header>.ui-icon{width:24px;height:24px}.title-rank-card>small{color:#737c77;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.title-rank-card h3{min-height:43px;margin:0;color:#d3c7ae;font-family:Georgia,serif;font-size:18px;font-weight:400;line-height:1.16}.title-rank-card .title-benefits{align-content:start}.title-rank-card .title-benefits>span{width:100%;min-height:24px;padding:3px 5px}.title-rank-card>footer{display:grid;gap:6px;align-self:end}.title-rank-card>footer>span{display:flex;align-items:center;gap:5px;min-height:30px;color:#79aa91;font-size:10px}.title-rank-card>footer .ui-icon{width:17px;height:17px}.title-honor-cost{color:#caa45c!important}.title-honor-cost b{font-size:14px}
.dynasty-command-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.72fr);gap:18px}.dynasty-command-grid>main,.dynasty-side{display:grid;align-content:start;gap:18px}.regent-dossier{overflow:hidden}.regent-portrait-stage{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);align-items:end;min-height:315px;padding:20px 24px 0;background:radial-gradient(ellipse at 18% 100%,rgba(192,137,60,.17),transparent 52%),linear-gradient(130deg,rgba(32,44,43,.88),rgba(10,17,18,.95))}.regent-primary-art{align-self:stretch;width:100%!important;height:290px!important;background-position:center bottom!important;background-size:contain!important;background-repeat:no-repeat!important;filter:drop-shadow(0 15px 15px rgba(0,0,0,.48))}.regent-portrait-stage>span{display:grid;align-self:center;gap:5px;padding:16px}.regent-portrait-stage small{color:#bd9550;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.regent-portrait-stage h2{margin:0;color:#e4d5b7;font-family:Georgia,serif;font-size:clamp(28px,2.4vw,42px);font-weight:400}.regent-portrait-stage p{margin:0!important;color:#929992}.regent-portrait-stage em{justify-self:start;margin-top:4px;padding:4px 8px;border:1px solid rgba(106,158,132,.28);color:#78a990;font-size:10px;font-style:normal}.regent-dossier-ledger{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}.regent-dossier-ledger>div{display:grid;align-content:start;gap:8px;padding:15px 18px}.regent-dossier-ledger>div+div{border-left:1px solid var(--line)}.regent-dossier-ledger>div>small,.dynasty-section-label{color:#817f73;font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.dynasty-traits{display:flex;flex-wrap:wrap;gap:6px}.dynasty-trait{display:flex;align-items:center;gap:5px;min-height:31px;padding:4px 7px;border:1px solid rgba(141,117,71,.22);background:rgba(103,74,29,.08);color:#b7aa91}.dynasty-trait>.ui-icon{width:18px;height:18px}.dynasty-trait b{font-size:10px;font-weight:500}.dynasty-trait em{color:#80aa91;font-size:10px;font-style:normal}.dynasty-traits.compact .dynasty-trait{min-height:24px;padding:2px 5px}.dynasty-modifier-ledger{display:grid;gap:5px}.dynasty-modifier-ledger>span{display:flex;align-items:center;gap:6px;min-height:29px;padding:4px 7px;border-left:2px solid #6d9f84;background:rgba(55,105,80,.08);color:#91ad9c}.dynasty-modifier-ledger .ui-icon{width:17px;height:17px}.dynasty-modifier-ledger b{font-size:10px;font-weight:500}.dynasty-quiet-copy{margin:0!important;color:#7f8781;font-size:12px;line-height:1.55}
.family-tree-panel{overflow:hidden}.family-tree{display:grid;gap:0;padding:16px;overflow:auto}.family-generation{position:relative;display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;min-width:620px;padding:0 0 18px}.family-generation:last-child{padding-bottom:0}.family-generation::before{position:absolute;top:0;bottom:0;left:80px;width:1px;background:linear-gradient(#876738,#3b473f);content:""}.family-generation>header{position:relative;z-index:1;padding-top:12px}.family-generation>header span{display:inline-grid;place-items:center;min-width:78px;min-height:27px;border:1px solid rgba(177,133,64,.35);background:#111a1b;color:#a9874f;font-size:10px;text-transform:uppercase}.family-generation>div{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:9px}.dynasty-person{position:relative;display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;min-height:116px;padding:9px;border:1px solid rgba(116,130,123,.2);background:linear-gradient(145deg,rgba(24,35,36,.92),rgba(10,16,17,.9))}.dynasty-person.reigning{border-color:rgba(207,158,73,.56);box-shadow:inset 0 0 22px rgba(207,158,73,.07)}.dynasty-person.deceased{filter:saturate(.4);opacity:.68}.dynasty-person-art{width:76px!important;height:96px!important;background-position:center bottom!important;background-size:contain!important;background-repeat:no-repeat!important}.dynasty-person>div{display:grid;align-content:center;gap:3px}.dynasty-person small{color:#7b847e;font-size:10px}.dynasty-person h3{margin:0;color:#d2c5ab;font-family:Georgia,serif;font-size:16px;font-weight:400}.dynasty-person>div>em{color:#767c78;font-size:10px;font-style:normal}.dynasty-person .btn{justify-self:start;margin-top:5px}.dynasty-genes{color:#8a7d68!important}.dynasty-portrait-placeholder{display:grid;place-items:center;border:1px solid var(--line);background:#101819}.dynasty-portrait-placeholder>.ui-icon{width:40px;height:40px}
.spouse-panel>.panel-inner,.succession-panel>.panel-inner,.dynasty-chronicle>.panel-inner{display:grid;gap:10px}.spouse-panel .dynasty-person,.succession-panel .dynasty-person{grid-template-columns:68px minmax(0,1fr);min-height:105px}.spouse-panel .dynasty-person-art,.succession-panel .dynasty-person-art{width:68px!important;height:86px!important}.unbound-house{display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:start;padding:12px;border:1px dashed rgba(126,139,132,.25);background:rgba(0,0,0,.09)}.unbound-house>.ui-icon{width:34px;height:34px;color:#8d7956}.unbound-house span{display:grid;gap:3px}.unbound-house b{color:#bdb19b;font-size:12px}.unbound-house p{margin:0!important;color:#7f8782!important}.marriage-proposals{display:grid;gap:7px;margin-top:3px}.marriage-proposal{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;padding:9px;border:1px solid rgba(177,134,64,.25);background:rgba(89,60,24,.08)}.marriage-proposal>.ui-icon{width:26px;height:26px}.marriage-proposal>span{display:grid;gap:2px}.marriage-proposal small,.marriage-proposal em{color:#7d857f;font-size:10px;font-style:normal}.marriage-proposal b{color:#cfc1a7;font-size:12px}.marriage-proposal>div{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.3fr;gap:6px}.marriage-proposal>strong{grid-column:1/-1;color:#a69575;font-size:10px;text-transform:uppercase}.dynasty-event{display:grid;grid-template-columns:29px minmax(0,1fr);gap:8px;padding:8px 0;border-bottom:1px solid rgba(106,119,113,.14)}.dynasty-event:last-child{border-bottom:0}.dynasty-event>.ui-icon{width:27px;height:27px}.dynasty-event>span{display:grid;gap:2px}.dynasty-event small{color:#717a74;font-size:10px}.dynasty-event b{color:#bdb29f;font-size:11px}.dynasty-event p{margin:0!important;color:#7f8781!important;font-size:10px!important}.title-upgrade-confirm{display:grid;justify-items:center;gap:14px;text-align:center}.title-upgrade-confirm p{max-width:48ch}.title-upgrade-confirm .title-benefits{justify-content:center}.dynasty-marriage-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.dynasty-marriage-results{display:grid;gap:7px;margin-top:14px}.dynasty-marriage-candidate{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.dynasty-candidate-art{width:54px!important;height:58px!important}.dynasty-marriage-candidate>span{display:grid;gap:2px}.dynasty-marriage-candidate small,.dynasty-marriage-candidate em{overflow:hidden;color:#77807a;font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.dynasty-marriage-candidate b{color:#c9bca4;font-size:12px}.dynasty-appoint-confirm{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center}.dynasty-appoint-art{width:150px!important;height:190px!important;background-position:center bottom!important;background-size:contain!important}.dynasty-appoint-confirm>div{display:grid;gap:10px}.npc-relation-form{display:grid;gap:12px}.npc-relation-form>p{margin:0!important}.npc-relation-form>small{color:#828a84;font-size:10px}
.npc-relation-card{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px solid rgba(163,130,74,.3);background:linear-gradient(145deg,rgba(62,47,28,.18),rgba(9,15,16,.44))}.npc-relation-card>header{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center}.npc-relation-card .npc-regent-art{width:42px!important;height:50px!important;background-position:center bottom!important;background-size:contain!important}.npc-relation-card>header>.ui-icon{width:36px;height:36px}.npc-relation-card>header>span{display:grid;gap:1px}.npc-relation-card small{color:#8b8170;font-size:10px;text-transform:uppercase}.npc-relation-card b{overflow:hidden;color:#cfc0a6;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.npc-relation-card em{color:#c7a258;font-size:10px;font-style:normal}.npc-relation-meter{position:relative;height:5px;background:linear-gradient(90deg,#843f3c 0 30%,#756744 50%,#4c8b6a 72%,#78b18f 100%)}.npc-relation-meter>i{position:absolute;inset:0 auto 0 0;background:rgba(255,255,255,.16)}.npc-relation-meter>span{position:absolute;top:-3px;width:2px;height:11px;background:#f0d49a;box-shadow:0 0 5px #d7b56b;transform:translateX(-1px)}.npc-relation-card>p{margin:0!important;color:#7f8780!important;font-size:10px!important;line-height:1.45!important}.npc-relation-card>footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.npc-relation-card>footer>.btn{min-width:0;justify-content:center;padding:5px}.npc-relation-card>footer>.btn:last-child:nth-child(3){grid-column:1/-1}.npc-relation-card.standing-blood-feud,.npc-relation-card.standing-hostile{border-color:rgba(184,85,73,.38)}.npc-relation-card.standing-trusted,.npc-relation-card.standing-oathbound{border-color:rgba(96,174,132,.43)}
@media(max-width:1180px){.dynasty-command-grid{grid-template-columns:1fr}.dynasty-side{grid-template-columns:repeat(3,minmax(0,1fr))}.title-command-current{grid-template-columns:70px minmax(0,1fr) minmax(220px,280px)}}
@media(max-width:820px){.title-command-current{grid-template-columns:58px minmax(0,1fr);padding:16px}.title-seal{width:56px;height:56px}.title-seal>.ui-icon{width:34px;height:34px}.title-command-current aside{grid-column:1/-1}.title-current-benefits{grid-template-columns:1fr}.title-current-benefits>span+span{border-top:1px solid var(--line);border-left:0}.dynasty-side{grid-template-columns:1fr}.regent-portrait-stage{grid-template-columns:minmax(135px,42%) minmax(0,1fr);min-height:250px;padding:14px 14px 0}.regent-primary-art{height:235px!important}.regent-dossier-ledger{grid-template-columns:1fr}.regent-dossier-ledger>div+div{border-top:1px solid var(--line);border-left:0}.family-generation>div{grid-template-columns:minmax(250px,1fr)}}
@media(max-width:520px){.honor-balance{width:100%}.title-command-current{grid-template-columns:1fr;text-align:center}.title-command-current>.title-seal{justify-self:center}.title-command-current aside{text-align:left}.title-ladder{grid-auto-columns:minmax(176px,84%);padding:10px}.title-rank-card{min-height:214px}.regent-portrait-stage{grid-template-columns:1fr;justify-items:center;padding-top:16px;text-align:center}.regent-primary-art{width:min(220px,76%)!important;height:220px!important}.regent-portrait-stage>span{padding:4px 10px 18px}.family-tree{padding:10px}.dynasty-marriage-search{grid-template-columns:1fr}.dynasty-marriage-candidate{grid-template-columns:48px minmax(0,1fr)}.dynasty-marriage-candidate>.btn{grid-column:1/-1;width:100%}.dynasty-appoint-confirm{grid-template-columns:1fr}.dynasty-appoint-art{justify-self:center}.npc-relation-card>footer{grid-template-columns:1fr}.npc-relation-card>footer>.btn:last-child:nth-child(3){grid-column:auto}}
.title-rank-card{grid-template-rows:auto auto auto minmax(96px,1fr) auto;min-height:258px}.regent-vital-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.regent-vital-ledger>span{display:grid;grid-template-columns:23px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;padding:7px;border:1px solid rgba(122,137,129,.18);background:rgba(3,8,9,.18)}.regent-vital-ledger .ui-icon{grid-row:1/3;width:21px;height:21px}.regent-vital-ledger small{color:#747d77;font-size:10px;text-transform:uppercase}.regent-vital-ledger b{overflow:hidden;color:#aca592;font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}@media(max-width:520px){.title-rank-card{min-height:250px}.regent-vital-ledger{grid-template-columns:1fr;text-align:left}}

/* Version 3.1.1: lighter dynasty rendering and keyboard/touch navigation. */
.title-ladder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:7px 14px;border-bottom:1px solid var(--line);background:rgba(5,10,11,.18)}
.title-ladder-toolbar>span{display:flex;align-items:center;gap:7px;color:#a98b57;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.title-ladder-toolbar>span>.ui-icon{width:19px;height:19px}.title-ladder-toolbar nav{display:flex;gap:5px}.title-ladder-toolbar .btn{min-width:36px;padding:6px}.title-ladder-toolbar .btn>.ui-icon{width:17px;height:17px}.title-ladder-toolbar .btn.previous>.ui-icon{transform:rotate(180deg)}
.title-ladder{overscroll-behavior-x:contain;scroll-padding-inline:14px}.title-rank-card{content-visibility:auto;contain-intrinsic-size:190px 258px}.family-tree{overscroll-behavior:contain;scrollbar-color:#705634 #11191a}
.title-ladder:focus-visible,.dynasty-trait:focus-visible,.dynasty-person:focus-within{outline:2px solid rgba(225,184,97,.78);outline-offset:-2px}.dynasty-trait:focus-visible{background:rgba(154,111,44,.2)}

/* Regent portrait variants, child naming, and public court dossiers. */
.dynasty-person-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.dynasty-person-actions .btn{margin:0}.dynasty-child-name{display:grid;gap:14px}.dynasty-child-name>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:15px;align-items:center}.dynasty-child-name .dynasty-appoint-art{width:120px!important;height:150px!important}.dynasty-child-name p{margin:0!important}.profile-regent{display:grid;grid-template-columns:110px minmax(180px,.7fr) minmax(220px,1fr);gap:14px;align-items:center;padding:13px;border:1px solid rgba(194,148,73,.38);background:linear-gradient(125deg,rgba(126,82,31,.12),rgba(9,15,16,.75))}.profile-regent>header{grid-column:2}.profile-regent>header small{color:#8f8069;font-size:10px;text-transform:uppercase}.profile-regent>header h3{margin:3px 0;color:#dfcfb1;font-family:Georgia,serif;font-size:20px;font-weight:400}.profile-regent>header p{margin:0;color:#89918b}.profile-regent-art{grid-column:1;grid-row:1;width:110px!important;height:138px!important;background-position:center bottom!important;background-size:contain!important;background-repeat:no-repeat!important}.profile-regent>div{grid-column:3;grid-row:1;display:grid;gap:8px;min-width:0}.profile-regent .dynasty-modifier-ledger{grid-template-columns:1fr}.npc-regent-modifiers{display:grid;gap:5px;padding:7px;border:1px solid rgba(133,117,83,.2);background:rgba(0,0,0,.12)}.npc-regent-modifiers>.dynasty-modifier-ledger{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.npc-regent-modifiers>.dynasty-modifier-ledger>span{min-width:0;padding:4px}.npc-regent-modifiers>.dynasty-modifier-ledger b{font-size:10px;white-space:normal}.npc-regent-modifiers>.dynasty-quiet-copy{margin:0!important;font-size:10px!important}
@media(max-width:760px){.profile-regent{grid-template-columns:82px minmax(0,1fr)}.profile-regent-art{width:82px!important;height:104px!important}.profile-regent>header{grid-column:2}.profile-regent>div{grid-column:1/-1;grid-row:auto}.dynasty-child-name>div{grid-template-columns:86px minmax(0,1fr)}.dynasty-child-name .dynasty-appoint-art{width:86px!important;height:108px!important}}
.mission-hero-influence{grid-column:1/-1;display:grid;gap:5px;padding:8px 10px;border:1px solid rgba(99,154,119,.3);background:rgba(45,92,61,.1)}.mission-hero-influence>small{color:#8f9d91;font-size:10px;text-transform:uppercase}.mission-hero-influence>div{display:flex;flex-wrap:wrap;gap:6px}.mission-hero-influence span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid rgba(115,135,123,.25);font-size:10px}.mission-hero-influence .ui-icon{width:14px;height:14px}.mission-hero-influence .positive{color:#8fc59d}.mission-hero-influence .negative{color:#d18378}
@media(max-width:520px){.title-ladder-toolbar{padding-inline:10px}.title-ladder-toolbar nav{display:grid;grid-template-columns:1fr 1fr}.title-ladder-toolbar .btn{min-width:42px}}

/* v4.3 streamed world map: the worker owns terrain pixels while accessible
   DOM markers and SVG movements remain independent interaction layers. */
.world-map.map-engine-active .map-viewport>#mapCanvas{
  inset:0!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:100%!important;
  background:#0d1719;
  image-rendering:auto;
  transform:none!important;
}
.world-map.map-engine-active .map-material-layer{display:none}
.world-map.map-engine-active:not(.map-frame-ready) .map-marker-layer,
.world-map.map-engine-active:not(.map-frame-ready) .map-movement-layer{visibility:hidden}
.world-map.map-engine-active .map-marker-layer,
.world-map.map-engine-active .map-movement-layer{
  will-change:auto;
  backface-visibility:visible;
  transform:none;
}
.world-map.map-engine-active.dragging .map-marker-layer,
.world-map.map-engine-active.dragging .map-movement-layer,
.world-map.map-engine-active.zooming .map-marker-layer,
.world-map.map-engine-active.zooming .map-movement-layer{transition:none!important}
.map-engine-builder{grid-template-columns:minmax(240px,1fr) 130px auto auto!important}
.map-engine-status{padding:5px 8px;border:1px solid var(--line);color:#8b948e;font-size:10px;font-style:normal;white-space:nowrap}
.map-engine-status.status-ready{border-color:rgba(90,174,126,.38);color:#83bd9b}
.map-engine-status.status-building{border-color:rgba(206,158,78,.4);color:#d2a65d}
.map-engine-status.status-failed{border-color:rgba(194,78,70,.42);color:#da8379}
@media(max-width:760px){.map-engine-builder{grid-template-columns:1fr!important}.map-engine-status{width:max-content;max-width:100%}}
@media(prefers-reduced-motion:reduce){.title-ladder{scroll-behavior:auto}.title-rank-card,.dynasty-trait{transition:none!important}}

/* Version 3.1.1: authoritative title gates and city-capacity affordances. */

.dynasty-marriage-candidate.unavailable {
  opacity: .68;
}

.dynasty-marriage-candidate .marriage-eligibility {
  display: block;
  margin-top: .3rem;
  color: var(--muted);
}

.dynasty-marriage-candidate.eligible .marriage-eligibility {
  color: var(--success);
}
.city-domain-header>span:last-child{display:inline-flex;align-items:center;min-height:26px;padding:3px 7px;border:1px solid rgba(92,153,124,.28);background:rgba(44,101,76,.1);color:#83b99c;font-variant-numeric:tabular-nums}.city-domain-header>span.capacity-full{border-color:rgba(208,96,84,.4);background:rgba(126,43,37,.13);color:#dc766c}
.requirement.title-gate,.requirement.city-capacity{min-width:0;max-width:100%;font-size:10px}.requirement.title-gate>.ui-icon,.requirement.city-capacity>.ui-icon{flex:0 0 auto;width:16px;height:16px}.requirement.title-gate span,.requirement.city-capacity span{white-space:nowrap}.requirement.title-gate b,.requirement.city-capacity b{overflow:hidden;min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap}.requirement.title-gate.met{border-color:rgba(196,150,75,.38);background:rgba(144,98,36,.09);color:#d0ab68}
.recruit-title-requirement{margin:7px 0 1px}.recruit-preview .recruit-title-requirement .requirement{margin:0}.title-lock-warning{color:#d39a5f}.inspector-capacity{margin:9px 0}.inspector-capacity .requirement{width:100%;justify-content:flex-start}
@media(max-width:520px){.requirement.title-gate,.requirement.city-capacity{width:100%}.city-domain-header>span:last-child{min-height:24px}}

/* Keep the longest translated recruitment requirements inside the same-size
   phone cards instead of letting title-gated companies overlap the next row. */
@media(max-width:430px){.recruit-unit-grid{grid-auto-rows:448px!important}.recruit-unit-card{min-height:448px!important}}

/* v3.1.2 court petitions and a wider protected-storage ledger. */
.undercroft-modal{width:min(980px,calc(100vw - 24px))!important}.undercroft-modal .special-storage-ledger{min-width:0}.undercroft-modal .special-resource-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}

/* Compact authoritative population and Undercroft ledgers. */
.resource-chip.population-resource{appearance:none;cursor:pointer;text-align:left}.resource-chip.population-resource:hover,.resource-chip.population-resource:focus-visible{border-color:rgba(206,161,86,.58);background:rgba(198,148,76,.1);outline:0}
.population-ledger-modal{width:min(760px,calc(100vw - 20px))!important}.population-ledger-summary{display:grid;grid-template-columns:minmax(170px,.45fr) minmax(0,1fr);align-items:center;gap:14px;padding:14px;border:1px solid rgba(193,145,76,.34);background:linear-gradient(115deg,rgba(91,62,30,.16),rgba(0,0,0,.13))}.population-ledger-summary>span{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:2px 9px}.population-ledger-summary .ui-icon{grid-row:1/3;width:32px;height:32px;color:#d1a357}.population-ledger-summary b{color:#e2c88e;font:600 21px Georgia,serif}.population-ledger-summary small,.population-ledger-summary p{margin:0;color:#96a099;font-size:10px;line-height:1.5}.population-unit-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.population-unit-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:9px;border:1px solid rgba(111,128,116,.25);background:rgba(0,0,0,.13)}.population-unit-art{width:58px;height:58px;background-size:contain!important}.population-unit-row>div{display:grid;gap:2px;min-width:0}.population-unit-row>div>small{color:#8b958f;font-size:10px}.population-unit-row>div>b{overflow:hidden;color:#d6c8ab;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.population-unit-row>div>span{display:flex;flex-wrap:wrap;gap:3px 8px;color:#89958e;font-size:10px}.population-unit-row>div>span b{color:#b9c6bd}.population-unit-row>strong{display:grid;color:#d8aa5d;font:600 20px Georgia,serif;text-align:right}.population-unit-row>strong small{color:#849088;font:700 10px Arial,sans-serif;white-space:nowrap}
.undercroft-modal{width:min(860px,calc(100vw - 20px))!important}.undercroft-modal .special-storage-ledger{margin-bottom:10px}.undercroft-modal .special-storage-ledger>header{padding:10px 12px}.undercroft-modal .special-storage-ledger>header .ui-icon{width:25px;height:25px}.undercroft-modal .special-storage-ledger h3{font-size:17px}.undercroft-modal .special-storage-ledger>header>strong{font-size:20px}.undercroft-modal .special-resource-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px}.undercroft-modal .special-resource-card{grid-template-columns:38px minmax(0,1fr);min-height:58px;gap:7px;padding:7px}.undercroft-modal .special-resource-card .special-resource-art{width:38px;height:38px}.undercroft-modal .special-resource-card b{font-size:16px}.undercroft-modal .special-storage-ledger>footer{padding:8px 10px}
@media(max-width:760px){.population-ledger-summary{grid-template-columns:1fr}.population-unit-ledger{grid-template-columns:1fr}.undercroft-modal .special-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.undercroft-modal .special-storage-ledger>header>span>span>p,.undercroft-modal .special-storage-ledger>footer span small{display:none}}
@media(min-width:521px) and (max-width:760px){.undercroft-modal .special-resource-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.undercroft-modal .special-resource-card{grid-template-columns:32px minmax(0,1fr);min-height:52px;padding:6px}.undercroft-modal .special-resource-card .special-resource-art{width:32px;height:32px}}

/* Regent quality uses the same rarity language as heroes and relics while
   keeping the optional family bonuses deliberately restrained. */
.dynasty-quality{display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%;padding:3px 7px;border:1px solid color-mix(in srgb,currentColor 38%,transparent);background:rgba(0,0,0,.2);font-size:10px;line-height:1}.dynasty-quality .ui-icon{width:13px;height:13px}.dynasty-quality b{font-size:10px}.dynasty-quality small{padding-left:5px;border-left:1px solid currentColor;color:inherit;font-size:10px;opacity:.72}.dynasty-quality.rarity-ordinary{color:#a8aaa8}.dynasty-quality.rarity-unusual{color:#73bf83}.dynasty-quality.rarity-rare{color:#6da7de}.dynasty-quality.rarity-epic{color:#b287dc}.dynasty-quality.rarity-legendary{color:#dcad55}.dynasty-quality.rarity-mythical{color:#b94b4d}.dynasty-person,.regent-dossier,.npc-relation-card{position:relative}.dynasty-person.rarity-unusual,.regent-dossier.rarity-unusual{box-shadow:inset 2px 0 rgba(91,176,111,.48)}.dynasty-person.rarity-rare,.regent-dossier.rarity-rare{box-shadow:inset 2px 0 rgba(91,146,205,.55)}.dynasty-person.rarity-epic,.regent-dossier.rarity-epic{box-shadow:inset 2px 0 rgba(160,104,207,.6),0 0 14px rgba(160,104,207,.08)}.dynasty-person.rarity-legendary,.regent-dossier.rarity-legendary{box-shadow:inset 2px 0 rgba(215,157,57,.7),0 0 16px rgba(215,157,57,.1)}.dynasty-person.rarity-mythical,.regent-dossier.rarity-mythical{box-shadow:inset 2px 0 rgba(149,43,49,.85),0 0 18px rgba(149,43,49,.13)}
.npc-active-request{display:grid;gap:8px;padding:9px;border:1px solid rgba(208,158,72,.38);background:linear-gradient(120deg,rgba(128,82,26,.15),rgba(4,10,11,.4))}.npc-active-request>header{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:7px;align-items:center}.npc-active-request>header>.ui-icon{width:25px;height:25px;color:#d1a154}.npc-active-request>header>span{display:grid;gap:1px}.npc-active-request>header time{color:#d2ad68;font-size:10px}.npc-active-request>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px;color:#9aa198;font-size:10px}.npc-active-request>div>span,.npc-active-request>div>strong{display:flex;align-items:center;gap:4px}.npc-active-request>div .resource-glyph,.npc-active-request>div .ui-icon{width:19px;height:19px}.npc-active-request>div>strong{color:#d0aa64}.npc-active-request>.btn{width:100%}.npc-active-request.reserved{opacity:.66}.npc-active-request>p{margin:0!important;color:#8b918c!important;font-size:10px!important}
.npc-request-form{display:grid;gap:14px}.npc-request-form>header{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);background:rgba(0,0,0,.14)}.npc-request-form>header>.ui-icon{width:34px;height:34px;color:#c99950}.npc-request-form>header>span{display:grid;gap:2px}.npc-request-form>header small{color:#858d87;font-size:10px;text-transform:uppercase}.npc-request-form>header b{color:#d0c3aa}.npc-request-form>header>strong{display:flex;align-items:center;gap:5px;color:#d4aa5d;white-space:nowrap}.npc-request-form>header>strong>.ui-icon{width:20px;height:20px}.npc-request-unit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:330px;overflow:auto}.npc-request-unit-grid>label{display:grid;grid-template-columns:50px minmax(0,1fr) 72px;gap:8px;align-items:center;padding:7px;border:1px solid var(--line);background:rgba(5,10,11,.28)}.npc-request-unit-art{width:50px!important;height:50px!important;background-size:contain!important;background-repeat:no-repeat!important}.npc-request-unit-grid>label>span{display:grid;gap:2px}.npc-request-unit-grid small{color:#7d8580;font-size:10px}.npc-request-unit-grid input{min-width:0}.npc-request-cargo{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line)}.npc-request-cargo>span{display:flex;align-items:center;gap:5px;color:#9c9d91}.npc-request-cargo .ui-icon{width:20px;height:20px}
@media(max-width:620px){.undercroft-modal{width:calc(100vw - 10px)!important}.npc-request-form>header{grid-template-columns:32px minmax(0,1fr)}.npc-request-form>header>strong{grid-column:1/-1}.npc-request-unit-grid{grid-template-columns:1fr}.npc-request-cargo{align-items:flex-start;flex-direction:column}}

/* v3.1.2 compact illustrated NPC market audience. */
.npc-partner-picker{min-width:0;margin:0;padding:0;border:0}.npc-partner-picker>legend{display:flex;align-items:baseline;justify-content:space-between;width:100%;margin-bottom:6px;color:#aa9a7b;font-size:11px;font-weight:700}.npc-partner-picker>legend small{color:#737d77;font-size:10px;font-weight:500}.npc-partner-picker>div{display:grid;gap:5px;max-height:246px;padding-right:3px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#705735 #11191a}.npc-partner-option{position:relative;display:grid!important;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:68px;margin:0!important;padding:6px 8px!important;border:1px solid rgba(118,130,122,.2);background:linear-gradient(105deg,rgba(17,27,28,.9),rgba(5,11,12,.76));cursor:pointer;transition:border-color .16s ease,background .16s ease}.npc-partner-option:hover{border-color:rgba(196,150,75,.4);background:linear-gradient(105deg,rgba(89,64,29,.15),rgba(5,11,12,.8))}.npc-partner-option.selected{border-color:rgba(218,169,84,.65);box-shadow:inset 3px 0 #c58d3e}.npc-partner-option>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.npc-partner-option-art{display:grid;place-items:center;width:56px;height:56px;overflow:hidden}.npc-market-poi-art{width:56px!important;height:56px!important;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important;filter:drop-shadow(0 4px 4px rgba(0,0,0,.45))}.npc-partner-option-copy{display:grid;gap:4px;min-width:0}.npc-partner-option-copy>b{overflow:hidden;color:#d4c7ad;font:500 13px Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.npc-partner-option-copy>small{display:flex;align-items:center;gap:5px;color:#8e978f;font-size:10px}.npc-partner-option-copy .resource-glyph{width:22px;height:22px}.npc-partner-option-time{display:grid;grid-template-columns:18px auto;grid-template-rows:auto auto;align-items:center;gap:1px 5px;text-align:right}.npc-partner-option-time>.ui-icon{grid-row:1/3;width:18px;height:18px;color:#bb8c49}.npc-partner-option-time>b{color:#d7b66f;font-size:11px}.npc-partner-option-time>small{color:#747d77;font-size:10px}.npc-partner-picker.empty{display:flex;align-items:center;gap:8px;padding:12px;border:1px dashed var(--line);color:#818a84;font-size:10px}.npc-partner-picker.empty>.ui-icon{width:24px;height:24px}.npc-partner-picker[disabled]{opacity:.58;pointer-events:none}
.exchange-wheel>.npc-partner-summary{margin-top:2px}.exchange-wheel>.npc-daily-ledger{grid-template-columns:28px minmax(0,1fr) auto}.exchange-wheel>.npc-daily-ledger>.ui-icon{width:25px;height:25px}
@media(max-width:480px){.npc-partner-picker>legend{align-items:flex-start;flex-direction:column;gap:2px}.npc-partner-option{grid-template-columns:50px minmax(0,1fr)}.npc-partner-option-art,.npc-market-poi-art{width:48px!important;height:48px!important}.npc-partner-option-time{grid-column:2;display:flex;text-align:left}.npc-partner-option-time>.ui-icon{width:15px;height:15px}.exchange-wheel>.npc-daily-ledger{grid-template-columns:24px minmax(0,1fr)}.exchange-wheel>.npc-daily-ledger>time{grid-column:2;text-align:left}}

.npc-aid-report-hero{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:13px;align-items:center;margin:12px 0;padding:13px;border:1px solid rgba(199,146,79,.28);background:linear-gradient(110deg,rgba(36,54,50,.72),rgba(10,17,18,.88))}.npc-aid-report-art{width:70px!important;height:70px!important}.npc-aid-report-hero>span{display:grid;gap:3px;min-width:0}.npc-aid-report-hero small,.npc-aid-delivery>small{color:#8d948d;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.npc-aid-report-hero h2{margin:0;color:#d7c9ac;font:500 20px Georgia,serif}.npc-aid-report-hero p{margin:0;color:#929a93;font-size:12px;line-height:1.5}.npc-aid-report-hero>strong{display:flex;align-items:center;gap:5px;color:#d9ad5e;white-space:nowrap}.npc-aid-report-hero>strong>.ui-icon{width:24px;height:24px}.npc-aid-delivery{display:grid;gap:8px;padding:12px;border:1px solid var(--line);background:rgba(0,0,0,.12)}
@media(max-width:560px){.npc-aid-report-hero{grid-template-columns:58px minmax(0,1fr)}.npc-aid-report-art{width:56px!important;height:56px!important}.npc-aid-report-hero>strong{grid-column:1/-1}.npc-aid-report-hero h2{font-size:17px}}
.admin-special-poi-tool{display:grid;grid-template-columns:minmax(220px,1fr) minmax(130px,180px) auto;align-items:end;gap:10px;padding:11px;border:1px solid rgba(128,158,137,.28);background:linear-gradient(100deg,rgba(43,91,68,.1),rgba(4,10,11,.28))}.admin-special-poi-tool>span{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px}.admin-special-poi-tool>span>.ui-icon{width:28px;height:28px;color:#79ae8e}.admin-special-poi-tool>span>span{display:grid;gap:2px}.admin-special-poi-tool b{color:#b9c7ba;font-size:11px}.admin-special-poi-tool small{color:#7e8982;font-size:10px;line-height:1.4}.admin-special-poi-tool label{margin:0!important}.admin-special-poi-tool .btn{min-height:39px}@media(max-width:720px){.admin-special-poi-tool{grid-template-columns:1fr}.admin-special-poi-tool .btn{width:100%}}

/* v3.1.4 viewport-first world map, semantic movements, and court QoL. */
body:has(.world-map-view){height:100dvh;overflow:hidden}
body:has(.world-map-view) .main-content{height:calc(100dvh - var(--topbar));min-height:0;padding-bottom:20px;overflow:hidden}
body:has(.world-map-view) #viewRoot{height:100%;min-height:0}
.world-map-view{
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr);
  height:100%;
  min-height:0;
  overflow:hidden;
}
.world-map-view>.view-header{align-items:center;margin-bottom:8px}
.world-map-view>.view-header .view-title>p:last-child{margin-top:3px;line-height:1.35}
.world-map-view>.map-style-switch,.world-map-view>.map-filter-switch{min-height:34px;margin:0 0 6px}
.world-map-view>.map-layout{height:100%!important;min-height:0!important}
.world-map-view .map-shell{height:100%!important;min-height:0!important;aspect-ratio:auto!important}
.map-layout:fullscreen,.map-layout.map-fullscreen-fallback{
  position:fixed!important;
  z-index:999!important;
  inset:0!important;
  display:block!important;
  width:100vw!important;
  height:100dvh!important;
  padding-top:48px!important;
  border:0!important;
  background:#081012!important;
}
.map-layout:fullscreen .map-shell,.map-layout.map-fullscreen-fallback .map-shell{width:100%!important;height:100%!important;min-height:0!important;aspect-ratio:auto!important}
body.map-fullscreen-open{overflow:hidden!important}
.map-fullscreen-toggle{position:relative}
.map-fullscreen-toggle::before,.map-fullscreen-toggle::after{position:absolute;inset:5px;border-color:#c79a52;border-style:solid;content:"";pointer-events:none}
.map-fullscreen-toggle::before{border-width:1px 0 0 1px}.map-fullscreen-toggle::after{border-width:0 1px 1px 0}
.map-fullscreen-toggle.active{border-color:#d8ad64;color:#e7c477;background:rgba(157,105,39,.22)}

/* Golden radiance identifies the rare, conquerable production strongholds. */
.map-marker.special-production-poi .map-target-core::before{
  position:absolute;
  z-index:0;
  inset:8%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,220,129,.68) 0,rgba(219,163,66,.32) 42%,transparent 72%);
  box-shadow:0 0 15px 5px rgba(222,169,69,.42),0 0 29px 9px rgba(173,107,26,.19);
  content:"";
  animation:special-poi-aura 2.4s ease-in-out infinite;
}
.map-marker.special-production-poi .map-target-core>.map-location-art{z-index:1}
@keyframes special-poi-aura{50%{opacity:.66;transform:scale(1.14);box-shadow:0 0 20px 7px rgba(239,188,87,.55),0 0 35px 12px rgba(173,107,26,.24)}}

/* Player seats grow with score while retaining one immutable world anchor. */
.map-marker.player-city-progress.city-progress-tier-1{width:calc(108px * var(--map-marker-zoom,1));height:calc(108px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-2{width:calc(120px * var(--map-marker-zoom,1));height:calc(120px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-3{width:calc(132px * var(--map-marker-zoom,1));height:calc(132px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-4{width:calc(146px * var(--map-marker-zoom,1));height:calc(146px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-5{width:calc(160px * var(--map-marker-zoom,1));height:calc(160px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress+.map-label{transform:translate(-50%,calc(84px * var(--map-marker-zoom,1) + 7px))}

/* Movement symbols describe intent at a glance and never inherit a round badge. */
.map-marker.cargo-route-marker{width:44px!important;height:44px!important}
.map-marker.cargo-route-marker .map-movement-art{width:48px!important;height:48px!important}
.movement-art-ui{background-size:72%!important;filter:drop-shadow(0 2px 1px rgba(0,0,0,.9)) drop-shadow(0 0 4px currentColor)!important}
.movement-art-unit{background-size:contain!important;transform:scale(1.14);transform-origin:center}
.movement-art-attack,.movement-art-incoming,.movement-art-raid,.movement-art-conquer,.movement-art-naval{color:#df7468}
.movement-art-support,.movement-art-troop-donation{color:#79b99b}
.movement-art-trade,.movement-art-donation,.movement-art-collect{color:#dab366}
.movement-art-scout,.movement-art-spy-movement{color:#74afbd}

/* Native, keyboard-friendly NPC partner combobox with a live illustrated dossier. */
.npc-partner-combobox{display:grid!important;gap:6px}
.npc-partner-combobox>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;color:#aa9a7b;font-size:11px;font-weight:700}
.npc-partner-combobox>span small{color:#737d77;font-size:10px;font-weight:500}
.npc-partner-select-shell{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr) 22px;align-items:center;gap:9px;min-height:68px;padding:5px 9px;border:1px solid rgba(196,150,75,.34);background:linear-gradient(105deg,rgba(35,45,42,.94),rgba(6,12,13,.88))}
.npc-partner-select-shell:focus-within{border-color:#d2a55c;box-shadow:inset 3px 0 #c58d3e}
.npc-market-select-art{width:56px!important;height:56px!important;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important;filter:drop-shadow(0 4px 4px rgba(0,0,0,.45))}
.npc-partner-select-shell select{width:100%;height:46px;min-width:0;padding:0 10px;border:0;background:#101819;color:#dac9a7;font:500 12px Georgia,serif;cursor:pointer}
.npc-partner-select-shell>.ui-icon{width:18px;height:18px;color:#c5964f;pointer-events:none}

.dynasty-header-actions{display:flex;align-items:stretch;gap:8px}.dynasty-header-actions>.btn{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;text-align:left}.dynasty-header-actions>.btn>.ui-icon{grid-row:1/3;width:22px;height:22px}.dynasty-header-actions>.btn>span{display:grid}.dynasty-header-actions>.btn small{color:#827762;font-size:10px}.dynasty-header-actions>.btn b{max-width:190px;overflow:hidden;color:#d4c4a3;font:500 13px Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.dynasty-house-name-form{display:grid;gap:13px}.dynasty-house-name-form>p{margin:0!important}

@media(max-width:760px){
  body:has(.world-map-view) .main-content{height:calc(100dvh - var(--topbar) - 68px);padding-top:8px;padding-bottom:8px}
  .world-map-view{position:relative;display:block;height:100%}
  .world-map-view>.view-header{display:none}
  .world-map-view>.map-style-switch,.world-map-view>.map-filter-switch{position:absolute;z-index:31;left:5px;min-height:30px;margin:0;background:rgba(7,13,14,.84);backdrop-filter:blur(8px)}
  .world-map-view>.map-style-switch{top:5px;right:132px}.world-map-view>.map-filter-switch{top:39px;right:5px}
  .world-map-view>.map-layout{height:100%!important;padding-top:0!important}
  .world-map-view .map-panel-toggles{z-index:32;top:5px}
  .world-map-view .map-marker.player-city-progress{min-width:51.52px;min-height:51.52px}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-1{width:calc(88px * var(--map-marker-zoom,1));height:calc(88px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-2{width:calc(98px * var(--map-marker-zoom,1));height:calc(98px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-3{width:calc(108px * var(--map-marker-zoom,1));height:calc(108px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-4{width:calc(120px * var(--map-marker-zoom,1));height:calc(120px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-5{width:calc(132px * var(--map-marker-zoom,1));height:calc(132px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress+.map-label{transform:translate(-50%,calc(70px * var(--map-marker-zoom,1) + 7px))}
  .world-map-view .map-shell:not(.navigation-hidden) .map-navigation{top:76px}
  .npc-partner-combobox>span{align-items:flex-start;flex-direction:column;gap:2px}
  .npc-partner-select-shell{grid-template-columns:48px minmax(0,1fr) 18px;min-height:58px;padding:4px 7px}.npc-market-select-art{width:46px!important;height:46px!important}
  .dynasty-header-actions{width:100%;flex-wrap:wrap}.dynasty-header-actions>.btn{flex:1}.dynasty-header-actions>.honor-balance{flex:0 0 auto}
}
@media(prefers-reduced-motion:reduce){.map-marker.special-production-poi .map-target-core::before{animation:none}}

/* v3.1.4 command polish, lighter map compositing, and compact realm ledgers. */
.resource-chip.population-resource{
  appearance:none;
  border:0;
  border-right:1px solid var(--line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:inherit;
  font:inherit;
  letter-spacing:inherit;
  cursor:pointer;
}
.resource-chip.population-resource:hover{background:rgba(255,255,255,.018)}
.resource-chip.population-resource:focus-visible{outline:1px solid rgba(206,161,86,.54);outline-offset:-3px}
.population-ledger-link{appearance:none;font:inherit}

/* Player-city art remains progressive, but is eight percent less dominant. */
.map-marker.player-city-progress.city-progress-tier-1{width:calc(99.36px * var(--map-marker-zoom,1));height:calc(99.36px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-2{width:calc(110.4px * var(--map-marker-zoom,1));height:calc(110.4px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-3{width:calc(121.44px * var(--map-marker-zoom,1));height:calc(121.44px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-4{width:calc(134.32px * var(--map-marker-zoom,1));height:calc(134.32px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress.city-progress-tier-5{width:calc(147.2px * var(--map-marker-zoom,1));height:calc(147.2px * var(--map-marker-zoom,1))}
.map-marker.player-city-progress+.map-label{transform:translate(-50%,calc(77.28px * var(--map-marker-zoom,1) + 7px))}

.npc-exchange-wheel{gap:10px;padding:14px}
.npc-exchange-wheel>.npc-partner-summary{display:grid;grid-template-columns:1fr;gap:7px;margin:0;padding:8px 10px}
.npc-exchange-wheel .npc-partner-facts{grid-column:auto;padding:0;border:0}
.npc-exchange-wheel .npc-production-profile{grid-column:auto;grid-template-columns:108px minmax(0,1fr);gap:7px;padding-top:7px}
.npc-exchange-wheel .npc-production-profile>div{gap:3px}
.npc-exchange-pair{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:end;gap:7px}
.npc-exchange-pair>.exchange-arrow{width:32px;height:48px;margin:0;transform:none}
.npc-trade-volume{display:grid!important;gap:6px;margin:0!important}.npc-trade-volume>span{color:#a89a7e;font-size:11px;font-weight:700}.npc-trade-volume input{height:44px}
.npc-load-ledger{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:48px;padding:8px 10px;border:1px solid rgba(91,155,136,.34);background:rgba(48,112,87,.09);color:#82bc9f}
.npc-load-ledger.missing{border-color:rgba(204,91,78,.34);background:rgba(125,43,36,.08);color:#d27469}.npc-load-ledger>.ui-icon{width:26px;height:26px}.npc-load-ledger>span{display:flex;align-items:baseline;gap:5px}.npc-load-ledger b{color:currentColor;font-size:14px;font-variant-numeric:tabular-nums}.npc-load-ledger small{color:#84908a;font-size:10px}.npc-load-ledger strong{color:#c7b896;font-size:11px;font-weight:600;white-space:nowrap}
.npc-exchange-wheel>.rate-preview{margin:0;padding:9px 10px}.npc-exchange-wheel>.btn.wide{margin-top:0}

.marriage-proposal{grid-template-columns:54px minmax(0,1fr) auto;gap:9px;min-height:70px;padding:7px 8px;background:linear-gradient(105deg,rgba(89,60,24,.11),rgba(5,11,12,.42))}
.marriage-proposal.incoming{border-color:rgba(106,172,139,.34);background:linear-gradient(105deg,rgba(45,104,78,.12),rgba(5,11,12,.42))}
.marriage-proposal-portrait{display:grid;place-items:center;width:52px;height:62px;overflow:hidden;border:1px solid rgba(181,142,79,.25);background:rgba(0,0,0,.18)}
.marriage-proposal-portrait>.ui-icon{width:29px;height:29px;color:#b69154}.marriage-proposal-art{width:52px!important;height:62px!important;background-size:contain!important;background-position:center bottom!important}
.marriage-proposal-copy{display:grid;align-content:center;gap:2px;min-width:0}.marriage-proposal-copy>small{color:#9e8458;font-size:10px;text-transform:uppercase}.marriage-proposal-copy>b{overflow:hidden;color:#dacbad;font:500 14px Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.marriage-proposal-copy>span{display:flex;align-items:center;gap:5px;min-width:0;color:#818b84;font-size:10px}.marriage-proposal-copy>span>.ui-icon{width:15px;height:15px}.marriage-proposal-copy button{overflow:hidden;padding:0;border:0;background:transparent;color:#a9b9ae;font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.marriage-proposal-copy button:hover{color:#d0ad6b}.marriage-proposal-meta{flex-wrap:wrap}.marriage-proposal-meta .dynasty-quality-badge{padding:2px 4px}.marriage-proposal-meta em{font-style:normal}.marriage-proposal-actions{display:flex!important;grid-column:auto!important;gap:5px;align-items:center}.marriage-proposal-actions>.btn{min-width:72px}

.map-inspector-scroll{box-sizing:border-box;padding-bottom:max(24px,env(safe-area-inset-bottom));scroll-padding-bottom:24px}
.map-inspector-frame{min-height:0;max-height:min(520px,calc(100dvh - 150px))}
.map-inspector-content{scroll-padding-bottom:12px}
.spot-inspector-frame{height:auto;max-height:min(430px,calc(100dvh - 110px))}
.spot-inspector-content{max-height:min(350px,calc(100dvh - 185px));padding:12px 14px 8px}
.spot-inspector-heading{display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:10px;padding:0 34px 10px 0;border-bottom:1px solid var(--line)}
.spot-inspector-heading>.inspector-icon.spot{width:46px;height:46px;margin:0}.spot-inspector-heading>.inspector-icon.spot>.ui-icon{width:25px;height:25px}.spot-inspector-heading>span{display:grid;gap:2px;min-width:0}.spot-inspector-heading h2{margin:0;font-size:20px}.spot-inspector-heading em{color:#858f88;font-size:10px;font-style:normal}.spot-inspector-details{padding-top:8px}.spot-inspector-details>.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.spot-inspector-details .stat-box{padding:7px}.spot-inspector-details .settlement-terrain-bonuses{gap:4px;margin:6px 0}.spot-inspector-details .settlement-terrain-bonuses>span{padding:4px 6px}.spot-inspector-details .inspector-capacity{margin:6px 0}.spot-inspector-details .terrain-note{margin:6px 0 0}.spot-inspector-frame>.map-inspector-footer{padding:8px 10px 10px}

.world-map:is(.dragging,.zooming,.camera-animating) :is(.map-marker,.map-label){transition:none!important}
.map-viewport{transform:none;perspective:none}

.mission-special-chances{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.mission-special-chances>span{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid rgba(100,168,133,.30);background:rgba(51,121,91,.08);color:#8bb9a1;font-size:10px}.mission-special-chances .ui-icon{width:15px;height:15px}.mission-special-chances b{color:#aad3bb}.hero-encounter-chance>.ui-icon{width:24px;height:24px;color:#9ec9ad}
.mission-reward-chances{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px;margin-top:8px}.mission-reward-chance{display:grid;grid-template-columns:28px minmax(0,1fr);gap:7px;align-items:center;min-width:0;padding:7px 9px;border:1px solid rgba(100,168,133,.28);background:linear-gradient(110deg,rgba(51,121,91,.10),rgba(4,12,13,.42));color:#9abdaa;font-size:10px}.mission-reward-chance>.ui-icon{width:28px;height:28px}.mission-reward-chance span{overflow-wrap:anywhere}.mission-reward-chance b{color:#c9dfd1;font-size:12px}.mission-reward-chance.compact{display:inline-grid;grid-template-columns:18px auto;width:auto;padding:4px 7px}.mission-reward-chance.compact>.ui-icon{width:18px;height:18px}.mission-special-chances>.mission-reward-chance{display:inline-grid}.mission-reward-chances.forecast{grid-column:1/-1;margin-top:10px}

@media(max-width:760px){
  .world-map-view .map-marker.player-city-progress.city-progress-tier-1{width:calc(80.96px * var(--map-marker-zoom,1));height:calc(80.96px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-2{width:calc(90.16px * var(--map-marker-zoom,1));height:calc(90.16px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-3{width:calc(99.36px * var(--map-marker-zoom,1));height:calc(99.36px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-4{width:calc(110.4px * var(--map-marker-zoom,1));height:calc(110.4px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress.city-progress-tier-5{width:calc(121.44px * var(--map-marker-zoom,1));height:calc(121.44px * var(--map-marker-zoom,1))}
  .world-map-view .map-marker.player-city-progress+.map-label{transform:translate(-50%,calc(64.4px * var(--map-marker-zoom,1) + 7px))}
  .npc-exchange-pair{grid-template-columns:1fr}.npc-exchange-pair>.exchange-arrow{height:28px;margin:auto;transform:rotate(90deg)}
  .npc-load-ledger{grid-template-columns:25px minmax(0,1fr)}.npc-load-ledger>strong{grid-column:2;white-space:normal}.npc-exchange-wheel .npc-production-profile{grid-template-columns:1fr}
  .marriage-proposal{grid-template-columns:48px minmax(0,1fr)}.marriage-proposal-portrait,.marriage-proposal-art{width:46px!important;height:56px!important}.marriage-proposal-actions{grid-column:1/-1!important;justify-content:flex-end}.marriage-proposal-actions>.btn{flex:1}
  .spot-inspector-frame{height:auto!important;max-height:100%!important}.spot-inspector-content{max-height:calc(62dvh - 82px)}.spot-inspector-details>.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:390px){.spot-inspector-details>.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spot-inspector-details>.stat-grid>.stat-box:last-child{grid-column:1/-1}}

/* v3.1.5: readable far-zoom POI stacks and one-line map commands. */
.map-marker-cluster{width:58px;height:50px;border:0;border-radius:0;background:none;box-shadow:none;color:#d5ad63;isolation:isolate}
.map-marker-cluster:hover{transform:translate(-50%,-50%) scale(1.08);filter:brightness(1.12)}
.map-cluster-art-stack{position:absolute;inset:0;display:block!important;filter:drop-shadow(0 5px 5px rgba(0,0,0,.72));pointer-events:none}
.map-cluster-art{position:absolute;top:6px;left:11px;display:block!important;width:36px;height:36px;transform-origin:center bottom}
.map-cluster-art.layer-1{z-index:3;transform:translateY(3px) scale(1.04)}
.map-cluster-art.layer-2{z-index:2;transform:translate(-10px,-3px) scale(.82);opacity:.88}
.map-cluster-art.layer-3{z-index:1;transform:translate(10px,-4px) scale(.78);opacity:.78}
.map-cluster-location-art{display:block!important;width:36px!important;height:36px!important;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important;clip-path:none!important;box-shadow:none!important}
.map-marker-cluster .map-marker-count{z-index:5;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 5px;border-color:currentColor;background:#111b1d;color:inherit;font:700 10px/1 sans-serif;box-shadow:0 3px 8px rgba(0,0,0,.55)}
.map-marker-cluster.friendly{background:none;color:#86cdb4}.map-marker-cluster.hostile{background:none;color:#e4847c}.map-marker-cluster.neutral{background:none;color:#d5ad63}
.map-inspector-frame{grid-template-rows:minmax(0,1fr) max-content}
.map-inspector-footer.map-inspector-actions{max-width:100%}
@media(max-width:760px){.map-marker-cluster{width:54px;height:47px}.map-inspector-footer.map-inspector-actions>.btn{min-width:48px}}

/* Keep the inspector footer visible.
   Only .poi-inspector-details may shrink and scroll. */

@media (min-width: 761px) {
  .map-inspector {
    /* Same visible size as before, but now it has a real height. */
    height: min(520px, calc(100% - 80px)) !important;
    max-height: none !important;
  }
}

.map-inspector .site-inspector-frame {
  width: 100%;
  max-width: none;
  min-width: 0;
  height: 100%;
}
.site-inspector-frame .map-inspector-content {
  scrollbar-gutter: auto !important;
}
.site-inspector-frame .poi-inspector-details {
  width: 100%;
  min-width: 0;
  padding-right: 0;

  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: auto;
}

/* Cancel the generic .map-inspector .btn margin. */
.site-inspector-frame
.map-inspector-footer.map-inspector-actions
> .btn {
  margin-top: 0;
}

/* v3.1.6: installable realm client, readable mobile ledgers, and map pins.
   This block intentionally follows the local inspector repair above. */
.mission-history{
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
}
.mission-history>b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.mission-history>span{
  grid-column:1/-1;
  min-width:0;
  overflow-wrap:anywhere;
  white-space:normal;
}

.map-marker:not(.cargo-route-marker):not(.player-city-progress)+.map-label{
  transform:translate(-50%,calc(42px * var(--map-marker-zoom,1) + 3px));
}
.map-marker.player-city-progress+.map-label{
  transform:translate(-50%,calc(70px * var(--map-marker-zoom,1) + 3px));
}

.map-pin-panel{display:grid;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(199,146,79,.2)}
.map-pin-panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#c8aa70}
.map-pin-panel>header>span{display:flex;align-items:center;gap:6px;min-width:0}.map-pin-panel>header .ui-icon{width:17px;height:17px}.map-pin-panel>header b{font-size:11px}.map-pin-panel>header small{color:#707b75;font-size:10px}
.map-pin-list{display:grid;gap:4px;max-height:154px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.map-pin-list>p{margin:2px 0;color:#78827c;font-size:10px;line-height:1.45}
.map-pin-row{display:grid;grid-template-columns:minmax(0,1fr) 25px 25px;align-items:stretch;border:1px solid rgba(199,146,79,.15);background:rgba(0,0,0,.16)}
.map-pin-row.alliance-pin{border-color:rgba(90,166,136,.24);background:rgba(48,111,86,.08)}
.map-pin-row>button:first-child{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:6px;min-width:0;padding:5px 6px;border:0;background:transparent;color:#bcae91;text-align:left;cursor:pointer}
.map-pin-row>button:first-child:hover{background:rgba(199,146,79,.08);color:#e0c17d}.map-pin-row>button:first-child>.ui-icon{width:20px;height:20px;color:#ca9e53}.map-pin-row>button:first-child>span{display:grid;min-width:0}.map-pin-row b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.map-pin-row small{color:#78827d;font-size:10px;white-space:nowrap}
.map-pin-remove{display:grid;place-items:center;padding:0;border:0;border-left:1px solid rgba(199,146,79,.12);background:transparent;color:#777f7a;cursor:pointer}.map-pin-remove:hover{background:rgba(164,66,58,.12);color:#d77a70}.map-pin-remove .ui-icon{width:14px;height:14px}
.map-pin-share{display:grid;place-items:center;padding:0;border:0;border-left:1px solid rgba(199,146,79,.12);background:transparent;color:#7d867f;cursor:pointer}.map-pin-share:hover,.map-pin-share.active{background:rgba(68,138,111,.13);color:#85c9ae}.map-pin-share .ui-icon{width:15px;height:15px}
.map-inspector-footer .map-pin-action{flex:0 1 auto;min-width:84px;padding:5px 8px}.map-inspector-footer .map-pin-action>span{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:nowrap}.map-inspector-footer .map-pin-action>.ui-icon{width:17px;height:17px}
.map-pin-marker{position:absolute;z-index:13;display:grid;place-items:center;width:25px;height:31px;padding:3px 3px 8px;border:1px solid rgba(229,185,96,.72);clip-path:polygon(50% 100%,5% 45%,11% 10%,89% 10%,95% 45%);transform:translate(-50%,-100%);background:linear-gradient(#283131,#111718);color:#e3b963;filter:drop-shadow(0 4px 4px rgba(0,0,0,.62));cursor:pointer}
.map-pin-marker:hover{z-index:20;filter:brightness(1.18) drop-shadow(0 5px 5px rgba(0,0,0,.72))}.map-pin-marker>.ui-icon{width:15px;height:15px}.map-pin-marker.alliance-pin{border-color:rgba(112,207,171,.78);color:#84d0b5}

.pwa-install-button{display:flex;align-items:center;gap:6px;height:36px;padding:0 11px;border:1px solid rgba(199,146,79,.34);background:rgba(199,146,79,.08);color:#d6b46d;font:inherit;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.pwa-install-button:hover{background:rgba(199,146,79,.15)}.pwa-install-button>.ui-icon{width:18px;height:18px}.pwa-install-button[hidden]{display:none}
.pwa-settings-panel{max-width:920px;margin:18px 0}.pwa-settings-copy{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:14px}.pwa-settings-crest{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(199,146,79,.3);background:rgba(199,146,79,.07)}.pwa-settings-crest>.ui-icon{width:34px;height:34px}.pwa-settings-copy h3,.pwa-install-guide h3{margin:0 0 3px;color:#d7c8a8;font:500 18px Georgia,serif}.pwa-settings-copy p,.pwa-install-guide p{margin:0;color:#89928c;font-size:12px}.pwa-install-guide{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center}.pwa-install-guide>.ui-icon{width:42px;height:42px;color:#d1a356}

@media(max-width:760px){
  :root{--topbar:112px}
  .topbar{height:var(--topbar);align-items:flex-start;padding-bottom:44px}
  .topbar>.mobile-menu,.topbar>.city-picker,.topbar>.top-actions{height:68px;max-height:68px}
  .topbar>.resource-bar{position:absolute;z-index:2;right:0;bottom:0;left:0;display:flex;height:44px;min-width:0;overflow-x:auto;overflow-y:hidden;border-top:1px solid var(--line);background:rgba(9,15,17,.98);scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .topbar>.resource-bar::-webkit-scrollbar{display:none}
  .topbar>.resource-bar>.resource-chip,
  .topbar>.resource-bar>.resource-chip[data-resource="essence"],
  .topbar>.resource-bar>.resource-chip.account-resource,
  .topbar>.resource-bar>.resource-chip.population-resource{
    display:flex!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:68px!important;
    height:44px!important;
    gap:5px!important;
    padding:0 7px!important;
  }
  .topbar>.resource-bar .resource-glyph{width:21px!important;height:21px!important;min-width:21px!important}
  .topbar>.resource-bar .resource-chip b{font-size:10px!important;white-space:nowrap}
  .topbar>.resource-bar .resource-chip small{display:none!important}
  .topbar>.resource-bar .cap-line{height:2px}
  .map-marker.player-city-progress+.map-label{transform:translate(-50%,calc(58px * var(--map-marker-zoom,1) + 3px))}
  .map-navigation{max-height:calc(100% - 62px);overflow-y:auto;scrollbar-width:thin}
  .map-pin-list{max-height:112px}
  .map-pin-panel>header b{font-size:10px}.map-pin-row{grid-template-columns:minmax(0,1fr) 23px 23px}.map-pin-row>button:first-child{grid-template-columns:18px minmax(0,1fr);padding:4px}.map-pin-row>button:first-child>.ui-icon{width:17px;height:17px}
  .pwa-settings-copy{grid-template-columns:44px minmax(0,1fr)}.pwa-settings-crest{width:42px;height:42px}.pwa-settings-copy>.btn{grid-column:1/-1;width:100%}
}

@media(max-width:430px){
  .topbar>.resource-bar>.resource-chip,
  .topbar>.resource-bar>.resource-chip[data-resource="essence"],
  .topbar>.resource-bar>.resource-chip.account-resource,
  .topbar>.resource-bar>.resource-chip.population-resource{min-width:62px!important;padding-inline:5px!important}
  .mission-history{grid-template-columns:68px minmax(0,1fr);gap:5px;padding:8px}.mission-history>small{white-space:nowrap}.mission-history>b{font-size:12px}.mission-history>span{font-size:10px;line-height:1.35}
  .landing-actions .world-status{display:none}.pwa-install-button>span:last-child{display:none}.pwa-install-button{width:36px;padding:0;justify-content:center}
}

/* v4.1 realm dispatches remain legible after their one-time popup is filed. */
.realm-announcement-entry{border-color:rgba(199,146,79,.3);background:linear-gradient(115deg,rgba(199,146,79,.06),rgba(8,15,17,.94))}
.realm-announcement-entry .announcement-rewards{margin-top:10px}
.realm-announcement-entry .announcement-rewards .reward-row{justify-content:flex-start}
.site-production-stat{margin:5px 0}.site-production-stat b{display:flex!important;align-items:center;gap:6px}.site-production-stat .resource-glyph,.site-production-stat .special-resource-art{width:24px;height:24px;flex:0 0 24px}

/* v4.2 mission companies and compact world intelligence. */
.special-mission-heading{margin-top:28px}.special-mission-heading .view-eyebrow{color:#c8a7e8}.special-mission-catalog .mission-type-card{border-color:rgba(149,105,191,.42);background:linear-gradient(145deg,rgba(89,53,111,.13),rgba(9,16,17,.96))}.mission-type-card.special-event .mission-emblem{border-color:rgba(174,129,211,.5);color:#d3afe9;background:rgba(114,70,146,.16)}
.mission-company-note{display:flex;align-items:center;gap:8px;margin-top:9px;padding:7px;border:1px solid rgba(161,116,195,.25);background:rgba(111,68,139,.08)}.mission-company-note>.ui-icon{width:24px;height:24px;color:#c49bdd}.mission-company-note span{display:grid}.mission-company-note b{font-size:11px;color:#d7c5de}.mission-company-note small{font-size:10px;color:#8f8295}
.mission-company-picker{display:grid;gap:8px;padding:10px;border:1px solid rgba(161,116,195,.28);background:linear-gradient(115deg,rgba(90,55,112,.12),rgba(5,12,13,.82))}.mission-company-picker[hidden]{display:none}.mission-company-picker>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.mission-company-picker>header>span{display:flex;align-items:center;gap:8px}.mission-company-picker>header .ui-icon{width:25px;height:25px;color:#c49bdd}.mission-company-picker>header span span{display:grid}.mission-company-picker>header small,.mission-company-picker>header em,.mission-company-picker>footer{color:#887f8d;font-size:10px;font-style:normal}.mission-company-picker>header b{color:#d4c5d9;font-size:12px}.mission-companion-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.mission-companion{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;min-width:0;padding:7px;border:1px solid rgba(142,120,155,.22);background:rgba(8,13,16,.8);cursor:pointer}.mission-companion>input{position:absolute;opacity:0;pointer-events:none}.mission-companion>.choice-check{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:18px;height:18px;border:1px solid rgba(142,120,155,.35);background:#101718;color:transparent}.mission-companion:has(input:checked){border-color:#b487d0;background:rgba(102,61,126,.18)}.mission-companion:has(input:checked)>.choice-check{color:#e2c8ef;border-color:#b487d0}.mission-companion-art{width:48px!important;height:58px!important;background-position:center bottom!important;background-size:contain!important;background-repeat:no-repeat!important}.mission-companion>span:last-child{display:grid;align-content:center;min-width:0}.mission-companion b{overflow:hidden;color:#d2c6d2;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.mission-companion small,.mission-companion em{font-size:10px;font-style:normal;color:#81888a}.mission-companion em.positive{color:#83b797}.mission-company-bonus{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(112,180,142,.3);background:rgba(49,112,78,.1)}.mission-company-bonus>.ui-icon{width:25px;height:25px;color:#80bc99}.mission-company-bonus>span{display:grid}.mission-company-bonus b{font-size:11px;color:#afd2bc}.mission-company-bonus small{font-size:10px;color:#81978a}
.spot-inspector-details>.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.terrain-travel-stat b{white-space:normal}.world-map,.map-viewport,.map-marker-layer,.map-label{-webkit-touch-callout:none;-webkit-user-select:none!important;user-select:none!important}.map-label{pointer-events:none}
@media(max-width:680px){.mission-companion-list{grid-template-columns:1fr}}

/* v4.2.1: focused mission/spell workspaces and a stable, compact World Forge. */
.content-category-navigation.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.content-category-navigation.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.hero-mission-category-workspace,.spell-category-workspace{margin-bottom:18px}
.hero-mission-category-workspace>header,.spell-category-workspace>header{grid-template-columns:72px minmax(0,1fr) minmax(104px,max-content);padding:14px 16px}
.hero-mission-category-workspace>header>span:nth-child(2),.spell-category-workspace>header>span:nth-child(2){min-width:0}
.hero-mission-category-workspace>header .research-lore-progress,.spell-category-workspace>header .research-lore-progress{min-width:104px;align-self:center;justify-self:end;white-space:nowrap}
.hero-mission-category-workspace>header .research-lore-progress b,.hero-mission-category-workspace>header .research-lore-progress small,.spell-category-workspace>header .research-lore-progress b,.spell-category-workspace>header .research-lore-progress small{white-space:nowrap;word-break:normal;overflow-wrap:normal;line-height:1.25}
.hero-mission-category-workspace>header h2,.spell-category-workspace>header h2{font-size:22px}
.hero-mission-category-workspace>header p,.spell-category-workspace>header p{max-width:760px;font-size:12px;line-height:1.5}
.hero-mission-category-workspace>.mission-catalog,.spell-category-workspace>.spell-grid{margin:0;padding:12px}
.hero-mission-category-workspace>.empty-state,.spell-category-workspace>.empty-state{min-height:180px;margin:0;padding:20px}

.admin-generator-group{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:11px;border:1px solid rgba(199,146,79,.17);background:linear-gradient(120deg,rgba(199,146,79,.035),rgba(0,0,0,.12))}
.admin-generator-group>header,.admin-generator-group>legend{display:grid;grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:0 0 7px;border-bottom:1px solid rgba(199,146,79,.12)}
.admin-generator-group>header>.ui-icon,.admin-generator-group>legend>.ui-icon{width:25px;height:25px;color:#c5974d}.admin-generator-group>header>span,.admin-generator-group>legend>span{display:grid}.admin-generator-group>header b,.admin-generator-group>legend b{color:#cdbd9c;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.admin-generator-group>header small,.admin-generator-group>legend small{color:#7d8680;font-size:10px;line-height:1.35}.admin-generator-group>div{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-map-preview{position:relative}.admin-preview-fullscreen{position:absolute;z-index:4;top:8px;right:8px;background:rgba(8,13,14,.9);color:#d6ad61}.admin-map-preview:fullscreen{padding:22px;background:#0b1112;overflow:auto}.admin-map-preview:fullscreen .admin-map-canvas-wrap{max-width:min(94vw,1500px);margin:auto}.admin-map-preview:fullscreen canvas{width:100%;max-height:calc(100vh - 180px);object-fit:contain}
.admin-world-create .admin-create-note{display:flex;align-items:center;gap:8px;margin:0;padding:9px;border:1px solid rgba(199,146,79,.16);background:rgba(199,146,79,.04);color:#858e88;font-size:10px;line-height:1.45}.admin-create-note>.ui-icon{width:24px;height:24px;flex:0 0 auto;color:#c99d54}
.admin-world-create-options{border:1px solid rgba(199,146,79,.18);background:rgba(0,0,0,.13)}.admin-world-create-options>summary{display:grid;grid-template-columns:26px minmax(0,1fr) 18px;align-items:center;gap:8px;padding:10px;cursor:pointer;list-style:none}.admin-world-create-options>summary::-webkit-details-marker{display:none}.admin-world-create-options>summary>.ui-icon{width:24px;height:24px;color:#c99d54}.admin-world-create-options>summary>.ui-icon:last-child{width:16px;height:16px;transition:transform .18s}.admin-world-create-options[open]>summary>.ui-icon:last-child{transform:rotate(90deg)}.admin-world-create-options>summary>span{display:grid}.admin-world-create-options>summary b{color:#cdbd9c;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.admin-world-create-options>summary small{color:#7d8680;font-size:10px}.admin-world-create-options>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:0 10px 10px}.admin-world-create-options label{min-width:0}.admin-world-create-options label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-world-create-options input{min-width:0}

.founding-travel-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0}.founding-travel-ledger>span{display:grid;grid-template-columns:28px minmax(0,1fr);gap:1px 7px;align-items:center;padding:7px;border:1px solid rgba(199,146,79,.18);background:rgba(0,0,0,.15)}.founding-travel-ledger .ui-icon{grid-row:1/3;width:26px;height:26px;color:#caa052}.founding-travel-ledger small{color:#737c77;font-size:10px}.founding-travel-ledger b{color:#d0c3a7;font-size:12px}.founding-cancel-refund{margin-top:10px;border-color:rgba(82,164,126,.34)!important;background:rgba(44,116,82,.09)!important}

@media(max-width:1100px){.admin-world-create-options>div{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:880px){.content-category-navigation.count-3{grid-template-columns:1fr}.admin-generator-group,.admin-generator-group>div{grid-template-columns:1fr}.admin-world-create>.panel-inner{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-world-create-options>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.content-category-navigation.count-2{grid-template-columns:1fr}.content-category-navigation .research-lore-card{min-height:76px}.hero-mission-category-workspace>header,.spell-category-workspace>header{grid-template-columns:52px minmax(0,1fr);padding:10px}.hero-mission-category-workspace>header .research-lore-progress,.spell-category-workspace>header .research-lore-progress{grid-column:2;display:flex;min-width:0;justify-self:start;align-items:baseline;gap:8px}.hero-mission-category-workspace>header .research-lore-emblem,.spell-category-workspace>header .research-lore-emblem{width:50px;height:50px}.hero-mission-category-workspace>header h2,.spell-category-workspace>header h2{font-size:19px}.hero-mission-category-workspace>.mission-catalog,.spell-category-workspace>.spell-grid{padding:7px}.admin-world-create>.panel-inner{grid-template-columns:1fr}.admin-world-create-options>div{grid-template-columns:1fr}.founding-travel-ledger{grid-template-columns:1fr}}

/* v4.3.0 map projection polish: one dark-fantasy viewport treatment around the streamed world.
   Terrain detail stays on the worker canvas; these inexpensive, fixed layers
   add depth without moving independently from the authoritative camera. */
.world-map{
  isolation:isolate;
  background:
    radial-gradient(ellipse at 50% 42%,#192b2a 0,#101b1d 58%,#070d0f 100%);
  box-shadow:
    inset 0 0 0 1px rgba(222,190,124,.16),
    inset 0 0 0 5px rgba(3,8,9,.72),
    inset 0 0 120px rgba(0,4,5,.8);
}
.world-map .map-viewport{background:#0b1719;transform:none;filter:none!important;opacity:1!important}
.world-map.map-engine-active .map-viewport>#mapCanvas{
  filter:none!important;
  opacity:1!important;
  image-rendering:auto;
}
.world-map::before{
  z-index:8;
  background:
    radial-gradient(ellipse at center,transparent 52%,rgba(1,5,6,.22) 77%,rgba(0,3,4,.58) 100%),
    linear-gradient(90deg,rgba(227,192,123,.12),transparent 1.5%,transparent 98.5%,rgba(227,192,123,.12));
  box-shadow:
    inset 0 0 0 1px rgba(229,196,128,.16),
    inset 0 0 38px rgba(1,5,6,.46);
  opacity:1;
  pointer-events:none;
}
.world-map::after{
  z-index:40;
  inset:6px;
  border-color:rgba(226,190,115,.19);
  filter:drop-shadow(0 0 5px rgba(0,0,0,.72));
}
.world-map .map-vignette{z-index:7;box-shadow:inset 0 0 88px rgba(0,4,5,.62);opacity:.78}
.world-map:is(.dragging,.zooming,.camera-animating) :is(.map-viewport,#mapCanvas,.map-marker-layer,.map-movement-layer){transition:none!important}
.world-map :is(canvas,img,.asset-art){-webkit-user-drag:none}

/* v4.3.1: dense recruitment folios. Flexible equal tracks keep every card in
   a row aligned without the old 410–490px dead space or clipped ledgers. */
.modal:has(#recruitForm){width:min(1120px,calc(100vw - 20px))}
.recruit-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:1fr!important;align-items:stretch!important;gap:11px!important;padding:3px!important}
.recruit-unit-card{grid-template-columns:94px minmax(0,1fr)!important;grid-template-rows:94px auto!important;min-height:0!important;height:100%!important;padding:12px!important;gap:9px 12px!important;overflow:hidden!important;background:linear-gradient(145deg,rgba(28,40,41,.94),rgba(7,13,15,.98))!important}
.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important}
.recruit-unit-card>.unit-choice-copy{justify-content:center!important;padding:5px 2px!important}
.recruit-unit-card .unit-choice-copy>b{padding-right:52px;font-size:17px!important;line-height:1.18}
.recruit-unit-card .unit-choice-copy>small{font-size:10px!important}
.recruit-card-details{gap:7px!important;align-self:start!important}
.recruit-card-details>.unit-stats{gap:5px!important}
.recruit-card-details>.unit-stats>span{min-height:38px!important;padding:5px 4px!important}
.recruit-card-ledger{grid-template-columns:minmax(0,1fr) 118px!important;gap:6px!important;padding-top:6px!important}
.recruit-card-ledger>span{gap:4px!important}.recruit-card-time{padding:5px 6px!important}
.recruit-card-details>.requirement-summary{min-height:25px!important;gap:4px!important}
.recruit-card-details>.requirement-summary>.requirement{padding:4px 6px!important}
@media(max-width:760px){.recruit-unit-grid{grid-template-columns:1fr!important;grid-auto-rows:1fr!important}.recruit-unit-card{grid-template-columns:84px minmax(0,1fr)!important;grid-template-rows:84px auto!important;padding:10px!important}.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important}}
@media(max-width:430px){.recruit-unit-card{grid-template-columns:72px minmax(0,1fr)!important;grid-template-rows:72px auto!important;padding:8px!important;gap:7px 9px!important}.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important}.recruit-card-ledger{grid-template-columns:1fr!important}.recruit-unit-card .unit-choice-copy>b{padding-right:42px;font-size:16px!important}}

/* The shared hero armory must remain usable on the narrowest supported
   phone view. Equipment names are procedural and therefore cannot rely on
   a fixed single-line width. */
@media(max-width:430px){
  .hero-equipment-option{grid-template-columns:minmax(0,1fr)!important}
  .hero-equipment-option-art{justify-self:center}
  .hero-equipment-option>div{width:100%;max-width:100%;overflow:hidden}
  .hero-equipment-option h4{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
  .hero-equipment-option .item-rarity{width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hero-equipment-option .equipment-wearer,
  .hero-equipment-option .equipment-affinity{width:100%;max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
  .hero-equipment-option .equipment-modifier{min-width:0;flex:1 1 64px}
}

/* Shared hero armory: explicitly constrain the copy grid's auto track.  At
   phone widths long procedural equipment names must wrap inside the card,
   never widen the modal or disappear behind its clipped edge. */
.hero-equipment-option>div{grid-template-columns:minmax(0,1fr)}
@media(max-width:360px){
  .hero-equipment-option{grid-template-columns:minmax(0,1fr)!important}
  .hero-equipment-option-art{justify-self:center}
  .hero-equipment-option .item-rarity,
  .hero-equipment-option .equipment-wearer,
  .hero-equipment-option .equipment-affinity{width:100%;max-width:100%;box-sizing:border-box}
  .hero-equipment-option .equipment-wearer,
  .hero-equipment-option .equipment-affinity{white-space:normal;overflow-wrap:anywhere}
  .hero-equipment-option .equipment-modifier{min-width:0;flex:1 1 64px}
}

/* v4.3.6: conquered NPC settlement estate. */
.npc-estate-entry{display:grid;grid-template-columns:34px minmax(0,1fr) 22px;gap:10px;align-items:center;width:100%;min-height:58px;padding:10px 12px;text-align:left;color:var(--text);border-color:rgba(199,146,79,.32);background:linear-gradient(105deg,rgba(152,99,43,.13),rgba(6,15,16,.94));cursor:pointer}.npc-estate-entry>.ui-icon:first-child{width:32px;height:32px;color:#d3a653}.npc-estate-entry>.ui-icon:last-child{width:18px;height:18px}.npc-estate-entry span{display:grid;gap:2px}.npc-estate-entry small{color:#8e948c;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.npc-estate-entry b{color:#dbc79b;font-size:13px}
.npc-estate-modal{width:min(980px,calc(100vw - 24px))}.npc-estate-management{display:grid;gap:12px;min-width:0}.npc-estate-hero{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center;padding:10px 14px;border:1px solid rgba(199,146,79,.2);background:linear-gradient(100deg,rgba(112,75,39,.12),rgba(8,17,18,.9))}.npc-estate-art{width:112px;height:86px;object-fit:contain}.npc-estate-hero>span{display:grid;gap:3px}.npc-estate-hero small{color:#bd9151;font-size:10px;letter-spacing:.08em}.npc-estate-hero h2{margin:0;color:#ded0ae;font-size:24px}.npc-estate-hero p{margin:0;color:#8e9690;font-size:11px}
.npc-estate-ledger{display:grid;grid-template-columns:1.25fr .75fr;gap:9px}.npc-estate-ledger>article{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;gap:10px;align-items:center;min-width:0;padding:11px;border:1px solid var(--line);background:rgba(4,12,13,.55)}.npc-estate-ledger>article>.resource-icon,.npc-estate-ledger>article>.ui-icon{width:38px;height:38px}.npc-estate-ledger>article>span{display:grid;min-width:0}.npc-estate-ledger small{color:#8d948f;font-size:10px}.npc-estate-ledger b{color:#d8c59d;font-size:17px}.npc-estate-ledger em{color:#777f7b;font-size:11px;font-style:normal}.npc-estate-ledger>article>strong{font-size:12px;white-space:nowrap}.npc-estate-ledger>article>span>i{display:block;height:4px;margin-top:5px;background:#101819}.npc-estate-ledger>article>span>i>i{display:block;height:100%;background:#c4964e}
.npc-estate-invasion,.npc-estate-calm{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(180,72,62,.42);background:rgba(122,45,39,.12)}.npc-estate-invasion>.ui-icon,.npc-estate-calm>.ui-icon{width:26px;height:26px}.npc-estate-invasion>span{display:grid}.npc-estate-invasion small{font-size:10px;color:#d28a7f;text-transform:uppercase}.npc-estate-invasion time{font-size:11px;color:#c5b8a5}.npc-estate-calm{border-color:rgba(91,143,116,.3);background:rgba(48,96,74,.08);color:#8eb79e;font-size:11px}
.npc-estate-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.npc-estate-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start;min-width:0;padding:11px;border:1px solid var(--line);background:rgba(5,13,14,.6)}.npc-estate-card>header,.npc-estate-card>p,.npc-estate-card>input[type=range],.npc-estate-card>.npc-unrest-risk,.npc-estate-card>.special-cost-row,.npc-estate-card>.requirement,.npc-estate-card>button{grid-column:1/-1}.npc-estate-card>header{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center}.npc-estate-card>header>.ui-icon{width:27px;height:27px;color:#c79850}.npc-estate-card>header>span{display:grid}.npc-estate-card header small,.npc-estate-card label>span{font-size:10px;color:#898f8b;text-transform:uppercase;letter-spacing:.05em}.npc-estate-card header b{color:#d4c19b;font-size:13px}.npc-estate-card p{min-height:32px;margin:0;color:#8e9691;font-size:11px;line-height:1.35}.npc-estate-card label{display:grid;gap:5px;min-width:0}.npc-estate-card select,.npc-estate-card input[type=number]{width:100%;min-width:0}.npc-unrest-risk{display:flex;align-items:center;gap:5px;padding:5px 7px;color:#a7ad9e;font-size:10px;border:1px solid rgba(199,146,79,.18)}.npc-unrest-risk>.ui-icon{width:18px;height:18px}.npc-unrest-risk.negative{color:#cf7b72;border-color:rgba(194,81,70,.32)}
.npc-estate-garrison{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--line)}.npc-estate-garrison>header{display:flex;justify-content:space-between;align-items:center;gap:10px}.npc-estate-garrison>header>span{display:flex;align-items:center;gap:7px;color:#c7b991;font-size:12px}.npc-estate-garrison>header .ui-icon{width:22px;height:22px}.npc-estate-garrison>div{display:flex;flex-wrap:wrap;gap:6px}.npc-estate-garrison>div>span{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;gap:0 6px;align-items:center;padding:5px 8px;border:1px solid rgba(199,146,79,.16);background:rgba(0,0,0,.16)}.npc-estate-unit-art{grid-row:1/3;width:34px;height:34px}.npc-estate-garrison b{font-size:12px}.npc-estate-garrison small{font-size:10px;color:#858d88}.npc-estate-garrison em{color:#7e8781;font-size:11px}
.npc-estate-garrison>header>label{display:grid;grid-template-columns:auto minmax(120px,190px);gap:7px;align-items:center;margin-left:auto}.npc-estate-garrison>header>label small{font-size:10px;color:#858d88;text-transform:uppercase}.npc-estate-garrison>header>label select{min-width:0;height:32px}
@media(max-width:680px){.npc-estate-modal{width:calc(100vw - 10px)}.npc-estate-hero{grid-template-columns:82px minmax(0,1fr)}.npc-estate-art{width:82px;height:68px}.npc-estate-hero h2{font-size:19px}.npc-estate-ledger,.npc-estate-columns{grid-template-columns:1fr}.npc-estate-ledger>article{grid-template-columns:34px minmax(0,1fr) auto}.npc-estate-ledger>article>button{grid-column:1/-1}.npc-estate-card p{min-height:0}.npc-estate-garrison>header{display:grid;grid-template-columns:1fr auto}.npc-estate-garrison>header>label{grid-column:1/-1;grid-row:2;grid-template-columns:1fr;margin-left:0}.npc-estate-garrison>header>button{grid-column:2;grid-row:1}}

/* Stable command-planning layer: retain painted nodes while values and
   authoritative route/scouting previews update incrementally. */
.modal:has(#dispatchForm) .modal-body{overflow-anchor:none}
#dispatchPlan[data-render-layer="stable-v1"],#dispatchForcePicker{min-width:0;overflow-anchor:none}
#dispatchPlan[data-render-layer="stable-v1"]{isolation:isolate}
#dispatchPlan[data-render-layer="stable-v1"] [hidden]{display:none!important}
.dispatch-force-zone{overflow:visible}
.dispatch-force-zone>.army-picker,.dispatch-force-zone .army-input,.dispatch-unit-copy{min-width:0}
.dispatch-force-zone .army-input{height:auto;contain:none;opacity:1;transform:none}
.dispatch-force-zone .army-input>input{min-width:0}
.dispatch-unit-copy>b{min-width:0;overflow-wrap:anywhere}
.dispatch-plan-warning>span:last-child{min-width:0;overflow-wrap:anywhere}
@media(max-width:620px){
  .modal:has(#dispatchForm) .modal-body{padding:12px;scrollbar-gutter:auto}
  .dispatch-force-zone .army-input{grid-template-columns:44px minmax(0,1fr) minmax(58px,68px);min-height:0;padding:7px}
  .dispatch-force-zone .army-unit-art{width:42px;height:42px}
  .dispatch-route-status.pending{animation:none}
}
@media(max-width:380px){
  .dispatch-unit-copy>.unit-stats{grid-template-columns:repeat(2,minmax(36px,1fr))!important}
}

/* Administrator-authored herald rewards. The chosen art remains modular and
   the server validates every effect independently from this preview. */
.admin-custom-item-editor{grid-column:1/-1;min-width:0;margin-top:8px;padding:0 12px 12px;border:1px solid rgba(199,146,79,.24);background:linear-gradient(135deg,rgba(124,82,37,.08),rgba(4,10,11,.42))}
.admin-custom-item-editor>legend{width:100%;padding:0 5px}.admin-custom-item-toggle{display:grid!important;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:8px 4px!important}.admin-custom-item-toggle>.ui-icon{width:27px;height:27px;color:#bf914d}.admin-custom-item-toggle>span{display:grid;gap:2px}.admin-custom-item-toggle b{color:#d4c5a8;font-size:12px}.admin-custom-item-toggle small{color:#858e88;font-size:10px}.admin-custom-item-toggle input{width:18px;height:18px;accent-color:#c7934f}
.admin-custom-item-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;min-width:0;opacity:.48;filter:saturate(.55);transition:opacity .15s ease,filter .15s ease}.admin-custom-item-editor.enabled .admin-custom-item-fields{opacity:1;filter:none}.admin-custom-item-fields>label{display:grid;gap:5px;min-width:0}.admin-custom-item-fields>label>span,.admin-custom-icon-picker>span{color:#a29e90;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.admin-custom-item-fields>.full{grid-column:1/-1}
.admin-custom-icon-picker{display:grid;gap:7px}.admin-custom-icon-picker>div{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:5px}.admin-custom-icon-option{position:relative;display:grid!important;place-items:center;min-width:0;min-height:58px;padding:4px!important;border:1px solid rgba(112,122,115,.25);background:rgba(0,0,0,.18);cursor:pointer}.admin-custom-icon-option:has(input:checked){border-color:#d1a458;box-shadow:inset 0 0 0 1px rgba(209,164,88,.3),0 0 12px rgba(170,105,38,.13)}.admin-custom-icon-option input{position:absolute;opacity:0;pointer-events:none}.admin-custom-item-art{width:42px;height:42px;background-size:contain!important}.admin-custom-icon-option small{position:absolute;right:3px;bottom:2px;color:#747c77;font-size:10px}
.admin-custom-item-preview{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;min-height:72px;padding:7px 10px;border:1px solid rgba(199,146,79,.22);background:linear-gradient(100deg,rgba(199,146,79,.07),rgba(0,0,0,.16))}.admin-custom-preview-art{width:62px;height:62px;background-size:contain!important}.admin-custom-item-preview>span{display:grid;gap:2px;min-width:0}.admin-custom-item-preview small{color:#a68758;font-size:10px;text-transform:uppercase}.admin-custom-item-preview b{overflow:hidden;color:#dfd0b1;font:600 17px Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.admin-custom-item-preview em{color:#84b095;font-size:11px;font-style:normal}.announcement-item-art{width:25px;height:25px;background-size:contain!important}.custom-announcement-item{display:inline-flex;align-items:center;gap:5px}
@media(max-width:760px){.admin-custom-item-fields{grid-template-columns:1fr}.admin-custom-icon-picker>div{grid-template-columns:repeat(4,minmax(44px,1fr))}.admin-custom-item-fields>.full{grid-column:auto}}

/* v4.3.3 final logistics cascade: older mobile market rules used a one-line
   grid placement, which collapsed full-width notices and the dispatch button. */
.city-transfer-form>.terrain-note.full,.city-transfer-form>.btn.full{grid-column:1/-1!important;width:100%!important;min-width:0}
@media(max-width:720px){.city-transfer-form>*{grid-column:1/-1!important;min-width:0}.city-transfer-form>.terrain-note.full,.city-transfer-form>.btn.full{width:auto!important}}

/* v4.3.3: permanent hero equipment, direct support orders, and stable city logistics. */
.hero-equipped-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0;padding:8px;border:1px solid rgba(199,146,79,.17);background:rgba(3,9,10,.3)}
.hero-equipped-slot{--rarity:#67706b;position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:6px;align-items:center;min-width:0;min-height:42px;padding:4px 6px;border:1px solid color-mix(in srgb,var(--rarity) 35%,var(--line));background:color-mix(in srgb,var(--rarity) 5%,rgba(0,0,0,.2));overflow:hidden}
.hero-equipped-slot>.equipment-art,.hero-equipped-slot>.ui-icon{width:34px;height:34px}.hero-equipped-slot>.ui-icon{padding:7px;color:#59615d}.hero-equipped-slot small{overflow:hidden;color:var(--rarity);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.hero-equipped-slot.empty{opacity:.62}.hero-card .hero-footer{flex-wrap:wrap}
.hero-equipment-modal{width:min(1040px,calc(100vw - 20px))}.hero-equipment-modal .modal-frame{max-height:calc(100dvh - 20px)}.hero-equipment-manager{display:grid;gap:12px}.hero-equipment-separation,.support-order-note{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid rgba(199,146,79,.22);background:linear-gradient(100deg,rgba(137,92,43,.1),rgba(6,13,14,.4))}.hero-equipment-separation>.ui-icon,.support-order-note>.ui-icon{width:32px;height:32px;color:#c59450}.hero-equipment-separation span,.support-order-note span{display:grid;gap:2px}.hero-equipment-separation b,.support-order-note b{color:#d0c4a9;font-size:12px}.hero-equipment-separation small,.support-order-note small{color:#87908a;font-size:10px;line-height:1.45}
.hero-armory-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;padding:7px;border:1px solid rgba(190,145,80,.2);background:rgba(3,9,10,.42)}.hero-armory-selector>button{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:8px;align-items:center;min-width:0;padding:6px;border:1px solid var(--line);background:rgba(14,24,24,.88);color:#8a938d;text-align:left}.hero-armory-selector>button:hover,.hero-armory-selector>button.active{border-color:#b78343;background:linear-gradient(110deg,rgba(151,101,45,.18),rgba(13,24,24,.94));color:#d3c7ad}.hero-armory-selector-art{width:44px;height:44px;border:1px solid rgba(184,136,72,.28);background-size:cover!important}.hero-armory-selector span{display:grid;min-width:0}.hero-armory-selector b,.hero-armory-selector small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-armory-selector b{font-size:11px}.hero-armory-selector small{font-size:10px}.hero-armory-selector>.active>.ui-icon{width:16px;height:16px;color:#d39a4c}.equipment-wearer{display:flex;width:max-content;max-width:100%;align-items:center;gap:4px;padding:2px 6px;border:1px solid rgba(152,135,95,.25);color:#a99b7c;font-size:10px}.equipment-wearer>.ui-icon{width:13px;height:13px}.equipment-wearer.free{border-color:rgba(82,155,111,.3);color:#79b18c}.equipment-wearer.locked{border-color:rgba(180,75,67,.35);color:#c47770}
.hero-equipment-slot-group{display:grid;gap:8px;padding:10px;border:1px solid var(--line);background:rgba(0,0,0,.12)}.hero-equipment-slot-group>header{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center}.hero-equipment-slot-group>header>.ui-icon{width:28px;height:28px;color:#c4934e}.hero-equipment-slot-group>header span{display:grid}.hero-equipment-slot-group>header small{color:#747e78;font-size:10px;letter-spacing:.08em}.hero-equipment-slot-group>header h3{margin:1px 0 0;color:#d2c5aa;font-family:Georgia,serif;font-size:18px;font-weight:400}.hero-equipment-slot-group>header em{color:#87908a;font-size:10px;font-style:normal;text-align:right}
.hero-equipment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hero-equipment-option{--rarity:#969b99;position:relative;display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;padding:8px;border:1px solid color-mix(in srgb,var(--rarity) 45%,var(--line));background:linear-gradient(125deg,color-mix(in srgb,var(--rarity) 8%,rgba(15,24,25,.96)),rgba(5,11,12,.96));overflow:hidden}.hero-equipment-option.equipped{box-shadow:inset 3px 0 var(--rarity),0 0 14px color-mix(in srgb,var(--rarity) 18%,transparent)}.hero-equipment-option-art{width:82px;height:82px;background-color:transparent!important;background-size:contain!important}.hero-equipment-option>div{display:grid;gap:5px;min-width:0}.hero-equipment-option .item-rarity{margin:0;width:max-content}.hero-equipment-option h4{margin:0;overflow:hidden;color:#d8cdb5;font-family:Georgia,serif;font-size:16px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.equipment-modifier-list{display:flex;flex-wrap:wrap;gap:5px}.equipment-modifier{display:grid;grid-template-columns:18px auto;gap:0 5px;align-items:center;min-width:72px;padding:4px 6px;border:1px solid rgba(94,151,119,.3);background:rgba(49,104,79,.09);color:#87b99e}.equipment-modifier>.ui-icon{grid-row:1/3;width:17px;height:17px}.equipment-modifier b{font-size:11px}.equipment-modifier small{overflow:hidden;color:#7f8a84;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.equipment-modifier.negative{border-color:rgba(184,77,70,.35);color:#d57970}.hero-equipment-option>.btn{align-self:center;white-space:nowrap}.hero-equipment-empty{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-height:60px;padding:10px;border:1px dashed var(--line);color:#747d77}.hero-equipment-empty>.ui-icon{width:28px;height:28px}.hero-equipment-empty span{display:grid;gap:2px}.hero-equipment-empty b{color:#9d9d91;font-size:11px}.hero-equipment-empty small{font-size:10px}
.alliance-operation-target-summary{grid-column:1/-1;display:grid;grid-template-columns:76px minmax(0,1fr) 32px;gap:12px;align-items:center;padding:10px;border:1px solid rgba(199,146,79,.25);background:linear-gradient(100deg,rgba(139,91,39,.12),rgba(4,10,11,.42))}.alliance-operation-target-art{width:76px;height:76px}.alliance-operation-target-summary span{display:grid;gap:2px}.alliance-operation-target-summary small{color:#8b918b;font-size:10px;letter-spacing:.07em}.alliance-operation-target-summary h3{margin:0;color:#d7c9a9;font-family:Georgia,serif;font-size:19px;font-weight:400}.alliance-operation-target-summary p{margin:0;color:#87908a;font-size:10px}.alliance-operation-target-summary>.ui-icon{width:30px;height:30px;color:#c5934f}
.city-transfer-form{grid-template-columns:repeat(12,minmax(0,1fr))!important;align-items:stretch!important}.city-transfer-form>.city-transfer-destination{grid-column:span 5!important}.city-transfer-form>.resource-field{grid-column:span 4}.city-transfer-form>label:not(.city-transfer-destination){grid-column:span 3}.city-transfer-form>.caravan-requirement{grid-column:span 5;min-width:0;overflow:hidden}.city-transfer-form>.city-transfer-preview{grid-column:span 7;min-width:0}.city-transfer-form>.terrain-note,.city-transfer-form>.btn{grid-column:1/-1}.city-transfer-form .caravan-requirement>span:not(.ui-icon),.city-transfer-preview>span{overflow-wrap:anywhere}
@media(max-width:920px){.city-transfer-form>.city-transfer-destination{grid-column:1/-1!important}.city-transfer-form>.resource-field,.city-transfer-form>label:not(.city-transfer-destination),.city-transfer-form>.caravan-requirement,.city-transfer-form>.city-transfer-preview{grid-column:span 6}}
@media(max-width:700px){.hero-equipped-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-armory-selector{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.hero-armory-selector>button{flex:0 0 min(230px,82vw);scroll-snap-align:start}.hero-equipment-options{grid-template-columns:1fr}.hero-equipment-option{grid-template-columns:68px minmax(0,1fr)}.hero-equipment-option-art{width:68px;height:68px}.hero-equipment-option>.btn{grid-column:1/-1;width:100%}.hero-equipment-slot-group>header{grid-template-columns:26px minmax(0,1fr)}.hero-equipment-slot-group>header>em{grid-column:2;text-align:left}.city-transfer-form>.city-transfer-destination,.city-transfer-form>.resource-field,.city-transfer-form>label:not(.city-transfer-destination),.city-transfer-form>.caravan-requirement,.city-transfer-form>.city-transfer-preview{grid-column:1/-1!important}}
.world-map[data-map-style="political"] .map-vignette,
.world-map[data-map-style="area"] .map-vignette{opacity:.48}
.map-style-switch{
  scrollbar-width:thin;
  scrollbar-color:rgba(199,146,79,.35) transparent;
}
.map-style-switch button{
  min-height:34px;
  border-color:rgba(199,146,79,.14);
  background:linear-gradient(180deg,rgba(27,39,39,.94),rgba(9,16,18,.94));
}
.map-style-switch button:hover{border-color:rgba(210,164,87,.34);color:#cdb887}
.map-style-switch button.active{
  border-color:rgba(226,175,88,.58);
  background:linear-gradient(180deg,rgba(91,65,30,.36),rgba(28,31,27,.96));
  box-shadow:inset 0 1px rgba(255,222,149,.08),0 0 12px rgba(161,101,34,.09);
}

/* v4.2.2: authoritative recruitment duration and full-width economy ledgers. */
.recruit-controls{grid-template-columns:150px 185px minmax(360px,1fr);align-items:stretch}
.recruit-preview{display:grid;align-content:center;min-width:0}
.recruit-preview-ledger{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;min-width:0}
.recruit-preview-ledger>span{display:grid;min-width:0;gap:5px;padding:8px 10px;border:1px solid rgba(199,146,79,.18);background:rgba(0,0,0,.13)}
.recruit-preview-ledger>span>small,.recruit-card-ledger small,.mythic-unit-economy small{color:#7f8781;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.recruit-preview-ledger .cost-row{display:flex;flex-wrap:wrap;gap:5px;min-width:0}
.recruit-preview-time{grid-template-columns:26px minmax(0,1fr)!important;align-items:center!important;gap:3px 8px!important}
.recruit-preview-time>.ui-icon{grid-row:1/3;width:25px;height:25px;color:#d3a45a}
.recruit-preview-time>span{display:grid;min-width:0}.recruit-preview-time b{color:#e0bd75;font-size:15px;font-variant-numeric:tabular-nums}.recruit-preview-time em{color:#7f8a84;font-size:10px;font-style:normal}
.recruit-unit-grid{grid-auto-rows:410px!important}
.recruit-unit-card{min-height:410px!important}
.recruit-card-details{grid-template-rows:auto auto minmax(32px,auto)!important}
.recruit-card-ledger{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:8px;min-width:0;padding-top:8px;border-top:1px solid rgba(199,146,79,.13)}
.recruit-card-ledger>span{display:grid;align-content:start;min-width:0;gap:5px}
.recruit-card-ledger .cost-row{display:flex;align-items:center;align-content:flex-start;flex-wrap:wrap;min-width:0;gap:5px;margin:0!important}
.recruit-card-time{grid-template-columns:23px minmax(0,1fr)!important;align-items:center!important;gap:5px!important;padding:6px 8px;border:1px solid rgba(199,146,79,.19);background:rgba(199,146,79,.045)}
.recruit-card-time>.ui-icon{width:22px;height:22px;color:#d0a153}.recruit-card-time>span{display:grid;min-width:0}.recruit-card-time b{color:#d9ba80;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.mythic-unit-economy{display:grid!important;gap:8px;min-width:0}.mythic-unit-economy>.cost-row{display:flex;flex-wrap:wrap}.mythic-unit-economy>span:last-child{display:grid;grid-template-columns:22px minmax(0,1fr);gap:1px 6px;align-items:center;padding:6px;border:1px solid rgba(173,126,201,.24);background:rgba(117,72,141,.08)}.mythic-unit-economy>span:last-child>.ui-icon{grid-row:1/3;width:21px;height:21px;color:#c99ee0}.mythic-unit-economy b{color:#d7c5e0;font-size:12px}
.pantheon-mythic-muster .recruit-card-ledger{grid-template-columns:1fr;width:min(310px,100%);padding-top:0;border-top:0}.pantheon-mythic-muster .recruit-card-time{grid-template-columns:23px minmax(0,1fr)!important;width:auto}
@media(max-width:980px){.recruit-controls{grid-template-columns:150px minmax(180px,1fr)}.recruit-preview{grid-column:1/-1}.recruit-unit-grid{grid-auto-rows:430px!important}.recruit-unit-card{min-height:430px!important}}
@media(max-width:620px){.recruit-controls{grid-template-columns:1fr}.recruit-preview{grid-column:auto}.recruit-preview-ledger,.recruit-card-ledger{grid-template-columns:1fr}.recruit-unit-grid{grid-auto-rows:490px!important}.recruit-unit-card{min-height:490px!important}.pantheon-mythic-muster .recruit-card-ledger{width:100%}}

/* v4.2.3: focused market, readable morale ledgers, and stable mobile cards. */
.market-category-workspace{grid-template-columns:minmax(0,1fr);margin-top:0}
.market-category-workspace>.market-category-hidden{display:none!important}
.market-category-workspace>.active{width:100%;min-width:0}
.logistics-summary+.content-category-navigation{margin-top:14px}
.city-transfer-panel{overflow:visible}
.city-transfer-form{display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(180px,1fr) minmax(140px,.65fr);gap:12px;align-items:end;padding:18px}
.city-transfer-form>label{display:grid;gap:6px;min-width:0}.city-transfer-form>label>span,.city-transfer-form>.resource-field>.universal-field-label{color:#a9aaa0;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.city-transfer-destination{grid-column:1/-1}.city-transfer-destination select{width:100%}
.city-transfer-form .caravan-requirement{min-height:52px;margin:0;align-self:stretch}
.city-transfer-preview{grid-column:1/-1;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;padding:11px 13px;border:1px solid rgba(199,146,79,.2);background:linear-gradient(100deg,rgba(155,112,61,.09),rgba(6,14,15,.5))}
.city-transfer-preview>.ui-icon{width:28px;height:28px;color:#c89b5c}.city-transfer-preview>span{display:grid;gap:2px;min-width:0}.city-transfer-preview small{font-size:10px;color:#858d87;text-transform:uppercase;letter-spacing:.05em}.city-transfer-preview b{color:#ddd0ad;font-size:14px}.city-transfer-preview em{color:#8e9993;font-size:11px;font-style:normal}
.city-transfer-preview.missing{border-color:rgba(185,89,77,.38)}.city-transfer-preview.missing>.ui-icon{color:#c76e61}
@media(max-width:720px){.city-transfer-form{grid-template-columns:1fr;padding:13px}.city-transfer-form>*{grid-column:1!important}.city-transfer-preview em{font-size:10px}}

/* v4.3.4: three-slot hero armory, persistent music controls, and compact map orders. */
.hero-equipped-slots{grid-template-columns:repeat(3,minmax(0,1fr))}
.equipment-affinity{display:flex;align-items:center;gap:5px;width:max-content;max-width:100%;padding:3px 6px;border:1px solid rgba(113,122,117,.28);background:rgba(0,0,0,.2);color:#858c87;font-size:10px;cursor:help}
.equipment-affinity>.ui-icon{width:16px;height:16px}.equipment-affinity b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-affinity em{color:#a5aaa5;font-style:normal;font-variant-numeric:tabular-nums}.equipment-affinity.active{border-color:rgba(209,165,88,.42);background:rgba(170,116,43,.1);color:#d1aa68}.equipment-affinity.active em{color:#e3c381}
.music-toggle{position:relative}.music-toggle.muted{opacity:.72}.music-toggle>.ui-icon{width:22px;height:22px}
.music-volume-setting{display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(199,146,79,.18);background:rgba(0,0,0,.12)}
.music-volume-setting>span{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center}.music-volume-setting .ui-icon{width:22px;height:22px;color:#c79a54}.music-volume-setting b{color:#bdb7a7;font-size:12px}.music-volume-setting output{color:#dfbd78;font-size:12px;font-variant-numeric:tabular-nums}
.music-volume-setting input[type="range"]{width:100%;accent-color:#c7924f}
.map-inspector-footer.map-inspector-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.map-inspector-footer.map-inspector-actions>.map-inspector-action{position:relative;flex:1 1 0!important;width:auto!important;min-width:38px!important;height:38px!important;min-height:38px!important;padding:6px!important;justify-content:center!important}
.map-inspector-footer.map-inspector-actions>.map-inspector-action>.ui-icon{display:inline-block!important;visibility:visible!important;opacity:1!important;width:21px!important;height:21px!important;margin:0!important;background-image:var(--ui-icon-image)!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important}
.map-inspector-footer.map-inspector-actions>.map-inspector-action>span:not(.ui-icon){position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:520px){.hero-equipped-slots{grid-template-columns:repeat(3,minmax(0,1fr));padding:6px}.hero-equipped-slot{grid-template-columns:1fr;justify-items:center;text-align:center}.hero-equipped-slot small{max-width:100%}.top-actions .music-toggle{display:inline-flex!important}}

.report-morale-ledger{display:flex;align-items:stretch;gap:7px;margin:10px 0;padding:8px;border:1px solid rgba(199,146,79,.2);background:linear-gradient(100deg,rgba(160,98,48,.08),rgba(5,12,13,.35))}
.report-morale-ledger>header{display:flex;align-items:center;gap:6px;min-width:132px;padding-right:9px;border-right:1px solid var(--line);color:#b8955d;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.report-morale-ledger>header>.ui-icon{width:23px;height:23px}
.report-morale-ledger>span{display:grid;grid-template-columns:20px minmax(0,1fr);gap:0 6px;align-items:center;min-width:112px;padding:5px 8px;border:1px solid currentColor;background:rgba(0,0,0,.15)}
.report-morale-ledger>span>.ui-icon{grid-row:1/3;width:19px;height:19px}.report-morale-ledger>span small{font-size:10px;color:#8b918c}.report-morale-ledger>span b{font-size:13px}.report-morale-ledger>span.positive{color:#7fba97}.report-morale-ledger>span.negative{color:#da7c72}.report-morale-ledger>span.neutral{color:#8c928e}
.reward.morale-change>.ui-icon{width:18px;height:18px}

.dynasty-modifier-ledger{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px}
.dynasty-modifier-ledger>span{display:grid;grid-template-columns:23px minmax(0,1fr);gap:6px;align-items:center;min-height:38px;padding:6px 8px;border:1px solid rgba(109,159,132,.32);border-left-width:2px;cursor:help}
.dynasty-modifier-ledger>span>.ui-icon{width:22px;height:22px}.dynasty-modifier-ledger>span>b{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.dynasty-modifier-ledger>span.negative{border-color:rgba(198,81,75,.38)}

@media(max-width:760px){
  .sidebar{bottom:calc(68px + env(safe-area-inset-bottom));max-height:calc(100dvh - var(--topbar) - 68px - env(safe-area-inset-bottom));padding-bottom:28px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .sidebar nav{padding-bottom:18px}
  .title-rank-card,.content-card,.quest-card,.mission-type-card,.building-card,.hero-card,.ranking-row{content-visibility:visible!important;contain:none!important}
  #viewRoot{overflow-anchor:none}.panel,.content-card,.quest-card,.mission-type-card,.building-card,.hero-card{backface-visibility:hidden;-webkit-backface-visibility:hidden}
  .report-morale-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.report-morale-ledger>header{grid-column:1/-1;min-width:0;padding:0 0 7px;border-right:0;border-bottom:1px solid var(--line)}.report-morale-ledger>span{min-width:0}
}

/* v4.3.1 final recruitment cascade. This deliberately follows the older
   v4.2 duration ledger so that compact cards win without hiding any values. */
.modal:has(#recruitForm){width:min(1120px,calc(100vw - 20px))}
.recruit-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:1fr!important;align-items:stretch!important;gap:11px!important;padding:3px!important}
.recruit-unit-card{grid-template-columns:94px minmax(0,1fr)!important;grid-template-rows:94px auto!important;min-height:0!important;height:100%!important;padding:12px!important;gap:9px 12px!important;overflow:hidden!important;background:linear-gradient(145deg,rgba(28,40,41,.94),rgba(7,13,15,.98))!important}
.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important}
.recruit-unit-card>.unit-choice-copy{justify-content:center!important;padding:5px 2px!important}
.recruit-unit-card .unit-choice-copy>b{padding-right:52px;font-size:17px!important;line-height:1.18}
.recruit-unit-card .unit-choice-copy>small{font-size:10px!important}
.recruit-card-details{gap:7px!important;align-self:start!important}
.recruit-card-details>.unit-stats{gap:5px!important}
.recruit-card-details>.unit-stats>span{min-height:38px!important;padding:5px 4px!important}
.recruit-card-ledger{grid-template-columns:minmax(0,1fr) 118px!important;gap:6px!important;padding-top:6px!important}
.recruit-card-ledger>span{gap:4px!important}.recruit-card-time{padding:5px 6px!important}
.recruit-card-details>.requirement-summary{min-height:25px!important;gap:4px!important}
.recruit-card-details>.requirement-summary>.requirement{padding:4px 6px!important}
@media(max-width:760px){.recruit-unit-grid{grid-template-columns:1fr!important;grid-auto-rows:1fr!important}.recruit-unit-card{grid-template-columns:84px minmax(0,1fr)!important;grid-template-rows:84px auto!important;padding:10px!important}.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important}}
@media(max-width:430px){.recruit-unit-card{grid-template-columns:72px minmax(0,1fr)!important;grid-template-rows:72px auto!important;padding:8px!important;gap:7px 9px!important}.recruit-unit-art,.asset-art.unit-art.recruit-unit-art,.asset-art.unit-art.ship-unit-art.recruit-unit-art{width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important}.recruit-card-ledger{grid-template-columns:1fr!important}.recruit-unit-card .unit-choice-copy>b{padding-right:42px;font-size:16px!important}}

/* v4.3.5: movement markers always remain above static POIs. */
.map-marker.cargo-route-marker,.map-marker.cargo-route-marker:hover,.map-marker.cargo-route-marker.selected{z-index:50!important}

/* v4.3.5: dedicated top projection for moving army and caravan icons. */
.map-moving-marker-layer{
  position:absolute;
  left:var(--map-projection-left,0);
  top:var(--map-projection-top,0);
  width:var(--map-projection-width,100%);
  height:var(--map-projection-height,100%);
  z-index:8;
  pointer-events:none;
  -webkit-user-select:none;
  user-select:none;
}
.map-moving-marker-layer>.map-marker{pointer-events:auto}
.world-map.map-engine-active:not(.map-frame-ready) .map-moving-marker-layer{visibility:hidden}
.world-map.map-engine-active .map-moving-marker-layer{will-change:auto;backface-visibility:visible;transform:none}
.world-map.map-engine-active:is(.dragging,.zooming) .map-moving-marker-layer,
.world-map:is(.dragging,.zooming,.camera-animating) .map-moving-marker-layer{transition:none!important}
