/* ENCORE LAYOUT END-12 production bridge for the 1.30.0 cumulative runtime. */
.encore-legacy-audio-hidden{display:none!important}
.encore-music-trigger{min-height:32px;padding:.36rem .66rem;border:1px solid #6e91b8;border-radius:.55rem;background:#132842;color:#f8fafc;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;white-space:nowrap}
.encore-music-trigger:hover,.encore-music-trigger:focus-visible{background:#1b3658;border-color:#8ff3ea;outline:2px solid transparent}

.encore-production-context-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin:.42rem 0;padding:.35rem .45rem;border:1px solid #385673;border-radius:.7rem;background:#0c1b2d}
.encore-production-context-action{min-height:30px;padding:.32rem .58rem;border:1px solid #526f8e;border-radius:.5rem;background:#152b45;color:#edf6ff;font:inherit;font-size:.74rem;font-weight:750;cursor:pointer}
.encore-production-context-action:hover,.encore-production-context-action:focus-visible,.encore-production-context-action.is-active{background:#214264;border-color:#8ff3ea}
.encore-production-context-action.is-alerting::before{content:'';display:inline-block;width:.45rem;height:.45rem;margin-right:.32rem;border-radius:50%;background:currentColor;vertical-align:.05rem}

.encore-production-context{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid #496986;border-radius:.85rem;background:#0d1d30;color:#f8fafc;overflow:hidden}
.encore-production-context[hidden]{display:none!important}
.encore-production-context__header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.58rem .68rem;border-bottom:1px solid #36536e;background:#102640}
.encore-production-context__header h2{margin:0;font-size:.94rem;color:#fff}
.encore-production-context__close{width:30px;height:30px;border:1px solid #607e9c;border-radius:.45rem;background:#132842;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer}
.encore-production-context__body{min-height:0;overflow:auto;padding:.55rem;scrollbar-gutter:stable}
.encore-production-context__body>[data-encore-production-context-source]{margin:0!important;height:auto!important;max-height:none!important;overflow:visible!important}
.encore-production-context__body .encore-card-resize-handle{display:none!important}
.encore-production-context__body .learning-guide-v2{margin:0}

.encore-production-empty-column{display:none!important}
.encore-production-primary-workspace{min-width:0;min-height:0}

.declarative-shell.encore-layout-end12-live{padding:.55rem;gap:.4rem}
.declarative-shell.encore-layout-end12-live .declarative-topbar{padding:.5rem .7rem}
.declarative-shell.encore-layout-end12-live .declarative-topbar h1{font-size:clamp(1.05rem,1.6vw,1.45rem);margin:.05rem 0}
.declarative-shell.encore-layout-end12-live .declarative-topbar>div:first-child>p:last-child{font-size:.76rem;line-height:1.25;margin:.15rem 0}
.declarative-shell.encore-layout-end12-live .declarative-clock{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}
.declarative-shell.encore-layout-end12-live .declarative-clock>span{font-size:.88rem}
.declarative-shell.encore-layout-end12-live .declarative-clock>strong{font-size:1.45rem;color:#f2b84b}
.declarative-shell.encore-layout-end12-live .encore-production-kpi-strip{margin:.35rem 0!important;padding:.45rem .58rem!important;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.45rem .8rem;height:auto!important;overflow:hidden!important}
.declarative-shell.encore-layout-end12-live .encore-production-kpi-strip h2{margin:0!important;font-size:.78rem;white-space:nowrap}
.declarative-shell.encore-layout-end12-live .encore-production-kpi-strip .indicator-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.28rem .42rem;margin:0;min-width:0;align-items:start}
.declarative-shell.encore-layout-end12-live .encore-production-kpi-strip .indicator-list>div{padding:.14rem .22rem!important;display:flex;justify-content:space-between;align-items:flex-start;gap:.35rem;min-width:0;font-size:.72rem}
.declarative-shell.encore-layout-end12-live .encore-production-kpi-strip .indicator-list dt{min-width:0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.14}
.declarative-shell.encore-layout-end12-live .encore-production-kpi-strip .score-line{margin:0;white-space:nowrap;font-size:.76rem}
.declarative-shell.encore-layout-end12-live .declarative-grid-v2{grid-template-columns:minmax(0,1fr)!important;gap:.5rem;margin-top:0;min-height:0}
.declarative-shell.encore-layout-end12-live.encore-context-open .declarative-grid-v2{grid-template-columns:minmax(0,1fr) minmax(300px,350px)!important}
.declarative-shell.encore-layout-end12-live .declarative-main-column{display:block!important;overflow:hidden!important}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel{height:100%;min-height:0;overflow:auto}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel form{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
.declarative-shell.encore-layout-end12-live .decision-field{padding:.42rem;min-width:0}
.declarative-shell.encore-layout-end12-live .decision-field legend{font-size:.76rem}
.declarative-shell.encore-layout-end12-live .decision-field small{font-size:.68rem;line-height:1.22}

.competition-workspace-shell.encore-layout-end12-live{padding:.55rem;gap:.4rem}
.competition-workspace-shell.encore-layout-end12-live .competition-workspace-header{padding:.5rem .7rem}
.competition-workspace-shell.encore-layout-end12-live .competition-workspace-header h1{font-size:clamp(1.08rem,1.7vw,1.5rem)}
.competition-workspace-shell.encore-layout-end12-live .competition-countdown{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}
.competition-workspace-shell.encore-layout-end12-live .business-arena-kpis{margin:.35rem 0;gap:.35rem}
.competition-workspace-shell.encore-layout-end12-live .business-arena-kpis article{padding:.4rem .48rem}
.competition-workspace-shell.encore-layout-end12-live .competition-workspace-grid{grid-template-columns:minmax(0,1fr)!important;gap:.5rem;min-height:0}
.competition-workspace-shell.encore-layout-end12-live.encore-context-open .competition-workspace-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px)!important}
.competition-workspace-shell.encore-layout-end12-live .competition-decision-panel{min-width:0;min-height:0;overflow:hidden}
.competition-workspace-shell.encore-layout-end12-live .competition-section-grid{display:block;min-height:0;overflow:auto}
.competition-workspace-shell.encore-layout-end12-live .competition-section-card{height:auto!important;min-height:0;margin:0;overflow:visible}
.competition-workspace-shell.encore-layout-end12-live .competition-section-card[hidden]{display:none!important}
.encore-main-section-nav{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin:.35rem 0 .5rem;padding:.3rem;border:1px solid #385673;border-radius:.65rem;background:#0d1e32}
.encore-main-section-nav__button{min-height:31px;padding:.34rem .6rem;border:1px solid #526f8e;border-radius:.48rem;background:#152b45;color:#f2f7fc;font:inherit;font-size:.73rem;font-weight:800;cursor:pointer}
.encore-main-section-nav__button:hover,.encore-main-section-nav__button:focus-visible,.encore-main-section-nav__button.is-active{background:#235077;border-color:#8ff3ea;color:#fff}

.business-pricing-reference,.business-debt-reference{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;margin:-.15rem 0 .55rem;padding:.48rem;border:1px solid #4a6d8e;border-radius:.65rem;background:#0d2035}
.business-pricing-reference span,.business-debt-reference span{display:grid;gap:.12rem;padding:.32rem .4rem;border-radius:.45rem;background:#132b45}
.business-pricing-reference small,.business-debt-reference small{font-size:.66rem;color:#b9cadb}
.business-pricing-reference strong,.business-debt-reference strong{font-size:.92rem;color:#fff}
.business-pricing-reference em,.business-debt-reference em{grid-column:1/-1;font-size:.68rem;line-height:1.25;color:#c8d6e5;font-style:normal}
.business-pricing-reference .positive{color:#8ee0b4}.business-pricing-reference .negative{color:#ffb0a8}

@media (min-width:900px) and (min-height:650px){
  body.encore-layout-end12-live{overflow:hidden}
  .declarative-shell.encore-layout-end12-live,.competition-workspace-shell.encore-layout-end12-live{height:100vh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
  .declarative-shell.encore-layout-end12-live .declarative-grid-v2,.competition-workspace-shell.encore-layout-end12-live .competition-workspace-grid{flex:1 1 auto;overflow:hidden}
  .declarative-shell.encore-layout-end12-live .encore-production-context,.competition-workspace-shell.encore-layout-end12-live .encore-production-context{height:100%;min-height:0}
}

@media(max-width:1180px){
  .declarative-shell.encore-layout-end12-live .encore-production-kpi-strip .indicator-list{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}
  .declarative-shell.encore-layout-end12-live .declarative-decision-panel form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  body.encore-layout-end12-live{overflow:auto}
  .declarative-shell.encore-layout-end12-live.encore-context-open .declarative-grid-v2,.competition-workspace-shell.encore-layout-end12-live.encore-context-open .competition-workspace-grid{grid-template-columns:1fr!important}
  .encore-production-context{max-height:70vh}
}

@media(prefers-reduced-motion:reduce){.encore-production-context-action,.encore-main-section-nav__button,.encore-music-trigger{transition:none!important}}
@media(forced-colors:active){.encore-production-context-action,.encore-main-section-nav__button,.encore-music-trigger,.encore-production-context{border:1px solid CanvasText}}
.encore-production-context__body>[data-encore-production-context-source][hidden]{display:none!important}

/* Compact legacy daily dashboard utilities: Learning Guide / report / layout reset are links, not cards. */
.viewport-dashboard.encore-layout-end12-live>.encore-dashboard-utility-links{flex:0 0 auto;margin:0;padding:.12rem .45rem;min-height:24px;border:0;border-radius:0;background:transparent;justify-content:flex-end;gap:.75rem}
.viewport-dashboard.encore-layout-end12-live>.encore-dashboard-utility-links .encore-production-context-action,
.viewport-dashboard.encore-layout-end12-live>.encore-dashboard-utility-links .encore-dashboard-word-link{min-height:24px;padding:.08rem .12rem;border:0;border-radius:0;background:transparent;color:#9ad8ff;font:inherit;font-size:.72rem;font-weight:750;text-decoration:underline;cursor:pointer}
.viewport-dashboard.encore-layout-end12-live>.encore-dashboard-utility-links .encore-production-context-action:hover,
.viewport-dashboard.encore-layout-end12-live>.encore-dashboard-utility-links .encore-production-context-action:focus-visible,
.viewport-dashboard.encore-layout-end12-live>.encore-dashboard-utility-links .encore-dashboard-word-link:hover,
.viewport-dashboard.encore-layout-end12-live>.encore-dashboard-utility-links .encore-dashboard-word-link:focus-visible{background:transparent;color:#fff;outline:1px solid #8ff3ea;outline-offset:2px}
.viewport-dashboard.encore-layout-end12-live.encore-context-open .daily-business-grid{grid-template-columns:minmax(175px,.65fr) minmax(430px,1.75fr) minmax(300px,360px)!important}
.viewport-dashboard.encore-layout-end12-live.encore-context-open .leaderboard-panel{display:none!important}
.viewport-dashboard.encore-layout-end12-live .encore-production-context{min-height:0;height:100%}
.viewport-dashboard.encore-layout-end12-live .learning-guide-v2{margin:0}
.viewport-dashboard.encore-layout-end12-live .compact-learning-panel{display:none!important}

.admin-ui-preferences{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1rem 0;padding:.8rem 1rem;border:1px solid #36536e;border-radius:.75rem;background:#0d1e32}
.admin-ui-preferences h2,.admin-ui-preferences p{margin:.15rem 0}
.admin-ui-preferences__form{display:flex;align-items:end;gap:.6rem;flex-wrap:wrap}
.admin-ui-preferences__form label{display:grid;gap:.25rem;font-size:.78rem}
.admin-ui-preferences__form input{width:90px}
.encore-admin-security-integrated{display:grid;gap:1rem}
.encore-admin-security-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;align-items:end}
.encore-admin-security-grid label{display:grid;gap:.25rem}
.encore-admin-manage-stack{display:grid;gap:.45rem;min-width:min(520px,70vw);padding:.55rem}
.encore-admin-manage-stack form{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.encore-admin-manage-stack input{min-width:130px}
@media(max-width:900px){.encore-admin-security-grid{grid-template-columns:1fr}.encore-admin-manage-stack{min-width:0}}

/* v1.0.3 gameplay density + true two-edge vertical resizing. */
@media (min-width:900px) and (min-height:650px){
  .viewport-dashboard.encore-layout-end12-live{
    grid-template-rows:auto minmax(0,1fr)!important;
  }
  .viewport-dashboard.encore-layout-end12-live .header-tools{
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    row-gap:.22rem;
  }
  .viewport-dashboard.encore-layout-end12-live .encore-dashboard-utility-links{
    flex:0 1 auto;
    order:3;
    width:auto;
    margin:0;
    padding:0;
    min-height:22px;
    border:0;
    border-radius:0;
    background:transparent;
    justify-content:flex-end;
    gap:.55rem;
  }
  .viewport-dashboard.encore-layout-end12-live .encore-dashboard-utility-links .encore-production-context-action,
  .viewport-dashboard.encore-layout-end12-live .encore-dashboard-utility-links .encore-dashboard-word-link,
  .viewport-dashboard.encore-layout-end12-live .encore-dashboard-utility-links .encore-layout-reset{
    position:static!important;
    min-height:22px!important;
    margin:0!important;
    padding:.05rem .1rem!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#9ad8ff!important;
    font-size:.70rem!important;
    font-weight:750!important;
    line-height:1.15!important;
    text-decoration:underline;
    white-space:nowrap;
  }
  .viewport-dashboard.encore-layout-end12-live .encore-dashboard-utility-links .encore-layout-reset{
    cursor:pointer;
  }
  .viewport-dashboard.encore-layout-end12-live .daily-main-column{
    display:flex!important;
    flex-direction:column!important;
    align-content:normal!important;
    gap:.45rem!important;
    overflow:hidden!important;
  }
  .viewport-dashboard.encore-layout-end12-live .daily-main-column>.report-panel{
    flex:1 1 54%;
    min-height:120px!important;
    max-height:none!important;
  }
  .viewport-dashboard.encore-layout-end12-live .daily-main-column>.today-panel{
    flex:1 1 46%;
    min-height:120px!important;
  }
  .viewport-dashboard.encore-layout-end12-live .daily-main-column>.encore-flex-card.encore-card-sized{
    flex:0 0 auto!important;
  }
}

/* Make both resize boundaries discoverable; handles remain vertical-only. */
.encore-card-resize-handle{
  touch-action:none;
}
.encore-card-resize-handle--top{
  top:1px!important;
  width:68px!important;
  height:16px!important;
  opacity:.78!important;
  border:1px solid rgba(143,243,234,.5)!important;
  border-radius:0 0 8px 8px!important;
  background:rgba(7,24,42,.90)!important;
}
.encore-card-resize-handle--bottom{
  bottom:1px!important;
  width:58px!important;
  height:14px!important;
}
.encore-card-resize-handle--top::before{
  line-height:12px!important;
}
.encore-card-resize-handle--top:hover,
.encore-card-resize-handle--top:focus-visible{
  opacity:1!important;
  border-color:#8ff3ea!important;
  background:#102f49!important;
}


/* v1.0.3 Main Game: Final Reconciliation is end-of-game context only, never a permanent gameplay card. */
.competition-workspace-shell.encore-layout-end12-live:not([data-last-status="results"]):not([data-last-status="ended"]):not([data-last-status="finished"]):not([data-last-status="completed"]):not([data-last-status="finalized"]) .encore-final-reconciliation-surface,
.competition-workspace-shell.encore-layout-end12-live .encore-end-only-hidden{
  display:none!important;
}
.competition-workspace-shell.encore-layout-end12-live .encore-production-context-action[data-context-key="final-reconciliation"]{
  min-height:30px;
  padding:.3rem .58rem;
}


/* v1.0.4 Main Game workspace regression fix: utilities never consume a bottom row. */
.competition-workspace-shell.encore-layout-end12-live>.competition-ai-export-row,
.competition-workspace-shell.encore-layout-end12-live>.competition-ai-export-row[hidden]{display:none!important}
.competition-workspace-shell.encore-layout-end12-live>.encore-production-context-actions{
  flex:0 0 auto;
  margin:.18rem 0 .32rem;
  padding:.28rem .4rem;
  min-height:36px;
}
.competition-workspace-shell.encore-layout-end12-live .encore-production-context-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  white-space:nowrap;
}
.competition-workspace-shell.encore-layout-end12-live>.encore-production-context-actions .encore-layout-reset{
  position:static!important;
  right:auto!important;
  bottom:auto!important;
  z-index:auto!important;
  min-height:30px!important;
  margin:0!important;
  padding:.32rem .58rem!important;
  border:1px solid #526f8e!important;
  border-radius:.5rem!important;
  background:#152b45!important;
  box-shadow:none!important;
  color:#edf6ff!important;
  font-size:.74rem!important;
  line-height:1.1!important;
  text-decoration:none!important;
}
.competition-workspace-shell.encore-layout-end12-live>.encore-production-context-actions .encore-layout-reset:hover,
.competition-workspace-shell.encore-layout-end12-live>.encore-production-context-actions .encore-layout-reset:focus-visible{
  background:#214264!important;
  border-color:#8ff3ea!important;
  color:#fff!important;
}

/* The decision card owns the remaining height; only its section body scrolls. */
.competition-workspace-shell.encore-layout-end12-live .competition-decision-panel{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:hidden!important;
}
.competition-workspace-shell.encore-layout-end12-live .competition-panel-heading,
.competition-workspace-shell.encore-layout-end12-live .encore-main-section-nav{
  flex:0 0 auto;
}
.competition-workspace-shell.encore-layout-end12-live .competition-section-grid{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
  padding-right:.2rem;
  padding-bottom:1.15rem;
}
.competition-workspace-shell.encore-layout-end12-live .competition-section-card.is-active-section{
  padding-bottom:1rem;
}

/* Classroom Readiness Hotfix v1: content-aware context width + reliable horizontal result scrolling. */
.encore-layout-end12-live .encore-production-context,
.encore-layout-end12-live .encore-production-context__body,
.encore-layout-end12-live .encore-production-context__body>[data-encore-production-context-source]{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box;
}
.encore-layout-end12-live .encore-production-context__body{
  width:100%;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
.encore-layout-end12-live .encore-production-context__body>[data-encore-production-context-source]{
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
}
.encore-layout-end12-live .encore-production-context__body .budget-variance-summary{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overflow-y:visible!important;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable both-edges;
  touch-action:pan-x pan-y;
}
.encore-layout-end12-live .encore-production-context__body .budget-variance-table{
  width:max(100%,980px);
  min-width:980px;
}

/* Input cards use only the width their controls need instead of stretching across unused space. */
.declarative-shell.encore-layout-end12-live .declarative-decision-panel form{
  grid-template-columns:repeat(auto-fit,minmax(190px,280px))!important;
  justify-content:start;
  align-content:start;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel .decision-field{
  width:100%;
  max-width:280px;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel #declarative-save-status,
.declarative-shell.encore-layout-end12-live .declarative-decision-panel .decision-save-status{
  grid-column:1/-1;
  max-width:none;
}
.competition-workspace-shell.encore-layout-end12-live .competition-section-card{
  width:min(100%,760px);
  max-width:760px;
  justify-self:start;
}
.viewport-dashboard.encore-layout-end12-live .decision-grid{
  grid-template-columns:repeat(auto-fit,minmax(180px,240px))!important;
  justify-content:start;
  align-content:start;
}
.viewport-dashboard.encore-layout-end12-live .decision-grid>label,
.viewport-dashboard.encore-layout-end12-live .decision-grid>.decision-field{
  width:100%;
  max-width:240px;
}

/* Open information surfaces receive the space released by compact decision cards. */
@media (min-width:901px){
  .declarative-shell.encore-layout-end12-live.encore-context-open .declarative-grid-v2{
    grid-template-columns:minmax(500px,1fr) minmax(320px,var(--encore-context-width,560px))!important;
  }
  .competition-workspace-shell.encore-layout-end12-live.encore-context-open .competition-workspace-grid{
    grid-template-columns:minmax(540px,1fr) minmax(320px,var(--encore-context-width,580px))!important;
  }
  .viewport-dashboard.encore-layout-end12-live.encore-context-open .daily-business-grid{
    grid-template-columns:minmax(165px,.55fr) minmax(400px,1fr) minmax(320px,var(--encore-context-width,500px))!important;
  }
}

/* Adaptive Workspace & Horizontal Context Fix v1 */
.encore-workspace-splitter{
  position:relative;
  min-width:10px;
  width:10px;
  min-height:0;
  align-self:stretch;
  border-radius:999px;
  cursor:col-resize;
  touch-action:none;
  background:transparent;
  outline:none;
  z-index:8;
}
.encore-workspace-splitter::before{
  content:'';
  position:absolute;
  inset:8px 3px;
  border-radius:999px;
  background:#41627f;
  box-shadow:0 0 0 1px rgba(143,243,234,.12);
}
.encore-workspace-splitter:hover::before,
.encore-workspace-splitter:focus-visible::before,
.encore-workspace-splitter.is-dragging::before{
  background:#8ff3ea;
  box-shadow:0 0 0 2px rgba(143,243,234,.22);
}
.encore-workspace-splitter[hidden]{display:none!important}
body.encore-workspace-resizing,body.encore-workspace-resizing *{cursor:col-resize!important;user-select:none!important}

/* One horizontal scroller per wide information table. Parent context containers scroll vertically only. */
.encore-layout-end12-live .encore-production-context,
.encore-layout-end12-live .encore-production-context__body,
.encore-layout-end12-live .encore-production-context__body>[data-encore-production-context-source]{
  min-width:0!important;
  max-width:100%!important;
}
.encore-layout-end12-live .encore-production-context__body{
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
.encore-layout-end12-live .encore-production-context__body>[data-encore-production-context-source]{
  width:100%!important;
  overflow:visible!important;
}
.encore-layout-end12-live .encore-production-context__body .budget-variance-summary{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}
.encore-horizontal-scroll-region{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
  touch-action:pan-x pan-y;
  -webkit-overflow-scrolling:touch;
}
.encore-horizontal-scroll-region>.encore-context-wide-table{
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
}
.encore-horizontal-scroll-region>.budget-variance-table{
  width:max-content!important;
  min-width:980px!important;
}
.encore-horizontal-scroll-region>.encore-context-wide-table th,
.encore-horizontal-scroll-region>.encore-context-wide-table td{
  white-space:normal;
}
.encore-horizontal-scroll-region>.budget-variance-table th,
.encore-horizontal-scroll-region>.budget-variance-table td{
  min-width:105px;
}
.encore-horizontal-scroll-region>.budget-variance-table th:first-child,
.encore-horizontal-scroll-region>.budget-variance-table td:first-child{min-width:175px}

/* Declarative Mini Games: field count determines useful working width rather than a fixed 280px card cap. */
.declarative-shell.encore-layout-end12-live .declarative-decision-panel form{
  width:100%;
  max-width:none;
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))!important;
  justify-content:stretch!important;
  align-content:start;
  gap:.5rem!important;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="1"]{
  grid-template-columns:minmax(0,1fr)!important;
  max-width:720px;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="2"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  max-width:1040px;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="2"].encore-has-allocation{
  grid-template-columns:minmax(0,1.35fr) minmax(0,.75fr)!important;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="3"]{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  max-width:1180px;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel .decision-field{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box;
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel .allocation-grid{
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
}
.declarative-shell.encore-layout-end12-live .declarative-decision-panel .decision-field input,
.declarative-shell.encore-layout-end12-live .declarative-decision-panel .decision-field select,
.declarative-shell.encore-layout-end12-live .declarative-decision-panel .decision-field textarea{
  width:100%;
  box-sizing:border-box;
}

/* Main Games and Cost Information: use available decision-column width; the divider controls the split. */
.competition-workspace-shell.encore-layout-end12-live .competition-section-card{
  width:100%!important;
  max-width:980px!important;
  justify-self:stretch!important;
  box-sizing:border-box;
}
.viewport-dashboard.encore-layout-end12-live .decision-grid{
  width:100%;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr))!important;
  justify-content:stretch!important;
}
.viewport-dashboard.encore-layout-end12-live .decision-grid>label,
.viewport-dashboard.encore-layout-end12-live .decision-grid>.decision-field{
  width:100%!important;
  max-width:none!important;
}

@media (min-width:901px){
  .declarative-shell.encore-layout-end12-live.encore-context-open .declarative-grid-v2{
    grid-template-columns:minmax(440px,1fr) 10px minmax(300px,var(--encore-context-width,560px))!important;
    gap:.35rem!important;
  }
  .competition-workspace-shell.encore-layout-end12-live.encore-context-open .competition-workspace-grid{
    grid-template-columns:minmax(500px,1fr) 10px minmax(300px,var(--encore-context-width,580px))!important;
    gap:.35rem!important;
  }
  .viewport-dashboard.encore-layout-end12-live.encore-context-open .daily-business-grid{
    grid-template-columns:minmax(165px,.55fr) minmax(400px,1fr) 10px minmax(300px,var(--encore-context-width,500px))!important;
    gap:.35rem!important;
  }
}

@media (max-width:900px){
  .encore-workspace-splitter{display:none!important}
  .declarative-shell.encore-layout-end12-live .declarative-decision-panel form,
  .declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="1"],
  .declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="2"],
  .declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="2"].encore-has-allocation,
  .declarative-shell.encore-layout-end12-live .declarative-decision-panel form[data-encore-field-count="3"]{
    grid-template-columns:1fr!important;
    max-width:none!important;
  }
}

/* =====================================================================
   FLEXIBLE CARD UI v5 — independent four-edge player resizing
   Presentation-only customisation. Default geometry stays untouched until a player resizes a card.
   ===================================================================== */
@media (min-width:900px){
  .encore-flex-card{
    position:relative!important;
    box-sizing:border-box!important;
  }
  .encore-flex-card.encore-card-sized{
    overflow:auto!important;
    scrollbar-gutter:stable;
    justify-self:start!important;
    align-self:start!important;
    box-sizing:border-box!important;
  }
  .encore-card-resize-handle{
    position:absolute!important;
    z-index:30!important;
    display:block;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(143,243,234,.38)!important;
    background:rgba(7,24,42,.88)!important;
    box-shadow:0 0 0 1px rgba(5,15,27,.32)!important;
    opacity:.42!important;
    touch-action:none!important;
    user-select:none!important;
  }
  .encore-card-resize-handle::before{
    display:block!important;
    color:#8ff3ea!important;
    font-size:13px!important;
    font-weight:900!important;
    letter-spacing:1px!important;
    line-height:1!important;
    transform:none!important;
  }
  .encore-card-resize-handle--top,
  .encore-card-resize-handle--bottom{
    left:50%!important;
    width:64px!important;
    height:14px!important;
    transform:translateX(-50%)!important;
    cursor:ns-resize!important;
    border-radius:8px!important;
  }
  .encore-card-resize-handle--top{top:1px!important}
  .encore-card-resize-handle--bottom{bottom:1px!important}
  .encore-card-resize-handle--top::before,
  .encore-card-resize-handle--bottom::before{
    content:'•••'!important;
    line-height:10px!important;
  }
  .encore-card-resize-handle--left,
  .encore-card-resize-handle--right{
    top:50%!important;
    width:14px!important;
    height:64px!important;
    transform:translateY(-50%)!important;
    cursor:ew-resize!important;
    border-radius:8px!important;
  }
  .encore-card-resize-handle--left{left:1px!important}
  .encore-card-resize-handle--right{right:1px!important;left:auto!important}
  .encore-card-resize-handle--left::before,
  .encore-card-resize-handle--right::before{
    content:'•\A•\A•'!important;
    white-space:pre!important;
    line-height:10px!important;
    padding-top:14px!important;
  }
  .encore-flex-card:hover>.encore-card-resize-handle,
  .encore-card-resize-handle:focus-visible,
  .encore-card-resizing>.encore-card-resize-handle{
    opacity:1!important;
    border-color:#8ff3ea!important;
    background:#102f49!important;
  }
  .encore-card-resize-handle:focus-visible{
    outline:2px solid #8ff3ea!important;
    outline-offset:2px!important;
  }
  .encore-card-resizing,
  body.encore-card-resize-active{
    user-select:none!important;
  }
  body.encore-card-resize-active *{
    user-select:none!important;
  }
}

@media (max-width:899px){
  .encore-card-resize-handle{display:none!important}
}

/* =====================================================================
   ADAPTIVE CARD CONTENT v1.1 — responsive rows/columns + information fit
   Internal layout follows the current user-sized card, not the viewport.
   ===================================================================== */
@media (min-width:900px){
  .encore-flex-card.encore-card-sized{
    --encore-card-columns:3;
    --encore-card-form-columns:2;
    --encore-card-density:1;
    container-type:inline-size;
    min-width:0!important;
  }

  /* Dense information surfaces automatically gain or lose columns as the
     user makes a card wider/narrower or shorter/taller. */
  .encore-flex-card.encore-card-sized :is(
    .indicator-list,
    .business-stat-list,
    .stat-chip-list,
    .metric-grid,
    .status-grid,
    .analytics-grid,
    .competition-summary-grid,
    .banking-outcome-grid,
    .barter-inventory-grid,
    .encore-report-metric-grid,
    .learning-guide-score-grid
  ){
    display:grid!important;
    grid-template-columns:repeat(var(--encore-card-columns),minmax(0,1fr))!important;
    grid-auto-flow:row dense!important;
    align-content:start!important;
    gap:calc(.48rem * var(--encore-card-density))!important;
    min-width:0!important;
    max-width:100%!important;
  }

  /* Decision/input surfaces use a slightly more conservative column count so
     labels and controls stay usable while still exploiting wider cards. */
  .encore-flex-card.encore-card-sized :is(
    .decision-grid,
    .allocation-grid,
    .competition-form-grid,
    .form-grid
  ),
  .declarative-decision-panel.encore-flex-card.encore-card-sized form{
    display:grid!important;
    grid-template-columns:repeat(var(--encore-card-form-columns),minmax(0,1fr))!important;
    grid-auto-flow:row dense!important;
    align-content:start!important;
    gap:calc(.5rem * var(--encore-card-density))!important;
    min-width:0!important;
    max-width:100%!important;
  }

  .encore-flex-card.encore-card-sized :is(
    .indicator-list,
    .business-stat-list,
    .stat-chip-list,
    .metric-grid,
    .status-grid,
    .analytics-grid,
    .competition-summary-grid,
    .banking-outcome-grid,
    .barter-inventory-grid,
    .encore-report-metric-grid,
    .learning-guide-score-grid,
    .decision-grid,
    .allocation-grid,
    .competition-form-grid,
    .form-grid
  ) > *{
    min-width:0!important;
    max-width:100%!important;
  }

  /* When the card is deliberately made shallow, remove avoidable vertical
     spacing before reducing text size. Scrollbars remain the final fallback. */
  .encore-flex-card[data-encore-card-height-tier="xs"] :is(
    .indicator-list,.business-stat-list,.stat-chip-list,.metric-grid,.status-grid,
    .analytics-grid,.competition-summary-grid,.decision-grid,.allocation-grid,.form-grid
  ){
    row-gap:.18rem!important;
  }
  .encore-flex-card[data-encore-card-height-tier="sm"] :is(
    .indicator-list,.business-stat-list,.stat-chip-list,.metric-grid,.status-grid,
    .analytics-grid,.competition-summary-grid,.decision-grid,.allocation-grid,.form-grid
  ){
    row-gap:.28rem!important;
  }

  /* Keep textual data wrappable so a resized card uses its area efficiently. */
  .encore-flex-card.encore-card-sized :is(th,td,label,p,li,dt,dd,small,output){
    overflow-wrap:anywhere;
  }
  .encore-flex-card.encore-card-sized :is(input,select,textarea,button){
    min-width:0!important;
    max-width:100%!important;
  }

  /* Fit-level marker is set by ResizeObserver. Typography itself is scaled
     from each element's real computed size in JS, preserving hierarchy. */
  .encore-flex-card.encore-card-sized[data-encore-fit-level="reduced"],
  .encore-flex-card.encore-card-sized[data-encore-fit-level="compact"],
  .encore-flex-card.encore-card-sized[data-encore-fit-level="maximum"]{
    --encore-card-fitted:1;
  }
}


/* =====================================================================
   LONG TEXT SAFETY v1.2.1 — wrap descriptions before controls can collide.
   These rules are safe in the untouched default layout and remain active
   while a card is resized.
   ===================================================================== */
.declarative-shell .decision-field,
.declarative-shell .decision-field > *,
.declarative-shell .allocation-grid,
.declarative-shell .allocation-grid > *,
.encore-decision-field,
.encore-decision-field > *,
.encore-decision-group,
.encore-decision-group > *{
  min-width:0!important;
  max-width:100%;
  box-sizing:border-box;
}

.declarative-shell .decision-field legend,
.declarative-shell .decision-field small,
.declarative-shell .allocation-grid label,
.declarative-shell .allocation-grid label > span,
.declarative-shell .indicator-list dt,
.declarative-shell .indicator-list dd,
.viewport-dashboard .decision-grid label > span,
.viewport-dashboard .decision-grid label > small,
.encore-decision-workspace__instruction,
.encore-decision-group__description,
.encore-decision-field__label,
.encore-decision-field__constraint,
.encore-decision-field__validation,
.encore-card__description,
.encore-card__supporting dt,
.encore-card__supporting dd{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  hyphens:auto;
}

.declarative-shell .decision-field legend,
.declarative-shell .decision-field small{
  display:block!important;
  width:100%!important;
  line-height:1.28!important;
}

/* Budget Allocation: each long option label owns its own row above the input. */
.declarative-shell[data-module-id="business-budget-allocation-challenge"] .allocation-grid label{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-auto-rows:auto!important;
  align-content:start!important;
  gap:.28rem!important;
}
.declarative-shell[data-module-id="business-budget-allocation-challenge"] .allocation-grid label > span{
  display:block!important;
  width:100%!important;
  min-height:0!important;
  line-height:1.24!important;
}
.declarative-shell[data-module-id="business-budget-allocation-challenge"] .allocation-grid input{
  position:static!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

.encore-decision-field__header{align-items:flex-start!important;flex-wrap:wrap!important}
.encore-decision-field__label{flex:1 1 180px!important;min-width:0!important}
.encore-decision-field__state{flex:0 0 auto!important;margin-inline-start:auto}
.encore-decision-field__control-row{flex-wrap:wrap!important;align-items:flex-start!important}


/* =====================================================================
   SMART DEFAULT + PROXIMITY RESIZE v1.3
   Resize affordances are completely invisible until the pointer is actually
   within the card-edge hit zone. The hit zone spans the edge, so the UI stays
   clean without making resizing hard to discover.
   ===================================================================== */
@media (min-width:900px){
  .encore-card-resize-handle{
    opacity:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .encore-card-resize-handle::before{
    position:absolute!important;
    box-sizing:border-box!important;
    opacity:0!important;
    border:1px solid rgba(143,243,234,.58)!important;
    border-radius:8px!important;
    background:rgba(7,24,42,.94)!important;
    box-shadow:0 0 0 1px rgba(5,15,27,.30)!important;
    color:#8ff3ea!important;
    text-align:center!important;
    pointer-events:none!important;
    transition:opacity .08s linear!important;
  }
  .encore-card-resize-handle--top,
  .encore-card-resize-handle--bottom{
    left:10px!important;
    right:10px!important;
    width:auto!important;
    height:12px!important;
    transform:none!important;
  }
  .encore-card-resize-handle--top::before,
  .encore-card-resize-handle--bottom::before{
    left:50%!important;
    width:64px!important;
    height:14px!important;
    padding:0!important;
    line-height:10px!important;
    transform:translateX(-50%)!important;
  }
  .encore-card-resize-handle--left,
  .encore-card-resize-handle--right{
    top:10px!important;
    bottom:10px!important;
    width:12px!important;
    height:auto!important;
    transform:none!important;
  }
  .encore-card-resize-handle--left::before,
  .encore-card-resize-handle--right::before{
    top:50%!important;
    width:14px!important;
    height:64px!important;
    padding:14px 0 0!important;
    line-height:10px!important;
    transform:translateY(-50%)!important;
  }
  .encore-flex-card:hover>.encore-card-resize-handle:not(:hover):not(:focus-visible):not(.is-active-resize-handle){
    opacity:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .encore-flex-card:hover>.encore-card-resize-handle:not(:hover):not(:focus-visible):not(.is-active-resize-handle)::before{
    opacity:0!important;
  }
  .encore-card-resize-handle:hover,
  .encore-card-resize-handle:focus-visible,
  .encore-card-resize-handle.is-active-resize-handle{
    opacity:1!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .encore-card-resize-handle:hover::before,
  .encore-card-resize-handle:focus-visible::before,
  .encore-card-resize-handle.is-active-resize-handle::before{
    opacity:1!important;
  }
}

/* Default declarative KPI density: use the available width before asking the
   player to resize anything. Long indicator labels wrap instead of clipping. */
@media (min-width:1500px){
  .declarative-shell.encore-layout-end12-live .encore-production-kpi-strip .indicator-list{
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important;
  }
}
@media (max-width:899px){
  .declarative-shell.encore-layout-end12-live .encore-production-kpi-strip .indicator-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* =====================================================================
   RESIZE STABILITY HOTFIX v1.3.1 — first-drag flicker suppression
   The card keeps one stable internal layout while the pointer is moving.
   Adaptive grid/font fitting is committed once, after pointer release.
   ===================================================================== */
@media (min-width:900px){
  .encore-flex-card.encore-card-resizing{
    /* Keep the scroll gutter stable while dragging. Switching a report card from
       overflow:auto to overflow:hidden made its text width jump at drag start/end. */
    overflow:auto!important;
    scrollbar-gutter:stable!important;
    justify-self:start!important;
    align-self:start!important;
    box-sizing:border-box!important;
    contain:paint;
  }
  .encore-flex-card.encore-card-resizing,
  .encore-flex-card.encore-card-resizing *{
    transition:none!important;
    animation:none!important;
  }
  .viewport-dashboard.encore-layout-end12-live .daily-main-column>.encore-flex-card.encore-card-resizing{
    flex:0 0 auto!important;
  }
}


/* =====================================================================
   COST INFORMATION LIVE-RESIZE LOCK v1.3.2
   The JS renderer pauses live DOM commits during card drag. These CSS rules
   keep the three-column daily workspace painting from one stable geometry.
   ===================================================================== */
@media (min-width:900px){
  body.encore-card-resize-active .viewport-dashboard.encore-layout-end12-live .daily-business-grid{
    isolation:isolate;
  }
  body.encore-card-resize-active .viewport-dashboard.encore-layout-end12-live .daily-business-grid *,
  body.encore-card-resize-active .viewport-dashboard.encore-layout-end12-live .dashboard-topbar *{
    transition:none!important;
  }
}

/* =====================================================================
   SHARED HORIZONTAL BOUNDARY v1.3.3
   In a two-pane workspace the inner horizontal edge is a shared divider.
   The primary card fills its grid track while that divider is being moved;
   the context track expands/contracts by the exact opposite amount.
   ===================================================================== */
@media (min-width:901px){
  .encore-context-open .encore-card-shared-boundary-resizing{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-inline-start:0!important;
    box-sizing:border-box!important;
  }
  body.encore-workspace-resizing .encore-context-open :is(
    .declarative-main-column,
    .competition-decision-panel,
    .daily-main-column,
    .encore-production-context
  ){
    min-width:0!important;
  }
}


/* =====================================================================
   MINI GAME DEFAULT MAX-FILL v1.4.2
   Every untouched gameplay card fills the width of the workspace assigned to
   it. User-sized cards remain exempt, so manual layouts still work normally.
   This removes shrink-to-fit/default narrow cards (notably Budget Allocation
   "My Indicators") without adding any runtime reflow loop.
   ===================================================================== */
@media (min-width:900px){
  .declarative-shell.encore-layout-end12-live .panel:not(.encore-card-sized),
  .viewport-dashboard.encore-layout-end12-live .panel:not(.encore-card-sized),
  .barter-shell .panel:not(.encore-card-sized){
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    justify-self:stretch!important;
    box-sizing:border-box!important;
  }

  /* My Indicators is moved out of the old left column by the production
     bridge. Explicit flex-item stretching prevents any shrink-to-content
     first paint and makes the full width available immediately. */
  .declarative-shell.encore-layout-end12-live .encore-production-kpi-strip:not(.encore-card-sized){
    align-self:stretch!important;
    width:100%!important;
    max-width:none!important;
  }

  /* Primary decision/report cards consume their complete assigned workspace.
     Internal controls still use sensible columns; only the outer card expands. */
  .declarative-shell.encore-layout-end12-live .declarative-decision-panel:not(.encore-card-sized),
  .viewport-dashboard.encore-layout-end12-live .today-panel:not(.encore-card-sized),
  .viewport-dashboard.encore-layout-end12-live .report-panel:not(.encore-card-sized){
    width:100%!important;
    max-width:none!important;
    justify-self:stretch!important;
  }

  /* Result, Ranking, Guide and other cards moved to the context pane use all
     of the width granted by the smart/shared boundary split. */
  .encore-layout-end12-live .encore-production-context__body>[data-encore-production-context-source]:not(.encore-card-sized){
    width:100%!important;
    max-width:none!important;
    justify-self:stretch!important;
  }
}
