/* Shared screen layouts across every existing page; printed official forms keep their own rules. */
@media screen {
 *,*::before,*::after{box-sizing:border-box}
 body{min-width:0}
 input,select,textarea,button{max-width:100%;min-width:0}
 button,a{overflow-wrap:anywhere}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;color:inherit}
 .page,.layout,.sheet,.print-page,.records-panel,.brand-inner,.business-nav,.survey-tabs,.topbar,.business-bar{min-width:0}
 .page{width:calc(100% - 48px);margin:24px auto;padding:clamp(18px,2.2vw,32px)}
 .page h1,.page h2,.page h3,.page p,.notice,.action-list,.project-detail,.brand-inner{overflow-wrap:anywhere}
 .business-nav,.survey-tabs{gap:10px 18px;align-items:center}
 .business-nav a,.survey-tabs a{min-height:40px;display:inline-flex;align-items:center;white-space:normal}
 .business-nav span{min-width:0;overflow-wrap:anywhere}
 .business-bar{align-items:end;gap:12px}
 .business-bar label{flex:1 1 220px;min-width:0}
 .business-bar select{width:100%;min-width:0;min-height:42px}
 .cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
 .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px;align-items:end}
 .row>*{min-width:0;margin:0}
 .row>button{align-self:end;width:auto;min-height:44px}
 .field{min-width:0}
 .field input,.field select,.field textarea{margin-top:6px;min-height:42px}
 .field textarea{min-height:96px;resize:vertical}
 fieldset{min-width:0;border:1px solid var(--line,#d6dfe7);border-radius:8px;padding:16px;margin:18px 0}
 #projectChecks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px 18px}
 #projectChecks label{display:flex;gap:8px;align-items:start;overflow-wrap:anywhere}
 #projectChecks br{display:none}
 #projectChecks input{flex:none;margin-top:6px}
 .decision-row{padding:14px;border:1px solid var(--line,#d6dfe7);border-radius:8px;margin:12px 0;align-items:start}
 .decision-row input,.decision-row select{width:100%;min-height:42px;padding:9px;border:1px solid #bccbd7;border-radius:5px;background:#fff}
 .decision-row button{align-self:start}
 .topbar{gap:18px;flex-wrap:wrap}
 .topbar>div{min-width:0}
 .top-actions{gap:10px;flex-wrap:wrap}
 .form-grid label{min-width:0;align-self:start}
 .form-grid input,.form-grid select{display:block;width:100%;min-height:40px;margin-top:5px;padding:8px 10px;border:1px solid #cbd3da;border-radius:4px;background:#fff;line-height:1.5}
 .form-grid{align-items:start}
 .form-actions{gap:12px;flex-wrap:wrap}
 .form-actions span{min-width:0;overflow-wrap:anywhere}
 .section-title>div{min-width:0}
 .section-tag{flex:none}
 .scroll,.table-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
 .scroll table td,.scroll table th{overflow-wrap:anywhere;vertical-align:top}
 #surveyItems table{min-width:1200px;table-layout:fixed}
 #surveyItems input,#surveyItems select,#surveyItems textarea{display:block;width:100%;margin:6px 0;padding:8px;border:1px solid #cbd3da;border-radius:5px;min-height:40px}
 #surveyItems input[type=file]{font-size:12px}
 #surveyItems textarea{min-height:90px;resize:vertical}
 #surveyItems button{min-height:40px;white-space:normal}
 #surveyItems small{display:block;overflow-wrap:anywhere}
 .hazard-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;align-items:end;margin:14px 0}
 .hazard-controls label{display:block;font-size:14px;min-width:0}
 .hazard-controls input,.hazard-controls select{display:block;width:100%;min-height:42px;margin-top:6px;padding:9px;border:1px solid #bccbd7;border-radius:5px;background:#fff}
 .hazard-controls button{min-height:42px}
 .action-list>div{overflow-wrap:anywhere}
 .action-list button{max-width:100%;white-space:normal;text-align:left}
 .project-heading{flex-wrap:wrap}
}
@media screen and (min-width:921px) and (max-width:1200px){
 .layout{grid-template-columns:230px minmax(0,1fr);gap:14px;padding:0 16px}
 .sheet{padding:22px 18px}
 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:800px){
 #surveyItems table,#surveyItems tbody{display:block;min-width:0;width:100%}
 #surveyItems thead{display:none}
 #surveyItems tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid #cbd3da;background:#f8fafc;border-radius:10px;padding:14px;margin:14px 0}
 #surveyItems td{display:block;border:0;padding:0;min-width:0}
 #surveyItems td::before{content:attr(data-label);display:block;font-weight:600;margin-bottom:4px;color:#40586c}
 #surveyItems td:nth-child(1),#surveyItems td:nth-child(3),#surveyItems td:nth-child(5),#surveyItems td:nth-child(6){grid-column:1/-1}
 #result>.scroll:has(table)::before,.project-directory .scroll:has(table)::before{content:'左右滑动查看完整表格';display:block;position:sticky;left:0;color:#526d80;font-size:12px;padding:8px 0}
 .project-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:560px){
 .page{width:calc(100% - 24px);margin:16px auto;padding:18px}
 .layout{padding:0 12px;gap:14px;margin:16px auto}
 .form-grid,.readonly-record .form-grid{grid-template-columns:minmax(0,1fr);gap:12px}
 .form-grid .span2{grid-column:auto}
 .form-grid label{font-size:13px}
 .form-grid input,.form-grid select{min-height:44px}
 .row{grid-template-columns:minmax(0,1fr)}
 #surveyItems tr{grid-template-columns:minmax(0,1fr)}
 .business-nav,.survey-tabs{padding:12px 16px;gap:6px 12px}
 .business-nav span{width:100%;margin:4px 0}
 .business-bar{margin:12px;gap:10px}
 .topbar{padding:16px;align-items:start;flex-direction:column}
 .top-actions{flex-direction:row;justify-content:flex-start;width:100%}
 .top-actions button{flex:1 1 130px;min-height:44px}
 .form-actions>button{width:100%}
 .project-filters,.hazard-controls{grid-template-columns:minmax(0,1fr)}
 .project-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .project-tabs a{justify-content:center;text-align:center}
 .survey-tabs a{flex:1 1 130px;justify-content:center}
 .action-list button{min-height:44px}
 .signature-grid{grid-template-columns:1fr}
}
@media screen and (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}


/* Compact text boxes: font-height baseline, content-sized rather than fixed two-row height. */
@media screen {
 .field textarea,.wide-label textarea,.check-table td textarea,#surveyItems textarea{min-height:0;overflow-y:hidden;resize:vertical;line-height:1.6}
 .check-table td textarea{padding:6px 8px;min-width:0;width:100%;height:auto}
}
@media screen and (min-width:801px){
 .check-table,.patrol-page-part .check-table{min-width:1480px}
 .check-table td:nth-child(3){min-width:360px;width:380px}
}

/* REQ-128: shared centered shell; screen only, preserving A4 report geometry. */
@media screen {
 :root{--site-shell-max:1680px;--site-shell-gutter:24px;--site-shell-width:min(var(--site-shell-max),calc(100% - var(--site-shell-gutter)*2))}
 .business-nav,.current-project-context,.module-tools,.topbar,.brand-inner,.page,.layout,.business-bar{width:var(--site-shell-width);max-width:var(--site-shell-max);margin-left:auto;margin-right:auto}
 .business-nav{padding:12px 24px;border-radius:0 0 10px 10px}
 .current-project-context{padding:12px 24px;line-height:1.65}
 .module-tools{padding:12px 24px}
 .topbar{padding:20px 24px}
 .brand-inner{padding:24px}
 .layout{padding:0}
 .business-bar{padding:12px 24px}
 .page{margin-top:24px;margin-bottom:24px}
}
@media screen and (max-width:560px){
 :root{--site-shell-gutter:12px}
 .business-nav,.current-project-context,.module-tools,.topbar,.business-bar{padding:12px 16px}
 .brand-inner{padding:18px 16px}
 .page{margin-top:16px;margin-bottom:16px}
}

/* REQ-139: real-time entry has no duplicate history sidebar. */
@media screen{.layout.daily-entry-layout{grid-template-columns:minmax(0,1fr)}}
