/* Application-wide form contract. Loaded last: one height, type scale and rhythm.
   Native choice/file/range controls and hidden inputs keep their own semantics. */
:root{--field-height:44px;--control-radius:6px;--control-border:#c8d6ce;--control-font-size:16px;--form-gap:16px}
body :is(input,select,textarea,button){font-family:inherit}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]),select){
 box-sizing:border-box;min-width:0;max-width:100%;width:100%;height:var(--field-height);min-height:var(--field-height);
 padding:10px 12px;margin-top:0;margin-bottom:0;border:1px solid var(--control-border);border-radius:var(--control-radius);
 background:var(--panel);color:var(--text);font-size:var(--control-font-size);font-weight:400;line-height:22px;
}
body textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:96px;padding:12px;border:1px solid var(--control-border);border-radius:var(--control-radius);font-size:var(--control-font-size);line-height:1.5;resize:vertical;background:var(--panel);color:var(--text)}
body input:is([type=date],[type=time],[type=datetime-local]){appearance:none;-webkit-appearance:none}
body input::-webkit-date-and-time-value{text-align:left;min-height:22px}
body input:is([type=checkbox],[type=radio]){width:18px;height:18px;min-height:18px;max-width:18px;margin:0;padding:0;flex-shrink:0;accent-color:var(--brand)}
body .field{display:flex;flex-direction:column;min-width:0;gap:8px;margin:0}
body :is(.field,.client-data-grid>.field,.ef-modal .field,.user-form-fields>.field)>label:first-child{display:flex;align-items:flex-end;min-height:40px;margin:0;font-size:13px;line-height:20px;font-weight:600;color:var(--text);gap:8px;flex-wrap:wrap}
body .field :is(input,select,textarea){font-size:var(--control-font-size)}
body :is(.grid,.client-data-grid,.user-form-fields,.ef-g2,.ef-g3){gap:16px;align-items:start}
body .grid>.field:has(>textarea){grid-column:1/-1!important}
body :is(.actions,.filters,.toolbar,.ef-eingabe,.client-search-line){gap:8px}
body :is(.filters,.toolbar){align-items:flex-end;flex-wrap:wrap}
body :is(.filters,.toolbar)>:is(input,select){flex:1 1 180px;width:auto}
body :is(.filters,.toolbar)>.field{flex:1 1 180px}
body .client-search{min-width:0;display:grid;gap:8px;margin:0 0 16px}
body .client-search label{display:block;min-height:20px;margin:0;color:var(--text);font-size:13px;line-height:20px;font-weight:600}
body .client-search-line{display:flex;align-items:stretch}
body .client-search-line input{flex:1;min-width:0;width:100%}
body .client-search-line button{width:var(--field-height);height:var(--field-height);min-height:var(--field-height);min-width:var(--field-height);padding:0;border-radius:var(--control-radius)}
body .client-search-status{margin:0;font-size:12px;line-height:20px}
body .client-search-row{width:100%}
body .client-search label:empty{display:none}
body .btn{border-radius:var(--control-radius);min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:20px}
body .btn.sm{min-height:36px;font-size:13px;padding:6px 12px}
body :is(input,select,textarea,button):focus-visible{outline:2px solid var(--brand);outline-offset:2px}
body [hidden]{display:none!important}
body .ef-modal .field>label:first-child{min-height:40px}
body .ef-modal .client-search{margin:0}
body .ef-modal :is(.field input,.field select,.client-search-input){font-size:16px}
body .ef-fuss-knoepfe .btn{height:44px;min-height:44px}
body .ta-grund,body .ta-wert-grund{height:44px;min-height:44px}
body .visit-handover{display:grid;gap:16px;padding:16px;border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:6px;background:var(--bg)}
body .visit-handover.hidden{display:none}
body .visit-handover :is(h3,p,ul){margin:0}
body .visit-handover h3{font-size:16px;line-height:24px}
body .visit-handover p{font-size:14px;color:var(--muted)}
body .visit-handover ul{padding-left:20px;line-height:1.6}
body .visit-handover-actions{display:flex;gap:8px;flex-wrap:wrap}
body .visit-handover-actions .btn{white-space:normal;text-align:center;height:auto;min-height:44px}
body .tour-schritt>label{font-size:13px;line-height:20px;font-weight:600}
@media(max-width:760px){
 body :is(.grid,.client-data-grid,.user-form-fields,.ef-g2,.ef-g3){grid-template-columns:minmax(0,1fr)}
 body .grid>.field{grid-column:1/-1!important}
 body .field>label:first-child,body .ef-modal .field>label:first-child{min-height:20px}
 body :is(.actions,.filters,.toolbar){gap:8px}
 body .visit-handover-actions{flex-direction:column}
}
/* The same quiet surface and choice-button rules apply to every work area. */
body section.block{border-radius:8px;box-shadow:none}
body section.block>h2{padding:16px 24px;font-size:15px;line-height:24px;font-weight:600;letter-spacing:0;text-transform:none}
body .block-body{padding:24px}
body .pagehead h1{font-size:26px;line-height:1.3;font-weight:650;letter-spacing:-.02em;margin:0}
body .pagehead p{font-size:14px;line-height:1.5;color:var(--muted)}
body main a:not(.btn):not(.opt):not(.nav a){color:var(--brand);text-underline-offset:3px}
body .opts{gap:8px;align-items:stretch}
body :is(.field,.frage)>.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:8px}
body .opts .opt{box-sizing:border-box;min-height:44px;max-width:100%;padding:10px 12px;display:flex;align-items:center;justify-content:flex-start;white-space:normal;text-align:left;font-size:14px;line-height:22px;border-radius:6px;overflow-wrap:anywhere}
body .filters>label{font-size:13px;line-height:20px;font-weight:600}
@media(max-width:760px){body .block-body,body section.block>h2{padding:16px}body .pagehead h1{font-size:24px}}
body :is(.protocol-form-grid,.medication-form-grid,.medication-fields,.assessment-history-filters){gap:16px;align-items:start;min-width:0}
body .visit-handover-worklist .block-body{padding-block:12px}
@media(max-width:760px){body :is(.protocol-form-grid,.medication-form-grid,.medication-fields,.assessment-history-filters){grid-template-columns:minmax(0,1fr)}}
body .client-search-block{padding:16px 24px 0;margin:0}
body .client-search-block+.block-body{padding-top:16px}
body .grid:has(>.field>.opts){grid-template-columns:repeat(2,minmax(0,1fr))}
body .grid>.field:has(>.opts){grid-column:1/-1!important}
body .field>.opts{margin-top:0}
@media(max-width:760px){body .client-search-block{padding:16px 16px 0}body .grid:has(>.field>.opts){grid-template-columns:minmax(0,1fr)}}
body .filters>label{display:flex;flex-direction:column;gap:8px}
body .tour-schritt>p{margin:0}
body #t-fehler:empty{display:none}
body .visit-handover details[open]>.field{margin-top:12px}
body :is(.visit-handover,.visit-note-templates) summary{font-size:13px;line-height:20px;cursor:pointer;color:var(--brand)}
body .visit-note-templates[open]>.opts{margin-top:12px}
