: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") 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 svg { width: 18px; height: 18px; color: var(--bronze); }
.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-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:transform;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}

/* 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:transform;transform-origin:50% 50%;backface-visibility:hidden}
.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="threat"] .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-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}
.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(2,minmax(220px,340px));gap:10px;margin:0 0 18px}
.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}

.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}
}
@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}
}

/* 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;
}
.asset-art.modular-art.building-art,
.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))}
}
