/* Saarthi responsive layout. Desktop records and all server permissions remain shared. */
.mobile-menu-close,.mobile-nav-shade{display:none}
.page-shell,main,#content,.toolbar-left,.field,.ops-filters,.ops-hero>div{min-width:0}
.stats-grid>*,.dashboard-grid>*,.two-column>*,.ai-layout>*{min-width:0}
.table-scroll{max-width:100%;overscroll-behavior-x:contain}
@media screen and (max-width:960px){
  :root{scroll-padding-top:90px}
  .page-shell{margin-left:0}
  main{padding:24px 16px max(24px,env(safe-area-inset-bottom));max-width:100%}
  .topbar{position:sticky;top:0;z-index:25;display:grid;grid-template-columns:44px minmax(0,1fr);height:auto;min-height:72px;padding:10px 14px;gap:10px;background:#fff;box-shadow:0 2px 12px #14294208}
  .breadcrumb{display:contents}
  .breadcrumb>span,.breadcrumb>strong{display:none}
  .menu-button{display:flex}
  .topbar-actions{min-width:0;gap:8px;justify-content:flex-end}
  .topbar-actions .session,.topbar-actions .avatar{display:none}
  #signed-in-person{order:-1;flex:1;min-width:0;min-height:44px;justify-content:center;max-width:none;overflow-wrap:anywhere}
  #signed-in-person strong{font-size:13px;line-height:1.35}
  #signed-in-person small{font-size:11px;margin-top:3px}
  #staff-task-alert{font-size:12px;padding:9px;flex-shrink:0;min-height:44px}
  .icon-button{min-width:44px;min-height:44px;width:44px;height:44px;flex-shrink:0}
  /* Keep the drawer above its shade even when a later theme styles .sidebar. */
  #sidebar{z-index:60;inset:0 auto 0 0;width:min(320px,calc(100vw - 32px));height:100vh;height:100dvh;max-height:100dvh;padding:22px 14px max(14px,env(safe-area-inset-bottom));overflow:hidden;transform:translateX(-105%);visibility:hidden;transition:transform .2s ease,visibility .2s;box-shadow:10px 0 35px #13274025}
  #sidebar.open{transform:translateX(0);visibility:visible}
  .sidebar .brand{font-size:20px;padding-right:34px;flex-shrink:0}
  .sidebar .workspace-label{margin:24px 12px 10px;flex-shrink:0}
  .sidebar #navigation{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px;scrollbar-width:thin}
  .sidebar .nav-link{min-height:46px;padding:12px;font-size:14px}
  .sidebar-bottom{margin-top:0;padding-top:8px;flex-shrink:0;border-top:1px solid #30435a}
  .sidebar-bottom .demo-label{display:none}
  .sidebar-bottom .profile{padding:12px 9px 0}
  .sidebar-bottom .school-link{min-height:44px;align-items:center}
  .mobile-menu-close{display:flex;position:absolute;right:10px;top:16px;color:white;font-size:28px;background:#243c55}
  .mobile-nav-shade:not([hidden]){display:block;position:fixed;inset:0;z-index:55;background:#11233988;backdrop-filter:blur(2px);border:0;width:100%;height:100%}
  body.saarthi-menu-open{overflow:hidden}
  .page-heading{align-items:flex-start;flex-wrap:wrap;gap:16px}
  .page-heading>div{min-width:0;flex:1 1 220px}
  .page-heading h1{font-size:clamp(25px,5vw,32px);line-height:1.25;overflow-wrap:anywhere}
  .page-heading p{max-width:none;font-size:14px;line-height:1.65}
  .page-heading>.button{font-size:13px;padding:11px 14px;min-height:44px}
  .button,.subtabs button,.branch-tabs button{min-height:44px}
  .button{white-space:normal;text-align:center;line-height:1.4}
  .button svg{flex-shrink:0}
  .context-row{margin:24px 0;gap:12px}
  .branch-tabs{width:100%;max-width:460px}
  .branch-tabs button{flex:1;min-width:0;white-space:normal;padding:10px 7px}
  .date-label{align-self:flex-start;margin:0}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .dashboard-grid,.two-column,.ai-layout{grid-template-columns:minmax(0,1fr)}
  .stat-card{padding:18px 14px}
  .stat-label{font-size:13px;line-height:1.4}
  .stat-detail{line-height:1.6}
  .stat-value,.money-value{overflow-wrap:anywhere}
  .ops-hero{padding:24px;flex-direction:column;align-items:stretch;gap:22px}
  .ops-hero h2{font-size:25px;overflow-wrap:anywhere}
  .ops-coverage{min-width:0;border-left:0;border-top:1px solid #4a696b;padding:18px 0 0}
  .ops-toolbar,.ops-filters{gap:12px;flex-wrap:wrap}
  .ops-toolbar .toolbar-left{width:100%}
  .ops-date{flex-wrap:wrap;width:100%;font-size:13px}
  .ops-date input{min-width:0;flex:1}
  .ops-task-summary{flex-direction:column;align-items:stretch;gap:14px}
  .ops-task-summary p{line-height:1.6;font-size:14px}
  .ops-check-grid{grid-template-columns:minmax(0,1fr)}
  .ops-card-actions .button{min-height:44px;font-size:13px}
  .ops-report{grid-template-columns:minmax(0,1fr)}
  .subtabs{overflow-x:auto;overscroll-behavior-x:contain;gap:18px;padding-bottom:1px}
  .subtabs button{flex-shrink:0;white-space:nowrap;font-size:14px;padding:10px 2px}
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:44px;max-width:100%}
  .field{min-width:0;line-height:1.5}
  .field input,.field select,.field textarea{width:100%}
  input[type=file]{min-width:0;width:100%;white-space:normal}
  .form-grid,.column-mapping{grid-template-columns:minmax(0,1fr)}
  .field.full{grid-column:1}
  .form-actions{flex-wrap:wrap;gap:10px}
  .form-actions .button{flex:1 1 140px}
  dialog,#database-gate{width:min(620px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:24px 20px;overflow:auto;overscroll-behavior:contain;border-radius:18px}
  .modal-heading{gap:12px;align-items:flex-start}
  .modal-heading h2{font-size:22px;line-height:1.35;overflow-wrap:anywhere}
  .database-login{gap:18px}
  .database-login .button{min-height:48px}
  .ops-choice{min-width:0;padding:12px;gap:8px}
  .ops-choice label{min-height:44px;padding:6px;line-height:1.4}
  .ops-choice input{flex-shrink:0}
  .toolbar,.card-header{padding:18px 16px;gap:12px;flex-wrap:wrap}
  .toolbar-left{width:100%;gap:10px}
  .toolbar select{min-width:0;max-width:100%;flex:1 1 130px}
  .search-field{min-width:0;width:100%}
  .search-field input{min-width:0;font-size:16px}
  .card-body{padding:0 16px 18px}
  .card-header>div{min-width:0}
  .card-header h2{line-height:1.4;overflow-wrap:anywhere}
  .card-header p,.record p,.notice p{font-size:14px;line-height:1.6}
  .record,.ops-alert,.ops-space{flex-wrap:wrap}
  .record>div,.ops-alert>div{min-width:0;overflow-wrap:anywhere}
  .academic-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .academic-card{padding:16px;min-width:0}
  .academic-card span{font-size:14px;overflow-wrap:anywhere}
  .academic-card small{font-size:12px;line-height:1.5}
  .file-drop{padding:16px}
  .import-hero,.ai-hero{padding:22px;flex-direction:column;align-items:stretch}
  .import-counts{padding:16px;gap:16px;flex-wrap:wrap}
  .import-guidance,.academic-help{line-height:1.7;overflow-wrap:anywhere}
  .module-import-actions{width:100%;flex-wrap:wrap}
  .module-import-actions>.button,.toolbar.wrap>.button{flex:1 1 140px}
  .module-import-actions>.primary,.toolbar.wrap>.primary{order:-1;flex-basis:100%}
  .personnel-assignment-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .personnel-assignment-row>button{grid-column:1/-1;min-height:44px}
  .ai-answer{font-size:16px;min-height:260px}
  .ai-suggestions .chip{min-height:44px;white-space:normal;text-align:left}
  .summary-json{max-width:100%;overflow-wrap:anywhere}
  .footer{font-size:12px;line-height:1.7;gap:12px;flex-wrap:wrap}
  #toast{left:50%;width:max-content;max-width:calc(100% - 32px);bottom:max(18px,env(safe-area-inset-bottom));font-size:14px;line-height:1.5}
}
@media screen and (max-width:600px){
  .import-preview .data-table{min-width:620px}
  .import-preview .data-table td{white-space:normal;overflow-wrap:anywhere;max-width:300px}
  .module-import-panel .form-actions{padding:16px}
  .quick-actions{grid-template-columns:minmax(0,1fr)}
}
@media screen and (max-width:359px){
  main{padding-left:12px;padding-right:12px}
  .topbar{padding-left:10px;padding-right:10px;gap:6px}
  #staff-task-alert{max-width:62px;padding:8px 5px}
  .topbar-actions{gap:5px}
  .stats-grid{grid-template-columns:minmax(0,1fr)}
  .academic-card{padding:12px}
}
@media print{.mobile-menu-close,.mobile-nav-shade{display:none!important}.sidebar[inert]{display:none}}
