:root{color-scheme:dark;--bg:#111916;--panel:#1b2520;--gold:#d5b77d;--ink:#e8e4d8;--line:#374239}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 system-ui}header{display:flex;align-items:center;gap:20px;padding:24px 4%;border-bottom:1px solid var(--line);background:#16201a}.sigil{color:var(--gold);font-size:48px}h1,h2,h3{font-family:Georgia,serif;line-height:1.2}h1{margin:4px 0;font-size:32px}small,.muted{color:#a7b4a9;font-size:12px}header #connection{margin-left:auto}main{padding:26px 3%}#login{max-width:580px;margin:30px auto;background:var(--panel);padding:32px;border:1px solid var(--line);border-radius:10px}label{display:block;font-size:13px;margin:8px 0}input,select,button,a{font:inherit}input:not([type=checkbox]),select{display:block;width:100%;padding:9px;background:#101812;color:var(--ink);border:1px solid #485347;border-radius:4px}button,nav a{border:1px solid #695d40;border-radius:4px;background:#29382b;color:var(--ink);padding:9px 12px;cursor:pointer}button:hover,nav a:hover{background:#3b4b35}button.active,#create{background:#b79b62;color:#172016}button:disabled{opacity:.5}a{color:var(--gold)}nav{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}nav a{text-decoration:none}.layout{display:grid;grid-template-columns:220px minmax(360px,1fr) 270px;gap:18px}aside,article{background:var(--panel);padding:16px;border:1px solid var(--line);border-radius:6px;min-width:0}h3{color:var(--gold);font-size:19px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar h2{flex:1}.toolbar label{flex:1;min-width:110px}.board-wrap{overflow:auto}#board{display:grid;grid-template-columns:repeat(24,minmax(26px,1fr));min-width:650px;border:1px solid #63705a}#board button{padding:0;border:1px solid #465345;border-radius:0;aspect-ratio:1;color:#eee;font-size:13px;background:#344a32;position:relative}#board button[data-terrain=forest]{background:#183a26}#board button[data-terrain=water]{background:#285c70}#board button[data-terrain=mountain]{background:#655f54}#board button[data-terrain=wall]{background:#272827}#board button[data-terrain=rough]{background:#645336}#board button[data-terrain=road]{background:#ac9162}#board button[data-terrain=ruin]{background:#685e69}#board button.secret{opacity:.4}#board button.token{box-shadow:inset 0 0 0 2px #e3c275;color:#ffe4a3}.dice{display:grid;grid-template-columns:1fr 1fr;gap:8px}#log{height:340px;overflow:auto;font-size:13px}#log p{border-bottom:1px solid var(--line);padding:8px 0;overflow-wrap:anywhere}#chat{margin-top:12px}.character{border-bottom:1px solid var(--line);padding:12px 0}.character button{font-size:12px;margin:5px 4px 0 0}#error{color:#ffb6a3;position:sticky;bottom:0;background:var(--bg)}[hidden]{display:none!important}details{padding:12px;background:var(--panel);overflow-wrap:anywhere}@media(max-width:1100px){.layout{grid-template-columns:190px 1fr}.layout>aside:last-child{grid-column:1/-1}}@media(max-width:650px){.layout{display:block}.layout>*{margin:12px 0}header{padding:12px}h1{font-size:24px}header #connection{font-size:11px}main{padding:12px}}
#online-combat{margin-top:24px;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.combat-roster,.editor-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.combat-grid{display:grid;grid-template-columns:repeat(13,48px);width:840px;gap:1px;padding:18px 0}.combat-grid button{position:relative;height:62px;padding:0;border:1px solid #516047;background:#2d4130;border-radius:8px;overflow:visible}.combat-grid button.team-A{border-color:#83b3c7}.combat-grid button.team-B{border-color:#d49785}.combat-grid button.active-fighter{box-shadow:0 0 0 2px #f0ce7c,0 0 18px #b9943b}.combat-grid button span{font-size:9px;position:absolute;bottom:0;left:0;right:0;background:#121912b0}.fighter-sprite{width:66px;height:66px;object-fit:contain;image-rendering:pixelated;position:absolute;left:-9px;top:-12px;pointer-events:none;transform-origin:50% 85%}.fighter-sprite.prone{transform:rotate(70deg) scale(.8)}.fighter-sprite.broken{filter:grayscale(1);opacity:.55}.status-fire{position:absolute;right:0;color:#ffac50}.character-thumbnail{width:58px;height:58px;object-fit:contain;float:left;image-rendering:pixelated}.character{min-height:74px}.combat-log{max-height:230px;overflow:auto;font-size:13px}.combat-log p{margin:6px 0;border-bottom:1px solid var(--line)}dialog{color:var(--ink);background:var(--panel);border:1px solid var(--gold);border-radius:8px;max-width:min(850px,95vw);max-height:90vh;padding:24px}dialog::backdrop{background:#08100bdd}dialog textarea{display:block;width:100%;min-height:70px;background:#101812;color:var(--ink);border:1px solid #485347}dialog input[type=color]{height:40px}dialog fieldset{margin:14px 0;border:1px solid var(--line)}.appearance-preview{width:210px;height:210px;object-fit:contain;image-rendering:pixelated;display:block;margin:auto}.editor-error{color:#ffb6a3}.anim-move{animation:step .75s ease-in-out}.anim-strike{animation:strike .55s ease-in-out}.anim-cast{animation:cast .9s ease-in-out}.anim-hit{animation:hit .6s ease-in-out}@keyframes step{0%{transform:translate(var(--move-x,0px),var(--move-y,0px))}70%{transform:translateY(-3px)}100%{transform:translate(0)}}@keyframes strike{35%{transform:rotate(-12deg) translateX(-5px)}65%{transform:rotate(9deg) translateX(10px)}100%{transform:none}}@keyframes cast{40%{filter:drop-shadow(0 0 12px #97d4ee);transform:translateY(-4px)}80%{filter:drop-shadow(0 0 18px #b5acf3)}}@keyframes hit{30%{filter:brightness(2) sepia(1);transform:translateX(5px)}60%{transform:translateX(-3px)}}@media(prefers-reduced-motion:reduce){.anim-move,.anim-strike,.anim-cast,.anim-hit{animation:none}}
#journey-panel{margin-top:24px;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.journey-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:18px 0}.journey-person,.stronghold,.journey-controls{padding:16px;border:1px solid var(--line);border-radius:6px;background:#162019}.journey-pending{margin:12px 0;border-left:3px solid var(--gold)}.journey-person button,.stronghold button{margin:4px 0;font-size:13px}.journey-person h3,.stronghold h3{margin-top:0}#journey-panel summary{cursor:pointer;color:var(--gold)}#board button[data-terrain=darkforest]{background:#102619}#board button[data-terrain=hills]{background:#696747}#board button[data-terrain=highmountain]{background:#9b9c98}#board button[data-terrain=marsh]{background:#354e4a}@media(max-width:650px){#journey-panel{padding:12px}.journey-roster{grid-template-columns:1fr}}

#journey-panel{scroll-margin-top:20px}

/* Shared workspaces keep the table's forest-green and warm-gold palette. */
header{padding:15px 3%;gap:16px}.sigil{font-size:36px}header h1{font-size:28px}main{padding-top:14px}.campaign-bar h2{margin:10px 0}.campaign-bar details{padding:5px 12px}.workspace-nav{gap:6px;margin:12px 0 18px;border-bottom:1px solid var(--line);padding-bottom:12px}.workspace-nav button{min-width:100px}.layout{display:block}.layout>aside:last-child{grid-column:auto}.layout>*{margin:0}#online-combat,#journey-panel{margin-top:0}#characters{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}.character{padding:16px;background:#162019;border:1px solid var(--line);border-radius:6px}.character details{padding:4px 0;background:transparent}.character summary{font-size:12px;color:var(--gold);cursor:pointer}#members{display:flex;gap:20px;flex-wrap:wrap;margin:10px 0 20px}.journal-workspace{display:grid;grid-template-columns:minmax(260px,1fr) 300px;gap:28px}#journal-panel #log{height:55vh}.map-top{justify-content:flex-end;border-bottom:1px solid var(--line);padding-bottom:14px}.map-top>div{margin-right:auto}.map-top h2{margin:4px 0 6px}.map-top span{color:#bbc4b8;font-size:13px}.map-tools{margin:12px 0;gap:16px}.map-tools>label{flex:0 1 220px;margin:0}.map-switch,.map-camera{display:flex;gap:5px}.map-camera{margin-left:auto}.map-camera button{padding:7px 10px}.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;align-items:start}.board-wrap{overflow:auto;max-height:65vh;min-height:240px;border:1px solid #6b6149;border-radius:5px;background:#cbbb96;scrollbar-color:#827958 #cbbb96;overscroll-behavior:contain}.board-wrap:has(.battle-map){background:#162019}.map-workspace:has(.battle-map){display:block}#map-inspector{padding:18px;background:#162019;border-color:#465043}#map-inspector h3{margin:7px 0 14px}#map-inspector p{font-size:13px}.location-note{white-space:pre-wrap;overflow-wrap:anywhere}#map-source{margin:10px 0}.map-settings{padding:8px 12px;border-top:1px solid var(--line)}summary{cursor:pointer;color:var(--gold)}#map-route-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;background:#243c34;border:1px solid #5c7964;padding:10px;margin-bottom:12px;font-size:13px}#map-route-text{flex:1;min-width:180px}#board.world-map{display:block;min-width:0;border:0;gap:0;padding:0;line-height:0}#board.world-map svg{display:block;max-width:none;overflow:visible}.map-cell{cursor:pointer;outline:none}.hex-fill{stroke:none}.hex-border{fill:none;stroke:#685f482b;stroke-width:.65;pointer-events:none}.hex-highlight{fill:none;stroke:transparent;stroke-width:2;pointer-events:none}.map-cell:hover .hex-highlight,.map-cell:focus-visible .hex-highlight{stroke:#544329;fill:#eed99022}.map-cell.selected .hex-highlight{stroke:#6d5027;stroke-width:2.5}.map-cell.visited .hex-border{stroke:#69593885}.map-cell.secret .hex-border{stroke:#d8c59799;stroke-dasharray:3 2}.map-cell.planned-route .hex-highlight{stroke:#365e65;stroke-width:3;fill:#628d9460}.map-cell.planned-route::after{content:none}.party-marker{display:none;pointer-events:none}.party-position .party-marker{display:block}.party-marker circle{fill:#223c32;stroke:#f2d398;stroke-width:2}.party-marker path{fill:#f2d398}.hex-coordinate{font:6px system-ui;fill:#4b4233;opacity:0;text-anchor:middle;pointer-events:none}.map-cell:hover .hex-coordinate,.map-cell:focus-visible .hex-coordinate,.map-cell.selected .hex-coordinate{opacity:1}.place-label{font:italic 7px Georgia,serif;text-anchor:middle;fill:#342b22;paint-order:stroke;stroke:#e9dab7;stroke-width:2;pointer-events:none}.map-token{fill:#283d30;stroke:#e9c987;stroke-width:1.5;pointer-events:none}.token-label{font:9px system-ui;text-anchor:middle;fill:#f7e8c8;pointer-events:none}.hide-grid .hex-border{stroke:transparent}.hide-grid .secret .hex-border{stroke:#d8c59799}.map-cell use{pointer-events:none}.journey-person details{background:transparent;padding:6px 0}.journey-person select{max-width:100%}.journey-controls button{font-size:13px}button:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:900px){.map-workspace{grid-template-columns:minmax(0,1fr) 200px}.map-tools{gap:10px}.map-camera{margin-left:0}.journal-workspace{grid-template-columns:1fr}.board-wrap{max-height:55vh}}
@media(max-width:650px){header h1{font-size:22px}header{gap:10px}.sigil{font-size:28px}header small{font-size:9px}.workspace-nav{gap:5px}.workspace-nav button{flex:1 0 30%;min-width:0;font-size:12px;padding:8px 5px}.layout>*{margin:0}#map-panel{padding:12px}.map-workspace{display:block}.map-workspace>aside{margin-top:12px}.map-tools>label{flex:1;min-width:170px}.map-camera{width:100%;justify-content:space-between}.map-top{gap:8px;justify-content:flex-start}.map-top>div{width:100%}.map-top button{font-size:12px;padding:8px}.board-wrap{max-height:50vh;min-height:150px}.map-settings .toolbar{display:block}.campaign-bar h2{font-size:21px;flex:1 0 100%}.campaign-bar{gap:8px}.campaign-bar details{font-size:12px}.character-thumbnail{width:48px;height:48px}.journal-workspace{gap:10px}#online-combat{padding:12px}}

#board.world-map svg{margin:auto}.empty-guide{border:1px solid var(--line);padding:14px;background:#243329}.empty-guide button{margin-left:12px;font-size:13px}
#map-panel{overflow-anchor:none}.board-wrap{overflow-anchor:none}.map-site-icon{pointer-events:none}.map-site-icon>circle{fill:#ecddba;stroke:#675536;stroke-width:1.6}.map-site-secret>circle{stroke-dasharray:3 2}.map-icon-legend{display:flex;gap:12px 20px;flex-wrap:wrap;margin:8px 0;color:#d6c49d;font-size:12px}.map-icon-legend span{display:inline-flex;gap:6px;align-items:center}.map-icon-legend svg{width:24px;height:24px}.map-help{font-size:12px}

.terrain-legend{padding:10px 12px;border-top:1px solid var(--line)}#terrain-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:14px 0}.terrain-legend-row{display:grid;grid-template-columns:28px 1fr;gap:4px 10px;padding:10px;background:#162019;border:1px solid #465043;border-radius:5px}.terrain-swatch{grid-row:1/4;width:26px;height:28px;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);border:1px solid #baa87a}.terrain-legend-row span:not(.terrain-swatch),.terrain-legend-row small{font-size:12px;color:#bbc4b8}

.primary-action{display:inline-block;background:#b79b62;color:#172016;border:1px solid #cfb57d;border-radius:4px;padding:9px 12px;text-decoration:none;cursor:pointer}.primary-action:hover{background:#cfb57d;color:#172016}.creation-guide{max-width:780px;color:#bbc4b8;font-size:14px}#characters-empty{border-radius:6px}

.character-creator{width:96vw;max-width:1500px;height:94vh;max-height:94vh;padding:12px}.character-creator[open]{display:flex;flex-direction:column;gap:10px}.character-creator .toolbar{flex:none}.character-creator h2{font-size:20px;margin:0}.character-creator iframe{flex:1;width:100%;min-height:0;border:1px solid var(--line);border-radius:4px;background:var(--bg)}@media(max-width:650px){.character-creator{width:100%;max-width:100vw;height:96vh;max-height:96vh;padding:8px}.character-creator .toolbar button{font-size:12px}.character-creator h2{font-size:16px}}

#map-panel>#journey-panel{margin-top:18px;padding:18px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}.journey-cycle{padding:16px;margin:18px 0;background:#162019;border:1px solid var(--line);border-radius:6px}.journey-cycle h3{margin-top:0}.cycle-participants{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.cycle-person{padding:7px 10px;border:1px solid #695d40;border-radius:4px;font-size:13px}.cycle-person.ready{border-color:#72957a;color:#b9d7bf}.quarter-results{font-size:13px}.quarter-results p{padding:8px 0;border-bottom:1px solid var(--line)}



#save-status:not(:empty){position:static;flex:1 1 100%;box-sizing:border-box;max-width:100%;padding:8px 12px;border-left:2px solid var(--line);border-radius:3px;background:#19281f;color:#e5d6ac;font-size:13px;overflow-wrap:anywhere}

#board.world-map{user-select:none;-webkit-user-select:none}.board-wrap.can-pan:has(.world-map),.can-pan .world-map .map-cell{cursor:grab}.board-wrap.map-dragging:has(.world-map),.map-dragging .world-map .map-cell{cursor:grabbing}

#map-search{margin-bottom:12px}#map-search label:first-child{max-width:230px}.route-help{padding:12px;background:#243c34;border:1px solid #5c7964}.map-cell.route-available .hex-highlight{fill:#b2dc6655;stroke:#58803b;stroke-width:2.5}.route-line{stroke:#355b67;stroke-width:4;stroke-dasharray:7 4;pointer-events:none}.show-coordinates .hex-coordinate{opacity:.85;font-size:8px;paint-order:stroke;stroke:#e9dab7;stroke-width:2}.found-hex .hex-highlight{animation:hex-flash 2s ease-out}.campaign-management{margin-top:24px;border-top:1px solid var(--line)}.campaign-management button{margin-right:8px}@keyframes hex-flash{0%,50%{fill:#f5db6580;stroke:#563d12;stroke-width:5}100%{fill:transparent}}

#inventory-panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:18px}.item-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.item-card{background:#162019}.item-card h3{margin-top:0}.item-card button{margin:4px}.item-dialog{width:min(700px,95vw);max-height:90vh}.item-dialog textarea{width:100%;min-height:80px;background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:8px}[data-catalog-results]{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

.hero-equipment{margin:1rem 0;padding:1rem;border:1px solid #56634c;border-radius:6px;background:#15251e}.hero-vitals,.equipment-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.65rem}.hero-vitals span{padding:.5rem;background:#1e3027;border-radius:4px}.check-result{padding:1rem;border-left:3px solid #bba36b;background:#20352b;margin:1rem 0}.hero-equipment select,.hero-equipment input{max-width:100%;min-width:0}.journey-overview{padding:.8rem 1rem;margin:.7rem 0 1rem;border:1px solid #546248;border-radius:6px;background:#1a2b22}.journey-progress{display:flex;gap:.65rem;flex-wrap:wrap}.journey-progress span{padding:.3rem .6rem;border:1px solid #526249;border-radius:20px;color:#b4bba6}.journey-progress .current{background:#b89c61;color:#13231b}.journey-overview ul{margin:.6rem 0;padding-left:1.3rem}.journey-overview .editor-error{margin:.4rem 0}

.save-entry{padding:.8rem 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.save-entry strong{overflow-wrap:anywhere}.save-entry small{flex:1;min-width:10rem}.saves-dialog input:not([type=checkbox]){max-width:100%;width:100%}.saves-dialog [data-restore-confirm]:not(:empty){border:1px solid #b89c61;padding:1rem;margin-top:1rem}

#workshop-panel{background:var(--panel);border:1px solid var(--line);padding:1rem;border-radius:6px}.workshop-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:.8rem}.workshop-fields fieldset{min-width:0;border:1px solid var(--line);border-radius:5px}.workshop-fields textarea{width:100%;box-sizing:border-box;background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:.5rem}.workshop-fields pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:#b8c3ae}.workshop-fields .toolbar{gap:.4rem;margin:.5rem 0}.workshop-fields button{font-size:.85rem}.workshop-apply{margin-top:1rem;padding:1rem;background:#24362b}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Personal turn and journal use the same green/gold controls as the table. */
.personal-turn{border:1px solid var(--gold);border-radius:6px;padding:14px 16px;margin:12px 0 18px;background:#203127}.personal-turn h3{margin:0}.personal-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px}.personal-fields label{min-width:0}.personal-turn [data-results] p{margin:8px 0;padding:8px;background:#17241d}.personal-rule{margin-bottom:0;font-size:13px}.travel-details>summary{font-size:16px;color:var(--gold);padding:10px 0}.journey-overview [data-party-status]{margin:8px 0}.rule-badge{display:inline-block;padding:2px 7px;border:1px solid;border-radius:4px;font:600 11px/1.5 system-ui;white-space:normal;vertical-align:middle}.rule-badge.automatic{color:#b9d7bf;border-color:#63826b;background:#223b2b}.rule-badge.manual{color:#eed49e;border-color:#967947;background:#3b3221}.rule-help{font-size:13px;border-left:2px solid var(--line);padding-left:10px}.rule-help p{margin:8px 0}.journal-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.journal-filters label{min-width:0}.journal-filters input,.journal-filters select{width:100%;min-width:0}.journal-filters [data-count],.journal-filters>small{grid-column:1/-1;margin:0}.journal-entry{padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.journal-entry>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.journal-entry p{margin:7px 0!important;border:0!important;padding:0!important}.journal-entry small{color:var(--muted)}.journal-kind{font-size:12px;color:#c9b985}#log{overflow-anchor:none}@media(max-width:600px){.personal-turn{padding:12px}.personal-turn .toolbar{align-items:flex-start}.personal-turn [data-details]{font-size:12px}.personal-fields{grid-template-columns:1fr}.personal-turn button{min-height:44px}.journal-filters{grid-template-columns:1fr}}

.journey-overview.player-overview{padding:0;margin:8px 0 14px}.player-overview [data-party-status]{margin:0}.personal-turn h3{flex:1}.personal-turn [data-plan-status]{margin:8px 0}.personal-turn [data-wait]{margin:10px 0}

.progression-dialog{width:min(740px,94vw);max-height:90vh;overflow:auto}.progression-skills>div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.progression-skills small{display:block;color:var(--muted)}.progression-dialog form{margin:18px 0;padding:12px;border:1px solid var(--line)}.progression-dialog label{display:block;margin:10px 0}.progression-dialog input:not([type=checkbox]),.progression-dialog select{width:100%}@media(max-width:600px){.progression-skills>div{align-items:stretch;flex-direction:column}.progression-dialog button{min-height:44px}}

.progression-dialog{--progression-padding:clamp(16px,3vw,28px);padding:var(--progression-padding)}.progression-dialog>.toolbar{position:sticky;top:calc(-1 * var(--progression-padding));z-index:2;background:var(--panel);margin:calc(-1 * var(--progression-padding)) calc(-1 * var(--progression-padding)) 0;padding:12px var(--progression-padding);border-bottom:1px solid var(--line)}.progression-dialog>.toolbar h2{overflow-wrap:anywhere}.progression-skills>div>span{min-width:0;overflow-wrap:anywhere}.progression-skills>div>button{flex-shrink:0}
