.pyencounters-shell{min-height:100vh;}
.pyencounters-topbar{position:sticky;top:0;z-index:10;}
.pyencounters-container{padding-bottom:34px;}
.pyencounters-hero{display:block;padding:24px 28px;}
.pyencounters-title{font-size:44px;line-height:1.02;margin:8px 0 6px;font-weight:900;letter-spacing:-.04em;color:var(--py-text-strong);}
.pyencounters-lede{font-size:17px;line-height:1.4;color:var(--py-muted);max-width:980px;margin:0;}
.builder-tab-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.mode-tab{border:2px solid var(--line);border-radius:999px;background:var(--py-elevated-panel);color:var(--py-text-strong);font-weight:900;padding:9px 17px;cursor:pointer;box-shadow:0 4px 0 color-mix(in srgb,var(--line) 24%,transparent);}
.mode-tab.active{background:var(--accent);color:var(--py-on-primary);border-color:var(--accent);}
.encounter-builder-panel{padding:24px 28px;}
.panel-heading-row,.search-heading-row,.roster-heading-row{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px;}
.browser-heading{margin:2px 0 0;font-size:30px;line-height:1.1;color:var(--py-text-strong);font-weight:900;letter-spacing:-.02em;}
.section-heading{margin:2px 0 0;font-size:24px;line-height:1.1;color:var(--py-text-strong);font-weight:900;letter-spacing:-.02em;}
.top-actions,.creature-search-row,.roster-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.file-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.builder-note{border:2px solid color-mix(in srgb,var(--accent) 34%,var(--py-border-soft));background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:14px;padding:10px 13px;font-weight:800;color:var(--py-text);margin:0 0 16px;}
.encounter-details-grid{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(360px,1.25fr);gap:14px;align-items:start;}
.field textarea{width:100%;resize:vertical;min-height:86px;border:2px solid var(--line);border-radius:14px;padding:11px 13px;background:var(--py-elevated-panel);color:var(--py-text-strong);font:inherit;box-sizing:border-box;}
.builder-section-line{height:2px;background:var(--py-border-soft);opacity:.85;margin:18px 0;}
.compact-row-heading{margin-bottom:10px;}
.creature-search-row{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;gap:10px;align-items:end;}
.creature-search-field{min-width:0;}
.monster-pick-list{display:grid;gap:8px;max-height:300px;overflow:auto;padding-right:4px;margin-top:12px;}
.monster-pick-list:empty{display:none;}
.monster-pick-card{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;}
.monster-pick-card h3{margin:0;color:var(--py-text-strong);font-size:20px;line-height:1.1;}
.monster-meta-line{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px;color:var(--py-muted);font-weight:800;}
.monster-meta-chip{border:1px solid var(--py-border-soft);background:var(--py-elevated-panel);border-radius:999px;padding:3px 8px;font-size:12px;color:var(--py-text);}
.roster-list{display:grid;gap:12px;}
.empty-roster,.empty-results{border:2px dashed var(--py-border-soft);border-radius:16px;padding:18px;text-align:center;color:var(--py-muted);background:var(--py-panel-soft);}
.empty-roster h3,.empty-results h3{margin:0 0 5px;color:var(--py-text-strong);font-size:21px;}
.empty-roster p,.empty-results p{margin:0;}
.roster-card{border:2px solid var(--line);border-radius:18px;background:var(--py-panel-soft);box-shadow:var(--shadow);overflow:hidden;}
.roster-card-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:14px 16px;border-bottom:2px solid var(--py-border-soft);}
.roster-title-block{min-width:0;}
.roster-title-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;}
.roster-title-row h3{margin:0;color:var(--py-text-strong);font-size:23px;line-height:1.1;}
.roster-kind-pill{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;border:2px solid var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:999px;padding:3px 7px;}
.roster-subline{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;color:var(--py-muted);font-weight:850;}
.roster-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.roster-card-body{padding:14px 16px 16px;}
.roster-control-grid{display:grid;grid-template-columns:1.2fr .55fr .85fr .7fr .7fr .7fr;gap:10px;align-items:end;}
.roster-control-grid.pc-grid{grid-template-columns:1.1fr .6fr 1.4fr;}
.roster-card .field input,.roster-card .field select,.roster-card .field textarea{font-weight:850;}
.roster-card .field textarea{min-height:58px;}
.field-help{font-size:12px;color:var(--py-muted);font-weight:800;margin-top:4px;}
.btn.danger{border-color:#b3261e;color:#b3261e;background:color-mix(in srgb,#b3261e 8%,var(--py-elevated-panel));}
.btn.danger:hover{background:#b3261e;color:white;}
.manager-placeholder{font-size:18px;line-height:1.5;color:var(--py-muted);}
.manager-placeholder p{max-width:820px;}
.pyencounters-legal-note{margin-top:18px;font-size:14px;line-height:1.45;}
.pyencounters-legal-note strong{color:var(--py-text-strong);}
.builder-toast{position:fixed;left:50%;bottom:44px;transform:translate(-50%,20px);width:min(520px,calc(100vw - 48px));background:rgba(14,55,94,.96);color:white;border-radius:18px;padding:18px 22px;box-shadow:0 18px 48px rgba(0,0,0,.35);font-weight:900;opacity:0;transition:.18s ease;pointer-events:none;z-index:40;text-align:center;}
.builder-toast.show{opacity:1;transform:translate(-50%,0);}
@media (max-width:1100px){.roster-control-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.roster-control-grid.pc-grid{grid-template-columns:1fr;}}
@media (max-width:900px){.encounter-details-grid{grid-template-columns:1fr;}.creature-search-row{grid-template-columns:1fr auto auto;}}
@media (max-width:680px){.panel-heading-row,.search-heading-row,.roster-heading-row,.roster-card-header{flex-direction:column;align-items:stretch;}.pyencounters-title{font-size:38px;}.creature-search-row,.roster-control-grid{grid-template-columns:1fr;}.monster-pick-card{grid-template-columns:1fr;}.monster-pick-card .btn{width:100%;}.roster-card-actions{justify-content:flex-start;}.top-actions,.roster-tools{align-items:stretch;}.top-actions .btn,.roster-tools .btn,.file-btn{width:100%;}}

/* v0.1 encounter builder polish */
.encounter-builder-panel{padding:20px 24px;}
.compact-hero.pyencounters-hero{padding:20px 24px;}
.pyencounters-title{font-size:40px;margin:6px 0 4px;}
.pyencounters-lede{font-size:16px;}
.panel-heading-row,.search-heading-row,.roster-heading-row{margin-bottom:10px;}
.browser-heading{font-size:28px;}
.section-heading{font-size:22px;}
.builder-section-line{margin:14px 0;}
.encounter-details-grid{grid-template-columns:minmax(220px,.6fr) minmax(360px,1.4fr);gap:12px;}
.field textarea{min-height:70px;}
.monster-pick-card{padding:10px 12px;border-radius:14px;}
.monster-pick-card .btn{padding:8px 13px;font-size:14px;min-height:auto;}
.monster-pick-card h3{font-size:18px;}
.monster-meta-line{gap:5px;margin-top:5px;}
.monster-meta-chip{font-size:11px;padding:2px 7px;}
.roster-list{gap:10px;}
.roster-card.encounter-card{border-radius:16px;box-shadow:0 8px 24px rgba(14,55,94,.08);}
.slim-card-header{padding:12px 14px;align-items:center;border-bottom:1px solid var(--py-border-soft);}
.roster-title-row h3{font-size:22px;}
.roster-kind-pill{font-size:10px;padding:2px 7px;border-width:1.5px;}
.stat-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.stat-bar span{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--py-border-soft);background:var(--py-elevated-panel);border-radius:999px;padding:4px 8px;color:var(--py-text);font-weight:850;font-size:13px;line-height:1.1;}
.stat-bar strong{color:var(--py-text-strong);font-weight:950;}
.compact-actions{gap:6px;flex-wrap:nowrap;}
.btn.small-btn{padding:7px 12px;font-size:14px;min-height:auto;border-radius:12px;box-shadow:none;}
.compact-card-body{padding:12px 14px 14px;}
.override-grid{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(70px,.35fr) minmax(140px,.65fr) minmax(110px,.5fr) minmax(120px,.55fr) minmax(120px,.55fr);gap:10px;align-items:end;}
.override-grid.pc-grid{grid-template-columns:minmax(200px,1fr) minmax(120px,.45fr) minmax(260px,1.2fr);}
.override-grid .field{font-size:14px;}
.override-grid input,.override-grid select,.override-grid textarea{padding:9px 11px;border-radius:12px;min-height:auto;}
.override-grid textarea{min-height:48px;}
.field-help{display:none;}
@media (max-width:1180px){.override-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.override-grid.pc-grid{grid-template-columns:1fr;}}
@media (max-width:760px){.override-grid,.override-grid.pc-grid{grid-template-columns:1fr;}.compact-actions{flex-wrap:wrap;}.slim-card-header{align-items:flex-start;}}

/* v0.1 player token + collapsed stat block pass */
.override-grid.pc-grid{grid-template-columns:minmax(200px,1.2fr) minmax(100px,.45fr) minmax(100px,.45fr) minmax(120px,.55fr);}
.embedded-stat-block{margin-top:12px;border:1.5px solid var(--py-border-soft);border-radius:14px;background:var(--py-elevated-panel);overflow:hidden;}
.embedded-stat-block summary{cursor:pointer;list-style:none;padding:10px 12px;font-weight:950;color:var(--accent);display:flex;align-items:center;justify-content:space-between;gap:10px;}
.embedded-stat-block summary::-webkit-details-marker{display:none;}
.embedded-stat-block summary::after{content:'+';display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1.5px solid var(--line);border-radius:999px;color:var(--py-text-strong);background:var(--py-panel-soft);font-weight:950;}
.embedded-stat-block[open] summary{border-bottom:1px solid var(--py-border-soft);}
.embedded-stat-block[open] summary::after{content:'−';}
.monster-stat-block{padding:12px 14px 14px;color:var(--py-text);}
.stat-block-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
.stat-block-title-row h4{margin:0;color:var(--py-text-strong);font-size:22px;line-height:1.1;font-weight:950;}
.stat-block-title-row p{margin:4px 0 0;color:var(--py-muted);font-weight:800;font-style:italic;}
.stat-block-cr{border:1.5px solid var(--line);border-radius:999px;padding:4px 9px;background:var(--py-panel-soft);color:var(--py-text-strong);font-weight:950;white-space:nowrap;}
.stat-block-rule{height:2px;background:var(--line);margin:10px 0;opacity:.55;}
.stat-block-lines p,.stat-block-section p,.stat-block-description{margin:6px 0;line-height:1.42;}
.stat-block-lines strong,.stat-block-section strong{color:var(--py-text-strong);font-weight:950;}
.ability-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:10px 0;}
.ability-strip div{border:1px solid var(--py-border-soft);border-radius:12px;background:var(--py-panel-soft);padding:7px 6px;text-align:center;}
.ability-strip strong{display:block;color:var(--py-text-strong);font-size:12px;letter-spacing:.08em;}
.ability-strip span{display:block;margin-top:2px;font-weight:850;color:var(--py-text);font-size:13px;}
.stat-block-section{border-top:1px solid var(--py-border-soft);margin-top:10px;padding-top:8px;}
.stat-block-section h5{margin:0 0 5px;color:var(--py-text-strong);font-size:18px;font-weight:950;}
.stat-block-description{border-top:1px solid var(--py-border-soft);padding-top:8px;color:var(--py-muted);font-style:italic;}
.stat-block-empty{padding:12px;color:var(--py-muted);font-weight:850;}
@media (max-width:1180px){.override-grid.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){.override-grid.pc-grid{grid-template-columns:1fr;}.ability-strip{grid-template-columns:repeat(3,minmax(0,1fr));}.stat-block-title-row{flex-direction:column;}.stat-block-cr{align-self:flex-start;}}


/* v0.1 compact builder pass */
.encounter-builder-panel{padding:16px 22px;}
.builder-heading-row{align-items:flex-start;margin-bottom:8px;}
.builder-heading-row .browser-heading{font-size:26px;}
.top-actions .btn,.top-actions .file-btn{padding:8px 14px;font-size:14px;min-height:auto;border-radius:12px;}
.encounter-details-grid{grid-template-columns:minmax(220px,.48fr) minmax(340px,1.52fr);gap:10px;align-items:end;}
.field textarea{min-height:48px;padding:9px 12px;border-radius:12px;}
.field input{padding-top:9px;padding-bottom:9px;border-radius:12px;}
.builder-section-line{margin:10px 0;}
.compact-row-heading{margin-bottom:7px;}
.search-heading-row .section-heading,.roster-heading-row .section-heading{font-size:21px;}
.site-tool-eyebrow{margin-bottom:1px;}
.creature-search-row{gap:8px;}
.creature-search-row .btn{padding:9px 13px;font-size:14px;min-height:auto;border-radius:12px;}
#addPlayerToken.btn{padding:8px 13px;font-size:14px;min-height:auto;border-radius:12px;}
.monster-pick-list{margin-top:8px;}
@media (max-width:900px){.encounter-details-grid{grid-template-columns:1fr;align-items:stretch;}}

/* v0.1 difficulty estimate pass */
.difficulty-summary{margin-top:12px;}
.difficulty-empty{border:1.5px dashed var(--py-border-soft);border-radius:14px;background:var(--py-panel-soft);color:var(--py-muted);font-weight:850;padding:10px 12px;text-align:center;}
.difficulty-card{border:2px solid var(--line);border-radius:16px;background:var(--py-elevated-panel);padding:12px 14px;display:grid;gap:8px;box-shadow:0 8px 24px rgba(14,55,94,.06);}
.difficulty-main{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.difficulty-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--py-muted);font-weight:950;}
.difficulty-main strong{font-size:24px;color:var(--py-text-strong);font-weight:950;}
.difficulty-stat-row,.difficulty-thresholds{display:flex;flex-wrap:wrap;gap:6px;}
.difficulty-stat-row span,.difficulty-thresholds span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--py-border-soft);background:var(--py-panel-soft);border-radius:999px;padding:4px 8px;font-size:13px;font-weight:850;color:var(--py-text);}
.difficulty-stat-row strong,.difficulty-thresholds strong{color:var(--py-text-strong);font-weight:950;}
.difficulty-easy{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));}
.difficulty-medium{border-color:color-mix(in srgb,#c28a00 70%,var(--line));}
.difficulty-hard{border-color:color-mix(in srgb,#d45c00 70%,var(--line));}
.difficulty-deadly{border-color:color-mix(in srgb,#b3261e 78%,var(--line));}
.difficulty-trivial{opacity:.92;}
.override-grid.pc-grid{grid-template-columns:minmax(180px,1.2fr) minmax(80px,.35fr) minmax(90px,.38fr) minmax(90px,.38fr) minmax(110px,.48fr);}
@media (max-width:1180px){.override-grid.pc-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:760px){.override-grid.pc-grid{grid-template-columns:1fr;}.difficulty-main{align-items:flex-start;}.difficulty-main strong{font-size:21px;}}

/* v0.1 collapsible player/creature sections + visible difficulty pass */
.difficulty-summary{margin:0 0 12px;}
.difficulty-pending{border-style:dashed;}
.combatant-section{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);box-shadow:0 8px 24px rgba(14,55,94,.06);overflow:hidden;}
.combatant-section + .combatant-section{margin-top:12px;}
.combatant-section > summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:var(--py-elevated-panel);font-weight:950;color:var(--py-text-strong);font-size:20px;border-bottom:2px solid var(--py-border-soft);}
.combatant-section > summary::-webkit-details-marker{display:none;}
.combatant-section > summary::before{content:'▾';display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1.5px solid var(--line);border-radius:999px;color:var(--accent);font-size:13px;margin-right:2px;transition:transform .16s ease;}
.combatant-section:not([open]) > summary{border-bottom:0;}
.combatant-section:not([open]) > summary::before{transform:rotate(-90deg);}
.combatant-section > summary span{display:inline-flex;align-items:center;gap:8px;}
.combatant-section > summary strong{font-size:13px;color:var(--py-muted);text-transform:uppercase;letter-spacing:.07em;}
.combatant-section-body{display:grid;gap:10px;padding:12px;}
.combatant-section .roster-card{box-shadow:none;background:var(--py-elevated-panel);}
.section-empty{border:1.5px dashed var(--py-border-soft);border-radius:14px;background:var(--py-panel-soft);padding:12px;color:var(--py-muted);font-weight:850;text-align:center;}
@media (max-width:680px){.combatant-section > summary{font-size:18px;align-items:flex-start;}.combatant-section > summary strong{font-size:12px;}}

/* v0.1.1 difficulty visibility + independent section state */
.roster-difficulty-card{margin-bottom:12px;}
#difficultySummary:empty{display:none;}

/* v0.1.2 compact difficulty summary */
.compact-difficulty-card{padding:10px 14px;border-radius:14px;margin-bottom:10px;box-shadow:0 6px 18px rgba(14,55,94,.045);}
.difficulty-compact-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.difficulty-rating{font-size:22px;color:var(--py-text-strong);font-weight:950;margin-right:4px;}
.difficulty-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--py-border-soft);background:var(--py-panel-soft);border-radius:999px;padding:3px 8px;font-size:13px;font-weight:850;color:var(--py-text);}
.difficulty-chip strong{color:var(--py-text-strong);font-weight:950;}
@media (max-width:760px){.difficulty-compact-line{align-items:flex-start;}.difficulty-rating{font-size:20px;}}

/* v0.1 manager + encounter file handshake pass */
.manager-panel{padding:16px 22px;}
.manager-heading-row{align-items:flex-start;margin-bottom:12px;}
.manager-empty{margin-top:8px;}
.manager-loaded{display:grid;gap:12px;}
.manager-status-card{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);padding:12px 14px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start;}
.manager-status-card h3{margin:2px 0 0;color:var(--py-text-strong);font-size:24px;line-height:1.1;font-weight:950;}
.manager-status-card p{margin:6px 0 0;color:var(--py-muted);font-weight:750;line-height:1.35;}
.manager-round-box{min-width:92px;border:2px solid var(--line);border-radius:14px;background:var(--py-elevated-panel);padding:9px 12px;text-align:center;}
.manager-round-box span{display:block;color:var(--py-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:950;}
.manager-round-box strong{display:block;color:var(--py-text-strong);font-size:28px;line-height:1;font-weight:950;margin-top:3px;}
.manager-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.manager-controls .btn{padding:8px 12px;font-size:14px;min-height:auto;border-radius:12px;}
.turn-banner{border:2px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--accent) 10%,var(--py-elevated-panel));padding:10px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.turn-banner:empty{display:none;}
.turn-banner span{color:var(--py-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:950;}
.turn-banner strong{color:var(--py-text-strong);font-size:20px;font-weight:950;}
.manager-combat-list{display:grid;gap:10px;}
.manager-combat-card{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);overflow:hidden;box-shadow:0 8px 24px rgba(14,55,94,.05);}
.manager-combat-card.active-turn{outline:3px solid color-mix(in srgb,var(--accent) 34%,transparent);background:color-mix(in srgb,var(--accent) 7%,var(--py-panel-soft));}
.manager-combat-card.is-defeated{opacity:.62;}
.manager-combat-card.is-defeated h3{text-decoration:line-through;}
.manager-combat-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px 14px;border-bottom:1.5px solid var(--py-border-soft);}
.manager-stat-bar{margin-top:7px;}
.manager-combat-controls{padding:10px 12px;display:grid;grid-template-columns:minmax(90px,.4fr) minmax(100px,.45fr) minmax(100px,.45fr) minmax(90px,.35fr) minmax(250px,1fr);gap:8px;align-items:end;}
.manager-combat-controls .field{font-size:13px;}
.manager-combat-controls input{padding:8px 10px;border-radius:11px;min-height:auto;}
.hp-quick-buttons{display:flex;gap:6px;flex-wrap:wrap;align-items:end;}
.hp-quick-buttons .small-btn{padding:7px 9px;font-size:13px;}
.manager-stat-block{margin:0 12px 12px;}
@media (max-width:1100px){.manager-combat-controls{grid-template-columns:repeat(4,minmax(0,1fr));}.hp-quick-buttons{grid-column:1/-1;}}
@media (max-width:760px){.manager-status-card,.manager-combat-header{flex-direction:column;}.manager-round-box{align-self:flex-start;}.manager-combat-controls{grid-template-columns:1fr;}}


/* v0.1 manager creature mini viewer + PyMonsters-style rolls */
.manager-name-button{appearance:none;border:0;background:transparent;color:var(--py-text-strong);font:inherit;font-size:22px;font-weight:950;line-height:1.1;padding:0;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);}
.manager-name-button:hover,.manager-name-button:focus-visible{color:var(--accent);outline:none;text-decoration-color:var(--accent);}
.encounter-stat-viewer[hidden]{display:none!important;}
.encounter-stat-viewer{position:fixed;inset:0;z-index:900;display:grid;grid-template-columns:1fr minmax(420px,760px);}
.encounter-stat-viewer-backdrop{grid-column:1/-1;grid-row:1;background:rgba(0,0,0,.42);}
.encounter-stat-viewer-panel{grid-column:2;grid-row:1;position:relative;align-self:stretch;overflow:auto;background:var(--py-elevated-panel);border-left:3px solid var(--line);box-shadow:-18px 0 44px rgba(0,0,0,.28);padding:18px;}
.stat-viewer-close{position:sticky;top:0;float:right;z-index:3;border:2px solid var(--line);border-radius:12px;background:var(--py-panel-soft);color:var(--py-text-strong);font-weight:950;padding:8px 12px;cursor:pointer;}
.stat-viewer-close:hover,.stat-viewer-close:focus-visible{border-color:var(--accent);color:var(--accent);outline:none;}
.stat-viewer-content{clear:both;display:grid;gap:12px;}
.stat-viewer-heading{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.stat-viewer-heading h3{margin:2px 0 0;color:var(--py-text-strong);font-size:28px;line-height:1.05;font-weight:950;}
.stat-viewer-heading .stat-bar{justify-content:flex-end;margin-top:0;}
.stat-viewer-content .monster-stat-block{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);}
.ability-strip{gap:0;border:1px solid var(--py-border-soft);border-radius:12px;overflow:hidden;background:var(--py-panel-soft);}
.ability-strip .ability-roll-cell{display:block;width:100%;border:0;border-right:1px solid var(--py-border-soft);border-radius:0;background:transparent;color:var(--py-text);font:inherit;text-align:center;padding:7px 6px;cursor:pointer;transition:box-shadow .14s ease,background-color .14s ease,transform .14s ease,color .14s ease;}
.ability-strip .ability-roll-cell:last-child{border-right:0;}
.ability-strip .ability-roll-cell strong{display:block;color:var(--py-text-strong);font-size:12px;letter-spacing:.08em;}
.ability-strip .ability-roll-cell span{display:block;margin-top:2px;font-weight:850;color:var(--py-text);font-size:13px;}
.ability-strip .ability-roll-cell:hover,.ability-strip .ability-roll-cell:focus-visible{background:color-mix(in srgb,var(--accent) 12%,var(--py-panel-soft));color:var(--py-text-strong);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent) inset,0 0 18px color-mix(in srgb,var(--accent) 24%,transparent);outline:none;transform:translateY(-1px);}
.stat-block-feature{margin:6px 0 10px;}
.pm-action-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px;}
.roll-chip,.pm-save-roll-chip{border:2px solid color-mix(in srgb,var(--accent) 72%,#111);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--py-text-strong);border-radius:999px;font-size:12px;font-weight:950;padding:5px 9px;cursor:pointer;line-height:1.1;}
.roll-chip:hover,.roll-chip:focus-visible,.pm-save-roll-chip:hover,.pm-save-roll-chip:focus-visible{background:var(--accent);color:var(--py-on-primary);outline:none;}
.pm-save-rolls{display:inline-flex;gap:6px;flex-wrap:wrap;vertical-align:middle;}
.builder-toast.roll-toast{bottom:22px!important;width:min(520px,calc(100vw - 36px))!important;padding:14px 20px 15px!important;border-radius:16px!important;background:rgba(14,55,94,.96)!important;color:white!important;box-shadow:0 16px 38px rgba(0,0,0,.34)!important;text-align:left!important;}
.roll-popup-eyebrow{font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.65;font-weight:950;}
.roll-popup-main{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-top:2px;}
.roll-popup-title{font-size:22px;line-height:1.05;margin:0;min-width:0;font-weight:950;}
.roll-popup-total{font-size:40px;line-height:.95;margin:0;flex:0 0 auto;font-weight:950;}
.roll-popup-equation{font-size:15px;line-height:1.15;margin-top:5px;font-weight:850;}
.roll-popup-meta{font-size:12px;line-height:1.15;margin-top:5px;opacity:.72;font-weight:850;}
.pm-roll-option-menu{position:fixed;z-index:1200;width:190px;padding:10px;border:2px solid var(--accent);border-radius:16px;background:color-mix(in srgb,var(--py-panel) 94%,black);box-shadow:0 16px 38px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.05) inset;}
.pm-roll-option-menu[hidden]{display:none!important;}
.pm-roll-option-title{font-size:12px;margin:1px 4px 8px;padding:0;color:var(--py-muted);font-weight:950;text-transform:uppercase;letter-spacing:.08em;}
.pm-roll-option-btn{display:block;width:100%;margin:5px 0 0;padding:9px 10px;border-radius:12px;border:2px solid var(--line);background:var(--py-input-bg);color:var(--py-text-strong);font-weight:950;cursor:pointer;text-align:left;}
.pm-roll-option-btn:hover,.pm-roll-option-btn:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--py-input-bg);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent);outline:none;}
@media (max-width:820px){.encounter-stat-viewer{grid-template-columns:1fr;}.encounter-stat-viewer-panel{grid-column:1;border-left:0;}.stat-viewer-heading{flex-direction:column;}.roll-popup-main{display:block;}.roll-popup-total{margin-top:4px;}}

/* v0.1 manager compact run layout */
.manager-panel{padding:12px 18px;}
.manager-heading-row{margin-bottom:8px;}
.manager-status-card{padding:8px 10px;border-radius:14px;align-items:center;}
.manager-status-card h3{font-size:20px;margin:0;}
.manager-status-card p{font-size:13px;margin:3px 0 0;line-height:1.25;}
.manager-round-box{min-width:72px;padding:6px 8px;border-radius:12px;}
.manager-round-box span{font-size:10px;}
.manager-round-box strong{font-size:22px;}
.compact-manager-controls{gap:6px;margin-top:2px;}
.compact-manager-controls .btn{padding:6px 10px;font-size:13px;border-radius:10px;min-height:34px;}
.compact-manager-controls .btn:disabled{opacity:.45;cursor:not-allowed;}
.turn-banner{padding:7px 10px;border-radius:12px;display:flex;align-items:center;gap:8px;}
.turn-banner span{font-size:11px;letter-spacing:.08em;}
.turn-banner strong{font-size:20px;line-height:1;}
.turn-banner.not-started{opacity:.8;background:var(--py-panel-soft);}
.manager-combat-list{gap:6px;}
.manager-combat-card.compact-manager-card{border-radius:12px;box-shadow:none;}
.manager-compact-row{display:grid;grid-template-columns:minmax(170px,1.6fr) minmax(130px,.85fr) minmax(72px,.45fr) minmax(82px,.5fr) minmax(260px,1.5fr) auto;gap:8px;align-items:center;padding:8px 10px;}
.manager-combat-card.active-turn{outline:2px solid color-mix(in srgb,var(--accent) 36%,transparent);}
.manager-name-cell .roster-title-row{margin:0;gap:6px;align-items:center;}
.manager-name-cell h3,.manager-name-button{font-size:18px;line-height:1.05;}
.manager-name-button{font-size:18px;}
.manager-name-cell .roster-kind-pill{font-size:10px;padding:2px 7px;border-radius:999px;}
.mini-field{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;color:var(--py-muted);display:grid;gap:3px;}
.mini-field input,.condition-add-row select{border:2px solid var(--line);border-radius:9px;background:var(--py-elevated-panel);color:var(--py-text-strong);font-weight:850;min-height:32px;padding:4px 7px;font-size:14px;}
.hp-pair{display:grid;grid-template-columns:minmax(45px,1fr) auto minmax(45px,1fr);gap:4px;align-items:center;}
.hp-pair span{color:var(--py-muted);font-weight:950;}
.condition-add-row{display:grid;grid-template-columns:minmax(115px,1fr) auto auto;gap:5px;align-items:center;}
.micro-btn{padding:5px 8px!important;font-size:12px!important;min-height:30px!important;border-radius:9px!important;}
.manager-condition-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px;min-height:20px;align-items:center;}
.manager-condition-chips.empty{font-size:12px;color:var(--py-muted);font-weight:750;}
.condition-chip{border:1.5px solid var(--line);border-radius:999px;background:var(--py-panel);color:var(--py-text-strong);font-weight:850;font-size:12px;padding:2px 7px;cursor:pointer;}
.condition-chip:hover{border-color:var(--accent);color:var(--accent);}
@media (max-width:1200px){.manager-compact-row{grid-template-columns:minmax(170px,1.4fr) repeat(3,minmax(70px,.55fr));}.manager-condition-cell{grid-column:1/-2;}.manager-compact-row>.micro-btn{justify-self:end;}}
@media (max-width:760px){.manager-compact-row{grid-template-columns:1fr;}.manager-compact-row>.micro-btn{justify-self:start;}.condition-add-row{grid-template-columns:1fr auto auto;}}

/* v0.1.2 compact side viewer + roll popup layering */
.encounter-stat-viewer{z-index:900;}
.encounter-stat-viewer{grid-template-columns:1fr minmax(360px,640px);}
.encounter-stat-viewer-panel{padding:10px 12px 12px;}
.stat-viewer-close{padding:6px 10px;border-radius:10px;font-size:13px;}
.stat-viewer-content{gap:8px;}
.stat-viewer-heading{padding:8px 10px;border-radius:13px;gap:8px;align-items:center;}
.stat-viewer-heading h3{font-size:22px;line-height:1;margin:0;}
.stat-viewer-heading .site-tool-eyebrow{font-size:11px;line-height:1;margin-bottom:3px;}
.stat-viewer-heading .stat-bar{gap:4px;}
.stat-viewer-heading .stat-bar span{font-size:12px;padding:3px 7px;}
.stat-viewer-content .monster-stat-block{padding:9px 10px 10px;border-radius:13px;font-size:14px;line-height:1.25;}
.stat-viewer-content .stat-block-title-row{gap:8px;align-items:flex-start;}
.stat-viewer-content .stat-block-title-row h4{font-size:20px;line-height:1;margin:0;}
.stat-viewer-content .stat-block-title-row p{font-size:13px;line-height:1.15;margin:3px 0 0;}
.stat-viewer-content .stat-block-cr{font-size:12px;padding:3px 8px;}
.stat-viewer-content .stat-block-rule{height:1px;margin:6px 0;}
.stat-viewer-content .stat-block-lines p,
.stat-viewer-content .stat-block-section p,
.stat-viewer-content .stat-block-description{margin:3px 0;line-height:1.24;}
.stat-viewer-content .ability-strip{margin:7px 0;}
.stat-viewer-content .ability-strip .ability-roll-cell{padding:5px 4px;}
.stat-viewer-content .ability-strip .ability-roll-cell strong{font-size:10px;letter-spacing:.07em;}
.stat-viewer-content .ability-strip .ability-roll-cell span{font-size:12px;margin-top:1px;}
.stat-viewer-content .stat-block-section{margin-top:6px;padding-top:5px;}
.stat-viewer-content .stat-block-section h5{font-size:15px;margin:0 0 3px;line-height:1.1;}
.stat-viewer-content .stat-block-feature{margin:3px 0 6px;}
.stat-viewer-content .stat-block-description{padding-top:5px;}
.stat-viewer-content .roll-chip,
.stat-viewer-content .pm-save-roll-chip{font-size:11px;padding:4px 7px;border-width:1.5px;}
.stat-viewer-content .pm-save-rolls{gap:4px;}
.builder-toast.roll-toast{z-index:1600!important;bottom:18px!important;}
.pm-roll-option-menu{z-index:1650;}
@media (max-width:820px){.encounter-stat-viewer{grid-template-columns:1fr;}.encounter-stat-viewer-panel{padding:10px;}.stat-viewer-heading{align-items:flex-start;}.builder-toast.roll-toast{width:min(480px,calc(100vw - 24px))!important;}}


/* v0.1 manager full-width tracker + lean side viewer */
.pyencounters-container.manager-wide{max-width:none;width:100%;padding-left:14px;padding-right:14px;}
.manager-mode-active .pyencounters-hero{padding:14px 22px;}
.manager-mode-active .pyencounters-title{font-size:34px;margin:2px 0 2px;}
.manager-mode-active .pyencounters-lede{max-width:none;font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.manager-mode-active .builder-tab-row{margin-top:12px;}
.manager-mode-active .hero-card{border-radius:14px;}
.manager-mode-active .manager-panel{padding:10px 18px;}
.manager-mode-active .pyencounters-legal-note{margin-left:0;margin-right:0;}
.encounter-stat-viewer{grid-template-columns:1fr minmax(420px,720px);}
.encounter-stat-viewer-panel{padding:8px 10px 10px;}
.stat-viewer-content{clear:none;gap:0;}
.stat-viewer-content .monster-stat-block{margin:0;padding:8px 10px 10px;border-radius:12px;}
@media (max-width:1100px){.manager-mode-active .pyencounters-lede{white-space:normal;}.pyencounters-container.manager-wide{padding-left:10px;padding-right:10px;}}


/* v0.1.3 manager control + history tightening */
.manager-mode-active .manager-heading-row{margin-bottom:4px;}
.manager-mode-active .manager-heading-row .browser-heading{font-size:28px;line-height:1;margin:0;}
.manager-mode-active .manager-heading-row .site-tool-eyebrow{font-size:11px;margin-bottom:2px;}
.manager-status-card{padding:6px 8px;border-radius:12px;margin-bottom:6px;}
.manager-status-card h3{font-size:18px;line-height:1.05;}
.manager-status-card p{font-size:12px;line-height:1.15;margin-top:2px;}
.manager-round-box{min-width:58px;padding:4px 7px;border-radius:10px;}
.manager-round-box span{font-size:9px;}
.manager-round-box strong{font-size:18px;}
.compact-manager-controls{gap:5px;margin:0 0 6px;align-items:center;}
.compact-manager-controls .btn{padding:5px 9px;font-size:12px;min-height:30px;border-radius:9px;}
.compact-manager-controls .btn.active-lite{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent);color:var(--accent);}
.turn-banner{padding:5px 8px;margin:5px 0 6px;border-radius:10px;}
.turn-banner strong{font-size:17px;}
.manager-combat-list{gap:5px;}
.manager-compact-row{grid-template-columns:minmax(150px,1.05fr) 104px 64px 72px minmax(220px,1.2fr) auto;gap:6px;padding:6px 8px;}
.manager-name-cell .roster-title-row{gap:5px;}
.manager-name-cell h3,.manager-name-button{font-size:16px;}
.manager-name-cell .roster-kind-pill{font-size:9px;padding:2px 6px;}
.mini-field{font-size:10px;gap:2px;}
.mini-field input,.condition-add-row select{min-height:26px;padding:2px 6px;font-size:12px;border-radius:8px;border-width:1.5px;}
.hp-pair{grid-template-columns:42px auto 42px;gap:3px;}
.condition-add-row{grid-template-columns:minmax(108px,1fr) auto auto;gap:4px;}
.micro-btn{padding:4px 7px!important;font-size:11px!important;min-height:26px!important;border-radius:8px!important;}
.manager-condition-chips{margin-top:2px;min-height:16px;}
.manager-condition-chips.empty{font-size:10px;}
.condition-chip{font-size:10px;padding:1px 6px;}
.roll-history-panel{border:2px solid var(--line);border-radius:12px;background:var(--py-panel-soft);padding:7px 9px;margin:0 0 6px;display:grid;gap:5px;}
.roll-history-title{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:950;color:var(--py-muted);}
.roll-history-entry{display:grid;grid-template-columns:62px minmax(140px,1fr) auto minmax(160px,.9fr);gap:8px;align-items:center;border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent);padding-top:5px;font-size:12px;}
.roll-history-entry span,.roll-history-entry small{color:var(--py-muted);font-weight:750;}
.roll-history-entry strong{font-weight:950;color:var(--py-text-strong);}
.roll-history-entry b{font-size:16px;color:var(--accent);}
.roll-history-empty{font-size:12px;color:var(--py-muted);font-weight:800;}
@media (max-width:980px){.manager-compact-row{grid-template-columns:minmax(140px,1fr) 104px 64px 72px;}.manager-condition-cell{grid-column:1/-2;}.roll-history-entry{grid-template-columns:1fr auto;}.roll-history-entry span,.roll-history-entry small{grid-column:1/-1;}}

/* v0.1.4 manager input sizing balance + temp HP */
.manager-compact-row{
  grid-template-columns:minmax(165px,1.05fr) 132px 82px 76px 86px minmax(220px,1.2fr) auto;
  gap:7px;
  padding:7px 9px;
}
.mini-field input,.condition-add-row select{
  min-height:30px;
  padding:4px 7px;
  font-size:14px;
}
.hp-pair{grid-template-columns:56px auto 56px;gap:4px;}
.temp-hp-field input,.ac-field input,.init-field input{width:100%;min-width:64px;}
.manager-name-cell h3,.manager-name-button{font-size:17px;}
.micro-btn{padding:5px 8px!important;font-size:12px!important;min-height:30px!important;}
.compact-manager-controls .btn{padding:6px 10px;font-size:13px;min-height:32px;}
@media (max-width:1180px){
  .manager-compact-row{grid-template-columns:minmax(150px,1fr) 132px 82px 76px 86px;}
  .manager-condition-cell{grid-column:1/-2;}
}
@media (max-width:760px){
  .manager-compact-row{grid-template-columns:1fr;}
  .temp-hp-field input,.ac-field input,.init-field input{min-width:0;}
}

/* v0.1.5 builder width consistency */
.pyencounters-container{
  max-width:none;
  width:100%;
  padding-left:14px;
  padding-right:14px;
}
.builder-view .encounter-builder-panel{
  padding:14px 20px;
}
.builder-view .compact-details-grid{
  grid-template-columns:minmax(240px,.42fr) minmax(420px,1fr);
  gap:12px;
}
.builder-view .creature-search-row{
  grid-template-columns:minmax(420px,1fr) auto auto;
  gap:8px;
}
.builder-view .roster-list,
.builder-view .monster-pick-list{
  max-width:none;
}
.builder-view .builder-section-line{
  margin:9px 0;
}
@media (max-width:900px){
  .pyencounters-container{padding-left:10px;padding-right:10px;}
  .builder-view .compact-details-grid,
  .builder-view .creature-search-row{grid-template-columns:1fr;}
}

/* v0.1.6 reset/initiative/stat-block interaction polish */
.builder-name-button{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--py-text-strong);
  font:inherit;
  font-size:22px;
  line-height:1.08;
  font-weight:950;
  padding:0;
  cursor:pointer;
  text-align:left;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
  text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);
}
.builder-name-button:hover,
.builder-name-button:focus-visible{
  color:var(--accent);
  outline:none;
  text-decoration-color:var(--accent);
}
.btn.danger-lite{
  border-color:var(--danger,#b3261e);
  color:var(--danger,#b3261e);
  background:color-mix(in srgb,var(--danger,#b3261e) 8%,transparent);
}
.btn.danger-lite:hover,
.btn.danger-lite:focus-visible{
  background:color-mix(in srgb,var(--danger,#b3261e) 14%,transparent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--danger,#b3261e) 18%,transparent);
}
@media (max-width:760px){
  .builder-name-button{font-size:19px;}
}

/* v0.1.6 builder row/hover/custom creature polish */
.pyencounters-lede{
  max-width:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.add-entity-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.add-entity-actions .btn{padding:8px 13px;font-size:14px;min-height:auto;border-radius:12px;}
.builder-view .combatant-section > summary{padding:9px 13px;font-size:18px;border-bottom-width:1.5px;}
.builder-view .combatant-section-body{gap:7px;padding:8px;}
.builder-view .combatant-section + .combatant-section{margin-top:8px;}
.builder-view .roster-card.encounter-card{border-radius:13px;}
.builder-view .slim-card-header{padding:8px 10px;gap:10px;}
.builder-view .roster-title-row{gap:6px;}
.builder-view .roster-title-row h3,.builder-name-button{font-size:19px;line-height:1.05;}
.builder-view .roster-kind-pill{font-size:9px;padding:2px 6px;}
.builder-view .stat-bar{gap:4px;margin-top:5px;}
.builder-view .stat-bar span{font-size:11px;padding:2px 6px;}
.builder-view .compact-card-body{padding:8px 10px 9px;}
.builder-view .override-grid{gap:7px;grid-template-columns:minmax(180px,1.2fr) 74px minmax(126px,.62fr) 92px 104px 104px;}
.builder-view .override-grid.pc-grid{grid-template-columns:minmax(190px,1.4fr) 86px 110px 110px;}
.builder-view .override-grid.custom-grid{grid-template-columns:minmax(180px,1.25fr) 74px minmax(126px,.62fr) 92px 104px 104px;}
.builder-view .override-grid .field{font-size:12px;letter-spacing:.02em;}
.builder-view .override-grid input,.builder-view .override-grid select{padding:6px 8px;border-radius:10px;font-size:14px;min-height:30px;}
.builder-view .btn.small-btn{padding:5px 9px;font-size:12px;border-radius:10px;}
.builder-view .compact-actions{gap:5px;}
.has-py-tooltip{position:relative;}
.has-py-tooltip::after{
  content:attr(data-tooltip);
  position:absolute;
  left:0;
  bottom:calc(100% + 7px);
  z-index:1200;
  opacity:0;
  pointer-events:none;
  transform:translateY(3px);
  transition:opacity .08s ease, transform .08s ease;
  border:1.5px solid var(--line);
  background:var(--py-elevated-panel);
  color:var(--py-text-strong);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  border-radius:10px;
  padding:5px 8px;
  font-size:12px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap;
}
.has-py-tooltip:hover::after,.has-py-tooltip:focus-visible::after{opacity:1;transform:translateY(0);}
@media (max-width:1180px){
  .builder-view .override-grid,.builder-view .override-grid.custom-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .builder-view .override-grid.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pyencounters-lede{white-space:normal;}
}
@media (max-width:760px){
  .add-entity-actions{justify-content:flex-start;}
  .builder-view .override-grid,.builder-view .override-grid.pc-grid,.builder-view .override-grid.custom-grid{grid-template-columns:1fr;}
}


/* v0.1.7 builder density + tooltip correction */
.pyencounters-lede{
  max-width:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.builder-view .combatant-section-body,
.builder-view .combatant-section,
.builder-view .roster-card.encounter-card{
  overflow:visible;
}
.builder-view .combatant-section-body{
  gap:6px;
  padding:7px;
}
.builder-view .roster-card.encounter-card{
  border-radius:12px;
}
.builder-view .slim-card-header{
  padding:7px 9px;
  min-height:0;
}
.builder-view .roster-title-row h3,
.builder-name-button{
  font-size:18px;
  line-height:1;
}
.builder-view .stat-bar{
  gap:4px;
  margin-top:4px;
}
.builder-view .stat-bar span{
  padding:2px 6px;
  font-size:11px;
  line-height:1;
}
.builder-view .compact-card-body{
  padding:6px 9px 7px;
}
.builder-view .override-grid{
  display:grid;
  grid-template-columns:320px 70px 150px 86px 104px 104px 1fr;
  gap:6px;
  align-items:end;
}
.builder-view .override-grid.pc-grid{
  grid-template-columns:320px 72px 92px 92px 1fr;
}
.builder-view .override-grid.custom-grid{
  grid-template-columns:320px 70px 150px 86px 104px 104px 1fr;
}
.builder-view .override-grid .field{
  gap:3px;
  font-size:11px;
  line-height:1.05;
}
.builder-view .override-grid input,
.builder-view .override-grid select{
  padding:5px 8px !important;
  min-height:28px !important;
  height:32px;
  border-radius:9px;
  font-size:13px;
  line-height:1.05;
}
.builder-view .btn.small-btn{
  padding:5px 9px;
  font-size:12px;
  border-radius:9px;
}
.has-py-tooltip::after{
  top:calc(100% + 5px);
  bottom:auto;
  left:0;
  z-index:5000;
  transform:translateY(-2px);
  transition:opacity .05s ease, transform .05s ease;
  border-color:var(--line);
  background:var(--py-elevated-panel);
  color:var(--py-text-strong);
  box-shadow:0 10px 26px rgba(0,0,0,.22);
}
.has-py-tooltip:hover::after,
.has-py-tooltip:focus-visible::after{
  transform:translateY(0);
}
@media (max-width:1180px){
  .builder-view .override-grid,
  .builder-view .override-grid.custom-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .builder-view .override-grid.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pyencounters-lede{white-space:normal;}
}
@media (max-width:760px){
  .builder-view .override-grid,
  .builder-view .override-grid.pc-grid,
  .builder-view .override-grid.custom-grid{grid-template-columns:1fr;}
}


/* v0.1 loot prototype */
.loot-section{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);overflow:hidden;margin:12px 0;}
.loot-section > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;font-size:22px;font-weight:950;color:var(--py-text-strong);}
.loot-section > summary::-webkit-details-marker{display:none;}
.loot-section > summary strong{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--py-muted);font-weight:950;}
.loot-section-body{border-top:1.5px solid var(--py-border-soft);padding:12px 16px;display:grid;gap:10px;}
.currency-grid{display:grid;grid-template-columns:repeat(5,minmax(80px,120px));gap:8px;align-items:end;}
.currency-grid .field{font-size:12px;}
.currency-grid input{padding:7px 9px;border-radius:10px;min-height:auto;}
.loot-search-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto auto;gap:8px;align-items:end;}
.loot-search-row .btn{padding:8px 12px;font-size:14px;border-radius:12px;min-height:auto;}
.loot-results{display:grid;gap:7px;}
.loot-pick-card{border:1.5px solid var(--py-border-soft);border-radius:13px;background:var(--py-elevated-panel);padding:8px 10px;display:flex;justify-content:space-between;align-items:center;gap:10px;}
.loot-pick-card h4{margin:0;color:var(--py-text-strong);font-size:16px;font-weight:950;}
.loot-pick-card p{margin:2px 0 0;color:var(--py-muted);font-size:12px;font-weight:800;}
.loot-list{display:grid;gap:7px;}
.loot-row{border:1.5px solid var(--py-border-soft);border-radius:13px;background:var(--py-elevated-panel);padding:8px;display:grid;grid-template-columns:minmax(180px,340px) 72px minmax(180px,1fr) minmax(140px,.7fr) auto;gap:8px;align-items:end;}
.loot-row .field{font-size:12px;}
.loot-row input{padding:7px 9px;border-radius:10px;min-height:auto;}
.loot-row-meta{align-self:center;color:var(--py-muted);font-size:12px;font-weight:800;}
.manager-loot-panel{border:2px solid var(--line);border-radius:14px;background:var(--py-panel-soft);padding:10px 12px;display:grid;gap:8px;}
.manager-loot-panel[hidden]{display:none!important;}
.manager-loot-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--py-text);}
.manager-loot-summary strong{color:var(--py-text-strong);}
.manager-loot-list{display:grid;gap:6px;}
.manager-loot-row{border:1.5px solid var(--py-border-soft);border-radius:12px;background:var(--py-elevated-panel);padding:7px 9px;display:flex;justify-content:space-between;gap:10px;align-items:center;}
.manager-loot-row strong{color:var(--py-text-strong);font-weight:950;}
.manager-loot-row span{color:var(--py-muted);font-size:12px;font-weight:800;}
.compact-empty{padding:8px 10px!important;}
@media (max-width:900px){.currency-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.loot-search-row,.loot-row{grid-template-columns:1fr;}.loot-row-meta{align-self:start;}.manager-loot-row{display:block;}}

/* v0.1 loot database wiring + notes section pass */
.name-only-details-grid{grid-template-columns:minmax(260px,420px);max-width:460px;}
.notes-section,.loot-section{border:2px solid var(--line);border-radius:16px;background:var(--py-panel-soft);overflow:hidden;box-shadow:0 8px 24px rgba(14,55,94,.045);}
.notes-section > summary,.loot-section > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--py-elevated-panel);font-weight:950;color:var(--py-text-strong);}
.notes-section > summary::-webkit-details-marker,.loot-section > summary::-webkit-details-marker{display:none;}
.notes-section > summary::before,.loot-section > summary::before{content:'▾';display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1.5px solid var(--line);border-radius:999px;color:var(--accent);font-size:12px;transition:transform .16s ease;}
.notes-section:not([open]) > summary::before,.loot-section:not([open]) > summary::before{transform:rotate(-90deg);}
.notes-section > summary span,.loot-section > summary span{font-size:18px;}
.notes-section > summary strong,.loot-section > summary strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--py-muted);}
.notes-section-body,.loot-section-body{padding:12px 14px;display:grid;gap:10px;}
.notes-section textarea{min-height:70px;}
.loot-filter-row{display:grid;grid-template-columns:minmax(130px,180px) minmax(150px,190px) minmax(150px,190px);gap:10px;align-items:end;}
.loot-filter-row .field select{min-height:42px;}
.loot-results{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:4px;}
.loot-results:empty{display:none;}
.loot-pick-card{border:2px solid var(--line);border-radius:14px;background:var(--py-elevated-panel);padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;}
.loot-pick-card h4{margin:0;color:var(--py-text-strong);font-size:18px;line-height:1.1;}
.loot-pick-card p{margin:4px 0 0;color:var(--py-muted);font-weight:800;font-size:13px;}
.loot-list{display:grid;gap:8px;}
.loot-row{border:2px solid var(--line);border-radius:14px;background:var(--py-elevated-panel);padding:10px 12px;display:grid;grid-template-columns:minmax(180px,1fr) 90px minmax(180px,.9fr) minmax(140px,.7fr) auto;gap:8px;align-items:end;}
.loot-row-meta{font-size:12px;color:var(--py-muted);font-weight:850;align-self:center;}
.loot-row .micro-btn{padding:8px 10px;font-size:13px;border-radius:11px;}
@media (max-width:900px){.loot-filter-row{grid-template-columns:1fr;}.loot-row{grid-template-columns:1fr 90px;}.loot-row-meta{grid-column:1/-1;}.loot-note-field{grid-column:1/-1;}}

/* v0.1 loot/notes polish: keep prep sections adjacent and copy creator-style equipment browser layout */
.prep-collapsible-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start;margin:8px 0 4px;}
.prep-collapsible-row .notes-section,.prep-collapsible-row .loot-section{margin:0;min-width:0;}
.prep-collapsible-row .notes-section[open],.prep-collapsible-row .loot-section[open]{grid-column:1/-1;}
.loot-browser-panel{border:1.5px solid var(--py-border-soft);border-radius:14px;background:var(--py-panel-soft);padding:12px;display:grid;gap:10px;}
.loot-browser-head{display:flex;justify-content:space-between;align-items:start;gap:12px;}
.loot-browser-head h4{margin:0;color:var(--py-text-strong);font-size:20px;font-weight:950;}
.loot-browser-head p{margin:4px 0 0;color:var(--py-muted);font-weight:750;font-size:13px;}
.full-equipment-filters{grid-template-columns:repeat(3,minmax(0,1fr));}
.creator-style-search{grid-template-columns:minmax(0,1fr) auto auto;align-items:end;}
.loot-result-count{color:var(--py-muted);font-size:13px;font-weight:750;margin-top:-2px;}
.loot-browser-list{display:grid;gap:8px;}
.inventory-style-pick{grid-template-columns:minmax(0,1fr) auto;padding:9px 10px;}
.loot-pick-main{min-width:0;}
.loot-pick-controls{display:flex;align-items:center;gap:8px;}
.loot-pick-controls .quantity-input{width:76px;min-height:38px;border-radius:10px;padding:6px 8px;font-weight:850;}
.loot-pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px;}
.loot-pager span{color:var(--py-muted);font-size:13px;font-weight:850;}
@media (max-width:1000px){.prep-collapsible-row{grid-template-columns:1fr;}.prep-collapsible-row .notes-section[open],.prep-collapsible-row .loot-section[open]{grid-column:auto;}.full-equipment-filters,.creator-style-search{grid-template-columns:1fr;}.loot-browser-head{display:grid;}.loot-pick-controls{flex-wrap:wrap;justify-content:flex-start;}.inventory-style-pick{grid-template-columns:1fr;}}

.loot-added-pulse{transform:translateY(-1px) scale(1.04);box-shadow:0 0 0 4px color-mix(in srgb, var(--py-accent) 22%, transparent),0 8px 18px rgba(0,0,0,.16);filter:saturate(1.15);}
.loot-pick-controls .btn{transition:transform .16s ease, box-shadow .16s ease, filter .16s ease, background .16s ease;}

.loot-currency-row {
  display: grid;
  grid-template-columns: minmax(120px, max-content) 1fr;
  align-items: center;
  gap: 0.75rem;
}
.loot-currency-title {
  font-weight: 900;
  color: var(--text-strong, var(--text));
}
.loot-currency-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

/* v0.2 loot detail side panel */
.encounter-stat-viewer-panel > .stat-viewer-close{
  float:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 8px auto;
}
.manager-loot-name-button{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--py-text-strong);
  font:inherit;
  font-weight:950;
  line-height:1.1;
  padding:0;
  cursor:pointer;
  text-align:left;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
  text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);
}
.manager-loot-name-button:hover,
.manager-loot-name-button:focus-visible{
  color:var(--accent);
  outline:none;
  text-decoration-color:var(--accent);
}
.loot-detail-viewer{display:grid;gap:10px;}
.loot-detail-heading{margin-bottom:0;}
.loot-detail-pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.loot-detail-breakdown{margin-top:0;border:2px solid var(--line);border-radius:14px;background:var(--py-panel-soft);padding:10px 12px;}
.loot-detail-description{border:0;border-radius:0;background:transparent;padding:0;display:block;}
.loot-detail-description .full-width-description{margin:0!important;color:var(--py-text);font-weight:400;line-height:1.45;white-space:normal;}
.loot-detail-description .equipment-description-blocks{margin-top:0;display:block;}
.loot-detail-description .equipment-table-wrap{margin-top:0;}
.loot-detail-bullets{margin:0;padding-left:1.25rem;color:var(--py-text);font-weight:650;line-height:1.35;}
.loot-detail-bullets li+li{margin-top:4px;}
@media (max-width:900px){
  .loot-detail-pills{justify-content:flex-start;}
}

/* v29.35 PyMonsters-style creature filters inside PyEncounters */
.encounter-creature-search-panel{
  border:2px solid var(--line);
  border-radius:18px;
  background:var(--py-panel-soft);
  padding:14px 16px;
  display:grid;
  gap:12px;
}
.encounter-search-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.basic-search-grid.encounter-basic-search-grid{
  display:grid;
  grid-template-columns:minmax(280px,1.6fr) 145px 145px minmax(190px,.8fr);
  gap:14px;
  align-items:end;
}
.name-field{min-width:260px;}
.encounter-creature-search-panel .field select,.encounter-creature-search-panel .field input{min-height:50px;}
.advanced-filters.encounter-advanced-filters{
  margin-top:0;
  border:2px solid var(--py-border-soft);
  border-radius:18px;
  background:var(--py-panel-soft);
  overflow:hidden;
}
.advanced-filters.encounter-advanced-filters summary{
  cursor:pointer;
  padding:14px 16px;
  font-size:17px;
  font-weight:900;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.06em;
  list-style:none;
}
.advanced-filters.encounter-advanced-filters summary::-webkit-details-marker{display:none;}
.advanced-filters.encounter-advanced-filters summary::after{content:" ▼";font-size:13px;}
.advanced-filters.encounter-advanced-filters[open] summary::after{content:" ▲";}
.advanced-grid.encounter-advanced-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
  padding:0 16px 16px;
}
.advanced-filter-blocks.encounter-advanced-filter-blocks{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  padding:0 16px 16px;
}
.filter-group{
  border:2px solid var(--py-border-soft);
  border-radius:16px;
  padding:14px 16px;
  background:var(--py-elevated-panel);
}
.filter-group legend{
  padding:0 8px;
  color:var(--accent);
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}
.inline-group{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.check-row{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--py-text-strong);}
.check-row input{width:18px;height:18px;accent-color:var(--accent);}
.encounter-results-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}
.result-count.tag{font-weight:900;}
.sort-field{display:flex;align-items:center;gap:8px;color:var(--py-muted);font-weight:900;}
.sort-field select{min-height:38px;border-radius:12px;padding:6px 10px;border:2px solid var(--line);background:var(--py-elevated-panel);color:var(--py-text-strong);font-weight:850;}
.encounter-monster-results{max-height:none;overflow:visible;}
.encounter-monster-result-card{grid-template-columns:78px minmax(0,1fr) auto;}
.encounter-monster-result-card .result-cr strong{display:block;font-size:22px;color:var(--py-text-strong);}
.encounter-monster-result-card .result-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--py-muted);font-weight:900;}
.encounter-monster-main h3{font-size:22px;}
.pagination-bar.encounter-monster-pagination{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:12px;}
.page-btn{border:2px solid var(--line);border-radius:999px;background:var(--py-elevated-panel);color:var(--py-text-strong);font-weight:900;padding:7px 12px;cursor:pointer;}
.page-btn.active,.page-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--py-on-primary);}
.page-btn:disabled{opacity:.45;cursor:not-allowed;}
.page-info{color:var(--py-muted);font-weight:850;}
.loot-pick-name-button{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--py-text-strong);
  padding:0;
  margin:0;
  font:inherit;
  font-size:18px;
  line-height:1.1;
  font-weight:950;
  cursor:pointer;
  text-align:left;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
  text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);
}
.loot-pick-name-button:hover,.loot-pick-name-button:focus-visible{color:var(--accent);outline:none;text-decoration-color:var(--accent);}
.loot-detail-description .inventory-like-description{display:block;}
.loot-detail-description .inventory-like-description .full-width-description{white-space:normal;line-height:1.45;}
@media (max-width:1100px){
  .basic-search-grid.encounter-basic-search-grid,.advanced-grid.encounter-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .advanced-filter-blocks.encounter-advanced-filter-blocks{grid-template-columns:1fr;}
  .encounter-monster-result-card{grid-template-columns:74px minmax(0,1fr) 120px;}
}
@media (max-width:720px){
  .encounter-search-actions,.encounter-results-toolbar{justify-content:flex-start;}
  .basic-search-grid.encounter-basic-search-grid,.advanced-grid.encounter-advanced-grid{grid-template-columns:1fr;}
  .encounter-monster-result-card{grid-template-columns:1fr;}
  .encounter-monster-result-card .btn{width:100%;}
}

/* v29.36 PyEncounters creature finder + manager dice tray polish */
.encounter-creature-search-details{
  border:2px solid var(--line);
  border-radius:18px;
  background:var(--py-panel-soft);
  overflow:hidden;
  box-shadow:0 8px 24px rgba(14,55,94,.045);
}
.encounter-creature-search-details > summary{
  list-style:none;
  cursor:pointer;
  margin:0;
  padding:12px 16px;
  background:var(--py-elevated-panel);
  border-bottom:1.5px solid var(--py-border-soft);
}
.encounter-creature-search-details > summary::-webkit-details-marker{display:none;}
.encounter-creature-search-details > summary::before{
  content:'▾';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border:1.5px solid var(--line);
  border-radius:999px;
  color:var(--accent);
  font-size:13px;
  transition:transform .16s ease;
}
.encounter-creature-search-details:not([open]) > summary{border-bottom:0;}
.encounter-creature-search-details:not([open]) > summary::before{transform:rotate(-90deg);}
.encounter-creature-search-details > summary strong{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--py-muted);
  font-weight:950;
}
.encounter-search-builder-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  padding:12px 16px 0;
}
.encounter-creature-search-details .encounter-creature-search-panel{
  margin:12px 16px 0;
}
.encounter-creature-search-details .encounter-monster-results,
.encounter-creature-search-details .encounter-monster-pagination{
  margin-left:16px;
  margin-right:16px;
}
.encounter-creature-search-details .encounter-monster-pagination{margin-bottom:14px;}
.monster-pick-name-button{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--py-text-strong);
  padding:0;
  margin:0;
  font:inherit;
  font-size:20px;
  line-height:1.08;
  font-weight:950;
  cursor:pointer;
  text-align:left;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
  text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);
}
.monster-pick-name-button:hover,
.monster-pick-name-button:focus-visible{
  color:var(--accent);
  outline:none;
  text-decoration-color:var(--accent);
}
.loot-detail-description .inventory-like-description{
  display:block;
}
.loot-detail-description .inventory-like-description .full-width-description{
  margin:0!important;
  white-space:normal;
  line-height:1.48;
  font-weight:400;
}
.loot-detail-description .inventory-like-description strong{color:var(--py-text-strong);font-weight:950;}
.encounter-dice-tools[hidden]{display:none!important;}
.encounter-dice-fab{
  position:fixed;
  left:18px;
  bottom:18px;
  width:58px;
  height:58px;
  border:2px solid var(--line);
  border-radius:999px;
  background:var(--py-panel-glass-strong, var(--py-elevated-panel));
  color:var(--py-text-strong);
  box-shadow:0 10px 22px var(--py-shadow-panel, rgba(0,0,0,.22));
  display:grid;
  place-items:center;
  z-index:860;
  cursor:pointer;
}
.encounter-dice-fab span{font-size:22px;line-height:1;}
.encounter-dice-fab:hover,
.encounter-die-chip:hover,
.encounter-dice-adjust:hover{
  box-shadow:0 0 0 3px var(--py-hover-ring, color-mix(in srgb,var(--accent) 25%,transparent));
}
.encounter-dice-fab.is-pressed,
.encounter-die-chip.is-pressed,
.encounter-dice-adjust.is-pressed{transform:translateY(1px) scale(.985);}
.encounter-dice-tray{
  position:fixed;
  left:18px;
  bottom:86px;
  width:min(320px,calc(100vw - 36px));
  background:var(--py-panel-glass, var(--py-elevated-panel));
  border:2px solid var(--line);
  border-radius:18px;
  box-shadow:0 14px 30px rgba(0,0,0,.28);
  padding:14px;
  display:grid;
  gap:12px;
  z-index:860;
  transform:translateY(16px);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.encounter-dice-tray.open{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.encounter-dice-tray-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}
.encounter-dice-tray-title{
  color:var(--py-text-strong);
  font-size:18px;
  font-weight:950;
  line-height:1.1;
}
.encounter-dice-chip-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.encounter-die-chip,
.encounter-dice-adjust{
  border:2px solid var(--line);
  background:var(--py-panel);
  color:var(--py-text-strong);
  border-radius:12px;
  min-height:42px;
  padding:8px 10px;
  font:inherit;
  font-weight:950;
  cursor:pointer;
}
.encounter-dice-formula-block,
.encounter-dice-modifier-row{display:grid;gap:6px;}
.encounter-dice-formula{
  min-height:48px;
  border:2px solid var(--py-border-faint, var(--py-border-soft));
  border-radius:14px;
  background:var(--py-panel);
  color:var(--py-text-strong);
  padding:10px 12px;
  font-size:14px;
  font-weight:800;
  line-height:1.4;
}
.encounter-dice-modifier-controls{
  display:grid;
  grid-template-columns:44px minmax(92px,1fr) 44px;
  gap:8px;
  align-items:center;
}
.encounter-dice-modifier-input{
  min-height:42px;
  border:2px solid var(--py-border-faint, var(--py-border-soft));
  border-radius:12px;
  background:var(--py-panel);
  color:var(--py-text-strong);
  padding:0 10px;
  font:inherit;
  font-size:15px;
  font-weight:850;
  text-align:center;
  width:100%;
}
.encounter-dice-tray-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.encounter-dice-tray-note{
  color:var(--py-muted);
  font-size:12px;
  font-weight:750;
  line-height:1.45;
}
@media (max-width:720px){
  .encounter-search-builder-actions{justify-content:flex-start;}
  .encounter-creature-search-details .encounter-creature-search-panel,
  .encounter-creature-search-details .encounter-monster-results,
  .encounter-creature-search-details .encounter-monster-pagination{margin-left:10px;margin-right:10px;}
}

/* v29.38 PyEncounters inventory-style loot detail renderer */
.loot-detail-description .encounter-inventory-description{
  margin-top:0!important;
  white-space:normal;
}

/* v29.41 PyCodex-style creature drawers and linked spell panels */
.encounter-stat-viewer{
  grid-template-columns:1fr minmax(420px,720px)!important;
  background:transparent!important;
}
.encounter-stat-viewer-backdrop{
  background:transparent!important;
}
.encounter-stat-viewer-panel,
.stat-viewer-content{
  background:var(--py-panel)!important;
}
.encounter-stat-viewer-panel{
  padding:8px 10px 10px!important;
}
.encounter-stat-viewer-panel > .stat-viewer-close{
  position:relative!important;
  top:auto!important;
  float:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0 0 8px auto!important;
  border:2px solid var(--line)!important;
  border-radius:12px!important;
  background:var(--py-panel)!important;
  color:var(--accent)!important;
  font-weight:950!important;
  padding:8px 14px!important;
  cursor:pointer!important;
}
.encounter-stat-viewer-panel > .stat-viewer-close:hover,
.encounter-stat-viewer-panel > .stat-viewer-close:focus-visible{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--py-on-primary)!important;
  outline:none!important;
}
.stat-viewer-content{clear:none!important;gap:0!important;}
.stat-viewer-content .monster-stat-block{
  background:var(--py-panel-soft)!important;
  margin:0!important;
  padding:8px 10px 10px!important;
  border-radius:12px!important;
  border:2px solid var(--line)!important;
}
.monster-drawer-description{
  margin:12px 0 0;
  padding:4px 2px 2px;
  color:var(--py-text);
  font-size:14px;
  line-height:1.38;
}
.monster-drawer-description h4{
  margin:12px 0 5px;
  color:var(--py-text-strong);
  font-size:17px;
  line-height:1.15;
  font-weight:950;
  border-bottom:2px solid var(--line);
  padding-bottom:4px;
}
.monster-drawer-description h4:first-child{margin-top:0;}
.monster-drawer-description p{
  margin:0 0 8px;
  color:var(--py-muted-strong,var(--py-muted));
  font-style:italic;
}
.monster-drawer-description p + p{margin-top:7px;}
.monster-spell-toolbar{margin-top:6px!important;}
.monster-spell-chip{
  display:inline-flex;align-items:center;gap:6px;border:2px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--py-text-strong);font-size:11px;font-weight:950;line-height:1;padding:5px 9px;cursor:pointer;
}
.monster-spell-chip span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--py-muted);}
.monster-spell-chip:hover,.monster-spell-chip:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--py-on-primary);outline:none;}
.monster-spell-chip:hover span,.monster-spell-chip:focus-visible span{color:var(--py-on-primary);}
.codex-linked-spell-drawer{left:0!important;right:auto!important;transform:translateX(-104%)!important;z-index:980!important;}
.codex-linked-spell-drawer.open{transform:translateX(0)!important;}
.codex-linked-spell-drawer .spell-inspection-card{border-left:0!important;border-right:2px solid var(--line)!important;box-shadow:12px 0 28px var(--py-shadow-panel)!important;}
.spell-inspection-card,
.spell-inspection-header,
.spell-inspection-body{
  background:var(--py-panel)!important;
}
[data-py-mode="dark"] .encounter-stat-viewer-panel,
[data-py-mode="dark"] .stat-viewer-content,
[data-py-mode="dark"] .spell-inspection-card,
[data-py-mode="dark"] .spell-inspection-header,
[data-py-mode="dark"] .spell-inspection-body{
  background:var(--py-panel)!important;
}
@media (max-width:820px){
  .encounter-stat-viewer{grid-template-columns:1fr!important;}
  .encounter-stat-viewer-panel{grid-column:1!important;border-left:0!important;padding:10px!important;}
}

/* v29.42: keep encounter linked spell drawers visually matched to PyCodex compact spell details. */
.codex-linked-spell-drawer .spell-inspection-header{
  padding:14px 18px!important;
}
.codex-linked-spell-drawer .spell-inspection-body{
  padding:14px 20px!important;
  line-height:1.42!important;
  font-size:14.5px!important;
}
.codex-linked-spell-drawer .spell-detail-flags{
  margin:0 0 10px!important;
  gap:7px!important;
}
.codex-linked-spell-drawer .spell-detail-list{
  margin:0 0 10px!important;
}
.codex-linked-spell-drawer .spell-detail-line{
  margin:0 0 4px!important;
  font-size:14.5px!important;
  line-height:1.3!important;
}
.codex-linked-spell-drawer .spell-section{
  padding:11px 0 0!important;
  margin:11px 0 0!important;
}
.codex-linked-spell-drawer .spell-section h3{
  margin:0 0 7px!important;
}
.codex-linked-spell-drawer .spell-control-grid{
  margin-bottom:8px!important;
  gap:8px!important;
}
.codex-linked-spell-drawer .spell-chip-grid{
  gap:6px!important;
}
.codex-linked-spell-drawer .spell-info-chip,
.codex-linked-spell-drawer .spell-section .roll-chip{
  font-size:12.5px!important;
  padding:4px 8px!important;
  min-height:30px!important;
}
.codex-linked-spell-drawer .spell-description{
  font-size:14.5px!important;
  line-height:1.42!important;
}
.codex-linked-spell-drawer .spell-description p{
  margin:0 0 8px!important;
}
.codex-linked-spell-drawer .spell-description .higher-levels{
  margin:6px 0 0!important;
  padding-left:10px!important;
}

/* savertest v0.2: latest roll popups stay above encounter drawers. */
.builder-toast,
.manager-toast,
.roll-toast,
.encounter-roll-toast {
  z-index: 12000 !important;
}

/* Friendly encounter roster controls */
.friendly-add-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.5rem;
  padding: 0.55rem 0.8rem;
  border: 2px solid var(--border, rgba(46, 107, 174, 0.28));
  border-radius: 999px;
  background: var(--panel-soft, rgba(255,255,255,0.78));
  color: var(--text, #10243a);
  font-weight: 800;
  letter-spacing: 0.02em;
  cursor: pointer;
}
.friendly-add-toggle input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--accent, #2d74c4);
}
.roster-kind-pill.friendly-pill {
  border-color: rgba(46, 150, 103, 0.45);
  background: rgba(46, 150, 103, 0.12);
  color: #1d6b48;
}
.roster-kind-pill.enemy-pill {
  border-color: rgba(180, 75, 75, 0.35);
  background: rgba(180, 75, 75, 0.10);
  color: #8d3434;
}
[data-py-mode="dark"] .friendly-add-toggle {
  background: rgba(15, 23, 42, 0.78);
  color: var(--text, #f8fafc);
}
[data-py-mode="dark"] .roster-kind-pill.friendly-pill {
  color: #8ee0b5;
}
[data-py-mode="dark"] .roster-kind-pill.enemy-pill {
  color: #f0a5a5;
}


/* v0.21a monster description cleanup */
.monster-drawer-description p,
.pm-description p{
  font-style:normal;
}
.monster-drawer-description p strong,
.pm-description p strong{
  color:var(--py-text-strong);
  font-weight:900;
}
.monster-drawer-description blockquote,
.pm-description blockquote{
  margin:10px 0 14px;
  padding:9px 12px;
  border-left:4px solid var(--accent);
  background:color-mix(in srgb,var(--accent) 8%,transparent);
  color:var(--py-muted-strong,var(--py-muted));
  font-style:italic;
  border-radius:0 10px 10px 0;
}
.monster-description-list{
  margin:8px 0 14px 1.2rem;
  padding-left:.8rem;
}
.monster-description-list li{
  margin:5px 0;
  line-height:1.45;
}
.monster-description-table-wrap{
  width:100%;
  overflow-x:auto;
  margin:9px 0 16px;
  border:1px solid var(--line);
  border-radius:10px;
}
.monster-description-table{
  width:100%;
  min-width:420px;
  border-collapse:collapse;
  background:var(--py-panel);
  color:var(--py-text);
  font-size:.92em;
}
.monster-description-table th,
.monster-description-table td{
  padding:8px 10px;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid var(--line);
}
.monster-description-table th{
  background:var(--py-panel-soft);
  color:var(--py-text-strong);
  font-weight:900;
}
.monster-description-table tr:last-child td{
  border-bottom:0;
}
.roll-chip[data-roll-kind="recharge"]{
  border-style:dashed;
}

.monster-spell-list-line{margin:3px 0 2px;}
.monster-spell-list-line + .monster-spell-toolbar{margin-top:4px!important;}
