/* Admission, preparation and comfortable touch controls. */
.preparation-section { margin:24px 0; padding:clamp(18px,3vw,32px); background:#fffdf6; border:1px solid #d1dccf; border-radius:18px; scroll-margin-top:80px; }
.preparation-section h2 { font:600 clamp(26px,3vw,34px)/1.2 Georgia,serif; color:#173d37; margin:8px 0 12px; }
.preparation-intro { max-width:850px; line-height:1.6; }
.preparation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:20px 0; }
.preparation-card { background:#f2f5ea; border:1px solid #d8dfce; border-radius:12px; padding:18px; min-width:0; }
.preparation-card h3 { font:600 21px/1.3 Georgia,serif; margin:0 0 10px; }
.preparation-card p { line-height:1.5; margin:0; }
.preparation-checklist { display:grid; gap:10px; padding-left:24px; line-height:1.55; }
.preparation-note { padding:14px 18px; border-left:3px solid #147568; background:#eef5ed; line-height:1.6; }
.admission-banner { display:flex; gap:18px; align-items:center; justify-content:space-between; padding:18px 22px; margin:18px 0; background:#eaf3ed; border:1px solid #bdd3c4; border-radius:14px; }
.admission-banner strong { display:block; font:600 22px/1.3 Georgia,serif; }
.admission-banner p { margin:6px 0 0; line-height:1.5; }
.admission-banner .admission-status { padding:10px 14px; border-radius:30px; background:#fffdf6; font-weight:600; white-space:nowrap; }
.admission-banner[data-open="true"] .admission-status { color:#126a4f; }
body.exam-mode-active .preparation-section, body.exam-mode-active .admission-banner,
body.story-result-active .preparation-section, body.story-result-active .admission-banner { display:none; }
.story-immersive .restaurant-task .action-deck { position:relative; z-index:1; }
#attempt-reserve-address { display:flex; width:fit-content; margin-top:16px; position:relative; min-height:48px; align-items:center; }
#attempt-reserve-address.hidden { display:none; }
.story-run-heading { display:flex; gap:16px; align-items:start; justify-content:space-between; }
.story-run-admin .story-run-row { border:1px solid #d1dccf; border-radius:14px; padding:20px; margin:14px 0; background:#fffdf8; }
.story-run-row.is-current { border:2px solid #147568; background:#eff6ee; }
.story-run-row h3 { margin:0 0 10px; font:600 24px/1.25 Georgia,serif; }
.story-run-state { padding:8px 12px; border-radius:24px; background:#e6eee2; color:#285847; font-weight:600; white-space:nowrap; }
.story-run-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.story-run-metric { padding:12px; background:#fff; border:1px solid #d4dfd1; border-radius:10px; }
.story-run-metric strong { display:block; font-size:28px; }
.story-run-metric span { font-size:14px; }
.story-run-help { padding:12px 14px; background:#fffdf3; border-radius:10px; line-height:1.6; }
.story-run-admin details { margin-top:18px; }
.story-run-admin summary { cursor:pointer; padding:14px 0; font-weight:600; }
.story-run-admin label { display:grid; gap:6px; flex:1 1 145px; min-width:0; }
.story-run-admin input { width:100%; min-width:0; box-sizing:border-box; border:1px solid #a9bfae; border-radius:8px; }
.story-run-admin form { margin:10px 0; }
.story-run-admin .story-run-actions .button { min-height:48px; white-space:normal; }
.story-run-admin [aria-busy="true"] { opacity:.75; }
.story-run-message:empty { display:none; }
.t5-photo-pantry-toggle { display:none; }
@media(max-width:900px) { .preparation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) {
  .olympiad-page .shell { padding-left:max(12px,env(safe-area-inset-left)); padding-right:max(12px,env(safe-area-inset-right)); padding-bottom:max(30px,env(safe-area-inset-bottom)); }
  .olympiad-page input,.olympiad-page select,.olympiad-page textarea { font-size:16px; }
  .olympiad-page button,.olympiad-page .button { touch-action:manipulation; }
  .olympiad-page .button,.olympiad-page .option { min-height:48px; }
  .preparation-grid { grid-template-columns:1fr; gap:10px; }
  .preparation-card { padding:16px; }
  .admission-banner { flex-direction:column; align-items:start; gap:12px; padding:16px; }
  .admission-banner strong { font-size:21px; }
  .story-immersive #attempt-section .dashboard-head { position:sticky; top:0; z-index:12; padding:10px 12px!important; margin:0 -4px 12px; background:#fffdf8; border:1px solid #d0ddcf; border-radius:12px; gap:8px; }
  .story-immersive #attempt-section .timer-stack { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .story-immersive #attempt-section .timer-box { min-width:0; padding:8px 12px; }
  .story-immersive #attempt-section .timer-box strong { font-size:25px; }
  .story-immersive #attempt-section .timer-box span { font-size:12px; }
  .story-immersive #attempt-section .restaurant-header-status { gap:5px; }
  .story-immersive #attempt-section .story-guest-line { font-size:16px!important; line-height:1.45; }
  .story-immersive #attempt-section .story-portrait-frame { width:62px!important; height:100px!important; }
  .story-immersive #attempt-section .story-speech { padding:12px!important; }
  .story-immersive #attempt-section .story-chapter-copy { padding-top:8px; }
  .story-immersive #attempt-section .story-chapter-copy h2 { margin-bottom:6px; }
  .story-immersive #attempt-section .restaurant-workspace { gap:12px; }
  .story-immersive #attempt-section .restaurant-task .actions button { min-height:52px; }
  .story-immersive #attempt-section .restaurant-task .option { padding:12px; }
  .story-immersive #attempt-section .restaurant-task .option input { width:20px; height:20px; flex:none; }
  .story-immersive #attempt-section .restaurant-notebook { display:flex; flex-direction:column; gap:12px; padding:12px; }
  .story-immersive #attempt-section .restaurant-notebook .t3-visual { padding:8px; border:0; border-radius:8px; }
  .story-immersive #attempt-section .restaurant-notebook .t3-visual img { max-height:190px; }
  .story-immersive #attempt-section .restaurant-notebook .restaurant-paper { padding:12px; border:0; border-radius:8px; }
  .story-immersive #attempt-section .t3-clue { padding:10px; }
  .story-immersive #attempt-section .t3-clue-text { font-size:15px; }
  .story-immersive #attempt-section .t3-answer-input { font-size:18px; scroll-margin:90px; }
  .story-immersive #attempt-section .t4-menu { grid-template-columns:1fr; }
  .story-immersive #attempt-section .t4-menu-description { font-size:15px; line-height:1.5; }
  .story-immersive #attempt-section .t2-mobile-picker { bottom:max(10px,env(safe-area-inset-bottom)); max-height:55dvh; overflow-y:auto; }
  .story-immersive #attempt-section .t2-picker-country { min-height:52px; }
  .t5-photo-pantry-toggle { display:block; width:100%; min-height:48px; border:1px solid #b8cdbb; border-radius:10px; padding:10px; background:#fffdf6; color:#173d37; font:600 15px system-ui,sans-serif; }
  .t5-photo-pantry-toggle[hidden] { display:none; }
  .t5-photo-pantry.is-condensed .t5-photo-grid,.t5-photo-pantry.is-condensed > .t5-photo-small { display:none; }
  .t5-photo-panel { scroll-margin-top:170px; }
  .phone-keyboard-open .story-immersive .story-portrait-frame,.phone-keyboard-open .story-immersive .story-more { display:none!important; }
  .phone-keyboard-open .story-immersive .story-speech::after { display:none; }
  .phone-keyboard-open .story-immersive .t3-visual { display:none!important; }
  #attempt-reserve-address { width:100%; box-sizing:border-box; justify-content:center; }
  .story-run-heading { flex-direction:column; gap:8px; }
  .story-run-metrics { gap:6px; }
  .story-run-metric { padding:10px; }
  .story-run-actions { flex-direction:column; }
  .story-run-actions .button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .olympiad-page * { scroll-behavior:auto!important; } }
@media(min-width:360px) and (max-width:767px) {
  .story-immersive #attempt-section .t4-menu { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .story-immersive #attempt-section .t4-menu-select { padding:8px; }
  .story-immersive #attempt-section .t4-menu-title { font-size:17px; line-height:1.25; }
  .story-immersive #attempt-section .t4-menu-description { font-size:14px; line-height:1.45; }
  .story-immersive #attempt-section .t4-zoom { font-size:13px; padding:8px 4px; width:100%; }
}
