/* Form typography and controls matched to the supplied citizen-form reference. */
:root{--form-font:Mukta,"Segoe UI",sans-serif;--form-text:#303438;--form-border:#cecece;--form-primary:#6777ef}
.main-content,.portal-main{font-family:var(--form-font);font-size:16px;color:var(--form-text);line-height:1.5}
.main-content h1,.portal-main .panel-heading h3{font-family:var(--form-font);font-size:24px;font-weight:600;line-height:1.4;letter-spacing:0;text-decoration:underline;text-underline-offset:4px;color:#25292c}
.main-content .page-heading{margin-bottom:22px}.main-content .page-heading p{font-size:16px;color:#555}
.panel{border-radius:8px;border:1px solid #eceef1;box-shadow:0 2px 12px #0000000a;background:#fff}
.panel .panel-heading{padding:16px 24px;border-bottom:1px solid #dedede}
.panel .panel-heading h3{font-family:var(--form-font);font-size:22px;font-weight:600;color:#303438}
.panel .panel-heading p{font-size:16px;line-height:1.5;color:#555}
form.panel-body{padding:26px 24px;font-family:var(--form-font);font-size:16px}
.form-grid{gap:20px 28px}.form-grid .field,.panel-body>.field{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;column-gap:10px;row-gap:4px;min-width:0;margin-bottom:0}
.field label{font-family:var(--form-font);font-size:16px;font-weight:400;line-height:1.5;color:var(--form-text);margin:0}
.field input,.field select,.field textarea,.filter-bar input,.filter-bar select,.office-selector select{font-family:var(--form-font);font-size:16px;font-weight:400;line-height:1.5;color:var(--form-text)!important;border:1px solid var(--form-border)!important;background:#fff!important;border-radius:0;min-height:32px;padding:3px 8px;box-shadow:none;min-width:0;width:100%}
.field input:not([type=file]):not([type=color]):not([type=checkbox]):not([type=radio]),.field select{height:34px}
.field input[type=file]{font-size:14px;padding:5px 8px;min-height:38px}.field input[type=color]{height:34px;padding:2px}.field textarea{min-height:120px;resize:vertical}.field:has(textarea){align-items:start}
.field input:focus,.field select:focus,.field textarea:focus,.filter-bar input:focus,.filter-bar select:focus{border-color:var(--form-primary)!important;box-shadow:0 0 0 2px #6777ef19;outline:none}
.field input::placeholder,.field textarea::placeholder{color:#858585;opacity:1}
.field small{grid-column:2;font-family:var(--form-font);font-size:13px;line-height:1.5;margin-top:2px;color:#656565}.field .field-error{color:#d32f2f!important}.required{color:#e87c26}
.section-title,form h3{font-family:var(--form-font);font-size:18px;font-weight:500;line-height:1.5;color:var(--form-text);padding-bottom:5px;margin:26px 0 12px;border-bottom:1px solid #555}
form .form-actions{border-top:1px solid #dee2e6;padding-top:18px;margin-top:24px}.main-content .helper-box,.portal-main .helper-box{font-family:var(--form-font);font-size:15px;line-height:1.6;border-radius:4px;color:#444;background:#f7f8fb;border-color:#e1e4e9}
.main-content .office-selector label,.main-content .filter-bar label,.main-content .permission-check{font-family:var(--form-font);font-size:16px;color:var(--form-text)}
.main-content table,.main-content table th,.main-content table td{font-family:var(--form-font);font-size:16px}.main-content table th{font-weight:600;color:#303438;background:#f7f7f7;border-color:#dee2e6}
.portal-main .portal-heading h1{font-family:var(--form-font);font-size:26px}.portal-main .portal-heading p{font-size:16px}.portal-main .portal-stepper{font-size:16px}
@media(max-width:1200px){.settings-edit-grid .form-grid{grid-template-columns:1fr}}
@media(max-width:760px){.form-grid .field,.panel-body>.field{grid-template-columns:1fr;gap:5px}.field small{grid-column:1}.field input:not([type=file]):not([type=color]):not([type=checkbox]):not([type=radio]),.field select{min-height:40px;height:40px}.field input,.field select,.field textarea{font-size:16px}.form-grid{gap:18px}.panel .panel-heading,form.panel-body{padding:18px 16px}.main-content h1{font-size:24px}.field label{font-size:16px}.form-grid{grid-template-columns:1fr}}

.module-permission-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}

/* Dashboard reports follow the same form typography and panel style. */
.dashboard-reports{font-family:var(--form-font);font-size:16px;line-height:1.5;color:var(--form-text)}
.dashboard-reports .panel,.dashboard-reports .stat-card{border-radius:8px;border:1px solid #eceef1;box-shadow:0 2px 12px #0000000a;background:#fff}
.dashboard-reports .panel-heading{padding:16px 24px;border-bottom:1px solid #dedede}
.dashboard-reports .panel-heading h3{font-family:var(--form-font);font-size:22px;font-weight:600;line-height:1.4;color:var(--form-text)}
.dashboard-reports .panel-heading p{font-size:16px;line-height:1.5;color:#555}
.dashboard-reports .stat-label,.dashboard-reports table,.dashboard-reports .quick-links,.dashboard-reports .ward-summary,.dashboard-reports .activity-list{font-family:var(--form-font);font-size:16px;line-height:1.5}
.dashboard-reports .stat-label{font-weight:400;color:var(--form-text)}
.dashboard-reports .stat-card strong{font-family:var(--form-font);font-size:32px;font-weight:600;line-height:1.4}
.dashboard-reports .stat-caption,.dashboard-reports small,.dashboard-reports .quick-links small,.dashboard-reports time{font-family:var(--form-font);font-size:14px;line-height:1.5;color:#656565;letter-spacing:0}
.dashboard-reports table th{background:#f8f9fb;font-size:16px;font-weight:600;color:var(--form-text);border-bottom:1px solid #dedede}
.dashboard-reports table td{font-size:16px;border-bottom:1px solid #eceef1}
.dashboard-reports .table-person strong,.dashboard-reports .ward-summary strong{font-weight:600;color:var(--form-text)}
.dashboard-reports .status,.dashboard-reports .pill,.dashboard-reports .text-link{font-family:var(--form-font);font-size:14px;letter-spacing:0}
@media(max-width:760px){.dashboard-reports .panel-heading{padding:16px}.dashboard-reports .panel-heading h3{font-size:20px}}

/* Shared styles apply to every workspace screen, including report sections. */
body.app-shell{font-family:var(--form-font);font-size:16px;line-height:1.5}
.main-content .panel-heading h3{font-family:var(--form-font);font-size:22px;font-weight:600;line-height:1.4;color:var(--form-text)}
.main-content .panel-heading p{font-family:var(--form-font);font-size:16px;font-weight:400;line-height:1.5;color:#555}
.main-content .ward-grid,.main-content .ward-summary,.main-content .quick-links,.main-content .reference-card,.main-content .settings-card{font-family:var(--form-font);font-size:16px;line-height:1.5}
.main-content .ward-summary strong{font-size:16px;font-weight:600}.main-content .ward-summary small{font-size:14px;line-height:1.5;color:#656565}
.main-content table th,.main-content table td{border-color:#dee2e6}.main-content table td{line-height:1.5}
.main-content button,.main-content input,.main-content select,.main-content textarea{font-family:var(--form-font)}
@media(max-width:760px){.main-content .panel-heading h3{font-size:20px}}

.user-credentials{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px}
@media(max-width:760px){.user-credentials{grid-template-columns:1fr}}

.user-credentials>.field:last-child{grid-column:1/-1}

.required{color:var(--ui-danger,#b91c1c)}

.main-content .section-title,.portal-main .section-title{font-weight:600}

/* Workspace data grids; letter content, editor tables and printed output keep their own styles. */
@media screen {
 body.app-shell :is(.main-content,.navigation-search-dialog) table:not(:where(.cke *,[contenteditable] *,.letterhead-page *,.letterhead-custom-page *,.template-letter-preview *,.recommendation-letter *,.letter-preview *,.letter-body *)){
  border-collapse:collapse;border-spacing:0;width:100%;border:1px solid #cbd5e1;background:#fff;color:#334155;
 }
 body.app-shell :is(.main-content,.navigation-search-dialog) table:not(:where(.cke *,[contenteditable] *,.letterhead-page *,.letterhead-custom-page *,.template-letter-preview *,.recommendation-letter *,.letter-preview *,.letter-body *))> :is(thead,tbody,tfoot)>tr> :is(th,td){
  border:1px solid #cbd5e1;padding:12px 14px;vertical-align:middle;line-height:1.5;color:#334155;
 }
 body.app-shell :is(.main-content,.navigation-search-dialog) table:not(:where(.cke *,[contenteditable] *,.letterhead-page *,.letterhead-custom-page *,.template-letter-preview *,.recommendation-letter *,.letter-preview *,.letter-body *))>thead>tr>th{
  background:#173b63;color:#fff;font-weight:700;border-color:#456282;text-align:left;
 }
 body.app-shell :is(.main-content,.navigation-search-dialog) table:not(:where(.cke *,[contenteditable] *,.letterhead-page *,.letterhead-custom-page *,.template-letter-preview *,.recommendation-letter *,.letter-preview *,.letter-body *))>tbody>tr:nth-child(even){background:#f5f8fc}
 body.app-shell :is(.main-content,.navigation-search-dialog) table:not(:where(.cke *,[contenteditable] *,.letterhead-page *,.letterhead-custom-page *,.template-letter-preview *,.recommendation-letter *,.letter-preview *,.letter-body *))>tbody>tr:hover{background:#edf4fc}
 body.app-shell :is(.main-content,.navigation-search-dialog) table:not(:where(.cke *,[contenteditable] *,.letterhead-page *,.letterhead-custom-page *,.template-letter-preview *,.recommendation-letter *,.letter-preview *,.letter-body *))>tfoot>tr> :is(th,td){background:#e8eef6;font-weight:700;color:#173b63}
 body.app-shell .main-content .table-wrap{overflow-x:auto;scrollbar-width:thin}
 body.app-shell .main-content .table-wrap td>a:not(.btn){color:#1d4ed8;font-weight:500}
}
.portal-upload-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:12px;align-items:end;border:1px solid #cbd5e1;border-radius:8px;padding:12px;margin-bottom:10px}.portal-upload-row label{display:flex;flex-direction:column;gap:6px;min-width:0}.portal-upload-row input{width:100%;min-width:0}@media(max-width:600px){.portal-upload-row{grid-template-columns:1fr}.portal-upload-row button{justify-self:start}}
