.guest-shell { max-width:1140px; margin:auto; padding:0 24px; }
.guest-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:24px 0; border-bottom:1px solid var(--line); }
.guest-heading p,.guest-footer,.guest-help,#guest-storage-note { color:#596d63; font-size:13px; line-height:1.7; }
#guest-intro { margin:28px 0 20px; } #guest-title { font:400 clamp(30px,4vw,44px)/1.2 Georgia,serif; overflow-wrap:anywhere; margin:0 0 12px; }
#guest-greeting { white-space:pre-line; overflow-wrap:anywhere; line-height:1.7; }
.guest-game { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); background:#fffdf7; border:1px solid var(--line); border-radius:14px; overflow:hidden; margin:20px 0; }
.guest-board-panel { min-width:0; padding:24px; } .guest-active-clue { min-height:44px; line-height:1.6; margin:0 0 18px; overflow-wrap:anywhere; }
.guest-board-scroll { padding:4px; } #guest-board { width:100%; max-width:560px; }
.guest-word-square { position:relative; }
#guest-word-inputs { display:grid; grid-auto-flow:column; grid-auto-columns:clamp(28px,calc((100% - (var(--word-columns,8) - 1) * 3px) / var(--word-columns,8)),44px); gap:3px; flex-shrink:0; min-width:0; max-width:100%; min-height:56px; overflow-x:auto; overflow-y:hidden; padding:4px; margin:0; overscroll-behavior-x:contain; scrollbar-width:thin; }
.guest-word-square input { width:100%; min-width:0; height:48px; box-sizing:border-box; border:1px solid #6e8073; border-radius:5px; background:white; color:var(--ink); font-size:20px; font-weight:600; text-align:center; padding:0; touch-action:manipulation; }
.guest-word-square input:focus-visible { outline:3px solid var(--blue); outline-offset:1px; }
.guest-word-square.correct input { background:#e1ecdf; } .guest-word-square.wrong input { background:#fae3da; }
.guest-word-square .feedback-mark { position:absolute; right:2px; bottom:1px; font-size:9px; pointer-events:none; }
.guest-navigation button,.guest-page .solve-actions button,.guest-clues .clue-button { min-height:44px; touch-action:manipulation; }
#guest-board .square input { font-size:16px; width:100%; min-height:0; padding:7px 8px 0 0; }
#guest-board .secret-marker { display:grid; place-items:center; width:9px; height:9px; padding:0; border:1px solid #624510; border-radius:50%; font-size:7px; }
#guest-board .square .number { font-size:8px; } #guest-board .square input:focus-visible { box-shadow:inset 0 0 0 3px var(--blue); }
#guest-board .feedback-mark { font-size:9px; } .guest-navigation { display:flex; flex-wrap:wrap; margin:8px 0; gap:8px; }
.guest-clues { min-width:0; border-left:1px solid var(--line); padding:24px 20px; } .guest-clues section+section { margin-top:24px; }
.guest-clues h2,#guest-secret h2 { font:400 23px/1.2 Georgia,serif; margin:0 0 12px; }
#guest-secret { margin:24px 0; } #guest-secret p { font-size:13px; line-height:1.6; } #guest-secret-letters { display:flex; flex-wrap:wrap; gap:7px; }
.guest-secret-button { position:relative; width:38px; height:43px; background:#fffdf7; border:1px solid #6e8073; border-radius:5px; font-size:18px; font-weight:600; padding:11px 2px 2px; }
.guest-secret-button small { position:absolute; top:2px; left:4px; font-size:9px; font-weight:400; }
#guest-status:empty { display:none; } #guest-error { color:#8a3329; background:#ffefeb; padding:14px; border-radius:8px; line-height:1.6; }
#guest-solve-status,#guest-grading,#guest-progress { font-size:13px; line-height:1.7; } #guest-solve-status { color:var(--blue); }
.guest-footer { border-top:1px solid var(--line); margin-top:24px; padding:20px 0 32px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; }
.guest-footer p { margin:0; }
.guest-save-panel { margin:4px 0 14px; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
#guest-save-status { margin:4px 0; color:#3e584d; }
#guest-save-conflict { background:#f5f0e3; padding:14px; border:1px solid #d7ccae; border-radius:8px; }
#guest-save-conflict h2 { font:400 21px/1.3 Georgia,serif; margin:0 0 10px; }
#guest-save-differences { padding:0; list-style:none; }
#guest-save-differences li { display:flex; flex-wrap:wrap; gap:4px 12px; margin:8px 0; }
.guest-save-choices { display:flex; flex-wrap:wrap; gap:8px; }
.guest-save-panel button { min-height:44px; max-width:100%; white-space:normal; touch-action:manipulation; }
.guest-live-panel { font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
#guest-live-connection { color:#596d63; }
#guest-live-status:empty { display:none; }
#guest-live-facit { background:#edf2e9; border:1px solid var(--line); border-radius:8px; padding:12px; }
#guest-live-facit summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:600; }
#guest-live-answers { list-style:none; padding:0; } #guest-live-answers li { margin:8px 0; }
#guest-live-answers span { letter-spacing:.06em; }
@media(max-width:760px) {
  .guest-shell { padding:0 max(10px,env(safe-area-inset-left)) 0 max(10px,env(safe-area-inset-right)); }
  .guest-heading { padding:18px 0; } .guest-heading .brand { font-size:24px; } .guest-heading p { max-width:120px; text-align:right; font-size:11px; }
  .guest-game { grid-template-columns:minmax(0,1fr); overflow:visible; } .guest-board-panel { padding:12px 10px; }
  .guest-entry-panel { position:sticky; top:calc(var(--guest-viewport-top,0px) + 8px); z-index:2; display:flex; flex-direction:column; gap:8px; background:#fffdf7; padding:8px 0 4px; max-height:calc(var(--guest-visible-height,100dvh) - 16px); overflow-y:auto; overscroll-behavior:contain; }
  .guest-active-clue { flex-shrink:0; font-size:15px; min-height:0; max-height:min(120px,calc(var(--guest-visible-height,100dvh) * .30)); overflow-y:auto; line-height:1.5; margin:0; }
  .guest-navigation { flex-shrink:0; margin:0; gap:4px; } .guest-navigation .button { padding:8px 12px; }
  #guest-board .square input { padding:0; font-size:clamp(8px,calc(var(--guest-cell-px,24px) * .48),16px); pointer-events:none; }
  #guest-board .square .number { font-size:clamp(5px,calc(var(--guest-cell-px,24px) * .25),8px); top:1px; left:1px; }
  #guest-board .secret-marker { width:clamp(6px,calc(var(--guest-cell-px,24px) * .32),9px); height:clamp(6px,calc(var(--guest-cell-px,24px) * .32),9px); font-size:clamp(4px,calc(var(--guest-cell-px,24px) * .2),7px); right:1px; bottom:1px; }
  #guest-board .feedback-mark { font-size:clamp(5px,calc(var(--guest-cell-px,24px) * .28),9px); }
  #guest-board .square { touch-action:manipulation; }
  .guest-clues { padding:22px 10px; border-left:0; border-top:1px solid var(--line); }
  .guest-footer { padding-bottom:max(32px,env(safe-area-inset-bottom)); }
}
