:root{font-family:Arial,Helvetica,sans-serif;color:#172d34;background:#f4f7f6;font-synthesis:none;--accent:#176b5c;--border:#dbe5e1;--muted:#62746f}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}.topbar{height:80px;background:#fff;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 5vw}.brand{font-size:18px;font-weight:700;color:inherit;text-decoration:none;display:flex;align-items:center;gap:12px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--accent);color:white;border-radius:9px;font-size:28px;font-weight:400}#account{display:flex;align-items:center;gap:18px;font-size:13px;color:var(--muted)}main{max-width:1280px;margin:54px auto;padding:0 32px;min-height:65vh}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:700;color:var(--accent);margin:0 0 14px}h1{font-size:36px;letter-spacing:-1px;margin:0 0 12px}.muted{color:var(--muted);line-height:1.6;margin:0}.login-panel{max-width:440px;margin:70px auto;background:#fff;border:1px solid var(--border);border-radius:16px;padding:38px;box-shadow:0 8px 32px #172d3408}form{margin-top:28px}form label{display:block;font-size:13px;font-weight:700;margin:20px 0 8px}input,select{font:inherit;background:#fff;color:inherit;border:1px solid #becfc8;border-radius:7px;padding:12px;width:100%}input:focus-visible,select:focus-visible,.button:focus-visible{outline:3px solid #9bd4bd;outline-offset:2px}.button{font:inherit;font-size:13px;font-weight:700;cursor:pointer;border-radius:7px;padding:11px 17px;border:1px solid transparent}.button.primary{color:white;background:var(--accent);width:100%;margin-top:24px}.button.secondary{color:#244b40;background:white;border-color:#cddcd5}.button:hover:not(:disabled){filter:brightness(.96)}.button:disabled{opacity:.45;cursor:default}.message{font-size:14px;color:var(--muted);line-height:1.6}.error{color:#a33131}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.registry{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}.registry-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;font-size:13px;border-bottom:1px solid var(--border)}#result-summary{font-weight:700}.page-size{display:flex;align-items:center;gap:12px;color:var(--muted);white-space:nowrap}.page-size select{width:75px;padding:8px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{background:#f7faf8;color:var(--muted);font-size:11px;letter-spacing:.6px;text-transform:uppercase;font-weight:700;padding:17px 24px;white-space:nowrap}td{border-top:1px solid #edf1ef;padding:20px 24px;white-space:nowrap}td:first-child{font-weight:700}td:last-child{font-family:monospace;font-size:11px;color:var(--muted)}.status{font-size:10px;font-weight:700;background:#e6f3ec;color:#287348;border-radius:5px;display:inline-block;padding:5px 8px}.status.other{background:#edf0f3;color:#596977}.table-message{padding:48px 24px;text-align:center;color:var(--muted);font-size:14px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:17px 24px;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}.pagination button+button{margin-left:8px}footer{text-align:center;padding:20px;color:#80918a;font-size:11px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){.topbar{height:auto;min-height:70px;padding:18px 20px;gap:18px;flex-wrap:wrap}.brand{font-size:16px}#account{width:100%;justify-content:space-between}main{margin:32px auto;padding:0 16px}.login-panel{padding:28px;margin:40px auto}h1{font-size:30px}.registry-toolbar{padding:16px}.page-size{font-size:12px}.pagination{padding:16px}th,td{padding:16px}.page-heading{gap:16px}}

.search-form { margin: 0 0 24px; }
.search-controls { display: flex; gap: 10px; align-items: center; }
.search-controls input { flex: 1; margin: 0; min-width: 0; }
@media (max-width: 600px) { .search-controls { flex-wrap: wrap; } .search-controls input { flex-basis: 100%; } }

.search-controls .button.primary { width: auto; margin-top: 0; }

.patient-link { background: none; border: 0; padding: 0; color: var(--accent); text-decoration: underline; font: inherit; font-weight: 700; cursor: pointer; }
.patient-link:focus-visible { outline: 3px solid #9bd4bd; outline-offset: 3px; }
.patient-details { margin-bottom: 24px; }
.patient-details h2 { margin: 0; font-size: 20px; }
.patient-details dl { display: grid; grid-template-columns: minmax(100px, 160px) minmax(0, 1fr); gap: 16px; padding: 24px; }
.patient-details dt { color: var(--muted); }
.patient-details dd { margin: 0; overflow-wrap: anywhere; }

#permissions-panel .registry { margin-top: 24px; }
#permission-rows select { min-width: 140px; }
#permissions-panel td:last-child { font-family: inherit; }

#permissions-panel th, #permissions-panel td { padding: 12px; font-size: 12px; }

.record-actions { padding: 16px 24px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.record-actions p { font-size: 13px; }
#details-title:focus-visible { outline: 3px solid #9bd4bd; outline-offset: 5px; }

#workspace.record-open > :not(#patient-details) { display: none; }
.patient-details h1 { margin-bottom: 12px; }

.clinical-panel { padding: 24px; border-top: 1px solid var(--border); }
.clinical-panel form { margin: 20px 0; }
.clinical-panel form button { margin-top: 12px; }
.encounter-button { display: block; margin: 12px 0; text-align: left; }
.note-card { border: 1px solid var(--border); padding: 16px; border-radius: 8px; margin: 16px 0; }
.note-card pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
textarea { width: 100%; padding: 12px; font: inherit; border: 1px solid var(--border); border-radius: 8px; }

.unsaved-warning { margin: 24px; padding: 16px; border: 2px solid #ab7723; border-radius: 8px; background: #fff8e9; }

.module-nav {display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0;} .module-screen {padding:1.5rem;}
.module-form {display:grid;gap:.55rem;max-width:48rem;margin:1rem 0;} .module-form fieldset {border:1px solid #dce5e2;border-radius:.5rem;padding:1rem;margin:.5rem 0;}
.module-form label {display:block;font-weight:600;} .module-form input:not([type=checkbox]), .module-form select, .module-form textarea {width:100%;padding:.6rem;border:1px solid #cbd5d1;border-radius:.4rem;font:inherit;}
.module-form input[type=checkbox] {width:auto;margin-right:.5rem;} .module-form .inline-options {display:flex;gap:.75rem;flex-wrap:wrap;}
.module-card {border:1px solid #dce5e2;border-radius:.5rem;padding:1rem;margin:.75rem 0;overflow-wrap:anywhere;} .module-card pre {white-space:pre-wrap;font:inherit;}
.module-card button {margin:.25rem .5rem .25rem 0;} .module-form button {justify-self:start;} .module-muted {color:#64736c;font-size:.9rem;}


.office-form-sheet { background:#fff; color:#182b23; border:1px solid #dce5e2; padding:2rem; max-width:54rem; margin:1.5rem auto; overflow-wrap:anywhere; }
.office-form-sheet h2 { font-size:1.7rem; margin:.6rem 0; }
.office-form-sheet h3 { font-size:1.05rem; margin:1.5rem 0 .7rem; border-bottom:1px solid #9faea7; padding-bottom:.3rem; }
.office-form-practice { font-weight:700; margin:0; }
.office-form-version { font-size:.8rem; color:#526259; }
.office-form-notice { padding:.7rem; border:1px solid #ccd7d1; font-size:.9rem; }
.office-form-notice.draft { border-color:#aa7a2d; background:#fff9ed; }
.office-form-identifiers { display:grid; grid-template-columns:1fr 1fr; gap:0 1rem; }
.office-form-field { margin:.8rem 0; break-inside:avoid; }
.office-form-label { font-weight:600; margin:.5rem 0; }
.office-form-rule { height:1.6rem; border-bottom:1px solid #9faea7; }
.office-form-check { margin:.5rem 0; }
.office-form-table { width:100%; table-layout:fixed; border-collapse:collapse; }
.office-form-table th, .office-form-table td { border:1px solid #a8b5ae; padding:.45rem; white-space:normal; font:inherit; font-size:.85rem; color:inherit; }
.office-form-table th { font-weight:600; text-transform:none; letter-spacing:normal; }
.office-form-table td { height:1.8rem; }
@media(max-width:600px) { .office-form-sheet {padding:1rem;} .office-form-identifiers {grid-template-columns:1fr;} }
@media print {
  @page { size:auto; margin:16mm; }
  body.printing-office-form {background:white;font:11pt Arial,sans-serif;color:black;}
  body.printing-office-form > :not(#office-form-print) {display:none!important;}
  body.printing-office-form #office-form-print {display:block!important;border:0;padding:0;margin:0;max-width:none;color:black;}
  body.printing-office-form .office-form-sheet h2 {font-size:18pt;}
  body.printing-office-form .office-form-section h3 {break-after:avoid;}
  body.printing-office-form .office-form-table thead {display:table-header-group;}
  body.printing-office-form .office-form-table tr {break-inside:avoid;}
  body.printing-office-form .office-form-notice {background:white;}
}

.portal-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;padding:.75rem 0;border-bottom:1px solid #ddd;}
#portal-content label{display:block;margin:.5rem 0;}
#portal-content input:not([type="checkbox"]),#portal-content textarea{width:100%;}
#portal-content fieldset{margin:1rem 0;padding:1rem;min-width:0;}

/* Typeahead keeps the original field/selection authoritative. */
.typeahead {position:relative;min-width:0;width:100%;}
.search-controls > .typeahead {flex:1;}
.typeahead input {width:100%;}
.typeahead-list {position:absolute;z-index:30;top:100%;left:0;right:0;max-height:18rem;overflow:auto;background:#fff;border:1px solid #b9c7c4;border-radius:8px;box-shadow:0 6px 18px #15292720;}
.typeahead-option {padding:12px 14px;cursor:pointer;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid #edf1ef;}
.typeahead-option:hover,.typeahead-option[aria-selected="true"] {background:#e8f3ef;color:#173f35;}
.typeahead-filter {font-weight:normal;}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Shared controls across staff, administration, and patient forms. */
input:not([type=checkbox]):not([type=radio]), select, textarea,
.module-form input:not([type=checkbox]):not([type=radio]), .module-form select, .module-form textarea {
  font:inherit; color:inherit; background-color:#fff; border:1px solid #becfc8;
  border-radius:7px; padding:12px; min-height:44px; line-height:1.3;
}
select, .module-form select {
  appearance:none; -webkit-appearance:none; padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2362746f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline:3px solid #9bd4bd; outline-offset:2px; border-color:var(--accent);
}
input:disabled, select:disabled, textarea:disabled {background-color:#f1f5f3;color:var(--muted);cursor:not-allowed;}
.duration-options {border:1px solid var(--border);border-radius:7px;padding:12px;}
.duration-options summary {color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;}
.duration-options summary:focus-visible {outline:3px solid #9bd4bd;outline-offset:3px;}
.duration-options label {margin-top:16px;}
@media (forced-colors:active) {select,.module-form select {appearance:auto;background-image:none;}}

.schedule-toolbar {max-width:none;grid-template-columns:repeat(3,minmax(140px,1fr));align-items:end;}
.schedule-navigation {display:flex;gap:8px;flex-wrap:wrap;grid-column:1/-1;}
.schedule-container {overflow-x:auto;margin:24px 0;}
.schedule-grid {display:grid;min-width:480px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:white;}
.schedule-column-heading {padding:14px 10px;background:#f1f7f4;font-weight:700;border-right:1px solid var(--border);}
.schedule-axis,.schedule-provider-column {position:relative;border-right:1px solid var(--border);}
.schedule-axis span {position:absolute;left:8px;font-size:12px;color:var(--muted);}
.schedule-slot {position:absolute;left:0;width:100%;padding:0;border:0;border-top:1px solid #e5eeea;background:transparent;text-align:center;color:var(--muted);font:inherit;font-size:12px;}
button.schedule-slot {cursor:pointer;}button.schedule-slot:hover,button.schedule-slot:focus-visible {background:#e3f3eb;outline:2px solid var(--accent);outline-offset:-2px;}
.schedule-lunch {background:#f2f3f2;}
.schedule-event {position:absolute;z-index:1;border:1px solid #8ab9a8;border-left:4px solid var(--accent);border-radius:5px;background:#e6f3ec;color:#173f35;padding:3px 6px;text-align:left;overflow:hidden;cursor:pointer;font:inherit;font-size:12px;}
.schedule-event strong,.schedule-event span {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.schedule-event:hover,.schedule-event:focus-visible {background:#cfe7dc;outline:2px solid var(--accent);outline-offset:-2px;}
.schedule-status-arrived {background:#e4effb;border-color:#6393bd;}.schedule-status-completed {background:#edf0ed;border-color:#9ca99d;}
@media(max-width:650px){.schedule-toolbar{grid-template-columns:1fr;}}

/* Persistent workspace navigation; patient sections share the same sidebar. */
.workspace-sidebar {position:fixed;left:0;top:80px;bottom:0;width:232px;background:#fff;border-right:1px solid var(--border);padding:20px 14px;overflow-y:auto;z-index:20;}
.workspace-sidebar .module-nav {display:flex;flex-direction:column;gap:4px;margin:8px 0 20px;}
.workspace-sidebar .button {width:100%;text-align:left;white-space:normal;border:0;background:transparent;padding:11px 14px;border-radius:7px;font-weight:500;}
.workspace-sidebar .button:hover {background:#f0f6f3;}
.workspace-sidebar .button.nav-active {background:#e4f1eb;color:var(--accent);font-weight:700;box-shadow:inset 3px 0 var(--accent);}
.sidebar-label {font-size:10px;letter-spacing:1.2px;color:var(--muted);font-weight:700;margin:8px 14px 12px;}
#sidebar-record {border-top:1px solid var(--border);padding-top:16px;margin-top:16px;}
#sidebar-toggle {display:none;}
.workspace-open main {margin:28px 24px 40px 256px;padding:0;max-width:none;min-width:0;}
.workspace-open .topbar {position:sticky;top:0;z-index:25;padding:0 24px;}
.module-screen {min-width:0;padding:20px;}
.module-screen .registry-toolbar {padding:0 0 20px;}
.schedule-container {max-width:100%;}
.schedule-toolbar {gap:12px;}
.schedule-toolbar > .button.primary {width:auto;margin:0;grid-column:1/-1;}
@media(max-width:800px) {
  .workspace-sidebar {position:static;width:auto;border-right:0;border-bottom:1px solid var(--border);padding:10px 16px;}
  #sidebar-toggle {display:block;width:auto;}
  .workspace-sidebar .module-nav {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .workspace-open main {margin:20px 16px;padding:0;}
  .workspace-open .topbar {padding:0 16px;height:auto;min-height:72px;gap:12px;flex-wrap:wrap;}
  #account {gap:8px;font-size:12px;}
}
@media(min-width:801px) {#sidebar-content[hidden] {display:block!important;}}

/* Encounter workspace: persistent identity, chart context, and note editing. */
#patient-details > .registry-toolbar {position:sticky;top:80px;z-index:15;background:#fff;flex-wrap:wrap;}
#patient-details > .registry-toolbar h1 {font-size:28px;}
.demographics-disclosure {border-top:1px solid var(--border);padding:14px 24px;}
.demographics-disclosure summary {cursor:pointer;color:var(--accent);font-size:14px;font-weight:700;}
.encounter-workspace {display:flex;align-items:stretch;border-top:1px solid var(--border);}
.encounter-content {flex:1;min-width:0;}
.patient-module-open #clinical-panel {display:none!important;}
.patient-module-open .encounter-content {min-width:0;}
.patient-module-open #record-modules {min-height:55vh;border-top:0;}
#record-module-title:focus,#clinical-title:focus {outline:none;}
#record-module-title:focus-visible,#clinical-title:focus-visible {text-decoration:underline dotted var(--accent);text-underline-offset:6px;}
.chart-summary {flex:0 0 240px;background:#f5f9f7;border-right:1px solid var(--border);padding:20px;overflow-wrap:anywhere;}
.chart-summary h2 {font-size:18px!important;margin:0 0 12px!important;}
.chart-summary h3 {font-size:15px;margin:0 0 8px;}
.chart-summary section {border-top:1px solid var(--border);margin-top:20px;padding-top:18px;}
.chart-summary p {font-size:14px;line-height:1.55;margin:9px 0;}
.chart-summary small {display:block;color:#52665e;font-size:12px;line-height:1.5;}
.chart-summary .button {font-size:12px;margin-top:10px;padding:9px 11px;}
.chart-summary .summary-refresh {margin-top:0;}
.note-section-nav {display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:18px;}
.note-section-nav .button {margin:0!important;}
#note-form textarea {font-size:15px;line-height:1.65;scroll-margin-top:200px;}
.draft-action-bar {position:sticky;bottom:0;z-index:10;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border-top:1px solid var(--border);padding:14px 0;margin-top:20px;}
.draft-action-bar p {flex:1;min-width:160px;font-size:13px;}
.draft-action-bar .button {margin:0!important;}
#save-draft {background:var(--accent);color:#fff;border-color:var(--accent);}
#sign-panel input[type=checkbox] {width:auto;min-height:0;}
#draft-preview {background:#f7faf8;}
@media(max-width:1150px){.chart-summary{flex-basis:210px;padding:16px;}.clinical-panel{padding:18px;}}
@media(max-width:950px){.encounter-workspace{display:block;}.chart-summary{border-right:0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}.chart-summary section{margin:0;}.chart-summary h2,.chart-summary .summary-refresh{grid-column:1/-1;justify-self:start;}}
@media(max-width:800px){#patient-details > .registry-toolbar{position:static;}#note-form textarea{scroll-margin-top:20px;}}
@media(max-width:480px){.chart-summary{grid-template-columns:1fr;}.draft-action-bar{position:static;}.registry-toolbar{gap:10px;}}

.vital-history {padding:24px;border-bottom:1px solid var(--border);scroll-margin-top:190px;min-width:0;}
.billing-tabs {display:flex;gap:8px;flex-wrap:wrap;margin:16px 0;}
.billing-account-totals {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.billing-account-totals .module-card {margin:12px 0;}
.billing-account-section {margin:20px 0;padding:16px;border:1px solid var(--border);border-radius:8px;}
.billing-account-section summary {font-weight:700;color:var(--accent);cursor:pointer;}
@media(max-width:850px){.billing-account-totals{grid-template-columns:1fr;gap:0;}}
.billing-tabs button[aria-pressed="true"] {box-shadow:inset 0 -3px var(--accent);}
.billing-queue-filters {grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;align-items:end;}
.billing-queue-filters > button {grid-column:1/-1;}
@media(max-width:650px){.billing-queue-filters{grid-template-columns:1fr;}}
.vital-history-heading {display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.vital-history-controls {display:flex;gap:16px;flex-wrap:wrap;margin:20px 0;}
.vital-history-controls label {display:grid;gap:8px;flex:1;min-width:160px;font-size:13px;font-weight:700;}
.vital-history table {font-size:13px;}
.vital-history caption {text-align:left;padding:16px 0;font-weight:700;}
.vital-history td,.vital-history th {white-space:normal;padding:12px;}
.vital-history td:last-child {font:inherit;color:inherit;}
.vital-trend-chart {display:block;width:100%;height:auto;color:#172d34;}
.vital-trend-chart text {fill:currentColor;font:12px Arial,Helvetica,sans-serif;}
.vital-grid {stroke:var(--border);stroke-width:1;}
.vital-line {stroke-width:2;}
.vital-series-0 {stroke:#176b5c;}
circle.vital-series-0 {fill:#176b5c;}
.vital-series-1 {stroke:#70539c;stroke-dasharray:6 4;}
circle.vital-series-1 {fill:#70539c;stroke-dasharray:none;}
@media(max-width:800px){.vital-history{padding:16px;scroll-margin-top:16px;}}

.document-drop-zone {border:2px dashed #64736c;border-radius:.6rem;padding:1rem;background:#f7faf9;transition:background .15s,border-color .15s;}
.document-drop-zone.drag-over {border-color:#17644c;background:#e2f3eb;}
.document-drop-zone:focus-within {outline:2px solid #17644c;outline-offset:2px;}
.document-drop-zone[aria-disabled=true] {opacity:.65;}
.lab-order-sheet p {white-space:pre-line;}
@media print {
  body.printing-office-form .lab-order-sheet {font:10pt/1.2 Arial,sans-serif;}
  body.printing-office-form .lab-order-sheet p {margin:.4em 0;}
  body.printing-office-form .lab-order-sheet h3 {margin:.8em 0 .35em;break-after:avoid;}
  body.printing-office-form .lab-order-sheet th, body.printing-office-form .lab-order-sheet td {font-size:9pt;padding:.35em;}
  body.printing-office-form .lab-order-sheet th:first-child {width:15%;}
}

.medication-review {margin:1rem 0;padding:1rem;max-width:48rem;}
.medication-review details {margin:.65rem 0;}
.medication-review summary {cursor:pointer;font-weight:600;}
.medication-review-limit,.medication-review-flag {border-left:4px solid var(--warning,#754c0b);padding:.6rem;background:var(--warning-bg,#fff1d5);color:var(--ink,#172d34);}
.medication-review-flag {margin:.6rem 0;}

/* Task-focused workspace and patient navigation. */
.workspace-open .topbar {height:64px;min-height:64px;padding:0 24px;}
.workspace-sidebar {top:64px;width:212px;padding:16px 10px;}
.workspace-open main {margin:24px 24px 40px 236px;}
.workspace-sidebar .module-nav {display:block;margin:0;}
.navigation-group {margin:0 0 20px;min-width:0;}
.navigation-group h3,.navigation-group > summary {font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin:0 10px 8px;color:var(--muted);font-weight:700;}
.navigation-group > summary {cursor:pointer;padding:8px 0;}
.navigation-group > div {display:flex;flex-direction:column;gap:3px;}
.workspace-sidebar .button {padding:10px 12px;font-size:13px;}
#sidebar-record {margin:0;padding:12px 20px;border-top:0;border-bottom:1px solid var(--border);}
#sidebar-record > .sidebar-label {display:none;}
#record-module-nav {display:flex;flex-wrap:wrap;gap:10px 24px;margin:0;align-items:start;}
#record-module-nav .navigation-group {margin:0;flex:1 1 180px;}
#record-module-nav .navigation-group h3 {margin:0 0 6px;font-size:10px;}
#record-module-nav .navigation-group > div {flex-direction:row;flex-wrap:wrap;gap:4px;}
#record-module-nav .button {font-size:12px;padding:7px 9px;min-height:34px;background:var(--raised,#fff);border-color:var(--border);}
#record-module-nav .button.nav-active {background:var(--selected,#dceee5);color:var(--accent);border-color:var(--accent);}
#patient-details > .registry-toolbar {top:64px;padding:14px 20px;gap:10px;}
#patient-details > .registry-toolbar h1 {font-size:25px;margin:0 0 5px;}
#patient-details .eyebrow {margin-bottom:6px;}
.record-actions {padding:10px 20px;gap:8px;}
.record-actions p {flex:1;font-size:11px;}
.record-actions .button {padding:7px 10px;min-height:34px;font-size:12px;}
.record-status {flex:1 1 280px;min-width:0;}
.record-status p {margin:0;line-height:1.5;overflow-wrap:anywhere;}
#details-message {font-size:12px;color:var(--muted);}
.chart-summary {flex-basis:210px;padding:16px;}
.chart-context-hidden .chart-summary {display:none!important;}
.demographics-disclosure {padding:10px 20px;}
.clinical-panel {padding:20px;}
.module-screen {padding:22px;}
.module-screen > .registry-toolbar h1 {font-size:28px;}
.module-form {grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;max-width:70rem;margin:20px 0;align-items:start;}
.module-form > label {margin:0;display:grid;gap:7px;min-width:0;}
.module-form > :not(label),.module-form > .field-wide,.module-form > .field-check,.module-form > label:has(textarea),.module-form > label:has(input[type=checkbox]) {grid-column:1/-1;}
.module-form .button.primary {width:auto;margin-top:4px;justify-self:start;}
.module-form input,.module-form select,.module-form textarea {min-width:0;}
.module-form .field-check,.module-form > label:has(input[type=checkbox]) {display:block;line-height:1.6;}
.module-form fieldset {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;min-width:0;margin:0;padding:18px;}
.module-form fieldset > label {margin:0;min-width:0;}
.module-form fieldset > :not(label),.module-form fieldset > .field-wide,.module-form fieldset > .field-check,.module-form fieldset > label:has(textarea) {grid-column:1/-1;}
.registration-section {border:1px solid var(--border);border-radius:8px;background:var(--raised,#fff);}
.registration-section > summary {padding:14px 18px;font-weight:700;cursor:pointer;color:var(--accent);}
.registration-section > div {padding:0 16px 16px;display:grid;gap:14px;}
.registration-section fieldset {background:var(--surface,#fff);}
.field-help {font-size:12px;color:var(--muted);margin:8px 0 0;}
.patient-search-grid {display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) auto;gap:14px;align-items:end;}
.patient-search-grid label {margin:0;display:grid;gap:8px;min-width:0;}
.patient-search-grid .search-controls {padding-bottom:0;}
.patient-search-grid .search-controls .button {min-height:44px;}
.calendar-date-navigation {display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin:12px 0 20px;padding:12px;background:var(--subtle,#eef3f0);border:1px solid var(--border);border-radius:8px;}
.calendar-date-navigation label {display:grid;gap:4px;font-size:11px;font-weight:700;color:var(--muted);}
.calendar-date-navigation input {width:100px;}
.calendar-date-navigation select {min-width:145px;}
.calendar-date-navigation .button {min-height:44px;}
.schedule-toolbar {grid-template-columns:repeat(3,minmax(130px,1fr));max-width:none;gap:12px;margin:0;}
.schedule-navigation {align-items:center;}
.schedule-book-action {margin-left:auto;background:var(--accent)!important;color:var(--raised,#fff)!important;}
.schedule-container {margin:12px 0 24px;}
.schedule-container > h2 {font-size:22px;margin:0 0 8px;}
.month-calendar {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border);margin-top:20px;min-width:560px;}
.month-weekday {padding:12px 8px;background:var(--subtle,#eef3f0);font-size:11px;font-weight:700;text-align:center;border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
.month-day {min-height:120px;min-width:0;display:flex;flex-direction:column;gap:5px;padding:10px;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--raised,#fff);color:var(--ink);text-align:left;cursor:pointer;font:inherit;}
.month-day:hover,.month-day:focus-visible {background:var(--selected,#e5f1eb);outline:2px solid var(--accent);outline-offset:-2px;}
.month-day[aria-pressed=true] {box-shadow:inset 0 0 0 2px var(--accent);}
.month-day-number {font-size:14px;font-weight:700;}
.month-count {font-size:11px;color:var(--accent);font-weight:700;}
.month-preview {font-size:10px;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.outside-month {background:var(--subtle,#edf2ef);color:var(--muted);}
.calendar-today .month-day-number {background:var(--accent);color:var(--raised,#fff);border-radius:50%;padding:3px 6px;align-self:flex-start;}
#appointment-booking-form {padding:20px;border:1px solid var(--border);border-radius:10px;background:var(--raised,#fff);max-width:64rem;}
.medication-review {max-width:none;margin:4px 0;}
#portal-nav {display:flex;flex-wrap:wrap;gap:8px;}
@media(max-width:1100px){#record-module-nav .navigation-group{flex-basis:45%;}.patient-search-grid{grid-template-columns:1fr 1fr;}.patient-search-grid .search-controls{grid-column:1/-1;}.calendar-date-navigation{gap:6px;}.calendar-date-navigation .button{font-size:11px;padding:9px;}}
@media(max-width:800px){.workspace-open .topbar{height:auto;min-height:64px;padding:10px 16px;}.workspace-sidebar{position:static;width:auto;top:auto;padding:10px 16px;}.workspace-sidebar .module-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}.workspace-open main{margin:16px;}.module-screen{padding:16px;}#patient-details > .registry-toolbar{position:static;}#sidebar-record{padding:12px 16px;}#record-module-nav{gap:12px;}.chart-summary{flex-basis:auto;}.module-form{gap:12px;}.schedule-book-action{margin-left:0;}.month-day{min-height:100px;}}
@media(max-width:600px){.module-form,.module-form fieldset,.schedule-toolbar,.patient-search-grid{grid-template-columns:minmax(0,1fr);}#record-module-nav .navigation-group{flex-basis:100%;}.calendar-date-navigation .button{flex:1 1 40%;}.calendar-date-navigation label{flex:1 1 40%;}.calendar-date-navigation input,.calendar-date-navigation select{width:100%;}.record-actions p{flex-basis:100%;}.registry-toolbar{flex-wrap:wrap;}.module-screen > .registry-toolbar h1{font-size:24px;}.month-calendar{min-width:490px;}.month-preview{display:none;}.month-day{min-height:86px;}.month-count{font-size:10px;}.module-form .button.primary{max-width:100%;}}
.module-screen,.patient-details {overflow:visible;}
.patient-section-switch {display:none;}
@media(max-width:600px){#record-module-nav .navigation-group,#record-module-nav > button{display:none;}#record-module-nav .patient-section-switch{display:grid;gap:6px;font-size:12px;font-weight:700;width:100%;}.month-calendar{min-width:0;}.month-day{padding:6px;min-height:72px;}.month-count{font-size:0;}.month-count:before{content:attr(data-count);font-size:10px;}.month-weekday{font-size:10px;padding:10px 2px;}}
.workflow-disclosure {border:1px solid var(--border);border-radius:8px;padding:14px;margin:14px 0;background:var(--raised,#fff);}
.workflow-disclosure > summary {font-size:14px;font-weight:700;cursor:pointer;color:var(--accent);}
.workflow-disclosure #encounter-form {margin-top:14px;}
#encounter-heading {scroll-margin-top:145px;line-height:1.5;}

/* Patient intake uses explicit questions and conditional detail fields. */
#portal-content {padding:24px;margin-top:20px;}
.intake-section {grid-column:1/-1;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;}
.intake-section > legend {font-size:18px;font-weight:700;padding:0 8px;}
.intake-section > p {font-size:13px;line-height:1.6;color:var(--muted);margin:0;}
.intake-field label {margin:0;display:grid;gap:8px;line-height:1.5;}
.intake-field textarea {width:100%;resize:vertical;}
.intake-field:has(input[type=checkbox]) label {display:block;}
#portal-verification {margin-top:16px;}
@media(max-width:600px){#portal-content {padding:16px;}.intake-section {padding:12px!important;}}
.medication-timing > p {font-size:13px;line-height:1.6;color:var(--muted);}
.medication-timing > label {display:block;margin:12px 0;}
.medication-timing > button {margin:5px 8px 0 0;}
.secure-message-body {white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;}
#portal-update-bar {display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;font-size:13px;}


dialog {max-width:560px;width:calc(100% - 32px);max-height:90vh;overflow:auto;padding:28px;border:1px solid var(--border);border-radius:12px;background:var(--raised,#fff);color:inherit;}
dialog::backdrop {background:#172d34ee;}
.session-locked main,.session-locked .workspace-sidebar,.session-locked #account,.session-locked dialog:not(#staff-lock),.session-locked #staff-session-restored {display:none!important;}
#staff-session-warning,#staff-session-restored {padding:12px 24px;background:var(--subtle,#eef3f0);border-bottom:1px solid var(--border);}
#staff-lock-form {margin:16px 0;}#staff-lock-discard {margin-top:12px;}

.session-locked #office-form-print,.session-locked.printing-office-form #office-form-print {display:none!important;visibility:hidden!important;}

/* Shared date/date-time popup; the native field remains keyboard editable. */
.patient-search-grid > label {align-self:end;}
.patient-search-grid input {min-height:46px;height:46px;font-size:14px;line-height:20px;margin:0;}
.patient-search-grid .search-controls {align-self:end;align-items:stretch;}
.patient-search-grid .search-controls .button {height:46px;min-height:46px;margin:0;white-space:nowrap;}
input[type=date],input[type=datetime-local] {cursor:pointer;min-width:0;}
input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator {pointer-events:none;}
.date-calendar {position:fixed;inset:auto;margin:0;z-index:10000;padding:14px;max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--raised,#fff);color:inherit;box-shadow:0 8px 24px #172d3433;font-size:13px;}
.date-calendar-heading {display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;}
.date-calendar-heading .button {padding:6px 8px;font-size:11px;}
.date-calendar-controls {display:grid;grid-template-columns:auto minmax(0,1fr) minmax(68px,.7fr) auto;gap:6px;align-items:end;}
.date-calendar-controls label,.date-calendar > label {display:grid;gap:4px;margin:0;font-size:12px;}
.date-calendar-controls select {padding:8px 3px;min-height:36px;margin:0;}
.date-calendar-controls > .button {font-size:0;padding:8px;min-height:36px;}
.date-calendar-controls > .button:first-child:after {content:'‹';font-size:20px;}
.date-calendar-controls > .button:last-child:after {content:'›';font-size:20px;}
.date-calendar-grid {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center;margin:12px 0;}
.date-calendar-grid > span {padding:6px 0;font-size:11px;color:var(--muted);}
.date-calendar-grid .button {padding:8px 0;min-height:34px;font-size:13px;}
.date-calendar-grid [aria-pressed=true] {background:var(--selected,#dceee5);border:2px solid var(--accent);}
.date-calendar-grid [aria-current=date] {text-decoration:underline;font-weight:800;}
.date-calendar > .button {margin-top:8px;width:100%;}
.date-calendar-status {font-size:12px;line-height:1.4;color:var(--muted);margin:8px 0 0;}
@media print {.date-calendar {display:none!important;}}

.session-locked .date-calendar {display:none!important;}

/* Keep the focus indicator inside controls so it cannot paint over labels or
   adjacent controls in dense forms. Preserve a visible keyboard focus ring. */
:is(input,select,textarea,button,.button,summary,[role=button],[role=combobox]):focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-2px;
}
/* Fieldset/portal labels also wrap their inputs; give the label text its own
   row, including when typeahead inserts a wrapper around the control. */
form label:has(> input:not([type=checkbox]):not([type=radio])),
form label:has(> select),form label:has(> textarea),form label:has(> .typeahead) {
  display:grid;
  gap:8px;
  min-width:0;
  line-height:1.4;
}
@media (forced-colors:active) {
  :is(input,select,textarea,button,.button,summary,[role=button],[role=combobox]):focus-visible {
    outline-color:Highlight;
  }
}

/* Unsaved-change decisions must remain visible at any document scroll position.
   This is a non-modal alert: normal keyboard navigation remains available. */
.unsaved-warning {
  position:fixed;
  z-index:10001;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  width:calc(100% - 32px);
  max-width:640px;
  max-height:calc(100vh - 32px);
  max-height:calc(100dvh - 32px);
  overflow:auto;
  margin:0;
  box-shadow:0 8px 32px #172d3440;
}
.unsaved-warning p {margin:0 0 12px;line-height:1.5;}
.unsaved-warning .button {margin:4px 8px 0 0;white-space:normal;}
.session-locked .unsaved-warning {visibility:hidden;}
.notification-badge {display:inline-block;min-width:1.6em;margin-left:6px;padding:2px 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;line-height:1.4;text-align:center;}
.session-locked #staff-notifications {visibility:hidden;}
.account-menu {position:relative;min-width:0;}
.account-menu > summary {cursor:pointer;list-style:none;padding:10px 12px;border:1px solid var(--border);border-radius:7px;color:inherit;overflow-wrap:anywhere;}
.account-menu > summary::-webkit-details-marker {display:none;}
.account-menu-actions {position:absolute;right:0;top:calc(100% + 6px);z-index:10002;min-width:180px;max-width:calc(100vw - 32px);padding:8px;background:var(--raised,#fff);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px #172d3433;display:grid;gap:6px;}
.account-menu-actions .button {text-align:left;width:100%;}
#staff-session-restored {line-height:1.6;overflow-wrap:anywhere;}
#staff-session-restored .button {margin:4px 0 4px 12px;}
/* Desktop session notices share the content column beside the fixed sidebar. */
@media(min-width:801px) {
  .workspace-open #staff-session-warning,
  .workspace-open #staff-session-restored {margin-left:212px;}
}
/* Native choice controls share one size and full-label pointer target. */
input:is([type=checkbox],[type=radio]),
.module-form input:is([type=checkbox],[type=radio]),#sign-panel input[type=checkbox] {
  appearance:auto;accent-color:var(--accent);width:20px;height:20px;min-width:20px;min-height:20px;
  padding:0;margin:0 8px 0 0;vertical-align:middle;flex:0 0 20px;cursor:pointer;
}
label:has(> input:is([type=checkbox],[type=radio])),
.module-form label:has(> input:is([type=checkbox],[type=radio])),
.intake-field label:has(> input:is([type=checkbox],[type=radio])) {
  display:flex;align-items:center;gap:8px;min-height:44px;line-height:1.5;cursor:pointer;white-space:normal;
}
label:has(> input:is([type=checkbox],[type=radio])) > input {order:-1;margin-right:0;}
input:is([type=checkbox],[type=radio]):disabled {cursor:not-allowed;}
.staff-account-list {table-layout:fixed;}
.staff-account-list caption {text-align:left;padding:12px 16px;font-weight:700;}
.staff-account-list th,.staff-account-list td {white-space:normal;overflow-wrap:anywhere;padding:12px 16px;}
.staff-account-list td:last-child {font:inherit;}
.staff-account-list .button {white-space:normal;}
@media(max-width:600px){.staff-account-list {table-layout:auto;}.staff-account-list th,.staff-account-list td {padding:8px;}}

.note-ai-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.note-ai-comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:24rem;overflow:auto}.note-ai-comparison textarea{width:100%}@media(max-width:760px){.note-ai-comparison{grid-template-columns:1fr}}

/* Platform onboarding uses the existing control styles in a separate administrative workspace. */
.platform-admin main{max-width:1050px}.platform-admin form{padding:20px;background:#fff;border:1px solid var(--border);border-radius:10px}.platform-admin button{margin:6px 8px 6px 0}.platform-admin textarea{display:block;width:100%;min-height:90px;padding:12px;font:inherit;border:1px solid var(--border);border-radius:7px}.platform-admin pre{white-space:pre-wrap;overflow-wrap:anywhere}.platform-admin dl{display:grid;grid-template-columns:minmax(180px,1fr) 1fr;gap:10px}.platform-admin dt{font-weight:bold}.platform-admin dd{margin:0}#platform-list{display:grid;gap:8px;margin-bottom:20px}#platform-status{position:sticky;top:0;background:#fff;padding:12px;border:1px solid var(--border);z-index:5}#platform-status:empty{display:none}@media(max-width:600px){.platform-admin dl{grid-template-columns:1fr}.platform-admin dd{margin-bottom:10px}}

.password-notice{padding:12px 24px;background:var(--warning-bg,#fff4d6);color:var(--warning,#694d00);display:flex;gap:12px;align-items:center;flex-wrap:wrap;}.password-notice .button{margin-left:auto;}#password-change-dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--border);border-radius:12px;padding:24px;background:var(--surface,#fff);color:var(--ink,#20323d);}#password-change-dialog p{line-height:1.6;}#password-change-dialog label{display:grid;gap:6px;}.session-locked .password-notice{display:none!important;}

.mfa-enrollment-qr { display:block; max-width:100%; height:auto; background:white; shape-rendering:crispEdges; }

.notification-operations{width:min(960px,calc(100% - 32px));max-height:90vh;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:24px;background:var(--surface,#fff);color:var(--ink,#20323d)}.notification-operations section{border-top:1px solid var(--border);padding:12px 0}.notification-operations label{display:block;margin:10px 0}.notification-operations input:not([type=checkbox]){display:block;max-width:100%}.notification-operations p{overflow-wrap:anywhere;line-height:1.5}
