/* PMS v13 — responsive baseline. Loaded last, after app/theme/module CSS.
   Layout only: no model, permission, metric or print-report changes. */
:root{--pms-touch:44px}
html{min-width:0;scroll-padding-top:12px}
body{max-width:100%;min-width:0}
img,svg,video,canvas{max-width:100%}
.main-shell,.content-wrap,.topbar,.card,.page-head,.section-head,.form-card,
.hero-card,.project-card,.module-card,.kpi-card,.audit-panel,.audit-workspace-head,
.audit-title-block,.audit-head-metrics,.permission-panel,.permission-card,
.project-check-card,.onboarding-upload-card,.auth-card,.auth-panel{min-width:0}
:where(.content-wrap,.main-shell,.card,.form-card,.audit-panel,.page-head) p,
:where(.content-wrap,.main-shell,.card,.form-card,.audit-panel,.page-head) h1,
:where(.content-wrap,.main-shell,.card,.form-card,.audit-panel,.page-head) h2,
:where(.content-wrap,.main-shell,.card,.form-card,.audit-panel,.page-head) h3{overflow-wrap:anywhere}
:where(input,select,textarea){max-width:100%;min-width:0}
:where(textarea){resize:vertical}
:where(.field,.grid-form p,.stack-form p,.form-card,.onboarding-upload-card){min-width:0}
:where(.field,.grid-form,.stack-form,.audit-form-grid,.form-actions) :where(input,select,textarea):not([type="checkbox"]):not([type="radio"]){max-width:100%}
:where(.kpi-grid,.project-grid,.module-grid,.permission-grid,.module-summary-list,.audit-stat-grid,.audit-card-grid,.audit-form-grid){min-width:0}
.kpi-grid>* ,.project-grid>* ,.module-grid>* ,.permission-grid>* ,.module-summary-list>* {min-width:0}
.kpi-card strong{overflow-wrap:anywhere}
.project-meta,.card-head,.page-head,.section-head,.permission-head,.audit-head-actions{min-width:0;flex-wrap:wrap}
.card-head>*,.page-head>*,.section-head>*,.permission-head>*{min-width:0}
.project-card p,.project-check-card small,.permission-card small,.user-pill{overflow-wrap:anywhere}
/* Confine analytics overflow to its table viewport, not the document. */
.table-scroll,.audit-rec-wrap,.audit-summary-table-wrap,.tbl-wrap,.lb-tbl-wrap{
  min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;
}
.table-scroll table,.audit-rec-wrap table,.audit-summary-table-wrap table{max-width:none}
.table-scroll:focus-visible,.audit-rec-wrap:focus-visible,.audit-summary-table-wrap:focus-visible{
  outline:3px solid var(--primary);outline-offset:2px;
}
.pms-scroll-hint{
  display:flex;align-items:center;gap:6px;margin:5px 3px 12px;
  font-size:.73rem;line-height:1.35;color:var(--muted);font-weight:650;
}
.pms-scroll-hint i{color:var(--primary)}
/* Responsive drawer. 1050px is where the full action-heavy topbar becomes cramped. */
.sidebar-close-mobile{display:none}
.mobile-menu{min-width:var(--pms-touch);min-height:var(--pms-touch);flex-shrink:0}
.topbar-title{min-width:0;flex:1 1 auto}
.topbar-title strong{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.topbar-actions{min-width:0;flex-shrink:0}
.sidebar a:focus-visible,.sidebar button:focus-visible,.topbar button:focus-visible,.topbar a:focus-visible{
  outline:3px solid #9fb5ff;outline-offset:2px;
}
@media(max-width:1300px) and (min-width:1051px){
  .topbar-actions .user-pill,.topbar-actions .status-dot{display:none}
  .topbar-title strong{max-width:min(25vw,330px)}
  .project-grid,.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1050px){
  /* Override the old 860px-only nav rule and collapsed desktop widths. */
  .sidebar,.collapsed .sidebar{
    inset:8px auto 8px 8px!important;
    width:min(310px,calc(100vw - 24px))!important;
    max-width:calc(100vw - 24px);border-radius:19px!important;
    transform:translate3d(-115%,0,0);
    transition:transform .24s ease;
    z-index:120;
  }
  .sidebar.open,.collapsed .sidebar.open{transform:translate3d(0,0,0)}
  .main-shell,.collapsed .main-shell{
    margin-left:0!important;width:100%!important;min-width:0;
  }
  .mobile-menu{display:grid!important}
  .mobile-backdrop.show{display:block;position:fixed;inset:0;background:rgba(8,15,35,.57);z-index:110;backdrop-filter:blur(3px)}
  .collapsed .sidebar :is(.brand-copy,.workspace-card,.nav-section,.nav-item span,.sidebar-toggle span){display:revert!important}
  .collapsed .sidebar .brand-copy{display:flex!important}
  .collapsed .sidebar .workspace-card{display:grid!important}
  .collapsed .sidebar .nav-item{justify-content:flex-start!important}
  .collapsed .sidebar .nav-item i{width:19px!important}
  .sidebar .brand-wrap{padding-right:35px;position:relative}
  .sidebar-close-mobile{
    display:grid;place-items:center;position:absolute;right:0;top:5px;
    width:40px;height:42px;border-radius:11px;border:1px solid rgba(255,255,255,.2);
    color:#e8eefc;background:rgba(255,255,255,.09);font-size:1.1rem;
  }
  body.pms-nav-open{overflow:hidden;touch-action:pan-y}
  .topbar{margin:10px 12px 0!important;min-height:60px!important;padding:8px 12px!important;gap:10px}
  .topbar-actions .user-pill,.topbar-actions .status-dot{display:none!important}
  .content-wrap{padding:16px 12px 32px!important;max-width:100%!important}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-grid,.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .auth-screen{grid-template-columns:1fr!important;padding:26px!important;gap:18px!important}
  .auth-visual{display:none!important}
  .auth-panel{width:100%;max-width:560px;margin:auto}
  .grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .password-gate-screen{grid-template-columns:1fr!important;max-width:760px;margin:auto;padding:28px 18px!important;gap:16px!important}
  .password-gate-copy h1{font-size:clamp(1.9rem,5vw,2.65rem)}
  .auth-stats.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
  .onboarding-report-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:740px){
  .topbar{margin:8px 8px 0!important;min-height:58px!important;padding:8px 10px!important;gap:7px}
  .topbar-title span{font-size:.58rem!important}
  .topbar-title strong{font-size:.82rem!important;max-width:100%}
  .topbar-actions{gap:5px!important}
  .topbar-actions .theme-switch{width:44px!important;height:44px;min-height:44px;padding:0!important}
  .topbar-actions .theme-switch span{display:none!important}
  .topbar-actions .btn{min-width:44px;min-height:44px;padding:8px!important}
  .topbar-actions .btn span{display:none}
  .topbar-onboard{width:44px;display:grid;place-items:center}
  .content-wrap{padding:12px 9px 28px!important}
  .hero-card{padding:20px!important;border-radius:20px!important;gap:14px}
  .hero-card h1{font-size:clamp(1.45rem,6vw,2rem)!important;line-height:1.14!important}
  .hero-card p{font-size:.87rem!important}
  .modern-head{padding:15px!important;border-radius:18px!important}
  .page-head,.section-head,.card-head,.audit-head-actions{flex-direction:column;align-items:stretch}
  .page-head .actions,.section-head .actions,.audit-head-actions{width:100%}
  .page-head .actions>.btn,.audit-head-actions>.btn{flex:1 1 auto;min-height:var(--pms-touch)}
  .card{padding:14px!important}
  .kpi-card{padding:14px!important}
  .project-card,.module-card,.empty-card{padding:15px!important}
  .project-grid,.module-grid{grid-template-columns:1fr!important;gap:11px!important}
  .grid-form,.audit-form-grid,.permission-grid,.project-permission-grid,
  .module-summary-list,.onboarding-summary{grid-template-columns:1fr!important}
  .grid-form .span-2,.grid-form .form-actions,.grid-form .permission-panel{grid-column:1/-1}
  .permission-card{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}
  .permission-card strong{overflow-wrap:anywhere}
  .permission-panel{padding:13px}
  .form-card,.form-card.wide{padding:17px!important;width:100%;max-width:100%}
  .form-actions{flex-wrap:wrap}
  .form-actions>.btn{min-height:var(--pms-touch)}
  .inline-form,.delta-toolbar{min-width:0;max-width:100%}
  .inline-form{flex-wrap:wrap}
  .inline-form label{min-width:100%}
  .inline-form select,.project-select select{min-width:0!important;width:100%}
  .delta-toolbar{grid-template-columns:1fr!important;padding:12px!important}
  .toolbar-actions{grid-column:auto!important;display:flex;flex-wrap:wrap}
  .pagination-row{flex-direction:column;align-items:stretch}
  .pagination-actions{display:flex;flex-wrap:wrap;width:100%}
  .pagination-actions .btn{flex:1 1 auto}
  .project-meta{flex-wrap:wrap;align-items:flex-start}
  .project-meta>*{max-width:100%}
  .onboarding-upload-card{padding:17px!important}
  .excel-dropzone{min-height:170px;padding:22px 12px}
  .onboarding-card-head{align-items:flex-start}
  .onboarding-report-summary{grid-template-columns:1fr!important}
  .pms-modal-dialog{width:min(100%,540px);padding:18px!important;max-height:calc(100dvh - 24px);overflow:auto}
  .modal-actions{display:flex;flex-wrap:wrap}
  .modal-actions .btn{flex:1 1 auto;min-height:44px}
  .auth-screen{padding:13px!important;min-height:100dvh}
  .auth-card{padding:21px!important;border-radius:21px!important}
  .auth-panel{width:100%;max-width:500px}
  .auth-card h2{font-size:1.36rem!important}
  .password-gate-copy .auth-stats.compact{grid-template-columns:1fr!important;gap:7px}
  .password-gate-screen{padding:22px 12px!important;gap:14px}
  .password-gate-copy h1{font-size:clamp(1.65rem,6.2vw,2.2rem);margin:14px 0}
  .password-gate-copy p{font-size:.9rem;line-height:1.55}
  .password-gate-card{padding:18px!important}
  /* Small data tables turn into labelled, readable cards only when opted in. */
  .table-scroll:has(.mobile-card-table){overflow-x:visible!important}
  .mobile-card-table{display:block;min-width:0!important;width:100%!important}
  .mobile-card-table thead{display:none}
  .mobile-card-table tbody{display:grid;gap:12px}
  .mobile-card-table tbody tr{display:grid;gap:0;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow-soft)}
  .mobile-card-table td{
    min-width:0;display:grid;grid-template-columns:minmax(85px,34%) minmax(0,1fr);
    align-items:start;gap:10px;padding:11px 12px!important;
    border-bottom:1px solid var(--line);background:var(--surface)!important;
    overflow-wrap:anywhere;white-space:normal;
  }
  .mobile-card-table td:last-child{border:0}
  .mobile-card-table td:before{content:attr(data-label);font-size:.67rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.045em}
  .mobile-card-table td[colspan]{display:block;text-align:center}
  .mobile-card-table td[colspan]::before{display:none}
  .mobile-card-table td .row-actions{align-items:flex-start}
  .mobile-card-table td .row-actions .btn{min-height:40px}
  .mobile-card-table td form{max-width:100%}
  /* Audit input and rating controls: no horizontal clipping on 320px phones. */
  .audit-workspace-head{min-width:0;gap:14px!important;padding:14px!important}
  .audit-workspace-head h1{font-size:clamp(1.25rem,5.5vw,1.65rem)!important;overflow-wrap:anywhere}
  .audit-title-row{flex-wrap:wrap}
  .audit-head-metrics{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:7px}
  .audit-head-metrics>div{min-width:0}
  .audit-head-actions{display:flex!important;flex-direction:row;flex-wrap:wrap}
  .audit-head-actions>.btn{flex:1 1 auto}
  .audit-card-grid,.audit-stat-grid,.audit-derived-grid,.audit-summary-kpis,.audit-sign-grid,.audit-choice-section,.objection-grid{grid-template-columns:1fr!important}
  .audit-panel{padding:13px!important;border-radius:17px!important}
  .audit-score-head,.audit-score-row{grid-template-columns:minmax(0,1fr)!important}
  .audit-score-head{display:none!important}
  .audit-score-row{padding:12px!important;gap:10px!important}
  .audit-score-options{justify-content:flex-start!important;flex-wrap:wrap;gap:4px!important}
  .score-choice{min-width:43px;min-height:43px;display:grid;place-items:center}
  .score-choice span{width:35px!important;height:35px!important}
  .audit-note{min-height:42px}
  .audit-tabs{min-width:0;max-width:100%;overscroll-behavior-x:contain;scroll-snap-type:x proximity}
  .audit-tab{scroll-snap-align:start;min-height:44px;display:inline-flex;align-items:center}
  .audit-combobox-menu{max-width:100%;z-index:70}
  .audit-combobox-option{white-space:normal;overflow-wrap:anywhere}
  .audit-summary-hero,.audit-finalise-card{flex-direction:column;align-items:stretch}
  .audit-summary-table{min-width:0!important;table-layout:fixed}
  .audit-summary-table :is(th,td){padding:9px 7px!important;font-size:.75rem!important;white-space:normal;overflow-wrap:anywhere}
  .audit-score-percent-cell{min-width:0;flex-wrap:wrap}
  .audit-score-percent-cell .audit-mini-progress{max-width:100%}
  .audit-rec-table :is(input,select){min-width:130px;max-width:none}
  /* The training experience retains its own scroll area for live-call overlays. */
  .scriptcraft-frame{height:calc(100dvh - 170px);min-height:560px;border-radius:14px}
}
@media(max-width:420px){
  .topbar{gap:5px!important;padding:7px 8px!important}
  .topbar-title span{display:none}
  .topbar-title strong{max-width:100%;font-size:.77rem!important}
  .topbar-actions{gap:4px!important}
  .topbar-actions .theme-switch{width:42px!important;height:42px;min-height:42px}
  .topbar-actions .btn,.mobile-menu{width:42px;min-width:42px;min-height:42px;padding:7px!important}
  .content-wrap{padding:10px 7px 24px!important}
  .kpi-grid{grid-template-columns:1fr!important;gap:9px!important}
  .kpi-card{min-height:0!important}
  .kpi-card strong{font-size:1.4rem!important}
  .permission-card{grid-template-columns:1fr 1fr!important}
  .permission-card>div:first-child{grid-column:1/-1}
  .permission-card .pretty-check{justify-content:center;min-width:0}
  .mobile-card-table td{grid-template-columns:minmax(76px,34%) minmax(0,1fr);padding:10px!important;gap:8px}
  .mobile-card-table td:before{font-size:.63rem}
  .project-meta{flex-direction:column}
  .onboarding-card-head{gap:9px}
  .onboarding-card-head h2{font-size:1rem}
  .auth-card{padding:18px!important}
  .audit-head-metrics{grid-template-columns:1fr 1fr}
  .scriptcraft-frame{min-height:510px;height:calc(100dvh - 145px)}
}
@media(min-width:741px) and (max-width:1050px){
  .permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .audit-head-actions{display:flex;flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){
  .sidebar,.main-shell,.sidebar .nav-item{transition:none!important}
}
@media print{
  .pms-scroll-hint,.sidebar-close-mobile,.mobile-backdrop{display:none!important}
  .table-scroll{overflow:visible!important}
  .mobile-card-table{display:table!important;min-width:0!important}
  .mobile-card-table thead{display:table-header-group!important}
  .mobile-card-table tbody{display:table-row-group!important}
  .mobile-card-table tr{display:table-row!important}
  .mobile-card-table td{display:table-cell!important;border-radius:0!important;box-shadow:none!important}
  .mobile-card-table td:before{display:none!important}
  .main-shell,.collapsed .main-shell{margin:0!important;width:100%!important}
  body{background:#fff!important}
}
/* Final narrow-form safeguards: temporary-password and training-only controls. */
@media(max-width:740px){
  input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),
  select,textarea{font-size:16px!important}
  input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),select{
    min-height:44px;
  }
  .permission-panel label.pretty-check.standalone{
    display:flex!important;align-items:flex-start!important;flex-wrap:wrap!important;
    max-width:100%;width:100%;white-space:normal!important;overflow-wrap:anywhere;
  }
  .permission-panel label.pretty-check.standalone input{flex:0 0 auto}
  .project-check-card{max-width:100%;overflow-wrap:anywhere}
  .pms-modal-dialog :is(input,select,textarea){min-width:0}
}
@media(max-width:740px){
  .audit-form-grid>.field,.audit-form-grid .field{grid-template-columns:minmax(0,1fr)!important}
  .audit-combobox,.audit-combobox-control,.audit-combobox-menu{min-width:0;max-width:100%;width:100%}
  .audit-combobox-input{min-width:0!important;max-width:100%;flex:1 1 auto}
}

@media(max-height:600px) and (max-width:1050px){
  .scriptcraft-frame{height:max(390px,calc(100dvh - 130px));min-height:390px}
  .pms-modal-dialog{max-height:calc(100dvh - 18px)}
}
