/* Separate thumb-first variant. Original styles.css is preserved. */
.page-heading{margin-bottom:18px}.page-heading h1{font-size:1.75rem}
.header .brand small{display:none}.profile-button{min-width:44px;min-height:44px}
.booking-dock{position:fixed;right:24px;bottom:24px;z-index:12}
.booking-dock button{min-height:52px;min-width:240px;box-shadow:0 4px 20px #0008}
#main{padding-bottom:110px}.footer{padding-bottom:100px}
.month-toolbar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;align-items:center;gap:8px;margin-bottom:12px}
.month-title{text-align:center;font-weight:600;text-transform:capitalize;font-size:1rem}
.month-toolbar button{min-height:44px}.month-toolbar .icon-button{padding:8px}
.month-legend{gap:8px 18px;margin-bottom:12px;font-size:.75rem}
.month-legend .icon{width:14px;height:14px}.legend-free{color:#a8ebc2}.legend-mine{color:var(--rose)}.legend-pending{color:var(--amber)}
.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.month-weekdays{margin-bottom:6px;color:var(--muted);text-align:center;font-size:.75rem}
.month-day{min-width:0;min-height:88px;padding:6px;display:grid;gap:3px;background:var(--surface);border:1px solid var(--border);font-weight:500;border-radius:8px}
.month-number{line-height:20px}.month-day.is-today .month-number{color:var(--rose);font-weight:800}
.month-day[aria-pressed=true]{outline:2px solid var(--rose);outline-offset:0;border-color:var(--rose)}
.month-slot{display:flex;align-items:center;justify-content:center;gap:4px;border-radius:3px;min-height:20px;color:#aaa6af;background:#24242a}
.month-slot .icon{width:13px;height:13px}.month-slot[data-state=free]{background:#183e2c;color:#b7f4cf}
.month-slot[data-state=mine]{background:#482332;color:#ffc4d5}.month-slot[data-state=tentative]{background:#41351f;color:#f3d09a}
.month-slot[data-state=past]{background:#16171a;color:#777580}
.selected-day{margin-top:16px}.selected-day h2{font-size:1rem;margin-bottom:10px}.selected-day h2:first-letter{text-transform:uppercase}
.selected-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.selected-slots .slot-card{margin:0;min-height:88px;padding:12px;gap:5px}
.selected-slots .slot-top{align-items:center}.selected-slots .slot-kind{flex-wrap:wrap;font-size:.8125rem;gap:5px}
.selected-slots .slot-times{font-size:.75rem;color:inherit}.selected-slots .slot-owner{margin:0;font-size:.875rem}
.selected-slots .slot-status{font-size:.75rem}.selected-slots .slot-book{display:flex;align-items:center;gap:4px;font-weight:700;font-size:.875rem}
.selected-slots .slot-book .icon{width:16px;height:16px}
.selected-slots .slot-card[data-state=free]{background:#173928;border:1px solid #548c6a;color:#bcf2d0;border-style:solid}
.selected-slots .slot-card[data-state=free]:hover{background:#205038;border-color:#a8ebc2}
.selected-slots .slot-card[data-state=booked]{background:#15161a;border-color:#2b2c32;color:#a7a4ae}
.selected-slots .slot-card[data-state=booked] .slot-kind{color:#a7a4ae}
.compact-notice{padding:12px;margin:14px 0 0;align-items:center;font-size:.75rem}.compact-notice button{margin-left:auto;min-height:44px}
@media(min-width:901px){.month-grid{max-width:920px}.month-weekdays,.month-toolbar,.month-legend,.selected-day,.compact-notice{max-width:920px}}
@media(max-width:600px){
  .header{min-height:58px;padding:8px 12px}.brand svg{width:28px;height:32px}.brand>span{font-size:.875rem}
  #user-label{display:none}.header nav{height:calc(64px + env(safe-area-inset-bottom));padding:3px 8px calc(3px + env(safe-area-inset-bottom))}
  .nav-item{min-height:54px}.nav-item span{font-size:.6875rem}
  #main{padding:12px 8px calc(144px + env(safe-area-inset-bottom));min-height:0}
  .page-heading{margin-bottom:12px;align-items:center}.page-heading h1{font-size:1.5rem}
  .booking-dock{left:12px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom))}
  .booking-dock button{width:100%;min-width:0;min-height:50px}
  .footer{padding:12px 12px calc(144px + env(safe-area-inset-bottom))}
  .month-toolbar{gap:4px;margin-bottom:10px;grid-template-columns:44px minmax(0,1fr) 44px auto}
  .month-toolbar button:last-child{padding:8px;font-size:.75rem}.month-title{font-size:.875rem}
  .month-legend{gap:5px 12px;margin-bottom:8px;font-size:.6875rem;line-height:1.4}
  .month-weekdays,.month-grid{gap:3px}.month-weekdays{margin-bottom:4px;font-size:.6875rem}
  .month-day{min-height:48px;padding:2px;gap:1px;border-radius:5px}.month-number{font-size:.75rem;line-height:16px}
  .month-slot{min-height:13px;gap:2px}.month-slot .icon{width:10px;height:10px}
  .selected-day{margin-top:12px}.selected-day h2{font-size:.9375rem;margin-bottom:8px}
  .selected-slots{gap:6px}.selected-slots .slot-card{padding:8px;min-height:70px;gap:4px}
  .selected-slots .slot-kind{font-size:.6875rem;gap:3px;flex-wrap:nowrap;white-space:nowrap}
  .selected-slots .slot-kind .icon{width:12px;height:12px}.selected-slots .slot-times{font-size:.6875rem}
  .selected-slots .slot-owner{font-size:.8125rem}.selected-slots .slot-status{font-size:.6875rem}
  .selected-slots .slot-book{font-size:.8125rem}.toast{bottom:calc(136px + env(safe-area-inset-bottom))}
}

/* Requested schedule-only revision. Wider layouts and other pages keep their existing UI. */
@media(max-width:360px){
  #main.mobile-schedule .schedule-view-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;margin-bottom:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px}
  #main.mobile-schedule .schedule-view-switch button{min-height:44px;border:0;background:transparent;color:var(--muted);padding:8px}
  #main.mobile-schedule .schedule-view-switch button[aria-pressed=true]{background:#482332;color:#ffc4d5}
  #main.mobile-schedule .month-title{font-size:.8125rem}
  #main.mobile-schedule .month-legend{gap:6px 12px;margin-bottom:10px}
  #main.mobile-schedule .schedule-slot-key{color:var(--text)}
  #main.mobile-schedule .schedule-swipe-area{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
  #main.mobile-schedule .schedule-week{display:grid;gap:5px}
  #main.mobile-schedule .schedule-week-day{display:grid;grid-template-columns:36px repeat(2,minmax(0,1fr));gap:6px;align-items:stretch;min-height:48px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:7px;min-width:0}
  #main.mobile-schedule .schedule-week-day[aria-pressed=true]{border-color:var(--rose);outline:1px solid var(--rose)}
  #main.mobile-schedule .schedule-week-date{display:grid;align-content:center;text-transform:capitalize;font-size:.6875rem;line-height:16px;color:var(--muted)}
  #main.mobile-schedule .schedule-week-date strong{font-size:.875rem;color:var(--text)}
  #main.mobile-schedule .schedule-week-day.is-today .schedule-week-date strong{color:var(--rose)}
  #main.mobile-schedule .schedule-week-slot{display:flex;align-items:center;justify-content:center;gap:4px;border-radius:4px;background:#24242a;color:#aaa6af;font-size:.6875rem;min-width:0}
  #main.mobile-schedule .schedule-week-slot .icon{width:13px;height:13px;flex-shrink:0}
  #main.mobile-schedule .schedule-week-slot[data-state=free]{background:#183e2c;color:#b7f4cf}
  #main.mobile-schedule .schedule-week-slot[data-state=mine]{background:#482332;color:#ffc4d5}
  #main.mobile-schedule .schedule-week-slot[data-state=tentative]{background:#41351f;color:#f3d09a}
  #main.mobile-schedule .schedule-week-slot[data-state=past]{background:#16171a;color:#777580}
  dialog.schedule-day-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:16px;overscroll-behavior:contain}
  .schedule-day-dialog .dialog-heading{align-items:flex-start;gap:8px;margin-bottom:16px}
  .schedule-day-dialog .dialog-heading h2{font-size:1.125rem;line-height:1.4;margin:4px 0 0}
  .schedule-day-dialog .dialog-heading h2:first-letter{text-transform:uppercase}
  .schedule-day-dialog .dialog-close{flex-shrink:0;min-width:44px;min-height:44px}
  .schedule-day-dialog .selected-slots{grid-template-columns:minmax(0,1fr);gap:10px}
  .schedule-day-dialog .selected-slots .slot-card{padding:12px;min-height:82px;gap:8px}
  .schedule-day-dialog .selected-slots .slot-kind,.schedule-day-dialog .selected-slots .slot-times{font-size:.8125rem}
  .schedule-day-dialog .selected-slots .slot-owner,.schedule-day-dialog .selected-slots .slot-book{font-size:.9375rem}
  .schedule-day-dialog .selected-slots .slot-owner{white-space:normal;overflow-wrap:anywhere}
  .schedule-day-dialog .selected-slots .slot-status{font-size:.8125rem}
}
