:root {
    --ink: #17130f;
    --paper: #eee3c7;
    --paper-dark: #d5c29a;
    --gold: #dcae48;
    --gold-light: #f2d581;
    --red: #8f302b;
    --green: #587343;
    --line: rgba(238, 227, 199, .14);
    --shadow: 0 18px 50px rgba(0, 0, 0, .3);
}
[hidden] { display: none !important; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; color: var(--paper); background: #15120f; font-family: Georgia, "Times New Roman", serif; }
button, input { font: inherit; }
a { color: inherit; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; border: 1px solid transparent; padding: 0 22px; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; font-size: .76rem; font-weight: 800; cursor: pointer; transition: .2s ease; }
.button-gold { color: #24190c !important; border-color: #f4dc91; background: linear-gradient(#e8c76d, #b77d25); box-shadow: inset 0 1px #fff2b3, 0 4px 14px rgba(0, 0, 0, .3); }
.button-gold:hover { filter: brightness(1.12); transform: translateY(-1px); }
.button-ghost { color: var(--paper) !important; border-color: rgba(238, 227, 199, .4); background: rgba(0, 0, 0, .2); }
.button-danger { color: #f6ded7 !important; border-color: #9c4d43; background: linear-gradient(#843b34, #542622); }
.button:disabled { opacity: .48; cursor: not-allowed; transform: none !important; filter: none !important; }
.button-disabled { color: #827867; border-color: #5b5245; background: #312c25; cursor: not-allowed; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; }
.brand-mark { display: grid; width: 42px; height: 47px; place-items: center; color: #1f160d; background: linear-gradient(135deg, #f3d982, #a66d1d); clip-path: polygon(50% 0, 94% 18%, 84% 78%, 50% 100%, 16% 78%, 6% 18%); }
.eyebrow { margin: 0 0 10px; color: var(--gold-light); text-transform: uppercase; letter-spacing: .2em; font: 700 .7rem Arial, sans-serif; }
.flash { max-width: 850px; padding: 12px 16px; border-left: 3px solid; font-family: Arial, sans-serif; font-size: .88rem; }
.flash-error { border-color: #dc5a50; background: rgba(143, 48, 43, .25); }
.flash-success { border-color: #8cb36b; background: rgba(88, 115, 67, .25); }

.landing-screen { background: radial-gradient(circle at 70% 25%, rgba(143, 48, 43, .24), transparent 30%), linear-gradient(rgba(13, 11, 9, .8), rgba(13, 11, 9, .95)), repeating-linear-gradient(105deg, #251e17 0 1px, #17130f 1px 7px); }
.landing-nav { position: absolute; z-index: 2; top: 0; left: 0; width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 25px clamp(25px, 7vw, 100px); }
.landing { overflow: hidden; }
.hero { min-height: 760px; display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 50px; max-width: 1250px; margin: auto; padding: 120px 50px 60px; }
.hero h1 { margin: 0; font-size: clamp(3.5rem, 7vw, 7.2rem); line-height: .88; letter-spacing: -.055em; text-transform: uppercase; text-shadow: 0 5px 30px #000; }
.hero h1 span { color: var(--gold); }
.hero-text { max-width: 660px; margin: 30px 0; color: #c5baa4; font: 1.05rem/1.8 Arial, sans-serif; }
.hero-stats { display: flex; gap: 45px; margin-top: 55px; }
.hero-stats div { display: flex; flex-direction: column; }
.hero-stats strong { color: var(--gold-light); font-size: 1.8rem; }
.hero-stats span { color: #8d8272; text-transform: uppercase; letter-spacing: .15em; font: .62rem Arial, sans-serif; }
.crest { position: relative; display: grid; width: min(38vw, 430px); aspect-ratio: .78; place-items: center; margin: auto; color: var(--gold-light); border: 4px solid #76531d; background: radial-gradient(circle, #943a2f, #451b18 65%, #1c1410 66%); clip-path: polygon(50% 0, 93% 17%, 86% 74%, 50% 100%, 14% 74%, 7% 17%); filter: drop-shadow(0 25px 35px #000); }
.crest span { font-size: 13rem; line-height: 1; text-shadow: 5px 6px #25130d; }
.crest i { position: absolute; inset: 8%; border: 2px solid rgba(242, 213, 129, .35); clip-path: inherit; }
.access-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; min-height: 620px; padding: 80px max(8vw, 30px); color: var(--ink); background: var(--paper); }
.access-panel > div { max-width: 500px; width: 100%; justify-self: end; }
.access-panel h2 { margin: 0 0 25px; font-size: 2.6rem; }
.access-panel .eyebrow { color: var(--red); }
.access-panel blockquote { max-width: 480px; color: #806f50; font-size: 2.4rem; line-height: 1.35; font-style: italic; }
.auth-form { display: grid; gap: 16px; }
.auth-form label { display: grid; gap: 7px; text-transform: uppercase; letter-spacing: .1em; font: 700 .68rem Arial, sans-serif; }
.auth-form input, .auth-form select { width: 100%; border: 1px solid #bba982; padding: 14px; color: var(--ink); outline: 0; background: rgba(255, 255, 255, .35); }
.auth-form input:focus, .auth-form select:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(143, 48, 43, .1); }
.auth-form .remember-login { display: flex; align-items: center; gap: 9px; text-transform: none; letter-spacing: 0; font-weight: 600; }
.auth-form .remember-login input { width: 17px; height: 17px; margin: 0; accent-color: var(--red); }
.incoming-alerts { margin: 0 0 18px; border: 1px solid #8d443d; padding: 16px; background: radial-gradient(circle at 0 0, rgba(166,62,52,.2), transparent 36%), #241815; box-shadow: 0 14px 34px rgba(0,0,0,.24); }
.incoming-alerts > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.incoming-alerts header small { color: #e48779; text-transform: uppercase; letter-spacing: .13em; font: 700 .54rem Arial, sans-serif; }
.incoming-alerts h2 { margin: 4px 0 0; color: #f3d8c3; }
.incoming-alerts article { display: grid; grid-template-columns: 36px 1fr auto; gap: 11px; align-items: center; border-top: 1px solid rgba(184,92,79,.25); padding: 10px 0; }
.incoming-alerts article > span { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #b2584e; border-radius: 50%; color: #ffb09d; font-weight: 900; }
.incoming-alerts article strong, .incoming-alerts article small { display: block; }
.incoming-alerts article small { margin-top: 3px; color: #aa8d82; font: .66rem Arial, sans-serif; }
.incoming-alerts time { color: #ffbd76; font: 700 .72rem monospace; }
.incoming-alerts > p { margin: 9px 0 0; color: #b7978c; font: .66rem Arial, sans-serif; }
.form-switch { font-family: Arial, sans-serif; font-size: .86rem; }
.form-switch a { color: var(--red); font-weight: 700; }

.topbar { position: sticky; z-index: 10; top: 0; min-height: 77px; display: grid; grid-template-columns: 250px 1fr auto; align-items: center; border-bottom: 1px solid var(--line); padding: 0 24px; background: rgba(21, 18, 15, .97); box-shadow: 0 8px 25px rgba(0, 0, 0, .25); }
.resources { display: flex; justify-content: center; gap: clamp(12px, 4vw, 55px); }
.resource { display: flex; align-items: center; gap: 9px; min-width: 105px; }
.resource-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border: 1px solid #544536; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #3b3026, #18130f); box-shadow: inset 0 0 10px rgba(255,255,255,.05), 0 4px 9px rgba(0,0,0,.3); }
.resource-icon svg { width: 25px; height: 25px; fill: currentColor; }
.resource-wood .resource-icon { color: #b87943; }
.resource-stone .resource-icon { color: #b7b1a4; }
.resource-iron .resource-icon { color: #91a2a5; }
.resource-food .resource-icon { color: #d2b657; }
.resource strong, .resource small { display: block; }
.resource strong { font-size: 1rem; }
.resource small { color: #807568; font: .6rem Arial, sans-serif; text-transform: uppercase; }
.profile { display: flex; align-items: center; gap: 10px; border: 0; color: var(--paper); background: none; cursor: pointer; }
.profile > span:not(.avatar) { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #8f6d35; border-radius: 50%; color: var(--gold-light); background: #3d2b19; }
.game-layout { display: grid; grid-template-columns: 218px 1fr; min-height: calc(100vh - 77px); }
.sidebar { display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--line); padding: 20px 12px; background: #1b1713; }
.sidebar nav { display: grid; gap: 12px; }
.nav-group { display: grid; gap: 3px; }
.nav-group > b { margin: 0 10px 3px; color: #5f5549; text-transform: uppercase; letter-spacing: .16em; font: 700 .48rem Arial, sans-serif; }
.nav-staff { border-top: 1px solid #342c24; padding-top: 11px; }
.sidebar nav a { display: grid; grid-template-columns: 27px 1fr; align-items: center; min-height: 37px; padding: 0 10px; color: #918677; text-decoration: none; text-transform: uppercase; letter-spacing: .07em; font: 700 .64rem Arial, sans-serif; }
.sidebar nav a span { display: grid; width: 21px; height: 21px; place-items: center; border: 1px solid #4d3c27; border-radius: 50%; color: var(--gold); background: #241d16; font-size: .65rem; }
.sidebar nav a small { grid-column: 2; color: #594f43; font-size: .5rem; }
.sidebar nav a.active { color: var(--paper); border-left: 2px solid var(--gold); background: linear-gradient(90deg, rgba(220, 174, 72, .16), transparent); }
.sidebar nav a.locked { cursor: not-allowed; }
.world-card { display: grid; gap: 4px; border: 1px solid var(--line); padding: 18px; background: #211c17; }
.world-card small, .world-card span { color: #73695d; text-transform: uppercase; letter-spacing: .1em; font: .58rem Arial, sans-serif; }
.world-card strong { color: var(--gold-light); }
.dashboard { padding: 42px clamp(25px, 5vw, 70px) 80px; background: radial-gradient(circle at 40% 0, rgba(103, 74, 37, .16), transparent 28%), #17130f; }
.village-heading { display: flex; align-items: end; justify-content: space-between; max-width: 1200px; margin-bottom: 30px; }
.village-heading h1 { margin: 0 0 7px; font-size: clamp(2rem, 4vw, 3.5rem); }
.village-heading > div > p:last-child { color: #8e8375; font-family: Arial, sans-serif; }
.renown { min-width: 115px; border-left: 1px solid #5b4a30; padding-left: 22px; }
.renown small, .renown strong { display: block; }
.renown small { color: #817568; text-transform: uppercase; letter-spacing: .15em; font: .6rem Arial, sans-serif; }
.renown strong { color: var(--gold-light); font-size: 2rem; }
.queue-card { display: grid; grid-template-columns: 58px minmax(0, 1fr); grid-template-areas: "slot actions" "title title"; gap: 9px 10px; align-items: center; max-width: 1200px; min-width: 0; overflow: hidden; border: 1px solid #5e4827; padding: 14px 12px; background: linear-gradient(90deg, #2f2418, #201b16); box-shadow: var(--shadow); }
.queue-card > div { display: flex; min-width: 0; align-items: center; gap: 13px; }
.queue-card small, .queue-card strong { display: block; }
.queue-card small { color: #887c6d; text-transform: uppercase; letter-spacing: .12em; font: .58rem Arial, sans-serif; }
.queue-slot { grid-area: slot; flex-direction: column; align-items: flex-start !important; gap: 2px !important; }
.queue-slot small { line-height: 1.15; font-size: .48rem; }
.queue-title { grid-area: title; padding-top: 8px; border-top: 1px solid rgba(238,227,199,.08); color: var(--paper); font-size: 1rem; overflow-wrap: normal; }
.hammer { color: var(--gold); font-size: 1.6rem; }
.queue-time { min-width: 0; width: min(150px, 100%); flex-direction: column; align-items: stretch !important; gap: 6px !important; }
.queue-time > span { color: var(--gold-light); font: 700 .8rem Arial, sans-serif; }
.progress { width: 100%; height: 5px; overflow: hidden; background: #0c0a08; }
.progress i { display: block; width: 0; height: 100%; background: var(--gold); transition: width 1s linear; }
.queue-actions { grid-area: actions; display: grid !important; grid-template-columns: minmax(75px, 1fr) auto; gap: 8px !important; min-width: 0; }
.queue-speedup { border: 1px solid #b6812e; padding: 8px 7px; color: #24190c; background: linear-gradient(#e8c76d, #b77d25); cursor: pointer; text-transform: uppercase; white-space: nowrap; font: 800 .48rem Arial, sans-serif; }
.queue-speedup:disabled { border-color: #4b4338; color: #776d60; background: #29241e; cursor: not-allowed; }
.section-heading { display: flex; align-items: end; justify-content: space-between; max-width: 1200px; margin: 42px 0 18px; border-bottom: 1px solid var(--line); padding-bottom: 13px; }
.section-heading h2 { margin: 0; }
.section-heading > span { color: #796e60; font: .7rem Arial, sans-serif; }
.building-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 14px; max-width: 1200px; }
.building-card { display: grid; grid-template-columns: 118px 1fr; overflow: hidden; border: 1px solid var(--line); border-left: 3px solid #77613a; background: linear-gradient(135deg, #241f19, #1b1713); box-shadow: 0 12px 25px rgba(0, 0, 0, .15); transition: .2s ease; }
.building-card:hover { border-color: #8b6c36; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(0,0,0,.25); }
.building-category-economia { border-left-color: #6f9b57; }
.building-category-militar { border-left-color: #a24f43; }
.building-category-defesa { border-left-color: #62839a; }
.building-card .building-art { min-height: 100%; }
.building-card .building-body { padding: 16px; }
.building-meta { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.building-meta small, .building-meta span { color: #8e816e; text-transform: uppercase; letter-spacing: .1em; font: 700 .5rem Arial, sans-serif; }
.building-meta span { color: var(--gold); }
.building-art { position: relative; display: grid; height: 130px; place-items: center; overflow: hidden; background: radial-gradient(circle, #55402b, #292019 58%, #18130f); }
.building-art::before, .building-art::after { position: absolute; content: ""; width: 120px; height: 80px; border: 2px solid rgba(220, 174, 72, .16); transform: rotate(45deg); }
.building-art::after { width: 180px; height: 130px; }
.building-art span { z-index: 1; color: #e5c272; font-size: 4rem; filter: drop-shadow(0 6px 5px #000); }
.building-art b { position: absolute; z-index: 2; right: 10px; bottom: 10px; padding: 5px 9px; color: #24190c; background: var(--gold); text-transform: uppercase; font: 700 .58rem Arial, sans-serif; }
.building-body { padding: 18px; }
.building-body h3 { margin: 0; color: var(--paper); font-size: 1.25rem; }
.building-body p { min-height: 42px; color: #857a6c; font: .82rem/1.55 Arial, sans-serif; }
.building-body form .button { width: 100%; margin-top: 15px; font-size: .65rem; }
.costs { display: flex; flex-wrap: wrap; gap: 7px; }
.cost { padding: 4px 7px; border: 1px solid #51473b; color: #aea18e; font: 700 .67rem Arial, sans-serif; }
.cost::before { display: inline-block; width: 7px; height: 7px; margin-right: 5px; content: ""; transform: rotate(45deg); }
.cost-wood::before { background: #9a673a; }.cost-stone::before { background: #99958c; }.cost-iron::before { background: #64787d; }.cost-food::before { background: #b09143; }
.map-controls { display: flex; flex-wrap: wrap; gap: 8px; max-width: 1200px; margin-bottom: 14px; }
.map-controls a { border: 1px solid #51432f; padding: 9px 14px; color: #a99a84; background: #211c17; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; font: 700 .62rem Arial, sans-serif; }
.map-controls a:hover, .map-controls .map-home { color: #24190c; border-color: var(--gold-light); background: var(--gold); }
.world-map { display: grid; grid-template-columns: repeat(11, minmax(74px, 1fr)); min-width: 850px; max-width: 1200px; overflow: visible; border: 4px solid #342a20; background: #0e0c0a; box-shadow: var(--shadow); }
.map-tile { position: relative; min-height: 78px; overflow: visible; border: 1px solid rgba(22, 18, 13, .3); background: #46533a; }
.map-tile::before { position: absolute; inset: 0; content: ""; opacity: .38; background: repeating-linear-gradient(35deg, transparent 0 9px, rgba(255,255,255,.08) 10px); }
.map-tile small { position: absolute; z-index: 2; top: 4px; left: 5px; color: rgba(255, 255, 255, .45); font: .5rem Arial, sans-serif; }
.terrain-forest { background: #293c2b; }
.terrain-hills { background: #66543c; }
.terrain-mountain { background: #49463f; }
.terrain-water { background: #304c55; }
.terrain-plains { background: #4f5a38; }
.map-tile.has-village { z-index: 2; background: #5d4930; }
.map-tile.is-mine { outline: 3px solid var(--gold); outline-offset: -3px; background: #725a31; }
.map-castle { position: absolute; z-index: 2; top: 21px; left: 50%; display: grid; width: 34px; height: 34px; place-items: center; border: 2px solid #d8c79f; color: #f3dfaa; background: #3a3028; transform: translateX(-50%) rotate(45deg); font: 800 .8rem Arial, sans-serif; }
.map-castle::first-letter { transform: rotate(-45deg); }
.tile-info { position: absolute; z-index: 10; bottom: calc(100% - 2px); left: 50%; display: none; width: 170px; padding: 10px; color: var(--paper); border: 1px solid #725a31; background: #191510; box-shadow: var(--shadow); transform: translateX(-50%); text-align: center; }
.tile-info strong, .tile-info span { display: block; }
.tile-info span { margin-top: 3px; color: #948675; font: .65rem Arial, sans-serif; }
.has-village:hover .tile-info { display: block; }
.map-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: #857a6c; font: .7rem Arial, sans-serif; }
.map-legend span { width: 12px; height: 12px; margin-left: 15px; }
.map-legend span:first-child { margin-left: 0; }
.legend-mine { background: var(--gold); }.legend-rival { background: #a99d87; }.legend-empty { background: #6f8f4c; }
.legend-allied { background: #6ea8c7; }.legend-nap { background: #c4ad68; }.legend-war { background: #bf6158; }.legend-neutral { background: #80796d; }.legend-royal { background: #e5b84e; box-shadow: 0 0 8px rgba(229,184,78,.7); }
.unit-grid { display: grid; gap: 16px; max-width: 1000px; }
.unit-card { display: grid; grid-template-columns: 95px 1fr; gap: 20px; align-items: center; border: 1px solid var(--line); padding: 20px; background: #211c17; }
.unit-emblem { display: grid; width: 82px; height: 96px; place-items: center; border: 1px solid #6f552d; border-radius: 42px 42px 14px 14px; color: #ebc96e; background: radial-gradient(circle at 50% 28%, #49371f, #211a13 66%); box-shadow: inset 0 0 22px rgba(220,174,72,.12), 0 8px 18px rgba(0,0,0,.28); }
.unit-emblem svg { width: 70px; height: 78px; overflow: visible; fill: currentColor; filter: drop-shadow(0 4px 3px rgba(0,0,0,.65)); }
.unit-emblem svg [fill="none"] { fill: none; }
.unit-emblem-ram, .unit-emblem-ballista, .unit-emblem-catapult { color: #d7b06c; background: radial-gradient(circle at 50% 28%, #4d3825, #201813 68%); }
.unit-card h3 { margin: 0 0 5px; font-size: 1.35rem; }
.unit-card h3 small { margin-left: 8px; color: var(--gold); font: 700 .6rem Arial, sans-serif; text-transform: uppercase; }
.unit-card p { margin: 5px 0 12px; color: #887d6f; font: .8rem Arial, sans-serif; }
.unit-stats { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 12px; color: #786e62; text-transform: uppercase; font: .58rem Arial, sans-serif; }
.unit-stats b { color: #d6c8af; font-size: .72rem; }
.recruit-quantity { display: flex; align-items: center; justify-content: flex-end; gap: 9px; margin-top: -30px; color: #84796b; text-transform: uppercase; font: 700 .54rem Arial, sans-serif; }
.recruit-quantity input { width: 82px; min-height: 38px; border: 1px solid #5a4b38; padding: 0 10px; color: var(--paper); background: #15120f; }
.recruit-quantity input:disabled { color: #665e54; background: #29241e; }
.recruit-batch-submit { display: flex; align-items: center; justify-content: space-between; max-width: 1000px; margin-top: 15px; border: 1px solid #765a2d; padding: 14px 18px; background: #1f1913; box-shadow: var(--shadow); }
.recruit-batch-submit strong, .recruit-batch-submit small { display: block; }
.recruit-batch-submit strong { color: var(--gold-light); }
.recruit-batch-submit small { margin-top: 3px; color: #837769; font: .62rem Arial, sans-serif; }
.empty-state { max-width: 700px; border: 1px dashed #665338; padding: 45px; text-align: center; background: rgba(38, 31, 24, .5); }
.empty-state strong { display: block; color: var(--gold-light); font-size: 1.4rem; }
.empty-state p { margin: 12px 0 24px; color: #8e8375; font-family: Arial, sans-serif; }
.builder-slots { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 12px; max-width: 1200px; margin-bottom: 24px; }
.builder-slots .queue-card { min-width: 0; }
.abandon-castle-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; max-width: 1200px; margin: 0 0 20px; padding: 18px 20px; border: 1px solid rgba(156, 77, 67, .75); background: linear-gradient(135deg, rgba(132, 59, 52, .22), rgba(28, 23, 18, .96)); box-shadow: var(--shadow); }
.abandon-castle-card h2 { margin: 3px 0 6px; }
.abandon-castle-card p { margin: 0; color: #b7a899; font: .84rem Arial, sans-serif; }
.builder-empty, .builder-premium { display: flex; align-items: center; gap: 13px; min-height: 72px; border: 1px dashed #4d4337; padding: 14px 18px; background: rgba(33, 28, 23, .55); text-decoration: none; }
.builder-empty > span, .builder-premium > span { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #665338; border-radius: 50%; color: var(--gold-light); font: 800 .9rem Arial, sans-serif; }
.builder-empty small, .builder-empty strong, .builder-premium small, .builder-premium strong { display: block; }
.builder-empty small, .builder-premium small { color: #776c60; text-transform: uppercase; letter-spacing: .1em; font: .56rem Arial, sans-serif; }
.builder-empty strong { color: #91ad75; }
.builder-premium { border-style: solid; border-color: #73582c; background: linear-gradient(120deg, rgba(124, 86, 30, .25), rgba(33, 28, 23, .6)); }
.builder-premium:hover { border-color: var(--gold); }
.premium-hero { display: flex; align-items: center; justify-content: space-between; max-width: 1000px; border: 1px solid #7b5b28; padding: 24px; background: radial-gradient(circle at 15% 50%, rgba(220, 174, 72, .18), transparent 32%), #211c17; box-shadow: var(--shadow); }
.premium-hero > div { display: flex; align-items: center; gap: 18px; }
.premium-crown { display: grid; width: 70px; height: 78px; place-items: center; color: #25190b; background: linear-gradient(145deg, #f4db8b, #a86d1c); clip-path: polygon(10% 28%, 28% 43%, 50% 8%, 72% 43%, 90% 28%, 82% 88%, 18% 88%); font-size: 1.5rem; font-weight: 900; }
.premium-hero small { color: var(--gold); text-transform: uppercase; letter-spacing: .12em; font: .6rem Arial, sans-serif; }
.premium-hero h2 { margin: 4px 0; }
.premium-hero p { margin: 0; color: #8c8071; font: .8rem Arial, sans-serif; }
.premium-hero > strong { color: var(--gold-light); font-size: 1.6rem; }
.premium-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 1000px; margin-top: 18px; }
.premium-grid article, .premium-grid > form { border: 1px solid var(--line); padding: 22px; background: #211c17; }
.premium-grid b { display: block; color: var(--paper); font-size: 1.05rem; }
.premium-grid p { min-height: 55px; color: #887d6e; font: .8rem/1.55 Arial, sans-serif; }
.premium-grid span { color: var(--gold); text-transform: uppercase; letter-spacing: .1em; font: 700 .55rem Arial, sans-serif; }
.premium-grid > form .button { width: 100%; }
.premium-benefit-list { display: grid; gap: 14px; max-width: 1000px; margin-top: 18px; }
.premium-benefit { border: 1px solid #4e4438; padding: 22px; background: linear-gradient(145deg, #241f19, #1b1713); box-shadow: 0 12px 28px rgba(0,0,0,.18); }
.premium-benefit.is-active { border-color: #9a783d; background: radial-gradient(circle at 90% 0, rgba(220,174,72,.16), transparent 30%), #241f19; }
.premium-benefit > header { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: start; }
.premium-benefit header small { color: #837668; text-transform: uppercase; letter-spacing: .12em; font: 700 .52rem Arial, sans-serif; }
.premium-benefit.is-active header small { color: #9fc07e; }
.premium-benefit h2 { margin: 4px 0; }
.premium-benefit header p { margin: 0; color: #908476; font: .75rem Arial, sans-serif; }
.premium-benefit header > strong { display: grid; width: 62px; height: 62px; place-items: center; border: 1px solid #69512d; border-radius: 50%; color: var(--gold-light); background: #18130f; font-size: 1.25rem; }
.premium-validity { margin: 16px 0 10px; border-left: 2px solid var(--gold); padding: 8px 11px; color: #b8aa95; background: rgba(220,174,72,.06); font: .68rem Arial, sans-serif; }
.premium-options { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.premium-options form { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #463c31; padding: 11px; background: #181410; }
.premium-options span b, .premium-options span small { display: block; }
.premium-options span b { color: var(--paper); font-size: .78rem; }
.premium-options span small { margin-top: 2px; color: #776c60; text-transform: uppercase; font: .5rem Arial, sans-serif; }
.premium-options .button { min-width: 120px; }
.premium-utilities { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 1000px; margin-top: 14px; }
.premium-utilities article { border: 1px solid var(--line); padding: 20px; background: #211c17; }
.premium-utilities b { color: var(--paper); }
.premium-utilities p { color: #897d70; font: .75rem/1.5 Arial, sans-serif; }
.premium-utilities span { color: var(--gold); text-transform: uppercase; font: 700 .54rem Arial, sans-serif; }
.premium-grid, .premium-note { display: none; }
.premium-note { max-width: 1000px; margin-top: 18px; border-left: 3px solid var(--gold); padding: 16px 20px; background: rgba(220, 174, 72, .08); }
.premium-note p { margin: 5px 0 0; color: #8c8071; font: .8rem Arial, sans-serif; }

/* V3 world map */
.world-map { gap: 3px; padding: 8px; border: 1px solid #59472f; border-radius: 5px; background: #19150f; box-shadow: inset 0 0 35px #050403, 0 22px 55px rgba(0,0,0,.42); perspective: 900px; }
.map-tile { min-height: 86px; border: 0; border-radius: 5px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.05), inset 0 -15px 25px rgba(0,0,0,.2), 0 2px 2px rgba(0,0,0,.45); transition: transform .18s ease, filter .18s ease; }
.map-tile:hover { z-index: 8; filter: brightness(1.14); transform: translateY(-3px) scale(1.04); }
.map-tile::before { opacity: .55; border-radius: inherit; background: radial-gradient(circle at 25% 30%, rgba(255,255,255,.12) 0 2px, transparent 3px), radial-gradient(circle at 70% 68%, rgba(0,0,0,.12) 0 3px, transparent 4px); background-size: 23px 19px, 31px 27px; }
.terrain-plains { background: linear-gradient(145deg, #687845, #42552f); }
.terrain-forest { background: linear-gradient(145deg, #425937, #213525); }
.terrain-hills { background: linear-gradient(145deg, #806b4a, #4d3f30); }
.terrain-mountain { background: linear-gradient(145deg, #5f5a50, #302e2b); }
.terrain-water { background: linear-gradient(145deg, #426b73, #274750); }
.map-tile.has-village { background: linear-gradient(145deg, #78613d, #4c3a27); }
.map-tile.is-mine { outline: 3px solid #f0c65d; outline-offset: -3px; background: linear-gradient(145deg, #8b733f, #574324); box-shadow: inset 0 0 20px rgba(241, 203, 105, .25), 0 0 18px rgba(220, 174, 72, .25); }
.terrain-detail { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.terrain-forest .terrain-detail i { position: absolute; bottom: 15px; width: 0; height: 0; border-right: 11px solid transparent; border-bottom: 31px solid #172c1d; border-left: 11px solid transparent; filter: drop-shadow(3px 5px 2px rgba(0,0,0,.35)); }
.terrain-forest .terrain-detail i::after { position: absolute; top: 27px; left: -2px; width: 4px; height: 10px; content: ""; background: #4e3828; }
.terrain-forest .terrain-detail i:nth-child(1) { left: 12%; transform: scale(.8); }
.terrain-forest .terrain-detail i:nth-child(2) { left: 43%; bottom: 9px; transform: scale(1.1); }
.terrain-forest .terrain-detail i:nth-child(3) { right: 10%; transform: scale(.65); }
.terrain-hills .terrain-detail i { position: absolute; bottom: -12px; left: 7%; width: 60px; height: 48px; border-radius: 55% 55% 0 0; background: linear-gradient(145deg, #907853, #58462f); box-shadow: inset 8px 6px rgba(255,255,255,.06); transform: rotate(-8deg); }
.terrain-hills .terrain-detail i:nth-child(2) { right: -7px; bottom: -18px; left: auto; transform: scale(.8) rotate(10deg); }
.terrain-water .terrain-detail i { position: absolute; left: 8%; width: 35%; height: 2px; border-radius: 50%; background: rgba(184, 224, 225, .45); box-shadow: 9px 4px rgba(184, 224, 225, .18); animation: water-drift 3s ease-in-out infinite alternate; }
.terrain-water .terrain-detail i:nth-child(1) { top: 25%; }.terrain-water .terrain-detail i:nth-child(2) { top: 52%; left: 48%; }.terrain-water .terrain-detail i:nth-child(3) { top: 75%; left: 20%; }
@keyframes water-drift { to { transform: translateX(8px); opacity: .55; } }
.map-castle { position: absolute; z-index: 3; top: 22px; left: 50%; width: 52px; height: 43px; border: 0; background: none; transform: translateX(-50%); filter: drop-shadow(0 7px 3px rgba(0,0,0,.55)); }
.map-castle i { position: absolute; bottom: 0; display: block; border: 1px solid #392f27; background: linear-gradient(90deg, #817665, #c5b99f 48%, #756a5b); }
.castle-tower { width: 15px; height: 29px; }
.castle-tower::before { position: absolute; top: -5px; left: -2px; width: 17px; height: 7px; content: ""; background: repeating-linear-gradient(90deg, #a99e89 0 4px, transparent 4px 7px); }
.tower-left { left: 2px; }.tower-right { right: 2px; }
.castle-keep { left: 14px; width: 25px; height: 35px; }
.castle-keep::before { position: absolute; top: -6px; left: -2px; width: 27px; height: 8px; content: ""; background: repeating-linear-gradient(90deg, #b6aa93 0 5px, transparent 5px 9px); }
.map-castle b { position: absolute; z-index: 5; bottom: 0; left: 22px; width: 9px; height: 15px; border-radius: 8px 8px 0 0; background: #29231f; }
.castle-level-2 { transform: translateX(-50%) scale(1.12); }.castle-level-3 { transform: translateX(-50%) scale(1.25); }
.castle-level-3 .castle-keep::after { position: absolute; top: -18px; left: 10px; width: 2px; height: 14px; content: ""; background: #2b2119; box-shadow: 5px 3px 0 1px #9a302b; }
.tile-info { bottom: calc(100% + 7px); border-radius: 3px; }
.map-castle { cursor: pointer; appearance: none; padding: 0; }
.castle-dialog { width: min(620px, calc(100% - 30px)); border: 1px solid #765a31; padding: 30px; color: var(--paper); background: radial-gradient(circle at 80% 0, rgba(140, 94, 33, .18), transparent 35%), #1c1814; box-shadow: 0 25px 80px #000; }
.castle-dialog::backdrop { background: rgba(5, 4, 3, .82); backdrop-filter: blur(3px); }
.castle-dialog h2 { margin: 0 0 5px; font-size: 2rem; }
.royal-structure-dialog { background: radial-gradient(circle at 50% 0, rgba(220,174,72,.2), transparent 40%), #1c1814; }
.royal-dialog-crest { display: grid; width: 78px; height: 88px; place-items: center; margin: 18px auto; color: #21160a; background: linear-gradient(145deg, #f0d27c, #a76e22); clip-path: polygon(50% 0, 94% 18%, 84% 78%, 50% 100%, 16% 78%, 6% 18%); font-size: 2rem; font-weight: 900; filter: drop-shadow(0 10px 12px rgba(0,0,0,.35)); }
.royal-event-message { border-left: 3px solid var(--gold); padding: 11px 14px; color: #c5b79f; background: rgba(220,174,72,.08); font: .76rem/1.55 Arial, sans-serif; }
.royal-event-preview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 14px; }
.royal-event-preview span { border: 1px solid var(--line); padding: 10px; color: #84796b; font: .58rem/1.5 Arial, sans-serif; }
.royal-event-preview b { display: block; margin-bottom: 4px; color: var(--gold-light); font-family: Georgia, serif; font-size: .75rem; }
.royal-march-form { display: grid; gap: 13px; margin-top: 16px; border-top: 1px solid #6b522f; padding-top: 17px; }
.royal-attack-units { max-height: 315px; overflow-y: auto; padding-right: 4px; }
.dialog-close { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border: 1px solid #5e4c35; color: #a79985; background: #241f19; cursor: pointer; }
.dialog-owner { color: #958877; font: .78rem Arial, sans-serif; }
.castle-era { display: inline-block; margin: 7px 0 0; border: 1px solid #5d472c; padding: 6px 9px; color: #d6ad51; text-transform: uppercase; letter-spacing: .08em; background: #241e17; font: 700 .56rem Arial, sans-serif; }
.public-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 22px 0; }
.public-stats span { border: 1px solid var(--line); padding: 13px; color: #85796b; text-transform: uppercase; font: .58rem Arial, sans-serif; }
.public-stats b { display: block; margin-top: 5px; color: var(--gold-light); font-size: 1rem; }
.own-castle-actions, .foreign-castle-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.own-castle-actions form { display: contents; }
.own-castle-actions form .button { height: 100%; }
.castle-war-actions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 14px; }
.castle-action-button { display: grid; grid-template-columns: 44px 1fr; gap: 2px 11px; border: 1px solid #60482e; padding: 13px; color: #d8cbb6; text-align: left; background: #241e18; cursor: pointer; }
.castle-action-button > span { display: grid; grid-row: 1 / 3; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff1d2; background: #80352f; font: 800 1rem Georgia, serif; }
.castle-action-button.spy > span { background: #a05f24; }
.castle-action-button strong { color: var(--paper); font-family: Georgia, serif; }
.castle-action-button small { color: #817568; font: .58rem Arial, sans-serif; }
.castle-action-button:hover, .castle-action-button.active { border-color: var(--gold); background: #30251a; }
.castle-action-panel { margin-top: 14px; border: 1px solid #5d472d; padding: 18px; background: #17130f; }
.spy-form h3 { margin: 3px 0 7px; }
.spy-form p:not(.eyebrow) { color: #918474; font: .72rem/1.5 Arial, sans-serif; }
.button-spy { width: 100%; color: #fff2d7; background: linear-gradient(#cb7930, #8e4d1c); }
.attack-form { border-top: 1px solid var(--line); padding-top: 20px; }
.attack-form h3 { margin: 0 0 13px; }
.attack-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 13px; }
.attack-heading h3 { margin: 3px 0 0; }
.attack-heading > strong { border: 1px solid #6a5130; padding: 10px 12px; color: var(--gold-light); white-space: nowrap; font: 700 .72rem Arial, sans-serif; }
.attack-units { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.attack-units label { display: grid; gap: 5px; border: 1px solid var(--line); padding: 12px; color: #c9bca6; font-size: .8rem; }
.attack-unit-icon { display: grid; width: 34px; height: 34px; place-items: center; color: #d6ad51; }
.attack-unit-icon svg { width: 32px; height: 32px; fill: currentColor; }
.attack-units small { color: #776d61; font: .56rem Arial, sans-serif; }
.attack-units input { width: 100%; border: 1px solid #554736; padding: 8px; color: var(--paper); background: #12100d; }
.attack-form .button { width: 100%; margin-top: 14px; }
.form-warning, .shield-message { color: #897d6f; font: .7rem/1.5 Arial, sans-serif; }
.form-warning.danger { color: #ef8a80; }
.shield-message { border-left: 3px solid #6e9aaa; padding: 12px; color: #adcbd4; background: rgba(58, 105, 119, .16); }
.movement-list { display: grid; gap: 9px; max-width: 1000px; }
.movement-card { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 12px; border: 1px solid var(--line); padding: 13px 16px; background: #211c17; }
.movement-icon { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #796039; border-radius: 50%; color: var(--gold-light); font: 800 .8rem Arial, sans-serif; }
.movement-card small, .movement-card strong { display: block; }
.movement-card small { color: #85796b; text-transform: uppercase; letter-spacing: .1em; font: .55rem Arial, sans-serif; }
.movement-card em { display: block; margin-top: 4px; color: #766b5e; font: normal .58rem Arial, sans-serif; }
.movement-card time { color: var(--gold-light); font: 700 .78rem Arial, sans-serif; }
.movement-danger { border-color: #783f38; background: linear-gradient(90deg, rgba(130, 47, 41, .18), #211c17); }
.movement-danger .movement-icon { border-color: #9a4a42; color: #e9877d; }
.movement-fighting { border-color: #a54435; background: radial-gradient(circle at 15% 50%, rgba(204,67,43,.2), transparent 35%), #211713; }
.movement-fighting .movement-icon { border-color: #e05a43; color: #ffd2b6; box-shadow: 0 0 16px rgba(224,90,67,.35); }
.march-command { display: grid; grid-template-columns: 70px 1fr auto minmax(230px, 300px); align-items: center; gap: 20px; max-width: 1200px; margin-bottom: 22px; border: 1px solid #76572c; padding: 20px; background: radial-gradient(circle at 0 50%, rgba(204,153,52,.13), transparent 25%), #211b15; }
.march-command-emblem { display: grid; width: 64px; height: 72px; place-items: center; color: #211508; background: linear-gradient(145deg, #edca70, #986421); clip-path: polygon(50% 0, 92% 18%, 84% 78%, 50% 100%, 16% 78%, 8% 18%); font: 900 1.6rem Georgia, serif; }
.march-command h2 { margin: 3px 0 6px; }
.march-command p:not(.eyebrow) { margin: 0; color: #938777; font: .72rem/1.5 Arial, sans-serif; }
.march-command-level { border-left: 1px solid #5a452d; padding-left: 20px; text-align: right; }
.march-command-level small, .march-command-level span { display: block; color: #85796b; text-transform: uppercase; font: .55rem Arial, sans-serif; }
.march-command-level strong { display: block; margin: 4px 0; color: var(--gold-light); font: 800 1.55rem Georgia, serif; }
.march-command form .costs { margin-bottom: 10px; }
.march-command form .button { width: 100%; }
.empty-state.compact { padding: 28px; text-align: left; }
.report-list { display: grid; gap: 10px; max-width: 1050px; }
.report-card { border: 1px solid var(--line); background: #211c17; }
.report-card summary { display: flex; align-items: center; gap: 13px; padding: 16px; cursor: pointer; list-style: none; }
.report-card summary > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #16110b; background: var(--gold); font-weight: 800; }
.report-defeat summary > span { color: #eed5d1; background: #873b34; }
.report-card summary strong, .report-card summary small { display: block; }
.report-card summary small { margin-top: 3px; color: #7e7366; font: .6rem Arial, sans-serif; }
.report-body { position: relative; border-top: 1px solid var(--line); padding: 18px; color: #a89b88; font: .8rem Arial, sans-serif; }
.report-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.report-columns > div, .report-loot { border: 1px solid var(--line); padding: 13px; }
.report-columns h4, .report-loot h4 { margin: 0 0 9px; color: var(--gold-light); font-family: Georgia, serif; }
.report-columns span, .report-loot span { display: flex; justify-content: space-between; gap: 15px; margin-top: 6px; }
.report-loot { margin-top: 10px; }
.report-loot span { display: inline-flex; margin-right: 18px; }
.report-delete { position: absolute; z-index: 2; top: 12px; right: 12px; }
.spy-report .report-delete { grid-column: auto; }
.icon-action { display: inline-grid; width: 40px; height: 40px; place-items: center; border: 1px solid #65513a; border-radius: 4px; color: #d1b981; background: #211a14; cursor: pointer; }
.icon-action:hover { color: #ffe2a0; border-color: #b68a42; background: #302318; }
.icon-action.danger { color: #d78176; border-color: #70443e; }
.icon-action.danger:hover { color: #ffd0c9; border-color: #a95c52; background: #321a17; }
.icon-action svg { width: 21px; height: 21px; }
.protection-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 1000px; }
.protection-inventory-card { border-style: dashed; border-color: #4e7890; background: linear-gradient(145deg, rgba(65,125,157,.12), #211c17); }
.protection-card { border: 1px solid var(--line); padding: 22px; text-align: center; background: #211c17; }
.shield-icon { display: grid; width: 54px; height: 62px; place-items: center; margin: 0 auto; color: #14232a; background: linear-gradient(145deg, #b9d9df, #588696); clip-path: polygon(50% 0, 94% 18%, 84% 78%, 50% 100%, 16% 78%, 6% 18%); font-weight: 900; }
.protection-card h3 { margin-bottom: 5px; }
.protection-card p { min-height: 40px; color: #897e70; font: .75rem/1.5 Arial, sans-serif; }
.protection-card .button { width: 100%; }
.unlock-note { display: block; margin-top: 9px; color: #bd7e72; text-transform: uppercase; letter-spacing: .08em; font: 700 .55rem Arial, sans-serif; }
.research-card { margin-bottom: 16px; }
.research-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 12px; max-width: 1100px; }
.research-grid > article { border: 1px solid var(--line); padding: 17px; background: #211c17; }
.research-grid > article > div:first-child { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
.research-grid > article > div:first-child span { color: var(--gold); text-transform: uppercase; font: 700 .6rem Arial, sans-serif; }
.research-grid form .button { width: 100%; margin-top: 13px; font-size: .62rem; }
.max-level { display: block; border: 1px solid #557047; padding: 10px; color: #9abd80; text-align: center; text-transform: uppercase; font: 700 .6rem Arial, sans-serif; }
.world-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 16px; max-width: 1150px; }
.world-panel { overflow: hidden; border: 1px solid var(--line); background: #211c17; box-shadow: 0 15px 30px rgba(0,0,0,.18); }
.world-current { border-color: #9c7839; box-shadow: 0 0 0 1px rgba(220,174,72,.18), 0 15px 30px rgba(0,0,0,.25); }
.world-banner { position: relative; display: grid; height: 130px; place-items: center; overflow: hidden; background: radial-gradient(circle, rgba(180,128,54,.35), transparent 34%), linear-gradient(145deg, #394735, #17241d); }
.world-banner::before, .world-banner::after { position: absolute; width: 170px; height: 60px; border-radius: 50%; content: ""; background: rgba(11,20,15,.5); transform: rotate(-12deg); }
.world-banner::before { bottom: -30px; left: -20px; }.world-banner::after { right: -25px; bottom: -22px; transform: rotate(14deg); }
.world-banner > span { z-index: 1; color: var(--gold-light); font-size: 4.5rem; text-shadow: 0 7px 12px #000; }
.world-banner > b { position: absolute; z-index: 2; top: 10px; right: 10px; padding: 5px 8px; text-transform: uppercase; letter-spacing: .08em; font: 700 .52rem Arial, sans-serif; }
.status-open { color: #cde8b7; background: #496339; }.status-upcoming { color: #f0d99f; background: #6c5428; }.status-closed { color: #d9aaa4; background: #693631; }
.status-maintenance { color: #b9d7e0; background: #385864; }.status-ended { color: #d4c5bd; background: #584a43; }.status-archived { color: #aaa29a; background: #393633; }
.world-panel-body { padding: 20px; }
.world-panel-body h2 { margin: 0; }
.world-panel-body > p { min-height: 42px; color: #897d70; font: .8rem/1.55 Arial, sans-serif; }
.world-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 15px 0; }
.world-stats span { border: 1px solid var(--line); padding: 9px; color: #756b60; text-transform: uppercase; font: .52rem Arial, sans-serif; }
.world-stats b { display: block; margin-top: 5px; color: var(--paper); font-size: .75rem; }
.world-action { display: block; padding: 11px; text-align: center; text-transform: uppercase; letter-spacing: .08em; font: 700 .58rem Arial, sans-serif; }
.world-action.current { color: #2d210e; background: var(--gold); }.world-action.upcoming { color: #dcc68f; background: #493b25; }.world-action.migration { color: #a9c6d2; background: #263d46; }.world-action.closed { color: #b68d88; background: #402624; }
.migration-window { display: block; margin-top: 10px; color: #756b60; font: .62rem/1.5 Arial, sans-serif; }
.admin-layout { display: grid; grid-template-columns: minmax(300px, 430px) 1fr; gap: 18px; max-width: 1200px; align-items: start; }
.admin-world-form { display: grid; gap: 13px; border: 1px solid #6d542f; padding: 22px; background: #211c17; }
.admin-world-form h2 { margin: 0 0 5px; }
.admin-world-form label { display: grid; gap: 5px; color: #9a8d7c; text-transform: uppercase; letter-spacing: .08em; font: 700 .58rem Arial, sans-serif; }
.admin-world-form input, .admin-world-form textarea, .admin-world-form select, .admin-world-list select { width: 100%; border: 1px solid #554736; padding: 10px; color: var(--paper); background: #15120f; }
.admin-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.admin-world-list { display: grid; gap: 9px; }
.admin-world-list article { display: grid; grid-template-columns: 1fr auto; gap: 15px; align-items: center; border: 1px solid var(--line); padding: 15px; background: #211c17; }
.admin-world-list strong, .admin-world-list small { display: block; }
.admin-world-list small { margin-top: 4px; color: #776c60; font: .62rem Arial, sans-serif; }
.admin-world-list form { display: flex; gap: 7px; }
.admin-world-list select { min-width: 125px; }
.world-editor { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 10px; }
.world-editor summary { color: var(--gold); cursor: pointer; text-transform: uppercase; letter-spacing: .08em; font: 700 .58rem Arial, sans-serif; }
.world-editor > form { display: grid; gap: 9px; margin-top: 12px; }
.world-editor label { display: grid; gap: 5px; color: #8e8273; text-transform: uppercase; letter-spacing: .06em; font: 700 .55rem Arial, sans-serif; }
.world-editor textarea, .world-editor input { width: 100%; border: 1px solid #554736; padding: 9px; color: var(--paper); background: #15120f; }
.royal-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; max-width: 1200px; }
.royal-admin-card { border: 1px solid #59472e; padding: 18px; background: radial-gradient(circle at 100% 0, rgba(220,174,72,.1), transparent 35%), #211c17; }
.royal-admin-card.status-active, .royal-admin-card.status-contested { border-color: #bd8733; box-shadow: inset 0 0 25px rgba(220,174,72,.06); }
.royal-admin-card > header { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }
.royal-admin-card header small, .royal-admin-card header h3 { display: block; margin: 0; }
.royal-admin-card header small { color: #807466; text-transform: uppercase; font: 700 .52rem Arial, sans-serif; }
.royal-admin-card header h3 { margin-top: 3px; color: var(--paper); }
.royal-admin-card header > b { color: var(--gold-light); text-transform: uppercase; font: 700 .55rem Arial, sans-serif; }
.royal-admin-crown { display: grid; width: 44px; height: 51px; place-items: center; color: #25190b; background: linear-gradient(145deg, #f0d27a, #9e6822); clip-path: polygon(50% 0, 95% 18%, 84% 78%, 50% 100%, 16% 78%, 5% 18%); font-weight: 900; }
.royal-admin-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 15px 0 11px; }
.royal-admin-facts span { border: 1px solid var(--line); padding: 8px; color: #776c60; text-transform: uppercase; font: .48rem Arial, sans-serif; }
.royal-admin-facts b { display: block; margin-top: 4px; color: var(--paper); font-size: .65rem; }
.royal-admin-card > p { color: #968979; font: .68rem/1.55 Arial, sans-serif; }
.royal-admin-date { display: block; margin: 9px 0; color: #bba77c; font: .58rem Arial, sans-serif; }
.royal-admin-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.royal-admin-actions form { flex: 1 1 130px; }
.royal-admin-actions .button { width: 100%; min-height: 39px; padding-inline: 10px; font-size: .57rem; }
.ranking-table { max-width: 1100px; border: 1px solid var(--line); background: #211c17; }
.ranking-table header, .ranking-table article { display: grid; grid-template-columns: 50px 1.1fr 90px 1.5fr 100px 90px 90px; gap: 10px; align-items: center; padding: 13px 16px; }
.ranking-table header { color: #776d61; background: #17130f; text-transform: uppercase; letter-spacing: .08em; font: 700 .55rem Arial, sans-serif; }
.ranking-table article { border-top: 1px solid var(--line); color: #9c9080; font: .75rem Arial, sans-serif; }
.ranking-table article > span:first-child { color: var(--gold); font-weight: 800; }
.ranking-table article b { color: var(--gold-light); }
.ranking-table .ranking-me { background: linear-gradient(90deg, rgba(220,174,72,.14), transparent); }
.transfer-warning, .transfer-ready { max-width: 1050px; margin: 0 0 16px; border: 1px solid #79443d; padding: 15px 18px; background: rgba(126,54,45,.14); }
.transfer-warning strong, .transfer-warning span { display: block; }
.transfer-warning span { margin-top: 6px; color: #c0948d; font: .72rem Arial, sans-serif; }
.transfer-ready { color: #b9d69f; border-color: #536f43; background: rgba(75,111,58,.14); font: .75rem Arial, sans-serif; }
.transfer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 1050px; }
.transfer-card { position: relative; overflow: hidden; border: 1px solid var(--line); padding: 25px; background: radial-gradient(circle at 100% 0, rgba(220,174,72,.12), transparent 32%), #211c17; }
.transfer-card h2 { margin: 5px 0 8px; }
.transfer-card > p:not(.eyebrow):not(.transfer-unavailable) { min-height: 52px; color: #8d8173; font: .8rem/1.55 Arial, sans-serif; }
.transfer-symbol { position: absolute; top: 18px; right: 20px; color: rgba(220,174,72,.18); font-size: 4.5rem; font-weight: 900; }
.transfer-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 18px 0; }
.transfer-facts span { border: 1px solid var(--line); padding: 10px; color: #756b60; text-transform: uppercase; font: .52rem Arial, sans-serif; }
.transfer-facts b { display: block; margin-top: 5px; color: var(--gold-light); font-size: .72rem; }
.teleport-form { display: grid; grid-template-columns: 85px 85px 1fr; gap: 8px; align-items: end; }
.teleport-form label, .migration-form label { display: grid; gap: 5px; color: #8f8273; text-transform: uppercase; letter-spacing: .07em; font: 700 .56rem Arial, sans-serif; }
.teleport-form input, .migration-form select { width: 100%; border: 1px solid #554736; padding: 10px; color: var(--paper); background: #15120f; }
.transfer-map-button { display: block; margin: 14px 0 10px; text-align: center; }
.map-teleport-picker { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; max-width: 1200px; margin-top: 12px; border: 1px solid #9c7839; padding: 14px; background: #211a13; box-shadow: var(--shadow); }
.map-teleport-picker small, .map-teleport-picker strong, .map-teleport-picker span { display: block; }
.map-teleport-picker small { color: var(--gold); text-transform: uppercase; letter-spacing: .12em; font: 700 .55rem Arial, sans-serif; }
.map-teleport-picker strong { margin-top: 3px; color: var(--paper); }
.map-teleport-picker span { margin-top: 3px; color: #8d8172; font: .65rem Arial, sans-serif; }
.building-capacity { display: block; margin: -5px 0 12px; color: var(--gold); font: 700 .62rem Arial, sans-serif; }
.migration-form { display: grid; gap: 12px; margin-top: 18px; }
.transfer-unavailable { border-left: 3px solid #725b35; padding: 12px; color: #b49d71; background: rgba(123,91,40,.12); font: .72rem/1.5 Arial, sans-serif; }
.transfer-history { display: grid; gap: 8px; max-width: 1050px; }
.transfer-history article { display: grid; grid-template-columns: 40px 1fr auto; gap: 13px; align-items: center; border: 1px solid var(--line); padding: 13px 16px; background: #211c17; }
.transfer-history article > span { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #7a6037; border-radius: 50%; color: var(--gold-light); font-weight: 800; }
.transfer-history strong, .transfer-history small { display: block; }
.transfer-history small { margin-top: 4px; color: #7f7467; font: .65rem Arial, sans-serif; }
.transfer-history time { color: #a99b86; font: .65rem Arial, sans-serif; }
.admin-checks { display: flex; flex-wrap: wrap; gap: 12px; }
.admin-checks label { display: flex; align-items: center; gap: 7px; color: #a99880; text-transform: uppercase; font: 700 .56rem Arial, sans-serif; }
.admin-checks input { width: auto; }
.premium-grid a { color: var(--gold); text-decoration: none; text-transform: uppercase; letter-spacing: .08em; font: 700 .55rem Arial, sans-serif; }
.world-action.migration { text-decoration: none; }
.staff-guide { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; max-width: 1200px; margin-bottom: 15px; }
.staff-guide article { border: 1px solid var(--line); padding: 16px; background: #211c17; }
.staff-guide b { color: var(--gold-light); }
.staff-guide p { margin: 7px 0 0; color: #82776a; font: .72rem/1.5 Arial, sans-serif; }
.staff-table { max-width: 1200px; border: 1px solid var(--line); background: #211c17; }
.staff-table header, .staff-table article { display: grid; grid-template-columns: 1.2fr 1fr 140px minmax(260px, 1fr); gap: 12px; align-items: center; padding: 13px 16px; }
.staff-table header { color: #776d61; background: #17130f; text-transform: uppercase; letter-spacing: .08em; font: 700 .55rem Arial, sans-serif; }
.staff-table article { border-top: 1px solid var(--line); color: #a09280; font: .75rem Arial, sans-serif; }
.staff-table strong, .staff-table small { display: block; }
.staff-table small { margin-top: 4px; color: #70675d; font: .6rem Arial, sans-serif; }
.staff-table form { display: flex; gap: 7px; }
.staff-table select { flex: 1; min-width: 130px; border: 1px solid #554736; padding: 9px; color: var(--paper); background: #15120f; }
.role-badge { justify-self: start; padding: 6px 9px; text-transform: uppercase; letter-spacing: .08em; font: 700 .55rem Arial, sans-serif; }
.role-player { color: #b7aa97; background: #3c352d; }
.role-moderator { color: #b8d8e2; background: #31515c; }
.role-admin { color: #f1d58e; background: #694d20; }
.staff-self { color: var(--gold); text-transform: uppercase; letter-spacing: .08em; font: 700 .56rem Arial, sans-serif; }
.staff-history { display: grid; gap: 7px; max-width: 1200px; }
.staff-history article { display: grid; grid-template-columns: 140px 1fr auto; gap: 10px; border: 1px solid var(--line); padding: 12px 15px; background: #211c17; color: #8e8274; font: .7rem Arial, sans-serif; }
.staff-history strong { color: var(--gold-light); }
.staff-history time { color: #71675d; }
.map-toolbar { display: grid; grid-template-columns: auto minmax(260px, 1fr) auto; gap: 10px; max-width: 1200px; margin-bottom: 12px; }
.map-toolbar form, .map-zoom { position: relative; display: flex; gap: 7px; align-items: end; }
.map-toolbar label { display: grid; gap: 4px; color: #817568; text-transform: uppercase; font: 700 .52rem Arial, sans-serif; }
.map-toolbar input { min-height: 42px; border: 1px solid #554736; padding: 9px 11px; color: var(--paper); background: #15120f; }
.map-toolbar [data-map-coordinates] input { width: 66px; }
.map-toolbar [data-map-search] input { width: 100%; }
.map-toolbar [data-map-search] { justify-self: stretch; }
.map-toolbar .button { min-height: 42px; padding-inline: 14px; font-size: .58rem; }
.map-zoom { justify-content: end; align-items: center; border: 1px solid var(--line); padding: 4px; background: #211c17; }
.map-zoom button { min-width: 36px; min-height: 34px; border: 1px solid #554736; color: var(--gold-light); background: #17130f; cursor: pointer; }
.map-zoom button:last-child { padding-inline: 10px; color: var(--paper); text-transform: uppercase; font: 700 .52rem Arial, sans-serif; }
.map-zoom span { min-width: 48px; color: #9c8f7d; text-align: center; font: .62rem Arial, sans-serif; }
.map-marches-panel { display: grid; grid-template-columns: 1fr auto; gap: 10px 18px; width: min(1200px, 100%); margin-bottom: 12px; border: 1px solid #56452f; padding: 13px 15px; background: linear-gradient(90deg, #211a14, #181410); box-shadow: 0 8px 20px rgba(0,0,0,.2); }
.map-marches-panel h2 { margin: 2px 0 0; font-size: 1.05rem; }
.map-marches-panel > span { align-self: center; color: var(--gold-light); font: 700 .62rem Arial, sans-serif; }
.map-marches-list { grid-column: 1 / -1; display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
.map-marches-list:empty::before { content: "Nao existem marchas ativas."; color: #817568; font: .66rem Arial, sans-serif; }
.map-march-chip { display: grid; grid-template-columns: 32px minmax(150px, 1fr) auto; flex: 0 0 min(360px, 86vw); gap: 9px; align-items: center; border: 1px solid #5c4932; padding: 9px 11px; color: #c7b89f; background: #17130f; cursor: pointer; text-align: left; }
.map-march-chip:hover { border-color: #b6883e; background: #241b12; }
.map-march-chip > i { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: #241508; background: #d88b31; font: normal 900 .68rem Arial, sans-serif; }
.map-march-chip.attack > i { color: #fff0d0; background: #9e382f; }
.map-march-chip.trade > i { color: #f4e8ff; background: #7547a1; }
.map-march-chip strong, .map-march-chip small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.map-march-chip strong { color: var(--paper); font: 700 .67rem Georgia, serif; }
.map-march-chip small { margin-top: 3px; color: #837665; font: .54rem Arial, sans-serif; }
.map-march-chip time { color: var(--gold-light); font: 700 .65rem Arial, sans-serif; }
.movement-dialog, .resource-node-dialog { width: min(620px, calc(100% - 24px)); border: 1px solid #765a31; padding: 30px; color: var(--paper); background: radial-gradient(circle at 82% 0, rgba(143,96,38,.19), transparent 38%), linear-gradient(145deg, #211b16, #15120f); box-shadow: 0 25px 80px #000; }
.movement-dialog::backdrop, .resource-node-dialog::backdrop { background: rgba(5,4,3,.84); backdrop-filter: blur(3px); }
.movement-dialog h2, .resource-node-dialog h2 { margin: 0 0 5px; color: var(--paper); font-size: 2rem; }
.movement-private-details { margin-top: 18px; border: 1px solid var(--line); padding: 15px; background: #191510; }
.movement-private-details h3 { margin: 3px 0 12px; color: var(--paper); }
.movement-unit-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.movement-unit-list span { display: flex; justify-content: space-between; border: 1px solid #493c2e; padding: 8px 10px; color: #9b8d79; font: .62rem Arial, sans-serif; }
.movement-unit-list b { color: var(--gold-light); }
.resource-node-dialog > p:not(.eyebrow, .dialog-owner, .form-warning) { color: #9d907d; font: .76rem/1.55 Arial, sans-serif; }
.resource-node-dialog form .button { width: 100%; }
.resource-node-preview { position: relative; height: 145px; margin: 18px 0; overflow: hidden; border: 1px solid #55442f; background: radial-gradient(circle at 50% 80%, #536442, #202b20 58%, #15120f 59%); }
.resource-node-preview::before, .resource-node-preview::after { position: absolute; content: ""; }
.resource-node-preview.type-wood::before { bottom: 22px; left: 50%; width: 23px; height: 73px; background: #5c3b25; transform: translateX(-50%); }
.resource-node-preview.type-wood::after { top: 20px; left: 50%; width: 105px; height: 90px; border-radius: 48%; background: radial-gradient(circle at 35% 25%, #719060, #315438 55%, #172f20); transform: translateX(-50%); box-shadow: -48px 25px 0 -17px #294a32, 48px 27px 0 -18px #203f2c; }
.resource-node-preview.type-stone::before, .resource-node-preview.type-iron::before { bottom: 20px; left: 50%; width: 145px; height: 78px; background: linear-gradient(145deg, #928b7d, #4d4943 58%, #292724); clip-path: polygon(0 100%, 13% 44%, 30% 20%, 43% 53%, 63% 8%, 100% 100%); transform: translateX(-50%); }
.resource-node-preview.type-stone::after, .resource-node-preview.type-iron::after { top: 66px; left: 50%; width: 85px; height: 5px; background: #cbc5b7; transform: translateX(-50%) rotate(-8deg); box-shadow: 15px 18px 0 #aaa496; }
.resource-node-preview.type-iron::after { background: #a66b5f; box-shadow: 15px 18px 0 #75473f; }
.resource-node-preview.type-food::before { inset: 25px 30px 18px; background: repeating-linear-gradient(80deg, transparent 0 9px, #d2b65a 10px 13px, transparent 14px 20px); }
.resource-node-preview.state-gathering { border-color: #4eb77c; box-shadow: inset 0 0 35px rgba(64,180,113,.22); }
.resource-node-preview.state-recovering { filter: saturate(.45); opacity: .72; }
.resource-node-preview.state-available { border-color: #8b713f; }
.resource-attack-form { margin-top: 18px; border-top: 1px solid #594636; padding-top: 16px; }
.resource-attack-units { max-height: 240px; overflow: auto; }
.resource-gather-units { max-height: 225px; margin: 8px 0 14px; overflow: auto; }
.resource-recommendation { border-left: 2px solid #69a66f; padding: 9px 11px; color: #b9c9ac; background: rgba(77,137,82,.12); font: .7rem/1.45 Arial, sans-serif; }
.resource-recommendation.is-warning { border-color: #c7843e; color: #d7b17c; background: rgba(176,104,42,.1); }
.premium-skill-heading { max-width: 1000px; margin-top: 28px; }
.premium-skill-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 1000px; }
.premium-skill-card { display: flex; min-height: 205px; flex-direction: column; border: 1px solid #514432; padding: 18px; background: linear-gradient(145deg, #241f19, #1a1612); }
.premium-skill-card header { display: flex; justify-content: space-between; gap: 12px; }
.premium-skill-card header small { color: var(--gold); text-transform: uppercase; letter-spacing: .1em; font: 700 .52rem Arial, sans-serif; }
.premium-skill-card h3 { margin: 5px 0; color: var(--paper); }
.premium-skill-card header > strong { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #765a2b; border-radius: 50%; color: var(--gold-light); }
.premium-skill-card p { flex: 1; color: #908476; font: .72rem/1.55 Arial, sans-serif; }
.premium-skill-card .button { width: 100%; }
.progress-skill-queue { margin: 18px 0 26px; }
.map-marches-summary { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; width: min(1200px, 100%); margin-bottom: 10px; border: 1px solid #56452f; padding: 10px 14px; color: #a99a84; background: #1c1712; text-decoration: none; }
.map-marches-summary:hover { border-color: #a77d3d; background: #241c14; }
.map-marches-summary > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #f0c75d; background: #322419; }
.map-marches-summary svg { width: 28px; height: 28px; fill: currentColor; }
.map-marches-summary small, .map-marches-summary strong { display: block; }
.map-marches-summary small { color: #7f7364; text-transform: uppercase; font: 700 .5rem Arial, sans-serif; }
.map-marches-summary strong { margin-top: 3px; color: var(--paper); font-size: .76rem; }
.map-marches-summary b { color: var(--gold-light); text-transform: uppercase; font: 700 .56rem Arial, sans-serif; }
.royal-map-beacon { display: grid; grid-template-columns: 46px 1fr auto; gap: 12px; align-items: center; width: min(1200px, 100%); margin: -2px 0 10px; border: 1px solid #9b7130; padding: 10px 14px; color: var(--paper); text-align: left; background: radial-gradient(circle at 10% 50%, rgba(232,190,82,.18), transparent 28%), #211a13; cursor: pointer; }
.royal-map-beacon > span { display: grid; width: 42px; height: 48px; place-items: center; color: #24180a; background: linear-gradient(145deg, #f1d37c, #a66d20); clip-path: polygon(50% 0, 94% 18%, 84% 78%, 50% 100%, 16% 78%, 6% 18%); font-weight: 900; }
.royal-map-beacon small, .royal-map-beacon strong { display: block; }
.royal-map-beacon small { color: #95866f; text-transform: uppercase; font: 700 .5rem Arial, sans-serif; }
.royal-map-beacon strong { margin-top: 3px; color: var(--gold-light); }
.royal-map-beacon > b { color: #d9c08d; text-transform: uppercase; font: 700 .55rem Arial, sans-serif; }
.royal-map-beacon.status-active, .royal-map-beacon.status-contested { animation: royalBeacon 1.8s ease-in-out infinite alternate; }
.royal-center-warning { width: min(1200px, 100%); margin: 0 0 10px; border-left: 3px solid #d0784b; padding: 11px 14px; color: #dfc8ad; background: #2b1d18; font: .72rem/1.5 Arial, sans-serif; }
.royal-center-warning strong { color: #f0b17c; }
.royal-public-hero { display: grid; grid-template-columns: 1fr auto auto; gap: 24px; align-items: center; border: 1px solid #795b2c; padding: 28px; background: radial-gradient(circle at 78% 20%, rgba(230,181,70,.2), transparent 28%), #1e1914; }
.royal-public-hero h1 { margin: 4px 0 8px; color: var(--paper); font-size: clamp(2rem, 5vw, 4rem); }
.royal-public-hero p { color: #a99a86; }
.royal-public-crown { display: grid; width: 84px; height: 94px; place-items: center; color: #27190a; background: linear-gradient(145deg, #f5da84, #9c631c); clip-path: polygon(50% 0, 92% 18%, 82% 78%, 50% 100%, 18% 78%, 8% 18%); font: 900 2rem Georgia, serif; }
.royal-treasury-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 14px 0 24px; }
.royal-treasury-grid article { border: 1px solid var(--line); padding: 16px; background: #211c17; }
.royal-treasury-grid small, .royal-treasury-grid strong { display: block; }
.royal-treasury-grid small { color: #887a68; text-transform: uppercase; font: 700 .55rem Arial, sans-serif; }
.royal-treasury-grid strong { margin-top: 6px; color: var(--gold-light); font-size: 1.35rem; }
.royal-management-card { display: grid; grid-template-columns: 1fr 1.5fr; gap: 25px; border: 1px solid #65502f; padding: 22px; background: #211b15; }
.royal-management-card form { display: grid; grid-template-columns: 1.2fr 1fr 1fr auto; gap: 8px; align-items: end; }
.royal-management-card label { color: #948673; font: 700 .55rem Arial, sans-serif; text-transform: uppercase; }
.royal-management-card input, .royal-management-card select { width: 100%; min-height: 40px; margin-top: 5px; border: 1px solid #5b4b38; padding: 8px; color: var(--paper); background: #17130f; }
.royal-history-list, .royal-transaction-list { display: grid; gap: 8px; }
.royal-history-list article, .royal-transaction-list article { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; border: 1px solid var(--line); padding: 13px 16px; background: #201b16; }
.royal-history-list article > span { display: grid; width: 42px; height: 42px; place-items: center; color: #26190b; background: var(--gold); font-weight: 900; }
.royal-history-list h3, .royal-history-list p { margin: 0; }
.royal-history-list small, .royal-history-list time, .royal-transaction-list time { color: #807466; font: .58rem Arial, sans-serif; }
.royal-transaction-list strong { color: var(--gold-light); }
.march-dashboard-card.gather { border-color: #3d7857; }
.map-march-chip.gather { border-color: #43936a; }
.map-march-chip.gather-wood { border-color: #4c9b55; }
.map-march-chip.gather-stone { border-color: #8f9298; }
.map-march-chip.gather-iron { border-color: #a65b52; }
.map-march-chip.gather-food { border-color: #d5ad39; }
.gathering-command { border-color: #426b50; background: radial-gradient(circle at 0 50%, rgba(67,150,99,.13), transparent 30%), #211c17; }
@keyframes royalBeacon { to { border-color: #efc75f; box-shadow: 0 0 18px rgba(225,178,65,.18); } }
.march-capacity { display: grid; grid-template-columns: 70px 1fr auto; gap: 18px; align-items: center; max-width: 1050px; border: 1px solid #70552d; padding: 20px; background: #211b15; }
.march-capacity > div { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 50%; color: #2b190c; background: linear-gradient(145deg, #eac96e, #9a6320); }
.march-capacity svg { width: 46px; height: 46px; fill: currentColor; }
.march-capacity small, .march-capacity strong { display: block; }
.march-capacity small { color: var(--gold); text-transform: uppercase; font: 700 .55rem Arial, sans-serif; }
.march-capacity strong { margin-top: 4px; font-size: 1.15rem; }
.march-capacity p { margin: 5px 0 0; color: #8d8172; font: .68rem Arial, sans-serif; }
.marches-dashboard { display: grid; gap: 10px; max-width: 1050px; margin-top: 18px; }
.march-dashboard-card { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto auto auto; gap: 16px; align-items: center; border: 1px solid #60472e; padding: 16px; background: #211c17; }
.march-dashboard-card.spy { border-left: 4px solid #df8a32; }
.march-dashboard-card.attack { border-left: 4px solid #a84439; }
.march-dashboard-card.trade { border-left: 4px solid #8050a5; }
.march-dashboard-icon { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; color: #f1c55e; background: #17120e; }
.march-dashboard-card.spy .march-dashboard-icon { color: #e69a45; }
.march-dashboard-card.trade .march-dashboard-icon { color: #aa78cf; }
.march-dashboard-icon svg { width: 42px; height: 42px; fill: currentColor; }
.march-dashboard-card small { color: #8e806f; text-transform: uppercase; font: 700 .53rem Arial, sans-serif; }
.march-dashboard-card h2 { margin: 3px 0 5px; font-size: 1rem; }
.march-dashboard-card p { margin: 0; color: #7f7365; font: .63rem Arial, sans-serif; }
.march-dashboard-card b { display: block; margin-top: 6px; color: #c6b79f; font: 700 .62rem Arial, sans-serif; }
.march-dashboard-card time { min-width: 84px; color: var(--gold-light); font: 800 .82rem Arial, sans-serif; }
.map-search-results { position: absolute; z-index: 30; top: calc(100% + 5px); left: 0; display: grid; width: 100%; max-height: 260px; overflow-y: auto; border: 1px solid #725a31; background: #191510; box-shadow: var(--shadow); }
.map-search-results[hidden] { display: none; }
.map-search-results button { border: 0; border-top: 1px solid var(--line); padding: 11px; color: #b1a38f; background: none; cursor: pointer; text-align: left; font: .68rem Arial, sans-serif; }
.map-search-results button:hover { color: var(--paper); background: rgba(220,174,72,.1); }
.world-map-v9 { position: relative; width: min(1200px, 100%); height: min(68vh, 720px); min-height: 480px; overflow: hidden; border: 2px solid #66533a; border-radius: 4px; background: #536b43; box-shadow: inset 0 0 90px rgba(19,29,18,.45), 0 24px 55px rgba(0,0,0,.4); user-select: none; }
.world-map-v9::after { position: absolute; inset: 0; z-index: 2; content: ""; pointer-events: none; background: linear-gradient(135deg, rgba(255,236,177,.06), transparent 28%, transparent 70%, rgba(8,12,8,.2)), radial-gradient(circle at 50% 44%, transparent 45%, rgba(10,13,9,.28)); box-shadow: inset 0 0 35px rgba(0,0,0,.32); }
.world-map-v9 canvas[data-map-canvas] { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.world-map-v9[data-teleport-mode="1"] canvas[data-map-canvas] { cursor: crosshair; }
.world-map-v9 canvas[data-map-canvas]:active { cursor: grabbing; }
.map-loading { position: absolute; z-index: 5; top: 15px; left: 50%; padding: 8px 13px; color: var(--gold-light); border: 1px solid #67502e; background: rgba(20,16,12,.9); transform: translateX(-50%); text-transform: uppercase; letter-spacing: .08em; font: 700 .54rem Arial, sans-serif; }
.map-loading[hidden] { display: none; }
.map-hint, .map-coordinate { position: absolute; z-index: 4; bottom: 12px; padding: 7px 10px; color: #d3c4aa; background: rgba(18,15,12,.75); pointer-events: none; font: .58rem Arial, sans-serif; }
.map-hint { left: 12px; }.map-coordinate { right: 215px; color: var(--gold-light); font-weight: 800; }
.map-minimap { position: absolute; z-index: 6; right: 12px; bottom: 12px; width: 190px; height: 130px; border: 2px solid #8a6a37; background: #26351f; box-shadow: 0 8px 20px rgba(0,0,0,.5); cursor: crosshair; }
.legend-neutral { background: #91897b !important; }
.public-stats i { font-style: normal; }
.mail-tabs { display: flex; gap: 8px; max-width: 1000px; margin-bottom: 15px; }
.mail-tabs a { border: 1px solid #51432f; padding: 10px 15px; color: #998c7b; background: #211c17; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; font: 700 .58rem Arial, sans-serif; }
.mail-tabs a.active { color: #24190c; border-color: var(--gold-light); background: var(--gold); }
.mail-list { display: grid; max-width: 1000px; border: 1px solid var(--line); background: #211c17; }
.mail-list > a { display: grid; grid-template-columns: 42px 1fr auto; gap: 13px; align-items: center; border-top: 1px solid var(--line); padding: 13px 16px; color: #998d7c; text-decoration: none; }
.mail-list > a:first-child { border-top: 0; }
.mail-list > a > span { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #6e5837; border-radius: 50%; color: var(--gold-light); font-weight: 800; }
.mail-list strong, .mail-list small { display: block; }
.mail-list small { margin-top: 4px; color: #746a5f; font: .62rem Arial, sans-serif; }
.mail-list time { color: #776d61; font: .62rem Arial, sans-serif; }
.mail-list .mail-unread { border-left: 3px solid var(--gold); color: var(--paper); background: rgba(220,174,72,.08); }
.compose-card, .message-reader { max-width: 850px; border: 1px solid #6d542f; padding: 24px; background: #211c17; }
.compose-card { display: grid; gap: 13px; }
.compose-card h2 { margin: 0 0 8px; }
.compose-card label, .moderation-list label { display: grid; gap: 6px; color: #958878; text-transform: uppercase; letter-spacing: .07em; font: 700 .57rem Arial, sans-serif; }
.compose-card input, .compose-card textarea, .profile-edit textarea, .report-player select, .report-player textarea, .moderation-list input, .moderation-list select, .moderation-list textarea { width: 100%; border: 1px solid #554736; padding: 11px; color: var(--paper); background: #15120f; }
.compose-card > div, .message-reader footer { display: flex; flex-wrap: wrap; gap: 8px; }
.message-reader header { display: flex; align-items: start; justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 15px; }
.message-reader h2, .message-reader h3 { margin: 0; }
.message-reader h3 { margin-top: 20px; color: var(--gold-light); }
.message-reader time { color: #776d61; font: .65rem Arial, sans-serif; }
.message-body { min-height: 160px; padding: 24px 0; color: #c0b39f; font: .86rem/1.75 Arial, sans-serif; }
.report-message { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.report-message summary { color: #c78378; cursor: pointer; text-transform: uppercase; font: 700 .57rem Arial, sans-serif; }
.report-message form { display: grid; gap: 8px; margin-top: 10px; }
.report-message select, .report-message textarea { width: 100%; border: 1px solid #554736; padding: 10px; color: var(--paper); background: #15120f; }
.profile-banner { display: grid; grid-template-columns: 100px 1fr auto; gap: 22px; align-items: center; max-width: 1050px; margin-bottom: 18px; border: 1px solid #6d542f; padding: 25px; background: radial-gradient(circle at 10% 50%, rgba(220,174,72,.15), transparent 24%), #211c17; }
.profile-seal { display: grid; width: 85px; height: 96px; place-items: center; clip-path: polygon(50% 0, 94% 17%, 84% 78%, 50% 100%, 16% 78%, 6% 17%); font-size: 2.4rem; font-weight: 900; }
.profile-banner h1 { margin: 0; font-size: 2.8rem; }
.profile-banner div > p:last-child { color: #8e8273; font: .75rem Arial, sans-serif; }
.profile-title { display: block; margin: -2px 0 8px; color: var(--gold-light); font: italic 1rem Georgia, serif; }
.profile-renown small, .profile-renown strong { display: block; }
.profile-renown small { color: #776d61; text-transform: uppercase; font: .58rem Arial, sans-serif; }
.profile-renown strong { color: var(--gold-light); font-size: 2rem; }
.profile-layout { display: grid; grid-template-columns: 1fr 320px; gap: 16px; max-width: 1050px; }
.profile-card, .profile-actions { border: 1px solid var(--line); padding: 22px; background: #211c17; }
.profile-card > p { color: #aa9d8b; font: .82rem/1.7 Arial, sans-serif; }
.profile-edit { display: grid; gap: 13px; }
.profile-edit > label { display: grid; gap: 6px; color: #958878; text-transform: uppercase; letter-spacing: .07em; font: 700 .57rem Arial, sans-serif; }
.profile-edit input, .profile-edit textarea { width: 100%; border: 1px solid #554736; padding: 11px; color: var(--paper); background: #15120f; }
.profile-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; max-width: 1050px; margin-bottom: 16px; }
.profile-stat-grid article { border: 1px solid var(--line); padding: 14px; background: #211c17; }
.profile-stat-grid small { display: block; color: #756a5e; text-transform: uppercase; letter-spacing: .07em; font: .52rem Arial, sans-serif; }
.profile-stat-grid strong { display: block; margin-top: 5px; color: var(--gold-light); font: 700 1.25rem Georgia, serif; }
.avatar-picker { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; border: 1px solid var(--line); padding: 12px; }
.avatar-picker legend { padding: 0 7px; color: #958878; text-transform: uppercase; letter-spacing: .07em; font: 700 .57rem Arial, sans-serif; }
.avatar-picker label { display: grid; justify-items: center; gap: 5px; border: 1px solid transparent; padding: 8px 4px; color: #817568; cursor: pointer; font: .55rem Arial, sans-serif; }
.avatar-picker label:has(input:checked) { border-color: var(--gold); background: rgba(220,174,72,.1); }
.avatar-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.avatar { display: grid; place-items: center; width: 42px; height: 42px; border: 2px solid rgba(255,255,255,.18); border-radius: 50%; color: #f4e5bd; background: #6c5127; box-shadow: inset 0 0 18px rgba(0,0,0,.35); font: 900 1rem Georgia, serif; }
.avatar svg { width: 82%; height: 82%; overflow: visible; fill: currentColor; filter: drop-shadow(0 2px 2px rgba(0,0,0,.55)); }
.avatar svg [fill="none"] { fill: none; }
.avatar-crown { background: linear-gradient(145deg, #b1842f, #513515); }
.avatar-commander { background: linear-gradient(145deg, #963d31, #3b1714); }
.avatar-guardian { background: linear-gradient(145deg, #416477, #172a34); }
.avatar-archer { background: linear-gradient(145deg, #527344, #1d3219); }
.avatar-scholar { background: linear-gradient(145deg, #72528d, #2d1d3b); }
.avatar-merchant { background: linear-gradient(145deg, #a56d31, #412615); }
.avatar-raider { background: linear-gradient(145deg, #555b61, #1d2023); }
.avatar-diplomat { background: linear-gradient(145deg, #8b426c, #39172b); }
.profile-seal.avatar { border-radius: 0; color: #fff0c6; }
.profile-seal.avatar svg { width: 72px; height: 80px; }
.account-menu { display: flex; align-items: center; gap: 7px; }
.account-menu .profile { display: grid; grid-template-columns: auto auto; column-gap: 8px; align-items: center; color: var(--paper); text-decoration: none; font: 700 .7rem Arial, sans-serif; }
.account-menu .profile .avatar { grid-row: 1 / 3; width: 35px; height: 35px; font-size: .75rem; }
.account-menu .profile small { color: #746a5f; font-size: .52rem; }
.logout-button { border: 1px solid var(--line); padding: 9px; color: #827568; background: #181410; cursor: pointer; text-transform: uppercase; font: 700 .52rem Arial, sans-serif; }
.profile-actions { display: grid; gap: 9px; align-content: start; }
.profile-actions > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 8px; }
.profile-actions > div span { border: 1px solid var(--line); padding: 9px; color: #746a5f; text-transform: uppercase; font: .5rem Arial, sans-serif; }
.profile-actions > div b { display: block; margin-top: 4px; color: var(--paper); font-size: .72rem; }
.profile-actions form .button { width: 100%; }
.profile-class-card { display: grid; grid-template-columns: 64px 1fr auto auto; gap: 17px; align-items: center; max-width: 1050px; margin-bottom: 16px; border: 1px solid #74582d; padding: 18px; background: radial-gradient(circle at 0 50%, rgba(220,174,72,.13), transparent 28%), #211c17; }
.profile-class-card > .avatar { width: 58px; height: 58px; }
.profile-class-card small { color: var(--gold); text-transform: uppercase; letter-spacing: .09em; font: 700 .52rem Arial, sans-serif; }
.profile-class-card h2 { margin: 4px 0; }
.profile-class-card p { margin: 0; color: #948676; font: .72rem Arial, sans-serif; }
.profile-class-card > strong { color: var(--gold-light); text-align: right; }
.profile-class-card > strong small { display: block; margin-top: 4px; }
.map-tile-teleport { border-color: #8a6c34; background: linear-gradient(120deg, #292116, #1c1813); }
.report-player { border-top: 1px solid var(--line); padding-top: 12px; }
.report-player summary { color: #c78378; cursor: pointer; text-transform: uppercase; font: 700 .57rem Arial, sans-serif; }
.report-player form { display: grid; gap: 8px; margin-top: 10px; }
.moderation-list { display: grid; gap: 12px; max-width: 1050px; }
.moderation-list > article { border: 1px solid #70443e; padding: 20px; background: #211c17; }
.moderation-list header { display: flex; justify-content: space-between; gap: 15px; }
.moderation-list header strong, .moderation-list header small { display: block; }
.moderation-list header small { margin-top: 4px; color: #9c776f; font: .62rem Arial, sans-serif; }
.moderation-list time { color: #776d61; font: .62rem Arial, sans-serif; }
.moderation-list > article > p, .moderation-list blockquote { color: #ad9f8d; font: .76rem/1.6 Arial, sans-serif; }
.moderation-list blockquote { margin: 12px 0; border-left: 3px solid #86524a; padding: 12px; background: #181411; }
.moderation-list blockquote b { display: block; margin-bottom: 7px; color: var(--gold-light); }
.moderation-list form { display: grid; grid-template-columns: 1fr 180px; gap: 9px; border-top: 1px solid var(--line); padding-top: 14px; }
.moderation-list form label:nth-of-type(3), .moderation-list form .button { grid-column: 1 / -1; }
.moderation-history { display: grid; gap: 7px; max-width: 1050px; }
.moderation-history article { display: grid; grid-template-columns: 130px 1fr 1fr auto; gap: 10px; border: 1px solid var(--line); padding: 12px 14px; color: #867a6d; background: #211c17; font: .68rem Arial, sans-serif; }
.moderation-history strong { color: var(--gold-light); }
.moderation-history time { color: #6e655b; }
.account-moderation-list { display: grid; gap: 9px; max-width: 1200px; }
.account-moderation-list article { display: grid; grid-template-columns: minmax(180px, 1fr) 180px minmax(460px, 1.7fr); gap: 14px; align-items: center; border: 1px solid var(--line); padding: 14px 16px; background: #211c17; }
.account-moderation-list article.is-suspended { border-color: #844b43; background: linear-gradient(90deg, rgba(123,49,43,.16), #211c17); }
.account-moderation-list strong, .account-moderation-list small { display: block; }
.account-moderation-list small, .account-moderation-list p, .account-moderation-list > article > span { color: #817568; font: .62rem Arial, sans-serif; }
.account-moderation-list p { margin: 5px 0 0; color: #b47e76; }
.account-moderation-list form { display: grid; grid-template-columns: 1.2fr 80px 1.5fr auto; gap: 7px; }
.account-moderation-list input, .account-moderation-list select { min-width: 0; border: 1px solid #554736; padding: 9px; color: var(--paper); background: #15120f; }

.nation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(275px, 1fr)); gap: 16px; }
.nation-card { display: flex; flex-direction: column; gap: 12px; border: 1px solid var(--line); padding: 22px; background: linear-gradient(145deg, #262019, #191510); box-shadow: 0 14px 28px rgba(0, 0, 0, .18); }
.nation-card h2, .skill-card h3 { margin: 0; color: var(--paper); }
.nation-card p, .skill-card p, .progress-note p { margin: 0; color: #918475; font: .78rem/1.6 Arial, sans-serif; }
.nation-seal { display: grid; place-items: center; width: 54px; height: 62px; color: #20180b; background: linear-gradient(#f2ce72, #a86e25); clip-path: polygon(50% 0, 92% 17%, 83% 78%, 50% 100%, 17% 78%, 8% 17%); font: 900 .8rem Georgia, serif; }
.nation-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 3px 0 7px; }
.nation-stats span { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 4px; padding-bottom: 6px; color: #877b6e; font: .62rem Arial, sans-serif; }
.nation-stats b { color: var(--gold-light); }
.nation-stats i { grid-column: 1 / -1; height: 3px; background: #3a3128; }
.nation-stats i::after { display: block; width: calc(var(--stat) * 25%); height: 100%; content: ""; background: var(--gold); }
.progress-hero { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; border: 1px solid #6f5528; padding: 26px; background: radial-gradient(circle at 15% 0, rgba(211, 158, 58, .17), transparent 35%), #211b15; }
.progress-hero h1 { margin: 3px 0 8px; color: var(--paper); font: 700 2rem Georgia, serif; }
.progress-hero p { margin: 0 0 12px; color: #938778; }
.progress-hero > strong { color: var(--gold-light); text-align: center; font: 700 2.1rem Georgia, serif; }
.progress-hero > strong small { display: block; color: #7f7468; text-transform: uppercase; letter-spacing: .1em; font: .52rem Arial, sans-serif; }
.level-medal { display: grid; place-items: center; width: 82px; height: 94px; color: #261b0d; background: linear-gradient(145deg, #f6d47a, #9a6420); clip-path: polygon(50% 0, 92% 18%, 84% 78%, 50% 100%, 16% 78%, 8% 18%); font: 900 2rem Georgia, serif; }
.xp-track, .skill-track { overflow: hidden; height: 7px; border: 1px solid #4f4234; background: #15110e; }
.xp-track i, .skill-track i { display: block; height: 100%; background: linear-gradient(90deg, #9a6723, #f0c65f); }
.progress-hero div > small { color: #786d61; font: .62rem Arial, sans-serif; }
.nation-summary { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.nation-summary article { border: 1px solid var(--line); padding: 16px; background: #211c17; text-align: center; }
.nation-summary small { display: block; color: #756a5e; text-transform: uppercase; letter-spacing: .08em; font: .55rem Arial, sans-serif; }
.nation-summary strong { display: block; margin-top: 5px; color: var(--gold-light); font: 700 1.25rem Georgia, serif; }
.skill-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.skill-card { display: grid; gap: 10px; border: 1px solid var(--line); padding: 20px; background: #211c17; }
.skill-card > span { justify-self: end; color: var(--gold); font: 700 .7rem Arial, sans-serif; }
.skill-card .button { margin-top: 4px; }
.progress-note { margin-top: 18px; border-left: 3px solid var(--gold); padding: 16px 18px; background: #211c17; }
.progress-note strong { display: block; margin-bottom: 5px; color: var(--paper); }
.domain-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 14px; max-width: 1200px; }
.domain-grid article, .domain-empty { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; min-height: 145px; border: 1px solid var(--line); padding: 20px; background: #211c17; text-decoration: none; }
.domain-grid article > form, .domain-grid article > strong { grid-column: 1 / -1; }
.domain-grid article > strong { color: var(--gold); text-transform: uppercase; font: 700 .58rem Arial, sans-serif; }
.domain-active { border-color: var(--gold) !important; background: linear-gradient(145deg, rgba(220,174,72,.13), #211c17) !important; }
.domain-fortress { display: grid; width: 60px; height: 70px; place-items: center; color: #23180b; background: linear-gradient(145deg, #ebc66b, #94601e); clip-path: polygon(50% 0, 92% 17%, 84% 78%, 50% 100%, 16% 78%, 8% 17%); font: 900 1.4rem Georgia, serif; }
.domain-grid h2 { margin: 3px 0; }
.domain-grid small { color: #796e61; text-transform: uppercase; font: .54rem Arial, sans-serif; }
.domain-grid p { color: #938778; font: .7rem Arial, sans-serif; }
.domain-empty { grid-template-columns: 1fr; place-items: center; align-content: center; color: #8e8273; text-align: center; border-style: dashed; }
.domain-empty span { color: var(--gold); font-size: 2rem; }
.domain-empty strong, .domain-empty small { display: block; }
.domain-rename { display: grid; grid-template-columns: 1fr auto; gap: 7px; }
.domain-rename input { min-width: 0; border: 1px solid #554736; padding: 10px; color: var(--paper); background: #15120f; }
.domain-rename .button { min-height: 38px; padding-inline: 12px; font-size: .55rem; }
.claim-castle-form { display: grid; gap: 10px; border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
.claim-castle-form p { color: #a99d8b; font: .72rem/1.5 Arial, sans-serif; }
.claim-castle-form .button { width: 100%; }
.spy-form { display: grid; gap: 9px; border-top: 1px solid var(--line); margin-top: 12px; padding-top: 12px; }
.spy-form p { margin: 0; color: #9b8f7f; font: .7rem/1.5 Arial, sans-serif; }
.spy-form .button { width: 100%; }
.intelligence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 1050px; }
.intelligence-card { display: grid; grid-template-columns: 72px 1fr; gap: 16px; border: 1px solid #6f552d; padding: 22px; background: radial-gradient(circle at 0 0, rgba(220,174,72,.12), transparent 28%), #211c17; }
.intelligence-card > span { display: grid; width: 68px; height: 78px; place-items: center; color: #25190b; background: linear-gradient(145deg, #ebc86f, #96621f); clip-path: polygon(50% 0, 92% 17%, 84% 78%, 50% 100%, 16% 78%, 8% 17%); font: 900 1.8rem Georgia, serif; }
.intelligence-card h2 { margin: 3px 0 7px; }
.intelligence-card p:not(.eyebrow) { color: #918576; font: .76rem/1.55 Arial, sans-serif; }
.intelligence-card .costs, .intelligence-card form, .intelligence-card > .max-level { grid-column: 1 / -1; }
.intelligence-card .button { width: 100%; }
.intelligence-guide { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; max-width: 1050px; margin-top: 25px; border: 1px solid var(--line); padding: 20px; background: #211c17; }
.intelligence-guide h2, .intelligence-guide > a { grid-column: 1 / -1; }
.intelligence-guide div { border: 1px solid var(--line); padding: 12px; }
.intelligence-guide span { color: var(--gold-light); font-weight: 800; }
.intelligence-guide p { color: #817668; font: .68rem/1.45 Arial, sans-serif; }
.spy-report { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.spy-report > p { grid-column: 1 / -1; }
.spy-report > div { border: 1px solid var(--line); padding: 13px; }
.spy-report h4 { margin: 0 0 8px; color: var(--gold-light); }
.spy-report span { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; }
.alliance-entry { display: grid; grid-template-columns: 340px 1fr; gap: 18px; max-width: 1200px; }
.alliance-create, .alliance-settings form { display: grid; gap: 11px; border: 1px solid #6a5130; padding: 22px; background: #211c17; }
.alliance-create h2 { margin: 0 0 6px; }
.alliance-create label { display: grid; gap: 5px; color: #8f8273; text-transform: uppercase; font: 700 .56rem Arial, sans-serif; }
.alliance-create input, .alliance-create textarea, .alliance-directory textarea, .alliance-settings textarea, .alliance-post textarea { width: 100%; border: 1px solid #554736; padding: 10px; color: var(--paper); background: #15120f; }
.alliance-directory { display: grid; gap: 10px; align-content: start; }
.alliance-directory article { display: grid; grid-template-columns: 70px 1fr 230px; gap: 15px; align-items: center; border: 1px solid var(--line); padding: 16px; background: #211c17; }
.alliance-directory h3 { margin: 0; color: var(--paper); }
.alliance-directory p { color: #8d8172; font: .72rem/1.5 Arial, sans-serif; }
.alliance-directory small { color: #70665b; font: .58rem Arial, sans-serif; }
.alliance-directory form { display: grid; gap: 7px; }
.alliance-emblem { display: grid; width: 62px; height: 72px; place-items: center; color: #25190b; background: linear-gradient(145deg, #edcc75, #9d6722); clip-path: polygon(50% 0, 92% 17%, 83% 78%, 50% 100%, 17% 78%, 8% 17%); font: 900 .7rem Georgia, serif; }
.alliance-emblem.large { width: 90px; height: 105px; font-size: 1rem; }
.alliance-hero { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; max-width: 1200px; border: 1px solid #74592f; padding: 24px; background: radial-gradient(circle at 10% 30%, rgba(220,174,72,.16), transparent 28%), #211c17; }
.alliance-hero h1 { margin: 0 0 7px; font-size: 2.6rem; }
.alliance-hero p:last-child { color: #918576; font: .8rem/1.6 Arial, sans-serif; }
.alliance-hero > strong { color: var(--gold-light); text-align: center; font-size: 2rem; }
.alliance-hero > strong small { display: block; color: #776c60; text-transform: uppercase; font: .52rem Arial, sans-serif; }
.alliance-settings { max-width: 1200px; margin-top: 10px; border: 1px solid var(--line); padding: 12px; background: #1c1814; }
.alliance-settings summary { color: var(--gold); cursor: pointer; font: 700 .62rem Arial, sans-serif; }
.alliance-settings form { margin-top: 10px; padding: 0; border: 0; }
.alliance-applications { display: grid; gap: 8px; max-width: 1200px; }
.alliance-applications article { display: flex; justify-content: space-between; gap: 18px; border: 1px solid var(--line); padding: 15px; background: #211c17; }
.alliance-applications strong, .alliance-applications small { display: block; }
.alliance-applications small { color: #776c60; font: .58rem Arial, sans-serif; }
.alliance-applications p { color: #9d9181; font: .72rem Arial, sans-serif; }
.alliance-applications form { display: flex; gap: 7px; align-items: center; }
.alliance-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 18px; max-width: 1200px; }
.alliance-wall { display: grid; max-height: 520px; overflow-y: auto; border: 1px solid var(--line); background: #1b1713; }
.alliance-wall article { display: grid; grid-template-columns: 42px 1fr; gap: 11px; border-top: 1px solid var(--line); padding: 13px; }
.alliance-wall article:first-of-type { border-top: 0; }
.alliance-wall header { display: flex; justify-content: space-between; gap: 10px; }
.alliance-wall header small { color: #6f655b; font: .55rem Arial, sans-serif; }
.alliance-wall p { margin: 5px 0 0; color: #aaa08f; font: .75rem/1.55 Arial, sans-serif; }
.alliance-empty { padding: 20px; color: #756b60; }
.alliance-post { display: grid; gap: 8px; margin-top: 9px; }
.alliance-member-list { display: grid; border: 1px solid var(--line); background: #211c17; }
.alliance-member-list article { display: grid; grid-template-columns: 1fr auto; gap: 8px; border-top: 1px solid var(--line); padding: 12px; }
.alliance-member-list article:first-child { border-top: 0; }
.alliance-member-list strong, .alliance-member-list small { display: block; }
.alliance-member-list small { color: #71675d; font: .55rem Arial, sans-serif; }
.alliance-member-list > article > b { color: var(--gold-light); }
.alliance-member-list form { grid-column: 1 / -1; display: flex; gap: 5px; }
.alliance-member-list button { border: 1px solid #554736; padding: 5px 8px; color: #a99c8a; background: #17130f; cursor: pointer; font: .52rem Arial, sans-serif; }
.alliance-leave { margin-top: 12px; }
.alliance-leave .button { width: 100%; }
.diplomacy-proposal { display: grid; grid-template-columns: 1fr 240px auto; gap: 10px; align-items: end; max-width: 1200px; border: 1px solid #6b522d; padding: 16px; background: #211c17; }
.diplomacy-proposal label { display: grid; gap: 5px; color: #8f8273; text-transform: uppercase; font: 700 .55rem Arial, sans-serif; }
.diplomacy-proposal select { width: 100%; border: 1px solid #554736; padding: 11px; color: var(--paper); background: #15120f; }
.diplomacy-list { display: grid; gap: 9px; max-width: 1200px; margin-top: 12px; }
.diplomacy-list article { display: grid; grid-template-columns: 62px 1fr auto; gap: 14px; align-items: center; border: 1px solid var(--line); padding: 15px; background: #211c17; }
.diplomacy-list h3 { margin: 3px 0; }
.diplomacy-list small { color: #807466; text-transform: uppercase; font: 700 .54rem Arial, sans-serif; }
.diplomacy-list p { margin: 4px 0 0; color: #958878; font: .68rem Arial, sans-serif; }
.diplomacy-list form { display: flex; gap: 7px; }
.diplomacy-alliance { border-left: 4px solid #6ea8c7 !important; }
.diplomacy-nap { border-left: 4px solid #c4ad68 !important; }
.diplomacy-war { border-left: 4px solid #bf6158 !important; }
.diplomacy-history { max-width: 1200px; margin-top: 12px; border: 1px solid var(--line); padding: 13px; background: #1b1713; }
.diplomacy-history summary { color: var(--gold); cursor: pointer; text-transform: uppercase; font: 700 .58rem Arial, sans-serif; }
.diplomacy-history article { display: grid; grid-template-columns: 1fr auto; gap: 5px 15px; border-top: 1px solid var(--line); padding: 11px 3px; }
.diplomacy-history strong, .diplomacy-history span { display: block; }
.diplomacy-history span { color: #817669; font: .62rem Arial, sans-serif; }
.diplomacy-history time { grid-row: 1 / 3; grid-column: 2; color: #9b8d79; font: .6rem Arial, sans-serif; }
.dialog-open { overflow: hidden; }
.royal-confirm {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(8, 6, 4, .78);
    opacity: 0;
    backdrop-filter: blur(5px);
    transition: opacity .18s ease;
}
.royal-confirm[hidden] { display: none; }
.royal-confirm.visible { opacity: 1; }
.royal-confirm-card {
    position: relative;
    width: min(440px, 100%);
    border: 1px solid #8a672f;
    padding: 32px;
    color: var(--paper);
    background:
        linear-gradient(135deg, rgba(231, 186, 82, .08), transparent 42%),
        #211b16;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .62), inset 0 0 0 4px #17120e;
    transform: translateY(12px) scale(.97);
    transition: transform .18s ease;
}
.royal-confirm.visible .royal-confirm-card { transform: translateY(0) scale(1); }
.royal-confirm-card h2 { margin: 4px 0 10px; color: var(--paper); font-size: 1.65rem; }
.royal-confirm-card > p:not(.eyebrow) { margin: 0; color: #b4a795; font: .78rem/1.65 Arial, sans-serif; }
.royal-confirm-seal {
    position: absolute;
    top: -18px;
    right: 26px;
    width: 45px;
    height: 52px;
    background: linear-gradient(145deg, #efcb70, #9c6722);
    clip-path: polygon(50% 0, 95% 18%, 84% 78%, 50% 100%, 16% 78%, 5% 18%);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .35);
}
.royal-confirm-seal::after { content: "!"; display: grid; height: 42px; place-items: center; color: #21160a; font: 900 1.25rem Georgia, serif; }
.royal-confirm-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 24px; }
.royal-confirm-actions .button { min-width: 112px; }
.royal-confirm-actions .danger { border-color: #bd6656; color: #fff4e7; background: linear-gradient(#a64e42, #723129); }

@media (max-width: 900px) {
    .building-card { grid-template-columns: 96px 1fr; }
    .profile-class-card { grid-template-columns: 52px 1fr; }
    .profile-class-card > strong, .profile-class-card > form { grid-column: 2; text-align: left; }
    .incoming-alerts > header { align-items: stretch; flex-direction: column; }
    .incoming-alerts article { grid-template-columns: 34px 1fr; }
    .incoming-alerts article time { grid-column: 2; }
    .hero { grid-template-columns: 1fr; padding-inline: 25px; }
    .crest { display: none; }
    .access-panel { grid-template-columns: 1fr; }
    .access-panel > div { justify-self: center; }
    .access-panel blockquote { display: none; }
    .topbar { grid-template-columns: 1fr auto; padding: 10px 15px; }
    .topbar .brand > span:last-child { display: none; }
    .resources { grid-row: 2; grid-column: 1 / -1; justify-content: space-between; width: 100%; padding-top: 10px; }
    .resource { min-width: 0; }
    .resource small { display: none; }
    .game-layout { grid-template-columns: 1fr; }
    .sidebar { position: fixed; z-index: 20; bottom: 0; left: 0; width: 100%; padding: 5px; border: 0; border-top: 1px solid var(--line); }
    .sidebar nav { display: flex; justify-content: flex-start; overflow-x: auto; }
    .nav-group { display: contents; }
    .nav-group > b { display: none; }
    .sidebar nav a { display: flex; flex: 0 0 72px; flex-direction: column; gap: 2px; padding: 5px; font-size: .52rem; }
    .sidebar nav a small, .world-card { display: none; }
    .dashboard { padding-bottom: 100px; }
    .world-map { grid-template-columns: repeat(11, 74px); }
    .dashboard { overflow-x: auto; }
    .premium-grid { grid-template-columns: 1fr; }
    .premium-skill-grid { grid-template-columns: 1fr; }
    .premium-options, .premium-utilities { grid-template-columns: 1fr; }
    .protection-grid { grid-template-columns: 1fr; }
    .admin-layout { grid-template-columns: 1fr; }
    .royal-admin-grid { grid-template-columns: 1fr; }
    .transfer-grid { grid-template-columns: 1fr; }
    .staff-guide { grid-template-columns: 1fr; }
    .staff-table { min-width: 820px; }
    .profile-layout { grid-template-columns: 1fr; }
    .profile-stat-grid { grid-template-columns: repeat(3, 1fr); }
    .map-toolbar { grid-template-columns: 1fr; }
    .map-toolbar [data-map-search] { grid-row: 1; }
    .map-zoom { justify-content: start; }
    .map-marches-panel { grid-template-columns: 1fr; }
    .royal-map-beacon { grid-template-columns: 42px 1fr; }
    .royal-map-beacon > b { grid-column: 2; }
    .map-marches-panel > span, .map-marches-list { grid-column: 1; }
    .movement-unit-list { grid-template-columns: 1fr; }
    .march-capacity, .march-dashboard-card { grid-template-columns: 56px 1fr; }
    .march-capacity .button, .march-dashboard-card time, .march-dashboard-card .button { grid-column: 2; justify-self: start; }
    .nation-summary { grid-template-columns: repeat(3, 1fr); }
    .skill-grid { grid-template-columns: repeat(2, 1fr); }
    .alliance-entry, .alliance-layout { grid-template-columns: 1fr; }
    .alliance-directory article { grid-template-columns: 70px 1fr; }
    .alliance-directory form { grid-column: 1 / -1; }
    .diplomacy-proposal { grid-template-columns: 1fr; }
}

@media (max-width: 550px) {
    .landing-nav { padding: 18px; }
    .landing-nav .button { display: none; }
    .hero { min-height: 680px; padding-top: 120px; }
    .hero h1 { font-size: 3.35rem; }
    .hero-stats { gap: 24px; }
    .access-panel { padding: 60px 22px; }
    .resources { gap: 6px; }
    .resource-icon { width: 17px; height: 17px; border-width: 3px; }
    .resource-icon svg { width: 14px; height: 14px; }
    .resource strong { font-size: .8rem; }
    .village-heading { align-items: start; }
    .renown { display: none; }
    .queue-card { grid-template-columns: 1fr; grid-template-areas: "slot" "actions" "title"; align-items: stretch; gap: 14px; }
    .queue-time, .progress { width: 100%; min-width: 0; }
    .unit-card { grid-template-columns: 1fr; }
    .unit-emblem { width: 58px; height: 68px; }
    .unit-emblem svg { width: 50px; height: 58px; }
    .recruit-quantity { justify-content: flex-start; margin-top: 14px; }
    .recruit-batch-submit { align-items: stretch; flex-direction: column; gap: 12px; bottom: 6px; }
    .queue-actions { grid-template-columns: 1fr; align-items: stretch; width: 100%; }
    .queue-actions form, .queue-speedup { width: 100%; }
    .premium-hero { align-items: flex-start; flex-direction: column; gap: 18px; }
    .public-stats, .attack-units, .report-columns { grid-template-columns: 1fr; }
    .castle-war-actions { grid-template-columns: 1fr; }
    .march-command { grid-template-columns: 58px 1fr; }
    .march-command-level, .march-command form, .march-command > .max-level { grid-column: 1 / -1; text-align: left; }
    .march-command-level { border-top: 1px solid #5a452d; border-left: 0; padding-top: 14px; padding-left: 0; }
    .movement-card { grid-template-columns: 38px 1fr; }
    .movement-card time { grid-column: 2; }
    .admin-fields, .world-stats { grid-template-columns: 1fr; }
    .admin-world-list article { grid-template-columns: 1fr; }
    .admin-world-list form { align-items: stretch; flex-direction: column; }
    .royal-admin-facts, .royal-event-preview { grid-template-columns: 1fr 1fr; }
    .ranking-table { min-width: 790px; }
    .teleport-form { grid-template-columns: 1fr 1fr; }
    .teleport-form .button { grid-column: 1 / -1; }
    .map-teleport-picker { grid-template-columns: 1fr; }
    .transfer-facts { grid-template-columns: 1fr; }
    .intelligence-grid, .intelligence-guide { grid-template-columns: 1fr; }
    .transfer-history article { grid-template-columns: 38px 1fr; }
    .transfer-history time { grid-column: 2; }
    .staff-history article { grid-template-columns: 1fr; }
    .profile-banner { grid-template-columns: 75px 1fr; }
    .profile-seal { width: 66px; height: 75px; }
    .profile-renown { grid-column: 2; }
    .profile-stat-grid { grid-template-columns: 1fr 1fr; }
    .avatar-picker { grid-template-columns: repeat(2, 1fr); }
    .moderation-list form { grid-template-columns: 1fr; }
    .moderation-list form label:nth-of-type(3), .moderation-list form .button { grid-column: auto; }
    .moderation-history article { grid-template-columns: 1fr; }
    .account-moderation-list article, .account-moderation-list form { grid-template-columns: 1fr; }
    .world-map-v9 { min-width: 0; min-height: 430px; height: 62vh; }
    .map-minimap { width: 130px; height: 90px; }
    .map-coordinate { right: 152px; }
    .map-hint { display: none; }
    .progress-hero { grid-template-columns: auto 1fr; }
    .progress-hero > strong { grid-column: 1 / -1; justify-self: start; text-align: left; }
    .nation-summary, .skill-grid { grid-template-columns: 1fr 1fr; }
    .nation-grid { grid-template-columns: 1fr; }
    .alliance-hero { grid-template-columns: auto 1fr; }
    .alliance-hero > strong { grid-column: 1 / -1; justify-self: start; }
    .alliance-applications article { flex-direction: column; }
    .diplomacy-list article { grid-template-columns: 55px 1fr; }
    .diplomacy-list form { grid-column: 1 / -1; }
}
