@charset "UTF-8";
:root{--bg:#101b22;--side:#101d25;--panel:#172731;--panel2:#1c303a;--hover:#233c47;--line:#34464a;--text:#e8e6da;--muted:#a4b3b2;--dim:#7c9599;--gold:#ddbb79;--gold-bg:#34342a;--green:#9bc4c2;--green-bg:#23444b;--radius:10px}
:root[data-theme=light]{--bg:#eee9db;--side:#e7e2d4;--panel:#fcf8ed;--panel2:#f0ebdd;--hover:#e2e7de;--line:#d0c9b7;--text:#253842;--muted:#5c7277;--dim:#788d8f;--gold:#805e2b;--gold-bg:#eadebf;--green:#35636c;--green-bg:#d8e5df}
body{background-image:radial-gradient(ellipse at 85% 0%,#5393a510,transparent 45%)}.sidebar{background-image:linear-gradient(145deg,#ddbb7907,transparent 50%)}.brand img{width:42px;height:48px}.brand-name{font-size:21px;line-height:1.05}.brand-sub{font-size:8px;letter-spacing:2.2px;margin-top:7px;color:var(--gold)}.nav-item.active{border:1px solid #8eb7bc35;box-shadow:inset 2px 0 var(--gold)}.card{border-radius:10px}.topbar{background:color-mix(in srgb,var(--side) 75%,transparent)}.atlas-kicker{font-size:9px;letter-spacing:2.4px;text-transform:uppercase;color:var(--gold);font-weight:600}.campaign-banner{position:relative;display:flex;gap:25px;align-items:center;justify-content:space-between;overflow:hidden;min-height:180px;margin-bottom:27px;padding:27px 32px;border:1px solid #a9a17a55;border-radius:10px;background:linear-gradient(110deg,#18333e,#1d3338 60%,#34413b);box-shadow:inset 0 0 0 6px #0000000a}.campaign-banner::before{content:'';position:absolute;inset:10px;border:1px solid #ddbb791a;pointer-events:none}.campaign-banner h2{font:29px/1.16 Georgia,serif;letter-spacing:-.4px;color:#eee6cf;margin-top:10px}.campaign-banner p:last-child{font-size:11px;color:#afc4c7;margin-top:10px}.campaign-banner>.btn{align-self:flex-end;position:relative;color:#e6d5ad}.campaign-banner-seal{position:absolute;left:60%;top:50%;transform:translate(-50%,-50%) rotate(-9deg);opacity:.22}.campaign-banner-seal svg{width:160px;height:160px}.campaign-banner-seal::after{content:'';position:absolute;width:250px;height:250px;left:-45px;top:-45px;border:1px solid #ddbb79;border-radius:50%}.world-hero{display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:300px;padding:35px 20px 35px 0;border-bottom:1px solid var(--line)}.world-hero h1{font:52px/1.02 Georgia,serif;letter-spacing:-1.8px;margin:19px 0;color:var(--text)}.world-hero-copy>p:not(.atlas-kicker){color:var(--muted);font-size:13px;line-height:1.8}.world-hero-meta{display:flex;gap:24px;margin-top:25px;font-size:10px;text-transform:uppercase;letter-spacing:1.1px;color:var(--gold)}.world-hero-meta span{display:flex;align-items:center;gap:7px}.world-hero-meta .icon{width:15px}.atlas-orbit{position:relative;width:270px;height:270px;flex-shrink:0;display:grid;place-items:center}.orbit-ring{position:absolute;border:1px solid #a5c4c040;border-radius:50%;inset:25px}.orbit-one{inset:8px;border-color:#ddbb7950}.orbit-two{inset:30px;border-style:dashed;transform:rotate(25deg)}.orbit-three{inset:50px;border-color:#ddbb7970;box-shadow:0 0 50px #5ca5c014,inset 0 0 60px #5ca5c014}.orbit-core svg{width:74px;height:113px;fill:none;stroke:var(--gold);stroke-width:1;filter:drop-shadow(0 0 15px #c9a66655)}.orbit-label{position:absolute;top:0;background:var(--bg);padding:0 8px;font-size:7px;letter-spacing:2.2px;color:var(--dim)}.orbit-bottom{top:auto;bottom:0}.world-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:25px 0 30px;border:1px solid var(--line);padding:5px;border-radius:9px;background:var(--side)}.world-tabs>button{display:flex;gap:9px;align-items:center;justify-content:center;padding:13px 7px;border:0;border-radius:5px;background:none;color:var(--muted);font-size:12px}.world-tabs>button.active{background:var(--panel2);color:var(--gold);box-shadow:inset 0 -2px var(--gold)}.world-tabs .icon{width:17px}.world-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.world-section-heading h2{font:26px Georgia,serif;margin-top:8px}.world-section-heading h3{font:21px Georgia,serif;margin-top:7px}.world-chart{padding:22px 24px;margin-bottom:32px;background:linear-gradient(135deg,var(--panel),var(--bg))}.world-map{position:relative;aspect-ratio:1000/590;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:radial-gradient(ellipse at 60% 50%,#9daa7b12,transparent 60%),var(--side);color:#8daba81d}.world-map>svg{position:absolute;inset:0;width:100%;height:100%}.chart-coast{fill:#537d9120;stroke:#81a5b14a;stroke-width:2}.chart-river{fill:none;stroke:#679eae60;stroke-width:5}.chart-route{fill:none;stroke:#ddbb7960;stroke-width:1.7;stroke-dasharray:4 8}.chart-mountains{fill:none;stroke:#9ba29b55;stroke-width:2}.chart-compass{fill:none;stroke:#ddbb7960;stroke-width:1}.chart-compass text{text-anchor:middle;font-size:16px;fill:var(--gold);stroke:none}.world-map-city{position:absolute;display:grid;justify-items:center;min-width:68px;max-width:140px;transform:translate(-50%,-50%);border:0;background:none;color:var(--text);padding:2px;z-index:2}.world-map-city .world-sigil{width:52px;height:58px;transition:transform .2s;filter:drop-shadow(0 5px 8px #0007)}.world-map-city span{font:14px Georgia,serif;padding:3px 7px;border:1px solid transparent;border-radius:4px;background:color-mix(in srgb,var(--side) 88%,transparent);white-space:nowrap}.world-map-city i{font-style:normal;font-size:8px;letter-spacing:.7px;text-transform:uppercase;color:var(--gold);margin-top:3px}.world-map-city:hover .world-sigil,.world-map-city.selected .world-sigil{transform:translateY(-4px)}.world-map-city.selected span{border-color:var(--gold);color:var(--gold)}.world-sigil{width:70px;height:78px;flex-shrink:0}.sigil-shield{fill:var(--panel);stroke:var(--city-color);stroke-width:1.5}.sigil-lines{stroke:var(--city-color)}.world-map-note{font-size:10px;color:var(--dim);line-height:1.8;margin:12px 0}.world-city-title{display:flex;align-items:center;gap:22px;padding:10px 0 20px}.world-city-title .world-sigil{width:87px;height:98px}.world-city-title h2{font:37px Georgia,serif;margin:8px 0}.world-city-title p:last-child{color:var(--muted);max-width:680px;font-size:12px}.world-lore{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid var(--line);padding:24px 0 30px}.world-lore p{font-size:12px;line-height:1.9;color:var(--muted)}.world-city-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:26px;align-items:start}.world-poi-card{padding:22px}.world-city-map{position:relative;aspect-ratio:1.2;background:radial-gradient(ellipse at center,#bea36c12,transparent 80%),var(--side);border:1px solid var(--line);border-radius:6px;color:#80989133;overflow:hidden}.world-city-map svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:.3}.world-city-map .city-roads{stroke:var(--gold);stroke-opacity:.4;stroke-dasharray:1 2;stroke-width:.5}.poi-marker{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;background:var(--panel);border:1px solid var(--gold);border-radius:50%;color:var(--gold);font:15px Georgia,serif}.poi-marker.selected{background:var(--gold);color:var(--bg);box-shadow:0 0 0 5px #ddbb7915}.city-plan-label{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:6px;letter-spacing:1.5px;color:var(--dim)}.poi-description{min-height:150px;padding:20px 0 13px}.poi-description h3{margin:10px 0 7px;font:22px Georgia,serif}.poi-description p{color:var(--muted);font-size:12px;line-height:1.8}.poi-index{display:flex;gap:3px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}.poi-index .btn{font-size:10px;padding:6px 8px}.poi-index .selected{color:var(--gold);border-color:var(--gold)}.world-shop-card{padding:19px 20px;margin-bottom:12px}.shop-owner{text-transform:uppercase;font-size:8px;letter-spacing:1.3px;color:var(--gold);margin-bottom:7px}.world-shop-card h3{font:21px Georgia,serif;margin-bottom:8px}.world-shop-card>p:not(.shop-owner){color:var(--muted);font-size:11px;line-height:1.8}.world-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:13px}.world-tags span{font-size:9px;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:3px 6px}.world-city-people{margin-top:35px}.world-npc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.world-npc-card{position:relative;padding:22px 20px;min-width:0}.world-npc-card[hidden]{display:none}.npc-monogram{width:42px;height:42px;display:grid;place-items:center;border:1px solid #ddbb7970;border-radius:50%;color:var(--gold);font:17px Georgia,serif;margin-bottom:16px;background:#ddbb790a}.npc-city-label{font-size:8px;color:var(--dim);letter-spacing:.8px;text-transform:uppercase;margin-bottom:8px}.world-npc-card h3{font:23px Georgia,serif;margin-bottom:7px}.npc-role{display:block;font-weight:400;color:var(--gold);font-size:10px;line-height:1.5}.world-npc-card>p{font-size:11px;color:var(--muted);line-height:1.85;margin-top:13px}.world-npc-card footer{display:grid;gap:6px;margin-top:18px;border-top:1px solid var(--line);padding-top:13px;font-size:9px;color:var(--dim)}.world-npc-card footer span:first-child{display:flex;align-items:center;gap:6px}.world-npc-card footer .icon{width:12px;height:12px}.world-npc-card details{margin-top:12px;font-size:9px;color:var(--dim);border:0;background:none}.world-npc-card details p{font-size:10px;padding:8px 0;line-height:1.7}.world-search{margin:10px 0 25px;max-width:520px}.world-source{font-size:9px;color:var(--dim);margin:25px 0;line-height:1.8}.world-history-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:35px;align-items:start}.atlas-timeline article{display:flex;gap:22px;position:relative;padding:20px 0 25px}.atlas-timeline article:before{content:'';position:absolute;left:16px;top:56px;bottom:-10px;border-left:1px solid var(--line)}.atlas-timeline article:last-child:before{display:none}.timeline-index{flex-shrink:0;display:grid;place-items:center;width:33px;height:33px;font:15px Georgia,serif;border:1px solid var(--gold);border-radius:50%;color:var(--gold)}.atlas-timeline h3{font:24px Georgia,serif;margin:8px 0 10px}.atlas-timeline article>div>p:last-child{font-size:12px;line-height:1.9;color:var(--muted)}.world-secret-panel{padding:30px;background:linear-gradient(135deg,var(--panel),var(--side));border-color:#b59e7150}.world-secret-panel>.icon{color:var(--gold);width:30px;height:30px;margin-bottom:25px}.world-secret-panel h2{font:31px/1.2 Georgia,serif;margin:12px 0 17px}.world-secret-panel>p:not(.atlas-kicker){font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:20px}.world-secret-panel .field-note{margin:20px 0 0!important;font-size:10px!important}.world-factions{display:grid;gap:12px;margin-top:20px}.world-factions p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:8px}.world-item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.world-item-card{padding:25px;position:relative;overflow:hidden}.item-rune{display:block;font:48px Georgia,serif;color:var(--gold);margin-bottom:20px;line-height:1}.world-item-card h3{font:23px/1.25 Georgia,serif;margin:9px 0 14px}.world-item-card>p:not(.atlas-kicker){color:var(--muted);font-size:12px;line-height:1.9}.world-item-status{color:var(--gold);font-size:10px;line-height:1.7;padding:12px 0;margin-top:14px;border-top:1px solid var(--line)}.world-item-card footer{font-size:9px;color:var(--dim)}.world-item-card details{margin-top:10px;font-size:9px}.world-private-text{white-space:pre-wrap;font-size:13px;line-height:1.9}.world-private-list{display:grid;gap:7px;margin-top:15px}.world-private-row{position:relative;display:grid;gap:5px;width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--text);text-align:left;border-radius:6px;padding:16px 42px 16px 16px}.world-private-row span{font-size:10px;color:var(--muted)}.world-private-row .icon{position:absolute;right:12px;top:20px}
.magic-spell-list{display:grid;gap:1px;max-height:54dvh;overflow:auto;touch-action:pan-y}.magic-spell-row{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:14px 0}.magic-spell-row strong{font-size:13px}.magic-spell-row small{display:block;font-size:10px;margin-top:5px;color:var(--muted)}.magic-spell-row .button-row{flex-shrink:0;gap:4px}.magic-cast-summary{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:17px}.magic-cast-summary strong{color:var(--gold)}.magic-targets{border:1px solid var(--line);border-radius:7px;padding:13px;margin:0 0 14px;max-height:250px;overflow:auto}.magic-targets legend{font-size:11px;color:var(--gold);padding:0 5px}.magic-targets label{font-size:11px!important;margin:10px 0}.magic-target-result{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:16px;margin-bottom:13px}.magic-target-result h3{font:21px Georgia,serif;margin-bottom:8px}.magic-target-result>p{font-size:11px;color:var(--muted);line-height:1.8;margin:6px 0}.magic-roll-detail b{font-size:20px;color:var(--gold);margin:0 4px}.magic-target-result .form-grid{margin-top:12px}.magic-hp-result strong{font:28px Georgia,serif;color:var(--gold)}.magic-rule-note{font-size:11px}.magic-result-dialog .dialog-body{max-height:68dvh}.hand-counter{display:inline-flex;align-items:center;gap:7px;color:var(--gold);font-size:10px}.hand-counter strong{font-size:16px}.hand-counter.depleted{color:var(--red)}.magic-state-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.magic-state{display:flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:4px 5px 4px 9px;font-size:10px}.magic-state b{font-weight:500;color:var(--gold)}.magic-state small{font-size:8px}.magic-state .btn{min-height:22px;padding:3px}.magic-state .icon{width:12px;height:12px}
@media(max-width:1100px){.world-hero h1{font-size:45px}.atlas-orbit{width:220px;height:220px}.world-lore{grid-template-columns:1fr;gap:10px}.world-npc-grid,.world-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-history-layout{grid-template-columns:1.3fr 1fr;gap:23px}.world-tabs>button{font-size:11px}}
@media(max-width:800px){.world-city-columns{grid-template-columns:1fr}.world-hero{gap:20px}.world-hero h1{font-size:39px}.atlas-orbit{width:180px;height:180px}.orbit-label{font-size:5px}.world-map-city .world-sigil{width:43px;height:48px}.world-map-city span{font-size:12px}.world-history-layout{grid-template-columns:1fr}.world-tabs .icon{width:15px}.world-chart{padding:17px}.campaign-banner{padding:23px}.campaign-banner h2{font-size:25px}.campaign-banner>.btn{font-size:10px}.campaign-banner-seal{left:68%;opacity:.13}}
@media(max-width:480px){.brand img{width:30px;height:35px}.world-hero{min-height:250px;padding:20px 0 25px;align-items:flex-start}.world-hero h1{font-size:36px;letter-spacing:-.8px;margin:17px 0}.world-hero-copy>p:not(.atlas-kicker){font-size:11px}.atlas-kicker{font-size:8px;letter-spacing:1.5px}.atlas-orbit{width:108px;height:145px;position:absolute;right:20px;margin-top:20px;opacity:.3;z-index:-1}.orbit-one{inset:15px 0}.orbit-two{inset:28px 12px}.orbit-three{inset:40px 24px}.orbit-core svg{width:35px;height:65px}.orbit-label{display:none}.world-hero-meta{gap:15px;font-size:9px}.world-tabs{grid-template-columns:1fr 1fr;margin:18px 0 22px}.world-tabs>button{padding:12px 4px;min-height:43px}.world-chart{padding:15px 11px}.world-section-heading h2{font-size:22px}.world-map{aspect-ratio:.95}.world-map-city{min-width:40px}.world-map-city .world-sigil{width:31px;height:38px}.world-map-city span{font-size:10px;padding:2px 4px}.world-map-city i{font-size:6px;max-width:60px}.world-map-note{font-size:9px}.world-city-title{gap:15px}.world-city-title .world-sigil{width:58px;height:70px}.world-city-title h2{font-size:29px}.world-city-title p:last-child{font-size:11px}.world-lore{padding:18px 0 23px}.world-lore p{font-size:11px}.world-npc-grid,.world-item-grid{grid-template-columns:1fr}.world-npc-card{padding:21px}.world-poi-card{padding:16px}.world-item-card{padding:23px}.campaign-banner{padding:23px 21px;min-height:205px;align-items:flex-start;gap:10px;flex-direction:column}.campaign-banner h2{font-size:27px}.campaign-banner>.btn{align-self:flex-start;margin-top:7px}.campaign-banner-seal{left:83%;opacity:.17}.campaign-banner-seal svg{width:130px;height:150px}.campaign-banner-seal::after{width:200px;height:200px;left:-35px;top:-25px}.interactive-turn>.button-row{gap:7px}.interactive-turn .hand-counter{flex:1 1 100%;order:5;justify-content:space-between;padding:8px 12px;margin-top:4px}.magic-spell-row{gap:10px}.magic-spell-row .button-row{flex-direction:column}.magic-spell-row strong{font-size:12px}.magic-spell-row small{font-size:9px}.magic-target-result{padding:13px}.magic-target-result .form-grid{grid-template-columns:1fr}.magic-state{font-size:9px}.magic-state small{font-size:7px}}
@media(prefers-reduced-motion:reduce){.world-map-city .world-sigil{transition:none}}
#magic-results.awaiting-roll{position:relative;min-height:150px}#magic-results.awaiting-roll>.magic-target-result{visibility:hidden}#magic-results.awaiting-roll:after{content:'Lanzando dados…';position:absolute;inset:0;display:grid;place-items:center;color:var(--gold);font-size:13px}

/* Retratos de los héroes y emblema de la mesa. */
.character-profile{display:grid;grid-template-columns:192px minmax(0,1fr);gap:32px;align-items:center;padding:25px;margin-bottom:28px;background:radial-gradient(ellipse at 10% 50%,#b69c6030,transparent 55%),linear-gradient(120deg,var(--panel),var(--side));border-color:color-mix(in srgb,var(--gold) 35%,var(--line))}.character-profile-portrait{position:relative;overflow:hidden;aspect-ratio:3/4;border-radius:7px;border:1px solid #ddbb7980;background:var(--side);box-shadow:0 9px 24px #0004}.character-profile-portrait:after{content:'';position:absolute;inset:6px;border:1px solid #e3c98f66;border-radius:3px;pointer-events:none}.character-profile-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%}.character-profile-copy{min-width:0}.character-profile .page-header{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:21px;margin:0}.character-profile h1{font:38px/1.1 Georgia,serif;letter-spacing:-.7px;overflow-wrap:anywhere}.character-profile .page-header p{max-width:46ch;line-height:1.8}.character-profile-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:21px}.character-profile-tags span{border:1px solid var(--line);border-radius:5px;padding:5px 9px;color:var(--muted);font-size:10px;background:var(--bg)}.campaign-banner-identity{display:flex;align-items:center;gap:30px;position:relative;z-index:1;min-width:0}.campaign-wordmark{display:flex;gap:16px;align-items:center;flex-shrink:0}.campaign-wordmark img{width:80px;height:95px;flex-shrink:0;filter:drop-shadow(0 4px 13px #0004)}.campaign-wordmark-name{font:34px/1.02 Georgia,serif;color:#eee6cf;letter-spacing:-.7px;white-space:nowrap}.campaign-wordmark-name span{display:block;font-size:27px;color:#ddbb79;margin-top:4px;letter-spacing:1.6px}.campaign-banner-copy{padding-left:28px;border-left:1px solid #ddbb7940;min-width:0}.campaign-banner-copy h2{font-size:22px}.campaign-banner-copy p:last-child{max-width:260px;line-height:1.7}
@media(max-width:1100px){.campaign-banner-identity{gap:20px}.campaign-banner-copy{padding-left:20px}.campaign-wordmark-name{font-size:29px}.campaign-wordmark-name span{font-size:23px}.campaign-wordmark img{width:63px;height:75px}.campaign-banner-copy h2{font-size:19px}.campaign-banner{flex-wrap:wrap}.campaign-banner>.btn{margin-left:auto}.character-profile{grid-template-columns:165px minmax(0,1fr);gap:25px}.character-profile h1{font-size:33px}}
@media(max-width:650px){.campaign-banner-identity{flex-direction:column;align-items:flex-start;gap:20px}.campaign-banner-copy{padding:0;border:0}.campaign-wordmark img{width:65px;height:77px}.campaign-wordmark-name{font-size:32px}.campaign-wordmark-name span{font-size:25px}.campaign-banner-copy h2{font-size:24px}.campaign-banner>.btn{margin-left:0}.campaign-banner-seal{left:83%;opacity:.12}.character-profile{grid-template-columns:1fr;gap:22px;padding:22px 18px}.character-profile-portrait{width:155px;justify-self:center}.character-profile .page-header{align-items:center;text-align:center;gap:18px}.character-profile .page-header>.button-row{justify-content:center;flex-wrap:wrap}.character-profile h1{font-size:30px}.character-profile-tags{justify-content:center;margin-top:18px}.character-profile .page-header p{font-size:11px}.character-profile .button-row .btn{font-size:11px}}

.world-map-zones{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}.world-map-zones .btn{min-height:40px;min-width:96px;justify-content:center}

/* Preparación del encuentro y fichas agrupadas por bando. */
.combat-layout.is-preparing{grid-template-columns:minmax(0,1fr)}.combat-turn-panel[hidden]{display:none}.combat-layout.is-preparing .combat-round{gap:12px;flex-wrap:wrap}.combat-layout.is-preparing .combat-round>.button-row{gap:6px;flex-wrap:wrap;margin-left:auto}.combat-roster-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.combat-roster-column{min-width:0;padding:16px;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:9px;background:var(--bg)}.combat-roster-column.enemies{border-top-color:var(--red)}.combat-roster-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.combat-roster-head h3{display:flex;align-items:center;gap:8px;font-size:15px}.combat-roster-head .icon{width:18px;height:18px;color:var(--green)}.combat-roster-column.enemies .combat-roster-head .icon{color:var(--red)}.scene-combat-sheets .combat-roster-column .scene-npc-list{grid-template-columns:minmax(0,1fr)}.combat-roster-empty{padding:10px 0;color:var(--muted);font-size:11px;line-height:1.7}.combat-neutral-heading{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:10px 0 0}.combat-roster-column .scene-npc{min-width:0}
@media(max-width:640px){.combat-roster-columns{grid-template-columns:minmax(0,1fr);gap:18px}.combat-roster-column{padding:12px}.combat-roster-head h3{font-size:14px}}

/* Original crests edited as transparent cutouts; SVG viewports select each emblem. */
.heraldry-art{display:block;overflow:hidden;background:transparent;filter:drop-shadow(0 5px 9px #0004)}
.world-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}
.world-map-city .world-sigil{width:65px;height:70px}
.world-city-title .world-sigil{width:125px;height:143px}
.world-city-factions{margin-top:35px}
.city-faction-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.city-faction-card{padding:20px;min-width:0}
.city-faction-card .faction-sigil{width:94px;height:100px;margin-bottom:20px}
.city-faction-card .atlas-kicker{line-height:1.7;letter-spacing:1.2px}
.city-faction-card h3{font:23px Georgia,serif;margin:9px 0}
.city-faction-card p:not(.atlas-kicker){font-size:11px;line-height:1.85;color:var(--muted)}
.city-faction-card .btn{margin-top:17px}
.world-faction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}
.world-faction-card{display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px;padding:24px;min-width:0;align-items:start;scroll-margin-top:85px}
.world-faction-card.selected{border-color:var(--gold)}
.faction-art-panel .faction-sigil{width:100%;height:158px}
.faction-copy .atlas-kicker{font-size:8px;line-height:1.8;letter-spacing:1.3px}
.faction-copy h3{font:27px/1.15 Georgia,serif;margin:10px 0 14px}
.faction-copy>p:not(.atlas-kicker){font-size:12px;line-height:1.85;color:var(--muted)}
.faction-heraldry{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:10px;line-height:1.8;color:var(--dim)}
.faction-contacts{margin-top:16px}
.faction-contacts strong{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--gold);margin-bottom:4px}
.faction-copy .btn{margin-top:18px}
.world-faction-invite{padding:24px 0;border-top:1px solid var(--line);margin-top:20px}
.world-faction-invite>p{font:21px/1.5 Georgia,serif;margin-bottom:15px}
.campaign-cover{display:grid;grid-template-columns:240px minmax(0,1fr);gap:44px;align-items:center;position:relative;overflow:hidden;margin-bottom:30px;padding:24px 38px 24px 24px;border:1px solid #a9a17a66;border-radius:10px;background:radial-gradient(ellipse at 0% 20%,#4b83a830,transparent 70%),linear-gradient(115deg,#152d3b,#14282e 60%,#283937);box-shadow:inset 0 0 0 6px #0000000a}
.campaign-cover::before{content:'';position:absolute;inset:10px;border:1px solid #ddbb7920;border-radius:3px;pointer-events:none}
.campaign-cover-art{position:relative;border:1px solid #ddbb7966;border-radius:5px;overflow:hidden;box-shadow:0 10px 28px #0005;background:#142738}
.campaign-cover-art img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}
.campaign-cover-copy{position:relative;min-width:0;padding:8px 0}
.campaign-cover-copy h2{font:38px/1.12 Georgia,serif;letter-spacing:-.5px;color:#f1e5c9;margin:17px 0}
.campaign-cover-intro{font-size:12px;line-height:1.9;color:#aec4ca}
.campaign-cover-location{display:flex;align-items:center;gap:15px;margin:24px 0}
.campaign-cover-location .world-sigil{width:62px;height:68px}
.campaign-cover-location span{display:block;text-transform:uppercase;letter-spacing:1.5px;font-size:8px;color:#b7b496;margin-bottom:7px}
.campaign-cover-location strong{display:block;font:23px Georgia,serif;color:#eee6cf}
.campaign-cover-location p{color:#aec4ca;font-size:11px;line-height:1.7;margin-top:6px}
.campaign-cover-copy>.btn{color:#e6d5ad;border-color:#ddbb7950}
@media(max-width:1100px){.world-faction-card{grid-template-columns:110px minmax(0,1fr);gap:18px;padding:20px}.faction-art-panel .faction-sigil{height:122px}.faction-copy h3{font-size:24px}.campaign-cover{grid-template-columns:210px minmax(0,1fr);gap:28px;padding:23px}.campaign-cover-copy h2{font-size:31px}.city-faction-grid{grid-template-columns:1fr}.city-faction-card{display:flex;gap:22px;align-items:flex-start}.city-faction-card .faction-sigil{flex-shrink:0;margin:0;width:90px;height:96px}}
@media(max-width:800px){.world-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.world-faction-grid{grid-template-columns:1fr}.world-faction-card{grid-template-columns:145px minmax(0,1fr);padding:24px}.faction-art-panel .faction-sigil{height:158px}.world-map-city .world-sigil{width:52px;height:57px}.world-city-title .world-sigil{width:100px;height:115px}.campaign-cover{grid-template-columns:190px minmax(0,1fr);gap:24px}.campaign-cover-copy h2{font-size:28px}.campaign-cover-intro{font-size:11px}.campaign-cover-location{margin:19px 0}.campaign-cover-location .world-sigil{width:52px;height:58px}.campaign-cover-location strong{font-size:21px}}
@media(max-width:600px){.campaign-cover{grid-template-columns:1fr;gap:24px;padding:24px 22px}.campaign-cover-art{width:min(100%,230px);justify-self:center}.campaign-cover-copy{padding:0}.campaign-cover-copy h2{font-size:31px}.campaign-cover-intro{font-size:12px}.campaign-cover-location{margin:22px 0}.world-faction-card{grid-template-columns:110px minmax(0,1fr);gap:18px;padding:20px}.faction-art-panel .faction-sigil{height:122px}.faction-copy h3{font-size:24px}}
@media(max-width:480px){.world-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.world-tabs>button:last-child{grid-column:1/-1}.world-map-city .world-sigil{width:38px;height:43px}.world-city-title{align-items:flex-start}.world-city-title .world-sigil{width:86px;height:102px;margin-top:12px}.world-city-title h2{font-size:28px}.world-faction-archive>.world-section-heading{align-items:flex-start}.world-faction-archive>.world-section-heading>.badge{font-size:8px}.world-faction-card{grid-template-columns:1fr;gap:20px}.faction-art-panel .faction-sigil{width:130px;height:142px}.faction-copy h3{font-size:28px}.city-faction-card{gap:16px;padding:18px}.city-faction-card .faction-sigil{width:75px;height:83px}.city-faction-card h3{font-size:21px}.city-faction-card .atlas-kicker{font-size:7px}.campaign-cover-copy h2{font-size:29px}}

.creature-ability-list{display:grid;gap:15px;margin-top:20px}.creature-ability{border:1px solid var(--line);border-radius:8px;padding:17px}.creature-ability header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.creature-ability h3{font-size:15px}.creature-ability>p,.creature-reference>p{font-size:12px;line-height:1.8;color:var(--muted)}.creature-ability>.button-row{margin:14px 0;flex-wrap:wrap}.creature-reference{margin-top:9px}.creature-reference summary small{font-size:9px;color:var(--dim);margin-left:6px}.creature-reference>p{padding:10px 14px}.creature-reference>.scene-source{font-size:9px}

.vital-badge{display:inline-flex;max-width:100%;border:1px solid #d5a64d66;border-radius:5px;background:#c18d2520;color:var(--gold);font-size:9px;padding:4px 7px;margin-top:6px;text-align:left;line-height:1.4}.vital-badge.dying,.vital-badge.dead,.vital-badge.defeated{border-color:#cb705f77;color:#ed9b8c;background:#9f3c291a}.vital-badge.stable{color:var(--green);border-color:#7da89677}.vital-panel{border:1px solid #d1a95977;border-left:3px solid var(--gold);padding:15px;border-radius:7px;margin-bottom:16px;background:#8c652211}.vital-panel.dying,.vital-panel.dead{border-color:#b76a5e88;border-left-color:var(--red);background:#a74a3d0a}.vital-panel p{font-size:11px;line-height:1.8;margin:8px 0;color:var(--muted)}.vital-panel h3{font-size:17px}.vital-panel.stable{border-left-color:var(--green)}.participant-info .vital-badge{display:table}.movement-notice{flex-wrap:wrap}.movement-notice>.btn{white-space:normal}

/* Selector del mismo escenario en Mesa y Combate. */
.scene-scenario-controls{display:flex;flex-wrap:wrap;align-items:end;gap:.7rem;padding:1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(0,0,0,.12)}
.scene-scenario-controls label{display:grid;gap:.35rem;flex:1 1 15rem;min-width:0;font-size:.8rem}
.scene-scenario-controls select{width:100%;max-width:100%;min-width:0}
.scene-scenario-controls>.button-row{margin:0;flex:0 1 auto}
.scene-scenario-controls>small{flex-basis:100%;color:var(--muted);line-height:1.5}
@media(max-width:480px){.scene-scenario-controls>.button-row{width:100%}.scene-scenario-controls>.button-row button{flex:1 1 auto}}

/* El retrato ocupa el espacio real de la criatura y conserva el ancla de casilla. */
.scene-token{width:calc(var(--token-size,10%) * var(--token-span,1) * var(--token-visual-scale,1))}
.map-grid-editor{display:grid;gap:12px}
.map-grid-preview-scroll{max-height:min(47vh,480px);overflow:auto;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.map-grid-preview{position:relative;max-width:620px;margin:auto;cursor:crosshair;touch-action:manipulation}
.map-grid-preview img,.map-grid-preview-overlay,.map-grid-preview-overlay svg{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.map-grid-preview-overlay{color:#d5f5f1b8}
.map-grid-example{fill:#ddb669a6;stroke:#312817;stroke-width:2px;vector-effect:non-scaling-stroke}
.map-grid-mark{fill:#ffde94;stroke:#222623;stroke-width:2px;vector-effect:non-scaling-stroke}
.map-grid-status:empty{display:none}
.map-grid-full{grid-column:1/-1}
.scene-token.multi-cell{border-radius:12%;background:color-mix(in srgb,var(--token-color) 22%,var(--panel))}
.scene-token.multi-cell>img{border-radius:50%}

.scene-token img{inset:5%;width:90%;height:90%;object-fit:contain;object-position:center;background:#fff}
/* El anillo sólo representa los PG: no modifica el espacio ni el ancla de la ficha. */
.scene-token-health{position:absolute;inset:-3px;width:calc(100% + 6px);height:calc(100% + 6px);overflow:visible;pointer-events:none;z-index:3;--hp-color:#7bdbab;filter:drop-shadow(0 1px 2px #000b)}
.scene-token-health circle{fill:none;stroke-width:7}
.token-health-track{stroke:#172c32}
.token-health-fill{stroke:var(--hp-color);transform:rotate(-90deg);transform-origin:50% 50%;stroke-linecap:butt}
.scene-token-health.hp-wounded{--hp-color:#f2cc66}
.scene-token-health.hp-low,.scene-token-health.hp-empty{--hp-color:#ff8174}
.scene-token-health.hp-empty .token-health-track{stroke:#8b4943}
.scene-token-health.hp-unknown{--hp-color:#bed0da}
.scene-token-hp{position:absolute;top:0;right:0;transform:translate(65%,-65%);min-width:23px;padding:2px 5px;border-radius:9px;background:#183a31;border:1px solid #7bdbab;color:#f1fff5;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.05;box-shadow:0 2px 5px #000c;pointer-events:none;z-index:4}
.scene-token-hp i{display:block;font-size:7px;font-style:normal;letter-spacing:.04em}
.scene-token-hp.hp-wounded{background:#58451d;border-color:#f2cc66}
.scene-token-hp.low-hp{background:#8b302e;color:#fff3dc;border-color:#ffaaa0}
.scene-token-hp.hp-unknown{background:#354750;color:#e8f2f6;border-color:#bed0da}
.token-art-preview{display:block;width:130px;height:130px;object-fit:contain;margin:0 auto 16px;border-radius:50%;background:#fff}.token-art-editor input[type=file]{max-width:100%}

.summon-choice-card{display:flex;gap:14px;align-items:center;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.summon-choice-card img{width:78px;height:78px;object-fit:contain;border-radius:50%;background:white;flex:none}.summon-choice-card p{margin:5px 0;font-size:.9rem}.summon-choice-card small{display:block;line-height:1.5}.summon-turn-count{display:flex;align-items:baseline;gap:10px}.summon-turn-count strong{font-size:2rem;color:var(--green)}.summon-source{margin:16px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.summon-source pre{white-space:pre-wrap;font:inherit;font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}

/* Plano continuo y cámara local. El grupo sólo recibe el recorte de su zona. */
.level-map-art{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:#15232b}
.level-map-art>img{position:absolute;display:block;max-width:none;object-fit:fill;pointer-events:none;user-select:none}
.map-camera-toolbar{gap:7px;margin:0;padding:12px 14px;background:var(--panel2);border-block:1px solid var(--line)}
.map-camera-toolbar output{min-width:48px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.map-camera-toolbar small{flex:1 1 180px;color:var(--muted);line-height:1.45;font-size:.78rem}
.map-camera-viewport{position:relative;width:100%;height:min(66dvh,650px);min-height:320px;overflow:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable;scrollbar-width:auto;background:#101a20;isolation:isolate}
.map-camera-canvas{position:relative;min-width:0;margin-inline:auto}
.map-camera-canvas .scene-map{width:100%;min-height:0;margin:0;border-radius:0}
.map-exploring [data-scene-map],.map-exploring .scene-token{touch-action:pan-x pan-y;cursor:grab}
.map-exploring:active [data-scene-map]{cursor:grabbing}
.map-moving [data-scene-map]{touch-action:none}
.level-controls>.badge{flex-basis:100%;width:max-content;background:#cbaa5c16;color:var(--gold);font-size:.75rem}
.level-controls>.field{flex:1 1 260px;min-width:0}
.level-controls select{max-width:100%}
@media(max-width:600px){.map-camera-viewport{height:55dvh;min-height:300px}.map-camera-toolbar{padding:10px;gap:5px}.map-camera-toolbar small{flex-basis:100%}.level-controls>.button-row{width:100%;gap:7px}.level-controls>.button-row .btn{white-space:normal;flex:1 1 44%}}
.scene-columns:has(.level-map-art){grid-template-columns:minmax(0,1fr)}
.scene-columns:has(.level-map-art)>.scene-creatures .scene-npc-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
