/* ==========================================================
   V2.5.7 — MOBILE PREMIUM WORKSPACE
   Mobile-only visual / interaction layer. Desktop untouched.
   ========================================================== */
@media (max-width: 820px){
  :root{
    --mp-bg:#f4f7f8;
    --mp-surface:#ffffff;
    --mp-surface-soft:#f8fafb;
    --mp-line:#dfe8ed;
    --mp-text:#24475f;
    --mp-muted:#738592;
    --mp-blue:#2f6fa8;
    --mp-blue-deep:#244f70;
    --mp-blue-soft:#eaf3f9;
    --mp-sage:#eaf5ee;
    --mp-warm:#fbf5ec;
    --mp-danger:#a95858;
    --mp-shadow:0 9px 28px rgba(30,60,82,.07);
    --mp-shadow-sm:0 4px 15px rgba(30,60,82,.045);
  }

  html{background:var(--mp-bg);scroll-behavior:smooth}
  body{background:linear-gradient(180deg,#fbfcfc 0%,var(--mp-bg) 35%,#f3f6f7 100%);color:var(--mp-text);overscroll-behavior-y:none}
  body.cv2-mobile-tools-open{overflow:hidden}

  /* iOS/Safari focus zoom hardening. Do not disable accessibility pinch zoom. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  select,
  textarea,
  [contenteditable="true"]{
    font-size:16px!important;
    line-height:1.35!important;
  }
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select{min-height:46px}
  textarea{min-height:88px}
  button,a,input,select,textarea{touch-action:manipulation}

  /* App shell */
  .clinic-header{
    min-height:64px!important;padding:0 12px!important;
    border-bottom:1px solid rgba(37,79,116,.08)!important;
    background:rgba(252,253,253,.94)!important;
    box-shadow:0 5px 18px rgba(33,63,84,.055)!important;
    backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;
  }
  .site-brand-lockup{gap:9px!important;min-width:0!important}
  .site-brand-shield{width:43px!important;height:50px!important;flex:0 0 43px!important}
  .site-brand-name{font-size:18px!important;line-height:1.05!important;letter-spacing:-.02em!important}
  .site-brand-sub{font-size:8.4px!important;letter-spacing:.035em!important;margin-top:4px!important;white-space:nowrap!important}
  .clinic-user-name,.clinic-logout span{display:none!important}
  .clinic-logout{width:40px!important;height:40px!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:13px!important}
  .clinic-logout svg{width:18px!important;height:18px!important}
  .container{width:calc(100% - 18px)!important;padding:14px 0 108px!important}

  .clinic-bottom-nav{
    left:9px!important;right:9px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;
    height:70px!important;padding:6px!important;border-radius:22px!important;
    border:1px solid rgba(37,79,116,.10)!important;
    background:rgba(255,255,255,.95)!important;
    box-shadow:0 16px 38px rgba(26,55,76,.16)!important;
  }
  .clinic-nav-item{min-width:0!important;gap:2px!important;border-radius:15px!important;padding:5px 3px!important}
  .clinic-nav-item.active{background:linear-gradient(180deg,#edf5fa,#e7f1f7)!important;color:var(--mp-blue-deep)!important}
  .clinic-nav-icon{width:23px!important;height:23px!important}
  .clinic-nav-label{font-size:9.5px!important;font-weight:850!important;white-space:nowrap!important}

  /* Generic mobile cards */
  .panel,.cv2-card{
    border:1px solid var(--mp-line)!important;border-radius:19px!important;
    background:rgba(255,255,255,.97)!important;box-shadow:var(--mp-shadow-sm)!important;
  }
  .page-head{margin-bottom:13px!important}
  .page-head h1{font-size:25px!important;line-height:1.08!important;letter-spacing:-.035em!important;color:var(--mp-blue-deep)!important}
  .page-head p{font-size:12px!important;line-height:1.4!important;color:var(--mp-muted)!important}
  .btn{min-height:44px!important;border-radius:13px!important;font-size:13px!important;padding:0 14px!important}

  /* ========================================================
     MOBILE HOME — premium command-center feel
     ======================================================== */
  .today-calendar-home.today-home-polished{
    display:flex!important;flex-direction:column!important;gap:12px!important;
  }
  .today-calendar-home .today-calendar-head{order:1!important}
  .today-calendar-head{
    margin:0!important;padding:18px 18px 16px!important;border:1px solid var(--mp-line)!important;
    border-radius:22px!important;background:linear-gradient(145deg,#fff 0%,#f6fafc 100%)!important;
    box-shadow:var(--mp-shadow)!important;
  }
  .today-calendar-head .clinic-patient-kicker{font-size:9px!important;letter-spacing:.12em!important}
  .today-calendar-head h1{font-size:25px!important;margin-top:5px!important}

  .mp-mobile-quick-actions{order:2;display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .mp-mobile-quick-actions button{
    appearance:none;border:1px solid var(--mp-line);border-radius:16px;background:#fff;color:var(--mp-blue-deep);
    min-height:67px;padding:11px 12px;text-align:left;display:flex;align-items:center;gap:10px;
    box-shadow:var(--mp-shadow-sm);font:inherit;cursor:pointer;
  }
  .mp-mobile-quick-actions button span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--mp-blue-soft);font-size:18px;flex:0 0 36px}
  .mp-mobile-quick-actions button:nth-child(3) span{background:var(--mp-sage)}
  .mp-mobile-quick-actions button:nth-child(4) span{background:var(--mp-warm)}
  .mp-mobile-quick-actions strong,.mp-mobile-quick-actions small{display:block}
  .mp-mobile-quick-actions strong{font-size:12px;line-height:1.2}
  .mp-mobile-quick-actions small{font-size:9.5px;margin-top:3px;color:var(--mp-muted)}

  .active-direct-visits-panel{order:3!important;margin:0!important}
  .today-calendar-panel{order:4!important;margin:0!important;padding:14px!important}
  .today-calendar-panel-head{align-items:center!important;gap:10px!important;margin-bottom:10px!important}
  .today-calendar-panel-head h3{font-size:17px!important;color:var(--mp-blue-deep)!important}
  .today-calendar-panel-head p{font-size:10.5px!important;color:var(--mp-muted)!important}
  .today-calendar-head-actions{display:none!important}
  .today-calendar-summary{grid-template-columns:repeat(3,1fr)!important;gap:7px!important;margin:10px 0!important}
  .today-calendar-summary>div{min-height:74px!important;padding:10px 6px!important;border-radius:14px!important;background:var(--mp-surface-soft)!important;border:1px solid #e7eef1!important}
  .today-calendar-summary strong{font-size:19px!important;color:var(--mp-blue-deep)!important}
  .today-calendar-summary span:last-child{font-size:9px!important;line-height:1.2!important}
  .today-calendar-grid{border:0!important;background:transparent!important;box-shadow:none!important}
  .today-slot{border-radius:14px!important;margin:6px 0!important;min-height:58px!important;background:#fff!important;border:1px solid #e2eaee!important;box-shadow:0 3px 12px rgba(31,63,85,.035)!important}
  .today-slot-time{font-size:14px!important;font-weight:900!important;color:var(--mp-blue-deep)!important}
  .today-slot-main strong{font-size:12px!important}.today-slot-main small{font-size:10px!important}
  .cv2-today-visit-action,.cv2-today-reset-action{font-size:10px!important;min-height:34px!important;border-radius:10px!important}
  .today-full-calendar{min-height:44px!important;margin-top:9px!important;border-radius:13px!important;background:var(--mp-blue-soft)!important;color:var(--mp-blue-deep)!important}
  .today-tasks-section{order:5!important;margin:0!important}
  .today-task-group{border-radius:18px!important;border:1px solid var(--mp-line)!important;box-shadow:var(--mp-shadow-sm)!important}

  .control-center-secretary{order:6!important}
  .control-center-online-requests{order:7!important}
  .control-center-birthdays{order:8!important}
  .control-center-namedays{order:9!important}
  .control-center-vaccine-reminders{order:10!important}
  .control-center-secretary,.control-center-online-requests,.control-center-birthdays,.control-center-namedays,.control-center-vaccine-reminders{
    margin:0!important;border-radius:18px!important;box-shadow:var(--mp-shadow-sm)!important;
  }

  /* ========================================================
     CALENDAR — compact agenda-like mobile presentation
     ======================================================== */
  .calendar-premium-hero{padding:16px!important;border-radius:21px!important;margin-bottom:12px!important;box-shadow:var(--mp-shadow)!important}
  .calendar-toolbar{align-items:flex-start!important;gap:10px!important}
  .calendar-title span{font-size:8.5px!important}.calendar-title h1{font-size:27px!important}.calendar-title p{font-size:11px!important}
  .calendar-actions{gap:5px!important}.cal-icon-btn{width:38px!important;height:38px!important}.cal-today-btn{height:38px!important;padding:0 11px!important;font-size:11px!important}
  .calendar-mode-tabs{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:5px!important;padding:5px!important;border-radius:14px!important;overflow:visible!important}
  .calendar-mode-tabs button{min-height:39px!important;padding:0 5px!important;font-size:11px!important;border-radius:10px!important}
  .calendar-mode-tabs button:last-child{grid-column:1/-1!important;background:#f7fafb!important;color:var(--mp-muted)!important;min-height:34px!important}
  .calendar-day-head{padding:13px 14px!important;border-radius:17px!important;align-items:center!important}
  .calendar-day-head>div:first-child{display:flex!important;align-items:baseline!important;gap:7px!important}.calendar-day-head>div:first-child strong{font-size:27px!important}.calendar-day-head>div:first-child span,.calendar-day-head>div:first-child small{font-size:10px!important}
  .calendar-day-meta{gap:5px!important}.calendar-day-meta>span,.calendar-day-meta>strong{display:none!important}
  .calendar-day-chips{gap:5px!important}.calendar-day-chips span{padding:5px 7px!important;font-size:9px!important}
  .calendar-timeline{border-radius:18px!important;overflow:hidden!important;box-shadow:var(--mp-shadow-sm)!important}
  .calendar-slot{grid-template-columns:54px minmax(0,1fr)!important;min-height:54px!important}
  .slot-time{padding:10px 5px!important;font-size:11px!important}.slot-time span{font-size:12px!important}.slot-time small{font-size:7.5px!important}
  .slot-content{padding:5px 7px!important;gap:5px!important}
  .appointment-card{border-radius:12px!important;min-height:48px!important;padding:0!important}
  .appointment-body{padding:9px 10px!important}.appointment-top strong{font-size:11px!important}.appointment-top span,.appointment-reason,.appointment-status{font-size:9.5px!important}
  .empty-slot,.tomy-slot{min-height:38px!important;border-radius:10px!important;font-size:10px!important}
  .calendar-week-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;gap:10px!important;padding-bottom:4px!important}
  .week-day{min-width:82vw!important;scroll-snap-align:center!important;border-radius:18px!important}
  .calendar-month-grid{font-size:10px!important;gap:3px!important}.month-cell{min-height:74px!important;padding:6px!important}

  /* ========================================================
     VISIT WORKSPACE — focus flow + mobile tools sheet
     ======================================================== */
  .cv2-shell.cv2-reason-driven-shell{padding:0 0 8px!important}
  .cv2-visit-head{padding:13px 14px!important;border-radius:18px!important;margin-bottom:8px!important}
  .cv2-visit-head h1{font-size:20px!important;line-height:1.08!important}.cv2-visit-head p{font-size:10.5px!important;line-height:1.35!important}
  .cv2-focus-radar{
    position:static!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;
    padding:10px 11px!important;border-radius:16px!important;margin:0 0 10px!important;
    background:#fff!important;border:1px solid var(--mp-line)!important;box-shadow:var(--mp-shadow-sm)!important;
  }
  .cv2-sticky-identity strong{font-size:14px!important}.cv2-sticky-identity span{font-size:10px!important}
  .cv2-sticky-type{min-width:auto!important;padding:6px 8px!important;border-radius:10px!important}.cv2-sticky-type b{display:block!important;font-size:9.5px!important}
  .cv2-sticky-alerts{grid-column:1/-1!important;display:flex!important;gap:5px!important;overflow-x:auto!important}.cv2-sticky-alerts span{font-size:9px!important;padding:5px 7px!important;white-space:nowrap!important}
  .cv2-sticky-alerts .quiet{display:none!important}

  .cv2-reason-driven-layout{display:block!important}
  .cv2-reason-workspace{border-radius:19px!important;overflow:visible!important;background:#fff!important;box-shadow:var(--mp-shadow)!important}
  .cv2-reason-flow-head{padding:14px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important}
  .cv2-reason-flow-head>div>span{font-size:8px!important}.cv2-reason-flow-head h2{font-size:16px!important;margin:3px 0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.cv2-reason-flow-head p{display:none!important}
  .cv2-change-reason{padding:8px 10px!important;font-size:10px!important;border-radius:10px!important}

  .cv2-reason-stepper{padding:7px 8px 5px!important;gap:4px!important;display:grid!important;grid-template-columns:repeat(var(--mp-steps,5),minmax(0,1fr))!important;overflow:visible!important;background:#f8fafb!important}
  .cv2-reason-stepper button{min-width:0!important;display:grid!important;place-items:center!important;padding:4px 1px 6px!important;border-bottom-width:2px!important;gap:3px!important}
  .cv2-reason-stepper button b{width:27px!important;height:27px!important;font-size:10px!important}
  .cv2-reason-stepper button span{display:block!important;width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:8px!important;text-align:center!important;line-height:1.15!important}
  .cv2-reason-stage-stack{min-height:0!important}.cv2-reason-stage{padding:15px 12px 11px!important}
  .cv2-reason-stage-title{margin-bottom:12px!important}.cv2-reason-stage-title>span{width:32px!important;height:32px!important;border-radius:10px!important;font-size:10px!important}.cv2-reason-stage-title strong{font-size:16px!important}.cv2-reason-stage-title small{font-size:9px!important}
  .cv2-form-grid{grid-template-columns:1fr!important;gap:10px!important}.cv2-form-grid label{font-size:11px!important}.cv2-form-grid .wide{grid-column:auto!important}
  .cv2-form-grid input,.cv2-form-grid select,.cv2-form-grid textarea{border-radius:12px!important;padding:10px 11px!important}
  .cv2-inline-action{min-height:40px!important;font-size:11px!important;border-radius:11px!important}
  .cv2-smart-module{border-radius:15px!important;padding:12px!important}
  .cv2-smart-module-head{gap:8px!important}.cv2-smart-module-head strong{font-size:13px!important}.cv2-smart-module-head small{font-size:9.5px!important}
  .cv2-quick-growth-grid,.cv2-acute-vitals{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .cv2-quick-growth-grid label,.cv2-acute-vitals label{font-size:10px!important}
  .cv2-quick-growth-grid input,.cv2-acute-vitals input{font-size:16px!important;min-height:46px!important}

  .cv2-reason-driven-shell .cv2-reason-nav{
    position:sticky!important;bottom:84px!important;z-index:45!important;width:calc(100% - 18px)!important;max-width:none!important;
    margin:9px auto 4px!important;padding:6px!important;border-radius:16px!important;gap:6px!important;
    background:rgba(255,255,255,.96)!important;box-shadow:0 12px 30px rgba(31,63,85,.14)!important;
  }
  .cv2-reason-driven-shell .cv2-reason-nav>div{display:none!important}
  .cv2-reason-driven-shell .cv2-reason-nav .btn{min-height:42px!important;font-size:11px!important;padding:0 13px!important;flex:1 1 0!important}
  .cv2-reason-driven-shell .cv2-actionbar{margin:8px 0 0!important;gap:6px!important}
  .cv2-reason-driven-shell .cv2-actionbar-secondary,.cv2-reason-driven-shell .cv2-actionbar-main{width:100%!important;display:flex!important}
  .cv2-reason-driven-shell .cv2-actionbar .btn{min-height:40px!important;font-size:10.5px!important;flex:1 1 auto!important}

  /* tools trigger inserted by mobile-premium.js */
  .cv2-mobile-tools-trigger{
    position:sticky;bottom:158px;z-index:44;width:100%;min-height:44px;margin:8px 0 0;padding:0 14px;
    display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d6e3ea;border-radius:14px;
    background:linear-gradient(180deg,#edf5fa,#e6f0f7);color:var(--mp-blue-deep);box-shadow:0 7px 18px rgba(31,63,85,.08);
    font:inherit;font-size:12px;font-weight:900;cursor:pointer;
  }
  .cv2-mobile-tools-trigger b{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#fff;color:var(--mp-blue);font-size:14px}

  .cv2-context-rail{
    position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;z-index:220!important;
    width:100%!important;max-height:min(72vh,640px)!important;padding:12px 13px calc(18px + env(safe-area-inset-bottom))!important;
    display:grid!important;grid-template-columns:1fr!important;gap:7px!important;overflow:auto!important;
    border:1px solid #dbe5ea!important;border-radius:24px 24px 0 0!important;background:#fff!important;
    box-shadow:0 -24px 55px rgba(20,46,64,.20)!important;
    transform:translateY(105%)!important;opacity:0!important;pointer-events:none!important;
    transition:transform .22s ease,opacity .18s ease!important;
  }
  body.cv2-mobile-tools-open .cv2-context-rail{transform:translateY(0)!important;opacity:1!important;pointer-events:auto!important}
  .cv2-context-rail:before{content:"";display:block;width:42px;height:4px;border-radius:999px;background:#d9e2e7;margin:0 auto 3px}
  .cv2-rail-head{position:relative!important;padding:4px 42px 7px 3px!important;border:0!important;grid-column:auto!important}.cv2-rail-head span{font-size:8px!important}.cv2-rail-head strong{font-size:18px!important;color:var(--mp-blue-deep)!important}
  .cv2-mobile-tools-close{position:absolute;right:1px;top:1px;width:34px;height:34px;border:0;border-radius:50%;background:#f1f5f7;color:var(--mp-blue-deep);font-size:20px;display:grid;place-items:center;cursor:pointer}
  .cv2-rail-tool{min-height:58px!important;padding:9px 11px!important;border-radius:14px!important;background:#fff!important;border:1px solid #e1e9ed!important;box-shadow:none!important}
  .cv2-rail-tool>span{width:36px!important;height:36px!important;font-size:16px!important;border-radius:11px!important}.cv2-rail-tool strong{font-size:12px!important}.cv2-rail-tool small{font-size:9.5px!important}
  .cv2-rail-patient{min-height:44px!important;border-radius:12px!important;font-size:11px!important}
  .cv2-mobile-tools-scrim{position:fixed;inset:0;z-index:210;background:rgba(24,45,59,.30);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:none}
  body.cv2-mobile-tools-open .cv2-mobile-tools-scrim{display:block}

  /* Tabula-rasa reason selector */
  .cv2-tabula-rasa{margin:4px 0 0!important;padding:18px 12px!important;border-radius:20px!important;box-shadow:var(--mp-shadow)!important}
  .cv2-tabula-copy{margin-bottom:15px!important;text-align:left!important}.cv2-tabula-copy>span{font-size:8px!important}.cv2-tabula-copy h2{font-size:22px!important}.cv2-tabula-copy p{font-size:11px!important}
  .cv2-tabula-rasa .cv2-type-chips{grid-template-columns:1fr!important;gap:8px!important}
  .cv2-tabula-rasa .cv2-type-chip{min-height:60px!important;border-radius:15px!important;display:grid!important;grid-template-columns:38px minmax(0,1fr) auto!important;justify-content:stretch!important;text-align:left!important;padding:9px 11px!important;flex-direction:initial!important}
  .cv2-tabula-rasa .cv2-type-chip span{font-size:18px!important}.cv2-tabula-rasa .cv2-type-chip strong{font-size:13px!important}

  /* Medication / drawers */
  .cv2-drawer-backdrop{z-index:230!important}.cv2-drawer-panel,.cv2-drawer-panel.medication{width:100vw!important;max-width:none!important;border-radius:24px 24px 0 0!important;top:auto!important;height:min(88vh,760px)!important;bottom:0!important}
  .cv2-drawer-panel header{padding:14px 15px!important}.cv2-drawer-panel header h2{font-size:18px!important}.cv2-drawer-panel header p{font-size:10px!important}
  .cv2-drawer-body{padding:10px!important}
  .cv2-medication-module{padding:10px!important;border-radius:16px!important}.cv2-med-input-panel,.cv2-med-output-panel{padding:11px!important;border-radius:15px!important}
  .cv2-med-grid,.cv2-med-weight,.cv2-med-result,.cv2-med-actions{grid-template-columns:1fr!important}
  .cv2-med-field label,.cv2-med-grid label{font-size:10px!important}.cv2-med-grid input,.cv2-med-grid select,.cv2-med-weight input{font-size:16px!important;min-height:46px!important}
  .cv2-med-result strong{font-size:14px!important}.cv2-med-result small{font-size:9.5px!important}

  /* Patient card and patient directory */
  .clinic-patient-hero{padding:16px!important;border-radius:20px!important}.clinic-patient-hero h1{font-size:24px!important}.clinic-patient-hero p{font-size:11px!important}
  .clinic-patient-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.clinic-patient-module-grid button{min-height:74px!important;padding:11px!important;border-radius:15px!important}
  .patient-snapshot-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}.patient-snapshot-grid>div{padding:11px!important;border-radius:14px!important}
  table{min-width:0!important}.mobile-table-scroll{overflow-x:auto!important}

  /* More screen */
  .more-grid{grid-template-columns:1fr!important;gap:9px!important}.more-grid button{min-height:68px!important;border-radius:16px!important;padding:12px!important}

  /* Modal / forms */
  .modal-card{width:calc(100vw - 16px)!important;max-width:none!important;max-height:calc(100dvh - 18px)!important;border-radius:22px!important;padding:16px!important}
  .modal-card .x{width:36px!important;height:36px!important}
}

@media (max-width: 390px){
  .site-brand-name{font-size:16px!important}.site-brand-sub{font-size:7.5px!important}
  .clinic-nav-label{font-size:8.5px!important}
  .mp-mobile-quick-actions{grid-template-columns:1fr!important}
  .cv2-reason-stepper button span{font-size:7px!important}
}
