/* Auth and profile additions use the accepted source's color and shape roles. */
.live-notification-panel{position:fixed;z-index:110;width:350px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:17px;box-shadow:0 12px 36px #18191626}
.live-notification-panel h2{font-size:var(--font-heading-small);padding-right:38px;margin-bottom:16px}
.live-notification-panel>.icon-button{position:absolute;top:17px;right:17px}
.identity-entry{min-height:100vh;max-width:1220px;margin:auto;padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.identity-story{background:var(--ink);color:var(--paper);border-radius:26px;padding:42px;display:flex;flex-direction:column;justify-content:space-between;gap:48px;overflow:hidden}
.identity-brand{font-size:var(--font-heading-large);letter-spacing:-1.5px;text-decoration:none;line-height:1.2}.identity-brand span{color:var(--pink)}
.identity-story h2{font-size:clamp(2rem,4vw,3rem);line-height:1.08;letter-spacing:-1.8px;margin:18px 0}.identity-story p{line-height:1.7;color:#c1c2b8}.identity-story .eyebrow{color:var(--olive)}
.identity-art{display:flex;gap:12px;align-items:center}.identity-art span{display:grid;place-items:center;width:100px;height:110px;background:var(--pink);color:var(--ink);border-radius:17px;font-size:4.5rem}.identity-art span:nth-child(2){background:var(--yellow);transform:rotate(-8deg)}.identity-art span:nth-child(3){background:var(--olive)}
.identity-card{background:var(--paper);border:1px solid var(--line);border-radius:26px;padding:40px;align-self:center;min-width:0}.identity-card>h1{margin:16px 0}.identity-card p{line-height:1.65;margin:12px 0}.identity-card form{display:grid;gap:18px;margin:24px 0}.identity-card input:not([type=checkbox]){width:100%;min-height:46px}.identity-card .button{min-height:44px}.identity-card .text-button{min-height:32px}.identity-card #second-factor .text-button{margin-top:8px}.identity-divider{height:1px;background:var(--line);margin:24px 0}.identity-card .discovery-privacy{font-size:var(--font-body);line-height:1.6;margin:24px 0}.identity-card summary{cursor:pointer;min-height:28px}.identity-card .discovery-privacy h3{margin-top:16px}.identity-check{display:flex;align-items:start;gap:10px;line-height:1.5}.identity-check input{margin-top:3px}
.identity-error{color:#803b32;background:#f5ded8;padding:12px;border-radius:12px;border:1px solid #88463e;overflow-wrap:anywhere}
.profile-sheet{max-width:410px;margin:0;inset:82px 24px auto auto;width:calc(100% - 32px)}.profile-sheet .modal-header{padding:24px 24px 0}.profile-sheet .modal-body{padding:20px 24px 24px}.profile-identity{display:flex;align-items:center;gap:12px;margin-bottom:20px;overflow-wrap:anywhere}.profile-identity>div{min-width:0}.profile-identity small{display:block;color:var(--muted);margin-top:5px}.profile-current{padding:16px;background:var(--paper-deep);border-radius:12px;margin:16px 0}.profile-current small{display:block;color:var(--muted);margin-bottom:5px}.profile-current strong{overflow-wrap:anywhere}.profile-actions{display:grid;gap:8px}.profile-actions .button{justify-content:flex-start;min-height:44px;text-align:left}.organization-options{list-style:none;margin:16px 0;padding:0;display:grid;gap:8px;max-height:45vh;overflow:auto}.organization-options button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:12px;min-height:60px}.organization-options button[aria-current=true]{background:var(--pink-soft);border-color:#885473}.organization-options button:hover{background:var(--paper-deep)}.organization-options button>span:nth-child(2){min-width:0;flex:1}.organization-options strong{display:block;overflow-wrap:anywhere}.organization-options small{display:block;color:var(--muted);margin-top:4px}.organization-search{display:block}.organization-search input{margin-top:8px;width:100%;min-height:44px;padding:10px 12px;border:1px solid #8c917e;border-radius:12px;background:var(--white)}
.live-placeholder{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:26px;min-height:210px;background:var(--paper-deep);border-radius:17px;line-height:1.6}.live-placeholder .button{align-self:flex-start}.live-connection{margin-bottom:20px;line-height:1.6;color:var(--muted)}.live-stat-note{font-size:var(--font-body);line-height:1.65;max-width:240px;margin-top:18px}.stat-card .live-stat-number{font-size:3.25rem;font-weight:500;margin-top:20px}.live-calendar-date{font-size:var(--font-heading-medium);margin:22px 0}.live-state{font-size:var(--font-body);color:var(--muted);line-height:1.65}.live-profile-fields{display:grid;grid-template-columns:100px 1fr;gap:14px;line-height:1.5;overflow-wrap:anywhere}.live-profile-fields dd{margin:0}.sidebar-profile .profile-copy{min-width:0}.sidebar-profile .profile-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-avatar{flex-shrink:0}
@media(max-width:760px){.identity-entry{padding:16px;grid-template-columns:1fr;gap:16px}.identity-story{padding:24px;gap:22px}.identity-story h2{font-size:var(--font-heading-large)}.identity-story>p,.identity-art{display:none}.identity-card{padding:24px;border-radius:17px}.profile-sheet{inset:16px 16px auto auto;max-height:calc(100dvh - 32px)}.live-profile-fields{grid-template-columns:1fr;gap:6px}.live-profile-fields dd{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.identity-art span{transform:none}}
@media(forced-colors:active){.identity-card,.profile-current,.organization-options button,.live-placeholder{border:1px solid CanvasText}.organization-options button[aria-current=true]{border:2px solid Highlight}}
/* Scope layout to live details; native review/form dialogs keep their own rules. */
.customer-directory-columns { --detail-single-pane:0; }
.patient-overview.customer-directory-columns.detail-directory-wide {
  grid-template-columns:minmax(260px, .72fr) minmax(0, 1.6fr);
  gap:24px;
}
.customer-directory-columns .customer-list-header { flex-wrap:wrap; }
.customer-directory-columns > .patient-list .patient-row { flex-wrap:wrap; }
.customer-directory-columns > .patient-list .patient-row-info { flex:1 1 140px; }
.customer-directory-columns > .patient-list .patient-row-info small { overflow-wrap:anywhere; }
.visit-card.detail-card { container-type:inline-size; min-height:0; }
.detail-card .customer-detail-heading { margin-bottom:12px; }
.detail-card h3 { margin:12px 0; line-height:1.3; }
.detail-card > p { overflow-wrap:anywhere; }
.detail-card .detail-section { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.detail-card .detail-section > h4 { font-size:var(--font-body); margin:0 0 12px; line-height:1.4; }
.detail-card .detail-section > .customer-fields { margin:0; }
.visit-card.detail-card .customer-fields { grid-template-columns:minmax(0,1fr); gap:16px 24px; }
.detail-card .customer-fields .detail-field-wide { grid-column:1 / -1; }
.detail-card .customer-fields dd { font-variant-numeric:tabular-nums; }
.detail-card .detail-section > .live-invoice-actions,
.detail-card .detail-section > .accounting-link-actions { margin-top:12px; }
.detail-card .live-invoice-actions:empty,
.detail-card .accounting-link-actions:empty { display:none; }
.detail-card .button { max-width:100%; white-space:normal; }
.detail-card .detail-amounts dd { font-weight:600; }
.detail-card .invoice-lines-summary { margin:0; }
.detail-card .invoice-lines-summary li { gap:8px; }
.detail-card .invoice-lines-summary span { font-variant-numeric:tabular-nums; }
.detail-card .customer-footnote { margin-top:16px; }
.detail-card .accounting-table th,
.detail-card .accounting-table td { line-height:1.5; }
.detail-card .documents-entry { margin-top:24px; margin-bottom:0; border-bottom:0; }
.detail-jump { display:none; }
[id$="-detail-title"], [id$="-list-title"] { scroll-margin-top:16px; }
[id$="-detail-title"]:focus-visible, [id$="-list-title"]:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
@container (min-width:26rem) {
  .visit-card.detail-card .customer-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-card .invoice-lines-summary li { grid-template-columns:minmax(0,1fr) auto; }
  .detail-card .invoice-lines-summary li strong { grid-column:1; }
  .detail-card .invoice-lines-summary li small { grid-column:1; }
  .detail-card .invoice-lines-summary li span { grid-column:2; grid-row:1 / 3; align-self:center; text-align:right; max-width:180px; }
}
.account-plan-dialog .account-plan-columns { grid-template-columns:minmax(240px,.8fr) minmax(0,1.3fr); }
@media(max-width:760px) {
  .patient-overview.customer-directory-columns.detail-directory-wide { grid-template-columns:minmax(0,1fr); }
  .customer-directory-columns .detail-jump { display:flex; align-items:center; min-height:44px; width:fit-content; margin-block:8px; }
  .account-plan-dialog .account-plan-columns { grid-template-columns:minmax(0,1fr); }
  .account-plan-columns .detail-jump { display:flex; align-items:center; min-height:44px; margin-block:8px; }
}
.customer-columns { align-items: start; }
/* The register has the full workspace width; dashboard breakpoints do not apply. */
.patient-overview.customer-directory-columns {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
}
.customer-directory-columns .patient-rows { display: flex; flex-direction: column; }
.customer-directory-columns .customer-list-header { min-height: 40px; gap: 12px; align-items: center; }
.customer-list-header h2 { min-width: 0; }
.customer-list-header .button { flex-shrink: 0; }
.customer-list-tools { display: grid; gap: 12px; margin-bottom: 18px; }
.customer-list-tools .field-search { width: 100%; min-width: 0; }
.customer-list-tools input { width: 100%; min-width: 0; }
.customer-filter-row { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.customer-filter-row .button { flex-shrink: 0; min-height: 38px; }
.customer-columns > *, .customer-columns .patient-row-info { min-width: 0; }
.customer-columns .patient-row-info strong { overflow-wrap: anywhere; }
.customer-detail h3 { font-size:var(--font-heading-medium); overflow-wrap: anywhere; margin: 20px 0; }
.customer-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.customer-fields { display: grid; gap: 16px; margin: 22px 0; }
.customer-fields div { min-width: 0; }
.customer-fields dt { font-size:var(--font-body); color: #55574e; margin-bottom: 5px; }
.customer-fields dd { margin: 0; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.customer-footnote { color: #55574e; font-size:var(--font-body); line-height: 1.6; margin-top: 24px; }
.customer-filter { display: grid; gap: 6px; font-size:var(--font-body); flex: 1 1 150px; min-width: 0; }
.customer-filter select { padding: 10px 12px; border: 1px solid #c4c5ba; border-radius: 20px; background: #fffdf5; color: #292c26; max-width: 100%; }
.customer-notice { background: #e7eddb; border-radius: 16px; padding: 16px 20px; color: #30372a; margin: 12px 0 24px; }
.customer-columns .time-pill { flex-shrink: 0; }
@media(max-width: 760px) {
  .patient-overview.customer-columns { grid-template-columns: minmax(0,1fr); }
  .customer-columns .patient-row { flex-wrap: wrap; }
  .customer-columns .time-pill { margin-left: 48px; }
}
/* CS-UI-2026-09-21: shared register surfaces and native, generously sized controls. */
.campaign-detail { background: var(--surface, #fffcf3); }
.campaign-article-summary { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.campaign-article-summary li { display: grid; gap: .35rem; overflow-wrap: anywhere; }
.campaign-article-picker { display: grid; gap: 1rem; margin-top: 1rem; }
.campaign-article-option { min-width: 0; border: 1px solid #777a69; border-radius: 1rem; padding: 1rem; }
.campaign-article-option[hidden] { display: none; }
.campaign-article-option legend { font-weight: 600; max-width: 100%; overflow-wrap: anywhere; padding-inline: .4rem; }
.campaign-check { display: flex; align-items: center; gap: .75rem; min-height: 2.4rem; cursor: pointer; }
.campaign-check input[type=checkbox] { width: 1.2rem; height: 1.2rem; min-height: 0; flex: 0 0 auto; accent-color: #242b20; }
.campaign-article-option .form-grid { margin-top: .75rem; }
.invoice-campaign-offers { margin-block: .6rem; padding: .8rem; background: #e2e8d7; color: #181916; border-radius: .8rem; }
.invoice-campaign-offers p { margin-bottom: .5rem; }
.product-directory:has(#campaign-list-title), #campaign-form,
#modal:has(#campaign-form) .modal-header .eyebrow { overflow-wrap: anywhere; }
/* Article/service workflows share the accepted register anatomy. */
.visit-card.product-detail { background: var(--blue); }
.product-detail h3 { overflow-wrap: anywhere; }
/* Invoice workflow structure. Shared visual roles live in material.css. */
.live-invoice-card .invoice-lines-summary li { border-bottom-color:var(--invoice-rule); }
.live-invoice-card .button.secondary { border-color:var(--invoice-rule); }
.live-invoice-card h3, .live-invoice-card dd { overflow-wrap:anywhere; }
.invoice-lines { display:grid; gap:12px; margin:20px 0; }
.invoice-line { min-width:0; border:1px solid var(--line, #d5d6ce); border-radius:16px; padding:16px; }
.invoice-line legend { padding:0 6px; font-weight:600; }
.invoice-line .form-grid { margin-top:8px; }
.invoice-lines-summary { display:grid; gap:12px; margin:20px 0; padding:0; list-style:none; }
.invoice-lines-summary li { display:grid; gap:5px; border-bottom:1px solid #0002; padding-bottom:12px; overflow-wrap:anywhere; }
.invoice-lines-summary small { line-height:1.6; }
.modal-body .invoice-summary-total { font-size:var(--font-heading-medium); font-weight:600; margin:16px 0; color:var(--ink); }
.live-invoice-card .customer-fields { grid-template-columns:1fr; }
.invoice-line .button { margin-top:12px; }
.invoice-dates { margin-top:16px; }
.live-invoice-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.live-invoice-actions .button:not(.secondary) { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.live-delivery-body { white-space:pre-wrap; overflow-wrap:anywhere; padding:18px; border:1px solid var(--line); border-radius:16px; font-size:var(--font-body); line-height:1.7; margin:18px 0; }
.invoice-sections { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.invoice-sections .button[aria-pressed=true] { background: var(--ink); color: var(--paper); }
.supplier-detail { background: var(--blue); }
.supplier-detail h3, .supplier-detail p, .supplier-detail dd { overflow-wrap: anywhere; }
.supplier-detail .customer-fields { grid-template-columns: minmax(0,1fr); }
.supplier-detail h4 { margin-block: 24px 12px; }
.supplier-detail .accounting-table td:nth-child(2) { min-width: 160px; overflow-wrap: anywhere; }
.supplier-attachments { list-style: none; padding: 0; display: grid; gap: 20px; }
.supplier-attachments li { min-width: 0; overflow-wrap: anywhere; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.supplier-paging { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 16px; padding: 4px; }
.supplier-paging p { flex-basis: 100%; }
.supplier-directory .patient-row { flex-wrap: wrap; }
.supplier-directory .patient-row-info { min-width: 0; flex: 1 1 130px; }
.supplier-directory .patient-row-info strong, .supplier-directory .patient-row-info small { overflow-wrap: anywhere; }
.supplier-directory .live-invoice-actions .button { max-width: 100%; white-space: normal; }
.supplier-download-scope { background: var(--blue); padding: 20px; border-radius: 20px; }
.supplier-download-dialog p { margin-block: 12px; line-height: 1.5; }
.supplier-download-dialog h3, .supplier-download-dialog p { overflow-wrap: anywhere; }
.supplier-download-dialog .form-actions { flex-wrap: wrap; }
.supplier-download-dialog .button, .supplier-attachments .button { max-width: 100%; white-space: normal; }
.supplier-draft-scope { background: var(--blue); padding: 20px; border-radius: 20px; }
.supplier-draft-dialog p { margin-block: 12px; line-height: 1.5; }
.supplier-draft-dialog h3, .supplier-draft-dialog p { overflow-wrap: anywhere; }
.supplier-draft-dialog .form-actions { flex-wrap: wrap; }
.supplier-draft-dialog .button { max-width: 100%; white-space: normal; }
.supplier-book-scope { background: var(--blue); padding: 20px; border-radius: 20px; }
.supplier-book-dialog p { margin-block: 12px; line-height: 1.5; }
.supplier-book-dialog p, .supplier-book-dialog h3, .supplier-book-dialog li { overflow-wrap: anywhere; }
.supplier-book-dialog .form-actions { flex-wrap: wrap; }
.supplier-book-dialog .button { max-width: 100%; white-space: normal; }
/* Scoped integration rules; accepted source CSS stays unchanged. */
.form-actions.fiscal-actions { flex-wrap: wrap; }
.fiscal-actions .button { max-width: 100%; white-space: normal; }
.accounting-period { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin:20px 0; }
.accounting-period .form-field { flex:1 1 160px; margin:0; min-width:0; }
.accounting-period .form-field:first-child { flex-basis:240px; }
.accounting-period input,.accounting-period select { width:100%; min-width:0; }
.accounting-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.accounting-tabs[hidden] { display:none; }
.lifecycle-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:520px) { .lifecycle-fields { grid-template-columns:minmax(0,1fr); } }
.accounting-tabs .button[aria-pressed=true],
.accounting-tabs .button[aria-pressed=true]:hover,
.accounting-tabs .button[aria-pressed=true]:focus-visible { background:var(--ink); color:var(--paper); }
.accounting-caption { line-height:1.6; margin:12px 0 20px; color:#55574e; }
.accounting-summary strong { font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.accounting-report-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.accounting-table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.accounting-table caption { text-align:left; font-size:var(--font-body); padding:12px 0; }
.accounting-table th,.accounting-table td { text-align:left; padding:12px 8px; border-bottom:1px solid var(--line); font-size:var(--font-body); vertical-align:top; }
.accounting-table th { font-weight:500; }
.accounting-table th:first-child,.accounting-table td:first-child { overflow-wrap:anywhere; }
.accounting-table .amount-cell { text-align:right; white-space:nowrap; }
.accounting-table tfoot { font-weight:600; }
.accounting-scroll { overflow-x:auto; max-width:100%; }
.accounting-scroll:focus-visible { outline:2px solid #775369; outline-offset:3px; }
.accounting-voucher-card { background:var(--blue); }
.accounting-voucher-card h3 { overflow-wrap:anywhere; }
.accounting-voucher-card .customer-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.accounting-voucher-card .accounting-table td:first-child { min-width:90px; }
.accounting-pagination { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:20px 0 0; }
.accounting-pagination p { flex:1 1 100%; }
.accounting-link-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.accounting-journal .patient-row { flex-wrap:wrap; }
.accounting-journal .patient-row-info { flex:1 1 130px; }
.ledger-search { width:100%; margin-bottom:18px; }
.ledger-search input { width:100%; min-width:0; }
.ledger-table th small { display:block; margin-top:6px; }
.ledger-table td:nth-child(2) { min-width:150px; overflow-wrap:anywhere; }
.ledger-table th:first-child { min-width:100px; }
.ledger-detail .customer-fields dd { font-variant-numeric:tabular-nums; }
.accounting-table .accounting-account-link { text-align:left; text-decoration:underline; text-underline-offset:3px; white-space:normal; overflow-wrap:anywhere; padding:0; min-height:32px; }
@media(max-width:760px) { .accounting-report-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:520px) { .accounting-voucher-card .customer-fields { grid-template-columns:minmax(0,1fr); } }
.documents-entry { margin-block: 20px; padding-block: 16px; border-block: 1px solid var(--line, #d5d9dc); }
.documents-entry h4 { margin: 0 0 8px; font-size:var(--font-body); }
.documents-entry p { font-size:var(--font-body); margin: 0 0 12px; }
.documents-toolbar, .documents-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.documents-list { padding: 0; margin: 20px 0; list-style: none; display: grid; gap: 16px; }
.document-card { min-width: 0; padding: 18px; background: var(--blue); border: 1px solid var(--line); border-radius: 20px; }
.documents-card-heading h3 { margin: 0; font-size:var(--font-body); min-width: 0; overflow-wrap: anywhere; flex: 1 1 180px; }
.document-card dd, .document-card dt { overflow-wrap: anywhere; }
.document-card .form-actions { flex-wrap: wrap; }
.document-preview { max-width: 100%; margin-block: 16px; }
.document-preview img { max-width: 100%; max-height: 65vh; display: block; margin-inline: auto; object-fit: contain; }
.document-preview iframe { width: 100%; height: 55vh; border: 1px solid var(--line); border-radius: 12px; }
#document-file { max-width: 100%; min-width: 0; }
#document-reason { width: 100%; min-height: 100px; resize: vertical; }
@media (max-width: 520px) { .document-card { padding: 12px; } .documents-toolbar .button { flex: 1 1 auto; } }
.voucher-vat { margin-block: 20px; padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.voucher-vat h3 { margin: 0 0 12px; font-size:var(--font-body); }
.vat-actions, .vat-row-offer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-block: 12px; }
.vat-row-offer small { flex: 1 1 180px; }
.vat-workbench { margin-top: 16px; }
.vat-proposal { margin-top: 16px; padding: 16px; background: var(--blue); border-radius: 16px; }
.vat-proposal h4 { margin: 0 0 12px; }
.vat-proposal h4:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.vat-totals { grid-template-columns: repeat(3,minmax(0,1fr)); }
.vat-totals dd { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.account-plan-dialog { width: min(960px, calc(100vw - 32px)); max-width: min(960px, calc(100vw - 32px)); }
.account-plan-columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; }
.account-plan-columns > section { min-width: 0; }
.account-plan-columns h2 { font-size:var(--font-heading-small); }
.account-plan-toolbar { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.account-plan-toolbar .form-field { flex: 1 1 120px; }
.account-plan-columns .patient-row { flex-wrap: wrap; gap: 10px; }
.account-plan-columns .patient-rows { display: grid; grid-template-columns: minmax(0,1fr); }
.account-plan-columns .patient-row-info { min-width: 0; flex: 1 1 160px; }
.account-plan-columns .patient-row-info strong, .account-plan-detail h3, .account-plan-detail dd { overflow-wrap: anywhere; }
.account-plan-detail { background: var(--blue); }
.series-default-card { padding: 20px; border-radius: 20px; background: var(--blue); margin-block: 16px; overflow-wrap: anywhere; }
.series-default-card h3 { margin-top: 0; }
.series-prefix { display: block; font-size:var(--font-heading-large); margin-block: 12px; }
.series-heading { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 12px; }
.series-catalog { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.series-catalog li { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 16px; }
.series-catalog span { font-size:var(--font-body); }
.opening-card { padding: 20px; background: var(--blue); border-radius: 20px; margin-block: 20px; }
.opening-card h3 { margin-top: 0; }
.opening-card dd { overflow-wrap: anywhere; }
.opening-year { display: flex; gap: 12px; flex-wrap: wrap; align-items: end; }
.opening-year .form-field { flex: 1 1 240px; min-width: 0; }
.opening-year select { width: 100%; min-width: 0; }
#opening-reason { width: 100%; min-height: 90px; resize: vertical; }
#opening-reason-form { margin-top: 24px; }
.opening-edit-rows { display: grid; gap: 16px; margin-block: 20px; }
.opening-edit-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 17px; }
.opening-edit-row legend { padding-inline: 6px; }
.opening-edit-account { grid-column: 1 / -1; }
.opening-edit-row .form-field { min-width: 0; }
.opening-edit-row input, .opening-edit-row select { width: 100%; min-width: 0; }
.opening-edit-row .button { justify-self: start; grid-column: 1 / -1; }
#opening-manual-reason { width: 100%; min-height: 90px; resize: vertical; }
@media(max-width:520px) { .opening-edit-row { grid-template-columns: minmax(0, 1fr); padding: 12px; } }
.opening-dialog .form-actions { flex-wrap: wrap; }
.opening-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.opening-totals .opening-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.opening-totals dd { font-variant-numeric: tabular-nums; }
@media(max-width:520px) { .opening-fields, .opening-totals .opening-fields { grid-template-columns: minmax(0, 1fr); } }
.account-plan-detail h4 { margin-top: 24px; }
.account-plan-dialog .form-actions { flex-wrap: wrap; }
.account-plan-dialog .button { max-width: 100%; white-space: normal; }
.account-import-rows { display: grid; gap: 10px; margin-block: 16px; }
.account-import-row { padding: 12px; border: 1px solid var(--line); border-radius: 14px; overflow-wrap: anywhere; }
.account-import-row small { display: block; margin-top: 6px; }
.import-errors { padding-left: 20px; overflow-wrap: anywhere; }
.account-plan-dialog .form-hint { overflow-wrap: anywhere; }
.account-import-rows + .accounting-pagination, .import-errors + .accounting-pagination { margin-bottom: 20px; }
.sie-review-dialog .form-actions, .sie-tabs, .sie-pager { display: flex; flex-wrap: wrap; gap: 10px; }
.sie-tabs { margin-block: 20px; }
.sie-pager { margin-block: 16px 24px; align-items: center; }
.sie-pager p { flex-basis: 100%; }
.sie-review-dialog .button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.sie-review-dialog .form-hint, .sie-errors { overflow-wrap: anywhere; }
.sie-review-dialog input { width: 100%; min-width: 0; }
.sie-review-dialog .sie-check { display: flex; align-items: flex-start; gap: 10px; margin-block: 16px; line-height: 1.5; color: var(--ink); }
.sie-review-dialog .sie-check input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 1px; }
#sie-outcome { margin-top: 20px; line-height: 1.5; }
.sie-review-dialog .form-actions { margin-block: 16px; }
.sie-export-dialog .form-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.sie-export-dialog .button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.sie-export-dialog select { width: 100%; min-width: 0; }
.sie-export-scope { padding: 20px; border-radius: 20px; background: var(--blue); margin-block: 20px; line-height: 1.5; overflow-wrap: anywhere; }
.sie-export-scope p, .sie-export-scope h3 { margin-bottom: 12px; }
.sie-export-scope ul { padding-left: 20px; margin-block: 16px; }
.sie-export-dialog #sie-export-status { overflow-wrap: anywhere; }
@media(max-width:520px) { .sie-export-scope { padding: 12px; } }
.sie-rows { display: grid; gap: 10px; margin-top: 16px; }
.sie-row { padding: 12px; border: 1px solid var(--line); border-radius: 14px; overflow-wrap: anywhere; }
.sie-row small { display: block; margin-top: 6px; }
.sie-detail { padding: 20px; border-radius: 20px; background: var(--blue); margin-block: 20px; }
.sie-detail h3, .sie-detail p { overflow-wrap: anywhere; margin-bottom: 12px; }
.sie-errors { padding-left: 20px; }
@media(max-width:520px) { .sie-detail { padding: 12px; } }
.account-plan-dialog .form-field { min-width: 0; }
.account-plan-dialog input, .account-plan-dialog select { width: 100%; min-width: 0; }
.account-plan-dialog [tabindex="-1"]:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
@media(max-width:680px) { .account-plan-columns { grid-template-columns: minmax(0,1fr); } }
.vat-proposal .accounting-table th:first-child { min-width: 100px; }
@media (max-width:520px) { .voucher-vat, .vat-proposal { padding: 12px; } .vat-totals { grid-template-columns: minmax(0,1fr); } .vat-actions .button { flex: 1 1 auto; } }
.vat-report { display: grid; gap: 20px; min-width: 0; }
.vat-report > * { min-width: 0; margin-block: 0; }
.vat-report-scope { background: var(--blue); overflow-wrap: anywhere; }
.vat-report-scope p { line-height: 1.6; }
.vat-report-warning { border: 2px solid currentColor; }
.vat-report-table td:nth-child(3) { white-space: normal; min-width: 160px; max-width: 360px; }
.report-export-entry { margin-block: 0 20px; }
.report-export-scope { background: var(--blue); padding: 20px; border-radius: 20px; overflow-wrap: anywhere; }
.report-export-scope h3 { margin-top: 0; }
.report-export-scope p { margin-block: 8px; line-height: 1.5; }
.report-export-dialog .form-actions { flex-wrap: wrap; gap: 12px; }
.report-export-dialog .button { max-width: 100%; white-space: normal; }

/* TASK-204: organize existing source components; foundation tokens stay intact. */
.report-workspace { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; align-items:start; }
.report-content, #accounting-report-results { min-width:0; }
.report-navigation { position:sticky; top:20px; min-width:0; }
.report-navigation .accounting-tabs { flex-direction:column; align-items:stretch; margin-bottom:0; }
.report-navigation .button { justify-content:flex-start; text-align:left; white-space:normal; }
.report-workspace-wide { grid-template-columns:minmax(0,1fr); }
.report-workspace-wide .report-navigation { position:static; }
.report-workspace-wide .accounting-tabs { flex-direction:row; flex-wrap:wrap; margin-top:12px; }
.report-context-heading { flex-wrap:wrap; gap:12px; margin-top:24px; }
.report-context-heading .report-export-entry { margin:0; }
.accounting-period-panel .accounting-period { margin-block:16px; gap:12px; }
.accounting-period-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
.accounting-period-links .text-button { min-height:40px; text-decoration:underline; text-underline-offset:3px; }
.accounting-tools { margin-bottom:24px; }
.accounting-tools .form-actions { flex-wrap:wrap; margin-top:16px; }
.report-search { margin-block:20px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px 20px; align-items:center; }
.report-search-label { grid-column:1; font-weight:500; }
.report-search .field-search { grid-column:1; width:100%; }
.report-search input { width:100%; min-width:0; }
#accounting-report-search-status { grid-column:2; grid-row:1; margin:0; }
#accounting-report-search-scope { grid-column:2; grid-row:2; margin:0; line-height:1.5; }
.report-content .accounting-report-grid { grid-template-columns:minmax(0,1fr); }
.report-content .accounting-report-grid .accounting-table { table-layout:fixed; }
.report-content .accounting-report-grid .accounting-table th:last-child { width:160px; }
.report-content .ledger-directory { grid-template-columns:240px minmax(0,1fr); }
.report-content .ledger-directory .patient-row-info strong { white-space:normal; overflow-wrap:anywhere; }
.ledger-jump { display:none; }
@media(max-width:1150px) {
  .report-workspace { grid-template-columns:minmax(0,1fr); }
  .report-navigation { position:static; }
  .report-navigation .accounting-tabs { flex-direction:row; flex-wrap:wrap; margin-top:12px; }
  .report-content .ledger-directory { grid-template-columns:200px minmax(0,1fr); }
}
@media(max-width:680px) {
  .report-content .ledger-directory { grid-template-columns:minmax(0,1fr); }
  .ledger-jump { display:inline-flex; align-items:center; min-height:44px; margin-block:8px; text-decoration:underline; text-underline-offset:3px; }
}
@media(max-width:520px) {
  .report-search { grid-template-columns:minmax(0,1fr); }
  #accounting-report-search-status, #accounting-report-search-scope { grid-column:1; grid-row:auto; }
  .report-content .accounting-report-grid .accounting-table th:last-child { width:120px; }
  .report-context-heading .report-export-entry { max-width:100%; }
  .report-context-heading .button { white-space:normal; max-width:100%; }
}
/* Keep the manual editor comfortably inside the viewport, with one body scroller. */
#modal:has(#voucher-form) { width:min(960px,calc(100vw - 48px)); max-width:calc(100vw - 48px); max-height:min(820px,calc(100dvh - 96px)); overflow:hidden; }
#modal[open]:has(#voucher-form) { display:flex; flex-direction:column; }
#modal:has(#voucher-form) .modal-header { flex-shrink:0; padding-bottom:12px; }
#modal:has(#voucher-form) .modal-body { min-height:0; overflow-y:auto; padding-top:12px; padding-bottom:16px; }
#voucher-form .voucher-metadata { grid-template-columns:minmax(150px,1fr) minmax(0,1.7fr) minmax(120px,1fr); align-items:start; row-gap:12px; }
#voucher-form .voucher-description { grid-column:1 / -1; }
#voucher-form .voucher-series-field .button { justify-self:start; margin-top:8px; }
#voucher-form .voucher-entry { margin-top:16px; min-width:0; }
#voucher-form .voucher-entry-heading { gap:12px; flex-wrap:wrap; margin-bottom:12px; }
#voucher-form .voucher-vat { margin-block:12px; padding:14px; }
#voucher-form .voucher-entry-lines { margin-block:12px; gap:8px; }
#voucher-form .voucher-entry-line { min-width:0; padding:10px; }
#voucher-form .voucher-line-fields { display:grid; grid-template-columns:minmax(0,2.4fr) minmax(100px,1fr) minmax(100px,1fr) auto; gap:8px 16px; align-items:end; }
#voucher-form .form-field { min-width:0; }
#voucher-form .form-field input, #voucher-form .form-field select { width:100%; min-width:0; max-width:100%; }
#voucher-form .voucher-line-fields > .button { align-self:end; }
#voucher-form .voucher-account-label { grid-column:1 / -1; margin:0; line-height:1.5; overflow-wrap:anywhere; }
#voucher-form .voucher-account-label:empty { display:none; }
#voucher-form .voucher-editor-ending { margin-top:12px; }
#voucher-form .voucher-editor-ending > .live-state { margin-block:10px; }
#voucher-form .voucher-editor-ending .form-actions { flex-wrap:wrap; margin-top:12px; }
@media(max-width:760px) {
  #modal:has(#voucher-form) { width:calc(100vw - 32px); max-width:calc(100vw - 32px); max-height:calc(100dvh - 40px); }
  #voucher-form .voucher-metadata { grid-template-columns:minmax(0,1fr); }
  #voucher-form .voucher-line-fields { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  #voucher-form .voucher-account-field { grid-column:1 / -1; }
  #voucher-form .voucher-line-fields > .button { grid-column:1 / -1; justify-self:start; }
}
@media(max-width:420px) {
  #voucher-form .voucher-line-fields { grid-template-columns:minmax(0,1fr); }
}
#voucher-form .voucher-year-context > span { font-weight:500; }
#voucher-form .voucher-year-context p { margin:0; padding-block:8px; line-height:1.5; }
#voucher-form .voucher-year-context small { display:block; color:var(--muted,#68695e); }
#voucher-form .voucher-account-options { list-style:none; margin:4px 0 0; padding:4px; max-height:160px; overflow-y:auto; border:1px solid #8c917e; border-radius:8px; background:#fffcf3; }
#voucher-form .voucher-account-options[hidden] { display:none; }
#voucher-form .voucher-account-options li { padding:8px; overflow-wrap:anywhere; cursor:pointer; }
#voucher-form .voucher-account-options [aria-selected="true"] { background:#b6cbea; border-radius:4px; }
#voucher-form .voucher-account-help { padding:4px 0; border:0; background:transparent; color:inherit; text-decoration:underline; font:inherit; cursor:pointer; }
#voucher-form .voucher-account-help:focus-visible { outline:2px solid #775369; outline-offset:3px; }

#voucher-form .voucher-account-field { position:relative; }
#voucher-form .voucher-account-options { position:absolute; left:0; right:0; z-index:3; box-shadow:0 4px 12px #18191622; }
.company-information{margin-top:22px;--muted:#66685c}
.company-information h2{margin-bottom:20px}
.company-profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin-bottom:24px}
.company-profile-fields dt{font-size:var(--font-meta);color:var(--muted);margin-bottom:5px}
.company-profile-fields dd{font-size:var(--font-body);margin:0;white-space:pre-line;overflow-wrap:anywhere}
.company-logo-settings{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;margin-bottom:20px;align-items:start}
.company-logo-preview{min-height:150px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--muted);font-size:var(--font-body);text-align:center}
.company-logo-preview img{display:block;max-width:100%;height:auto;max-height:190px;object-fit:contain}
.company-logo-settings h3{font-size:var(--font-body);margin-bottom:10px}
.company-logo-file{display:grid;gap:8px;font-size:var(--font-body);margin-top:12px;overflow-wrap:anywhere}
.company-logo-file input{font:inherit;max-width:100%}
.company-logo-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.company-logo-notice{font-size:var(--font-body);line-height:1.6;margin-bottom:16px}
.sidebar .brand.organization-brand{white-space:normal;width:100%;text-align:left;font-size:var(--font-heading-small);line-height:1.3;letter-spacing:-.5px;padding-right:10px}
.organization-brand .organization-brand-name{overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.organization-brand .organization-brand-initials{display:none}
@media(min-width:761px){.collapsed .organization-brand .organization-brand-name{display:none}.collapsed .organization-brand .organization-brand-initials{display:block;font-size:var(--font-heading-small);letter-spacing:0}.collapsed .sidebar .brand.organization-brand{padding:0;text-align:center}}
@media(max-width:600px){.company-profile-fields,.company-logo-settings{grid-template-columns:1fr}.company-logo-preview{width:min(100%,240px)}}
/* Wide screens change available space, never the user's reading size. */
@media screen and (min-width: 1920px) {
  .app-shell {
    width: calc(100% - 3.2rem);
    max-width: 140rem;
    margin: 1.2rem auto;
    min-height: calc(100dvh - 2.4rem);
  }
  .app-shell .workspace { padding: 1.2rem 2rem 0; }
  .app-shell .sidebar { min-height: 0; padding-top: 1.6rem; }
  .app-shell .search-group { max-width: 55rem; }
  .app-shell .patient-overview.customer-directory-columns.detail-directory-wide { gap: 1.6rem; }
  .app-shell .visit-card.detail-card { padding: 1.4rem; }
}
/* One reading scale for every viewport. Percentages respect the browser's
   preferred font size; rem-based components grow with text-only zoom too. */
html { font-size: 125%; }
:root {
  --font-body: 1rem;
  --font-meta: .9rem;
  --font-heading-small: 1.2rem;
  --font-heading-medium: 1.4rem;
  --font-heading-large: 1.75rem;
  --font-display: 2rem;
  --sidebar: 16rem;
}
body { font-size: var(--font-body); line-height: 1.5; }
/* Normal-text contrast on both paper and the existing coloured cards. */
input::placeholder, textarea::placeholder { color: #5b5d52; opacity: 1; }
.visit-card .customer-fields dt, .visit-card .customer-footnote { color: #414338; }
.visit-card .reader { color: #414338; }
.visit-card, .stat-card, .mini-stat { --muted: #414338; }
/* Input boundaries are functional; decorative card separators stay subtle. */
.form-field input, .form-field select, .form-field textarea,
.customer-filter select, .field-search, .global-search, .global-search:focus-within,
.organization-search input { border-color: #777a69; }
.skip-link { top: 0; left: 1rem; max-width: calc(100vw - 2rem); overflow-wrap: anywhere; transform: translateY(calc(-100% - 1rem)); }
.skip-link:focus { top: .5rem; transform: translateY(0); }
h1, h2, h3, h4 { line-height: 1.3; overflow-wrap: anywhere; }
h1, .view-heading h1, .modal-header h2 { font-size: var(--font-heading-large); }
h2, .section-heading h2, .panel > h2 { font-size: var(--font-heading-medium); }
h3, .detail-card .detail-section > h4, .company-logo-settings h3 { font-size: var(--font-heading-small); }
button, input, select, textarea { line-height: 1.5; }
button, summary { min-height: 2.2rem; }
button { min-width: 2.2rem; }
input:not([type=checkbox]):not([type=radio]), select, textarea { min-height: 2.2rem; }
input[type=checkbox]:not(.switch), input[type=radio], .sie-review-dialog .sie-check input {
  width: 1.1rem; height: 1.1rem; min-width: 1.1rem; flex: 0 0 1.1rem;
}
.switch { width: 2.6rem; height: 1.5rem; flex: 0 0 2.6rem; }
.switch:after { width: 1.1rem; height: 1.1rem; top: .15rem; left: .15rem; }
.switch:checked:after { transform: translateX(1.1rem); }
.identity-check, .sie-check, .switch-row { min-height: 2.2rem; align-items: center; }
.form-field > label, .form-field input, .form-field select, .form-field textarea,
.button, .button.small, .visit-card .button, .heading-actions .button, .text-button, .table-link,
.tabs button, .modal-tabs button, .accounting-table th, .accounting-table td,
.nav-item, .patient-row-info strong, .patient-cell strong,
.global-search input, .field-search input { font-size: var(--font-body); }
.button, .button.small, .text-button, .table-link, .tabs button, .scope,
.schedule-tabs button, .customer-filter-row .button, .calendar-add,
.accounting-table .accounting-account-link, .identity-card .text-button {
  min-height: 2.2rem; height: auto; max-width: 100%; white-space: normal;
  overflow-wrap: anywhere;
}
.button { padding: .5rem .85rem; }
.button.small { padding: .3rem .65rem; }
.form-field input, .form-field select, .form-field textarea { padding: .5rem .6rem; }
.form-field small, .patient-row-info small, .time-pill, .pill, .eyebrow,
.workspace-footer, .workspace-footer .text-button { line-height: 1.5; }
.form-actions, .heading-actions, .tabs, .modal-tabs { flex-wrap: wrap; }
.form-actions > *, .heading-actions > * { min-width: 0; }
.heading-actions { flex-shrink: 1; }
.form-grid { gap: 1rem; }
.form-field, fieldset { min-width: 0; }
.form-error, .identity-error, .form-hint, .live-state { overflow-wrap: anywhere; }
.form-field > label { color: #505449; }

/* Expanded navigation can carry full labels, including larger custom fonts. */
.sidebar { min-height: 0; padding: 1.4rem .75rem 1rem; }
.sidebar > * { flex-shrink: 0; }
.sidebar .brand.organization-brand { font-size: var(--font-heading-medium); line-height: 1.3; padding-right: .65rem; }
.organization-brand .organization-brand-name { display: block; overflow: visible; -webkit-line-clamp: unset; }
.nav-item { min-height: 2.6rem; padding: .55rem .6rem; white-space: normal; }
.nav-label { min-width: 0; overflow-wrap: anywhere; }
.nav-item .icon { width: 1.1rem; height: 1.1rem; }
.nav-group-label { overflow-wrap: anywhere; }
.sidebar-profile .profile-copy strong { white-space: normal; overflow-wrap: anywhere; }
.sidebar-profile { align-items: flex-start; }
.sidebar-profile .avatar { width: 2.2rem; height: 2.2rem; }
.sidebar-bottom { padding-top: 1.2rem; }
.sidebar-note { margin-bottom: 1.2rem; padding-top: 1.2rem; }
.sidebar .collapse-button { width: 2.2rem; height: 2.2rem; right: -1.1rem; top: 2.25rem; }
.collapse-button .icon { width: 1rem; height: 1rem; }
.icon-button:before, .collapse-button:before, .search-orb:before, .top-avatar:before,
.sidebar .collapse-button:before { inset: 0; min-width: 0; min-height: 0; }
.app-shell.collapsed { --sidebar: 3.8rem; }
.collapsed .sidebar .brand.organization-brand { font-size: var(--font-body); }
.collapsed .organization-brand .organization-brand-initials { font-size: var(--font-body); }

/* Controls keep real hit areas; no fixed topbar can crop wrapped content. */
.topbar { height: auto; min-height: 4rem; padding-bottom: 1rem; flex-wrap: wrap; gap: .6rem; }
.search-group { min-width: 0; flex: 1 1 24rem; width: auto; max-width: none; }
.global-search { min-width: 0; height: auto; min-height: 2.4rem; flex-wrap: wrap; padding: .15rem .5rem; }
.global-search input { flex: 1 1 8rem; width: auto; min-width: 0; }
.search-scopes { flex-wrap: wrap; white-space: normal; }
.scope { padding: .2rem .4rem; }
.key-hint { white-space: normal; color: var(--muted); }
.topbar-actions { flex-wrap: wrap; margin-left: auto; }
.icon-button, .topbar-actions .icon-button, .top-avatar, .mobile-menu,
.table-actions .icon-button { width: 2.2rem; height: 2.2rem; min-height: 2.2rem; }
.icon-button .icon, .button .icon, .text-button .icon { width: 1rem; height: 1rem; }
.field-search { min-width: 0; min-height: 2.4rem; }
.field-search input { min-width: 0; }
.search-results { max-width: calc(100vw - 2rem); }
.search-result { align-items: flex-start; }
.search-result strong, .search-result small { overflow-wrap: anywhere; }

/* Text must grow the card instead of being squeezed into decorative heights. */
.stat-card, .stat-card.pink, .stat-card.yellow { height: auto; min-height: 15rem; }
.stat-card .live-stat-number { line-height: 1.2; }
.mini-stat { min-height: 8rem; }
.stat-grid, .mini-stat-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.view-heading { align-items: flex-start; flex-wrap: wrap; }
.view-heading p { max-width: 55ch; }
.live-stat-note { max-width: 30ch; }
.section-heading { flex-wrap: wrap; }
.patient-row { height: auto; min-height: 3.4rem; }
.count-dot { min-width: 1.5rem; height: auto; min-height: 1.5rem; line-height: 1.5; }
.avatar { width: 2.2rem; height: 2.2rem; }
.avatar.large { width: 3.4rem; height: 3.4rem; }
.avatar-stack .avatar { width: 1.8rem; height: 1.8rem; }
.patient-row-info strong, .patient-row-info small { white-space: normal; text-overflow: clip; overflow: visible; overflow-wrap: anywhere; }
.patient-row-info { min-width: 0; }
.patient-row .time-pill, .pill, .nav-count { height: auto; white-space: normal; overflow-wrap: anywhere; }
.patient-row .time-pill { max-width: 100%; }
.visit-card .detail-list, .modal-body .detail-list { grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); }
.detail-list > * { min-width: 0; overflow-wrap: anywhere; }
.detail-card .invoice-lines-summary li span { max-width: none; }
.table-scroll, .accounting-scroll { min-width: 0; max-width: 100%; overflow-x: auto; }
.report-chart-axis { line-height: 1.5; }
.report-content .accounting-report-grid .accounting-table { table-layout: auto; }
.report-content .accounting-report-grid .accounting-table th:last-child { width: auto; min-width: 8rem; }
.report-content .accounting-report-grid .accounting-table td:first-child { white-space: normal; }
.workspace-footer { flex-wrap: wrap; align-items: flex-start; }
.workspace-footer > span, .workspace-footer .text-button { max-width: 100%; overflow-wrap: anywhere; }

/* Dialog widths follow text size, while viewport constraints preserve reflow. */
dialog { width: 34rem; max-width: calc(100vw - 1.6rem); }
#modal:has(#voucher-form) {
  width: min(48rem, calc(100vw - 1.6rem));
  max-width: calc(100vw - 1.6rem);
  max-height: min(52rem, calc(100dvh - 4rem));
}
.modal-header { gap: .6rem; }
.modal-header > div { min-width: 0; }
.modal-header .icon-button { width: 2.2rem; height: 2.2rem; }
.profile-sheet { max-width: 25rem; }
.profile-actions .button { white-space: normal; }
.organization-options button { align-items: flex-start; }
.customer-detail-heading { flex-wrap: wrap; }
.company-logo-actions { align-items: stretch; }
.company-profile-fields > div { min-width: 0; }
.company-profile-fields dt, .company-profile-fields dd { overflow-wrap: anywhere; }
.company-logo-file input { font-size: var(--font-body); }
input[type=file]::file-selector-button { font: inherit; min-height: 2.2rem; max-width: 100%; white-space: normal; }

@media (max-width: 1100px) {
  .patient-overview.customer-directory-columns { --detail-single-pane: 1; grid-template-columns: minmax(0, 1fr); }
  .customer-directory-columns:not([data-detail-open]) > .visit-panel,
  .customer-directory-columns[data-detail-open] > .patient-list { display: none; }
  .customer-directory-columns .detail-jump { display: flex; align-items: center; min-height: 2.2rem; width: fit-content; margin-block: .4rem; }
  .dashboard-layout { grid-template-columns: minmax(0, 1fr); }
  .dashboard-aside { border-left: 0; padding-left: 0; grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .sidebar { width: min(16rem, calc(100vw - 2rem)); max-width: calc(100vw - 2rem); overflow-y: auto; transform: translateX(calc(-100% - 1rem)); padding: 1rem .6rem; }
  .app-shell.menu-open .sidebar { transform: translateX(0); }
  .sidebar .collapse-button { position: relative; top: auto; right: auto; align-self: flex-end; margin: 0 0 .8rem; order: -1; flex-shrink: 0; }
  .sidebar .brand { margin-bottom: 1rem; }
  .sidebar .nav-item { padding: .5rem .6rem; }
  .sidebar-profile .profile-copy { min-width: 0; }
  .topbar { gap: .5rem; }
  .mobile-menu { display: inline-flex; }
  .search-group { flex-basis: calc(100% - 3rem); }
  .global-search input { width: 100%; flex-basis: 100%; }
  .key-hint { display: none; }
  .workspace { padding: .8rem .8rem 0; }
  .view-heading h1, .modal-header h2 { font-size: var(--font-heading-large); }
  .heading-actions { width: 100%; }
  .patient-row .time-pill { margin-left: 0; }
  .company-logo-settings { grid-template-columns: minmax(0, 1fr); }
  .search-results { left: 0; min-width: 0; width: 100%; }
}
@media (max-width: 520px) {
  #modal:has(#voucher-form) { max-height: calc(100dvh - 2rem); }
  .form-grid, .company-profile-fields, .visit-card .detail-list, .modal-body .detail-list { grid-template-columns: minmax(0, 1fr); }
  .form-field.full { grid-column: 1; }
  .panel, .visit-card, .identity-card, .modal-body { padding: .8rem; }
  .modal-header { padding: .8rem .8rem 0; }
  .detail-list dd { margin: 0 0 .6rem; }
  .customer-list-header .button { flex-shrink: 1; }
  .form-actions { justify-content: stretch; }
  .form-actions .button { flex: 1 1 auto; }
  .customer-filter-row { align-items: stretch; }
  .customer-filter-row > * { max-width: 100%; }
  .invoice-line { padding: .6rem; }
  .identity-entry { padding: .8rem; }
  .identity-story { padding: 1rem; }
}
/* CS-UI-2026-09-21 r1. Shared workspace roles; import after readable.css. */
:root {
  --workspace-surface:#fffcf3; --workspace-on-surface:#181916;
  --workspace-muted:#505449; --workspace-outline:#626754;
  --workspace-primary:#242b20; --workspace-on-primary:#fffdf5;
  --workspace-primary-hover:#3b4734; --workspace-primary-pressed:#10170d;
  --workspace-tonal:#e2e8d7; --workspace-on-tonal:#242b20;
  --workspace-tonal-hover:#ced8be; --workspace-tonal-pressed:#b7c6a2;
  --workspace-hover:#e2e0d3; --workspace-pressed:#cfcdbe;
  --workspace-selection:#f6dce9; --workspace-selection-outline:#94607d;
  --workspace-emphasis:#f3d85e; --workspace-on-emphasis:#414338;
  --workspace-emphasis-outline:#776728; --workspace-focus:#775369;
  --workspace-target:2.4rem;
}
.workspace-action-group { display:flex; align-items:flex-start; justify-content:flex-end; flex-wrap:wrap; gap:.5rem; min-width:0; position:relative; }
.workspace-actions-inline { display:contents; }
.workspace-action-group .workspace-actions-overflow[hidden],.workspace-actions-panel[hidden] { display:none; }
.workspace-action-group .button.workspace-action {
  font-size:var(--font-body); line-height:1.5; margin:0; padding:.45rem .85rem;
  min-height:var(--workspace-target); min-width:var(--workspace-target);
  border:1px solid var(--workspace-outline); border-radius:2rem;
  background:transparent; color:var(--workspace-on-surface); white-space:normal;
  max-width:100%; height:auto; overflow-wrap:anywhere; cursor:pointer;
}
.workspace-action-group .workspace-action[data-variant=primary] { background:var(--workspace-primary); color:var(--workspace-on-primary); border-color:var(--workspace-primary); }
.workspace-action-group .workspace-action[data-variant=tonal] { background:var(--workspace-tonal); color:var(--workspace-on-tonal); }
.workspace-action-group .workspace-action:hover { background:var(--workspace-hover); }
.workspace-action-group .workspace-action:active { background:var(--workspace-pressed); }
.workspace-action-group .workspace-action[data-variant=primary]:hover { background:var(--workspace-primary-hover); }
.workspace-action-group .workspace-action[data-variant=primary]:active { background:var(--workspace-primary-pressed); }
.workspace-action-group .workspace-action[data-variant=tonal]:hover { background:var(--workspace-tonal-hover); }
.workspace-action-group .workspace-action[data-variant=tonal]:active { background:var(--workspace-tonal-pressed); }
.workspace-action-group .workspace-action:focus-visible { outline:3px solid var(--workspace-focus); outline-offset:3px; }
.workspace-action-group .workspace-action:disabled { cursor:default; opacity:.6; }
.workspace-action-group .workspace-action[aria-busy=true] { cursor:progress; }
.workspace-actions-panel { position:absolute; top:calc(100% + .5rem); right:0; z-index:5; width:19rem; max-width:100%; padding:.4rem; border:1px solid var(--workspace-outline); border-radius:.8rem; background:var(--workspace-surface); box-shadow:0 .4rem 1rem #18191626; }
.workspace-actions-panel .button.workspace-action { width:100%; justify-content:flex-start; text-align:left; border-radius:.5rem; border-color:transparent; }
.workspace-actions-panel .button.workspace-action[data-variant=tonal] { background:transparent; }
.workspace-actions-panel .button.workspace-action:hover { background:var(--workspace-hover); }
.workspace-actions-panel .button.workspace-action:active { background:var(--workspace-pressed); }
.invoice-directory .button,.invoice-directory .text-button,.invoice-directory input,.invoice-directory select { min-height:var(--workspace-target); }
.invoice-directory .patient-row.selected { background:var(--workspace-selection); box-shadow:inset 3px 0 var(--workspace-selection-outline); }
.visit-card.live-invoice-card { background:var(--workspace-surface); color:var(--workspace-on-surface); border:1px solid var(--workspace-outline); --invoice-rule:var(--workspace-outline); --line:var(--invoice-rule); --muted:var(--workspace-muted); }
.live-invoice-card .invoice-overview-header { display:flex; flex-wrap:wrap; align-items:flex-start; gap:1rem .75rem; }
.live-invoice-card .invoice-overview-actions { order:1; flex:1 1 auto; min-width:0; margin:0; }
.live-invoice-card .invoice-overview-status { order:2; flex:0 0 auto; margin:0 0 0 auto; border-radius:.35rem; background:var(--workspace-hover); color:var(--workspace-on-emphasis); cursor:default; }
.invoice-overview-identity { order:3; flex:1 1 100%; min-width:0; }
.invoice-overview-identity h3 { font-size:var(--font-heading-large); font-weight:500; margin:0 0 .4rem; }
.invoice-overview-identity p { margin:0; font-size:var(--font-heading-small); overflow-wrap:anywhere; }
.invoice-amount-summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding:1.1rem; margin:1rem 0; border-radius:.8rem; background:var(--workspace-emphasis); color:var(--workspace-on-surface); }
.invoice-amount-summary p { margin:0; color:var(--workspace-on-emphasis); }
.invoice-amount-summary strong { display:block; font-size:var(--font-heading-large); font-weight:600; font-variant-numeric:tabular-nums; }
.invoice-amount-summary .invoice-due strong { font-size:var(--font-heading-small); }
.invoice-amount-summary .invoice-due { text-align:right; }
.invoice-amount-summary small { font-size:var(--font-meta); color:var(--workspace-on-emphasis); }
@media(max-width:1100px) {
  .live-invoice-card .invoice-overview-identity { order:1; flex:1 1 0; }
  .live-invoice-card .invoice-overview-status { order:2; }
  .live-invoice-card .invoice-overview-actions { order:3; flex:1 1 100%; }
  .workspace-action-group { justify-content:flex-start; }
  .workspace-actions-panel { left:0; right:auto; }
  .invoice-directory .patient-row.selected { background:var(--surface-container,#efece0); box-shadow:none; }
}
@container(max-width:22rem) { .invoice-amount-summary .invoice-due { text-align:left; flex-basis:100%; } }
@media(prefers-reduced-motion:no-preference) { .workspace-action { transition:background-color 120ms ease; } }
@media(forced-colors:active) {
  .workspace-action-group .button.workspace-action,.workspace-actions-panel { border:1px solid ButtonText; }
  .workspace-action-group .workspace-action:focus-visible { outline-color:Highlight; }
  .invoice-directory .patient-row.selected { outline:2px solid Highlight; }
}

/* Shared product controls. Existing workflow classes choose emphasis; business
   permissions, labels, confirmations and form submission remain in their owners. */
:root { --line:var(--workspace-outline); --muted:var(--workspace-muted); }
:is(.app-shell,dialog,.identity-entry) .button:not(.workspace-action) {
  min-height:var(--workspace-target); min-width:var(--workspace-target);
  padding:.45rem .85rem; border:1px solid var(--workspace-primary);
  border-radius:2rem; background:var(--workspace-primary); color:var(--workspace-on-primary);
  font-size:var(--font-body); line-height:1.5; height:auto; white-space:normal;
}
:is(.app-shell,dialog,.identity-entry) .button.secondary:not(.workspace-action) {
  background:transparent; border-color:var(--workspace-outline); color:var(--workspace-on-surface);
}
:is(.app-shell,dialog,.identity-entry) .button:not(.workspace-action):hover { background:var(--workspace-primary-hover); }
:is(.app-shell,dialog,.identity-entry) .button:not(.workspace-action):active { background:var(--workspace-primary-pressed); }
:is(.app-shell,dialog,.identity-entry) .button.secondary:not(.workspace-action):hover { background:var(--workspace-hover); }
:is(.app-shell,dialog,.identity-entry) .button.secondary:not(.workspace-action):active { background:var(--workspace-pressed); }
button:not(.patient-row),summary,.text-button,.table-link,.tabs button,.modal-tabs button,
input:not([type=checkbox]):not([type=radio]),select,textarea,input[type=file]::file-selector-button,
.identity-check,.sie-check,.switch-row { min-height:var(--workspace-target); }
.icon-button,.topbar-actions .icon-button,.top-avatar,.mobile-menu,.table-actions .icon-button,
.modal-header .icon-button,.sidebar .collapse-button { width:var(--workspace-target); height:var(--workspace-target); min-width:var(--workspace-target); }
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--workspace-focus); outline-offset:3px; }
.sidebar :where(button,a):focus-visible { outline-color:var(--workspace-selection); }
.form-field input,.form-field select,.form-field textarea,.customer-filter select,.field-search,
.organization-search input { border:1px solid var(--workspace-outline); border-radius:.5rem; }
.form-field input,.form-field select,.form-field textarea { background:var(--workspace-surface); color:var(--workspace-on-surface); }
:is(.tabs,.modal-tabs,.segmented,.search-scopes) button { border-radius:.5rem; }
:is(.tabs,.modal-tabs,.segmented,.search-scopes) button:hover { background:var(--workspace-hover); color:var(--workspace-on-surface); }
:is(.tabs,.modal-tabs,.segmented,.search-scopes) button.active { background:var(--workspace-tonal); color:var(--workspace-on-tonal); }
.patient-row.selected { background:var(--workspace-selection); box-shadow:inset 3px 0 var(--workspace-selection-outline); }
.patient-row:hover { outline:1px solid var(--workspace-outline); outline-offset:-1px; }
.visit-card.detail-card { background:var(--workspace-surface); color:var(--workspace-on-surface); border:1px solid var(--workspace-outline); --line:var(--workspace-outline); --muted:var(--workspace-muted); }
.detail-card .customer-fields dt,.detail-card .customer-footnote,.detail-card .reader { color:var(--workspace-muted); }
.workspace-detail-header { display:flex; flex-wrap:wrap; align-items:flex-start; gap:1rem .75rem; }
.workspace-detail-actions { order:1; flex:1 1 auto; min-width:0; }
.workspace-detail-actions:empty { display:none; }
.workspace-detail-status { order:2; flex:0 1 auto; margin-left:auto; border-radius:.35rem; background:var(--workspace-hover); color:var(--workspace-on-surface); }
.workspace-detail-identity { order:3; flex:1 1 100%; min-width:0; }
.detail-card .workspace-detail-identity h3 { font-size:var(--font-heading-large); font-weight:500; margin:0 0 .4rem; }
.workspace-detail-identity p { margin:0; font-size:var(--font-heading-small); overflow-wrap:anywhere; }
.supplier-detail .detail-amounts { padding:1rem; background:var(--workspace-emphasis); color:var(--workspace-on-surface); border-radius:.8rem; border-color:var(--workspace-emphasis-outline); }
.supplier-detail .detail-amounts dt { color:var(--workspace-on-emphasis); }
.accounting-table th,.accounting-table td { border-color:var(--workspace-outline); }
.accounting-scroll:focus-visible,.table-scroll:focus-visible { outline:3px solid var(--workspace-focus); outline-offset:3px; }
.panel,.live-placeholder,dialog,.profile-sheet,.organization-sheet { border-color:var(--workspace-outline); }
dialog,.profile-sheet,.organization-sheet { background:var(--workspace-surface); color:var(--workspace-on-surface); border-radius:1rem; }
dialog::backdrop { background:#18191666; }
.account-plan-columns [data-action=accounts-show-detail],.account-plan-columns [data-action=accounts-show-list] { display:none; }
@media(max-width:1100px) {
  .workspace-detail-identity { order:1; flex:1 1 0; }
  .workspace-detail-status { order:2; }
  .workspace-detail-actions { order:3; flex:1 1 100%; }
  .customer-directory-columns .patient-row.selected,.account-plan-columns .patient-row.selected { background:var(--surface-container,#efece0); box-shadow:none; }
  .account-plan-dialog .account-plan-columns { grid-template-columns:minmax(0,1fr); }
  .account-plan-columns:not([data-account-detail-open]) > section[aria-label="Kontoöversikt"],
  .account-plan-columns[data-account-detail-open] > .patient-list { display:none; }
  .account-plan-columns [data-action=accounts-show-detail],.account-plan-columns [data-action=accounts-show-list] { display:inline-flex; margin-block:.5rem; }
}
@media(prefers-reduced-motion:no-preference) { .button,.patient-row,.nav-item { transition:background-color 120ms ease; } }
@media(forced-colors:active) {
  .button,.visit-card.detail-card,input,select,textarea { border:1px solid ButtonText; }
  .patient-row.selected,.nav-item.active { outline:2px solid Highlight; }
  :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline-color:Highlight; }
}
/* Selected report filters stay distinct through hover and keyboard focus. */
.app-shell .accounting-tabs .button[aria-pressed=true] { background:var(--workspace-tonal); color:var(--workspace-on-tonal); border-color:var(--workspace-outline); }
.app-shell .accounting-tabs .button[aria-pressed=true]:hover { background:var(--workspace-tonal-hover); }
.app-shell .accounting-tabs .button[aria-pressed=true]:active { background:var(--workspace-tonal-pressed); }
@media(max-width:1100px) {
  .customer-directory-columns .ledger-jump { display:flex; align-items:center; min-height:var(--workspace-target); width:fit-content; margin-block:.4rem; }
}
/* CS-UI-2026-09-21 r1: readable forms with a single bounded scrolling body. */
#modal:has(.workspace-editor) {
  width:min(46rem, calc(100vw - 1.6rem));
  max-width:calc(100vw - 1.6rem);
  max-height:calc(100dvh - 2rem);
  overflow:hidden;
}
#modal[open]:has(.workspace-editor) { display:flex; flex-direction:column; }
#modal:has(.workspace-editor) .modal-header {
  flex:none; align-items:flex-start; padding:1.2rem 1.4rem 1rem;
  border-bottom:1px solid var(--workspace-outline);
}
#modal:has(.workspace-editor) .modal-header h2 { overflow-wrap:anywhere; }
#modal:has(.workspace-editor) .modal-body {
  min-height:0; overflow-y:auto; overscroll-behavior:contain;
  scrollbar-gutter:stable; padding:1.2rem 1.4rem;
}
.workspace-editor { min-width:0; }
.workspace-editor .form-hint { margin:0 0 1.2rem; }
.workspace-editor .editor-section { margin:0 0 1.4rem; }
.workspace-editor .editor-section + .editor-section { border-top:1px solid var(--workspace-outline); padding-top:1.2rem; }
.workspace-editor h3 { margin:0 0 .9rem; overflow-wrap:anywhere; }
.workspace-editor .form-grid { gap:1rem; align-items:start; }
.workspace-editor .form-field { min-width:0; }
.workspace-editor .form-field small { font-size:var(--font-meta); line-height:1.5; color:var(--workspace-muted); }
.workspace-editor :is(input, select) { width:100%; min-width:0; max-width:100%; box-sizing:border-box; }
.workspace-editor .live-state { margin:.8rem 0; }
.workspace-editor .editor-price-summary { border-left:3px solid var(--workspace-outline); padding:.6rem .8rem; margin:.8rem 0 0; }
.workspace-editor .invoice-lines { margin:.8rem 0 1rem; }
.workspace-editor .invoice-line { border-color:var(--workspace-outline); margin:0; padding:1rem; }
.workspace-editor .invoice-line .form-grid > .form-field:first-child { grid-column:1 / -1; }
.workspace-editor .invoice-line .form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.workspace-editor .form-actions { margin:1.2rem 0 0; padding-top:1rem; border-top:1px solid var(--workspace-outline); gap:.6rem; flex-wrap:wrap; }
.workspace-editor.editor-review .customer-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.workspace-editor.editor-review .customer-fields > div { min-width:0; overflow-wrap:anywhere; }
@media(max-width:760px) {
  #modal:has(.workspace-editor) { width:calc(100vw - .8rem); max-width:calc(100vw - .8rem); max-height:calc(100dvh - .8rem); }
  #modal:has(.workspace-editor) .modal-header { padding:.8rem; }
  #modal:has(.workspace-editor) .modal-body { padding:.8rem; scrollbar-gutter:auto; }
  .workspace-editor .form-grid, .workspace-editor .invoice-line .form-grid,
  .workspace-editor.editor-review .customer-fields { grid-template-columns:minmax(0,1fr); }
  .workspace-editor .invoice-line { padding:.65rem; }
}
/* CS-UI-2026-09-21 r1. Reports are reading documents, not dashboard cards. */
.report-workspace { display:grid; grid-template-columns:minmax(0,1fr); gap:1.2rem; }
.report-workspace .report-navigation { position:static; padding:1rem; background:var(--workspace-surface); }
.report-workspace .report-navigation h2 { display:flex; align-items:center; gap:.6rem; margin:0 0 1rem; }
.report-workspace .report-navigation .accounting-tabs { flex-direction:row; flex-wrap:wrap; margin:0; gap:.5rem; }
.report-workspace .report-navigation .button { justify-content:flex-start; }
.report-mobile-choice,.report-scroll-hint { display:none; }
.report-workspace .accounting-period-panel { background:var(--workspace-surface); padding:1.1rem; margin:0 0 1.2rem; }
.report-workspace .accounting-period-panel h2 { margin:0; }
.report-workspace .accounting-period { gap:.8rem; margin:.8rem 0; }
.report-workspace .accounting-period-links { gap:.4rem 1rem; border-top:1px solid var(--workspace-outline); padding-top:.6rem; }
.report-workspace .accounting-period-links .button { text-decoration:none; }
.report-document { background:var(--workspace-surface); color:var(--workspace-on-surface); border:1px solid var(--workspace-outline); border-radius:1rem; padding:1.4rem; min-width:0; --line:var(--workspace-outline); --muted:var(--workspace-muted); }
.report-document-header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:.8rem 1.5rem; border-bottom:1px solid var(--workspace-outline); padding-bottom:1rem; }
.report-document-identity { flex:1 1 22rem; min-width:0; }
.report-document h2 { font-size:var(--font-heading-large); margin:.35rem 0 .6rem; overflow-wrap:anywhere; }
.report-company { color:var(--workspace-muted); margin:0; overflow-wrap:anywhere; }
.report-document .accounting-caption { color:var(--workspace-muted); margin:.6rem 0; }
.report-document .report-export-entry { margin:0; }
.report-document .report-search { margin:1rem 0; padding-bottom:1rem; border-bottom:1px solid var(--workspace-outline); gap:.45rem 1rem; }
.report-document #accounting-report-search-scope { font-size:var(--font-meta); color:var(--workspace-muted); }
.report-document #accounting-report-search-status { font-size:var(--font-meta); }
.report-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap:1rem; margin:1.2rem 0 1.6rem; padding:0 0 1.2rem; border-bottom:1px solid var(--workspace-outline); }
.report-summary > div { min-width:0; }
.report-summary dt { color:var(--workspace-muted); margin:0 0 .4rem; }
.report-summary dd { margin:0; }
.report-summary strong { display:block; font-size:var(--font-heading-medium); font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.report-summary small { display:block; color:var(--workspace-muted); font-size:var(--font-meta); margin-top:.2rem; }
.report-document .report-section { border:0; padding:0; border-radius:0; background:transparent; min-width:0; }
.report-section h3 { font-size:var(--font-heading-small); margin:1rem 0 .2rem; }
.report-document .accounting-report-grid { gap:1.2rem; }
.report-document .accounting-table { font-variant-numeric:tabular-nums; }
.report-document .accounting-table caption { color:var(--workspace-muted); font-size:var(--font-meta); padding:.5rem 0 .8rem; }
.report-document .accounting-table :is(th,td) { padding:.65rem .6rem; color:var(--workspace-on-surface); }
.report-document .accounting-table tbody th,.report-document .accounting-table tfoot th { background:transparent; }
.report-document .accounting-account-link { color:var(--workspace-on-surface); }
.report-document .accounting-table thead th { background:var(--workspace-hover); font-weight:600; border-top:1px solid var(--workspace-outline); }
.report-document .accounting-table tbody tr:not([hidden]):hover { background:var(--workspace-hover); }
.report-document .accounting-table tfoot th,.report-document .accounting-table tfoot td { border-top:2px solid var(--workspace-outline); font-weight:600; padding-block:.8rem; }
.report-document .accounting-table tfoot small { display:block; font-size:var(--font-meta); font-weight:400; color:var(--workspace-muted); }
.report-conclusion { margin:1.6rem 0 .6rem; padding:1rem 0; border-top:3px double var(--workspace-outline); border-bottom:1px solid var(--workspace-outline); }
.report-conclusion > div { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:.6rem 1rem; }
.report-conclusion dt { font-weight:600; }
.report-conclusion dd { margin:0; font-size:var(--font-heading-medium); font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.report-conclusion dd span { font-size:var(--font-meta); font-weight:400; }
.report-reading-note { margin:.6rem 0 0; font-size:var(--font-meta); color:var(--workspace-muted); line-height:1.6; }
.report-document .customer-notice { background:transparent; border:1px solid var(--workspace-outline); padding:.8rem; margin:1rem 0; }
.report-document .vat-report-warning { border-left-width:4px; }
.report-document .vat-report-scope { background:transparent; padding:1rem 0 0; border:0; border-top:1px solid var(--workspace-outline); border-radius:0; }
.report-document .vat-report-scope h3 { margin:0 0 .6rem; }
.report-document .vat-report-scope p { margin:.6rem 0; color:var(--workspace-muted); }
.report-export-dialog .report-export-scope { background:transparent; border:0; border-bottom:1px solid var(--workspace-outline); border-radius:0; padding:0 0 1rem; }
.report-document .ledger-directory { margin-top:1rem; }
.report-document .ledger-detail { border-radius:.8rem; }
.report-print-review iframe { display:block; width:100%; height:55vh; min-height:16rem; border:1px solid var(--workspace-outline); border-radius:.5rem; background:white; }
.report-print-review #report-print-status { color:var(--workspace-muted); }
.report-document .report-export-entry { flex-wrap:wrap; gap:.6rem; }
@media(min-width:1800px) {
  .report-workspace { grid-template-columns:17rem minmax(0,1fr); }
  .report-workspace .report-navigation { position:sticky; top:1rem; }
  .report-workspace .report-navigation .accounting-tabs { flex-direction:column; }
}
@media(max-width:760px) {
  .report-workspace .report-navigation h2,.report-workspace .report-navigation .accounting-tabs { display:none; }
  .report-document .report-scroll-hint { display:block; margin-top:.4rem; font-weight:400; }
  .report-mobile-choice { display:grid; gap:.5rem; }
  .report-mobile-choice select { width:100%; min-width:0; }
  .report-document { padding:.8rem; }
  .report-workspace .report-navigation,.report-workspace .accounting-period-panel { padding:.8rem; }
  .report-document .report-search { grid-template-columns:minmax(0,1fr); }
  .report-document #accounting-report-search-status,.report-document #accounting-report-search-scope { grid-column:1; grid-row:auto; }
  .report-document .report-summary { grid-template-columns:minmax(0,1fr); gap:.8rem; }
  .report-summary > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.6rem; align-items:baseline; }
  .report-summary dd { text-align:right; }
  .report-summary strong { font-size:var(--font-body); }
  .report-summary small { font-size:var(--font-meta); }
}

/* Brand colour belongs to orientation and hierarchy, with neutral financial rows. */
.report-section-symbol { display:inline-grid; place-items:center; flex:0 0 2.4rem; width:2.4rem; height:2.4rem; border-radius:.8rem; background:var(--workspace-tonal); color:var(--workspace-on-tonal); }
.report-section-symbol .icon { width:1.2rem; height:1.2rem; }
.report-navigation .report-section-symbol { background:var(--pink); color:var(--workspace-on-surface); border-radius:50%; }
.report-period-heading { display:flex; align-items:center; justify-content:space-between; gap:.8rem; flex-wrap:wrap; margin-bottom:1rem; }
.report-period-heading h2 { display:flex; align-items:center; gap:.6rem; }
.report-workspace .report-period-heading > .button { flex:0 1 auto; max-width:100%; text-align:left; }
.report-workspace .button .icon { width:1.1rem; height:1.1rem; flex-shrink:0; }
.report-document-header { background:var(--workspace-tonal); border:1px solid var(--workspace-outline); border-radius:.8rem; padding:1rem; }
.report-document-header .report-company { color:var(--workspace-on-tonal); }
.report-document-header .accounting-caption { color:var(--workspace-on-tonal); }
.report-document-header .report-export-entry { align-self:flex-start; }
.report-workspace .accounting-period-links { padding-top:.85rem; gap:.6rem; }
.app-shell .report-workspace .accounting-period-links .button { background:var(--workspace-tonal); color:var(--workspace-on-tonal); }
.app-shell .report-workspace .accounting-period-links .button:hover { background:var(--workspace-tonal-hover); }
.app-shell .report-workspace .accounting-period-links .button:active { background:var(--workspace-tonal-pressed); }
.report-document .accounting-table thead th { background:var(--workspace-tonal); }
.report-conclusion { border-top:2px solid var(--workspace-outline); border-bottom:0; border-radius:0 0 .6rem .6rem; background:var(--workspace-tonal); padding:1rem; }
@media(max-width:760px) {
  .report-workspace .report-navigation h2 { display:none; }
  .report-mobile-choice select { background:var(--workspace-selection); color:var(--workspace-on-surface); border:1px solid var(--workspace-selection-outline); border-radius:.7rem; padding:.55rem; font:inherit; }
  .report-document-header { padding:.8rem; margin:-.8rem -.8rem 0; border:0; border-bottom:1px solid var(--workspace-outline); border-radius:.95rem .95rem 0 0; }
}
/* CS-UI-2026-09-21 r1: the same brand and hierarchy across all live page types.
   Business states, compact navigation and financial emphasis keep their owners. */
:root { --workspace-radius:1rem; --workspace-space:1rem; }
.workspace-page-header { margin:0 0 1.4rem; align-items:center; gap:1rem; }
.workspace-page-copy { min-width:0; max-width:100%; flex:1 1 0; overflow-wrap:anywhere; }
.workspace-page-header .eyebrow { margin-bottom:.65rem; color:var(--workspace-muted); }
.workspace-page-title { display:flex; align-items:center; gap:.8rem; }
.workspace-page-title h1 { margin:0; overflow-wrap:anywhere; }
.workspace-page-symbol { display:grid; place-items:center; width:3rem; height:3rem; flex:0 0 3rem; border-radius:1rem; background:var(--pink); color:var(--workspace-on-surface); }
.workspace-page-symbol .icon { width:1.5rem; height:1.5rem; }
.workspace-page-header p { margin:.75rem 0 0; max-width:48rem; color:var(--workspace-muted); }
.workspace-section-choices { display:flex; flex-wrap:wrap; align-items:stretch; gap:.35rem; padding:.35rem; border:1px solid var(--workspace-outline); border-radius:1.8rem; background:var(--workspace-surface); width:fit-content; max-width:100%; margin:0 0 1.2rem; }
.app-shell .workspace-section-choices .button.workspace-choice { display:flex; align-items:center; justify-content:flex-start; border:0; border-radius:1.6rem; min-height:2.8rem; padding:.55rem .8rem; gap:.6rem; background:transparent; color:var(--workspace-on-surface); text-align:left; max-width:100%; }
.workspace-choice .icon { width:1.1rem; height:1.1rem; flex-shrink:0; }
.workspace-choice-label { flex:1; min-width:0; overflow-wrap:anywhere; }
.workspace-choice-check { display:inline-flex; visibility:hidden; }
.app-shell .workspace-section-choices .button.workspace-choice:hover { background:var(--workspace-hover); }
.app-shell .workspace-section-choices .button.workspace-choice:active { background:var(--workspace-pressed); }
.app-shell .workspace-section-choices .button.workspace-choice[aria-pressed=true] { border:1px solid var(--workspace-focus); background:var(--workspace-selection); color:var(--workspace-on-surface); font-weight:600; }
.app-shell .workspace-section-choices .button.workspace-choice[aria-pressed=true]:hover { background:var(--pink); }
.app-shell .workspace-section-choices .button.workspace-choice[aria-pressed=true]:active { background:var(--workspace-selection); }
.workspace-choice[aria-pressed=true] .workspace-choice-check { visibility:visible; }
.report-navigation .workspace-section-choices { border:0; background:transparent; padding:0; width:auto; max-width:none; }
.customer-directory-columns > .patient-list { background:var(--workspace-surface); border:1px solid var(--workspace-outline); border-radius:var(--workspace-radius); padding:1rem; min-width:0; }
.customer-directory-columns .section-heading { gap:.75rem; }
.customer-directory-columns .section-heading h2 { font-size:var(--font-heading-small); }
.customer-directory-columns .customer-list-header .button { flex:0 1 auto; max-width:100%; }
.customer-directory-columns .customer-list-tools { gap:.75rem; margin:1rem 0; padding-bottom:1rem; border-bottom:1px solid var(--workspace-outline); }
.customer-directory-columns .customer-filter-row { gap:.65rem; }
.customer-directory-columns .customer-filter-row .button { flex:0 1 auto; max-width:100%; }
.customer-directory-columns .field-search { background:var(--workspace-surface); border-radius:.7rem; }
.customer-directory-columns .customer-filter select { border-radius:.7rem; background:var(--workspace-surface); color:var(--workspace-on-surface); }
.customer-directory-columns > .patient-list .patient-row { border-radius:.8rem; }
.customer-directory-columns .time-pill { background:var(--workspace-tonal); color:var(--workspace-on-tonal); border-radius:.5rem; }
.customer-directory-columns .count-dot { background:var(--workspace-selection); color:var(--workspace-on-surface); }
.visit-card.detail-card { border-radius:var(--workspace-radius); padding:1.2rem; }
.detail-card .workspace-detail-header,.detail-card .invoice-overview-header { padding:1rem; border:1px solid var(--workspace-outline); border-radius:.8rem; background:var(--workspace-tonal); color:var(--workspace-on-surface); }
.detail-card .workspace-detail-header .reader,.detail-card .invoice-overview-identity p { color:var(--workspace-on-tonal); }
.detail-card .workspace-detail-status,.detail-card .invoice-overview-status { background:var(--workspace-surface); color:var(--workspace-on-surface); }
.detail-card .detail-section { margin-top:1.2rem; padding-top:1rem; }
.detail-card .detail-section > h4 { font-size:var(--font-heading-small); }
.detail-card .customer-fields dt { font-size:var(--font-meta); }
.workspace-settings { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr)); gap:1.2rem; align-items:stretch; }
.workspace-settings > .panel { margin:0; padding:1.2rem; border:1px solid var(--workspace-outline); border-radius:var(--workspace-radius); background:var(--workspace-surface); min-width:0; display:flex; flex-direction:column; align-items:flex-start; --muted:var(--workspace-muted); }
.workspace-settings > .company-information { grid-column:1 / -1; display:block; }
.workspace-settings > .panel > h2,.accounting-tools > h2 { width:100%; margin:0 0 .8rem; padding:.75rem 1rem; border-radius:.75rem; background:var(--workspace-tonal); color:var(--workspace-on-tonal); font-size:var(--font-heading-small); }
.workspace-settings > .panel > .button { margin-top:auto; max-width:100%; }
.workspace-settings > .panel > p { margin-bottom:1rem; }
.workspace-settings .company-profile-fields { margin-top:1rem; }
.accounting-tools,.accounting-period-panel,.live-placeholder { border-radius:var(--workspace-radius); background:var(--workspace-surface); padding:1.1rem; }
.accounting-tools .form-actions { gap:.6rem; }
.app-shell .accounting-tools .button.secondary { background:var(--workspace-tonal); color:var(--workspace-on-tonal); }
.app-shell .accounting-tools .button.secondary:hover { background:var(--workspace-tonal-hover); }
.app-shell .accounting-tools .button.secondary:active { background:var(--workspace-tonal-pressed); }
.live-placeholder { border:1px solid var(--workspace-outline); }
@media(max-width:760px) {
 .workspace-page-header { margin-bottom:1rem; }
 .workspace-page-symbol { flex-basis:2.4rem; width:2.4rem; height:2.4rem; border-radius:.8rem; }
 .workspace-page-title { gap:.6rem; }
 .customer-directory-columns > .patient-list,.visit-card.detail-card { padding:.8rem; }
 .detail-card .workspace-detail-header,.detail-card .invoice-overview-header { padding:.8rem; margin:-.8rem -.8rem 1rem; border:0; border-bottom:1px solid var(--workspace-outline); border-radius:.95rem .95rem 0 0; }
 .workspace-settings > .panel { padding:.8rem; }
 .workspace-section-choices { width:100%; }
 .invoice-sections .workspace-choice { flex:1 1 12rem; }
 .report-navigation .workspace-section-choices { display:none; }
}
@media(forced-colors:active) {
 .app-shell .workspace-section-choices .button.workspace-choice[aria-pressed=true] { border:2px solid Highlight; }
 .workspace-page-symbol { border:1px solid CanvasText; }
}

.customer-columns .visit-card:not(.detail-card) { background:var(--workspace-surface); border:1px solid var(--workspace-outline); border-radius:var(--workspace-radius); color:var(--workspace-on-surface); }
/* Financial registers must fill the single pane even when their desktop
   column rule has a more specific selector. */
@media(max-width:1100px) {
 .patient-overview.customer-directory-columns.detail-directory-wide { grid-template-columns:minmax(0,1fr); }
}
