@media (max-width: 767px), (max-width: 950px) and (max-height: 500px) {
  button, select, input { font-family: inherit; }
  .auth-screen { height: 100dvh; overflow: auto; padding: 16px; }
  .auth-panel { width: 100%; min-height: 0; grid-template-columns: minmax(0, 1fr); }
  .auth-brand { padding: 24px; gap: 12px; border-right: 0; border-bottom: 1px solid var(--line); }
  .auth-brand h1 { font-size: 26px; }
  .auth-actions { padding: 24px 16px; }
  .auth-brand p, .auth-actions p { font-size: 14px; overflow-wrap: anywhere; }
  .dashboard { height: 100dvh; grid-template-rows: auto minmax(0, 1fr); }
  .topbar { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: max(8px, env(safe-area-inset-top)) 10px 8px; }
  .brand { min-width: 0; gap: 8px; }
  .brand-logo { width: 30px; height: 30px; flex-basis: 30px; }
  .brand strong { font-size: 17px; white-space: normal; }
  .brand span { display: none; }
  .flip-clock { min-width: 0; gap: 3px; }
  .flip-digit { width: 22px; height: 30px; font-size: 23px; border-radius: 4px; }
  .flip-colon { font-size: 23px; }
  .date-switcher { grid-column: 1 / -1; grid-template-columns: 40px minmax(0, 1fr) 40px 52px; gap: 5px; }
  .date-switcher .icon-button, .today-button, .date-label { width: 100%; height: 40px; min-height: 40px; padding: 0 5px; }
  .date-label { min-width: 0; font-size: 13px; }
  .date-label::after { display: none; }
  .employee-filter { min-width: 0; width: 100%; height: 42px; padding: 0 10px; font-size: 16px; }
  .top-actions { position: relative; min-width: 0; gap: 6px; }
  .top-actions > .sync-state { display: none; }
  .top-actions > .icon-button { width: 42px; height: 42px; min-height: 42px; }
  #mobileTools { display: grid; place-items: center; font-size: 22px; }
  .dashboard-tools { display: none; }
  .mobile-actions-open .dashboard-tools {
    position: absolute; top: calc(100% + 6px); right: 0; z-index: 60;
    width: 252px; padding: 10px; border: 1px solid var(--line); border-radius: 6px;
    display: flex; flex-wrap: wrap; gap: 8px; background: var(--surface); box-shadow: var(--shadow);
  }
  .dashboard-tools .icon-button { height: 44px; min-height: 44px; }
  .dashboard-tools .vacancy-button { width: 100%; }
  .dashboard-tools .low-distraction-button { width: 52px; }
  .workspace { min-height: 0; padding: 8px 8px max(12px, env(safe-area-inset-bottom)); display: block; overflow: auto; overscroll-behavior-y: contain; }
  .summary-column { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-bottom: 10px; overflow: visible; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .metric { min-height: 70px; padding: 9px; column-gap: 4px; }
  .metric span { font-size: 12px; white-space: normal; }
  .metric strong { font-size: 27px; }
  .metric small { font-size: 10px; white-space: normal; overflow-wrap: anywhere; }
  .progress-panel { padding: 8px 10px; }
  .progress-head strong, .progress-head span { font-size: 12px; }
  .progress-track { margin-top: 6px; height: 6px; }
  .next-day-panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); padding: 7px 10px; column-gap: 8px; }
  .next-day-panel > strong { font-size: 13px; }
  .next-day-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .next-day-stats div { padding: 4px 6px; }
  .next-day-stats b { font-size: 14px; }
  .schedule-column { display: block; overflow: visible; }
  .section-head { min-height: 48px; padding: 8px; gap: 6px; }
  .section-head h2 { font-size: 15px; }
  .section-head p, .live-indicator, .timeline-legend { display: none; }
  .timeline-head-meta { min-width: 0; gap: 6px; }
  .cash-open { min-height: 36px; padding: 0 7px; font-size: 12px; }
  .section-count { font-size: 12px; }
  .alert-strip { padding: 7px 0; }
  .alert-strip-item { min-width: min(290px, 85vw); flex-wrap: wrap; gap: 4px 8px; }
  .alert-strip-item b, .alert-strip-item strong { font-size: 12px; }
  .alert-strip-item span { font-size: 11px; }
  .schedule-list { overflow: visible; scroll-snap-type: none; }
  .employee-progress-board { width: 100%; min-height: 0; padding: 8px 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .employee-progress-row { width: 100%; min-width: 0; height: auto; min-height: 190px; grid-template-columns: 92px minmax(0, 1fr); grid-template-rows: 56px minmax(0, 1fr); }
  .employee-progress-person { padding: 8px 10px; }
  .employee-progress-person strong { font-size: 19px; }
  .employee-progress-person span { font-size: 11px; }
  .employee-progress-person b { font-size: 12px; }
  .employee-progress-chart { padding: 8px; }
  .employee-donut { width: 74px; }
  .employee-donut::before { inset: 8px; }
  .employee-donut-center { width: 50px; }
  .employee-donut-center strong { font-size: 17px; }
  .employee-donut-center strong.percent-full { font-size: 14px; }
  .employee-donut-center span { font-size: 9px; margin-top: 4px; }
  .employee-progress-main { min-width: 0; padding: 10px; gap: 8px; }
  .employee-progress-meta strong { font-size: 14px; white-space: normal; overflow-wrap: anywhere; }
  .employee-status-counts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .employee-status-counts span { padding: 4px 2px; font-size: 10px; gap: 3px; }
  .employee-status-counts b { font-size: 12px; }
  .employee-status-counts i { width: 5px; height: 5px; }
  .employee-time-list { min-height: 28px; gap: 3px; }
  .employee-time-chip, .employee-time-chip .scheduled-time { font-size: 10px; }
  .employee-time-chip { padding: 4px 2px; }
  .employee-detail-board { min-height: 0; width: 100%; padding: 8px 0; grid-template-rows: auto auto; }
  .employee-detail-header { grid-template-columns: 40px minmax(0, 1fr); padding: 8px; gap: 8px; }
  .employee-detail-title strong { font-size: 20px; }
  .employee-detail-summary { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 5px; }
  .employee-detail-summary b { font-size: 12px; }
  .employee-detail-list { overflow: visible; }
  .employee-detail-row { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; gap: 8px; }
  .employee-detail-time strong, .employee-detail-client strong { font-size: 16px; white-space: normal; }
  .employee-detail-service { grid-column: 1 / -1; }
  .employee-detail-service strong { font-size: 14px; white-space: normal; }
  .employee-detail-row span { white-space: normal; overflow-wrap: anywhere; font-size: 12px; }
  .employee-detail-status { grid-column: 1 / -1; justify-self: start; font-size: 12px; }
  .cash-backdrop, .vacancy-backdrop { padding: 0; }
  .cash-panel, .vacancy-panel { width: 100%; height: 100dvh; max-height: none; border: 0; border-radius: 0; }
  .cash-titlebar, .vacancy-titlebar { padding: 10px; }
  .cash-titlebar strong, .vacancy-titlebar strong { font-size: 20px; }
  .cash-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; gap: 8px; }
  .cash-toolbar input, .cash-toolbar select { min-width: 0; width: 100%; height: 42px; font-size: 16px; }
  .cash-toolbar label:first-child { grid-column: 1 / -1; }
  .cash-month-nav { width: 100%; justify-content: space-between; }
  .cash-summary { padding: 8px 10px; gap: 6px 10px; font-size: 12px; }
  .cash-row { padding: 12px 10px; gap: 10px; font-size: 14px; }
  .vacancy-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; gap: 8px; }
  .vacancy-controls > * { min-width: 0; }
  .vacancy-controls input, .vacancy-controls select { width: 100%; min-width: 0; font-size: 16px; }
  .vacancy-date-box, .vacancy-view-box { grid-column: 1 / -1; }
  .vacancy-week-nav { grid-template-columns: 40px minmax(0, 1fr) 52px 40px; }
  .vacancy-summary { flex-wrap: wrap; gap: 6px; padding: 8px 10px; font-size: 12px; }
  .vacancy-panel { display: block; overflow: auto; }
  .vacancy-titlebar { position: sticky; top: 0; z-index: 3; }
  .vacancy-results { display: block; overflow: visible; }
  .vacancy-single { height: auto; grid-template-rows: auto auto auto; }
  .vacancy-switcher { grid-template-columns: 36px minmax(0, 1fr) 36px; }
  .vacancy-employee-select { min-width: 0; width: 100%; font-size: 15px; }
  .vacancy-single .vacancy-row, .vacancy-row { height: auto; grid-template-columns: minmax(0, 1fr); }
  .vacancy-single .vacancy-week, .vacancy-week { grid-template-columns: minmax(0, 1fr); }
  .vacancy-single .vacancy-day { height: auto; padding: 8px; }
  .vacancy-single .vacancy-day > strong { font-size: 14px; }
  .vacancy-single .vacancy-slot { min-height: 42px; font-size: 16px; }
  .vacancy-recommendation-row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .vacancy-recommendation-day-title { flex-wrap: wrap; }
  .low-distraction-panel { max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); overflow: auto; padding: 16px; }
  .loading-cover { inset: 0; }
  .loading-box { max-width: calc(100vw - 32px); padding: 14px; font-size: 16px; }
  .offline-banner { width: max-content; max-width: calc(100vw - 24px); bottom: max(12px, env(safe-area-inset-bottom)); font-size: 12px; text-align: center; }
}
