/* iPhone-first interaction layer. Desktop layout and permission-hidden controls stay intact. */
.pm-bottom,.pm-back,.pm-planner-selection,.pm-erp-controls,#pmPlannerCreate,.pm-order-summary,.pm-edit-order{display:none}
.pm-sheet{padding:0;border:1px solid #dce4ea;border-radius:22px 22px 0 0;background:#f7f9fb;color:#193445;width:min(560px,100%);max-width:100%;max-height:85dvh;margin:auto auto 0;box-shadow:0 -15px 65px #10243230}
.pm-sheet::backdrop{background:#10243170;backdrop-filter:blur(4px)}
.pm-sheet>header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #dce4ea}
.pm-sheet h2{font-size:19px;margin:0}.pm-sheet h3{font-size:13px;color:#617080;margin:18px 0 4px}
.pm-sheet>header button{border:1px solid #dce4ea;background:#fff;border-radius:50%;width:44px;height:44px;font-size:23px}
.pm-sheet-body{display:grid;gap:8px;overflow:auto;max-height:calc(85dvh - 78px);padding:16px 18px max(22px,env(safe-area-inset-bottom));overscroll-behavior:contain}
.pm-sheet-action{width:100%;text-align:left;padding:14px;border:1px solid #dce4ea;border-radius:12px;background:white;color:#193445;font-size:16px}
.pm-sheet form,.pm-sheet label{display:grid;gap:10px}.pm-sheet form{gap:18px}.pm-sheet input{padding:12px;border:1px solid #bdcdd7;border-radius:10px;width:100%;min-width:0;font-size:16px;background:white;color:#193445}
.pm-sheet button{cursor:pointer}
/* Keep aligned with the portal shell in app.css and PortalMobile's matchMedia. */
@media(max-width:1024px){
  html{-webkit-text-size-adjust:100%;scroll-padding-bottom:100px}
  body{overflow-wrap:break-word}
  /* Physical touch targets, not just enlarged icon drawings. */
  body button,body a.primary-button,body a.secondary-button,body .mobile-nav a,body summary{touch-action:manipulation}
  body :is(.primary-button,.secondary-button),body .mobile-nav a,body summary{min-height:44px;min-width:44px}
  body label:has(>input[type=checkbox]),body label:has(>input[type=radio]){min-height:44px}
  body input:not([type=checkbox]):not([type=radio]):not([type=hidden]),body select,body textarea{font-size:16px!important;min-height:48px;min-width:0;max-width:100%;box-sizing:border-box}
  body button:focus-visible,body a:focus-visible,body summary:focus-visible{outline:3px solid #278eae;outline-offset:3px}
  .pm-tool-active .mobile-app-header,.pm-tool-active #mobileNav,.pm-tool-active .sidebar{display:none!important}
  .pm-tool-active .app-shell{display:block;min-height:100dvh;padding:0}
  .pm-tool-active .workspace{width:100%;min-width:0;max-width:none;margin:0;padding:calc(10px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) calc(92px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important}
  #plannerView,#documentsView{width:100%;min-width:0;max-width:none;margin:0;padding:0!important}
  #plannerView [hidden],#documentsView [hidden],.pm-sheet [hidden],.tenant-planner-dialog [hidden]{display:none!important}
  .pm-back{display:inline-flex;align-items:center;min-height:44px;min-width:64px;font-size:15px;font-weight:650;color:#31586c;text-decoration:none;margin-bottom:3px}
  #plannerView .tenant-planner-heading,#documentsView .documents-header{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0 0 16px;padding:0;border:0}
  #plannerView .tenant-planner-heading h2,#documentsView .documents-header h2{font-size:27px;line-height:1.2;margin:0 0 6px;letter-spacing:-.7px}
  #plannerView .tenant-planner-heading .eyebrow,#documentsView .documents-header .eyebrow,#documentsView .documents-header>div>p:not(.eyebrow){display:none}
  #plannerTenantLabel{font-size:12px;line-height:1.5}
  #plannerView .tenant-planner-heading-actions,#documentsTabs,#documentsView .documents-header-actions>button,#documentsConnection{display:none}
  #plannerView .planner-tenant-switcher,#documentsView .documents-header-actions,#documentsCompanyControl{width:100%;max-width:none;min-width:0;margin:0}
  #plannerView .planner-tenant-select-shell{width:100%;min-width:0}
  #plannerTenantSelect,#documentsCompanySelect{width:100%;padding:10px 12px;border:1px solid #cbd7df;border-radius:12px;background:#fff;color:#1e394c}
  #plannerView .planner-tenant-switcher>span:first-child,#documentsCompanyControl>span{font-size:12px;letter-spacing:0;color:#526a7b}
  .pm-bottom{display:grid;grid-template-columns:repeat(var(--pm-tabs,4),minmax(0,1fr));position:fixed;z-index:90;bottom:0;left:0;right:0;padding:6px max(8px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:4px;background:#fffffff5;border-top:1px solid #dce4ea;box-shadow:0 -4px 25px #1833470b;backdrop-filter:blur(14px)}
  .pm-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-radius:12px;min-height:57px;background:transparent;color:#597081;padding:6px 2px;font:inherit;font-size:11px;font-weight:650;white-space:normal}
  .pm-bottom button[aria-current=page]{background:#e4f0f1;color:#006f6b}.pm-nav-icon{width:22px;height:22px;display:block;flex-shrink:0}
  .pm-keyboard .pm-bottom{display:none}
  .pm-tool-active:has(dialog[open]) .pm-bottom{visibility:hidden}
  #plannerView .tenant-planner-toolbar{display:flex;flex-direction:row;align-items:flex-end;gap:10px;padding:0;background:none;border:0;box-shadow:none}
  #plannerView .tenant-planner-toolbar>div{display:none}
  #plannerView #linkedPlannerPanel{display:none}
  #plannerView .tenant-planner-toolbar>label{min-width:0;width:0;flex:1;margin:0}
  #plannerView .tenant-planner-toolbar label span{font-size:12px}
  #pmPlannerCreate{display:block;flex:0 0 auto;padding:12px;font-size:14px;min-height:48px;border-radius:12px}
  .pm-planner-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px}
  .pm-planner-selection>label:first-child:has(+[hidden]){grid-column:1/-1}
  .pm-planner-selection label,.pm-erp-controls label{display:grid;gap:6px;min-width:0;font-size:12px;font-weight:650;color:#526a7b}
  .pm-planner-selection select,.pm-erp-controls select{width:100%;padding:10px 12px;border:1px solid #cbd7df;border-radius:12px;background:white;color:#193445}
  #plannerStatus{font-size:12px;line-height:1.5;padding:12px 0}
  #plannerView .p21-workspace{display:block;min-width:0}#plannerDepartmentNav{display:none}
  #plannerBoard:not(.is-dashboard):not(.is-schedule){display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:row;grid-auto-columns:auto;gap:16px;overflow:visible;padding:0;scrollbar-gutter:auto}
  #plannerBoard>.pm-column-hidden{display:none}
  #plannerBoard .tenant-planner-column{border-radius:16px;background:#edf2f5}
  #plannerBoard .tenant-planner-column>header{padding:14px;min-height:52px}
  #plannerBoard .tenant-planner-column h3{font-size:16px;line-height:1.35}
  #plannerBoard .tenant-planner-cards{grid-template-columns:minmax(0,1fr);gap:12px;padding:0 10px 10px}
  #plannerBoard .tenant-planner-card{padding:14px;gap:10px;transform:none}
  #plannerBoard .tenant-planner-card strong{font-size:16px;line-height:1.45}
  #plannerBoard .tenant-planner-card p,#plannerBoard .tenant-planner-card small,#plannerBoard .planner-card-roe,#plannerBoard .planner-card-financial,#plannerBoard .planner-column-empty{font-size:13px;line-height:1.5}
  #plannerBoard .planner-card-top code{font-size:12px}#plannerBoard .planner-card-top button{font-size:12px;padding:8px 10px}
  #plannerBoard .planner-card-meta>span{font-size:12px;padding:6px 8px}
  #plannerBoard .p21-workflow-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  #plannerBoard .p21-workflow-actions button{min-height:46px;font-size:14px}
  #plannerBoard .p21-bucket-add{font-size:14px;min-height:46px;margin:0 10px 12px}
  #plannerBoard .p21d-main,#plannerBoard .p21d-side{grid-template-columns:minmax(0,1fr)}
  #plannerBoard .p21d-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  #plannerBoard .p21-toolbar{flex-wrap:wrap}#plannerBoard .p21-table-wrap{max-width:100%;overscroll-behavior-inline:contain}
  /* Full-height sheets avoid tiny nested modals and leave a stable save/close area. */
  body .tenant-planner-dialog,body .erp-customer-dialog,body .documents-dialog{position:fixed;top:var(--pm-dialog-top,0px);bottom:auto;width:100%;max-width:100%;height:var(--pm-dialog-height,100dvh);max-height:var(--pm-dialog-height,100dvh);margin:0;padding:0;border:0;border-radius:0;overflow:hidden}
  body .tenant-planner-dialog-shell,body .erp-customer-shell,body .documents-dialog-shell{height:100%;max-height:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
  body .tenant-planner-dialog-shell>header,body .erp-customer-shell>header,body .documents-dialog-shell>header{padding:calc(12px + env(safe-area-inset-top)) 16px 12px;gap:8px;min-width:0}
  body .tenant-planner-dialog-shell>header h2{font-size:21px;margin:2px 0 8px}
  body .tenant-planner-dialog-shell>header>button{width:44px;height:44px;flex-shrink:0}
  #plannerOrderForm .planner-syntax-preview{display:none}
  #plannerOrderForm .p21-order-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  #plannerOrderForm .p21-order-shortcuts a,#plannerOrderForm .p21-order-shortcuts button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;font-size:13px;border-radius:10px}
  #plannerOrderForm .pm-edit-order{border:1px solid #cbd7df;background:#fff;color:#28576f}
  body .tenant-planner-dialog-body{padding:16px;gap:16px;min-height:0;overscroll-behavior:contain;scroll-padding:16px}
  body .tenant-planner-dialog-shell>footer{padding:10px 16px max(12px,env(safe-area-inset-bottom));gap:8px;flex-wrap:wrap;background:#fff;border-top:1px solid #dce4ea}
  body .tenant-planner-dialog-shell>footer>div{display:flex;gap:8px;width:100%}
  body .tenant-planner-dialog-shell>footer button{flex:1;font-size:14px;padding:12px;min-height:48px}
  body .tenant-planner-dialog-shell>footer>p{font-size:12px;line-height:1.4;margin:0;width:100%}
  #plannerOrderForm .planner-configured-grid,#plannerOrderForm .planner-form-grid{grid-template-columns:minmax(0,1fr)}
  #plannerOrderForm .planner-configured-grid>label{grid-column:auto}
  #plannerOrderForm .planner-configured-grid>label>span,#plannerOrderForm .planner-notes-field>span,#plannerOrderForm .planner-people-field>span{font-size:13px}
  #plannerOrderForm .planner-configured-grid small{font-size:12px;line-height:1.45}
  #plannerOrderForm .planner-checklist-field{order:-1}#plannerOrderForm .pm-order-summary{order:-3}#plannerOrderForm .p21-workflow-form{order:-2}
  #plannerOrderForm .planner-checklist-toggle{min-height:64px;padding:10px 12px;gap:8px}#plannerOrderForm .planner-checklist-copy strong{font-size:15px}#plannerOrderForm .planner-checklist-copy small{font-size:11px}#plannerOrderForm .planner-checklist-progress{font-size:11px;padding:5px 7px}
  #plannerChecklistChoices{grid-template-columns:minmax(0,1fr);padding:0 10px 10px!important}#plannerChecklistChoices label{min-height:52px;padding:12px;gap:12px}#plannerChecklistChoices label span{font-size:14px;line-height:1.45}
  #plannerAssigneeChoices label>span{font-size:13px;min-height:44px;display:flex;align-items:center}
  #plannerOrderForm .p21-workflow-form{display:flex;flex-wrap:wrap;gap:12px;padding:14px}
  #plannerOrderForm .p21-workflow-check{min-height:48px;width:100%;font-size:14px}#plannerOrderForm .p21-workflow-check input{width:22px;height:22px;flex-shrink:0}
  #plannerOrderForm .pm-order-summary{display:none}
  #plannerOrderForm.pm-order-reading .pm-order-summary{display:block}
  .pm-order-summary h3{margin:0 0 6px;font-size:20px}.pm-order-summary p{font-size:14px;line-height:1.6;margin:0 0 12px;color:#526a7b;white-space:pre-wrap}
  .pm-order-summary details{border:1px solid #d6e1e8;border-radius:12px;background:white;padding:0 12px}
  .pm-order-summary summary{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:650}.pm-order-summary summary::after{content:'+'}.pm-order-summary details[open] summary::after{content:'−'}
  .pm-order-summary dl{margin:0 0 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:5px}.pm-order-summary dt{font-size:12px;color:#617787}.pm-order-summary dd{margin:0 0 10px;font-size:15px;overflow-wrap:anywhere}
  .pm-order-summary .pm-order-notes{margin-top:12px;color:#254457}
  #plannerOrderForm.pm-order-reading #plannerConfiguredFields,#plannerOrderForm.pm-order-reading .planner-form-grid,#plannerOrderForm.pm-order-reading .planner-people-field,#plannerOrderForm.pm-order-reading .planner-notes-field,#plannerOrderForm.pm-order-reading #plannerScheduleHint,#plannerOrderForm.pm-order-reading .p21-workflow-form>label:not(.p21-workflow-check){display:none}
  #documentsToolbar{display:block;padding:0!important;border:0;background:none;box-shadow:none;margin:0 0 10px}
  #documentsToolbar>label:not(.documents-search),#documentsToolbar>#documentsRefresh{display:none}
  #documentsToolbar .documents-search{width:100%;min-width:0}#documentsToolbar .documents-search>span:first-child{font-size:12px}#erpSearchHint{font-size:11px;line-height:1.5}#documentsToolbar kbd{display:none}
  .pm-erp-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:18px}
  .pm-erp-controls>button{background:white;border:1px solid #cbd7df;border-radius:12px;padding:12px;text-align:left;color:#284a60;font-size:14px}
  #pmErpRange{color:#627a8b;font-size:12px;padding-left:2px}
  #documentsView .documents-table-wrap{display:none}#documentsView .documents-card-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  #documentsView .erp-panel{min-width:0;border-radius:16px}#documentsView .erp-panel-heading,#documentsView .documents-result-head{padding:16px;gap:10px;flex-wrap:wrap}
  #documentsView .document-card{padding:16px}#documentsView .document-card h3{font-size:17px}#documentsView .document-card p{font-size:14px}#documentsView .document-card button{font-size:14px;min-height:48px}
  #documentsView .erp-search-groups{grid-template-columns:minmax(0,1fr)}#documentsView .erp-search-result{min-width:0}#documentsView .erp-search-result strong{font-size:14px}
  #documentsView .biz-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#documentsView .biz-kpi{padding:13px;min-width:0}#documentsView .biz-kpi>strong{font-size:20px;overflow-wrap:anywhere}
  #documentsView .biz-card{min-width:0}#documentsView .biz-chart-scroll{max-width:100%;overscroll-behavior-inline:contain}
  #businessDashboard .biz-chart-legend button,#businessDashboard .biz-chart-modes button,#businessDashboard .biz-legend-toggle{min-height:44px;padding:10px;font-size:13px!important}
  #documentsView .biz-chart-pager button{width:44px;height:44px}#documentsView .biz-chart-data summary{width:100%;padding:12px 0}
  #documentsView .erp-roe-widget{margin:12px;padding:16px}#documentsView .erp-roe-values{grid-template-columns:repeat(2,minmax(0,1fr))}
  body .documents-dialog-shell{grid-template-rows:auto auto minmax(0,1fr)}body .erp-customer-shell{grid-template-rows:auto minmax(0,1fr)}
  body .documents-pdf-toolbar{gap:6px;flex-wrap:wrap;padding:8px 12px}body .documents-pdf-toolbar button{min-width:44px;font-size:14px}
  body .erp-customer-detail{overflow:auto;padding:16px;min-height:0;overscroll-behavior:contain}
  #mobileNav a{font-size:14px;line-height:1.4}#mobileMenuToggle{width:48px;height:48px}.mobile-account-link{min-height:48px}
  .planner-config-dialog .planner-config-field,.p21-access-row{min-width:0}.p21-access-row{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:359px){#documentsView .biz-kpis{grid-template-columns:minmax(0,1fr)}.pm-bottom button{font-size:10px}#pmPlannerCreate{padding:10px 8px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.pm-bottom *,.pm-sheet *{animation:none!important;transition:none!important}}
