/* One footer contract; original scene handlers stay attached to their source controls. */
.screen[data-controls="character-actions"] .scene-control-source{display:none!important}
.screen[data-controls="character-actions"] .dialogue-panel{grid-template-columns:minmax(0,1fr) 120px;column-gap:10px;row-gap:10px}
.screen[data-controls="character-actions"] .dialogue-panel .actions{width:120px;align-self:stretch;display:flex;min-width:0}
.screen[data-controls="character-actions"] .actions .scene-story-next{width:100%;height:100%;min-height:44px;flex:1 1 100%;display:flex;align-items:center;justify-content:center;white-space:nowrap;padding:6px;font-size:clamp(14px,1.6cqw,20px)}
.scene-story-next.is-unavailable{visibility:hidden;pointer-events:none}
.scene-action-marker{position:absolute;left:var(--actor-x,34%);top:var(--actor-y,30%);transform:translate(-50%,-100%);z-index:5;width:50px;min-height:54px;padding:3px;border:2px solid #f5e3a6;box-shadow:3px 3px 0 #16271ddd;background:#dfc971;color:#20342a;font-family:Galmuri,sans-serif;cursor:pointer;touch-action:manipulation}
.scene-action-marker>span{display:block;font-size:31px;line-height:1.1;font-weight:bold}
.scene-action-marker small{display:block;white-space:nowrap;font-size:9px;line-height:1.3}
.scene-action-marker::after{content:'';position:absolute;left:calc(50% - 5px);bottom:-8px;width:8px;height:8px;background:#dfc971;border-right:2px solid #f5e3a6;border-bottom:2px solid #f5e3a6;transform:rotate(45deg)}
.scene-action-marker:hover{background:#f0df9e}
.scene-action-marker:focus-visible,.scene-action-close:focus-visible,.scene-action-dialog button:focus-visible{outline:3px solid #fff2b4;outline-offset:3px}
.screen .scene-action-marker[hidden],.screen .scene-action-overlay[hidden],.screen .scene-action-panel[hidden],.screen .scene-command[hidden],.screen .scene-utility[hidden],.screen .scene-utility-group[hidden]{display:none!important}
.scene-action-overlay{position:absolute;inset:0;z-index:20;background:#0d1d16a8}
.scene-action-dialog{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column;background:#1e302b;border:3px solid #c5c1a1;box-shadow:6px 6px 0 #101e17;color:#f4ecd8;padding:16px;font-family:Galmuri,sans-serif;overflow:auto}
.scene-action-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;flex-shrink:0}
.scene-action-heading h2{font-size:20px;line-height:1.5;margin:0}
.scene-action-close{min-width:64px;min-height:44px;background:#243c31;border:2px solid #b6bea2;color:#f4ecd8;font:14px Galmuri,sans-serif;cursor:pointer}
.scene-action-body:empty,.scene-action-commands:empty{display:none}
.scene-action-commands,.scene-utility-group{display:grid;gap:8px}
.scene-action-dialog .pixel-button,.scene-utility-group .pixel-button{min-height:48px;padding:10px 12px;font:16px/1.5 Galmuri,sans-serif;white-space:normal;border:2px solid #b6bea2;background:#243c31;color:#f4ecd8;box-shadow:inset 0 0 0 2px #354c3e;cursor:pointer}
.scene-action-dialog .pixel-button:hover,.scene-utility-group .pixel-button:hover{background:#36533e}
.scene-action-dialog .pixel-button[aria-pressed="true"]{background:#dfd5aa;color:#20342a;border-color:#eee7c7}
.scene-action-dialog .pixel-button:disabled{opacity:.55;cursor:default}
.scene-action-dialog .scene-action-panel{position:static!important;inset:auto!important;transform:none!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0 0 12px!important;box-sizing:border-box;z-index:auto;}
.scene-action-dialog .scene-action-panel:not(#notebook){display:grid;grid-template-columns:1fr;gap:8px;background:transparent;border:0;padding:0}
.scene-action-dialog .scene-action-panel button{position:static!important;width:100%!important;flex-basis:auto!important;min-height:48px!important;min-width:0!important;max-width:none!important;padding:10px 12px!important;font-size:16px!important;line-height:1.5!important}
.scene-action-dialog .scene-action-panel button small,.scene-action-dialog .scene-action-panel button em{display:block;font-size:12px;font-style:normal;line-height:1.5}
.scene-action-dialog .route-line{display:none}
.scene-action-dialog #notebook{min-height:0;padding:12px;gap:12px;display:grid;}
.scene-action-dialog #notebook ul{margin:8px 0;padding-left:22px}
.scene-action-dialog #notebook h2{font-size:17px;line-height:1.5}
.scene-action-dialog .notebook-record canvas{height:auto;min-height:120px;max-height:200px}
.scene-action-dialog #prepItems{grid-template-columns:1fr}
.scene-utility-group{margin:0 0 12px}
.screen[data-controls="character-actions"] #dogAction{z-index:30}
@media(max-width:900px){.screen[data-controls="character-actions"] .dialogue-panel{grid-template-columns:minmax(0,1fr) 104px}.screen[data-controls="character-actions"] .dialogue-panel .actions{width:104px}}
@media(max-width:600px){.scene-action-dialog{padding:12px}.scene-action-dialog #notebook{grid-template-columns:1fr}.scene-action-dialog .notebook-record{border-left:0;padding-left:0}.scene-action-heading h2{font-size:18px}}
@media(max-width:600px) and (orientation:portrait){.screen[data-controls="character-actions"] .dialogue-panel{grid-template-columns:minmax(0,1fr) 92px;column-gap:7px}.screen[data-controls="character-actions"] .dialogue-panel .actions{width:92px}.scene-action-marker{left:calc(var(--actor-x,34%) + 12%);top:calc(var(--actor-y,30%) + 3%);transform:translate(-50%,0);width:44px;min-height:44px}.scene-action-marker>span{font-size:25px}.scene-action-marker small{font-size:8px}.scene-action-marker::after{display:none}}

/* Compact visible badge with a full 44px touch target above the actor on phones. */
@media(max-width:600px) and (orientation:portrait){
 .scene-action-marker{left:var(--actor-x,34%);top:calc(var(--actor-y,30%) + 5%);transform:translate(-50%,-100%);width:44px;height:44px;min-height:44px;border:0;box-shadow:none;background:transparent;padding:0;display:flex;align-items:flex-end;justify-content:center}
 .scene-action-marker>span{width:28px;height:30px;font-size:23px;line-height:26px;background:#dfc971;border:2px solid #f5e3a6;box-shadow:2px 2px 0 #16271ddd}
 .scene-action-marker small{display:none}
 .scene-action-marker:hover{background:transparent}
}

/* Let dialogue use the full footer while scene actions are in the playfield. */
.screen[data-controls="character-actions"] .dialogue-panel:has(.scene-story-next.is-unavailable){grid-template-columns:minmax(0,1fr)}
.screen[data-controls="character-actions"] .dialogue-panel:has(.scene-story-next.is-unavailable) .actions{display:none}
.scene-action-marker{animation:scene-action-blink 1.4s ease-in-out infinite}
@keyframes scene-action-blink{0%,100%{opacity:1}50%{opacity:.4}}
.scene-action-marker:hover,.scene-action-marker:focus-visible{animation:none;opacity:1}
@media(prefers-reduced-motion:reduce){.scene-action-marker{animation:none;opacity:1}}

/* Show the action itself; no intermediate exclamation badge. */
.screen[data-controls="character-actions"] .scene-action-marker{left:var(--actor-x,34%);top:var(--actor-y,30%);transform:translate(-50%,-100%);display:flex;align-items:center;justify-content:center;width:max-content;max-width:42%;height:auto;min-height:44px;padding:9px 14px;border:2px solid #f5e3a6;background:#dfd5aa;color:#20342a;box-shadow:inset 0 0 0 2px #a49b77,2px 2px 0 #16271d;font-size:clamp(13px,1.6cqw,18px);line-height:1.4;white-space:normal;animation:none}
.screen[data-controls="character-actions"] .scene-action-marker::after{display:none}
.screen[data-controls="character-actions"] .scene-action-marker:hover{background:#eee2b6}

/* Minigames arrive as a mission notice rather than an ordinary dialogue button. */
.screen[data-controls="character-actions"] .scene-action-marker.scene-mission{left:50%;top:22%;transform:translateX(-50%);width:min(440px,64%);max-width:64%;padding:16px 22px;display:grid;gap:7px;text-align:left;background:#1e302bf5;color:#f4ecd8;border:3px double #e5d997;box-shadow:0 8px 22px #10231d66;animation:mission-arrive .35s ease-out both}
.screen .scene-mission .mission-new{font-size:12px;line-height:1.4;color:#e5d997;letter-spacing:.08em}
.screen .scene-mission .mission-title{font-size:clamp(17px,2.4cqw,28px);font-weight:bold;line-height:1.35}
.screen .scene-mission .mission-goal{font-size:clamp(11px,1.4cqw,16px);font-weight:normal;line-height:1.6;color:#e0e5ce}
.screen .scene-mission .mission-enter{font-size:clamp(11px,1.3cqw,15px);font-weight:normal;color:#e5d997;line-height:1.5;padding-top:6px;border-top:1px solid #899b7d}
.screen .scene-action-marker.scene-mission:hover{background:#2b4235}
@keyframes mission-arrive{from{opacity:.5;translate:0 -8px}to{opacity:1;translate:0 0}}
@media(max-width:600px){.screen[data-controls="character-actions"] .scene-action-marker.scene-mission{top:22%;width:68%;max-width:68%;padding:8px 10px;gap:3px}.screen .scene-mission .mission-new{font-size:10px}.screen .scene-mission .mission-title{font-size:15px}.screen .scene-mission .mission-goal{font-size:10px;line-height:1.4}.screen .scene-mission .mission-enter{font-size:10px;padding-top:3px}}
@media(prefers-reduced-motion:reduce){.screen[data-controls="character-actions"] .scene-action-marker.scene-mission{animation:none}}

/* Preparation choices stay in their scene instead of opening a dialog. */
.screen>.scene-inline-panel{z-index:2}
.screen>.scene-inline-panel[hidden]{display:none!important}
.screen .dress-choices.scene-inline-panel{position:absolute;top:67%;bottom:auto;left:32%;right:3%;height:10%;display:flex;gap:8px}
.screen[data-phase="notebook"]>.scene-inline-panel#notebook,
.screen[data-phase="notebookDone"]>.scene-inline-panel#notebook{left:53%;right:3%;top:19%;bottom:24%;overflow:auto;box-shadow:none}
.screen>.scene-inline-panel#notebook .notebook-list{min-height:0;overflow:auto}
.screen>.scene-inline-panel#notebook .notebook-record{overflow:auto}
@media(max-width:600px){.screen .dress-choices.scene-inline-panel{left:28%;right:2%;gap:4px}.screen[data-phase="notebook"]>.scene-inline-panel#notebook,.screen[data-phase="notebookDone"]>.scene-inline-panel#notebook{padding:8px;left:51%;top:19%;bottom:23%}.screen>.scene-inline-panel#notebook .notebook-list h2{font-size:12px}.screen>.scene-inline-panel#notebook .prep-item{font-size:11px}}

.screen>.cafe-areas.scene-inline-panel{position:absolute;left:auto;right:4%;top:20%;width:28%;display:grid;gap:8px;z-index:2}.screen>.cafe-areas.scene-inline-panel button{min-height:44px;font-size:clamp(11px,1.5cqw,18px)}

@media (pointer: coarse) and (max-width: 600px),
       (pointer: coarse) and (orientation: landscape) and (max-height: 600px){
  .screen .scene-action-dialog{width:min(460px,calc(100vw - 40px));padding:12px}
  .screen .scene-action-heading{margin-bottom:8px;gap:10px}
  .screen .scene-action-heading h2{font-size:17px}
  .screen .scene-action-dialog .pixel-button{min-height:44px;padding:7px 10px;font-size:14px}
  .screen .scene-action-dialog .scene-action-panel button{
    min-height:44px!important;padding:7px 10px!important;font-size:14px!important;
  }
  .screen[data-controls="character-actions"] .scene-action-marker.scene-mission{
    width:min(380px,64%);padding:10px 14px;gap:4px;
  }
  .screen .scene-mission .mission-title{font-size:clamp(16px,2.2cqw,24px)}
}
