:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#f5f6fb}body{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}.app-topbar{padding-top:max(0px,var(--safe-top));padding-left:max(24px,var(--safe-left));padding-right:max(24px,var(--safe-right))}.app-main{padding-bottom:max(32px,calc(22px + var(--safe-bottom)))}button,.button,a,input,select,textarea{touch-action:manipulation}.button,button,.icon-button,.app-nav a,.app-nav button{min-height:44px}input,select,textarea{font-size:16px}.brand-mark{flex:0 0 auto}.is-standalone .app-topbar{padding-top:max(8px,var(--safe-top))}.is-standalone body{user-select:none}.is-standalone input,.is-standalone textarea{user-select:text}
@media(max-width:760px){body{min-width:0}.app-topbar{position:sticky;top:0;z-index:500;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:12px max(14px,var(--safe-right)) 10px max(14px,var(--safe-left));background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.app-topbar>.brand-lockup{min-width:0}.brand-lockup span:last-child{min-width:0}.brand-lockup small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.app-topbar>.user-menu{grid-column:2;grid-row:1}.app-topbar>.app-nav{grid-column:1/-1;grid-row:2;display:none;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:2px 0 1px}.app-topbar>.app-nav::-webkit-scrollbar{display:none}.app-nav a,.app-nav .app-nav-action button{flex:0 0 auto;white-space:nowrap;padding:9px 11px;min-height:40px}.user-copy{display:none}.app-main,.workspace-main,.settings-main{padding-left:max(14px,var(--safe-left));padding-right:max(14px,var(--safe-right))}.module-card-shell,.auth-card,.settings-hero{border-radius:17px}.auth-shell{min-height:100dvh}.auth-panel{padding-left:max(16px,var(--safe-left));padding-right:max(16px,var(--safe-right));padding-bottom:max(18px,var(--safe-bottom))}.auth-card{width:100%;box-sizing:border-box}.dashboard-primary-actions,.patient-primary-actions{display:grid;grid-template-columns:1fr}.dashboard-primary-actions>* ,.patient-primary-actions>*{width:100%}.consult-overview-item{padding-left:12px;padding-right:12px}.consult-actions-menu{position:fixed;left:14px;right:14px;bottom:max(14px,var(--safe-bottom));top:auto;min-width:0;border-radius:16px;padding:10px;box-shadow:0 18px 60px rgba(20,24,56,.22)}.consult-actions-menu a,.consult-actions-menu button{min-height:46px;border-radius:10px;padding:11px 12px}.patient-detail-two-column{gap:14px}.compact-workspace-header{position:sticky;top:0;z-index:450}.workspace-section-grid{grid-template-columns:1fr}.settings-form-actions{bottom:var(--safe-bottom)}}
@media(max-width:420px){.brand-lockup strong{font-size:.95rem}.brand-lockup small{font-size:.66rem;max-width:126px}.brand-mark{width:38px;height:38px;border-radius:11px}.app-topbar{grid-template-columns:minmax(0,1fr) auto}.user-menu form button,.user-menu>a{font-size:.75rem;padding:8px}.auth-card{padding:22px 18px}.auth-card h1,.auth-card h2{font-size:1.8rem}.app-main{padding-top:18px}.page-hero h1,.workspace-title h1{font-size:1.65rem}}
@media(display-mode:standalone){body{padding-bottom:var(--safe-bottom)}a,button{-webkit-touch-callout:none}}

/* P020 brand responsiveness */
@media(max-width:760px){
  .app-topbar>.brand-lockup-verder{min-width:116px}
  .app-topbar>.brand-lockup-verder .brand-wordmark-stack{display:flex}
  .app-topbar>.brand-lockup-verder .brand-compact-icon{display:none}
  .app-topbar>.brand-lockup-verder .brand-wordmark{width:96px}
  .app-topbar>.brand-lockup-verder .brand-wordmark-stack small{font-size:.58rem}
}
@media(max-width:420px){
  .app-topbar>.brand-lockup-verder{min-width:40px}
  .app-topbar>.brand-lockup-verder .brand-wordmark-stack{display:none}
  .app-topbar>.brand-lockup-verder .brand-compact-icon{display:block;width:38px;height:38px}
}

/* P029B.3 — UI consistency & responsive fit
   Global finishing layer: same controls, cards, spacing and overflow behaviour across modules. */
:root{
  --ku-control-height:44px;
  --ku-control-radius:10px;
  --ku-control-pad-x:12px;
  --ku-card-radius:16px;
  --ku-card-border:var(--ku-line,#e2e5ee);
  --ku-card-shadow:0 5px 18px rgba(25,28,65,.045);
  --ku-ui-gap:14px;
}
html,body{max-width:100%;overflow-x:clip}
img,video,canvas{max-width:100%;height:auto}
svg{max-width:100%}
form,fieldset,details,summary{min-width:0;max-width:100%}
fieldset{border:0;padding:0;margin:0}
.app-main,.workspace-shell,.workspace-main,.workspace-panel,.integrated-workspace,.settings-main,.profile-main,.patient-workspace-main,.p027b1-main,.p029b2-financial-main{width:100%;min-width:0}
:where(.app-main,.workspace-shell,.settings-main,.profile-main,.patient-workspace-main) :where(.grid,.form-grid,.settings-form-grid,.security-form-grid,.dashboard-content-grid,.patient-overview-grid,.profile-content-grid,.p029b2-financial-grid,.p027a4-row,.p027b1-summary-grid,.p027b2-route-row)>*{min-width:0}
:where(.app-main,.workspace-shell,.settings-main,.profile-main,.patient-workspace-main) :where(h1,h2,h3,h4,p,strong,small,span,dd,dt,a){overflow-wrap:anywhere}
pre{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
code{max-width:100%;overflow-wrap:anywhere}

/* One control language. */
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;max-width:100%;padding:10px 15px;line-height:1.2;text-align:center;vertical-align:middle}
button svg,.button svg{flex:0 0 auto}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),select{min-width:0;max-width:100%;min-height:var(--ku-control-height);padding:10px var(--ku-control-pad-x);border-radius:var(--ku-control-radius);line-height:1.25}
textarea{min-width:0;max-width:100%;min-height:112px;padding:11px var(--ku-control-pad-x);border-radius:var(--ku-control-radius);line-height:1.5}
input[type="file"]{max-width:100%;min-width:0}
input[type="checkbox"],input[type="radio"]{flex:0 0 auto;width:18px!important;height:18px!important;min-height:0!important;margin:2px 0 0!important;padding:0;accent-color:var(--ku-primary,#2D328E)}
input[readonly],textarea[readonly],select:disabled{background:#f4f5f8;color:#697086}
::placeholder{color:#9aa0b1;opacity:1}
label{min-width:0;max-width:100%}
:where(.form-grid,.settings-form-grid,.security-form-grid,.security-inline-form,.security-compact-form,.two-factor-confirm-form,.p027b1-create-form,.p027b2-route-row,.p027b2-final-actions,.p027b2-codelist-form) label{margin-top:0;margin-bottom:0}
:where(.settings-field,.security-form-grid label,.security-inline-form label,.security-compact-form label,.two-factor-confirm-form label,.p027b1-create-form label,.p027b2-route-row label,.p027b2-final-actions>label,.p027b2-codelist-form label){gap:6px}

/* Same surface treatment; feature-specific padding remains intact. */
:where(.module-card-shell,.dashboard-card,.patient-info-card,.patient-workspace-panel,.patient-overview-card,.settings-section,.profile-panel,.profile-side-card,.profile-status-card,.communication-center,.p027b1-create,.p027b1-list,.p027b1-insurer,.p027b1-final,.p027b2-routing,.p027b2-validator,.p029b2-financial-card,.p027a4-day){min-width:0;max-width:100%;border-color:var(--ku-card-border);border-radius:var(--ku-card-radius);box-shadow:var(--ku-card-shadow)}
:where(.page-head,.dashboard-hero,.dashboard-welcome,.dashboard-card-head,.settings-section-head,.security-subsection-head,.patient-panel-head,.patient-context-card,.workspace-panel-head,.document-detail-head,.communication-center-head,.p027b1-actions,.p027b1-final,.p027b1-item-main){min-width:0;max-width:100%}
:where(.page-head,.dashboard-hero,.dashboard-welcome,.dashboard-card-head,.settings-section-head,.security-subsection-head,.patient-panel-head,.workspace-panel-head,.document-detail-head,.communication-center-head){flex-wrap:wrap}

/* Statuses should behave as chips instead of stretching a row. */
:where(.badge,.status-pill,.consult-status,.decision-status-badge,.document-status,.phase-status,.security-state-pill,.patient-record-status,.patient-financial-route-badge,.patient-financial-status,.p022-review-badge,.p022-validation-badge,.p022-governance-count){display:inline-flex;align-items:center;justify-content:center;max-width:100%;line-height:1.2;white-space:nowrap}

/* Lists and table-heavy admin screens must stay inside their cards. */
:where(.usage-table-wrap,.p026a-invoice-table-wrap){max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
:where(.usage-table,.p026a-invoice-table){max-width:none}
:where(.patient-row,.modern-patient-row,.p019-patient-row,.recent-item,.p027a4-row,.p027b1-batch-row,.p027b2-route-row,.p029b2-financial-card)>*{min-width:0}
:where(.patient-primary,.patient-meta,.recent-copy,.p027a4-row-main,.p027a4-performance,.p029b2-financial-card)>:where(strong,small,p){max-width:100%}

/* Header: preserve the five-domain navigation without collisions. */
.app-topbar{max-width:100%;min-width:0}
.app-topbar>*{min-width:0}
.p029b2-topbar .p029b2-main-nav{overflow:hidden}
.p029b2-topbar .p029b2-main-nav a{flex:0 1 auto;white-space:nowrap}
.p029b2-topbar .p029b2-topbar-primary{flex:0 0 auto}
.p029b2-account-menu{flex:0 0 auto}
.p029b2-account-panel{max-height:min(70vh,520px);overflow:auto}
.p029b2-account-logout button{width:100%;justify-content:flex-start}
.button-link,.text-button,.p025c2-feedback-toggle{min-height:auto}
.patient-context-name-row{min-width:0;flex-wrap:wrap}
.patient-context-name-row h1{min-width:0;max-width:100%}
.patient-context-actions{flex-wrap:wrap}
.patient-context-stats{max-width:100%}

/* Explicit fit corrections for the newer financial/declaration flows. */
.p029b-financial-route-choice label{min-width:0;margin:0}
.p029b-financial-route-choice label>span{min-width:0}
.p029b-finish-buttons{max-width:100%}
.p027b1-create-form>*{min-width:0}
.p027b2-route-row>button{min-width:0}
.p027b2-export-list{max-width:100%;min-width:0}
.p027b2-export-row>*{min-width:0;max-width:100%}
.p027b2-export-row code{word-break:break-all}
.p029b2-financial-admin-links a{display:inline-flex;align-items:center;justify-content:center;min-height:38px}

@media(max-width:1180px){
  .p029b2-topbar .user-copy{display:none}
  .p029b2-topbar .brand-lockup-verder .brand-wordmark{width:96px}
  .p029b2-topbar .p029b2-main-nav a{padding-inline:9px;font-size:.82rem}
}
@media(max-width:900px){
  .p027b2-route-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p027b2-validator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .patient-context-stats{overflow-x:auto;scrollbar-width:thin}
}
@media(max-width:720px){
  .app-main,.settings-main,.profile-main,.patient-workspace-main,.p027b1-main{padding-left:max(14px,var(--safe-left));padding-right:max(14px,var(--safe-right))}
  :where(.module-card-shell,.dashboard-card,.patient-workspace-panel,.patient-overview-card,.settings-section,.profile-panel,.profile-side-card,.communication-center,.p027b1-create,.p027b1-list,.p027b1-insurer,.p027b1-final,.p027b2-routing,.p027b2-validator){border-radius:14px}
  :where(.document-actions,.p019-form-actions,.p029b-finish-buttons,.p027b1-item-actions,.p027b2-final-actions,.p027b2-production-form,.p027b2-codelist-form,.p029b2-financial-admin-links){display:grid;grid-template-columns:1fr;width:100%;gap:8px}
  :where(.document-actions,.p019-form-actions,.p029b-finish-buttons,.p027b1-item-actions,.p027b2-final-actions,.p027b2-production-form,.p027b2-codelist-form,.p029b2-financial-admin-links)>*{width:100%;min-width:0}
  :where(.document-actions,.p019-form-actions,.p029b-finish-buttons,.p027b1-item-actions,.p027b2-final-actions,.p027b2-production-form,.p027b2-codelist-form) :where(button,.button,a.button){width:100%}
  .p027b2-route-row{grid-template-columns:1fr}
  .p027b2-route-row>button{width:100%}
  .p027b2-validator-grid{grid-template-columns:1fr 1fr}
  .p029b2-financial-admin-links a{width:100%}
  .patient-context-actions{display:grid;width:100%;grid-template-columns:1fr}
  .patient-context-actions>*{width:100%;min-width:0}
  .patient-context-actions :where(button,.button){width:100%}
}
@media(max-width:480px){
  :root{--ku-control-height:46px}
  .app-main{padding-top:18px}
  .p027b2-validator-grid{grid-template-columns:1fr}
  .p027a4-summary{grid-template-columns:1fr 1fr}
  .patient-context-stats>span{min-width:90px}
  .p029b2-financial-nav a{padding-inline:9px}
  .p029b2-account-panel{width:calc(100vw - 20px)}
}
