@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700;900&family=Inter:wght@400;600;700&display=swap";:root{color:#f6ead2;background:#120b08;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(#120b08bd,#120b08e6),url(/capa-front.webp) center top / cover fixed}button,input,textarea,select{font:inherit}button{min-height:42px;border:1px solid #8b5a2d;border-radius:6px;padding:10px 14px;color:#f8ead0;background:#2a1710;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover{border-color:#d3a35c;background:#422315}button:disabled,fieldset:disabled{opacity:.78}.primary{border-color:#c59a4f;background:linear-gradient(180deg,#9d1f18,#5b0f0d)}.danger{border-color:#ad4b39;background:#3c1410}.danger:hover{border-color:#ff9b7f;background:#621d15}.topbar{height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:#0f0805eb;border-bottom:1px solid #7c532b;position:sticky;top:0;z-index:5}.brand{font-family:Cinzel,serif;font-size:24px;border:0;background:transparent}nav{display:flex;gap:10px}.hero{min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(280px,640px) minmax(280px,440px);align-items:center;gap:44px;padding:48px clamp(18px,6vw,90px)}.heroText h1,.dashboard h1,.formHeader h1,.listPage h1,.authPanel h1{font-family:Cinzel,serif;letter-spacing:0}.heroText h1{font-size:clamp(42px,6vw,82px);line-height:.95;margin:12px 0 18px}.heroText p{max-width:620px;font-size:20px;line-height:1.6;color:#ead6b3}.kicker{color:#d6a95a!important;text-transform:uppercase;font-weight:800;font-size:14px!important}.actions{display:flex;gap:12px;flex-wrap:wrap}.centerPage,.dashboard,.listPage,.formPage{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:48px 0}.centerPage{min-height:calc(100vh - 72px);display:grid;place-items:center}.authPanel{width:min(440px,100%);padding:32px;border:1px solid #8b5a2d;border-radius:8px;background:#1d110bf0;display:grid;gap:16px}.profilePanel{width:min(560px,100%);padding:32px;border:1px solid #8b5a2d;border-radius:8px;background:#1d110bf0;display:grid;gap:18px}.profilePanel h1{margin:0;font-family:Cinzel,serif}.profileStats{display:grid;gap:12px}.profileStats div{padding:14px;border:1px solid #8b5a2d;border-radius:6px;background:#2a1710d9;display:flex;align-items:center;justify-content:space-between;gap:16px}.profileStats span{color:#d4b985}label{display:grid;gap:6px;color:#d4b985;font-weight:700}input,textarea,select{width:100%;border:1px solid #a46b35;border-radius:4px;padding:10px 11px;background:#f7e6bd;color:#24130b}input[type=checkbox]{width:18px;height:18px;padding:0}textarea{min-height:96px;resize:vertical}.error{color:#ffb4a6;font-weight:700}.dashboardActions{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:18px}.bigAction{min-height:160px;font-family:Cinzel,serif;font-size:26px;background:#26130bf2}.formHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.sheetGrid{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.parchment{padding:18px;border:1px solid #8b5a2d;border-radius:8px;background:linear-gradient(#ffedbee0,#e7bd6fdb),#e7bd72;color:#2b140c}.parchment label,.parchment .skillRow span{color:#1d0c05}.parchment input,.parchment textarea{color:#120804}.parchment h2{margin:8px 0 14px;padding:8px 12px;border-radius:4px;background:#75140f;color:#fff0d0;font-family:Cinzel,serif;font-size:18px}.full{grid-column:1 / -1}.twoCols,.threeCols{display:grid;gap:12px}.twoCols{grid-template-columns:repeat(2,minmax(0,1fr))}.threeCols{grid-template-columns:repeat(3,minmax(0,1fr))}.wide{margin-top:12px}.checkField{min-height:42px;grid-template-columns:18px 1fr;align-items:center;align-self:end;padding:10px 11px;border:1px solid #a46b35;border-radius:4px;background:#f7e6bd;color:#120804!important}.inventoryField{margin-top:12px}.weightSummary{margin-top:12px;padding:10px 11px;border:1px solid #a46b35;border-radius:4px;background:#f7e6bd;color:#120804;font-weight:800}.weightSummary.overLimit{border-color:#9d1f18;color:#9d1f18}.inventoryAdd{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.inventoryList{max-height:220px;margin-top:10px;padding:10px;border:1px solid #a46b35;border-radius:4px;background:#f7e6bdd1;overflow-y:auto;display:grid;gap:8px}.inventoryList p{margin:0;color:#1d0c05;font-weight:700}.inventoryItem{min-height:44px;padding:8px;border:1px solid #c08b49;border-radius:4px;background:#f7e6bd;display:grid;grid-template-columns:minmax(0,1fr) auto 38px;gap:8px;align-items:center}.inventoryItem.withQuantity{grid-template-columns:minmax(0,1fr) 74px auto 38px}.quantityInput{padding:8px}.inventoryItem span{color:#120804;font-weight:800}.inventoryItem small{color:#3c2112;font-weight:700}.inventoryItem button{min-height:34px;padding:6px}.mountItem{grid-template-columns:minmax(0,1fr) auto 38px}.inlineCheck{grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px}.inlineCheck span{min-width:0}.imageField{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;margin-bottom:14px}.imagePreview{min-height:220px;border:2px solid #6d3d1e;border-radius:6px;background:#2b140c2e;color:#1d0c05;display:grid;place-items:center;overflow:hidden}.imagePreview img{width:100%;height:100%;object-fit:cover}.imagePicker{display:grid;align-content:start;gap:10px}.imageActions{display:flex;flex-wrap:wrap;gap:10px}.uploadButton{min-height:42px;border:1px solid #8b5a2d;border-radius:6px;padding:10px 14px;color:#f8ead0!important;background:#2a1710;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.uploadButton input{display:none}.availableImages{display:flex;flex-wrap:wrap;gap:10px}.availableImages button{width:74px;height:74px;min-height:74px;padding:3px;background:#f7e6bd}.availableImages img{width:100%;height:100%;object-fit:cover;border-radius:4px}.availableImages span{color:#1d0c05;font-weight:700}.skills{display:grid;gap:8px}.skillRow{display:grid;grid-template-columns:minmax(120px,1fr) 116px minmax(140px,1.2fr);gap:8px;align-items:center}.skillRow span{font-family:Cinzel,serif;font-weight:800}.gradeControl{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;min-height:42px;overflow:hidden;border:1px solid #8b5a2d;border-radius:6px;background:#fef4d5db}.gradeControl button{width:32px;height:40px;padding:0;border:0;border-radius:0;background:#8b5a2d29;color:#2b1208;justify-content:center}.gradeControl button:disabled{cursor:not-allowed;opacity:.35}.gradeControl strong{text-align:center;color:#1d0c05;font-size:1rem;line-height:1}.characterList{display:grid;gap:12px}.characterList article{min-height:74px;padding:16px;border:1px solid #8b5a2d;border-radius:8px;background:#1d110bf0;display:flex;align-items:center;justify-content:space-between;gap:16px}.characterList p{margin:6px 0;color:#ead6b3}.characterList small,.profilePanel small,.listPage small{color:#d4b985}.rowActions{display:flex;gap:10px;flex-wrap:wrap}.campaignForm{width:min(620px,100%)}.campaignLayout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:18px;align-items:start}.panelBlock{margin-top:18px;padding:18px;border:1px solid #8b5a2d;border-radius:8px;background:#1d110bf0}.panelBlock h2{margin-top:0;font-family:Cinzel,serif}.diaryTab{position:sticky;top:90px;margin-top:18px;padding:18px;border:1px solid #c59a4f;border-radius:8px;background:#140b07f5;box-shadow:-8px 0 #75140fe6;display:grid;gap:14px}.diaryTitle{display:flex;align-items:center;gap:10px}.diaryTitle h2{margin:0;font-family:Cinzel,serif}.diaryTitle span{color:#d4b985;font-weight:700}.diaryTab textarea{min-height:360px}.diaryText{min-height:240px;margin:0;padding:12px;border:1px solid #8b5a2d;border-radius:6px;background:#f7e6bd;color:#1b0c06;white-space:pre-wrap}.inlineForm{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px}.memberGrid{display:flex;flex-wrap:wrap;gap:10px}.memberGrid span{padding:9px 12px;border:1px solid #8b5a2d;border-radius:6px;background:#2a1710d9;color:#f8ead0}.mapCreatorPage{width:min(1580px,calc(100% - 24px));margin:0 auto;padding:26px 0 48px}.mapCreatorHeader{margin-bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:20px}.mapCreatorHeader h1{margin:2px 0 0;font-family:Cinzel,serif;font-size:clamp(30px,4vw,48px)}.mapCreatorHeader .kicker{margin:14px 0 0}.mapCreatorLayout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;align-items:start}.savedMapsPanel,.mapEditorPanel{border:1px solid #8b5a2d;border-radius:10px;background:#140b07f7;box-shadow:0 18px 45px #00000057}.savedMapsPanel{position:sticky;top:90px;padding:13px}.savedMapsTitle{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.savedMapsTitle h2{margin:0;font-family:Cinzel,serif;font-size:18px}.savedMapsTitle span{color:#aa926b;font-size:11px}.savedMapsTitle button{width:36px;min-height:34px;padding:5px}.savedMapList{display:grid;gap:7px}.savedMapItem{position:relative;border:1px solid #624027;border-radius:7px;overflow:hidden;background:#26150f}.savedMapItem.active{border-color:#e0b35f;box-shadow:inset 0 0 0 1px #a47736}.savedMapItem>button:first-child{width:100%;min-height:58px;padding:7px 40px 7px 7px;border:0;border-radius:0;background:transparent;justify-content:flex-start;text-align:left}.savedMapItem>button:first-child:hover{background:#7c4f2740}.savedMapItem i{flex:0 0 auto;width:46px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:4px;display:block}.savedMapItem span{min-width:0;display:grid}.savedMapItem strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.savedMapItem small{color:#aa926b}.mapDeleteButton{position:absolute;top:13px;right:6px;width:30px;min-height:30px;padding:4px;border-color:transparent;background:transparent}.mapEmptyList{padding:20px 6px;color:#aa926b;font-size:12px;text-align:center}.mapTemplateSection{margin-top:16px;padding-top:13px;border-top:1px solid #5c3b25}.mapTemplateTitle{margin-bottom:8px;display:grid;gap:2px}.mapTemplateTitle span{color:#e6c17e;font-family:Cinzel,serif;font-size:13px;font-weight:800}.mapTemplateTitle small{color:#8f795d;font-size:9px}.mapTemplateList{display:grid;gap:6px}.mapTemplateList button{min-height:57px;padding:6px;border-color:#573822;justify-content:flex-start;text-align:left}.mapTemplateList button:hover{border-color:#b78142;background:#382016}.mapTemplateList button>i{flex:0 0 auto;width:42px;height:42px;border:1px solid rgba(255,255,255,.15);border-radius:50%}.mapTemplateList button>span{min-width:0;display:grid;gap:2px}.mapTemplateList strong{color:#ead3a3;font-size:10px}.mapTemplateList small{color:#9f896a;font-size:8px;line-height:1.25}.mapTemplateList svg{flex:0 0 auto;margin-left:auto;color:#d6a95a}.mapEditorPanel{min-width:0;overflow:hidden}.emptyMapEditor{min-height:640px;color:#aa926b;display:grid;place-content:center;justify-items:center;gap:12px}.emptyMapEditor h2{margin:0;font-family:Cinzel,serif}.mapDocumentBar{min-height:64px;padding:10px 14px;border-bottom:1px solid #704727;display:flex;align-items:center;justify-content:space-between;gap:14px}.mapNameInput{width:min(440px,55%);border-color:transparent;background:transparent;color:#fff0d0;font-family:Cinzel,serif;font-size:21px;font-weight:800}.mapNameInput:focus{border-color:#9f6a35;background:#f7e6bd;color:#24130b}.mapHistoryButtons{display:flex;align-items:center;gap:7px}.mapHistoryButtons button{width:36px;min-height:34px;padding:5px}.mapHistoryButtons span{min-width:116px;color:#aa926b;font-size:11px;text-align:right}.mapEditorToolbar{padding:10px 14px;border-bottom:1px solid #704727;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#1c0f0a}.layerTabs,.mapViewTools{display:flex;align-items:center;gap:6px}.layerTabs button,.mapViewTools button{min-height:34px;padding:6px 9px}.layerTabs button.active,.mapViewTools button.active{border-color:#d6a95a;background:#69130f}.mapViewTools label{display:flex;align-items:center;gap:5px;color:#aa926b;font-size:10px}.mapViewTools select{width:66px;padding:6px}.mapViewTools .mapTimeSelect select{width:108px}.mapBrightness input{width:92px;accent-color:#d8aa59}.mapBrightness b{width:30px;color:#dfc18a;font-size:9px;text-align:right}.mapViewTools>span{width:42px;color:#d4b985;font-size:10px;text-align:center}.mapPalette{padding:10px 14px;border-bottom:1px solid #704727;overflow-x:auto;display:flex;gap:7px;background:#28160f}.mapPaletteCategory{flex:0 0 auto;align-self:stretch;padding:4px 7px;border-left:1px solid #704727;color:#d7aa62;display:grid;place-items:center;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg)}.mapPaletteCategory:first-child{border-left:0}.mapPalette button{flex:0 0 62px;min-height:62px;padding:5px;border-color:#654329;display:grid;justify-items:center;gap:2px}.mapPalette button.active{border-color:#f0c875;background:#701610;box-shadow:inset 0 0 0 1px #b78038}.mapPalette button i,.mapPalette button>span:not(.mapObjectThumb){width:28px;height:28px;border-radius:4px;display:grid;place-items:center;font-size:22px}.mapPalette button small{font-size:9px}.mapPalette .paletteAction{flex-basis:76px;align-content:center;color:#e6bd72;font-size:10px}.objectTransformBar{min-height:48px;padding:8px 14px;border-bottom:1px solid #704727;background:#17100c;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.objectTransformBar strong,.objectTransformBar label{color:#d5b67d;display:inline-flex;align-items:center;gap:6px;font-size:10px}.objectTransformBar select{width:auto;min-width:76px;padding:5px}.objectTransformBar input[type=range]{width:100px;accent-color:#d6a95a}.objectTransformBar b{min-width:27px}.objectTransformBar .rotateWallButton{width:auto;min-height:30px;padding:5px 9px;color:#f0c875;display:inline-flex;align-items:center;gap:5px;font-size:10px}.mapCanvasViewport{min-height:560px;max-height:calc(100vh - 292px);padding:28px;overflow:auto;background:radial-gradient(circle at center,rgba(110,75,42,.18),transparent 55%),#110a07}.mapCanvas{position:relative;width:max-content;margin:auto;border:8px solid #4b2a18;outline:1px solid #a16b36;overflow:hidden;display:inline-grid;box-shadow:0 22px 55px #000000a6;-webkit-user-select:none;user-select:none}.mapCell{position:relative;width:100%;min-height:0;padding:0;border:0;border-radius:0;overflow:visible;touch-action:none}.mapCell:hover{border:0;filter:brightness(1.18)}.mapCanvas.showGrid .mapCell{box-shadow:inset -1px -1px #1f140c59}.mapCell.selectedObjectCell{z-index:20;box-shadow:inset 0 0 0 3px #ffd36e,0 0 14px #ffb737cc}.mapObjectSprite,.mapObjectThumb{background-repeat:no-repeat;background-size:400% 400%}.mapObjectThumb{width:36px;height:36px;display:block;filter:drop-shadow(0 2px 3px rgba(0,0,0,.7))}.mapObjectSprite{position:absolute;z-index:2;top:-3%;right:-3%;bottom:-3%;left:-3%;pointer-events:none;filter:drop-shadow(0 3px 3px rgba(0,0,0,.68))}.mapObjectSprite.wallSprite{top:-8%;right:-8%;bottom:-8%;left:-8%}.mapObjectSprite.gmLayerSprite{opacity:.58;filter:sepia(.4) hue-rotate(290deg) drop-shadow(0 0 5px #cf4cff)}.mapLighting{position:absolute;z-index:50;top:0;right:0;bottom:0;left:0;pointer-events:none}.mapBrightnessOverlay{position:absolute;z-index:51;top:0;right:0;bottom:0;left:0;pointer-events:none}.mapFireGlow{position:absolute;z-index:52;border-radius:50%;background:radial-gradient(circle,rgba(255,240,183,.88) 0,rgba(255,182,57,.58) 24%,rgba(207,75,20,.25) 58%,transparent 100%);mix-blend-mode:screen;pointer-events:none}.mapFireGlow-day{opacity:.26}.mapFireGlow-dawn{opacity:.48}.mapFireGlow-dusk{opacity:.72}.mapFireGlow-night{opacity:1}.mapLighting-dawn{background:#ff8b4826;mix-blend-mode:color}.mapLighting-dusk{background:#4b275b40;mix-blend-mode:multiply}.mapLighting-night{background:radial-gradient(circle at 62% 46%,rgba(95,124,149,.1),transparent 32%),#08183566;mix-blend-mode:multiply}.terrain-grass,.terrain-forest,.terrain-dirt,.terrain-stone,.terrain-sand,.terrain-water,.terrain-snow,.terrain-mud,.terrain-wood,.terrain-lava,.terrain-flagstone,.terrain-mossstone{background-image:url(/map-assets/medieval-terrain.png)!important;background-repeat:no-repeat!important;background-size:400% 300%!important}.terrain-grass{background-position:0 0!important}.terrain-forest{background-position:33.333% 0!important}.terrain-dirt{background-position:66.667% 0!important}.terrain-stone{background-position:100% 0!important}.terrain-sand{background-position:0 50%!important}.terrain-water{background-position:33.333% 50%!important}.terrain-snow{background-position:66.667% 50%!important}.terrain-mud{background-position:100% 50%!important}.terrain-wood{background-position:0 100%!important}.terrain-lava{background-position:33.333% 100%!important}.terrain-flagstone{background-position:66.667% 100%!important}.terrain-mossstone{background-position:100% 100%!important}.mapVersionsOverlay{position:fixed;z-index:300;top:0;right:0;bottom:0;left:0;padding:30px;background:#050302c7;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center}.mapVersionsPanel{width:min(520px,100%);max-height:78vh;padding:16px;border:1px solid #b77b3e;border-radius:10px;overflow-y:auto;background:#1d100b;box-shadow:0 24px 70px #000000b3;display:grid;gap:7px}.mapVersionsPanel>div{margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}.mapVersionsPanel h2{margin:0;font-family:Cinzel,serif;font-size:18px;display:flex;align-items:center;gap:8px}.mapVersionsPanel>div button{width:34px;min-height:32px;padding:4px}.mapVersionsPanel>button{min-height:52px;justify-content:space-between;text-align:left}.mapVersionsPanel>button span{display:grid;gap:2px}.mapVersionsPanel small,.mapVersionsPanel p{color:#aa926b}.enemyPage{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:30px 0 52px}.enemyPageHeader{margin-bottom:20px;display:flex;align-items:end;justify-content:space-between;gap:20px}.enemyPageHeader h1{margin:2px 0 0;font-family:Cinzel,serif;font-size:clamp(28px,4vw,46px)}.enemyPageHeader .kicker{margin:16px 0 0}.enemyForm{margin-bottom:20px;padding:20px;border:1px solid #c59a4f;border-radius:10px;background:#1b0f0af7;box-shadow:0 16px 38px #0000004d}.enemyForm .formHeader{margin-bottom:14px}.enemyForm h2,.sectionHeading h2{margin:0;font-family:Cinzel,serif}.enemyForm .kicker{margin:0 0 4px}.enemyFormGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.enemyTextFields{margin:12px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.enemyLayout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:18px;align-items:start}.enemyLibrary,.campaignEnemyList{padding:20px;border:1px solid #8b5a2d;border-radius:10px;background:#140b07f5}.campaignEnemyList{position:sticky;top:90px}.sectionHeading{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.sectionHeading p{margin:5px 0 0;color:#d4b985}.sectionHeading>span{padding:6px 9px;border:1px solid #76502d;border-radius:99px;color:#d4b985;font-size:12px}.enemyFilters{margin-bottom:16px;display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:10px}.searchField{position:relative;display:block}.searchField svg{position:absolute;top:12px;left:12px;color:#5b3420;pointer-events:none}.searchField input{padding-left:40px}.presetGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.presetCard,.activeEnemyCard{padding:14px;border:1px solid #6f4829;border-radius:8px;background:linear-gradient(145deg,#311b12f5,#1e100bfa)}.presetCard{display:grid;gap:12px}.enemyCardTitle{min-width:0;display:flex;align-items:center;gap:10px}.enemyCardTitle>div{min-width:0}.enemyCardTitle h3{margin:0;overflow:hidden;font-family:Cinzel,serif;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.enemyCardTitle span:not(.enemyIcon){color:#d4b985;font-size:11px}.enemyIcon{flex:0 0 auto;width:38px;height:38px;border:1px solid #975040;border-radius:50%;background:#5b1712;color:#ffbea9;display:grid;place-items:center}.enemyIcon.animal{border-color:#897044;background:#4e3b1d;color:#efd590}.enemyIcon.sobrenatural,.enemyIcon.mortovivo{border-color:#718c9d;background:#263844;color:#c5ecff}.enemyStats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.enemyStats span{padding:7px 4px;border:1px solid rgba(139,90,45,.48);border-radius:5px;color:#cdb588;font-size:9px;text-align:center;text-transform:uppercase}.enemyStats b{color:#fff0d0;display:block;font-family:Cinzel,serif;font-size:17px}.presetCard p,.activeEnemyCard p{margin:0;color:#ead6b3;font-size:12px;line-height:1.45}.presetCard>small,.activeEnemyCard>small{color:#aa926b;font-size:10px;line-height:1.4}.activeEnemies{max-height:calc(100vh - 205px);overflow-y:auto;display:grid;gap:10px}.activeEnemyCard{display:grid;gap:11px}.adminPage{width:min(1220px,calc(100% - 40px));margin:0 auto;padding:42px 0 72px}.adminHeader,.adminSectionTitle,.adminUserIdentity,.adminPassword,.adminCampaignList article,.adminCampaignStats{display:flex;align-items:center}.adminHeader{justify-content:space-between;gap:24px;margin-bottom:28px}.adminHeader h1{margin:5px 0 8px;display:flex;align-items:center;gap:10px}.adminHeader p,.adminSectionTitle h2,.adminSectionTitle span{margin:0}.adminSection{margin-top:22px;padding:22px;border:1px solid rgba(164,112,57,.55);border-radius:10px;background:linear-gradient(145deg,#301f14f0,#18110df7);box-shadow:0 18px 55px #0000004d}.adminSectionTitle{justify-content:space-between;margin-bottom:17px}.adminSectionTitle h2{display:flex;align-items:center;gap:9px;font-size:20px}.adminSectionTitle span{color:#a9936d;font-size:12px}.adminUserList{display:grid;gap:11px}.adminUserCard{display:grid;grid-template-columns:minmax(170px,1fr) minmax(230px,1.1fr) minmax(390px,2fr) auto;align-items:center;gap:15px;padding:14px;border:1px solid rgba(137,91,49,.45);border-radius:8px;background:#140d0aa8}.adminUserIdentity{min-width:0;gap:11px}.adminUserIdentity>div{min-width:0}.adminUserIdentity strong,.adminUserIdentity small{display:block}.adminUserIdentity strong{overflow:hidden;color:#f1d6a4;text-overflow:ellipsis}.adminUserIdentity small{margin-top:3px;color:#9f8a68}.adminAvatar{flex:0 0 auto;width:39px;height:39px;border:1px solid #6f5637;border-radius:50%;display:grid;place-items:center;background:#2a2118;color:#c6aa76}.adminAvatar.superadmin{border-color:#c59643;background:#4b3310;color:#ffd36e;box-shadow:0 0 16px #dea43b33}.adminUserStats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.adminUserStats span{padding:7px 4px;border:1px solid rgba(123,84,46,.36);border-radius:5px;color:#988363;font-size:9px;text-align:center;text-transform:uppercase}.adminUserStats b{display:block;color:#ead0a0;font-size:15px}.adminPassword{gap:8px}.adminPassword svg{flex:0 0 auto;color:#b7955b}.adminPassword input{min-width:175px}.adminPassword button,.adminDeleteUser{white-space:nowrap}.adminCampaignList{display:grid;gap:9px}.adminCampaignList article{justify-content:space-between;gap:18px;padding:13px 14px;border:1px solid rgba(137,91,49,.42);border-radius:7px;background:#140d0a9e}.adminCampaignList article>div:first-child{flex:1;min-width:0}.adminCampaignList strong,.adminCampaignList article>div:first-child span{display:block}.adminCampaignList strong{color:#f0d5a2}.adminCampaignList article>div:first-child span,.adminCampaignStats{color:#a48d69;font-size:11px}.adminCampaignStats{gap:12px}.successMessage{padding:11px 14px;border:1px solid rgba(75,143,93,.7);border-radius:6px;background:#184a2659;color:#b8e7bd}.enemyHealth{position:relative}.enemyHealth>div:first-child{margin-bottom:5px;display:flex;align-items:center;gap:6px;color:#d4b985;font-size:12px}.enemyHealth>div:first-child strong{margin-left:auto;color:#ffe4b0}.healthTrack{height:8px;border-radius:99px;overflow:hidden;background:#180a08}.healthTrack i{height:100%;border-radius:inherit;background:linear-gradient(90deg,#74130f,#d74a35);display:block;transition:width .2s ease}.healthControls{margin-top:7px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.healthControls button{min-height:30px;padding:4px}.activeEnemyStats{display:flex;gap:6px}.activeEnemyStats span{flex:1;padding:6px;border-radius:4px;background:#754c2a40;color:#cdb588;font-size:10px;text-align:center}.activeEnemyStats b{color:#fff0d0}.emptyEnemies{min-height:180px;border:1px dashed #6f4829;border-radius:8px;color:#a68b68;display:grid;place-content:center;justify-items:center}.emptyEnemies p{margin-bottom:0}.battlePage{width:min(1540px,calc(100% - 32px));margin:0 auto;padding:30px 0 48px}.battleHeader{margin-bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:20px}.battleHeader h1{margin:2px 0 0;font-family:Cinzel,serif;font-size:clamp(28px,4vw,48px)}.battleHeader .kicker{margin:16px 0 0}.backButton{min-height:36px;padding:7px 10px}.mapActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.battleLayout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.mapPanel,.dicePanel{border:1px solid #8b5a2d;border-radius:10px;background:#140b07f5;box-shadow:0 18px 50px #00000057}.mapPanel{padding:10px}.boardControlBar{min-height:45px;padding:0 2px 9px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.liveSync{color:#9fc68e;display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:800;text-transform:uppercase}.liveSync i{width:8px;height:8px;border-radius:50%;background:#63bf66;box-shadow:0 0 9px #63bf66cc;animation:syncPulse 1.6s ease-in-out infinite}.liveSync.syncing i{background:#d6a95a;box-shadow:0 0 9px #d6a95acc;animation-duration:.55s}@keyframes syncPulse{50%{opacity:.35;transform:scale(.72)}}.boardMasterTools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.boardPlayTools{display:flex;align-items:center;gap:4px}.boardPlayTools button{width:32px;min-height:30px;padding:4px}.boardPlayTools button.active{border-color:#f0c875;background:#67150f;color:#ffe3a9}.boardMasterTools button,.boardMasterTools label{min-height:32px;padding:5px 8px;border:1px solid #654329;border-radius:5px;background:#21120d;color:#cbb48b;display:inline-flex;align-items:center;gap:5px;font-size:9px}.boardMasterTools button.active{border-color:#d6a95a;background:#62140f;color:#ffe2a9}.boardMasterTools select{width:auto;min-width:82px;padding:4px 6px;font-size:9px}.battleMap{position:relative;width:100%;aspect-ratio:16 / 9;min-height:430px;border:2px solid #bd8748;border-radius:6px;overflow:hidden;background:radial-gradient(ellipse at 30% 30%,rgba(102,119,55,.9) 0 14%,transparent 15%),radial-gradient(ellipse at 68% 62%,rgba(118,83,41,.9) 0 17%,transparent 18%),radial-gradient(ellipse at 68% 28%,rgba(82,105,45,.8) 0 9%,transparent 10%),linear-gradient(145deg,#395f68 0,#395f68 24%,#a78b5c 25%,#a78b5c 76%,#31505c 77%);background-position:center;background-size:cover;-webkit-user-select:none;user-select:none}.battleMap.hasMap{background-position:center;background-repeat:no-repeat;background-size:100% 100%}.battleMap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(255,244,211,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,244,211,.2) 1px,transparent 1px);background-size:52px 52px;box-shadow:inset 0 0 70px #0f08057a}.emptyMap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:8px;color:#fff0d0;text-align:center;text-shadow:0 2px 6px #120b08;pointer-events:none}.emptyMap strong{font-family:Cinzel,serif;font-size:22px}.emptyMap span{color:#f1d9ac}.characterToken{position:absolute;z-index:3;width:76px;min-height:0;padding:0;border:0;background:transparent;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:4px;cursor:default;touch-action:none;filter:drop-shadow(0 4px 4px rgba(0,0,0,.65));transition:left .24s ease-out,top .24s ease-out,filter .2s ease}.characterToken:hover{border:0;background:transparent}.characterToken.movable{cursor:grab}.characterToken.movable:active{z-index:5;cursor:grabbing}.characterToken.dragging{z-index:7;transition:none}.characterToken.activeTurn .tokenPortrait{box-shadow:0 0 0 3px #fff1a8,0 0 0 7px #881c13d9,0 0 25px #ffce59d9;animation:activeTurnPulse 1.25s ease-in-out infinite}.characterToken.attacking{z-index:9;animation:tokenAttack .72s cubic-bezier(.2,.8,.2,1)}.characterToken.hit{z-index:8;animation:tokenHit .7s ease-out}.characterToken.collision{animation:tokenCollision .24s ease-in-out}.tokenConditions{position:absolute;top:1px;right:1px;width:20px;height:20px;border:2px solid #ffd86b;border-radius:50%;background:#74140f;color:#fff0bd;display:grid;place-items:center;font-size:9px;font-weight:900}@keyframes activeTurnPulse{50%{filter:brightness(1.18)}}@keyframes tokenAttack{0%,to{transform:translate(-50%,-50%) scale(1)}38%{transform:translate(-50%,-50%) scale(1.28) rotate(-5deg)}65%{transform:translate(-50%,-50%) scale(.94) rotate(3deg)}}@keyframes tokenHit{0%,to{transform:translate(-50%,-50%);filter:drop-shadow(0 4px 4px rgba(0,0,0,.65))}25%{transform:translate(calc(-50% - 8px),-50%) rotate(-7deg);filter:sepia(1) saturate(5) drop-shadow(0 0 12px #ff3b22)}55%{transform:translate(calc(-50% + 7px),-50%) rotate(5deg)}}@keyframes tokenCollision{0%,to{transform:translate(-50%,-50%)}30%{transform:translate(calc(-50% - 5px),-50%)}65%{transform:translate(calc(-50% + 5px),-50%)}}.battleFog,.combatEffects,.weatherLayer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.battleFog{z-index:8;filter:drop-shadow(0 0 7px rgba(0,0,0,.9))}.battleFog>rect{fill:#03070afb}.battleFog.masterPreview>rect{fill:#04070994}.battleFog.exploredShade>rect{fill:#05090d8a}.battleFog.masterPreview+.exploredShade>rect{fill:#05090d47}.boardLight{position:absolute;z-index:2;min-height:0;padding:0;border:0;border-radius:50%;pointer-events:none;mix-blend-mode:screen;filter:blur(1px)}.boardLight:hover{border:0}.boardLight svg{position:absolute;top:50%;left:50%;color:#fff4bb;transform:translate(-50%,-50%);filter:drop-shadow(0 0 5px #ff8b22);pointer-events:auto}.boardLight.selected{outline:2px dashed rgba(255,232,145,.7)}.boardDoor,.boardMarker{position:absolute;min-height:0;padding:4px;transform:translate(-50%,-50%);display:grid;place-items:center}.boardDoor{z-index:7;width:31px;height:31px;border-color:#d1a25b;border-radius:6px;background:#2a170fe6;color:#f3d195}.boardDoor.open{border-color:#72bd78;background:#194323e0;color:#c9f4c7}.boardMarker{z-index:7;width:34px;height:34px;border-color:#dc5f4c;border-radius:50%;background:#66110eeb;color:#ffd3a3}.boardMarker.hiddenMarker{z-index:9;border-style:dashed;opacity:.7}.boardMarker.selected{box-shadow:0 0 0 3px #ffd56e,0 0 18px #e03c27}.remoteCursor{position:absolute;z-index:15;color:#7be7ff;filter:drop-shadow(0 1px 3px #00151d);pointer-events:none;transition:left .08s linear,top .08s linear}.remoteCursor span{margin:12px 0 0 2px;padding:2px 5px;border-radius:3px;background:#05232de6;color:#c8f7ff;font-size:8px;white-space:nowrap}.measurementLayer{position:absolute;z-index:13;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.measurementLayer line,.measurementLayer ellipse{fill:#d5312038;stroke:#ffe680;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:7 4;filter:drop-shadow(0 0 4px #c93820)}.measurementLabel{position:absolute;z-index:14;padding:4px 7px;border:1px solid #f0c875;border-radius:4px;background:#2c1510;color:#ffeab5;font-size:9px;font-weight:900;transform:translate(8px,-50%);pointer-events:none}.combatEffects{z-index:10;overflow:visible}.combatEffects line{stroke:#ffda67;stroke-width:1.2;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px #ff5e21);stroke-dasharray:12 8;animation:attackTrail .62s ease-out both}.combatEffects circle{fill:transparent;stroke:#ff6b32;stroke-width:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 8px #ffcf61);transform-box:fill-box;transform-origin:center;animation:attackImpact .72s ease-out both}@keyframes attackTrail{0%{opacity:0;stroke-dashoffset:70}35%{opacity:1}to{opacity:0;stroke-dashoffset:0}}@keyframes attackImpact{0%,35%{opacity:0;transform:scale(.15)}55%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:scale(2.5)}}.weatherLayer{z-index:11;overflow:hidden}.weather-rain,.weather-storm{background:linear-gradient(180deg,#111f2d14,#0c182733)}.weather-rain i,.weather-storm i{position:absolute;top:-18%;width:1px;height:15%;opacity:.7;background:linear-gradient(transparent,#bfdef5e6);transform:rotate(12deg);animation:weatherRain linear infinite}@keyframes weatherRain{to{top:108%;transform:translate(-75px) rotate(12deg)}}.weather-snow i{position:absolute;top:-8%;width:7px;height:7px;border-radius:50%;background:#f1f9ffe6;box-shadow:0 0 5px #ffffffa6;animation:weatherSnow linear infinite}@keyframes weatherSnow{45%{transform:translate(28px) rotate(120deg)}to{top:106%;transform:translate(-18px) rotate(280deg)}}.weather-mist{background:radial-gradient(ellipse at 15% 40%,rgba(225,232,221,.44),transparent 42%),radial-gradient(ellipse at 78% 65%,rgba(211,222,216,.38),transparent 48%);-webkit-backdrop-filter:contrast(.82) saturate(.66);backdrop-filter:contrast(.82) saturate(.66);animation:weatherMist 8s ease-in-out infinite alternate}@keyframes weatherMist{0%{transform:translate(-3%) scale(1.08);opacity:.7}to{transform:translate(3%) scale(1.12);opacity:.95}}.weather-storm{background-color:#060f1b47}.lightningFlash{position:absolute;top:0;right:0;bottom:0;left:0;background:#dcecffd9;opacity:0;animation:lightningFlash 5.8s steps(1) infinite}@keyframes lightningFlash{0%,86%,89%,92%,to{opacity:0}87%,90%{opacity:.78}88%,91%{opacity:.16}}.tokenPortrait{width:62px;height:62px;border:4px solid #6c6c6c;border-radius:50% 50% 50% 12%;background:#28150e;color:#f6dba8;display:grid;place-items:center;overflow:hidden;transform:rotate(-45deg)}.movable .tokenPortrait{border-color:#d6a95a;box-shadow:0 0 0 2px #64120e,0 0 16px #d6a95a73}.enemyToken .tokenPortrait{border-color:#b4362b;background:#4f0e0b;color:#ffd0c5;border-radius:50% 50% 12%}.tokenPortrait img,.tokenPortrait>span:not(.tokenHealth){width:82px;height:82px;object-fit:cover;display:grid;place-items:center;font-family:Cinzel,serif;font-weight:900;transform:rotate(45deg)}.enemyToken .tokenPortrait>svg{transform:rotate(45deg)}.tokenName{max-width:100px;padding:3px 6px;border:1px solid #6b4728;border-radius:4px;overflow:hidden;color:#fff1d0;background:#140b07e6;font-size:11px;font-weight:800;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.tokenHealth{margin-top:-3px;padding:2px 6px;border-radius:99px;background:#71150f;color:#ffd8c7;font-size:9px;font-weight:900}.tokenLegend{min-height:38px;padding:10px 4px 0;display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:#dec79c;font-size:12px}.tokenLegend span{display:flex;align-items:center;gap:6px}.tokenLegend small{margin-left:auto;color:#d4b985}.legendDot{width:10px;height:10px;border:2px solid #d6a95a;border-radius:50%;display:inline-block}.legendDot.others{border-color:#777}.legendDot.enemy{border-color:#d34134;background:#6b110d}.dicePanel{position:sticky;top:90px;padding:18px}.combatPanel{margin:-4px -4px 18px;padding:12px;border:1px solid #744329;border-radius:7px;background:linear-gradient(145deg,rgba(100,20,15,.32),transparent 55%),#1d100b}.combatTitle{display:flex;align-items:center;gap:9px}.combatTitle>div{min-width:0;flex:1}.combatTitle h2{margin:0;font-family:Cinzel,serif;font-size:15px}.combatTitle span{color:#bba176;font-size:9px}.combatTitle>button{width:32px;min-height:30px;padding:4px}.initiativeOrder{max-height:190px;margin-top:10px;overflow-y:auto;display:grid;gap:4px}.initiativeOrder>div{min-height:31px;padding:4px 7px;border:1px solid #4f3120;border-radius:4px;background:#24140e;display:grid;grid-template-columns:20px minmax(0,1fr) 24px;align-items:center;gap:5px}.initiativeOrder>div.active{border-color:#f0c875;background:#631510;box-shadow:inset 3px 0 #f0c875,0 0 12px #d24b2838}.initiativeOrder span,.initiativeOrder b{color:#d6a95a;font-family:Cinzel,serif;font-size:10px;text-align:center}.initiativeOrder strong{overflow:hidden;color:#eed7aa;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.combatActions{margin-top:9px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px}.combatActions>div{display:flex;gap:4px}.combatActions button{min-height:32px;padding:5px 7px}.combatActions select{min-width:0;padding:6px;font-size:10px}.combatActions .attackButton{grid-column:1 / -1;border-color:#a23e26;background:#72160f;color:#ffe0b1}.attackResult{margin:8px 0 0;padding:7px;border-radius:4px;font-size:10px;font-weight:900;text-align:center}.attackResult.success{border:1px solid #5f9d5f;background:#225b2a59;color:#bbefb8}.attackResult.failure{border:1px solid #9c4c3f;background:#7019134d;color:#f1b2a6}.tacticalInspector{margin:0 -4px 16px;padding:11px;border:1px solid #6c462b;border-radius:7px;background:#20120d;display:grid;gap:9px}.inspectorTitle{display:flex;align-items:center;gap:7px;color:#e9c985}.inspectorTitle strong{min-width:0;flex:1;overflow:hidden;font-family:Cinzel,serif;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.inspectorTitle button{width:28px;min-height:27px;padding:3px}.boardHealthControl{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:7px}.boardHealthControl button{min-height:32px;padding:5px;font-size:9px}.boardHealthControl b{min-width:55px;color:#ffdda0;font-family:Cinzel,serif;text-align:center}.conditionGrid{display:flex;flex-wrap:wrap;gap:4px}.conditionGrid button{min-height:27px;padding:4px 6px;font-size:8px}.conditionGrid button.active,.tacticalInspector>button.active{border-color:#f0c875;background:#71160f;color:#ffe3a4}.tacticalInspector label{color:#bca47b;display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:9px}.tacticalInspector input,.tacticalInspector select{min-width:0;padding:6px}.tacticalInspector input[type=range]{accent-color:#d6a95a}.tacticalInspector input[type=color]{width:100%;height:31px;padding:2px}.tacticalInspector .dangerAction{min-height:31px;border-color:#8f3428;background:#70120e80;color:#ffc5b6}.diceTitle{display:flex;align-items:center;gap:10px}.diceTitle h2,.rollHistory h3{margin:0;font-family:Cinzel,serif}.diceTitle span{color:#d4b985;font-size:12px}.diceTypes{margin-top:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.diceTypes button{min-height:38px;padding:7px;font-weight:800}.diceTypes button.active{border-color:#efc676;background:#77150f;box-shadow:inset 0 0 0 1px #d6a95a}.diceQuantity{margin:15px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#d4b985;font-size:13px;font-weight:800}.diceQuantity div{display:grid;grid-template-columns:36px 38px 36px;align-items:center;text-align:center}.diceQuantity button{min-height:34px;padding:6px}.rollingDie{width:110px;height:110px;margin:18px auto;background:linear-gradient(145deg,#af2a20,#5a0e0a);color:#ffe6ab;clip-path:polygon(50% 0,96% 25%,96% 75%,50% 100%,4% 75%,4% 25%);display:grid;place-items:center;filter:drop-shadow(0 8px 8px rgba(0,0,0,.5))}.rollingDie span{font-family:Cinzel,serif;font-size:34px;font-weight:900}.rollingDie.rolling{animation:diceTumble .22s linear infinite}@keyframes diceTumble{0%{transform:rotate(-8deg) scale(.92)}50%{transform:rotate(8deg) scale(1.06)}to{transform:rotate(-8deg) scale(.92)}}.lastRoll{margin:-6px 0 14px;display:grid;justify-items:center;color:#d4b985}.lastRoll strong{color:#ffe6ab;font-family:Cinzel,serif;font-size:22px}.lastRoll span{max-width:100%;overflow-wrap:anywhere;font-size:12px;text-align:center}.rollButton{width:100%}.rollHistory{max-height:300px;margin-top:22px;padding-top:16px;border-top:1px solid #6b4728;overflow-y:auto}.rollHistory h3{margin-bottom:10px;font-size:15px}.rollEntry{padding:8px 0;border-bottom:1px solid rgba(139,90,45,.38);display:flex;align-items:center;justify-content:space-between;gap:10px}.rollEntry div{min-width:0;display:grid;gap:2px}.rollEntry span{overflow:hidden;color:#d4b985;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.rollEntry b{color:#efc676;font-family:Cinzel,serif;font-size:20px}@media(max-width:860px){.hero,.sheetGrid,.dashboardActions,.threeCols,.campaignLayout,.inlineForm,.battleLayout,.enemyLayout,.mapCreatorLayout{grid-template-columns:1fr}.diaryTab,.dicePanel,.campaignEnemyList,.savedMapsPanel{position:static}.topbar,.formHeader,.battleHeader,.enemyPageHeader,.mapCreatorHeader{align-items:flex-start;flex-direction:column;height:auto;padding:14px 18px}.twoCols,.skillRow,.inventoryAdd,.inventoryItem,.imageField,.enemyFormGrid,.enemyTextFields{grid-template-columns:1fr}.activeEnemies{max-height:none}.mapDocumentBar,.mapEditorToolbar{align-items:flex-start;flex-direction:column}.mapNameInput{width:100%}.mapCanvasViewport{min-height:480px;max-height:none}.battleMap{min-height:420px;aspect-ratio:auto}}@media(max-width:520px){.battlePage{width:min(100% - 16px,1540px)}.battleMap{min-height:520px}.tokenLegend small{width:100%;margin-left:0}.enemyPage{width:min(100% - 16px,1440px)}.mapCreatorPage{width:min(100% - 12px,1580px)}.enemyFilters,.presetGrid{grid-template-columns:1fr}}
