/* Shared form design: BMI / screening spacing and typography. */
body.app-default{--app-form-label-size:12px;--app-form-text-size:14px;--app-form-radius:10px;--app-form-gap:20px;--app-form-field-height:52px}
.app-form{font-family:inherit;font-size:var(--app-form-text-size,14px);line-height:1.6;color:var(--bs-gray-900);min-width:0}
.app-form :is(input,select,textarea,button,.select2-container,.note-editable){font-family:inherit!important}
.app-form label,.app-form .form-label{display:block;font-size:var(--app-form-label-size,12px);line-height:1.6;font-weight:600;color:var(--bs-gray-700);margin-bottom:8px}
.app-form .form-check-label{display:inline;margin-bottom:0;font-size:13px;font-weight:500}
.app-form :is(.form-control,.form-select,.app-form-control){font-size:var(--app-form-text-size,14px);line-height:1.5;min-height:var(--app-form-field-height,52px);border-radius:var(--app-form-radius,10px);border-color:var(--bs-gray-300);max-width:100%}
.app-form textarea.form-control{min-height:110px;resize:vertical}
.app-form .form-control[readonly]{background:var(--bs-gray-100);color:var(--bs-gray-700)}
.app-form :is(.form-control,.form-select):focus{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.12)}
.app-form .input.error :is(input,select,textarea){border-color:var(--bs-danger)}
.app-form .error-message{font-size:12px;color:var(--bs-danger);margin-top:6px;line-height:1.5}
.app-form .select2-container{max-width:100%}
.app-form .select2-container .select2-selection{min-height:var(--app-form-field-height,52px);border-radius:var(--app-form-radius,10px);border-color:var(--bs-gray-300);display:flex;align-items:center}
.app-form .select2-selection__rendered{font-size:14px;white-space:normal;overflow-wrap:anywhere}
.app-form .note-editor{border:1px solid var(--bs-gray-300);border-radius:10px;overflow:hidden;margin-bottom:20px}
.app-form .note-toolbar{background:var(--bs-gray-100);border-bottom:1px solid var(--bs-gray-200);padding:8px}
.app-form .note-editable{font-size:14px;line-height:1.7;min-height:120px;text-align:left}
.app-form-button{font-family:inherit;font-size:14px;font-weight:600;min-height:44px;border-radius:10px;white-space:normal}
.app-form-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.station-workspace .station-clinical-panel .app-form-actions .app-form-submit{display:block;width:100%;max-width:none;min-height:56px;margin:0!important;padding:14px 20px;font-size:15px;font-weight:600;border-radius:10px}
.app-form-status{font-size:12px;font-weight:600;line-height:1.5}
.app-form-status[hidden],.station-clinical-panel[data-patient-panel][hidden]{display:none!important}
.station-clinical-panel .app-form>.row{margin-left:-10px;margin-right:-10px}
.station-clinical-panel .app-form>.row>[class*="col-"]{padding-left:10px;padding-right:10px;min-width:0}
.station-clinical-panel .app-form>.row>div:last-child:has(>.app-form-actions){margin-bottom:0}
.station-clinical-panel .app-form>.mx-4{margin-left:0!important;margin-right:0!important}
.station-clinical-panel .app-form .card{border:1px solid var(--bs-gray-200);border-radius:12px;text-align:left!important;box-shadow:none}
.station-clinical-panel .app-form .card>.row{padding:20px!important}
.station-clinical-panel .app-form .card.p-4{padding:20px!important}
.station-clinical-panel .app-form .card.p-4>.row{padding:0!important}
.station-clinical-panel .app-form .card p>b{font-size:14px;font-weight:600;color:var(--bs-gray-900)}
.station-clinical-panel .app-form .text-center{text-align:left!important}
.station-clinical-panel .app-form [id$="Result"]:not(:empty){display:inline-block;padding:5px 10px;background:var(--bs-gray-100);border-radius:6px;font-size:12px;margin-bottom:8px}
.management-form-grid,.roles-form-grid{gap:20px}
.management-form-actions,.roles-form-actions{gap:12px;margin-top:24px;padding-top:20px}
.app-form :is(.management-form-actions,.roles-form-actions) .btn{min-height:48px;font-size:14px;font-weight:600;border-radius:10px}
/* Search/filter forms stay compact; clinical and edit forms use 52px fields. */
.app-form:is([id$="filters"],[role="search"]){--app-form-field-height:44px;--app-form-text-size:13px}
.app-form fieldset{min-width:0}
@media(max-width:767px){
.station-clinical-panel .app-form .card>.row,.station-clinical-panel .app-form .card.p-4{padding:16px!important}
.station-clinical-panel .app-form .card.p-4>.row{padding:0!important}
.app-form :is(.management-form-grid,.roles-form-grid){grid-template-columns:minmax(0,1fr);gap:16px}
.app-form :is(.management-form-actions,.roles-form-actions){flex-wrap:wrap}
.app-form :is(.management-form-actions,.roles-form-actions) .btn{flex:1;min-width:120px}
}

.app-form-section-title{display:block;float:none;width:100%;font-size:14px!important;line-height:1.5;font-weight:600;color:var(--bs-gray-900);margin:0 0 16px;padding:0}
.app-form-section{padding:20px;border:1px solid var(--bs-gray-200);border-radius:12px}
.app-package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.app-package-option{position:relative;display:flex;align-items:center;gap:12px;padding:14px!important;margin:0!important;border:1px solid var(--bs-gray-200);border-radius:10px;min-width:0}
.app-package-option .form-check-input{float:none;margin:0;flex:0 0 20px}
.app-package-option .form-check-label{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;min-width:0;cursor:pointer}
.app-package-option .form-check-label span{overflow-wrap:anywhere}.app-package-option strong{white-space:nowrap;color:var(--bs-primary);font-size:13px}
.app-package-option:has(:checked){border-color:var(--bs-primary);background:var(--bs-primary-light)}
.app-form-total{padding:16px 20px;border:1px solid var(--bs-gray-200);border-radius:12px;background:var(--bs-gray-100)}
.app-form-total input{font-size:20px!important;font-weight:700;color:var(--bs-primary)!important}
.app-form .app-form-actions>.app-form-submit{width:100%;min-height:56px;margin-bottom:0;font-size:15px}
@media(max-width:767px){.app-package-grid{grid-template-columns:minmax(0,1fr)}.app-form-section{padding:16px}}

/* One spacing and sizing scale for all application forms. */
body.app-default{--app-form-card-padding:24px;--app-form-gap:20px;--app-form-card-radius:14px}
body.app-default #kt_app_content .card:not(.station-workspace):has(form.app-form){border:1px solid var(--bs-gray-200);border-radius:var(--app-form-card-radius);box-shadow:none;margin-bottom:24px!important}
body.app-default #kt_app_content .card:not(.station-workspace)>.card-body:has(form.app-form){padding:var(--app-form-card-padding)!important}
body.app-default #kt_app_content .station-clinical-panel form.app-form{margin:0}
body.app-default #kt_app_content .station-clinical-panel form.app-form>.row{padding:0!important;margin:0 -10px!important}
body.app-default #kt_app_content .station-clinical-panel form.app-form>.row>[class*="col-"]{padding-left:10px!important;padding-right:10px!important}
body.app-default #kt_app_content .station-clinical-panel form.app-form .card{margin:0 0 var(--app-form-gap)!important;border:1px solid var(--bs-gray-200)!important;border-radius:12px;box-shadow:none}
body.app-default #kt_app_content .station-clinical-panel form.app-form .card.p-4{padding:var(--app-form-gap)!important}
body.app-default #kt_app_content .station-clinical-panel form.app-form .card>.row{padding:var(--app-form-gap)!important;margin:0!important}
body.app-default #kt_app_content .station-clinical-panel form.app-form .card.p-4>.row{padding:0!important}
body.app-default #kt_app_content .app-form :is(.management-form-grid,.roles-form-grid,.registration-entry-grid){gap:var(--app-form-gap)}
body.app-default #kt_app_content .app-form label:not(.form-check-label){font-size:12px!important;font-weight:600!important;line-height:1.6;color:var(--bs-gray-700);margin-bottom:8px!important}
body.app-default #kt_app_content .app-form :is(.form-control,.form-select){font-family:inherit!important;font-size:14px;min-height:52px;border-radius:10px}
body.app-default #kt_app_content .app-form :is(.management-form-actions,.roles-form-actions,.registration-create-footer){display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--bs-gray-200)}
body.app-default #kt_app_content .app-form :is(.management-form-actions,.roles-form-actions,.registration-create-footer) .btn{min-height:48px;border-radius:10px;font-size:14px;font-weight:600}
body.app-default #kt_app_content .app-form :is(h2,h3,.app-form-section-title){font-family:inherit;font-size:14px;font-weight:600;line-height:1.5}
body.app-default #kt_app_content .registration-form-section{margin-bottom:20px;padding-bottom:20px}
body.app-default #kt_app_content .registration-section-title{margin-bottom:16px;gap:0}
body.app-default #kt_app_content .registration-section-title h3{margin:0}
body.app-default #kt_app_content .app-form .app-form-actions{margin:0;padding:0;gap:8px}
body.app-default .modal .app-form :is(.modal-body,.modal-footer){padding:24px}
@media(max-width:767px){
body.app-default{--app-form-card-padding:16px;--app-form-gap:16px}
body.app-default #kt_app_content .card:not(.station-workspace):has(form.app-form){margin-bottom:16px!important}
body.app-default .modal .app-form :is(.modal-body,.modal-footer){padding:16px}
body.app-default #kt_app_content .app-form :is(.management-form-actions,.roles-form-actions,.registration-create-footer){margin-top:16px;padding-top:16px}
}

/* Clinical sections replace nested Bootstrap cards and spacing utilities. */
.clinical-form-sections,.clinical-section-stack{display:grid;gap:20px;margin:0 0 20px;min-width:0}
.clinical-section-stack{margin:0;align-content:start}
.clinical-section-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.clinical-section{min-width:0;border:1px solid var(--bs-gray-200);border-radius:12px;padding:20px;background:var(--bs-body-bg)}
.clinical-field-grid{display:grid;gap:20px;align-items:start;min-width:0}
.clinical-field-grid-1{grid-template-columns:minmax(0,1fr)}
.clinical-field-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.clinical-field-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.clinical-field-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.clinical-field,.clinical-field>.input{min-width:0;height:auto;max-height:none;overflow:visible;margin:0}
.clinical-field-full{grid-column:1/-1}
body.app-default #kt_app_content .clinical-section .form-control,body.app-default #kt_app_content .clinical-section .form-select{margin-bottom:0!important}
.clinical-field-result:empty{display:none!important}
.clinical-field-result:not(:empty){display:inline-block;margin-top:8px;font-size:12px;padding:5px 10px;border-radius:6px;background:var(--bs-gray-100)}
.clinical-output{display:flex!important;align-items:center}
body.app-default #kt_app_content .clinical-reference{padding:20px!important;margin:20px 0 0!important;border:1px solid var(--bs-gray-200);border-radius:12px;background:var(--bs-gray-100)}
.clinical-summary{display:grid;gap:20px;margin-bottom:20px}
.clinical-summary-card{border:1px solid var(--bs-gray-200);border-radius:12px;overflow:hidden}
.clinical-summary-card>h3{margin:0;padding:14px 20px;background:var(--bs-primary-light);border-bottom:1px solid var(--bs-gray-200);font-size:14px;font-weight:600}
.clinical-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:20px}
.clinical-summary-grid>div{min-width:0;padding:14px;background:var(--bs-gray-100);border-radius:8px}
.clinical-summary-grid dt{font-size:12px;font-weight:400;color:var(--bs-gray-600);margin-bottom:6px}
.clinical-summary-grid dd{font-size:14px;font-weight:600;margin:0;overflow-wrap:anywhere}
body.app-default #kt_app_content .clinical-referral-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 20px!important;gap:20px}
body.app-default #kt_app_content .clinical-referral-row>div{width:100%;padding:0}
@media(max-width:991px){.clinical-field-grid-3,.clinical-field-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.clinical-section-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:575px){.clinical-form-sections,.clinical-section-stack,.clinical-section-columns,.clinical-field-grid{gap:16px}.clinical-section{padding:16px}.clinical-field-grid,.clinical-summary-grid{grid-template-columns:minmax(0,1fr)}.clinical-summary-grid{padding:16px}.clinical-summary-card>h3{padding:12px 16px}body.app-default #kt_app_content .clinical-referral-row{grid-template-columns:minmax(0,1fr)}}

.bmi-measurements .clinical-output{display:flex;align-items:center}.bmi-measurements #bmistatus{font-size:22px!important;font-weight:700;color:var(--bs-gray-900);background:var(--bs-gray-100)!important}

/* Result typography must not change measurement field height. */
body.app-default #kt_app_content .bmi-measurements .clinical-output{height:52px!important;min-height:52px!important;box-sizing:border-box;display:flex;align-items:center;padding:12px 16px;font-size:14px!important;line-height:1.5;font-weight:600;border-radius:10px}

/* CakePHP marks the field wrapper required; the marker belongs on its label. */
.app-form .input.required::after,.app-form fieldset.required::after{content:none!important;display:none!important}
.app-form .input.required>label::after,
.app-form .input.required>fieldset>legend::after,
.app-form fieldset.required>legend::after,
.app-form label:has(+ :is(input,select,textarea)[required])::after{content:"*";display:inline;position:static;color:var(--bs-danger);font-size:inherit;font-weight:600;padding-left:4px;line-height:inherit}

/* Shared adult / paediatric consultation workspace. */
.consultation-editor-layout{display:grid;gap:20px;margin-bottom:20px;min-width:0}
.consultation-referral-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,3fr);gap:20px;align-items:start}
.consultation-notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
.consultation-note-panel{display:flex;flex-direction:column;min-width:0}
.consultation-note-panel>label{min-height:38px;display:flex!important;align-items:flex-start}
body.app-default #kt_app_content .consultation-editor-layout .note-editor{width:100%;margin:0;border:1px solid var(--bs-gray-300);border-radius:10px;box-shadow:none;overflow:hidden;flex:1}
body.app-default #kt_app_content .consultation-editor-layout .note-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:8px;background:var(--bs-gray-100);border-bottom:1px solid var(--bs-gray-200)}
.consultation-editor-layout .note-toolbar .note-btn-group{margin:0}
.consultation-editor-layout .note-toolbar .note-btn{min-width:30px;min-height:30px;border-radius:5px;font-size:13px}
body.app-default #kt_app_content .consultation-editor-layout .note-editable{min-height:220px;line-height:1.7;font-family:inherit;font-size:14px;padding:14px 16px;background:var(--bs-body-bg);overflow-wrap:anywhere}
.consultation-editor-layout .note-editable[contenteditable="false"]{background:var(--bs-gray-100)!important;color:var(--bs-gray-600)}
.consultation-medication-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(110px,1fr);gap:20px;align-items:start}
.consultation-editor-layout .input,.consultation-medication-grid>div{min-width:0;margin:0}
.consultation-editor-layout .select2-container{width:100%!important}
.consultation-medication-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px}
.consultation-medication-actions .btn{min-height:44px;font-size:13px;border-radius:8px}
body.app-default #kt_app_content .consultation-editor-layout .form-control,body.app-default #kt_app_content .consultation-editor-layout .form-select{margin-bottom:0!important}
.consultation-prescription #medications{min-height:110px}
@media(max-width:991px){.consultation-notes-grid{grid-template-columns:minmax(0,1fr)}.consultation-note-panel>label{min-height:0}.consultation-referral-grid{grid-template-columns:1fr 2fr}}
@media(max-width:575px){.consultation-editor-layout,.consultation-referral-grid,.consultation-notes-grid,.consultation-medication-grid{gap:16px}.consultation-referral-grid,.consultation-medication-grid{grid-template-columns:minmax(0,1fr)}.consultation-medication-actions .btn{flex:1}}

/* All filter controls share one compact height, including enhanced selects. */
body.app-default #kt_app_content form:has(:is(.registration-filter-actions,.registration-visit-filter-actions,.dashboard-filter-actions,.report-filter-actions)){
    --app-form-field-height:44px;
}
body.app-default #kt_app_content form:has(:is(.registration-filter-actions,.registration-visit-filter-actions,.dashboard-filter-actions,.report-filter-actions)) :is(input.form-control,select.form-select,.select2-selection){
    box-sizing:border-box;height:44px!important;min-height:44px!important;margin-bottom:0!important;font-size:13px;line-height:20px;border-radius:8px;
}
body.app-default #kt_app_content form:has(:is(.registration-filter-actions,.registration-visit-filter-actions,.dashboard-filter-actions,.report-filter-actions)) :is(input.form-control,select.form-select){padding-top:11px;padding-bottom:11px}
body.app-default #kt_app_content :is(.registration-filter-actions,.registration-visit-filter-actions,.dashboard-filter-actions,.report-filter-actions) .btn{
    display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:44px!important;min-height:44px!important;margin:0!important;padding:11px 16px!important;font-size:13px;line-height:20px;border-radius:8px;white-space:nowrap;
}
body.app-default #kt_app_content form:has(:is(.registration-filter-actions,.registration-visit-filter-actions,.dashboard-filter-actions,.report-filter-actions)) .select2-selection__arrow{height:42px;top:1px}
