:root{color:#201f1a;background:#dfe5d2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,.primary-button{min-height:44px;border:2px solid #29251d;background:#f7f0d0;color:#201f1a;text-decoration:none;cursor:pointer;box-shadow:3px 3px #29251d}button:disabled{cursor:not-allowed;opacity:.45}.danger-button{background:#d88973;font-weight:900}.primary-button{display:inline-flex;align-items:center;justify-content:center;padding:0 18px;background:#f2b84b;font-weight:800}.login-shell,.setup-shell,.loading{min-height:100vh;display:grid;place-items:center;padding:24px}.hero,.panel{border:3px solid #29251d;background:#fff8df;box-shadow:6px 6px #29251d}.hero{max-width:760px;padding:40px}.hero h1,.setup-shell h1,.topbar h1{margin:0;font-size:clamp(2rem,8vw,4.5rem);line-height:.95;letter-spacing:0}.hero p{font-size:1.15rem}.hero-actions{display:flex;flex-wrap:wrap;gap:16px}.eyebrow{margin:0 0 8px;text-transform:uppercase;font-weight:900;color:#785d28}.error{color:#9b1c1c;font-weight:800}.success{color:#2f6d35;font-weight:900}.muted{color:#6c6758}.wide-panel{width:min(960px,100%);padding:28px}.field{display:grid;gap:8px;margin:20px 0;font-weight:800}.field input,.field select{min-height:44px;border:2px solid #29251d;padding:8px 10px;background:#fffdf1}.field select{border-radius:0}.compact-field{max-width:220px}.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:18px 0}.role-card,.selected-card{display:grid;gap:8px;padding:14px;text-align:left}.selected-card{background:#f2b84b}.chip-row,.stat-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.chip{min-height:40px;padding:0 10px;box-shadow:2px 2px #29251d}.selected-chip{background:#f2b84b}.stat-summary span{border:2px solid #29251d;background:#fffdf1;padding:8px 10px;font-weight:800}.ability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:8px;margin:12px 0}.ability-field{display:grid;gap:5px;border:2px solid #29251d;background:#fffdf1;padding:8px}.ability-field span{font-weight:900}.ability-field small{color:#5f5747;font-weight:900}.ability-field input{width:100%;min-height:38px;border:2px solid #29251d;background:#fbf4cf;font:inherit;font-weight:800;text-align:center}.topbar,.town-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1280px;margin:0 auto 16px}.topbar h1{font-size:clamp(1.8rem,5vw,3.4rem)}.status-strip,.town-footer{display:flex;flex-wrap:wrap;gap:8px}.status-strip span,.status-button,.town-footer span,.online-count{border:2px solid #29251d;background:#fff8df;padding:10px 12px;font-weight:800}.status-button{box-shadow:3px 3px #29251d}.game-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(320px,1.4fr) minmax(280px,.8fr);gap:16px}.location-board-panel{border:3px solid #29251d;background:#dce8cf;box-shadow:6px 6px #29251d;padding:14px;animation:screen-rise .22s ease-out both}.location-board-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.location-board-heading h2{margin:0}.location-board-heading span{border:2px solid #29251d;background:#fff8df;padding:8px 10px;font-weight:900}.location-screen-panel{display:grid;gap:16px;animation:screen-rise .22s ease-out both}.location-screen-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px}.location-screen-heading h2,.location-screen-heading p{margin:0}.location-screen-heading span{border:2px solid #29251d;background:#fff8df;padding:8px 10px;font-weight:900;white-space:nowrap}.location-screen-heading button{min-height:44px;padding:0 12px}.location-screen-body{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.panel{padding:18px}.panel h2,.panel h3{margin-top:0}.wide-game-panel{grid-column:1 / -1}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-compact{display:grid;gap:12px;align-content:start}.profile-compact h2{margin-bottom:0}.profile-compact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.profile-compact-grid span{border:2px solid #29251d;background:#fffdf1;padding:8px 6px;text-align:center;font-weight:900}.profile-button-grid{display:grid;grid-template-columns:1fr;gap:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#201f1aa6;animation:backdrop-fade .16s ease-out both}.modal-panel{width:min(940px,100%);max-height:min(92vh,920px);overflow:auto;border:3px solid #29251d;background:#fff8df;box-shadow:8px 8px #29251d;padding:18px;animation:modal-pop .19s ease-out both}.sheet-modal{width:min(1120px,100%)}.modal-heading,.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-action-group{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.modal-heading{position:sticky;top:-18px;z-index:1;margin:-18px -18px 16px;padding:18px;border-bottom:2px solid #29251d;background:#fff8df}.modal-heading h2{margin:0}.import-box{display:grid;gap:10px;margin:14px 0 18px;border:2px solid #29251d;background:#fffdf1;padding:12px}.import-heading,.import-controls,.import-actions{display:flex;align-items:end;justify-content:space-between;gap:10px;flex-wrap:wrap}.import-heading h3{margin:0}.import-heading span{border:2px solid #29251d;background:#fbf4cf;padding:7px 10px;font-weight:900}.compact-import-field{flex:1 1 220px;max-width:none;margin:0}.saved-character-list{display:grid;gap:8px;margin:12px 0}.saved-character-list h4{margin:0}.saved-character-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.saved-character-card{display:grid;gap:4px;min-height:112px;padding:10px;text-align:left;background:#fffdf1}.saved-character-card span,.saved-character-card small{color:#5f5747}.saved-character-card em{font-style:normal;font-weight:900}.saved-character-card.current-character-card{background:#f2b84b}.import-preview{display:grid;gap:5px;border:2px dashed #7b735f;background:#fbf4cf;padding:10px}.import-preview span,.import-preview small{color:#5f5747}.modal-actions{position:sticky;bottom:-18px;margin:18px -18px -18px;padding:14px 18px;border-top:2px solid #29251d;background:#fff8df}.sheet-hero,.sheet-section{border-bottom:2px solid #29251d;padding:14px 0}.sheet-hero{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,.9fr);gap:14px;align-items:start;padding-top:0}.sheet-hero div:first-child,.sheet-roll-box{display:grid;gap:7px}.sheet-hero strong{font-size:1.15rem}.sheet-roll-box{border:2px solid #29251d;background:#fbf4cf;padding:10px}.sheet-roll-box p{margin:0;font-weight:800}.sheet-roll-history{display:grid;gap:6px;max-height:220px;overflow:auto;border:2px solid #29251d;background:#fffdf1;padding:8px}.sheet-roll-history-row{border-bottom:1px dashed #7b735f;padding-bottom:6px;color:#3e382d;font-size:.92rem;overflow-wrap:anywhere}.sheet-roll-history-row:last-child{border-bottom:0;padding-bottom:0}.sheet-roll-history span{color:#5f5747}.sheet-section h3{margin:0 0 10px}.sheet-ability-grid{display:grid;grid-template-columns:repeat(6,minmax(80px,1fr));gap:8px}.sheet-stat-button{display:grid;place-items:center;gap:3px;min-height:82px;padding:8px}.sheet-stat-button span{font-size:1.45rem;font-weight:900}.sheet-row-grid,.sheet-item-list,.sheet-spell-list{display:grid;gap:8px}.compact-sheet-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.sheet-row,.sheet-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border:2px solid #29251d;background:#fffdf1;padding:9px}.sheet-row div,.sheet-item{display:grid;gap:3px}.sheet-row button{min-width:70px;min-height:38px;padding:0 10px;font-weight:900}.sheet-row span,.sheet-item span,.sheet-item small{color:#5f5747}.sheet-item-list,.sheet-spell-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.status-panel{align-content:center}.location-board,.location-group{display:grid;gap:14px}.location-group h3{margin:0}.location-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.location-tile{width:100%;min-height:156px;display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;padding:12px;text-align:left;background:#fff8df;transform:translate(0);transition:transform .14s ease-out,box-shadow .14s ease-out,background-color .14s ease-out}.location-tile.selected-location{background:#f2b84b}.location-tile:hover,.location-tile:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px #29251d}.location-tile:active{transform:translate(1px,1px);box-shadow:2px 2px #29251d}.character-location-tile{background:#f6e5b3}.reference-location-tile{background:#d7e7ec}.roll-tables-location-tile{background:#e8dfb8}.location-art{width:108px;height:108px;object-fit:contain;object-position:center;align-self:center;justify-self:center;filter:drop-shadow(3px 4px 0 rgba(41,37,29,.24));transition:transform .16s ease-out}.location-tile:hover .location-art,.location-tile:focus-visible .location-art{transform:translateY(-3px) scale(1.03)}.location-tile-copy{min-width:0;display:grid;gap:5px}.location-tile-tag,.location-activity{justify-self:start;border:2px solid #29251d;background:#fffdf1;padding:3px 6px;font-size:.76rem;font-weight:900}.location-tile strong{font-size:1.05rem}.location-tile small{color:#5f5747;line-height:1.2}.character-inventory-modal{width:min(980px,100%)}.character-modal-grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(280px,1.15fr);gap:16px;align-items:start}.character-modal-section{display:grid;gap:10px}.character-modal-section h3{margin:0}.character-modal-section .profile-compact-grid{grid-template-columns:repeat(2,1fr)}.reference-modal,.roll-tables-modal{width:min(1180px,100%)}.reference-search-form,.roll-table-search-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto;gap:10px;align-items:end;margin-bottom:16px}.reference-search-form .field,.roll-table-search-form .field{margin:0}.reference-grid,.roll-table-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);gap:16px;align-items:start}.reference-results,.reference-detail,.roll-table-results,.roll-table-detail{display:grid;gap:10px}.reference-results-heading,.reference-pager,.record-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.reference-results-heading{justify-content:space-between}.reference-results-heading>span,.record-tags span{border:2px solid #29251d;background:#fffdf1;padding:5px 8px;font-weight:900}.reference-pager button{min-width:44px}.reference-result-list,.roll-table-list{max-height:520px;overflow:auto;display:grid;gap:10px;padding-right:4px}.reference-result,.roll-table-row{display:grid;gap:7px;width:100%;min-height:72px;padding:10px;text-align:left;background:#fffdf1}.reference-result.selected-reference,.roll-table-row.selected-reference{background:#f2b84b}.reference-result span,.reference-result small,.roll-table-row small{display:grid;gap:3px}.reference-result small,.reference-detail p,.roll-table-row small,.roll-table-detail p{color:#5f5747}.reference-detail,.roll-table-detail{border:2px solid #29251d;background:#fffdf1;padding:14px;max-height:610px;overflow:auto}.roll-table-row span{justify-self:start;border:2px solid #29251d;background:#fbf4cf;padding:3px 6px;font-size:.78rem;font-weight:900}.roll-table-detail{align-content:start}.roll-table-detail h3{margin:0}.roll-table-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.roll-table-stat-grid span{border:2px solid #29251d;background:#fbf4cf;padding:8px 6px;text-align:center;font-weight:900}.roll-table-result{display:grid;gap:6px;border:2px solid #29251d;background:#d7ead0;padding:10px;animation:result-rise .18s ease-out both}.reference-detail-heading{display:grid;gap:8px}.reference-detail-heading h3{margin:0}.reference-content{display:grid;gap:8px}.reference-content h1,.reference-content h2,.reference-content h3,.reference-content p{margin:0}.reference-detail-table{width:100%;border-collapse:collapse}.reference-detail-table th,.reference-detail-table td{border-top:2px solid #d5ca9b;padding:8px 6px;text-align:left;vertical-align:top}.reference-detail-table th{width:34%}.action-list,.resource-grid,.contribution-list,.ticket-list,.ticket-actions,.history-list,.admin-list,.skill-rank-list,.online-list{display:grid;gap:10px}.action-list button{padding:0 12px}.action-card{display:grid;gap:10px;border:2px solid #29251d;background:#fffdf1;padding:10px}.action-card-heading,.approach-list button{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.action-card-heading div,.approach-list button span{display:grid;gap:4px;min-width:0}.action-card-heading span,.approach-list small,.approach-list em{color:#5f5747;font-size:.9rem;font-style:normal}.approach-list{display:grid;gap:8px}.approach-list button{width:100%;min-height:58px;text-align:left;background:#fbf4cf}.approach-list button b{white-space:nowrap}.approach-list em{color:#9b1c1c}.dice-result{margin-top:16px;border-top:2px dashed #7b735f;padding-top:12px;animation:result-rise .18s ease-out both}.training-panel,.training-lesson-card,.training-result,.training-check-list,.training-formula-list,.training-scenario,.training-walkthrough,.training-outcome{display:grid;gap:10px}.training-header,.training-lesson-card,.training-result{border:2px solid #29251d;background:#fffdf1;padding:10px}.training-result{animation:result-rise .18s ease-out both}.training-header{background:#e6edd1}.training-header span,.training-lessons span{color:#5f5747;font-size:.78rem;font-weight:900;text-transform:uppercase}.training-header p,.training-lesson-card p,.training-formula-list p,.training-outcome p{margin:0}.training-lessons{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px}.training-lessons button{display:grid;gap:4px;min-height:64px;padding:8px 10px;text-align:left;background:#fbf4cf}.training-lessons button.selected-training{background:#f2b84b}.heliana-reference-panel{display:grid;gap:10px;border:2px solid #29251d;background:#fffdf1;padding:10px}.heliana-reference-heading{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:10px}.heliana-reference-heading span,.heliana-table-title span{color:#5f5747;font-size:.78rem;font-weight:900;text-transform:uppercase}.heliana-reference-heading h3,.heliana-reference-heading p{margin:0}.heliana-table-picker{display:flex;flex-wrap:wrap;gap:8px}.heliana-table-picker button{min-height:38px;padding:7px 9px;text-transform:capitalize;background:#fbf4cf}.heliana-table-picker button.selected-training{background:#f2b84b}.heliana-table-card,.heliana-row-list{display:grid;gap:8px}.heliana-table-title{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.heliana-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;border:2px solid #7b735f;background:#fbf4cf;padding:8px}.heliana-component-list{display:flex;flex-wrap:wrap;gap:6px}.heliana-component-list span{display:inline-flex;align-items:baseline;gap:4px;border:2px solid #29251d;background:#fffdf1;padding:4px 6px;text-transform:capitalize}.heliana-component-list small{color:#8b5e16;font-size:.72rem;font-weight:900}.training-actions,.walkthrough-actions,.walkthrough-actions div{display:flex;flex-wrap:wrap;gap:10px}.training-actions{align-items:center}.training-result{max-height:430px;overflow:auto}.training-result-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.training-check,.harvest-component{border:2px solid #7b735f;background:#fbf4cf;padding:8px}.training-check{display:grid;gap:4px}.training-check span{display:grid;gap:2px}.training-check small,.training-check em{color:#5f5747;font-style:normal}.training-formula-list{border-left:4px solid #7b735f;padding-left:10px}.training-scenario,.training-walkthrough{border:2px dashed #7b735f;background:#f7f0d0;padding:10px}.training-scenario h4,.training-walkthrough h4{margin:0}.harvest-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}.harvest-component{display:grid;gap:4px}.harvest-component.finished{background:#d8f0c4}.harvest-component.started{background:#f4e89b}.harvest-component.missed{background:#ecd2c2}.harvest-component.planned{background:#fffdf1}.harvest-component.planned small{color:#5f5747}.training-modal{width:min(860px,100%)}.walkthrough-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;margin-bottom:14px}.walkthrough-progress button{display:grid;gap:4px;min-height:58px;padding:8px;background:#fbf4cf;font-size:.84rem}.walkthrough-progress button.active-step{background:#f2b84b}.walkthrough-progress span{justify-self:center;width:24px;height:24px;display:grid;place-items:center;border:2px solid #29251d;background:#fffdf1;font-weight:900}.walkthrough-body{min-height:360px}.walkthrough-step{display:grid;gap:12px}.walkthrough-step h3{margin:0}.walkthrough-actions{position:sticky;bottom:-18px;align-items:center;justify-content:space-between;margin:18px -18px -18px;padding:14px 18px;border-top:2px solid #29251d;background:#fff8df}.tier{display:inline-block;border:2px solid #29251d;padding:6px 10px;font-weight:900;text-transform:uppercase}.tier.critical{background:#f2b84b}.tier.success{background:#9ed29a}.tier.partial{background:#d8d28a}.tier.failure{background:#d88973}.resource-pill,.contribution-row,.ticket-row,.history-row,.admin-row,.skill-rank-row,.chat-message,.admin-stat-grid div{display:flex;align-items:center;justify-content:space-between;gap:10px;border:2px solid #29251d;background:#fffdf1;padding:10px}.history-row,.admin-row,.skill-rank-row,.chat-message,.admin-stat-grid div{align-items:flex-start}.history-row,.chat-message{display:grid}.history-row div,.admin-row div,.skill-rank-row div:first-child,.chat-message div{display:grid;gap:4px}.history-row p,.admin-row span,.skill-rank-row span,.chat-message span,.admin-stat-grid span{margin:0;color:#5f5747;font-size:.92rem}.mini-tier{font-size:.76rem;padding:3px 6px;width:max-content}.admin-stat-grid,.admin-grid{display:grid;gap:12px}.admin-stat-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));margin:12px 0 16px}.admin-stat-grid div{display:grid}.admin-stat-grid strong{font-size:1.8rem}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end}.row-actions button{min-height:38px;padding:0 10px}.segmented-control{display:grid;grid-template-columns:repeat(3,minmax(48px,1fr));gap:4px;min-width:178px}.segmented-control button{min-height:36px;padding:0 6px;box-shadow:2px 2px #29251d;font-size:.86rem}.selected-segment{background:#f2b84b;font-weight:900}.online-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:12px 0}.online-pill{display:flex;align-items:center;gap:8px;border:2px solid #29251d;background:#fffdf1;padding:8px 10px}.online-pill span{width:10px;height:10px;background:#2f8d45;border:2px solid #29251d}.online-pill small{color:#5f5747;margin-left:auto}.chat-window{display:grid;gap:10px;max-height:320px;overflow:auto;border:2px solid #29251d;background:#fbf4cf;padding:10px}.chat-message p{margin:0;overflow-wrap:anywhere}.chat-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}.chat-form input{min-height:44px;border:2px solid #29251d;background:#fffdf1;padding:8px 10px}.progress-track{height:18px;border:2px solid #29251d;background:#fffdf1}.progress-track span{display:block;height:100%;background:#5d8e58}.contribution-row button{min-width:54px}.dm-harvest-shell{min-height:100vh;padding:22px}.dm-harvest-topbar h1{font-size:clamp(2rem,5vw,3.7rem)}.dm-harvest-topbar p:last-child{margin-bottom:0}.dm-stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:16px 0}.dm-step{display:flex;align-items:center;gap:8px;min-height:48px;border:2px solid #29251d;background:#fffdf1;padding:8px;color:#5f5747}.dm-step span{display:grid;place-items:center;width:28px;height:28px;border:2px solid #29251d;background:#fbf4cf;color:#201f1a;font-weight:900}.dm-step.done{background:#d7ead0;color:#201f1a}.dm-step.active{background:#f2b84b;color:#201f1a}.topbar-actions,.inline-form,.dm-component-row div{display:flex;flex-wrap:wrap;gap:10px}.inline-form{align-items:end;margin:12px 0}.inline-form input{min-height:44px;min-width:160px;border:2px solid #29251d;background:#fffdf1;padding:8px 10px;flex:1}.inline-form input[inputmode=numeric]{flex:0 0 92px}.dm-harvest-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:16px;align-items:start}.dm-harvest-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px;align-items:start}.dm-harvest-panel{display:grid;gap:10px;padding:16px}.dm-harvest-panel h2,.dm-harvest-panel p{margin:0}.dm-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.quantity-help-button{position:relative;align-self:flex-start;min-height:40px;padding:6px 12px;background:#e6edd1;font-weight:900;white-space:nowrap}.quantity-tooltip{position:absolute;top:calc(100% + 8px);right:0;z-index:30;display:none;width:min(360px,calc(100vw - 48px));border:2px solid #29251d;background:#fffdf1;box-shadow:4px 4px #29251d;padding:10px;color:#201f1a;font-size:.92rem;font-weight:600;line-height:1.35;text-align:left;text-transform:none;white-space:normal}.quantity-info-modal{width:min(560px,100%)}.quantity-info-copy{margin:0;line-height:1.45}.creature-panel{order:1}.party-panel{order:2}.components-panel{order:3}.plan-panel{order:4}.rolls-panel{order:5}.result-panel{order:6}.wide-dm-panel{grid-column:1 / -1}.dm-field-grid{display:grid;grid-template-columns:minmax(160px,1fr) minmax(130px,.7fr) minmax(90px,.4fr);gap:10px}.dm-field-grid .field{margin:0}.lookup-toggle{width:100%;background:#e6edd1;font-weight:900}.monster-lookup-panel{display:grid;gap:10px;border:2px dashed #7b735f;background:#fbf4cf;padding:10px;animation:result-rise .16s ease-out both}.monster-lookup-panel .inline-form{margin:0}.dm-list,.monster-result-list,.selected-component-list,.dm-outcome-list,.dm-explainer{display:grid;gap:10px}.dm-list-row,.selected-component,.dm-outcome-row,.dm-role-summary div,.dm-result-grid div,.dm-summary-metrics div{border:1px solid #7b735f;background:#fffdf1;padding:10px}.dm-list-row,.selected-component{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.dm-list-row div,.dm-role-summary div,.dm-result-grid div{display:grid;gap:4px}.dm-list-row span,.dm-list-row small,.dm-role-summary span,.dm-role-summary small,.dm-result-grid span,.selected-component small,.dm-outcome-row span,.dm-outcome-row small{color:#5f5747}.monster-result-list{max-height:220px;overflow:auto}.monster-result-list button{display:grid;gap:4px;width:100%;min-height:58px;text-align:left;background:#fbf4cf}.dm-component-source{display:grid;gap:8px;max-height:360px;overflow:auto;border:2px solid #29251d;background:#fbf4cf;padding:10px}.dm-component-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;align-items:start}.dm-component-row button{display:grid;gap:2px;min-height:48px;padding:4px 8px;box-shadow:2px 2px #29251d;text-transform:capitalize;text-align:left}.dm-component-row button small{color:#6c6758;font-size:.76rem;font-weight:800}.selected-component{grid-template-columns:34px minmax(0,1fr) minmax(120px,auto) auto}.selected-component span{display:grid;place-items:center;width:26px;height:26px;border:2px solid #29251d;background:#f2b84b;font-weight:900}.dm-role-summary,.dm-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dm-result-grid strong{font-size:1.7rem}.dm-explainer{border-left:6px solid #7b735f;padding-left:12px}.dm-outcome-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(160px,1fr) minmax(120px,auto);gap:10px;align-items:center}.dm-outcome-row.finished{background:#d7ead0}.dm-outcome-row.started{background:#f7e79c}.dm-outcome-row.missed{background:#ecd0c2}.dm-harvest-summary-panel{position:sticky;top:16px;display:grid;gap:12px;padding:16px}.dm-harvest-summary-panel h2,.dm-harvest-summary-panel p{margin:0}.dm-summary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.dm-summary-heading h2{margin-top:4px}.summary-toggle{min-height:38px;padding:6px 12px;background:#e6edd1;font-weight:900;white-space:nowrap}.dm-summary-compact{display:none;color:#5f5747;font-weight:900}.dm-summary-body{display:grid;gap:12px}.dm-harvest-summary-panel.collapsed{gap:8px}.dm-harvest-summary-panel.collapsed .dm-summary-compact{display:block}.dm-harvest-summary-panel.collapsed .dm-summary-body{display:none}.dm-summary-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dm-summary-metrics div{display:grid;gap:3px}.dm-summary-metrics span,.dm-table-script span{color:#5f5747;font-size:.78rem;font-weight:900;text-transform:uppercase}.dm-summary-metrics strong{font-size:1.15rem}.dm-summary-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dm-summary-status span{border:1px solid #7b735f;padding:6px;text-align:center;font-size:.82rem;font-weight:900}.dm-summary-status .finished{background:#d7ead0}.dm-summary-status .started{background:#f7e79c}.dm-summary-status .missed{background:#ecd0c2}.dm-table-script{display:grid;gap:6px;border-left:6px solid #7b735f;background:#fffdf1;padding:10px 10px 10px 12px}@media(hover:hover)and (pointer:fine){.quantity-help-button:hover .quantity-tooltip,.quantity-help-button:focus-visible .quantity-tooltip{display:block}}@media(max-width:860px){.topbar,.town-footer{align-items:stretch;flex-direction:column}.game-grid{grid-template-columns:1fr}.location-board-panel{min-height:auto}.location-board-heading{align-items:stretch;flex-direction:column}.location-screen-heading,.location-screen-body,.character-modal-grid,.reference-grid,.reference-search-form,.roll-table-grid,.roll-table-search-form,.dm-harvest-workspace,.dm-harvest-grid,.dm-field-grid,.dm-role-summary,.dm-result-grid,.dm-outcome-row{grid-template-columns:1fr}.dm-stepper{display:flex;overflow-x:auto;padding-bottom:4px}.dm-step{min-width:128px}.selected-component{grid-template-columns:34px minmax(0,1fr)}.dm-section-heading{align-items:stretch;flex-direction:column}.quantity-help-button{align-self:stretch}.quantity-tooltip{display:none!important}.dm-harvest-summary-panel{position:sticky;bottom:0;top:auto;z-index:10;margin:8px -8px 0;box-shadow:0 -4px #29251d}.dm-harvest-summary-panel.collapsed{padding:10px 12px}.dm-harvest-summary-panel.collapsed h2{font-size:1.25rem}.dm-summary-heading{align-items:center}.dm-summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.location-screen-heading span{white-space:normal}.reference-result-list,.reference-detail,.roll-table-list,.roll-table-detail{max-height:none}.skill-rank-row{display:grid}.segmented-control{width:100%;min-width:0}.chat-form{grid-template-columns:1fr}.approach-list button{display:grid}.approach-list button b{white-space:normal}.profile-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sheet-hero,.sheet-ability-grid{grid-template-columns:1fr}.modal-backdrop{align-items:stretch;padding:8px}.modal-panel{max-height:calc(100vh - 16px)}.modal-heading,.modal-actions{align-items:stretch;flex-direction:column}.modal-action-group{display:grid}.walkthrough-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.walkthrough-actions,.walkthrough-actions div,.training-actions{display:grid}.walkthrough-actions button,.training-actions button{width:100%}}@keyframes screen-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes result-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}.location-tile:hover,.location-tile:focus-visible,.location-tile:active,.location-tile:hover .location-art,.location-tile:focus-visible .location-art{transform:none}}:root{--color-bg: #dfe7d7;--color-bg-deep: #cfdcc6;--color-surface: #fff9e9;--color-surface-raised: #fffdf5;--color-border: #d8caa7;--color-border-strong: #a79568;--color-text: #211f1a;--color-muted: #6d6658;--color-accent: #d89424;--color-accent-strong: #a86614;--color-success: #347a49;--color-warning: #b17717;--color-danger: #a33a2d;--color-info: #486f86;--shadow-sm: 0 1px 2px rgb(33 31 26 / 10%);--shadow-md: 0 10px 28px rgb(33 31 26 / 12%);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px}body{background:linear-gradient(180deg,#fff9e973,#cfdcc6b8),var(--color-bg);color:var(--color-text)}button,.primary-button{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-sm);font-weight:800;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}button:hover,button:focus-visible,.primary-button:hover,.primary-button:focus-visible{border-color:var(--color-accent-strong);box-shadow:var(--shadow-md);outline:3px solid rgb(216 148 36 / 22%);outline-offset:2px}button:active,.primary-button:active{transform:translateY(1px)}.primary-button,.selected-card,.selected-chip,.location-tile.selected-location{background:var(--color-accent);color:#1c160c}.danger-button{background:#f2d2ca;border-color:var(--color-danger);color:#681d16}.hero,.panel,.location-board-panel,.modal-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.panel,.location-board-panel{padding:16px}.eyebrow,.section-kicker{color:#806321;letter-spacing:0}.game-shell{min-height:100vh;padding:16px}.game-command-shell{width:min(1480px,100%);margin:0 auto;display:grid;grid-template-columns:232px minmax(0,1fr) 330px;gap:16px;align-items:start}.game-command-shell-wide{grid-template-columns:232px minmax(0,1fr)}.game-main-surface{min-width:0;display:grid;gap:16px}.game-nav{display:grid;gap:8px}.game-nav-mobile{display:none}.game-nav-desktop{position:sticky;top:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff9e9e0;box-shadow:var(--shadow-sm);padding:14px}.game-nav-brand{padding:8px 8px 14px;border-bottom:1px solid var(--color-border);margin-bottom:6px}.game-nav-brand strong{display:block;font-size:1.05rem;line-height:1.2}.game-nav button{min-height:48px;justify-content:flex-start;padding:0 12px;box-shadow:none}.game-nav button.active-nav-item{background:var(--color-accent);border-color:var(--color-accent-strong)}.desktop-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 2px}.desktop-topbar h1{margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:1}.desktop-topbar-actions,.button-row,.ticket-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.button-row.stacked{display:grid}.mobile-status-bar{display:none}.today-dashboard{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:16px}.today-summary-card,.today-primary-card,.town-pulse-panel,.today-inventory-panel{min-width:0}.today-summary-card{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:12px}.today-hero-heading,.today-card-heading{min-width:0}.today-card-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.today-card-heading>span,.today-ready-badge{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:7px 10px;color:var(--color-muted);font-weight:900;white-space:nowrap}.today-ready-badge{display:grid;justify-items:end;align-self:start;border-radius:var(--radius-md)}.today-ready-badge span{color:var(--color-muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.today-command-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.today-command-strip span{display:grid;min-width:0;gap:2px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);padding:10px;color:var(--color-muted);font-weight:800}.today-command-strip small{overflow:hidden;color:var(--color-muted);font-size:.74rem;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.today-command-strip strong{overflow:hidden;color:var(--color-text);font-size:1.34rem;line-height:1;text-overflow:ellipsis;white-space:nowrap}.today-summary-card h2,.today-primary-card h2,.panel-heading h2,.placeholder-panel h2{margin:0}.today-primary-card{display:grid;gap:14px}.today-primary-card p{max-width:62ch;margin:0;color:var(--color-muted);font-size:1.05rem}.today-primary-card .today-action-reason{border-left:4px solid var(--color-accent);border-radius:var(--radius-sm);background:#fff5ccad;padding:10px 12px;color:var(--color-text);font-weight:800}.action-fact-grid,.mini-stat-grid,.inventory-highlight-grid,.character-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.action-fact-grid span,.mini-stat-card,.inventory-highlight,.character-compact-grid div{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:10px}.mini-stat-card,.inventory-highlight,.character-compact-grid div{display:grid;gap:3px}.mini-stat-card span,.inventory-highlight span,.character-compact-grid span{color:var(--color-muted);font-size:.83rem;font-weight:800;text-transform:uppercase}.mini-stat-card strong,.inventory-highlight strong,.character-compact-grid strong{font-size:1.25rem}.quick-action-panel,.compact-ledger{display:grid;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:16px}.quick-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.quick-action-grid button{min-width:0;padding:0 8px}.today-town-need-panel,.today-faction-panel,.today-unlock-panel{display:grid;gap:12px;align-content:start}.today-town-need-panel p,.today-town-need-panel small,.today-faction-panel p,.today-faction-panel small,.today-unlock-panel p{margin:0;color:var(--color-muted)}.today-town-need-panel strong,.today-faction-panel strong,.today-unlock-panel strong{color:var(--color-text)}.today-unlock-panel .next-project-preview{margin:0}.compact-panel-heading{align-items:flex-start}.compact-panel-heading>span{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:6px 10px;color:var(--color-muted);font-weight:900}.town-command-stack,.ledger-command-grid,.town-command-grid,.character-overview-panel,.placeholder-panel{display:grid;gap:16px}.town-command-grid,.ledger-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-command-grid>.panel:first-child,.ledger-command-grid>aside:last-child{grid-column:1 / -1}.placeholder-panel{min-height:320px;align-content:start}.placeholder-list{display:flex;flex-wrap:wrap;gap:8px}.placeholder-list span{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:8px 10px;color:var(--color-muted);font-weight:800}.economy-panel{display:grid;gap:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(180deg,#fff9e9f5,#f5faeceb);box-shadow:var(--shadow-md);padding:16px}.economy-heading{align-items:flex-start}.economy-heading p{margin:6px 0 0;color:var(--color-muted)}.economy-heading>span{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:8px 12px;font-weight:900}.economy-summary-strip,.profession-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.economy-summary-strip div,.profession-strip span{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);padding:10px}.foundation-board-grid,.faction-grid,.campaign-reward-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.foundation-panel,.faction-card{min-width:0}.foundation-list,.price-list{display:grid;gap:10px}.foundation-card,.price-row{display:grid;gap:6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:12px}.foundation-card div:first-child,.price-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start}.foundation-card p,.foundation-card small,.foundation-card em,.price-row small{margin:0;color:var(--color-muted);font-style:normal}.foundation-card button{min-height:38px}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tag-row span{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:5px 9px;font-weight:800;color:var(--color-muted)}.faction-contract-panel{display:grid;gap:14px}.faction-cap-card{display:grid;gap:4px;border-color:#53694b5c;background:#eef7e1b8}.faction-cap-card p{margin:0;color:var(--color-muted)}.faction-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,360px);gap:14px;align-items:start}.faction-reputation-meter,.contract-detail-panel,.faction-history-panel,.admin-log-section{display:grid;gap:12px}.faction-reputation-meter>div:first-child{display:flex;justify-content:space-between;gap:10px;color:var(--color-muted)}.faction-reputation-meter strong{color:var(--color-text)}.contract-card{border-left:4px solid var(--color-border)}.contract-state-available{border-left-color:var(--color-success)}.contract-state-missing_resources{border-left-color:var(--color-warning)}.contract-state-locked_by_town,.contract-state-weekly_cap_reached,.contract-state-completed_this_week{opacity:.82}.contract-state-pill{width:max-content;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:6px 10px;color:var(--color-muted);font-size:.84rem;font-weight:900}.contract-detail-grid,.contract-resource-list{display:grid;gap:8px}.contract-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-detail-grid div,.contract-resource-list div{display:grid;gap:4px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:10px}.contract-detail-grid span,.contract-resource-list span{color:var(--color-muted);font-size:.8rem;font-weight:900;text-transform:uppercase}.history-card-grid,.admin-contract-log{display:grid;gap:10px}.history-card,.admin-contract-row{display:grid;gap:6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:12px}.history-card div,.admin-contract-row div{display:flex;justify-content:space-between;gap:12px}.history-card p,.history-card small,.admin-contract-row p,.admin-contract-row small{margin:0;color:var(--color-muted)}.admin-log-section{margin:0 0 16px}.economy-summary-strip span{display:block;color:var(--color-muted);font-size:.82rem;font-weight:900;text-transform:uppercase}.economy-summary-strip strong{font-size:1.35rem}.economy-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:14px;align-items:start}.economy-lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;min-width:0}.economy-lane{display:grid;align-content:start;gap:10px;min-width:0}.economy-lane-heading{display:grid;gap:2px;color:var(--color-muted);padding:0 2px}.economy-lane-heading strong{color:var(--color-text)}.economy-lane-heading span{font-size:.83rem}.economy-node,.economy-empty-node{display:grid;gap:8px;width:100%;min-height:132px;padding:12px;text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.economy-node{align-content:start}.economy-node strong{line-height:1.2}.economy-node small,.economy-empty-node span{color:var(--color-muted);line-height:1.35}.economy-node:hover,.economy-node:focus-visible,.selected-economy-node{border-color:var(--color-accent-strong);box-shadow:var(--shadow-md)}.node-status{width:fit-content;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:900;text-transform:uppercase}.node-status-available{color:#28481f;background:#ddefce}.node-status-missing{color:#6a5112;background:#f3e3a2}.node-status-locked{color:#685f51;background:#ece4ce}.node-status-completed{color:#22515d;background:#cfe8ed}.economy-detail-panel{position:sticky;top:16px;display:grid;gap:14px}.economy-detail-title{display:grid;gap:8px}.economy-detail-title h3{margin:0;font-size:1.45rem}.economy-detail-panel p{margin:0}.economy-detail-facts,.economy-requirement-list{display:grid;gap:8px}.economy-detail-facts span,.economy-requirement-list span{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:9px 10px;color:var(--color-muted);font-weight:800}.economy-requirement-list .requirement-met{color:#315622;background:#edf7e4}.economy-requirement-list .requirement-missing{color:#7b3a22;background:#f6ded2}.economy-skeleton{min-height:260px;border-radius:var(--radius-md);background:linear-gradient(90deg,#f3ecd2,#fff8df,#f3ecd2);background-size:200% 100%;animation:economy-sheen 1.5s ease-in-out infinite}@keyframes economy-sheen{0%{background-position:200% 0}to{background-position:-200% 0}}.game-context-rail{position:sticky;top:16px;display:grid;gap:12px;min-width:0}.context-card{padding:14px}.context-card h2,.context-card h3{margin:0 0 8px}.online-mini-list{display:flex;flex-wrap:wrap;gap:6px}.online-mini-list span{border-radius:999px;background:#edf5e6;border:1px solid #c2d5b2;padding:6px 9px;color:#38502d;font-weight:800}.ledger-panel{min-width:0}.ledger-list{display:grid;gap:10px;max-height:480px;overflow:auto;padding-right:2px}.ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;border:1px solid var(--color-border);border-left:5px solid var(--color-info);border-radius:var(--radius-md);background:var(--color-surface-raised);padding:12px}.ledger-row div{display:grid;gap:4px;min-width:0}.ledger-row span,.ledger-row small{color:var(--color-muted)}.ledger-row b{white-space:nowrap}.ledger-project_contribution{border-left-color:var(--color-accent)}.ledger-downtime_point{border-left-color:var(--color-success)}.ledger-economy_event{border-left-color:var(--color-info)}.empty-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:#fffdf5b3;padding:16px;color:var(--color-muted)}.location-board-panel{min-height:auto;background:#f7fbeeeb}.location-board-heading span,.location-tile-tag,.location-activity,.stat-summary span,.ability-field,.resource-pill,.contribution-row,.history-row,.ticket-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:none}.location-tile-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.location-tile{min-height:172px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden}.location-tile:hover,.location-tile:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-md)}.location-tile:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.location-tile.locked-location{cursor:not-allowed;opacity:.72;filter:saturate(.72)}.location-tile.locked-location:hover,.location-tile.locked-location:focus-visible{transform:none;box-shadow:var(--shadow-sm)}.location-tile.unlocked-location .location-activity{color:#315622;background:#e6f2dc}.location-tile.locked-location .location-activity{color:#6b4c00;background:#fff3c2}.location-art{border-radius:var(--radius-sm)}.location-screen-heading{border-bottom:1px solid var(--color-border);padding-bottom:14px}.location-screen-heading span{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:8px 10px}.action-card,.dice-result{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-sm)}.action-card-heading{border-bottom:1px solid var(--color-border)}.approach-list button{border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:none}.approach-list button b{color:var(--color-info)}.resource-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.resource-pill{background:var(--color-surface-raised)}.progress-track{height:12px;border:1px solid var(--color-border-strong);border-radius:999px;background:#eee3bf;overflow:hidden}.progress-track span{background:linear-gradient(90deg,var(--color-success),#75a85d)}.project-panel-stack{display:grid;gap:14px}.bridge-completion-banner{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid #9abf87;border-radius:var(--radius-lg);background:linear-gradient(135deg,#e6f2dc,#fff8dc);box-shadow:var(--shadow-md);padding:16px}.bridge-completion-banner h2,.bridge-completion-banner p{margin:0}.bridge-completion-banner h2{margin-bottom:6px}.bridge-completion-unlocks{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.bridge-completion-unlocks span{border:1px solid #9abf87;border-radius:999px;background:#fffdf5c7;padding:7px 10px;color:#315622;font-weight:900}.bridge-completion-next{grid-column:1 / -1;color:var(--color-muted);font-weight:800}.bridge-riverfolk-panel,.loop-outcome-panel,.riverfolk-perk-card,.contract-impact-box{display:grid;gap:12px;border:1px solid rgb(17 113 151 / 24%);border-radius:var(--radius-md);background:linear-gradient(135deg,#ffffffc7,#daf9ff9e);padding:14px}.bridge-riverfolk-copy h3,.bridge-riverfolk-copy p,.loop-outcome-panel p,.loop-outcome-panel ul,.contract-impact-box p{margin:0}.bridge-riverfolk-stats,.perk-requirement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.bridge-riverfolk-stats span,.perk-requirement-grid span{display:grid;gap:2px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:10px}.bridge-riverfolk-stats small,.bridge-loop-step small,.riverfolk-perk-card small,.contract-guidance,.contract-impact-box small{color:var(--color-muted);font-weight:800}.bridge-loop-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px}.bridge-loop-step{display:grid;gap:4px;border:1px solid rgb(17 113 151 / 20%);border-radius:var(--radius-sm);background:#ffffff9e;padding:10px}.bridge-loop-step.ready,.riverfolk-perk-card.perk-active,.loop-outcome-success{border-color:#24a74a57;background:linear-gradient(135deg,#e2fad2d6,#ffffffb8)}.bridge-loop-step span,.bridge-unlock-chip{width:max-content;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:5px 9px;color:var(--color-muted);font-size:.82rem;font-weight:900}.bridge-next-step,.loop-outcome-panel strong{color:var(--color-text);font-weight:900}.loop-outcome-panel ul{display:grid;gap:6px;padding-left:20px}.loop-outcome-panel li{color:var(--color-muted)}.project-title-row,.project-status-strip,.project-action-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.project-title-row h3,.project-title-row p{margin:0}.project-title-row p{margin-top:6px;color:var(--color-muted)}.project-state-badge{flex:0 0 auto;border:1px solid var(--color-border);border-radius:999px;background:#fff3c2;padding:7px 10px;color:#6b4c00;font-weight:900}.project-state-completed{background:#dff0d9;color:#315622}.project-status-strip{flex-wrap:wrap}.project-status-strip span,.project-missing-list span,.project-unlock-list span,.project-contributor-list span,.completed-project-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:8px 10px;color:var(--color-muted);font-weight:800}.project-action-row{justify-content:flex-start;flex-wrap:wrap}.project-milestone-list,.project-missing-list,.project-unlock-list,.project-contributor-list,.project-milestone-section,.completed-project-list{display:grid;gap:8px}.project-milestone-list{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.project-milestone{display:grid;gap:3px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#efe6cd;padding:10px}.project-milestone.achieved{border-color:#9abf87;background:#e6f2dc}.project-milestone.current-milestone{border-color:var(--color-accent-strong);background:#fff3c2}.project-milestone span,.completed-project-row small{color:var(--color-muted)}.project-milestone small,.completed-project-row em{color:var(--color-muted);font-style:normal;font-weight:800}.bridge-bottleneck-panel{display:grid;gap:10px}.bridge-bottleneck-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.bridge-bottleneck-card{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);padding:10px}.bridge-bottleneck-card.complete{border-color:#9abf87;background:#e6f2dc}.bridge-bottleneck-card div:first-child{display:grid;gap:2px}.bridge-bottleneck-card span,.bridge-bottleneck-card small,.bridge-bottleneck-card em{color:var(--color-muted);font-style:normal}.bridge-bottleneck-card em{font-weight:800}.bridge-bottleneck-card p{margin:0;color:var(--color-muted)}.bridge-bottleneck-actions{display:flex;flex-wrap:wrap;gap:8px}.bridge-bottleneck-actions button{min-height:38px;padding:0 10px}.bridge-bottleneck-meter{height:9px;border-radius:999px;background:#eee3bf;overflow:hidden}.bridge-bottleneck-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-success),#75a85d)}.civic-unlocks-panel{display:grid;gap:10px}.civic-unlocks-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.civic-unlocks-heading span{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised);padding:5px 9px;color:var(--color-muted);font-weight:900}.civic-unlock-list{display:grid;gap:8px}.civic-unlock{display:grid;gap:3px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#f1ead5;padding:10px}.civic-unlock.active{border-color:#9abf87;background:#e6f2dc}.civic-unlock span{color:var(--color-muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.civic-unlock small{color:var(--color-muted)}.compact-civic-unlocks .civic-unlock small{display:none}.next-project-preview{display:grid;gap:4px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:#fffdf5b3;padding:12px}.next-project-preview strong{font-size:1.1rem}.next-project-preview span,.next-project-preview small{color:var(--color-muted)}.completed-project-row{display:grid;gap:6px}.completed-project-row div{display:flex;justify-content:space-between;gap:10px}.completed-project-row p{margin:0}.contribution-row{background:var(--color-surface-raised)}.modal-backdrop{background:#19171285;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-panel{border-radius:var(--radius-lg);box-shadow:0 24px 80px #00000047}.modal-heading{border-bottom:1px solid var(--color-border)}.modal-actions{border-top:1px solid var(--color-border)}@media(max-width:1180px){.game-command-shell{grid-template-columns:204px minmax(0,1fr)}.game-context-rail{display:none}}@media(max-width:960px){.game-shell{padding:10px 10px 84px}.game-command-shell{display:block;width:100%}.game-nav-desktop,.desktop-topbar,.game-context-rail{display:none}.mobile-status-bar{position:sticky;top:0;z-index:25;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:-10px -10px 10px;padding:10px;background:#dfe7d7f0;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.bridge-completion-banner,.completed-project-row div{grid-template-columns:1fr}.bridge-completion-banner{align-items:start}.bridge-completion-unlocks,.completed-project-row div{justify-content:flex-start}.completed-project-row div{flex-direction:column}.mobile-character-button{display:grid;justify-items:start;align-content:center;min-width:0;padding:6px 10px}.mobile-character-button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-character-button strong{font-size:.9rem;color:var(--color-muted)}.game-nav-mobile{position:fixed;left:8px;right:8px;bottom:8px;z-index:40;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;border:1px solid var(--color-border);border-radius:18px;background:#fff9e9f5;box-shadow:0 16px 44px #211f1a38;padding:7px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.game-nav-mobile button{justify-content:center;min-width:0;min-height:46px;padding:0 2px;font-size:.82rem}.today-dashboard,.town-command-grid,.ledger-command-grid,.economy-layout,.faction-layout{grid-template-columns:1fr}.economy-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}.economy-detail-panel{position:static}.today-summary-card,.panel-heading,.compact-panel-heading{align-items:stretch;flex-direction:column}.today-card-heading{display:grid}.today-hero-copy{max-width:100%}.today-command-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-action-grid,.action-fact-grid,.mini-stat-grid,.inventory-highlight-grid,.character-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.location-tile-grid{grid-template-columns:1fr}.location-tile{grid-template-columns:104px minmax(0,1fr);min-height:150px}.ledger-list{max-height:420px}.modal-backdrop{place-items:end center;padding:8px}.modal-panel{width:100%;max-height:calc(100dvh - 16px);border-radius:18px 18px 0 0}}@media(max-width:430px){.game-shell{padding-left:8px;padding-right:8px}.mobile-status-bar{margin-left:-8px;margin-right:-8px}.today-primary-card p{font-size:1rem}.location-tile{grid-template-columns:92px minmax(0,1fr)}.location-art{width:84px;height:84px}.ledger-row{grid-template-columns:1fr}.economy-panel{padding:12px}.economy-summary-strip,.profession-strip,.economy-lanes{grid-template-columns:1fr}.economy-node,.economy-empty-node{min-height:112px}.contract-detail-grid{grid-template-columns:1fr}.history-card div,.admin-contract-row div{display:grid;gap:4px}}:root{--color-bg: #7be64a;--color-bg-deep: #11b6df;--color-surface: rgb(244 252 255 / 82%);--color-surface-raised: rgb(255 255 255 / 90%);--color-border: rgb(255 255 255 / 48%);--color-border-strong: rgb(20 92 118 / 44%);--color-text: #102a32;--color-muted: #42616a;--color-accent: #ffd153;--color-accent-strong: #f89b2c;--color-success: #24a74a;--color-warning: #d98324;--color-danger: #c84645;--color-info: #128ac9;--shadow-sm: 0 10px 24px rgb(12 84 111 / 12%);--shadow-md: 0 20px 56px rgb(12 84 111 / 18%);--radius-sm: 14px;--radius-md: 20px;--radius-lg: 28px}body{background:linear-gradient(180deg,#ef5aa752,#ffad6633 34%,#0cb5db3d 72%),url(/assets/backgrounds/west-dagg-valley-desktop.svg) center top / cover fixed,#2bc7dc;color:var(--color-text)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 8%,rgb(255 255 255 / 24%),transparent 18rem),linear-gradient(180deg,#ffffff12,#ffffff2e)}.game-shell{isolation:isolate;padding-top:22px}.game-command-shell{gap:20px}.panel,.location-board-panel,.modal-panel,.quick-action-panel,.compact-ledger,.economy-panel,.game-nav-desktop{border:1px solid rgb(255 255 255 / 42%);background:linear-gradient(180deg,#ffffffd6,#e8faffbd),var(--color-surface);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(14px) saturate(1.14);backdrop-filter:blur(14px) saturate(1.14)}.panel,.location-board-panel{padding:18px}.game-nav-desktop{background:linear-gradient(180deg,#19a1dcd1,#0d75b1c7);color:#fff}.game-nav-brand{border-bottom-color:#ffffff47}.game-nav-brand .eyebrow,.game-nav-brand strong{color:#fff}.game-nav button{border-color:#ffffff52;background:#ffffff2e;color:#fff}.game-nav button:hover,.game-nav button:focus-visible{border-color:#fff;background:#ffffff47}.game-nav button.active-nav-item{border-color:#ffffffbd;background:var(--color-accent);color:#1f3850}button,.primary-button{border-color:#11719752;background:#ffffffe0;color:var(--color-text);box-shadow:0 10px 22px #0c546f1c}.primary-button,.selected-card,.selected-chip,.location-tile.selected-location{background:linear-gradient(180deg,#ffe270,#ffb73d);color:#17303a}button:hover,button:focus-visible,.primary-button:hover,.primary-button:focus-visible{border-color:var(--color-accent-strong);box-shadow:0 18px 36px #0c546f33;outline:3px solid rgb(255 209 83 / 34%)}.eyebrow,.section-kicker{color:#0b739d;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.desktop-topbar{color:#fff;text-shadow:0 2px 10px rgb(12 84 111 / 32%)}.desktop-topbar .muted{color:#ffffffc7}.mobile-status-bar{background:linear-gradient(90deg,#159ee6eb,#087ec2eb);border-bottom-color:#ffffff47}.mobile-status-bar button,.mobile-status-bar .mobile-character-button{color:#fff;border-color:#ffffff57;background:#ffffff2e}.mobile-character-button strong{color:#ffffffc2}.lowpoly-hero-card{position:relative;grid-column:1 / -1;min-height:230px;overflow:hidden;align-items:flex-end;color:#fff;background:linear-gradient(90deg,#0b4f76db,#0d7bae6b 58%,#ffb73d29),url(/assets/backgrounds/west-dagg-valley-desktop.svg) center 46% / cover;border:1px solid rgb(255 255 255 / 40%)}.lowpoly-hero-card:after{content:"";position:absolute;inset:auto -4% -28% auto;width:min(46vw,520px);aspect-ratio:1;background:url(/assets/locations/lowpoly-town-hall.svg) center / contain no-repeat;filter:drop-shadow(0 20px 28px rgb(0 54 91 / 24%));opacity:.98}.today-hero-copy{position:relative;z-index:1;display:grid;gap:16px;width:min(860px,100%);max-width:calc(100% - 190px)}.today-hero-copy .eyebrow,.today-hero-copy .muted{color:#ffffffd1}.today-hero-copy h2{margin:0;overflow-wrap:anywhere;font-size:clamp(1.9rem,4.8vw,4rem);line-height:.94}.today-command-strip span{border-color:#ffffff57;background:#ffffff2e;color:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.today-command-strip small{color:#ffffffc7}.today-command-strip strong{color:#fff}.lowpoly-hero-card>button,.lowpoly-hero-card>.today-ready-badge{position:relative;z-index:1;align-self:flex-start}.lowpoly-hero-card>button{background:var(--color-accent)}.lowpoly-hero-card>.today-ready-badge{border-color:#ffffff57;background:#ffffff2e;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lowpoly-hero-card>.today-ready-badge span,.lowpoly-hero-card>.today-ready-badge strong{color:#fff}.today-primary-card,.town-pulse-panel,.today-town-need-panel,.today-faction-panel,.today-unlock-panel,.today-inventory-panel{border-color:#ffffff85}.mini-stat-card,.inventory-highlight,.character-compact-grid div,.action-fact-grid span,.foundation-card,.history-card,.contract-detail-grid div,.contract-resource-list div,.bridge-bottleneck-card,.economy-node,.economy-empty-node{border-color:#1171972e;background:#ffffffb8;box-shadow:0 8px 18px #0c546f14}.location-board-panel{background:linear-gradient(180deg,#ffffffa8,#ddfcff94),linear-gradient(135deg,#67e0463d,#0ec4e838)}.location-board-heading{color:#fff;border-radius:var(--radius-lg);background:linear-gradient(90deg,#159ee6e5,#37cdd9a8),url(/assets/backgrounds/west-dagg-valley-desktop.svg) center 60% / cover;padding:16px;box-shadow:0 14px 30px #0c546f2b}.location-board-heading .eyebrow{color:#ffffffc7}.location-board-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.location-board-legend span{border-color:#ffffff5c;background:#fff3;color:#fff}.settlement-board{gap:18px}.settlement-board .location-group{position:relative;overflow:hidden;border:1px solid rgb(255 255 255 / 48%);border-radius:28px;background:radial-gradient(circle at 12% 0%,rgb(255 255 255 / 58%),transparent 16rem),linear-gradient(135deg,#ffffff61,#ffffff29);padding:14px;box-shadow:0 16px 32px #0c546f1a}.location-group-heading{position:relative;z-index:1;display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.location-group-heading h3{color:#0f668e;letter-spacing:.04em}.location-group-heading p{margin:4px 0 0;color:#42616a;line-height:1.35}.location-group-heading>span{flex:0 0 auto;border:1px solid rgb(17 113 151 / 18%);border-radius:999px;background:#ffffffa8;padding:6px 9px;color:#0f668e;font-size:.82rem;font-weight:900}.location-category-town{--category-tint: rgb(255 209 83 / 25%);--category-ground: rgb(255 194 75 / 22%)}.location-category-gather{--category-tint: rgb(92 224 69 / 24%);--category-ground: rgb(30 181 103 / 22%)}.location-category-craft{--category-tint: rgb(255 167 74 / 25%);--category-ground: rgb(169 107 255 / 16%)}.location-category-training{--category-tint: rgb(255 104 92 / 22%);--category-ground: rgb(255 209 83 / 16%)}.location-category-lore{--category-tint: rgb(86 169 255 / 24%);--category-ground: rgb(108 83 255 / 16%)}.location-category-faction{--category-tint: rgb(21 158 230 / 25%);--category-ground: rgb(84 220 69 / 18%)}.settlement-board .location-group:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,var(--category-tint, rgb(255 255 255 / 18%)),transparent 48%,var(--category-ground, rgb(255 255 255 / 12%)));pointer-events:none}.location-tile-grid{position:relative;z-index:1;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.location-tile{position:relative;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(146px,1fr) auto;gap:10px;min-height:260px;padding:16px;overflow:hidden;text-align:left;border:1px solid rgb(255 255 255 / 52%);border-radius:30px;background:radial-gradient(circle at 50% 20%,rgb(255 255 255 / 82%),rgb(255 255 255 / 28%) 38%,transparent 39%),linear-gradient(180deg,#31bee6d1,#26a1dfad);box-shadow:0 18px 36px #0c546f29;align-content:start}.location-tile:before{content:"";position:absolute;inset:auto 12px 12px 12px;height:44%;border-radius:26px;background:linear-gradient(180deg,#5ce04557,#1a9e4a42);transform:skewY(-4deg);transform-origin:bottom}.location-tile.location-category-town,.location-tile.location-category-gather,.location-tile.location-category-craft,.location-tile.location-category-training,.location-tile.location-category-lore,.location-tile.location-category-faction{background:radial-gradient(circle at 50% 20%,rgb(255 255 255 / 84%),rgb(255 255 255 / 24%) 38%,transparent 39%),linear-gradient(180deg,color-mix(in srgb,var(--category-tint, #31bee6) 72%,#35bfe7),color-mix(in srgb,var(--category-ground, #26a1df) 70%,#198fd4))}.location-tile:hover,.location-tile:focus-visible{transform:translateY(-5px) scale(1.01)}.location-tile.selected-location{border-color:#ffe576e5;box-shadow:0 22px 48px #f79b2c4d}.location-tile.locked-location{opacity:.72;cursor:not-allowed;filter:saturate(.78)}.location-tile.newly-unlocked-location{border-color:#ffe576f2;box-shadow:0 22px 52px #f79b2c42,inset 0 0 0 2px #ffe57685}.location-tile.completed-location{border-color:#24a74a6b;box-shadow:0 18px 38px #24a74a24,inset 0 0 0 2px #ddf6cc99}.location-art{position:relative;z-index:1;justify-self:center;width:min(82%,188px);height:148px;object-fit:contain;border-radius:0;filter:drop-shadow(0 16px 14px rgb(0 78 98 / 20%))}.location-tile-copy{position:relative;z-index:1;display:grid;gap:6px;width:100%;min-width:0;border:1px solid rgb(255 255 255 / 44%);border-radius:20px;background:#ffffffc7;padding:12px}.location-tile-topline{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;align-items:center}.location-tile-copy strong{color:#102a32;font-size:1.08rem}.location-tile-copy small{color:#42616a}.location-tile-tag,.location-state-pill,.location-activity,.compact-panel-heading>span,.contract-state-pill,.tag-row span{border-color:#1171972e;background:#ffffffb3;color:#0f668e}.location-state-pill{color:#36536c}.newly-unlocked-location .location-state-pill{background:#ffef9ce0;color:#805511}.completed-location .location-state-pill{background:#ddf6cce0;color:#176a2f}.locked-location .location-state-pill{background:#ffeb9ce0;color:#8a5512}.location-tile-facts{display:grid;gap:5px}.location-tile-facts span{border:1px solid rgb(17 113 151 / 13%);border-radius:999px;background:#ffffff94;padding:5px 8px;color:#42616a;font-size:.78rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.location-tile.unlocked-location .location-activity,.requirement-met,.node-status-available{color:#176a2f;background:#ddf6cce0}.location-tile.locked-location .location-activity,.requirement-missing,.node-status-missing{color:#8a5512;background:#ffeb9ce0}@media(hover:hover)and (pointer:fine){.location-tile:hover .location-activity,.location-tile:focus-visible .location-activity{background:var(--color-accent);color:#17303a}.location-tile:hover .location-tile-facts span,.location-tile:focus-visible .location-tile-facts span{background:#ffffffc7}}.location-screen-panel{background:linear-gradient(180deg,#ffffffd6,#e7fcffb8),var(--color-surface)}.location-screen-heading{align-items:center;border-bottom-color:#11719724}.location-screen-title{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;align-items:center}.location-detail-art{width:116px;height:96px;object-fit:contain;filter:drop-shadow(0 12px 12px rgb(12 84 111 / 16%))}.resource-icon,.faction-badge{display:block;object-fit:contain}.asset-fallback-applied{opacity:.82;filter:saturate(.84) drop-shadow(0 10px 12px rgb(12 84 111 / 14%))}.resource-icon{width:42px;height:42px;filter:drop-shadow(0 8px 8px rgb(12 84 111 / 12%))}.inventory-highlight{grid-template-columns:auto minmax(0,1fr);align-items:center}.inventory-highlight .resource-icon{grid-row:span 2}.bridge-bottleneck-title,.faction-title{display:flex;gap:12px;align-items:center}.bridge-bottleneck-card{border-radius:20px}.bridge-bottleneck-card.complete{border-color:#24a74a52;background:linear-gradient(180deg,#ddf6ccd1,#ffffffb8)}.progress-track,.bridge-bottleneck-meter{border-color:#1171972e;background:#ffffff8f}.progress-track span,.bridge-bottleneck-meter span{background:linear-gradient(90deg,#45df43,#15c7e6)}.faction-contract-panel{border-radius:var(--radius-lg)}.faction-layout .faction-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr))}.faction-cap-card{border-color:#ffffff7f;background:linear-gradient(90deg,#159ee629,#ffd1533d)}.faction-card{position:relative;overflow:hidden}.faction-card:after{content:"";position:absolute;inset:auto -36px -42px auto;width:130px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgb(21 158 230 / 16%),transparent 66%)}.faction-badge{width:72px;height:72px;flex:0 0 auto;filter:drop-shadow(0 12px 14px rgb(12 84 111 / 18%))}.faction-reputation-meter .progress-track{height:14px}.contract-card{border-left:0;border-top:6px solid rgb(17 113 151 / 16%)}.contract-state-available{border-top-color:var(--color-success)}.contract-state-missing_resources{border-top-color:var(--color-warning)}.contract-state-completed_this_week{border-top-color:var(--color-info)}.contract-resource-list div{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.contract-resource-list .resource-icon{width:38px;height:38px}.economy-panel{background:linear-gradient(180deg,#ffffffd1,#dcfbffb3),linear-gradient(135deg,#5ce04538,#128ac92e)}.economy-lane{border-radius:24px;background:#ffffff4d;padding:10px}.economy-node{border-radius:22px}.ledger-row{border-left-width:0;border-top:5px solid var(--color-info);background:#ffffffc2;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.ledger-project_contribution{border-top-color:var(--color-accent)}.ledger-downtime_point{border-top-color:var(--color-success)}.ledger-economy_event{border-top-color:var(--color-info)}.ledger-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.ledger-filter{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid rgb(17 113 151 / 22%);border-radius:999px;background:#ffffff9e;color:var(--color-text);font-weight:800;padding:0 13px}.ledger-filter b{min-width:24px;border-radius:999px;background:#1171971f;color:var(--color-muted);font-size:.78rem;padding:2px 7px;text-align:center}.ledger-filter.active-filter{border-color:#ffb536ad;background:linear-gradient(135deg,#ffbd47f5,#ffe079eb);box-shadow:0 10px 22px #b16d1424}.ledger-filter.active-filter b{background:#ffffff9e;color:#5f3b04}.ledger-entry-icons{display:flex;align-items:center;justify-content:center;min-width:44px}.ledger-entry-icons .resource-icon{width:32px;height:32px;border:1px solid rgb(255 255 255 / 70%);border-radius:14px;background:#ffffff8f;box-shadow:0 8px 18px #1648561f;object-fit:contain;padding:3px}.ledger-entry-icons .resource-icon+.resource-icon{margin-left:-11px}.ledger-entry-icons span{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:#11719724;color:var(--color-info);font-weight:900}.ledger-entry-main{display:grid;gap:5px;min-width:0}.ledger-entry-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.ledger-entry-title-row strong{min-width:0}.ledger-category-pill{flex:0 0 auto;border:1px solid rgb(17 113 151 / 18%);border-radius:999px;background:#ffffff8f;color:var(--color-muted);font-size:.72rem;font-weight:900;letter-spacing:0;line-height:1;padding:6px 8px}.ledger-category-pill-factions{border-color:#7e57c240;color:#5f4a9b}.ledger-category-pill-town{border-color:#ffb53661;color:#7c520f}.ledger-category-pill-dtp,.ledger-category-pill-resources{border-color:#1a8b623d;color:#27724f}.ledger-category-pill-rewards{border-color:#ee872947;color:#9a5210}.ledger-entry-meta{display:flex;flex-wrap:wrap;gap:8px}.ledger-entry-meta small+small:before{content:""}.ledger-category-town,.ledger-category-factions,.ledger-category-rewards,.ledger-category-dtp,.ledger-category-resources{border-top-color:var(--color-info)}.ledger-category-town{border-top-color:var(--color-accent)}.ledger-category-factions{border-top-color:#8d65d4}.ledger-category-rewards{border-top-color:#f39b31}.ledger-category-dtp{border-top-color:var(--color-success)}.ledger-category-resources{border-top-color:#1ba4bd}.ledger-empty-state{display:grid;gap:8px}.ledger-empty-state button{justify-self:start}.adventures-command-stack{display:grid;gap:16px}.adventure-hero-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;overflow:hidden;background:linear-gradient(135deg,#ffffffc7,#b1f0ff85),url(/assets/backgrounds/west-dagg-valley-mobile.svg) center / cover}.adventure-hero-panel p{max-width:64ch}.adventure-hero-stat{display:grid;min-width:128px;border:1px solid rgb(255 255 255 / 52%);border-radius:22px;background:#ffffff9e;box-shadow:0 16px 36px #16485624;padding:14px}.adventure-hero-stat span,.adventure-hero-stat small{color:var(--color-muted);font-weight:800}.adventure-hero-stat strong{color:var(--color-text);font-size:1.7rem}.adventure-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.adventure-launch-card{display:grid;gap:12px}.adventure-state{border-radius:999px;font-size:.78rem;font-weight:900;padding:7px 10px}.adventure-state-available,.adventure-state-active{background:#1daf6c29;color:#216f4d}.adventure-state-completed{background:#ffb53633;color:#80530c}.adventure-state-locked{background:#2537481f;color:var(--color-muted)}.adventure-meta-grid,.adventure-reward-list,.adventure-run-stats{display:flex;flex-wrap:wrap;gap:8px}.adventure-meta-grid span,.adventure-reward-list span,.adventure-run-stats span{border:1px solid rgb(17 113 151 / 18%);border-radius:999px;background:#ffffff94;color:var(--color-muted);font-size:.82rem;font-weight:800;padding:7px 10px}.adventure-terminal-stage{display:grid;gap:14px}.adventure-terminal-window{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;min-height:560px;height:clamp(560px,78dvh,840px);border:1px solid rgb(106 255 136 / 24%);border-radius:26px;background:radial-gradient(circle at 20% 0%,rgb(56 255 120 / 12%),transparent 34%),linear-gradient(180deg,#111915,#050807 66%,#020403);box-shadow:0 30px 70px #0000004d,inset 0 0 0 1px #ffffff0f,inset 0 0 48px #41ff761a;color:#9cff9c;font-family:Courier New,Lucida Console,monospace;overflow:hidden}.adventure-terminal-bezel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid rgb(106 255 136 / 18%);background:#00000057;color:#d9ffd9;padding:12px 14px}.terminal-led{width:12px;height:12px;border-radius:50%;background:#83ff7a;box-shadow:0 0 16px #83ff7ae5}.adventure-terminal-bezel span,.adventure-terminal-bezel strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adventure-terminal-bezel span{color:#65c965;font-size:.72rem;font-weight:900;letter-spacing:.08em}.adventure-terminal-bezel strong{color:#eaffea;font-size:.96rem}.adventure-terminal-window .adventure-state{border:1px solid rgb(106 255 136 / 30%);background:#0000006b;color:#a8ffa8}.terminal-status-strip{display:flex;gap:8px;overflow-x:auto;border-bottom:1px solid rgb(106 255 136 / 14%);background:#0000003d;padding:9px 12px}.terminal-status-strip span{flex:0 0 auto;border:1px solid rgb(106 255 136 / 18%);border-radius:999px;color:#84e884;font-size:.72rem;font-weight:900;padding:5px 8px}.adventure-terminal-screen{position:relative;min-height:0;overflow:auto;padding:15px;scrollbar-color:#62d862 #081108}.adventure-terminal-screen:before{position:sticky;top:0;display:block;height:0;content:"";pointer-events:none;box-shadow:0 0 34px 18px #050807f2;z-index:1}.adventure-terminal-screen:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:repeating-linear-gradient(180deg,rgb(255 255 255 / 3%) 0,rgb(255 255 255 / 3%) 1px,transparent 1px,transparent 5px);opacity:.22;pointer-events:none}.terminal-line,.terminal-room-block p,.terminal-event p,.terminal-complete-banner p{color:#9cff9c;line-height:1.55;margin:0 0 9px;text-shadow:0 0 8px rgb(114 255 121 / 24%)}.terminal-system,.terminal-room,.terminal-event-time,.terminal-prompt{color:#62e662;font-weight:900}.terminal-room-block{border:1px solid rgb(106 255 136 / 16%);border-radius:18px;background:#01140794;margin:0 0 12px;padding:13px}.terminal-room-block h2{color:#eaffea;font-family:inherit;font-size:clamp(1.15rem,3.8vw,1.8rem);line-height:1.12;margin:0 0 9px;text-shadow:0 0 12px rgb(114 255 121 / 28%)}.terminal-event{border-left:2px solid rgb(106 255 136 / 28%);margin:0 0 11px;padding:0 0 0 10px}.terminal-event small{display:block;color:#d4ffd4;font-weight:900;margin-top:-3px}.terminal-complete-banner{border:1px solid rgb(106 255 136 / 28%);border-radius:14px;background:#14582266;color:#eaffea;margin-top:14px;padding:12px}.terminal-command-deck{display:grid;gap:10px;border-top:1px solid rgb(106 255 136 / 18%);background:#0006;padding:12px}.terminal-command-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;max-height:176px;overflow:auto;padding-right:2px}.terminal-command-chip{display:grid;gap:4px;min-height:52px;border:1px solid rgb(106 255 136 / 24%);border-radius:14px;background:#0c2b13cc;color:#d9ffd9;font-family:inherit;padding:9px 10px;text-align:left}.terminal-command-chip:hover:not(:disabled),.terminal-command-chip:focus-visible{border-color:#b2ffb2bd;background:#1f5c28e5;box-shadow:0 0 0 3px #6aff8824}.terminal-command-chip:disabled{cursor:wait;opacity:.62}.terminal-command-chip span,.terminal-empty-command{color:#7fd47f;font-size:.76rem;font-weight:800}.terminal-check-command{border-color:#84daff57}.terminal-command-form{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.terminal-command-form label{color:#9cff9c;font-size:1.2rem;font-weight:900}.terminal-command-form input{min-height:44px;border:1px solid rgb(106 255 136 / 24%);border-radius:12px;background:#020403;color:#d9ffd9;font:inherit;padding:0 11px}.terminal-command-form input::placeholder{color:#5da85d}.terminal-command-form button{min-height:44px;border:1px solid rgb(106 255 136 / 32%);border-radius:12px;background:#164d20;color:#eaffea;font-family:inherit;font-weight:900;padding:0 13px}.terminal-command-form button:disabled{background:#152217;color:#5da85d}.terminal-drawer,.adventure-library-drawer{border-top:1px solid rgb(106 255 136 / 14%);background:#00000052}.terminal-drawer summary,.adventure-library-drawer summary{min-height:44px;color:#d9ffd9;cursor:pointer;font-family:Courier New,Lucida Console,monospace;font-weight:900;padding:12px 14px}.terminal-drawer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 14px 14px}.terminal-drawer-grid section{border:1px solid rgb(106 255 136 / 14%);border-radius:14px;background:#0319079e;color:#9cff9c;padding:10px}.terminal-drawer-grid strong{color:#eaffea}.terminal-drawer-grid ul{display:grid;gap:7px;list-style:none;margin:8px 0 0;padding:0}.terminal-drawer-grid li{border-left:2px solid rgb(106 255 136 / 24%);display:grid;gap:3px;padding-left:8px}.terminal-drawer-grid small,.terminal-drawer-grid p{color:#7fd47f;margin:0}.terminal-current-node span{color:#eaffea;font-weight:900}.adventure-library-drawer{border:1px solid rgb(17 113 151 / 18%);border-radius:20px;background:#ffffff94;overflow:hidden}.adventure-library-drawer summary{color:var(--color-text);font-family:inherit}.adventure-library-drawer .adventure-card-grid{padding:0 14px 14px}.adventure-play-grid{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(0,1.4fr) minmax(260px,.9fr);gap:14px;align-items:start}.adventure-progress-panel,.adventure-side-panel,.adventure-transcript{border:1px solid rgb(17 113 151 / 24%);border-radius:24px;background:#ffffffa8;box-shadow:0 18px 40px #1648561a;padding:16px}.adventure-node-list,.adventure-clue-list{display:grid;gap:8px}.adventure-node-list span{border:1px solid rgb(17 113 151 / 14%);border-radius:14px;background:#ffffff7a;color:var(--color-muted);font-weight:800;padding:8px 10px}.adventure-node-list .current-node{border-color:#ffb5368f;background:#ffe28473;color:var(--color-text)}.adventure-story-panel{display:grid;gap:14px}.adventure-scene-text{border-left:4px solid rgb(17 113 151 / 24%);color:var(--color-text);font-size:1.05rem;line-height:1.65;margin:0;padding:6px 0 6px 14px}.adventure-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.adventure-action{display:grid;gap:5px;min-height:72px;border:1px solid rgb(17 113 151 / 22%);border-radius:18px;background:#ffffffb8;color:var(--color-text);padding:12px;text-align:left}.adventure-action:hover:not(:disabled),.adventure-action:focus-visible{border-color:#ffb536b3;background:#fff6cbd6}.adventure-action span{color:var(--color-muted);font-size:.86rem;font-weight:700}.check-action{border-color:#7e57c247}.adventure-command-form{display:grid;gap:7px}.adventure-command-form label{color:var(--color-muted);font-weight:900}.adventure-command-form div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.adventure-command-form input{min-height:46px;border:1px solid rgb(17 113 151 / 28%);border-radius:16px;background:#ffffffc7;color:var(--color-text);font:inherit;padding:0 12px}.adventure-right-rail{display:grid;gap:14px}.adventure-clue-card,.adventure-transcript-row{border:1px solid rgb(17 113 151 / 14%);border-radius:16px;background:#ffffff8a;padding:11px}.adventure-clue-card p,.adventure-transcript-row p{margin:4px 0}.adventure-clue-card small,.adventure-transcript-row span,.adventure-transcript-row small{color:var(--color-muted)}.adventure-transcript{display:grid;gap:9px;max-height:520px;overflow:auto}.adventure-complete-banner{border:1px solid rgb(29 175 108 / 24%);border-radius:18px;background:#dcfae5b3;padding:14px}.empty-state,.next-project-preview{border-color:#11719747;background:#ffffffa3}@media(max-width:960px){body{background:linear-gradient(180deg,#ef5aa73d,#ffad662e 36%,#0cb5db38 74%),url(/assets/backgrounds/west-dagg-valley-mobile.svg) center top / cover fixed,#2bc7dc}.game-shell{padding-top:10px}.lowpoly-hero-card{min-height:212px;align-items:stretch;background:linear-gradient(180deg,#0b4f76d1,#0d7bae4d),url(/assets/backgrounds/west-dagg-valley-mobile.svg) center 38% / cover}.lowpoly-hero-card:after{width:210px;right:-42px;bottom:-46px;opacity:.48}.today-hero-copy h2{max-width:12ch}.today-hero-copy{width:100%;max-width:100%}.today-command-strip{grid-template-columns:1fr;gap:8px}.today-command-strip span{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:54px;padding:10px 12px}.today-command-strip small{grid-column:1;overflow:visible;text-overflow:clip;white-space:normal}.today-command-strip strong{grid-column:2;grid-row:1 / span 2;align-self:center;max-width:7ch;font-size:1.18rem;text-align:right}.game-nav-mobile{border-color:#ffffff70;background:linear-gradient(90deg,#159ee6eb,#087ec2eb)}.game-nav-mobile button{border-color:#ffffff3d;background:#ffffff29;color:#fff}.game-nav-mobile button.active-nav-item{background:var(--color-accent);color:#17303a}.location-tile{grid-template-columns:124px minmax(0,1fr);grid-template-rows:1fr;min-height:190px;align-items:center}.location-tile:before{inset:16px auto 16px 12px;width:120px;height:auto;transform:skewY(-6deg)}.location-art{width:116px;height:106px}.location-tile-copy{align-self:stretch}.location-tile-facts{gap:4px}.location-tile-facts span{border-radius:12px;padding:4px 7px;font-size:.74rem}.location-screen-title{grid-template-columns:86px minmax(0,1fr)}.location-detail-art{width:82px;height:76px}}@media(max-width:430px){.panel,.location-board-panel,.quick-action-panel,.compact-ledger,.economy-panel{padding:14px;border-radius:22px}.lowpoly-hero-card{min-height:0}.today-command-strip{gap:7px}.today-command-strip span{min-height:50px;padding:9px 10px}.today-command-strip strong{font-size:1.08rem}.today-command-strip small{font-size:.66rem}.today-ready-badge{justify-items:start}.location-tile{grid-template-columns:98px minmax(0,1fr);grid-template-rows:1fr;min-height:186px;padding:10px}.location-tile:before{width:96px}.location-art{width:94px;height:88px}.location-tile-copy{border-radius:16px;padding:10px}.faction-title{align-items:flex-start}.faction-badge{width:58px;height:58px}.contract-resource-list div{grid-template-columns:auto minmax(0,1fr)}.contract-resource-list strong{grid-column:2}}@media(max-width:720px){.adventure-hero-panel,.adventure-play-grid{grid-template-columns:1fr}.adventure-terminal-window{border-radius:20px;min-height:520px;height:min(78dvh,720px)}.adventure-terminal-bezel{grid-template-columns:auto minmax(0,1fr)}.adventure-terminal-bezel .adventure-state{grid-column:1 / -1;justify-self:start}.terminal-drawer-grid{grid-template-columns:1fr}.adventure-hero-stat{min-width:0}.adventure-progress-panel{order:2}.adventure-story-panel{order:1}.adventure-right-rail{order:3}.adventure-action-grid{grid-template-columns:1fr}.adventure-action{min-height:64px}.ledger-filter-row{flex-wrap:nowrap;margin-left:-2px;overflow-x:auto;padding:0 2px 6px;scrollbar-width:thin}.ledger-filter{flex:0 0 auto;min-height:44px}.ledger-row{grid-template-columns:auto minmax(0,1fr);gap:10px}.ledger-row>b{grid-column:2;justify-self:start}.ledger-entry-title-row{display:grid;justify-content:stretch}.ledger-category-pill{justify-self:start}}@media(max-width:430px){.adventure-terminal-window{min-height:500px;height:min(76dvh,660px);border-radius:16px}.adventure-terminal-bezel,.adventure-terminal-screen,.terminal-command-deck,.terminal-status-strip{padding-left:10px;padding-right:10px}.terminal-command-strip{grid-template-columns:1fr 1fr;max-height:144px}.terminal-command-chip{min-height:48px;padding:8px}.terminal-command-chip span{display:none}.terminal-command-form{grid-template-columns:auto minmax(0,1fr)}.terminal-command-form button{grid-column:1 / -1}.adventure-command-form div{grid-template-columns:1fr}.adventure-meta-grid span,.adventure-reward-list span,.adventure-run-stats span{font-size:.78rem}.adventure-progress-panel,.adventure-side-panel,.adventure-transcript{border-radius:20px;padding:13px}.adventure-scene-text{font-size:1rem}.ledger-list{max-height:none}.ledger-row{padding:10px}.ledger-entry-icons{min-width:38px}.ledger-entry-icons .resource-icon{width:29px;height:29px}.ledger-entry-icons span{width:31px;height:31px}}
