/* Static green availability, distinct from role identity and blue magical cost. */
body[data-progression="xp"] #game :is(.hero,.enemy,.ability).action-available{outline:2px solid #7cdf7c;outline-offset:1px;box-shadow:0 0 12px #5bdc6e70,inset 0 0 0 1px #c7ffbd88}
body[data-progression="xp"] #game :is(.hero,.enemy).legal-target{outline:3px double #a4ff91;outline-offset:2px}
body[data-progression="xp"] #game .hero.action-spent>img{filter:saturate(.55) brightness(.78)}
body[data-progression="xp"] :is(button.action-available,[data-main].action-available):not(:disabled){border-color:#88e683;box-shadow:inset 0 0 0 1px #8be98888,0 0 8px #53d56344}
body[data-progression="xp"] :is(button,.hero-select):focus-visible{outline:3px solid #b2ff97!important;outline-offset:2px}
body[data-progression="xp"] #mainActionDock .main-choice:disabled{box-shadow:none;border-color:#73816b;opacity:.45}
body[data-progression="xp"] #mainActionDock .main-choice>.icon{width:29px;height:29px}
body[data-progression="xp"] #mainActionDock .main-choice>small{position:absolute;top:3px;right:3px}
body[data-progression="xp"] #mainActionDock .main-choice>small .icon{width:18px;height:18px}
body[data-progression="xp"] #game>.formation .hero-row>.hero>.role-seal{left:auto!important;right:3px;top:2px;width:30px;height:30px}
body[data-progression="xp"] #game>.formation .hero-row>.hero .rank-badge{left:3px;right:auto}
body[data-progression="xp"] #game>.formation .hero-row>.hero .short-position{left:23px;right:36px;text-align:center}
body[data-progression="xp"] .inspection-role>img:not(.role-emblem){width:36px;height:36px;object-fit:contain}
body[data-progression="xp"] .effect-copy{display:block;font:14px/17px system-ui;color:#fff0d5;text-align:center;white-space:normal;overflow-wrap:anywhere;padding:2px 3px;background:#11231fd9;border-radius:3px}
body[data-progression="xp"] .cast-preview{grid-column:1/-1;display:flex;flex-direction:column;gap:3px;min-width:0;font:14px/18px system-ui}
body[data-progression="xp"] .cast-preview>strong{font-size:16px;line-height:20px;color:#c7f4ff}
body[data-progression="xp"] .cast-preview>p{margin:0;font-size:14px;line-height:18px}
body[data-progression="xp"] .cast-preview>span{font-size:14px;line-height:18px;color:#cff1b5}
body[data-progression="xp"] #mainForecast{grid-column:1/-1;margin:0;font:14px/18px system-ui;color:#d4f6bc}
body[data-progression="xp"] .target-forecast{position:absolute;z-index:6;left:3px;right:3px;bottom:66px;padding:3px;background:#102c20f2;border:1px solid #b4f597;color:#ecffdc;border-radius:4px;font:12px/15px system-ui;text-align:center;pointer-events:none}
body[data-progression="xp"] .enemy .target-forecast{bottom:59px}
/* The old coin medallion must not sit behind magical Mana. */
body[data-progression="xp"] .coin-purse>.purse-icon{background-image:none!important;color:#64c9ff;stroke:#9be5ff;fill:none;stroke-width:1.7;filter:drop-shadow(0 0 6px #38aaffaa)}
body[data-progression="xp"] .coin-count,body[data-progression="xp"] .coin-caption{color:#b4eaff}
body[data-progression="xp"] .cost .icon,body[data-progression="xp"] .mana-cost .icon{color:#79d8ff;stroke:#a3eaff;filter:drop-shadow(0 0 3px #25a8ff77)}
/* Quest is the primary route objective; the same button inspects its rules. */
body[data-progression="xp"] .top{height:68px;min-height:68px}
body[data-progression="xp"] .top>.journey-bar{grid-template-columns:minmax(0,1fr)}
body[data-progression="xp"] .top>.journey-bar .forecast-button{display:none}
body[data-progression="xp"] .top #enemyStatus{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}
body[data-progression="xp"] .top .run-progress{max-width:145px;font:12px/16px system-ui}
body[data-progression="xp"] #questTarget.quest-objective{min-width:150px;max-width:290px;flex:1;min-height:51px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:4px;padding:4px 8px;border:1px solid #a4bd79;background:linear-gradient(#314b2d,#172d20);color:#f1f4cf;text-align:left}
body[data-progression="xp"] .quest-objective>span:first-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
body[data-progression="xp"] .quest-objective strong{font:600 17px/20px system-ui;white-space:nowrap}
body[data-progression="xp"] .quest-objective small{font:12px/15px system-ui}
body[data-progression="xp"] .quest-progress-track{height:6px;display:block;background:#0b1f16;border:1px solid #bedb8b66;border-radius:5px;overflow:hidden}
body[data-progression="xp"] .quest-progress-track>i{height:100%;display:block;background:linear-gradient(90deg,#72b15c,#c4eb8e)}
@media(min-width:701px) and (min-height:501px) and (max-height:700px){body[data-progression="xp"] #game{grid-template-rows:minmax(0,1fr) auto 145px 32px}}
@media(max-width:700px) and (min-height:501px){body[data-progression="xp"] .top{height:110px;min-height:110px;grid-template-rows:38px 62px}body[data-progression="xp"] .top>.journey-bar{grid-column:1/-1;grid-row:2}body[data-progression="xp"] .top .run-progress{max-width:94px}body[data-progression="xp"] #questTarget.quest-objective{min-width:0;min-height:54px}body[data-progression="xp"] .quest-objective strong{font-size:16px}body[data-progression="xp"] .effect-copy{font-size:14px;line-height:16px}body[data-progression="xp"] .target-forecast{bottom:65px}}
@media(max-height:500px){body[data-progression="xp"] .top{height:40px;min-height:40px}body[data-progression="xp"] .top #enemyStatus{gap:5px}body[data-progression="xp"] .top .run-progress{max-width:108px;font-size:12px;line-height:13px}body[data-progression="xp"] #questTarget.quest-objective{min-width:105px;min-height:32px;padding:2px 5px;gap:2px}body[data-progression="xp"] .quest-objective strong{font-size:14px;line-height:17px}body[data-progression="xp"] .quest-objective small{display:none}body[data-progression="xp"] .quest-progress-track{height:4px}body[data-progression="xp"] #game>.formation .hero-row>.hero>.role-seal{width:22px;height:22px}body[data-progression="xp"] #game>.formation .hero-row>.hero .short-position{right:26px;font-size:12px}body[data-progression="xp"] #mainActionDock .main-choice>.icon{width:22px;height:22px}body[data-progression="xp"] .target-forecast{display:none}body[data-progression="xp"] .cast-preview{gap:1px;font-size:14px;line-height:16px}body[data-progression="xp"] .cast-preview>strong{font-size:14px;line-height:17px}body[data-progression="xp"] .cast-preview>p,body[data-progression="xp"] .cast-preview>span{font-size:14px;line-height:16px}body[data-progression="xp"] .effect-copy{font-size:14px;line-height:16px}}
@media(prefers-reduced-motion:reduce){body[data-progression="xp"] .action-available{transition:none!important;animation:none!important}}

body[data-progression="xp"] #game>.formation .hero-row>.hero>.role-seal>.role-emblem{width:100%;height:100%}
body[data-progression="xp"] #game>.formation .hero-row>.hero{container-type:size}
body[data-progression="xp"] .target-forecast{display:none}
body[data-progression="xp"] .cast-preview{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 12px}
body[data-progression="xp"] .cast-preview>span{grid-column:1/-1}
@container(max-height:170px){
 body[data-progression="xp"] #game>.formation .hero-row>.hero:has(.hero-body)>img{inset:22px auto 25px 3px!important;width:44%!important;height:calc(100% - 47px)!important}
 body[data-progression="xp"] #game>.formation .hero-row>.hero:has(.xp-ribbon)>.hero-body{padding:24px 4px 25px calc(44% + 5px)!important;grid-template-rows:minmax(0,1fr) 20px 22px!important}
}
@media(max-width:700px) and (min-height:501px){body[data-progression="xp"] .cast-preview{grid-template-columns:1fr;gap:2px}body[data-progression="xp"] .cast-preview>p,body[data-progression="xp"] .cast-preview>span{grid-column:1}}

body[data-progression="xp"][data-view="tavern"] .top{height:48px;min-height:48px;grid-template-rows:40px}
body[data-progression="xp"][data-view="tavern"] .top>.journey-bar{display:none}
@media(max-height:500px){
 body[data-progression="xp"] .top{height:36px;min-height:36px}
 body[data-progression="xp"][data-view="tavern"] .top{height:36px;min-height:36px;grid-template-rows:30px}
 body[data-progression="xp"] #playerHud{height:52px;min-height:52px}
 body[data-progression="xp"] #resources{height:46px}
 body[data-progression="xp"] #game{grid-template-rows:minmax(90px,1fr) auto 90px 28px}
}
@media(max-width:700px) and (min-height:501px){
 body[data-progression="xp"] #game{grid-template-rows:minmax(0,1fr) auto 140px auto}
}
@media(max-height:500px){
 body[data-progression="xp"] .top{height:34px;min-height:34px}
 body[data-progression="xp"] #playerHud{height:50px;min-height:50px}
 body[data-progression="xp"] #resources{height:44px}
 body[data-progression="xp"] #game{grid-template-rows:minmax(82px,1fr) auto 102px 26px;gap:3px 10px}
 body[data-progression="xp"] #mainActionDock .main-choice{min-height:40px;padding:2px}
}
body[data-progression="xp"] .cost,body[data-progression="xp"] .pv-option-cost{color:#bcefff}
body[data-progression="xp"] .pv-option-cost .pv-icon,body[data-progression="xp"] .pv-old .pv-icon{color:#79d8ff;stroke:#a3eaff}
body[data-progression="xp"] .inspection-art .cost{color:#bcefff;border-color:#79d8ff}
@media(max-height:500px){
 body[data-progression="xp"] .top{grid-template-rows:30px;padding:2px 6px}
 body[data-progression="xp"] .top>.journey-bar{height:30px;align-self:center}
 body[data-progression="xp"] .top #enemyStatus{height:30px}
 body[data-progression="xp"] #questTarget.quest-objective{height:28px;min-height:28px;padding:1px 5px}
 body[data-progression="xp"] .threat-purse{height:42px;min-height:0;padding:1px 4px;align-self:center;box-sizing:border-box}
 body[data-progression="xp"] .threat-purse strong{line-height:14px}
 body[data-progression="xp"] .threat-purse small,body[data-progression="xp"] .threat-purse small span{line-height:12px}
}

body[data-progression="xp"][data-casting="true"] #game{grid-template-rows:minmax(0,1fr) 0 190px 32px}
body[data-progression="xp"][data-casting="true"] #handSection>.hand-heading{display:none}
body[data-progression="xp"][data-casting="true"] #handSection>#mainActionDock{flex:none;margin-bottom:3px;padding:4px 6px}
@media(max-width:700px) and (min-height:501px){body[data-progression="xp"][data-casting="true"] #game{grid-template-rows:minmax(0,1fr) 0 180px auto}body[data-progression="xp"][data-casting="true"] .cast-preview>p{display:none}}
@media(max-height:500px){body[data-progression="xp"][data-casting="true"] #game{grid-template-rows:minmax(82px,1fr) 0 145px 26px}body[data-progression="xp"][data-casting="true"] .cast-preview>p{display:none}body[data-progression="xp"][data-casting="true"] #handSection>#mainActionDock{padding:2px 4px}.cast-preview>span{font-size:14px;line-height:16px}}
@media(max-width:700px) and (min-height:501px){
 body[data-progression="xp"] .last-attack{display:none}
 body[data-progression="xp"] #game .enemy>img{inset:3px auto 3px 3px;width:29%;height:calc(100% - 6px)}
 body[data-progression="xp"] #game .enemy>.enemy-copy{padding:3px 3px 3px calc(29% + 4px);grid-template-rows:minmax(0,1fr) 16px 20px auto}
 body[data-progression="xp"] #game .enemy h3{font-size:14px;line-height:16px}
 body[data-progression="xp"] #game .enemy .hp{font-size:16px;line-height:19px}
}
@media(max-height:500px){
 body[data-progression="xp"] #threatInfo{height:42px;max-height:42px;min-height:0}
 /* A short solo card keeps name and Health together above the separate XP row. */
 body[data-progression="xp"] #game[data-party-size="1"] .hero-row>.hero:has(.xp-ribbon)>.hero-body{padding:18px 4px 18px calc(25% + 5px)!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:20px 5px!important}
 body[data-progression="xp"] #game[data-party-size="1"] .hero-row>.hero h3{grid-column:1;grid-row:1;align-self:center;margin:0;font-size:14px;line-height:18px}
 body[data-progression="xp"] #game[data-party-size="1"] .hero-row>.hero .hp{grid-column:2;grid-row:1;align-self:center;font-size:16px;line-height:20px}
 body[data-progression="xp"] #game[data-party-size="1"] .hero-row>.hero .health-track{grid-column:1/-1;grid-row:2}
 body[data-progression="xp"] #game[data-party-size="1"] .hero-row>.hero:only-of-type>img{inset:18px auto 18px 2px!important;width:25%!important;height:calc(100% - 36px)!important}
 body[data-progression="xp"] #game[data-party-size="1"] .last-attack{display:none}
}

/* Painted main actions: illustrations carry the choice; text stays real HTML. */
body[data-progression="xp"] #mainActionDock>.main-action-heading{display:none}
body[data-progression="xp"] #mainActionDock:has(.main-choices){padding:3px;gap:0;background:linear-gradient(100deg,#131f18e6,#433820cc,#13251ce8);border-color:#b59b63}
body[data-progression="xp"] #mainActionDock .main-choice{grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;gap:1px 7px;min-height:70px;padding:4px 7px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 12% 50%,#82703b55,transparent 70%),linear-gradient(#263d2c,#11241c);border-radius:9px;text-align:left}
body[data-progression="xp"] #mainActionDock .main-action-art{grid-column:1;grid-row:1/3;width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 2px 3px #000b);pointer-events:none}
body[data-progression="xp"] #mainActionDock .main-choice>strong{grid-column:2;grid-row:1;align-self:end;font:600 18px/22px Georgia,serif;justify-self:start}
body[data-progression="xp"] #mainActionDock .main-choice>span{grid-column:2;grid-row:2;align-self:start;justify-self:start;font:14px/18px system-ui}
body[data-progression="xp"] #mainActionDock .main-choice>small{top:3px;right:3px;opacity:.8}
body[data-progression="xp"] #mainActionDock .main-choice>small .icon{width:14px;height:14px}
body[data-progression="xp"] #mainActionDock .main-choice:disabled .main-action-art{filter:grayscale(.8) brightness(.65)}
body[data-progression="xp"] #mainActionDock .main-choice[aria-pressed="true"]{border-color:#d5ef9b;background:radial-gradient(ellipse at 10% 50%,#8fa74755,transparent 70%),linear-gradient(#385737,#1c3426)}
@media(max-width:700px) and (min-height:501px){
 body[data-progression="xp"] #mainActionDock .main-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
 body[data-progression="xp"] #mainActionDock .main-choice{grid-template-columns:40px minmax(0,1fr);min-height:54px;padding:2px 4px;gap:0 4px}
 body[data-progression="xp"] #mainActionDock .main-action-art{width:40px;height:40px}
 body[data-progression="xp"] #mainActionDock .main-choice>strong{font-size:16px;line-height:19px}
 body[data-progression="xp"] #mainActionDock .main-choice>span{font-size:14px;line-height:16px}
}
@media(max-height:500px){
 body[data-progression="xp"] #mainActionDock:has(.main-choices){padding:1px 2px}
 body[data-progression="xp"] #mainActionDock .main-choice{grid-template-columns:30px minmax(0,1fr);min-height:40px;padding:1px 3px;gap:0 3px}
 body[data-progression="xp"] #mainActionDock .main-action-art{width:30px;height:30px}
 body[data-progression="xp"] #mainActionDock .main-choice>strong{font-size:16px;line-height:18px}
 body[data-progression="xp"] #mainActionDock .main-choice>span{font-size:14px;line-height:16px}
 body[data-progression="xp"] #mainActionDock .main-choice>small{display:none}
}
/* Opt-in fixture sessions reserve a label; normal and scratch play never use it. */
body[data-fixture]{padding-top:18px}
#coverageNotice{position:fixed;z-index:10000;inset:0 0 auto;height:18px;display:flex;align-items:center;justify-content:center;gap:12px;padding:0 5px;background:#3c2853;color:#f6e6ff;font:12px/16px system-ui;white-space:nowrap}
#coverageNotice a{color:#e0ffaf;text-decoration:underline}
@media(max-width:500px){#coverageNotice{gap:6px}#coverageNotice>span{display:none}}

body[data-progression="xp"] #mainActionDock>.main-action-heading>span{display:none}
@media(max-height:500px){
 body[data-progression="xp"] #mainActionDock .main-range{display:none}
 body[data-progression="xp"] #game>.formation .hero-row>.hero:has(.xp-ribbon)>.hero-body{padding:16px 3px 16px calc(20% + 4px)!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:20px 5px!important}
 body[data-progression="xp"] #game>.formation .hero-row>.hero h3{grid-column:1;grid-row:1;align-self:center;margin:0;font-size:14px;line-height:18px}
 body[data-progression="xp"] #game>.formation .hero-row>.hero .hp{grid-column:2;grid-row:1;align-self:center;font-size:16px;line-height:20px}
 body[data-progression="xp"] #game>.formation .hero-row>.hero .hp>.icon{display:none}
 body[data-progression="xp"] #game>.formation .hero-row>.hero .health-track{grid-column:1/-1;grid-row:2}
 body[data-progression="xp"] #game>.formation .hero-row>.hero>img{inset:17px auto 17px 2px!important;width:20%!important;height:calc(100% - 34px)!important}
 body[data-progression="xp"] #game>.formation .last-attack{display:none}
}
@media(max-height:500px){
 body[data-progression="xp"] #game>.formation .hero-row>.hero:has(.xp-ribbon)>.hero-body{padding-top:14px!important}
 body[data-progression="xp"] #game>.formation .hero-row>.hero .xp-ribbon{height:18px;min-height:18px;bottom:0}
 body[data-progression="xp"] #game>.formation .hero-row>.hero .experience-meter{height:18px;min-height:18px;line-height:16px}
 body[data-progression="xp"] #game>.formation .hero-row>.hero .xp-value{height:16px;font-size:14px;line-height:16px}
 body[data-progression="xp"] #game>.formation .hero-row>.hero .xp-ribbon>button{height:18px;min-height:18px;line-height:16px}
}
