*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg);font:15px/1.55 Lato,Arial,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit}button{min-height:44px;cursor:pointer;border:1px solid transparent;border-radius:7px;padding:10px 16px;font-weight:600}button:disabled{opacity:1;color:var(--csp-muted);background:var(--csp-page-bg);border:1px dashed currentColor;cursor:not-allowed}input,select,textarea{min-height:44px;min-width:0;max-width:100%;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--white)}textarea{min-height:100px;resize:vertical}label{display:block;font-weight:600;font-size:13px;margin:17px 0}label input,label select,label textarea{display:block;margin-top:7px;font-weight:400}select[multiple]{min-height:105px}.hint{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:5px}h1,h2,h3,h4,h5,h6{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1px;line-height:1.18;margin-bottom:10px}h2{font-size:22px;letter-spacing:-.5px}h3{font-size:16px}p{margin-bottom:12px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:750;color:var(--csp-brand-blue);margin-bottom:12px}.primary{background:var(--csp-brand-blue);color:var(--white)}.secondary{background:var(--white);border-color:var(--line)}.quiet{background:transparent;color:var(--muted)}.error{color:var(--red)}:focus-visible{outline:3px solid var(--csp-focus-ring);outline-offset:3px}[hidden]{display:none!important}.brand{text-decoration:none;display:inline-flex;flex-direction:column;align-items:flex-start;min-height:44px;line-height:1.15;color:var(--white)}.brand-name{font-family:"Barlow Condensed",Arial,sans-serif;font-size:30px;font-weight:600}.brand-subline{font-size:11px;color:var(--csp-sidebar-subline);margin-top:3px}.skip{position:absolute;left:15px;top:-100px;padding:10px;background:var(--white);z-index:100}.skip:focus{top:10px}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr}.login-intro{background:var(--csp-sidebar);color:var(--white);padding:clamp(35px,8vw,130px);display:flex;flex-direction:column;justify-content:center}.login-intro .brand{margin-bottom:95px}.login-intro .eyebrow{color:var(--csp-sidebar-subline)}.login-intro h1{font-size:clamp(38px,4vw,62px);letter-spacing:-2px}.login-intro>p:not(.eyebrow){color:var(--csp-sidebar-text);max-width:340px}.intro-rule{width:45px;height:3px;background:var(--csp-sidebar-subline);margin:40px 0 22px}.login-card{max-width:450px;width:100%;padding:45px;align-self:center;justify-self:center}.login-card h2{font-size:30px}.login-card .primary{width:100%;margin-top:12px;display:flex;justify-content:space-between}.login-card .small{margin-top:28px}.workspace{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:var(--csp-sidebar);color:var(--white);padding:24px 12px;display:flex;flex-direction:column;overflow-y:auto}.sidebar .brand{font-size:25px;margin:0 8px 45px}.nav-label{font-size:11px;letter-spacing:1.8px;color:var(--csp-sidebar-label);margin-left:12px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-button{background:none;color:var(--csp-sidebar-text);text-align:left;font-size:15px;padding:12px 14px;font-weight:500}.nav-button[aria-current="page"]{background:var(--csp-sidebar-active);color:var(--white);font-weight:700}.sidebar-bottom{margin-top:auto;font-size:12px;color:var(--csp-sidebar-text);padding:25px 7px 0}.sidebar-bottom p{color:var(--csp-sidebar-label);font-size:12px;margin-top:8px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--csp-status-green-bg);border-radius:50%;margin-right:5px}.page{margin-left:232px;flex:1;min-width:0}.topbar{background:var(--white);border-bottom:1px solid var(--line);padding:17px 38px;display:flex;justify-content:space-between;align-items:center}.topbar .eyebrow{font-size:11px;margin:0}.topbar p{margin:0;font-size:12px;color:var(--muted)}main{max-width:1440px;padding:38px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:23px}.page-heading .eyebrow{margin-bottom:9px}.page-heading .muted{font-size:13px;max-width:650px}.page-heading h1{font-size:40px}.page-heading button{font-size:12px;margin-top:18px}#notice:not(:empty){padding:12px 16px;border-radius:6px;background:var(--csp-status-green-bg);color:var(--csp-status-green);font-size:14px;margin-bottom:20px}#notice.error{background:var(--csp-status-red-bg);color:var(--red)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{background:var(--white);border:1px solid var(--csp-card-border);border-radius:14px;padding:22px}.stat strong{display:block;font-family:"Barlow Condensed",Arial,sans-serif;color:var(--csp-brand-blue);font-size:40px;font-weight:650;letter-spacing:-1px}.stat p{font-size:11px;color:var(--muted);margin:0}.stat .stat-label{font-size:12px;color:var(--text);margin-bottom:12px}.panel{background:var(--white);border:1px solid var(--csp-card-border);border-radius:14px;margin-bottom:22px;overflow:hidden}.panel-head{padding:21px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-head h2{font-size:22px;margin:0}.panel-body{padding:22px 24px}.panel-body>p{font-size:13px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{font-size:12px;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;font-weight:650;background:var(--bg)}th,td{padding:15px 22px;border-bottom:1px solid var(--csp-card-border);vertical-align:top;min-width:95px}td{max-width:320px;word-break:break-word}tbody tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:4px 9px;border-radius:6px;background:var(--csp-status-blue-bg);color:var(--csp-status-blue);font-size:13px;white-space:normal}.badge.good{background:var(--csp-status-green-bg);color:var(--csp-status-green)}.badge.warn{background:var(--csp-status-amber-bg);color:var(--amber)}.badge.bad{background:var(--csp-status-red-bg);color:var(--red)}.empty{padding:38px 24px;text-align:center;color:var(--muted);font-size:13px}.empty strong{color:var(--text);display:block;margin-bottom:5px}.split{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:22px;align-items:start}.editor{padding:0 24px 24px}.editor .primary{margin-top:6px}.form-result{color:var(--csp-status-green);white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;padding:14px;background:var(--csp-status-green-bg);border-radius:6px;margin-top:14px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}.tab{background:var(--white);border:1px solid var(--line);font-size:12px;min-height:44px}.tab[aria-pressed="true"]{background:var(--csp-sidebar);color:var(--white)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input{max-width:300px}.banner{padding:16px 20px;border:1px solid var(--csp-line);background:var(--csp-status-blue-bg);border-radius:8px;margin-bottom:22px;font-size:12px;color:var(--csp-status-blue)}.code{font-family:ui-monospace,monospace;font-size:11px}.detail{padding:12px;margin-top:8px;background:var(--bg);white-space:pre-wrap}.progress{display:flex;align-items:center;gap:8px}.progress progress{width:60px;accent-color:var(--csp-brand-blue)}footer{padding:22px 38px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}footer span{margin-left:16px}.readonly{padding:12px 18px;border:1px dashed var(--line);color:var(--muted);font-size:12px}.row-actions{white-space:nowrap}.row-actions button{font-size:11px;padding:5px 8px}details summary{cursor:pointer;color:var(--csp-brand-blue);font-size:11px}.form-note{font-size:14px;color:var(--text);margin:14px 0 0}.zone,.site-edit{white-space:nowrap}.site-edit{padding:6px 12px}.site-editor .editor .secondary{margin:6px 0 0 8px}
@media(min-width:1500px){main{padding-top:50px}}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.sidebar{width:205px;padding:28px 15px}.page{margin-left:205px}main{padding:28px}.topbar{padding:17px 28px}}@media(max-width:720px){.login-screen{grid-template-columns:1fr}.login-intro{padding:30px}.login-intro .brand{margin-bottom:35px}.login-intro h1{font-size:37px}.intro-rule,.login-intro>.small{display:none}.login-card{padding:35px 25px}.workspace{display:block}.sidebar{position:static;width:100%;padding:17px 20px}.sidebar .brand{margin:0 0 15px;font-size:23px}.nav-button{white-space:nowrap;padding:9px 11px;font-size:12px}.nav-label,.sidebar-bottom{display:none}.page{margin-left:0}.topbar{padding:13px 20px}main{padding:24px 16px}.page-heading h1{font-size:27px}.page-heading .muted{font-size:12px}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:27px}.panel-head,.panel-body{padding:17px}.editor{padding:0 17px 20px}th,td{padding:12px 15px}.page-heading{gap:8px}.page-heading button{padding:8px 11px}footer{padding:18px}footer span{display:block;margin:7px 0 0}.tabs{gap:5px}.tab{font-size:11px;padding:8px 10px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,opacity .15s}.panel{animation:appear .15s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}}
.evidence-row td{max-width:none;padding:2px 22px 20px;background:var(--bg)}.evidence-list{position:sticky;left:22px;display:grid;gap:12px;max-width:min(760px,calc(100vw - 72px))}.evidence-item{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.evidence-head{margin:0 0 6px;font-size:12px}.evidence-note{margin:0 0 6px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.evidence-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.evidence-thumb{width:96px;height:96px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--white);overflow:hidden;cursor:zoom-in}.evidence-thumb img{display:block;width:100%;height:100%;object-fit:cover}.evidence-awaiting{display:inline-flex;flex-direction:column;justify-content:center;gap:6px;min-width:96px;height:96px;padding:8px 10px;border:1px dashed var(--muted);border-radius:6px}.photo-dialog{max-width:min(92vw,1100px);max-height:92vh;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--text)}.photo-dialog::backdrop{background:var(--scrim)}.photo-dialog p{margin:10px 0 0}.photo-dialog img{display:block;max-width:100%;max-height:calc(92vh - 110px);margin-top:10px}

/* == reports (step 4a): colours only through tokens, csp-style-guide == */

.reports-page table{font-size:14px}.reports-page th,.reports-page .badge,.reports-page .tab,.reports-page .banner,.reports-page summary{font-size:14px}
.reports-page th,.reports-page td{min-width:140px}.reports-page td button{white-space:nowrap}.report-filters label{max-width:100%}
.report-filters{align-items:flex-end}.report-filters label{margin:0;min-width:150px;font-size:14px}
.report-doc{background:var(--white);border:1px solid var(--csp-report-line);border-radius:9px;padding:24px;color:var(--text);margin-bottom:22px}
.report-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:3px solid var(--csp-report-blue);padding-bottom:12px;margin-bottom:14px}
.report-head h2{margin:0;color:var(--csp-report-blue);font-size:22px}
.report-doc section{border-top:1px solid var(--csp-report-line);padding-top:16px;margin-top:18px}
.report-doc h3{color:var(--csp-report-blue);font-size:16px}
.report-doc dl,.answer-list{display:grid;grid-template-columns:minmax(160px,1fr) 2fr;gap:8px 18px;margin:0}
.report-doc dt,.answer-list dt{font-weight:600;font-size:14px}
.report-doc dd,.answer-list dd{margin:0;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap}
.explanation{margin-top:8px;padding:10px 12px;border-left:3px solid var(--csp-report-blue);background:var(--bg)}
.note{font-size:14px;color:var(--muted)}
.reason-form{display:grid;gap:8px;min-width:220px}.reason-form label{margin:0;font-size:14px}
@media (max-width:720px){.report-doc{padding:16px}.report-doc dl,.answer-list{grid-template-columns:1fr}.report-doc dt,.answer-list dt{margin-top:8px}.report-filters label{min-width:100%}}
/* == end reports == */

/* == forms (step 4b): colours only through tokens, csp-style-guide == */
.report-form{max-width:760px;display:grid;gap:18px}
.report-form fieldset{border:1px solid var(--csp-report-line);border-radius:9px;padding:16px 18px;margin:0;background:var(--white)}
.report-form legend{font-weight:700;color:var(--csp-report-blue);padding:0 6px;font-size:16px}
.form-field{margin:14px 0}
.field-label{display:block;font-weight:600;font-size:15px}
.required-tag{margin-left:8px;font-size:14px;font-weight:600;color:var(--red)}
.report-form input,.report-form select,.report-form textarea{font-size:16px}
.choice-group{border:0;padding:0;margin:0}
.choice-row{display:flex;flex-wrap:wrap;gap:8px}
.choice-row label{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:8px 14px;border:1px solid var(--csp-report-line);border-radius:7px;font-weight:400;font-size:16px;cursor:pointer}
.choice-row input{width:auto;margin:0}
.field-error{color:var(--red);font-size:14px;margin:6px 0 0}
.form-problems{border:1px solid var(--red);border-radius:8px;padding:12px 16px;background:var(--white)}
.form-problems ul{margin:8px 0 0;padding-left:20px}
.counter{font-size:14px;color:var(--muted);margin:4px 0 0}
.signature-pad{display:block;width:100%;max-width:600px;height:auto;aspect-ratio:3/1;border:1px solid var(--csp-report-line);border-radius:6px;background:var(--white);touch-action:none}
.photo-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.photo-strip figure{margin:0;display:grid;gap:4px;justify-items:start}
.photo-strip img{width:96px;height:96px;object-fit:cover;border:1px solid var(--csp-report-line);border-radius:6px}
.photo-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.photo-button{display:inline-flex;align-items:center;min-height:44px;margin:8px 0 0;padding:10px 16px;border:1px solid var(--line);border-radius:7px;font-size:15px;font-weight:600;cursor:pointer}
.photo-input:focus-visible+.photo-button{outline:3px solid var(--csp-brand-blue);outline-offset:3px}
.report-form>.form-actions{position:sticky;bottom:0}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0;background:var(--bg);border-top:1px solid var(--csp-report-line)}
.explain-box{margin-top:12px;padding:12px 14px;border-left:3px solid var(--csp-report-blue);background:var(--bg)}
@media (max-width:720px){.report-form fieldset{padding:12px}.form-actions button{flex:1 1 100%}}
.filing-page select{font-size:16px}.filing-page label,.filing-page .hint{font-size:14px}
.page:has(.filing-page) .page-heading .muted{font-size:14px}
.draft-card{padding:18px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.draft-card h3{margin:0 0 8px;color:var(--csp-report-blue);font-size:16px}
.draft-card .row-actions{display:flex;flex-wrap:wrap;gap:8px;white-space:normal}
.draft-card .row-actions button{font-size:14px;min-height:44px;white-space:normal;max-width:100%;text-align:left}
.form-actions input,.form-actions textarea{font-size:16px}.form-actions label{font-size:14px}
/* == end forms == */


/* == settings (step 4d): colours only through tokens, csp-style-guide == */
.settings-form{max-width:760px}
.settings-form label,.alert-add label,.assign-box label{font-size:14px}
.settings-form input[type=checkbox]{display:inline-block;width:auto;min-width:22px;min-height:22px;margin:0 10px 0 0;vertical-align:middle}
.settings-form input[type=number]{max-width:160px}
.settings-form button,.alert-add button,.assign-box button,.panel-body td button{min-height:44px}
.alert-add{align-items:flex-end}
.alert-add label{margin:8px 0}
.assign-box{border-top:1px solid var(--csp-report-line);padding-top:16px;margin-top:18px}
.assign-box select{max-width:320px}
@media(max-width:720px){.settings-form input,.settings-form select,.alert-add select,.assign-box select{font-size:16px}.alert-add{align-items:stretch}}
.form-settings-page :is(label,.hint,table,th,td,.badge,.empty,.banner,.note,button){font-size:14px}
.settings-form label:has(input[type=checkbox]){min-height:44px}
.report-alerts td button{white-space:nowrap}
@media(max-width:720px){.form-settings-page input,.form-settings-page select{font-size:16px}}
/* == end settings == */

/* == lifecycle QA: shared CSP screen and report tokens == */
.page:has(:is(.form-settings-page,.reports-page)) :is(h1,h2,h3){font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif}
.page:has(:is(.form-settings-page,.reports-page)) :is(.page-heading .muted,#notice,.topbar p){font-size:14px}
:is(.form-settings-page,.reports-page) :is(button,input:not([type=checkbox]),select){min-height:44px}
:is(.form-settings-page,.reports-page) :is(.note,.hint,.empty,button){font-size:14px}
:is(.form-settings-page,.reports-page) :is(input,select){border-color:var(--line);color:var(--text);background:var(--white)}
:is(.form-settings-page,.reports-page) :is(th,td){border-color:var(--line)}
:is(.form-settings-page,.reports-page) th{background:var(--bg)}
:is(.form-settings-page,.reports-page) :focus-visible{outline-color:var(--csp-brand-blue)}
@media(max-width:720px){
 :is(.form-settings-page,.reports-page) :is(input:not([type=checkbox]),select){font-size:16px}
 :is(.form-settings-page,.reports-page) .table-wrap{overflow:visible}
 :is(.form-settings-page,.reports-page) table,:is(.form-settings-page,.reports-page) tbody,:is(.form-settings-page,.reports-page) tr,:is(.form-settings-page,.reports-page) td{display:block;width:100%;max-width:none;min-width:0}
 :is(.form-settings-page,.reports-page) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 :is(.form-settings-page,.reports-page) tr{border-bottom:1px solid var(--line);padding:8px 0}
 :is(.form-settings-page,.reports-page) td{border:0;padding:8px 14px}
 :is(.form-settings-page,.reports-page) td::before{content:attr(data-label);display:block;font-weight:600;color:var(--muted);margin-bottom:3px}
}
.reports-page th,.reports-page td{min-width:0;padding:12px 8px}
.reports-page td button{white-space:normal}
.settings-form input[type=checkbox]{margin-left:8px;accent-color:var(--csp-brand-blue)}
.page:has(:is(.form-settings-page,.reports-page)) #signout{flex-shrink:0;white-space:nowrap}
/* == end lifecycle QA == */
/* Phone permission controls retain a 44px hit height at every viewport. */
.grants-page :is(input,select,textarea,button){min-height:44px}

/* == print (step 5): the in-app print view and email dialog, csp-style-guide document tokens == */
:root{--csp-report-gray:#939598}
@font-face{font-family:'Barlow Condensed';src:url('/assets/fonts/BarlowCondensed-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('/assets/fonts/BarlowCondensed-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Lato';src:url('/assets/fonts/Lato-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Lato';src:url('/assets/fonts/Lato-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
body.printing>*:not(#print-root){display:none!important}
#print-root{background:var(--white);min-height:100vh;padding:16px}
.print-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;max-width:8.5in;margin:0 auto 16px}
.print-status{margin:0;font-size:15px;color:var(--csp-report-ink)}
.print-doc{max-width:8.5in;margin:0 auto;padding:0.6in;background:var(--white);color:var(--csp-report-ink);font-family:'Lato',Calibri,Arial,sans-serif;font-size:15px;line-height:1.45;border:1px solid var(--csp-report-line)}
.print-brand{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:14px;letter-spacing:.08em;color:var(--csp-report-blue);border-bottom:1px solid var(--csp-report-line);padding-bottom:6px;margin:0 0 14px}
.print-doc h1{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:32px;line-height:1.1;color:var(--csp-report-blue);margin:0 0 4px}
.print-subtitle{margin:0 0 16px;font-size:16px}
.print-doc h2{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:20px;color:var(--csp-report-blue);margin:22px 0 8px;break-after:avoid;page-break-after:avoid}
.print-meta,.print-answers{display:grid;grid-template-columns:minmax(110px,30%) 1fr;margin:0}
.print-meta dt,.print-meta dd,.print-answers dt,.print-answers dd{margin:0;padding:6px 8px;border-bottom:1px solid var(--csp-report-line);break-inside:avoid;overflow-wrap:anywhere}
.print-meta dt,.print-answers dt{font-weight:700}
.print-answers dd p{margin:0 0 4px}
.print-note{font-style:italic}
.print-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.print-photo{margin:0;width:150px;break-inside:avoid}
.print-photo img{display:block;width:150px;height:auto;border:1px solid var(--csp-report-line)}
.print-photo figcaption{font-size:14px;color:var(--csp-report-gray);margin-top:2px}
.print-photo-missing{border:1px dashed var(--csp-report-line);padding:8px}
.print-table{width:100%;border-collapse:collapse;font-size:inherit}
.print-table th,.print-table td{min-width:0;overflow-wrap:anywhere}
.print-table th{background:var(--csp-report-blue);color:var(--white);font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:15px;text-align:left;padding:6px 8px}
.print-table td{border-bottom:1px solid var(--csp-report-line);padding:6px 8px;vertical-align:top}
.print-table tr{break-inside:avoid}
.print-foot{color:var(--csp-report-ink);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:24px;padding:8px 0 0;border-top:1px solid var(--csp-report-line);font-size:14px}
.entry-actions{display:flex;flex-wrap:wrap;gap:8px}
.entry-actions button{font-size:15px}
.email-dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--csp-report-line);border-radius:9px;padding:20px;color:var(--csp-report-ink)}
.email-dialog::backdrop{background:var(--csp-report-ink);opacity:.4}
.email-dialog .hint{font-size:15px}
.email-dialog input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;margin:0}
.print-toolbar .primary,.email-dialog .primary{background:var(--csp-report-blue);color:var(--white)}
.email-dialog label{min-height:44px;display:flex;gap:8px;align-items:center;font-size:15px;margin:6px 0}
.email-status{font-size:15px;margin:12px 0 0}
.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
@media screen and (max-width:600px){
  .print-table,.print-table tbody,.print-table tr,.print-table td{display:block;width:100%;max-width:none}
  .print-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .print-table td::before{content:attr(data-label);display:block;font-weight:700}
  .print-table tr{margin-bottom:14px}
}
@media screen and (max-width:600px){.print-doc{padding:16px}.print-meta,.print-answers{grid-template-columns:1fr}}
@media print{
  @page{size:letter;margin:0.6in;
    @top-left{content:"CITY SAFE PARTNERS · PATROL STANDALONE";font-family:'Barlow Condensed',Arial,sans-serif;font-size:9pt}
    @bottom-left{content:"Internal · Confidential";font-family:'Lato',Arial,sans-serif;font-size:9pt}
    @bottom-right{content:"Page " counter(page) " of " counter(pages);font-family:'Lato',Arial,sans-serif;font-size:9pt}}
  body.printing{background:none}
  #print-root{padding:0;min-height:0}
  .print-toolbar,.email-dialog{display:none!important}
  .print-doc{border:0;padding:0;max-width:none;font-size:10.5pt}
  .print-doc h1{font-size:26pt}
  .print-doc h2{font-size:15pt}
  .print-brand,.print-foot{font-size:9pt}
  .print-photo figcaption{font-size:10pt}
  .print-table th{font-size:11pt}
  thead{display:table-header-group}
  .print-photo,.print-table tr,.print-meta dt,.print-meta dd,.print-answers dt,.print-answers dd{break-inside:avoid}
  .print-doc,.print-doc *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* == end print == */

/* == tour-reports (step 5): tokens only, csp-style-guide == */
.tour-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.tour-field{display:flex;flex-direction:column;gap:4px;font-size:15px;min-width:150px}
.tour-field span{font-weight:700;color:var(--text)}
.tour-quick{display:flex;flex-wrap:wrap;gap:8px;width:100%}
.tour-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.tour-tile{background:var(--white);border:1px solid var(--csp-report-line);border-top:3px solid var(--csp-report-blue);border-radius:9px;padding:14px}
.tour-tile-label{margin:0;font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:16px;color:var(--csp-report-blue)}
.tour-tile strong{display:block;font-size:30px;line-height:1.2;color:var(--text)}
.tour-tile-detail{margin:4px 0 0;font-size:14px;color:var(--text)}
.tour-downloads{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 16px}
.tour-status{margin:0;font-size:15px}
.tour-bar{display:flex;align-items:center;gap:8px}
.tour-bar progress{width:120px;height:12px;accent-color:var(--csp-report-blue)}
.tour-definitions{margin:16px 0;font-size:15px}
.tour-definitions summary{cursor:pointer;font-weight:700;color:var(--csp-report-blue);min-height:44px;display:flex;align-items:center;gap:8px}
.tour-definitions summary::before{content:'▸'}
.tour-definitions[open] summary::before{content:'▾'}
.tour-definitions dt{font-weight:700;margin-top:8px}
.tour-definitions dd{margin:2px 0 0}
@media (max-width:600px){.tour-field{min-width:100%}.tour-bar progress{width:70px}}
.tour-reports{font-family:'Lato',Calibri,Arial,sans-serif;color:var(--text)}
.tour-reports h2{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;color:var(--csp-report-blue)}
.tour-reports table{font-size:14px}
.tour-reports table button{min-height:44px}
.tour-reports th{font-size:14px}
.tour-reports td:first-child{min-width:160px}
.tour-reports .tour-status{overflow-wrap:anywhere}
@media (max-width:600px){
.recipient-management .table-wrap{overflow:visible}
.recipient-management table,.recipient-management tbody,.recipient-management tr,.recipient-management td{display:block;width:100%;min-width:0}
.recipient-management thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.recipient-management tr{border-bottom:1px solid var(--csp-report-line);padding:12px}
.recipient-management td{border:0;padding:6px 0;overflow-wrap:anywhere}
.recipient-management td::before{content:attr(data-label);display:block;font-weight:700;margin-bottom:4px}
.recipient-management td:first-child{min-width:0}
.recipient-management td button{max-width:100%;white-space:normal}
}
/* == end tour-reports == */
/* == client-reports (task 11): setup, template editor and period review chrome, tokens only == */
.clients-page .split{margin-bottom:22px}
.template-editor{padding:22px 24px;border:1px solid var(--line);border-radius:9px;background:var(--white);margin-bottom:22px}
.section-list{display:grid;gap:10px}
.section-row{border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.section-row>label{margin:0;font-weight:650;display:flex;align-items:center;gap:8px;min-height:32px}
.section-moves{display:flex;gap:8px;margin-top:8px}
.section-moves button{font-size:11px;padding:8px 10px;min-height:44px}
.section-options,.section-columns{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;border:0;padding:0}
.section-options label,.section-columns label{margin:0;font-weight:400;font-size:12px;display:flex;align-items:center;gap:5px;min-height:44px}
.section-columns legend{font-size:11px;color:var(--muted);padding:0}
.narrative-grid{display:grid;gap:16px;margin:18px 0}
.narrative-grid textarea{min-height:80px}
.schedule-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.review-list{display:grid;gap:12px;margin:10px 0}
.review-item{border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.review-item label{margin:6px 8px 6px 0;font-weight:400;font-size:12px;display:inline-flex;align-items:center;gap:6px;min-height:32px}
.review-thumb{width:44px;height:44px;object-fit:cover;border-radius:4px;vertical-align:middle}
.review-required{margin:6px 0;padding-left:20px;font-size:12px;color:var(--red)}
.review-required:empty{display:none}
.send-controls{border-top:1px solid var(--line)}
/* == end client-reports == */
/* == client-report-preview (task 11): CSP style guide v1.1 web rendering of the approved report, tokens only == */

.client-report-preview{background:var(--white);border:1px solid var(--csp-report-line);border-radius:9px;padding:24px;color:var(--text);font-family:'Lato',Calibri,Arial,sans-serif;font-size:15px;line-height:1.45;margin:14px 0;max-width:100%;overflow-wrap:anywhere}
.client-preview-brand{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:14px;letter-spacing:.08em;color:var(--csp-report-blue);border-bottom:1px solid var(--csp-report-line);padding-bottom:6px;margin:0 0 14px}
.client-preview-head h2{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:26px;color:var(--csp-report-blue);margin:0 0 4px}
.client-preview-subtitle{margin:0 0 16px;font-size:16px;color:var(--muted)}
.client-preview-section{border-top:1px solid var(--csp-report-line);padding-top:16px;margin-top:18px}
.client-preview-section h3{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:16px;color:var(--csp-report-blue);margin:0 0 10px}
.client-preview-section table{width:100%;font-size:14px;border-collapse:collapse}
.client-preview-section th{background:var(--csp-report-blue);color:var(--white);font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-weight:600;font-size:14px;text-align:left;padding:8px 10px}
.client-preview-section td{border-bottom:1px solid var(--csp-report-line);padding:8px 10px;vertical-align:top;font-size:14px;overflow-wrap:anywhere}
.client-preview-flag-missed{background:var(--csp-report-flag-bg)}
.client-preview-flag-missed td:first-child{border-left:3px solid var(--red)}
.client-preview-wrap{white-space:pre-wrap;overflow-wrap:anywhere}
.client-preview-photos{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.client-preview-photo{margin:0;width:120px}
.client-preview-photo img{display:block;width:120px;height:120px;object-fit:cover;border:1px solid var(--csp-report-line);border-radius:4px}
.client-preview-photo figcaption{font-size:14px;color:var(--muted);margin-top:2px}
.client-preview-photo-omitted{border:1px dashed var(--csp-report-line);padding:8px;width:120px;box-sizing:border-box}
.client-preview-thumb{padding:0;border:0;background:none;cursor:zoom-in;min-width:44px;min-height:44px}
.client-preview-definitions{margin:16px 0;font-size:15px}
.client-preview-definitions summary{cursor:pointer;font-weight:700;color:var(--csp-report-blue);min-height:44px;display:flex;align-items:center}
.client-preview-definitions dt{font-weight:700;margin-top:8px}
.client-preview-definitions dd{margin:2px 0 0}
.client-preview-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:24px;padding:8px 0 0;border-top:1px solid var(--csp-report-line);font-size:14px}
/* == end client-report-preview == */

/* WP-W1: grouped navigation and nested page links. */
.nav-group{display:flex;flex-direction:column;gap:2px;margin-bottom:16px;min-width:0}
.nav-group .nav-label{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;margin:0 12px 6px;color:var(--csp-sidebar-label)}
.nav-group .nav-button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;border-radius:7px;text-decoration:none}
.review-count{display:inline-flex;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:0 6px;border-radius:12px;background:var(--csp-count-bg);color:var(--csp-count-text);font-weight:700;font-size:12px}
.section-links a,.primary[href]{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border-radius:7px;text-decoration:none}
.section-links a[aria-current=page]{background:var(--csp-sidebar);color:var(--white)}
.sidebar .brand{margin-bottom:26px}
@media(max-width:720px){
 .nav-group{margin:0}.nav-group .nav-button{font-size:13px;padding:10px;white-space:normal}
 .nav-group .nav-label{display:block;margin-left:10px}.page-heading>div{min-width:0}
 .section-links a{max-width:100%;overflow-wrap:anywhere}
}

/* WP-W4: one shell at every route; disclosure navigation on narrow screens. */
.nav-toggle{display:none;background:var(--csp-sidebar-active);color:var(--white);border-color:var(--csp-sidebar-label)}
.sidebar :focus-visible,.login-intro :focus-visible{outline-color:var(--csp-focus-on-dark)}
.nav-button:hover{background:var(--csp-sidebar-active);color:var(--white)}
.primary:hover{background:var(--csp-sidebar-active)}
.badge.info{color:var(--csp-status-blue);background:var(--csp-status-blue-bg)}
.form-result.error{color:var(--red);background:var(--csp-status-red-bg)}
.page-heading>div,.panel-head>*,.toolbar>*,.split>*,.login-screen>*{min-width:0}
.page-heading,.panel-head,.topbar{overflow-wrap:anywhere}
.panel-head{flex-wrap:wrap}
.section-links a,.tabs button{max-width:100%;overflow-wrap:anywhere}
#signout{flex-shrink:0;white-space:nowrap}
summary{min-height:44px;padding-block:10px}
@media screen and (max-width:720px){
 .sidebar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 16px}
 .sidebar .brand{margin:0}
 .nav-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:64px}
 .sidebar nav#navigation{display:none;grid-column:1/-1;min-width:0}
 .sidebar[data-menu-open=true] nav#navigation{display:flex;flex-direction:column;gap:16px}
 .nav-group .nav-button{font-size:15px}
 .sidebar>.nav-label{display:none}
 .page-heading h1{font-size:34px}
 .page-heading .muted{font-size:14px}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}
 .page .table-wrap{overflow:visible}
 .page table,.page tbody,.page tr,.page td{display:block;width:100%;max-width:none;min-width:0}
 .page thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .page tr{border-bottom:1px solid var(--line);padding:8px 0}
 .page td{border:0;padding:8px 14px}
 .page td::before{content:attr(data-label);display:block;font-weight:700;color:var(--muted);margin-bottom:3px}
 .page .row-actions{white-space:normal}
 .page td button{max-width:100%;white-space:normal}
 .evidence-row td::before{display:none}
 .evidence-list{position:static;max-width:100%}
 .zone{white-space:normal;overflow-wrap:anywhere}
}
.page-heading>button{flex-shrink:0;white-space:nowrap}
/* Keep status words and entry actions readable in dense desktop round tables. */
.page td .badge,.page td .entry-actions button{word-break:normal;overflow-wrap:normal}
@media screen and (min-width:721px){#content>.panel th,#content>.panel td{padding-inline:12px}}
