/* Readable, bounded guidance over the approved living world.
   The action row stays in view; optional explanation scrolls above it. */
#game{min-height:0}
.overlay-layout{min-height:0}
.overlay-bottom{max-height:100%;min-width:0}
.direction-deck{min-height:0;overscroll-behavior:contain;scroll-padding-block:18px 92px}
.direction-deck h1,.direction-deck h2,.direction-deck h3{overflow-wrap:break-word}
.direction-deck #direction-body>.actions,
.direction-deck .decision-footer{position:sticky;bottom:0;z-index:2;padding:12px 0 4px;background:#fffdf8;box-shadow:0 -10px 16px #fffdf8,0 24px 0 #fffdf8}
.direction-deck #direction-body>.actions{box-shadow:0 -10px 16px #fffdf8}
.direction-deck .decision-footer>div{display:flex;flex-wrap:wrap;gap:5px 8px}
.direction-deck .decision-footer>small{flex-basis:100%;line-height:1.4}
.direction-deck:has(.company-opening){display:flex;flex-direction:column;width:min(520px,100%);padding:0;overflow:hidden;max-height:calc(100dvh - 270px);border-top:4px solid #8d5ac9;background:#fffefa;box-shadow:0 12px 42px #1d3c5330}
.direction-deck:has(.company-opening) #direction-body{display:flex;flex:1 1 auto;min-height:0}
.direction-deck:has(.company-opening)>#error{flex:none}
.company-opening{display:flex;flex:1 1 auto;flex-direction:column;max-height:calc(100dvh - 274px);min-height:0}
.company-opening .opening-body{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:22px 25px 12px;scroll-padding-block:16px}
.company-opening .opening-footer{flex:none;padding:12px 25px 16px;border-top:1px solid #d5e4e6;background:linear-gradient(100deg,#edf8f7,#fffefa)}
.direction-deck .company-opening h1{font-size:clamp(27px,2.5vw,35px);line-height:1.08;letter-spacing:-.04em;margin:0 0 12px;text-wrap:balance}
.company-opening .opening-role{font-size:14px;line-height:1.5;margin:0 0 14px;max-width:53ch}
.company-opening .eyebrow{font-size:9px;letter-spacing:.12em;margin-bottom:10px}
.opening-steps{list-style:none;counter-reset:opening-step;margin:14px 0;padding:0;display:grid;gap:10px}
.opening-steps li{position:relative;counter-increment:opening-step;padding-left:34px;min-height:29px}
.opening-steps li:before{content:counter(opening-step);position:absolute;left:0;top:0;width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#dff2f1;color:#236c75;font-size:12px;font-weight:800}
.opening-steps li:nth-child(2):before{background:#ede5fa;color:#7446a9}
.opening-steps li:nth-child(3):before{background:#fff0d5;color:#8c642e}
.opening-steps b{display:block;font-size:13px;line-height:1.35;color:#233e50}
.opening-steps span{display:block;font-size:12px;line-height:1.4;color:#526a79;margin-top:2px}
.company-opening .opening-constraint{gap:14px;padding:10px 0 0;margin:0;align-items:flex-start}
.company-opening .opening-constraint strong{font-size:18px}
.company-opening .opening-constraint span{max-width:26ch;font-size:11px;line-height:1.4}
.company-opening .actions{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;position:static;box-shadow:none;background:none}
.company-opening .actions>button{font-size:12px;min-height:44px;padding:11px 13px}
.company-opening .actions>.primary{flex:1 1 190px;background:#754bc1;border-color:#754bc1;box-shadow:0 3px 0 #523186}
.company-opening .opening-finish{font-size:11px;line-height:1.45;margin:11px 0 0}
.company-opening .session-label{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:9px;line-height:1.4;margin-top:10px}
.company-opening .opening-process{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);gap:8px;margin:14px 0}
.opening-process>.opening-batches,.opening-process>.opening-promise{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 10px;text-align:left;align-items:center;border:0;border-bottom:3px solid #61b9b0;background:#edf9f5;padding:12px;min-height:100px;color:#233d4c;border-radius:10px;min-width:0}
.opening-process>.opening-promise{border-color:#e7a060;background:#fff3e6}
.opening-process b{font-size:15px;line-height:1.25;overflow-wrap:normal}
.opening-process small{font-size:11px;line-height:1.4}
.opening-process img{width:44px;height:52px}
.company-opening .opening-cause{font-size:12px;line-height:1.45;margin:10px 0 12px}
/* Replaying the introduction uses the same composition in the existing dialog. */
#detail .company-opening{max-height:none}
#detail .company-opening .opening-body{padding:0 0 15px;overflow:visible}
#detail .company-opening .opening-footer{padding:14px 0 0;background:none}
#detail .company-opening h1{font-size:34px}
/* Keep decision and review controls above the dialog's lower edge. */
.plan-review-footer{bottom:0;padding:13px 0;box-shadow:0 -10px 14px #fffdf8e6}
#detail .choice-actions{position:sticky;bottom:0;z-index:2;padding:12px 0;background:#fffdf8;box-shadow:0 -8px 14px #fffdf8,0 24px 0 #fffdf8}
#detail .choice-actions>button{max-width:100%;white-space:normal}
@media(max-width:1000px) and (min-width:681px){.direction-deck:has(.company-opening){width:min(500px,65vw)}}
@media(max-width:680px){
 #game{height:calc(100dvh - 56px);min-height:0}
 .overlay-layout{top:87px;bottom:143px}
 .direction-deck:has(.company-opening){width:100%;max-height:calc(100dvh - 346px)}
 .company-opening{max-height:calc(100dvh - 350px)}
 .company-opening .opening-body{padding:17px 18px 12px}
 .company-opening .opening-footer{padding:11px 18px 13px}
 .direction-deck .company-opening h1{font-size:28px;line-height:1.08}
 .company-opening .opening-role{font-size:13px;margin-bottom:12px}
 .opening-steps{gap:9px;margin:12px 0}
 .opening-steps li{padding-left:31px}
 .opening-steps b{font-size:12px}.opening-steps span{font-size:11px}
 .company-opening .actions{gap:7px;display:grid;grid-template-columns:1fr}
 .company-opening .actions>button{font-size:12px;min-height:44px}
 .company-opening .actions>.primary{width:100%}
 .company-opening .session-label{font-size:8px;gap:4px 8px;margin-top:8px}
 .company-opening .opening-constraint{gap:10px;flex-wrap:wrap}
 .company-opening .opening-constraint strong{font-size:17px}
 .company-opening .opening-constraint span{text-align:left;max-width:none;flex:1 1 150px;font-size:10px}
 .company-opening .opening-process{grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr);gap:6px}
 .opening-process>.opening-batches,.opening-process>.opening-promise{grid-template-columns:1fr;padding:10px;gap:6px;min-height:0;align-content:start}
 .opening-process img,.opening-process .opening-object{grid-row:auto;margin:0 0 3px}
 .opening-process b{font-size:13px}.opening-process small{font-size:11px}
 .company-opening .opening-payment{padding:10px;grid-template-columns:1fr;gap:4px}
 .company-opening .opening-payment b+span{margin-top:8px}
 .direction-deck .decision-footer{padding:9px 0 2px;gap:7px}
 .direction-deck .decision-footer>div{gap:4px}
 .direction-deck .decision-footer button{font-size:10px;padding:8px}
 .plan-review-footer{bottom:0}
 #detail .company-opening h1{font-size:29px}
}
@media(max-height:650px) and (min-width:681px){
 .overlay-layout{top:82px}
 .direction-deck:has(.company-opening){max-height:calc(100dvh - 245px)}
 .company-opening{max-height:calc(100dvh - 249px)}
 .company-opening .opening-body{padding:15px 20px 10px}
 .company-opening .opening-footer{padding:10px 20px 12px}
 .direction-deck .company-opening h1{font-size:27px}
 .company-opening .opening-role{font-size:12px}
 .opening-steps{gap:7px;margin:10px 0}
 .opening-steps b{font-size:12px}.opening-steps span{font-size:11px}
}

/* The pinned decision bar is a solid surface, including its explanatory line. */
.direction-deck.decision-deck{--decision-inline:22px;padding-inline:var(--decision-inline);scroll-padding-bottom:180px}
.direction-deck .decision-footer{margin-inline:calc(-1 * var(--decision-inline,22px));padding:12px var(--decision-inline,22px) 10px;background:#fffdf8;border-top:1px solid #d8e4e6;box-shadow:0 24px 0 #fffdf8,0 -5px 14px #203c4a12;isolation:isolate}
.direction-deck .decision-footer>small{display:block;width:100%;max-width:none;background:#fffdf8;color:#526b79;font-size:10px;line-height:1.45}
.direction-deck .strategy-card{scroll-margin-block:12px 180px}
.plan-review-footer{background:#fffdf8;box-shadow:0 -10px 14px #fffdf8,0 32px 0 #fffdf8}
.save-list button{gap:20px;align-items:flex-start}
.saved-company-name,.saved-company-detail{display:flex;flex-direction:column;gap:5px;min-width:0;line-height:1.4}
.saved-company-name{flex:0 1 45%}.saved-company-detail{flex:1;text-align:right;font-size:12px;color:#426477}
.save-list .saved-company-name small,.save-list .saved-company-detail small{max-width:none;text-align:inherit;font-size:11px;line-height:1.4}
.save-list button[aria-current=true]{border-color:#8ab6b8;background:#edf8f7;box-shadow:inset 3px 0 #36878a}
@media(max-width:680px){
 .direction-deck.decision-deck{--decision-inline:16px;scroll-padding-bottom:190px}
 .direction-deck .decision-footer{padding:10px 16px 8px;gap:8px}
 .direction-deck .decision-footer>small{font-size:10px;line-height:1.4}
 .save-list button{gap:8px;flex-direction:column}
 .saved-company-name,.saved-company-detail{flex:auto;width:100%;text-align:left}
 .saved-company-detail{font-size:11px}
 .save-list .saved-company-name small,.save-list .saved-company-detail small{font-size:10px;text-align:left}
}
