:root {
  color-scheme: dark;
  --ink: #fbf2d7;
  --muted: #9da7a0;
  --gold: #f0bd55;
  --panel: rgba(13, 23, 26, .96);
  --line: rgba(240, 189, 85, .2);
  --green: #61c79a;
}

* { box-sizing: border-box; }
.hidden { display: none !important; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  background:
    radial-gradient(circle at 20% 0, rgba(45, 91, 82, .35), transparent 38rem),
    linear-gradient(150deg, #071013, #10191c 55%, #070b0d);
}
.site-nav {
  position: relative; z-index: 30; min-height: 54px; padding: 0 max(18px, calc((100% - 1760px) / 2));
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  border-bottom: 1px solid var(--line); background: rgba(5,13,15,.94); backdrop-filter: blur(12px);
}
.site-nav .brand { color: var(--gold); font: bold 13px Georgia,serif; letter-spacing: .12em; }
.site-nav div { display: flex; align-items: center; gap: 4px; }
.site-nav a { color: #aeb8b2; padding: 18px 12px; font-size: 10px; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.site-nav a:hover, .site-nav a.active { color: var(--ink); background: rgba(240,189,85,.08); }
.content-shell { width: min(1180px, calc(100% - 28px)); margin: auto; padding: 52px 0 70px; }
.page-hero { align-items: flex-end; gap: 30px; margin-bottom: 26px; }
.page-hero > div:first-child { max-width: 760px; }
.page-hero p:not(.eyebrow) { color: var(--muted); max-width: 680px; margin-top: 13px; line-height: 1.7; }
.status-card { min-width: 220px; display: grid; gap: 5px; padding: 16px; border: 1px solid var(--line); background: var(--panel); }
.status-card strong { color: var(--gold); font-size: 11px; letter-spacing: .12em; }
.status-card span { color: var(--muted); font-size: 10px; }
.status-card.online strong { color: var(--green); }
.doc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 12px; }
.content-card { padding: 22px; border: 1px solid var(--line); background: var(--panel); box-shadow: 0 20px 60px rgba(0,0,0,.18); }
.content-card > p:not(.eyebrow), .muted-copy { color: var(--muted); margin-top: 10px; font-size: 12px; line-height: 1.7; }
.content-card a { color: var(--gold); }
.guide-list { color: var(--muted); font-size: 10px; line-height: 1.8; padding-left: 18px; }
.guide-list li { margin: 5px 0; }
.wide-card { margin-bottom: 12px; }
pre { max-width: 100%; overflow: auto; margin: 14px 0 0; padding: 13px; border: 1px solid rgba(97,199,154,.18); background: #071012; color: #b8dfca; font: 11px/1.55 Consolas,monospace; }
code { color: #b8dfca; font-family: Consolas,monospace; }
.endpoint-list { display: grid; gap: 1px; margin-top: 16px; background: var(--line); }
.endpoint-list div { display: grid; grid-template-columns: 48px 180px 1fr; align-items: center; gap: 12px; padding: 11px; background: #101d20; font-size: 11px; }
.endpoint-list strong { color: var(--gold); font-size: 9px; }
.endpoint-list span { color: var(--muted); }
.feature-band { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 12px; border: 1px solid var(--line); background: var(--panel); }
.feature-band div { padding: 20px; text-align: center; border-right: 1px solid var(--line); }
.feature-band div:last-child { border: 0; }
.feature-band strong { display: block; color: var(--gold); font: 34px Georgia,serif; }
.feature-band span { color: var(--muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.auth-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.form-card { display: flex; flex-direction: column; gap: 12px; }
.form-card label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.form-card input { width: 100%; padding: 10px; border: 1px solid rgba(240,189,85,.25); outline: none; color: var(--ink); background: #091214; }
.form-card textarea, .alliance-create input {
  width: 100%; padding: 10px; border: 1px solid rgba(240,189,85,.25); outline: none; color: var(--ink); background: #091214;
}
.form-card textarea { min-height: 140px; resize: vertical; font: inherit; }
.compact-form { margin-top: 14px; }
.form-card input:focus { border-color: var(--gold); }
.form-message { min-height: 18px; color: var(--muted); font-size: 10px; }
.form-message.error { color: #ef988a; }
.form-message.success { color: var(--green); }
.permission-locked { opacity: .55; }
.dashboard-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.dashboard-heading #account-meta { color: var(--muted); margin-top: 7px; font-size: 10px; }
.account-list { display: grid; gap: 1px; margin-top: 14px; background: var(--line); }
.account-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 13px; background: #101d20; }
.account-row div { display: grid; gap: 4px; }
.account-row strong { font-size: 12px; }
.account-row span { color: var(--muted); font-size: 9px; }
.row-actions { display: flex !important; grid-auto-flow: column; align-items: center; gap: 6px !important; }
.news-filter { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.news-list { display: grid; gap: 12px; }
.news-post .news-meta { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.news-post .news-meta span { color: var(--gold); }
.news-post h2 { margin-top: 12px; font-size: 26px; }
.news-post > p { color: #c6d0ca; margin-top: 12px; line-height: 1.7; font-size: 12px; }
.news-post footer, .community-alliance footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; color: var(--muted); font-size: 9px; }
.partner-banner-strip { border-bottom: 1px solid var(--line); background: rgba(5,15,18,.86); padding: 9px 24px; }
.partner-banner-strip > div { max-width: 1380px; margin: 0 auto; display: flex; align-items: center; gap: 10px; overflow-x: auto; }
.partner-banner-strip span { color: var(--gold); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; flex: 0 0 auto; }
.partner-banner-strip a { flex: 0 0 auto; display: block; border: 1px solid rgba(240,189,85,.28); background: rgba(255,255,255,.04); transition: transform .15s ease, border-color .15s ease; }
.partner-banner-strip a:hover { transform: translateY(-1px); border-color: rgba(240,189,85,.75); }
.partner-banner-strip img { display: block; width: 220px; height: 62px; object-fit: cover; }
.empty-state { grid-column: 1 / -1; text-align: center; }
.empty-state p { color: var(--muted); margin-top: 8px; }
.alliance-create { display: grid; grid-template-columns: 1.2fr 1fr .45fr 1.5fr auto; align-items: end; gap: 12px; margin-bottom: 12px; }
.alliance-create label { display: grid; gap: 6px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.alliance-create .form-message { grid-column: 1 / -1; }
.alliance-season-note { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-bottom: 12px; border-color: rgba(101,196,134,.28); }.alliance-season-note strong { color: var(--green); }.alliance-season-note span { color: var(--muted); font-size: 9px; text-align: right; }
.alliance-community-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.alliance-community-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.alliance-community-head span { color: var(--gold); font: bold 15px Consolas,monospace; }
.alliance-community-head strong { color: var(--muted); font-size: 9px; }
.community-alliance > p { min-height: 42px; }
.member-preview { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 14px; }
.member-preview span { padding: 4px 7px; border: 1px solid var(--line); color: #bdc8c1; font-size: 8px; }
.overlay {
  position: fixed; inset: 0; z-index: 20; padding: 24px;
  display: grid; place-items: center; overflow: auto;
  background: rgba(3,9,11,.93); backdrop-filter: blur(10px);
}
.overlay-card { width: min(1180px, 100%); border: 1px solid var(--line); background: #0d191c; padding: 24px; box-shadow: 0 30px 90px #000; }
.overlay-card > h2 { font-size: 34px; }
.overlay-copy { color: var(--muted); margin: 8px 0 18px; font-size: 12px; }
.alliance-rosters { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; max-height: 62vh; overflow: auto; }
.alliance-card { border: 1px solid rgba(240,189,85,.16); background: rgba(255,255,255,.025); padding: 10px; }
.alliance-card h3 { color: var(--gold); margin: 0 0 7px; font: 15px Georgia,serif; }
.alliance-card ol { margin: 0; padding-left: 20px; color: #bfc8c2; font-size: 9px; line-height: 1.65; }
.player-alliance-card { border-color: rgba(101,196,134,.45); background: rgba(101,196,134,.06); }.player-alliance-card > p { color: var(--green); font-size: 8px; text-transform: uppercase; margin: -2px 0 8px; }
.independent-kingdom-card { border-color: rgba(199,210,206,.32); background: rgba(199,210,206,.04); }.independent-kingdom-card > p { color: var(--muted); font-size: 8px; text-transform: uppercase; margin: -2px 0 8px; }
.begin-button { display: block; width: min(340px,100%); margin: 18px auto 0; text-align: center; }
.season-authority { margin: 14px auto 0; color: #dc9b8d; font-size: 10px; text-align: center; }
.season-authority.authorized { color: var(--green); }
.season-authority a { color: var(--gold); }
.betting-panel { margin: 18px auto 0; padding: 14px; max-width: 760px; border: 1px solid rgba(240,189,85,.26); background: rgba(240,189,85,.045); }
.betting-panel h3 { margin: 2px 0 8px; font: 19px Georgia,serif; }
.betting-form { display: grid; grid-template-columns: 1fr 120px auto; gap: 8px; margin: 12px 0; }
.betting-form select,.betting-form input { margin: 0; }
.betting-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.betting-summary span { padding: 7px; border: 1px solid rgba(255,255,255,.06); color: var(--muted); font-size: 8px; }
.betting-summary b { color: var(--gold); }
button:disabled { opacity: .42; cursor: not-allowed; }
.export-card { max-width: 900px; }
#season-code { width: 100%; height: 280px; resize: vertical; padding: 12px; color: #cce2d4; background: #071012; border: 1px solid var(--line); font: 10px/1.4 Consolas,monospace; }
.export-actions { display: flex; gap: 8px; margin-top: 10px; }
#copy-status { display: block; min-height: 18px; color: var(--green); font-size: 10px; margin-top: 8px; }
button, select { font: inherit; }
.shell { width: min(1760px, calc(100% - 28px)); margin: auto; padding: 22px 0 18px; }
header, footer, .map-footer, .map-toolbar, .panel-heading, .ruler-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
header { margin-bottom: 14px; }
h1, h2, p { margin: 0; }
h1 { font: clamp(30px, 4vw, 50px)/1 Georgia, serif; letter-spacing: -.04em; }
h1 span { color: var(--gold); font-style: italic; }
h2 { font: 21px/1.15 Georgia, serif; }
.eyebrow { color: var(--gold); font-size: 9px; letter-spacing: .2em; font-weight: 900; margin-bottom: 6px; }
.season {
  min-width: 100px;
  padding: 9px 20px;
  border: 1px solid var(--line);
  background: var(--panel);
  text-align: center;
  clip-path: polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
}
.season span { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.season strong { color: var(--gold); font: 28px Georgia, serif; }

.world-stats {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin-bottom: 12px;
  border: 1px solid var(--line);
  background: var(--panel);
}
.world-stats div { padding: 10px 16px; border-right: 1px solid var(--line); }
.world-stats div:last-child { border: 0; }
.world-stats span, .ruler-stats span { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.world-stats strong { font-size: 17px; }

.game-grid { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(330px, .68fr); gap: 12px; }
.map-card, .panel { border: 1px solid var(--line); background: var(--panel); box-shadow: 0 20px 60px rgba(0,0,0,.24); }
.map-card { min-width: 0; align-self: start; }
.map-toolbar { min-height: 48px; padding: 7px 12px; border-bottom: 1px solid var(--line); }
.watch-controls, .legend { display: flex; align-items: center; gap: 8px; }
.watch-controls label { color: var(--muted); font-size: 10px; }
button, select {
  border: 1px solid rgba(240,189,85,.3);
  color: var(--ink);
  background: rgba(255,255,255,.04);
  padding: 7px 12px;
  cursor: pointer;
}
button:hover { background: rgba(240,189,85,.12); }
button.primary { min-width: 76px; background: linear-gradient(135deg,#f3c763,#a86821); color: #1b1306; font-weight: 900; }
select { padding: 5px 8px; margin-left: 4px; }
.legend { color: var(--muted); font-size: 9px; }
.legend i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 3px; }
.city-dot { background: var(--gold); }
.march-dot { background: #fff; }
.node-dot { background: #62bd90; }
canvas { width: 100%; height: auto; display: block; background: #203c36; cursor: crosshair; }
.map-footer { padding: 9px 12px; color: var(--muted); font-size: 10px; }
kbd { border: 1px solid #736c59; padding: 2px 5px; color: var(--ink); }

aside { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.panel { padding: 14px; }
.selected-panel { border-color: rgba(97,199,154,.3); }
.ruler-title { justify-content: flex-start; gap: 11px; }
#ruler-sigil {
  width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  color: #101615; font: bold 20px Georgia,serif; background: var(--gold);
  box-shadow: 0 0 24px rgba(240,189,85,.22);
}
#ruler-style { color: var(--muted); font-size: 10px; margin-top: 4px; }
.type-badge { display: inline-block; margin-top: 6px; padding: 3px 7px; border: 1px solid currentColor; font-size: 8px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.alliance-badge { display: inline-block; margin: 5px 0 0 5px; color: #cdbb91; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.control-status { display: block; margin-top: 5px; color: #80918c; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.control-status.connected { color: #73e0ad; }
.ruler-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 13px 0; background: var(--line); }
.ruler-stats div { background: #122024; padding: 8px; }
.ruler-stats strong { font-size: 14px; }
.troop-roster { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin: -5px 0 12px; }
.troop-roster div { padding: 7px; background: rgba(255,255,255,.035); border-top: 2px solid #52656a; }
.troop-roster div:nth-child(1) { border-color: #78bd7c; }
.troop-roster div:nth-child(2) { border-color: #dd9b51; }
.troop-roster div:nth-child(3) { border-color: #72aada; }
.troop-roster span { display: block; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.troop-roster i { color: var(--gold); font-style: normal; }
.troop-roster strong { font-size: 12px; }
.thought { border-left: 2px solid var(--green); padding: 7px 10px; background: rgba(97,199,154,.05); }
.thought span { color: var(--green); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.thought p { color: #ccd9d1; font-size: 11px; line-height: 1.45; margin-top: 4px; min-height: 32px; }
.objective-board { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.objective-title { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }
.objective-title strong { color: #df7768; }
.objective-title strong.ready { color: #72d6a1; }
.objective { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 6px; font-size: 9px; }
.objective span { color: #bec8c1; }
.tier-stats { margin: 6px 0 10px; color: #8fb7d8; font-size: 9px; letter-spacing: .03em; }
.objective em { color: var(--gold); font-style: normal; }
.objective-bar { grid-column: 1 / -1; height: 3px; background: #263235; }
.objective-bar i { display: block; height: 100%; background: linear-gradient(90deg,#7151a5,#d09ee2); }
.live { color: #84e7b9; font-size: 8px; font-weight: 900; letter-spacing: .15em; animation: pulse 1.2s infinite; }
@keyframes pulse { 50% { opacity: .35; } }

.rankings { margin-top: 10px; max-height: 235px; overflow-y: auto; }
.rank-row {
  display: grid; grid-template-columns: 24px 12px 1fr auto; align-items: center; gap: 7px;
  padding: 6px 5px; border-bottom: 1px solid rgba(255,255,255,.045); cursor: pointer;
}
.rank-row:hover, .rank-row.selected { background: rgba(240,189,85,.08); }
.rank-num { color: var(--muted); font: 12px Georgia,serif; text-align: center; }
.rank-color { width: 8px; height: 8px; border-radius: 50%; }
.rank-name { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rank-power { color: var(--gold); font-size: 10px; font-weight: 800; }
.rank-row.fallen { opacity: .36; }

.chronicle-panel { flex: 1; min-height: 165px; }
.log { max-height: 220px; overflow-y: auto; }
.entry { border-left: 2px solid #3f4a4c; padding: 6px 0 6px 9px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.entry.battle { border-color: #d76650; color: #e3b1a5; }
.entry.growth { border-color: var(--green); color: #acd9c2; }
.entry.world { border-color: var(--gold); color: #dfc990; }
footer { margin-top: 10px; color: #747c78; font-size: 10px; }
#reset, #save, #show-season-code { font-size: 10px; }
.footer-actions { display: flex; gap: 7px; }
button.danger { border-color: rgba(220,86,69,.45); color: #efb0a5; }
button.danger:hover { background: rgba(220,86,69,.12); }

textarea { width: 100%; resize: vertical; }
.community-layout { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(290px,.65fr); gap: 14px; align-items: start; }
.search-bar { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: 10px; align-items: end; }
.search-bar label { margin: 0; }
.directory-heading, .section-heading { display: flex; align-items: center; justify-content: space-between; margin: 22px 0 10px; }
.directory-heading span { color: var(--muted); font-size: 10px; }
.user-directory { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.user-card { display: grid; grid-template-columns: 58px 1fr auto; gap: 12px; align-items: start; padding: 15px; border: 1px solid var(--line); background: var(--panel); color: inherit; text-decoration: none; }
.user-card:hover { border-color: rgba(240,189,85,.5); background: rgba(240,189,85,.045); }
.profile-avatar { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(240,189,85,.45); flex: 0 0 auto; }
.avatar-fallback { display: grid; place-items: center; background: linear-gradient(135deg,#274c47,#b37d30); color: #fff7dc; font: bold 20px Georgia,serif; }
.user-card-copy strong { color: var(--ink); font: 17px Georgia,serif; }
.user-card-copy > span { display: block; color: var(--muted); font-size: 9px; margin: 2px 0 8px; }
.user-card-copy p { color: #aebbb5; font-size: 10px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.profile-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.profile-tags i, .profile-tags a { padding: 4px 7px; border: 1px solid var(--line); color: var(--gold); font: normal 8px Consolas,monospace; text-decoration: none; }
.mini-stats { grid-column: 3; grid-row: 1; display: grid; grid-template-columns: auto auto; gap: 2px 6px; text-align: right; }
.mini-stats b { color: var(--gold); font-size: 13px; }.mini-stats span { color: var(--muted); font-size: 7px; text-transform: uppercase; }
.directory-badges { grid-column: 2 / -1; display: flex; flex-wrap: wrap; gap: 5px; margin-top: -4px; }
.badge-pill { display: inline-block; padding: 4px 8px; border: 1px solid rgba(240,189,85,.42); border-radius: 999px; color: #f3cf76; background: rgba(240,189,85,.08); font: 8px Consolas,monospace; }
.activity-card { position: sticky; top: 72px; }.activity-list { margin-top: 12px; max-height: 680px; overflow: auto; }
.activity-item { padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.06); }.activity-item > span { color: var(--muted); font-size: 8px; }.activity-item p { color: #b9c6bf; font-size: 10px; line-height: 1.5; margin-top: 4px; }.activity-item a { color: var(--gold); }
.profile-loading { margin-top: 25px; }.profile-hero { display: flex; gap: 24px; align-items: center; margin-top: 24px; }.hero-avatar { width: 128px; height: 128px; font-size: 42px; }.profile-handle { color: var(--gold); font: 11px Consolas,monospace; margin-top: 7px; }.profile-bio { max-width: 760px; color: #bdcac3; line-height: 1.65; margin-top: 13px; }
.profile-stat-grid { display: grid; grid-template-columns: repeat(6,1fr); margin: 12px 0; border: 1px solid var(--line); background: var(--panel); }.profile-stat-grid div { padding: 16px; border-right: 1px solid var(--line); }.profile-stat-grid div:last-child { border: 0; }.profile-stat-grid strong { display: block; color: var(--gold); font: 22px Georgia,serif; }.profile-stat-grid span { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.profile-columns { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }.award-list { list-style: none; padding: 0; margin: 14px 0 0; }.award-list li { display: flex; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.06); }.award-list li > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--gold); font-size: 9px; }.award-list strong,.award-list small { display: block; }.award-list small { color: var(--muted); font-size: 8px; margin-top: 3px; }
.text-link { color: var(--gold); font-size: 10px; }.notification-list { margin-top: 12px; }.notification-item { display: flex; justify-content: space-between; gap: 12px; padding: 12px; border-left: 2px solid var(--gold); background: rgba(240,189,85,.04); margin-bottom: 6px; }.notification-item.read { opacity: .55; border-color: var(--line); }.notification-item strong,.notification-item span { display: block; }.notification-item span { color: var(--muted); font-size: 8px; margin: 3px 0 7px; }.notification-item p { color: #bdc9c2; font-size: 10px; }.account-admin-row { align-items: flex-start; }.account-admin-row .row-actions { justify-content: flex-end; flex-wrap: wrap; }.account-admin-row a { color: var(--ink); }
.account-awards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 14px; }.account-award { display: flex; gap: 10px; padding: 12px; border: 1px solid var(--line); background: rgba(240,189,85,.035); }.account-award > span { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(240,189,85,.4); color: var(--gold); font-size: 8px; }.account-award strong,.account-award small { display: block; }.account-award small { color: var(--gold); font-size: 7px; text-transform: uppercase; margin: 3px 0 6px; }.account-award p { color: var(--muted); font-size: 9px; line-height: 1.4; }
.badge-create-form { display: grid; grid-template-columns: 1fr .65fr 2fr auto; gap: 9px; align-items: end; margin: 18px 0 10px; padding: 12px; border: 1px solid var(--line); background: rgba(255,255,255,.02); }.badge-create-form label { margin: 0; }.badge-create-form .form-message { grid-column: 1 / -1; }.badge-catalog { display: grid; grid-template-columns: repeat(2,1fr); gap: 6px; margin-bottom: 14px; }.badge-catalog article { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 9px 11px; border: 1px solid var(--line); }.badge-catalog strong,.badge-catalog span { display: block; }.badge-catalog span { color: var(--muted); font-size: 8px; margin-top: 3px; }.badge-catalog i { color: var(--gold); font-size: 7px; font-style: normal; text-transform: uppercase; }.admin-user-badges { display: flex !important; flex-wrap: wrap; gap: 5px !important; margin-top: 5px; }.admin-user-badges .badge-pill { display: inline-flex; align-items: center; gap: 5px; }.admin-user-badges .badge-pill button { padding: 0; border: 0; color: #ef9e91; background: transparent; font-size: 13px; }
.partner-create-form { display: grid; grid-template-columns: 1fr 1.4fr 1fr auto; gap: 9px; align-items: end; margin-top: 18px; }.partner-create-form label { margin: 0; }.partner-create-form .form-message { grid-column: 1 / -1; }.partner-admin-list { display: grid; gap: 8px; margin-top: 14px; }.partner-admin-row { display: grid; grid-template-columns: 180px 1fr auto; gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--line); background: rgba(255,255,255,.025); }.partner-admin-row img { width: 180px; height: 52px; object-fit: cover; display: block; }.partner-admin-row strong,.partner-admin-row span { display: block; }.partner-admin-row span { color: var(--muted); font-size: 8px; margin-top: 4px; overflow-wrap: anywhere; }
.trophy-field-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.trophy-field-list label { display: grid; gap: 5px; padding: 8px; border: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.02); }.trophy-field-list .muted-copy { display: block; font-size: 7px; margin-top: 2px; }

.world-layout { display: grid; grid-template-columns: minmax(0,2.35fr) minmax(270px,.62fr); gap: 12px; margin-bottom: 12px; align-items: start; }
.world-map-card { min-height: 600px; overflow: hidden; }
.territory-map { position: relative; min-height: 590px; overflow: hidden; border: 1px solid rgba(240,189,85,.22); background: radial-gradient(circle at 24% 20%, rgba(204,229,161,.16), transparent 14rem), radial-gradient(circle at 78% 76%, rgba(32,84,89,.32), transparent 18rem), linear-gradient(135deg,#2f4a3d,#183838 48%,#5d4a2c); box-shadow: inset 0 0 80px rgba(4,10,8,.58); }
.territory-map::before { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(251,242,215,.12); opacity: .55; background-image: linear-gradient(rgba(4,15,15,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(4,15,15,.14) 1px, transparent 1px); background-size: 48px 48px; pointer-events: none; }
.territory-map::after { content: ""; position: absolute; inset: 0; opacity: .18; background: radial-gradient(circle at 15% 88%, #f0bd55 0 1px, transparent 2px), radial-gradient(circle at 55% 12%, #f0bd55 0 1px, transparent 2px), radial-gradient(circle at 87% 40%, #f0bd55 0 1px, transparent 2px); background-size: 120px 90px; pointer-events: none; }
.map-zones { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.territory-shape { opacity: .58; stroke-width: .36; stroke-linejoin: round; filter: drop-shadow(0 2px 3px rgba(0,0,0,.4)); }
.territory-shape.free { opacity: .34; fill: #4f655d; stroke: #a9a477; }
.territory-shape.owned { opacity: .76; }
.territory-shape.contested { opacity: .92; stroke: #f1d46a; stroke-width: .7; stroke-dasharray: 1.2 .7; animation: contestedShapePulse 1.45s ease-in-out infinite; }
.map-routes { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.map-routes line { stroke: rgba(245,220,155,.35); stroke-width: .2; stroke-dasharray: .7 .8; filter: drop-shadow(0 0 2px rgba(0,0,0,.7)); }
.map-region { position: absolute; z-index: 1; color: rgba(251,242,215,.16); font: italic 28px Georgia,serif; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; transform: rotate(-7deg); }
.map-region.northern { left: 10%; top: 7%; }.map-region.western { left: 7%; top: 43%; }.map-region.central { left: 42%; top: 46%; }.map-region.eastern { right: 7%; top: 29%; }.map-region.southern { left: 34%; bottom: 7%; }
.map-river { position: absolute; z-index: 1; width: 46%; height: 12px; border-top: 2px solid rgba(120,190,204,.38); border-radius: 50%; pointer-events: none; }
.map-river.river-one { left: 12%; top: 34%; transform: rotate(23deg); }.map-river.river-two { right: 10%; top: 63%; transform: rotate(-18deg); }
.map-mountains { position: absolute; z-index: 1; color: rgba(251,242,215,.24); font: bold 11px Consolas,monospace; letter-spacing: .28em; pointer-events: none; }
.map-mountains.north { left: 18%; top: 16%; transform: rotate(-10deg); }.map-mountains.east { right: 14%; top: 14%; transform: rotate(13deg); }
.territory-node { position: absolute; z-index: 3; width: 86px; transform: translate(-50%,-50%); padding: 5px 6px 5px 16px; border: 1px solid rgba(251,242,215,.3); border-radius: 3px; background: rgba(7,16,18,.68); box-shadow: 0 8px 18px rgba(0,0,0,.3); backdrop-filter: blur(1px); }
.territory-node i { position: absolute; left: 6px; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: #d9c68e; box-shadow: 0 0 0 3px rgba(217,198,142,.12), 0 0 10px rgba(217,198,142,.42); }
.territory-node.free { border-color: rgba(217,198,142,.34); }
.territory-node.owned { border-color: rgba(97,199,154,.55); }
.territory-node.owned i { background: var(--green); box-shadow: 0 0 0 4px rgba(97,199,154,.12), 0 0 14px rgba(97,199,154,.42); }
.territory-node.capital { border-color: rgba(240,189,85,.85); box-shadow: 0 0 26px rgba(240,189,85,.22), 0 14px 34px rgba(0,0,0,.38); }
.territory-node.capital i { width: 12px; height: 12px; background: var(--gold); box-shadow: 0 0 0 5px rgba(240,189,85,.14), 0 0 19px rgba(240,189,85,.72); }
.territory-node strong,.territory-node span,.territory-node small { display: block; }
.territory-node strong { color: var(--ink); font-size: 8px; line-height: 1.08; }
.territory-node span { color: #d6e0da; font-size: 6px; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.territory-node small { color: var(--gold); font-size: 6px; margin-top: 3px; text-transform: uppercase; }
.territory-node b { display: inline-block; margin-top: 4px; padding: 2px 4px; color: #101615; background: var(--gold); font-size: 6px; text-transform: uppercase; letter-spacing: .04em; }
.territory-node:has(b) { border-color: rgba(239,152,138,.72); }
@keyframes contestedShapePulse { 50% { opacity: 1; filter: drop-shadow(0 0 8px rgba(239,152,138,.7)); } }
.developer-map-tools { grid-column: 1 / -1; }
.developer-map-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 12px; }
.developer-map-grid .world-form { margin: 0; }
.mini-list { display: grid; gap: 7px; margin-top: 12px; }
.mini-list > div,.mini-list > a,.world-alliance-list article { display: grid; gap: 4px; padding: 10px; border: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.025); color: inherit; text-decoration: none; }
.mini-list strong,.mini-list span,.world-alliance-list strong,.world-alliance-list span { display: block; }
.mini-list strong,.world-alliance-list strong { font-size: 11px; }
.mini-list span,.world-alliance-list span { color: var(--muted); font-size: 8px; line-height: 1.5; }
.world-alliance-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 14px; }
.world-alliance-list article { grid-template-columns: 1fr auto; align-items: center; }
.world-form { display: grid; gap: 8px; margin: 12px 0; }
.world-form label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.world-form input,.world-form select { width: 100%; margin: 0; padding: 10px; border: 1px solid rgba(240,189,85,.25); color: var(--ink); background: #091214; }
.world-form .form-message { min-height: 18px; }
.invasion-band { margin: 14px 0; }
.invasion-actions { margin-top: 14px; flex-wrap: wrap; }

.player-control-panel { border-color: rgba(240,189,85,.35); }.player-login-message,.player-control-panel > .muted-copy { margin-top: 12px; color: var(--muted); font-size: 10px; }.player-login-message a { color: var(--gold); }.player-kingdom-summary { display: grid; gap: 3px; margin: 12px 0; padding: 10px; border-left: 2px solid var(--gold); background: rgba(240,189,85,.05); }.player-kingdom-summary strong { font: 17px Georgia,serif; }.player-kingdom-summary span { color: var(--muted); font-size: 9px; }.player-kingdom-summary b { color: var(--gold); font-size: 10px; }.player-resource-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; }.player-resource-grid span { padding: 7px; background: rgba(255,255,255,.035); color: var(--muted); font-size: 8px; }.player-resource-grid b { display: block; color: var(--ink); font-size: 11px; margin-top: 3px; }.player-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin: 9px 0; }.player-actions button { padding: 6px 4px; font-size: 8px; }.player-select-action { display: grid; grid-template-columns: 1fr auto; gap: 5px; margin-top: 5px; }.player-select-action select { min-width: 0; margin: 0; }.player-control-panel .form-message { min-height: 18px; margin-top: 7px; }.player-control-panel #release-player-seat { margin-top: 5px; font-size: 8px; }
.usage-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 12px; background: var(--line); }.usage-summary div { padding: 12px; background: #101d20; }.usage-summary strong,.usage-summary span { display: block; }.usage-summary strong { color: var(--gold); font: 20px Georgia,serif; }.usage-summary span { color: var(--muted); font-size: 8px; text-transform: uppercase; }.usage-routes { margin-top: 10px; }.usage-routes > div { display: grid; grid-template-columns: 50px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 8px; border-bottom: 1px solid rgba(255,255,255,.05); }.usage-routes b { color: var(--gold); font-size: 8px; }.usage-routes code { overflow: hidden; text-overflow: ellipsis; }.usage-routes span { color: var(--muted); font-size: 8px; }
.client-type-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }.client-type-list span { padding: 5px 8px; border: 1px solid var(--line); color: var(--gold); font: 8px Consolas,monospace; text-transform: uppercase; }
.realm-chat-card { margin-bottom: 18px; padding: 0; overflow: hidden; }.chat-heading { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--line); }.chat-heading h2 { margin-top: 3px; }.chat-heading > span { color: var(--gold); border: 1px solid rgba(240,189,85,.35); padding: 5px 8px; font-size: 8px; }.chat-login { padding: 25px 18px; color: var(--muted); font-size: 10px; }.chat-login a { color: var(--gold); }.chat-messages { height: 360px; overflow-y: auto; padding: 10px 18px; background: rgba(4,11,13,.35); }.chat-message { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 10px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.055); }.profile-avatar.chat-avatar { width: 34px; height: 34px; font-size: 9px; }.chat-message header { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }.chat-message header a { color: var(--ink); font-weight: 700; font-size: 10px; }.chat-message header i { color: var(--gold); font-size: 8px; font-style: normal; }.chat-message header span,.chat-message time { color: var(--muted); font-size: 7px; text-transform: uppercase; }.chat-message time { margin-left: auto; }.chat-message p { color: #c8d3cd; font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; margin-top: 5px; }.chat-delete { align-self: start; padding: 4px 6px; border-color: rgba(224,91,91,.3); color: #ef9e91; font-size: 7px; }.chat-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 12px 18px 4px; border-top: 1px solid var(--line); }.chat-form textarea { resize: vertical; min-height: 52px; margin: 0; }.chat-form button { align-self: stretch; }.realm-chat-card > .form-message,.realm-chat-card #chat-form-message { margin: 0; padding: 4px 18px 12px; min-height: 25px; }.chat-empty { color: var(--muted); text-align: center; padding: 60px 0; font-size: 10px; }

.not-found-shell { min-height: calc(100vh - 48px); display: grid; place-items: center; padding: 40px 18px; background: radial-gradient(circle at 50% 35%, rgba(240,189,85,.12), transparent 34%), linear-gradient(180deg, #102326, #071011 72%); }
.not-found-card { width: min(820px, 100%); padding: 34px; border: 1px solid rgba(240,189,85,.35); background: rgba(9,19,21,.92); box-shadow: 0 28px 90px rgba(0,0,0,.45); text-align: center; }
.not-found-card h1 { max-width: 720px; margin: 8px auto 14px; font-size: clamp(34px, 6vw, 68px); line-height: .95; }
.not-found-card p { max-width: 640px; margin: 0 auto; color: #b8c5be; line-height: 1.7; }
.not-found-map { position: relative; height: 190px; margin: 28px auto; max-width: 520px; border: 1px solid var(--line); background: repeating-linear-gradient(45deg, rgba(240,189,85,.04), rgba(240,189,85,.04) 10px, rgba(255,255,255,.02) 10px, rgba(255,255,255,.02) 20px); overflow: hidden; }
.nf-citadel { position: absolute; left: 50%; top: 50%; width: 74px; height: 74px; transform: translate(-50%,-50%); display: grid; place-items: center; border: 2px solid var(--gold); border-radius: 50%; color: var(--gold); font: 42px Georgia,serif; background: #17282a; box-shadow: 0 0 35px rgba(240,189,85,.26); }
.nf-path { position: absolute; width: 18px; height: 18px; border-radius: 50%; background: #d76650; box-shadow: 0 0 18px rgba(215,102,80,.55); animation: lostMarch 4s linear infinite; }
.nf-path.one { left: 10%; top: 28%; }.nf-path.two { left: 78%; top: 18%; animation-delay: -1.2s; }.nf-path.three { left: 20%; top: 76%; animation-delay: -2.1s; }
.not-found-actions { justify-content: center; flex-wrap: wrap; }
@keyframes lostMarch { 0%,100% { transform: translate(0,0); } 35% { transform: translate(90px,30px); } 70% { transform: translate(160px,-20px); } }

@media (max-width: 1060px) {
  .game-grid { grid-template-columns: 1fr; }
  aside { display: grid; grid-template-columns: 1fr 1fr; }
  .chronicle-panel { grid-column: 1 / -1; }
  .alliance-rosters { grid-template-columns: repeat(3,1fr); }
  .community-layout { grid-template-columns: 1fr; }.activity-card { position: static; }.search-bar { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 700px) {
  .site-nav { align-items: flex-start; flex-direction: column; padding: 12px; }
  .site-nav div { width: 100%; overflow-x: auto; }
  .site-nav a { padding: 9px; white-space: nowrap; }
  .page-hero { align-items: flex-start; flex-direction: column; }
  .doc-grid, .auth-grid { grid-template-columns: 1fr; }
  .alliance-community-grid, .alliance-create { grid-template-columns: 1fr; }
  .feature-band { grid-template-columns: repeat(2,1fr); }
  .endpoint-list div { grid-template-columns: 44px 1fr; }
  .endpoint-list span { grid-column: 1 / -1; }
  .shell { width: calc(100% - 12px); padding-top: 10px; }
  .world-stats { grid-template-columns: repeat(3,1fr); }
  .world-stats div:nth-child(3) { border-right: 0; }
  .map-toolbar, .map-footer { align-items: flex-start; gap: 8px; flex-direction: column; }
  .legend { flex-wrap: wrap; }
  aside { grid-template-columns: 1fr; }
  .chronicle-panel { grid-column: auto; }
  .alliance-rosters { grid-template-columns: 1fr 1fr; }
  .user-directory,.profile-columns { grid-template-columns: 1fr; }.search-bar { grid-template-columns: 1fr; }.user-card { grid-template-columns: 48px 1fr; }.profile-avatar { width: 48px; height: 48px; }.mini-stats { grid-column: 2; display: flex; gap: 8px; text-align: left; }.profile-hero { align-items: flex-start; flex-direction: column; }.hero-avatar { width: 100px; height: 100px; }.profile-stat-grid { grid-template-columns: repeat(2,1fr); }.profile-stat-grid div:nth-child(2n) { border-right: 0; }
  .account-awards { grid-template-columns: 1fr; }
  .badge-create-form,.badge-catalog { grid-template-columns: 1fr; }
  .trophy-field-list { grid-template-columns: 1fr; }
  .usage-summary { grid-template-columns: repeat(2,1fr); }.usage-routes > div { grid-template-columns: 44px 1fr; }.usage-routes span { grid-column: 1 / -1; }.player-actions { grid-template-columns: repeat(2,1fr); }
  .world-layout,.world-alliance-list { grid-template-columns: 1fr; }.world-map-card,.territory-map { min-height: 760px; }.territory-node { width: 122px; }
  .chat-messages { height: 300px; padding-inline: 10px; }.chat-form { grid-template-columns: 1fr; padding-inline: 10px; }.chat-message { grid-template-columns: 30px minmax(0,1fr); }.chat-delete { grid-column: 2; justify-self: start; }.chat-message time { width: 100%; margin: 0; }
}
