/* Mobile mode shares the same fields and handlers as the spreadsheet: switching
   layouts never rebuilds a row or discards an unsaved edit. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a.btn,input[type=checkbox],select{touch-action:manipulation}
dialog{max-height:90vh;max-height:min(90dvh,var(--dialog-available-height,90dvh));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media(pointer:coarse){input:not([type=checkbox]):not([type=radio]),textarea,select,.form-control,.form-select,.cell-input,.search-box input{font-size:16px!important}button,.btn,.nav-item{min-height:44px}.photo-button,.add-photo,.detail-btn,.sidebar-toggle{min-width:44px;min-height:44px}.table-responsive{-webkit-overflow-scrolling:touch}}
.mobile-mode{font-size:14px}
.mobile-mode .app-shell{display:block}
.mobile-mode .main-wrap{margin-left:0}
.mobile-mode .sidebar{position:static;width:auto;flex-direction:row;align-items:center;gap:12px;padding:10px max(14px,env(safe-area-inset-left));flex-wrap:wrap}
.mobile-mode .sidebar .brand{margin:0;font-size:24px}
.mobile-mode .sidebar-label{display:none}
.mobile-mode .sidebar nav{display:flex;flex-wrap:wrap;gap:5px}
.mobile-mode .sidebar-bottom{display:flex;align-items:center;gap:10px;margin:0 0 0 auto}
.mobile-mode .sidebar .user-box{display:flex;border:0;padding:0;margin:0}
.mobile-mode .user-box>div{display:none}
.mobile-mode.sidebar-collapsed .sidebar,.mobile-mode.wall-mode .sidebar{display:none}
.mobile-mode #workspace{max-width:1600px;padding:16px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.mobile-mode .topbar{height:auto;min-height:56px;padding:6px max(16px,env(safe-area-inset-left));gap:12px}
.mobile-mode .topbar-left{gap:8px;min-width:0}
.mobile-mode .top-date{display:none}
.mobile-mode .breadcrumb-label{font-size:12px}
.mobile-mode .connection{font-size:11px;text-align:right}
.mobile-mode .page-heading{margin-bottom:14px;gap:14px;flex-wrap:wrap;align-items:center}
.mobile-mode .page-heading h1{font-size:27px;margin:4px 0}
.mobile-mode .page-heading p{font-size:12px;max-width:50ch}
.mobile-mode:not(.wall-mode) .page-heading p{display:none}
.mobile-mode .page-heading .eyebrow{display:none}
.mobile-mode .heading-actions{gap:8px;justify-content:flex-start;flex-wrap:wrap;align-items:center}
.mobile-mode button,.mobile-mode .btn,.mobile-mode .nav-item{min-height:44px}
.mobile-mode .btn{font-size:13px;padding:10px 12px}
.mobile-mode .sidebar-toggle,.mobile-mode .detail-btn,.mobile-mode .add-photo,.mobile-mode .photo-button{min-width:44px;min-height:44px}
.mobile-mode .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}
.mobile-mode .stat-card{padding:11px 12px;min-width:0}
.mobile-mode .stat-card>span{font-size:11px;display:block;min-height:28px;line-height:1.3}
.mobile-mode .stat-card>div{margin:3px 0}
.mobile-mode .stat-card strong{font-size:25px}
.mobile-mode .stat-card .total-downtime{font-size:24px!important}
.mobile-mode .stat-mark{display:none}
.mobile-mode .stat-card>small{display:none}
.mobile-mode .downtime-card>small{display:block;font-size:10px;line-height:1.35}
.mobile-mode .board-toolbar{padding:10px;gap:8px}
.mobile-mode .filter-tabs{width:100%;gap:5px}
.mobile-mode .filter-tab{font-size:13px;padding:8px 12px}
.mobile-mode .toolbar-right{display:flex;align-items:center;gap:8px;width:100%;margin:0;flex-wrap:wrap}
.mobile-mode .toolbar-right .search-box{flex:1 1 220px;min-width:0;min-height:44px}
.mobile-mode .search-box input{font-size:16px;min-width:0;width:100%;min-height:44px}
.mobile-mode .shift-select{font-size:11px;gap:6px}
.mobile-mode .form-select,.mobile-mode .form-control,.mobile-mode .cell-input{font-size:16px;min-height:44px;min-width:0}
.mobile-mode .toolbar-right .form-select,.mobile-mode .date-select input{width:145px;max-width:100%;font-size:16px;min-width:0;min-height:44px}
.mobile-mode .toolbar-right>#department-filter{flex:0 1 150px}
.mobile-mode .sheet-hint{padding:9px 12px;gap:10px;flex-wrap:wrap;font-size:11px}
.mobile-mode .board-panel>.table-responsive{overflow:visible;max-height:none;min-height:0}
.mobile-mode .defect-table{display:block;width:100%;font-size:14px}
.mobile-mode .defect-table thead{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mobile-mode #defect-rows{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;background:#f5f6f2;padding:12px}
.mobile-mode #defect-rows:empty{display:none}
.mobile-mode .defect-table tr{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 10px;padding:12px;background:#fff;border:1px solid #dde5d7;border-radius:9px;min-width:0}
.mobile-mode .defect-table td{display:block;min-width:0;padding:0;border:0!important;width:auto}
.mobile-mode .defect-table td::before{content:attr(data-label);display:block;font-size:10px;color:#7c8873;font-weight:600;letter-spacing:.2px;margin-bottom:4px}
.mobile-mode .record-cell{grid-column:1/3;grid-row:1}
.mobile-mode .team-cell{grid-column:3/5;grid-row:1}
.mobile-mode .status-cell{grid-column:5/7;grid-row:1;text-align:right}
.mobile-mode .record-cell::before,.mobile-mode .team-cell::before,.mobile-mode .status-cell::before,.mobile-mode .actions-cell::before{display:none!important}
.mobile-mode .record-id{margin-bottom:2px;font-size:12px}
.mobile-mode .cell-date{white-space:normal;font-size:10px;line-height:1.4}
.mobile-mode .team-name{font-size:12px;white-space:normal}
.mobile-mode .team-route{display:none}
.mobile-mode .shift-badge{font-size:10px;margin-top:3px}
.mobile-mode .badge-status{font-size:11px;max-width:100%;white-space:normal}
.mobile-mode .status-by{font-size:10px;max-width:none;line-height:1.3;margin-top:3px}
.mobile-mode .sequence-cell{grid-column:span 2}
.mobile-mode .part-cell{grid-column:span 3}
.mobile-mode .side-column{grid-column:span 1}
.mobile-mode.no-side-column .part-cell{grid-column:span 4}
.mobile-mode .discrepancy-cell{grid-column:1/-1}
.mobile-mode .cell-input{padding:7px 9px;margin:0;width:100%;max-width:100%;background:#fafbf7;border:1px solid #dce4d4;border-radius:5px;line-height:1.4}
.mobile-mode .cell-input.unsaved{background:#fff2db;border-color:#d4a965}
.mobile-mode .side-input{padding-left:6px;padding-right:2px;min-width:0}
.mobile-mode .issue-input{min-height:58px;resize:vertical}
.mobile-mode .read-cell{font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.mobile-mode .kind-pill{font-size:10px;margin-top:4px}
.mobile-mode .downtime-cell{grid-column:span 4}
.mobile-mode.photos-hidden .downtime-cell{grid-column:1/-1}
.mobile-mode .photo-column{grid-column:span 2;align-self:start}
.mobile-mode .timer{display:inline-block;font-size:17px}
.mobile-mode .timer-meta{font-size:10px;white-space:normal}
.mobile-mode .timer-toggle{font-size:12px;padding:8px 7px;margin-top:0}
.mobile-mode .defect-table .downtime-cell{display:grid;grid-template-columns:minmax(0,1fr) auto auto;column-gap:4px;align-items:center}
.mobile-mode .downtime-cell::before{grid-column:1;grid-row:1}
.mobile-mode .downtime-cell .timer{grid-column:1;grid-row:2}
.mobile-mode .downtime-cell .timer-meta{grid-column:1;grid-row:3}
.mobile-mode .downtime-cell .timer-toggle{grid-column:2;grid-row:1/4}
.mobile-mode .downtime-cell .timer-toggle.ms-2{grid-column:3;margin-left:0!important}
.mobile-mode .photo-thumb{width:44px;height:44px}
.mobile-mode .photo-stack{flex-wrap:wrap}
.mobile-mode .actions-cell{grid-column:1/-1;display:flex!important;align-items:center;flex-wrap:wrap;gap:6px;border-top:1px solid #edf0e9!important;padding-top:8px!important}
.mobile-mode .action-btn{font-size:12px;padding:8px 12px}
.mobile-mode .entry-control{font-size:12px;padding:8px 12px;border:1px solid #e0e6da;border-radius:5px}
.mobile-mode .actions-cell>.detail-btn{margin-left:auto}
.mobile-mode .board-footer{padding:10px 12px;flex-wrap:wrap;font-size:10px}
.mobile-mode .board-footer>span{max-width:none;flex:1 1 200px}
.mobile-mode .board-footer .btn{font-size:12px}
.mobile-mode .empty-state{padding:28px 14px}
.mobile-mode .page-footer{margin-top:14px}
.mobile-mode.photos-hidden .photo-column,.mobile-mode.no-side-column .side-column{display:none!important}
.mobile-mode dialog{padding:18px;width:min(560px,calc(100% - 24px));max-height:calc(100vh - 24px);max-height:min(calc(100dvh - 24px),var(--dialog-available-height,calc(100dvh - 24px)));margin:auto;scroll-padding-bottom:24px}
.mobile-mode .dialog-heading{margin-bottom:14px}
.mobile-mode dialog{top:var(--dialog-top,12px);bottom:auto;margin-top:0}
.mobile-mode .form-label{margin-bottom:12px;font-size:13px}
.mobile-mode .form-label input,.mobile-mode .form-label textarea,.mobile-mode .form-label select{margin-top:5px;max-width:100%;box-sizing:border-box}
.mobile-mode input[type=date],.mobile-mode input[type=datetime-local]{min-width:0;-webkit-appearance:none;appearance:none}
.mobile-mode .photo-dialog{width:min(1000px,calc(100% - 24px))}
.mobile-mode .admin-columns{grid-template-columns:minmax(0,1fr)}
.mobile-mode .interval-row{flex-wrap:wrap}
@media(min-width:1100px){.mobile-mode #defect-rows{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.mobile-mode .downtime-cell,.mobile-mode .photo-column{grid-column:1/-1}}
@media(max-width:650px){.mobile-mode .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-mode .stat-card>span{min-height:0}.mobile-mode .page-heading{align-items:flex-start;flex-direction:column}.mobile-mode .heading-actions{width:100%}.mobile-mode .heading-actions .btn{flex:1 1 auto}.mobile-mode .toolbar-right .search-box{flex-basis:100%}.mobile-mode .toolbar-right .shift-select{flex:1 1 45%;flex-direction:column;align-items:flex-start}.mobile-mode .toolbar-right .shift-select input,.mobile-mode .toolbar-right .shift-select select{width:100%}.mobile-mode #workspace{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.mobile-mode .topbar{padding-inline:10px}.mobile-mode .breadcrumb-label{font-size:11px}.mobile-mode .breadcrumb-label>span{margin:0 5px}.mobile-mode .connection{font-size:10px}.mobile-mode #defect-rows{padding:8px}.mobile-mode .defect-table tr{padding:10px;gap:8px}.mobile-mode .record-cell{grid-column:1/4}.mobile-mode .team-cell{grid-column:1/4;grid-row:2}.mobile-mode .status-cell{grid-column:4/7;grid-row:1/3}.mobile-mode .sequence-cell{grid-column:span 2}.mobile-mode .part-cell{grid-column:span 4}.mobile-mode .side-column{grid-column:span 2}.mobile-mode .discrepancy-cell{grid-column:1/-1}.mobile-mode .board-footer>span{display:none}.mobile-mode .board-footer{justify-content:center}.mobile-mode .form-label.col-6{width:100%}}
