/* (c) schober24.com Deutschland | Schober, Thorsten */
.serial-field-group{display:grid;gap:8px;margin-block:16px}.serial-field-group[hidden]{display:none}.serial-field-group textarea{min-height:96px}
/* Shared application UI. Component styles own content geometry, never page chrome. */
.stock-expiry{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:5px 9px;border:1px solid transparent;border-radius:6px;font-size:13px;line-height:1.4;font-weight:600;vertical-align:middle;box-sizing:border-box}
.stock-expiry-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:currentColor}
.stock-expiry time{white-space:nowrap}
.stock-expiry-ok{background:#dcfce7;color:#166534;border-color:#86d3a0}
.stock-expiry-early{background:#e0f2fe;color:#075985;border-color:#7dd3fc}
.stock-expiry-critical{background:#ffedd5;color:#9a3412;border-color:#fdba74}
.stock-expiry-soon{background:#fef3c7;color:#854d0e;border-color:#e5c45b}
.stock-expiry-expired{background:#fee2e2;color:#991b1b;border-color:#efaaaa}
.stock-expiry-unknown,.stock-expiry-invalid{background:#f1f3f5;color:#526070;border-color:#d7dce3}
@media print{.stock-expiry{border-color:currentColor}}
.page-head>.form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:0}
.batch-sorting-list .panel-head{padding:16px;gap:12px;flex-wrap:wrap}
.ui-field-group{min-width:0;margin:0;padding:0;border:0}.ui-field-group>legend{padding:0;margin-bottom:16px;font-size:16px;font-weight:700}.ui-field-group~.ui-field-group{margin-top:4px;padding-top:20px;border-top:1px solid var(--ui-line,#d3dce6)}
.customer-person-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(170px,220px);gap:20px}
.contact-list-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.contact-list-toolbar>label{flex:1;min-width:220px}.contact-list-toolbar>button{flex-shrink:0}
.customer-record-body{display:grid;gap:20px}.contact-private>summary{min-height:44px;box-sizing:border-box;cursor:pointer}.contact-private>.organization-fields{padding-top:12px}
body.app-v2 #main-content .customer-record-table{min-width:0;width:100%;table-layout:fixed}
body.app-v2 #main-content .customer-record-table :is(th,td){min-width:0;padding:8px 12px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
body.app-v2 #main-content .customer-record-table th:last-child{width:140px}.customer-record-table [data-record-open]{white-space:nowrap}.customer-record-table [data-record-row]{cursor:pointer}.customer-record-table [data-record-row]:hover{background:var(--ui-soft)}
body.app-v2 #main-content .customer-record-dialog{text-align:left;font-weight:400;line-height:1.5;cursor:default}
.customer-record-dialog .panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.customer-record-dialog .panel-head h2{margin:0}
@media(max-width:700px){.customer-record-table{min-width:680px}.customer-record-table .ui-list-source-actions{display:none!important}}
@media(max-width:700px){.customer-person-fields{grid-template-columns:1fr}}
@media(max-width:650px){.page-head>.form-actions{width:100%;justify-content:flex-start}.page-head>.form-actions>*{flex:1 1 150px;text-align:center}.stock-expiry{font-size:12px}}
@media print{body.app-v2.page-stock-batches>aside,body.app-v2.page-stock-batches>header,body.app-v2.page-stock-batches>.app-footer,.page-stock-batches .page-head>.form-actions,.batch-no-print,.batch-list-filters,.batch-list-paging{display:none!important}body.app-v2.page-stock-batches #main-content{margin:0;padding:0}.batch-sorting-list{overflow:visible!important}.batch-sorting-list table{min-width:0!important}.batch-sorting-list th,.batch-sorting-list td{min-width:0!important;white-space:normal;font-size:10px}.batch-sorting-list .stock-expiry{font-size:10px}.batch-sorting-list tr{break-inside:avoid}}
body.app-v2,body.portal-shared {
  --ui-space:20px; --ui-gutter:24px; --ui-field-height:44px;
  --ui-ink:#263242; --ui-muted:#647184; --ui-line:#d3dce6;
  --ui-surface:#fff; --ui-soft:#f5f7fa; --ui-active:#293746;
  --ui-radius:10px; --ui-shadow:0 3px 12px #2632420d,0 1px 2px #26324208;
  color:var(--ui-ink);
}
body.app-v2 #main-content {max-width:none;width:auto;padding:100px var(--ui-gutter) 32px;margin:0 0 0 220px;}
body.app-v2 #main-content :is(.profile-page,.profile-account-form,.profile-secondary,.organization-settings,.booking-editor,.number-settings,.gr-form,.settings-form,.case-edit-form,.case-intake-wizard,.support-intake,.pos-core) {width:100%;max-width:none;margin-left:0;margin-right:0;}
body.app-v2 #main-content>.form-grid,
body.app-v2.page-new-case #main-content :is(.page-head,.customer-picker,[data-case-form]) {width:100%;max-width:none;margin-left:0;margin-right:0;}
body.app-v2 #main-content :is(.page-head,.hero,.case-top) {gap:16px;align-items:center;margin:0 0 var(--ui-space);padding:0;}
body.app-v2 #main-content :is(.page-head,.hero,.case-top) h1 {font-size:26px;line-height:1.25;margin:4px 0 8px;}
body.app-v2 #main-content :is(.page-head,.hero,.case-top) p {margin:0;}
body.app-v2 #main-content :is(.panel,.support-card,.settings-card,.article-shell,.booking-editor-section,.stats>article,.article-kpis>article) {background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);}
body.app-v2 #main-content :is(.panel,.support-card,.article-shell,.booking-editor-section) {padding:20px;margin-bottom:var(--ui-space);}
body.app-v2 #main-content :is(.table-wrap,.permission-group-panel) {padding:0;}
body.app-v2 #main-content :is(.panel,.support-card,.article-shell,.booking-editor-section) :is(.panel,.support-card) {box-shadow:none;}
body.app-v2 #main-content .form-section {background:transparent;box-shadow:none;}
body.app-v2 #main-content :is(.panel,.support-card,.article-shell)>h2 {font-size:18px;line-height:1.4;margin:0 0 16px;color:var(--ui-ink);}
body.app-v2 :is(#main-content,dialog) :is(.form-grid,.form-section,.organization-fields,.profile-fields,.booking-admin-grid,.booking-fields-compact,.mail-connection-grid) {max-width:none;gap:16px 20px;align-items:start;}
body.app-v2 :is(#main-content,dialog) label {font-size:13px;line-height:1.45;gap:6px;}
body.app-v2 :is(#main-content,dialog) :is(.form-grid,.form-section,.organization-fields,.profile-fields,.booking-admin-grid,.booking-fields-compact)>label {margin:0;min-width:0;}
body.app-v2 :is(#main-content,dialog) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=color],[type=range]),select,textarea) {font-size:14px;font-weight:400;color:var(--ui-ink);background:#fff;border:1px solid #c6d1dd;border-radius:7px;padding:10px 12px;min-width:0;min-height:var(--ui-field-height);box-sizing:border-box;}
body.app-v2 :is(#main-content,dialog) textarea {min-height:96px;}
body.app-v2 :is(#main-content,dialog) textarea[rows="1"] {min-height:var(--ui-field-height);height:var(--ui-field-height);line-height:22px;}
body.app-v2 :is(#main-content,dialog) input[readonly] {background:var(--ui-soft);}
body.app-v2 :is(#main-content,dialog) :is(input,select,textarea):focus-visible {outline:2px solid #7fa3c9;outline-offset:2px;border-color:#486b91;}
body.app-v2 :is(#main-content,dialog) .muted {color:var(--ui-muted);}
body.app-v2 :is(#main-content,dialog) :is(.form-actions,.booking-section-actions) {gap:10px;flex-wrap:wrap;}
body.app-v2 :is(#main-content,dialog,[popover]) :is(button,.button):not([role=switch],.booking-add-time,.booking-text-button,[data-time-remove],.editor-resize-handle) {font-family:inherit;font-size:var(--ui-button-font-size);font-weight:var(--ui-button-font-weight);line-height:1.4;min-height:var(--ui-field-height);border-radius:var(--ui-button-radius);}
body.app-v2 :is(#main-content,dialog,[popover]) :is(button.secondary,.button.secondary) {color:var(--ui-ink);background:#fff;border:1px solid var(--ui-line);}
/* One tab component, including the existing feature names during migration. */
body.portal-shared .ui-tabs,
body.app-v2 #main-content :is(.ui-tabs,.profile-tabs,.article-nav,.organization-tabs,.customer-record-tabs,.print-designer-tabs,.designer-tabs,.legal-type-nav,.case-area-tabs,.edit-tabs,.tabs) {
 display:flex!important;flex-flow:row wrap!important;flex:none;align-items:center;justify-content:flex-start;gap:6px;
 width:100%;max-width:100%;overflow:visible;margin:0 0 var(--ui-space);padding:0 0 8px;
 border:0;border-bottom:1px solid var(--ui-line);background:transparent;
}
body.portal-shared .ui-tabs>:is(a,button),
body.app-v2 #main-content :is(.ui-tabs,.profile-tabs,.article-nav,.organization-tabs,.customer-record-tabs,.print-designer-tabs,.designer-tabs,.legal-type-nav,.case-area-tabs,.edit-tabs,.tabs)>:is(a,button) {
 display:inline-flex!important;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;width:auto!important;
 min-height:44px;padding:10px 14px;margin:0!important;border:1px solid transparent;border-radius:7px;
 background:transparent;color:#56677b;font-size:13px;font-weight:600;line-height:1.4;white-space:nowrap;box-shadow:none;
}
body.portal-shared .ui-tabs>:is(a,button):is(.active,[aria-current=page],[aria-selected=true],[aria-pressed=true]),
body.app-v2 #main-content :is(.ui-tabs,.profile-tabs,.article-nav,.organization-tabs,.customer-record-tabs,.print-designer-tabs,.designer-tabs,.legal-type-nav,.case-area-tabs,.edit-tabs,.tabs)>:is(a,button):is(.active,[aria-current=page],[aria-selected=true],[aria-pressed=true]) {color:#fff!important;background:linear-gradient(135deg,#3b536b,#263746)!important;border-color:#263746!important;box-shadow:0 3px 7px #26374626!important;}
body.portal-shared .ui-tabs>:is(a,button):hover,
body.app-v2 #main-content :is(.ui-tabs,.profile-tabs,.article-nav,.organization-tabs,.customer-record-tabs,.print-designer-tabs,.designer-tabs,.legal-type-nav,.case-area-tabs,.edit-tabs,.tabs)>:is(a,button):hover {background:#e8edf3;color:var(--ui-ink);}
body.app-v2 #main-content :is(a,button,summary):focus-visible {outline:2px solid #668caf;outline-offset:2px;}
/* Boolean settings use the same track; row selections and consent remain checkboxes. */
:is(body.app-v2 :is(#main-content,dialog) input[type=checkbox]:is([role=switch],.module-option input,.booking-toggle input),body.portal-shared input[type=checkbox][role=switch]) {
 appearance:none;-webkit-appearance:none;position:relative;flex:0 0 44px;width:44px!important;min-width:44px;max-width:44px;
 height:44px!important;min-height:44px!important;max-height:44px;padding:0;margin:0;border:0!important;border-radius:20px;background:transparent!important;cursor:pointer;
}
:is(body.app-v2 :is(#main-content,dialog) input[type=checkbox]:is([role=switch],.module-option input,.booking-toggle input),body.portal-shared input[type=checkbox][role=switch])::before {content:'';position:absolute;left:1px;top:10px;width:42px;height:24px;border-radius:20px;background:#aebbc9;}
:is(body.app-v2 :is(#main-content,dialog) input[type=checkbox]:is([role=switch],.module-option input,.booking-toggle input),body.portal-shared input[type=checkbox][role=switch])::after {content:'';position:absolute;left:4px;top:13px;width:18px;height:18px;border:0;border-radius:50%;background:white;transform:none;box-shadow:0 1px 2px #0002;transition:transform .15s;}
:is(body.app-v2 :is(#main-content,dialog) input[type=checkbox]:is([role=switch],.module-option input,.booking-toggle input),body.portal-shared input[type=checkbox][role=switch]):checked::before {background:var(--ui-active);}
:is(body.app-v2 :is(#main-content,dialog) input[type=checkbox]:is([role=switch],.module-option input,.booking-toggle input),body.portal-shared input[type=checkbox][role=switch]):checked::after {transform:translateX(18px);}
body.app-v2 :is(#main-content,dialog) input[type=checkbox]:disabled {opacity:.5;cursor:default;}
body.app-v2 :is(#main-content,dialog) label.check {display:flex;align-items:center;min-height:44px;gap:10px;padding:0;}
body.app-v2 #main-content .profile-small {margin:0 0 16px;}
body.app-v2 #main-content .booking-editor-columns {gap:var(--ui-space);}
body.app-v2 #main-content .booking-day {grid-template-columns:78px minmax(0,1fr) 28px;gap:8px;align-items:center;}
body.app-v2 #main-content .booking-time-range {grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr) 24px;}
body.app-v2 #main-content .booking-time-range input {padding:7px;font-size:13px;}
body.app-v2 #main-content .booking-editor-head {padding:0 0 16px;}
body.app-v2 #main-content .booking-admin .panel-head {gap:16px;margin-bottom:12px;}
body.app-v2 #main-content .booking-page-options {display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:16px 0;}
body.app-v2 #main-content .booking-link-block {border-top:1px solid var(--ui-line);padding-top:16px;margin-top:16px;}
body.app-v2 :is(#main-content,dialog) [hidden] {display:none!important;}
@media(max-width:1100px) {body.app-v2 #main-content .booking-editor-columns {grid-template-columns:1fr;} }
@media(max-width:900px) {
 body.app-v2 {--ui-gutter:16px;--ui-space:16px;}
 body.app-v2 #main-content {margin-left:0;padding-top:88px;}
 body.app-v2 #main-content :is(.page-head,.hero,.case-top) h1 {font-size:24px;}
 body.app-v2 #main-content :is(.panel,.support-card,.article-shell,.booking-editor-section) {padding:16px;}
 body.app-v2 #main-content :is(.table-wrap,.permission-group-panel) {padding:0;}
 body.app-v2 #main-content :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea) {font-size:16px;}
}
@media(max-width:650px) {
 body.app-v2 #main-content :is(.form-grid,.form-section,.organization-fields,.profile-fields,.booking-admin-grid,.booking-fields-compact,.mail-connection-grid,.booking-page-options) {grid-template-columns:1fr;}
 body.app-v2 #main-content :is(.page-head,.hero,.case-top) {align-items:flex-start;}
 body.app-v2 #main-content .booking-day {grid-template-columns:72px minmax(0,1fr) 24px;gap:5px;}
 body.app-v2 #main-content .booking-time-range {grid-template-columns:minmax(0,1fr) 5px minmax(0,1fr) 20px;gap:3px;}
 body.app-v2 #main-content .booking-time-range input {padding:5px 3px;}
}
@media(prefers-reduced-motion:reduce) {body.app-v2 #main-content * {scroll-behavior:auto;transition:none!important;}}

@media(max-width:1279px) {body.app-v2 #main-content {margin-left:0;}}
/* The shell and the keyboard-navigation guard use the same breakpoint. */
@media(max-width:1279px) {
 body.app-v2>aside {transform:translateX(-100%);}
 body.app-v2.menu-open>aside {transform:none;}
 body.app-v2>header {left:0;}
 body.app-v2>header .menu {display:inline-flex;}
 body.app-v2>.app-footer {margin-left:0;}
}

/* Shared expandable action confirmations, aligned with the app's existing controls. */
.ui-action-menu { position: relative; }
.ui-action-menu > summary { list-style: none; cursor: pointer; }
.ui-action-menu > summary::-webkit-details-marker { display: none; }
.ui-action-menu-body { position: absolute; right: 0; z-index: 12; width: min(380px, calc(100vw - 48px)); padding: 16px; border: 1px solid var(--ui-border, #d1dbe5); border-radius: 8px; background: #fff; box-shadow: 0 8px 24px #172b4d20; }
.ui-action-menu-body p { margin: 0 0 12px; }
.ui-action-menu-body button { width: 100%; white-space: normal; }
@media (max-width: 680px) {
 [data-pos-lifecycle] .pos-section-head, [data-pos-lifecycle] .pos-record-list > div { align-items: stretch; flex-direction: column; gap: 12px; }
 .ui-action-menu-body { position: static; width: 100%; margin-top: 8px; box-sizing: border-box; }
 [data-pos-lifecycle] .actions { align-items: stretch; }
}

.offer-signature{display:block;width:100%;max-width:450px;height:auto;max-height:120px;background:white;border:1px solid #dde2e8;border-radius:8px;color:#263242}

/* Shared modal and primary document subject. */
body.app-v2 #main-content .ui-dialog {width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:24px;border:1px solid var(--ui-border);border-radius:var(--ui-radius,10px);background:#fff;color:var(--ui-text);overflow:auto;box-shadow:0 20px 70px #172b4d33;}
.ui-dialog::backdrop {background:#17212e88;}
.ui-dialog .panel-head {gap:16px;}
.ui-dialog .booking-admin-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.ui-dialog .booking-admin-grid .wide {grid-column:1/-1;}
body.app-v2 #main-content .pos-document-subject {display:block;margin:0 0 24px;}
body.app-v2 #main-content .pos-document-subject small {display:block;margin-top:6px;font-weight:400;color:var(--ui-muted);}
body.app-v2>header .header-invite {min-height:44px;flex-shrink:0;}
@media(max-width:680px){body.app-v2>header {flex-wrap:wrap;height:auto;min-height:72px;}body.app-v2>header .header-invite{order:5;margin-left:auto;max-width:100%;}body.app-v2 #main-content .ui-dialog{padding:16px;}body.app-v2 #main-content .ui-dialog .booking-admin-grid{grid-template-columns:1fr;}}
.calendar-connection{border-top:1px solid var(--border,#d7dce3);padding:16px 0}.calendar-connection>summary{min-height:44px;cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-connection .form-actions{margin-top:16px}
.ui-dialog-wide{width:min(920px,calc(100vw - 32px));max-width:calc(100vw - 32px)}.mail-preview-meta{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px}.mail-preview-meta dd{margin:0;overflow-wrap:anywhere}[data-mail-frame]{width:100%;height:480px;border:1px solid #d7dce3;background:#f2f4f7}.document-history-row{display:flex;align-items:start;gap:18px;padding:14px 0;border-top:1px solid #e3e3e3}.document-history-row time{white-space:nowrap;font-size:12px;color:#666}.document-history-row>div{flex:1;min-width:0}.document-history-row p{margin:4px 0;overflow-wrap:anywhere}.pos-output>summary{min-height:44px;cursor:pointer}.pos-output>label{margin:14px 0}.document-history-row[hidden]{display:none}.pos-revise{margin-bottom:12px}@media(max-width:640px){.document-history-row{flex-wrap:wrap}.document-history-row>div{flex-basis:100%}.mail-preview-meta{grid-template-columns:64px minmax(0,1fr)}}

/* Receivables reuse the shared tables, panels and form grid. */
.accounting-overdue{background:#fff3f3}.accounting-overdue td:first-child{border-left:3px solid #b31432}.badge.overdue{background:#fde5e8;color:#a00924}.mail-preview-frame{width:100%;height:620px;border:1px solid var(--border,#d5dce6);background:#fff;border-radius:8px}#invoice-accounting{scroll-margin-top:90px}#invoice-accounting details{margin-top:20px}#invoice-accounting details>summary{padding:12px 0;cursor:pointer;min-height:44px}

/* Designer controls use a small visible square and a separate touch target. */
body.app-v2 #main-content .editor-resize-handle{position:absolute;display:block;width:24px;height:24px;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;line-height:0;cursor:nwse-resize;touch-action:none;z-index:1003;transform:translate(-50%,-50%) scale(var(--editor-handle-scale,1))}
body.app-v2 #main-content .editor-resize-handle::after{content:'';position:absolute;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:2px;background:#2876cf;box-shadow:0 0 0 1px #2876cf}
body.app-v2 #main-content .editor-resize-handle[hidden]{display:none!important}
.editor-guide-tools{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin:8px 0}.editor-guide-tools label{display:grid;gap:4px;max-width:130px;font-size:12px}.editor-guide-tools button{width:auto!important}.editor-guide-tools [aria-pressed=true]{box-shadow:inset 0 0 0 1px #2876cf!important}.editor-guide-tools .editor-selection-count{font-size:12px;align-self:center}.editor-guide-help{font-size:12px;line-height:1.5;margin:6px 0 10px;color:var(--ui-muted)}
.editor-grid-overlay{position:absolute;inset:0;z-index:900;pointer-events:none;background-image:linear-gradient(to right,#4c7fa82b 1px,transparent 1px),linear-gradient(to bottom,#4c7fa82b 1px,transparent 1px);background-size:var(--editor-grid-size) var(--editor-grid-size)}
.editor-marquee{position:absolute;pointer-events:none;z-index:1004;border:1px solid #2876cf;background:#2876cf22}.editor-guided-stage{touch-action:none}.editor-grid-overlay[hidden],.editor-marquee[hidden]{display:none!important}
@media(pointer:coarse){body.app-v2 #main-content .editor-resize-handle{width:44px;height:44px}}
@media print{.editor-grid-overlay,.editor-marquee,.editor-guide-tools,.editor-guide-help,.editor-resize-handle{display:none!important}}
.article-editor>.ui-tabs{margin-bottom:20px}.article-editor .ui-field-group~.ui-field-group{margin-top:20px}.article-editor .form-grid{margin:0;padding:0}.article-editor textarea{min-height:0}.gtin-editor-row{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr) auto;align-items:center;gap:16px;margin-bottom:12px}.gtin-preview{min-width:0;font-size:12px;color:var(--ui-muted);padding:8px;background:#fff}.gtin-preview img{display:block;max-width:100%;width:220px;height:52px;object-fit:contain}.article-sales-warning{border-left:4px solid #ad2929;padding:12px 16px;background:#fff0f0;color:#8b2020}.article-sales-notice{border-left:4px solid #c99319;padding:12px 16px;background:#fff8dc;color:#654e14}@media(max-width:800px){.gtin-editor-row{grid-template-columns:minmax(0,1fr) auto}.gtin-preview{grid-column:1}.gtin-editor-row>button{grid-column:2}}
.article-status-actions{justify-content:flex-end;align-items:center;margin:0 0 20px}.article-status-actions label.check{margin:0 10px 0 0}.article-status-actions button{flex-shrink:0}
@media(max-width:650px){.article-status-actions{justify-content:flex-start}.article-status-actions label.check{flex-basis:100%}.article-status-actions button{max-width:100%;white-space:normal}}

.customer-record-dialog{overflow-wrap:normal}.customer-record-dialog [data-record-close]{white-space:nowrap;flex-shrink:0}.customer-record-actions{margin:0 0 20px}.customer-document-filters{margin:0 0 16px}.customer-document-filters button{display:flex;align-items:center;gap:10px}.customer-document-filters button[aria-pressed=true]{background:var(--ui-accent,#283747);color:white}.customer-portal-controls{border-top:1px solid var(--ui-line);margin-top:16px;padding-top:8px}.customer-portal-controls summary{cursor:pointer;min-height:44px;align-content:center}
/* Business reports share the standard panels, forms and table system. */
.customer-statistics>summary{cursor:pointer;min-height:44px;align-content:center}.customer-statistics>summary>span{margin-left:16px;font-size:13px}.stat-content{margin-top:20px}.stat-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:24px}.stat-kpis>div{border-left:3px solid #198393;padding-left:16px;min-width:0}.stat-kpis span,.stat-kpis small{display:block;color:var(--ui-muted);font-size:12px}.stat-kpis strong{display:block;font-size:clamp(20px,2vw,29px);line-height:1.4;margin:6px 0;overflow-wrap:anywhere}.stat-overdue{color:#af2339}.stat-graph{background:#f7fafb;border:1px solid var(--ui-line);border-radius:8px;padding:16px}.stat-chart{display:block;width:100%;height:auto;min-height:180px;max-height:300px;overflow:visible}.stat-chart text{fill:#5b6b7b;font-family:inherit;font-size:11px}.stat-grid-line{stroke:#dfe7ed;stroke-dasharray:3 4}.stat-points circle{fill:#fff;stroke:#137c8b;stroke-width:2}.stat-points circle:hover,.stat-points circle:focus{fill:#137c8b;stroke-width:4;outline:none}.stat-data summary,.stat-explanation summary{min-height:44px;align-content:center;cursor:pointer}.stat-last-case{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0}.stat-last-case>span,.stat-last-case small{color:var(--ui-muted);font-size:13px}.stat-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:16px;align-items:end}.stat-filters label{min-width:0}.stat-rankings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stat-rankings .panel{min-width:0;margin:0}.stat-rankings table{width:100%}.stat-rankings td small{display:block;color:var(--ui-muted)}.stat-secondary{display:flex;flex-wrap:wrap;gap:16px 32px;margin-top:20px;font-size:13px}.stat-secondary b{margin-left:8px}.stat-aging{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.stat-aging span,.stat-aging b{display:block;font-size:13px;margin-bottom:8px}.stat-bar-track{height:6px;background:#e7eef1;border-radius:3px;overflow:hidden;margin-top:8px}.stat-bar-track>div{height:100%;background:#198393;border-radius:3px}.stat-bar-track>.stat-aging-1{background:#dca732}.stat-bar-track>.stat-aging-2{background:#cf7136}.stat-bar-track>.stat-aging-3{background:#b82743}.stat-explanation{margin-top:20px!important}
@media(max-width:1000px){.stat-kpis,.stat-aging{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-rankings{grid-template-columns:1fr}}
@media(max-width:560px){.customer-statistics>summary>span{display:block;margin:6px 0 0}.stat-kpis{gap:20px 12px}.stat-kpis>div{padding-left:10px}.stat-kpis strong{font-size:20px}.stat-aging{grid-template-columns:1fr}.stat-filters{grid-template-columns:1fr}.stat-chart{min-height:0}.stat-graph{padding:8px}.stat-last-case{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.stat-chart text{font-size:26px}.stat-chart .stat-points circle{r:7;stroke-width:3}}

/* Reusable tinted field groups and persistent, responsive quick actions. */
body.app-v2 #main-content .ui-input-group{background:linear-gradient(135deg,var(--ui-soft),#eaf0f6);border:1px solid var(--ui-line);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);padding:16px;margin:0 0 12px;min-width:0}
body.app-v2 #main-content .pos-document-context{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr) minmax(180px,1fr);gap:12px 20px;align-items:start}
body.app-v2 #main-content .pos-document-context>label{display:grid;align-content:start;margin:0;min-width:0}
body.app-v2 #main-content .pos-document-context>label:only-child{grid-column:1/-1}
body.app-v2 #main-content .pos-document-context small{font-size:11px;margin:0}
body.app-v2>header{height:auto;min-height:76px;box-sizing:border-box;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
body.app-v2>header .header-global-actions{display:flex;gap:8px;align-items:center;min-width:0;max-width:100%;order:3}
body.app-v2>header .header-global-actions>:is(a,button){display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:44px;box-sizing:border-box;font-size:12px;padding:10px 12px;border-radius:7px;white-space:nowrap;margin:0}
body.app-v2>header .header-global-actions>.secondary{background:#fff;color:var(--ui-ink);border:1px solid var(--ui-line)}
body.app-v2 #main-content{padding-top:calc(var(--ui-header-height,76px) + 24px)}
@media(max-width:700px){body.app-v2>header .header-global-actions{flex-basis:100%;order:20;overflow-x:auto;scrollbar-width:thin}body.app-v2>header .header-global-actions .header-invite{order:initial;margin:0}}
@media(min-width:701px) and (max-width:1100px){body.app-v2 #main-content .pos-document-context{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}body.app-v2 #main-content .pos-document-context>.pos-document-subject{grid-column:1/-1}}
@media(max-width:700px){body.app-v2 #main-content .pos-document-context{grid-template-columns:1fr}body.app-v2>header .header-global-actions{gap:6px}body.app-v2>header .header-global-actions>:is(a,button){padding-inline:10px;font-size:12px}}
/* Legal document controls and semantic editor content. */
[data-legal-document]>.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
[data-legal-document]>.panel-head h2{margin:0 0 8px;font-size:18px}
[data-legal-document]>.panel-head p{margin:0}
.legal-share-row{display:flex;gap:12px;flex-wrap:wrap;align-items:end;padding:12px 0 16px}
.legal-share-row[hidden]{display:none!important}.legal-share-row>label{flex:1;min-width:200px;margin:0}.legal-share-row>[role=status]{flex-basis:100%;font-size:12px}.legal-share-row>.actions{margin:0}
body.app-v2 #main-content .rich-legal-surface{font:400 9pt/1.45 Arial,sans-serif;text-align:justify}
body.app-v2 #main-content .rich-legal-surface :is(h2,h3){font-family:inherit;font-weight:700;line-height:1.3;text-align:left;break-after:avoid;margin:1.1em 0 .55em}
body.app-v2 #main-content .rich-legal-surface h2{font-size:11pt}body.app-v2 #main-content .rich-legal-surface h3{font-size:10pt}
body.app-v2 #main-content .rich-legal-surface table{column-span:all;width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;margin:16px 0;text-align:left;font:inherit}
body.app-v2 #main-content .rich-legal-surface :is(td,th){border:1px solid #bfcbd8;padding:8px;vertical-align:top;white-space:normal;overflow-wrap:anywhere;font:inherit;min-width:0;text-align:left;background:white}
body.app-v2 #main-content .rich-legal-surface th{font-weight:700;background:#edf2f7}.rich-legal-surface td p:last-child,.rich-legal-surface th p:last-child{margin-bottom:0}.legal-editor-status:empty{display:none}.legal-editor-status{font-size:12px;margin:8px 0}
@media(max-width:760px){body.app-v2 #main-content .rich-legal-surface{font-size:16px}body.app-v2 #main-content .rich-legal-surface h2{font-size:19px}body.app-v2 #main-content .rich-legal-surface h3{font-size:17px}}

body.app-v2 #main-content .rich-legal-surface th{text-transform:none;letter-spacing:normal}

/* Searchable customer selection uses one visible input and direct results. */
.ui-customer-picker{position:relative;min-width:0;}
.ui-customer-picker>label{display:block;margin:0;}
.ui-customer-options{margin-top:6px;max-height:260px;overflow:auto;border:1px solid var(--ui-border,#c6d4e4);border-radius:8px;background:#fff;box-shadow:0 5px 18px #24384b16;}
.ui-customer-option{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:44px;padding:9px 12px;cursor:pointer;overflow-wrap:anywhere;}
.ui-customer-option+.ui-customer-option{border-top:1px solid #e5eaf0;}
.ui-customer-option:hover,.ui-customer-option[aria-selected="true"]{background:#eaf1f8;}
.ui-customer-option small{color:#576b85;}
.ui-picker-status:empty{display:none;}
.ui-picker-status{margin:6px 0 0;font-size:12px;}

.mail-preview-meta [data-mail-attachment]{white-space:pre-line}

/* Compact editor tools and action bars share the standard field and button heights. */
body.app-v2 #main-content .position-heading{align-items:flex-end;flex-wrap:wrap}
.position-heading-copy{flex:1 1 300px;min-width:0}
body.app-v2 #main-content .position-heading .position-tools{flex:0 1 680px;max-width:100%;margin:0;gap:10px}
body.app-v2 #main-content .position-heading .position-tools>label{flex:0 0 auto;min-width:0;max-width:none;margin:0}
body.app-v2 #main-content .position-heading .position-tools>.position-filter{flex:1 1 220px}
.position-page-state{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:var(--ui-muted);font-size:12px;align-self:center}
.position-page-state>div{display:flex;align-items:center;gap:6px;white-space:nowrap}
body.app-v2 #main-content .ui-status-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
body.app-v2 #main-content .ui-status-heading h3{margin:0;font-size:18px}
body.app-v2 #main-content .ui-action-bar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
body.app-v2 #main-content .ui-action-bar>form{display:flex;align-items:center;margin:0}
body.app-v2 #main-content .ui-action-bar>button,body.app-v2 #main-content .ui-action-bar>form>button,body.app-v2 #main-content .ui-action-bar>.ui-action-menu>summary{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;height:auto;margin:0;padding:10px 16px;white-space:normal}
body.app-v2 #main-content [data-pos-lifecycle] .pos-section-head{align-items:center;flex-wrap:wrap}
@media(max-width:800px){body.app-v2 #main-content .position-heading .position-tools{flex-basis:100%}.position-page-state{flex-direction:row;justify-content:space-between;flex:1 1 100%}.position-heading-copy{flex-basis:100%}}
@media(max-width:680px){body.app-v2 #main-content .ui-action-bar{justify-content:flex-start}.ui-action-bar>.ui-action-menu[open]{width:100%}}

body.app-v2 #main-content .pos-case-reference{display:flex;align-items:center;gap:8px;flex:1 1 100%;font-size:13px;color:var(--ui-muted)}
body.app-v2 #main-content .pos-case-reference:empty{display:none}
body.app-v2 #main-content .pos-document-heading>.ui-action-bar{flex:0 1 auto}

/* Global spacing contract: action rows never touch the fields above them. */
body.app-v2 #main-content .form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px}
body.app-v2 #main-content :is(.actions,.booking-section-actions){display:flex;gap:10px;flex-wrap:wrap}
body.app-v2 #main-content .booking-admin-grid+.booking-section-actions{margin-top:16px}

body.app-v2 #main-content .ui-entry-table{table-layout:fixed;width:100%;min-width:0;border:1px solid var(--ui-line);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden}
body.app-v2 #main-content .ui-entry-table :is(th,td){padding:10px 12px;vertical-align:middle;white-space:normal}
body.app-v2 #main-content .ui-entry-table th{background:var(--ui-soft);text-align:left}
body.app-v2 #main-content .ui-entry-table :is(input,button){width:100%;margin:0}
.ui-entry-table .ui-entry-quantity{width:130px}.ui-entry-table .ui-entry-action{width:130px}
@media(max-width:600px){body.app-v2 #main-content .ui-entry-table,body.app-v2 #main-content .ui-entry-table :is(tbody,tr,td){display:block;width:100%;box-sizing:border-box}body.app-v2 #main-content .ui-entry-table thead{display:none}body.app-v2 #main-content .ui-entry-table tr+tr{border-top:1px solid var(--ui-line)}.ui-entry-table td[data-label]::before{content:attr(data-label);display:block;font-size:13px;font-weight:600;margin-bottom:6px}}

body.app-v2 #main-content .position-heading .pos-price-field{flex:0 0 auto;align-self:flex-end;gap:6px}
body.app-v2 #main-content .position-heading .pos-price-field>span{font-size:13px;line-height:1.45;font-weight:600}
body.app-v2 #main-content .position-heading .pos-price-switch{height:44px;min-height:44px;margin:0}
body.app-v2 #main-content .position-heading .position-tools{flex-basis:810px}
body.app-v2 #main-content .pos-header-fields>.pos-field-half{grid-column:span 2}
@media(max-width:800px){body.app-v2 #main-content .position-heading .position-tools{flex-basis:100%}}
@media(max-width:600px){body.app-v2 #main-content .pos-header-fields>.pos-field-half{grid-column:1/-1}}

/* Reserve a distinct suffix column: values must never collide with currency marks. */
body.app-v2 #main-content .currency-field{display:block;position:relative;min-width:0}
body.app-v2 #main-content .currency-field input{width:100%;padding-right:42px;text-align:right;font-variant-numeric:tabular-nums}
body.app-v2 #main-content .currency-field::after{right:14px;pointer-events:none}
body.app-v2 #main-content :is(table,.table-wrap,.form-grid,.ui-entry-table)+:is(.actions,.form-actions,.ui-action-bar){margin-top:16px}
body.app-v2 #main-content .case-inline-field{margin:0;min-width:130px;max-width:240px}
body.app-v2 #main-content .case-inline-field select{width:100%;margin:0}
.case-inline-message:empty{display:none}.case-inline-message{display:block;font-size:12px;margin-top:6px;white-space:normal}
.case-inline-message[data-error="1"]{color:#b42338}
.bulk-group-row .case-inline-controls{display:flex;gap:12px;flex-wrap:wrap}

.ui-pdf-preview{display:block;width:100%;height:480px;max-height:60vh;border:1px solid var(--ui-line);border-radius:7px;margin-top:16px}
.ui-pdf-preview[hidden]{display:none}

/* Compact personal data: related fields share one consistent column grid. */
body.app-v2 #main-content .ui-identity-fields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px 20px;align-items:start}
.ui-identity-fields>label{grid-column:span 2;margin:0}.ui-identity-fields>.ui-identity-kind{grid-column:span 3}.ui-identity-fields>.ui-identity-company{grid-column:span 9}
.ui-identity-fields>label:has([name=first_name]),.ui-identity-fields>label:has([name=last_name]){grid-column:span 3}
body.app-v2 #main-content .ui-address-fields{display:grid;grid-template-columns:140px minmax(0,1fr) 110px;gap:16px 20px;align-items:start}
.ui-address-fields>.organization-wide{grid-column:1/-1}.ui-address-fields>label{margin:0}
.ui-input-group>h3{font-size:15px;margin:0 0 16px}.ui-input-group>details,.ui-input-group>div>details{margin-top:16px}
body.app-v2 #main-content #customer-self-service>summary{min-height:44px;cursor:pointer;align-content:center}
@media(max-width:1100px){body.app-v2 #main-content .ui-identity-fields{grid-template-columns:repeat(6,minmax(0,1fr))}.ui-identity-fields>.ui-identity-company{grid-column:span 3}.ui-identity-fields>label:has([name=birthday]){grid-column:span 2}}
@media(max-width:650px){body.app-v2 #main-content .ui-identity-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-identity-fields>label,.ui-identity-fields>.ui-identity-kind,.ui-identity-fields>.ui-identity-company,.ui-identity-fields>label:has([name=first_name]),.ui-identity-fields>label:has([name=last_name]),.ui-identity-fields>label:has([name=birthday]){grid-column:1/-1}body.app-v2 #main-content .ui-address-fields{grid-template-columns:1fr}.ui-address-fields>label{grid-column:1/-1}}

/* Calendar entries use the shared modal and readable touch targets. */
button.planner-event{display:block;width:100%;min-height:44px;text-align:left;font-weight:400;white-space:normal;border-top:0;border-right:0;border-bottom:0;box-shadow:none}
button.planner-event:not(:disabled):not([aria-disabled=true]):hover{filter:brightness(.97)}
.ui-detail-grid{display:grid;grid-template-columns:minmax(100px,.35fr) minmax(0,1fr);gap:10px 20px;margin:20px 0}.ui-detail-grid dt{font-weight:600}.ui-detail-grid dd{margin:0;overflow-wrap:anywhere}.ui-preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:650px){.planner-month button.planner-event{height:auto;min-height:44px;padding:4px 2px;font-size:10px}.planner-month button.planner-event b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ui-detail-grid{grid-template-columns:1fr;gap:4px}.ui-detail-grid dd{margin-bottom:10px}}

body.app-v2 #main-content .profile-audit-entry{margin-top:16px;border-top:1px solid var(--ui-line);padding-top:8px}
body.app-v2 #main-content .profile-audit-entry summary{min-height:44px;align-content:center;cursor:pointer}
body.app-v2 #main-content .profile-audit-entry :is(th,td){vertical-align:top;overflow-wrap:anywhere;white-space:normal}

/* Action rows above tables use the same spacing as rows below them. */
body.app-v2 #main-content .form-actions+.table-wrap{margin-top:16px}

/* Price calculation stays in the price-group row; the table scrolls within its section. */
.article-price-basics{display:grid;grid-template-columns:1fr 1fr 1.4fr}
.article-price-table{width:100%;min-width:850px;table-layout:fixed}
.article-price-table th:first-child{width:24%}
.article-price-table :is(td,th):not(:first-child){text-align:right}
.article-price-table input{text-align:right;width:100%}
.article-price-table tbody th{text-transform:none;font-size:13px;font-weight:600;white-space:normal;overflow-wrap:anywhere}
.article-price-table tbody th small{display:block;font-weight:400;color:var(--ui-muted);margin:0}
.article-price-table [data-pg-error]{color:#a02622}
.article-price-table input[aria-invalid=true]{border-color:#a02622}
.article-purchase-fields{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(140px,1fr));gap:16px;align-items:start}
body.app-v2 #main-content .article-price-table :is(th,td){padding:4px 8px}
.article-price-table tbody th .pg-number{display:inline;margin-right:8px}.price-calculation-help{margin-top:8px}.price-calculation-help summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
@media(max-width:1100px){.article-purchase-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.article-purchase-fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){.article-price-basics{grid-template-columns:1fr 1fr}.article-price-basics>label:last-child{grid-column:1/-1}}
@media(max-width:650px){.article-price-basics{grid-template-columns:1fr}}

/* Boolean choices inside shared document details remain inline. */
body.app-v2 #main-content .pos-header-fields>label.check{flex-direction:row;justify-content:flex-start;gap:10px}

/* Read and edit modes share the article form and its dimensions. */
.article-editor[data-readonly="1"] :is(input,select,textarea):disabled{opacity:1;color:var(--ui-text);-webkit-text-fill-color:var(--ui-text)}
.article-serial-table table{min-width:920px}
.article-editor .ui-field-group{min-width:0}
.serial-field-group{display:block;margin-bottom:16px}

/* Shared document context: type/date above subject and customer contact. */
body.app-v2 #main-content .pos-context-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
body.app-v2 #main-content .pos-context-meta>label{display:grid;min-width:0;margin:0}
body.app-v2 #main-content [data-workshop-device]>fieldset.pos-header-fields{border:0;margin:0;min-width:0}
@media(max-width:600px){body.app-v2 #main-content .pos-context-meta{grid-template-columns:1fr}}

/* Match field widths to their contents without narrowing the page or panel. */
body.app-v2 #main-content .ui-identity-fields{max-width:1100px}
body.app-v2 #main-content .ui-address-fields{max-width:840px;grid-template-columns:140px minmax(0,1fr) 110px}
body.app-v2 #main-content .customer-editor .organization-fields>label:has(>select[name=price_group]){max-width:32rem;width:100%}
@media(max-width:650px){body.app-v2 #main-content .ui-address-fields{grid-template-columns:1fr}}

/* Same cancel position and clearly visible validation notices throughout the app. */
body.app-v2 .ui-cancel-host{position:relative}
body.app-v2 .ui-cancel-x{position:absolute!important;inset:0 0 auto auto;z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px!important;font-size:24px!important;line-height:1;text-decoration:none;border:1px solid var(--ui-border);border-radius:6px;background:#fff;color:var(--ui-text)}
body.app-v2 .ui-cancel-host>.ui-tabs,body.app-v2 .ui-cancel-host>.organization-tabs{padding-right:56px}
body.app-v2 .ui-cancel-host>h2,body.app-v2 .ui-cancel-host>.panel-head{padding-right:56px}
body.app-v2 #main-content form.ui-cancel-host:not(:has(>.organization-tabs)):not(:has(>h2)):not(:has(>.panel-head)){padding-top:56px}
body.app-v2 #main-content .ui-form-alert,body.app-v2 #main-content .app-save-state:is([data-state=error],[data-state=pending]){grid-column:1/-1;width:100%;box-sizing:border-box;margin:0 0 16px;padding:14px 16px;border:1px solid #edb7b7;border-left:4px solid #bc2424;border-radius:6px;background:#fff1f1;color:#9e1b1b;font-size:14px;font-weight:600}
body.app-v2 #main-content .ui-form-alert:has(+.ui-cancel-x){padding-right:60px}
.ui-field-error{display:block;color:#a91f1f;font-weight:600;margin-top:6px}

body.app-v2 #main-content .customer-editor .organization-fields>label:not(.check){max-width:40rem;width:100%}
body.app-v2 #main-content .customer-editor .organization-fields>label:has(>input[type=date]){max-width:16rem}
body.app-v2 #main-content .customer-editor .organization-fields>label:has(>textarea){max-width:60rem}
body.app-v2 #main-content .customer-editor .ce-custom-add{grid-template-columns:minmax(0,32rem) auto;justify-content:start}
body.app-v2 #main-content .customer-editor .ce-custom-row{max-width:60rem}
@media(max-width:650px){body.app-v2 #main-content .customer-editor .ce-custom-add{grid-template-columns:minmax(0,1fr)}}

body.app-v2 #main-content .document-history-table{font-size:13px}
body.app-v2 #main-content .document-history-table :is(th,td){padding:3px 12px;vertical-align:middle}
body.app-v2 #main-content .document-history-table td:first-child{white-space:nowrap}
body.app-v2 #main-content [data-document-history]>label{display:block;max-width:40rem}
body.app-v2 #main-content .history-action{display:inline-flex;align-items:center;min-height:44px;padding:4px 0;border:0;background:transparent;box-shadow:none;color:var(--ui-text,#293b4c);font:inherit;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.history-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.history-comparison>*{min-width:0}.history-line{overflow-wrap:anywhere}.history-line+.history-line{margin-top:12px}.history-line small,.history-comparison small{display:block}.history-line p{margin:6px 0}[data-history-content]{overflow-wrap:anywhere}#invoice-accounting details:target{outline:2px solid #537fa4;outline-offset:6px;scroll-margin-top:100px}
@media(max-width:600px){.history-comparison{grid-template-columns:minmax(0,1fr)}}

body.app-v2 #main-content .case-inline-message:empty{display:none}
body.app-v2 #main-content [data-case-inline][data-current=high] select[name=priority]{background:#fff0ca;border-color:#d99823;color:#795000;font-weight:700}
body.app-v2 #main-content [data-case-inline][data-current=urgent] select[name=priority]{background:#ffe0e5;border-color:#d8344c;color:#a80e2e;font-weight:700}
body.app-v2 #main-content [data-case-row]:has([data-case-inline][data-current=high] select[name=priority])>td{background:#fff9ec}
body.app-v2 #main-content [data-case-row]:has([data-case-inline][data-current=urgent] select[name=priority])>td{background:#fff1f3}
body.app-v2 #main-content .bulk-group-row:has([data-case-inline][data-current=high] select[name=priority]){border-left:4px solid #d99823}
body.app-v2 #main-content .bulk-group-row:has([data-case-inline][data-current=urgent] select[name=priority]){border-left:4px solid #d8344c}

/* Customer identity follows the same reading order for private and business customers. */
body.app-v2 #main-content .ui-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
body.app-v2 #main-content .ui-section-heading>h2{margin:0}
body.app-v2 #main-content .ui-section-heading>.ui-identity-kind{width:260px;max-width:100%;margin:0}
body.app-v2 #main-content .customer-editor .ui-identity-fields{grid-template-columns:repeat(2,minmax(0,1fr));max-width:840px}
body.app-v2 #main-content .customer-editor .ui-identity-fields>label{grid-column:auto}
body.app-v2 #main-content .customer-editor .ui-identity-fields>.ui-identity-company{grid-column:1/-1}
body.app-v2 #main-content .customer-editor .ui-identity-fields>label:has([name=birthday]){grid-column:1/-1;max-width:16rem;width:100%}
@media(max-width:650px){body.app-v2 #main-content .ui-section-heading{flex-wrap:wrap}body.app-v2 #main-content .ui-section-heading>.ui-identity-kind{margin-left:auto}body.app-v2 #main-content .customer-editor .ui-identity-fields{grid-template-columns:1fr}}

body.app-v2 .ui-form-alert{box-sizing:border-box;margin:0 0 16px;padding:14px 16px;border:1px solid #edb7b7;border-left:4px solid #bc2424;border-radius:6px;background:#fff1f1;color:#9e1b1b;font-size:14px;font-weight:600}
body.app-v2 .serial-field-group>button{margin-top:16px}

body.app-v2 .customer-alarm-dialog{border-top:5px solid #bc2424}
body.app-v2 .customer-alarm-message{white-space:pre-wrap;overflow-wrap:anywhere;color:#9e1b1b;background:#fff1f1;padding:16px;border-radius:6px;font-weight:600}

body.app-v2 #main-content .article-tax-row{grid-template-columns:minmax(0,32rem);margin-bottom:20px}

/* Compact settings tables use the shared panel and tab edges. */
.article-settings-table{width:auto;min-width:min(100%,640px)}
.article-settings-table th,.article-settings-table td{padding:8px 12px}
.article-settings-table input{width:160px;max-width:100%}
.article-settings-table th[scope="row"]{white-space:nowrap}
.article-settings-table [data-pg-label]{min-width:180px}

.booking-article-link{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.65fr) 90px 44px;gap:12px;align-items:end;padding-block:12px;border-bottom:1px solid var(--ui-border,#d3dce7)}
.booking-article-link>label:first-child{grid-column:1/-1}
.booking-article-link [data-link-preview]{grid-column:1/-1;margin:0;color:#566b87;font-size:13px}
.booking-article-link>label:nth-child(2){grid-column:1/3}
.booking-article-link>button{min-width:44px}
@media(max-width:600px){.booking-article-link{grid-template-columns:minmax(0,1fr) 44px}.booking-article-link>label:nth-child(2){grid-column:1/-1}.booking-article-link>label:nth-child(3){max-width:120px}}

/* Customer display and editing share the same fields, panels and navigation. */
.customer-record-search{display:block;max-width:40rem;margin-bottom:16px}
.customer-editor[data-ce-readonly="1"] :is(input,select,textarea):disabled{opacity:1;color:var(--ui-ink,#273444);-webkit-text-fill-color:var(--ui-ink,#273444);background-color:#f4f5f7}
.customer-editor[data-ce-readonly="1"] .ce-custom-add,.customer-editor[data-ce-readonly="1"] [data-ce-field-remove],.customer-editor[data-ce-readonly="1"] [data-ce-email-add],.customer-editor[data-ce-readonly="1"] [data-ce-email-remove]{display:none}
.customer-record .customer-document-filters{margin-top:16px}

/* Compact identifiers and stacked dependencies share the form's field spacing. */
.ui-reference-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(150px,16rem);gap:16px 20px;align-items:start}
.ui-reference-fields>label,.ui-stacked-fields>label{margin:0}
.ui-stacked-fields{display:grid;grid-template-columns:minmax(0,42rem);gap:16px}
.form-actions.ui-actions-start{justify-content:flex-start}
@media(max-width:900px){.ui-reference-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ui-reference-fields{grid-template-columns:minmax(0,1fr)}}

/* Compact names retain their full text for hover, focus and assistive technology. */
.ui-compact-name{display:block;min-width:140px;max-width:220px;font-size:12px;line-height:1.4}.ui-compact-name>span,.ui-compact-name>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-compact-name>small{font-size:11px;color:var(--muted)}
.form-actions.ui-top-actions,.ui-action-bar.ui-top-actions,.position-save.ui-top-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;border:0;grid-column:1/-1;min-width:0}.ui-top-actions>[role=status]{margin-right:auto}.ui-top-actions:empty{display:none}
@media(max-width:650px){.ui-compact-name{max-width:100%;min-width:0}.ui-top-actions>*{flex:0 1 auto}}

/* Customer headings provide the common route back to the customer record. */
.ui-heading-link{color:inherit;text-decoration:none}.ui-heading-link:hover{text-decoration:underline}.ui-heading-link:focus-visible{outline:2px solid var(--ui-focus,#2563eb);outline-offset:4px;border-radius:4px}
.position-cost-type{margin:0;width:100%}.position-cost-type+.position-kind{display:block;margin-top:8px}

/* Keep next actions compact in process lists; full details remain on the link. */
.ui-compact-action{display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}

/* Empty filter feedback must not reserve a row; keep the reset action beside the fields. */
body.app-v2 #main-content .case-filters{grid-template-columns:minmax(240px,2fr) repeat(4,minmax(120px,1fr)) auto;align-items:end}
body.app-v2 #main-content .case-filters>.actions{grid-column:auto;align-self:end;min-height:44px}
body.app-v2 #main-content .case-filters>[role=status]{grid-column:1/-1;margin:0}
body.app-v2 #main-content .case-filters>[role=status]:empty{display:none}
body.app-v2 #main-content .case-filters :is(input,select){margin-top:0}
.permission-groups,.permission-group-panel,.permission-scroll{min-width:0;max-width:100%}
@media(max-width:1200px){body.app-v2 #main-content .case-filters{grid-template-columns:repeat(2,minmax(0,1fr))}body.app-v2 #main-content .case-filters>.case-search{grid-column:1/-1}body.app-v2 #main-content .case-filters>.actions{grid-column:1/-1;justify-content:flex-end}}

/* Permission toggles share the normal switch colour and a full touch target. */
body.app-v2 #main-content .role-switch{position:relative;min-width:44px;min-height:44px;align-items:center;justify-content:center}body.app-v2 #main-content .role-switch input:checked+span{background:var(--ui-active)}

/* The login choice uses the shared checkbox with a readable, wrapping label. */
body.auth .auth-remember{display:flex;align-items:center;gap:8px;font-weight:400;line-height:1.4;margin:8px 0 16px;min-height:44px}
body.auth .auth-remember input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0}

/* Shared visual hierarchy: compact groups, shaded headings and white controls. */
body.app-v2 :is(#main-content,dialog) .ui-field-group:has(>legend){padding:12px 16px 16px;margin:0;border:1px solid #d0dce7;border-radius:8px;background:linear-gradient(120deg,#f0f5fa,#fafcfe 70%);box-shadow:inset 0 1px #fff,0 1px 3px #26324206}
body.app-v2 :is(#main-content,dialog) .ui-field-group>legend{padding:5px 10px;margin:0 0 6px;border:1px solid #cedbe8;border-left:3px solid #49657e;border-radius:5px;background:linear-gradient(110deg,#e0eaf3,#f6f9fc);font-size:14px;line-height:1.4;color:#253c52}
body.app-v2 #main-content .ui-input-group{background:linear-gradient(125deg,#edf3f9,#f9fbfd);border:1px solid #cddae7;box-shadow:inset 0 1px #fff,0 2px 5px #26324208}
body.app-v2 #main-content :is(.panel,.support-card,.article-shell)>.panel-head{margin-bottom:14px}
body.app-v2 #main-content .organization-fields{gap:14px 20px}
body.app-v2 #main-content .pos-save-note:is([data-state=error],[data-state=pending]){display:block;flex:1 1 auto;border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.5}
body.app-v2 #main-content .pos-save-note[data-state=error]{border-left:3px solid #b4232c;background:#fff0f1;color:#9e1b1b}
body.app-v2 #main-content :is(.pos-save-note,.app-save-state)[data-state=pending]{border:1px solid #e4d3a0;border-left:3px solid #ad7b12;background:#fff9eb;color:#74530c;font-weight:400}
body.app-v2 #main-content .number-setting{grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr);gap:4px 20px;align-items:end;padding:12px 14px;border:1px solid #d3dfe9;border-radius:7px;background:linear-gradient(110deg,#eef4f9,#fafcfe)}
body.app-v2 #main-content .number-settings-list{display:grid;gap:8px}
body.app-v2 #main-content .number-setting>.app-save-state{grid-column:1/-1;order:3;margin:0;padding:0;min-height:0;font-size:11px;line-height:1.5}
body.app-v2 #main-content .number-setting>.app-save-state[data-state=idle]{display:none}
body.app-v2 #main-content .number-setting>.ui-top-actions:has(>[data-au-save-button]){display:none}
body.app-v2 #main-content .number-setting .number-example{padding:6px 12px;border-left:3px solid #91a9bf;background:#e5edf5;border-radius:5px}
body.app-v2 #main-content .number-settings .panel-head p{margin:4px 0 0}
@media(max-width:650px){body.app-v2 #main-content .number-setting{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .ui-field-group:has(>legend){padding:10px 12px 14px}}
body.app-v2 :is(#main-content,dialog) label.check{flex-direction:row;text-align:left;justify-content:flex-start}
body.app-v2 #main-content .organization-fields>label.check{align-self:end}
body.app-v2 #main-content .ui-field-group+.position-editor{margin-top:16px}

/* Shared surface hierarchy and inline controls: label space never displaces the action. */
body.app-v2{--ui-surface:linear-gradient(145deg,#f8fbff 0%,#edf3f9 100%);--ui-shadow:0 4px 12px #263e5612,0 1px 3px #263e560d;}
body.app-v2 #main-content :is(.panel-head,.planning-heading){padding-bottom:10px;border-bottom:1px solid #cbd8e6;margin-bottom:12px;}
body.app-v2 #main-content :is(.panel,.support-card) :is(.panel,.support-card){background:#ffffffb8;border-color:#d6e0eb;}
body.app-v2 #main-content .customer-quick-search{background:linear-gradient(125deg,#e4effb,#f8fbff);border-color:#bacde3;box-shadow:inset 4px 0 #5178a0,var(--ui-shadow);}
body.app-v2 #main-content [data-ui-tone=calendar]{background:linear-gradient(135deg,#eaf1fc,#f7faff);border-top:3px solid #6689ba;}
body.app-v2 #main-content [data-ui-tone=workflow]{background:linear-gradient(135deg,#e8f3f2,#f6fbfa);border-top:3px solid #558b84;}
body.app-v2 #main-content [data-ui-tone=todo]{background:linear-gradient(135deg,#fcf2e3,#fffaf3);border-top:3px solid #b18a48;}
body.app-v2 #main-content :is(.ui-inline-form,.mail-filters,.contact-list-toolbar){display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;}
body.app-v2 #main-content :is(.ui-inline-form,.mail-filters,.contact-list-toolbar)>label{margin:0;min-width:0;display:flex;flex-direction:column;gap:6px;}
body.app-v2 #main-content :is(.ui-inline-form,.mail-filters,.contact-list-toolbar)>.ui-top-actions{order:100;grid-column:auto;align-self:flex-end;margin:0;padding:0;min-height:44px;}
body.app-v2 #main-content :is(.ui-inline-form,.mail-filters,.contact-list-toolbar)>:is(button,.ui-top-actions){margin-left:auto;}
body.app-v2 #main-content .ui-inline-form :is(input:not([type=hidden]),select,button){margin-bottom:0;}
@media(max-width:650px){body.app-v2 #main-content :is(.ui-inline-form,.mail-filters)>label{flex:1 1 180px;}body.app-v2 #main-content :is(.ui-inline-form,.mail-filters)>.ui-top-actions{justify-content:flex-end;margin-left:auto;}}

body.app-v2 #main-content .position-credit-options{margin-top:10px;padding:10px;background:#e6f2ec;border:1px solid #bcd6c7;border-radius:7px;}
body.app-v2 #main-content .position-credit-options label{display:flex;flex-direction:column;margin-top:8px;}
body.app-v2 #main-content .position-credit-options label.check{flex-direction:row;}

body.app-v2 #main-content .ui-close-x{display:inline-flex;align-items:center;justify-content:center;min-width:44px;width:44px;min-height:44px;padding:0;font-size:22px;}
body.app-v2 #main-content .customer-record-dialog .ui-tabs{position:sticky;top:0;background:#f4f8fc;z-index:2;}
body.app-v2 #main-content [data-contact-panel][hidden]{display:none;}

.ui-contact-picker{position:relative}.ui-contact-picker .ui-customer-results{position:absolute;top:70px;left:0;right:0;z-index:30;max-height:280px;overflow:auto;background:white;border:1px solid #bdcddd;border-radius:7px;box-shadow:0 6px 18px #25374b26;}.ui-contact-picker .ui-customer-option{padding:10px 12px;min-height:44px;box-sizing:border-box;cursor:pointer}.ui-contact-picker .ui-customer-option:is(:hover,[aria-selected=true]){background:#e5eff9}

/* Inline actions have no hidden bottom margin from their nested form toolbar. */
body.app-v2 #main-content :is(.actions,.form-actions,.booking-section-actions,.ui-action-bar){align-items:center}
body.app-v2 #main-content :is(.actions,.form-actions,.booking-section-actions,.ui-action-bar)>form{margin:0;display:flex;align-items:center}
body.app-v2 #main-content :is(.actions,.form-actions,.booking-section-actions,.ui-action-bar)>form>.ui-top-actions{margin:0;min-height:44px}
body.app-v2 #main-content .ui-inline-form>label :is(input,select){margin:0}
body.app-v2 #main-content .position-row-controls{min-height:44px;margin:0}
body.app-v2 #main-content .position-cost-type+.position-kind{display:flex;align-items:center;min-height:44px;margin:0;padding:0;line-height:20px}
body.app-v2 #main-content .position-description{margin:0;padding:0}
body.app-v2 #main-content .position-description>summary{box-sizing:border-box;min-height:44px;margin:0;padding:12px 0;line-height:20px}
body.app-v2 #main-content .position-insert-button{box-sizing:border-box;min-height:44px;margin:0;padding:12px 0;line-height:20px}
body.app-v2 #main-content [data-calendar-day-dialog] .planner-event{display:block;width:100%;margin:6px 0;text-align:left}

body.app-v2 #main-content .weekly-breaks{padding:8px 12px 12px;margin-bottom:12px;border-left:3px solid #7394ad;border-radius:6px;background:#e7f0f7}
body.app-v2 #main-content .weekly-breaks>[data-break-rows]{display:flex;flex-wrap:wrap;gap:12px 20px;margin:8px 0}
body.app-v2 #main-content .weekly-breaks .ui-inline-form{gap:8px}
body.app-v2 #main-content .weekly-breaks label{min-width:100px}

body.app-v2 #main-content .position-table td>:is(input,select,textarea){margin-bottom:0}
body.app-v2 #main-content .customer-record-dialog>.ui-action-bar{margin-bottom:12px}

/* Autosave-only buttons do not leave empty action rows in the form grid. */
body.app-v2 #main-content .ui-top-actions:has(>[data-au-save-button]):not(:has(>:not([data-au-save-button],[hidden],input[type=hidden]))){display:none}
body.app-v2 #main-content .ui-tabs>[role=tab]{transition:none}

.booking-calendar-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.booking-selected-card{padding:16px;border:1px solid #9fc9bb;border-left:4px solid #187257;border-radius:8px;background:linear-gradient(110deg,#e7f5ef,#f6fbf9);margin:16px 0}
.booking-selected-card>.booking-selection{margin:5px 0 0;padding:0;background:transparent;font-size:17px;font-weight:650;color:#173c2e}
button.booking-confirm-button{background:linear-gradient(#218366,#126248);border-color:#126248;color:white}

.ui-time-control{display:block;position:relative;min-width:0;width:100%}
.ui-time-control>input[data-time-field],body.app-v2 #main-content .ui-time-control>input[data-time-field]{width:100%;padding-right:48px;text-align:left;font-variant-numeric:tabular-nums}
.ui-time-control>.ui-time-picker-button{position:absolute;right:2px;top:2px;margin:0;padding:0;width:40px;min-width:40px;height:40px;min-height:40px;border:0;background:transparent;color:var(--text,#263242);font-size:24px;box-shadow:none}
.ui-time-control>.ui-native-time-picker{position:absolute;right:0;bottom:0;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}
.ui-time-control:has(>input:disabled)>.ui-time-picker-button,.ui-time-control:has(>input[readonly])>.ui-time-picker-button{opacity:.45;pointer-events:none}

/* Illustrated in-app guide uses the shared panels and dialog controls. */
[data-guide-topic] summary{padding:12px 0;cursor:pointer}[data-guide-topic] li{margin:12px 0;line-height:1.6}.guide-image-button{display:grid;gap:12px;max-width:100%;height:auto!important;padding:12px!important}.guide-image-button img{display:block;width:100%;max-width:1000px;height:auto;border-radius:6px}body.app-v2 #main-content dialog.guide-image-dialog{width:min(1400px,calc(100vw - 32px));max-width:calc(100vw - 32px)}body.app-v2 #main-content dialog.guide-image-dialog .panel-head{flex-wrap:nowrap;align-items:flex-start}body.app-v2 #main-content dialog.guide-image-dialog .panel-head h2{min-width:0;flex:1;overflow-wrap:anywhere}body.app-v2 #main-content dialog.guide-image-dialog .ui-close{flex:0 0 44px;min-width:44px}.guide-image-dialog>img{display:block;max-width:100%;height:auto}[data-guide-topic][hidden]{display:none!important}

/* Grouped navigation: the drawer itself scrolls, including on small iPhones. */
body.app-v2>aside{height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding:16px 10px;z-index:200;scrollbar-width:thin;flex-shrink:0}
body.app-v2>aside .logo{flex-shrink:0;min-height:96px;padding:8px 16px 16px}
body.app-v2>aside .primary-nav{display:block;flex:1;padding:0 2px}
body.app-v2 .nav-section{border-bottom:1px solid #ffffff12;padding:4px 0;margin:0;background:none;border-radius:0}
body.app-v2 .nav-section>summary{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;padding:8px 12px;color:#aeb6c1;font-size:11px;font-weight:700;letter-spacing:.03em;list-style:none;cursor:pointer;text-transform:uppercase}
body.app-v2 .nav-section>summary::-webkit-details-marker,body.app-v2 .nav-settings>summary::-webkit-details-marker{display:none}
body.app-v2 .nav-section>summary::after{content:'';display:inline-block;width:18px;height:18px;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat;font-size:16px;transition:transform .15s}
body.app-v2 .nav-section[open]>summary::after{transform:rotate(180deg)}
body.app-v2 .nav-section:has(a.active)>summary{color:#fff}
body.app-v2 .nav-section-links{display:grid;gap:2px;padding:0 0 8px}
body.app-v2 :is(.nav-section-links,.nav-subentries,.nav-article-menu>summary)>a{display:flex;align-items:center;min-height:44px;padding:10px 12px;font-size:14px;line-height:1.4;border-radius:7px;margin:0;color:#c4c8ce}
body.app-v2 :is(.nav-section-links,.nav-subentries,.nav-article-menu>summary)>a.active{background:#292e36;color:#fff;box-shadow:inset 3px 0 0 #ee2043}
body.app-v2 :is(.nav-section-links,.nav-subentries,.nav-article-menu>summary)>a:is(:hover,:focus-visible){background:#242830;color:#fff}
body.app-v2 .nav-search{display:block;margin:4px 2px 8px;color:#b3bac4;font-size:11px}
body.app-v2 .nav-search input{width:100%;min-height:44px;margin-top:5px;padding:10px;background:#23262c;border:1px solid #424750;border-radius:7px;color:#fff;font-size:14px}
body.app-v2 .nav-settings>summary{min-height:44px;display:flex;align-items:center;padding:8px 12px;font-size:12px;color:#aeb6c1;cursor:pointer}
body.app-v2 .nav-sub{margin-left:16px;border-left:1px solid #4a505a;display:grid;padding-left:5px}
body.app-v2 .nav-sub>a{min-height:44px!important;display:flex;align-items:center}
body.app-v2>aside [hidden]{display:none!important}.nav-mobile-heading{display:none}.nav-backdrop[hidden]{display:none}.nav-backdrop{position:fixed;inset:0;z-index:199;border:0;border-radius:0;background:#111c2b88;padding:0;margin:0}.nav-no-results{color:#bec6d2;padding:12px;font-size:13px}
@media(max-width:1279px){body.app-v2.menu-open{overflow:hidden}body.app-v2>aside{width:min(340px,calc(100vw - 44px));padding:env(safe-area-inset-top) 10px max(20px,env(safe-area-inset-bottom));box-shadow:8px 0 32px #0b122344}body.app-v2 .nav-mobile-heading{display:flex;justify-content:space-between;align-items:center;min-height:56px;padding:8px 12px}body.app-v2 .nav-mobile-heading button{width:44px;height:44px;background:#292e36;border:1px solid #505764;padding:6px;font-size:26px}body.app-v2>aside .nav-search input{font-size:16px}body.app-v2>aside .logo{min-height:80px;padding-bottom:8px}body.app-v2>aside .logo img{max-height:65px;width:auto}body.app-v2>aside .primary-nav{flex:0 0 auto}body.app-v2>aside .aside-foot{margin-top:16px}}
/* Reserve room for the shared corner close control even when actions move to the top. */
body.app-v2 #main-content .ui-cancel-host>.ui-top-actions{padding-right:56px;min-height:44px}
body.app-v2 #main-content .profile-meta{border-top:0;margin-top:0;padding-top:0}
/* Illustrated manual, with a compact chapter tree and one reading area. */
body.app-v2 #main-content .guide-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
body.app-v2 #main-content .guide-contents{position:sticky;top:calc(var(--ui-header-height,72px) + 16px);width:auto;height:auto;overflow:auto;max-height:calc(100dvh - var(--ui-header-height,72px) - 40px);padding:16px;color:var(--ui-ink);z-index:1;transform:none;display:block}
.guide-contents input{width:100%}.guide-mobile-contents>summary{font-weight:700;min-height:44px;display:flex;align-items:center;cursor:pointer}.guide-branch{margin:4px 0}.guide-branch>summary{padding:10px 4px;min-height:44px;font-weight:700;font-size:13px;cursor:pointer}.guide-branch ul{list-style:none;margin:0 0 12px 7px;padding:0 0 0 10px;border-left:1px solid #b8cadd}.guide-subbranch{margin-left:10px}.guide-subbranch>summary{font-weight:600}.guide-branch li{margin:3px 0}.guide-branch a{display:block;padding:10px;min-height:44px;font-size:13px;line-height:1.45;border-radius:6px;color:#415b74;text-decoration:none}.guide-branch a[aria-current=page]{background:#dce9f5;color:#1c405c;font-weight:700}.guide-branch a:hover{background:#e8f0f7}.guide-reading{min-width:0}.guide-article:focus{outline:0}.guide-steps{padding-left:24px}.guide-steps li{padding:0 0 16px 6px;line-height:1.65}.guide-steps li::marker{font-weight:bold;color:#315776}.guide-article{scroll-margin-top:calc(var(--ui-header-height,72px) + 16px)}
@media(max-width:800px){body.app-v2 #main-content .guide-layout{grid-template-columns:1fr}body.app-v2 #main-content .guide-contents{position:static;max-height:none}.guide-reading .panel-head{align-items:flex-start;flex-wrap:wrap}}

/* Compact forms: use available width for related groups without shrinking inputs. */
body.app-v2 #main-content .ui-form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;align-items:start}
body.app-v2 #main-content .ui-form-columns>.organization-wide{grid-column:auto}
body.app-v2 #main-content .ui-form-columns>.ui-field-group{margin:0}
body.app-v2 #main-content .ui-choice-list{display:grid;gap:12px;max-height:420px;overflow-y:auto;padding:4px}
body.app-v2 #main-content .ui-choice-row{display:flex;align-items:end;gap:12px}
body.app-v2 #main-content .ui-choice-row>label:first-of-type{flex:1;min-width:0;margin:0}
body.app-v2 #main-content .ui-choice-row>.check{flex:none;margin:0}
body.app-v2 #main-content .customer-editor .ui-form-columns .ui-identity-fields{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
body.app-v2 #main-content .customer-editor .ui-form-columns .ui-address-fields{max-width:none;grid-template-columns:120px minmax(0,1fr)}
body.app-v2 #main-content .customer-editor .ui-form-columns .ui-address-fields>label:has([name=country]){grid-column:1/-1;max-width:15rem}
body.app-v2 #main-content .customer-editor .ui-form-columns .ui-reference-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:1400px){body.app-v2 #main-content .customer-editor .ui-form-columns .ui-identity-fields{grid-template-columns:repeat(6,minmax(0,1fr))}body.app-v2 #main-content .customer-editor .ui-form-columns .ui-identity-fields>label{grid-column:span 3}body.app-v2 #main-content .customer-editor .ui-form-columns .ui-identity-fields>:is(.ui-identity-company,:has([name=first_name]),:has([name=last_name])){grid-column:span 3}body.app-v2 #main-content .customer-editor .ui-form-columns .ui-identity-fields>label:has([name=birthday]){grid-column:span 3}}
@media(max-width:1050px){body.app-v2 #main-content .ui-form-columns{grid-template-columns:1fr}}
@media(max-width:650px){body.app-v2 #main-content .customer-editor .ui-form-columns :is(.ui-identity-fields,.ui-address-fields,.ui-reference-fields){grid-template-columns:1fr}body.app-v2 #main-content .customer-editor .ui-form-columns .ui-identity-fields>label{grid-column:auto}body.app-v2 #main-content .ui-choice-row{flex-wrap:wrap}}
/* Native selections never inherit full-width text-field geometry. The label is the touch target. */
body.app-v2 #main-content input:is([type=checkbox],[type=radio]):not([role=switch],.module-option input,.booking-toggle input){appearance:auto;flex:0 0 20px!important;width:20px!important;min-width:20px!important;max-width:20px!important;height:20px!important;min-height:20px!important;max-height:20px!important;padding:0!important;margin:0!important;align-self:center;vertical-align:middle}
body.app-v2 #main-content .position-editor label.check{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;min-height:44px}

body.app-v2 #main-content .table-wrap>.table-tools{box-sizing:border-box;padding:16px;margin:0;width:100%;min-width:0}
body.app-v2 #main-content .table-wrap>h2{padding:16px;margin:0}
body.app-v2 #main-content .recurring-overview{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
body.app-v2 #main-content .recurring-overview>.panel{min-width:0;margin-bottom:0}
body.app-v2 #main-content .recurring-overview{margin-bottom:20px}
body.app-v2 #main-content .recurring-line-price{display:block;margin-top:6px}
body.app-v2 #main-content .recurring-overview .panel-head{flex-wrap:wrap;gap:16px;align-items:center}
body.app-v2 #main-content .recurring-overview .panel-head h2{margin:0}
body.app-v2 #main-content .recurring-overview .panel-head form{margin:0 0 0 auto}
@media(max-width:1050px){body.app-v2 #main-content .recurring-overview{grid-template-columns:1fr}}
/* Short master-data screens keep their fields in one broad row group. */
@media(min-width:1051px){body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields{max-width:none;grid-template-columns:repeat(6,minmax(0,1fr))}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>label{grid-column:span 2}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>.ui-identity-company{grid-column:span 4}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>label:has([name=birthday]){grid-column:span 2;max-width:none}}

/* Navigation hierarchy: section labels, indented destinations, then detail links. */
body.app-v2 aside .nav-section{border:1px solid #282e38;border-radius:8px;margin:0 0 8px;padding:0;background:#15191f}
body.app-v2 aside .nav-section>summary{font-size:11px;gap:8px;padding:8px 9px;color:#bbc6d3}
body.app-v2 aside .nav-section>summary>span{flex:1;min-width:0}
body.app-v2 aside .nav-section[open]>summary{background:#202731;border-radius:7px 7px 0 0;color:#eef3f8}
body.app-v2 aside .nav-group-icon{width:17px;height:17px;flex:none;fill:none;stroke:#91abc4;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
body.app-v2 aside .nav-section-links{margin:8px 7px 8px 16px;padding:0 0 0 8px;border-left:1px solid #4c5869}
body.app-v2 aside :is(.nav-section-links,.nav-subentries,.nav-article-menu>summary)>a{padding:9px 10px;min-height:44px;border-radius:5px;font-size:13px;font-weight:400;color:#bbc3ce}
body.app-v2 aside :is(.nav-section-links,.nav-subentries,.nav-article-menu>summary)>a.active{font-weight:700;background:#343044;color:#fff;box-shadow:inset 3px 0 0 #ee2043}
body.app-v2 aside details.nav-settings{margin-left:9px;border-left:1px solid #39495c}
body.app-v2 aside details.nav-settings>summary{padding:8px;font-size:11px;text-transform:none;color:#9dafc2}
body.app-v2 aside details.nav-settings .nav-sub{margin-left:8px;padding-left:0;border:0}
body.app-v2 aside details.nav-settings .nav-sub>a{font-size:12px;line-height:1.4;padding:8px;white-space:normal}

/* Gemeinsame Auswahl und geführter Wechsel durch Eingabemasken. */
.ui-choice-row {display:flex;flex-wrap:wrap;gap:8px 24px;margin-bottom:16px}
.ui-choice-row .check {min-height:44px;margin:0}
.ui-step-navigation {display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin:0 0 16px}
.ui-step-navigation>span {margin-right:auto;font-size:12px}
.ui-step-navigation button {min-height:44px;white-space:normal}
[data-activity-fields]>label {display:grid;gap:6px;margin-top:12px}
[data-activity-fields]>label[hidden] {display:none}
@media(max-width:600px){.ui-step-navigation>span{flex-basis:100%}.ui-step-navigation button{flex:1;min-width:0}}

/* Das Kundenportal verwendet dieselben Flächen, Konturen und Bediengrößen. */
body.portal-shared {--portal-ink:var(--ui-ink);--portal-muted:var(--ui-muted);--portal-line:#cddcea;--portal-radius:var(--ui-radius);background:#f1f3f5}
body.portal-shared :is(.public-card,.portal-surface,.booking-card,.appointment-card,.card,.panel,.portal-kpis article,main>article) {background:linear-gradient(135deg,#f7fbff,#edf4fa);border:1px solid var(--portal-line);border-radius:var(--ui-radius);box-shadow:0 3px 12px #2632420d,0 1px 2px #26324208}
body.portal-shared fieldset {min-width:0;border:1px solid var(--portal-line);border-radius:8px;padding:16px;background:#ffffff80;margin:16px 0}
body.portal-shared legend {padding:5px 11px;border:1px solid var(--portal-line);border-left:3px solid #4b6c85;border-radius:4px;background:#f4f8fc;color:#29435a;font-size:14px;font-weight:700}
body.portal-shared .portal-navigation {padding:8px;gap:6px;background:#e8eef4;border:1px solid var(--portal-line);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
body.portal-shared .portal-navigation a {min-height:44px;border:1px solid transparent;border-radius:7px;color:#536781;font-weight:600}
body.portal-shared .portal-navigation a:hover {background:#f8fbff;border-color:var(--portal-line)}
body.portal-shared .portal-navigation a[aria-current=page] {background:linear-gradient(135deg,#3c556b,#253746);border-color:#29404f;color:white;box-shadow:0 2px 5px #26324226}
body.portal-shared .public-contact {padding:20px;border:1px solid var(--portal-line);border-radius:var(--ui-radius);background:linear-gradient(135deg,#f7fbff,#edf4fa);box-shadow:var(--ui-shadow)}
body.portal-shared th {background:#e9f0f6;color:#496078}
body.portal-shared tbody tr:nth-child(even) {background:#ffffff66}
body.portal-shared .portal-tools {padding-bottom:16px;border-bottom:1px solid var(--portal-line)}
body.portal-shared .portal-tools label {flex:1 1 160px;min-width:0}
body.portal-shared .portal-tools :is(input,select) {width:100%;min-width:0}
body.portal-shared .public-brand {gap:16px}
body.portal-shared .public-brand-identity {overflow-wrap:anywhere}
body.portal-shared .public-brand>a:last-child {flex-shrink:0}
@media(max-width:600px){body.portal-shared :is(input,select,textarea):not([type=checkbox]):not([type=radio]){font-size:16px}body.portal-shared .portal-tools label{flex-basis:calc(50% - 12px)}body.portal-shared .public-brand img{width:64px;height:44px}body.portal-shared .public-brand strong{font-size:14px}body.portal-shared .public-contact{padding:16px}}

body.app-v2 #main-content .ui-filter-form {display:block}
.ui-filter-fields {display:grid;grid-template-columns:minmax(240px,2fr) minmax(100px,.55fr) minmax(185px,1fr) repeat(2,minmax(150px,.85fr));gap:16px;align-items:end}
.ui-filter-fields>label {display:grid;gap:6px;min-width:0}
@media(max-width:1250px){.ui-filter-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-filter-search{grid-column:span 2}}
@media(max-width:700px){.ui-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.ui-filter-fields{grid-template-columns:minmax(0,1fr)}.ui-filter-search{grid-column:auto}}

.ui-table-paging{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;padding:16px}.ui-table-paging>span{font-size:12px;color:var(--ui-muted)}

/* Role settings: one native switch per editable right, fixed grants are text. */
.permission-editor{display:grid;gap:18px;min-width:0}
.permission-editor>.panel{margin:0}
.permission-filters{display:grid;grid-template-columns:minmax(210px,300px) minmax(220px,480px) auto;gap:16px;align-items:end}
.permission-filters p{margin:0 0 12px}
.permission-explanation{margin:12px 0 0;font-size:13px}
body.app-v2 #main-content .permission-editor .panel-head{padding:0;align-items:flex-start}
body.app-v2 #main-content .permission-editor .panel-head h2{margin:0}
body.app-v2 #main-content .permission-group-panel>.panel-head{padding:18px 20px;border-bottom:1px solid var(--ui-line)}
body.app-v2 #main-content .permission-compact tbody th{padding:16px;text-align:left;font-size:14px;letter-spacing:normal;text-transform:none;background:transparent;vertical-align:middle}
.permission-compact tbody th span{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--ui-muted)}
body.app-v2 #main-content .permission-compact td{padding:10px 12px;vertical-align:middle;min-width:100px}
body.app-v2 #main-content .permission-control{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;min-height:60px;margin:0;cursor:pointer}
.permission-control>span{font-size:11px;font-weight:500;white-space:nowrap}
.permission-fixed{display:grid;justify-items:center;gap:4px;font-size:12px;color:var(--ui-muted);min-height:44px;align-content:center}
.permission-fixed.is-allowed{color:#355e50}
.permission-fixed small{font-size:10px;font-weight:400}
@media(max-width:1050px){.permission-filters{grid-template-columns:1fr 1fr}.permission-filters p{grid-column:1/-1;margin:0}}
@media(max-width:700px){.permission-filters{grid-template-columns:1fr}.permission-editor .panel-head{flex-wrap:wrap}.permission-compact,.permission-compact tbody,.permission-compact tr{display:block;width:100%;min-width:0!important}.permission-compact thead{display:none}.permission-compact tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:10px;border-bottom:1px solid var(--ui-line)}body.app-v2 #main-content .permission-compact tbody th{display:block;grid-column:1/-1;width:auto!important;min-width:0!important;padding:6px 4px 14px}body.app-v2 #main-content .permission-compact td{display:block;width:auto!important;min-width:0;padding:8px 2px}.permission-compact td:before{content:attr(data-role-label);display:block;margin-bottom:6px;color:var(--ui-muted);font-size:11px;font-weight:600}.permission-control{min-height:54px!important}.permission-editor [hidden]{display:none!important}}
/* Shared attachment grid for device intake, diagnosis and customer review. */
.workshop-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr));gap:16px;min-width:0}
.workshop-photo{display:flex;flex-direction:column;gap:8px;margin:0;min-width:0;overflow-wrap:anywhere}
.workshop-photo img{display:block;width:100%;height:150px;object-fit:contain;background:var(--surface,#fff);border:1px solid #cbd8e6;border-radius:8px}
.workshop-photo span{font-size:.85rem}
[data-work-photo-preview]{display:block;max-width:100%;max-height:40dvh;object-fit:contain}[data-work-photo-preview][hidden]{display:none!important}
[data-workshop-photos] .panel-head{flex-wrap:wrap;gap:16px}
.dashboard-todo{padding-bottom:12px;border-bottom:1px solid #d5dfeb}.dashboard-todo:last-child{border-bottom:0}.dashboard-todo .form-actions{margin-top:16px;flex-wrap:wrap}
.case-progress{display:block;margin-bottom:8px;font-size:.85rem}.case-inline-field select{max-width:100%}

.case-last-edit{display:block;margin-top:5px;font-size:11px;color:var(--ui-muted);white-space:normal}

/* Shared sizing, specialised only in the arrangement of mobile field service content. */
.onsite-stop{padding:16px 0;border-bottom:1px solid var(--border,#d2dce8);overflow-wrap:anywhere}
.onsite-stop:last-of-type{border-bottom:0}
.onsite-stop h3,.onsite-stop p{margin:8px 0}
.onsite-report-facts{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:12px 20px}
.onsite-report-facts dt{font-weight:700}.onsite-report-facts dd{margin:0;overflow-wrap:anywhere}
.onsite-signature{display:block;width:100%;max-width:900px;height:180px;border:1px solid #b9cadc;border-radius:8px;background:white;touch-action:none;margin-top:16px}
.onsite-tour-columns{align-items:start}.onsite-mobile [hidden]{display:none!important}
/* #740 on-site assignment page: reference field groups, rows of natural-width fields, checkbox lists without extra boxes. */
body.app-v2 .onsite-assignment-form{display:grid;gap:12px}
body.app-v2 .onsite-assignment-form .onsite-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
body.app-v2 .onsite-assignment-form .onsite-row>label:not(.check){flex:0 1 180px;min-width:150px}
body.app-v2 .onsite-assignment-form .onsite-row>label.check{flex:1 1 220px;min-height:var(--ui-field-height,36px);display:flex;align-items:center;gap:8px}
body.app-v2 .onsite-assignment-form :is(.onsite-staff,.onsite-prerequisites){border:0;margin:0;padding:0;display:grid;gap:6px;min-width:0}
body.app-v2 .onsite-assignment-form :is(.onsite-staff,.onsite-prerequisites)>legend{font-size:12px;font-weight:600;color:var(--ui-muted,#526070);padding:0;margin-bottom:4px}
body.app-v2 .onsite-assignment-form :is(.onsite-staff,.onsite-prerequisites)>label.check{display:flex;align-items:center;gap:8px;min-height:32px;font-weight:400}
body.app-v2 .onsite-assignment-form .onsite-window>p.muted{margin:0 0 8px}
body.app-v2 .onsite-assignment-head .badge{margin-right:6px}
body.app-v2 .onsite-suggest{margin-top:12px;padding-top:12px;border-top:1px solid var(--ui-line,#ccd2da);display:grid;gap:10px}
body.app-v2 .onsite-suggest-title{margin:0;font-size:12px;font-weight:600;color:var(--ui-muted,#526070)}
body.app-v2 .onsite-suggest .onsite-row>button{min-height:var(--ui-field-height,36px)}
body.app-v2 .onsite-suggestions{list-style:none;margin:0;padding:0;display:grid;gap:8px}
body.app-v2 .onsite-suggestion{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--ui-form-field,#fff);border:1px solid var(--ui-line,#ccd2da);border-radius:6px}
body.app-v2 .onsite-suggestion>div{display:grid;gap:2px;min-width:0}
body.app-v2 .onsite-suggestion .badge{justify-self:start;margin-left:6px}
body.app-v2 .onsite-assignment-form .onsite-row>label:not(.check){white-space:nowrap}
body.app-v2 .onsite-suggestion small{color:var(--ui-muted,#526070);overflow-wrap:anywhere}
body.app-v2 .onsite-suggestion.is-best{border-color:var(--ui-success,#2e7d4f)}
body.app-v2 .onsite-suggestion.is-selected{outline:2px solid var(--ui-focus,#4668a8);outline-offset:1px}
body.app-v2 .onsite-suggestion .onsite-conflict{color:var(--ui-warning-text,#8a5a00);display:flex;gap:4px;align-items:center}
@media(max-width:767px){body.app-v2 .onsite-suggestion{flex-direction:column;align-items:stretch}body.app-v2 .onsite-suggestion>button{min-height:44px}}
body.app-v2 .onsite-events{list-style:none;margin:0;padding:0;display:grid;gap:6px}
body.app-v2 .onsite-events time{display:inline-block;min-width:120px;color:var(--ui-muted,#526070);font-variant-numeric:tabular-nums}
@media(max-width:767px){body.app-v2 .onsite-assignment-form .onsite-row>label:not(.check){flex:1 1 100%}body.app-v2 .onsite-assignment-form :is(.onsite-staff,.onsite-prerequisites)>label.check{min-height:44px}}
@media(max-width:700px){.onsite-tour-columns,.onsite-report-facts{grid-template-columns:1fr}.onsite-work-actions{display:grid;grid-template-columns:1fr 1fr}.onsite-work-actions button{white-space:normal}.onsite-mobile .page-head h1{font-size:24px}.onsite-mobile .form-actions{flex-wrap:wrap}.onsite-mobile .ui-tabs{margin-bottom:16px}.onsite-mobile .panel{min-width:0}}
/* Register content arrangements use the shared panels, fields and actions. */
.register-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,1fr);gap:20px;align-items:start}.register-grid>.panel{min-width:0}.register-scan{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:end}.register-scan>button{grid-column:2}.register-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}.register-products button{display:grid;text-align:left;gap:6px;min-height:100px;white-space:normal}.register-products small,.register-lines small{display:block;color:var(--muted,#52657b)}.register-lines{max-height:45vh;overflow:auto}.register-lines article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px 0;border-bottom:1px solid #d3deea}.register-lines article>div{grid-column:1/-1}.register-lines form{display:flex;gap:8px;align-items:center}.register-lines input{width:80px;min-width:0}.register-lines article>strong{align-self:center}.register-total{font-size:1.65rem;font-weight:750}.register-result-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.register-receipt-qr{display:grid;justify-items:start;gap:12px}.register-receipt-qr svg{width:220px;height:220px;max-width:100%}.register-grid [hidden]{display:none!important}@media(max-width:700px){.register-grid,.register-result-options{grid-template-columns:minmax(0,1fr)}.register-scan{grid-template-columns:76px minmax(0,1fr)}.register-lines{max-height:none}.register-products{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Shared fieldsets and color controls keep the same hierarchy in module settings. */
body.app-v2 #main-content .panel>fieldset.ui-field-group+fieldset.ui-field-group{margin-top:16px}
body.app-v2 #main-content input[type="color"]{width:96px;max-width:100%;height:44px;min-height:44px;padding:5px;cursor:pointer}

.article-link-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,170px) minmax(220px,260px) auto;gap:16px;align-items:end;padding:12px 0;border-bottom:1px solid var(--ui-border,#d2deea)}
.article-link-row strong{align-self:center;overflow-wrap:anywhere}.article-link-results{display:grid;gap:8px;margin-top:16px;max-height:50vh;overflow:auto}.article-link-results button{text-align:left}
@media(max-width:650px){.article-link-row{grid-template-columns:minmax(0,1fr) auto}.article-link-row strong{grid-column:1/-1}}

.article-lookup-entry{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.lookup-choice{display:grid!important;grid-template-columns:24px minmax(0,1fr);gap:8px 12px;align-items:start;margin:16px 0;white-space:pre-wrap}.lookup-choice input{grid-column:1;grid-row:1/4;align-self:start}.lookup-choice strong,.lookup-choice span,.lookup-choice small,.lookup-choice img{grid-column:2;overflow-wrap:anywhere}.lookup-image{display:block;max-width:min(100%,200px);max-height:160px;object-fit:contain}.lookup-choice input[type=checkbox]{min-height:24px;width:24px;height:24px}[data-lookup-status] small{display:block;margin-top:8px}[data-lookup-results]{display:grid;gap:16px}

/* Compact editable tables retain full 44 px controls. */
body.app-v2 #main-content .ui-table-compact th,body.app-v2 #main-content .ui-table-compact td{padding:4px 8px}
body.app-v2 #main-content .ui-table-compact td p{margin:0}

/* Keep semantic field pairs together instead of letting an automatic grid split names. */
:is(body.app-v2 #main-content,body.app-v2 dialog,body.portal-shared dialog) .ui-field-pair:where(:not([hidden])){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;min-width:0;grid-column:1/-1}
:is(body.app-v2 #main-content,body.app-v2 dialog,body.portal-shared dialog) .ui-field-pair>label{margin:0;min-width:0;grid-column:auto}
body.app-v2 #main-content .ui-identity-fields>.ui-identity-company{grid-column:1/-1}
body.app-v2 #main-content .ui-identity-fields>.ui-name-prefix{grid-column:span 4}
body.app-v2 #main-content .ui-identity-fields>.ui-person-name{grid-column:span 8}
@media(max-width:1100px){body.app-v2 #main-content .ui-identity-fields>.ui-name-prefix,body.app-v2 #main-content .ui-identity-fields>.ui-person-name{grid-column:1/-1}}
@media(max-width:650px){body.app-v2 #main-content .ui-person-name{grid-template-columns:1fr}}

body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields{grid-template-columns:repeat(12,minmax(0,1fr));max-width:none}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>.ui-identity-company{grid-column:1/-1}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>.ui-name-prefix{grid-column:span 4}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>.ui-person-name{grid-column:span 8}
@media(max-width:1100px){body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>.ui-name-prefix,body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-fields>.ui-person-name{grid-column:1/-1}}

body.app-v2 #main-content .customer-editor .ui-identity-fields>label:has(input[name=birthday]){grid-column:1/-1;max-width:18rem;width:100%}

body.portal-shared .public-document-details{margin:20px 0;min-width:0}body.portal-shared .public-document-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;max-width:none;width:100%;margin:16px 0}body.portal-shared .public-document-facts>div{display:block;padding:0;border:0;min-width:0}body.portal-shared .public-document-facts dt{font-size:12px;color:var(--ui-muted);margin-bottom:4px}body.portal-shared .public-document-facts dd{margin:0;overflow-wrap:anywhere}body.portal-shared .public-document-details p{white-space:normal;overflow-wrap:anywhere}@media(max-width:600px){body.portal-shared .public-document-facts{grid-template-columns:1fr}}

body.portal-shared main>.portal-navigation{width:100%;margin:0 0 20px;box-sizing:border-box}body.portal-shared main>.portal-navigation a:last-child{margin-left:0}

/* Shared workflow stages: current step, visited steps and reversible progress. */
.ui-workflow-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-block:16px}
.ui-workflow-buttons button{flex:0 1 auto;min-height:44px;width:auto;max-width:100%;padding:8px 12px;white-space:normal;text-align:left;justify-content:flex-start}
.ui-workflow-buttons--compact{gap:6px}
.ui-workflow-buttons.ui-workflow-buttons--compact button{position:relative;flex:1 0 88px;min-width:0;padding:6px 4px;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;text-align:center;font-size:.72rem;line-height:1.25}
.ui-workflow-buttons--compact svg{width:18px;height:18px;flex-shrink:0}
.ui-workflow-button-detail{display:none;position:absolute;z-index:5;bottom:calc(100% + 6px);left:0;width:max-content;max-width:220px;padding:8px;background:#203544;color:#fff;border-radius:5px;font-size:.8rem;pointer-events:none}
.ui-workflow-buttons--compact button:last-child .ui-workflow-button-detail{left:auto;right:0}
.ui-workflow-buttons--compact button:is(:hover,:focus-visible) .ui-workflow-button-detail{display:block}

/* Semantic workflow colours must win over secondary-button theme and hover styles. */
body.app-v2 #main-content .ui-workflow-buttons button.is-current{background:#216b4c!important;color:#fff!important;border-color:#216b4c!important;box-shadow:none}
body.app-v2 #main-content .ui-workflow-buttons button.was-visited{border-color:#a7c2b4!important;background:#f6faf8!important;color:#354b40!important}
.ui-workflow-progress{margin-block:16px}.ui-workflow-track{height:8px;border-radius:8px;background:#dce5ec;overflow:hidden}.ui-workflow-track>span{display:block;height:100%;background:#375d78;border-radius:8px}
.ui-workflow-progress ol{list-style:none;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:0;margin:8px 0 0;font-size:.78rem;color:#617182}.ui-workflow-progress li{text-align:center;overflow-wrap:anywhere}.ui-workflow-progress li.reached{color:#284a65}.ui-workflow-progress li[aria-current]{font-weight:700;color:#17633a;background:#e5f4eb;border-radius:6px;box-shadow:inset 0 0 0 1px #a5cfb5}
[data-workshop-status-error]:empty,[data-stage-request-error]:empty{display:none}
@media(max-width:600px){.ui-workflow-buttons button{flex:1 1 140px}.ui-workflow-progress ol{grid-template-columns:repeat(3,minmax(0,1fr));font-size:.75rem;gap:6px}.ui-workflow-progress li{padding:4px 2px;overflow-wrap:normal}}

.invoice-ad-preview{box-sizing:border-box;width:100%;padding:5mm 6mm;border:0 solid;white-space:pre-wrap;overflow-wrap:anywhere;font-family:Arial,sans-serif;display:flex;flex-direction:column;justify-content:center;gap:1.5mm}.invoice-ad-preview[data-style=stripe]{border-left-width:1.2mm}.invoice-ad-preview[data-style=frame]{border-width:.4mm}.invoice-ad-preview strong{line-height:1.2}.invoice-ad-preview small{font-size:8pt;font-weight:700}.invoice-ad-preview p{margin:0!important;line-height:1.22}.invoice-ad-preview [hidden]{display:none}

.ui-form-stack { display: grid; align-content: start; gap: 16px; min-width: 0; }

.document-list-filters { grid-template-columns: minmax(220px,2fr) minmax(150px,1fr) repeat(2,minmax(150px,.8fr)) auto; align-items: end; margin-bottom:16px; }
.document-list-filters .form-actions { margin:0; }
.table-sort-control { display:flex; align-items:center; gap:6px; min-height:44px; color:inherit; text-decoration:none; }
@media(max-width:1200px){.document-list-filters{grid-template-columns:repeat(2,minmax(0,1fr));}.document-list-filters .form-actions{grid-column:1/-1;}}
@media(max-width:600px){.document-list-filters{grid-template-columns:minmax(0,1fr);}}

.signature-evidence { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.signature-evidence dt {font-size:12px;color:var(--muted,#596879);margin-bottom:6px;}.signature-evidence dd{margin:0;overflow-wrap:anywhere;}.signature-agent{overflow-wrap:anywhere;}
@media(max-width:800px){.signature-evidence{grid-template-columns:minmax(0,1fr);}}
/* Customer records use a small number of groups instead of an overflowing tab strip. */
.customer-record .customer-main-navigation,.customer-record .customer-sub-navigation{flex-wrap:wrap;overflow:visible;white-space:normal;gap:8px}
.customer-record .customer-main-navigation{margin-bottom:8px}
.customer-record .customer-sub-navigation{margin-bottom:16px}
.customer-record .customer-main-navigation button,.customer-record .customer-sub-navigation button{white-space:normal;min-height:44px;max-width:100%}
.customer-record .customer-main-navigation [aria-pressed="true"]{background:linear-gradient(135deg,#39536a,#233746);color:#fff;border-color:#233746;box-shadow:0 3px 7px #20304424}
.customer-record [data-customer-subnav][hidden]{display:none!important}
.dashboard-todo{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 0;border-bottom:1px solid var(--ui-border,#ccd8e5)}
.dashboard-todo:last-child{border-bottom:0}
.dashboard-todo>.planning-item{padding:0!important;border:0!important;min-width:0;display:block}
.dashboard-todo>.planning-item time{display:block;margin-top:4px}
.dashboard-todo>.form-actions{margin:0!important;padding:0!important;gap:8px;align-self:start}
.dashboard-todo>.form-actions button{min-height:44px;padding:8px 12px}
@media(max-width:767px){.dashboard-todo{grid-template-columns:1fr;gap:8px}.dashboard-todo>.form-actions{justify-content:flex-start}}

/* Compact statistics retain readable figures and full-size touch targets. */
.stat-filters>.form-actions{margin:0;align-self:end;grid-column:auto;justify-content:flex-end}
.stat-kpis{gap:16px;margin-bottom:16px}.stat-kpis strong{font-size:clamp(20px,1.8vw,26px);margin:3px 0}.stat-kpis>div{padding-left:12px}
.stat-chart{height:190px;min-height:0;max-height:190px}.stat-graph>.pos-section-head{margin-bottom:0}.stat-graph h3{margin:0}.stat-secondary{margin-top:12px;gap:8px 24px}
.stat-detail>summary{min-height:44px;align-content:center;cursor:pointer}.stat-detail>summary strong{font-size:16px}.stat-detail[open]>summary{margin-bottom:12px}
.stat-rankings{gap:16px}.stat-rankings details:not([open]){align-self:start}
@media(max-width:560px){.stat-chart{height:150px}.stat-chart text{font-size:15px}.stat-filters>.form-actions{grid-column:1/-1}.stat-secondary b{margin-left:4px}}

/* Shared compact form headers: title and state share the action row. */
body.app-v2,body.portal-shared{--ui-space:16px}
body.app-v2 #main-content :is(.panel,.support-card,.article-shell,.booking-editor-section){padding:16px}
body.app-v2 #main-content :is(.table-wrap,.permission-group-panel){padding:0}
body.app-v2 #main-content .ui-form-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;grid-column:1/-1;margin:0 0 16px;min-width:0}
body.app-v2 #main-content .form-grid>.ui-form-header{margin-bottom:0}
body.app-v2 #main-content .ui-form-header-copy{flex:1 1 240px;min-width:0}
body.app-v2 #main-content .ui-form-header-copy :is(h2,h3,p){margin:0}.ui-form-header-copy h2{font-size:18px}
body.app-v2 #main-content .ui-form-header-copy p:not(:first-child){margin-top:4px}
body.app-v2 #main-content .ui-form-header .app-save-state{margin:4px 0 0;padding:0;font-size:12px}
body.app-v2 #main-content .ui-form-header>.ui-top-actions{flex:0 1 auto;margin:0;padding:0}
body.app-v2 #main-content .stat-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:16px;align-items:end}
body.app-v2 #main-content .stat-filters>.form-actions{margin:0;grid-column:auto}
body.app-v2 #main-content .marketing-campaign-actions{margin:0;gap:8px}.marketing-campaign-actions form{margin:0}
@media(max-width:1000px){body.app-v2 #main-content .stat-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){body.app-v2 #main-content .stat-filters{grid-template-columns:1fr}.ui-form-header>.ui-top-actions{margin-left:auto!important}}

/* Inline decisions stay together, including in dialogs moved out of main. */
body.app-v2 .ui-choice-row[role=radiogroup]{justify-content:flex-start;align-items:center;gap:8px 24px}
body.app-v2 #main-content .ui-choice-row[role=radiogroup]>label,
body.app-v2 .ui-choice-row[role=radiogroup]>label{flex:0 0 auto;margin:0;min-height:44px}
[data-activity-due]{margin-top:12px}
[data-activity-due][hidden]{display:none!important}
.planning-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.planning-actions>a,.planning-heading>a{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
body.app-v2 #main-content .planning-heading{flex-wrap:wrap}
.planning-actions button{font-size:12px}
/* Due dates use both colour and text; undated/completed entries keep their normal appearance. */
body.app-v2 #main-content :is(.planning-item,.dashboard-todo,tr).due-soon{background:#fff4d6;border-left:3px solid #c48b13}
body.app-v2 #main-content :is(.planning-item,.dashboard-todo,tr).due-overdue{background:#ffedef;border-left:3px solid #cc2643}
body.app-v2 #main-content :is(.planning-item,.dashboard-todo):is(.due-soon,.due-overdue){padding:10px 12px;border-radius:6px;margin-block:4px}
body.app-v2 #main-content .due-soon .due-status{color:#795400;font-weight:700}
body.app-v2 #main-content .due-overdue .due-status{color:#ae1734;font-weight:700}
.due-status:empty{display:none}

/* Personal and company dates share the compact right column. */
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid{max-width:none;grid-template-columns:minmax(0,2fr) minmax(180px,1fr)}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>:is(.ui-identity-company,.ui-name-prefix,.ui-person-name){grid-column:1}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-dates{grid-column:2;grid-row:1 / span 3;max-width:260px;width:100%;justify-self:end;padding-left:20px;border-left:1px solid var(--ui-line);box-sizing:border-box}
@media(max-width:650px){body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-dates{grid-column:1;grid-row:auto;justify-self:start;padding:0;border:0}}

/* Grouped selectors stay in the document flow, including narrow viewports. */
body.app-v2 #main-content .ui-tabs.ui-tabs-wrap{flex-wrap:wrap!important;overflow:visible}
body.app-v2 #main-content .ui-tabs.ui-tabs-wrap[hidden]{display:none!important}
.permission-editor .permission-filters{grid-template-columns:minmax(180px,480px) 1fr;margin-top:12px}
@media(max-width:700px){.permission-editor .permission-filters{grid-template-columns:1fr}}
.permission-editor{grid-template-columns:minmax(0,1fr)}
.permission-editor>.panel{min-width:0}

/* Booking overview and confirmation share a row; the calendar keeps its full width. */
body.portal-shared.booking-public .public-brand{margin-bottom:20px;padding-block:8px}
body.portal-shared.booking-public .booking-intro{margin:6px 0 16px}
body.portal-shared.booking-public .booking-card{padding:16px;margin-block:16px}
.booking-overview{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:24px;align-items:start}
.booking-overview.has-invitation{grid-template-columns:repeat(2,minmax(0,1fr))}
.booking-offer-summary,.booking-confirmation{min-width:0}
.booking-overview .booking-personal-summary{padding:0;border:0;background:transparent;border-radius:0}
.booking-overview [data-booking-duration-field]{margin-top:16px;max-width:260px}
.booking-overview .booking-service-meta{margin:8px 0 0}
.booking-calendar-panel .booking-section-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:0 0 12px}
.booking-calendar-panel .booking-section-head>.form-actions{padding:0;margin:0}
.booking-calendar-panel .booking-selected-card{padding:12px;margin:0}
.booking-calendar-panel .booking-selected-card>.booking-selection{font-size:15px}
.booking-calendar-panel .booking-policy{padding:8px 12px;margin:12px 0 0;font-size:12px;line-height:1.5}
.booking-calendar-panel .booking-privacy{margin:8px 0 0}
.booking-calendar-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:12px 16px;margin-top:16px}
.booking-calendar-toolbar .booking-week-tools{margin:0;gap:8px}
.booking-calendar-toolbar .booking-timezone{margin-left:auto}
.booking-calendar-panel .booking-calendar-status{margin:8px 0}
.booking-calendar-panel .booking-week[data-view=list]>section{padding:8px 0}
.booking-calendar-panel .booking-week{max-height:360px}
@media(max-width:900px){.booking-overview,.booking-overview.has-invitation{grid-template-columns:minmax(0,1fr);gap:16px}.booking-calendar-toolbar .booking-timezone{flex-basis:100%;margin:0}.booking-calendar-panel .booking-section-head{align-items:start}}
.public-contact-dialog{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:20px;border:1px solid var(--ui-border,#ccd8e5);border-radius:10px;color:#263242;background:#fff}
.public-contact-dialog::backdrop{background:#18263880}
.public-contact-dialog>.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
body.portal-shared .public-contact-dialog .public-contact{padding:0;border:0;background:transparent;box-shadow:none;margin:16px 0 0}
.booking-receipt-facts dd{overflow-wrap:anywhere}
.booking-calendar-panel .booking-slot{min-height:44px!important}
@media(max-width:650px){.booking-calendar-panel{display:flex;flex-direction:column}.booking-calendar-panel>.booking-overview{display:contents}.booking-calendar-panel .booking-offer-summary{order:0}.booking-calendar-panel .booking-calendar-toolbar{order:1}.booking-calendar-panel .booking-calendar-status{order:2}.booking-calendar-panel .booking-week{order:3}.booking-calendar-panel .booking-legend{order:4}.booking-calendar-panel .booking-confirmation{order:5;margin-top:16px}.booking-calendar-panel .booking-wizard-actions{order:6}}
.case-mobile-sort{display:none}
@media(max-width:600px){.case-mobile-sort{display:flex;align-items:end;gap:16px;padding:16px}.case-mobile-sort label{flex:1;min-width:0}.case-mobile-sort button{min-width:120px}}
.dunning-list-filters{grid-template-columns:2fr 1fr 1fr;gap:16px}
[data-dunning-list] [data-dunning-row][hidden]{display:none!important}
[data-dunning-list] td>small{display:block;margin-top:4px}
@media(max-width:850px){.dunning-list-filters{grid-template-columns:minmax(0,1fr)}}

body.app-v2 #main-content .ui-action-bar:has(>[data-au-save-button]):not(:has(>:not([data-au-save-button],[hidden],input[type=hidden]))){display:none}

.ui-keep-together{white-space:nowrap}
body.portal-shared .public-document-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:16px}
body.portal-shared .public-document-heading h1{margin:4px 0;font-size:24px}body.portal-shared .public-document-heading p{margin:0}
body.portal-shared .public-document-decision{display:grid;justify-items:end;gap:12px}body.portal-shared .public-document-decision>strong{font-size:20px}
body.portal-shared .public-document-details-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:16px 0}
body.portal-shared .public-document-details-grid .public-document-details{margin:0;padding:12px 16px;border:1px solid var(--ui-border,#ccd9e4);border-radius:8px;align-self:start}
body.portal-shared .public-document-details-grid summary{min-height:44px;display:list-item;align-content:center;font-weight:700;cursor:pointer}
body.portal-shared .public-document-details-grid .public-document-facts{gap:8px 16px;margin:8px 0}
@media(max-width:800px){body.portal-shared .public-document-details-grid{grid-template-columns:1fr}body.portal-shared .public-document-heading{flex-direction:column}body.portal-shared .public-document-decision{justify-items:start;width:100%}}

.cash-count-dialog{width:min(820px,calc(100vw - 32px))}.cash-count-dialog table{width:100%;border-collapse:collapse}.cash-count-dialog td,.cash-count-dialog th{padding:4px 8px;text-align:right;white-space:nowrap}.cash-count-dialog input{width:100%;min-width:76px;max-width:112px}.cash-count-dialog output{font-size:22px;font-weight:700;margin-right:auto}.cash-count-dialog fieldset{min-width:0}.cash-count-dialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.cash-count-dialog .form-grid{grid-template-columns:1fr}}

.ui-module-list{display:grid}.ui-module-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--ui-line)}.ui-module-row:last-child{border-bottom:0}.ui-module-copy{display:grid;gap:3px;min-width:0}.ui-module-copy small{color:var(--ui-muted);font-size:12px}.ui-module-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.ui-module-switch{min-width:44px}.ui-module-switch input{margin:0}.ui-module-copy strong,.ui-module-copy h3{font-size:14px}.ui-module-copy h3{margin:0}@media(max-width:600px){.ui-module-row{flex-wrap:wrap}.ui-module-actions{width:100%;justify-content:space-between}}

/* Dashboard actions remain aligned with their own heading. */
.settings-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.settings-hub-grid fieldset{min-width:0;align-self:start}.settings-hub-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:12px 0;color:var(--ui-ink);text-decoration:none;border-bottom:1px solid var(--ui-line)}.settings-hub-link:last-child{border-bottom:0}.settings-hub-link>span:first-child{display:grid;gap:4px}.settings-hub-link small{color:var(--ui-muted);font-size:12px;line-height:1.45}.settings-hub-link:hover strong{text-decoration:underline}@media(max-width:1100px){.settings-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.settings-hub-grid{grid-template-columns:1fr}}
body.app-v2 #main-content .dashboard-planning .planning-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-height:55px}
body.app-v2 #main-content .dashboard-planning .planning-heading h2{align-self:center}
body.app-v2 #main-content .dashboard-planning .planning-actions{margin:0}
body.app-v2 #main-content .dashboard-planning .planning-actions :is(button,.button){margin:0;min-height:44px;padding:10px 12px;font-size:12px;white-space:nowrap}
@media(min-width:768px) and (max-width:1279px){body.app-v2 #main-content .dashboard-planning{grid-template-columns:1fr}}

/* Keep the account notice visible even when navigation tabs scroll. */
body.portal-shared .portal-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;overflow:visible}
body.portal-shared .portal-nav-links{display:flex;gap:6px;min-width:0;overflow-x:auto;align-items:center}
body.portal-shared .portal-nav-links>a{flex-shrink:0;white-space:nowrap}
body.portal-shared .portal-navigation .portal-overdue-notice{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;margin:0;padding:6px 12px;background:#fff5df;border:1px solid #dfbd73;color:#704700;white-space:normal;line-height:1.35}
body.portal-shared .portal-overdue-notice strong{font-size:13px}body.portal-shared .portal-overdue-notice span{font-size:12px;font-weight:400}
body.portal-shared .portal-navigation .portal-overdue-notice:hover{background:#ffedc7;border-color:#c69a47;color:#553700}
body.portal-shared .portal-navigation .portal-logout{margin:0}
@media(max-width:1300px){body.portal-shared .portal-navigation{grid-template-columns:minmax(0,1fr) auto}body.portal-shared .portal-navigation .portal-overdue-notice{grid-column:1/-1;grid-row:1}}

/* Shared pagination keeps the filtered selection intact across pages. */
.ui-page-hidden{display:none!important}.ui-list-toolbar{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:12px 0}.ui-list-toolbar label{display:grid;gap:6px;font-size:12px;font-weight:600}.ui-list-toolbar select{width:auto;min-width:90px;min-height:44px}.ui-list-toolbar>span{font-size:12px;color:var(--ui-muted);padding-bottom:12px}.ui-table-paging{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin:16px 0 0}.ui-table-paging>span{font-size:13px}.ui-table-paging button{min-height:44px}.ui-table-paging button:disabled{opacity:.45;cursor:default}@media(max-width:600px){.ui-list-toolbar select{font-size:16px}.ui-table-paging{justify-content:space-between}}

/* Customer portal: same compact field groups as the staff customer record. */
body.portal-shared :is(.portal-surface,.card,.panel,main>article){padding:16px;margin-top:16px}body.portal-shared :is(.portal-content,.case-reader)>header{margin-bottom:12px}body.portal-shared h1{margin-bottom:8px}body.portal-shared .portal-content>p{margin:8px 0 16px}
body.portal-shared .ui-field-group:has(>legend){padding:12px 16px 16px;margin:0;border:1px solid #d0dce7;border-radius:8px;background:linear-gradient(120deg,#f0f5fa,#fafcfe 70%);box-shadow:inset 0 1px #fff,0 1px 3px #26324206}body.portal-shared .ui-field-group>legend{padding:5px 10px;margin:0 0 6px;border:1px solid #cedbe8;border-left:3px solid #49657e;border-radius:5px;background:linear-gradient(110deg,#e0eaf3,#f6f9fc);font-size:14px;line-height:1.4;color:#253c52}body.portal-shared .ui-field-group+.ui-field-group{margin-top:16px}
body.portal-shared .portal-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}body.portal-shared .portal-field-grid>.ui-field-group{margin:0}body.portal-shared .portal-field-grid>.ui-field-group:first-child{grid-column:1/-1}body.portal-shared .portal-profile-grid{gap:12px 20px}
body.portal-shared .portal-tools{margin:0;padding:0;border:0;gap:12px 16px}body.portal-shared .portal-tools label{max-width:none;flex:1 1 170px}body.portal-shared .portal-tools label:first-child{flex-grow:2}body.portal-shared :is(.portal-v2,.portal-content) td{padding:9px 10px}body.portal-shared .ui-field-group .public-document-facts{margin:4px 0;gap:10px 18px}body.portal-shared .public-document-details-grid{margin:0}body.portal-shared .public-document-details-grid .public-document-details{padding:0;border:0;background:transparent}
body.portal-shared .form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:0 0 16px}body.portal-shared .public-contact{margin-top:20px;padding:16px}body.portal-shared .portal-staff-notice{margin-top:14px;padding:4px 16px}body.portal-shared .portal-navigation{margin-top:14px}body.portal-shared main.portal-content,body.portal-shared main.case-reader{padding-top:20px}
@media(max-width:700px){body.portal-shared .portal-field-grid{grid-template-columns:1fr}body.portal-shared .ui-field-group:has(>legend){padding:10px 12px 14px}body.portal-shared .portal-profile-grid{grid-template-columns:1fr}body.portal-shared :is(.portal-surface,.card,.panel,main>article){padding:14px}body.portal-shared .portal-tools label{flex-basis:calc(50% - 16px)}}

/* The simulation indicator accompanies the ordinary shared interface. */
.simulation-banner{position:sticky;order:-100;top:var(--ui-header-height,0px);z-index:90;display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 20px;border:2px solid #ad6a12;background:#fff3cf;color:#563504;margin:12px 0;border-radius:8px}.simulation-banner small{display:block;margin-top:4px}.simulation-banner .button{flex-shrink:0}@media(max-width:640px){.simulation-banner{align-items:flex-start;flex-direction:column;padding:12px}.simulation-banner .button{align-self:stretch;text-align:center}}

/* Shared compact controls keep generous touch targets without extra toolbar rows. */
.ui-input-action-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:6px}.ui-input-action-row>label{flex:1 1 280px;min-width:0}.ui-input-action-row input{margin-bottom:0}.ui-input-action-row>button{margin:0;flex:0 0 auto}
.ui-compact-note{margin:12px 0 0;font-size:13px}.ui-help-disclosure{margin:4px 0 12px}.ui-help-disclosure>summary,.ui-panel-disclosure>summary{cursor:pointer;min-height:44px;box-sizing:border-box;padding:12px 0;color:var(--ui-ink);font-weight:600}.ui-help-disclosure>summary{font-size:13px}.ui-help-disclosure>p{margin:8px 0;font-size:13px;line-height:1.5}.ui-panel-disclosure>summary{padding:0;line-height:44px}.ui-panel-disclosure:not([open]){padding-top:8px!important;padding-bottom:8px!important}
body.app-v2 #main-content .table-wrap>.table-tools.ui-list-tools,.table-tools.ui-list-tools{display:flex;flex-flow:row wrap;align-items:flex-end;gap:12px;padding:12px 0;margin:0}.ui-list-tools>input{flex:1 1 180px;min-width:0;margin:0}.ui-list-tools>label{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}.ui-list-tools>label select{width:auto;min-width:76px;margin:0;min-height:44px}.ui-list-tools>span{margin-left:auto;align-self:center;font-size:12px;color:var(--ui-muted)}.ui-table-paging[hidden]{display:none!important}
body.app-v2 #main-content .position-row-tools{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 8px}body.app-v2 #main-content .position-row-tools>.position-description{flex:1 1 auto;margin:0}body.app-v2 #main-content .position-row-tools>.position-description[open]{flex-basis:100%}body.app-v2 #main-content .position-row-tools summary{box-sizing:border-box;min-height:44px;padding:12px 0;line-height:20px}body.app-v2 #main-content .position-row-tools>.history-action{flex:0 1 auto;min-height:44px;max-width:100%;padding:12px 0;margin:0;line-height:20px;overflow-wrap:anywhere;text-align:left}
body.app-v2 #main-content .position-row-tools>.position-description:not([open]){flex:0 1 auto}body.app-v2 #main-content label.position-meta-toggle{font-size:11px;display:flex;align-items:center;gap:8px;min-height:44px;flex:0 1 auto;margin:0;padding:0;line-height:20px;white-space:normal}
body.app-v2 #main-content label.position-meta-toggle>input[type=checkbox]{box-sizing:border-box!important;appearance:auto!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;flex:0 0 16px!important;max-width:16px!important;max-height:16px!important;margin:0!important;padding:0!important;border-radius:2px!important}


@media(max-width:650px){.ui-input-action-row>button{width:100%}.ui-list-tools>input{flex-basis:100%;max-width:none}.ui-list-tools select{font-size:16px}.ui-list-tools>.column-filters{order:3}}

.ui-selection-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:0 0 16px}.ui-selection-bar>button{margin-left:auto}.ui-selection-bar>span{font-size:12px;color:var(--ui-muted)}.ui-selection-bar .check,.ui-row-selection{display:flex;align-items:center;gap:8px;min-width:44px;min-height:44px;margin:0}.ui-row-selection input{margin:0}.ui-selection-bar+dialog{margin:auto}@media(max-width:650px){.ui-selection-bar>button{width:100%;margin-left:0}}

/* Address order is semantic: street, then short postal code before city. */
body.portal-shared .portal-profile-grid.ui-address-grid{grid-template-columns:minmax(80px,110px) minmax(0,1fr);align-items:start}.ui-address-grid .ui-address-street{grid-column:1/-1}.ui-address-grid .ui-address-zip{grid-column:1}.ui-address-grid .ui-address-city{grid-column:2}.ui-address-grid label{align-self:start}.ui-address-grid input{height:44px;min-height:44px;box-sizing:border-box}
.ui-single-actionbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap;margin:16px 0}.ui-single-actionbar>*{flex:0 0 auto}.ui-action-menu{position:relative}.ui-action-menu>summary{cursor:pointer;list-style:none}.ui-action-menu>summary::-webkit-details-marker{display:none}.ui-action-menu>div{position:absolute;right:0;top:calc(100% + 6px);z-index:50;display:grid;gap:8px;min-width:240px;padding:12px;border:1px solid var(--ui-line);border-radius:8px;background:#f4f8fc;box-shadow:0 6px 20px #26324224}.ui-action-menu>div :is(a,button){width:100%;text-align:left;white-space:normal}.ui-single-actionbar .button,.ui-single-actionbar button{white-space:nowrap}
@media(max-width:700px){.ui-single-actionbar{justify-content:flex-start;overflow-x:auto;min-height:60px}.ui-action-menu[open]>div{position:fixed;left:16px;right:16px;top:30vh;max-height:60vh;overflow:auto;min-width:0}.ui-single-actionbar>.button,.ui-single-actionbar>button{font-size:12px;padding-left:10px;padding-right:10px}}

body.app-v2 #main-content .panel-head h2{margin:0}body.app-v2 #main-content .panel-head p{margin:6px 0 0}.ui-input-action-row>label:has(select){flex:1 1 200px}.ui-input-action-row>label:has(input[type=email]){flex:2 1 260px}

.portal-payment-methods,.portal-payment-methods>form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0;max-width:100%}.portal-payment-methods{min-height:56px}
.portal-payment-workspace:has(>.ui-form-stack:last-child:empty){grid-template-columns:minmax(0,1fr)}
.portal-bank-details dd>small{display:block;font-weight:normal}.portal-payment-methods :is(button,.button){white-space:normal;max-width:100%;overflow-wrap:anywhere;min-height:44px}.portal-payment-methods>form{margin:0}.portal-payment-methods+ .public-note{margin-bottom:0}#portal-payment-fields{margin-top:16px;min-height:100px}[data-portal-payment] [data-checkout-error]:empty{display:none}[data-portal-payment] .form-actions{align-items:center}[data-payment-total]{margin-right:auto;white-space:nowrap}

/* Shared compact settings layout, preserving 44px controls and mobile input size. */
body.app-v2 #main-content .ui-compact-page>.page-head{margin-bottom:8px}body.app-v2 #main-content .ui-compact-page>.page-head p{margin:4px 0}body.app-v2 #main-content .ui-compact-page>.page-head .eyebrow{display:none}body.app-v2 #main-content .ui-compact-page>.page-head h1{margin:0;font-size:24px}
body.app-v2 #main-content .ui-compact-panel>.panel-head,body.app-v2 #main-content .ui-compact-panel>form>.panel-head{min-height:44px;margin-bottom:8px;padding-bottom:8px}body.app-v2 #main-content .ui-compact-panel .ui-field-group:has(>legend){padding:6px 12px 10px}body.app-v2 #main-content .ui-compact-panel .ui-field-group>legend{padding:3px 8px;margin-bottom:0}body.app-v2 #main-content .ui-compact-panel .ui-selection-bar{margin-bottom:8px}body.app-v2 #main-content .ui-compact-panel .ui-input-action-row{margin-bottom:0}body.app-v2 #main-content .ui-compact-panel .ui-input-action-row>label{margin-bottom:0}

.ui-address-grid>.address-lookup{grid-column:1/-1;min-width:0}.ui-address-grid>.address-lookup input{width:100%}.ui-address-grid>.address-lookup>label{width:100%}

/* Payment fields keep the same readable size on iPhone and iPad. */
body.portal-shared [data-portal-payment] :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]){font-size:16px;width:100%}
body.portal-shared [data-portal-payment] .form-actions{margin:16px 0;gap:8px}

/* Compact, accessible hierarchies use the shared controls and dialog shell. */
.ui-tree-search{display:block;max-width:32rem;margin-bottom:12px}.ui-group-tree{list-style:none;padding:0;margin:0}.ui-group-tree .ui-group-tree{margin-left:22px;padding-left:10px;border-left:1px solid #c9d9e8}.ui-group-row{display:flex;align-items:center;gap:8px;min-height:48px;padding:3px 0;border-bottom:1px solid #dce6ef}.ui-group-toggle,.ui-group-spacer{flex:0 0 44px;width:44px;min-height:44px;padding:4px!important}.ui-group-name,.ui-group-choice{flex:1;min-width:0;overflow-wrap:anywhere;text-align:left}.ui-group-row .ui-action-menu{flex:none}.ui-group-choice[aria-pressed=true]{background:#dceaf6;color:#243e54;border-color:#688aa7}.ui-group-picker{width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere;min-height:44px}.ui-group-picker:after{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat;float:right;margin-left:8px}[data-group-picker-tree]{max-height:55vh;overflow:auto;margin-top:12px}[data-group-picker-tree]>.button,[data-group-picker-tree]>button{margin-bottom:8px}.ui-group-tree [hidden]{display:none!important}
@media(max-width:600px){.ui-group-tree .ui-group-tree{margin-left:8px;padding-left:4px}.ui-group-row{gap:4px}.ui-group-row .ui-action-menu>summary{padding:8px;font-size:13px}.ui-group-name{font-size:14px}}

.ui-panel-inline{display:flex;align-items:center;justify-content:space-between;gap:16px}.ui-panel-inline>div:first-child{min-width:0}.ui-panel-inline h2{font-size:17px;margin:0 0 6px}.ui-panel-inline p{margin:0;overflow-wrap:anywhere}.ui-panel-inline .ui-single-actionbar{margin:0;flex:none}p[role=status]:empty{display:none}.ui-form-columns>.ui-help-disclosure{margin:0;min-width:0}
@media(max-width:1100px){.ui-panel-inline{align-items:stretch;flex-direction:column}.ui-panel-inline .ui-single-actionbar{justify-content:flex-start;max-width:100%;overflow-x:auto}}

/* Compact module tiles and explicit payment outcomes. */
.ui-module-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ui-module-row,.ui-module-row:last-child{padding:12px;border:1px solid var(--ui-line);border-radius:8px;background:linear-gradient(135deg,#f8fbff,#eef5fb);align-items:flex-start}.ui-module-actions{gap:8px}.ui-module-copy{align-self:center}.ui-module-row[hidden]{display:none}
.ui-payment-status{display:grid;gap:4px;margin:0 0 16px;padding:14px 16px;border:1px solid;border-left-width:5px;border-radius:8px;font-size:14px;line-height:1.5}.ui-payment-status strong{font-size:17px}.ui-payment-status--success{color:#14532d;background:#eaf8ef;border-color:#28824b}.ui-payment-status--error{color:#8d1e18;background:#fff0ed;border-color:#c4372d}.ui-payment-status--pending{color:#744c0d;background:#fff7dc;border-color:#b7831e}.ui-payment-status:empty{display:none}
@media(max-width:1050px){.ui-module-list{grid-template-columns:1fr}}@media(max-width:600px){.ui-module-row{flex-wrap:nowrap}.ui-module-actions{width:auto;flex-direction:column;align-items:flex-end;flex-shrink:0}.ui-module-actions .button{font-size:12px;padding-inline:10px}}

.ui-chart-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.ui-chart-controls label{margin:0;min-width:110px}.stat-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}@media(max-width:600px){.ui-chart-controls{width:100%}.ui-chart-controls label{flex:1;min-width:0}}

@media(max-width:560px){body.app-v2 #main-content .stat-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat-filters>label:first-of-type{grid-column:1/-1}.stat-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-chart text{font-size:23px}}

body.app-v2 #main-content .form-actions.ui-single-actionbar{justify-content:safe flex-end;flex-wrap:nowrap;max-width:100%;overflow-x:auto;min-width:0}.ui-disclosure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}.ui-disclosure-grid>details{margin:0}.ui-disclosure-grid>details>summary{min-height:44px;align-content:center}
@media(max-width:1100px){body.app-v2 #main-content .page-head:has(>.ui-single-actionbar){flex-wrap:wrap}body.app-v2 #main-content .page-head>.form-actions.ui-single-actionbar{flex-basis:100%;justify-content:flex-start;margin-top:0}}

/* Related settings remain side by side on tablets; fields keep their touch size. */
.ui-balanced-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px 20px;align-items:start}.ui-balanced-grid>.ui-field-group{margin:0;min-width:0}

/* Shared single-row toolbars keep touch buttons side by side on small screens. */
body.app-v2 #main-content .ui-single-actionbar>:is(button,.button){flex:0 0 auto;width:auto;white-space:nowrap}

/* Keep the native clock control separate from the typed time in all editors. */
body.app-v2 #main-content .ui-time-control>.ui-time-picker-button{width:44px;min-width:44px;height:44px;min-height:44px;top:0;right:1px;padding:0;border:0;background:transparent;box-shadow:none}
body.app-v2 #main-content .ui-time-control>.ui-native-time-picker{width:1px;min-width:0;height:1px;min-height:0;padding:0;border:0}
body.app-v2 #main-content .position-heading-fields .ui-time-control{min-width:108px}

/* Position primary fields and secondary captions share two compact baselines. */
body.app-v2 #main-content .position-name-control,body.app-v2 #main-content .position-unit-control{position:relative;min-height:44px}
body.app-v2 #main-content .position-name-control>textarea{display:block;padding-right:44px;margin:0;min-height:44px;height:44px}
body.app-v2 #main-content .position-name-clear{position:absolute;right:0;top:0;width:44px;min-width:44px;height:44px;padding:0;margin:0;border:0;background:transparent;color:#52647a;box-shadow:none;font-size:20px;line-height:44px}
body.app-v2 #main-content .position-unit-control{display:grid;grid-template-columns:minmax(0,1fr) 44px;min-width:0}
body.app-v2 #main-content .position-unit-control>input{margin:0;min-width:0;padding-right:10px;border-radius:7px 0 0 7px!important}
body.app-v2 #main-content .position-unit-control>.position-unit-select{position:static;width:44px!important;min-width:44px;max-width:44px;overflow:hidden;height:44px;padding:0;padding-inline:0!important;margin:0;background-color:var(--ui-form-field,#fff);border:1px solid var(--ui-line,#ccd2da);border-left:0;border-radius:0 7px 7px 0!important;color:transparent!important;cursor:pointer}
body.app-v2 #main-content .position-unit-select option{color:#27313f;background:white}
body.app-v2 #main-content .position-secondary{display:flex;align-items:center;min-height:44px;box-sizing:border-box;padding:12px 0;margin:0;line-height:20px}
@media(min-width:768px){body.app-v2 #main-content .position-table .pe-unit{width:160px}}
@media(min-width:901px){body.app-v2 #main-content .position-table td{padding-top:8px;padding-bottom:4px}body.app-v2 #main-content .position-number{box-sizing:border-box;height:44px;padding-top:12px}body.app-v2 #main-content .position-drag{height:44px;margin:0;padding:12px 0;line-height:20px}body.app-v2 #main-content .position-table .ui-clearable-field{margin:0}}

body.app-v2>header .pdc-indicator{order:2;flex-shrink:0;margin:0;min-height:44px;background:#fff1cf;color:#674500;border:1px solid #cda94e;font-variant-numeric:tabular-nums}body.app-v2>header .pdc-indicator[hidden]{display:none}.pdc-entry{display:flex;justify-content:space-between;gap:16px;padding:12px;margin-top:8px;min-height:44px;border:1px solid var(--ui-line);border-radius:8px;text-decoration:none;background:var(--ui-panel);color:var(--ui-ink)}.pdc-entry span{min-width:0;overflow-wrap:anywhere}.pdc-entry small{display:block;color:var(--ui-muted)}.pdc-entry strong{white-space:nowrap;font-variant-numeric:tabular-nums}.pdc-running{background:#fff1cf!important;color:#674500!important;border-color:#cda94e!important}#position-entry{scroll-margin-top:170px}

body.app-v2 #main-content .position-unit-control::after{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat;position:absolute;right:13px;top:calc(var(--ui-field-height,44px)/2 - 9px);line-height:20px;color:var(--ui-ink,#27313f);pointer-events:none}body.app-v2 #main-content .position-unit-control>.position-unit-select{appearance:none;background-image:none!important}
body.app-v2 #main-content .ui-dialog .panel-head{flex-wrap:wrap;min-width:0}body.app-v2 #main-content .ui-dialog .panel-head>.form-actions{margin-left:auto;max-width:100%;flex:0 1 auto}
@media(min-width:601px){body.app-v2 #main-content .csc-dialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

body.app-v2 #main-content .form-actions.ui-single-actionbar>select{width:auto;min-width:160px;max-width:220px;margin:0}

/* Voucher redemption is separate from adding document positions. */
.position-add [data-sv-redeem-open]{margin-inline-start:auto}
.pdc-indicator{font-weight:700;border-color:#b67504!important;background:#fff1ce!important;color:#583600!important;animation:pdc-signal 2s ease-in-out infinite}
@keyframes pdc-signal{0%,100%{box-shadow:0 0 0 0 rgba(196,123,0,.12)}50%{box-shadow:0 0 0 5px rgba(196,123,0,.26)}}
@media(prefers-reduced-motion:reduce){.pdc-indicator{animation:none}}

body.app-v2 #main-content .case-work-filters{grid-template-columns:minmax(260px,2fr) minmax(220px,1.25fr) minmax(140px,1fr) minmax(160px,1fr) auto}
@media(max-width:1100px){body.app-v2 #main-content .case-work-filters{grid-template-columns:repeat(2,minmax(0,1fr))}body.app-v2 #main-content .case-work-filters .case-search{grid-column:1/-1}}
@media(max-width:600px){body.app-v2 #main-content .case-work-filters{grid-template-columns:minmax(0,1fr)}}

body.app-v2 #main-content .position-time-note{display:inline-block;margin-inline-start:16px;font-size:12px;font-weight:400;line-height:20px}

/* Balanced filter fields for large catalogues; the table scrolls within its card. */
.ui-filter-fields.ui-filter-fields--balanced{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.ui-filter-fields--balanced>.ui-filter-search{grid-column:span 2}
@media(max-width:700px){.ui-filter-fields.ui-filter-fields--balanced{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.ui-filter-fields.ui-filter-fields--balanced{grid-template-columns:minmax(0,1fr)}.ui-filter-fields--balanced>.ui-filter-search{grid-column:auto}}

/* Shared selection toolbar for paginated lists. */
.ui-selection-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.ui-selection-toolbar .bulk-selection{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.ui-selection-toolbar [role=alert]{flex-basis:100%;margin:0}.ui-selection-menu{position:relative}.ui-selection-menu summary{min-height:44px;display:flex;align-items:center;gap:16px;cursor:pointer}.ui-selection-toolbar .bulk-selection strong{color:var(--ui-muted);font-size:13px}.ui-selection-menu .bulk-menu-content{z-index:30}.ui-selection-menu button:disabled{opacity:.45;cursor:default}
@media(max-width:700px){.ui-selection-menu{flex:1 1 100%}.ui-selection-menu .bulk-menu-content{position:static;width:100%;max-width:none;margin-top:8px}.ui-selection-menu summary{justify-content:space-between}}
body.app-v2 .ui-dialog button.danger{background:#b42318;color:#fff;border-color:#b42318}body.app-v2 .ui-dialog button.danger:hover{background:#912018;border-color:#912018}
/* Shared product media: uniform previews and accessible enlargement. */
.article-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-top:16px}.article-gallery figure{margin:0;min-width:0}.image-open{display:block;width:100%;padding:0!important;background:#fff!important;border:1px solid var(--border,#cad8e5)!important;border-radius:10px;overflow:hidden}.image-open img{display:block;aspect-ratio:1;object-fit:contain;width:100%;height:auto;background:#fff}.article-gallery figcaption{padding-top:8px}.article-gallery .form-actions{flex-wrap:wrap;margin-top:8px}.article-main-image{margin:0 0 16px;max-width:220px}.image-lightbox{width:min(900px,94vw);max-height:92vh;padding:16px}.image-lightbox img{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin:auto}.image-lightbox::backdrop{background:#172535aa}
.ui-group-combobox{position:relative}.ui-group-options{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:80;max-height:280px;overflow:auto;background:#fff;border:1px solid #b9cadc;border-radius:8px;box-shadow:0 8px 24px #263f5426;padding:6px}.ui-group-option{display:block;width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere;background:#fff!important;color:#263f54!important;border:0!important;min-height:44px}.ui-group-option:hover,.ui-group-option.active,.ui-group-option[aria-selected=true]{background:#e3edf7!important}.ui-group-drag{touch-action:none;cursor:grab;min-width:44px;padding:8px!important}.ui-group-root-drop{border:1px dashed #9eb4cc;border-radius:8px;padding:12px;margin:12px 0;color:#526881;font-size:13px}.ui-group-row[data-drop-placement=inside],.ui-group-root-drop[data-drop-placement]{background:#dbeaf8;outline:2px solid #3d739c}.ui-group-row[data-drop-placement=before]{box-shadow:0 -3px #3d739c}.ui-group-row[data-drop-placement=after]{box-shadow:0 3px #3d739c}

@media(max-width:1000px){.article-link-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.article-link-row strong{grid-column:1/-1}}
@media(max-width:500px){.article-link-row{grid-template-columns:minmax(0,1fr)}.article-link-row strong{grid-column:auto}}

.gtin-editor-row{grid-template-columns:minmax(160px,.8fr) minmax(160px,1fr) auto minmax(120px,.7fr) auto}
@media(max-width:1100px){.gtin-editor-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gtin-editor-row>.gtin-preview{grid-column:auto}.gtin-editor-row>button{grid-column:auto}}
@media(max-width:500px){.gtin-editor-row{grid-template-columns:minmax(0,1fr)}.gtin-editor-row>.gtin-preview,.gtin-editor-row>button{grid-column:auto}}

/* Stock quantities: neutral zero, red deficits, increasing green for positive stock. */
.badge.stock-level-zero{background:#e9ecef;color:#475467}.badge.stock-level-negative{background:#fee4e2;color:#912018}.badge.stock-level-low{background:#e8f5ec;color:#185c34}.badge.stock-level-medium{background:#bee5cb;color:#174c2d}.badge.stock-level-high{background:#79c795;color:#103c23}.badge.stock-level-full{background:#247845;color:#fff}

/* Compact numeric options in shared inline forms. */
body.app-v2 #main-content .ui-inline-form > .ui-numeric-field { flex: 0 1 150px; width: 150px; }
body.app-v2 #main-content .ui-inline-form > .ui-numeric-field input { width: 100%; }

/* Shared destructive actions: solid buttons and pale secondary actions. */
:is(body.app-v2,body.portal-shared) button.danger:not(.secondary),:is(body.app-v2,body.portal-shared) .button.danger:not(.secondary){background:#b42318!important;color:#fff!important;border-color:#b42318!important}
:is(body.app-v2,body.portal-shared) button.danger.secondary,:is(body.app-v2,body.portal-shared) .button.danger.secondary{background:#fff4f2!important;color:#9b1c13!important;border-color:#efb1b8!important}
:is(body.app-v2,body.portal-shared) button.danger:disabled,:is(body.app-v2,body.portal-shared) .button.danger:disabled{background:#eceff2!important;color:#606a76!important;border-color:#cdd3da!important;opacity:1}
body.app-v2 .case-purge>summary{min-height:44px;padding:12px 0;box-sizing:border-box}

/* Compact shared field rows and multi-choice groups. */
.ui-inline-fields{display:flex;flex-wrap:wrap;gap:16px;align-items:end}.ui-inline-fields>label{min-width:0;flex:0 1 220px}.ui-inline-fields>.ui-field-wide{flex:1 1 320px}.ui-inline-choices{display:flex;flex-wrap:wrap;gap:8px 24px}.ui-inline-choices>.check{margin:0;min-height:44px}
@media(max-width:600px){.ui-inline-fields>label,.ui-inline-fields>.ui-field-wide{flex:1 1 100%}}

/* Personal dashboard uses the shared cards, field heights and spacing. */
.ui-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.ui-dashboard-widget{min-width:0}.ui-dashboard-full{grid-column:1/-1}.ui-dashboard-widget>.panel,.ui-dashboard-widget>.support-card{margin:0}.ui-dashboard-widget .dashboard-case-table{overflow:auto}.ui-dashboard-widget .dashboard-case-head,.ui-dashboard-widget .dashboard-case-row{min-width:0}.ui-dashboard-widget .stat-chart{display:block;width:100%;height:auto;min-width:0}.ui-dashboard-metrics{margin:0 0 16px}.ui-dashboard-metrics>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--ui-border,#d3deeb)}.ui-dashboard-metrics dt{color:var(--muted,#536580)}.ui-dashboard-metrics dd{margin:0;font-size:1.12rem;font-weight:700;text-align:right}.ui-activity-feed{list-style:none;margin:0 0 16px;padding:0}.ui-activity-feed li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--ui-border,#d3deeb)}.ui-activity-feed li>div{min-width:0;overflow-wrap:anywhere}.ui-activity-feed li>.badge{align-self:flex-start}.ui-activity-feed p{margin:4px 0}.ui-activity-feed small{color:var(--muted,#536580)}.dashboard-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:end}.dashboard-filters label{width:180px;max-width:100%;margin:0}.dashboard-filters>button{margin:0}.ui-dashboard-dialog{width:min(880px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.ui-dashboard-choice{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--ui-border,#d3deeb)}.ui-dashboard-choice label{margin:0}.ui-dashboard-move{display:flex;gap:8px}.ui-dashboard-move button{min-width:44px;padding:8px}.ui-dashboard-widget .planning-heading{flex-wrap:wrap}.ui-dashboard-widget .stat-chart text{font-size:11px;fill:#536580}.ui-dashboard-widget .stat-grid-line{stroke:#d3deeb;stroke-width:1}.ui-dashboard-widget .stat-points circle{fill:#137c8b;stroke:#fff;stroke-width:2}
@media(max-width:1000px){.ui-dashboard-grid{grid-template-columns:minmax(0,1fr)}.ui-dashboard-full{grid-column:auto}}@media(max-width:600px){.ui-dashboard-choice{grid-template-columns:minmax(0,1fr) auto}.ui-dashboard-choice>.check{grid-column:1/-1}.ui-dashboard-choice>label:not(.check){max-width:160px}.dashboard-filters label{flex:1 1 140px}.ui-dashboard-metrics>div{flex-wrap:wrap;gap:4px}.ui-dashboard-metrics dd{margin-left:auto}.ui-dashboard-dialog{padding:16px}}
body.app-v2 #main-content dl.ui-dashboard-metrics{display:block}body.app-v2 #main-content dl.ui-dashboard-metrics dd{white-space:nowrap;overflow-wrap:normal;background:transparent;border:0;padding:0;flex-shrink:0}body.app-v2 #main-content .ui-dashboard-dialog>.form-actions{margin:0}
/* Purchasing source details use the shared field and action components. */
.supplier-source{margin-block:12px;border:1px solid var(--ui-border,#ccdcec);border-radius:8px;padding:12px;background:rgba(255,255,255,.48)}
.supplier-source>summary{min-height:44px;display:flex;align-items:center;font-weight:650;cursor:pointer}
.supplier-source-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.supplier-source-grid>.wide{grid-column:1/-1}.supplier-address{display:grid;grid-template-columns:100px minmax(0,1fr) 80px;gap:16px}
.supplier-compare-filter{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:16px;align-items:end}
.supplier-best{display:block;color:#23633e}.article-suppliers .panel-head{flex-wrap:wrap}
@media(max-width:1000px){.supplier-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.supplier-source-grid,.supplier-compare-filter{grid-template-columns:1fr}.supplier-address{grid-template-columns:80px minmax(0,1fr)}.supplier-address>label:last-child{grid-column:1/-1}}

/* Supplier price retrieval uses shared panels and compact form fields. */
.supplier-online-source{margin-top:16px}.supplier-price-basis{display:grid;grid-template-columns:minmax(220px,360px) minmax(150px,220px);gap:16px;align-items:end}.supplier-online-source small{display:block}.supplier-online-source form[data-supplier-fetch]{margin:0}.supplier-online-source .check{margin-top:12px}.supplier-online-source input[type=radio]{min-width:24px;min-height:24px}.supplier-online-source td{vertical-align:top}@media(max-width:600px){.supplier-price-basis{grid-template-columns:1fr}.supplier-online-source .ui-form-header{display:block}}

.supplier-offer-choice{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0;cursor:pointer}

/* Compact labelled fields with natural wrapping, also used for payment entry. */
.ui-compact-fields{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin-bottom:16px}.ui-compact-fields>label{flex:0 1 220px;min-width:160px}.ui-compact-fields>label.check{align-self:center;flex-basis:260px}@media(max-width:540px){.ui-compact-fields>label{flex:1 1 100%;min-width:0}}

.ui-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:16px}.ui-metrics p{margin:8px 0}.ui-metrics small{color:var(--muted,#526781)}

/* Compact settings navigation and license selection. */
.settings-hub .module-list{grid-template-columns:1fr;gap:10px}.settings-hub .module-link{border:1px solid var(--ui-border,#ceddeb);border-radius:8px;padding:12px;background:#fff;min-height:70px}.ui-license-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:0 16px}.ui-license-features .check{min-height:44px;margin:0}

.dashboard-head{align-items:flex-start;flex-wrap:wrap}.dashboard-head .dashboard-filters{width:100%;justify-content:flex-end;gap:12px;margin:0;padding:0;box-shadow:none;background:none;border:0}.dashboard-filters label{width:auto;min-width:100px;max-width:190px}.dashboard-filters select{width:100%}.ui-dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ui-dashboard-widget{min-width:0;position:relative;container-type:inline-size}.ui-dashboard-widget[data-width=quarter]{grid-column:span 1}.ui-dashboard-widget[data-width=half]{grid-column:span 2}.ui-dashboard-widget[data-width=full]{grid-column:1/-1}.dashboard-widget-tools{display:flex;gap:8px;justify-content:flex-end;align-items:end;margin-bottom:8px}.dashboard-widget-tools label{display:flex;align-items:center;gap:8px}.dashboard-widget-tools select{width:90px}.dashboard-widget-tools button{min-width:44px;touch-action:none;cursor:grab}.dashboard-resize{position:absolute;right:8px;bottom:8px;min-width:44px;touch-action:none;cursor:ew-resize}.dashboard-editing .ui-dashboard-widget{padding-bottom:48px}.dashboard-moving{outline:2px dashed #607c99;outline-offset:4px;z-index:2}.settings-hub-link{border:1px solid #ccdae7!important;border-radius:8px;padding:12px!important;background:#fff;min-height:70px}.settings-hub-link:hover{background:#e9f1f9}.settings-hub .ui-module-list{gap:10px;grid-template-columns:1fr}
@container (max-width:350px){.ui-dashboard-metrics>div{display:block}.ui-dashboard-metrics dd{margin:4px 0}.ui-dashboard-widget .panel-head{flex-wrap:wrap}}
@media(max-width:1279px){.ui-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-dashboard-widget[data-width=half]{grid-column:span 1}}
@media(max-width:767px){.ui-dashboard-grid{grid-template-columns:minmax(0,1fr)}.ui-dashboard-widget[data-width]{grid-column:1/-1}.dashboard-head .dashboard-filters{justify-content:flex-start}.dashboard-filters label{flex:1 1 125px}.dashboard-resize{display:none}.dashboard-editing .ui-dashboard-widget{padding-bottom:0}}

.ui-dashboard-widget>.dashboard-card{margin:0}.dashboard-card>.panel-head{margin-bottom:10px;min-height:44px}.dashboard-card>.panel-head h2{margin:0}.dashboard-card>.panel-head button{min-width:44px}.dashboard-widget-body{height:340px;overflow:auto;overscroll-behavior:auto;scrollbar-gutter:stable;padding-right:4px}.dashboard-widget-body>.panel{padding:0;margin:0;border:0;box-shadow:none;background:transparent}.dashboard-widget-body>.panel>.panel-head:empty{display:none}.ui-dashboard-widget[data-dashboard-widget=search] .dashboard-widget-body{height:145px}.ui-dashboard-widget[data-collapsed="1"] .dashboard-card>.panel-head{margin-bottom:0}.dashboard-widget-body table{min-width:360px}
.dashboard-widget-body{font-size:13px;line-height:1.4}.dashboard-widget-body .ui-activity-feed{margin:0}.dashboard-widget-body .ui-activity-feed li{padding:9px 0;gap:10px}.dashboard-widget-body .ui-activity-feed strong{font-size:13px;font-weight:500}.dashboard-widget-body .ui-activity-feed p{margin:3px 0}.dashboard-widget-body .ui-activity-feed small{font-size:11.5px;line-height:1.35}.dashboard-card>.panel-head h2{font-size:16px;font-weight:600}.dashboard-widget-body .badge{font-size:11px}

/* Dashboard: a single card surface, compact typography and independently saved height. */
body.app-v2 #main-content .dashboard-widget-body :is(.panel,.support-card){padding:0;margin:0;border:0;background:transparent;box-shadow:none;border-radius:0}
body.app-v2 #main-content .dashboard-widget-body>.panel>.panel-head:empty{display:none}
body.app-v2 #main-content .dashboard-card{margin:0;padding:14px}
body.app-v2 #main-content .dashboard-widget-body{height:var(--dashboard-height,340px);font-size:13px;line-height:1.35}
body.app-v2 #main-content .dashboard-widget-body p{font-size:13px;line-height:1.35}
body.app-v2 #main-content .dashboard-card>.panel-head{margin:0 0 8px;padding:0 0 8px}
body.app-v2 #main-content .dashboard-card>.panel-head h2{font-size:16px;font-weight:600;line-height:1.3}
body.app-v2 #main-content .ui-dashboard-metrics>div{padding:7px 0}
body.app-v2 #main-content .ui-dashboard-metrics dd{font-size:15px;font-weight:600}
.dashboard-widget-tools{flex-wrap:wrap;margin-bottom:6px}.dashboard-widget-tools label{margin:0;font-size:12px}.dashboard-widget-tools input{width:78px}
.dashboard-resize{cursor:nwse-resize}.dashboard-placeholder{opacity:.22;outline:2px dashed #6c879e;outline-offset:2px}.dashboard-drag-ghost{filter:drop-shadow(0 10px 20px #23374b35);will-change:transform;opacity:.96}.dashboard-drag-ghost .dashboard-resize{display:none}
@media(max-width:650px){.dashboard-resize{display:block}.dashboard-editing .ui-dashboard-widget{padding-bottom:48px}.dashboard-widget-tools{justify-content:flex-start}}
.dashboard-widget-tools{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);align-items:end;gap:6px;justify-content:initial;width:100%}.dashboard-widget-tools>button{justify-self:start;padding:8px}.dashboard-widget-tools label{display:grid;gap:3px;min-width:0;font-size:11px}.dashboard-widget-tools :is(input,select){width:100%;min-width:0;padding-inline:6px}.dashboard-widget-tools>label{max-width:110px}.dashboard-widget-tools{grid-template-columns:44px minmax(55px,110px) minmax(55px,110px)}

body.app-v2 #main-content .dashboard-card>.panel-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}body.app-v2 #main-content .dashboard-card>.panel-head h2{flex:1;min-width:100px}.dashboard-heading-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.dashboard-widget-body{overscroll-behavior:auto}

.article-history td{vertical-align:top;font-size:.85rem;line-height:1.35;padding:7px 9px}.article-history td:first-child{white-space:nowrap}.article-history td summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.article-history td details p{margin:5px 0;overflow-wrap:anywhere}
/* Storefront: search-first catalog with own branding and shared form controls. */
body.shop-storefront{background:#fff;color:#172535}.shop-storefront>main{max-width:none;padding:24px;margin:0}.shop-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;background:#192a39;color:white;padding:12px 24px;box-shadow:0 2px 7px #0002}.shop-topbar a{color:inherit;text-decoration:none}.shop-brand{display:flex;align-items:center;gap:10px;flex:0 1 245px;min-width:150px}.shop-brand img{width:44px;height:44px;object-fit:contain}.shop-brand strong{font-size:15px;line-height:1.2;display:block}.shop-brand small{display:block;font-size:11px;color:#d7e2ec;margin-top:3px}.shop-global-search{flex:1;display:flex;align-items:stretch;margin:0;min-width:100px}.shop-storefront .shop-global-search :is(input,select,button){border-radius:0;margin:0;min-height:46px;height:46px}.shop-storefront .shop-global-search select{width:145px;flex-shrink:0;border-radius:6px 0 0 6px;background:#edf1f4;border:0;font-size:12px}.shop-storefront .shop-global-search input{min-width:0;flex:1;width:100%;border:0;color:#172535;background:white;padding:10px 12px}.shop-storefront .shop-global-search button{border-radius:0 6px 6px 0;background:#ffc64b;color:#172535;border:0;padding:10px 13px}.shop-account-nav{display:flex;align-items:center;gap:18px;flex-shrink:0}.shop-account-nav>a{min-height:44px;display:flex;justify-content:center;flex-direction:column;font-size:13px}.shop-account-nav small{font-size:11px;color:#dce4ec}.shop-account-nav .shop-cart-link{flex-direction:row;align-items:center;gap:8px}.shop-cart-link b{display:inline-grid;place-items:center;border-radius:20px;min-width:24px;height:24px;background:#ffc64b;color:#172535;margin-left:3px}.shop-subnav{background:#2d4355;padding:0 24px;display:flex;gap:24px;align-items:center;overflow-x:auto;white-space:nowrap}.shop-subnav a{color:#fff;text-decoration:none;display:flex;align-items:center;min-height:44px;font-size:13px}.shop-contact{margin-left:auto}.shop-surface{margin:0;padding:0}.shop-results-heading{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap;border-bottom:1px solid #d9e0e6;padding-bottom:16px}.shop-results-heading h1{font-size:24px;margin:0 0 4px}.shop-results-heading p{font-size:14px;margin:0;color:#526474}.shop-results-heading form{margin:0}.shop-results-heading label{font-size:12px}.shop-sort{display:flex;gap:8px}.shop-storefront .shop-sort select{width:175px}.shop-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:24px;margin-top:12px}.shop-sidebar{border-right:1px solid #dde3e9;padding-right:20px;font-size:13px}.shop-sidebar summary{font-weight:700;min-height:44px;display:flex;align-items:center;cursor:pointer}.shop-sidebar nav{display:grid}.shop-sidebar a{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;text-decoration:none;color:#172535;border-bottom:1px solid #eef1f4;line-height:1.3}.shop-sidebar a:hover,.shop-sidebar a[aria-current]{color:#a84e00;background:#fff5df;font-weight:600}.shop-sidebar .shop-subcategory{padding-left:14px}.shop-sidebar small{color:#5d6e7b}.shop-sidebar p{font-size:12px;line-height:1.5;color:#526474}.shop-results{min-width:0}.shop-breadcrumb{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 8px;font-size:12px;color:#586d7c}.shop-breadcrumb a{min-height:44px;display:inline-flex;align-items:center;color:inherit}.shop-categories{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 16px}.shop-category{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #d9e1e7;border-radius:6px;min-height:64px;text-decoration:none;color:#172535;background:#f5f7f9;flex:0 1 240px}.shop-category:hover{background:#edf2f6}.shop-category img{width:48px;height:48px;object-fit:contain}.shop-category small{display:block;font-size:12px;margin-top:2px}.shop-result-count{font-size:13px;color:#526474;margin:8px 0}.shop-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.shop-product{border:1px solid #e1e6eb;border-radius:7px;overflow:hidden;display:flex;flex-direction:column;background:white;min-width:0}.shop-product-image{height:210px;display:grid;place-items:center;padding:20px;background:#f7f8fa;text-decoration:none}.shop-product-image img{max-height:170px;max-width:100%;object-fit:contain;mix-blend-mode:multiply}.shop-product-image span{color:#657b8b;font-size:12px}.shop-product-info{padding:14px;display:flex;flex-direction:column;gap:5px;flex:1}.shop-product h2{font-size:16px;font-weight:550;line-height:1.35;margin:0}.shop-product h2 a{color:#172535;text-decoration:none}.shop-product h2 a:hover{color:#a34b00;text-decoration:underline}.shop-product small{font-size:11px;color:#526474}.shop-storefront .shop-price{font-size:26px;line-height:1.2;font-weight:600;margin:10px 0 0}.shop-price>span{font-size:13px;font-weight:400}.shop-delivery{font-size:13px;color:#326347;margin:8px 0}.shop-product form{margin-top:auto;padding-top:10px}.shop-storefront .shop-buy{border-radius:22px;background:#ffd45c;color:#172535;border:1px solid #edc147;width:100%;box-shadow:0 2px 3px #0001;font-weight:500;min-height:44px}.shop-storefront .shop-buy:hover{background:#ffca34}.shop-detail{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.1fr) 235px;gap:28px;align-items:start;padding:12px 0}.shop-detail-image{display:grid;gap:12px;text-align:center;min-width:0}.shop-detail-image img{width:100%;max-height:460px;object-fit:contain}.shop-detail-image small{font-size:12px;color:#637181}.shop-detail h1{font-size:26px;line-height:1.3;margin:8px 0 16px}.shop-detail h2{font-size:17px;margin-top:24px}.shop-detail-description p,.shop-detail li{font-size:14px;line-height:1.55}.shop-detail-description{min-width:0;overflow-wrap:anywhere}.shop-buybox{border:1px solid #d5dee6;border-radius:8px;padding:18px;display:grid;gap:10px}.shop-buybox p{margin:0;font-size:13px}.shop-buybox label{display:grid;gap:6px}.shop-buybox .form-actions{margin-top:16px}.shop-buybox small{font-size:12px;color:#526474}.shop-cart-continue{min-height:44px;display:grid;place-items:center;color:#176579;font-size:14px}.shop-address-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px}.shop-quantity{width:90px!important;min-width:75px}.shop-receipt{line-height:1.5}.shop-storefront .panel-head{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.shop-storefront :is(td,th){font-size:14px}.shop-storefront td small{display:block}.shop-storefront .notice{padding:14px;border-radius:6px;background:#eaf5ed;border:1px solid #afcdb8}.shop-storefront .notice.danger{background:#fff0f0;border-color:#e6a8a8}
@media(max-width:1200px){.shop-brand{flex-basis:170px}.shop-global-search select{display:none}.shop-storefront .shop-global-search input{border-radius:6px 0 0 6px}.shop-account-nav{gap:10px}.shop-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.shop-buybox{grid-column:2}.shop-detail-image{grid-row:span 2}}
@media(max-width:800px){.shop-topbar{flex-wrap:wrap;gap:8px 16px;padding:10px 16px}.shop-brand{flex:1}.shop-global-search{order:3;flex-basis:100%}.shop-layout{grid-template-columns:165px minmax(0,1fr);gap:16px}.shop-subnav{padding-inline:16px;gap:18px}.shop-sidebar{padding-right:12px}.shop-storefront>main{padding:16px}.shop-catalog{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
@media(max-width:600px){.shop-topbar{position:relative}.shop-brand strong{font-size:13px}.shop-brand small{font-size:10px}.shop-brand img{width:32px;height:32px}.shop-account-nav>a{font-size:12px}.shop-cart-link svg{display:none}.shop-layout{grid-template-columns:minmax(0,1fr);gap:8px}.shop-sidebar{border-right:0;padding:0}.shop-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.shop-sidebar p{display:none}.shop-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-product-image{height:155px;padding:12px}.shop-product-image img{max-height:130px}.shop-product-info{padding:10px}.shop-product h2{font-size:14px}.shop-storefront .shop-product .shop-price{font-size:22px}.shop-storefront .shop-product .shop-buy{padding:8px;font-size:12px}.shop-category{flex:1 1 140px;font-size:13px;padding:8px}.shop-category img{width:36px;height:36px}.shop-results-heading h1{font-size:22px}.shop-results-heading form{width:100%}.shop-sort select{flex:1}.shop-detail{grid-template-columns:minmax(0,1fr);gap:20px}.shop-detail-image{grid-row:auto}.shop-detail-image img{max-height:280px}.shop-buybox{grid-column:auto}.shop-detail h1{font-size:22px}.shop-address-row{grid-template-columns:85px minmax(0,1fr)}}
body.shop-storefront button.shop-buy{background:#ffd45c!important;color:#172535!important;border-color:#edc147!important}body.shop-storefront button.shop-buy:hover{background:#ffca34!important}
.shop-storefront>main>nav[aria-label="Rechtliche Informationen"]{gap:18px;flex-wrap:wrap;margin-top:24px}.shop-storefront>main>nav[aria-label="Rechtliche Informationen"] a{min-height:44px;display:inline-flex;align-items:center;color:#42586b;font-size:13px}

/* Compact article audit table; full touch targets remain on touch devices. */
body.app-v2 #article-panel-history .panel-head{margin:0 0 8px;padding:0 0 8px}
body.app-v2 #article-panel-history .panel-head h2{font-size:16px;margin:0}
body.app-v2 #article-panel-history>.muted{font-size:12px;line-height:1.3;margin:6px 0 10px}
body.app-v2 #article-panel-history .article-history :is(th,td){font-size:12px;line-height:1.25;padding:5px 8px}
body.app-v2 #article-panel-history .article-history td details{margin:0;padding:0;border:0;background:none;box-shadow:none}
body.app-v2 #article-panel-history .article-history td summary{min-height:20px;padding:0;line-height:1.25;font-weight:400}
body.app-v2 #article-panel-history .article-history td details p{font-size:12px;line-height:1.3;margin:4px 0}
@media(pointer:coarse){body.app-v2 #article-panel-history .article-history td summary{min-height:44px}}

/* Compact article selection menu, preserving touch targets. */
.article-action-items{gap:0!important;padding:6px!important;min-width:240px}.article-action-items>button,.article-action-items .bulk-menu-group>button,.article-action-items .bulk-danger-zone>button{width:100%;text-align:left;justify-content:flex-start;border:0!important;box-shadow:none!important;background:transparent!important;border-radius:4px;min-height:44px;padding:8px 12px!important}.article-action-items button:hover{background:#e9f0f7!important}.article-action-items .bulk-menu-group{border-top:1px solid #d6e0ea;margin-top:4px;padding-top:4px}.article-action-items .bulk-menu-group>span{display:block;color:#526474;font-size:12px;padding:4px 12px}.article-action-items .bulk-danger-zone{padding-top:4px!important;margin-top:4px!important}

.article-image-drop,.ui-file-drop{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;border:2px dashed #b8cbdc;border-radius:8px;padding:16px}.article-image-drop .form-actions,.ui-file-drop .form-actions{margin:0 0 0 auto}.article-image-drop>small,.ui-file-drop>small{flex-basis:100%;color:#526474}.article-image-drop.drag-over,.ui-file-drop.drag-over{background:#dceefb;border-color:#395f7b}.image-file-button{position:relative;overflow:hidden;cursor:pointer;min-height:44px!important}.image-file-button input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.image-file-button:focus-within{outline:2px solid #406485;outline-offset:2px}

.shop-storefront .shop-global-search select{width:auto;min-width:76px;max-width:260px;padding-inline:12px 30px;font-size:13px;text-overflow:ellipsis}.shop-sidebar .shop-tree-node summary{font-weight:500;display:flex;gap:6px;line-height:1.3}.shop-tree-node summary:before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-right.svg') center/contain no-repeat;flex-shrink:0}.shop-tree-node details[open]>summary:before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat}.shop-tree-node summary>small{margin-left:auto}.shop-tree-children{padding-left:12px}.shop-sidebar nav{display:block}@media(max-width:1200px){.shop-storefront .shop-global-search select{display:block;max-width:180px}}@media(max-width:600px){.shop-storefront .shop-global-search select{max-width:105px;min-width:64px}.shop-sidebar nav{display:block}}
/* Personal article columns use the same compact menu as selection actions. */
.article-column-options{width:290px;max-width:calc(100vw - 48px);max-height:70vh;overflow:auto;display:grid;gap:0}
.article-column-options .check{min-height:44px;margin:0;padding:4px 8px;display:flex;align-items:center;gap:10px}
.article-column-options .form-actions{margin:0 0 8px}
[data-article-table] [hidden]{display:none!important}
/* Fixed page actions occupy one shared row, including above the mobile navigation. */
.ui-floating-actions{position:fixed;right:24px;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:90;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px)}
.ui-floating-actions>:is(.ui-page-top,.feedback-trigger){position:static!important;inset:auto!important;margin:0;flex:0 0 auto;min-height:44px;box-sizing:border-box}
.ui-floating-actions>.ui-page-top{order:2}.ui-floating-actions>.feedback-trigger{order:1}
.ui-page-top{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;box-shadow:0 3px 12px #142d3f24}
.ui-page-top[hidden]{display:none}
.ui-page-top>span:first-child{font-size:22px;line-height:1}
@media(max-width:900px){.ui-floating-actions{right:16px;bottom:calc(86px + env(safe-area-inset-bottom,0px))}}
@media(max-width:600px){.ui-page-top{min-width:44px}.ui-page-top>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
@media print{.ui-floating-actions{display:none!important}}
.ui-list-toolbar>.ui-table-paging,.ui-list-tools>.ui-table-paging{margin:0 0 0 auto;gap:8px}
.ui-selection-toolbar>.form-actions{margin:0;gap:8px;flex-wrap:nowrap}

/* Always-visible training context, with a calm reduced-motion alternative. */
.simulation-indicator{min-height:44px;flex-shrink:0;max-width:100%;background:#fff2bf!important;color:#593500!important;border:2px solid #b56e00!important;animation:simulation-glow 2.4s ease-in-out infinite;white-space:normal}
@keyframes simulation-glow{0%,100%{box-shadow:0 0 0 0 #cf8c0030}50%{box-shadow:0 0 0 5px #cf8c0060}}
@media(prefers-reduced-motion:reduce){.simulation-indicator{animation:none}}
@media(max-width:820px){.simulation-indicator{font-size:12px;padding:7px 10px}.app-v2>header:has(.simulation-indicator){flex-wrap:wrap;height:auto;min-height:76px}}

.ui-step-navigation>[data-step-actions]{margin-right:auto;gap:12px}.ui-step-navigation>[data-step-actions] small{max-width:240px}.ui-step-navigation>[data-step-actions] button{flex:none}
@media(max-width:650px){.ui-step-navigation>[data-step-actions]{flex-basis:100%}.ui-step-navigation>[data-step-actions] small{display:none}}
.sv-issue-group{display:flex;gap:12px;border-bottom:1px solid var(--ui-border,#cfdae5);padding:8px 0;align-items:flex-start}.sv-issue-group>details{min-width:0;flex:1}.sv-issue-group summary{min-height:44px;padding:8px 0;cursor:pointer}.sv-issue-group summary small{display:block;margin-top:4px;color:var(--ui-muted,#53677f)}

/* Reusable image pool in the voucher designer. */
.sv-pool-dialog{width:min(960px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.sv-pool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.sv-pool-item{display:flex;flex-direction:column;gap:8px;padding:8px;white-space:normal;min-width:0}.sv-pool-item img{width:100%;height:100px;object-fit:contain;background:repeating-conic-gradient(#eef1f4 0% 25%,white 0% 50%) 50% / 16px 16px}.sv-pool-item span{overflow-wrap:anywhere}.sv-pool-drop{padding:16px;border:2px dashed var(--ui-border,#c6d5e6);border-radius:8px}.sv-pool-drop.is-dragover{background:#e3f1ff;border-color:#28618a}

.ui-document-list{display:grid;gap:12px;margin-top:16px}.ui-document-list a{overflow-wrap:anywhere;min-height:44px;display:flex;align-items:center}

.ui-dashboard-static .dashboard-card{height:auto;min-height:0}.ui-dashboard-static .dashboard-widget-body{max-height:none;overflow:visible}

.dashboard-widget-body>.ui-chart-controls{margin-bottom:16px}
/* Shop media and document publication use the shared controls. */
.shop-storefront .shop-global-search select{flex:0 0 auto;width:76px;max-width:210px;min-width:68px}.shop-storefront .shop-global-search input{flex:1 1 0;width:0}.shop-thumbnails{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.shop-thumbnails button{width:64px;height:64px;padding:4px;background:white}.shop-thumbnails button[aria-pressed=true]{border:2px solid #b45b0c;box-shadow:0 0 0 2px #ffe5bd}.shop-thumbnails img{height:50px;width:50px;object-fit:contain}.shop-image-dialog{max-width:90vw;width:1000px;padding:16px;border:1px solid #d5dee6;border-radius:10px}.shop-image-dialog::backdrop{background:#172535bb}.shop-image-dialog>img{width:100%;max-height:75vh!important;object-fit:contain}.shop-image-dialog .form-actions{margin:0 0 16px}.shop-product-documents{margin-top:24px;padding-top:16px;border-top:1px solid #d5dee6}.shop-product-documents a{display:inline-flex;align-items:center;min-height:44px}.ui-document-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid #d5dee6}.ui-document-row>a,.ui-document-row>span{overflow-wrap:anywhere;min-width:0}.ui-document-row .check{flex-shrink:0;min-height:44px;margin:0}
@media(max-width:600px){.shop-storefront .shop-global-search select{max-width:130px}.ui-document-row{flex-direction:column;align-items:flex-start;gap:4px}}
.shop-auth{border:1px solid #d5dee6;border-radius:8px;padding:24px;margin:12px 0}.shop-auth h1{margin:0 0 16px}.shop-auth form{display:grid;gap:16px}.shop-auth-divider{border-top:1px solid #d5dee6;padding-top:16px}.shop-storefront :is(.shop-auth,.shop-checkout-body) label:not(.check):not(.shop-choice){display:grid;gap:6px;font-size:14px;font-weight:600}.shop-storefront :is(.shop-auth,.shop-checkout-body) input:not([type=checkbox]):not([type=radio]),.shop-checkout-body textarea{width:100%;box-sizing:border-box}.shop-checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px;align-items:start}.shop-cart-body,.shop-checkout-body{min-width:0}.shop-cart-body h1,.shop-checkout-body h1{font-size:26px;margin:0 0 20px}.shop-cart-item{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:20px;border-top:1px solid #d5dee6;padding:20px 0}.shop-cart-image img{width:100%;height:145px;object-fit:contain}.shop-cart-item h2{font-size:19px;line-height:1.4;margin:0}.shop-cart-item h2 a{color:inherit;text-decoration:none}.shop-cart-item-actions{display:flex;gap:16px;align-items:end;margin-top:16px}.shop-cart-item-actions label{display:grid;gap:4px;font-size:13px}.shop-order-summary{position:sticky;top:105px;border:1px solid #d5dee6;border-radius:8px;padding:20px;display:grid;gap:16px}.shop-order-summary h2{font-size:20px;margin:0}.shop-order-summary p,.shop-order-summary small{font-size:13px;margin:0}.shop-order-summary>a{min-height:44px;display:flex;align-items:center}.shop-checkout-steps{display:flex;gap:16px;flex-wrap:wrap;border-bottom:1px solid #d5dee6;padding-bottom:16px;margin-bottom:24px}.shop-checkout-steps a{display:flex;align-items:center;min-height:44px;color:#526474;text-decoration:none}.shop-checkout-steps [aria-current]{font-weight:700;color:#b45b0c;border-bottom:3px solid #b45b0c}.shop-form-grid{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px}.shop-field-company,.shop-field-street{grid-column:1/-1}.shop-field-first_name{grid-column:auto}.shop-checkout-body .ui-field-group{margin-bottom:20px}.shop-checkout-body>.check,.shop-checkout-body form>.check{margin-block:16px}.shop-choice{display:flex;align-items:start;gap:12px;padding:18px;border:1px solid #d5dee6;border-radius:8px;margin-bottom:12px;cursor:pointer}.shop-choice:has(input:checked){border-color:#b45b0c;background:#fff8e9}.shop-choice input{margin-top:4px}.shop-choice>span{display:grid;gap:6px}.shop-choice small{font-size:13px}.shop-review-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) auto;gap:16px;padding:16px 0;border-bottom:1px solid #d5dee6}.shop-review-block h2,.shop-review-block p{margin:0;font-size:16px}.shop-review-block a{min-height:44px;display:flex;align-items:center}.shop-review-line{display:flex;justify-content:space-between;gap:16px;padding:8px 0;font-size:14px}.shop-order-total{border-top:1px solid #d5dee6;color:#a64110;font-size:18px}.shop-checkout-body .form-actions>.shop-buy{width:auto;min-width:240px}
@media(max-width:1000px){.shop-checkout-layout{grid-template-columns:minmax(0,1fr) 270px;gap:20px}.shop-cart-item{grid-template-columns:100px minmax(0,1fr);gap:12px}.shop-cart-item>strong{grid-column:2}.shop-review-block{grid-template-columns:minmax(0,1fr) auto}.shop-review-block p{grid-column:1;grid-row:2}.shop-review-block a{grid-column:2;grid-row:1/3}}
@media(max-width:700px){.shop-checkout-layout{grid-template-columns:minmax(0,1fr);gap:20px}.shop-order-summary{position:static}.shop-cart-item h2{font-size:16px}.shop-cart-image img{height:100px}.shop-form-grid{grid-template-columns:85px minmax(0,1fr)}.shop-field-first_name,.shop-field-last_name{grid-column:1/-1}.shop-checkout-body .form-actions>.shop-buy{width:100%;min-width:0}.shop-checkout-steps{gap:4px 14px;font-size:13px}}

.shop-storefront .shop-global-search select{min-width:84px;background:#edf1f4}.shop-storefront a:not(.button):not(.shop-buy){text-decoration-color:currentColor}.shop-storefront main a{color:#176579}.shop-auth{width:min(100%,440px);box-sizing:border-box;margin:24px auto}.shop-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-field-zip{max-width:150px}@media(max-width:600px){.shop-auth{padding:18px}.shop-form-grid{grid-template-columns:85px minmax(0,1fr)}}

.shop-order-card{border:1px solid #d5dee6;border-radius:8px;margin-block:16px;overflow:hidden}.shop-order-card-head{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;padding:16px;background:#f2f5f7;font-size:13px}.shop-order-card-head>a{margin-left:auto;min-height:44px;display:flex;align-items:center}.shop-order-card-lines{padding:4px 16px}.shop-order-card-lines p{margin-block:12px}

.ui-customer-dates,.ui-customer-founding{display:grid;gap:16px;align-content:start}.ui-customer-founding[hidden]{display:none}

/* Compact worklist filters stay together; narrow screens scroll this row only. */
body.app-v2 #main-content .case-work-filters{display:flex;flex-wrap:nowrap;gap:12px;align-items:flex-end;overflow-x:auto;max-width:100%}
body.app-v2 #main-content .case-work-filters>label:not(.check){flex:1 0 132px;min-width:132px;display:grid;gap:6px}
body.app-v2 #main-content .case-work-filters>.case-search{flex:2 0 240px;min-width:240px}
body.app-v2 #main-content .case-work-filters>label:has(select[name=status]){flex-basis:180px}
body.app-v2 #main-content .case-work-filters>.actions{flex:0 0 auto;margin:0;padding:0;min-height:44px;white-space:nowrap}

/* Selection actions belong on the right and retain one common menu anchor. */
body.app-v2 #main-content .ui-selection-toolbar>.form-actions{margin:0 0 0 auto;justify-content:flex-end;flex-wrap:nowrap;gap:8px;max-width:100%;position:relative}
@media(max-width:700px){.ui-selection-toolbar>.form-actions>.ui-selection-menu{flex:0 0 auto;position:static}.ui-selection-toolbar>.form-actions>.ui-selection-menu>.bulk-menu-content{position:absolute;right:0;top:100%;width:min(300px,calc(100vw - 64px));max-width:calc(100vw - 64px);margin-top:8px}}

/* Store checkout: quiet header, compact numbered steps and a persistent total. */
.shop-checkout-page{background:#fff;color:#0f1111}
.shop-checkout-page .shop-topbar{position:static;background:linear-gradient(#fff,#f4f4f4);color:#0f1111;box-shadow:none;border-bottom:1px solid #d5d9d9;padding:16px max(24px,calc((100vw - 1200px)/2));gap:32px}
.shop-checkout-page .shop-brand{flex:0 1 230px}
.shop-checkout-title{flex:1;text-align:center;font-size:28px;font-weight:500;white-space:nowrap}.shop-checkout-title span{color:#007185;font-size:23px}.shop-checkout-secure{font-size:13px;color:#565959;white-space:nowrap}
.shop-checkout-page :is(.shop-account-nav,.shop-subnav){display:none}
body.shop-checkout-page>main{max-width:1200px;margin:auto;padding:20px 24px}
.shop-checkout-page .shop-checkout-layout{grid-template-columns:minmax(0,1fr) 300px;gap:28px}
.shop-checkout-page .shop-checkout-body .form-actions{margin-top:16px}
.shop-checkout-page .shop-checkout-body h1{font-size:23px;color:#c45500;margin:0 0 20px;line-height:1.35}
.shop-checkout-page .shop-checkout-steps{gap:24px;font-size:13px;padding-bottom:8px;margin-bottom:24px;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}
.shop-checkout-page .shop-order-summary{top:20px;border-color:#d5d9d9;padding:18px;border-radius:8px;gap:12px;background:#fff}
.shop-checkout-page .shop-order-summary h2{font-size:18px;margin-bottom:4px}
.shop-checkout-page .shop-order-total{color:#b12704;font-size:18px}
.shop-checkout-page .shop-review-line{font-size:13px;padding:5px 0}
.shop-checkout-page .shop-review-line.shop-order-total{font-size:18px;padding:16px 0 6px;line-height:1.4;flex-wrap:wrap;gap:6px 12px}.shop-review-line>:last-child{white-space:nowrap;margin-left:auto}
body.shop-checkout-page button.shop-buy{background:#ffd814!important;border-color:#fcd200!important;color:#0f1111!important;border-radius:22px;font-size:13px}
body.shop-checkout-page button.shop-buy:hover{background:#f7ca00!important}
.shop-checkout-page .shop-checkout-body .ui-field-group{border:1px solid #d5d9d9;box-shadow:none;background:#fff;padding:18px 20px;margin:0 0 20px;border-radius:8px}
.shop-checkout-page .shop-checkout-body .ui-field-group>legend{background:white;border:0;padding:0 8px;font-size:18px;color:#0f1111;font-weight:700}
.shop-checkout-page .shop-form-grid{grid-template-columns:120px minmax(0,1fr);gap:14px 16px;max-width:600px}
.shop-checkout-page .shop-form-grid :is(.shop-field-first_name,.shop-field-last_name){grid-column:1/-1}
.shop-address-hint{font-size:13px;color:#565959;margin:0 0 16px;line-height:1.5}
.shop-checkout-page :is(input,select,textarea){border:1px solid #888c8c;border-radius:4px;box-shadow:0 1px 2px #0f111126 inset;background:#fff;color:#0f1111}
.shop-checkout-page :is(input,select,textarea):focus{outline:3px solid #c8f3fa;border-color:#007185}
.shop-checkout-page .shop-choice{gap:14px;padding:18px;border:1px solid #d5d9d9;border-radius:8px;background:#fff;line-height:1.45}
.shop-checkout-page .shop-choice:has(input:checked){border-color:#e77600;background:#fdf8f3;box-shadow:0 0 0 1px #e77600}
.shop-choice-price{margin-left:auto;white-space:nowrap;font-size:14px}.shop-choice>span{font-size:14px}.shop-choice small{font-weight:400}
.shop-checkout-address{display:flex;justify-content:space-between;gap:24px;align-items:start;padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid #d5d9d9;font-size:14px}.shop-checkout-address p{margin:6px 0 0}.shop-checkout-address a{min-height:44px;display:flex;align-items:center}
.shop-checkout-page .shop-review-block{grid-template-columns:160px minmax(0,1fr) auto;font-size:14px;gap:18px;border-color:#d5d9d9;padding:20px 0}
.shop-checkout-page .shop-review-block :is(h2,p){font-size:14px;line-height:1.5}
.shop-review-items{border:1px solid #d5d9d9;border-radius:8px;padding:18px;margin-top:22px}.shop-review-items>h2{font-size:18px;margin:0 0 12px}.shop-review-product{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:16px;padding:16px 0;border-top:1px solid #e7e9ec;line-height:1.4}.shop-review-product img{width:100%;height:95px;object-fit:contain}.shop-review-product h3{margin:0 0 8px;font-size:15px}.shop-review-product p{margin:6px 0;font-size:13px}.shop-review-product small{font-size:12px;color:#565959}.shop-review-product>strong{font-size:14px;white-space:nowrap}
[data-shop-delivery-settings] .ui-picker-results{display:grid;gap:4px;max-height:280px;overflow:auto;padding:8px;border:1px solid #cbd8e6;border-radius:6px;margin:8px 0;background:#fff}[data-shop-delivery-settings] .ui-picker-results[hidden]{display:none}[data-shop-delivery-settings] .ui-picker-results button{text-align:left;justify-content:flex-start}
@media(max-width:900px){.shop-checkout-page .shop-topbar{padding:16px 20px;gap:16px}.shop-checkout-secure{display:none}.shop-checkout-title{font-size:24px}.shop-checkout-title span{font-size:18px}.shop-checkout-page .shop-checkout-layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.shop-checkout-page .shop-review-block{grid-template-columns:minmax(0,1fr) auto}.shop-checkout-page .shop-review-block>h2{grid-column:1;grid-row:1}.shop-review-product{grid-template-columns:72px minmax(0,1fr)}.shop-review-product>strong{grid-column:2}}
@media(max-width:700px){body.shop-checkout-page>main{padding:20px 16px}.shop-checkout-page .shop-checkout-layout{grid-template-columns:minmax(0,1fr)}.shop-checkout-page .shop-topbar{padding:14px 16px;flex-wrap:nowrap}.shop-checkout-page .shop-brand{min-width:0;flex:1}.shop-checkout-page .shop-brand strong{font-size:12px}.shop-checkout-title{flex:none;font-size:20px}.shop-checkout-title span{display:block;font-size:13px}.shop-checkout-page .shop-form-grid{grid-template-columns:85px minmax(0,1fr)}.shop-checkout-page .shop-checkout-body .ui-field-group{padding:14px}.shop-checkout-page .shop-order-summary{position:static}.shop-choice-price{font-size:13px}.shop-checkout-page .shop-choice{gap:8px;padding:14px}.shop-checkout-page .shop-review-line.shop-order-total{font-size:17px}}

/* Search results expand their dashboard tile; a saved height is only a minimum. */
body.app-v2 #main-content [data-dashboard-widget="search"] .dashboard-widget-body{height:auto;min-height:var(--dashboard-height,145px);max-height:none;overflow:visible}

/* Department navigation: ancestor links, current category and direct children. */
body.shop-storefront .shop-category-nav ul{list-style:none;margin:0;padding:0}
body.shop-storefront .shop-category-nav a{display:flex;align-items:center;gap:5px;min-height:44px;padding:6px 0;border:0;background:none;color:#0f1111;font-weight:400;line-height:1.35;overflow-wrap:anywhere}
body.shop-storefront .shop-category-nav a:hover{color:#c45500;text-decoration:underline;background:none}
body.shop-storefront .shop-category-nav a[aria-current="page"]{background:none;color:#0f1111;font-weight:700}
body.shop-storefront .shop-category-nav .shop-category-current{padding-left:12px}
body.shop-storefront .shop-category-nav .shop-category-child{padding-left:24px}
body.shop-storefront .shop-category-nav .shop-category-back span{color:#565959;font-size:20px}

/* Shared list controls: saved visibility and order, including keyboard/touch controls. */
:is(body.app-v2,body.portal-shared) #main-content .list-column-toolbar{margin:16px 0;position:relative;overflow:visible}
:is(body.app-v2,body.portal-shared) #main-content .list-columns-menu>.list-column-options{width:430px;max-width:calc(100vw - 56px);max-height:70vh;overflow:auto;padding:12px}
.list-column-options>.form-actions{margin:0 0 12px}
.list-column-choice{display:grid;grid-template-columns:44px minmax(90px,1fr) 44px 44px;gap:4px;align-items:center;min-height:52px;border-bottom:1px solid var(--ui-border,#d5d9d9)}
.list-column-choice .check{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;font-size:13px;overflow-wrap:anywhere}
.list-column-choice button{padding:0;min-width:44px;min-height:44px}.list-column-choice input{flex:0 0 auto}
.list-column-handle{cursor:grab}.list-column-choice.is-dragging{opacity:.5}
.list-actions-content{display:grid;gap:8px;min-width:250px}
:is(body.app-v2,body.portal-shared) #main-content .list-columns-menu summary{white-space:nowrap}
@media(max-width:700px){:is(body.app-v2,body.portal-shared) #main-content .list-columns-menu .list-column-options{width:min(430px,calc(100vw - 56px));max-width:calc(100vw - 56px)}}

body.app-v2 #main-content [data-server-list="assortment"]>label:first-of-type{grid-column:1/-1}
/* List filters stay in one row; narrow screens scroll this row, not the page. */
body.app-v2 #main-content :is([data-server-list],[data-article-list-filters],.document-list-filters,.ui-filter-form,.ui-filter-fields,.stat-filters,.dashboard-filters){display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;overflow:visible;max-width:100%;min-width:0}
body.app-v2 #main-content :is([data-server-list],[data-article-list-filters],.document-list-filters,.ui-filter-form,.ui-filter-fields,.stat-filters,.dashboard-filters)>label{flex:1 1 145px;min-width:0;max-width:100%;display:grid;gap:6px;grid-column:auto;margin:0}
body.app-v2 #main-content :is([data-server-list],[data-article-list-filters],.document-list-filters,.ui-filter-form,.ui-filter-fields,.stat-filters,.dashboard-filters)>label:has(input[type=search]){flex:3 1 300px;min-width:0}
body.app-v2 #main-content :is([data-server-list],[data-article-list-filters],.document-list-filters,.ui-filter-form,.ui-filter-fields,.stat-filters,.dashboard-filters)>:is(.form-actions,.ui-top-actions,.actions){order:10;flex:0 1 auto;flex-wrap:wrap;max-width:100%;grid-column:auto;margin:0 0 0 4px;min-height:44px;padding:0;white-space:normal}
body.app-v2 #main-content :is([data-server-list],[data-article-list-filters],.document-list-filters,.ui-filter-form,.ui-filter-fields,.stat-filters,.dashboard-filters)>label:has(select[name$="_size"],select[name=size]){flex:0 0 130px;min-width:130px}

body.app-v2 #main-content .article-link-results{max-height:55vh;overflow:auto;display:block}body.app-v2 #main-content .article-link-results td:last-child{text-align:right;white-space:nowrap}

body.app-v2 #main-content .ui-field-compact{width:100%;max-width:400px;justify-self:start}body.app-v2 #main-content .ui-field-compact input{width:100%}

/* Shared pointer sorting: the item follows the pointer; surrounding items keep their place. */
.ui-dragging{user-select:none!important;cursor:grabbing!important}.ui-drag-ghost{position:fixed!important;left:0!important;top:0!important;margin:0!important;z-index:100000!important;pointer-events:none!important;opacity:.95!important;box-sizing:border-box;background:#fff;border:2px solid #477a9d!important;border-radius:8px;box-shadow:0 14px 40px #172b4d40;will-change:transform;overflow:hidden}.ui-drag-ghost *{pointer-events:none!important}.ui-drag-source{opacity:.25;outline:2px dashed #7094b0;outline-offset:-2px}.ui-drag-handle{cursor:grab;touch-action:none;flex:0 0 44px;padding:8px!important;min-height:44px}
.article-gallery{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--preview-size,230px)),var(--preview-size,230px)));align-items:start}.article-gallery[data-preview-size=small]{--preview-size:160px}.article-gallery[data-preview-size=large]{--preview-size:320px}.article-gallery:not([data-gallery-readonly]) .image-open{touch-action:none;cursor:grab}.article-gallery img{user-select:none;-webkit-user-drag:none}.article-gallery .form-actions{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start}.ui-document-row>a{flex:1}.ui-document-row{padding:8px;background:#ffffff8a;border-radius:7px}.ui-document-row .ui-drag-handle{align-self:center}
/* Expand the dialog with its choices, so the list is never clipped by the dialog shell. */
.ui-dialog .ui-group-options{position:relative;top:auto;left:auto;right:auto;margin-top:6px;max-height:min(280px,36dvh);box-sizing:border-box}
/* A visible branch for every nested level, plus a distinct top-level heading. */
.ui-group-tree>li{position:relative}.ui-group-tree .ui-group-tree{margin-left:21px;padding-left:25px;border-left:2px solid #799bb8}.ui-group-tree .ui-group-tree>li:before{content:'';position:absolute;left:-25px;top:27px;width:25px;border-top:2px solid #799bb8}.ui-group-tree .ui-group-tree>li:last-child:after{content:'';position:absolute;left:-27px;top:29px;bottom:0;width:2px;background:#f4f8fc;pointer-events:none}.ui-group-row{border:1px solid #d3e0eb;border-radius:7px;padding:3px 6px;margin:3px 0;background:#ffffffa8}.ui-group-row[data-depth="0"]{background:#e5eef6;border-color:#b4cadd}.ui-group-row[data-depth="0"] .ui-group-name{font-weight:700}.ui-group-spacer{position:relative}.ui-group-spacer:after{content:'';position:absolute;width:7px;height:7px;background:#799bb8;border-radius:50%;top:19px;left:18px}.ui-group-row[data-drop-placement=inside]{background:#dbeaf8;outline:2px solid #3d739c}.ui-group-row[data-drop-placement=before]{box-shadow:0 -4px #3d739c}.ui-group-row[data-drop-placement=after]{box-shadow:0 4px #3d739c}
.ui-stacked-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.ui-fields-row{display:flex;flex-wrap:nowrap;align-items:end;gap:16px;overflow-x:auto;padding-bottom:4px;max-width:100%}.ui-fields-row>label{flex:1 0 135px;min-width:0;margin:0}
@media(max-width:600px){.ui-group-tree .ui-group-tree{margin-left:10px;padding-left:14px}.ui-group-tree .ui-group-tree>li:before{left:-14px;width:14px}.ui-group-tree .ui-group-tree>li:last-child:after{left:-16px}.ui-group-row{gap:4px;padding-inline:3px}.ui-group-row .ui-group-spacer{flex-basis:14px;width:14px}.ui-group-spacer:after{left:3px}.ui-document-row{flex-direction:row;flex-wrap:wrap;gap:8px}.ui-document-row .check{margin-left:52px;flex-basis:calc(100% - 52px)}.article-gallery{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--preview-size,230px)),1fr))}}

.ui-dialog .ui-group-options[popover],.ui-group-options[popover]{position:fixed;inset:auto;margin:0;box-sizing:border-box}.ui-group-options[popover]::backdrop{background:transparent}

body.app-v2 #main-content .article-gallery .form-actions{display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-start;overflow-x:auto}body.app-v2 #main-content .article-gallery .form-actions button{flex:0 0 44px;min-width:44px;width:44px;padding-inline:4px}

/* Modal positioning must follow the viewport, including when opened on a scrolled page. */
body.app-v2 #main-content .ui-dialog:modal{position:fixed;inset:0;margin:auto}

/* Nested accounting filters retain their legend while fields scroll in one row. */
body.app-v2 #main-content .ui-filter-form>fieldset{min-width:0;flex:1 0 100%}
body.app-v2 #main-content .ui-fields-row>label:has([data-number-prefix]){flex:0 0 90px}
body.app-v2 #main-content .ui-fields-row>label:has([data-number-separator],[data-number-generation]){flex:1 0 210px}
body.app-v2 #main-content .ui-fields-row>label:has([data-number-alphabet]){flex:1 0 290px}

/* Every native app dialog shares the card shell, including header and script-created dialogs. */
:is(body.app-v2,body.portal-shared) dialog,body.app-v2 #main-content dialog{box-sizing:border-box;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:linear-gradient(125deg,#f7fbff,#edf4fa);color:var(--ui-ink);box-shadow:0 20px 70px #172b4d33;overflow:auto;font-size:14px;font-weight:400;line-height:1.5;text-align:left;white-space:normal;}
:is(body.app-v2,body.portal-shared) dialog.ui-dialog{width:min(760px,calc(100vw - 32px));padding:20px;}
:is(body.app-v2,body.portal-shared) dialog:modal{position:fixed;inset:0;margin:auto;}
:is(body.app-v2,body.portal-shared) dialog::backdrop{background:#17212e88;}
:is(body.app-v2,body.portal-shared) dialog h2{font-size:20px;line-height:1.35;color:inherit;}
:is(body.app-v2,body.portal-shared) dialog :is(.panel-head,.ui-form-header){display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 16px;padding:0 0 12px;border-bottom:1px solid var(--ui-line);}
:is(body.app-v2,body.portal-shared) dialog :is(.panel-head,.ui-form-header) h2{margin:0;}
:is(body.app-v2,body.portal-shared) dialog :is(.form-actions,.ui-action-bar){display:flex;justify-content:flex-end;gap:8px;margin:16px 0;max-width:100%;}
:is(body.app-v2,body.portal-shared) dialog .ui-form-header>.form-actions{margin:0;}
:is(body.app-v2,body.portal-shared) dialog :is(button,.button){min-height:44px;box-sizing:border-box;}
:is(body.app-v2,body.portal-shared) dialog .muted{color:var(--ui-muted);}
@media(max-width:680px){:is(body.app-v2,body.portal-shared) dialog.ui-dialog,body.app-v2 #main-content dialog.ui-dialog{padding:16px;}:is(body.app-v2,body.portal-shared) dialog :is(input,select,textarea){font-size:16px!important;}}
/* Header shortcuts may collapse on phones; actions inside their dialogs must remain visible. */
:is(body.app-v2,body.portal-shared) dialog a.button{display:inline-flex;align-items:center;justify-content:center;}
@media(max-width:680px){:is(body.app-v2,body.portal-shared) dialog .form-actions{flex-wrap:nowrap;}:is(body.app-v2,body.portal-shared) dialog .form-actions>:is(button,.button){flex:1 1 0;width:auto;min-width:0;white-space:normal;text-align:center;}}

/* Continuous scanner input remains separate from the changing position rows. */
body.app-v2 #main-content .position-scanner{margin-top:16px}
body.app-v2 #main-content .position-scan-bar{display:flex;align-items:end;gap:12px;max-width:760px}
body.app-v2 #main-content .position-scan-bar label{flex:1;min-width:0}
body.app-v2 #main-content .position-scan-log{max-height:150px;overflow:auto;padding-left:24px;font-size:.875rem}
body.app-v2 #main-content .position-scan-log li{padding:4px 0;overflow-wrap:anywhere}
@media(max-width:680px){body.app-v2 #main-content .position-scan-bar{flex-wrap:wrap}}

/* One continuous filter row; table and filters scroll inside their card on narrow screens. */
body.app-v2 #main-content .table-wrap.ui-enhanced-list{overflow:visible;padding:0;min-width:0}
.ui-list-header{display:flex;align-items:center;gap:16px;padding:16px;min-width:0;position:relative}
.ui-list-filter-scroll{flex:1 1 auto;min-width:0;overflow-x:auto;padding:4px}
body.app-v2 #main-content .ui-list-header .table-tools.ui-list-tools{display:flex;flex-flow:row nowrap;align-items:center;width:max-content;min-width:100%;padding:0;margin:0;gap:12px}
body.app-v2 #main-content .ui-list-header .table-tools>input{width:260px;flex:0 0 260px;min-width:180px}
body.app-v2 #main-content .ui-list-header .column-filters{display:flex;flex-flow:row nowrap;width:auto;gap:8px}
body.app-v2 #main-content .ui-list-header .column-filters select{width:auto;min-width:130px;max-width:240px;margin:0}
body.app-v2 #main-content .ui-list-header .table-tools>label{flex:0 0 auto;white-space:nowrap}
body.app-v2 #main-content .ui-list-header .table-tools>span{white-space:nowrap}
body.app-v2 #main-content .ui-list-header .ui-list-actions{flex:0 0 auto;display:flex;flex-wrap:nowrap;gap:8px;margin:0;position:static}
.ui-list-header .ui-list-actions .ui-selection-menu{position:static}
.ui-list-header .ui-list-actions .bulk-menu-content{top:100%;right:16px;width:min(340px,calc(100vw - 64px));max-width:calc(100vw - 64px)}
.ui-list-table-scroll{overflow:auto;max-width:100%;border-radius:0 0 var(--ui-radius,10px) var(--ui-radius,10px)}
body.app-v2 #main-content .ui-filter-row{display:flex;flex-flow:row wrap;align-items:flex-end;gap:12px;max-width:100%;padding:4px 0 16px;margin:16px 0}
body.app-v2 #main-content .ui-filter-row>label{flex:0 1 auto;min-width:min(140px,100%);max-width:100%;margin:0}
body.app-v2 #main-content .ui-filter-row>label:first-of-type{flex:1 1 260px}
body.app-v2 #main-content .ui-filter-row>button{flex:0 0 auto;min-height:44px}
body.app-v2 aside .tenant-logo b{font-size:15px;line-height:1.35;letter-spacing:0;text-transform:none;color:inherit;font-weight:700}
@media(max-width:680px){.ui-list-header{gap:8px;padding:12px}.ui-list-header .ui-list-actions summary{padding:10px;font-size:12px}}

/* Pointer-based column ordering: keep the dragged row under finger or mouse. */
.list-column-handle{touch-action:none;cursor:grab;user-select:none}
.list-column-choice.is-dragging{opacity:.22}
.list-column-drag-preview{position:fixed!important;z-index:20000!important;pointer-events:none!important;margin:0!important;box-sizing:border-box;box-shadow:0 12px 30px #172b4d44;opacity:.96;cursor:grabbing}
.cash-opening-grid{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,2fr);gap:20px;align-items:start}
.cash-opening-total input{max-width:240px}
.cash-count-inline{min-width:0}
.cash-count-inline .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cash-count-inline table{width:100%;border-collapse:collapse;table-layout:fixed}
.cash-count-inline th,.cash-count-inline td{padding:4px;text-align:right;white-space:nowrap}
.cash-count-inline th:first-child,.cash-count-inline td:first-child{text-align:left}
.cash-count-inline input{width:100%;min-width:64px;text-align:right}
@media(max-width:1000px){.cash-opening-grid{grid-template-columns:1fr}.cash-opening-total input{max-width:280px}}
@media(max-width:600px){.cash-count-inline .form-grid{grid-template-columns:1fr}}

body.app-v2 .feedback-admin-layout{grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr)}
body.app-v2 .feedback-admin-layout>*{min-width:0}
@media(max-width:1000px){body.app-v2 .feedback-admin-layout{grid-template-columns:1fr}}
.portal-credentials-prompt{margin:16px 24px}.portal-credentials-prompt p{margin-bottom:0}

/* Advance figures sit beside document totals and wrap within the available page width. */
.position-bottom{flex-wrap:wrap}.position-prepayment dt,.position-prepayment dd{overflow-wrap:anywhere}.position-bottom-main{flex-basis:240px}

@media(min-width:801px){.position-table td:has(>[data-row-sum]){padding-top:12px}.position-table [data-row-sum]{display:flex;align-items:center;justify-content:flex-end;min-height:44px;line-height:20px}}

.position-payment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-inline-start:auto}.position-add .position-payment-actions [data-sv-redeem-open]{margin-inline-start:0}

/* Keep field legends clear of preceding controls, including compact panels. */
body.app-v2 #main-content :is(.position-add,.ui-action-bar,.form-actions)+fieldset.ui-field-group:has(>legend){margin-top:16px}
.ui-field-stack{display:grid;gap:16px;min-width:0}
body.app-v2 #main-content .sv-template-picker{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
body.app-v2 #main-content .sv-template-picker>label{flex:1 1 260px;margin:0;min-width:0}
body.app-v2 #main-content .sv-template-picker>button{flex:0 0 auto}
body.app-v2 #main-content .sv-editor-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;margin:0 0 16px}
body.app-v2 #main-content .sv-editor-toolbar label{margin:0;min-width:110px;flex:1 1 120px}
body.app-v2 #main-content .sv-editor-toolbar button{flex:0 0 auto}
body.app-v2 #main-content .sv-design-sections>details{margin:0;padding:12px 16px;border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-card)}
.sv-design-sections>details>summary{min-height:44px;display:list-item;align-content:center;font-weight:700;cursor:pointer}
.sv-design-sections>details[open]>summary{margin-bottom:16px}
.sv-design-sections .form-grid{margin:0}
.sv-design-workspace{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:20px;align-items:start}
.sv-design-workspace>*{min-width:0}
.sv-design-sections,.sv-design-preview{display:grid;gap:16px;min-width:0}
.sv-element-inspector .sv-position-fields{margin:16px 0}
@media(max-width:1000px){.sv-design-workspace{grid-template-columns:1fr}.sv-design-preview{order:-1}.sv-design-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
@media(max-width:600px){.sv-design-sections{grid-template-columns:1fr}.sv-design-preview .sv-editor-toolbar{gap:8px}.sv-design-preview .sv-editor-toolbar button{flex:1 1 auto}}

/* Additional voucher restrictions remain visually separate from the kind selector. */
body.app-v2 :is(#main-content,dialog) [data-vr-fields]>details{margin-top:16px}

.sv-pool-tile{display:flex;flex-direction:column;gap:8px;min-width:0}.sv-pool-tile .sv-pool-item{flex:1;width:100%}.sv-pool-tile>button{white-space:normal;overflow-wrap:anywhere;min-height:44px}

/* Compact settings rows keep each article type and its preview together. */
.table-wrap .article-number-table{table-layout:fixed;width:100%;min-width:1080px}.article-number-table :is(th,td){padding:10px 8px;vertical-align:middle}.article-number-table th:nth-child(1){width:136px}.article-number-table th:nth-child(2){width:82px}.article-number-table th:nth-child(3){width:160px}.article-number-table th:nth-child(4){width:76px}.article-number-table th:nth-child(5){width:188px}.article-number-table th:nth-child(6){width:166px}.article-number-table th:nth-child(7){width:112px}.article-number-table td:last-child{overflow-wrap:anywhere}.article-number-table small{display:block}.article-number-table td:before{display:none}.article-number-table input,.article-number-table select{width:100%;min-width:0}
@media(max-width:700px){.table-wrap .article-number-table{display:block;min-width:0}.article-number-table thead{display:none}.article-number-table tbody{display:grid;gap:16px}.article-number-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border-bottom:1px solid var(--ui-border);padding:12px}.article-number-table :is(th,td){display:block;width:auto!important;padding:0;border:0}.article-number-table th{grid-column:1/-1}.article-number-table td:before{display:block;content:attr(data-label);font-size:13px;font-weight:600;margin-bottom:6px}.article-number-table td:last-child{grid-column:1/-1}.article-number-table [data-number-preview-label],.article-number-table td:last-child br{display:none}}

/* Keep wide position and designer toolbars in one reachable row. */
body.app-v2 #main-content .position-add,body.app-v2 #main-content .sv-editor-toolbar{flex-wrap:wrap;overflow:visible;max-width:100%;padding-bottom:6px}
body.app-v2 #main-content .position-add>*,body.app-v2 #main-content .sv-editor-toolbar>*{flex-shrink:0}
body.app-v2 #main-content .position-payment-actions{flex-wrap:nowrap;flex-shrink:0}
body.app-v2 #main-content .sv-element-inspector .ui-action-bar{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:6px}
body.app-v2 #main-content .sv-element-inspector .ui-action-bar>*{flex-shrink:0}

body.app-v2 #main-content .sv-editor-toolbar>select{width:180px;min-width:180px;max-width:180px;margin:0}
body.app-v2 #main-content .sv-editor-toolbar>label{flex:0 0 110px;width:110px;min-width:110px}
body.app-v2 #main-content .sv-editor-toolbar>button{width:auto;white-space:nowrap}

/* Keep focus rings within horizontally scrollable filters, including their end edges. */
body.app-v2 #main-content :is([data-server-list],[data-article-list-filters],.document-list-filters,.ui-filter-form,.ui-filter-fields,.stat-filters,.dashboard-filters,.case-work-filters):not(.panel){padding:4px}
body.app-v2 #main-content .ui-filter-row{padding-inline:4px}
/* One header/action row; all three cash-count groups share the same top edge. */
.cash-opening-head{margin-bottom:16px}
.cash-opening-head .form-actions{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:4px;min-width:0}
.cash-opening-grid{grid-template-columns:minmax(240px,.7fr) repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.cash-opening-grid>.cash-count-inline,.cash-opening-grid>.cash-count-inline>.form-grid{display:contents}
.cash-opening-grid>.cash-count-inline>.support-hint{grid-column:2/-1;margin:0}
@media(max-width:1000px){.cash-opening-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-opening-total,.cash-opening-grid>.cash-count-inline>.support-hint{grid-column:1/-1}}
@media(max-width:600px){.cash-opening-grid{grid-template-columns:minmax(0,1fr)}.cash-opening-head{display:block}.cash-opening-head .form-actions{justify-content:flex-start;margin-top:16px}.cash-opening-grid>.cash-count-inline>.support-hint{grid-column:1}}

body.app-v2 aside .tenant-logo-light-surface img{box-sizing:border-box;background:#f8fafc;border:1px solid #dbe3ec;border-radius:6px;padding:8px}

body.app-v2 aside .tenant-logo{justify-items:center;text-align:center}body.app-v2 aside .tenant-logo :is(img,b,strong){margin-inline:auto;text-align:center}
body.app-v2 aside .tenant-logo img{object-position:center}

/* Shared list controls: one row, with scrolling confined to the controls. */
body.app-v2 #main-content .ui-list-toolbar.ui-list-header{flex-wrap:nowrap;align-items:end;padding:0;margin:16px 0;gap:16px}
.ui-list-inline-controls{display:flex;flex-wrap:nowrap;align-items:end;gap:16px;min-width:100%;width:max-content}
.ui-list-inline-controls>label{flex:0 0 auto;white-space:nowrap}
.ui-list-inline-controls>span{font-size:12px;color:var(--ui-muted);white-space:nowrap;padding-bottom:12px}
.ui-list-inline-controls>.ui-table-paging{margin:0 0 0 auto;flex-wrap:nowrap;white-space:nowrap}
body.app-v2 #main-content .ui-list-toolbar.ui-list-header>.ui-list-actions{padding:4px;padding-bottom:calc(4px + var(--list-scrollbar-height,0px));margin:0}
body.app-v2 #main-content .ui-step-navigation:has(.article-status-actions){flex-wrap:nowrap;overflow-x:auto;padding:4px;gap:16px}
body.app-v2 #main-content .article-status-actions{display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;gap:16px;margin:0 auto 0 0;flex:0 0 auto}
body.app-v2 #main-content .article-status-actions label.check{flex:0 0 auto;margin:0;white-space:nowrap}
body.app-v2 #main-content .article-status-actions button,body.app-v2 #main-content .ui-step-navigation:has(.article-status-actions)>button{flex:0 0 auto;width:auto;max-width:none;white-space:nowrap}
body.app-v2 #main-content .article-action-items button.bulk-danger{color:#a32631!important;background:#fff1f2!important;opacity:1}
body.app-v2 #main-content .article-action-items button:disabled{color:#52606f!important;background:#edf0f3!important;opacity:1;cursor:not-allowed}
body.app-v2 #main-content .article-action-items button.bulk-danger:not(:disabled):hover{background:#ffe0e3!important}

.ui-list-inline-controls .bulk-selection{display:flex;align-items:center;flex-wrap:nowrap;gap:12px;padding-bottom:4px;white-space:nowrap;min-height:44px}
.ui-list-inline-controls [data-article-result-meta]{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:12px;padding-bottom:12px}
.ui-list-inline-controls [data-article-result-meta] .ui-table-paging{margin:0;flex-wrap:nowrap}

body.app-v2 #main-content .ui-selection-toolbar.ui-list-header{flex-wrap:nowrap;align-items:end}
body.app-v2 #main-content .ui-list-header>.ui-list-actions{padding:4px;padding-bottom:calc(4px + var(--list-scrollbar-height,0px));margin:0;align-self:end}
.customer-document-link{display:block;min-height:44px;align-content:center;text-decoration:none}

body.app-v2 #main-content .ui-tabs>[hidden]{display:none!important}

body.app-v2 #main-content th button.table-sort-control{display:inline-flex;align-items:center;gap:4px;min-height:44px;max-width:none;width:auto;padding:0 4px;background:transparent!important;color:inherit!important;border:0;box-shadow:none;text-align:inherit;font:inherit;white-space:nowrap}

/* Voucher properties stay beside the selected object and never hide typography in disclosures. */
.sv-design-workspace{grid-template-columns:minmax(300px,360px) minmax(0,1fr)}
body.app-v2 #main-content .sv-element-inspector{margin:0;min-width:0}
body.app-v2 #main-content .sv-element-inspector .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:16px}
.sv-element-inspector .sv-position-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.sv-element-inspector [hidden]{display:none!important}
.sv-element-inspector .sv-font-options{display:flex;gap:16px;align-items:center;overflow-x:auto}
.sv-element-inspector .sv-font-options label{flex-shrink:0}
.sv-element-inspector details{margin-top:16px}
.sv-element-inspector>label{margin-top:16px}
@media(max-width:1000px){.sv-design-workspace{grid-template-columns:1fr}.sv-design-sections>.sv-element-inspector{grid-column:1/-1}}
/* Customer mail actions and shared text-template editing. */
body.app-v2 #main-content [data-pos-convert-slot]{flex-wrap:nowrap;align-items:flex-start;max-width:100%;overflow-x:auto;gap:8px}
body.app-v2 #main-content [data-pos-convert-slot]>button{flex-shrink:0;white-space:nowrap}
body.app-v2 #main-content .case-notification{display:flex;flex-direction:column;gap:6px;flex:0 0 230px;min-width:0}
body.app-v2 #main-content .case-notification[hidden]{display:none}
body.app-v2 #main-content .case-notification button{min-height:44px;white-space:nowrap;margin:0}
body.app-v2 #main-content .case-notification small{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
body.app-v2 #main-content .case-notification .case-notified-accepted:disabled{background:#e2f4ea!important;color:#185c3b!important;border:1px solid #8ac3a5!important;opacity:1}
body.app-v2 #main-content .case-notification :is(.case-notified-sending,.case-notified-uncertain):disabled{background:#fff6df!important;color:#725100!important;border:1px solid #d4b45f!important;opacity:1}
body.app-v2 #main-content .mail-template-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
body.app-v2 #main-content .mail-template-layout>div{min-width:0}
body.app-v2 #main-content .mail-template-layout label{display:flex;flex-direction:column;margin:0 0 16px;gap:6px}
body.app-v2 #main-content .mail-template-layout code{overflow-wrap:anywhere}
body.app-v2 #main-content .mail-template-preview{width:100%;height:660px;display:block;border:1px solid var(--ui-border,#c5d3e1);border-radius:8px;background:white}
body.app-v2 #main-content .mail-template-picker{display:flex;align-items:end;gap:8px;max-width:100%}
body.app-v2 #main-content .mail-template-picker label{flex:1;min-width:0;margin:0}
body.app-v2 #main-content .mail-template-picker button{flex-shrink:0;margin:0}
body.app-v2 #main-content [data-mail-template-form] .ui-action-bar{flex-wrap:nowrap;overflow-x:auto;max-width:100%;justify-content:flex-start}
body.app-v2 #main-content [data-mail-template-form] .ui-action-bar>button{flex-shrink:0;white-space:nowrap}
@media(max-width:1100px){body.app-v2 #main-content .mail-template-layout{grid-template-columns:minmax(0,1fr)}}

/* Account security uses the same compact controls in the app and customer portal. */
.login-log-pager{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto;margin:16px 0}
.login-log-pager>*{flex-shrink:0;white-space:nowrap}
.portal-security-bell{display:inline-flex;align-items:center;gap:8px;min-height:44px;white-space:nowrap;flex-shrink:0}
.login-security-notice{padding:12px 0;border-top:1px solid var(--ui-border,#cbd5e1)}
.login-security-notice h3{margin:0 0 6px}.login-security-notice p{margin-bottom:0}

/* Related fields are a single responsive group and never split internally. */
:is(body.app-v2 #main-content,body.app-v2 dialog,body.portal-shared dialog) .ui-related-fields:where(:not([hidden])){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;min-width:0}
:is(body.app-v2 #main-content,body.app-v2 dialog,body.portal-shared dialog) .ui-related-fields>label{min-width:0;margin:0}
:is(body.app-v2 #main-content,body.app-v2 dialog,body.portal-shared dialog) .ui-related-fields :is(input,select){width:100%;min-width:0;box-sizing:border-box;height:48px;min-height:48px}
body.app-v2 #main-content .position-payment-actions:not(:empty){border-inline-start:1px solid var(--border,#b6c8db);padding-inline-start:16px;margin-inline-start:auto}

body.app-v2 #main-content .ui-editor-toolbar{display:flex;justify-content:flex-start;align-items:end;flex-wrap:wrap;gap:6px;max-width:100%;padding-block:4px 8px}
body.app-v2 #main-content .ui-editor-toolbar>*{flex-shrink:0}
body.app-v2 #main-content .ui-editor-toolbar select{width:auto;min-width:0}

/* Compact, named quick actions; labels also appear on keyboard focus. */
body.app-v2>header .header-icon-action{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:10px!important;margin:0;box-sizing:border-box;transform:none;left:auto;right:auto;top:auto;white-space:nowrap;border-radius:7px}
body.app-v2>header .header-icon-action svg{display:block;width:22px;height:22px;flex-shrink:0}
body.app-v2>header .header-action-count{position:absolute;right:2px;top:1px;min-width:15px;padding:0 2px;height:15px;line-height:15px;box-sizing:border-box;border-radius:8px;font-size:10px;font-weight:700;text-align:center;background:var(--ui-accent,#283747);color:#fff}
body.app-v2>header .header-icon-action[hidden],body.app-v2>header .header-action-count[hidden]{display:none!important}
body.app-v2>header .global-timer{order:4;background:#e4f2e9;color:#195933;border:1px solid #7faa8c}
body.app-v2>header [data-pdc-open]{order:4}
body.app-v2>header .simulation-indicator{order:4}
.header-action-tooltip{position:fixed;z-index:1500;max-width:min(320px,calc(100vw - 16px));padding:8px 12px;box-sizing:border-box;border-radius:6px;background:#263545;color:white;font:13px/1.4 Arial,sans-serif;box-shadow:0 3px 12px #14233333;overflow-wrap:anywhere}
.header-action-tooltip[hidden]{display:none}
@media(min-width:701px) and (max-width:1450px){body.app-v2>header .header-identity{gap:6px}body.app-v2>header .header-identity>a{max-width:150px;min-width:0;padding-inline:8px}body.app-v2>header .header-context small{font-size:11px}body.app-v2>header{gap:8px}}

/* Keep the viewport stable when switching between short and long editor steps. */
html{scrollbar-gutter:stable}
/* Page information sits above the navigation; every action shares one baseline. */
.ui-table-paging.ui-list-page-group{display:flex;flex-flow:column nowrap;align-items:flex-end;gap:6px;white-space:nowrap;flex:0 0 auto}
.ui-list-page-info{display:flex;flex-flow:row nowrap;justify-content:flex-end;gap:10px;font-size:12px;color:var(--ui-muted);min-height:18px;line-height:18px}
.ui-list-page-buttons{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end;gap:8px;min-height:44px}
.ui-list-page-buttons:empty{display:none}
.ui-list-page-buttons :is(a,button){margin:0;min-height:44px;white-space:nowrap}
body.app-v2 #main-content .ui-list-header.ui-list-unified, .ui-list-toolbar.ui-list-unified{align-items:flex-end;flex-wrap:nowrap;overflow-x:auto;padding:4px;gap:16px}
body.app-v2 #main-content .ui-list-unified>.ui-list-filter-scroll{padding:0;overflow:visible;flex:1 0 auto}
body.app-v2 #main-content .ui-list-unified>.ui-list-actions{display:flex;align-items:flex-end;padding:0;margin:0;gap:8px}
.ui-list-unified .ui-list-inline-controls{align-items:flex-end;gap:16px}
.ui-list-unified .ui-list-actions>.ui-table-paging,.ui-list-unified .ui-list-actions>[data-article-result-meta]{margin:0 0 0 8px;padding:0;flex:0 0 auto}
body.app-v2 #main-content .ui-list-unified [data-article-result-meta]{padding:0;display:block;min-height:0}
.ui-list-unified>.ui-table-paging{margin:0 0 0 auto}
[data-booking-contacts] .ui-field-pair{align-items:end;grid-template-columns:minmax(0,1fr) auto}
[data-booking-contacts] .ui-field-pair .form-actions{margin:0;padding:0}
[data-booking-contact-editor]{margin-top:16px}
[data-invite-preview] .mail-preview-meta dd input{width:100%;background:var(--ui-field,#fff)}
body.app-v2 #main-content .ui-list-unified .ui-table-paging{padding:0;margin-block:0}

[data-booking-contacts] .form-actions{display:flex!important;flex-flow:row nowrap!important;justify-content:flex-end;gap:8px;overflow-x:auto}
[data-booking-contacts] .form-actions>button{width:auto!important;flex:0 0 auto;white-space:nowrap}

.ui-table-select-all{display:flex!important;align-items:center;justify-content:center;width:44px;min-height:44px;margin:0!important;padding:0!important;cursor:pointer}.ui-table-select-all input{margin:0!important}.ui-selection-column{width:44px;min-width:44px}
.table-tools.ui-list-tools.ui-list-unified{flex-wrap:nowrap;align-items:flex-end;overflow-x:auto;gap:16px}.table-tools.ui-list-unified>.ui-table-paging{padding:0;margin:0 0 0 auto}

/* Multiple choices align in a field grid, independently of action bars. */
body.app-v2 .ui-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin-top:16px}
body.app-v2 .ui-choice-grid>label.check{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:44px;min-width:0;margin:0;padding:0;white-space:normal}
body.app-v2 .ui-choice-grid>label.check>input{flex:0 0 auto;margin:0}
@media(max-width:600px){body.app-v2 .ui-choice-grid{grid-template-columns:minmax(0,1fr)}}
/* Card-style mobile lists still expose the first header cell for page selection. */
@media(max-width:767px){
 .responsive-data-table:has(.ui-table-select-all) thead{position:static;width:auto;height:auto;overflow:visible;clip-path:none;display:block}
 .responsive-data-table:has(.ui-table-select-all) thead tr{margin:0;padding:8px;border:0}
 .responsive-data-table:has(.ui-table-select-all) thead th:not(.ui-selection-column){display:none}
 .responsive-data-table:has(.ui-table-select-all) thead th.ui-selection-column{display:block;width:auto;min-width:0;padding:0}
 .responsive-data-table .ui-table-select-all{width:auto;justify-content:flex-start;gap:10px}
 .responsive-data-table thead .ui-table-select-all:after{content:'Diese Seite auswählen';font-size:13px;font-weight:600;text-transform:none;letter-spacing:normal}
}

/* Optional catalogue images keep row height stable; the preview escapes table clipping. */
.ui-image-thumbnail{width:44px;height:44px;padding:3px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}
.ui-image-thumbnail img{width:36px;height:36px;object-fit:contain}
.ui-image-placeholder{display:inline-flex;width:44px;min-height:44px;align-items:center;justify-content:center;color:var(--muted,#60748c)}
.ui-image-preview{position:fixed;z-index:1200;width:min(320px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;padding:12px;box-sizing:border-box;background:var(--surface,#f4f8fc);border:1px solid var(--border,#c6d6e7);border-radius:8px;box-shadow:0 8px 30px #172c4930}
.ui-image-preview[hidden]{display:none}
.ui-image-preview>button{display:block;margin:0 0 8px auto}
.ui-image-preview>img{display:block;width:100%;height:min(260px,calc(100dvh - 160px));object-fit:contain;background:#fff}
.ui-image-preview>p{margin:8px 0 0;font-size:13px;overflow-wrap:anywhere}
.ui-group-filter-options{display:grid;gap:8px;max-height:240px;overflow:auto;margin-top:16px}.ui-group-filter-options>.check{min-height:44px;overflow-wrap:anywhere}
body.app-v2 #main-content [data-article-table] [data-article-column=image]{width:96px;min-width:96px;max-width:96px}

body.app-v2 .ui-group-row .ui-group-toggle{font-size:0!important;line-height:1;display:inline-flex;align-items:center;justify-content:center}
body.app-v2 .ui-group-row .ui-group-toggle::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateX(-1.5px) rotate(-45deg);transition:transform .15s}
body.app-v2 .ui-group-row .ui-group-toggle[aria-expanded="true"]::before{transform:translateY(-1.5px) rotate(45deg)}
/* A normalized catalog icon replaces the fallback chevron; never draw both. */
body.app-v2 .ui-group-row .ui-group-toggle:has(>.ui-icon)::before{content:none}

/* Portal navigation and greeting share the content's outer edges. */
body.portal-shared>.portal-welcome{margin:20px 24px 12px;min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){body.portal-shared>.portal-welcome{margin:16px 16px 12px}}
body.portal-shared .portal-tools label{min-width:0;flex-basis:150px}
body.portal-shared .portal-tools :is(input,select){min-width:0;width:100%}
body.portal-shared .portal-tools label.ui-list-page-size{flex:0 0 112px;margin-left:auto}

/* Editable catalogues retain their manual row order and compact table geometry. */
.ui-reorder-table{max-height:480px;overflow:auto}.ui-reorder-table td{padding:6px 8px}.ui-reorder-table td:first-child{white-space:nowrap;width:156px}.ui-reorder-table td:first-child button{min-width:44px;margin:0 4px 0 0;padding:8px}.ui-reorder-table td input:not([type=checkbox],[type=hidden]){min-width:180px}.ui-reorder-handle{touch-action:none;cursor:grab}.ui-reorder-table label{margin:0;white-space:nowrap}
body.app-v2 #main-content .dashboard-case-head button{background:transparent!important;color:var(--ui-accent,var(--accent))!important;border:0;box-shadow:none;font:inherit;text-align:left;justify-content:flex-start;padding:0;min-height:44px;border-radius:0;text-transform:inherit}

:is(body.app-v2,body.portal-shared) #main-content table :is(th.ui-selection-column,td.ui-selection-cell){width:68px;min-width:68px;padding:8px 12px;box-sizing:border-box;text-align:center;vertical-align:middle}
:is(body.app-v2,body.portal-shared) #main-content td.ui-selection-cell label{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;padding:0;margin:0}
:is(body.app-v2,body.portal-shared) #main-content td.ui-selection-cell input[type=checkbox]{margin:0}

.ui-catalogue-sections{grid-template-columns:minmax(0,1fr)!important}.ui-reorder-table table{table-layout:fixed;width:100%;min-width:0}.ui-reorder-table th:first-child{width:168px}.ui-reorder-table th:last-child{width:100px}.ui-reorder-table td input:not([type=checkbox],[type=hidden]){min-width:0;width:100%}
@media(max-width:600px){.ui-reorder-table th:first-child,.ui-reorder-table td:first-child{width:56px;min-width:56px;padding:6px}.ui-reorder-table th:last-child{width:70px}.ui-reorder-table [data-segment-up],.ui-reorder-table [data-segment-down],.ui-reorder-active-text{display:none}.ui-reorder-table th:first-child{font-size:0}.ui-reorder-table th:first-child:after{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/arrow-up-down.svg') center/contain no-repeat;font-size:14px}.ui-reorder-table td{padding:6px}.ui-reorder-table th{padding:8px 6px}.ui-reorder-table td:first-child button{margin:0}}

/* Column labels open filters; the adjacent arrow is the independent sort target. */
body.app-v2 #main-content th.ui-filter-heading{white-space:normal;padding-inline:8px}
.ui-column-heading-content{display:flex;align-items:center;justify-content:flex-start;gap:8px}
body.app-v2 #main-content th .ui-column-filter{display:block;flex:0 1 auto;min-height:44px;min-width:4em;width:auto;max-width:none;padding:0;border:0!important;background:transparent!important;color:inherit!important;box-shadow:none!important;font:inherit;text-align:inherit;text-transform:inherit;white-space:nowrap;overflow-wrap:normal;vertical-align:middle}
body.app-v2 #main-content th .ui-column-filter.is-filtered{color:var(--ui-filter-active-ink,var(--accent))!important;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
body.app-v2 #main-content th .ui-column-sort{display:inline-flex;flex:0 0 44px;width:44px;min-width:44px;min-height:44px;padding:0;justify-content:center;vertical-align:middle}
:is(body.app-v2,body.portal-shared) .ui-column-filter-dialog{width:min(660px,calc(100vw - 32px));max-width:calc(100vw - 32px)}
.ui-column-filter-dialog .panel-head{flex-wrap:wrap}
.ui-column-filter-dialog .panel-head .form-actions{margin-left:auto}
.ui-column-filter-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px}
.ui-column-filter-list button{text-align:left;white-space:normal}
@media(max-width:600px){.ui-column-filter-dialog .form-grid{grid-template-columns:minmax(0,1fr)}.ui-column-filter-dialog .panel-head .form-actions{order:2;width:100%;justify-content:flex-end}}

.ui-reorder-table th:last-child{width:110px}
@media(max-width:600px){.ui-reorder-table th:last-child{width:100px}}

.ui-reorder-table th{padding:8px 6px}
/* Long names must not force the whole list beyond its container. */
body.app-v2 #main-content .responsive-data-table td{overflow-wrap:anywhere}
body.app-v2 #main-content .responsive-data-table td{padding-inline:8px;hyphens:auto}
body.app-v2 #main-content .ui-column-filter{hyphens:auto;overflow-wrap:normal}

:is(body.app-v2,body.portal-shared) .ui-column-filter-dialog .form-actions button[title]{flex:0 0 44px;width:44px;min-width:44px}

/* The global search supplements the dashboard widget and shares its existing search endpoint. */
body.app-v2>header .header-universal-search{position:relative;order:5;flex:1 1 230px;min-width:180px;max-width:480px}
body.app-v2>header .header-universal-search form{display:block;margin:0;padding:0}
body.app-v2>header .header-universal-search input{margin:0;min-width:0;width:100%;min-height:44px;font-size:16px}
@media(max-width:1100px){body.app-v2>header .header-universal-search{order:21;flex-basis:100%;max-width:none;min-width:0}}

/* The current case state must remain visible beside its number. */
.pos-case-reference .ui-case-status{display:inline-flex;align-items:center;padding:7px 12px;min-height:34px;border:1px solid #aac4dd;border-left:4px solid #35648a;border-radius:7px;background:#e6f0fa;color:#214d73;font-size:14px;font-weight:750;line-height:1.35;white-space:normal}
.pos-case-reference .ui-case-status[data-status^="waiting"]{background:#fff0c2;border-color:#d4a22b;border-left-color:#a66b00;color:#684400}
.pos-case-reference .ui-case-status:is([data-status="done"],[data-status="invoiced"],[data-status="paid"]){background:#e1f4e9;border-color:#8bbca1;border-left-color:#267349;color:#215d3c}
.pos-case-reference .ui-case-status[data-status="cancelled"]{background:#fce7e9;border-color:#dba0a9;border-left-color:#b32d43;color:#852438}
.pos-case-reference .ui-case-status[data-status="trash"]{background:#edf0f3;border-color:#b8c1ca;border-left-color:#65717c;color:#454f59}
.ui-reorder-table td:last-child{white-space:nowrap}.ui-reorder-table td:last-child label{display:inline-flex;vertical-align:middle}.ui-reorder-table .ui-reorder-active-text{display:none}.ui-reorder-table [data-segment-remove]{min-width:44px;width:44px;padding:8px;margin-left:6px;vertical-align:middle}.ui-reorder-table th:last-child{width:116px}

/* Dashboard filters share the heading row and wrap without horizontal scrolling. */
body.app-v2 #main-content .dashboard-head{align-items:flex-end;gap:16px}
body.app-v2 #main-content .dashboard-head>div:first-child{flex:1 1 240px;min-width:0}
body.app-v2 #main-content .dashboard-head .dashboard-filters{flex:0 1 auto;width:auto;flex-wrap:wrap;overflow:visible;gap:12px;padding:0;margin:0}
body.app-v2 #main-content .dashboard-head .dashboard-filters>label{flex:1 1 125px;min-width:120px;max-width:180px}
body.app-v2 #main-content .dashboard-head>.form-actions{flex:0 0 auto;margin:0;min-height:44px;max-width:100%}
@media(max-width:650px){body.app-v2 #main-content .dashboard-head .dashboard-filters{flex:1 1 100%;width:100%}body.app-v2 #main-content .dashboard-head .dashboard-filters>label{min-width:0;max-width:none;flex-basis:125px}body.app-v2 #main-content .dashboard-head>.form-actions{flex:1 1 100%;flex-wrap:wrap}}

/* Dashboard search overlays the other widgets without changing their size. */
.universal-search-popover{position:fixed;inset:auto;margin:0;z-index:70;box-sizing:border-box;padding:12px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-panel,#f4f8fc);color:var(--ui-ink);box-shadow:0 12px 32px #0003;overflow:auto;overscroll-behavior:contain}
.universal-search-popover[hidden]{display:none}
.universal-search-popover>.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}
.universal-search-popover [data-search-close]{min-width:44px;min-height:44px;padding:0;font-size:22px}
.universal-search-popover [data-search-status]{margin:8px 0}
.universal-search-popover .quick-search-hit{display:block;overflow-wrap:anywhere;min-height:44px}
.universal-search-popover .quick-search-hit small{display:block}
.universal-search-popover .quick-customer-card{padding:12px;margin-top:12px;border:1px solid var(--ui-border);border-radius:8px}
.universal-search-popover .quick-customer-card .panel-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between}

body.app-v2 #main-content .pos-header-fields>.pos-internal-reference-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,5fr) minmax(120px,1fr);gap:16px;align-items:start;min-width:0}
.pos-internal-reference-row label{min-width:0}
.pos-internal-link{display:flex;align-items:center;gap:8px;min-width:0}
.pos-internal-link input{min-width:0;flex:1}
.pos-internal-link a{flex:none;white-space:nowrap}
@media(max-width:900px){body.app-v2 #main-content .pos-header-fields>.pos-internal-reference-row{grid-template-columns:minmax(0,1fr) 130px}.pos-internal-reference-row>label:nth-child(2){grid-column:1/-1;grid-row:2}}

.pos-case-reference .ui-case-status:is([data-status="ready_billing"],[data-status="collected"]){background:#e9e4fb;border-color:#b7a4dc;border-left-color:#7454a6;color:#513877}

/* Both search inputs use the same result cards, groups and touch targets. */
body.app-v2 .universal-search-popover .quick-search-group>h3{font-size:14px;margin:12px 0 8px;color:var(--ui-muted)}
body.app-v2 .universal-search-popover .quick-search-hit{padding:10px 8px;border-bottom:1px solid var(--ui-border);font-size:14px;color:var(--ui-ink)}
body.app-v2 .universal-search-popover .quick-customer-card{background:linear-gradient(125deg,#e4effb,#f8fbff);box-shadow:var(--ui-shadow);overflow-wrap:anywhere}
body.app-v2 .universal-search-popover .quick-customer-card .panel-head{margin:0 0 8px;padding:0;border:0}
body.app-v2 .universal-search-popover .quick-customer-card a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;box-sizing:border-box}
body.app-v2 .universal-search-popover .quick-customer-card .button{flex:none;margin-left:auto}
body.app-v2 .universal-search-popover .quick-customer-card ul{margin:4px 0;padding-left:20px}
body.app-v2 .universal-search-popover .quick-customer-card li{margin:0}
body.app-v2 .universal-search-popover .quick-customer-card p{margin:4px 0 8px}

body.app-v2>header .header-global-actions>.customer-alarm-trigger.has-customer-alarm{background:#b42318;color:#fff;border-color:#912018;font-weight:700;gap:8px}
body.app-v2>header .header-global-actions>.customer-alarm-trigger.has-customer-alarm:hover{background:#912018;color:#fff}
body.app-v2>header .header-global-actions>.customer-alarm-trigger[hidden]{display:none!important}
body.app-v2 .customer-table th[data-list-column="number"],body.app-v2 .customer-table .customer-number-cell{width:1%;min-width:0;white-space:nowrap}
.ui-column-filter-list .is-filtered{background:#293847!important;color:#fff!important;border-color:#293847!important;text-align:left}.ui-filter-active-summary{white-space:normal;overflow-wrap:anywhere}

/* Compact reorder lists share the regular list controls; the handle opens move commands. */
.ui-reorder-table th:first-child{width:56px}.ui-reorder-table td:first-child{white-space:nowrap}.ui-reorder-table td:last-child{white-space:nowrap}.ui-reorder-table td:last-child label.check{display:inline-flex;vertical-align:middle;margin:0}.ui-reorder-table [data-segment-remove]{display:inline-flex;vertical-align:middle;margin:0 0 0 8px}.ui-reorder-table th:last-child{width:116px}

/* Tabs and step navigation share a common horizontal baseline. */
.ui-tab-navigation{display:flex;align-items:center;gap:16px;min-width:0}.ui-tab-navigation>nav{flex:1;min-width:0;margin-bottom:0}.ui-tab-navigation>.ui-step-navigation{flex:none;margin:0}.ui-tab-navigation{margin-bottom:16px}@media(max-width:850px){.ui-tab-navigation{flex-wrap:wrap}.ui-tab-navigation>nav{flex-basis:100%}.ui-tab-navigation>.ui-step-navigation{margin-left:auto;max-width:100%}}

body.app-v2 #main-content .ui-tab-navigation>nav{flex:1 1 0;width:auto;min-width:0;margin:0;padding-bottom:0;border-bottom:0}body.app-v2 #main-content .ui-tab-navigation{border-bottom:1px solid var(--ui-line);padding-bottom:8px}@media(max-width:850px){body.app-v2 #main-content .ui-tab-navigation>nav{flex-basis:100%}}

body.app-v2 #main-content .ui-reorder-table td:last-child label.check{display:inline-flex;width:auto;min-width:44px;vertical-align:middle;margin:0}.ui-reorder-table th:first-child{font-size:0}.ui-reorder-table th:first-child:after{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/arrow-up-down.svg') center/contain no-repeat;font-size:14px}.ui-reorder-table .ui-reorder-active-text{display:none}

body.portal-shared #main-content .ui-form-columns>label{display:grid;gap:6px;min-width:0}

body.portal-shared #main-content .page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}

body.app-v2 #main-content :is(.priority-low,[data-case-inline][data-current=low] select[name=priority]){background:#e9f0f5;border-color:#8194a5;color:#40566a}
body.app-v2 #main-content :is(.priority-critical,[data-case-inline][data-current=critical] select[name=priority]){background:#a71930;border-color:#831226;color:#fff;font-weight:700}
body.app-v2 #main-content [data-case-row]:has([data-case-inline][data-current=low] select[name=priority])>td{background:#f2f6f9}
body.app-v2 #main-content [data-case-row]:has([data-case-inline][data-current=critical] select[name=priority])>td{background:#ffe2e7}
body.app-v2 #main-content .bulk-group-row:has([data-case-inline][data-current=critical] select[name=priority]){border-left:4px solid #a71930}
body.app-v2 #main-content .bulk-group-row:has([data-case-inline][data-current=low] select[name=priority]){border-left:4px solid #8194a5}

/* Compact timeline retains chronological points while using shared table spacing. */
.portal-history-table{width:100%;border-collapse:collapse}
.portal-history-table :is(th,td){padding:6px 12px;text-align:left;vertical-align:middle}
.portal-history-table tbody td:first-child{position:relative;padding-left:24px;white-space:nowrap}
.portal-history-table tbody td:first-child::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:#c7d7e5}
.portal-history-table tbody td:first-child::after{content:"";position:absolute;left:5px;top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#537798;box-shadow:0 0 0 2px #f4f8fc}
.portal-history-table summary{min-height:44px;align-content:center;cursor:pointer}
.portal-history-table p{margin:8px 0;overflow-wrap:anywhere}


/* Compact account setup in the shared portal heading. */
.portal-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:12px 24px;align-items:center;margin:28px 24px 16px}.portal-heading>.public-brand{display:contents}.portal-heading .public-brand-identity{grid-column:1;grid-row:1}.portal-heading .public-header-contact{grid-column:3;grid-row:1 / span 2}.portal-heading .portal-welcome{grid-column:1;grid-row:2;margin:0}.portal-heading .portal-credentials-prompt{grid-column:2;grid-row:1 / span 2;margin:0;padding:12px 16px;border-left:1px solid #d1dce9}.portal-heading .portal-credentials-prompt h2{font-size:16px;margin:0 0 6px}.portal-heading .portal-credentials-prompt p{font-size:13px;margin:0}.portal-heading .portal-credentials-prompt .form-actions{margin-top:16px;justify-content:flex-end}body.portal-shared .portal-heading .portal-staff-notice{grid-column:1/-1;margin:0}@media(max-width:1050px){.portal-heading{grid-template-columns:minmax(0,1fr) auto}.portal-heading .public-header-contact{grid-column:2;grid-row:1}.portal-heading .public-brand-identity{min-width:0}.portal-heading .portal-welcome{grid-column:1/-1;grid-row:2;min-width:0}.portal-heading .portal-credentials-prompt{grid-column:1/-1;grid-row:3;min-width:0;border-left:0;border-top:1px solid #d1dce9;padding:12px 0}}@media(max-width:650px){.portal-heading{display:flex;flex-direction:column;align-items:stretch}.portal-heading>.public-brand{display:flex}.portal-heading .portal-credentials-prompt{border-left:0;border-top:1px solid #d1dce9;padding:12px 0}.portal-heading .portal-welcome{order:1}.portal-heading .portal-credentials-prompt{order:2}}

@media(max-width:700px){body.portal-shared .portal-heading{margin:20px 16px 16px}}

body.portal-shared .ui-form-columns>.form-actions{margin-top:16px;align-self:end}

body.portal-shared .content-grid>div{min-width:0}

/* Result feedback keeps the shared spacing after a submitted form. */
form + .ui-payment-status{margin-top:16px}

/* Shared, themed groups inside action menus, including nested confirmation controls. */
.ui-action-group{display:grid;gap:8px;margin:0;padding:0;min-width:0}
.ui-action-group+.ui-action-group{border-top:1px solid var(--ui-line);padding-top:12px;margin-top:4px}
.ui-action-group-title{margin:0;font-size:12px;font-weight:700;color:var(--ui-muted,#52677d)}
.ui-action-group:has(>[data-case-notification][hidden]){display:none}
.ui-action-menu>div :is(form,details,.case-notification){margin:0;min-width:0}
.ui-action-menu>div :is(a.button,button,summary.button){display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:44px;margin:0;padding:10px 16px;white-space:normal}
.ui-action-menu .ui-action-menu>div{position:static;min-width:0;width:100%;box-sizing:border-box;margin-top:8px;max-height:none}

/* One compact action-menu appearance for page and selection actions. */
.ui-action-items,.ui-action-menu>div{max-height:min(70vh,620px);overflow-y:auto;box-sizing:border-box}
.ui-action-items .ui-action-group,.ui-action-menu .ui-action-group{gap:0}
.ui-action-items :is(button,a.button),.ui-action-menu .ui-action-group :is(button,a.button,summary.button){width:100%;min-height:44px;box-sizing:border-box;text-align:left;justify-content:flex-start;border:0!important;box-shadow:none!important;background:transparent!important;border-radius:4px;margin:0;padding:8px 12px!important;white-space:normal}
.ui-action-items :is(button,a.button):hover,.ui-action-menu .ui-action-group :is(button,a.button,summary.button):hover{background:#e9f0f7!important}
.ui-action-items .ui-action-group-title,.ui-action-menu .ui-action-group-title{padding:4px 12px;font-size:12px}
.ui-action-items .bulk-danger,.ui-action-menu .ui-action-group .danger{color:#b42318!important;background:#fff1f2!important}
.ui-action-items :is(button,a.button):disabled{background:transparent!important}

.ui-action-menu .ui-action-group form{margin:0!important;padding:0!important}

/* Angebotsfrist gemeinsam mit Belegart und Datum; gemeinsame Feldabstände bleiben erhalten. */
@media(min-width:601px){body.app-v2 #main-content .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Kurze Zahlungsfelder teilen eine Zeile; Freitexte beginnen gemeinsam darunter. */
@media(min-width:1051px){body.app-v2 #main-content .pos-payment-fields{grid-template-columns:minmax(100px,.7fr) minmax(160px,1.5fr) minmax(100px,.7fr) minmax(140px,1fr) minmax(150px,1.2fr)}}

/* Mitarbeiterhinweis bleibt im Kopf auffällig, ohne eigene volle Inhaltszeile. */
body.portal-shared .portal-heading .portal-staff-notice{grid-column:3;grid-row:1;justify-self:end;display:flex;align-items:center;gap:12px;max-width:440px;margin:0;padding:10px 12px;border:1px solid #d8ad49;border-left:4px solid #b67d12;border-radius:8px;background:linear-gradient(110deg,#fff1c8,#fff9e9);color:#624510;box-sizing:border-box}
.portal-staff-notice>span{min-width:0}.portal-staff-notice strong,.portal-staff-notice small{display:block}.portal-staff-notice a{display:inline-flex;align-items:center;min-height:44px;flex-shrink:0}
.portal-heading:has(.portal-staff-notice) .public-header-contact{grid-row:2}
@media(min-width:651px) and (max-width:1050px){body.portal-shared .portal-heading .portal-staff-notice{grid-column:2;grid-row:1}.portal-heading:has(.portal-staff-notice) .portal-welcome{grid-column:1}}
@media(max-width:650px){body.portal-shared .portal-heading .portal-staff-notice{max-width:none;width:100%;flex-wrap:wrap;order:0}.portal-heading:has(.portal-staff-notice) .public-header-contact{order:1}}

/* Gemeinsame deckende Menuflächen für Verwaltung und Kundenportal. */
:is(body.app-v2,body.portal-shared) .bulk-menu-content{position:absolute;right:0;top:calc(100% + 8px);z-index:30;box-sizing:border-box;width:300px;max-width:calc(100vw - 32px);padding:12px;background:var(--ui-panel,#f4f8fc);border:1px solid #ccd6e2;border-radius:10px;box-shadow:0 8px 28px #182b4620;display:grid;gap:8px}

/* Seitenstand über der Navigation; alle Aktionsschaltflächen bündig darunter. */
:is(body.app-v2,body.portal-shared) #main-content .ui-list-header .ui-list-actions{align-items:flex-end;flex-wrap:nowrap;flex:0 0 auto;margin:0;padding:0 0 4px}

/* Kundenwarnung bleibt unabhängig von der Position innerhalb der Kopfaktionen rot. */
body.app-v2 button.customer-alarm-trigger.has-customer-alarm{background:#b42318!important;color:#fff!important;border-color:#912018!important;font-weight:700;gap:8px}
body.app-v2 button.customer-alarm-trigger.has-customer-alarm:hover{background:#912018!important}
body.app-v2 .customer-alarm-trigger .customer-alarm-icon{display:inline-flex;align-items:center;justify-content:center;font-size:24px;line-height:1;width:26px;min-width:26px}

/* Long action menus use grouped columns without reducing touch targets. */
@media(min-width:700px){
 :is(body.app-v2,body.portal-shared) :is(.bulk-menu-content.ui-action-items,.ui-action-menu>div):has(>.ui-action-group:nth-of-type(3)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;width:min(640px,calc(100vw - 48px));max-width:calc(100vw - 48px);gap:8px 12px;padding:12px!important;max-height:calc(100dvh - 120px)}
 :is(.ui-action-items,.ui-action-menu>div):has(>.ui-action-group:nth-of-type(3))>.ui-action-group{margin:0;padding:0;border:0;min-width:0}
}
@media(min-width:1100px){
 :is(body.app-v2,body.portal-shared) :is(.bulk-menu-content.ui-action-items,.ui-action-menu>div):has(>.ui-action-group:nth-of-type(3)){grid-template-columns:repeat(3,minmax(0,1fr));width:min(840px,calc(100vw - 48px))}
}

/* Embedded submit forms are menu rows, not standalone action bars. */
body.app-v2 #main-content .ui-action-menu .ui-action-group .ui-action-bar{display:block;margin:0!important;padding:0;min-height:0}
body.app-v2 #main-content .ui-action-menu .ui-action-group :is(button,a.button,summary.button){justify-content:flex-start;text-align:left}

/* Shared font choice with actual typeface previews. */
.ui-font-picker{min-width:0;width:100%}.ui-font-picker-trigger{width:100%;min-height:44px;text-align:left;justify-content:space-between!important;font-size:16px!important;font-weight:400!important}
.ui-font-picker-list{position:fixed;inset:auto;margin:0;padding:6px;box-sizing:border-box;z-index:1000;overflow:auto;background:var(--ui-panel,#f4f8fc);border:1px solid var(--ui-line,#bacde3);border-radius:8px;box-shadow:0 12px 32px #0003}
.ui-font-picker-list[hidden],select[data-font-picker][hidden]{display:none!important}.app-v2 .ui-font-picker-list>[role=option]{display:block;width:100%;min-height:44px;text-align:left;font-size:18px!important;font-weight:400!important;color:var(--ui-ink,#203040)!important;background:transparent!important;border:1px solid transparent;border-radius:5px;padding:8px 12px;margin:0}
.app-v2 .ui-font-picker-list>[aria-selected=true]{background:#dce9f6!important;border-color:#557695}.ui-font-picker-list>[role=option]:focus-visible{outline:2px solid #365f87;outline-offset:-2px;background:#e7eff8}.ui-font-picker-list::backdrop{background:transparent}

/* Voucher references must not expand the shared position table. */
body.app-v2 .position-table .position-voucher-row td{min-width:0;white-space:normal;overflow-wrap:anywhere}
body.app-v2 .position-table .position-voucher-row td:nth-child(3)>strong{display:block;max-width:100%;overflow-wrap:anywhere;white-space:normal}
body.app-v2 .sv-applied{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
body.app-v2 .sv-applied>span{min-width:0;overflow-wrap:anywhere}


/* Compact identifier beside customer identity fields, using the shared field grid. */
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-number{grid-column:1;grid-row:1;width:100%;max-width:16rem;justify-self:end}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-name-prefix{grid-template-columns:minmax(0,220px) minmax(0,160px);max-width:400px;width:100%}
@media(min-width:1101px){body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid{grid-template-columns:minmax(0,840px) 16rem minmax(180px,1fr)}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-number{grid-column:2;grid-row:1}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-dates{grid-column:3}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>:is(.ui-name-prefix,.ui-person-name){grid-column:1}}

/* Narrow customer forms keep the full salutation readable and postal code beside city. */
@media(max-width:650px){body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-name-prefix{grid-template-columns:minmax(0,1fr);max-width:100%}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-address-fields{grid-template-columns:minmax(76px,90px) minmax(0,1fr)}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-address-fields>label:has([name=zip]){grid-column:1}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-address-fields>label:has([name=city]){grid-column:2}}


/* Mobile selection belongs above cards; row selectors never inherit page captions. */
@media(max-width:767px){
 body.app-v2 #main-content .responsive-data-table thead th.ui-selection-column{width:100%;min-width:0;text-align:left}

 body.app-v2 #main-content .responsive-data-table thead .ui-table-select-all{width:100%;max-width:none;justify-content:flex-start;gap:10px;white-space:normal;overflow-wrap:normal}
 body.app-v2 #main-content .responsive-data-table .ui-selection-cell::before{content:none}
 body.app-v2 #main-content .responsive-data-table .ui-selection-cell label{display:flex;align-items:center;justify-content:flex-start;width:44px;min-height:44px;margin:0;padding:0}
 body.app-v2 #main-content .responsive-data-table .ui-selection-cell label::after{content:none}
 body.app-v2 #main-content .responsive-data-table .ui-selection-cell input{margin:0}
}

/* Camera search keeps the same shared header control heights. */
body.app-v2>header .header-universal-search form{display:flex;gap:8px;align-items:center}
body.app-v2>header .header-universal-search input{flex:1;min-width:0}
.header-camera-trigger{flex:0 0 44px;width:44px;min-height:44px}
.header-camera-video{width:100%;max-height:min(50dvh,420px);object-fit:contain;background:#111}
.header-camera-dialog .ui-action-bar{flex-wrap:wrap;margin-left:auto;justify-content:flex-end}

/* Customer navigation retains named controls without sideways scrolling on phones. */
.customer-navigation-icon,.customer-mobile-location{display:none}
@media(max-width:650px){
 body.app-v2 #main-content :is(.customer-main-navigation,.customer-sub-navigation,[data-customer-actions]){display:flex;flex-wrap:wrap;overflow:visible;gap:8px}
 body.app-v2 #main-content :is(.customer-main-navigation,.customer-sub-navigation,[data-customer-actions])[hidden]{display:none!important}
 body.app-v2 #main-content :is(.customer-main-navigation,.customer-sub-navigation,[data-customer-actions]) [data-customer-label]{display:flex;align-items:center;flex:0 0 44px;min-width:44px;width:44px;min-height:44px;padding:10px;justify-content:center}
 .customer-navigation-label{display:none}
 .customer-navigation-icon{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
 .customer-mobile-location{display:block;margin:8px 0;font-weight:600;overflow-wrap:anywhere}
}

@media(max-width:650px){.customer-contact-links a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}}

/* Shared compact rows for labelled activity dates. */
.ui-field-row{display:grid;gap:16px;align-items:start;min-width:0}.ui-field-row>label{min-width:0}.ui-field-row-adaptive{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}

/* Status controls remain reachable without widening the mobile page. */
@media(max-width:1000px){body.app-v2 #main-content .article-status-actions{flex:1 1 auto;flex-wrap:wrap;max-width:100%;min-width:0;gap:8px 16px}body.app-v2 #main-content .article-status-actions label.check{min-height:44px}body.app-v2 #main-content .article-status-actions button{max-width:100%;white-space:normal}}

/* Shared budget state colours in internal views and customer portal. */
.ui-budget[data-budget-level="warning"] [data-budget-rest-output],.ui-budget[data-budget-level="warning"] [data-budget-warning]{color:#865900;background:#fff4d6;border-color:#ddb75f}
.ui-budget[data-budget-level="exhausted"] [data-budget-rest-output],.ui-budget[data-budget-level="exhausted"] [data-budget-warning]{color:#a22632;background:#fff0ef;border-color:#e3a6a3}
.ui-budget [data-budget-warning]{padding:8px 12px;border-radius:6px;border:1px solid transparent}

/* Compact budget access; details and editing stay in shared dialogs. */
.ui-budget-compact{display:inline-block;min-width:0}
.ui-budget-compact[data-budget-level="warning"]>[data-budget-summary]{color:#865900;background:#fff4d6;border-color:#ddb75f}
.ui-budget-compact[data-budget-level="exhausted"]>[data-budget-summary]{color:#a22632;background:#fff0ef;border-color:#e3a6a3}

/* Marketing previews use the shared dialog and retain room for its actions. */
[data-mk-draft-preview] .mail-preview-frame{display:block;margin-inline:auto;height:min(60dvh,620px)}

/* Budget values are a compact description list, also in the customer portal. */
.ui-budget-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px;max-width:42rem;margin:12px 0}
.ui-budget-values>div{min-width:0;padding:10px 12px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-field-bg,#f2f7fc)}
.ui-budget-values dt{font-size:13px;font-weight:600;margin-bottom:6px}
.ui-budget-values dd{margin:0;font-size:18px;font-weight:700;overflow-wrap:anywhere}

/* Shared section headings also align actions consistently in the customer portal. */
body.portal-shared .panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
body.portal-shared .panel-head>h2{margin:0}
body.portal-shared .panel-head>.form-actions{margin:0;gap:8px}

/* Compact list cards retain every selected column; semantic fields survive column reordering. */
@media(max-width:767px){
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table tbody>tr{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px 12px;padding:12px;margin:10px 0;
 }
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table tbody>tr>td{
  grid-column:span 6;min-width:0;width:auto!important;padding:4px 0!important;align-self:start;
 }
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table tbody>tr>td[hidden]{display:none!important}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table tbody>tr>td[colspan]{grid-column:1/-1}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="selection"]{grid-column:span 2;order:-30;align-self:start}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="title"]{grid-column:span 10;order:-29;font-size:16px;font-weight:700;line-height:1.35}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table tr:not(:has(td[data-card-field="selection"]:not([hidden])))>td[data-card-field="title"]{grid-column:1/-1}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="title"]::before,
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="selection"]::before,
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="image"]::before{content:none}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td a,
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td button,
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="selection"] label{
  display:inline-flex;align-items:center;min-height:44px;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;
 }
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="selection"] label{min-width:44px;margin:0;justify-content:center}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="selection"] input{margin:0}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td small{display:block;margin:0;font-size:12px;font-weight:400}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-column-label]::before{line-height:1.2;margin-bottom:3px}
 body.app-v2 #main-content .ui-compact-cards.responsive-data-table td[data-card-field="number"]{order:-20}
 body.app-v2 #main-content .ui-customer-cards.responsive-data-table td[data-card-field="contact"]{grid-column:1/-1;order:-10;display:flex;flex-wrap:wrap;gap:0 16px;align-items:center}
 body.app-v2 #main-content .ui-customer-cards.responsive-data-table td[data-card-field="contact"]::before{width:100%}
 body.app-v2 #main-content .ui-customer-cards.responsive-data-table td[data-card-field="location"]{order:-19}
 body.app-v2 #main-content .ui-customer-cards.responsive-data-table .customer-document-link{flex-wrap:wrap;gap:8px}
 body.app-v2 #main-content .ui-article-cards.responsive-data-table td[data-card-field="image"]{order:-24;grid-column:span 2}
 body.app-v2 #main-content .ui-article-cards.responsive-data-table tr:has(td[data-card-field="image"]:not([hidden]))>td[data-card-field="number"]{grid-column:span 4}
 body.app-v2 #main-content .ui-article-cards.responsive-data-table td[data-card-field="stock"]{order:-19}
 body.app-v2 #main-content .ui-article-cards.responsive-data-table td[data-card-field="location"]{order:-18}
 body.app-v2 #main-content .ui-article-cards.responsive-data-table td[data-card-field="gross"]{order:-17}
 body.app-v2 #main-content .ui-article-cards.responsive-data-table .ui-image-thumbnail{width:44px;height:44px;min-width:44px;padding:2px}
 body.app-v2 #main-content .ui-article-cards.responsive-data-table .ui-image-thumbnail img{width:100%;height:100%;object-fit:contain}
}

/* Shared dialog action bars keep complete labels when wrapping on mobile. */
body.app-v2 #main-content dialog :is(.ui-action-bar,.form-actions)>:is(button,.button,details){flex:0 0 auto;max-width:100%}

/* Dialog headings and actions wrap as complete blocks on narrow screens. */
body.app-v2 #main-content dialog .ui-form-header>.ui-top-actions{flex-shrink:0;max-width:100%}

/* Dialog actions remain one horizontal group, including cancellation. */
body.app-v2 dialog :is(.form-actions,.ui-action-bar,.ui-top-actions),
body.app-v2 #main-content dialog :is(.form-actions,.ui-action-bar,.ui-top-actions){flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;max-width:100%;overflow-x:auto;justify-content:safe flex-end}
body.app-v2 dialog :is(.form-actions,.ui-action-bar)>.ui-close-x,
body.app-v2 #main-content dialog :is(.form-actions,.ui-action-bar)>.ui-close-x{flex:0 0 44px;width:44px;min-width:44px;margin:0}

body.app-v2 .nav-subentries{display:grid;gap:2px;min-width:0;margin-left:12px;padding-left:8px;border-left:1px solid #58677b}
.ui-group-counts{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.ui-group-counts a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}

/* List paging is visually separated from the right-hand filter and actions. */
body.app-v2 .ui-list-actions>:is(.ui-list-page-group,[data-article-result-meta]){border-left:1px solid var(--ui-line);padding-left:12px;margin-left:4px}

/* Shared compact field with its adjacent action group. */
:is(body.app-v2,body.portal-shared) .ui-field-actions{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px}
:is(body.app-v2,body.portal-shared) .ui-field-actions>label{flex:1 1 180px;min-width:0;margin:0}
:is(body.app-v2,body.portal-shared) .ui-field-actions>.form-actions{flex:0 1 auto;margin:0;gap:8px;max-width:100%}
@media(max-width:600px){:is(body.app-v2,body.portal-shared) .ui-field-actions>label{flex-basis:100%}:is(body.app-v2,body.portal-shared) .ui-field-actions>.form-actions{margin-left:auto}}

/* Shared emphasis for actions with a stored informational notice. */
body.app-v2 :is(#main-content,dialog) :is(button,a.button).ui-button-notice{background:#fff4d6!important;color:#704b00!important;border-color:#c99319!important;font-weight:700}
body.app-v2 :is(#main-content,dialog) :is(button,a.button).ui-button-notice:hover{background:#ffebad!important;border-color:#a77508!important}

/* Article navigation keeps its direct link and an independent disclosure target. */
body.app-v2 .nav-article-menu{border:0;background:none;margin:0;padding:0;min-width:0}
body.app-v2 .nav-article-menu>summary{display:flex;align-items:center;list-style:none;padding:0;min-height:44px;cursor:pointer;color:#bbc3ce;gap:0}
body.app-v2 .nav-article-menu>summary::-webkit-details-marker{display:none}
body.app-v2 .nav-article-menu>summary>a{flex:1;min-width:0}
body.app-v2 .nav-article-menu>summary::after{content:'';display:block;flex:0 0 44px;width:44px;min-width:44px;height:44px;background:currentColor;mask:url('vendor/lucide/chevron-right.svg') center/18px 18px no-repeat}
body.app-v2 .nav-article-menu[open]>summary::after{transform:rotate(90deg)}
body.app-v2 .nav-article-menu>summary:focus-visible{outline:2px solid #9ecaff;outline-offset:2px;border-radius:5px}

/* Shared list navigation: balanced separator and readable card inset. */
body.app-v2 #main-content .ui-list-unified .ui-list-actions>:is(.ui-list-page-group,[data-article-result-meta]){padding-left:12px;margin-left:4px}
:is(body.app-v2,body.portal-shared) #main-content .ui-list-header.ui-list-unified,.ui-list-toolbar.ui-list-unified{padding-right:16px}
body.app-v2[data-ui-theme] #main-content .ui-list-unified button.ui-list-filter-access.is-filtered{background:var(--ui-active-bg,#dbeafe);border-color:var(--ui-accent,#356b9e);color:var(--ui-active-text,#183d63);font-weight:700}

.label-output-dialog{width:calc(100vw - 40px);max-width:1200px;height:85vh;max-height:calc(100dvh - 32px)}
.label-output-dialog[open]{display:flex;flex-direction:column;gap:16px}
.label-output-dialog>.panel-head{flex:0 0 auto;margin:0}
.label-output-dialog iframe{width:100%;flex:1;min-height:0;border:1px solid var(--ui-line);border-radius:8px;background:white}

/* Article upload previews preserve the source aspect ratio. */
[data-change-image-preview]{object-fit:contain;background:#fff;max-width:100%;}

/* Shared upload crop control; geometry preserves the source aspect ratio. */
.image-crop-dialog canvas{display:block;max-width:100%;height:auto;margin:12px auto;touch-action:none;cursor:crosshair;background:#fff}.image-crop-dialog .form-actions{flex-wrap:nowrap;overflow-x:auto}.image-crop-dialog [data-edges]{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:600px){.image-crop-dialog [data-edges]{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Shared case status colours follow the displayed (including automatic) state. */
body.app-v2 #main-content .ui-case-status{background:#eaf0f6!important;color:#344b62!important;border-color:#b5c4d3!important}
body.app-v2 #main-content .ui-case-status[data-status="in_progress"]{background:#dcecff!important;color:#184d85!important;border-color:#7da6d1!important}
body.app-v2 #main-content .ui-case-status:is([data-status^="waiting"],[data-status="ready_pickup"]){background:#fff0c2!important;color:#684400!important;border-color:#d4a22b!important}
body.app-v2 #main-content .ui-case-status:is([data-status="ready_billing"],[data-status="collected"]){background:#e9e4fb!important;color:#513877!important;border-color:#b7a4dc!important}
body.app-v2 #main-content .ui-case-status:is([data-status="done"],[data-status="invoiced"],[data-status="paid"]){background:#e1f4e9!important;color:#215d3c!important;border-color:#8bbca1!important}
body.app-v2 #main-content .ui-case-status[data-status="cancelled"]{background:#fce7e9!important;color:#852438!important;border-color:#dba0a9!important}
body.app-v2 #main-content .position-description.has-description>summary,body.app-v2 #main-content .position-definition-present{color:#14649c!important;font-weight:400}

@media(min-width:901px){body.app-v2 #main-content .pos-context-meta{grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr))}body.app-v2 #main-content .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))}}
@media(min-width:601px) and (max-width:900px){body.app-v2 #main-content .pos-context-meta,body.app-v2 #main-content .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:repeat(2,minmax(0,1fr))}body.app-v2 #main-content .pos-context-meta>label:first-child{grid-column:1/-1}}

/* Shared dialog fields must also work without the internal application's base stylesheet. */
:is(body.app-v2,body.portal-shared) dialog:is(.ui-dialog,.public-dialog) .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
:is(body.app-v2,body.portal-shared) dialog:is(.ui-dialog,.public-dialog) :is(.form-grid,.ui-field-actions)>label{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;font-size:13px;line-height:1.45}
:is(body.app-v2,body.portal-shared) dialog.ui-dialog label>:is(input:not([type=checkbox],[type=radio]),select,textarea){box-sizing:border-box;min-width:0;width:100%;min-height:44px;font:inherit;font-weight:400;color:var(--ui-ink);background:#fff;border:1px solid var(--ui-line);border-radius:7px;padding:10px 12px}
:is(body.app-v2,body.portal-shared) dialog.ui-dialog .panel-head>.form-actions{margin:0 0 0 auto;flex-wrap:wrap;align-items:center}
:is(body.app-v2,body.portal-shared) dialog.ui-dialog .support-hint{color:var(--ui-muted);font-size:13px}
@media(max-width:600px){:is(body.app-v2,body.portal-shared) dialog:is(.ui-dialog,.public-dialog) .form-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){:is(body.app-v2,body.portal-shared) .ui-column-filter-dialog .panel-head>.form-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));width:100%;gap:8px}:is(body.app-v2,body.portal-shared) .ui-column-filter-dialog .panel-head>.form-actions>button{width:100%;min-width:0;white-space:normal;overflow-wrap:normal}}

/* Ready to work is distinct from currently running work. */
body.app-v2 #main-content .ui-case-status[data-status="ready_work"]{background:#e1f3f2!important;color:#205f5b!important;border-color:#80b9b3!important}

/* Compact phone position cards; tablet and desktop retain their existing layout. */
@media(max-width:650px){
 body.app-v2 #main-content .position-table tbody>tr[data-position-row]{gap:8px 12px}
 body.app-v2 #main-content .position-table tbody>tr[data-position-row]>td{background:transparent!important}
 body.app-v2 #main-content .position-table td[data-label="Position"]{display:flex!important;align-items:center;gap:8px;min-height:44px}
 body.app-v2 #main-content .position-table td[data-label="Position"]:before{margin:0}
 body.app-v2 #main-content .position-table .position-number{display:inline;padding:0}
 body.app-v2 #main-content .position-table .position-drag{margin:0 0 0 auto;min-width:44px;min-height:44px}
 body.app-v2 #main-content .position-table td:has(>[data-row-sum]){grid-column:1/-1;display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:28px}
 body.app-v2 #main-content .position-table td:has(>[data-row-sum]):before{margin:0}
 body.app-v2 #main-content .position-table td[data-label="Aktionen"]{grid-column:1/-1;display:flex!important;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:8px}
 body.app-v2 #main-content .position-table tr:has(>td[colspan="5"])>td:has(>[data-row-sum]){display:none!important}
 body.app-v2 #main-content .position-table td[data-label="Aktionen"]:before{display:none}
 body.app-v2 #main-content .position-table .position-row-controls{display:flex;align-items:center;gap:8px;margin:0}
 body.app-v2 #main-content .position-table .position-insert-button{order:-1;width:auto;min-height:44px;margin:0 auto 0 0}
 body.app-v2 #main-content .position-table .position-icon{margin:0;min-width:44px;min-height:44px}
}

/* Geschützte Versandkopien in gemeinsamen Dialogen. */
.mail-copy-text{overflow-wrap:anywhere}.mail-copy-frame{width:100%;height:55vh;border:1px solid var(--border,#ccd9e6);border-radius:6px;background:#fff}

/* Case processing deadlines: calendar urgency shared by fields and lists. */
.ui-deadline{display:inline-block;padding:6px 8px;border:1px solid transparent;border-radius:6px;white-space:normal}
.ui-date-value{display:inline-block;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.ui-deadline-soon{background:#fff8d6!important;color:#705000!important;border-color:#d5b84d!important}
.ui-deadline-urgent{background:#ffead2!important;color:#843e00!important;border-color:#de9c50!important}
.ui-deadline-overdue{background:#ffe2e7!important;color:#a11732!important;border-color:#dd7b8f!important}

/* Shared heading variant: align the action bar to the final information row. */
body.app-v2 #main-content .page-head.ui-heading-baseline{align-items:flex-end}
body.app-v2 #main-content .ui-heading-baseline>.ui-action-bar{margin-bottom:0}

/* Shared labelled field and multiple-choice grids in app and public forms. */
.ui-field-grid,.ui-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;min-width:0}
.ui-field-grid>label{display:flex;flex-direction:column;gap:6px;min-width:0}
.ui-field-grid>label>:is(input,select,textarea){width:100%;min-width:0;min-height:44px;box-sizing:border-box}
.ui-choice-grid{margin-top:16px}.ui-choice-grid[hidden]{display:none!important}
.ui-choice-grid>label.check{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-weight:400;line-height:1.45}
.ui-choice-grid>label.check>input{flex:0 0 auto;width:20px;height:20px;margin:0}
@media(max-width:600px){.ui-field-grid,.ui-choice-grid{grid-template-columns:minmax(0,1fr)}.ui-field-grid>label>:is(input,select,textarea){font-size:16px!important}}

/* Shared action spacing for customer-facing content, including document downloads. */
body.portal-shared .ui-action-bar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:16px}
body.portal-shared .ui-action-bar>.button{margin:0;min-height:44px}

/* Protected values wrap within the shared dialog rather than overflowing the page. */
.ui-dialog pre {white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;}

/* Inline forms remain a complete action in the shared dialog action bar. */
body.app-v2 #main-content dialog :is(.ui-action-bar,.form-actions)>form{flex:0 0 auto;max-width:100%}

/* Shared read-only priority indicator, including customer portal. */
.ui-priority-badge{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid #c5d0da;border-radius:999px;background:#edf1f5;color:#40566a;font-size:13px;font-weight:700;line-height:1.4}
.ui-priority-badge[data-priority="high"]{background:#fff0ca;border-color:#e4aa45;color:#855300}
.ui-priority-badge[data-priority="urgent"]{background:#ffe0e5;border-color:#df7180;color:#a80e2e}
.ui-priority-badge[data-priority="critical"]{background:#a71930;border-color:#831226;color:#fff}
@media(min-width:901px){body.portal-shared .case-summary{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* Plain contact summaries: readable details without form-field decoration. */
body.app-v2 #main-content .ui-contact-summary{min-width:0}body.app-v2 #main-content .ui-contact-summary h3{margin:0 0 8px;font-size:14px}body.app-v2 #main-content .ui-contact-details{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:4px 12px;margin:0}body.app-v2 #main-content .ui-contact-details dt{font-size:12px;font-weight:400}body.app-v2 #main-content .ui-contact-details dd{margin:0;padding:0;background:none;border:0;box-shadow:none;min-width:0;overflow-wrap:anywhere}body.app-v2 #main-content .ui-contact-link{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:0;border:0;background:none;box-shadow:none;overflow-wrap:anywhere;text-decoration:underline}body.app-v2 #main-content .ui-contact-details dd:not(:has(a)){padding:6px 0}

body.app-v2 #main-content .ui-contact-link,body.app-v2 #main-content .ui-contact-link:visited,body.app-v2 #main-content .ui-contact-link:hover{color:var(--ui-ink,#263242)}

/* Shared customer-portal form fields: labels and help stay above/below their control. */
body.portal-shared .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),360px));gap:16px 20px;align-items:start}
body.portal-shared :is(.form-grid,.ui-balanced-grid)>label:not(.check){display:grid;gap:6px;min-width:0;margin:0}
body.portal-shared :is(.form-grid,.ui-balanced-grid)>label>:is(input,select,textarea){width:100%;box-sizing:border-box}
body.portal-shared :is(.form-grid,.ui-balanced-grid)>label>small{font-weight:400;line-height:1.4}
body.portal-shared .public-dialog select{width:100%;display:block;margin-top:6px}

.ui-payment-entry{width:100%;max-width:760px;min-width:0}.ui-payment-entry .ui-field-group{min-width:0}.ui-payment-entry .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}

body.portal-shared .public-dialog-heading{flex-wrap:wrap}.public-dialog-heading>.form-actions{margin-left:auto}

/* Payment type identification; logos never act as payment controls. */
.ui-payment-logos{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0}.ui-payment-logos img{display:block;width:76px;height:48px;object-fit:contain}

/* Compact payment settings: three peer areas, expandable setup uses available width. */
.portal-payment-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
body.portal-shared .portal-payment-settings>.portal-surface{min-width:0;margin:0}
.portal-payment-settings .public-document-heading{flex-wrap:wrap}
.portal-payment-settings .ui-payment-logos img{width:52px;height:33px}
body.portal-shared .portal-payment-settings .ui-payment-entry{max-width:none;width:100%}
.portal-payment-settings:has([data-sepa-setup]){grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)}
@media(max-width:1100px){.portal-payment-settings,.portal-payment-settings:has([data-sepa-setup]){grid-template-columns:repeat(2,minmax(0,1fr))}.portal-payment-settings>section:last-of-type{grid-column:1/-1}}
@media(max-width:700px){.portal-payment-settings,.portal-payment-settings:has([data-sepa-setup]){grid-template-columns:minmax(0,1fr)}}

body.portal-shared .portal-history-table td .ui-action-bar{margin:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap}

.portal-case-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
body.portal-shared .portal-case-facts>.public-document-details-grid{display:contents}
body.portal-shared .portal-case-facts>.ui-budget{min-width:0;margin:0}
.portal-case-facts .public-document-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.ui-budget-progress{display:block;width:100%;height:14px;border:0;border-radius:7px;overflow:hidden;background:#dce5ed;accent-color:#287b45}
.ui-budget-progress::-webkit-progress-bar{background:#dce5ed}.ui-budget-progress::-webkit-progress-value{background:#287b45}
[data-budget-level=warning] .ui-budget-progress{accent-color:#b97b00}[data-budget-level=warning] .ui-budget-progress::-webkit-progress-value{background:#b97b00}
[data-budget-level=exhausted] .ui-budget-progress{accent-color:#bd2727}[data-budget-level=exhausted] .ui-budget-progress::-webkit-progress-value{background:#bd2727}
@media(max-width:1100px){.portal-case-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-case-facts>.ui-budget{grid-column:1/-1}}
@media(max-width:700px){.portal-case-facts{grid-template-columns:minmax(0,1fr)}}

body.portal-shared .portal-invoice-summary .public-document-details-grid{grid-template-columns:minmax(0,1fr)}

.ui-revenue-ranking{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.ui-revenue-ranking>li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:start}
.ui-rank-number{color:var(--ui-muted,#526980);padding-top:10px;font-variant-numeric:tabular-nums}
.ui-rank-line{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
.ui-rank-line>a{min-width:0;overflow-wrap:anywhere}.ui-rank-line>strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.ui-revenue-ranking meter{width:100%;height:8px;display:block;accent-color:#416b86}
.ui-revenue-ranking meter::-webkit-meter-bar{background:#dce5ed;border:0}.ui-revenue-ranking meter::-webkit-meter-optimum-value{background:#416b86}

body.portal-shared .portal-payment-settings .public-document-heading{align-items:center;gap:8px;margin:0 0 16px;min-height:40px}
body.portal-shared .portal-payment-settings .public-document-heading h2{font-size:18px;margin:0}
body.portal-shared .portal-payment-settings .ui-payment-logos{gap:8px}
body.portal-shared .portal-payment-settings .ui-payment-logos img{width:40px;height:26px}
body.portal-shared .portal-payment-settings .form-actions{margin-top:0;margin-bottom:16px}
body.portal-shared .portal-payment-settings p{margin:8px 0;line-height:1.5}

@media(min-width:1101px){body.portal-shared .portal-heading:not(:has(.portal-credentials-prompt,.portal-staff-notice)){grid-template-columns:minmax(230px,1fr) minmax(260px,1.2fr) auto;margin-top:16px;margin-bottom:16px}body.portal-shared .portal-heading:not(:has(.portal-credentials-prompt,.portal-staff-notice)) .portal-welcome{grid-column:1 / span 2;grid-row:2}body.portal-shared .portal-heading:not(:has(.portal-credentials-prompt,.portal-staff-notice)) .public-header-contact{grid-row:1 / span 2}body.portal-shared .portal-heading .portal-welcome h2{margin:0 0 6px}body.portal-shared .portal-heading .portal-welcome p{margin:0}}

body.app-v2 #main-content .ui-cti-table{min-width:0;width:100%;table-layout:auto}body.app-v2 #main-content .ui-cti-table :is(th,td){white-space:normal;overflow-wrap:anywhere}
body.portal-shared .portal-case-facts>.public-document-details-grid>.ui-field-group{margin:0}
.portal-case-facts .ui-budget-values{grid-template-columns:minmax(0,1fr);gap:6px;margin:8px 0}.portal-case-facts .ui-budget-values>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px}.portal-case-facts .ui-budget-values dt{margin:0}.portal-case-facts .ui-budget-values dd{font-size:16px;white-space:nowrap}

[data-csys-urls]>.ui-inline-fields{margin-bottom:16px;display:grid;grid-template-columns:minmax(80px,1fr) minmax(120px,2fr) auto;align-items:end}[data-csys-urls] input{width:100%;min-width:0}@media(max-width:700px){[data-csys-urls]>.ui-inline-fields{grid-template-columns:minmax(0,1fr)} }
body.app-v2 #main-content dialog:is([data-csys-system],[data-csys-credential]){width:min(1100px,calc(100vw - 32px))}

/* Protected code remains readable without widening the dialog. */
[data-csys-totp-code]{font-size:1.75rem;font-variant-numeric:tabular-nums;letter-spacing:.16em}[data-csys-revealed]{white-space:pre-wrap;overflow-wrap:anywhere}

.ui-preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}
/* Balanced dialogs align neighbouring inputs even when labels wrap. */
body.app-v2 :is(#main-content,dialog) .ui-balanced-grid .form-grid,body.portal-shared dialog.ui-dialog .ui-balanced-grid .form-grid{align-items:end}
[data-csys-urls]>.ui-inline-fields{grid-template-columns:minmax(0,1fr) auto;gap:8px}
[data-csys-urls]>.ui-inline-fields>label:nth-child(2){grid-column:1/-1;grid-row:2}
[data-csys-urls]>.ui-inline-fields>button{grid-column:2;grid-row:1}

/* Booking recommendations inherit the selected button contrast in every theme. */
body.app-v2 #main-content .booking-staff .booking-suggestion small{color:inherit}
body.app-v2 #main-content .booking-calendar-toolbar>.booking-view-tabs.ui-tabs{width:auto;max-width:100%;margin:0;padding:0;border:0;gap:8px}

[data-photo-camera-dialog] video{display:block;width:100%;max-height:55vh;object-fit:contain;background:#172535;border-radius:6px}[data-photo-camera-dialog] video[hidden]{display:none}

/* Menus remain in their owning DOM/form and render above scroll containers. */
.ui-action-menu>div.ui-action-popover:popover-open{position:fixed!important;inset:auto;margin:0;min-width:min(240px,calc(100vw - 16px));max-width:calc(100vw - 16px);overflow:auto;box-sizing:border-box}
.ui-action-menu>div.ui-action-popover:not(:popover-open){display:none!important}

.ui-balanced-grid.ui-two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.ui-balanced-grid.ui-two-columns{grid-template-columns:minmax(0,1fr)}}

/* Diagnosis image contents use the shared dialog and form layout. */
@font-face{font-family:DiagnosisPhoto;src:url('fonts/legal/opensans-700.ttf') format('truetype');font-weight:700;font-display:swap}
.diagnosis-canvas{display:block;width:100%;height:auto;max-width:100%;touch-action:none;cursor:crosshair;border-radius:var(--radius,8px);background:#fff}
[data-diagnosis-camera-dialog] video{display:block;max-width:100%;max-height:55vh;margin:auto}
[data-diagnosis-photos] .form-actions{flex-wrap:wrap;justify-content:flex-start}

/* Shared read-only photo dialog: zoom scrolls the picture, never the page. */
.ui-photo-viewer [data-viewer-caption]{overflow-wrap:anywhere}
.ui-photo-viewer-tools{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px;margin-block:16px}
.ui-photo-viewer-tools button{min-height:44px;max-width:100%;white-space:normal}
.ui-photo-viewer-stage{overflow:auto;max-width:100%;height:55vh;min-height:180px;background:#18232e;border-radius:var(--radius,8px)}
.ui-photo-viewer-stage img{display:block;width:100%;max-width:none;height:auto;object-fit:contain;object-position:top left}
.ui-photo-viewer-stage img[hidden]{display:none}
.ui-photo-viewer-stage:focus-visible{outline:3px solid var(--accent,#36647d);outline-offset:2px}

/* Photo tools retain two compact columns on small touch screens. */
body.app-v2 #main-content .diagnosis-tools{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Legal distribution uses the shared switch and a compact responsive content grid. */
body.app-v2 #main-content .legal-distribution-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:8px 16px}

/* Credential details need full width; repeatable protected fields share a responsive grid. */
[data-csys-credential] [data-csys-protected-fields]{grid-column:1/-1}
[data-csys-custom-fields]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px}
[data-csys-custom-fields]>.ui-field-group{min-width:0;margin:0}

/* Full-width detail groups retain the shared two-column form layout. */
.ui-balanced-grid.ui-two-columns:has(>.ui-grid-full){grid-template-columns:repeat(2,minmax(0,1fr))}
.ui-balanced-grid>.ui-grid-full{grid-column:1/-1}
@media(max-width:700px){.ui-balanced-grid.ui-two-columns:has(>.ui-grid-full){grid-template-columns:minmax(0,1fr)}}

/* Shared master/detail layout for hierarchical documentation. */
.ui-master-detail{display:grid;grid-template-columns:minmax(250px,28%) minmax(0,1fr);gap:16px;align-items:start}.ui-master-pane,.ui-detail-pane{min-width:0}.ui-master-pane{border-right:1px solid var(--ui-line,#c9d9e8);padding-right:16px}.ui-master-pane nav{display:block;margin-top:16px}.ui-master-pane .ui-group-tree .ui-group-tree{margin-left:12px;padding-left:10px}.ui-master-pane .ui-group-tree .ui-group-tree>li:before{left:-10px;width:10px}.ui-master-pane .ui-group-tree .ui-group-tree>li:last-child:after{left:-12px}.ui-detail-pane .ui-two-columns{grid-template-columns:minmax(0,1fr)}.ui-master-detail [hidden]{display:none!important}@media(max-width:760px){.ui-master-detail{grid-template-columns:minmax(0,1fr)}.ui-master-pane{border-right:0;border-bottom:1px solid var(--ui-line,#c9d9e8);padding:0 0 16px}}

body.app-v2 .ui-master-detail .ui-detail-pane .ui-balanced-grid.ui-two-columns{grid-template-columns:minmax(0,1fr)}.ui-master-detail .ui-master-pane{position:static;background:transparent;color:inherit;width:auto;height:auto}.ui-master-detail .ui-detail-pane>.ui-form-stack>.panel-head{flex-wrap:wrap}

/* Generated list controls occupy the same grid span as their table. */
body.app-v2 #main-content :is(.organization-fields,.form-grid) > :is(.ui-list-toolbar,.ui-list-header,.ui-table-paging){grid-column:1 / -1;min-width:0;max-width:100%;box-sizing:border-box}
body.app-v2 #main-content .ui-list-actions > :is(button,.button),
body.app-v2 #main-content .ui-list-actions > details > summary.button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 auto;width:auto;min-height:var(--ui-field-height,44px);padding:10px 16px;white-space:nowrap}
body.app-v2 #main-content .ui-list-actions > details{flex:0 0 auto}

/* Dialog dismissal remains the rightmost action even after dynamic additions. */
body.app-v2 :is(dialog,[data-csys-system]) :is(.form-actions,.ui-action-bar) > .ui-close-x{order:999;flex:0 0 44px;width:44px;min-width:44px;padding:0}
/* A tree uses one flat interactive row, not a button framed inside another box. */
body.app-v2 #main-content [data-csys-tree] .ui-group-row,
body.app-v2 [data-csys-parent-picker] .ui-group-row,
.ui-system-tree .ui-group-row{border:0;border-radius:4px;background:transparent;padding:0;margin:0;gap:0}
body.app-v2 #main-content [data-csys-tree] .ui-group-row > button,
body.app-v2 [data-csys-parent-picker] .ui-group-row > button,
.ui-system-tree .ui-group-row > button{background:transparent;border:0;box-shadow:none;text-align:left;justify-content:flex-start;border-radius:4px}
body.app-v2 #main-content [data-csys-tree] .ui-group-row:has([aria-pressed=true]),
body.app-v2 [data-csys-parent-picker] .ui-group-row:has([aria-pressed=true]),
.ui-system-tree .ui-group-row:has([aria-pressed=true]){background:#dceaf6}
body.app-v2 #main-content [data-csys-tree] .ui-group-choice:hover,
body.app-v2 [data-csys-parent-picker] .ui-group-choice:hover,
.ui-system-tree .ui-group-choice:hover{background:#e5eef6}
[data-csys-parent-picker] nav{max-height:55vh;overflow:auto;margin-top:16px}
body.app-v2 #main-content [data-csys-tree] .ui-group-row > button,
body.app-v2 [data-csys-parent-picker] .ui-group-row > button,
.ui-system-tree .ui-group-row > button{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:var(--ui-ink)!important}
body.app-v2 #main-content [data-csys-tree] .ui-group-row > .ui-group-choice,
body.app-v2 [data-csys-parent-picker] .ui-group-choice,
.ui-system-tree .ui-group-choice,
.ui-master-detail .ui-group-picker,
body.app-v2 #main-content [data-csys-system] .ui-group-picker{text-align:left!important;justify-content:flex-start!important}
/* Narrow detail panes keep their title above the complete action row. */
@media(max-width:900px){
 .ui-master-detail .ui-detail-pane .panel-head{display:flex;flex-direction:column;align-items:stretch;gap:8px}
 .ui-master-detail .ui-detail-pane .panel-head>.form-actions{width:100%;max-width:100%;box-sizing:border-box;justify-content:flex-end;margin-left:0}
 .ui-master-detail .ui-detail-pane .panel-head>h2{margin-bottom:0}
}

/* Shared labelled fields and flat hierarchies in both internal and customer editors. */
.ui-master-detail label:not(.check),.ui-tree-picker>label{display:grid;gap:6px;min-width:0;margin-block:8px}
.ui-master-detail label:not(.check)>:is(input,select,textarea),.ui-tree-picker>label>input{width:100%;box-sizing:border-box}
.ui-tree-picker nav{max-height:55vh;overflow:auto;margin-top:16px}
/* The same non-shrinking dialog actions apply to the customer portal. */
body.portal-shared :is(dialog.ui-dialog,dialog.public-dialog) :is(.form-actions,.ui-action-bar){flex-direction:row;flex-wrap:nowrap;gap:8px;min-width:0;max-width:100%;overflow-x:auto;justify-content:safe flex-end}
body.portal-shared :is(dialog.ui-dialog,dialog.public-dialog) :is(.form-actions,.ui-action-bar)>:is(button,.button){flex:0 0 auto;width:auto;min-width:max-content;white-space:nowrap}
body.portal-shared :is(dialog.ui-dialog,dialog.public-dialog) :is(.form-actions,.ui-action-bar)>.ui-close-x{order:999;flex:0 0 44px;width:44px;min-width:44px;padding:0}

/* Caller cards wrap naturally; no nested table scrolling in the dashboard. */
body.app-v2 #main-content [data-dashboard-widget="cti"] .dashboard-widget-body{height:var(--dashboard-height,220px);min-height:var(--cti-min-height,0px);max-height:none;overflow:visible;scrollbar-gutter:auto;padding-right:0}
body.app-v2 #main-content .ui-cti-count{margin:0 0 4px}
.ui-cti-calls{display:grid;gap:0;min-width:0}.ui-cti-call{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--ui-border);min-width:0;overflow-wrap:anywhere}.ui-cti-call[hidden]{display:none}.ui-cti-call-meta{display:flex;flex-direction:column;gap:2px;padding-top:2px;color:var(--ui-muted);font-size:11px}.ui-cti-call a{display:flex;flex-direction:column;justify-content:center;min-height:44px;line-height:1.3}.ui-cti-call small,.ui-cti-call span{display:block}.ui-cti-call a small{color:var(--ui-muted)}.ui-cti-number{font-size:12px;color:var(--ui-ink)}.ui-cti-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:8px}.ui-cti-pager[hidden]{display:none}.ui-cti-pager>span{margin-right:auto;font-size:12px}.ui-cti-pager>button{min-width:44px}

:is(body.app-v2,body.portal-shared) dialog .panel-head>.ui-close-x{margin-left:auto;flex:none}

/* Assistant suggestions retain readable supporting text in the shared button theme. */
.planner-suggestion small{color:inherit;opacity:.9}

/* Collapsed dashboard cards retain their useful summary and search control. */
.dashboard-collapsed-count{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:12px;background:var(--ui-border);font-variant-numeric:tabular-nums}
[data-collapsed="1"] .dashboard-collapsed-count{display:inline-block}
body.app-v2 #main-content .dashboard-card>.panel-head>.dashboard-header-search{flex:1 1 80px;min-width:80px;margin:0;padding:0;border:0;background:none;box-shadow:none}
.dashboard-header-search form,.dashboard-header-search label{margin:0;width:100%}
body.app-v2 #main-content [data-dashboard-widget="search"] .dashboard-card>.panel-head{flex-wrap:nowrap}
body.app-v2 #main-content [data-dashboard-widget="search"] .dashboard-card>.panel-head h2{flex:0 1 auto;min-width:0}
.dashboard-header-search input{width:100%;min-width:0}

.dashboard-compact-title{display:none}
[data-collapsed="1"] .dashboard-card>.panel-head h2:has(.dashboard-compact-title) .dashboard-expanded-title{display:none}
[data-collapsed="1"] .dashboard-compact-title{display:inline}
body.app-v2 #main-content [data-dashboard-widget="search"] .dashboard-card>.panel-head h2{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}

/* Unified booking keeps the familiar calendar visible below compact planning controls. */
.app-v2 [data-unified-planner] .planner-options{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.app-v2 [data-unified-planner] .planner-recommendations{padding:12px;margin:12px 0}
.app-v2 [data-unified-planner] .planner-recommendations>p{margin:4px 0 8px}
.app-v2 .planner-suggestion small{color:inherit!important;opacity:.9}
.app-v2 [data-unified-planner] .planner-filter-options{margin:8px 0}
.app-v2 [data-unified-planner] .planner-filter-options>summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
@media(max-width:800px){.app-v2 [data-unified-planner] .planner-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.app-v2 [data-unified-planner] .planner-options{grid-template-columns:minmax(0,1fr)}}

.app-v2 [data-unified-planner] .planner-confirm[hidden]{display:none!important}

/* Explicitly hidden actions must stay hidden until their workflow permits them. */
:is(body.app-v2,body.portal-shared) :is(.form-actions,.ui-action-bar)>[hidden]{display:none!important}

/* Customer vault browser: hierarchy, entries and protected details. */
body.app-v2 #main-content .csys-browser{display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,1fr) minmax(320px,1.5fr);gap:16px;align-items:start}
body.app-v2 #main-content .csys-browser>div,body.app-v2 #main-content .csys-browser>section{min-width:0}
body.app-v2 #main-content dialog.csys-inline{position:static;inset:auto;width:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;box-shadow:none;background:transparent;color:inherit}
body.app-v2 #main-content dialog.csys-inline:not([open]){display:none}
.csys-entry-row{display:flex;gap:8px;border-bottom:1px solid var(--ui-line);align-items:center}
.csys-entry-row>.csys-entry{flex:1;min-width:0;text-align:left;overflow-wrap:anywhere}
.csys-entry{width:100%;min-height:44px;text-align:left}
.csys-entry[aria-pressed=true]{background:#dcecff!important;color:#183e67!important}
body.app-v2 .ui-action-menu .ui-action-group button.secondary{color:#243747!important}
body.app-v2 .ui-action-menu .ui-action-group button.secondary:is(:hover,:focus-visible){color:#183149!important;background:#e9f0f7!important}
@media(max-width:1100px){body.app-v2 #main-content .csys-browser{grid-template-columns:minmax(200px,1fr) minmax(240px,1.4fr)}.csys-browser>[data-csys-detail-host]{grid-column:1/-1}}
@media(max-width:640px){body.app-v2 #main-content .csys-browser{grid-template-columns:minmax(0,1fr)}.csys-browser .ui-master-pane{max-height:35vh;overflow:auto}.csys-browser input{font-size:16px}}

body.app-v2 #main-content .csys-case-browser{width:96vw;max-width:1800px}.csys-case-browser iframe{display:block;width:100%;height:75vh;border:0}body.app-v2.csys-embedded{display:block;padding:0;margin:0}body.app-v2.csys-embedded #main-content{margin:0;padding:8px;width:auto}

/* Compact appointment overview: readable details and one grouped action menu. */
body.app-v2 .case-appointment-overview .appointment-compact{grid-template-columns:minmax(0,1fr) minmax(150px,220px) auto;gap:16px;align-items:start}
body.app-v2 .case-appointment-overview .appointment-actions{grid-column:auto;display:block;margin:0;padding:0}
body.app-v2 .case-appointment-overview .appointment-actions form{display:contents}
body.app-v2 .case-appointment-overview .appointment-actions small{display:block;font-size:13px;line-height:1.5}
body.app-v2 .case-appointment-overview .appointment-state .badge{display:inline-flex;width:auto;margin:0 0 4px}
body.app-v2 .case-appointment-overview .appointment-summary{grid-template-columns:minmax(0,1fr)}
body.app-v2 .case-appointment-overview .appointment-summary>*{grid-column:1;grid-row:auto}
body.app-v2 .case-appointment-overview .appointment-purpose{justify-self:start}
body.app-v2 .case-appointment-overview .appointment-summary>strong{font-size:16px}
@media(max-width:700px){body.app-v2 .case-appointment-overview .appointment-compact{grid-template-columns:minmax(0,1fr) auto}body.app-v2 .case-appointment-overview .appointment-summary{grid-template-columns:minmax(0,1fr)!important}body.app-v2 .case-appointment-overview .appointment-state{grid-column:1;grid-row:2}body.app-v2 .case-appointment-overview .appointment-actions{grid-column:2;grid-row:1/3}}

/* Keep global dialogs and their handlers alive inside the case browser. */
body.app-v2.csys-embedded> :not([data-csys-embedded-main]):not(dialog):not(script){display:none!important}
.csys-entry-row .ui-action-menu{flex:none}.csys-entry-row .ui-action-menu>summary{min-height:44px}
.csys-browser [data-csys-revealed] input{min-width:0}.csys-browser [data-csys-revealed] label{overflow-wrap:anywhere}

/* Calendar controls: one filter action beside the views; equal day actions. */
.calendar-planner .planner-views{gap:8px;flex-wrap:wrap;align-items:center}
.calendar-planner .planner-views button{min-height:44px}
.calendar-planner [data-plan-filter-panel][hidden]{display:none!important}
.calendar-planner .planner-cell .planner-free,
.calendar-planner .planner-cell .planner-grid-slot{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:44px;margin:8px 0 0;padding:8px;font-size:12px;line-height:1.25;text-align:center;white-space:normal}
@media(max-width:750px){.calendar-planner .planner-month .planner-free{font-size:11px;padding:4px;overflow-wrap:anywhere}.calendar-planner .planner-month .planner-free::after{content:none}}

/* Protected detail values keep their actions beside the value, as in a vault. */
:is(body.app-v2 #main-content,body.portal-shared) .csys-value-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end}
:is(body.app-v2 #main-content,body.portal-shared) .csys-value-row>.form-actions{margin:0;padding:0;gap:8px;align-self:end}
body.app-v2 #main-content [data-csys-revealed].ui-form-stack{gap:16px}
:is(body.app-v2 #main-content,body.portal-shared) .csys-value-row input{width:100%;min-width:0}
@media(max-width:420px){:is(body.app-v2 #main-content,body.portal-shared) .csys-value-row{grid-template-columns:minmax(0,1fr)}:is(body.app-v2 #main-content,body.portal-shared) .csys-value-row>.form-actions{justify-self:end}}

/* Scoped customer vault: shared cards and responsive three-pane navigation. */
.vault-public-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr);gap:16px}
.vault-public-grid>*{min-width:0;overflow-wrap:anywhere}
.vault-public-grid nav button,.vault-public-grid [data-vault-entries] button{display:block;width:100%;text-align:left;margin-bottom:8px;min-height:44px;white-space:normal}
[data-vault-grant-list] button{margin:0 8px 8px 0;min-height:44px}
@media(max-width:900px){.vault-public-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.vault-public-grid>[data-vault-detail]{grid-column:1/-1}}
@media(max-width:520px){.vault-public-grid{grid-template-columns:minmax(0,1fr)}[data-vault-public] input,[data-vault-public] textarea{font-size:16px}}

[data-vault-public] [hidden]{display:none!important}

[data-plain]{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}

/* Compact vault details and selectable sharing hierarchy. */
[data-csys-credential-list]{display:grid;gap:12px}
[data-csys-credential-list]>.form-actions{margin:0 0 4px!important}
.csys-totp-line{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.csys-totp-line strong{display:block;font-size:1.6rem;font-variant-numeric:tabular-nums;letter-spacing:.08em}
.csys-totp-line .form-actions{margin:0!important;padding:0!important}
.csys-totp progress{display:block;width:100%;height:8px;margin-top:10px;accent-color:#315e80}
.csys-totp [role=status]:empty{display:none}
.csys-value-row textarea{width:100%;min-height:120px;resize:vertical;white-space:pre-wrap}
.csys-share-tree{list-style:none;padding-left:20px;margin:8px 0}
.csys-share-tree li{margin:8px 0}
.csys-share-tree summary{min-height:44px;cursor:pointer}
.csys-share-tree summary label{display:inline-flex!important;align-items:center;gap:8px;max-width:calc(100% - 24px);vertical-align:middle}
.csys-share-tree label{min-height:44px;overflow-wrap:anywhere}

.csys-dragging{user-select:none;cursor:grabbing}
.csys-dragging .ui-group-root-drop{position:sticky;bottom:0;z-index:2;background:#f0f6fc}
[data-share-check]{flex:none;width:20px!important;height:20px!important;margin:12px 4px!important}

/* Shared vault hierarchy, with the same tree lines and touch targets as the staff view. */
.vault-share-tree,.vault-share-tree ul{list-style:none;margin:0;padding:0}
.vault-share-tree ul{margin-left:20px;padding-left:12px;border-left:1px solid #7899b7}
.vault-share-tree-row{display:flex;gap:8px;align-items:center;margin:4px 0;min-width:0}
.vault-public-grid nav .vault-share-tree-row button{margin:0;flex:1;min-width:0;text-align:left}
.vault-public-grid nav .vault-share-tree-row .vault-share-toggle{flex:0 0 44px;width:44px;text-align:center}
.vault-share-marker{flex:0 0 44px;text-align:center;color:#7899b7}
.vault-share-tree-row button[aria-pressed=true]{background:#dcebf8;color:#18354f}
[data-vault-browser]>label{display:block;margin:16px 0}
body.portal-shared [data-vault-browser]>label{display:grid;gap:8px}
body.portal-shared [data-vault-search]{display:block;width:100%;box-sizing:border-box;min-width:0}
body.portal-shared .vault-public-grid nav .vault-share-tree-row button:not(.vault-share-toggle){text-align:left}

/* Stable pointer feedback; overlay does not move tree rows while dragging. */
.csys-dragging .ui-group-root-drop{position:fixed;bottom:auto;margin:0;z-index:1001;height:44px}.ui-group-drag-hint{position:fixed;left:0;top:0;z-index:1002;pointer-events:none;padding:8px 12px;border-radius:7px;background:#293b4b;color:white;box-shadow:0 4px 12px #0003;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Vault navigation and details scroll independently; embedded pages appear only when ready. */
.csys-case-browser iframe:not([data-ready="1"]){visibility:hidden}
body.app-v2 #main-content .csys-browser{grid-template-columns:minmax(240px,38%) minmax(0,1fr)}
body.app-v2 #main-content .csys-browser>.ui-master-pane{display:flex;flex-direction:column;min-height:0;height:var(--csys-pane-height,65vh);max-height:none;overflow:hidden}
.csys-browser [data-csys-tree]{min-height:0;flex:1;overflow:auto;overscroll-behavior:auto;scrollbar-gutter:stable}
.csys-content-panes{display:grid;grid-template-columns:minmax(0,1fr);gap:0;height:var(--csys-pane-height,65vh);min-height:0;overflow:auto;overscroll-behavior:auto;align-content:start;scrollbar-gutter:stable}
.csys-content-panes>.ui-detail-pane{min-width:0}
@media(max-width:1100px){.csys-content-panes{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){body.app-v2 #main-content .csys-browser{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .csys-browser>.ui-master-pane{height:48vh;min-height:400px}.csys-content-panes{height:auto;max-height:none;overflow:visible}}

.csys-print-preview{display:block;width:100%;height:65vh;border:1px solid var(--ui-line);border-radius:8px}

/* Compact recurring service quotas, including quantity allowances. */
.position-credit-fields{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin-top:8px}
.position-credit-fields>label{flex:0 1 160px;min-width:0;margin:0}
.position-credit-fields>label.check{flex:0 1 260px;min-height:44px}
.position-credit-fields input:not([type=checkbox]){width:100%}
.position-credit-options>small{display:block;margin-top:8px}

body.app-v2 #main-content .position-credit-row .position-credit-options{margin-top:0}
body.app-v2 #main-content .position-credit-fields>label{margin-top:0}
@media(max-width:800px){body.app-v2 #main-content .position-table .position-credit-row{display:block!important}body.app-v2 #main-content .position-credit-row>td{display:block!important;grid-column:1/-1}body.app-v2 #main-content .position-credit-row>td:before{display:none}}

.recurring-pdf-preview{display:block;width:100%;height:65vh;min-height:280px;border:1px solid var(--ui-border,#cbd5e1);border-radius:8px;background:white}

/* Subscription coverage selection uses independent scrolling and touch targets. */
.recurring-device-options{max-height:22rem;overflow:auto;}
.recurring-device-options label.check{min-height:44px;display:flex;align-items:center;gap:8px;}
.recurring-device-options label[hidden]{display:none;}

.recurring-term-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,184px));gap:16px;align-items:end;max-width:1400px;margin-top:16px;}
.recurring-term-fields>label{min-width:0;}
.organization-fields.recurring-scope-fields{grid-template-columns:minmax(120px,190px) minmax(0,1fr);}
body.app-v2 :is(#main-content,dialog) .organization-fields.recurring-scope-fields,body.app-v2 #main-content .recurring-basics-columns .organization-fields{align-items:end;}
@media(max-width:1100px){.recurring-term-fields{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:600px){.recurring-term-fields{grid-template-columns:repeat(2,minmax(0,1fr));}.organization-fields.recurring-scope-fields{grid-template-columns:1fr;}}
/* Formatted article and document descriptions share one compact editor. */
.description-editor{min-width:0;width:100%}.description-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 8px}.description-toolbar button{min-height:44px;padding:8px 12px}.description-toolbar select{width:auto;max-width:100%;min-height:44px}.description-surface{min-height:110px;max-height:420px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--ui-form-field,var(--input-bg,#fff));color:var(--ui-form-ink,var(--text,#283746));border:1px solid var(--ui-line,var(--border,#bfd1e4));border-radius:7px;padding:12px;font:inherit;font-weight:400}.description-surface:focus{outline:2px solid var(--ui-form-ink,#315f8d);outline-offset:2px}.description-editor>small{display:block;margin-top:8px}.position-description .description-toolbar button{font-size:12px}.position-description .description-surface{min-height:90px}@media(max-width:600px){.description-surface{font-size:16px}.description-toolbar select{width:100%}}

/* Compact system tree controls and credentials; rights remain aligned with labels. */
.csys-tree-bar{justify-content:flex-end;gap:8px;flex-wrap:wrap}.csys-tree-tools{display:flex;gap:8px;margin-right:auto}.csys-tree-tools>button{width:44px;min-width:44px;height:44px;padding:6px;font-size:22px!important}
.csys-entry-row{justify-content:flex-start;flex-wrap:wrap}.csys-entry-row>.csys-entry{flex:0 1 auto!important;width:auto!important;max-width:calc(100% - 104px);min-height:44px;text-align:left!important;padding-inline:16px}
body.app-v2 #main-content label.csys-right-checkbox,[data-csys] label.csys-right-checkbox{display:flex!important;align-items:center;gap:8px;min-height:44px;margin-top:8px}
label.csys-right-checkbox>input[type=checkbox]{flex:0 0 20px;width:20px!important;height:20px!important;margin:0!important}

[data-csys-drag]{touch-action:none;cursor:grab;min-width:28px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.csys-dragging [data-csys-drag]{cursor:grabbing}.ui-group-drag-hint{will-change:transform}

/* Compact primary registers and quieter secondary links share one navigation hierarchy. */
body.app-v2 #main-content .ui-tabs-primary{padding:5px;border:1px solid var(--ui-line);border-radius:9px;background:var(--ui-surface,#fff);gap:8px;margin-bottom:8px}
body.app-v2 #main-content .customer-record .ui-tabs-primary>button{border-color:transparent!important;box-shadow:none!important}
body.app-v2 #main-content .ui-tabs-secondary{gap:16px;padding:0 8px!important}
body.app-v2 #main-content .customer-record .ui-tabs-secondary>button[role=tab]{background:transparent!important;color:var(--ui-muted,#52677c)!important;border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;box-shadow:none!important;padding:10px 2px!important;min-height:44px}
body.app-v2 #main-content .customer-record .ui-tabs-secondary>button[role=tab][aria-selected=true]{background:transparent!important;color:var(--ui-ink)!important;border-bottom-color:var(--ui-ink)!important;box-shadow:none!important}
body.app-v2 #main-content .customer-record .ui-tabs-secondary>button[role=tab]:hover{color:var(--ui-ink)!important;background:#e8edf3!important}
@media(max-width:650px){
 body.app-v2 #main-content :is(.ui-tabs-primary,.ui-tabs-secondary) [data-customer-label]{flex:0 1 auto;width:auto;min-width:44px;max-width:100%;justify-content:flex-start;padding:10px!important}
 .customer-record :is(.ui-tabs-primary,.ui-tabs-secondary) .customer-navigation-label{display:inline;overflow-wrap:anywhere}
 .customer-record :is(.ui-tabs-primary,.ui-tabs-secondary) .customer-navigation-icon{display:none}
 .customer-record .customer-mobile-location{display:none}
}

.position-manual-duration{display:block;margin:6px 0 0}.position-manual-duration[hidden]{display:none}

body.app-v2 #main-content .customer-record :is(.ui-tabs-primary,.ui-tabs-secondary){flex-flow:row wrap!important;overflow:visible;white-space:normal}
body.app-v2 #main-content .customer-record :is(.ui-tabs-primary,.ui-tabs-secondary)>button{white-space:normal;max-width:100%}

/* Shared read-only document positions: align with printed commercial documents. */
.ui-document-disclosure>summary{min-height:44px;cursor:pointer;font-weight:700;font-size:18px;padding:8px 0}
.ui-document-positions{table-layout:fixed;min-width:800px;width:100%;border-collapse:collapse}
.ui-document-positions .document-quantity{width:7%}.ui-document-positions .document-unit{width:9%}.ui-document-positions .document-description{width:38%}.ui-document-positions .document-article{width:11%}.ui-document-positions .document-tax{width:8%}.ui-document-positions .document-price{width:10%}.ui-document-positions .document-currency{width:7%}
body.portal-shared .ui-document-positions :is(th,td){padding:7px 8px;vertical-align:top;border-bottom:0;font-size:13px;overflow-wrap:anywhere}
body.portal-shared .ui-document-positions th{border-bottom:1px solid var(--portal-line,#cbd8e5);white-space:nowrap}
body.portal-shared .ui-document-positions .document-number{text-align:right;white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums}
body.portal-shared .ui-document-positions .document-heading td{padding-top:18px;border-top:1px solid var(--portal-line,#cbd8e5)}
body.portal-shared .ui-document-positions .document-line-description{font-size:12px;line-height:1.5;margin-top:3px;padding-left:0;font-weight:400}

@media(min-width:1100px){body.portal-shared .ui-case-summary-amount{grid-template-columns:repeat(6,minmax(0,1fr))}}
body.portal-shared [data-portal-captured] :is(strong,small){display:block;overflow-wrap:anywhere}
body.portal-shared [data-portal-captured] small{font-size:11px;color:var(--portal-muted,#647184);margin-top:4px}

/* Visible drag preview above modal dialogs, without intercepting drop targets. */
.ui-group-drag-hint{inset:0 auto auto 0;margin:0;padding:0;border:1px solid #799bb8;max-width:none;white-space:normal;background:#f4f8fc;color:#263f54;overflow:visible;pointer-events:none!important}
.ui-group-drag-hint::backdrop{display:none}.ui-group-drag-hint *{pointer-events:none!important}.ui-group-drag-hint .ui-group-row{margin:0;border:0;background:transparent}.csys-drag-source{opacity:.35}
/* Compact, keyboard/touch-accessible help at the relevant field or section. */
[data-ui-info-ready][hidden]{display:none!important}
.ui-info-trigger{display:inline-flex!important;align-items:center;justify-content:center;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;margin:0 0 0 4px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--ui-accent,#35668c)!important;font:600 14px Georgia,serif!important;vertical-align:middle;border-radius:50%!important;position:relative}
.ui-info-trigger[hidden]{display:none!important}
.ui-info-trigger::before{content:'';position:absolute;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;pointer-events:none}
.ui-info-trigger:hover,.ui-info-trigger[aria-expanded=true]{background:#dceaf6!important}
.ui-info-content{position:fixed;inset:auto;margin:0;width:420px;box-sizing:border-box;padding:16px;border:1px solid var(--ui-border,#b9cadc);border-radius:10px;background:var(--ui-panel,#f4f8fc);color:var(--ui-ink,#263f54);box-shadow:0 8px 28px #263f5433;overflow:auto;z-index:1100;font-size:14px;line-height:1.5;text-align:left}
.ui-info-content[hidden]{display:none!important}.ui-info-content::backdrop{background:transparent}.ui-info-content>.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 8px;padding:0}.ui-info-content p{margin:8px 0}.ui-info-content>.panel-head>button{flex:none}
@media print{.ui-info-trigger,.ui-info-content{display:none!important}}

.ui-info-label{display:flex;align-items:center;min-height:22px;gap:0}.ui-info-label>.ui-info-trigger{margin-block:-11px!important;flex:none}legend>.ui-info-trigger{margin-block:-12px!important}

/* Calendar dates are navigation, distinct from booking actions. */
body.app-v2 #main-content .calendar-planner button.planner-day{background:transparent!important;color:#34465c!important;border:0!important;box-shadow:none!important;text-align:left!important;font-weight:700;border-radius:4px}
body.app-v2 #main-content .calendar-planner button.planner-day:hover,body.app-v2 #main-content .calendar-planner button.planner-day:focus-visible{background:#e4ecf5!important;color:#172e48!important}
.app-v2 .calendar-planner .planner-cell.is-outside-hours{background:repeating-linear-gradient(135deg,#f1f3f6,#f1f3f6 8px,#e9edf2 8px,#e9edf2 9px)}
.app-v2 .planner-outside-label{display:block;color:#627086;font-size:11px;margin:2px 0 6px}
.app-v2 .planner-outside-hours{border-left:3px solid #aa7433;padding-left:10px;color:#74501d}

body.app-v2 #main-content .calendar-planner .planner-time-choice{margin:16px 0 8px!important;justify-content:flex-end}.calendar-planner>[data-plan-detail]{margin:8px 0 16px;padding:0;border:0}.calendar-planner>[data-plan-detail] .planner-slots{display:flex;flex-wrap:wrap;gap:8px;max-height:240px;overflow:auto;padding:4px}.calendar-planner>[data-plan-detail] .planner-slots button{min-height:44px}.calendar-planner>[data-plan-detail] .form-grid{align-items:end}

/* Keep actions with their heading and separate access rows from divider lines. */
body.app-v2 #main-content [data-csys-access-dialog]>.panel-head>.form-actions{margin:0!important;gap:8px;flex-wrap:nowrap;align-items:center}
.csys-entry-row{padding:8px 0 12px}.csys-entry-row .ui-action-menu{margin:0}
.planner-duration-choice{display:flex;align-items:flex-end;gap:16px;min-width:0}.planner-duration-choice>label:first-child{width:90px;flex:0 0 90px}
body.app-v2 #main-content .planner-options .planner-free-toggle{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:44px;margin:0;white-space:nowrap}
.app-v2 [data-unified-planner] .planner-options:has(.planner-duration-choice){grid-template-columns:repeat(3,minmax(0,1fr)) minmax(245px,1fr)}
@media(max-width:800px){.app-v2 [data-unified-planner] .planner-options:has(.planner-duration-choice){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.app-v2 [data-unified-planner] .planner-options:has(.planner-duration-choice){grid-template-columns:minmax(0,1fr)}}

/* Compact day selection keeps the calendar close to the planning controls. */
body.app-v2 #main-content [data-plan-detail]{margin-block:12px;padding-block:0}
.planner-day-caption{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:8px}
body.app-v2 #main-content [data-plan-detail] .planner-slots{margin-block:8px;gap:8px}
body.app-v2 #main-content [data-plan-detail] .planner-slots>p{margin:0}

/* Compact linked record names retain keyboard and touch access. */
body.app-v2 :is(#main-content,dialog) button.ui-record-link{background:transparent;border:0;box-shadow:none;color:var(--ui-link,#315f8d);padding:0;text-align:left;min-height:44px;border-radius:0}body.app-v2 button.ui-record-link:hover{text-decoration:underline}
.ui-form-columns>.ui-stacked-fields{min-width:0}.ui-form-columns>.ui-stacked-fields>.ui-field-group{margin:0}
.ui-url-field{display:flex;align-items:center;gap:8px;min-width:0;width:100%}.ui-url-field>input{flex:1;min-width:0;width:100%;margin:0}.ui-url-field>.ui-url-open{flex:0 0 44px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px}.ui-url-field>.ui-url-open[hidden]{display:none}

body.app-v2 .header-care-action.has-occasions{color:#85470c;background:#fff2d6;border-color:#dbab55}.header-care-action .header-action-count{min-width:18px;width:auto;padding:0 3px}
body.app-v2 .ui-editor-steps{display:flex;flex:none;gap:8px;margin-left:auto;align-items:center}body.app-v2 .ui-editor-steps>button{min-height:44px;white-space:nowrap}body.app-v2 .ui-tabs>.ui-editor-steps{padding-left:8px}
body.app-v2 #main-content .ui-tabs:has(>.ui-editor-steps){flex-wrap:wrap!important;overflow:visible}body.app-v2>header .header-global-actions .header-care-action.has-occasions{color:#85470c;background:#fff2d6;border-color:#dbab55}

/* Direction remains explicit in text; colour supplements the label. */
:is(body.app-v2,body.portal-shared) :is(button,a.button,a.public-button,input,[role="button"]).ui-navigation-back {
 background:#29191d!important;border-color:#29191d!important;color:#fff!important;
}
:is(body.app-v2,body.portal-shared) :is(button,a.button,a.public-button,input,[role="button"]).ui-navigation-next {
 background:#132b23!important;border-color:#132b23!important;color:#fff!important;
}
:is(body.app-v2,body.portal-shared) :is(button,a.button,a.public-button,input,[role="button"]).ui-navigation-back:not(:disabled):not([aria-disabled="true"]):hover {background:#40252c!important;}
:is(body.app-v2,body.portal-shared) :is(button,a.button,a.public-button,input,[role="button"]).ui-navigation-next:not(:disabled):not([aria-disabled="true"]):hover {background:#204537!important;}
:is(body.app-v2,body.portal-shared) :is(.ui-navigation-back,.ui-navigation-next):is(:disabled,[aria-disabled="true"]) {opacity:.48;cursor:default;}

.csys-print-preview[hidden]{display:none!important}

/* Compact, aligned issue groups preserve native expandable summaries. */
.sv-compact-issues{min-width:0;container-type:inline-size}.sv-compact-issues .sv-issue-columns{display:grid;grid-template-columns:minmax(210px,2fr) 70px minmax(130px,1fr) 150px minmax(180px,1.5fr);gap:12px;align-items:center}
.sv-issue-heading{margin-left:60px;padding:10px 0;color:var(--ui-muted,#53677f);font-weight:600;font-size:.85rem}
.sv-compact-issues .sv-issue-group{padding:0;gap:0}.sv-compact-issues .sv-issue-group>label{flex:0 0 44px;min-height:44px;justify-content:center;margin:0}
.sv-compact-issues summary{position:relative;padding:8px 0 8px 16px;min-height:52px}.sv-compact-issues summary::before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-right.svg') center/contain no-repeat;position:absolute;left:0}.sv-compact-issues details[open]>summary::before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat}.sv-compact-issues summary::-webkit-details-marker{display:none}.sv-compact-issues summary small{margin:0}.sv-compact-issues [data-sv-issue-content]{padding:8px 0 12px}
/* Persist occasion emphasis across themes, visited links, hover and focus. */
body.app-v2 .header-global-actions a.header-care-action.has-occasions{color:#85470c!important;background:#fff2d6!important;border-color:#dbab55!important}
body.app-v2 .header-global-actions a.header-care-action.has-occasions .header-action-count{background:#85470c!important;color:#fff!important}

/* Calendar day chooser: round dates and a separate graphical day dialog. */
body.app-v2 #main-content .calendar-planner button.planner-day{display:flex!important;align-items:center;justify-content:center;width:44px!important;height:44px;min-width:44px;min-height:44px;padding:0!important;border-radius:50%!important;background:radial-gradient(circle at center,#e4e7eb 14px,transparent 14.5px)!important;color:#465363!important;text-align:center!important;margin:0 auto 4px}
body.app-v2 #main-content .calendar-planner button.planner-day:hover,body.app-v2 #main-content .calendar-planner button.planner-day:focus-visible{background:radial-gradient(circle at center,#d5dbe2 14px,transparent 14.5px)!important;color:#273b50!important;outline:2px solid #7295bd;outline-offset:2px}
[data-calendar-day-dialog]{width:min(820px,calc(100vw - 32px))}
.planner-day-timeline{display:grid;gap:8px;margin:16px 0}.planner-timeline-segment{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:start}.planner-timeline-segment>strong{font-size:13px;padding-top:12px}.planner-timeline-segment>div{border-left:3px solid #718096;padding:6px 10px;background:#eef3f8;border-radius:5px}.planner-timeline-segment.is-gap>div{display:flex;align-items:center;background:#eff8f3;border-color:#43936c;color:#286546}.planner-timeline-segment .planner-event{width:100%;min-height:44px;text-align:left;white-space:normal}
@media(max-width:600px){.planner-timeline-segment{grid-template-columns:83px minmax(0,1fr);gap:6px}.planner-timeline-segment>strong{font-size:12px}.planner-timeline-segment>div{padding:4px}}

@media(min-width:760px){[data-calendar-day-dialog]{width:min(1050px,calc(100vw - 32px))}.planner-day-content{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(230px,1fr);gap:24px;align-items:start}.planner-day-content>.planner-slots{display:flex;align-content:start;flex-wrap:wrap;gap:8px}.planner-day-content>.ui-field-group{min-width:0}.planner-day-content .form-grid{grid-template-columns:1fr}}

/* Shared selected-list PDF preview. */
body.app-v2 dialog.list-print-dialog{width:min(1100px,calc(100vw - 32px))}.list-print-dialog iframe{display:block;width:100%;height:65vh;border:1px solid var(--border,#ccd7e4);background:white}.list-print-dialog iframe[hidden]{display:none}.list-print-dialog [role=status]{overflow-wrap:anywhere}

/* Group boundaries preserve the shared table columns and selection controls. */
tr.ui-list-group-start > td{border-top:3px solid var(--border,#cbd9e7);}

.ui-info-trigger{cursor:pointer}.ui-info-trigger:focus-visible{outline:2px solid var(--ui-focus,#2563eb);outline-offset:2px}

.ui-heading-settings{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;min-width:44px;min-height:44px;margin-left:8px;color:var(--ui-accent,#35668c);text-decoration:none;font-size:22px;border-radius:7px}.ui-heading-settings:hover{background:#dceaf6}.ui-heading-settings:focus-visible{outline:2px solid var(--ui-focus,#2563eb);outline-offset:2px}

/* Dashboard titles navigate without changing the separate collapse control. */
.dashboard-heading-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:inherit;text-decoration:none}.dashboard-heading-link:hover{text-decoration:underline}.dashboard-heading-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* Keep adjacent tab navigation readable on narrow dialogs. */
body.app-v2 .ui-tab-navigation>.ui-step-navigation{flex:0 0 auto;flex-wrap:nowrap;overflow-x:auto}
body.app-v2 .ui-tab-navigation>.ui-step-navigation>button{flex:0 0 auto;width:auto;white-space:nowrap;min-height:44px}

/* Postal code and city stay adjacent in shared address dialogs. */
body.app-v2 #main-content .ui-postal-city{display:grid;grid-template-columns:minmax(76px,110px) minmax(0,1fr);gap:16px;min-width:0}
body.app-v2 #main-content .ui-postal-city>label{min-width:0;grid-column:auto}

/* Compact subscription position conditions keep their status visible when closed. */
body.app-v2 #main-content .position-credit-options{padding:0 8px}
body.app-v2 #main-content .position-credit-options>summary{min-height:44px;align-content:center}
body.app-v2 #main-content .position-credit-options[open]{padding-bottom:8px}

@media(min-width:1300px){body.app-v2 #main-content .recurring-basics-columns{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}}
body.app-v2 #main-content .recurring-basics-columns .recurring-contract-conditions{grid-column:1/-1;min-width:0}

/* Direct credential leaves share the left tree; only one detail surface is visible. */
.csys-tree-credential{padding-inline-start:32px;min-width:0}
.csys-tree-credential>.ui-group-choice{width:100%;min-height:44px;white-space:normal;overflow-wrap:anywhere;text-align:left}
.csys-content-panes>.ui-detail-pane:empty{display:none}

.csys-credential-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;min-width:20px;vertical-align:middle}.csys-credential-icon img{width:20px;height:20px;object-fit:contain}

/* Device type symbols and compact tree filter; shared control sizes remain unchanged. */
.csys-type-icon{display:inline-flex;width:20px;height:20px;flex:0 0 20px;vertical-align:middle;margin-inline-end:6px}.csys-type-icon svg{width:100%;height:100%}.csys-tree-type-filter{display:flex;align-items:center;gap:8px;min-width:0}.csys-tree-type-filter select{min-width:0;max-width:100%;width:auto}.csys-tree-bar .csys-tree-type-filter{flex:1 1 190px}.ui-group-choice>.csys-type-name{overflow-wrap:anywhere}.csys-tree-bar{align-items:center}
@media(max-width:640px){body.app-v2 #main-content .csys-browser>.ui-master-pane{height:auto;min-height:0}.csys-browser [data-csys-tree]{flex:none;min-height:180px;max-height:50vh}}
.csys-tree-bar .csys-tree-type-filter{flex:1 1 230px;margin:0}.csys-tree-type-filter select{flex:1;min-width:200px}

/* Navigation stays in the left pane; filtering and commands share the header. */
.csys-browser-controls{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.csys-browser-controls>label{flex:1 1 260px;margin:0}.csys-browser-controls>.csys-tree-bar{flex:1 1 450px;margin:0}.csys-browser-controls .csys-tree-tools{margin-right:0}.csys-browser-controls .csys-tree-type-filter{flex:1 1 230px}
body.app-v2 #main-content .csys-tree-credential>.ui-group-choice{display:flex;align-items:center;justify-content:flex-start;gap:4px;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:inherit;padding:4px 8px;text-align:left;font-weight:inherit}body.app-v2 #main-content .csys-tree-credential>.ui-group-choice:hover,body.app-v2 #main-content .csys-tree-credential>.ui-group-choice[aria-pressed=true]{background:var(--ui-surface-hover,#e4edf7)!important}body.app-v2 #main-content .csys-tree-credential>.ui-group-choice:focus-visible{outline:2px solid currentColor;outline-offset:-2px}

/* Read-only subscription credit preview beside the position description. */
body.app-v2 #main-content .position-credit-preview{margin:4px 0;font-size:12px;line-height:1.4;overflow-wrap:anywhere}

/* Active configuration marker, distinct from destructive action semantics. */
body.app-v2 :is(#main-content,dialog) :is(button,a.button).ui-button-active-red{background:#b91c1c!important;color:#fff!important;border-color:#991b1b!important;font-weight:700}
body.app-v2 :is(#main-content,dialog) :is(button,a.button).ui-button-active-red:hover{background:#991b1b!important}

/* Inline action in an expandable section heading. */
.pos-document-header>summary>.ui-summary-action{margin-left:auto;flex-shrink:0}
.pos-document-header>summary>.ui-summary-action+.pos-header-toggle{margin-left:0}

.pos-document-header>summary>.ui-summary-metrics{order:3;flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px 20px;min-width:0}
.pos-document-header>summary:has(.ui-summary-metrics){flex-wrap:wrap;gap:12px 20px}
.ui-summary-metrics>span{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.ui-summary-metrics small{color:#4d6075;font-weight:400}
.ui-summary-metrics strong{font-size:13px;font-weight:600}

/* Keep position metadata together; wrap only when the available width requires it. */
body.app-v2 #main-content .position-row-tools{align-items:center;column-gap:12px}
body.app-v2 #main-content .position-row-tools>.position-description:not([open]){flex:0 0 auto}
body.app-v2 #main-content .position-row-tools>:is(.position-manual-duration,.position-credit-preview){flex:0 1 auto;margin:0;padding:0;line-height:20px}

body.app-v2 #main-content .position-row-tools>.position-credit-preview{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}

/* Compact summary metrics share the desktop heading row; narrow screens wrap. */
@media(min-width:1600px){.pos-document-header>summary:has(.ui-summary-metrics){flex-wrap:nowrap;gap:12px}.pos-document-header>summary>.ui-summary-metrics{order:0;flex:1 1 auto;display:flex;align-items:center;gap:16px}.ui-summary-metrics>span{flex:1 1 0}.ui-summary-metrics>span:has(strong){font-size:12px}.pos-document-header>summary>.ui-summary-action{max-width:190px;white-space:normal}}

/* Visually separate subscription facts from title and scope action. */
@media(min-width:1600px){.pos-document-header>summary>.ui-summary-metrics{border-inline:1px solid #b9cada;padding-inline:20px;margin-inline:8px;align-self:stretch}.pos-document-header>summary>strong:has(+.ui-summary-metrics){flex:0 0 155px}}
/* Compact per-position credit decision, sharing the existing secondary line. */
body.app-v2 .position-row-tools .position-credit-preview{display:inline-flex;flex:0 1 auto;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:0;min-width:0;max-width:100%;white-space:nowrap;margin:0}
body.app-v2 .position-credit-preview .position-credit-choice{display:inline-flex;flex:none;align-items:center;gap:5px;min-height:44px;margin:0;font-size:inherit;white-space:nowrap}
body.app-v2 .position-credit-preview .position-credit-choice input{width:14px;height:14px;min-height:0;margin:0;flex:none}
body.app-v2 .position-credit-preview .position-credit-detail{flex:1 1 100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
/* (c) schober24.com Deutschland | Schober, Thorsten: article editor within position entry. */
body.app-v2 .position-article-tools{display:flex;align-items:center;gap:8px;min-height:44px}
body.app-v2 .position-article-tools .position-secondary{margin:0}
body.app-v2 .position-article-edit{min-width:44px;min-height:44px;background:transparent;color:var(--muted,#52677c);border:0;box-shadow:none}
/* Embedded record editors use the available window; the frame owns scrolling. */
body.app-v2 dialog.position-article-dialog{width:calc(100vw - 32px);max-width:calc(100vw - 32px);height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);box-sizing:border-box;padding:16px;overflow:visible}
body.app-v2 dialog.position-article-dialog[open]{display:flex;flex-direction:column;gap:8px}
body.app-v2 dialog.position-article-dialog>.panel-head{flex:none;margin:0;padding:0 0 8px;gap:8px}
body.app-v2 dialog.position-article-dialog>.panel-head h2{margin:0;overflow-wrap:anywhere}
body.app-v2 dialog.position-article-dialog>p{flex:none;margin:0;font-size:.875rem}
body.app-v2 dialog.position-article-dialog>p:empty{display:none}
body.app-v2 dialog.position-article-dialog>.position-article-frame{flex:1 1 0;min-height:0;height:auto;background:var(--ui-surface,#fff)}
body.position-article-embedded .ui-embedded-navigation{position:sticky;top:0;z-index:20;background:var(--ui-surface,#fff);padding:4px 0}
body.app-v2.position-article-embedded #main-content .ui-embedded-navigation :is(.ui-tabs,.ui-tab-navigation){margin:0}
body.app-v2.position-article-embedded #main-content .customer-record-head{margin:0 0 8px;gap:8px}
body.app-v2.position-article-embedded #main-content .organization-panel{margin-top:8px;padding:12px}
body.app-v2.position-article-embedded #main-content .organization-panel>h2{margin:0 0 8px}
@media(max-width:700px){body.app-v2 dialog.position-article-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);padding:8px}body.position-article-embedded .ui-embedded-navigation{position:static}}
body.app-v2 .position-article-frame{display:block;width:100%;height:68vh;border:0;background:white}
body.app-v2 .position-article-frame[hidden]{display:none}
body.app-v2:is(.position-article-embedded,.ui-embedded-page){display:block!important;padding:0!important;margin:0!important;min-width:0!important}
body:is(.position-article-embedded,.ui-embedded-page)>aside,body:is(.position-article-embedded,.ui-embedded-page)>header,body:is(.position-article-embedded,.ui-embedded-page)>footer,body:is(.position-article-embedded,.ui-embedded-page)>.skip-link,body:is(.position-article-embedded,.ui-embedded-page)>[data-mobile-navigation]{display:none!important}
body.app-v2:is(.position-article-embedded,.ui-embedded-page) #main-content{margin:0!important;padding:12px!important;width:100%!important;max-width:none!important}

/* Compact recurring-list captions; retain touch-sized filter/sort controls. */
[data-recurring-list] th { white-space:normal; }
body.app-v2 #main-content [data-recurring-list] th .ui-column-filter { white-space:normal; max-width:9em; font-size:11px; line-height:1.3; }

/* Compact attachment choices retain accessible touch targets. */
.pos-mail-attachments label.check{display:flex;align-items:center;gap:.5rem;min-height:44px;margin:0;flex-wrap:wrap}
.pos-mail-attachments label.check .muted{font-size:.85em;font-weight:400;min-width:0;overflow-wrap:anywhere}
.pos-mail-attachments>p{margin:.25rem 0 .5rem}

/* Public decisions retain text labels as well as semantic colors. */
body.portal-shared button.offer-accept{background:#18733d!important;border-color:#18733d!important;color:#fff!important}
body.portal-shared button.offer-accept:hover{background:#10572d!important}
/* Included services share the same description edge; the unit column marks them as enthalten. */
body.portal-shared .portal-cost-summary{max-width:540px;margin:16px 0 16px auto;font-size:12px;color:#222;background:transparent}body.portal-shared .portal-cost-summary :is(th,td){padding:4px 8px;background:transparent;text-align:right}body.portal-shared .portal-cost-summary :is(th,td):first-child{text-align:left}
.portal-offer-review-actions{display:contents}
body.app-v2 #main-content .recurring-basics-columns fieldset:first-child .organization-fields>:is(small,.recurring-renewal-field){grid-column:1/-1}

/* Compact status details in the shared header and navigation. */
body.app-v2 aside .nav-unread-count{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:22px;height:22px;margin-left:10px;padding:0 4px;border:1px solid #929ca9;border-radius:50%;background:transparent;color:inherit;font-size:12px;line-height:1;vertical-align:middle;flex-shrink:0}
body.app-v2 aside .nav-unread-count[hidden]{display:none}
#live-mail-test-info{top:calc(var(--ui-header-height,80px) + 8px);right:16px;left:auto;bottom:auto;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - var(--ui-header-height,80px) - 24px)}

/* Native popover visibility must win over shared information-panel styles. */
#live-mail-test-info:not(:popover-open){display:none!important}
body.app-v2>header [popovertarget="live-mail-test-info"]{background:#e5f1ff;color:#075ab4;border:1px solid #87b8ed;box-shadow:none}
body.app-v2>header [popovertarget="live-mail-test-info"]:hover{background:#cfe5ff}
body.app-v2 #live-mail-test-info a{color:#315e8a}

/* Subscription terms: content-sized fields and adjacent terms, shared by every editor entry. */
body.app-v2 #main-content [data-recurring-basics]>.ui-field-group .organization-fields>label:only-child{grid-column:1/-1}
body.app-v2 #main-content [data-recurring-basics]>.ui-field-group .organization-fields{grid-template-columns:minmax(180px,280px) minmax(0,1fr)}
body.app-v2 #main-content .recurring-basics-columns{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px}
body.app-v2 #main-content .recurring-basics-columns>fieldset{min-width:0;margin:0;grid-column:auto}
body.app-v2 #main-content .recurring-basics-columns>fieldset .organization-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
body.app-v2 #main-content .recurring-basics-columns .ui-field-pair{display:contents}
body.app-v2 #main-content .recurring-basics-columns input[type=date]{max-width:200px}
body.app-v2 #main-content .recurring-basics-columns input[type=number]{max-width:112px}
body.app-v2 #main-content .recurring-basics-columns>fieldset:first-child .organization-fields>.recurring-renewal-field{grid-column:1/-1;grid-row:auto}
body.app-v2 #main-content .recurring-basics-columns .recurring-contract-conditions{grid-column:1/-1;width:100%}
body.app-v2 #main-content .recurring-contract-conditions textarea{width:100%;max-width:none;box-sizing:border-box}
body.app-v2 #main-content .recurring-contract-conditions .panel-head{margin:12px 0 8px;flex-wrap:wrap}
@media(min-width:1100px){
 body.app-v2 #main-content .recurring-basics-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.app-v2 #main-content .recurring-basics-columns>fieldset:first-child{grid-row:span 2}
}
@media(min-width:1600px){
 body.app-v2 #main-content .recurring-basics-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
 body.app-v2 #main-content .recurring-basics-columns>fieldset:first-child{grid-row:auto}
}
@media(max-width:599px){
 body.app-v2 #main-content [data-recurring-basics]>.ui-field-group .organization-fields,
 body.app-v2 #main-content .recurring-basics-columns>fieldset .organization-fields{grid-template-columns:minmax(0,1fr)}
}
body.app-v2 #main-content .recurring-contract-conditions>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
body.app-v2 #main-content .recurring-contract-conditions>summary::before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-right.svg') center/contain no-repeat;margin-right:8px}
body.app-v2 #main-content .recurring-contract-conditions[open]>summary::before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat}

/* Customer summary shares its header with the balance disclosure. */
body.app-v2 #main-content .customer-record-head{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.customer-record-head .customer-record-identity{flex:1 1 260px;min-width:0}.customer-record-head .customer-header-balances{flex:0 1 auto;max-width:100%}.customer-header-balances button{white-space:normal;max-width:100%}
body.app-v2 #main-content [data-segment-dialog]{width:min(1120px,calc(100vw - 32px))}
[data-segment-dialog] [data-segment-editor]{margin:0;min-width:0}[data-segment-dialog] .ui-form-columns{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
[data-segment-editor] #industry-list-actions{flex-wrap:wrap;justify-content:flex-start}
@media(max-width:1000px){[data-segment-dialog] .ui-form-columns{grid-template-columns:minmax(0,1fr)}}

/* Keep the entry action beside its tree label at every viewport size. */
.csys-tree-credential{display:flex;align-items:center;gap:4px}.csys-tree-credential>.ui-group-choice{flex:1;min-width:0}.csys-tree-credential>.ui-action-menu{flex:0 0 auto}
/* Affected person shares the compact document metadata row. */
body.app-v2 #main-content .pos-context-meta>[data-contact-field]{min-width:0}
body.app-v2 #main-content .pos-context-meta>[data-contact-field] label{margin:0}
@media(min-width:901px){body.app-v2 #main-content .pos-context-meta,body.app-v2 #main-content .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) repeat(2,minmax(0,1fr))}body.app-v2 #main-content .pos-context-meta>[data-pos-quote-field]:not([hidden]){grid-column:3/-1}}
@media(min-width:601px) and (max-width:900px){body.app-v2 #main-content .pos-context-meta>label:first-child{grid-column:auto}}

body.app-v2 #main-content .ui-heading-contact-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}
body.app-v2 #main-content .ui-heading-contact-row h1{margin:0}

body.app-v2 #main-content .pos-context-meta{align-items:start}
body.app-v2 #main-content .pos-context-meta>[data-contact-field] label{display:grid;align-content:start;min-width:0}

/* Clear case header groups: document facts and contact roles. */
body.app-v2 #main-content .pos-context-groups{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:stretch}
body.app-v2 #main-content .pos-context-groups>.ui-field-group{min-width:0;margin:0}
body.app-v2 #main-content .pos-context-groups .pos-document-subject{margin:0 0 12px}
body.app-v2 #main-content .pos-context-groups .pos-document-subject small{display:none}
body.app-v2 #main-content .pos-context-groups .pos-context-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
body.app-v2 #main-content .pos-context-groups .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:repeat(2,minmax(0,1fr))}
body.app-v2 #main-content .pos-context-groups .pos-context-meta>label{grid-column:auto}
body.app-v2 #main-content .pos-context-groups .pos-context-meta>[data-pos-quote-field]:not([hidden]){grid-column:auto}
body.app-v2 #main-content .pos-context-document{container-type:inline-size}
@container(min-width:740px){body.app-v2 #main-content .pos-context-groups .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){body.app-v2 #main-content .pos-context-groups .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:1fr}}
body.app-v2 #main-content .pos-context-people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
body.app-v2 #main-content .pos-context-people-grid>label{grid-column:1/-1}
body.app-v2 #main-content .pos-context-people-grid :is(label,[data-contact-field]){min-width:0;margin:0;align-content:start}
body.app-v2 #main-content .pos-context-people-grid label{display:grid}
body.app-v2 #main-content [data-contact-card]{text-align:left;white-space:normal}
@media(max-width:1100px){body.app-v2 #main-content .pos-context-groups{grid-template-columns:1fr}}
@media(max-width:600px){body.app-v2 #main-content .pos-context-groups .pos-context-meta,body.app-v2 #main-content .pos-context-people-grid{grid-template-columns:1fr}}

/* Task-grouped menus keep destructive actions in a separate footer. */
.ui-action-menu>div.ui-action-menu-organized>.ui-action-group-danger{grid-column:1/-1;border-top:1px solid #cbd9e6!important;padding-top:8px!important;margin-top:4px!important}
.ui-action-menu-organized .case-notification small{display:none}
.ui-action-menu-organized>.ui-action-group-danger :is(button,a.button){max-width:260px}
body.app-v2 .ui-action-menu .ui-action-group-danger button.secondary.danger{color:#b42318!important}

/* Public timeline separates the event heading from its content and optional files. */
.portal-history-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.portal-history-category{display:inline-block;color:#526d87;background:#e8f0f7;border-radius:4px;padding:3px 7px;font-size:12px}
.portal-history-content{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.portal-history-table tbody td{padding-top:14px;padding-bottom:14px;vertical-align:top}
.portal-history-table tbody td:first-child{width:170px}
body.portal-shared .portal-history-table td .ui-action-bar{justify-content:flex-start;margin-top:8px}
@media(max-width:600px){.portal-history-table thead{display:none}.portal-history-table tbody tr{display:block;border-bottom:1px solid #cbd9e6;padding:10px 0}.portal-history-table tbody td{display:block;width:auto!important;border:0;padding:6px 12px}.portal-history-table tbody td:first-child{padding-left:12px;color:#526d87}.portal-history-table tbody td:first-child::before,.portal-history-table tbody td:first-child::after{display:none}}

/* Customer notification dialogs use the shared header and form controls. */
.portal-notice-list{display:grid;gap:8px;margin-top:16px;max-height:55dvh;overflow:auto}.portal-notice-item{display:flex;justify-content:space-between;gap:16px;text-align:left;white-space:normal}.portal-notice-item[hidden]{display:none}.portal-notice-item>div{display:grid;gap:4px;min-width:0;overflow-x:auto}.portal-notice-item[data-notice-read="0"]{border-left:4px solid #527a9c}.portal-notice-item small{font-weight:normal;color:#526d87}.portal-notice-body{white-space:pre-wrap;overflow-wrap:anywhere}.portal-access-dialog iframe{width:100%;height:65dvh;border:0}.portal-access-dialog{width:min(900px,calc(100vw - 24px))}
body.portal-shared .portal-notice-item{display:flex!important;justify-content:space-between!important;text-align:left!important;align-items:center;gap:16px;padding:12px 16px!important;min-height:64px}body.portal-shared .portal-notice-item[hidden]{display:none!important}body.portal-shared .portal-notice-item[data-notice-read="0"]{border-left:4px solid #527a9c!important}body.portal-shared .portal-notice-item[data-notice-read="0"] .ui-record-link{font-weight:700}.portal-notice-item [data-notice-read-label]{flex-shrink:0;font-size:12px}

body.portal-shared.portal-embedded .portal-content{margin:0!important;padding:8px!important}body.portal-embedded .portal-surface{margin:0!important}body.portal-embedded .panel-head{position:static!important}

/* Ticket replies precede history; optional side-by-side reading retains the same editor. */
body.app-v2 #main-content .ticket-main,body.app-v2 #main-content .ticket-compose-column{min-width:0}
body.app-v2 #main-content .ticket-view-controls{margin:0 0 16px}
body.app-v2 #main-content .ticket-section-heading{align-items:end;gap:12px}
body.app-v2 #main-content .ticket-section-heading label{display:grid;gap:4px;margin:0;font-size:12px}
body.app-v2 #main-content .ticket-workspace-split{grid-template-columns:minmax(0,1fr)}
body.app-v2 #main-content .ticket-workspace-split .ticket-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(min-width:1280px){body.app-v2 #main-content .ticket-workspace-split .ticket-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}body.app-v2 #main-content .ticket-workspace-split .ticket-history{max-height:calc(100dvh - 120px);overflow:auto}body.app-v2 #main-content .ticket-workspace-split .ticket-compose-column{position:sticky;top:80px}}
@media(max-width:600px){body.app-v2 #main-content .ticket-workspace-split .ticket-sidebar{display:block}}
body.app-v2 #main-content .ticket-view-controls>label{display:flex!important;align-items:center;gap:8px;margin:0;min-height:44px}
body.app-v2 #main-content .ticket-address-group [data-ticket-recipient]{grid-template-columns:minmax(0,1fr);margin:0}
body.app-v2 #main-content .ticket-address-group .ticket-recipients{margin:12px 0 0;display:block}
body.app-v2 #main-content .ticket-address-group .ticket-recipients label{display:grid;gap:4px;margin:0}
body.app-v2 #main-content .ticket-address-group select{width:100%}
body.app-v2 #main-content .ticket-address-lists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}body.app-v2 #main-content .ticket-address-lists label{min-width:0;margin:0}body.app-v2 #main-content .ticket-contact-add{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:8px;align-items:end;margin:16px 0}body.app-v2 #main-content .ticket-contact-add label{margin:0;min-width:0}.ticket-message-head strong{overflow-wrap:anywhere;min-width:0}
@media(max-width:900px){body.app-v2 #main-content .ticket-address-lists{grid-template-columns:1fr}body.app-v2 #main-content .ticket-contact-add{grid-template-columns:minmax(0,1fr) auto}body.app-v2 #main-content .ticket-contact-add>label:first-child{grid-column:1/-1}}
@media(min-width:1280px){body.app-v2 #main-content .ticket-workspace-split .ticket-address-lists{grid-template-columns:1fr}}

/* Dashboard owns vertical scrolling; embedded planning lists use its height. */
body.app-v2 #main-content .dashboard-widget-body .planning-items{max-height:none;overflow:visible}
/* Live mail settings: shared switch, persistent editing and floating save feedback. */
[data-live-mail-autosave] input[role="switch"]:checked{background-color:#18794e!important;border-color:#18794e!important}
.live-mail-save-overlay{position:fixed!important;right:20px;bottom:20px;z-index:10000;max-width:calc(100vw - 40px);padding:12px 16px;background:#edf6ff;border:1px solid #b7cce2;border-radius:8px;box-shadow:0 4px 18px #0002;display:flex;gap:8px;align-items:center}
.live-mail-save-overlay[hidden]{display:none!important}

/* Dialogs use one dimmed backdrop, without blur. */
dialog::backdrop{background:rgba(15,23,42,.48)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* Shared image previews and compact settings rows. */
.ui-photo-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:12px;min-width:0}.ui-photo-gallery figure{margin:0;min-width:0}.ui-photo-gallery a{display:block;min-height:44px;border-radius:8px;overflow:hidden}.ui-photo-gallery img{display:block;width:100%;height:140px;object-fit:contain;background:#fff;border:1px solid var(--ui-border,#ccd9e4);box-sizing:border-box;border-radius:8px}.ui-photo-gallery figcaption{font-size:13px;margin-top:6px;overflow-wrap:anywhere}.ui-photo-dialog{width:min(960px,calc(100vw - 32px))}.ui-photo-dialog>[data-photo-large]{display:block;max-width:100%;max-height:70vh;object-fit:contain;margin:auto}.ui-inline-setting{padding:16px!important;display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px}.ui-inline-setting>button{min-height:44px;margin:0}.ui-inline-setting>span{min-width:0}

@media(max-width:520px){.ui-inline-setting{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}.ui-inline-setting>strong{grid-column:1;grid-row:1}.ui-inline-setting>button{grid-column:2;grid-row:1}.ui-inline-setting>span{grid-column:1/-1;grid-row:2}}

/* Partner conditions: one aligned row per article and unit. */
body.app-v2 .partner-price-row{grid-template-columns:minmax(220px,2fr) minmax(110px,1fr) minmax(110px,1fr) auto;align-items:end;margin-bottom:12px}
@media(max-width:900px){body.app-v2 .partner-price-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){body.app-v2 .partner-price-row{grid-template-columns:minmax(0,1fr)}}

/* Compact recipient fields; CC/BCC are progressively disclosed by the shared editor. */
body.app-v2 #main-content .ticket-address-lists{grid-template-columns:1fr;gap:8px}
body.app-v2 #main-content .ticket-address-lists textarea{height:44px;min-height:44px;resize:vertical;line-height:20px;padding-top:11px;padding-bottom:11px}
/* Shared compact recipient chips and searchable add dialog. */
body.app-v2 #main-content .ticket-recipient-summary{display:flex;gap:8px;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
body.app-v2 #main-content .ticket-recipient-summary[hidden],body.app-v2 #main-content [data-recipient-fallback][hidden]{display:none}
.ticket-recipient-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.ticket-recipient-row>strong{min-width:32px;font-size:12px}.ticket-recipient-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--ui-border);border-radius:6px;padding-left:8px;max-width:100%;background:#fff}.ticket-recipient-chip>span{overflow-wrap:anywhere;min-width:0}.ticket-recipient-chip>button{flex:0 0 44px!important;padding:0!important;width:44px!important;border:0!important}.ticket-recipient-roles{display:flex;gap:24px;flex-wrap:wrap}.ticket-recipient-results{display:grid;gap:6px;max-height:240px;overflow:auto;margin-top:12px}.ticket-recipient-results>button{text-align:left;white-space:normal;overflow-wrap:anywhere}

/* Save feedback stays outside document flow; original nodes retain editor handlers. */
[data-ui-save-origin],[data-ui-save-action]{display:none!important}
.ui-save-notices{margin:0!important;padding:0!important;position:fixed;right:20px;bottom:calc(80px + env(safe-area-inset-bottom,0px));width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 120px);overflow:auto;display:flex;flex-direction:column;gap:8px;z-index:11000;pointer-events:none;box-sizing:border-box}
.ui-save-notice{padding:12px 16px;border:1px solid #b7cce2;border-left:4px solid #4674a3;border-radius:8px;background:#edf6ff;color:#263b54;box-shadow:0 4px 18px #0002;font-size:14px;line-height:1.5;overflow-wrap:anywhere;pointer-events:auto}
.ui-save-notice[data-state=saved]{border-left-color:#247a4a;background:#eff9f2}.ui-save-notice[data-state=pending]{border-color:#e4d3a0;border-left-color:#ad7b12;background:#fff9eb;color:#74530c}.ui-save-notice[data-state=error]{border-color:#edb7b7;border-left-color:#bc2424;background:#fff1f1;color:#9e1b1b}
.ui-save-notice .form-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0!important}.ui-save-notice button{min-height:44px!important;width:auto!important;padding:8px 12px!important}.ui-save-notice .form-actions>button{flex:0 1 auto!important;min-width:44px!important;max-width:100%;white-space:normal;overflow-wrap:anywhere}.ui-save-notices:empty{display:none}
dialog>.ui-save-notices{bottom:calc(16px + env(safe-area-inset-bottom,0px))}
@media(max-width:900px){.ui-save-notices{right:16px;bottom:calc(144px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 190px)}}
@media print{.ui-save-notices{display:none!important}}

/* Live system-font samples in a top-layer dropdown; editor selection stays intact. */
.ticket-formatbar [data-editor-font][hidden]{display:none!important}.ticket-font-trigger{min-width:140px;text-align:left}
.ticket-font-picker[popover]{position:fixed;inset:auto;margin:0;box-sizing:border-box;width:280px;max-height:360px;overflow:auto;padding:8px;border:1px solid var(--ui-border,#cbd7e5);border-radius:8px;background:#fff;box-shadow:0 8px 26px #172b4d33}
.ticket-font-picker[popover]:popover-open{display:grid;gap:4px}.ticket-font-picker::backdrop{background:transparent!important}.ticket-font-picker button{min-height:44px!important;width:100%;padding:8px 12px!important;justify-content:flex-start!important;text-align:left!important;font-size:16px!important;font-weight:400!important;background:#fff;color:#263b54;border:1px solid #cbd7e5}.ticket-font-picker button:hover{background:#f0f5fa;color:#263b54}.ticket-font-picker [aria-selected=true]{background:#e8f0fb;border-color:#4674a3;color:#263b54}
.ticket-edit-surface pre,.ticket-body pre{padding:12px;border:1px solid #cbd7e5;border-radius:6px;background:#f2f5f9;white-space:pre-wrap;font-family:monospace}.ticket-edit-surface blockquote{border-left:3px solid #7795b8;padding-left:14px;margin-left:0}

/* Shared inline-image controls, excluded from message HTML. */
.ticket-editor{position:relative}.ticket-image-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px;background:#eef4fa;border-bottom:1px solid #cbd7e5}.ticket-image-tools[hidden],.ticket-image-resize[hidden]{display:none!important}.ticket-image-name{flex:1;min-width:120px;overflow-wrap:anywhere}.ticket-image-tools label{display:flex!important;align-items:center;gap:8px;margin:0!important}.ticket-image-tools input{width:90px!important;margin:0!important}.ticket-image-selected{outline:2px solid #4674a3;outline-offset:2px}.ticket-image-resize{position:absolute;transition:none!important;width:44px;min-height:44px;z-index:2;touch-action:none;cursor:nwse-resize;background:#fff!important;color:#263b54!important;border:1px solid #4674a3!important}.ticket-image-moving{cursor:crosshair}.ticket-edit-surface img{cursor:grab}.ticket-edit-surface img:active{cursor:grabbing}

/* Compact read-only contact directory: shared field and focus styles remain authoritative. */
body.app-v2 .ui-contact-directory{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px;min-width:0}
body.app-v2 .ui-contact-directory li{min-width:0}
body.app-v2 .ui-contact-directory .ui-contact-directory-entry{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,1.3fr) minmax(0,1fr);gap:12px;width:100%;min-height:44px;padding:12px!important;text-align:left;white-space:normal}
body.app-v2 .ui-contact-directory-person,body.app-v2 .ui-contact-directory-value{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
body.app-v2 .ui-contact-directory small{font-size:12px;line-height:1.4}
@media(max-width:600px){body.app-v2 .ui-contact-directory .ui-contact-directory-entry{grid-template-columns:minmax(0,1fr);gap:8px}}

/* Shared three-field rows, with the existing narrow-screen stacking rule. */
@media(min-width:1051px){body.app-v2 #main-content .ui-form-columns.ui-three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ui-form-columns>.ui-column-full{grid-column:1/-1}

/* Shared status dimensions for editable and read-only case list fields. */
body.app-v2 #main-content .ui-case-status-field{box-sizing:border-box;display:inline-flex;align-items:center;width:240px;min-width:180px;max-width:100%;height:44px;min-height:44px;margin:0;padding:10px 12px;border:1px solid;border-radius:7px!important;font-size:14px!important;font-weight:400;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;vertical-align:middle}
@media(max-width:900px){body.app-v2 #main-content .ui-case-status-field{font-size:16px!important}}
body.app-v2 #main-content .case-inline-field.case-inline-status{width:240px;min-width:180px;max-width:100%}

/* Shared delivery-choice dialog: ordinary field sizes and horizontal action bar. */
/* Choice rows provide their own spacing; avoid an additional grid gap between them. */
.ui-form-stack:has(>.ui-invoice-delivery-option){gap:0}
.ui-dialog-body.ui-form-stack>p{margin-block:0}
.ui-invoice-delivery-option{display:flex!important;align-items:center;gap:12px!important;min-height:44px;margin:0;padding:8px 0;border-bottom:1px solid var(--ui-line,#d3dce6);font-weight:400}.ui-invoice-delivery-option>input{flex:0 0 auto;width:20px;height:20px;margin:0}.ui-invoice-delivery-option>span{min-width:0}.ui-invoice-delivery-option small{display:block;margin-top:4px;font-weight:400}.ui-invoice-delivery-option:has(input:disabled){opacity:.65}[data-invoice-conversion-result-rows] li{margin-block:12px}[data-invoice-conversion-result-rows] .button{white-space:normal;text-align:left;overflow-wrap:anywhere}

/* Shared workshop intake identification row; regular card/field sizes retained. */
body.app-v2 #main-content [data-workshop-device] .workshop-device-identity{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 18px;grid-column:1/-1;min-width:0}
body.app-v2 #main-content [data-workshop-device] .workshop-device-identity>label{display:flex;flex-direction:column;gap:8px;margin:0;min-width:0;font-size:12px;font-weight:600}
@media(max-width:1050px){body.app-v2 #main-content [data-workshop-device] .workshop-device-identity{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){body.app-v2 #main-content [data-workshop-device] .workshop-device-identity{grid-template-columns:1fr}}

/* Workshop context uses shared document groups; device details precede them. */
body.app-v2 #main-content .workshop-context-people>label{grid-column:auto}
body.app-v2 #main-content .workshop-device-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
body.app-v2 #main-content .workshop-device-groups>.ui-field-group{margin:0;min-width:0}
body.app-v2 #main-content .workshop-device-groups label{display:grid;margin:0 0 12px;min-width:0}
body.app-v2 #main-content .workshop-device-groups label:last-child{margin-bottom:0}
@media(max-width:650px){body.app-v2 #main-content .workshop-device-groups{grid-template-columns:1fr}}
body.app-v2 #main-content .pos-context-groups.workshop-context-section{grid-template-columns:1fr}
@media(min-width:901px){body.app-v2 #main-content .pos-context-groups .workshop-context-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}
body.app-v2 #main-content .workshop-context-top{margin-bottom:16px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
body.app-v2 #main-content .workshop-context-top>.ui-field-group{margin:0;min-width:0}
body.app-v2 #main-content .workshop-main-fields{min-width:0}
@media(max-width:1100px){body.app-v2 #main-content .workshop-context-top{grid-template-columns:1fr}}

/* Shared tree selection inside compact dialogs. */
.ui-tree-picker{max-height:40vh;overflow:auto;min-width:0}.ui-tree-picker ul{list-style:none;padding:0;margin:0}.ui-tree-picker ul ul{padding-left:20px}.ui-tree-picker .form-actions{margin:8px 0}.ui-tree-picker button{white-space:normal;overflow-wrap:anywhere;text-align:left}.ui-tree-picker button[aria-pressed=true]{background:#dcecff;color:#245b94;border-color:#5d90c4}
.ui-tree-picker .form-actions{justify-content:flex-start!important;gap:8px}.ui-tree-picker button[aria-expanded]{flex:0 0 44px;padding:8px;text-align:center}.ui-tree-picker button[aria-pressed]{flex:1 1 auto}

/* Broad expandable document sections avoid narrow, tall sidebars. */
body.app-v2 #main-content .ui-document-segments{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start;min-width:0}
body.app-v2 #main-content .ui-document-segments>.ui-field-group{margin:0;min-width:0}
body.app-v2 #main-content .ui-document-segments>.ui-field-group:nth-child(3),body.app-v2 #main-content .ui-document-segments>.pos-document-header{grid-column:1/-1;margin:0}
body.app-v2 #main-content .ui-document-segments .pos-document-subject{display:block;margin-bottom:12px}
body.app-v2 #main-content .ui-document-segments .pos-context-meta,body.app-v2 #main-content .ui-document-segments .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0}
body.app-v2 #main-content .ui-document-segments .pos-context-people-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}
body.app-v2 #main-content .ui-document-segments .pos-context-meta>label,body.app-v2 #main-content .ui-document-segments .pos-context-meta>[data-pos-quote-field]:not([hidden]),body.app-v2 #main-content .ui-document-segments .pos-context-people-grid>label{grid-column:auto}
body.app-v2 #main-content .ui-document-segments .pos-header-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.app-v2 #main-content .ui-document-segments .pos-header-fields>label{grid-column:auto}
body.app-v2 #main-content .ui-document-segments .pos-header-fields>.pos-field-full,body.app-v2 #main-content .ui-document-segments .ui-payment-terms-row{grid-column:1/-1}
body.app-v2 #main-content .ui-document-segments .pos-document-header{margin-top:12px}
body.app-v2 #main-content .ui-document-segments>.pos-document-header{margin-top:0}
body.app-v2 #main-content .ui-document-segments .ui-form-columns.ui-three-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
body.app-v2 #main-content .ui-payment-terms-row{display:grid;grid-template-columns:110px minmax(200px,1fr) 110px 140px minmax(180px,1fr);gap:12px;align-items:start;min-width:0}
body.app-v2 #main-content .ui-payment-terms-row>label{min-width:0;margin:0}
body.app-v2 #main-content .ui-payment-terms-row input[type=number],body.app-v2 #main-content .ui-payment-terms-row input[name=terms_discount]{max-width:140px}
@media(min-width:1700px){body.app-v2 #main-content .ui-document-segments .pos-context-meta,body.app-v2 #main-content .ui-document-segments .pos-context-meta:has([data-pos-quote-field]:not([hidden])){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px){body.app-v2 #main-content .ui-document-segments{grid-template-columns:1fr}body.app-v2 #main-content .ui-payment-terms-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body.app-v2 #main-content .ui-document-segments .pos-context-meta,body.app-v2 #main-content .ui-document-segments .pos-context-meta:has([data-pos-quote-field]:not([hidden])),body.app-v2 #main-content .ui-document-segments .pos-context-people-grid,body.app-v2 #main-content .ui-document-segments .pos-header-fields,body.app-v2 #main-content .ui-document-segments .ui-form-columns.ui-three-columns,body.app-v2 #main-content .ui-payment-terms-row{grid-template-columns:1fr}}

body.app-v2 #main-content .ui-payment-terms-row>label:has([name=due_date]){grid-column:1/-1;width:240px;max-width:100%}

/* Billing customer is the third recipient column, inside payment and delivery. */
@media(min-width:1101px){body.app-v2 #main-content .ui-document-segments .ui-form-columns.ui-recipient-billing-row:has([data-billing-customer-controls]){grid-template-columns:repeat(3,minmax(0,1fr))}}
body.app-v2 #main-content .ui-recipient-billing-row>[data-billing-customer-slot]{min-width:0}
body.app-v2 #main-content .ui-recipient-billing-row [data-billing-customer-controls]{margin:0;padding:0;border:0;background:none;box-shadow:none}

/* Whole-section chevrons follow the existing right-aligned disclosure UI. */
body.app-v2 #main-content .pos-context-document>.ui-document-segments{padding:14px}
body.app-v2 #main-content .pos-context-document>summary{min-height:52px}
body.app-v2 #main-content .ui-collapsible-panel>.panel-head{display:flex;align-items:center;gap:12px}
body.app-v2 #main-content button.ui-panel-disclosure{flex:0 0 44px;min-width:44px;min-height:44px;margin:0 0 0 auto;padding:0;border:0!important;box-shadow:none!important;background:transparent!important;color:#526d87!important;font:inherit;cursor:pointer}
body.app-v2 #main-content .ui-panel-disclosure::after{content:'⌃';font-size:18px}
body.app-v2 #main-content .ui-panel-disclosure[aria-expanded=false]::after{content:'';display:inline-block;width:18px;height:18px;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat}
body.app-v2 #main-content .ui-panel-disclosure:focus-visible{outline:2px solid #376c9d;outline-offset:2px}
body.app-v2 #main-content .ui-collapsible-panel[data-ui-collapsed="1"]>:not(.panel-head):not(input):not(script),body.app-v2 #main-content .ui-collapsible-panel[data-ui-collapsed="1"]>.panel-head>.form-actions{display:none!important}

/* Shared disclosure target for optional form sections. */
.ui-disclosure>summary{box-sizing:border-box;min-height:44px;cursor:pointer;align-content:center}

/* Contact identification remains visible beside selection and row actions. */
@media(max-width:700px){body.app-v2 #main-content .customer-record-table [data-contact-row]>td.ui-contact-identity{display:table-cell;overflow-wrap:anywhere}.ui-contact-identity .badge{white-space:normal}}

.ui-contact-identity .badge{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* Shared searchable select: compact light results and complete page navigation. */
body.app-v2 .searchable-select-results{max-height:min(350px,50vh);overflow:auto;background:var(--ui-soft,#f2f7fb)}
body.app-v2 .searchable-select-results .searchable-select-option{display:block;min-height:44px;width:100%;padding:8px 12px;border:0;border-bottom:1px solid var(--ui-border,#cad9e8);border-radius:0;text-align:left;white-space:normal;overflow-wrap:anywhere;font-weight:500;background:var(--theme-secondary,#fff);color:var(--theme-text,#263747)}
body.app-v2 .searchable-select-results .searchable-select-option:hover,body.app-v2 .searchable-select-results .searchable-select-option:focus-visible{background:var(--ui-soft,#e7f0fa)}
.searchable-select-navigation{display:flex;align-items:center;gap:8px;padding:8px;position:sticky;bottom:0;background:var(--ui-soft,#f2f7fb);border-top:1px solid var(--ui-border,#cad9e8)}
.searchable-select-navigation>span{flex:1;font-size:12px}.searchable-select-navigation>button{width:auto;min-height:44px;padding:8px;border-radius:6px;white-space:nowrap}.searchable-select-options>p{padding:8px 12px;margin:0}

body.app-v2 dialog .searchable-select-results{position:relative;top:auto;margin-top:4px}

body.app-v2 .universal-search-popover>.searchable-select-navigation{top:0;bottom:auto;z-index:1;margin-bottom:8px}

/* Native document columns; child tables span the selected document's full width. */
body.app-v2 #main-content .ui-history-groups{width:100%;min-width:0;table-layout:fixed}
body.app-v2 #main-content .ui-history-groups>thead>tr>th:first-child{width:64px}
body.app-v2 #main-content .ui-history-groups>thead>tr>th:nth-child(2){width:18%}
body.app-v2 #main-content .ui-history-groups>thead>tr>th:nth-child(3){width:14%}
body.app-v2 #main-content .ui-history-groups>thead>tr>th:nth-child(4){width:19%}
body.app-v2 #main-content .ui-history-groups>thead>tr>th:nth-child(5){width:16%}
body.app-v2 #main-content .ui-history-groups>thead>tr>th:last-child{width:104px}
body.app-v2 #main-content .ui-history-groups>tbody>tr>td{min-width:0;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
.ui-history-groups [data-history-document] small{display:block;margin-top:4px}
body.app-v2 #main-content .ui-history-groups [data-history-child-for]>td{padding:8px 12px 12px 76px;background:var(--ui-soft,#eef5fc)}
body.app-v2 #main-content .ui-history-entries{width:100%;min-width:720px;table-layout:fixed}
body.app-v2 #main-content .ui-history-entries :is(th,td){min-width:0;white-space:normal;overflow-wrap:anywhere}
.ui-history-entries th:nth-child(1){width:16%}.ui-history-entries th:nth-child(2){width:24%}.ui-history-entries th:nth-child(3){width:18%}.ui-history-entries th:nth-child(4){width:30%}.ui-history-entries th:nth-child(5){width:12%}
[data-history-print-links]{display:contents}

/* Dashboard totals use the shared count badges and remain readable when collapsed. */
.dashboard-heading-link{flex-wrap:nowrap;max-width:100%}.dashboard-heading-link>:is(.dashboard-expanded-title,.dashboard-compact-title){min-width:0;overflow-wrap:anywhere}.dashboard-heading-link>.dashboard-collapsed-count{flex:none;margin-left:0}
body.app-v2 #main-content .dashboard-card>.panel-head{min-height:var(--dashboard-row-heading-height,44px);align-content:flex-start;align-items:flex-start}
body.app-v2 #main-content .dashboard-card>.panel-head h2{flex:1 1 max-content;min-width:0;max-width:100%}
.dashboard-heading-actions{flex-wrap:wrap;max-width:100%}
.dashboard-heading-summary{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;max-width:100%;font-size:13px}
.dashboard-heading-summary .dashboard-collapsed-count{margin-left:0;white-space:nowrap}

/* Compact value fields keep their labels readable without stretching short values. */
body.app-v2 .ui-compact-fields>label.ui-field-small{flex:0 1 12rem;min-width:0;max-width:100%}
body.app-v2 .ui-compact-fields>label.ui-field-small>input{width:100%;max-width:8rem;min-height:44px}

/* Payment setup stays in the shared dialog; the overview shows its purpose and state. */
body.portal-shared .portal-payment-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
body.portal-shared .portal-payment-settings:has([data-sepa-setup]){grid-template-columns:repeat(2,minmax(0,1fr))}
body.portal-shared .portal-payment-settings>.portal-payment-consent{grid-column:1 / -1}
body.portal-shared .portal-payment-settings>.portal-surface{min-width:0}
body.portal-shared .portal-setup-dialog{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box}
body.portal-shared .portal-setup-dialog .ui-payment-entry{max-width:none}
body.portal-shared .portal-setup-dialog .form-actions{flex-wrap:nowrap;overflow-x:auto}
@media(max-width:800px){body.portal-shared .portal-payment-settings,body.portal-shared .portal-payment-settings:has([data-sepa-setup]){grid-template-columns:minmax(0,1fr)}}
body.portal-shared dialog.ui-dialog[data-portal-notice-detail]>.panel-head{display:flex;flex-wrap:wrap;min-width:0}
body.portal-shared dialog.ui-dialog[data-portal-notice-detail]>.panel-head>.form-actions{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%;min-width:0;justify-content:flex-start;gap:8px}
body.portal-shared dialog.ui-dialog[data-portal-notice-detail]>.panel-head>.form-actions>*{flex:none;white-space:nowrap;min-height:44px}

/* Credential previews wrap within the existing tree/list width. */
.csys-username-preview{font-weight:400;color:var(--muted,#587086);overflow-wrap:anywhere;white-space:normal}

.csys-credential-caption{min-width:0;overflow-wrap:anywhere;white-space:normal}.csys-credential-icon{flex-shrink:0}
@media(max-width:640px){.csys-tree-credential{padding-inline-start:24px!important}.csys-username-preview{display:block;font-size:12px}}

/* Preset fields share a grid row, not stacked fieldset separators. */
body.app-v2 #main-content [data-csys] fieldset.ui-field-group[data-preset]{margin:0;padding:0;border:0;min-width:0}
body.app-v2 #main-content [data-csys] fieldset.ui-field-group[data-preset]>.form-grid{grid-template-columns:minmax(0,1fr)}

/* Compact read-only values adapt to their containing pane. */
body.app-v2 #main-content .ui-value-grid,body.portal-shared .ui-value-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.ui-value-grid>*{min-width:0}

/* Shared value grids keep primary values paired and long text full-width. */
.ui-value-grid>.ui-grid-full{grid-column:1/-1}
:is(body.app-v2 #main-content,body.portal-shared) .ui-value-grid>.csys-value-row{grid-template-columns:minmax(0,1fr);gap:8px}
:is(body.app-v2 #main-content,body.portal-shared) .ui-value-grid>.csys-value-row>.form-actions{justify-self:end}
@media(max-width:1000px){body.app-v2 #main-content .ui-value-grid,body.portal-shared .ui-value-grid{grid-template-columns:minmax(0,1fr)}}
.ui-value-grid textarea[rows="2"]{min-height:64px;overflow-wrap:anywhere}

/* Hierarchische Mehrfachauswahl mit gemeinsamem Zeilenraster. */
.ui-selection-tree-row{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px;border-bottom:1px solid var(--border,#ccdae6)}
.ui-selection-tree-check{display:flex!important;align-items:center;justify-content:center;flex:0 0 44px;min-height:44px;margin:0!important}.ui-selection-tree-check>input[type="checkbox"]{width:22px;height:22px;margin:0}
.ui-selection-tree-row>button{flex:none;min-width:44px;min-height:44px;padding:4px}
.ui-selection-tree-title{flex:1;min-width:0;overflow-wrap:anywhere}
.ui-selection-tree-row>.muted{flex:none}
.ui-selection-tree-children{margin-left:24px;border-left:1px solid var(--border,#ccdae6)}
.ui-selection-tree>.ui-selection-tree-node>.ui-selection-tree-row{background:#e2edf7;font-weight:600}
@media(max-width:600px){.ui-selection-tree-children{margin-left:10px}.ui-selection-tree-row{flex-wrap:wrap}.ui-selection-tree-row>.muted{font-size:12px}.ui-selection-tree-check>input[type="checkbox"]{width:22px;height:22px}}

/* Day summaries size themselves to content, not elapsed hours. */
.planner-timeline-segment>div{min-height:44px}
.planner-day-content.planner-day-readonly{display:block}

/* Shop results and sorting share one responsive toolbar. */
.shop-result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:12px 0 16px}.shop-result-toolbar .shop-result-count{margin:0}.shop-result-toolbar form{margin:0}.shop-result-toolbar label{display:block;font-size:13px;margin-bottom:5px}.shop-result-toolbar .shop-sort{align-items:center}.shop-result-toolbar .shop-sort :is(select,button){min-height:44px}
@media(max-width:600px){.shop-result-toolbar{align-items:stretch}.shop-result-toolbar form{width:100%}.shop-result-toolbar .shop-sort select{min-width:0;flex:1}}

/* Shop price bounds use the displayed customer price and compact paired inputs. */
.shop-price-filter{margin:20px 0 0}.shop-price-filter fieldset{margin:0;padding:0;border:0;min-width:0}.shop-price-filter legend{font-weight:700;margin-bottom:8px}.shop-price-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shop-price-fields label{min-width:0}.shop-price-fields input{width:100%;min-width:0;min-height:44px;font-size:16px}body.shop-storefront .shop-price-filter .form-actions{gap:8px;flex-wrap:wrap;margin:16px 0 0}.shop-price-filter .form-actions button,.shop-price-filter .form-actions a{min-height:44px}.shop-price-filter .form-actions a{display:inline-flex;align-items:center}

/* Shop catalog property filters use the same compact sidebar controls. */
.shop-property-filter{margin-top:16px}.shop-property-filter fieldset{min-width:0;margin:0;padding:12px}.shop-property-filter legend{font-weight:600}.shop-property-filter label{display:grid;gap:6px;margin:0 0 12px}.shop-property-filter label.check{display:flex;align-items:center;gap:8px;min-height:44px}.shop-property-filter select{max-width:100%;min-height:44px;font-size:16px}body.shop-storefront .shop-property-filter .form-actions{margin:16px 0 0}.shop-property-filter .form-actions a{min-height:44px;display:flex;align-items:center;white-space:normal}

/* Restricted standalone workspaces share controls without reserving app navigation space. */
body.app-v2.ui-standalone #main-content{margin:0;padding:var(--ui-gutter) var(--ui-gutter) 32px}

/* (c) schober24.com Deutschland | Schober, Thorsten: advisory credit period details. */
body.app-v2 .position-credit-periods{flex:1 1 100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
body.app-v2 :is(.position-credit-periods,.position-credit-explanation)>summary{display:flex;align-items:center;min-height:44px;cursor:pointer}
body.app-v2 :is(.position-credit-periods,.position-credit-explanation)>summary::before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-right.svg') center/contain no-repeat;margin-right:8px}
body.app-v2 :is(.position-credit-periods,.position-credit-explanation)[open]>summary::before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat}
body.app-v2 :is(.position-credit-periods,.position-credit-explanation)>p{margin:0 0 8px}

/* Shared native file picker with the same touch target as other form actions. */
body.app-v2 :is(#main-content,dialog) input.ui-file-input[type=file]{min-height:var(--ui-field-height,44px);max-width:100%;padding:0;box-sizing:border-box;font:inherit}
body.app-v2 :is(#main-content,dialog) input.ui-file-input[type=file]::file-selector-button{min-height:var(--ui-field-height,44px);margin-right:8px;padding:10px 14px;border:1px solid var(--ui-line,#c6d1dd);border-radius:7px;background:#fff;color:var(--ui-ink,#283747);font:inherit;cursor:pointer}

/* Shared visual image choice, with normal dialog and action layout. */
.ui-image-choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:12px;margin:16px 0}.ui-image-choice{display:flex!important;flex-direction:column;align-items:stretch;gap:8px;white-space:normal!important;height:auto!important;min-width:0;text-align:left}.ui-image-choice img{width:100%;height:100px;object-fit:contain;background:#fff}.ui-image-choice span{overflow-wrap:anywhere}.ui-image-choice small{color:var(--ui-muted)}

/* Bounded page navigation: stays within the shared panel at every page count. */
.ui-page-navigation{display:flex;flex-wrap:wrap;align-items:end;gap:16px;margin-top:16px;max-width:100%;min-width:0}.ui-page-navigation>p{flex-basis:100%;margin:0}.ui-page-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;max-width:100%}.ui-page-links>.button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.ui-page-links>[aria-current=page]{background:#293a4c;color:#fff}.ui-page-jump{display:flex;flex-wrap:wrap;align-items:end;gap:16px;margin:0;margin-left:auto;max-width:100%}.ui-page-jump label{margin:0}.ui-page-jump input{width:100px;max-width:100%;font-size:16px}.ui-page-jump button{min-height:44px}@media(max-width:600px){.ui-page-jump{margin-left:0;width:100%}}

/* Public vault reuses the internal master/detail and flat tree components. */
body.portal-shared .vault-public-grid{grid-template-columns:minmax(240px,38%) minmax(0,1fr);margin-top:16px}
body.portal-shared .vault-public-grid .ui-master-pane{height:65vh;min-height:320px;overflow:auto}
body.portal-shared .vault-public-grid .ui-group-row>button{background:transparent;border:0;box-shadow:none;margin:0;text-align:left;justify-content:flex-start;min-height:44px;color:var(--portal-ink)}
body.portal-shared .vault-public-grid .ui-group-row:has([aria-pressed=true]){background:#dceaf6}
body.portal-shared .vault-public-grid .ui-group-row:hover{background:#edf4fa}
body.portal-shared .vault-public-grid [data-vault-detail]:empty{display:none}
body.portal-shared .vault-public-grid [data-vault-entries] .ui-group-choice{width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){body.portal-shared .vault-public-grid{grid-template-columns:minmax(0,1fr)}body.portal-shared .vault-public-grid .ui-master-pane{height:auto;min-height:0;max-height:40vh}body.portal-shared .vault-public-grid .csys-content-panes{height:auto;max-height:none;overflow:visible}}

/* Shared spacious dialog for tables; small screens retain internal table scrolling. */
:is(body.app-v2,body.portal-shared) dialog.ui-dialog.ui-dialog-table,body.app-v2 #main-content dialog.ui-dialog-table{width:min(1120px,calc(100vw - 32px))}

body.app-v2 .position-credit-explanation{flex:0 1 auto;order:-1;min-width:0;white-space:normal;overflow-wrap:anywhere}
body.app-v2 .position-credit-preview .position-credit-choice{order:-2}
/* Keep the columns control aligned when its accessible 44px information button is present. */
:is(body.app-v2,body.portal-shared) #main-content .list-columns-menu>summary{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ui-field-height,44px);min-height:var(--ui-field-height,44px);padding-block:0!important}

/* Common action categories: one clear reading order, no uneven column packing. */
:is(body.app-v2,body.portal-shared) .ui-action-categories{display:flex!important;flex-direction:column;grid-template-columns:none!important;gap:4px!important;width:var(--ui-action-menu-width,min(380px,calc(100vw - 32px)))!important;min-width:0!important;max-width:calc(100vw - 16px)!important;padding:var(--ui-action-menu-padding,8px)!important;box-sizing:border-box;overflow:auto}
.ui-action-categories.ui-action-popover:popover-open{position:fixed!important;inset:auto;margin:0;z-index:100;max-height:calc(100dvh - 16px);background:var(--ui-panel,#f4f8fc);border:1px solid var(--ui-line,#ccd6e2);border-radius:10px;box-shadow:0 8px 28px #182b4620}
.ui-action-categories.ui-action-popover:not(:popover-open){display:none!important}
:is(body.app-v2,body.portal-shared) .ui-action-categories>.ui-action-group{display:block;margin:0!important;padding:0!important;border:0!important;min-width:0}
.ui-action-categories>.ui-action-group>.ui-action-group-title{padding:0!important;margin:0!important}
:is(body.app-v2,body.portal-shared) .ui-action-categories [data-action-category]{display:flex!important;align-items:center;justify-content:space-between!important;width:100%;min-height:44px;padding:10px 12px!important;margin:0;border:0!important;border-radius:6px;background:transparent!important;color:var(--ui-text,#243747)!important;font-size:14px;font-weight:700;text-align:left;white-space:normal;gap:12px;box-shadow:none!important}
.ui-action-categories-folded [data-action-category]::after{content:'';display:inline-block;width:18px;height:18px;background:currentColor;mask:url('vendor/lucide/chevron-right.svg') center/contain no-repeat;font-size:22px;line-height:1;flex:none}
.ui-action-categories-folded [data-action-category][aria-expanded=true]::after{content:'';display:inline-block;width:18px;height:18px;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat}
.ui-action-categories-folded>.ui-action-group:not([data-action-expanded])>:not(.ui-action-group-title){display:none!important}
.ui-action-categories [data-action-category]:disabled{opacity:1!important;cursor:default}
:is(body.app-v2,body.portal-shared) .ui-action-categories [data-action-category]:not(:disabled):is(:hover,:focus-visible),:is(body.app-v2,body.portal-shared) .ui-action-categories [data-action-category][aria-expanded=true]{background:#dce9f5!important}
.ui-action-categories>.ui-action-group[data-action-expanded]>:not(.ui-action-group-title){margin-left:8px!important;border-left:0}
:is(body.app-v2,body.portal-shared) .ui-action-categories :is(a.button,button,summary){min-height:44px;box-sizing:border-box;white-space:normal;text-align:left;justify-content:flex-start}
.ui-action-categories :is(.danger,.bulk-danger){color:#b42318!important;background:#fff1f2!important}
.ui-action-categories>.ui-action-group-danger{border-top:1px solid #ccd6e2!important;padding-top:4px!important;margin-top:4px!important}
.ui-action-categories>.ui-action-group-danger [data-action-category]{color:#b42318!important}

.ui-action-categories>.ui-action-group[hidden]{display:none!important}

.ui-action-categories>.ui-action-category-empty{display:none!important}

:is(body.app-v2,body.portal-shared) .ui-action-categories :is(a.button,button,summary.button){display:flex;align-items:center;width:100%;margin:0;padding:8px 12px!important;border:0!important;box-shadow:none!important;background:transparent;border-radius:4px;white-space:normal;justify-content:flex-start;text-align:left}
:is(body.app-v2,body.portal-shared) .ui-action-categories :is(a.button,button):not([data-action-category]):hover{background:#e9f0f7!important}
:is(body.app-v2,body.portal-shared) .ui-action-categories{align-items:stretch!important}
:is(body.app-v2,body.portal-shared) .ui-action-categories>.ui-action-group{width:100%}
:is(body.app-v2,body.portal-shared) .ui-action-categories>.ui-action-group [data-action-category]{max-width:none!important}
.ui-action-categories>.ui-action-group[data-action-expanded]>:not(.ui-action-group-title){width:calc(100% - 8px)!important;box-sizing:border-box}
:is(body.app-v2,body.portal-shared) .ui-action-categories>.ui-action-group-danger [data-action-category]{color:#b42318!important}

/* Selection actions are presented in the shared toolbar; original controls retain handlers/form ownership. */
.ui-list-source-actions{display:none!important}

/* One destructive-menu palette across legacy, selection and portal menus. */
:is(body.app-v2,body.portal-shared) :is(.ui-action-menu,.ui-selection-menu,.bulk-menu,.position-more,.case-extra-actions,.case-trash-control,.ui-action-categories) :is(button,a.button,input[type=submit]):is(.danger,.bulk-danger,.button-danger,.danger-button){color:#b42318!important;background:#fff1f2!important;border-color:#f3b7bc!important}
:is(body.app-v2,body.portal-shared) :is(.ui-action-menu,.ui-selection-menu,.bulk-menu,.position-more,.case-extra-actions,.case-trash-control,.ui-action-categories) :is(button,a.button,input[type=submit]):is(.danger,.bulk-danger,.button-danger,.danger-button):is(:hover,:focus-visible){color:#b42318!important;background:#ffe4e6!important;border-color:#e89ba3!important}

/* Semantic destructive action tokens are shared by every surface, not just menus. */
body.app-v2,body.portal-shared{--ui-danger-ink:#b42318;--ui-danger-soft:#fff1f2;--ui-danger-line:#f3b7bc;--ui-danger-hover:#ffe4e6;--ui-danger-hover-line:#e89ba3}
:is(body.app-v2,body.portal-shared) :is(#main-content,dialog,.ui-action-popover) :is(button,a.button,input[type=submit]):is(.danger,.bulk-danger,.button-danger,.danger-button){color:var(--ui-danger-ink)!important;background:var(--ui-danger-soft)!important;border-color:var(--ui-danger-line)!important}
:is(body.app-v2,body.portal-shared) :is(#main-content,dialog,.ui-action-popover) :is(button,a.button,input[type=submit]):is(.danger,.bulk-danger,.button-danger,.danger-button):is(:hover,:focus-visible){color:var(--ui-danger-ink)!important;background:var(--ui-danger-hover)!important;border-color:var(--ui-danger-hover-line)!important}

/* A public wizard moves duration into step one; no empty offer column remains. */
.booking-overview.booking-overview-single{grid-template-columns:minmax(0,1fr)}
.booking-calendar-panel .booking-overview-single .booking-confirmation{margin-top:0;order:0}
.booking-calendar-panel .booking-view-tabs{gap:8px}

.booking-service-choices{display:grid;gap:8px}
.booking-public .booking-service-choice{display:grid;grid-template-columns:24px minmax(180px,1fr) minmax(0,2fr);align-items:start;gap:12px;padding:12px;min-height:44px;border:1px solid var(--ui-border,#ccd8e5);border-radius:8px;background:#fff;cursor:pointer}
.booking-public .booking-service-choice input{width:20px;min-height:20px;height:20px;margin:2px 0}
.booking-service-choice small{display:block;font-weight:normal;margin-top:4px}
.booking-service-choice:has(input:checked){border-color:#315f8f;background:#edf5fc}
.booking-service-choice:focus-within{outline:2px solid #315f8f;outline-offset:2px}
.booking-choice-explanation{white-space:pre-line;overflow-wrap:anywhere;font-weight:normal}
@media(max-width:650px){.booking-public .booking-service-choice{grid-template-columns:24px minmax(0,1fr)}.booking-choice-explanation{grid-column:2}}

body.portal-shared .booking-calendar-panel .booking-view-tabs button[aria-pressed=false]{background:#fff;color:#293746;border:1px solid var(--ui-border,#ccd8e5)}
body.portal-shared .booking-calendar-panel .booking-view-tabs button[aria-pressed=true]{background:#293746;color:#fff;border:1px solid #293746}

/* Public booking: one reachable action row, safe-area spacing and natural mobile scrolling. */
.booking-public .booking-mobile-actions{display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-end;margin-top:16px}
.booking-public .booking-mobile-actions button{min-height:44px;min-width:0;white-space:normal}
.booking-public [data-booking-step] h2{scroll-margin-top:16px}
@media(max-width:650px),(max-height:500px) and (pointer:coarse){
 body.portal-shared.booking-public main{padding-bottom:calc(120px + env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .booking-public .booking-mobile-actions{position:fixed;bottom:0;left:0;right:0;z-index:50;margin:0;padding:12px max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#f4f8fc;border-top:1px solid #cbd8e5;box-shadow:0 -3px 12px #23314b12}
 .booking-public .booking-mobile-actions button{flex:1;padding:10px 8px}
 .booking-public .booking-mobile-actions [data-booking-back]{flex:0 0 auto}
 .booking-public.booking-keyboard-open .booking-mobile-actions{position:static;box-shadow:none;margin-top:16px;padding:12px 0}
 .booking-public .booking-calendar-panel .booking-week[data-view=list]{max-height:none;overflow:visible}
 .booking-public .booking-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .booking-public :is(input,select,textarea):not([type=radio]):not([type=checkbox]){font-size:16px!important;min-height:44px;max-width:100%}
 .booking-public .booking-week-tools{width:100%;flex-wrap:nowrap}
 .booking-public .booking-week-tools label{flex:1;min-width:0}
}

/* Explicit contact rows remain paired on phones, per booking UI requirement. */
.booking-public .booking-contact-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.booking-contact-fields>label{min-width:0}

.booking-public .booking-price-list{display:inline-flex;align-items:center;min-height:44px;margin-block:8px;color:#315f8f;text-decoration:underline}

/* A shared three-line footer, without paragraph or baseline gaps. */
.release-footer-lines{display:flex;flex-direction:column;align-items:center;gap:0;line-height:1.6;text-align:center}
.release-footer-lines>div,.release-footer-lines>small{display:block;margin:0;padding:0}
.release-footer-lines a{color:inherit;text-decoration:underline;text-underline-offset:2px}
body.auth.has-release-footer{flex-direction:column;align-items:center;justify-content:flex-start;padding-bottom:24px;gap:24px}
body.auth.has-release-footer:after{content:none}
body.auth.has-release-footer>.app-footer{order:2;position:static;margin:0;max-width:100%}

/* Keep dashboard case context and navigation in the persistent card header. */
[data-dashboard-widget="cases"] .dashboard-widget-body .dashboard-cases>.panel-head{display:none}
.dashboard-heading-context{display:inline;font-size:12px;font-weight:400;margin-left:8px}

/* Shared native select geometry, including Safari's compact menulist rendering. */
:is(body.app-v2 #main-content,body.app-v2 dialog,body.portal-shared) select.ui-select:not([multiple]):not([size]){appearance:none;-webkit-appearance:none;box-sizing:border-box;height:44px;min-height:44px;margin:0;padding:10px 40px 10px 12px;font-size:16px;line-height:22px;font-weight:400;border:1px solid var(--ui-border,#cbd3de);border-radius:7px;background-color:#fff;color:var(--ui-text,#263242);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 19px) calc(50% - 2px),calc(100% - 14px) calc(50% - 2px);background-size:5px 5px;background-repeat:no-repeat}

/* Unified fields and actions share one bottom edge, including labelled page size. */
body.app-v2 #main-content .ui-list-header.ui-list-unified > .ui-list-actions{padding-bottom:0}

/* Compact notification context; full text wraps, provenance uses the shared information control. */
.notification-context{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:8px;font-size:14px;overflow-wrap:anywhere}
.notification-context>span{min-width:0}
.notification-item .notification-message{margin:8px 0 0;padding:8px 12px}
.notification-item{gap:16px}

/* Dialog records and list controls reflow instead of hiding actions off screen. */
body.app-v2 dialog.ui-dialog.ui-dialog-wide{width:min(1120px,calc(100vw - 32px));max-width:calc(100vw - 32px);box-sizing:border-box}
:is(body.app-v2,body.portal-shared) #main-content .ui-list-header.ui-list-unified,.ui-list-toolbar.ui-list-unified,.table-tools.ui-list-tools.ui-list-unified{flex-wrap:wrap;overflow-x:visible;min-width:0;max-width:100%;box-sizing:border-box}
:is(body.app-v2,body.portal-shared) #main-content .ui-list-unified>.ui-list-filter-scroll,:is(body.app-v2,body.portal-shared) #main-content .ui-list-unified>.ui-list-actions,.ui-list-unified .ui-list-inline-controls{flex-wrap:wrap;min-width:0;max-width:100%;overflow:visible}
[data-customer-balances] .table-wrap{overflow:visible}
[data-customer-balances] .ui-responsive-records{width:100%;min-width:0;table-layout:fixed}
[data-customer-balances] .ui-responsive-records :is(th,td){white-space:normal;overflow-wrap:anywhere;min-width:0}
[data-customer-balances] .ui-responsive-records .form-actions{flex-wrap:wrap;overflow:visible;margin:0;gap:8px}
@media(max-width:700px){
 [data-customer-balances] .ui-responsive-records thead{display:none}
 [data-customer-balances] .ui-responsive-records :is(tbody,tr,td){display:block;width:100%;box-sizing:border-box}
 [data-customer-balances] .ui-responsive-records tr{padding:12px 0;border-bottom:1px solid var(--ui-border,#ccd9e7)}
 [data-customer-balances] .ui-responsive-records td{padding:6px 12px;border:0}
}

/* A single ordered credit line; expanded explanations form one section below it. */
body.app-v2 #main-content .position-row-tools>.position-credit-preview{display:flex;flex:1 1 360px;align-items:center;gap:0 12px}
body.app-v2 .position-credit-preview .position-credit-choice{order:0}
body.app-v2 .position-credit-preview .position-credit-detail{flex:0 1 auto;order:1}
body.app-v2 .position-credit-preview .position-credit-explanation{order:2;flex:0 1 auto}
body.app-v2 .position-credit-preview .position-credit-explanation[open]{flex-basis:100%;padding:8px 12px;border:1px solid var(--ui-border,#ccd9e7);border-radius:6px;white-space:normal}
body.app-v2 .position-credit-preview .position-credit-explanation p{margin:8px 0}
body.app-v2 #main-content [data-customer-balances] .ui-responsive-records .form-actions{display:flex;flex-wrap:wrap!important;overflow:visible!important;min-width:0;max-width:100%}
body.app-v2 #main-content [data-customer-balances] .ui-responsive-records .form-actions>button{margin:0;flex:0 1 auto;white-space:normal}
@media(min-width:701px) and (max-width:1000px){[data-customer-balances] .ui-responsive-records th:last-child,[data-customer-balances] .ui-responsive-records td:last-child{width:28%}}

body.app-v2 .position-credit-preview>.position-credit-detail{display:none}
body.app-v2 #main-content .position-row-tools>.position-credit-preview{flex:1 1 280px}
body.app-v2 .position-credit-preview .position-credit-explanation>summary{font-weight:400;line-height:1.4}

/* Monetary credit preview stays below the original totals, outside value flex rows. */
body.app-v2 #main-content .position-total-stack{flex:0 1 360px;width:360px;max-width:100%;min-width:0;margin-left:auto;display:flex;flex-direction:column;gap:12px}
body.app-v2 #main-content .position-total-stack>.position-totals{flex:none;height:auto;min-height:0;width:100%;min-width:0;box-sizing:border-box;margin:0}
body.app-v2 #main-content .position-credit-projection{box-sizing:border-box;width:100%;min-width:0;padding:14px;border:1px solid var(--ui-border,#ccd9e7);border-radius:8px;background:#f4f8fc;font-size:13px}
body.app-v2 #main-content .position-credit-projection>strong{display:block;margin-bottom:10px}
body.app-v2 #main-content .position-credit-amounts>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:5px 0}
body.app-v2 #main-content .position-credit-amounts span{min-width:0;overflow-wrap:anywhere}
body.app-v2 #main-content .position-credit-amounts strong{flex:none;white-space:nowrap;text-align:right}
body.app-v2 #main-content .position-credit-amounts>div:last-child{border-top:1px solid #ccd9e7;margin-top:6px;padding-top:10px;font-weight:700}
body.app-v2 #main-content .position-credit-projection p{margin:10px 0 0;font-size:12px;line-height:1.45}
body.app-v2 #main-content .position-table .position-credit-projected-row{display:block;clear:both;font-size:12px;font-weight:400;line-height:1.4;white-space:normal;text-align:right;min-width:0;margin:4px 0 0}
@media(max-width:800px){body.app-v2 #main-content .position-total-stack{width:100%;flex-basis:auto}body.app-v2 #main-content .position-table td:has(>.position-credit-projected-row){flex-wrap:wrap}body.app-v2 #main-content .position-credit-projected-row{flex-basis:100%}}

@media(max-width:800px){body.app-v2 #main-content .position-bottom>.position-bottom-main{flex:none}}

/* Phone cards show primary booking fields; duplicate document text is expandable. */
@media(min-width:651px){body.app-v2 #main-content .position-mobile-text{display:contents}body.app-v2 #main-content .position-mobile-text>summary{display:none}body.app-v2 #main-content .position-mobile-text>*:not(summary){display:block}}
@media(max-width:650px){
 body.app-v2 #main-content .position-table tbody>tr[data-position-row]{padding:10px 12px;gap:6px 10px}
 body.app-v2 #main-content .position-table tbody>tr[data-position-row]>td{padding:4px 0!important}
 body.app-v2 #main-content .position-table td:has(>.position-mobile-text):before{display:none}
 body.app-v2 #main-content .position-mobile-text{margin:0}
 body.app-v2 #main-content .position-mobile-text>summary{min-height:44px;box-sizing:border-box;padding:12px 0;line-height:20px;font-size:13px;overflow-wrap:anywhere;cursor:pointer}
 body.app-v2 #main-content .position-mobile-text[open]{padding-bottom:8px}
 body.app-v2 #main-content .position-row-tools>.position-credit-preview{flex-basis:100%;gap:0 8px;padding:0 10px;background:#eaf3f7;border-radius:6px}
 body.app-v2 #main-content .position-credit-preview .position-credit-explanation>summary{padding:8px 0;min-height:44px}
 body.app-v2 #main-content .position-add{display:flex;flex-wrap:wrap;overflow:visible;gap:8px;padding:0}
 body.app-v2 #main-content .position-add>button{flex:1 1 calc(50% - 8px);min-width:0;white-space:normal;min-height:44px}
 body.app-v2 #main-content .position-add>.position-payment-actions{flex:1 1 100%;margin:8px 0 0;justify-content:flex-start;padding-top:8px;border-top:1px solid #ccd9e7}
 body.app-v2 #main-content .position-payment-actions>*{flex:1 1 140px;min-width:0;white-space:normal}
}

/* Keep desktop position metadata on the same line; phone credit cards stay grouped. */
@media(min-width:651px){
 body.app-v2 #main-content .position-row-tools{column-gap:8px}
 body.app-v2 #main-content .position-row-tools>.position-credit-preview{display:contents}
 body.app-v2 #main-content .position-row-tools .position-credit-choice{font-size:11px;margin:0;min-height:44px}
 body.app-v2 #main-content .position-row-tools .position-credit-explanation{flex:1 1 180px;min-width:0;margin:0}
 body.app-v2 #main-content .position-row-tools .position-credit-explanation[open]{flex-basis:100%}
}
/* Grouped customer navigation keeps secondary actions outside the main menu. */
body.portal-shared .portal-menu{width:100%;min-width:0;border:0;padding:0;background:transparent}
body.portal-shared .portal-menu>summary{display:none}
body.portal-shared .portal-subnavigation{margin:8px 0;max-width:100%;overflow-x:auto}
body.portal-shared .portal-subnavigation a{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
body.portal-shared .portal-payment-notice{display:flex;justify-content:flex-end;margin:12px 0}
body.portal-shared .portal-payment-notice .portal-overdue-notice{margin:0;max-width:100%}
@media(max-width:760px){body.portal-shared .portal-menu>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;font-weight:700}body.portal-shared .portal-menu>summary span{font-size:13px;font-weight:400}body.portal-shared .portal-menu:not([open])>.portal-nav-links{display:none}body.portal-shared .portal-menu[open]>.portal-nav-links{display:grid;grid-template-columns:1fr;white-space:normal;overflow:visible}body.portal-shared .portal-menu .portal-nav-links a{white-space:normal}body.portal-shared .portal-payment-notice{justify-content:stretch}body.portal-shared .portal-payment-notice>a{width:100%}}

body.portal-shared .portal-navigation:has(.portal-menu){display:block;overflow:visible}
body.portal-shared .portal-menu .portal-nav-links{flex-wrap:wrap;overflow:visible}
body.portal-shared>.portal-subnavigation,body.portal-shared>.portal-payment-notice{width:calc(100% - 48px);margin-left:auto;margin-right:auto}
body.portal-shared .portal-payment-notice .portal-overdue-notice{display:flex;flex-direction:column;justify-content:center;min-height:44px;padding:8px 12px;background:#fff5df;border:1px solid #dfbd73;border-radius:8px;color:#704700;text-decoration:none}
@media(max-width:700px){body.portal-shared>.portal-subnavigation,body.portal-shared>.portal-payment-notice{width:calc(100% - 32px)}}

body.portal-shared .ui-tabs>a{text-decoration:none}
/* Customer overview uses the shared surfaces and actions. */
.portal-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.portal-home-grid>.portal-surface{margin:0;min-width:0}.portal-home-grid>.portal-surface:last-child{grid-column:1/-1}.portal-home-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--ui-line,#cfdae5)}.portal-home-item>div{min-width:0;overflow-wrap:anywhere}.portal-home-item p{margin:6px 0}.portal-home-item>a{flex-shrink:0}@media(max-width:700px){.portal-home-grid{grid-template-columns:1fr}.portal-home-item{flex-wrap:wrap}}

/* Customer overview: shared surfaces, clear hierarchy and quiet status labels. */
.portal-home-intro>p{margin:0;color:var(--ui-muted,#53657b);max-width:65ch}
.portal-home-grid>.portal-home-cases,.portal-home-grid>.portal-home-payments{grid-column:1/-1}
.portal-home-grid .portal-home-eyebrow{font-size:13px;font-weight:600;color:var(--ui-muted,#53657b);margin:0 0 6px}
.portal-home-grid h2{margin:0 0 12px}.portal-home-grid h3{font-size:17px;line-height:1.4;margin:6px 0;font-weight:600}
.portal-home-grid .portal-home-item:last-child{border-bottom:0}
.portal-home-status{display:inline-block;font-size:13px;line-height:1.5;padding:3px 9px;border-radius:5px;background:#e8eef4;color:#364f67}
.portal-home-status-action{background:#fff1d6;color:#725014}
.portal-home-date{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:8px 0}
.portal-home-date time{font-size:16px;color:var(--ui-muted,#53657b)}.portal-home-date time strong{display:block;font-size:26px;line-height:1.4;color:var(--ui-text,#263242)}
.portal-home-case-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.portal-home-case-list .portal-home-item{align-items:flex-start;flex-wrap:wrap}.portal-home-case-list .portal-home-item>div{flex:1 1 230px}
@media(max-width:700px){.portal-home-case-list{grid-template-columns:1fr}.portal-home-grid h2{font-size:21px}.portal-home-date{gap:12px}.portal-home-intro>p{width:100%}}

body.portal-shared :is(.portal-home-intro,.portal-home-grid .ui-form-header){display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
body.portal-shared :is(.portal-home-intro,.portal-home-grid .ui-form-header)>.form-actions{margin:0}
body.portal-shared .portal-home-grid .ui-form-header{margin-bottom:16px}
.portal-tour-invite{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:16px 0}.portal-tour-invite[hidden]{display:none}.portal-tour-invite p{margin:4px 0}
.portal-tour-actions{display:flex;gap:8px;flex-wrap:nowrap;overflow:auto;max-width:100%}.portal-tour-actions button{white-space:nowrap;flex-shrink:0}
@media(max-width:700px){.portal-tour-dialog .public-dialog-heading{align-items:flex-start;flex-direction:column}.portal-tour-dialog{padding:16px}}

/* Guided tour uses the modal top layer; highlighted controls remain read-only. */
body.portal-shared dialog.portal-tour-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none;overflow:hidden;border-radius:0}
body.portal-shared dialog.portal-tour-dialog::backdrop{background:transparent}
.portal-tour-dialog>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.portal-tour-card{position:absolute;box-sizing:border-box;width:min(520px,calc(100vw - 24px));padding:20px;border:1px solid var(--ui-border,#cbd3de);border-radius:12px;background:linear-gradient(145deg,#fff,#eff5fa);color:var(--ui-text,#263242);box-shadow:0 12px 40px #0004;overflow:auto}
.portal-tour-card .public-dialog-heading{flex-direction:column;align-items:flex-start}.portal-tour-card h2{font-size:21px;margin:0}.portal-tour-card .public-note{font-size:13px}
@media(max-width:700px){.portal-tour-card{padding:16px}.portal-tour-card p{margin:10px 0}.portal-tour-card .public-note{display:none}}

/* Customer-requested desktop hierarchy: compact header and distinct content areas. */
body.portal-shared{background:#e8edf2;color:#243244}
body.portal-shared .portal-welcome{padding:0;margin:8px 0 12px}body.portal-shared .portal-welcome h2{font-size:18px;margin:0}
body.portal-shared .portal-content>header.ui-form-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 16px}
body.portal-shared .portal-content>header.ui-form-header p{display:none}body.portal-shared .portal-content>header.ui-form-header h1{font-size:26px;margin:0}body.portal-shared .portal-content>header.ui-form-header .form-actions{margin:0}
body.portal-home-page .portal-home-grid{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:16px;align-items:start;margin-top:0}
body.portal-home-page .portal-home-grid>.portal-surface{background:#fff;border:1px solid #9fabb9;border-top:4px solid #354a60;box-shadow:0 2px 4px #1d30400d;border-radius:8px;padding:16px;margin:0;min-height:0}
body.portal-home-page .portal-home-grid>.portal-home-priority{border-top-color:#b72238}
body.portal-home-page .portal-home-grid>.portal-home-cases{grid-column:1;grid-row:2}
body.portal-home-page .portal-home-grid>.portal-home-payments{grid-column:2;grid-row:2}
body.portal-home-page .portal-home-grid h2{font-size:19px;line-height:1.35;color:#172c43;margin:0}
body.portal-home-page .portal-home-grid>.portal-surface>.ui-form-header{padding-bottom:12px;border-bottom:1px solid #c8d0d9;margin-bottom:4px}
body.portal-home-page .portal-home-appointment>h2{padding-bottom:12px;border-bottom:1px solid #c8d0d9;margin-bottom:12px}
body.portal-home-page .portal-home-grid p{line-height:1.5;margin:10px 0}
body.portal-home-page .portal-home-grid h3{font-size:16px;margin:3px 0;line-height:1.4}
body.portal-home-page .portal-home-case-list{grid-template-columns:1fr}
body.portal-home-page .portal-home-item{padding:12px 0;gap:12px;border-color:#d4dbe3}
body.portal-home-page .portal-home-case-list .portal-home-item{align-items:center;flex-wrap:nowrap}
body.portal-home-page .portal-home-item p{margin:4px 0 0;color:#425268}
body.portal-home-page .portal-home-payments .portal-home-item{flex-wrap:wrap;align-items:start}
body.portal-home-page .portal-home-payments .portal-home-item>div{flex:1 1 220px}
body.portal-home-page .portal-home-status{background:#e4edf6;color:#243e5b;font-weight:600}
body.portal-home-page .portal-home-status-action{background:#fff0c6;color:#6d4400}
body.portal-shared .portal-navigation{background:#293d52!important;border-color:#293d52!important;box-shadow:none}
body.portal-shared .portal-navigation a{color:#f3f6fa!important}
body.portal-shared .portal-navigation a:is(:hover,:focus-visible):not([aria-current=page]){background:#f8fbff!important;color:#21364c!important;border-color:var(--portal-line)}
body.portal-shared .portal-navigation a[aria-current=page]{background:#fff!important;color:#21364c!important;box-shadow:none}
body.portal-shared .portal-menu>summary{color:#fff}
@media(max-width:1000px){body.portal-home-page .portal-home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.portal-home-page .portal-home-case-list .portal-home-item{flex-wrap:wrap}}
@media(max-width:700px){body.portal-home-page .portal-home-grid{grid-template-columns:1fr}body.portal-home-page .portal-home-grid>.portal-home-cases,body.portal-home-page .portal-home-grid>.portal-home-payments{grid-column:auto;grid-row:auto}body.portal-shared .portal-content>header.ui-form-header h1{font-size:24px}}

/* The same contrast and compact section hierarchy throughout the customer portal. */
body.portal-shared :is(.portal-surface,.card,.panel,.portal-kpis article,main>article){background:#fff;border:1px solid #9fabb9;border-top:4px solid #354a60;border-radius:8px;box-shadow:0 2px 4px #1d30400d;padding:16px;margin:16px 0;min-width:0}
body.portal-shared .portal-surface .ui-field-group:has(>legend){background:#f5f7fa;border-color:#b1bdca;box-shadow:none;padding:16px;min-width:0}
body.portal-shared .ui-field-group>legend{background:#e5ebf2;border-color:#aab8c8;color:#243e58;font-weight:700}
body.portal-shared .portal-content>header{margin:0 0 16px}
body.portal-shared .portal-content>header h1{font-size:26px;line-height:1.3;margin:0}
body.portal-shared .portal-surface>h2{font-size:19px;color:#172c43;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid #c8d0d9}
body.portal-shared .portal-surface>.ui-form-header{padding-bottom:12px;border-bottom:1px solid #c8d0d9;margin-bottom:12px}
body.portal-shared .portal-surface :is(th,thead td){background:#e5ebf2;color:#243e58;border-bottom-color:#aab8c8}
body.portal-shared .portal-surface tbody tr:nth-child(even){background:#f5f7fa}
body.portal-shared .portal-surface :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){background:#fff;border-color:#9fabb9;color:#243244}
body.portal-shared dialog:not(.portal-tour-dialog){background:#fff;border-color:#9fabb9;border-top:4px solid #354a60}
@media(max-width:700px){body.portal-shared .portal-content>header h1{font-size:24px}body.portal-shared .portal-surface .ui-field-group{padding:12px}}

@media(min-width:1200px){body.portal-shared .portal-profile-form .portal-field-grid>.ui-field-group:first-child .portal-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

body.portal-shared .portal-booking-choices>summary{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border-radius:6px;background:#293d52;color:#fff;cursor:pointer;font-weight:600}body.portal-shared .portal-booking-choices[open]>summary{margin-bottom:12px}

/* Prominent customer inbox, using the portal navigation palette. */
.public-brand .portal-notices-trigger{display:inline-flex;align-items:center;gap:10px;min-height:44px;background:#293d52!important;color:#fff!important;border:1px solid #293d52!important;box-shadow:0 2px 4px #172c4320;font-weight:700}
.public-brand .portal-notices-trigger:hover{background:#172c43!important}
.public-brand .portal-notices-trigger:focus-visible{outline:3px solid #b4223c;outline-offset:3px}
.portal-notices-trigger svg{flex:none}
.portal-notices-trigger [data-portal-notices-count]:not([hidden]){display:inline-flex;align-items:center;justify-content:center;min-width:26px;min-height:26px;padding:2px 7px;border-radius:14px;background:#b51d36;color:#fff;font-size:14px;line-height:1.2}

/* Customer payment attention: only the actionable overdue amount, never processing. */
body.portal-shared .portal-home-payments .portal-payment-overdue{background:#fff1f2;border-left:4px solid #b42338;border-radius:6px;padding:12px;margin:8px 0}
body.portal-shared .portal-payment-overdue .portal-home-status,body.portal-shared .portal-status.status-overdue{background:#a71930;color:#fff;font-weight:700}
body.portal-shared .portal-payment-overdue p{color:#872333}
body.portal-shared tr.portal-overdue>td{background:#fff1f2}
body.portal-shared tr.portal-overdue>td:first-child{border-left:4px solid #b42338}
body.portal-shared .public-header-contact .portal-payment-notice{margin:0;display:block;text-align:left}
body.portal-shared .public-header-contact .form-actions{flex-wrap:wrap}

body.portal-shared .portal-tour-invite.portal-surface{margin:16px 24px;background:#e9f1fb;border:1px solid #9bb6d5;border-left:4px solid #325c86;border-radius:8px;padding:16px}
@media(max-width:700px){body.portal-shared .portal-tour-invite.portal-surface{margin-inline:16px}}
body.portal-shared .portal-payment-groups{display:grid;gap:18px}
body.portal-shared .portal-payment-group+ .portal-payment-group{border-top:1px solid #c8d0d9;padding-top:16px}
body.portal-shared .portal-payment-group h3{font-size:15px;margin:0 0 10px;color:#253d55}
body.portal-shared .portal-payment-group p{margin:0 0 12px;color:#425268}
body.portal-shared .portal-payment-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
body.portal-shared .portal-payment-choice-grid form{display:contents}
body.portal-shared .portal-payment-choice-grid :is(button,a.button){width:100%;min-height:56px;justify-content:flex-start;text-align:left;white-space:normal;gap:12px;margin:0}
@media(max-width:500px){body.portal-shared .portal-payment-choice-grid{grid-template-columns:1fr}}

/* Portal visual hierarchy shared by the entire order administration. */
body.app-v2{--ui-ink:#243244;--ui-muted:#425268;--ui-line:#9fabb9;--ui-surface:#fff;--ui-soft:#f5f7fa;--ui-active:#293d52;--ui-radius:8px;--ui-shadow:0 2px 4px #1d30400d;background:var(--theme-background,#e8edf2);color:var(--ui-ink)}
body.app-v2 #main-content :is(.panel,.support-card,.settings-card,.article-shell,.booking-editor-section,.stats>article,.article-kpis>article),body.app-v2 dialog:not(.customer-alarm-dialog),body.app-v2 #main-content dialog.ui-dialog:not(.customer-alarm-dialog){background:var(--theme-surface,#fff);border:1px solid var(--ui-line);border-top:4px solid var(--theme-primary,#354a60);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
body.app-v2 #main-content :is(.panel,.support-card,.article-shell,.booking-editor-section){padding:16px}
body.app-v2 #main-content :is(.table-wrap,.permission-group-panel){padding:0}
body.app-v2 :is(#main-content,dialog) :is(.ui-field-group:has(>legend),.ui-input-group,.number-setting){background:var(--theme-surface-alt,#f5f7fa);border-color:var(--ui-line);box-shadow:none}
body.app-v2 :is(#main-content,dialog) .ui-field-group>legend{background:var(--theme-surface-alt,#e5ebf2);color:var(--theme-text,#243e58);border-color:var(--ui-line);font-weight:700}
body.app-v2 #main-content :is(.panel,.support-card,.settings-card,.article-shell,.booking-editor-section)>:is(h2,.panel-head,.ui-form-header){border-bottom:1px solid var(--ui-line);padding-bottom:12px;margin-bottom:12px}
body.app-v2 #main-content :is(.panel,.support-card,.settings-card,.article-shell,.booking-editor-section)>h2{font-size:19px;line-height:1.35;color:var(--theme-text,#172c43)}
body.app-v2 :is(#main-content,dialog) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=color],[type=range]),select,textarea){border-color:var(--ui-line)}
body.app-v2 :is(#main-content,dialog) th{background:var(--theme-surface-alt,#e5ebf2);color:var(--theme-text,#243e58);border-bottom-color:var(--ui-line)}
body.app-v2>aside{background:var(--theme-sidebar,#293d52);color:var(--theme-sidebar-text,#f3f6fa)}
body.app-v2>header{border-bottom:1px solid var(--ui-line);box-shadow:0 2px 4px #1d30400d}
@media(max-width:700px){body.app-v2 #main-content :is(.panel,.support-card,.article-shell,.booking-editor-section){padding:12px}body.app-v2 #main-content :is(.table-wrap,.permission-group-panel){padding:0}}

/* Equal controls in a shared row, including native summary buttons. */
body:is(.portal-shared,.app-v2) .form-actions{align-items:stretch}
body:is(.portal-shared,.app-v2) .form-actions>:is(button,a.button,a.public-button,details>summary),
body:is(.portal-shared,.app-v2) .form-actions>details>summary{box-sizing:border-box;min-height:44px;display:inline-flex;align-items:center;justify-content:center;margin:0;line-height:1.3}
body.portal-shared .public-header-contact .form-actions>:is(button,a,.ui-action-menu),body.portal-shared .public-header-contact .form-actions>.ui-action-menu>summary{height:48px;min-height:48px;box-sizing:border-box;margin:0}
body.portal-shared .public-header-contact .form-actions>.ui-action-menu>summary{display:flex;align-items:center}
body:is(.app-v2,.portal-shared) .color-mode-switch{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 12px;white-space:nowrap;font-size:14px;line-height:1.3;box-sizing:border-box;background:#fff;color:#243244;border:1px solid #9fabb9;border-radius:8px;cursor:pointer;flex-shrink:0}
body:is(.app-v2,.portal-shared) .color-mode-switch[hidden]{display:none}
.color-mode-track{width:32px;height:20px;border-radius:12px;background:#68798a;position:relative;flex:none}
.color-mode-track:after{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;border-radius:50%;background:#fff}
[aria-checked=true]>.color-mode-track{background:#66c9df}
[aria-checked=true]>.color-mode-track:after{left:15px;background:#122a36}
/* #731 profile menu: every entry is one menu row – icon column, left-aligned text, 44 px, no card frames. */
body.app-v2 .header-profile .header-identity{display:grid!important;gap:2px;margin:0}
body.app-v2 .header-profile .header-identity>:is(.tenant-indicator,.user-indicator){display:grid!important;grid-template-columns:20px minmax(0,1fr);column-gap:10px;row-gap:0;align-items:center;justify-content:stretch;justify-items:start;text-align:left;margin:0;min-width:0;max-width:none;width:100%;min-height:44px;box-sizing:border-box;padding:6px 12px;border:0;border-radius:6px;background:transparent;color:inherit;text-decoration:none}
body.app-v2 .header-profile .header-identity>a>:is(svg,img){grid-column:1;grid-row:1/span 3;align-self:center;margin:0}
body.app-v2 .header-profile .header-identity>a>img{width:20px;height:20px;border-radius:50%;object-fit:cover}
body.app-v2 .header-profile .header-identity>a.profile-edit-link{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:center;min-height:44px;padding:6px 12px;border-radius:6px;color:inherit;text-decoration:none;font-size:14px}
body.app-v2 .header-profile .header-identity>a.profile-edit-link:is(:hover,:focus-visible){background:var(--ui-hover,#eef2f6)}
html[data-color-mode=dark] body.app-v2 .header-profile .header-identity>a.profile-edit-link:is(:hover,:focus-visible){background:#263c51}
.header-profile-avatar.has-image{width:24px;padding:0;overflow:hidden;background:none}
.header-profile-avatar>img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
body.app-v2 .profile-avatar-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
body.app-v2 .profile-avatar-preview{flex:none;width:96px;height:96px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--ui-form-field,#fff);border:1px solid var(--ui-line,#ccd2da);font-size:32px;font-weight:700;color:var(--ui-muted,#526070)}
body.app-v2 .profile-avatar-preview>img{width:100%;height:100%;object-fit:cover}
body.app-v2 .profile-avatar-form{flex:1 1 280px;display:grid;gap:8px;margin:0}
body.app-v2 .profile-avatar-form .muted{margin:0}
body.app-v2 .profile-avatar-form>label{order:0}body.app-v2 #main-content .profile-avatar-form>.form-actions{order:1;justify-content:flex-start;margin:0;position:static}body.app-v2 .profile-avatar-form>.muted{order:2}
body.app-v2 .header-profile .header-identity>a>:not(svg,img){grid-column:2;margin:0;max-width:100%;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}
body.app-v2 .header-profile .header-identity>a>small{font-size:11px;line-height:14px;color:var(--ui-muted,#526070);text-transform:none;letter-spacing:0}
body.app-v2 .header-profile .header-identity>a>b{font-size:14px;line-height:20px;font-weight:600}
body.app-v2 .header-profile .header-identity>a>span{display:block!important;font-size:12px;line-height:16px;color:var(--ui-muted,#526070)}
body.app-v2 .header-profile .header-identity>a:is(:hover,:focus-visible){background:var(--ui-hover,#eef2f6)}
body.app-v2 .header-profile .ui-action-group>:is(.color-mode-switch,a.button){display:grid;grid-template-columns:20px minmax(0,1fr) auto;column-gap:10px;align-items:center;justify-items:start;width:100%;min-height:44px;box-sizing:border-box;padding:6px 12px;margin:0;border:0;border-radius:6px;background:transparent;box-shadow:none;font-weight:400;text-align:left}
body.app-v2 .header-profile .ui-action-group>:is(.color-mode-switch,a.button)>svg{margin:0}
body.app-v2 .header-profile .ui-action-group>.color-mode-switch>.color-mode-track{justify-self:end}
body.app-v2 .header-profile .ui-action-group>a.button{border-top:1px solid var(--ui-line,#ccd2da);border-radius:0 0 6px 6px;margin-top:4px}
body.app-v2 .header-profile .ui-action-group>:is(.color-mode-switch,a.button):is(:hover,:focus-visible){background:var(--ui-hover,#eef2f6)}
html[data-color-mode=dark] body.app-v2 .header-profile .ui-action-group>.color-mode-switch{background:transparent!important;border:0!important}
html[data-color-mode=dark] body.app-v2 .header-profile :is(.header-identity>a,.ui-action-group>:is(.color-mode-switch,a.button)):is(:hover,:focus-visible){background:#263c51!important}
@media screen {
 html[data-color-mode=dark]{color-scheme:dark}
 html[data-color-mode=light]{color-scheme:light}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared){
 --theme-background:#111c29!important;--theme-surface:#1c2b3c!important;--theme-surface-alt:#23364a!important;--theme-text:#edf4fb!important;--theme-muted:#b9cadb!important;--theme-border:#61778d!important;--theme-primary:#97d5f5!important;--theme-primary-text:#102738!important;--theme-secondary:#263c51!important;--theme-secondary-text:#edf4fb!important;--theme-field:#142333!important;--theme-field-text:#edf4fb!important;--theme-sidebar:#12283b!important;--theme-sidebar-text:#e3effa!important;--theme-sidebar-active:#97d5f5!important;--theme-sidebar-active-text:#102738!important;--theme-header:#182a3b!important;--theme-header-text:#edf4fb!important;--theme-focus:#97d5f5!important;
 --ui-ink:#edf4fb;--ui-text:#edf4fb;--ui-muted:#b9cadb;--ui-line:#61778d;--ui-border:#61778d;--ui-surface:#1c2b3c;--ui-soft:#23364a;--ui-active:#97d5f5;--muted:#b9cadb;
 background:#111c29;color:#edf4fb}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.panel,.support-card,.settings-card,.article-shell,.portal-surface,.public-card,.card,.portal-kpis article,dialog){background:#1c2b3c!important;color:#edf4fb;border-color:#61778d}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.ui-field-group,.ui-input-group,.number-setting,.ui-field-group>legend){background:#23364a!important;color:#edf4fb!important;border-color:#61778d!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(h1,h2,h3,h4,label,legend,summary){color:#edf4fb}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.muted,.support-hint,.public-note,.public-brand small,.public-header-contact>span,.portal-welcome p,.portal-home-item p,.portal-payment-group p,.portal-content>header p){color:#b9cadb}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=color],[type=range],[type=submit]),select,textarea){background:#142333!important;color:#edf4fb!important;border-color:#61778d!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(th,thead td){background:#23364a!important;color:#d5e9fa!important;border-color:#61778d}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) tbody>tr:not(.due-soon,.due-overdue,.portal-overdue){background:#1c2b3c;color:#edf4fb}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) tbody>tr:not(.due-soon,.due-overdue,.portal-overdue):nth-child(even){background:#23364a}
 html[data-color-mode=dark] body.portal-shared .portal-heading{background:transparent;border-color:#61778d}
 html[data-color-mode=dark] body.portal-shared :is(.portal-navigation,.portal-menu>div){background:#12283b!important;border-color:#61778d!important}
 html[data-color-mode=dark] body.portal-shared .portal-navigation a[aria-current=page]{background:#97d5f5!important;color:#102738!important}
 html[data-color-mode=dark] body.portal-shared :is(.button,.public-button,button):not(.danger,.portal-notices-trigger,.ui-navigation-back,.ui-navigation-next,[role=switch]){background:#97d5f5;color:#102738;border-color:#97d5f5}
 html[data-color-mode=dark] body.portal-shared :is(.button.secondary,.public-button.secondary,button.secondary,.portal-menu summary){background:#263c51;color:#edf4fb;border-color:#61778d}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .color-mode-switch{background:#263c51!important;color:#edf4fb!important;border-color:#61778d}
 html[data-color-mode=dark] body.portal-shared .ui-action-items{background:#1c2b3c;color:#edf4fb;border-color:#61778d}
 html[data-color-mode=dark] body.portal-shared .portal-content a:not(.button,.public-button){color:#97d5f5}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #97d5f5;outline-offset:3px}
 /* Status panels retain their own paired foreground/background, including children. */
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.ui-payment-status,.notice,.portal-staff-notice,.portal-payment-overdue,.due-overdue,.due-soon,.portal-overdue){color:#243244}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.ui-payment-status,.notice,.portal-staff-notice,.portal-payment-overdue) :is(p,strong,small,h2,h3){color:inherit}
}
/* A search row must wrap its controls before it can overflow a narrow customer panel. */
body.app-v2 #main-content .ui-list-header .table-tools.ui-list-tools.ui-list-unified{flex-wrap:wrap;width:100%;min-width:0}
@media(max-width:650px){body.app-v2 #main-content .ui-list-header .table-tools.ui-list-tools.ui-list-unified>input{flex:1 1 100%;width:100%;min-width:0}}
@media screen {
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) tbody>tr:not(.due-soon,.due-overdue,.portal-overdue)>td{background:transparent!important;color:#edf4fb;border-color:#61778d}
 html[data-color-mode=dark] body.app-v2>header .menu{color:#edf4fb}
 html[data-color-mode=dark] body.portal-shared .portal-home-grid>.portal-home-priority{border-top-color:#f18c9d}
 html[data-color-mode=dark] body.portal-shared .portal-home-grid>.portal-home-appointment{border-top-color:#5dd2bf}
 html[data-color-mode=dark] body.portal-shared .portal-surface{border-top-color:#79bfe8}
}
body:is(.portal-shared,.app-v2) :is(.portal-surface,.panel,.ui-field-group)>.form-actions{margin-top:16px;gap:8px}
body.portal-shared .public-header-contact .portal-staff-link{white-space:nowrap;font-size:13px;background:#fff7df;color:#624510;border-color:#b89442}
@media screen{html[data-color-mode=dark] body.portal-shared .public-header-contact .portal-staff-link{background:#453b22;color:#ffe5a3;border-color:#ad9454}}

/* Keep a readable brand beside wrapped portal controls. */
@media(min-width:651px) and (max-width:1100px){body.portal-shared .portal-heading{grid-template-columns:minmax(0,1fr)}body.portal-shared .portal-heading .public-header-contact{min-width:0;max-width:100%;grid-column:1;grid-row:2}body.portal-shared .portal-heading .public-brand-identity{min-width:230px;grid-column:1;grid-row:1}body.portal-shared .portal-heading .portal-welcome{grid-column:1/-1;grid-row:3}body.portal-shared .public-header-contact .public-header-actions{flex-wrap:wrap}}
body.app-v2 :is(#main-content,dialog) .customer-record-table button.ui-contact-open{display:inline-flex;align-items:center;min-height:44px;padding:4px 0;background:transparent;border:0;box-shadow:none;color:var(--theme-primary,#285d8b);text-align:left;font:inherit;font-weight:600;white-space:normal}
/* A source action cell may contain the row editor; keep its open modal renderable. */
.ui-list-source-actions:has(>dialog[open]){display:contents!important}
.ui-list-source-actions:has(>dialog[open])>:not(dialog){display:none!important}

body.portal-home-page .portal-home-date{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
body.portal-home-page .portal-home-date-copy{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-width:0}
body.portal-home-page .portal-home-date-copy>div{flex:1 1 130px;min-width:0}
body.portal-home-page .portal-home-date>.button{margin:0;white-space:nowrap}
body.portal-home-page .portal-home-booking{border-top:1px solid var(--theme-border,#abc8da);padding-top:12px;margin-top:12px}
body.portal-home-page :is(.portal-home-case-list,.portal-home-priority,.portal-home-payments) .portal-home-item:not(:has(>.form-actions)){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
body.portal-home-page .portal-home-item:not(:has(>.form-actions))>.button{margin:0;white-space:nowrap}
body.portal-home-page .portal-home-grid>.portal-surface>.ui-form-header{flex-wrap:nowrap;align-items:center}
body.portal-home-page .portal-home-grid>.portal-surface>.ui-form-header>div:first-child{min-width:0}
body.portal-home-page .portal-home-grid>.portal-surface>.ui-form-header>.form-actions{flex-shrink:0;margin-top:0}

/* Compact appointment facts and one aligned action menu. */
body.portal-home-page .portal-home-date{padding:0;gap:8px}
body.portal-home-page .portal-home-date-copy{display:block}
body.portal-home-page .portal-home-date time{font-size:14px}
body.portal-home-page .portal-home-date time strong{display:inline;font-size:16px;line-height:1.4;margin-left:6px}
body.portal-home-page .portal-home-date-copy h3{margin:4px 0 0;font-size:15px}
body.portal-home-page .portal-home-date-copy p{margin:2px 0 0;font-size:14px}
body.portal-home-page .portal-home-appointment-actions>summary{margin:0;white-space:nowrap}
body.portal-home-page .portal-home-appointment-actions form{display:contents}
body.portal-home-page .portal-home-booking{padding-top:8px;margin-top:8px}
/* A one-page list has a count, not inactive navigation controls. */
.ui-table-paging .ui-list-page-buttons[hidden],.ui-table-paging button[hidden],.ui-list-toolbar>span[hidden],.section-head>.count[hidden]{display:none!important}

.customer-document-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer}.customer-document-group>summary>span{min-width:0;overflow-wrap:anywhere}.customer-document-group>summary>.button{flex-shrink:0;margin:0}.customer-document-group>summary>span:before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-right.svg') center/contain no-repeat;}.customer-document-group[open]>summary>span:before{content:'';display:inline-block;width:18px;height:18px;vertical-align:middle;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat;}

/* Zahlungsbelege: nur Beleginhalt drucken. */
@media print{.portal-print-actions{display:none!important}}

/* Shared compact field/action row, including shop configuration searches. */
.ui-field-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;margin:16px 0}
.ui-field-action-row>label{min-width:0;margin:0}.ui-field-action-row>button{width:auto;margin:0;min-height:44px;max-width:160px}
/* Equal-height action rows and compact fieldset heading actions. */
body.app-v2 #main-content .form-actions.ui-actions-equal{align-items:stretch}
body.app-v2 #main-content .form-actions.ui-actions-equal>button{align-self:stretch;min-height:44px}
body.app-v2 #main-content .ui-field-group>legend.ui-field-heading{display:inline-flex;align-items:center;gap:16px;max-width:100%;box-sizing:border-box}
body.app-v2 #main-content .ui-field-heading>button{margin:0;min-height:44px}

/* Reference layout: group tree, selected group's entries, selected entry's fields. */
body.app-v2 #main-content [data-csys][data-csys-layout=reference] .csys-browser{grid-template-columns:minmax(180px,.8fr) minmax(220px,1fr) minmax(280px,1.2fr)}
body.app-v2 #main-content [data-csys][data-csys-layout=reference] .csys-content-panes{display:contents}
body.app-v2 #main-content [data-csys][data-csys-layout=reference] .csys-content-panes>.ui-detail-pane{height:var(--csys-pane-height,65vh);min-height:0;overflow:auto;border-left:1px solid var(--ui-line);padding-left:16px}
@media(max-width:767px){body.app-v2 #main-content [data-csys][data-csys-layout=reference] .csys-browser{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content [data-csys][data-csys-layout=reference] .csys-content-panes>.ui-detail-pane{height:auto;overflow:visible;border-left:0;padding-left:0}}


/* Retain the previous view until the personal reference layout is selected. */
body.app-v2 #main-content [data-csys-layout=legacy] .csys-browser:not(.csys-detail-open){grid-template-columns:minmax(0,1fr)}
[data-csys-layout=legacy] .csys-browser:not(.csys-detail-open)>.csys-content-panes{display:none}
body.app-v2 #main-content [data-csys-layout=legacy] .csys-browser.csys-detail-open{grid-template-columns:minmax(240px,1fr) minmax(0,1fr)}
@media(max-width:760px){body.app-v2 #main-content [data-csys-layout=legacy] .csys-browser.csys-detail-open{grid-template-columns:minmax(0,1fr)}}

/* Clock dialog: full-width action row prevents clipped labels; close remains last. */
body.app-v2 #main-content [data-pdc-stop-dialog] .pdc-stop-header{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
body.app-v2 #main-content [data-pdc-stop-dialog] .pdc-stop-header>.form-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px 44px;width:100%;max-width:none;overflow:visible;gap:8px;margin:0}
body.app-v2 #main-content [data-pdc-stop-dialog] .pdc-stop-header>.form-actions>button{width:100%;min-width:0;height:52px;min-height:52px;white-space:normal;padding:8px;font-size:14px;line-height:18px}

/* Personal entry choices occupy the complete field group when expanded. */
body.app-v2 #main-content .form-grid>.csys-entry-type-preferences{grid-column:1/-1}

/* Inline vault cards need the same breathing room as regular detail panels. */
body.app-v2 #main-content [data-csys] .csys-browser{margin-top:16px}
body.app-v2 #main-content [data-csys] dialog.csys-inline{padding:16px;box-sizing:border-box}
body.app-v2 #main-content [data-csys] dialog.csys-inline>.panel-head{display:flex;flex-direction:column;align-items:stretch;gap:12px}
body.app-v2 #main-content [data-csys] dialog.csys-inline>.panel-head>.form-actions{justify-content:flex-end;width:100%;max-width:100%;margin:0}

/* Keep worklist search and reset fully visible on phones. */
@media(max-width:600px){body.app-v2 #main-content .case-work-filters{flex-wrap:wrap;overflow-x:visible}body.app-v2 #main-content .case-work-filters>.case-search{flex:1 0 100%;min-width:0}body.app-v2 #main-content .case-work-filters>.actions{margin-left:auto}}
/* A research toggle must not squeeze the mobile list search into an unusable control. */
@media(max-width:767px){body.app-v2 #main-content form.case-work-filters.ui-list-search-form{flex-wrap:wrap}body.app-v2 #main-content form.case-work-filters.ui-list-search-form>label.case-search{flex:1 0 100%;min-width:0}}

/* User reference 16.10.2026: light main areas, grey groups, white editable fields. */
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared){--ui-form-main:#fafbfc;--ui-form-group:#e8eaed;--ui-form-field:#ffffff;--ui-form-ink:#283341}
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) :is(main,dialog) :is(.panel,.support-card,.settings-card,.article-shell,.booking-editor-section,.portal-surface,.public-card,.card,.pos-document-header):not([role=alert],.warning,.danger,.notice,.success){background:var(--ui-form-main)!important}
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) dialog{background:var(--ui-form-main)!important}
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) :is(main,dialog) :is(.ui-field-group,.ui-input-group,.number-setting,fieldset),html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) :is(main,dialog) fieldset>legend{background:var(--ui-form-group)!important;color:var(--ui-form-ink)!important}
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) :is(main,dialog) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=color],[type=range],[type=submit],[type=button],[type=reset]),select:not(.position-unit-select),textarea){background:var(--ui-form-field)!important;color:var(--ui-form-ink)!important}
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) :is(main,dialog) :is(input,textarea,select):is([readonly],:disabled){background:var(--ui-form-group)!important;color:#526070!important}
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) :is(main,dialog) :is(input,textarea)::placeholder{color:#66717e!important}

/* Contact validation may open an editor belonging to another page or a filtered row.
   Keep its ancestors rendered only while the modal is open; preserve filter state. */
body.app-v2 #main-content [data-contact-row]:has(dialog[open]){display:table-row!important}
body.app-v2 #main-content [data-contact-row]>td:has(dialog[open]){display:table-cell!important}

/* Accordion headings belong to the light main surface, not to a field group. */
html:not([data-color-mode=dark]) body:is(.app-v2,.portal-shared) :is(main,dialog) .pos-document-header>summary{background:var(--ui-form-main)!important}

/* Collapsible field groups share the spacing and outline of legend-based groups. */
body:is(.app-v2,.portal-shared) :is(main,dialog) details.ui-field-group{padding:12px 16px 16px;margin-block:16px;border:1px solid var(--ui-line,#d0dce7);border-radius:8px;min-width:0}
body:is(.app-v2,.portal-shared) :is(main,dialog) details.ui-field-group>summary{min-height:44px;align-content:center;font-weight:700;cursor:pointer;margin:0}
body:is(.app-v2,.portal-shared) :is(main,dialog) details.ui-field-group[open]>summary{margin-bottom:12px}

/* Customer warnings are separate from the quick-action icon group. */
body.app-v2>header>.customer-alarm-trigger{order:4;display:inline-flex;align-items:center;justify-content:center;min-height:44px;flex-shrink:0;margin:0 0 0 8px;padding:10px 12px;border-radius:7px;font-size:12px;white-space:nowrap}
body.app-v2>header>.customer-alarm-trigger[hidden]{display:none!important}
@media(max-width:700px){body.app-v2>header>.customer-alarm-trigger{order:20;margin:0}}

/* Long column captions must not set the minimum width of a data column. */
body.app-v2 #main-content th .ui-column-filter{white-space:normal;max-width:12em;min-width:min-content;overflow-wrap:normal;hyphens:none;line-height:1.35}

/* Keep related list actions on one reachable horizontal row. */
body.app-v2 #main-content .ui-list-single-row.ui-list-unified > .ui-list-actions{flex-wrap:nowrap;overflow-x:auto;max-width:100%;align-items:flex-end}
body.app-v2 #main-content .ui-list-single-row .ui-list-actions > *{flex-shrink:0}

/* One action row, also when the heading moves above it on narrow screens. */
body.app-v2 #main-content :is(.form-actions,.actions).ui-single-action-row{display:flex;flex-direction:row;flex-wrap:nowrap;max-width:100%;min-width:0;overflow-x:auto;gap:8px;justify-content:safe flex-end}
body.app-v2 #main-content .ui-single-action-row>:is(button,a,form){flex:0 0 auto;width:auto;white-space:nowrap}
@media(max-width:680px){body.app-v2 #main-content .ui-action-heading{display:flex;flex-direction:column;align-items:stretch}}

/* Public booking uses the same paired surfaces and text in both color modes. */
body.portal-shared.booking-public{--ui-form-main:#fafbfc;--ui-form-group:#e8eaed;--ui-form-field:#fff;--ui-form-ink:#283341;--ui-form-muted:#526070}
html[data-color-mode=dark] body.portal-shared.booking-public{--ui-form-main:#1c2b3c;--ui-form-group:#23364a;--ui-form-field:#142333;--ui-form-ink:#edf4fb;--ui-form-muted:#b9cadb}
body.portal-shared.booking-public .booking-card{background:var(--ui-form-main)!important;color:var(--ui-form-ink)}
body.portal-shared.booking-public :is(.booking-policy,.booking-personal-summary,.booking-receipt-facts,.booking-service-details){background:var(--ui-form-group);color:var(--ui-form-ink);border-radius:8px;padding:16px}
body.portal-shared.booking-public :is(.booking-progress>span,.booking-timezone,.booking-small,.booking-receipt-facts dt,.booking-personal-summary small,.booking-personal-summary span,.public-app-footer){color:var(--ui-form-muted)}
body.portal-shared.booking-public .booking-progress b{background:var(--ui-form-group);color:var(--ui-form-ink)}
body.portal-shared.booking-public .booking-progress [aria-current]{color:var(--ui-form-ink)}
body.portal-shared.booking-public .booking-progress [aria-current] b{background:var(--ui-form-ink);color:var(--ui-form-main)}

body.portal-shared.booking-public .booking-intro{color:var(--ui-form-muted)}
body.portal-shared.booking-public .booking-mobile-actions{background:var(--ui-form-main);border-color:var(--ui-line,#cad2dc)}
body.portal-shared.booking-public .booking-mobile-actions button{white-space:nowrap}


/* Flat forms are their own field group; containers with subgroups stay light. */
html[data-color-mode=dark] body:is(.app-v2,.portal-shared){--ui-form-main:#1c2b3c;--ui-form-group:#23364a;--ui-form-field:#142333;--ui-form-ink:#edf4fb}
body:is(.app-v2,.portal-shared) :is(main,dialog) :is(.panel,.support-card,.settings-card,.article-shell,.booking-editor-section,.portal-surface,.public-card,.card,.booking-card,.pos-document-header,.ui-flat-form):has(input:not([type=hidden],[type=submit],[type=button]),select,textarea):not(:has(.ui-field-group,.ui-input-group,.number-setting,fieldset,.panel,.support-card,.settings-card,.article-shell,.booking-editor-section,.portal-surface,.public-card,.card,.booking-card,.pos-document-header,.booking-service-details,.booking-personal-summary,table,dialog)):not([role=alert],.warning,.danger,.notice,.success){background:var(--ui-form-group)!important}
body:is(.app-v2,.portal-shared) dialog:has(input:not([type=hidden],[type=submit],[type=button]),select,textarea):not(:has(.ui-field-group,.ui-input-group,fieldset,.panel,.card,.settings-card,table)){background:var(--ui-form-group)!important}
body:is(.app-v2,.portal-shared) .pos-document-header:not(:has(.ui-field-group,fieldset))>summary{background:inherit!important}

/* Record names are text links, even when a button opens their detail dialog. */
body:is(.app-v2,.portal-shared) :is(main,dialog) :is(button,a).ui-record-link{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;color:var(--ui-link,#315f8d)!important;padding:0!important;min-height:44px;text-align:left;font:inherit;cursor:pointer}
body:is(.app-v2,.portal-shared) :is(main,dialog) .ui-record-link:hover{text-decoration:underline}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(main,dialog) .ui-record-link{color:#a8cfee!important}

/* Persistent initial-information status belongs next to the status switch. */
.csu-initial-status{font-size:12px;line-height:1.4;max-width:220px;color:var(--ui-muted,#526070)}
/* Internal case attachment names remain text links, including long filenames. */
/* Compact shared case attachments; no horizontal scroll container. */
body.app-v2 #main-content dialog[data-case-attachments]{width:min(1100px,calc(100vw - 32px));max-width:calc(100vw - 32px)}
.case-attachment-list{width:100%;table-layout:fixed;border-collapse:collapse;margin:0}
.case-attachment-list :is(th,td){white-space:normal;overflow-wrap:anywhere;padding:10px 8px;text-align:left;vertical-align:middle}
.case-attachment-list th:first-child{width:28%}.case-attachment-list th:nth-child(2){width:18%}.case-attachment-list th:nth-child(3),.case-attachment-list th:nth-child(4){width:12%}
.case-attachment-list td{border-bottom:1px solid var(--border,#ccd4df)}.case-attachment-list small{display:block}.case-attachment-list a{white-space:normal;overflow-wrap:anywhere}
.case-attachment-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.case-attachment-actions button{white-space:normal}
[data-attachment-preview-body] pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
[data-attachment-preview-body] img{display:block;max-width:100%;max-height:70vh;object-fit:contain;margin:auto}
[data-attachment-preview-body] iframe{display:block;width:100%;height:65vh;border:0;background:white}
@media(max-width:700px){.case-attachment-list,.case-attachment-list tbody{display:block}.case-attachment-list thead{display:none}.case-attachment-list tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 0;border-bottom:1px solid var(--border,#ccd4df)}.case-attachment-list td{display:block;border:0;padding:0;min-width:0}.case-attachment-list td:first-child,.case-attachment-list td:nth-child(2),.case-attachment-list td:last-child{grid-column:1/-1}.case-attachment-list td::before{content:attr(data-label);display:block;font-size:.85em;font-weight:600;margin-bottom:4px}}


/* Explicit standalone editors and editable tables share the form surface hierarchy. */
body:is(.app-v2,.portal-shared) :is(main,dialog) .ui-flat-form{padding:16px;border-radius:8px;min-width:0}
body:is(.app-v2,.portal-shared) :is(main,dialog) .ui-form-table tbody :is(tr,td,th){background:var(--ui-form-group)!important}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(main,dialog) .ui-form-table :is(input,textarea,select):is([readonly],:disabled){background:var(--ui-form-main)!important;color:#b9cadb!important}

/* Rich document editing uses the same readable field surfaces in both color modes. */
body.app-v2 #main-content .rich-legal-editor{background:var(--ui-form-field);color:var(--ui-form-ink);border-color:var(--ui-line)}
body.app-v2 #main-content .rich-legal-surface{background:var(--ui-form-field);color:var(--ui-form-ink)}
body.app-v2 #main-content .rich-legal-toolbar{background:var(--ui-form-group);color:var(--ui-form-ink);border-color:var(--ui-line)}
body.app-v2 #main-content .legal-font-menu summary{background:var(--ui-form-field);color:var(--ui-form-ink);border-color:var(--ui-line)}

/* Price planning uses the same six-row matrix as article prices. */
body.app-v2 #main-content dialog[data-price-schedule-dialog]{width:min(1120px,calc(100vw - 32px));max-width:calc(100vw - 32px)}
[data-price-schedule-dialog] .article-price-table{min-width:820px}
[data-price-schedule-dialog] [data-schedule-percent]{white-space:nowrap}

/* Price matrix reference values and editors share the same vertical centre. */
body.app-v2 #main-content [data-price-schedule-dialog] .article-price-table :is(td,th){vertical-align:middle}
[data-price-schedule-dialog] [data-schedule-percent]{width:100%;min-width:90px;text-align:right}

/* Field groups need an inset even when their heading is a panel header rather than a legend. */
body:is(.app-v2,.portal-shared) :is(main,dialog) fieldset.ui-field-group:not(:has(>legend)){padding:16px;min-width:0;box-sizing:border-box}
@media(max-width:650px){body:is(.app-v2,.portal-shared) :is(main,dialog) fieldset.ui-field-group:not(:has(>legend)){padding:12px}}

/* Shared formatting controls: icon actions and visible paragraph/font samples. */
body.app-v2 .ui-editor-icon{width:44px;min-width:44px;height:44px;min-height:44px;padding:9px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.ui-editor-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ui-editor-icon span{font-size:18px}
.ui-editor-picker{display:inline-flex;min-width:0}
.ui-editor-preview{position:fixed;margin:0;padding:6px;overflow:auto;border:1px solid var(--ui-line,#ccd6e0);border-radius:6px;background:var(--ui-form-field,#fff);color:var(--ui-form-ink,#28313e);box-shadow:0 8px 24px #0003}
body.app-v2 .ui-editor-preview button{display:block;width:100%;text-align:left;min-height:44px;background:transparent;color:inherit;border:0;border-radius:3px;white-space:normal}
body.app-v2 .ui-editor-preview button:hover,body.app-v2 .ui-editor-preview button[aria-selected="true"]{background:var(--ui-form-group,#e8ebef)}
body.app-v2 .ui-editor-preview [data-paragraph="h2"]{font-size:23px!important;font-weight:700!important}
body.app-v2 .ui-editor-preview [data-paragraph="h3"]{font-size:19px!important;font-weight:700!important}
body.app-v2 .ui-editor-preview [data-paragraph="blockquote"]{font-style:italic;border-left:3px solid currentColor;padding-left:12px}
body.app-v2 .ui-editor-preview [data-paragraph="pre"]{font-family:monospace}
.ui-editor-preview [data-paragraph="ul"]:before{content:'• ';}.ui-editor-preview [data-paragraph="ol"]:before{content:'1. ';}


/* Price announcements remain distinct from descriptions; promotions carry stronger emphasis. */
.price-notice{display:block;margin:8px 0;padding:8px 10px;border-left:3px solid #577b9f;background:#e8f0f8;color:#21466e;font-size:13px;line-height:1.45;font-weight:600;white-space:normal}
.price-notice-promotion{border-left:4px solid #a86a00;background:#ffecbe;color:#724000;font-weight:700}
html[data-color-mode=dark] .price-notice{background:#263c51;color:#e3effb;border-color:#9ab9d7}
html[data-color-mode=dark] .price-notice-promotion{background:#49381b;color:#ffe6a8;border-color:#dbb351}

/* Notebook density: compact mouse controls, unchanged touch targets and browser zoom. */
@media (min-width:1100px) and (hover:hover) and (pointer:fine) and (not (any-pointer:coarse)) {
 body.app-v2{--ui-space:16px;--ui-gutter:18px;--ui-field-height:36px;font-size:14px}
 body.app-v2 #main-content :is(.panel,.support-card,.article-shell,.booking-editor-section){padding:16px}
 body.app-v2 #main-content :is(.table-wrap,.permission-group-panel){padding:0}
 body.app-v2 :is(#main-content,dialog) :is(.form-grid,.form-section,.organization-fields,.profile-fields,.booking-admin-grid,.booking-fields-compact,.mail-connection-grid){gap:12px 16px}
 body.app-v2 :is(#main-content,dialog) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=color],[type=range]),select){min-height:36px;padding-block:7px;font-size:13px;line-height:20px}
 body.app-v2 :is(#main-content,dialog,[popover]) :is(button,.button):not([role=switch],.editor-resize-handle,.ui-info-trigger,.ui-record-link){min-height:36px;padding:7px 10px;font-size:13px;line-height:20px}
 body.app-v2 #main-content :is(.ui-tabs,.profile-tabs,.article-nav,.organization-tabs,.customer-record-tabs,.tabs)>:is(a,button){min-height:36px;padding:7px 10px}
 body.app-v2 .list-columns-menu>summary .ui-info-trigger{width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important}
 body.app-v2>header :is(button,.button,.header-primary-action){min-height:36px;padding:7px 10px;font-size:12px}
 body.app-v2>header .header-icon-action{flex-basis:36px;width:36px;height:36px;min-width:36px;min-height:36px;padding:8px!important}
 body.app-v2>header .header-icon-action svg{width:20px;height:20px}
 body.app-v2>header .header-universal-search input{min-height:36px;height:36px;font-size:13px}
 body.app-v2 #main-content :is(.page-head,.hero,.case-top) h1{font-size:23px}
 body.app-v2 #main-content .pos-header-fields :is(input,select){height:36px;min-height:36px}
 body.app-v2 #main-content .dashboard-card>.panel-head h2{font-size:14px}
 body.app-v2 #main-content .dashboard-card>.panel-head{min-height:var(--dashboard-row-heading-height,36px)}
 body.app-v2 #main-content .dashboard-card>.panel-head button{min-width:36px}
}
/* Quarter-width cards need room for their heading and actions at notebook widths. */
@media (min-width:651px) and (max-width:1600px) {
 .ui-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ui-dashboard-widget:is([data-width=quarter],[data-width=half]){grid-column:span 1}
}
/* Search results now use a popover; its hint body no longer needs a reserved result area. */
body.app-v2 #main-content [data-dashboard-widget="search"] .dashboard-widget-body{min-height:0;height:auto}

/* Keep mobile save errors available without covering the position being edited. */
.ui-save-notice-toggle{display:none!important}
@media(max-width:900px){
 .ui-save-notice[data-state=error]{padding:8px 12px}
 .ui-save-notice[data-state=error]>.ui-save-notice-toggle{display:flex!important;align-items:center;justify-content:space-between;width:100%!important;margin:0;background:transparent;color:inherit;border:0;box-shadow:none;text-align:left}
 .ui-save-notice-toggle::after{content:'';display:inline-block;width:18px;height:18px;background:currentColor;mask:url('vendor/lucide/chevron-down.svg') center/contain no-repeat;margin-left:12px}
 .ui-save-notice[data-expanded="1"]>.ui-save-notice-toggle::after{content:'⌃'}
 .ui-save-notice[data-state=error][data-expanded="0"]>:not(.ui-save-notice-toggle){display:none!important}
 .ui-save-notice[data-state=error][data-expanded="1"]{max-height:45dvh;overflow:auto}
}

/* Mobile stacked headings must not inherit horizontal flex bases as heights. */
@media(max-width:650px){
 body.app-v2 #main-content .dashboard-head{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:16px}
 body.app-v2 #main-content .dashboard-head>div:first-child{width:100%;min-height:0}
 body.app-v2 #main-content .dashboard-head .dashboard-filters{width:100%;min-width:0}
}

/* Phone fields retain their viewport bounds. */
@media(max-width:650px){
 body.app-v2 #main-content [data-case-list-table] :is(th,td){vertical-align:middle}
 body.app-v2 #main-content [data-case-list-table] select{min-width:0;max-width:100%;width:100%}
 body.app-v2 :is(#main-content,dialog) input:is([type=date],[type=time],[type=datetime-local]){width:100%;max-width:100%;min-width:0;min-inline-size:0;box-sizing:border-box}
 body.app-v2 :is(#main-content,dialog) input::-webkit-date-and-time-value{min-width:0;text-align:left}
 body.app-v2>header{position:relative;left:auto;right:auto;top:auto;width:100%}
 body.app-v2 #main-content{padding-top:16px}
}

/* Informational confirmations never intercept work; only errors/actions need interaction. */
.ui-save-notice:is([data-state=saving],[data-state=saved],[data-state=pending]):not(:has(button,a)){align-self:flex-end;width:max-content;max-width:100%;padding:6px 10px;box-shadow:none;pointer-events:none}
@media(max-width:900px){
 .ui-save-notices:not(:has(.ui-save-notice[data-state=error])){right:12px;bottom:calc(84px + env(safe-area-inset-bottom,0px));width:min(240px,calc(100% - 24px))}
 body.menu-open .ui-save-notices:not(:has(.ui-save-notice[data-state=error])){bottom:calc(8px + env(safe-area-inset-bottom,0px))}
}

@media(max-width:650px){
 body.app-v2 #main-content .calendar-planner .planner-month{gap:2px}
 body.app-v2 #main-content .calendar-planner .planner-month .planner-cell{padding:2px;min-width:0}
 body.app-v2 #main-content .calendar-planner .planner-month button.planner-event{width:100%;min-width:0;padding:3px 1px;font-size:10px;line-height:1.2;overflow:hidden}
 body.app-v2 #main-content .calendar-planner .planner-month .planner-event-time{display:block;font-size:9px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:normal;word-break:normal}
 body.app-v2 #main-content .calendar-planner .planner-month .planner-event-time>span{display:block;white-space:nowrap}
 body.app-v2 #main-content .calendar-planner .planner-month .planner-event-time>.planner-time-separator{display:none}
 body.app-v2 #main-content .calendar-planner .planner-month .planner-event b{font-size:10px;line-height:1.2;overflow-wrap:normal;word-break:normal}
 body.app-v2 #main-content .calendar-planner .planner-month :is(.planner-event-duration,.planner-outside-label,.planner-cell>.muted){display:none}
}
/* Low landscape viewports need content height, not a fixed multi-row masthead. */
@media(pointer:coarse) and (max-height:500px){
 body.app-v2>header{position:relative;left:auto;right:auto;top:auto;width:100%}
 body.app-v2 #main-content{padding-top:16px}
 body.app-v2 .mobile-work-nav :is(a,button){flex-direction:row;min-height:44px;gap:6px;white-space:nowrap;font-size:11px}
 body.app-v2 .mobile-work-nav span{font-size:18px;line-height:20px}
 body.app-v2 .feedback-trigger{width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;font-size:0!important;bottom:60px!important}
 body.app-v2 .feedback-trigger span{font-size:16px!important}
}
@media(pointer:coarse) and (max-width:1024px){
 body.app-v2 :is(#main-content,dialog) select{height:44px;min-height:44px;appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%23708090' stroke-width='2'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 10px center!important}
}
@media(max-width:900px){
 body.app-v2 #main-content .case-list-table td[hidden]{display:none!important}
}
@media(pointer:coarse) and (max-height:500px){
 body.app-v2 .ui-floating-actions>.ui-page-top{width:44px;height:44px;min-width:44px;padding:8px;justify-content:center}
 body.app-v2 .ui-floating-actions>.ui-page-top>span:last-child{display:none}
}

/* List toolbar controls share exact heights, including native details summaries. */
body.app-v2 #main-content .ui-list-actions>details>summary.button{height:var(--ui-field-height,44px);padding-block:0;line-height:1.2}
.trash-purge-overview{font-weight:700;margin:12px 0}
.trash-purge-item{border-bottom:1px solid var(--ui-line);margin:0;padding:0}
.trash-purge-item>summary{min-height:44px;padding:8px 0;cursor:pointer;overflow-wrap:anywhere}
.trash-purge-item>summary>strong{font-size:13px;font-weight:600}
.trash-purge-item>summary>small{display:block;color:var(--ui-muted);margin:2px 0 0 16px}
.trash-purge-item>summary~*{margin:8px 0 12px 16px}

@media(min-width:650px){.trash-purge-item>summary>small{float:right;display:inline;margin:0 0 0 12px}.trash-purge-item>summary{padding-block:12px}}
/* Existing internal case notes remain visible in the action bar. */
body.app-v2 button.ui-notes-present{font-weight:700;border-color:var(--ui-accent,#48647f);box-shadow:inset 3px 0 var(--ui-accent,#48647f)}
/* Action buttons and native menu summaries share the same central control height. */
body.app-v2 :is(#main-content,dialog,[popover]) :is(button.secondary,button.primary,button.danger,a.button,summary.button,.form-actions>button,.ui-action-bar>button):not([role=switch],.ui-record-link,.editor-resize-handle,.guide-image-button,.ui-workflow-buttons>button){box-sizing:border-box;height:var(--ui-field-height,44px)!important;min-height:var(--ui-field-height,44px)!important;padding-block:0!important;display:inline-flex;align-items:center;justify-content:center}
/* Disabled unit selectors must not paint their placeholder over the displayed unit. */
body.app-v2 #main-content .position-unit-control:has(>.position-unit-select:disabled)::after{display:none}
body.app-v2 #main-content .position-unit-control>.position-unit-select:disabled{display:none!important}
body.app-v2 #main-content .position-unit-control:has(>.position-unit-select:disabled){grid-template-columns:minmax(0,1fr)}
body.app-v2 #main-content .position-unit-control:has(>.position-unit-select:disabled)>input{padding-right:10px!important;border-radius:7px!important}

/* One control height across the masthead; appearance belongs beside account controls. */
body.app-v2>header>:is(button:not(.menu),.notification-bell),
body.app-v2>header .header-global-actions :is(button,a){box-sizing:border-box;height:var(--ui-field-height,44px)!important;min-height:var(--ui-field-height,44px)!important;padding-block:0!important;display:inline-flex;align-items:center;justify-content:center}
body.app-v2>header>.color-mode-switch{order:9;margin-left:auto}
body.app-v2>header>.header-identity{margin-left:auto}

/* Shared portal document layout: device first, facts second, neither stretched. */
body.portal-shared .public-document-details-grid{align-items:start;margin-bottom:20px}
body.portal-shared .public-document-details-grid>.ui-field-group{margin:0;align-self:start}
body.portal-shared .portal-invoice-summary:has(.public-document-device){grid-template-columns:minmax(0,1fr)}
body.portal-shared .portal-invoice-summary:has(.public-document-device)>.ui-field-group{grid-row:1}
body.portal-shared .portal-invoice-summary:has(.public-document-device) .public-document-details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
body.portal-shared th :is(.ui-column-filter,.ui-column-sort,.table-sort-control){background:transparent!important;color:inherit!important;border:0!important;box-shadow:none!important;padding:0;min-height:44px;font:inherit;text-align:left}
body.portal-shared th .ui-column-sort{min-width:32px;flex:0 0 32px}
body.portal-shared th .ui-column-filter{min-width:0;white-space:normal}
body.portal-shared th .ui-column-filter.is-filtered{text-decoration:underline;text-underline-offset:4px}
@media(max-width:800px){body.portal-shared .portal-invoice-summary:has(.public-document-device) .public-document-details-grid{grid-template-columns:1fr}}

/* Customer photo viewer: shared navigation, zoom and touch pan. */
.ui-photo-selection{display:inline-flex!important;align-items:center;gap:8px}.ui-photo-selection input{width:auto!important;margin:0}
.ui-photo-dialog .ui-photo-controls{justify-content:flex-start;gap:8px;margin:16px 0;flex-wrap:wrap}
.ui-photo-dialog .ui-photo-viewport{height:min(65vh,700px);overflow:hidden;touch-action:none;display:flex;align-items:center;justify-content:center;background:var(--ui-surface-muted,#e9edf1);border-radius:8px}
.ui-photo-dialog .ui-photo-viewport img{display:block;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;user-select:none}
.ui-photo-dialog .panel-head h2{overflow-wrap:anywhere;min-width:0}

/* Pair dark foregrounds with matching surfaces, including detached top-layer popovers. */
@media screen {
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared){--ui-panel:#1c2b3c;--ui-surface-hover:#30495f;--ui-surface-muted:#23364a}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.universal-search-popover,.ui-info-content,.ui-action-popover){background:#1c2b3c!important;color:#edf4fb!important;border-color:#61778d!important}
 html[data-color-mode=dark] body.app-v2 .universal-search-popover .quick-customer-card{background:#23364a!important;color:#edf4fb;border-color:#61778d}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .eyebrow{color:#b9cadb}
 html[data-color-mode=dark] body.app-v2 #main-content .guide-branch a{color:#bce4fa!important}
 html[data-color-mode=dark] body.app-v2 #main-content .guide-branch a:hover{background:#30495f!important;color:#edf4fb!important}
 html[data-color-mode=dark] body.app-v2 #main-content .guide-branch a[aria-current=page]{background:#97d5f5!important;color:#102738!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .guide-steps li::marker{color:#b9cadb}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.ui-action-categories,.ui-action-items,.ui-action-menu .ui-action-group) :is(button,a.button,summary.button):not(.danger,.bulk-danger,.button-danger,.danger-button){color:#edf4fb!important;background:transparent!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.ui-action-categories,.ui-action-items,.ui-action-menu .ui-action-group) :is(button,a.button,summary.button):not(.danger,.bulk-danger,.button-danger,.danger-button):is(:hover,:focus-visible),
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .ui-action-categories [data-action-category][aria-expanded=true]{background:#30495f!important;color:#edf4fb!important}
 html[data-color-mode=dark] body.app-v2>header .header-global-actions>.secondary{background:#263c51!important;color:#edf4fb!important;border-color:#61778d}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(th,thead td) :is(.ui-column-filter,.ui-column-sort,.table-sort-control){background:transparent!important;color:#d5e9fa!important;border-color:transparent!important;box-shadow:none!important}
}

@media screen{html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.universal-search-popover,.ui-info-content) a:not(.button){color:#bce4fa}}
.universal-search-popover .quick-customer-card a:not(.button){color:var(--ui-ink,#263242)}
@media screen{html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .universal-search-popover .quick-search-hit:is(:hover,:focus-visible){background:#30495f!important;color:#edf4fb!important}}

/* No horizontal scrolling: wrap controls and reflow document positions. */
body:is(.app-v2,.portal-shared) :is(.ui-tabs,.portal-navigation,.portal-nav-links,.portal-subnavigation,.booking-view-tabs,.header-global-actions,.form-actions,.ui-action-bar,.ui-top-actions,.ui-single-actionbar,.ui-single-action-row,.portal-tour-actions,.ui-step-navigation,.ui-list-actions,.login-log-pager){flex-wrap:wrap!important;overflow-x:visible!important;min-width:0;max-width:100%}
body:is(.app-v2,.portal-shared) :is(.form-actions,.ui-action-bar,.ui-top-actions,.ui-tabs,.portal-navigation,.portal-subnavigation,.portal-nav-links)>:is(button,a,.button):not([data-status-updates-open],.ui-document-icon){min-width:0!important;max-width:100%;white-space:normal!important;overflow-wrap:anywhere;flex-shrink:1}
body.portal-shared .document-positions-wrap{container-type:inline-size;overflow:visible;min-width:0}
body.portal-shared .ui-document-positions{min-width:0;width:100%;table-layout:fixed}
body.portal-shared .ui-document-positions :is(th,td,.document-line-description,strong,span){white-space:normal!important;overflow-wrap:anywhere;word-break:normal;min-width:0}
@container (max-width:900px){
 body.portal-shared .ui-document-positions{display:block}
 body.portal-shared .ui-document-positions colgroup{display:none}
 body.portal-shared .ui-document-positions thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 body.portal-shared .ui-document-positions tbody{display:block;width:100%}
 body.portal-shared .ui-document-positions tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;border-bottom:1px solid var(--portal-line);padding:12px 0;margin:0;width:100%;box-sizing:border-box}
 body.portal-shared .ui-document-positions td{display:block;width:auto!important;padding:4px 0;text-align:left;box-sizing:border-box}
 body.portal-shared .ui-document-positions .document-item td:nth-child(3){grid-column:1/-1;grid-row:1}
 body.portal-shared .ui-document-positions td[data-column-label]::before{content:attr(data-column-label);display:block;font-weight:600;font-size:12px;color:var(--portal-muted,#526277);margin-bottom:4px}
 body.portal-shared .ui-document-positions :is(.document-heading,.document-text){display:block}
 body.portal-shared .ui-document-positions :is(.document-heading,.document-text) td:first-child{display:none}
}

/* Card tables must also reflow their totals; a table footer must not retain table sizing. */
@media(max-width:900px){body.app-v2 #main-content .responsive-data-table{display:block}body.app-v2 #main-content .responsive-data-table tfoot{display:block;width:100%;min-width:0}body.app-v2 #main-content .responsive-data-table tfoot tr{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}body.app-v2 #main-content .responsive-data-table tfoot td{min-width:0;white-space:normal;overflow-wrap:anywhere}}

/* Content-bearing controls must grow around their image or icon and label. */
body.app-v2 :is(#main-content,dialog) button.guide-image-button{display:grid;grid-template-columns:minmax(0,1fr);height:auto!important;min-height:44px!important;max-height:none;padding:12px!important;white-space:normal;justify-items:start;margin-block:16px;box-sizing:border-box}
body.app-v2 :is(#main-content,dialog) button.guide-image-button img{min-width:0;max-width:100%;height:auto;position:static}
body.app-v2 :is(#main-content,dialog) .ui-workflow-buttons button{height:auto!important;min-height:56px!important;padding:8px 6px!important;white-space:normal;align-self:stretch}

/* Embedded case tools retain the current, possibly unsaved case. */
.ui-case-tool-dialog{width:min(1400px,calc(100vw - 24px));max-width:calc(100vw - 24px)}
.ui-case-tool-frame{display:block;width:100%;height:75dvh;border:0;min-width:0}
body.ui-tool-embedded{display:block;margin:0;padding:12px;min-width:0}
.ui-label-preview{display:block;width:100%;min-width:0;height:440px;border:1px solid var(--ui-border,#bdc9d6);border-radius:8px;background:white}
/* Slightly stronger priority surfaces in case lists and dashboard. */
:root{--ui-priority-high-row:#fff0cc;--ui-priority-urgent-row:#fff0df}
:root[data-color-mode="dark"]{--ui-priority-high-row:#4a3820;--ui-priority-urgent-row:#4a3020}
.case-list>a:has(.priority-high),.dashboard-case-row:has(.priority-high),.table-wrap tr:has(.priority-high) td{background:var(--ui-priority-high-row)}
.case-list>a:has(.priority-urgent),.dashboard-case-row:has(.priority-urgent),.table-wrap tr:has(.priority-urgent) td{background:var(--ui-priority-urgent-row)}
body.app-v2 #main-content [data-case-row]:has([data-case-inline][data-current=high] select[name=priority])>td{background:var(--ui-priority-high-row)}
body.app-v2 #main-content [data-case-row]:has([data-case-inline][data-current=urgent] select[name=priority])>td{background:var(--ui-priority-urgent-row)}
body.app-v2 #main-content [data-case-row]:has([data-case-inline][data-current=critical] select[name=priority])>td{background:color-mix(in srgb,var(--ui-priority-urgent-row) 85%,#d90020 15%)}

/* Shared action alignment, including controls nested in forms. */
body.app-v2 .ui-action-items :is(button,a.button),body.app-v2 .ui-action-categories :is(button,a.button){text-align:left!important;justify-content:flex-start!important;white-space:normal}
body.app-v2 .ui-action-items .form-actions{justify-content:flex-start}
body.app-v2 .ui-tool-embedded .page-head{margin-top:0}
body.app-v2.ui-tool-embedded #main-content{margin:0;padding:0;max-width:none}
body.app-v2 .ui-label-live-form{min-width:0}
body.app-v2 .ui-label-live-form .table-wrap{overflow:visible}
@media(max-width:900px){body.app-v2 .ui-label-live-form table,body.app-v2 .ui-label-live-form tbody,body.app-v2 .ui-label-live-form tr,body.app-v2 .ui-label-live-form td{display:block;width:100%;box-sizing:border-box}body.app-v2 .ui-label-live-form thead{display:none}body.app-v2 .ui-label-live-form td::before{content:attr(data-label);display:block;font-weight:600}body.app-v2 .ui-label-live-form td input,body.app-v2 .ui-label-live-form td select{max-width:100%;width:100%}}

/* This compact search layout is deliberately scoped to Kundentresore. */
body.app-v2 .vault-customer-search-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:0 0 12px}
body.app-v2 .vault-customer-search-row>label{flex:1 1 320px;min-width:0;margin:0}
body.app-v2 .vault-customer-search-row input{width:100%;max-width:none}
body.app-v2 .vault-customer-search-row>.form-actions{position:static;margin:0;align-self:flex-end}
/* Semantic attention surfaces remain dark when switching colour mode. */
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.notice,.ui-payment-status,.portal-staff-notice){background:#20364a!important;color:#e5eff9!important;border-color:#59778f!important}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.due-overdue,.customer-blocked-notice,.portal-payment-overdue,.portal-overdue){background:#42232d!important;color:#ffe1e7!important;border-color:#a85164!important}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.due-soon,.portal-overdue-notice){background:#46351d!important;color:#ffe4b1!important;border-color:#9b783b!important}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.due-overdue,.due-soon,.portal-payment-overdue,.portal-overdue) :is(p,strong,small,b,time,.due-status,td){color:inherit!important;background:transparent!important}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.due-overdue,.due-soon,.portal-payment-overdue) a:not(.button,.public-button){color:#c2e7ff!important}
html[data-color-mode=dark] body.app-v2 :is(.case-list>a,.dashboard-case-row,tr):has(.priority-urgent),html[data-color-mode=dark] body.app-v2 tr:has([data-case-inline][data-current=urgent]){background:var(--ui-priority-urgent-row)!important}
html[data-color-mode=dark] body.app-v2 :is(.case-list>a,.dashboard-case-row,tr):has(.priority-high),html[data-color-mode=dark] body.app-v2 tr:has([data-case-inline][data-current=high]){background:var(--ui-priority-high-row)!important}
html[data-color-mode=dark] body.app-v2 :is(.case-list>a,.dashboard-case-row,tr):has(.priority-critical),html[data-color-mode=dark] body.app-v2 tr:has([data-case-inline][data-current=critical]){background:#582330!important}
html[data-color-mode=dark] body.app-v2 :is(.priority-urgent,.priority-critical,[data-current=urgent] select[name=priority],[data-current=critical] select[name=priority]){background:#662c3e!important;color:#ffe2e9!important;border-color:#b96075!important}
html[data-color-mode=dark] body.app-v2 :is(.priority-high,[data-current=high] select[name=priority]){background:#59401f!important;color:#ffe2a5!important;border-color:#b18a49!important}

/* Customer forms: use adjacent field groups instead of stretching sparse rows. */
body.app-v2 dialog.customer-edit-dialog{width:min(1440px,calc(100vw - 48px));max-width:calc(100vw - 32px);height:min(850px,calc(100dvh - 48px));max-height:calc(100dvh - 32px)}
body.app-v2 #main-content .customer-editor .organization-fields{gap:12px}
body.app-v2 #main-content .customer-editor .ui-field-group{padding:12px}
body.app-v2 #main-content .customer-editor [data-org-panel=contact]>.ui-field-group>.organization-fields{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
body.app-v2 #main-content .customer-editor [data-org-panel=contact]>.ui-field-group>.organization-fields>fieldset{grid-column:auto;min-width:0;margin:0}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-section-heading{justify-content:flex-start;gap:16px;margin-bottom:12px;align-items:end}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-identity-kind{margin-left:0;max-width:240px}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;align-items:start}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-number{grid-column:2;grid-row:1;max-width:none;justify-self:stretch}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-identity-company{grid-column:1;grid-row:1;max-width:none}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-name-prefix{grid-column:1/-1;grid-row:auto;max-width:none;grid-template-columns:minmax(0,220px) minmax(0,140px);gap:12px}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-person-name{grid-column:1/-1;grid-row:auto;max-width:none;gap:12px}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-dates{grid-column:1/-1;grid-row:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px;max-width:none;padding:0;border:0}
body.app-v2 #main-content .customer-editor .ui-customer-founding{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
body.app-v2 #main-content .customer-editor .ui-customer-founding[hidden]{display:none}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-address-fields{max-width:none;gap:12px;grid-template-columns:minmax(70px,.7fr) minmax(0,2fr) minmax(65px,.55fr)}
@media(max-width:1100px){body.app-v2 #main-content .customer-editor [data-org-panel=contact]>.ui-field-group>.organization-fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){body.app-v2 dialog.customer-edit-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>:is(.ui-customer-number,.ui-identity-company){grid-column:1;grid-row:auto}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-dates{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .customer-editor .ui-customer-founding{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-address-fields{grid-template-columns:80px minmax(0,1fr)}}
@media(min-width:1101px){body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-name-prefix{grid-column:1;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-person-name{grid-column:2;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
body.app-v2 #main-content .customer-editor :is(.ui-reference-fields,.ui-stacked-fields){gap:12px}
body.app-v2 #main-content .customer-editor [data-org-panel=communication]>.ui-field-group>.organization-fields{align-items:start}
body.app-v2 #main-content .customer-editor [data-org-panel=classification] .ui-reference-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:650px){body.app-v2 #main-content .customer-editor [data-org-panel=classification] .ui-reference-fields{grid-template-columns:minmax(0,1fr)}}

@media(min-width:1101px){
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid{grid-template-columns:140px 80px minmax(0,1fr) minmax(0,1.2fr)}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-identity-company{grid-column:1/4}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-customer-number{grid-column:4}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-name-prefix{grid-column:1/3;grid-template-columns:140px 80px}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .ui-customer-name-grid>.ui-person-name{grid-column:3/5;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
}
body.app-v2 #main-content .customer-conditions-summary{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:12px 0}
body.app-v2 #main-content .customer-conditions-summary p{margin:0;flex:1 1 300px}

/* Small visible information glyph; preserve larger hit targets on touch devices. */
.ui-info-trigger::before{width:14px;height:14px}
.ui-info-trigger{font-size:11px!important}
@media(hover:hover) and (pointer:fine){.ui-info-trigger,body.app-v2 .list-columns-menu>summary .ui-info-trigger{width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important}.ui-info-label>.ui-info-trigger,legend>.ui-info-trigger{margin-block:0!important}}
.address-lookup>small[role=status]:empty{display:none}

/* Identity metadata has its own column; hidden business fields leave no grid holes. */
body.app-v2 #main-content .customer-editor .customer-identity-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,210px);gap:16px;align-items:start}
body.app-v2 #main-content .customer-editor .customer-identity-meta{display:grid;gap:12px;align-content:start;min-width:0}
body.app-v2 #main-content .customer-editor .customer-identity-meta>label{width:100%;max-width:none;margin:0;min-width:0}
body.app-v2 #main-content .customer-editor .customer-personal-fields{min-width:0}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .customer-personal-fields .ui-customer-name-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .customer-personal-fields .ui-customer-name-grid>:is(.ui-identity-company,.ui-name-prefix,.ui-person-name,.ui-customer-dates){grid-column:1/-1;grid-row:auto}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .customer-personal-fields .ui-name-prefix{grid-template-columns:minmax(0,140px) minmax(0,80px)}
body.app-v2 #main-content .customer-editor [data-org-panel=contact] .customer-personal-fields .ui-person-name{grid-template-columns:repeat(2,minmax(0,1fr))}
body.app-v2 #main-content .customer-editor .ui-customer-dates,body.app-v2 #main-content .customer-editor .ui-customer-founding{align-items:start}
body.app-v2 #main-content .customer-editor .ui-customer-dates label{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}
body.app-v2 #main-content .customer-editor .ui-customer-dates input{flex:none;align-self:stretch;height:var(--ui-control-height,44px)}
@media(hover:hover) and (pointer:fine){body.app-v2 #main-content .customer-editor .ui-customer-dates input{height:36px;min-height:36px}}
@media(max-width:650px){body.app-v2 #main-content .customer-editor .customer-identity-layout{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .customer-editor .customer-identity-meta{grid-row:1;grid-template-columns:repeat(2,minmax(0,1fr))}}

body.app-v2 #main-content .customer-editor .ui-customer-dates label{display:grid;grid-template-rows:40px auto;align-content:start;align-items:start}
body.app-v2 #main-content .customer-editor .ui-customer-dates label>input{grid-row:2}
body.app-v2 #main-content .customer-editor .ui-customer-dates label>small{grid-row:auto}
body.app-v2 #main-content .customer-editor .panel-head{margin-bottom:12px;align-items:center}
body.app-v2 #main-content .customer-editor .panel-head>h2{margin:0}
body.app-v2 #main-content .customer-editor [data-org-panel=billing]>.ui-field-group>.organization-fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
body.app-v2 #main-content .customer-editor [data-org-panel=billing]>.ui-field-group>.organization-fields>.ui-stacked-fields{display:contents}
body.app-v2 #main-content .customer-editor [data-org-panel=billing]>.ui-field-group>.organization-fields>.ui-stacked-fields>fieldset{grid-column:auto;min-width:0;margin:0}
@media(min-width:901px){
body.app-v2 #main-content .customer-editor [data-org-panel=billing] .customer-billing-payment{grid-column:2!important;grid-row:1 / span 2}
body.app-v2 #main-content .customer-editor [data-org-panel=billing] .customer-billing-prices{grid-column:1!important;grid-row:1}
body.app-v2 #main-content .customer-editor [data-org-panel=billing] .customer-billing-invoice{grid-column:1!important;grid-row:2}
}
@media(min-width:1440px){body.app-v2 #main-content .customer-editor [data-org-panel=billing]>.ui-field-group>.organization-fields{grid-template-columns:repeat(3,minmax(0,1fr))}body.app-v2 #main-content .customer-editor [data-org-panel=billing] .customer-billing-invoice{grid-column:3!important;grid-row:1}body.app-v2 #main-content .customer-editor [data-org-panel=billing] .customer-billing-recipient{grid-column:3!important;grid-row:2}}
@media(max-width:900px){body.app-v2 #main-content .customer-editor [data-org-panel=billing]>.ui-field-group>.organization-fields{grid-template-columns:minmax(0,1fr)}}

body.app-v2 #main-content .customer-editor [data-org-panel=billing] .ui-balanced-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
body.app-v2 #main-content .customer-editor [data-org-panel=billing] .ui-balanced-grid>.check{min-width:0;margin:0;align-items:center}
@media(max-width:500px){body.app-v2 #main-content .customer-editor [data-org-panel=billing] .ui-balanced-grid{grid-template-columns:minmax(0,1fr)}}

/* Customer landing page: identity/address and day-to-day contact information together. */
body.app-v2 #main-content .customer-editor [data-org-panel=contact]>.ui-field-group>.organization-fields{display:block}
body.app-v2 #main-content .customer-home-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
body.app-v2 #main-content .customer-home-column{display:grid;gap:12px;min-width:0}
body.app-v2 #main-content .customer-home-column>fieldset{margin:0;min-width:0}
body.app-v2 #main-content .customer-home-column .ui-input-group{min-width:0;grid-column:1/-1;margin:0;padding:0;border:0;background:transparent}
body.app-v2 #main-content .customer-home-column .ui-input-group h3{display:none}
body.app-v2 #main-content .customer-home-column .ui-input-group>label{width:100%;max-width:none}
body.app-v2 #main-content .customer-home-column textarea{min-height:64px}
body.app-v2 #main-content .customer-home-column .customer-home-preferences{order:9}
body.app-v2 #main-content .customer-phone-row{display:grid;grid-template-columns:100px minmax(0,1fr) minmax(0,1.3fr) 36px;gap:8px;align-items:end;margin:8px 0}
body.app-v2 #main-content .customer-phone-row label{min-width:0;margin:0}
body.app-v2 #main-content .customer-phone-row input,body.app-v2 #main-content .customer-phone-row select{width:100%;min-width:0}
@media(max-width:1100px){body.app-v2 #main-content .customer-home-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:500px){body.app-v2 #main-content .customer-phone-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}body.app-v2 #main-content .customer-phone-row>label:nth-child(3){grid-column:1}body.app-v2 #main-content .customer-phone-row>button{justify-self:end}}

body.app-v2 #main-content .customer-home-grid .customer-identity-layout{grid-template-columns:minmax(0,1fr) 160px;gap:12px}
@media(max-width:650px){body.app-v2 #main-content .customer-home-grid .customer-identity-layout{grid-template-columns:minmax(0,1fr)}}

/* Neutral layout containers; shading belongs to the individual field groups. */
html body:is(.app-v2,.portal-shared) :is(main,dialog) :is(fieldset,.ui-field-group):not(:has(>legend)):has(fieldset,.ui-field-group){background:transparent!important}
body.app-v2 #main-content .customer-identity-top{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start;margin-bottom:12px}
body.app-v2 #main-content .customer-identity-top>.check{align-self:center;white-space:nowrap}
body.app-v2 #main-content .customer-company-row,body.app-v2 #main-content .customer-person-row{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:12px;align-items:start}
body.app-v2 #main-content .customer-person-row{grid-template-columns:1fr 1fr minmax(140px,.8fr);margin-bottom:0}
body.app-v2 #main-content .customer-company-row>label,body.app-v2 #main-content .customer-person-row>label,body.app-v2 #main-content .customer-identity-top>label{min-width:0;max-width:none;width:100%;margin:0}
body.app-v2 #main-content .customer-home-grid .ui-name-prefix{display:grid;grid-template-columns:160px 120px;gap:12px;margin-bottom:12px}
body.app-v2 #main-content .customer-home-grid .ui-name-prefix>label{width:100%;max-width:none;margin:0}
body.app-v2 #main-content .customer-contact-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;min-width:0}
body.app-v2 #main-content .customer-contact-add>label{grid-column:auto;min-width:0;margin:0;width:100%;max-width:none}
body.app-v2 #main-content .customer-contact-add>button{min-width:36px;padding:6px;font-size:20px}
body.app-v2 #main-content .customer-record-head{margin:0 0 10px;gap:8px 16px;align-items:center}
body.app-v2 #main-content .customer-record-head h1{font-size:21px;line-height:1.25;margin:3px 0}
body.app-v2 #main-content .customer-record-head p{margin:3px 0}
body.app-v2 #main-content .customer-record-head .customer-contact-summary{font-size:13px}
body.app-v2 #main-content .customer-main-navigation{margin:0;padding:4px;gap:6px;background:var(--ui-surface);border:1px solid var(--ui-line)}
body.app-v2 #main-content .customer-record>.ui-tab-navigation{margin:0 0 10px;padding:0}
body.app-v2 #main-content .customer-sub-navigation{margin:0;padding:3px 0;gap:4px}
body.app-v2 #main-content .customer-sub-navigation button{padding:6px 10px}
body.app-v2 #main-content .customer-sub-navigation button[aria-selected=true]{background:var(--ui-active);color:var(--ui-surface);border-radius:4px;border-bottom-color:var(--ui-active)}
body.app-v2 #main-content .customer-editor [data-org-panel=contact]>.panel-head{display:none}
@media(max-width:650px){body.app-v2 #main-content .customer-identity-top{grid-template-columns:repeat(2,minmax(0,1fr))}body.app-v2 #main-content .customer-identity-top>.check{grid-column:1/-1}body.app-v2 #main-content .customer-company-row{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .customer-person-row{grid-template-columns:repeat(2,minmax(0,1fr))}body.app-v2 #main-content .customer-person-row>label:last-child{grid-column:1/-1}body.app-v2 #main-content .customer-home-grid .ui-name-prefix{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(pointer:coarse){body.app-v2 #main-content .customer-contact-add>button{min-width:44px;min-height:44px}}
@media(max-width:375px){
 body.app-v2 #main-content .customer-contact-add{display:block;position:relative}
 body.app-v2 #main-content .customer-contact-add>label{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:minmax(44px,auto) auto;column-gap:8px;row-gap:8px;align-items:center}
 body.app-v2 #main-content .customer-contact-add>label>input{grid-column:1/-1;width:100%}
 body.app-v2 #main-content .customer-contact-add>button{position:absolute;top:0;right:0;width:44px;min-height:44px;margin:0}
}

.feedback-modal-access{position:fixed;inset:auto 16px calc(16px + env(safe-area-inset-bottom,0px)) auto;margin:0;padding:0;border:0;background:transparent;overflow:visible;width:auto;height:auto;z-index:2147483647}
.feedback-modal-access>.feedback-trigger{position:static!important;inset:auto!important;min-height:44px}

/* Compact record identity: wrapping metadata, full-size actions and readable contact details. */
body.app-v2 #main-content .page-head.ui-record-heading{align-items:center;gap:8px 16px}
.ui-record-heading-copy{flex:1 1 360px;min-width:0}
.ui-record-heading-title,.ui-record-heading-meta,.ui-record-heading-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;min-width:0}
body.app-v2 #main-content .ui-record-heading-title h1{margin:0;overflow-wrap:anywhere}
.ui-record-heading-meta,.ui-record-heading-contact{margin-top:4px!important;overflow-wrap:anywhere}
.ui-record-heading-meta>*,.ui-record-heading-contact>*{min-width:0;max-width:100%}
.ui-record-heading [role=status]:empty{display:none}
@media(max-width:650px){.ui-record-heading-copy{flex-basis:100%}.ui-record-heading-contact{gap:2px 8px}}

/* Shared collapsible form: compact closed overview, spaced editable body. */
body.app-v2 #main-content .ui-collapsible-form-body{display:grid;gap:var(--ui-space);padding:var(--ui-space)}
body.app-v2 #main-content .ui-collapsible-form-body>fieldset{margin:0}
body.app-v2 #main-content .ui-collapsible-form>summary{flex-wrap:nowrap;gap:12px}
body.app-v2 #main-content .ui-collapsible-form[open]>summary>.ui-summary-metrics{display:none}
body.app-v2 #main-content .ui-collapsible-form>summary>strong{flex:0 0 auto}
body.app-v2 #main-content .ui-collapsible-form>summary>.ui-summary-metrics{display:flex;flex:1 1 auto;flex-wrap:wrap;order:0;gap:4px 12px;border:0;padding:0;margin:0;align-self:center}
body.app-v2 #main-content .ui-collapsible-form .ui-summary-metrics>span{display:inline;flex:0 1 auto;font-size:13px}
body.app-v2 #main-content .ui-collapsible-form .ui-summary-metrics small::after{content:': '}
body.app-v2 #main-content .ui-collapsible-form .ui-summary-metrics strong{font-weight:400}
body.app-v2 #main-content .ui-collapsible-form:not([open])>summary>.ui-summary-action{display:none}
body.app-v2 #main-content .ui-collapsible-form[open]>summary>.ui-summary-action{margin-left:auto}
@media(max-width:650px){body.app-v2 #main-content .ui-collapsible-form>summary{flex-wrap:wrap}body.app-v2 #main-content .ui-collapsible-form>summary>.ui-summary-metrics{flex-basis:calc(100% - 36px);order:2}}

/* Shared single-line field geometry, including position editors. */
body.app-v2 :is(#main-content,dialog) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=file],[type=color],[type=range],[type=submit],[type=button]),select:not([multiple])){box-sizing:border-box;height:var(--ui-field-height,44px)!important;min-height:var(--ui-field-height,44px)!important;padding-block:6px}
body.app-v2 #main-content .organization-fields.ui-separated-rows{display:flex!important;flex-direction:column;gap:0!important}
body.app-v2 #main-content .organization-fields.ui-separated-rows>.ui-field-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%;padding-block:12px;margin:0}
body.app-v2 #main-content .organization-fields.ui-separated-rows>.ui-field-pair~.ui-field-pair{border-top:1px solid var(--ui-border,#c6cdd5)}
body.app-v2 #main-content .organization-fields.ui-separated-rows>.ui-field-pair label{min-width:0;width:auto}
body.app-v2 #main-content .organization-fields.ui-separated-rows>.ui-field-pair select{width:100%;min-width:0}

body.app-v2 #main-content .organization-fields.ui-separated-rows>.ui-field-pair:has([name=notice_value],[name=renewal_value]){grid-template-columns:112px minmax(0,1fr)}
body.app-v2 #main-content .ui-collapsible-form-body>fieldset .organization-fields>label:only-child{grid-column:1/-1}

/* Shared lifecycle emphasis: readable text remains the primary status signal. */
:is(body.app-v2,body.portal-shared) #main-content [data-ui-row-tone="info"]{--ui-row-bg:#eef6ff;background:var(--ui-row-bg)}
:is(body.app-v2,body.portal-shared) #main-content [data-ui-row-tone="info"]>td{background:var(--ui-row-bg)}
:is(body.app-v2,body.portal-shared) #main-content [data-ui-status-tone="info"]{background:#d9eaff;color:#183f69;border:1px solid #7b9fc7;font-weight:700}
:is(body.app-v2,body.portal-shared) #main-content [data-ui-row-tone="success"]>td{background:#eff8f2}
:is(body.app-v2,body.portal-shared) #main-content [data-ui-row-tone="warning"]>td{background:#fff9e8}
:is(body.app-v2,body.portal-shared) #main-content [data-ui-status-tone="success"]{background:#d9efdf;color:#205b35;border:1px solid #8fbd9d;font-weight:700}
:is(body.app-v2,body.portal-shared) #main-content [data-ui-status-tone="warning"]{background:#fff0bd;color:#694900;border:1px solid #d6b459;font-weight:700}

html[data-color-mode=dark] :is(body.app-v2,body.portal-shared) #main-content [data-ui-row-tone="info"]{--ui-row-bg:#19394f}
html[data-color-mode=dark] :is(body.app-v2,body.portal-shared) #main-content [data-ui-status-tone="info"]{background:#244f6b;color:#e7f4ff;border-color:#78a7cb}
html[data-color-mode=dark] :is(body.app-v2,body.portal-shared) #main-content [data-ui-row-tone="success"]>td{background:#193b2a}
html[data-color-mode=dark] :is(body.app-v2,body.portal-shared) #main-content [data-ui-row-tone="warning"]>td{background:#41371c}
html[data-color-mode=dark] :is(body.app-v2,body.portal-shared) #main-content [data-ui-status-tone="success"]{background:#245236;color:#e1f5e7}
html[data-color-mode=dark] :is(body.app-v2,body.portal-shared) #main-content [data-ui-status-tone="warning"]{background:#615021;color:#fff0bd}
body.app-v2 #main-content .ui-fit-records{width:100%;min-width:0!important;table-layout:fixed}
body.app-v2 #main-content .ui-fit-records :is(th,td){min-width:0;white-space:normal;overflow-wrap:anywhere}
body.app-v2 #main-content .ui-fit-records td a{font-weight:700}
body.app-v2 #main-content .ui-fit-records th:first-child:has(input[type="checkbox"]){width:68px}
body.app-v2 #main-content .table-wrap:has(>.ui-fit-records){overflow:visible}
@media(max-width:767px){
 body.app-v2 #main-content .ui-fit-records :is(tbody,tr){display:block;width:100%;box-sizing:border-box}
 body.app-v2 #main-content .ui-fit-records thead th:not(:has(input[type="checkbox"])){display:none}
 body.app-v2 #main-content .ui-fit-records td:not([hidden]){display:block;width:auto!important;border:0}
 body.app-v2 #main-content .ui-fit-records td[data-column-label]:before{content:attr(data-column-label);display:block;font-size:12px;font-weight:700;color:var(--ui-muted)}
 body.app-v2 #main-content .ui-fit-records tr{border-bottom:1px solid var(--ui-border)}
}

/* Reusable compact detail composition for customer and staff read views. */
.ui-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.ui-detail-heading h2{margin:0;min-width:0;overflow-wrap:anywhere}
.ui-detail-heading .form-actions{margin:0!important}
.ui-detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;align-items:start}
.ui-detail-columns>fieldset{min-width:0;margin:0!important}
.ui-facts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:4px 0}
.ui-facts-grid>div{min-width:0;overflow-wrap:anywhere}
.ui-facts-grid dt{font-size:12px;color:var(--ui-muted,#56677b);margin-bottom:4px}
.ui-facts-grid dd{margin:0;font-weight:600}
.ui-detail-item{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--ui-border,#c6cdd5);padding-bottom:12px;overflow-wrap:anywhere}
.ui-detail-item span{font-size:13px}
.ui-document-entry small{display:block;margin-top:6px;color:var(--ui-muted,#56677b)}
@media(max-width:820px){.ui-detail-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:430px){.ui-facts-grid{gap:12px}.ui-detail-heading .form-actions{flex-wrap:wrap}}

/* Keep secondary dialog actions legible with the shared explicit dark mode. */
html[data-color-mode=dark] body.app-v2 dialog :is(button.secondary,.button.secondary):not(.ui-record-link){background:#263c51!important;color:#edf4fb!important;border-color:#61778d!important}

/* Public before/after comparisons share the internal journal colors. */
body.portal-v2 .diff-removed{background:#ffe9eb;color:#9f0018}
body.portal-v2 .diff-added{background:#e9f7ed;color:#176b38}

/* Personal quick-action selection: one compact row per action. */
body.app-v2 .ui-quick-preferences{width:min(620px,calc(100vw - 24px))}
body.app-v2 .ui-quick-preferences .ui-quick-preference-row{display:flex;align-items:center;gap:12px;padding:6px 0;border-bottom:1px solid var(--ui-border,#ccd4de)}
body.app-v2 .ui-quick-preferences .ui-quick-preference-row label.check{display:flex;align-items:center;gap:8px;flex:1;min-width:0;margin:0;font-size:13px;line-height:1.35}
body.app-v2 .ui-quick-preferences .ui-quick-preference-order{display:flex;gap:8px;flex:none;margin:0}
body.app-v2 .ui-quick-preferences .ui-quick-preference-order button{width:36px;min-width:36px;height:36px;min-height:36px;padding:0;font-size:18px}
body.app-v2 .ui-document-icon{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:36px;min-width:36px;min-height:36px;padding:7px!important;position:relative}
body.app-v2 .ui-document-icon svg{width:20px;height:20px;flex:none}
body.app-v2 .ui-document-icon-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(pointer:coarse),(max-width:820px){
 body.app-v2 .ui-quick-preferences .ui-quick-preference-order button{width:44px;min-width:44px;height:44px;min-height:44px}
 body.app-v2 .ui-document-icon{width:auto;min-width:44px;min-height:44px;max-width:100%}
 body.app-v2 .ui-document-icon-label{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;font-size:12px}
}

/* Document accordions must use paired dark surfaces and text, including nested sections. */
@media screen {
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(main,dialog) .pos-document-header{background:var(--ui-form-main)!important;color:var(--ui-form-ink);border-color:var(--ui-line)}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(main,dialog) .pos-document-header>summary{background:var(--ui-form-main)!important;color:var(--ui-form-ink)!important;border-color:var(--ui-line)}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .pos-document-header>summary>:is(strong,.pos-header-toggle){color:var(--ui-form-ink)!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .pos-document-header>summary>:is([data-pos-header-summary],[data-document-section-summary]){color:var(--ui-muted)!important}
}
#document-action-tooltip{pointer-events:none}

/* Compact status details retain full accessible text without a second toolbar caption. */
body.app-v2 .csu-initial-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
body.app-v2 [data-status-updates-open]{min-width:36px;padding-inline:8px!important;white-space:nowrap}
body.app-v2 #main-content input[role=switch]:focus{box-shadow:none;outline:2px solid var(--ui-focus,#7fa3c9);outline-offset:2px}
body.app-v2 #main-content input[role=switch]:focus:not(:focus-visible){outline:none}
/* Keep secondary controls and mobile table labels readable on dark surfaces. */
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(main,dialog,[popover]) :is(button.secondary,a.button.secondary):not(.ui-record-link){background:#263c51!important;color:#edf4fb!important;border-color:#61778d!important}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(main,dialog) td[data-column-label]::before{color:#b9cadb!important}
html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(main,dialog) td a:not(.button){color:#98d8f5!important}

/* Shared settings cards follow the active palette, including embedded module lists. */
@media screen {
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.settings-hub-link,.settings-hub .module-link,.ui-module-row){background:#22374b!important;color:#edf4fb!important;border-color:#61778d!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.settings-hub-link,.settings-hub .module-link,.ui-module-row) :is(strong,h3){color:#edf4fb!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.settings-hub-link,.settings-hub .module-link,.ui-module-row) small{color:#b9cadb!important}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.settings-hub-link,.settings-hub .module-link):is(:hover,:focus-visible){background:#30495f!important}
}
body:is(.app-v2,.portal-shared) :is(.settings-hub-link,.settings-hub .module-link,.ui-module-copy){min-width:0;overflow-wrap:anywhere}

/* Note/task row actions stay together, including after list checkbox insertion. */
body.app-v2 #main-content .activity-compact-table .activity-row-actions{display:flex;flex-direction:row;flex-wrap:nowrap!important;gap:8px;margin:4px 0 0!important;padding:0;justify-content:flex-start}
body.app-v2 #main-content .activity-compact-table .activity-row-actions>button{white-space:nowrap!important;flex:0 0 auto}

/* Quick-action icons must retain visible text when rendered inside a menu. */
body.app-v2 :is(.ui-action-menu,.ui-action-popover,.bulk-menu,.case-extra-actions) .ui-document-icon>svg{display:none}
body.app-v2 :is(.ui-action-menu,.ui-action-popover,.bulk-menu,.case-extra-actions) .ui-document-icon-label{position:static!important;width:auto!important;height:auto!important;clip:auto!important;clip-path:none!important;overflow:visible!important;white-space:normal!important}
/* Keep the complete VAT value visible, including German decimal formatting. */
body.app-v2 #main-content .position-table .pe-tax{width:88px;min-width:88px}
body.app-v2 #main-content .position-table .position-tax-cell input{min-width:70px;padding-inline:8px}

/* Case lists fit the available width; narrow screens use the shared labeled cards. */
body.app-v2 #main-content [data-case-list-table]{width:100%;min-width:0!important;table-layout:fixed}
body.app-v2 #main-content [data-case-list-table] :is(th,td){min-width:0!important;overflow-wrap:anywhere;white-space:normal}
body.app-v2 #main-content [data-case-list-table] .ui-case-status-field{width:auto;min-width:0;height:auto;min-height:0;white-space:normal;overflow:visible;padding:6px 8px}
body.app-v2 #main-content .ui-responsive-list span.ui-case-status-field{display:inline-block;width:auto;min-width:0;max-width:100%;height:auto;min-height:0;padding:4px 8px;line-height:1.2;white-space:normal;overflow:visible;overflow-wrap:anywhere}
body.app-v2 #main-content [data-case-list-table] .customer-case-link,body.app-v2 #main-content [data-case-list-table] .customer-case-link :is(span,small){white-space:normal;overflow:visible;text-overflow:clip;max-width:100%;overflow-wrap:anywhere}

/* A3: expiry reminders may be quiet on phones; license errors never are. */
body.app-v2 .license-notice :is(.license-notice-compact,.license-notice-dismiss){display:none}
@media(max-width:650px){
 body.app-v2 .license-notice.license-notice-mobile-quiet,body.app-v2 .license-notice[data-dismissed-today="1"]{display:none}
 body.app-v2 .license-notice[data-license-expiry-notice="1"] .license-notice-full{display:none}
 body.app-v2 .license-notice[data-license-expiry-notice="1"] :is(.license-notice-compact,.license-notice-dismiss){display:inline-flex;align-items:center}
 body.app-v2 .license-notice :is(a,button){min-height:44px;min-width:44px;align-items:center;display:inline-flex}
 body.app-v2 .license-notice{gap:8px;flex-wrap:wrap}
}

/* F2: paired surfaces/text for document totals, planner and shared metadata. */
@media screen {
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared){--position-action-ink:#b9cadb}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) :is(.position-totals,.planner-cell,.planner-recommendations,.profile-meta>span,.organization-save){background:var(--ui-surface);color:var(--ui-ink);border-color:var(--ui-line)}
 html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .position-totals :is(dt,dd,small){color:var(--ui-ink)}
 html[data-color-mode=dark] body.app-v2 #main-content :is(.position-heading p,.position-kind,.position-drag,.position-name-clear,.position-insert-button,.support-muted,[data-position-breakdown] span,.dashboard-case-row time,.planning-item time){color:var(--ui-muted)}
 html[data-color-mode=dark] body.app-v2 .dashboard-collapsed-count{background:var(--ui-soft);color:var(--ui-ink)}
 html[data-color-mode=dark] body.app-v2 .profile-meta b{color:var(--ui-ink)}
 html[data-color-mode=dark] body.app-v2>header :is(.header-action-count){color:var(--theme-primary-text)}
 html[data-color-mode=dark] body.app-v2>header details>summary{background:var(--theme-secondary);color:var(--theme-secondary-text);border-color:var(--theme-border)}
 html[data-color-mode=dark] body.app-v2 #main-content .planner-cell :is(.support-text-button,.muted){color:var(--ui-muted)}
}

@media screen {
 html[data-color-mode=dark] body.app-v2{--ui-filter-active-ink:#98d8f5}
 html[data-color-mode=dark] body.app-v2 #main-content :is(.system-info-grid>div,.release-card>header,.release-card>footer,.panel>dl>dd,.weekly-breaks>summary,.number-example,.badge.ui-list-selection-count){background:var(--ui-surface);color:var(--ui-ink);border-color:var(--ui-line)}
 html[data-color-mode=dark] body.app-v2 #main-content :is(.system-info-grid dt,.system-info-grid small,.release-card time,.release-card footer small,.number-example small,.mail-sender-heading){color:var(--ui-muted)}
 html[data-color-mode=dark] body.app-v2 #main-content .ui-time-control>.ui-time-picker-button{color:var(--ui-ink)}
}

/* #521: layout modes are viewport-based: phone <768, tablet <1280, desktop >=1280.
   Container queries only condense table columns; they never activate phone cards. */
:root{--ui-breakpoint-phone:768px;--ui-breakpoint-desktop:1280px}
body.app-v2 .ui-dashboard-widget{container-type:inline-size}
body.app-v2 .dashboard-case-table :is(.dashboard-case-head,.dashboard-case-row){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr) minmax(0,.7fr) minmax(0,1fr);gap:10px;align-items:center}
body.app-v2 .dashboard-case-table .dashboard-customer{grid-column:1;grid-row:1}
body.app-v2 .dashboard-case-table .dashboard-subject{grid-column:2;grid-row:1}
body.app-v2 .dashboard-case-table .dashboard-type{grid-column:3;grid-row:1}
body.app-v2 .dashboard-case-table .dashboard-status{grid-column:4;grid-row:1}
body.app-v2 .dashboard-case-row>span{min-width:0;overflow-wrap:anywhere}
body.app-v2 .dashboard-case-row>.dashboard-priority{display:none}
body.app-v2 .dashboard-case-head>.dashboard-priority{grid-column:2;grid-row:1;justify-self:end;min-width:36px;padding:0}
body.app-v2 .dashboard-case-head>.dashboard-subject-sort{grid-column:2;grid-row:1;display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
body.app-v2 #main-content .dashboard-subject-sort>.dashboard-subject{min-width:0;white-space:normal}
body.app-v2 #main-content .dashboard-subject-sort>.dashboard-priority{flex:none;min-width:36px;display:inline-flex;align-items:center;justify-content:center;padding:0}
body.app-v2 .dashboard-case-row>span::before{display:none}
body.app-v2 .dashboard-case-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.app-v2 .dashboard-priority-flag{margin-right:6px;color:var(--ui-muted)}
body.app-v2 .dashboard-priority-flag svg{vertical-align:middle}
body.app-v2 .dashboard-priority-flag:is(.priority-high,.priority-urgent,.priority-critical){color:#b42318}
body.app-v2 .dashboard-case-table :is(.dashboard-inline-customer,.dashboard-inline-type,.dashboard-status-type){display:none}
body.app-v2 .dashboard-case-row .dashboard-case-meta{display:flex;gap:3px;overflow:hidden;white-space:nowrap}
body.app-v2 .dashboard-case-meta>.dashboard-inline-customer{min-width:0;overflow:hidden;text-overflow:ellipsis}
body.app-v2 .dashboard-case-meta>:is(.dashboard-case-number,.dashboard-inline-type){flex:none}
@container(max-width:850px){
 body.app-v2 .ui-dashboard-widget :is(.dashboard-case-head,.dashboard-case-row){grid-template-columns:minmax(0,1fr) minmax(0,1.8fr) minmax(0,1fr)}
 body.app-v2 .ui-dashboard-widget .dashboard-case-table .dashboard-type{display:none}
 body.app-v2 .ui-dashboard-widget .dashboard-case-table .dashboard-status{grid-column:3}
 body.app-v2 .ui-dashboard-widget .dashboard-status-type{display:block;color:var(--ui-muted)}
}
@container(max-width:600px){
 body.app-v2 .ui-dashboard-widget :is(.dashboard-case-head,.dashboard-case-row){grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}
 body.app-v2 .ui-dashboard-widget .dashboard-case-table .dashboard-customer{display:none}
 body.app-v2 .ui-dashboard-widget .dashboard-case-table .dashboard-subject{grid-column:1}
 body.app-v2 .ui-dashboard-widget .dashboard-case-table .dashboard-status{grid-column:2}
 body.app-v2 .ui-dashboard-widget .dashboard-case-head>:is(.dashboard-priority,.dashboard-subject-sort){grid-column:1}
 body.app-v2 .ui-dashboard-widget .dashboard-inline-customer{display:inline}
}
@media(max-width:767px){
 body.app-v2 .dashboard-case-table .dashboard-case-head{display:none}
 body.app-v2 .dashboard-case-table .dashboard-case-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;min-height:64px;padding:9px 10px;box-sizing:border-box}
 body.app-v2 .dashboard-case-table .dashboard-case-row>:is(.dashboard-customer,.dashboard-type,.dashboard-priority){display:none}
 body.app-v2 .dashboard-case-table .dashboard-case-row>.dashboard-subject{display:contents}
 body.app-v2 .dashboard-case-table .dashboard-case-title{grid-column:1;grid-row:1}
 body.app-v2 .dashboard-case-table .dashboard-case-meta{grid-column:1/-1;grid-row:2;min-width:0}
 body.app-v2 .dashboard-case-table .dashboard-status .badge{white-space:normal;overflow:visible;text-overflow:clip;max-width:100%;line-height:1.2}
 body.app-v2 .dashboard-case-table .dashboard-case-row>.dashboard-status{grid-column:2;grid-row:1;max-width:120px}
 body.app-v2 .dashboard-case-table :is(.dashboard-inline-customer,.dashboard-inline-type){display:inline}
 body.app-v2 .dashboard-case-table .dashboard-status-type{display:none}
}
html[data-color-mode=dark] body.app-v2 #main-content .dashboard-case-row>.dashboard-customer b{color:var(--ui-muted)}

/* Keep generated numbering examples and designer controls legible in dark mode. */
html[data-color-mode=dark] body.app-v2 #main-content .number-setting .number-example{background:var(--ui-surface);border-color:var(--ui-line)}
html[data-color-mode=dark] body.app-v2 #main-content .number-example output{color:var(--ui-ink)}
html[data-color-mode=dark] body.app-v2 #main-content .de-zoom-tools span{color:var(--ui-muted)}

/* A1: keep touch headers clear of the iPhone notch in standalone mode. */
@media(max-width:1279px){
 body.app-v2>header{padding-top:max(8px,env(safe-area-inset-top,0px));padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
 body.portal-shared>.public-brand{padding-top:max(16px,env(safe-area-inset-top,0px))}
}

/* A10: phone feedback lives in More; save details expand in the header flow. */
.ui-mobile-save,.ui-mobile-feedback{display:none}
.ui-save-notices.ui-save-notices-mobile-open[popover]:not(:popover-open){display:none!important}
body.app-v2>header .ui-mobile-save[open]>.ui-save-notices.ui-save-notices-mobile-open[popover]:popover-open{position:fixed;inset:auto;left:var(--ui-save-left);top:var(--ui-save-top);bottom:auto;right:auto;width:var(--ui-save-width);max-height:var(--ui-save-height);margin:0!important;padding:0!important;border:0;background:transparent;overflow:auto;pointer-events:auto}
@media(max-width:650px){
 body.app-v2 .ui-floating-actions,body.app-v2 .feedback-modal-access{display:none}
 body.app-v2>aside .ui-mobile-feedback{display:block;min-height:44px;width:100%;margin-bottom:8px}
 body.app-v2>header .ui-mobile-save{display:block;min-width:44px}
 body.app-v2>header .ui-mobile-save>summary{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;list-style:none;font-size:18px}
 body.app-v2>header .ui-mobile-save[open]{flex-basis:100%;width:100%}
 body.app-v2>header .ui-mobile-save>.ui-save-notices{position:static;width:100%;max-height:none;overflow:visible;pointer-events:auto}
 body.app-v2 a[href^="mailto:"]{hyphens:none;overflow-wrap:anywhere}
}

/* Readable position indices and reorder controls on both surface schemes. */
body.app-v2 #main-content .position-table :is(.position-number,.position-drag){color:var(--ui-muted);--position-action-ink:var(--ui-muted)}

body.app-v2 #main-content .pos-document-subject textarea{width:100%;min-height:44px;box-sizing:border-box;line-height:1.4;resize:vertical;overflow-wrap:anywhere}
/* Shared touch targets for navigation links outside form controls. */
@media (pointer:coarse),(max-width:900px){
 body.app-v2>header button.menu{min-width:44px;min-height:44px}
 body.app-v2>footer a,body.app-v2 #main-content .dashboard-heading-link{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
}

@container (max-width:900px){
 .sv-compact-issues .sv-issue-heading{display:none}
 .sv-compact-issues summary.sv-issue-columns{grid-template-columns:minmax(0,1fr);gap:8px;overflow-wrap:anywhere}
 .sv-compact-issues summary.sv-issue-columns>:not(strong){display:block}
 .sv-compact-issues summary.sv-issue-columns>:not(strong)::before{font-weight:600;margin-right:8px}
 .sv-compact-issues summary.sv-issue-columns>:nth-child(2)::before{content:'Anzahl: '}
 .sv-compact-issues summary.sv-issue-columns>:nth-child(3)::before{content:'Wert: '}
 .sv-compact-issues summary.sv-issue-columns>:nth-child(4)::before{content:'Ausgegeben: '}
 .sv-compact-issues summary.sv-issue-columns>:nth-child(5)::before{content:'Herkunft / Werbender: '}
}
/* Print geometry already recalculates from the actual stage width. */
body.app-v2 #main-content .ad-canvas{min-width:0;max-width:100%}
body.app-v2 #main-content .profile-meta{color:var(--ui-muted)}

/* Keep the compact price switch track inside a full touch target. */
body.app-v2 #main-content .pos-price-switch button{height:44px;min-height:44px;background:transparent;overflow:visible}
body.app-v2 #main-content .pos-price-switch button[aria-checked=true]{background:transparent}
body.app-v2 #main-content .pos-price-switch button::before{content:"";position:absolute;inset:9px 0;border-radius:20px;background:#64748b}
body.app-v2 #main-content .pos-price-switch button[aria-checked=true]::before{background:#244f73}
body.app-v2 #main-content .pos-price-switch button span{top:12px}

/* Plain text links remain text links, with enough room for touch input. */
@media(pointer:coarse),(max-width:650px){
 body.app-v2 #main-content a:not(.button):not(:has(*)){display:inline-flex;align-items:center;min-height:44px;min-width:44px;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
 body.app-v2 #main-content .case-primary-link{min-height:44px;min-width:44px}
}

@media(pointer:coarse),(max-width:650px){
 body.app-v2 button[data-status-updates-open]{min-width:44px;min-height:44px}
 body.app-v2 :is(#main-content,dialog) input[type=file]{min-height:44px;max-width:100%;font-size:16px}
 body.app-v2 :is(#main-content,dialog) input[type=file]::file-selector-button{min-height:44px;font:inherit}
}

@media(max-width:375px){
 body.app-v2 #main-content .position-table td:has(>.position-unit-control){grid-column:1/-1}
}

body.app-v2 :is(#main-content,dialog) textarea.ui-readonly-url{width:100%;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;resize:vertical;line-height:1.4}

/* Sender columns use the shared readable caption color in both themes. */
body.app-v2 #main-content .mail-sender-heading{color:var(--ui-muted)}

/* Compact masthead; relocated controls remain available through the main menu. */
.mobile-header-tools[hidden],.mobile-header-search[hidden]{display:none}
@media(max-width:900px){
 body.app-v2>header.mobile-header-compact{position:sticky;top:0;display:flex;flex-wrap:nowrap;gap:4px;min-height:56px;height:calc(56px + env(safe-area-inset-top,0px));padding:calc(6px + env(safe-area-inset-top,0px)) 8px 6px;z-index:60}
 body.app-v2>header.mobile-header-compact>.menu{order:0;flex:0 0 44px}
 body.app-v2>header.mobile-header-compact>.header-context{order:1;flex:1 1 0;min-width:0;width:auto}
 body.app-v2>header.mobile-header-compact>.header-context strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body.app-v2>header.mobile-header-compact>.header-context small{display:none}
 body.app-v2>header.mobile-header-compact>.mobile-header-search{order:2;flex:0 0 44px;width:44px;padding:0}
 body.app-v2>header.mobile-header-compact>.notification-bell{order:3;flex:0 0 44px;margin:0}
 body.app-v2>header.mobile-header-compact>.ui-mobile-save{order:4;flex:0 0 44px;min-width:44px;width:44px}
 body.app-v2>header.mobile-header-compact>.ui-mobile-save[open]>.ui-save-notices{position:absolute;left:8px;right:8px;top:100%;width:auto;max-height:60vh;overflow:auto;background:var(--ui-surface,#fff)}
 body.app-v2 .mobile-header-tools{display:grid;gap:12px;padding:12px;min-width:0}
 body.app-v2 .mobile-header-tools .header-global-actions{display:grid;gap:8px;min-width:0;width:100%}
 body.app-v2 .mobile-header-tools .header-icon-action{width:100%;height:auto;min-height:44px;white-space:normal;justify-content:flex-start;gap:8px}
 body.app-v2 .mobile-header-tools [data-header-label]::after{content:attr(data-header-label);font-size:13px;line-height:1.3;overflow-wrap:anywhere}
 body.app-v2 .mobile-header-tools .header-identity{display:grid;gap:8px;min-width:0}
 body.app-v2 .mobile-header-tools .header-identity>a{max-width:none;white-space:normal}
 body.app-v2 dialog.mobile-search-dialog{position:fixed;inset:0;margin:0;box-sizing:border-box;width:100%;max-width:none;height:100%;max-height:none;padding:16px;padding-top:max(16px,env(safe-area-inset-top,0px))}
 .mobile-search-dialog .header-universal-search form{display:flex;gap:8px;align-items:center}
 .mobile-search-dialog .header-universal-search input{flex:1;min-width:0;font-size:16px;min-height:44px}
}
@media(max-width:900px){
 body.app-v2 .mobile-header-tools{flex-shrink:0}
 body.app-v2 .mobile-header-tools .header-identity{width:100%;margin:0}
 body.app-v2 .mobile-header-tools .header-identity>:is(.tenant-indicator,.user-indicator){display:grid;width:100%;min-width:0;max-width:none;min-height:44px;box-sizing:border-box}
}
@media(max-width:900px){
 body.app-v2 .mobile-header-tools .header-icon-action{display:flex;box-sizing:border-box;position:relative}
 body.app-v2 .mobile-header-tools .header-icon-action svg{width:22px;height:22px;flex-shrink:0}
}
@media(max-width:900px){
 body.app-v2 .mobile-header-tools :is(button,a.button,summary.button,.header-identity>a){background:var(--theme-secondary,#e8edf2);color:var(--theme-secondary-text,#253548);border:1px solid var(--theme-border,#c6d0db)}
 body.app-v2 .mobile-header-tools .header-identity :is(small,span){color:inherit;white-space:normal}
}
@media(max-width:900px){
 body.app-v2 .mobile-header-tools .header-icon-action[hidden],body.app-v2 .mobile-header-tools .header-action-count[hidden]{display:none}
}

/* Bottom navigation uses shared vector strokes and a single-line caption. */
@media(max-width:900px){
 body.app-v2 .mobile-work-nav :is(a,button){min-height:56px;flex-direction:column;gap:2px;white-space:nowrap}
 body.app-v2 .mobile-work-nav svg{width:22px;height:22px;flex-shrink:0}
 body.app-v2 .mobile-work-nav .mobile-work-create svg{box-sizing:content-box;padding:5px;border-radius:50%;background:var(--theme-primary,#263d53);color:var(--theme-primary-text,#fff)}
 body.app-v2.mobile-more-open>aside{top:auto;bottom:0;left:0;right:0;width:100vw;height:85dvh;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 16px);border-radius:16px 16px 0 0;box-sizing:border-box;padding:0 12px max(16px,env(safe-area-inset-bottom,0px))}
 body.app-v2.mobile-more-open>aside>.logo{display:none}
 body.app-v2.mobile-more-open>aside>.nav-mobile-heading{position:sticky;top:0;z-index:1;flex-shrink:0;background:var(--theme-sidebar,#293d52)}
}

/* Mobile dialogs dock above the keyboard; the fullscreen search keeps its layout. */
@media(max-width:650px){
 body.app-v2 dialog.ui-dialog:not(.mobile-search-dialog):not(.csys-inline),body.app-v2 #main-content dialog.ui-dialog:not(.mobile-search-dialog):not(.csys-inline),body.portal-shared dialog.ui-dialog:not(.mobile-search-dialog):not(.csys-inline){position:fixed;inset:auto 0 var(--ui-dialog-keyboard-offset,0px);margin:0;box-sizing:border-box;width:100vw;max-width:100vw;max-height:min(90dvh,calc(var(--ui-dialog-viewport-height,100dvh) - 16px));padding:16px 16px max(16px,env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;overflow:auto;overscroll-behavior:contain;scroll-padding-block:16px}
}
.ui-dialog-drag-handle{display:none}
@media(max-width:650px){
 body.app-v2 dialog.ui-dialog>.ui-dialog-drag-handle,body.portal-shared dialog.ui-dialog>.ui-dialog-drag-handle{display:flex;align-items:center;justify-content:center;width:100%;height:44px;min-height:44px;margin:-12px 0 4px;padding:0;background:transparent;color:var(--theme-muted,var(--ui-muted,#64748b));border:0;box-shadow:none;touch-action:none}
 .ui-dialog-drag-handle>span{display:block;width:36px;height:4px;border-radius:4px;background:currentColor}
 .ui-dialog-drag-handle:disabled{visibility:hidden}
}

/* Long company names remain fully readable without changing native input behavior. */
body.app-v2 #main-content .ui-input-value-preview{display:block;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;hyphens:none;color:var(--ui-ink);font-size:14px;line-height:1.4;font-weight:400}
body.app-v2 #main-content .ui-input-value-preview[hidden]{display:none}

/* Connected documents remain readable without horizontal scrolling. */
body.app-v2 .ui-document-flow{margin-block:var(--space-3,12px)}
body.app-v2 .ui-document-flow ol{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;list-style:none}
body.app-v2 .ui-document-flow li{min-width:0;max-width:100%}
body.app-v2 .ui-document-flow a{display:flex;flex-direction:column;justify-content:center;min-height:44px;overflow-wrap:anywhere;text-decoration:none}
body.app-v2 .ui-document-flow a>span{font-weight:600;text-decoration:underline;text-underline-offset:3px}
body.app-v2 .ui-document-flow a>small{color:var(--muted);font-weight:400}
body.app-v2 .ui-document-flow a[aria-current=page]>span{font-weight:800}

body.app-v2 .ui-document-flow .ui-document-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
body.app-v2 .ui-document-stages>li{display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere}
body.app-v2 .ui-document-stages>li>small{color:var(--muted)}
body.app-v2 .ui-document-related{display:flex;flex-wrap:wrap;gap:8px 16px}
@media(max-width:650px){body.app-v2 .ui-document-flow .ui-document-stages{grid-template-columns:repeat(2,minmax(0,1fr))}}

body.app-v2 .ui-action-categories.ui-action-sheet{border-radius:16px 16px 0 0;overscroll-behavior:contain}

/* Column labels retain their authored case across shared lists. */
body.app-v2 #main-content thead th{text-transform:none;letter-spacing:normal}

/* Shared application headings; document/editor content keeps its own typography. */
body.app-v2{--ui-title-size:23px;--ui-title-weight:600;--ui-section-title-size:18px;--ui-section-title-weight:700}
body.app-v2 #main-content :is(.page-head,.hero,.case-top,.customer-record-head,.ui-heading-contact-row) h1{font-size:var(--ui-title-size);font-weight:var(--ui-title-weight);min-height:0}
body.app-v2 #main-content :is(.panel-head,.position-heading,.pos-document-heading,.ui-form-header) h2,
body.app-v2 #main-content :is(.panel,.support-card,.settings-card,.article-shell,.booking-editor-section)>h2,
body.app-v2 #main-content .dashboard-card>.panel-head h2{font-size:var(--ui-section-title-size);font-weight:var(--ui-section-title-weight);min-height:0}
@media(max-width:700px){body.app-v2{--ui-title-size:24px}}

body.app-v2{--ui-button-font-size:13px;--ui-button-font-weight:600;--ui-button-radius:7px}

/* Portal DOM order keeps payable invoices first for mobile and keyboard reading. */
body.portal-home-page .portal-home-grid>.portal-home-priority{grid-column:1;grid-row:1}
body.portal-home-page .portal-home-grid>.portal-home-appointment{grid-column:2;grid-row:1}
@media(max-width:700px){body.portal-home-page .portal-home-grid>.portal-surface{grid-column:auto;grid-row:auto}}

/* Portal invoices remain complete cards, including amounts and document actions. */
body.portal-shared .portal-table-scroll:has(>.portal-invoice-cards){overflow:visible}
body.portal-shared .portal-invoice-cards{display:block;width:100%;min-width:0}
body.portal-shared .portal-invoice-cards thead{display:none}
body.portal-shared .portal-invoice-cards tbody{display:grid;gap:16px}
body.portal-shared .portal-invoice-cards tr:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--ui-line,#cbd0d8);border-radius:8px}
body.portal-shared .portal-invoice-cards td{display:block;min-width:0;padding:0;border:0;white-space:normal;overflow-wrap:anywhere}
body.portal-shared .portal-invoice-cards td::before{content:attr(data-label);display:block;font-size:13px;font-weight:600;margin-bottom:4px}
body.portal-shared .portal-invoice-cards td:first-child,body.portal-shared .portal-invoice-cards td:last-child{grid-column:1/-1}
body.portal-shared .portal-invoice-cards td:last-child{display:flex;flex-wrap:wrap;gap:8px}
body.portal-shared .portal-invoice-cards td:last-child::before{flex-basis:100%}
body.portal-shared .portal-invoice-cards td:last-child .button{max-width:100%;box-sizing:border-box}
body.portal-shared .portal-surface:has(.portal-invoice-cards) .portal-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px}
body.portal-shared .portal-surface:has(.portal-invoice-cards) .portal-tools label{display:grid;gap:4px}
body.portal-shared .portal-surface:has(.portal-invoice-cards) .portal-tools select{appearance:none;-webkit-appearance:none;height:44px;min-height:44px;width:100%;font-size:16px;padding:8px 28px 8px 10px;border:1px solid var(--ui-line,#cbd0d8);border-radius:7px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%23708090' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
body.portal-shared .portal-table-scroll:has(>.portal-invoice-cards){margin-top:16px}

body.portal-shared .portal-invoice-cards td:last-child form{min-width:0;max-width:100%}
body.portal-shared .portal-invoice-cards td:last-child button{max-width:100%;white-space:normal;overflow-wrap:anywhere;box-sizing:border-box}
body.portal-shared .portal-surface:has(.portal-invoice-cards) .portal-tools :is(form,label,select){min-width:0;max-width:100%;box-sizing:border-box}

/* Portal list secondary text stays legible on grouped surfaces. */
body.portal-shared :is(.portal-document-kind,.portal-invoice-cards small,.portal-tools [data-table-count]){color:#526070}
html[data-color-mode=dark] body.portal-shared :is(.portal-document-kind,.portal-invoice-cards small,.portal-tools [data-table-count]){color:var(--ui-muted)}

body.portal-shared .portal-case-cards td:is([data-label="Anliegen"],[data-label="Belegtyp"],[data-label="Budget"]){grid-column:1/-1}

/* Shared read-only process timeline (#605). (c) schober24.com Deutschland | Schober, Thorsten */
/* Shared compact object progress (#601/#605). */
.ui-process{--ui-process-node-size:32px;margin:2px 0 10px;padding:12px 16px;color:var(--ui-text,#17202d);background:var(--ui-surface,#fff);border-top:1px solid var(--ui-border,#ccd2da);border-radius:8px}
.ui-process-details>summary{display:none;cursor:pointer}
.ui-process-steps{display:flex;list-style:none;padding:0;margin:0;gap:0}
.ui-process-steps>li{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--ui-process-node-size) auto minmax(0,auto);align-content:start;flex:1;min-width:0;gap:4px;text-align:center;overflow-wrap:anywhere;font-size:12px;line-height:18px}
.ui-process-node{display:grid;place-items:center;justify-self:center;width:var(--ui-process-node-size);height:var(--ui-process-node-size);border:2px solid currentColor;border-radius:50%;color:#465160;background:var(--ui-surface,#fff);z-index:1;box-sizing:border-box}
.ui-process-node svg{width:16px;height:16px}
.ui-process-steps>li::before{content:"";position:absolute;top:15px;left:50%;right:-50%;border-top:3px solid #737d89;pointer-events:none}
.ui-process-steps>li:last-child::before{display:none}
.ui-process-steps>li[data-state=done]::before{border-color:#176638}
.ui-process-steps>li[data-state=skipped]::before{border-top-style:dashed}
.ui-process-steps>li[data-state=skipped] .ui-process-node{border-style:dashed}
.ui-process-steps>li[data-state=done] .ui-process-node{color:#fff;background:#176638;border-color:#176638}
.ui-process-steps>li[data-state=current] .ui-process-node{color:#fff;background:#235a9b;border-color:#235a9b;box-shadow:0 0 0 3px #bdd8f5}
.ui-process-steps>li[data-state=attention] .ui-process-node{color:#fff;background:#8a4b00;border-color:#8a4b00}
.ui-process-steps>li[data-state=error] .ui-process-node{color:#fff;background:#a4262c;border-color:#a4262c}
.ui-process-info{grid-column:1;grid-row:3;display:block;min-width:0;font-size:11px;line-height:14px}
.ui-process-steps>li>strong{grid-column:1;grid-row:2;font-size:12px;line-height:14px;font-weight:500}
.ui-process-steps>li[aria-current=step]>strong{color:#235a9b}
html[data-color-mode=dark] .ui-process-steps>li[aria-current=step]>strong{color:#a6d3ff}
html[data-color-mode=dark] .ui-process-steps>li[data-state=done]::before{border-color:#8cdeb0}
html[data-color-mode=dark] .ui-process-segments i[data-state=done]{background:#8cdeb0}
html[data-color-mode=dark] .ui-process-segments i[data-state=current]{background:#a6d3ff}
.ui-process-info a{color:inherit;text-decoration:underline;display:inline-flex;align-items:center;min-height:14px}
.ui-process-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ui-process-money{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap;margin:4px 0;line-height:18px}
.ui-process-money>span+span:not(.ui-process-money-bar)::before{content:"· ";}
.ui-process-money-bar{display:flex;width:80px;height:6px;background:#737d89;border-radius:3px;overflow:hidden}
.ui-process-money-bar i{background:#176638}.ui-process-money-bar b{background:#235a9b}
.ui-process-action{display:flex;justify-content:flex-end;margin-left:auto;gap:8px}
.ui-process-action:empty{display:none}
.ui-process-segments{display:flex;width:100%;gap:4px}
.ui-process-segments i{height:6px;flex:1;background:#737d89}
.ui-process-segments i[data-state=done]{background:#176638}.ui-process-segments i[data-state=current]{background:#235a9b}.ui-process-segments i[data-state=skipped]{background:repeating-linear-gradient(to right,#737d89 0 3px,transparent 3px 6px)}
html[data-color-mode=dark] .ui-process-node{color:#d5dce6}
html[data-color-mode=dark] .ui-process-steps>li[data-state=done] .ui-process-node{color:#10251a;background:#8cdeb0;border-color:#8cdeb0}
html[data-color-mode=dark] .ui-process-steps>li[data-state=current] .ui-process-node{color:#14283b;background:#a6d3ff;border-color:#a6d3ff;box-shadow:0 0 0 3px #3c6084}
html[data-color-mode=dark] .ui-process-steps>li[data-state=attention] .ui-process-node{color:#3c2500;background:#ffd294;border-color:#ffd294}
html[data-color-mode=dark] .ui-process-steps>li[data-state=error] .ui-process-node{color:#3c161b;background:#ffb5bb;border-color:#ffb5bb}
@media(max-width:767px){
 .ui-process-details>summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:3px;min-height:44px;font-size:12px;line-height:16px}
 .ui-process-details>summary strong{font-size:12px}
 .ui-process-steps{flex-direction:column;margin:3px 0}
 .ui-process-steps>li{grid-template-columns:32px 92px minmax(0,1fr);grid-template-rows:auto;align-items:center;text-align:left;gap:6px;min-height:36px;flex:auto}
 .ui-process-steps>li::before{top:32px;bottom:-12px;left:15px;right:auto;border-top:0;border-left:2px solid #737d89}
 .ui-process-steps>li[data-state=skipped]::before{border-left-style:dashed}
 .ui-process-info a{min-height:44px}
 .ui-process-footer .ui-process-money{display:none}
 .ui-process-action{margin:0;width:100%}
 .ui-process-action>button,.ui-process-action>a,.ui-process-action>form>button{min-height:44px}
}
/* One shared object heading; only its compact first row stays sticky. */
body.app-v2 #main-content .ui-object-heading{position:sticky;top:var(--ui-object-sticky-top,70px);z-index:12;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 4px;padding:2px 0;background:var(--ui-surface,#fff)}
body.app-v2 #main-content .ui-object-heading h2{font-size:16px;line-height:22px;margin:0}
.ui-object-heading>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.ui-object-heading .pos-case-reference{font-size:11px;margin:0}
.ui-object-heading .ui-object-customer-trigger{display:inline-flex;align-items:center;gap:4px;background:none;border:0;box-shadow:none;padding:0 4px;color:inherit;font-size:12px;min-height:36px;max-width:100%;overflow-wrap:anywhere;text-align:left}
.ui-object-heading .actions.ui-action-bar{margin:0;padding:0;gap:4px;align-items:center;flex-wrap:wrap}
.ui-object-heading [data-object-primary]{display:flex;align-items:center}
.ui-object-customer-popover{position:fixed;inset:auto;margin:0;padding:12px;max-width:min(420px,calc(100vw - 24px));box-sizing:border-box;border:1px solid var(--ui-border,#ccd2da);border-radius:8px;background:var(--ui-surface,#fff);color:var(--ui-text,#17202d);box-shadow:0 6px 24px #0003}
.ui-object-customer-popover .page-head{margin:0;display:block}.ui-object-customer-popover h1{font-size:16px}.ui-object-customer-popover .ui-heading-contact-row{flex-wrap:wrap}
.ui-object-customer-popover a{overflow-wrap:anywhere}.ui-object-customer-popover .customer-contact-links{display:flex;flex-wrap:wrap;gap:8px}.ui-object-customer-popover .customer-contact-links a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:767px){
 body.app-v2 #main-content .ui-object-heading{position:relative;top:auto;gap:4px;padding:0}
 .ui-object-heading>div:first-child{width:100%;gap:2px 8px}
 .ui-object-heading h2{width:100%}
 .ui-object-heading [data-object-primary]{position:fixed;bottom:calc(56px + env(safe-area-inset-bottom,0px));left:8px;right:8px;padding:6px;background:var(--ui-surface,#fff);border-top:1px solid var(--ui-border,#ccd2da);z-index:30;justify-content:flex-end}
 body:has(.ui-object-heading [data-object-primary]:not(:empty)) #main-content{padding-bottom:160px}
 .ui-object-heading .ui-object-customer-trigger{min-height:44px}
}
body.app-v2 #main-content .ui-object-heading>div:first-child{display:flex;flex:1 1 400px;align-items:center;gap:4px 8px;flex-wrap:wrap}
body.app-v2 #main-content .ui-object-heading .pos-case-reference{flex:0 1 auto;font-size:11px}
body.app-v2 #main-content .ui-object-heading .ui-object-customer-trigger{background:none;color:var(--ui-text,#17202d);border:0;box-shadow:none;padding:0 4px;min-height:36px;font-weight:500}
body.app-v2 #main-content .ui-object-heading .actions.ui-action-bar{gap:4px;flex:0 1 auto;margin:0;padding:0}
body.app-v2 #main-content .ui-object-heading .ui-object-customer-trigger:hover{text-decoration:underline}
@media(max-width:767px){body.app-v2 #main-content .ui-object-heading>div:first-child{flex-basis:100%}body.app-v2 #main-content .ui-object-heading .ui-object-customer-trigger{min-height:44px}}
@media(max-width:767px){
 body.app-v2 #main-content .ui-object-heading{flex-direction:row}
 body.app-v2 #main-content .ui-object-heading .actions.ui-action-bar{position:fixed;bottom:calc(56px + env(safe-area-inset-bottom,0px));left:8px;right:8px;z-index:30;padding:6px;background:var(--ui-surface,#fff);border-top:1px solid var(--ui-border,#ccd2da);justify-content:flex-end;width:auto}
 body.app-v2 #main-content .ui-object-heading [data-object-primary]{position:static;padding:0;border:0;margin:0;order:2}
 body.app-v2 .ui-object-heading .ui-document-icon{width:44px;min-width:44px}
 body.app-v2 .ui-object-heading .ui-document-icon-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
.ui-process-documents{padding:12px;border:1px solid var(--ui-border,#ccd2da);background:var(--ui-surface,#fff);color:var(--ui-text,#17202d);max-width:calc(100vw - 24px)}
.ui-process-documents a{display:flex;min-height:44px;align-items:center}
body.app-v2 #main-content .ui-object-heading [data-object-primary]>form{margin:0;display:flex}
body.app-v2 #main-content .ui-object-heading :is(h1,h2){font-size:16px;line-height:22px;margin:0}
.ui-object-customer-popover .case-contact{margin:0;padding:0;background:none;border:0}
/* #756 compact customer card: small caption, 16 px name, contact list, secondary actions, no stray separators. */
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover:popover-open{display:flex;flex-direction:column;gap:8px;width:min(400px,calc(100vw - 24px));padding:16px}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .page-head,body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .page-head>div{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;min-width:0}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .ui-heading-contact-row{display:contents}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .eyebrow{order:0;margin:0;font-size:11px;line-height:14px;letter-spacing:.02em;color:var(--ui-muted,#526070)}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover h1{order:1;margin:0;font-size:16px;line-height:22px;font-weight:700;min-width:0}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover h1>a{display:block;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;color:inherit}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .customer-contact-links{order:2;display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .customer-contact-links .customer-contact-sep{display:none}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .customer-contact-links a{min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:0;color:var(--ui-link,#24508a);overflow-wrap:anywhere}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover [data-customer-contacts-open]{order:3;align-self:flex-start;min-height:36px;padding:6px 12px;font-weight:600;background:var(--ui-form-field,#fff)!important;color:var(--ui-ink,#1d2733)!important;border:1px solid var(--ui-line,#ccd2da)!important;box-shadow:none}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .pos-case-reference{order:4;margin:0;padding-top:8px;border-top:1px solid var(--ui-line,#ccd2da);font-size:12px}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .pos-case-reference a{display:inline-flex;align-items:center;gap:6px;min-height:32px}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .pos-case-reference .priority-normal{display:none}
body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .pos-case-reference,body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .pos-case-reference a{color:var(--ui-ink,#1d2733)}
html[data-color-mode=dark] body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .customer-contact-links a{color:#9cc9f5}
html[data-color-mode=dark] body.app-v2 .ui-object-customer-popover.ui-object-customer-popover :is(.pos-case-reference,.pos-case-reference a){color:#e3ecf5}
@media(pointer:coarse){body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .customer-contact-links a,body.app-v2 .ui-object-customer-popover.ui-object-customer-popover .pos-case-reference a,body.app-v2 .ui-object-customer-popover.ui-object-customer-popover [data-customer-contacts-open]{min-height:44px}}
.ui-object-flag{display:block;width:20px;height:20px;background:currentColor;mask:url(vendor/lucide/flag.svg) center/contain no-repeat}

/* #602: breakdown belongs to totals, not a second summary block. */
.position-totals>.position-totals-breakdown{display:block}.position-totals-breakdown>dd{display:block;margin:0}.position-totals-breakdown summary{cursor:pointer;min-height:36px;display:flex;align-items:center}.position-totals-breakdown .position-breakdown{display:flex;flex-wrap:wrap;gap:8px;padding-block:8px}
@media(pointer:coarse){.position-totals-breakdown summary{min-height:44px}}
/* Issued invoice read view: reference field group for facts, a right-aligned totals block, uniform disclosures. */
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-facts{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,180px) minmax(140px,180px);gap:4px 12px;margin:0 0 12px}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-facts>div{display:grid;grid-template-rows:subgrid;grid-row:span 2;row-gap:4px;min-width:0}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-label{font-size:12px;line-height:20px;font-weight:600;color:var(--ui-muted,#526070);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-facts .ui-readonly-value{min-height:var(--ui-field-height,36px);padding:7px 12px;line-height:20px}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-facts .ui-readonly-value small{color:var(--ui-muted,#526070)}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-totals{display:grid;grid-template-columns:auto auto;justify-content:end;column-gap:24px;row-gap:6px;width:max-content;min-width:min(100%,340px);box-sizing:border-box;margin:12px 0 12px auto;padding:12px 16px;background:var(--ui-form-group,#e8eaed);border-radius:8px;font-variant-numeric:tabular-nums}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-totals>div{display:contents}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-totals dt{margin:0;color:var(--ui-muted,#526070);text-align:left;align-self:center}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-totals dd{margin:0;text-align:right;white-space:nowrap;align-self:center;min-width:120px;box-sizing:border-box;padding:6px 10px;border:1px solid var(--ui-line,#ccd2da);border-radius:6px;background:var(--ui-form-field,#fff);color:var(--ui-ink,#1d2733)}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-totals .invoice-read-grand :is(dt,dd){font-size:17px;font-weight:700;color:var(--ui-ink,#1d2733);padding-top:8px;border-top:1px solid var(--ui-line,#ccd2da)}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-totals .invoice-read-open dd{display:flex;justify-content:flex-end}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-more{margin-top:12px}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-more>details{border:1px solid var(--ui-line,#ccd2da);border-radius:8px;background:var(--ui-form-field,#fff)}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-more>details>summary{padding:0 12px;font-weight:600;display:flex;align-items:center;min-height:44px}
body.app-v2 #main-content [data-invoice-readonly] .invoice-read-more-body{padding:0 12px 12px;margin:0}
body.app-v2 #main-content [data-invoice-readonly] dl.invoice-read-more-body>div{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:8px;padding:4px 0}
body.app-v2 #main-content [data-invoice-readonly] dl.invoice-read-more-body dt{color:var(--ui-muted,#526070)}body.app-v2 #main-content [data-invoice-readonly] dl.invoice-read-more-body dd{margin:0;overflow-wrap:anywhere}
@media(max-width:767px){body.app-v2 #main-content [data-invoice-readonly] .invoice-read-facts{grid-template-columns:1fr 1fr}body.app-v2 #main-content [data-invoice-readonly] .invoice-read-facts>div:first-of-type{grid-column:1/-1}body.app-v2 #main-content [data-invoice-readonly] .invoice-read-totals{justify-content:stretch;grid-template-columns:1fr auto;width:100%;margin-left:0}}
.position-totals-breakdown,.position-totals-breakdown>dd,.position-totals-breakdown details{min-width:0;max-width:100%}
@media(max-width:767px){.position-totals-breakdown .position-breakdown>div{flex:1 1 100%;min-width:0;white-space:normal}}

/* One document status remains visible in the sticky identity row. */
.ui-document-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:var(--ui-surface-muted,#e9edf1);color:var(--ui-text);font-size:12px;white-space:nowrap}
.ui-document-status[data-status=overdue]{color:#9b3810;background:#fff0df}.ui-document-status[data-status=paid]{color:#166534;background:#dcfce7}
html[data-color-mode=dark] .ui-document-status{background:#283646;color:#eef4fa}

body.app-v2 #main-content button.ui-document-status{min-height:36px;padding:3px 8px;font-size:12px;border-radius:999px}
@media(pointer:coarse){body.app-v2 #main-content button.ui-document-status{min-height:44px}}

.ui-object-case-status{color:var(--ui-muted);font-size:12px}
@media(max-width:767px){body.app-v2 #main-content .ui-object-heading h2{width:auto}body.app-v2 #main-content .ui-object-heading .ui-object-customer-trigger{flex-basis:100%}}
@media(min-width:768px){body.app-v2 #main-content .ui-object-heading{padding-block:0;margin-bottom:0}}
@media(min-width:768px){body.app-v2 #main-content .ui-object-heading>div:first-child{row-gap:2px}}

/* Direct business contacts beside the customer identity (#601). */
.ui-object-contacts{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-width:0;font-size:12px}
.ui-object-contact{position:relative;display:inline-flex;align-items:center;min-width:0;gap:4px}
.ui-object-contact a{display:inline-flex;align-items:center;gap:4px;min-height:32px;overflow-wrap:anywhere}
.ui-object-contact svg,.ui-object-contact img{width:16px;height:16px;flex:none}
.ui-contact-copy{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
.ui-object-contact:hover .ui-contact-copy,.ui-contact-copy:focus-visible{position:absolute;top:100%;right:0;z-index:20;clip-path:none;width:auto;height:auto;min-height:44px;background:var(--ui-surface,#fff)}
@media(max-width:1200px){.ui-object-contacts [data-contact-kind=route]{display:none}.ui-object-contacts [data-contact-kind=email] a>span{display:none}}
@media(max-width:767px){.ui-object-contacts{width:100%;gap:8px}.ui-object-contact a{min-width:44px;min-height:44px;justify-content:center}.ui-object-contacts [data-contact-kind=route]{display:inline-flex}.ui-object-contact a>span{display:none}.ui-object-contacts:has([data-contact-kind=phone]) [data-contact-kind=mobile]{display:none}}
@media(min-width:1024px) and (pointer:fine){.ui-object-contact a{min-height:20px}}

[data-object-mail-dialog]{width:min(720px,calc(100vw - 24px));max-height:90vh;overflow:auto}

html[data-color-mode=dark] .ui-object-contact img{filter:invert(1)}

@media(pointer:coarse),(max-width:820px){body.app-v2 .ui-object-heading .actions.ui-action-bar .ui-document-icon{width:44px;min-width:44px;min-height:44px;flex-shrink:0}}
@media(max-width:767px){
 .ui-process:has(.ui-process-details:not([open])):has(.ui-process-action>*){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
 .ui-process:has(.ui-process-details:not([open])):has(.ui-process-action>*) .ui-process-footer{margin:0}
}

/* Shared approved Lucide action glyphs (#582/#604). */
button > [data-action-icon],a > [data-action-icon]{width:18px;height:18px;flex:0 0 18px;vertical-align:middle;margin-inline-end:8px;stroke:currentColor}

/* Restored rental intake uses the shared surface/text tokens in both color modes. */
body.app-v2 #main-content .case-intake-wizard .ci-choices label{background:var(--ui-soft);color:var(--ui-ink);border-color:var(--ui-line)}
body.app-v2 #main-content .case-intake-wizard .ci-choices label:has(input:checked){border-color:var(--ui-active)}
body.app-v2 #main-content .case-intake-wizard .ci-choices strong{color:var(--ui-ink)}
body.app-v2 #main-content .case-intake-wizard .ci-choices small{color:var(--ui-muted)}
body.app-v2 #main-content .case-intake-wizard .ci-navigation{background:var(--ui-surface)}

/* Opted-in native choices fit their label; long selected text is shown below. */
body.app-v2 :is(#main-content,dialog) select[data-full-value-preview]{width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* #600 / approved #576: phone total and next step above the actual navigation. */
.ui-mobile-document-total{display:none}
@media(max-width:767px){
 body.app-v2 #main-content .pos-document-heading .actions.ui-action-bar:has([data-mobile-position-gross]){display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px;bottom:var(--ui-mobile-nav-height,56px);left:0;right:0;padding:8px max(8px,env(safe-area-inset-right)) 8px max(8px,env(safe-area-inset-left));box-sizing:border-box;background:var(--ui-form-main);color:var(--ui-form-ink)}
 body.app-v2 #main-content .pos-document-heading .ui-mobile-document-total{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:2px;line-height:1.25;overflow-wrap:anywhere}
 .ui-mobile-document-total small{font-size:11px}.ui-mobile-document-total strong{font-size:14px}
 body.app-v2 #main-content .pos-document-heading [data-object-primary]{flex:0 1 auto;min-width:0;order:0}
 body.app-v2 #main-content .pos-document-heading [data-object-primary]>button{white-space:normal;max-width:150px;line-height:1.2;padding:8px}
 body.app-v2 #main-content .pos-document-heading .actions.ui-action-bar:has([data-mobile-position-gross])>.ui-action-menu{flex:0 0 44px}
 body.app-v2 #main-content .pos-document-heading .actions.ui-action-bar:has([data-mobile-position-gross])>.ui-action-menu>summary{width:44px;min-width:44px;min-height:44px;padding:8px;box-sizing:border-box;font-size:22px;justify-content:center}
 body.app-v2:has([data-mobile-position-gross]) #main-content{padding-bottom:var(--ui-document-dock-space,160px)}
 body.app-v2 #main-content .pos-document-heading .actions.ui-action-bar.ui-document-keyboard-open{visibility:hidden;pointer-events:none}
}

/* Shared object hierarchy (#601): one customer cluster and measured breathing room. */
:root{--ui-object-section-gap:16px;--ui-object-subnav-gap:8px;--ui-object-content-gap:16px}
.ui-customer-object-cluster{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}
.ui-customer-object-cluster:empty{display:none}
.ui-customer-object-cluster .ui-document-icon{position:relative;min-width:36px;width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;padding:6px}
.ui-customer-object-cluster svg{width:20px;height:20px;flex:none}
body.app-v2 .ui-customer-object-cluster .ui-document-icon-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ui-customer-object-cluster [data-object-state=available]{color:var(--ui-success,#166534)}
.ui-customer-object-cluster [data-object-state=empty]{color:var(--ui-muted,#52677c)}
.ui-customer-object-cluster [data-object-state=attention]{color:var(--ui-warning,#9a3412)}
.ui-customer-object-cluster [data-object-state=blocked]{color:var(--ui-danger,#991b1b)}
.ui-object-count{position:absolute;right:-3px;top:-5px;min-width:16px;min-height:16px;border-radius:8px;background:var(--ui-form-main);color:var(--ui-form-ink);border:1px solid var(--ui-line);font-size:10px;line-height:15px;text-align:center;padding-inline:2px}
.ui-object-contact-action{margin-left:4px!important;border-left:1px solid var(--ui-line)!important}
body.app-v2 #main-content .ui-object-heading{row-gap:5px;margin-bottom:var(--ui-object-section-gap)}
body.app-v2 #main-content .ui-object-heading+[data-process-stepper]{margin-top:0;margin-bottom:12px}
body.app-v2 #main-content .customer-record>.customer-main-navigation{margin-top:var(--ui-object-section-gap);margin-bottom:var(--ui-object-subnav-gap)}
body.app-v2 #main-content .customer-record>.ui-tab-navigation{margin-bottom:var(--ui-object-content-gap)}
body.app-v2 #main-content .customer-sub-navigation button[aria-selected=true]{background:transparent;color:var(--ui-ink);border-radius:0;border-bottom:3px solid var(--ui-ink)}
body.app-v2 #main-content .ui-object-heading~.ui-tabs{margin-top:var(--ui-object-section-gap);margin-bottom:var(--ui-object-content-gap)}
@media(pointer:coarse){.ui-customer-object-cluster .ui-document-icon{min-width:44px;width:44px;min-height:44px}}
@media(max-width:767px){.ui-customer-object-cluster{flex:1 1 100%;gap:8px}.ui-customer-object-cluster .ui-document-icon{min-width:44px;width:44px;min-height:44px}.ui-object-contact-action{border-left:0!important;margin-left:0!important}}
[data-color-mode=dark] .ui-customer-object-cluster [data-object-state=available]{color:#86efac}
[data-color-mode=dark] .ui-customer-object-cluster [data-object-state=attention]{color:#fdba74}
[data-color-mode=dark] .ui-customer-object-cluster [data-object-state=blocked]{color:#fca5a5}
@media(min-width:1024px) and (pointer:fine){
 body.app-v2 #main-content .ui-object-heading{margin-bottom:12px}
 .ui-process{--ui-process-node-size:26px}.ui-process-node{width:26px;height:26px}.ui-process-node svg{width:14px;height:14px}
 .ui-process-steps>li{grid-template-rows:var(--ui-process-node-size) auto minmax(0,auto)}
 .ui-process-steps>li::before{top:12px}
 .ui-process-money{line-height:16px;margin-block:0}
 body.app-v2 #main-content .ui-object-heading>div:first-child{row-gap:4px}
}

.ui-object-type-icon{display:inline-flex;vertical-align:middle;margin-right:6px;flex:none}
.ui-object-type-icon svg{width:18px;height:18px;display:block}

/* Workshop presentation #679: existing field/action components, one readable process. */
.workshop-read-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.workshop-read-facts{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);gap:8px 16px;margin:0}
.workshop-read-facts dt{color:var(--ui-muted,#52677c)}
.workshop-read-facts dd{margin:0;overflow-wrap:anywhere;white-space:normal}
.workshop-next{margin:8px 0 0;overflow-wrap:anywhere}
.workshop-progress-tools{margin-top:16px}
.ui-detail-tabs{margin-bottom:0!important;border-radius:var(--ui-radius,8px) var(--ui-radius,8px) 0 0;background:var(--ui-panel,#fff);padding:8px}
.ui-detail-tabs+section.panel,.ui-detail-tabs~form[data-workshop-editor]{border-top-left-radius:0;border-top-right-radius:0}
@media(max-width:767px){.workshop-read-grid{grid-template-columns:1fr}.workshop-read-facts{grid-template-columns:1fr;gap:4px}.workshop-read-facts dd{margin-bottom:8px}.workshop-next{font-size:12px}.workshop-progress-tools{flex-wrap:wrap}.ui-detail-tabs{flex-wrap:nowrap!important;overflow-x:auto!important}.ui-detail-tabs a{flex:none;white-space:nowrap!important}}
.ui-process-workshop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}
.ui-process-workshop>.ui-process-details{grid-column:1/-1}
.ui-process-workshop .workshop-progress-tools{margin-top:0}
.ui-process-workshop .workshop-next{margin:0}
.ui-process-workshop .ui-process-footer:empty{display:none}
.ui-process-workshop [data-workshop-status-error]:empty{display:none}
.ui-detail-tabs~form[data-workshop-editor]{margin-top:0!important}
@media(max-width:767px){.ui-process-workshop{grid-template-columns:minmax(0,1fr)}.ui-process-workshop .workshop-tools-slot{display:none}.ui-process-workshop:has(.ui-process-details[open]) .workshop-tools-slot{display:block}}
.workshop-read-grid>div.ui-field-group{margin:0;min-width:0}
.workshop-read-grid h3{margin:0 0 12px}
.workshop-read-facts dd{background:none;border:0;padding:0;box-shadow:none}
body.app-v2 #main-content .ui-detail-tabs{margin-bottom:0!important;padding:8px 16px;border:1px solid var(--ui-border,#ccd2da);border-top:3px solid var(--ui-accent,#273b50);border-bottom:0;background:var(--ui-surface,#fff)}
body.app-v2 #main-content .ui-detail-tabs~form[data-workshop-editor]{border-top:0;border-top-left-radius:0;border-top-right-radius:0;margin-top:0!important}
@media(max-width:767px){body.app-v2 #main-content .ui-detail-tabs{flex-wrap:nowrap!important;overflow-x:auto!important}body.app-v2 #main-content .ui-detail-tabs>a{flex:none!important;white-space:nowrap!important}}
/* #679: flowing read grid; labels above values, no empty placeholders. */
body.app-v2 #main-content .workshop-read-view>.panel-head{margin:0 0 16px;padding:0;min-height:36px}
.workshop-read-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;align-items:start}
.workshop-read-item{min-width:0;overflow-wrap:anywhere}
.workshop-read-wide{grid-column:span 2}
.workshop-read-label{display:block;color:var(--ui-muted,#52677c);font-size:12px;margin:0 0 4px;font-weight:600}
body.app-v2 #main-content .workshop-read-value{display:block;padding:0;margin:0;background:transparent;border:0;box-shadow:none;white-space:pre-wrap;overflow-wrap:anywhere}
@media(min-width:768px) and (max-width:1279px){.workshop-read-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.workshop-read-grid{grid-template-columns:minmax(0,1fr)}.workshop-read-wide{grid-column:auto}}
/* Empty workshop positions retain the editor and totals in DOM, without empty table UI. */
[data-workshop-position-compact] [data-workshop-empty-positions]{display:none}
[data-workshop-position-compact].workshop-position-empty :is(.position-scroll,.position-tools,.position-bottom){display:none}
[data-workshop-position-compact].workshop-position-empty .position-heading{margin:0 0 8px}
[data-workshop-position-compact].workshop-position-empty .position-heading-copy{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
[data-workshop-position-compact].workshop-position-empty [data-workshop-empty-positions]{display:inline;color:var(--ui-muted,#52677c)}
body.app-v2 #main-content .ui-process-workshop{row-gap:0}
body.app-v2 #main-content .ui-process-workshop>.ui-process-footer{display:none}
body.app-v2 #main-content .workshop-read-view>.panel-head h2{margin:0}
body.app-v2 #main-content form[data-workshop-editor]>.ui-top-actions:not(:has(button:not([hidden]),a:not([hidden]),input:not([type=hidden]))){display:none!important;margin:0!important;padding:0!important}
@media(max-width:767px){body.app-v2 #main-content form[data-workshop-read-mode]{padding:16px!important}}

/* Shared symbol tooltip #667, including top-layer dialogs and touch. */
.ui-tooltip{box-sizing:border-box;position:fixed;inset:auto;margin:0;z-index:2147483000;max-width:min(360px,calc(100vw - 24px));padding:8px 12px;border:1px solid #718096;border-radius:6px;background:#202b3b;color:#fff;font-size:13px;line-height:1.4;box-shadow:0 4px 16px #0003;width:max-content;white-space:normal;overflow-wrap:normal;word-break:normal;pointer-events:none}
.ui-tooltip[hidden]{display:none!important}

/* Customer link access: permanent and responsive, using shared spacing. */
.portal-link-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin:0 16px 16px;border:1px solid var(--ui-border,#cbd5e1);border-radius:var(--ui-radius,8px);background:var(--ui-form-group,#e8eaed);color:var(--ui-form-ink,#283341)}
.portal-link-banner p{margin:0}.portal-link-banner a{flex-shrink:0}@media(max-width:767px){.portal-link-banner{flex-wrap:wrap;margin-inline:12px}}

html[data-color-mode=dark] body:is(.app-v2,.portal-shared) .ui-action-items{background:var(--ui-form-main,#1c2b3c)!important;color:var(--ui-form-ink,#edf4fb)}

/* A flattened action keeps its full caption when it wraps on a narrow toolbar. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,dialog) :is(.form-actions,.actions,.ui-action-bar)>[data-selection-direct]{height:auto!important;min-height:var(--ui-field-height,44px)!important;padding-block:8px!important;white-space:normal;overflow-wrap:anywhere;max-width:100%}

/* #680 iPhone: original header actions remain named entries in their own groups. */
@media(max-width:767px){html:root body.app-v2 #main-content .ui-action-menu [data-phone-menu-entry]{display:flex!important;align-items:center;justify-content:flex-start!important;gap:10px!important;width:100%!important;height:auto!important;min-height:44px!important;min-width:0;padding-block:8px!important;padding-inline:12px!important;margin-inline:0!important;border-left:0!important;white-space:normal;text-align:left}
html:root body.app-v2 #main-content .ui-action-menu [data-phone-menu-entry]>:is(svg,img,.ui-object-flag){display:none!important}
html:root body.app-v2 #main-content .ui-action-menu [data-phone-menu-entry]>[data-phone-menu-icon]{display:block!important;flex:0 0 18px;width:18px;height:18px;background:currentColor;mask:var(--ui-menu-symbol) center/contain no-repeat}
html:root body.app-v2 #main-content .ui-action-menu [data-phone-menu-entry]>.ui-document-icon-label{display:block!important;position:static!important;clip-path:none!important;overflow:visible!important;width:auto!important;height:auto!important;font:inherit!important}}

/* Shared document details: #631. (c) schober24.com Deutschland | Schober, Thorsten */
body.app-v2 .ui-document-details{--ui-document-group-padding-inline:10px;--ui-document-group-border:1px;--ui-document-inner-inset:calc(var(--ui-document-group-padding-inline) + var(--ui-document-group-border));margin:0 0 16px;min-width:0;background:var(--theme-surface-alt,#f1f3f5);padding:12px;border:1px solid var(--theme-border,#d3d9e0);border-radius:8px}
body.app-v2 .ui-document-details:has(>.ui-field-group){display:grid;gap:12px;padding:0;border:0;background:transparent}
body.app-v2 .ui-document-details:has(>.ui-field-group)>.ui-document-primary{padding:12px;border:1px solid var(--ui-line,#d3d9e0);border-radius:var(--ui-radius,8px);background:var(--theme-surface-alt,#f1f3f5)}
body.app-v2 .ui-document-primary{display:grid;grid-template-columns:minmax(120px,.65fr) minmax(220px,2fr) minmax(180px,1.2fr);gap:8px;align-items:start}
body.app-v2 .ui-document-introduction{grid-column:1/-1;position:relative}
body.app-v2 .ui-document-details .ui-document-field{position:relative;display:flex;flex-direction:column;gap:1px;margin:0;min-width:0;padding:4px 8px;background:var(--theme-field,#fff);border:1px solid var(--theme-border,#ccd4dc);border-radius:6px;box-sizing:border-box}
body.app-v2 .ui-document-details .ui-document-field>span:first-child{font-size:10px;line-height:13px;font-weight:500;color:var(--theme-muted,#536174);margin:0}
body.app-v2[data-ui-theme] #main-content .ui-document-details .ui-document-field :is(input:not([type=hidden],[type=checkbox]),select,textarea){margin:0;width:100%;box-sizing:border-box}
body.app-v2 .ui-document-details textarea{resize:none;overflow-y:hidden}
body.app-v2 .ui-document-field:focus-within{outline:2px solid var(--theme-focus,#4668a8);outline-offset:1px}
body.app-v2 .ui-document-summaries{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;align-items:center}
body.app-v2 .ui-document-summaries>button{font-size:11px;padding:4px 7px;min-height:32px;white-space:normal;overflow-wrap:anywhere}
body.app-v2 .ui-document-summaries>[data-document-expand]{margin-left:auto}
body.app-v2 .ui-document-more{margin-top:8px}
body.app-v2 .ui-document-details .ui-tabs{margin:0 0 8px;gap:4px}
body.app-v2 .ui-document-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:start;padding:12px;border-radius:8px;box-sizing:border-box;background:var(--ui-form-group,#e8eaed)}
body.app-v2 .ui-document-details [hidden]{display:none!important}
body.app-v2 .ui-document-text{grid-column:span 2}
body.app-v2 .ui-document-recipients{grid-column:1/-1;min-width:0}
body.app-v2 .ui-document-recipients>details>summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-size:13px;font-weight:600;overflow-wrap:anywhere}
body.app-v2 .ui-document-recipient-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}
body.app-v2 .ui-document-recipient-fields :is([data-billing-customer-slot],[data-billing-customer-controls]){display:contents}
body.app-v2 .ui-document-recipient-fields [data-billing-customer-results]:empty,body.app-v2 .ui-document-recipient-fields .form-actions:empty{display:none}
body.app-v2 .ui-document-recipient-fields .support-hint{display:none}
body.app-v2 .ui-document-intro-picker{position:absolute;right:4px;top:4px;z-index:2}
body.app-v2 .ui-document-intro-picker>summary{width:36px;min-height:36px;padding:4px;display:grid;place-items:center;cursor:pointer;list-style:none}
body.app-v2 .ui-document-intro-picker>div{position:absolute;right:0;top:40px;min-width:260px;max-width:calc(100vw - 50px);padding:12px;background:var(--theme-surface,#fff);border:1px solid var(--theme-border,#ccd4dc);box-shadow:0 4px 15px #0003;border-radius:6px}
body.app-v2 .ui-document-introduction>textarea{padding-right:44px!important}
body.app-v2 .ui-document-details small[data-document-default]{font-size:9px;line-height:10px;margin:0;color:var(--theme-muted,#536174)}
body.app-v2 .ui-document-deviation{border-color:var(--theme-focus,#4668a8)!important}
body.app-v2 .ui-document-partner{border-color:var(--theme-focus,#4668a8)!important;font-weight:600}
@media(max-width:1279px) and (min-width:768px){body.app-v2 .ui-document-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){body.app-v2 .ui-document-primary,body.app-v2 .ui-document-fields,body.app-v2 .ui-document-recipient-fields{grid-template-columns:minmax(0,1fr)}body.app-v2 .ui-document-text{grid-column:1}body.app-v2 .ui-document-details{padding:8px}body.app-v2 .ui-document-details .ui-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;max-width:100%}body.app-v2 .ui-document-details .ui-tabs>button{flex:none;white-space:nowrap}body.app-v2 .ui-document-summaries>[data-document-expand]{margin-left:0}}

body.app-v2 .ui-document-intro-wrap{grid-column:1/-1;position:relative;min-width:0}

@media(min-width:1280px){body.app-v2 .ui-document-fields[data-document-panel=payment]{grid-template-columns:minmax(85px,.65fr) minmax(150px,1.4fr) minmax(85px,.65fr) minmax(100px,.85fr) minmax(140px,1.2fr)}}

body.app-v2 .ui-document-details .ui-document-field .ui-info-trigger{position:absolute!important;right:0;top:0;width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important;margin:0!important}
body.app-v2 .ui-document-details .ui-document-field .ui-info-label{min-height:13px;padding-right:28px}
@media(pointer:coarse){body.app-v2 .ui-document-details .ui-document-field .ui-info-trigger{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}body.app-v2 .ui-document-details .ui-document-field:has(.ui-info-trigger){padding-right:44px}}

@media(pointer:coarse){body.app-v2 .ui-document-details :is(button,summary){min-height:44px}}
/* A dialog's error belongs in its flow, so a validation notice cannot cover confirmation controls. */
body.app-v2 dialog>.ui-save-notices{position:static;inset:auto;width:100%;max-height:none;overflow:visible;grid-column:1/-1;margin-top:16px!important}

@media(pointer:coarse){body.app-v2 .ui-document-intro-picker>summary{width:44px;min-width:44px;min-height:44px}body.app-v2 .ui-document-introduction>textarea{padding-right:52px!important}body.app-v2 .ui-document-intro-picker>div{top:48px}}

/* Shared list layout #575: tables from 768px, read-only record cards below. */
body.app-v2 #main-content :is(.ui-mobile-card-heading,.ui-mobile-card-cell){display:none!important}
body.app-v2 #main-content .ui-mobile-empty{display:block;padding:12px;font-size:14px;line-height:20px}
body.app-v2 #main-content .ui-responsive-scroll{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
body.app-v2 #main-content .ui-responsive-list{width:100%;table-layout:auto;min-width:0!important}
body.app-v2 #main-content .ui-responsive-list :is(th,td){box-sizing:border-box;font-size:12px;line-height:16px;vertical-align:middle;overflow-wrap:normal;word-break:normal}
body.app-v2 #main-content .ui-responsive-list td{padding:5px 8px!important}
body.app-v2 #main-content .ui-responsive-list td small{display:block;font-size:11px;line-height:15px;margin:0}
body.app-v2 #main-content .ui-responsive-list .ui-list-record-title{display:block;overflow:visible;line-height:17px;overflow-wrap:anywhere}
body.app-v2 #main-content .ui-responsive-list :is(.ui-case-status,.priority-badge,.badge){white-space:nowrap}
body.app-v2 #main-content .ui-responsive-list .ui-list-row-actions{white-space:normal}
body.app-v2 #main-content .ui-responsive-list .ui-column-auto-hidden{display:none!important}
@media(min-width:768px){
 body.app-v2 #main-content .ui-responsive-scroll{overflow:auto;max-height:max(240px,calc(100dvh - var(--list-top,200px) - 8px))}
 body.app-v2 #main-content .ui-responsive-list{display:table!important}
 body.app-v2 #main-content .ui-responsive-list thead{display:table-header-group!important;position:sticky!important;top:0;z-index:3;clip-path:none!important;width:auto!important;height:auto!important;overflow:visible}
 body.app-v2 #main-content .ui-responsive-list tbody{display:table-row-group!important}
 body.app-v2 #main-content .ui-responsive-list tr{display:table-row!important;margin:0;padding:0;border-radius:0}
 body.app-v2 #main-content .ui-responsive-list :is(th,td):not([hidden],.ui-mobile-card-heading,.ui-mobile-card-cell,.ui-column-auto-hidden,.ui-list-source-actions){display:table-cell!important}
 body.app-v2 #main-content .ui-responsive-list td::before{content:none!important;display:none!important}
 body.app-v2 #main-content .ui-responsive-list .ui-list-sticky{position:sticky;left:var(--list-sticky-left,0px);z-index:1;background:var(--theme-surface,#fff);box-shadow:1px 0 var(--theme-border,#d6dde4)}
 body.app-v2 #main-content .ui-responsive-list thead .ui-list-sticky{z-index:4;background:var(--theme-surface-alt,#e8eaed)}
}
@media(max-width:767px){
 body.app-v2 #main-content .ui-responsive-scroll{overflow:visible!important;max-height:none}
 body.app-v2 #main-content .ui-responsive-list{display:block!important;max-width:100%}
 body.app-v2 #main-content .ui-responsive-list tbody{display:block}
 body.app-v2 #main-content .ui-responsive-list thead{position:static;display:block;clip-path:none;width:auto;height:auto;overflow:visible}
 body.app-v2 #main-content .ui-responsive-list thead tr{border:0;margin:0;padding:0}
 body.app-v2 #main-content .ui-responsive-list thead th{display:none!important}
 body.app-v2 #main-content .ui-responsive-list thead th:has(.ui-table-select-all){display:block!important;padding:0!important;min-width:0!important;width:auto!important}
 body.app-v2 #main-content .ui-responsive-list tbody>tr{display:block!important;position:relative;min-height:64px;margin:6px 0;padding:0;border:1px solid var(--theme-border,#d6dde4);border-radius:7px;box-sizing:border-box;overflow-wrap:anywhere}
 body.app-v2 #main-content .ui-responsive-list tbody>tr>td:not(.ui-mobile-card-cell){display:none!important}
 body.app-v2 #main-content .ui-responsive-list tbody>tr>.ui-mobile-card-cell{display:block!important;padding:0!important;width:100%!important;max-width:100%;border:0;grid-column:1/-1}
 body.app-v2 #main-content .ui-responsive-list .ui-mobile-card-cell::before{display:none!important;content:none!important}
 body.app-v2 #main-content .ui-mobile-record{display:flex!important;flex-direction:column;align-items:stretch;justify-content:center;gap:3px;min-height:64px!important;min-width:0;width:100%;max-width:100%;padding:8px 12px!important;border:0!important;box-shadow:none!important;border-radius:0!important;text-align:left!important;background:transparent!important;color:var(--theme-text,#253347)!important;text-decoration:none;box-sizing:border-box;white-space:normal!important}
 body.app-v2 #main-content .ui-mobile-record-title{font-size:15px;line-height:20px;font-weight:700;display:block;overflow:visible;overflow-wrap:anywhere}
 body.app-v2 #main-content .ui-mobile-record-subtitle{font-size:12px;line-height:16px;font-weight:400;overflow-wrap:anywhere}
 body.app-v2 #main-content .ui-mobile-record-facts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:12px;line-height:18px}
 body.app-v2 #main-content .ui-mobile-record-facts .badge{max-width:100%;text-overflow:ellipsis;overflow:hidden;font-size:11px;min-height:0;padding:2px 6px}
 body.app-v2 #main-content .ui-responsive-list[data-mobile-selection="1"] tbody>tr>td:first-child:has(input[type=checkbox]){display:block!important;position:absolute;z-index:2;left:4px;top:4px;width:44px!important;min-width:44px!important;padding:0!important}
 body.app-v2 #main-content .ui-responsive-list[data-mobile-selection="1"] .ui-mobile-record{padding-left:56px!important}
 body.app-v2 #main-content .ui-responsive-list tbody>tr[data-mobile-expanded="1"]>td:not(.ui-mobile-card-cell):not(:has(form,input,select,button)){display:block!important;padding:8px 12px!important;border-top:1px solid var(--theme-border,#d6dde4)}
 body.app-v2 #main-content .ui-responsive-list :is([data-case-inline],.ui-list-priority-menu){display:none!important}
 body.app-v2 #main-content .ui-responsive-list.ui-fit-records tr{border-bottom:1px solid var(--theme-border,#d6dde4)}
}
@media(max-width:767px){body.app-v2 #main-content .ui-responsive-list tbody>tr>td[colspan]{display:block!important;padding:10px 12px!important}body.app-v2 #main-content .ui-responsive-list tbody>tr:has(>td[colspan]){min-height:0}}
body.app-v2 #main-content .ui-responsive-list :is([hidden],.ui-page-hidden){display:none!important}

/* Compact list chrome keeps the first records close to the search. */
body.app-v2 #main-content .ui-list-page-head{align-items:center;gap:16px;margin-bottom:8px;min-width:0}
body.app-v2 #main-content .ui-list-page-head h1{margin:0;font-size:22px;line-height:28px}
body.app-v2 #main-content .ui-list-page-head .eyebrow{display:none}
body.app-v2 #main-content form.ui-list-search-form{flex:1;min-width:180px;padding:0;margin:0;border:0;box-shadow:none;background:transparent;display:block}
body.app-v2 #main-content .ui-list-search-form>label:has(input[type=search]){margin:0;display:block;font-size:0;line-height:0}
body.app-v2 #main-content .ui-list-search-form input[type=search]{font-size:13px;line-height:20px;min-height:36px;margin:0;width:100%}
body.app-v2 #main-content .ui-list-search-form>.form-actions{display:none!important}
body.app-v2 #main-content .ui-compact-list-toolbar{margin-block:0 8px;align-items:center;gap:8px}
body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-control-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-inline-controls{align-items:center;gap:8px}
body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-filter-scroll{padding-bottom:0}
body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-page-info{font-size:11px;line-height:16px}
body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-actions{align-items:center;gap:8px;margin:0!important}
body.app-v2 #main-content .ui-list-priority-menu>summary{font-size:12px;min-height:32px;padding:3px 7px;white-space:nowrap}
body.app-v2 #main-content .ui-list-priority-menu>.ui-action-items{min-width:160px;padding:8px}
@media(min-width:1280px){body.app-v2 #main-content .ui-list-page-head{flex-wrap:nowrap}body.app-v2 #main-content .ui-responsive-list tbody>tr{height:56px}body.app-v2 #main-content .ui-responsive-list th{padding-block:5px!important}}
@media(max-width:767px){
 body.app-v2 #main-content .ui-list-page-head{flex-wrap:wrap;gap:8px;margin-bottom:8px}
 body.app-v2 #main-content form.ui-list-search-form{order:3;flex-basis:100%;position:sticky;top:var(--mobile-header-height,60px);z-index:2;background:var(--theme-surface,#fff)}
 body.app-v2 #main-content .ui-list-search-form input[type=search]{min-height:44px;font-size:16px}
 body.app-v2 #main-content .ui-compact-list-toolbar :is(.ui-list-page-size,label:has(select),.list-columns-menu,.ui-table-paging,[data-article-result-meta]){display:none!important}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-filter-scroll{flex:0 1 auto;width:auto}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-actions{justify-content:flex-end;flex:1}
 body.app-v2 .ui-column-filter-dialog{margin:auto 0 0;width:100%;max-width:100%;max-height:85dvh;border-radius:12px 12px 0 0;box-sizing:border-box}
 body.app-v2 .ui-mobile-list-filter-tools{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:16px}
}

body.app-v2 .ui-list-load-more{display:none}
@media(max-width:767px){body.app-v2 .ui-list-load-more:not([hidden]){display:block;min-height:44px;margin:12px auto}body.app-v2 .ui-record-list-page .ui-table-paging{display:none!important}}

/* List search forms retain their original fields and submit handlers in one row. */
body.app-v2 #main-content form.ui-list-search-form{padding:0!important;background:transparent!important;display:flex!important;gap:8px;align-items:center}
body.app-v2 #main-content form.ui-list-search-form>label:has(input[type=search]){flex:1;min-width:0}
body.app-v2 #main-content form.ui-list-search-form>:is(.actions,.form-actions){margin:0!important;flex:0 0 auto}
body.app-v2 #main-content form.ui-list-search-form>label:has(select){display:none}
body.app-v2 #main-content .ui-list-page-head{padding:0!important}
body.app-v2 #main-content .ui-list-page-head .form-actions{margin:0!important}
body.app-v2 #main-content .ui-compact-list-toolbar{padding:4px!important}
body.app-v2 #main-content [data-case-results]>p[data-case-result-count]{display:none}
body.app-v2 #main-content .ui-responsive-list th{line-height:16px}

body.app-v2 #main-content .ui-list-page-head>div>p.muted{display:none}
body.app-v2 #main-content .ui-list-page-head .form-actions{flex-wrap:nowrap;gap:8px}
body.app-v2 #main-content .ui-list-sections .ui-action-items{min-width:220px}
body.app-v2 #main-content .ui-list-sections .ui-action-items>a{display:flex;align-items:center;min-height:44px}
body.app-v2 #main-content .ui-compact-list-toolbar .bulk-selection:has(~*){gap:8px}
body.app-v2 #main-content .ui-compact-list-toolbar:has(.ui-list-selection-count) [data-article-count]{display:none}
body.app-v2 #main-content .ui-responsive-list thead th :is(.table-filter-control,.table-sort-control){min-height:32px!important;padding:0 4px!important}
body.app-v2 #main-content .ui-responsive-list thead th{padding:2px 8px!important}
@media(min-width:1280px) and (pointer:fine){
 body.app-v2.ui-record-list-page>header{flex-wrap:nowrap;gap:6px;min-height:56px;padding-block:6px}
 body.app-v2.ui-record-list-page>header .header-context{flex:0 1 100px;min-width:75px}
 body.app-v2.ui-record-list-page>header .header-universal-search{flex:1 1 150px;min-width:120px;width:auto}
 body.app-v2.ui-record-list-page>header .header-identity{flex:0 0 200px;min-width:0;width:200px;margin-left:0}
 body.app-v2.ui-record-list-page>header .header-identity>a{min-width:0;flex:1;padding:4px;min-height:36px;font-size:10px;line-height:12px}
 body.app-v2.ui-record-list-page>header .header-identity :is(small,span){font-size:8px;line-height:10px}
 body.app-v2.ui-record-list-page>header .header-identity b{font-size:10px;line-height:12px}
 body.app-v2.ui-record-list-page>header .color-mode-switch{margin-left:0;font-size:10px;padding-inline:5px!important;gap:4px}
 body.app-v2.ui-record-list-page #main-content{padding-top:calc(var(--ui-header-height,56px) + 4px)}
 body.app-v2 #main-content .ui-compact-list-toolbar{min-height:44px}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-table-paging{display:flex;align-items:center;gap:8px}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-page-info{max-width:110px;line-height:12px}
 body.app-v2 #main-content .ui-compact-list-toolbar :is(.ui-list-filter-scroll,.ui-list-inline-controls){padding:0}
}
@media(max-width:767px){
 body.app-v2 #main-content .ui-list-page-head{display:flex;align-items:center;text-align:left}
 body.app-v2 #main-content .ui-list-page-head>div:first-child{flex:1;min-width:0}
 body.app-v2 #main-content .ui-list-page-head h1{font-size:20px}
 body.app-v2 #main-content .ui-list-page-head>.form-actions{flex:0 1 auto;width:auto;margin:0}
 body.app-v2 #main-content .ui-list-page-head>.form-actions>:is(a,details){flex:0 1 auto;width:auto}
 body.app-v2 #main-content form.ui-list-search-form{width:100%;min-width:0;flex-basis:100%}
 body.app-v2 #main-content .ui-list-page-head form.ui-list-search-form{order:3}
 body.app-v2 #main-content .ui-list-page-head form.ui-list-search-form label{width:auto}
 body.app-v2 #main-content .ui-compact-list-toolbar{display:flex;flex-wrap:nowrap;min-height:52px}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-inline-controls>.bulk-selection{display:none}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-actions{display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-end}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-actions>details{flex:0 1 auto}
 body.app-v2 #main-content .ui-compact-list-toolbar [data-list-views-open]{display:none!important}
 body.app-v2 #main-content .ui-responsive-list .ui-mobile-record{align-items:stretch!important;text-align:left!important}
 body.app-v2 #main-content .ui-responsive-list .ui-mobile-record>*{text-align:left!important;align-self:stretch!important}
}

@media(min-width:1280px) and (pointer:fine){
 body.app-v2.ui-record-list-page>header .header-context small{white-space:nowrap;font-size:9px;line-height:12px}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-table-paging{flex-direction:row}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-page-info{white-space:normal;max-width:75px;font-size:10px;line-height:12px}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-page-buttons{min-height:36px}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-page-buttons>:is(a,button){min-height:36px!important;padding-block:4px!important}
 body.app-v2 #main-content .ui-responsive-list :is(.ui-table-select-all,.ui-table-select-all input){min-height:32px}
 body.app-v2 #main-content .ui-responsive-list thead th .table-column-head{min-height:32px;gap:0}
 body.app-v2 #main-content .ui-responsive-list thead th :is(button,a){min-height:32px!important;padding-block:0!important;line-height:14px!important}
 body.app-v2 #main-content .ui-responsive-list td{line-height:14px}
 body.app-v2 #main-content .ui-responsive-list .ui-list-record-title{line-height:15px}
 body.app-v2 #main-content .ui-responsive-list td small{line-height:12px}
 body.app-v2 #main-content .ui-list-page-head{margin-bottom:4px}
 body.app-v2 #main-content .ui-compact-list-toolbar{margin-bottom:4px}
}

body.app-v2 #main-content .list-columns-menu>summary{position:relative;display:flex;flex-direction:column;justify-content:center;gap:0;line-height:15px}
body.app-v2 #main-content .ui-column-hidden-count{font-size:9px;line-height:10px;font-weight:400;white-space:nowrap;margin:0}
@media(min-width:1280px) and (pointer:fine){body.app-v2 #main-content .ui-compact-list-toolbar{padding:2px!important}body.app-v2 #main-content .ui-list-page-head{margin-bottom:2px}body.app-v2 #main-content .ui-compact-list-toolbar{margin-bottom:2px}}

@media(max-width:767px){
 body.app-v2.ui-record-list-page #main-content .ui-list-page-head{position:sticky;top:var(--ui-header-height,56px);z-index:5;background:var(--theme-background,#e9eef3)}
 body.app-v2.ui-record-list-page #main-content .ui-compact-list-toolbar{position:sticky;top:calc(var(--ui-header-height,56px) + var(--ui-list-head-height,120px));z-index:4;background:var(--theme-surface,#fff)}
}

/* #679 follow-up: the shared field hierarchy also applies to read-only facts. */
body.app-v2 #main-content .workshop-read-view.ui-field-group{padding:16px;border:1px solid var(--ui-line,#ccd2da);border-radius:var(--ui-radius,8px);background:var(--ui-form-group,#e8eaed);color:var(--ui-form-ink,#283341)}
body.app-v2 #main-content .workshop-read-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),320px));grid-auto-flow:row dense;gap:12px;align-items:stretch}
body.app-v2 #main-content .workshop-read-item{display:flex;flex-direction:column;min-width:0}
body.app-v2 #main-content .workshop-read-label{margin-bottom:4px}
body.app-v2 #main-content .ui-readonly-value{box-sizing:border-box;min-width:0;min-height:var(--ui-field-height,44px);padding:8px 10px;margin:0;border:1px solid var(--ui-line,#ccd2da);border-radius:6px;background:var(--ui-form-field,#fff);color:var(--ui-form-ink,#283341);white-space:pre-wrap;overflow-wrap:anywhere;line-height:20px}
body.app-v2 #main-content .workshop-read-value.ui-readonly-value{flex:1;box-shadow:none}
body.app-v2 #main-content .ui-readonly-value:has(>button){display:flex;align-items:center;padding:0}
body.app-v2 #main-content .ui-readonly-value>button.ui-record-link{padding:8px 10px;text-align:left;white-space:normal;width:100%;min-height:var(--ui-field-height,44px)}
@media(min-width:768px) and (max-width:1279px){body.app-v2 #main-content .workshop-read-grid{grid-template-columns:repeat(2,minmax(0,320px))}}
@media(max-width:767px){body.app-v2 #main-content .workshop-read-grid{grid-template-columns:minmax(0,1fr)}}
/* (c) schober24.com Deutschland | Schober, Thorsten */
.ui-process-step-trigger{display:grid;grid-column:1;grid-template-rows:var(--ui-process-node-size) auto;gap:4px;justify-items:center;align-content:start;background:none;border:0;border-radius:4px;padding:0;box-shadow:none;color:inherit;font:inherit;min-width:0;min-height:44px;width:100%;z-index:1;grid-row:1 / 3}
.ui-process-step-trigger strong{font-size:12px;line-height:14px;font-weight:500}
.ui-process-step-trigger:hover{background:var(--ui-form-group);color:inherit}
.ui-process-step-trigger:focus-visible{outline:2px solid var(--ui-accent,#235a9b);outline-offset:3px}
.workshop-step-menu{max-width:min(440px,calc(100vw - 24px));width:440px}
.workshop-step-menu .ui-action-group{display:grid;gap:6px;border-top:1px solid var(--ui-form-line);padding-top:10px;margin-top:10px}
.workshop-step-menu h3{font-size:13px;margin:0}
.workshop-step-menu .button,.workshop-step-menu button[data-workshop-stage]{display:flex;align-items:center;gap:8px;text-align:left;justify-content:flex-start;white-space:normal}
.workshop-step-menu svg{width:18px;height:18px;flex:none}
.workshop-step-menu [aria-pressed=true]{background:var(--ui-form-group);font-weight:700}
.workshop-step-menu small{display:block;overflow-wrap:anywhere}
@media(max-width:767px){
 .ui-process-steps>li>.ui-process-node{grid-column:1;grid-row:1}
 .ui-process-steps>li>strong{grid-column:2;grid-row:1}
 .ui-process-steps>li>.ui-process-info{grid-column:3;grid-row:1}
 .ui-process-step-trigger{grid-column:1 / 3;grid-row:1;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto;align-items:center;justify-items:start;text-align:left;gap:6px}
}
@media(pointer:coarse){.ui-process-info a{min-height:44px}}
@media(max-width:767px){.workshop-step-menu{margin:auto 0 0;max-width:100%;width:100%;max-height:85dvh;border-radius:14px 14px 0 0}.ui-process-step-trigger{min-height:44px}}
.workshop-step-switch{display:none}
@media(max-width:767px){.workshop-step-switch{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.workshop-step-switch button{flex:1 1 90px;min-height:44px}.workshop-step-switch [aria-current=step]{font-weight:700;background:var(--ui-form-group)}}
[data-workshop-heading-status=failure]{background:#fce7e9;color:#852438;border:1px solid #dba0a9}
html[data-color-mode=dark] [data-workshop-heading-status=failure]{background:#592731;color:#ffd6dc;border-color:#ab6b79}
/* Keep step triggers visually part of the shared progress line, not primary actions. */
.ui-process .ui-process-steps .ui-process-step-trigger{background:transparent;color:inherit;border:0;box-shadow:none;padding:0;border-radius:4px}
.ui-process .ui-process-steps .ui-process-step-trigger:hover{background:var(--ui-form-group);color:inherit}
.ui-dialog.workshop-step-menu{min-width:0;width:440px;max-width:calc(100vw - 24px);padding:16px}
.ui-dialog.workshop-step-menu .ui-action-group>button,.ui-dialog.workshop-step-menu .ui-action-group>a{justify-content:flex-start;text-align:left}
@media(max-width:767px){.ui-dialog.workshop-step-menu{width:100%;max-width:100%;min-width:0;padding:16px}}
body.app-v2 #main-content dialog.ui-dialog.workshop-step-menu,body.app-v2 dialog.ui-dialog.workshop-step-menu{min-width:0;width:440px;max-width:calc(100vw - 24px);padding:16px}
body.app-v2 #main-content .workshop-step-menu .ui-action-group>button,body.app-v2 #main-content .workshop-step-menu .ui-action-group>a{justify-content:flex-start;text-align:left}
@media(max-width:767px){body.app-v2 #main-content dialog.ui-dialog.workshop-step-menu,body.app-v2 dialog.ui-dialog.workshop-step-menu{width:100%;max-width:100%;min-width:0}}
body.app-v2[data-ui-theme] #main-content .workshop-step-menu button[aria-pressed=true]{background:var(--ui-form-group);font-weight:700;opacity:1}

/* #521: desktop shell remains one line; condense secondary labels before wrapping. */
@media(min-width:1280px){
 body.app-v2>header{flex-wrap:nowrap;gap:8px}
 body.app-v2>header>.header-context{flex:0 1 150px;min-width:0}
 body.app-v2>header>.header-context small{white-space:nowrap}
 body.app-v2>header>.header-context strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body.app-v2>header>.header-universal-search{flex:1 1 180px;min-width:140px}
 body.app-v2>header>.header-identity{flex:0 1 300px;min-width:0;max-width:300px}
 body.app-v2>header>.header-identity>a{flex:1 1 0;min-width:0;max-width:50%;box-sizing:border-box}
}
@media(min-width:1280px) and (max-width:1535px){
 body.app-v2>header>.header-context{flex-basis:120px}
 body.app-v2>header>.header-identity{flex-basis:220px;max-width:220px}
 body.app-v2>header>.color-mode-switch{flex:none;min-width:44px;padding-inline:7px}
 body.app-v2>header>.color-mode-switch>span:last-child{display:none}
}

@media(min-width:768px) and (max-height:700px){
 :is(body.app-v2,body.portal-shared) dialog>:is(.panel-head,.ui-form-header),
 :is(body.app-v2,body.portal-shared) dialog>form>:is(.panel-head,.ui-form-header){position:sticky;top:0;z-index:3;background:var(--ui-surface,#fff)}
}

/* #697: portal notices open as a dropdown right under the "Mitteilungen" button (position from the script); phones keep the bottom sheet. */
@media(min-width:768px){
 body.portal-shared dialog.portal-notice-panel[open]{position:fixed;inset:var(--portal-notice-top,72px) auto auto var(--portal-notice-left,16px);margin:0;width:min(440px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:auto;max-height:calc(100dvh - var(--portal-notice-top,72px) - 16px);border-radius:12px;overflow:auto;box-sizing:border-box;box-shadow:0 12px 32px #172c4333}
 body.portal-shared dialog.portal-notice-panel::backdrop{background:transparent!important}
}
body.portal-shared .portal-notice-panel .portal-notice-filter{display:inline-flex;align-items:center;gap:8px;margin:4px 0 8px;font-size:13px;font-weight:600}
body.portal-shared .portal-notice-panel .portal-notice-group-title{margin:12px 0 4px;font-size:12px;font-weight:600;color:var(--ui-muted,#526070)}
body.portal-shared .portal-notice-panel .portal-notice-list{display:block;max-height:none;overflow:visible;margin-top:0}
body.portal-shared .portal-notice-panel .portal-notice-text{overflow:visible}
body.portal-shared .portal-notice-panel .portal-notice-item,body.portal-shared .portal-notice-panel .portal-notice-item[data-notice-read="0"]{display:flex!important;align-items:center;gap:10px;min-height:52px;padding:4px 2px!important;border:0!important;border-bottom:1px solid var(--ui-line,#d8dee6)!important;border-radius:0;background:transparent;box-shadow:none}
body.portal-shared .portal-notice-panel .portal-notice-item[hidden]{display:none!important}
body.portal-shared .portal-notice-panel .portal-notice-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--ui-accent,#1f5fa8)}
body.portal-shared .portal-notice-panel .portal-notice-item[data-notice-read="1"] .portal-notice-dot{visibility:hidden}
body.portal-shared .portal-notice-panel .portal-notice-item[data-notice-read="1"] .portal-notice-text{opacity:.75}
body.portal-shared .portal-notice-panel .portal-notice-icon{display:inline-flex;flex:0 0 18px;color:var(--ui-muted,#526070)}
body.portal-shared .portal-notice-panel .portal-notice-text{flex:1;min-width:0;display:grid;gap:1px}
body.portal-shared .portal-notice-panel .portal-notice-text .ui-record-link{min-height:44px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:0;text-align:left;line-height:1.3;white-space:normal}
body.portal-shared .portal-notice-panel .portal-notice-title{font-weight:600}
body.portal-shared .portal-notice-panel .portal-notice-item[data-notice-read="1"] .portal-notice-title{font-weight:500}
body.portal-shared .portal-notice-panel .portal-notice-text small{font-size:12px;font-weight:400;color:var(--ui-muted,#526070)}
body.portal-shared .portal-notice-panel .portal-notice-state{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.portal-shared .portal-notice-panel .portal-notice-go{flex:0 0 auto;min-height:36px;padding:6px 12px}
body.portal-shared .portal-notice-panel .portal-notice-todo{margin-bottom:6px}
body.portal-shared .portal-notice-panel .portal-notice-todo-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e3a5a5;border-radius:8px;background:#fdf0f0;color:#8f1d1d}
body.portal-shared .portal-notice-panel .portal-notice-todo-row .portal-notice-icon{color:#b42318}
body.portal-shared .portal-notice-panel .portal-notice-todo-row small{color:#8f1d1d}
html[data-color-mode=dark] body.portal-shared .portal-notice-panel .portal-notice-todo-row{background:#4a1d1d;border-color:#8f3a3a;color:#ffd9d9}
html[data-color-mode=dark] body.portal-shared .portal-notice-panel .portal-notice-todo-row small{color:#ffd9d9}
/* #697/#680: a locked action stays readable and explains itself via tooltip. */
body.portal-shared .portal-notice-panel [data-portal-notice-read-all]:disabled{opacity:1;color:var(--ui-muted,#526070);cursor:not-allowed;background:transparent}

/* Keep today's calendar cell visible without scrolling the page header away. */
body.app-v2 #main-content .calendar-planner[data-readonly="1"] .planner-grid{max-height:max(240px,calc(100dvh - 320px));overflow-y:auto}
body.app-v2 #main-content .calendar-planner[data-readonly="1"] .planner-weekday{position:sticky;top:0;z-index:1;background:var(--ui-surface,#fff)}

/* Pinned, shared Lucide shapes (#604), including inherited sprite strokes. */
.ui-icon{display:inline-block;vertical-align:middle;width:18px;height:18px;flex:none;stroke-width:1.75;color:inherit}
body.app-v2>header .ui-icon,.mobile-work-nav .ui-icon{width:20px;height:20px}
:is(button,.button,summary,[role=button])>.ui-icon{margin-inline-end:5px}
:is(.header-icon-action,.ui-document-icon,.ui-close-x)>.ui-icon{margin-inline-end:0}
body.app-v2>header .header-global-actions{display:contents!important}
body.app-v2>header .header-context{order:0}
body.app-v2>header [data-header-search]{order:1;min-width:180px;flex:1 1 240px;max-width:420px}
body.app-v2>header .header-create-menu{order:2}
body.app-v2>header .header-timer-slot{order:3;display:flex;gap:4px;align-items:center}
body.app-v2>header [data-header-group=tasks]{order:4}
body.app-v2>header .header-notifications{order:5}
body.app-v2>header [data-header-group=help]{order:6}
body.app-v2>header .header-profile{order:7}
body.app-v2>header :is(.ui-mail-warning,[data-simulation-open]){order:8}
body.app-v2>header .header-profile .header-identity{display:grid!important;gap:8px;min-width:0;width:100%;margin:0}
body.app-v2>header .header-profile .header-identity>a{width:100%;max-width:none;min-width:0;text-align:left;white-space:normal}
body.app-v2>header .header-profile .ui-action-group{min-width:240px}
body.app-v2>header .header-profile .color-mode-switch{margin-top:8px}
.header-profile-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;min-width:24px;height:24px;background:var(--ui-ink);color:var(--ui-form-main);font-size:11px;margin-right:5px}
.ui-icon-count{font-size:10px;line-height:16px;min-width:16px;text-align:center;border:1px solid currentColor;border-radius:8px;padding-inline:3px}
body.app-v2>header [data-header-search] form{position:relative;padding-right:40px}
body.app-v2>header [data-header-search] .header-camera-trigger{position:absolute;right:0;top:0;bottom:0;border:0;background:transparent;color:inherit;min-height:36px;height:100%;width:40px;min-width:40px}
body.app-v2>header [data-header-search] input{padding-right:8px}
[data-icon-state=active]{color:var(--ui-success,#166534)}
[data-icon-state=attention],body.app-v2>header .ui-mail-warning{color:var(--ui-warning,#9a3412)!important}
[data-icon-state=error]{color:var(--ui-danger,#991b1b)}
@media(max-width:767px){
 body.app-v2>header .header-notifications{order:0;margin-left:0}
 body.app-v2>header .header-notifications>summary{min-width:44px;min-height:44px}
 body.app-v2>header .header-context{order:0}
 body.app-v2>header .mobile-header-search{order:0}
 .mobile-header-tools .header-timer-slot{display:flex;gap:8px}
 .mobile-header-tools .header-global-actions{display:contents!important}
 .mobile-header-tools .header-profile .header-identity{display:grid;gap:8px}
}
@media(prefers-reduced-motion:no-preference){[data-icon-state=active][data-rendered-header-icon=timer]>.ui-icon{animation:ui-timer-pulse 2s ease-in-out infinite}@keyframes ui-timer-pulse{50%{opacity:.6}}}
body.app-v2>header [data-header-search] form{padding-right:0}
body.app-v2>header [data-header-search] input{padding-right:44px}
@media(max-width:900px){body.app-v2>header.mobile-header-compact>.header-notifications{order:3;flex:0 0 44px;margin:0}}
[data-icon-state=inactive]{color:var(--ui-muted,#52677c)}
body.app-v2>header [data-header-group=tasks]{position:relative;gap:4px}
body.app-v2>header [data-header-group=tasks]>.ui-icon-count{position:absolute;right:-4px;top:-6px;background:var(--ui-form-main);color:var(--ui-form-ink)}
[data-icon-state=working]{color:var(--ui-link,#1d4ed8)}
.ui-status-control-label{margin-left:5px}
.actions>[data-status-updates-open]>.ui-status-control-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.ui-action-menu [data-status-updates-open]>.ui-status-control-label{position:static;width:auto;height:auto;clip-path:none;overflow:visible}
.ui-mobile-save summary[data-state=saving]>.ui-icon{animation:ui-icon-spin 1s linear infinite}
@keyframes ui-icon-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ui-mobile-save summary[data-state=saving]>.ui-icon{animation:none}}
body:is(.app-v2,.portal-shared) .ui-editor-icon{width:var(--ui-field-height,44px);min-width:var(--ui-field-height,44px);height:var(--ui-field-height,44px);min-height:var(--ui-field-height,44px);display:inline-flex;align-items:center;justify-content:center;gap:0;padding:8px}
.ui-editor-icon>span{display:none}
.ui-info-trigger:has(>.ui-icon)::before{content:none}
body.app-v2>header [data-license-status-trigger]{order:8}
[data-color-mode=dark] [data-icon-state=inactive]{color:#a7b7c8}
[data-color-mode=dark] [data-icon-state=active]{color:#86efac}
[data-color-mode=dark] [data-icon-state=working]{color:#93c5fd}
[data-color-mode=dark] [data-icon-state=attention]{color:#fbbf24}
[data-color-mode=dark] [data-icon-state=error]{color:#fca5a5}
.ui-document-icon>.ui-note-action-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.ui-action-menu .ui-note-action-label{position:static;width:auto;height:auto;clip-path:none;overflow:visible}
.ui-document-icon>.ui-icon-count{position:absolute;right:-3px;top:-5px;background:var(--ui-form-main);color:var(--ui-form-ink)}
.ui-priority-control{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}
.ui-priority-marker{position:absolute;right:1px;bottom:1px;width:12px;height:12px;background:var(--ui-form-main)}
[data-icon-state=inactive]>.ui-icon[data-ui-icon=flag]{stroke-dasharray:2 2}
@media(pointer:coarse){.ui-priority-control{min-width:44px;min-height:44px}}
.ui-state-icon{display:inline-flex;align-items:center;gap:4px;max-width:100%;flex-wrap:wrap}
.ui-state-icon>.ui-icon:nth-of-type(2){width:12px;height:12px;margin-left:-8px;background:var(--ui-form-main)}
[data-icon-state=urgent]{color:#c2410c}
[data-color-mode=dark] [data-icon-state=urgent]{color:#fdba74}
[data-pdf-state=draft]>.ui-icon{stroke-dasharray:2 2}
.ui-pdf-state-marker{width:12px;height:12px;margin-left:-8px;background:var(--ui-form-main)}
.ui-info-content{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
.ui-editor-icon>.ui-icon{width:18px;height:18px;stroke-width:1.75}
.ui-icon{pointer-events:none;stroke-width:1.75!important}
.ui-process-node>.ui-icon{width:18px;height:18px}
.ui-customer-object-cluster [data-object-credit-caption]:has(.ui-object-wallet-value){width:auto;gap:5px}
.ui-object-wallet-value{font-size:12px;line-height:1.2;white-space:nowrap}
body.app-v2 #main-content .ui-object-heading .ui-object-more{width:36px;min-width:36px;justify-content:center;padding-inline:6px}
@media(pointer:coarse){body.app-v2 #main-content .ui-object-heading .ui-object-more{width:44px;min-width:44px}}
@media(min-width:1024px) and (pointer:fine){
 body.app-v2 #main-content .ui-object-heading>div:first-child>.ui-object-case-status,
 body.app-v2 #main-content .ui-object-heading>div:first-child>.ui-object-contacts,
 body.app-v2 #main-content .ui-object-heading>div:first-child>.pos-case-reference,
 body.app-v2 #main-content .ui-object-heading>div:first-child>.ui-object-customer-number{order:2}
}

/* Native input controls retain their listeners and a real text label. */
input.ui-close-x{width:auto!important;min-width:36px;font-size:12px!important;padding-inline:8px!important}

@media(max-width:767px){html:root body.app-v2 #main-content .ui-action-menu [data-phone-menu-entry]>svg[data-phone-menu-icon]{display:block!important;background:none;mask:none;flex:0 0 18px;width:18px;height:18px}}

body.app-v2>header .header-icon-action.header-timer-with-time{flex:0 0 auto;width:auto!important;min-width:36px!important;display:inline-flex;align-items:center;gap:6px;padding-inline:8px!important}
.header-timer-time{font:12px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
/* The profile popover keeps both identities available at tablet widths too. */
body.app-v2 .header-profile .header-identity>:is(.user-indicator,.tenant-indicator){display:grid!important;width:100%;max-width:none;min-width:0}

/* Relocated masthead actions keep their field contrast inside the themed sidebar. */
@media(max-width:767px){body.app-v2[data-ui-theme]>aside .mobile-header-tools :is(a.button,summary.button,.header-identity>a){background:var(--ui-form-main)!important;color:var(--ui-form-ink)!important}}
/* Shared two-row object identity and contact hierarchy (#601). */
body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);grid-template-rows:minmax(36px,auto) minmax(24px,auto);gap:4px 16px;flex:1 1 420px;align-items:center;min-width:0}
.ui-object-title-line{grid-column:1;grid-row:1;display:flex;align-items:center;gap:6px;min-width:0}
.ui-object-title-line .eyebrow{margin:0;font-size:11px}
.ui-object-status-line{grid-column:1;grid-row:2;display:flex;align-items:center;gap:6px;min-width:0}
.ui-object-customer-line{grid-column:2;grid-row:1;display:flex;align-items:center;gap:6px;min-width:0}
body.app-v2 #main-content .ui-object-customer-line .ui-object-customer-trigger{flex:0 1 auto;flex-basis:auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;overflow-wrap:normal;padding:0;font-weight:600}
.ui-object-customer-number{display:inline-flex;flex:none;border:1px solid var(--ui-line);border-radius:4px;white-space:nowrap;font:11px/20px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--ui-muted)}
.ui-object-customer-number>span{padding:0 5px}.ui-object-customer-number>span+span{border-left:1px solid var(--ui-line);color:var(--ui-text)}
/* Subscription mask (Abo): object-style head, contract strip, main row, tabs, readable read-only state. */
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .ui-record-heading-copy{display:grid;grid-template-columns:fit-content(60%) minmax(240px,1fr);column-gap:0;row-gap:2px;align-items:center}
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .ui-record-heading-title{grid-column:1;grid-row:1;padding-right:16px;display:flex;align-items:center;gap:8px;min-width:0}
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .ui-record-heading-title h1{font-size:18px;margin:0;overflow-wrap:anywhere}
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .ui-record-heading-meta{grid-column:1;grid-row:2;padding-right:16px;display:flex;gap:8px;font-size:12px;color:var(--ui-muted,#526070)}
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .ui-record-heading-contact{grid-column:2;grid-row:1/span 2;margin:0;padding-left:16px;border-left:1px solid var(--ui-line,#ccd2da);display:flex;flex-direction:column;gap:4px;min-width:0}
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .recurring-customer-line{display:flex;align-items:center;gap:8px;min-width:0}
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .recurring-contact-line{font-size:12px;color:var(--ui-muted,#526070);overflow-wrap:anywhere}
body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] :is([data-contract-status],.ui-record-heading-copy>p.muted){grid-column:1/-1}
body.app-v2 #main-content [data-recurring-editor] .recurring-contract-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
body.app-v2 #main-content [data-recurring-editor] .recurring-contract-strip:empty{display:none}
body.app-v2 #main-content [data-recurring-editor] .recurring-kpi{border:1px solid var(--ui-line,#ccd2da);border-radius:8px;padding:6px 12px;background:var(--ui-form-field,#fff);min-width:0}
body.app-v2 #main-content [data-recurring-editor] .recurring-kpi small{display:block;font-size:11px;line-height:14px;color:var(--ui-muted,#526070)}body.app-v2 #main-content [data-recurring-editor] .recurring-kpi strong{font-size:14px;line-height:20px;font-variant-numeric:tabular-nums}
body.app-v2 #main-content [data-recurring-editor] .recurring-lock-note{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
body.app-v2 #main-content [data-recurring-editor] .recurring-main-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
body.app-v2 #main-content [data-recurring-editor] .recurring-main-row>label{flex:0 1 200px;min-width:0}
body.app-v2 #main-content [data-recurring-editor] .recurring-main-row>label:has([name=name]){flex:1 1 280px}body.app-v2 #main-content [data-recurring-editor] .recurring-main-row>label:has([name=buyer_reference]){flex:1 1 220px;max-width:360px}
body.app-v2 #main-content [data-recurring-editor] .recurring-main-row>.recurring-main-date{flex:0 0 150px}body.app-v2 #main-content [data-recurring-editor] .recurring-main-row>.recurring-main-frequency{flex:0 0 170px}
body.app-v2 #main-content [data-recurring-editor] .recurring-tabs{margin:14px 0 0}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels>[data-recurring-panel]{margin-top:12px}
html body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:12px 16px;align-items:flex-start;grid-template-columns:none}
html body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels :is(.organization-fields,.ui-field-pair)>label{display:grid!important;grid-template-rows:20px auto;row-gap:4px;align-content:start;margin:0}
html body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels :is(.organization-fields,.ui-field-pair)>label>:is(input,select){grid-row:2}
html body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels :is(.organization-fields,.ui-field-pair)>label .ui-info-trigger{position:static!important;width:20px!important;height:20px!important;min-height:20px!important;margin:0 0 0 4px!important;vertical-align:top}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields>label{flex:0 1 200px;min-width:0}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields.ui-separated-rows>*{border:0!important;padding-top:0!important;margin:0!important}
html body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair{display:flex!important;gap:12px;flex:0 0 auto;width:auto!important;max-width:none;align-items:flex-start;grid-template-columns:none;grid-column:auto}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair>label{flex:0 0 auto;width:160px}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields>small:not([hidden]):not(:empty),body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels [data-notice-reference]:not(:empty){flex:1 1 100%;margin:0}body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields>small:is([hidden],:empty){display:none}
/* Number and unit read as one field: "4 │ Wochen". */
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair:is(:has([name=notice_value]),:has([name=renewal_value])){gap:0}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair:is(:has([name=notice_value]),:has([name=renewal_value]))>label:first-child{width:auto;min-width:84px}body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair:is(:has([name=notice_value]),:has([name=renewal_value]))>label:first-child>input{width:100%;min-width:0;box-sizing:border-box}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair:is(:has([name=notice_value]),:has([name=renewal_value]))>label:first-child :is(input){border-top-right-radius:0;border-bottom-right-radius:0;text-align:right}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair:is(:has([name=notice_value]),:has([name=renewal_value]))>label:last-child{width:120px;color:transparent}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .ui-field-pair:is(:has([name=notice_value]),:has([name=renewal_value]))>label:last-child select{border-top-left-radius:0;border-bottom-left-radius:0;border-left:0;color:var(--ui-ink,#1d2733)}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields>label:has(input[type=number]){flex:0 0 140px}
body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields>label:has(input[type=date]){flex:0 0 150px}
body.app-v2 #main-content [data-recurring-editor] .recurring-scope-panel{padding:12px}body.app-v2 #main-content [data-recurring-editor] .recurring-scope-panel>p{margin:0 0 8px}
body.app-v2 #main-content [data-recurring-editor] .recurring-scope-panel .ui-field-group-title{font-weight:600}
/* A running contract is read, not edited: disabled fields keep the white reference field look and full contrast. */
html body.app-v2 #main-content [data-recurring-editor][data-recurring-readonly] fieldset:disabled :is(input,select,textarea){color:var(--ui-ink,#1d2733)!important;-webkit-text-fill-color:var(--ui-ink,#1d2733);opacity:1!important;background-color:var(--ui-form-field,#fff)!important;cursor:default}
html body.app-v2 #main-content [data-recurring-editor][data-recurring-readonly] fieldset:disabled select{appearance:none;background-image:none!important}
html body.app-v2 #main-content [data-recurring-editor][data-recurring-readonly] fieldset:disabled :is(input,textarea)::placeholder{color:transparent!important;-webkit-text-fill-color:transparent}
@media(max-width:767px){body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .ui-record-heading-copy{grid-template-columns:minmax(0,1fr)}body.app-v2 #main-content .page-head.ui-record-heading[data-recurring-contracts] .ui-record-heading-contact{grid-column:1;grid-row:auto;border-left:0;padding-left:0}body.app-v2 #main-content [data-recurring-editor] .recurring-main-row>label,body.app-v2 #main-content [data-recurring-editor] .recurring-tab-panels .organization-fields>label{flex:1 1 100%;max-width:none}body.app-v2 #main-content [data-recurring-editor] .recurring-tabs{flex-wrap:wrap}}
.ui-object-identity-grid>.ui-object-contacts{grid-column:2;grid-row:2;flex-wrap:nowrap;gap:6px;color:var(--ui-muted);min-width:0;font-size:12px}
.ui-object-identity-grid>.ui-object-contacts .ui-object-contact{flex:0 1 auto;min-width:20px}
.ui-object-identity-grid>.ui-object-contacts .ui-object-contact a{min-width:0;max-width:100%;white-space:nowrap;overflow-wrap:normal}
.ui-object-identity-grid>.ui-object-contacts .ui-object-contact a>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ui-object-identity-grid>.ui-object-contacts [data-contact-kind=route]{display:inline-flex;flex:1 1 25%}
.ui-object-identity-grid>.ui-object-contacts [data-contact-kind=phone]{flex-shrink:0}
body.app-v2 #main-content .ui-object-heading>.actions.ui-action-bar{align-self:center}
@media(min-width:768px){.ui-object-identity-grid>.ui-object-contacts [data-contact-kind=email] a>span{display:inline}.ui-object-identity-grid>.ui-object-contacts [data-contact-kind=email]{flex:1 1 20%}}
/* #601: the title column is only as wide as number and status; the customer block follows right after a vertical rule. */
@media(min-width:768px){
 body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child{grid-template-columns:minmax(160px,max-content) minmax(0,1fr);column-gap:0;row-gap:0}
 body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child>:is(.ui-object-title-line,.ui-object-status-line){max-width:380px;padding:2px 16px 2px 0}
 body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child>.ui-object-title-line :is(h1,h2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child>:is(.ui-object-customer-line,.ui-object-contacts){padding:2px 0 2px 16px;border-left:1px solid var(--ui-line,#ccd2da);align-self:stretch;display:flex;align-items:center}
 body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child>.ui-object-contacts{gap:14px}body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child>.ui-object-contacts>.ui-object-contact:is([data-contact-kind=route],[data-contact-kind=email]){flex:0 1 auto}
}
@media(max-width:1279px) and (min-width:768px){body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child{flex-basis:100%}.ui-object-identity-grid>.ui-object-contacts .ui-object-contact a{min-height:44px}}
@media(max-width:767px){
 body.app-v2 #main-content .ui-object-heading>.ui-object-identity-grid:first-child{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:4px;width:100%}
 .ui-object-title-line{grid-column:1;grid-row:1;flex-wrap:wrap}.ui-object-customer-line{grid-column:1;grid-row:2}.ui-object-status-line{grid-column:1;grid-row:3}
 .ui-object-identity-grid>.ui-object-contacts{grid-column:1;grid-row:4;gap:8px}
 .ui-object-identity-grid>.ui-customer-object-cluster{grid-column:1;grid-row:5}
 .ui-object-identity-grid>.ui-object-contacts .ui-object-contact{flex:none;min-width:44px}.ui-object-identity-grid>.ui-object-contacts .ui-object-contact a{min-width:44px;min-height:44px}
 .ui-object-identity-grid>.ui-object-contacts .ui-object-contact a>span{display:none}
}
@media(min-width:1280px) and (pointer:fine){
 /* Preserve the stepper's 12/16px breathing room; totals occupy the right rail. */
 .ui-process:not(.ui-process-workshop):has(.ui-process-money){display:grid;grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:12px}
 .ui-process:not(.ui-process-workshop) .ui-process-money{display:grid;gap:0;margin:0;line-height:16px}
 .ui-process:not(.ui-process-workshop) .ui-process-money>span+span:not(.ui-process-money-bar)::before{content:none}
 .ui-process:not(.ui-process-workshop) .ui-process-money-bar{margin-top:2px}
}
/* The shared timer state replaces the old always-yellow/pulsing indicator. */
[data-rendered-header-icon=timer][data-icon-state]{--ui-timer-ink:var(--ui-muted,#52677c);color:var(--ui-timer-ink)!important;background:var(--ui-form-main,#fff)!important;border-color:var(--ui-line,#c6d0db)!important;animation:none!important}
[data-rendered-header-icon=timer][data-icon-state=active]{--ui-timer-ink:#166534;background:color-mix(in srgb,var(--ui-timer-ink) 9%,var(--ui-form-main,#fff))!important}
[data-rendered-header-icon=timer][data-icon-state=attention]{--ui-timer-ink:#9a3412;background:color-mix(in srgb,var(--ui-timer-ink) 9%,var(--ui-form-main,#fff))!important}
[data-color-mode=dark] [data-rendered-header-icon=timer][data-icon-state]{--ui-timer-ink:#a7b7c8}
[data-color-mode=dark] [data-rendered-header-icon=timer][data-icon-state=active]{--ui-timer-ink:#86efac}
[data-color-mode=dark] [data-rendered-header-icon=timer][data-icon-state=attention]{--ui-timer-ink:#fbbf24}

.ui-customer-object-cluster [data-customer-head-status]>.ui-state-icon{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:36px;min-height:36px;padding:6px;border:1px solid var(--ui-line);border-radius:6px;background:var(--ui-form-main)}
@media(pointer:coarse){.ui-customer-object-cluster [data-customer-head-status]>.ui-state-icon{min-width:44px;min-height:44px}}

/* Reusable heading for long dialogs: keep close and primary header actions reachable. */
:is(body.app-v2,body.portal-shared) dialog.ui-dialog>.ui-dialog-sticky-head,:is(body.app-v2,body.portal-shared) dialog.ui-dialog>form>.ui-dialog-sticky-head{position:sticky;top:0;z-index:3;background:var(--ui-surface,#fff);box-shadow:0 -24px 0 var(--ui-surface,#fff)}
/* Shared status badges reserve their actual padded height in compact table lines. */
.badge:is([data-state=attention],[data-state=error]){display:inline-flex;align-items:center;line-height:1.25}
.badge[data-state=attention]{background:#fff0c2;color:#684400;border-color:#d4a22b}
.badge[data-state=error]{background:#fce7e9;color:#852438;border-color:#dba0a9}
html[data-color-mode=dark] .badge[data-state=attention]{background:#604000;color:#ffdc94;border-color:#a37624}
html[data-color-mode=dark] .badge[data-state=error]{background:#632b35;color:#ffc4cd;border-color:#b96776}

/* #672: shared field geometry, labels and semantic surfaces. */
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(input:not([type=hidden],[type=checkbox],[type=radio],[type=color],[type=range]),select,textarea){box-sizing:border-box;border-radius:7px!important;font-size:14px!important;font-weight:400!important;line-height:20px!important}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(input:not([type=hidden],[type=checkbox],[type=radio],[type=color],[type=range]),select:not([multiple]):not([size]),select[size="1"]){height:var(--ui-field-height,44px)!important;min-height:var(--ui-field-height,44px)!important;padding-block:calc((var(--ui-field-height,44px) - 22px)/2)!important}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(input:not([type=hidden],[type=checkbox],[type=radio],[type=color],[type=range]),select,textarea):not(:disabled,[readonly]){background-color:var(--ui-form-field,#fff)!important}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(input,textarea)::placeholder{font:inherit!important;color:var(--ui-muted,#627082);opacity:1}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) .ui-field-group{background:var(--ui-form-group,#e8eaed)!important}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) .ui-field-group:has(.ui-field-group){background:var(--ui-form-main,#fafbfc)!important}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(.form-grid,.ui-form-grid):not(.ui-field-group):not(.ui-field-group :is(.form-grid,.ui-form-grid)):not(:has(.ui-field-group)){background:var(--ui-form-group,#e8eaed)!important}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(.form-grid,.ui-form-grid,.ui-document-primary,.ui-document-fields,.ui-document-recipient-fields,.portal-tools,.ui-field-grid){row-gap:4px}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(.form-grid,.ui-form-grid,.ui-document-primary,.ui-document-fields,.ui-document-recipient-fields,.portal-tools,.ui-field-grid)>label:not(.check,.checkbox,.booking-toggle):has(:is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea)){display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:4px;align-content:start;margin-block:0}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) .form-grid>p.notice{margin-block:0}
body.portal-shared .portal-case-cards tr:not([hidden]){grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
body.portal-shared .portal-case-cards td:not([data-label="Anliegen"],[data-label="Aktionen"]){grid-column:auto}
body.portal-shared .portal-case-cards td[data-label="Anliegen"]{grid-column:1/-1;grid-row:1}
body.portal-shared .portal-case-cards td:not(:first-child,[data-label="Anliegen"],[data-label="Aktionen"]) :is(strong,b){font-weight:inherit}
body.portal-shared .portal-tools>[data-table-count]{grid-row:span 3;align-self:end;line-height:var(--ui-field-height,44px);margin-bottom:4px}
 html:root body.app-v2 #main-content .ui-document-details .ui-document-field{padding:0;border:0;border-radius:0;background:transparent}
 html:root body.app-v2 #main-content .ui-document-details .ui-document-field>span:first-child{font-size:12px;line-height:20px;font-weight:600;color:var(--ui-muted)}
 html:root body.app-v2 #main-content .ui-document-details .ui-document-field :is(input,select,textarea){border:1px solid var(--ui-line,#ccd2da);padding-inline:10px;background-color:var(--ui-form-field,#fff)}
html:root body.app-v2 #main-content .ui-document-details .ui-document-field textarea{min-height:var(--ui-field-height,44px);padding-block:calc((var(--ui-field-height,44px) - 22px)/2)}
 html:root body.app-v2 #main-content .ui-document-details .ui-document-field .ui-info-trigger{position:static!important;display:inline-flex!important;vertical-align:middle;width:var(--ui-caption-help-size,20px)!important;min-width:var(--ui-caption-help-size,20px)!important;height:var(--ui-caption-help-size,20px)!important;min-height:var(--ui-caption-help-size,20px)!important}
@media(pointer:coarse),(max-width:767px){html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) :is(input:not([type=hidden],[type=checkbox],[type=radio],[type=color],[type=range]),select,textarea){font-size:16px!important}}

:is(body.app-v2,body.portal-shared) .ui-repeated-tab-heading{display:none!important}
:is(body.app-v2,body.portal-shared) .ui-header-summary{min-width:0;flex:1 1 220px;margin:0}

/* Contact pickers are wrappers around the same three shared label/control/help tracks. */
:is(body.app-v2,body.portal-shared) .ui-document-primary>div:has(>label.ui-document-field){display:grid;grid-template-rows:subgrid;grid-row:span 3}
:is(body.app-v2,body.portal-shared) .ui-document-primary>div>label.ui-document-field{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:4px}

/* Belegangaben: Personen sowie Termine & Eingang als kompakte Gruppen direkt unter Belegart/Bezeichnung. */
html:root body.app-v2 #main-content .ui-document-details .ui-document-primary{grid-template-columns:minmax(140px,220px) minmax(0,1fr)}
html:root body.app-v2 #main-content .ui-document-groups{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:8px;align-items:stretch;min-width:0}
html:root body.app-v2 #main-content .ui-document-details .ui-document-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));column-gap:8px;row-gap:4px;align-content:start;min-width:0;margin:0;padding:4px var(--ui-document-group-padding-inline) 8px;border:var(--ui-document-group-border) solid var(--ui-line,#ccd2da);border-radius:8px}
html:root body.app-v2 #main-content .ui-document-details .ui-document-group[data-document-group=dates]{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}
html:root body.app-v2 #main-content .ui-document-details .ui-document-group>legend{padding:2px 8px;margin:0 0 2px;font-size:12px;line-height:18px}
html:root body.app-v2 #main-content .ui-document-details .ui-document-group>:is(label.ui-document-field,[data-contact-field]){display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:4px;min-width:0;margin:0}
html:root body.app-v2 #main-content .ui-document-details .ui-document-group>[data-contact-field]>label.ui-document-field{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:4px;min-width:0;margin:0}
html:root body.app-v2 #main-content .ui-document-details .ui-document-group .ui-document-field>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html:root body.app-v2 #main-content .ui-document-details .ui-document-group :is(input,select){min-width:0}
/* Shared control edge follows the field-group border/padding in every document kind. */
html:root body.app-v2 #main-content .ui-document-details .ui-document-primary{padding-inline:var(--ui-document-inner-inset)}
html:root body.app-v2 #main-content .ui-document-primary>.ui-document-groups{margin-inline:calc(-1 * var(--ui-document-inner-inset))}
html:root body.app-v2 #main-content .ui-document-details>:is(.ui-document-summaries,.ui-document-more){margin-inline:var(--ui-document-inner-inset)}

html:root body.app-v2 #main-content .ui-document-summaries>a.button[data-document-ticket-link]{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
html:root body.app-v2 #main-content .ui-document-summaries>a.button[data-document-ticket-link] svg{width:14px;height:14px}
@media(max-width:1365px){html:root body.app-v2 #main-content .ui-document-groups{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){html:root body.app-v2 #main-content .ui-document-details .ui-document-primary{grid-template-columns:minmax(0,1fr)}html:root body.app-v2 #main-content .ui-document-details .ui-document-group{grid-template-columns:minmax(0,1fr)}html:root body.app-v2 #main-content .ui-document-details .ui-document-group[data-document-group=dates]{grid-template-columns:repeat(2,minmax(0,1fr))}html:root body.app-v2 #main-content .ui-document-details .ui-document-group[data-document-group=dates]>label:has([name=intake_channel]){grid-column:1/-1}html:root body.app-v2 #main-content .ui-document-details .ui-document-group .ui-document-field>span:first-child{white-space:normal}}

/* Metadata stays on the same actual control row, without changing the associated label. */
body.portal-shared .portal-surface:has(.portal-invoice-cards) .portal-tools{grid-template-columns:repeat(3,minmax(0,1fr))}
body.portal-shared .ui-field-with-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:subgrid;grid-row:span 3;column-gap:8px;min-width:0}
body.portal-shared .ui-field-with-meta>label{display:grid;grid-template-rows:subgrid;grid-row:span 3;grid-column:1;row-gap:4px;min-width:0;margin:0}
body.portal-shared .ui-field-with-meta>[data-table-count]{grid-column:2;grid-row:2;align-self:start;line-height:var(--ui-field-height,44px);margin:0;white-space:nowrap}
body.portal-shared .portal-case-cards tr:not([hidden]){grid-template-columns:repeat(4,minmax(0,1fr))}
:is(body.app-v2,body.portal-shared) .ui-actionbar-summary{flex:1 1 220px;min-width:0;margin:0 auto 0 0;text-align:left}
@media(min-width:768px) and (max-width:1279px){body.portal-shared .portal-surface:has(.portal-invoice-cards) .portal-tools,body.portal-shared .portal-case-cards tr:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){body.portal-shared .portal-surface:has(.portal-invoice-cards) .portal-tools,body.portal-shared .portal-case-cards tr:not([hidden]){grid-template-columns:minmax(0,1fr)}}

/* Real field grids opt into shared tracks; whole content columns remain independent. */
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) .ui-field-grid>label:is(.check,.checkbox,.booking-toggle){grid-row:span 3;align-self:center}
html:root :is(body.app-v2,body.portal-shared) :is(#main-content,main,dialog) .ui-field-grid:not(.ui-field-group):not(.ui-field-group .ui-field-grid):not(:has(.ui-field-group)){background:var(--ui-form-group,#e8eaed)!important}
/* Action menus share the adjacent control geometry, including native dialog headers. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,main,dialog) :is(.form-actions,.ui-action-bar)>details>summary.button{box-sizing:border-box;height:var(--ui-field-height,44px)!important;min-height:var(--ui-field-height,44px)!important;padding-block:0!important;display:inline-flex;align-items:center;justify-content:center}
/* Direct actions retain wrapping without adding an extra one-line height. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,main,dialog) :is(.form-actions,.ui-action-bar)>[data-selection-direct]{padding-block:0!important}
body.portal-shared .portal-case-cards td[data-label="Vorgangsnummer"] small :is(strong,b){font-weight:inherit}

/* Shared rich-text toolbars use the same one-line geometry as adjacent fields. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,main,dialog) .ui-editor-toolbar>:is(button,select,input),html:root body:is(.app-v2,.portal-shared) :is(#main-content,main,dialog) .ui-editor-toolbar>.ui-editor-picker>button{box-sizing:border-box;height:var(--ui-field-height,44px)!important;min-height:var(--ui-field-height,44px)!important;padding-block:0!important;display:inline-flex;align-items:center;justify-content:center}

/* Full-width field items never create implicit extra columns at tablet widths. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,main,dialog) .ui-field-grid>.wide{grid-column:1/-1}

@media(pointer:coarse),(max-width:767px){body:is(.app-v2,.portal-shared){--ui-caption-help-size:44px}}

/* #663: contact directory uses the shared dialog with room for readable rows. */
body.app-v2 #main-content dialog.ui-dialog.ui-contact-dialog,body.app-v2 dialog.ui-dialog.ui-contact-dialog{width:min(1240px,calc(100vw - 32px));max-height:calc(var(--ui-dialog-viewport-height,100dvh) - 32px);min-height:0}
body.app-v2 dialog.ui-contact-dialog[open]{display:flex;flex-direction:column;gap:16px}
body.app-v2 .ui-contact-dialog>.ui-form-header{flex:none;margin:0}
body.app-v2 .ui-contact-dialog-body{flex:1;min-height:0;overflow:auto}
body.app-v2 .ui-contact-inline-editor{margin-top:16px}
/* Record editors retain their actions and tabs while the native dialog body scrolls. */
body.app-v2 .ui-record-editor-navigation{position:sticky;top:0;z-index:3;background:var(--ui-form-main,var(--ui-surface,#fff));padding-bottom:8px}
body.app-v2 .ui-record-editor-navigation>.ui-form-header{margin:0}
body.app-v2 .ui-record-editor-navigation>.ui-tab-navigation{margin-bottom:0}
body.app-v2 :is(#main-content,dialog) .ui-record-editor-navigation .ui-tabs>:is(button,a){padding-inline:10px}
body.app-v2 .ui-contact-directory-table{width:100%;min-width:0;table-layout:fixed}
body.app-v2 .ui-contact-directory-table :is(th,td){white-space:normal;overflow-wrap:anywhere;vertical-align:middle;padding:8px}
body.app-v2 .ui-contact-directory-table th:last-child{width:160px}
body.app-v2 .ui-contact-directory-table .form-actions{gap:8px;margin:0;justify-content:flex-start}
body.app-v2 .ui-contact-directory-table .badge{display:block;margin-top:4px;white-space:normal}
body.app-v2 .ui-contact-directory-table .ui-contact-copy{margin:4px 0}
@media(max-width:767px){body.app-v2 #main-content dialog.ui-dialog.ui-contact-dialog,body.app-v2 dialog.ui-dialog.ui-contact-dialog{width:100%;min-height:0}body.app-v2 .ui-contact-directory-table,body.app-v2 .ui-contact-directory-table :is(tbody,tr,td){display:block;min-width:0;width:100%;box-sizing:border-box}body.app-v2 .ui-contact-directory-table thead{display:none}body.app-v2 .ui-contact-directory-table tr{margin-bottom:16px;border-bottom:1px solid var(--ui-border)}body.app-v2 .ui-contact-directory-table td[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:var(--ui-muted)}body.app-v2 .ui-contact-directory-editor-row td{padding:0}}

/* Customer details: aligned adjacent actions. */
/* Native popovers live outside main; mixed links/buttons still share action padding. */
body.app-v2 [popover] :is(.form-actions,.ui-action-bar)>:is(button,a.button){padding-inline:12px}
.ui-object-customer-popover .ui-object-customer-actions{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px;margin:16px 0}
.ui-object-customer-popover .ui-object-customer-actions>.button,.ui-object-customer-popover .ui-object-customer-actions>button{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-height:44px;margin:0;box-sizing:border-box}

.ui-object-customer-popover :is(.customer-contact-links,.case-contact-links){display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.ui-object-customer-popover :is(.customer-contact-links,.case-contact-links)>a{display:inline-flex;align-items:center;gap:8px;min-height:44px}

/* Compact customer-master contact table: communication retains readable widths. */
body.app-v2 .ui-contact-dialog-body{display:flex;flex-direction:column;gap:12px}
body.app-v2 .ui-contact-dialog-body>p{margin:0}
body.app-v2 .ui-contact-directory-table :is(th,td):nth-child(1){width:16%}
body.app-v2 .ui-contact-directory-table :is(th,td):nth-child(2){width:10%}
body.app-v2 .ui-contact-directory-table :is(th,td):nth-child(3),body.app-v2 .ui-contact-directory-table :is(th,td):nth-child(4){width:17%}
body.app-v2 .ui-contact-directory-table :is(th,td):nth-child(5){width:25%}
body.app-v2 .ui-contact-directory-table :is(th,td):nth-child(6){width:15%}
body.app-v2 .ui-contact-directory-table :is(th,td){padding:8px;line-height:1.4}
body.app-v2 .ui-contact-directory-table .ui-contact-copy{display:none}
body.app-v2 .ui-contact-directory-table td:is(:hover,:focus-within) .ui-contact-copy{display:inline-flex}
body.app-v2 .ui-contact-directory-table .ui-contact-link{white-space:normal;word-break:normal;overflow-wrap:normal}
body.app-v2 .ui-contact-directory-table td:nth-child(5) .ui-contact-link{overflow-wrap:anywhere}
body.app-v2 .ui-contact-directory-table .badge{margin:0}
@media(min-width:768px) and (max-width:1023px){body.app-v2 .ui-contact-directory-table,body.app-v2 .ui-contact-directory-table tbody{display:block;width:100%}body.app-v2 .ui-contact-directory-table thead{display:none}body.app-v2 .ui-contact-directory-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--ui-border)}body.app-v2 .ui-contact-directory-table td{display:block;width:auto!important;min-width:0}body.app-v2 .ui-contact-directory-table td[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:var(--ui-muted)}body.app-v2 .ui-contact-directory-table tr.ui-contact-directory-editor-row{display:block}}
@media(max-width:767px){body.app-v2 .ui-contact-directory-table td{width:100%!important}}
@media(pointer:coarse){body.app-v2 .ui-contact-directory-table .ui-contact-copy{display:inline-flex}}

body.app-v2 :is(#main-content,dialog) .ui-contact-directory-table .form-actions{display:grid;grid-template-columns:max-content max-content;align-items:center;gap:8px;margin:0}
body.app-v2 .ui-contact-directory-table td:first-child .badge{display:table;margin-top:4px}
/* Text actions keep the PDF delivery marker clear of the complete caption. */
[data-pdf-state]:not(.ui-document-icon)>.ui-pdf-state-marker{margin-left:8px;background:transparent;flex:none}
body.app-v2 :is(.ui-action-menu,.ui-action-popover,.ui-action-group,.bulk-menu,.case-extra-actions) [data-pdf-state]>.ui-pdf-state-marker{display:inline-block;width:12px;height:12px;margin-left:8px;background:transparent;flex:none}
/* Keep the complete contact-dialog heading visible after focus-driven scrolling. */
body.app-v2 .ui-contact-dialog>.ui-form-header{position:sticky;top:0;z-index:2;background:var(--ui-form-main,var(--ui-surface,#fff))}

/* Header state icons remain native dialog buttons; the existing state mark owns the surface. */
body.app-v2 .ui-object-heading .ui-customer-object-cluster>button.ui-object-state-control{padding:0!important;border:0;background:transparent;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}
.ui-object-state-control>.ui-state-icon{pointer-events:none}
body.app-v2 .ui-object-head-dialog{width:min(960px,calc(100vw - 32px))}
body.app-v2 .ui-object-head-dialog .panel{margin:16px 0 0;padding:0;border:0;box-shadow:none;background:transparent}
.ui-print-frame{position:fixed;left:-10000px;top:0;width:800px;height:1000px;border:0}
[data-portal-access-qr]>img{width:180px;height:180px;max-width:100%}
body.app-v2 :is(#main-content,dialog) [data-heading-action]:disabled{color:var(--ui-muted,#627082);background:var(--ui-form-group,#e8eaed);border-color:var(--ui-line,#ccd2da);opacity:1;cursor:not-allowed}
/* Contact directories show business and private channels without replacing either value. */
.ui-contact-directory-table .ui-contact-channel{display:grid;grid-template-columns:max-content minmax(0,1fr) auto;align-items:center;gap:2px 6px;min-width:0}
.ui-contact-directory-table .ui-contact-channel>small{flex:0 0 auto;line-height:1.4;margin:0}
.ui-contact-directory-table .ui-contact-channel>small::after{content:":"}
.ui-contact-directory-table .ui-contact-channel>.ui-contact-link{min-width:0}
.ui-contact-directory-table .ui-contact-channel+.ui-contact-channel{margin-top:2px}

/* Reserve the existing timer footprint before its controller mounts. */
body.app-v2>header .header-timer-slot[data-header-timer-expected]{min-width:var(--ui-field-height,44px);min-height:var(--ui-field-height,44px)}
body.app-v2>header .header-timer-slot[data-header-timer-running]{min-width:112px}

/* Priority symbols (#781): no permanent button surface; retain focus and hit area. */
html body.app-v2 #main-content [data-priority-symbol]{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:transparent!important;border-color:transparent!important;box-shadow:none!important;animation:none!important;color:var(--ui-muted)}
html body.app-v2 #main-content [data-priority-symbol=normal]{color:var(--ui-muted)}
html body.app-v2 #main-content [data-priority-symbol=high]{color:#ad8100!important}
html body.app-v2 #main-content [data-priority-symbol=urgent]{color:#c24b00!important}
html body.app-v2 #main-content [data-priority-symbol=critical]{color:#d91d28!important}
html[data-color-mode=dark] body.app-v2 #main-content [data-priority-symbol=high]{color:#facc15!important}
html[data-color-mode=dark] body.app-v2 #main-content [data-priority-symbol=urgent]{color:#fb923c!important}
html[data-color-mode=dark] body.app-v2 #main-content [data-priority-symbol=critical]{color:#ff4055!important}
html body.app-v2 #main-content :is(button,summary)[data-priority-symbol]{min-width:36px;min-height:36px;padding:6px;cursor:pointer}
html body.app-v2 #main-content :is(button,summary)[data-priority-symbol]:focus-visible{outline:2px solid var(--ui-focus,#3478bd);outline-offset:2px}
html body.app-v2 #main-content .ui-action-menu [data-phone-menu-entry][data-priority-symbol]{justify-content:flex-start;padding-inline:12px}
@media(pointer:coarse){html body.app-v2 #main-content :is(button,summary)[data-priority-symbol]{min-width:44px;min-height:44px}}

/* Sheet grips keep their plain surface when later page controllers restyle buttons. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,dialog)>.ui-dialog-drag-handle{background:transparent!important;border:0!important;box-shadow:none!important}
/* Shared, read-only document print view. */
.ui-document-print-frame{display:block;width:100%;height:70vh;min-height:240px;border:0}

/* Signature actions keep whole words and wrap as complete touch targets on narrow screens. */
body:is(.app-v2,.portal-shared) form[data-repair-signature] .form-actions[data-actions-position=bottom]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
body:is(.app-v2,.portal-shared) form[data-repair-signature] .form-actions[data-actions-position=bottom]>button{flex:1 1 140px;width:auto;min-width:min(100%,140px);max-width:100%;height:auto!important;min-height:44px!important;padding:10px 12px!important;white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.3}
/* Public signature review and status text use the shared palette in both color modes. */
body.portal-shared.customer-signature form .check,body.portal-shared.customer-signature [role=status]{background:var(--ui-soft,#f5f7fa);color:var(--ui-ink,#243244)}

/* Long statements and single facts use the full shared summary width. */
.ui-facts-grid>.ui-fact-wide,.ui-facts-grid>div:only-child{grid-column:1/-1}

/* Shared customer confirmation branding, readable facts and a usable portrait signature pad. */
.confirmation-brand{margin-inline-start:auto;display:flex;align-items:center;justify-content:flex-end;max-width:180px;min-width:0;overflow-wrap:anywhere}
.confirmation-brand img{display:block;max-width:160px;max-height:64px;object-fit:contain}
[data-customer-confirmation-dialog] [data-cc-receipt] canvas{width:100%;height:160px;object-fit:contain;background:#fff;border:1px solid var(--ui-line,#c6d1dd);border-radius:7px}
:is([data-customer-confirmation-public],[data-customer-confirmation-dialog]) .confirmation-position{padding:12px;background:var(--ui-soft,#f5f7fa);border:1px solid var(--ui-line,#c6d1dd);border-radius:var(--ui-radius,8px)}
:is([data-customer-confirmation-public],[data-customer-confirmation-dialog]) .confirmation-position dd{line-height:1.55;font-weight:400}
@media(max-width:767px){
 :is([data-customer-confirmation-public],[data-customer-confirmation-dialog]) form[data-repair-signature] canvas{height:240px;min-height:240px;aspect-ratio:auto;width:100%;max-width:100%;touch-action:none}
 .confirmation-brand{max-width:120px}.confirmation-brand img{max-width:112px;max-height:56px}
}

[data-confirmation-header]{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}
[data-confirmation-header]>:is(h1,h2){grid-column:1;grid-row:1;min-width:0;margin:0}
[data-confirmation-header]>.confirmation-brand{grid-column:2;grid-row:1;margin:0;justify-self:end}
[data-confirmation-header]>.form-actions{grid-column:1/-1;grid-row:2;justify-self:end;margin:0}

/* Shared editor groups retain native controls and their form handlers; narrow surfaces use More. */
body:is(.app-v2,.portal-shared) :is(#main-content,main,dialog) .ui-editor-toolbar{gap:4px;min-width:0;overflow:visible;align-items:end}
.ui-editor-group{display:flex;flex:0 0 auto;align-items:end;gap:4px;min-width:0;max-width:100%}
.ui-editor-toolbar>.ui-editor-group:not(:first-child){border-inline-start:1px solid var(--ui-line);padding-inline-start:6px}
.ui-editor-group>label{margin:0;min-width:0;font-size:11px}
body.app-v2 #main-content .ui-editor-toolbar .ui-editor-picker>button,body.app-v2 #main-content .ui-editor-toolbar .legal-font-menu>summary{width:112px;min-width:0;max-width:100%;white-space:normal;line-height:1.15;justify-content:flex-start}
body.app-v2 #main-content .ui-editor-toolbar [data-editor-size],body.app-v2 #main-content .ui-editor-toolbar [data-mk-size],body.app-v2 #main-content .ui-editor-toolbar select[aria-label="Schriftgröße"]{width:100px;min-width:0;max-width:100%}
body.app-v2 #main-content .ui-editor-toolbar .ui-editor-group>button.ui-editor-icon,body.app-v2 #main-content .ui-editor-toolbar .ui-editor-more-button{width:var(--ui-field-height,44px);min-width:var(--ui-field-height,44px);height:var(--ui-field-height,44px);min-height:var(--ui-field-height,44px);padding:8px;flex:0 0 auto}
.ui-editor-more-panel{position:fixed;inset:auto;margin:0;padding:12px;border:1px solid var(--ui-line);border-radius:8px;background:var(--ui-form-group);color:var(--ui-form-ink);box-shadow:var(--ui-shadow);overflow-y:auto;box-sizing:border-box;max-width:calc(100vw - 24px)}
.ui-editor-more-panel:popover-open{display:flex;flex-wrap:wrap;gap:12px;align-items:start}
.ui-editor-more-panel>.ui-editor-group{flex-wrap:wrap;padding:0;max-width:100%}
.ui-editor-more-panel>.ui-editor-group[data-editor-group=extra]{flex-basis:100%}
.ui-editor-more-panel label{max-width:100%;min-width:0}
.ui-editor-more-panel select,.ui-editor-more-panel .legal-font-menu{max-width:100%;min-width:0}
.ui-editor-toolbar :is(button,summary)[aria-pressed=true]{background:var(--ui-accent-soft);color:var(--ui-ink);box-shadow:inset 0 0 0 1px var(--ui-line)}

.ui-editor-picker>button>span{min-width:0;white-space:normal;overflow-wrap:anywhere}
.ui-editor-picker>button>.ui-icon{flex-shrink:0;width:14px;height:14px;margin-inline-start:4px}

.ui-editor-more-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-basis:100%;min-width:0}
.ui-editor-more-head h3{margin:0;font-size:14px;line-height:1.3}
.ui-editor-more-head>.ui-close-x{flex:0 0 auto}

/* Feedback image editing uses the common native dialog, field and action hierarchy. */
.feedback-image-preview{margin-block:12px;min-width:0}.feedback-image-preview[hidden]{display:none}
.feedback-image-preview img{display:block;max-width:100%;max-height:180px;object-fit:contain;cursor:pointer;border:1px solid var(--border,#c4ccd6);border-radius:6px}
.feedback-image-preview .form-actions{justify-content:flex-start}
body.app-v2 dialog.ui-dialog.feedback-image-editor{width:calc(100vw - 24px);max-width:1500px;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:16px;box-sizing:border-box}
body.app-v2 dialog.ui-dialog.feedback-image-editor[open]{display:flex;flex-direction:column;gap:12px}
.feedback-image-editor .panel-head{flex-shrink:0;gap:12px;flex-wrap:wrap}.feedback-image-editor .panel-head h2{margin:0}.feedback-image-editor .form-actions{margin:0}
.feedback-image-tools{display:flex;flex-wrap:wrap;gap:8px}.feedback-image-tools button{min-width:36px;min-height:36px}.feedback-image-tools button[aria-pressed=true]{background:var(--primary,#293b4b);color:#fff}
.feedback-image-options{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:12px}.feedback-image-options label{flex:1 1 110px;min-width:0}.feedback-image-options label[hidden]{display:none}.feedback-image-options textarea{width:100%;box-sizing:border-box}.feedback-image-checkbox{display:flex;align-items:center;gap:8px}
.feedback-image-stage{flex:1 1 160px;min-height:80px;min-width:0;display:flex;align-items:center;justify-content:center;background:var(--surface-muted,#e7ebef);border:1px solid var(--border,#c4ccd6);border-radius:6px;overflow:hidden}
.feedback-image-stage canvas{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;touch-action:none}.feedback-image-editor>p{margin:0;font-size:.85rem}
@media(pointer:coarse){.feedback-image-tools button{min-width:44px;min-height:44px}}
@media(max-width:767px){body.app-v2 dialog.ui-dialog.feedback-image-editor{padding:12px;gap:8px}.feedback-image-tools{gap:4px}.feedback-image-options{padding:8px;gap:8px}.feedback-image-options label{flex-basis:90px}.feedback-image-editor>p{font-size:.8rem}}

.feedback-element-picker{position:fixed;inset:12px 12px auto;z-index:2147483647;padding:12px;background:var(--ui-card,#fff);color:var(--ui-ink,#253849);border:2px solid var(--ui-line,#afb9c5);border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 8px 30px #0003}
body.app-v2 .feedback-dialog-head{align-items:center;flex-wrap:wrap}body.app-v2 .feedback-dialog-head>.form-actions{margin:0;flex-wrap:wrap;gap:8px}body.app-v2 .feedback-dialog-head h2{margin:0}
.feedback-image-controls,.feedback-image-commands{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.feedback-image-tool-picker{flex:1 1 auto;min-width:0}.feedback-image-tool-picker>summary{display:none}.feedback-image-commands{flex:0 0 auto}.feedback-image-commands button{min-width:36px;min-height:36px}
@media(pointer:coarse){.feedback-image-commands button{min-width:44px;min-height:44px}}
@media(max-width:767px){.feedback-image-controls{align-items:center;gap:8px}.feedback-image-tool-picker{flex:1 1 130px}.feedback-image-tool-picker>summary{display:flex;align-items:center;min-height:44px;padding:6px 10px;border:1px solid var(--ui-line);border-radius:var(--ui-radius);font-weight:600;box-sizing:border-box}.feedback-image-tool-picker[open]{flex-basis:100%}.feedback-image-tool-picker[open]>.feedback-image-tools{margin-top:8px}.feedback-image-commands{gap:4px}body.app-v2 dialog.ui-dialog.feedback-image-editor .panel-head h2{flex:1 1 100%}body.app-v2 dialog.ui-dialog.feedback-image-editor .panel-head>.form-actions{margin-left:auto;width:auto;flex:0 0 auto}body.app-v2 dialog.ui-dialog.feedback-image-editor .panel-head>.form-actions>button{flex:0 0 auto;white-space:nowrap}}

/* Shared single-record menu trigger; selection menus retain their full caption. */
body.app-v2 :is(#main-content,dialog,.ui-object-heading) summary.ui-action-menu-trigger{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;gap:0;list-style:none}
body.app-v2 summary.ui-action-menu-trigger::after,body.app-v2 summary.ui-action-menu-trigger::marker{display:none;content:none}
body.app-v2 summary.ui-action-menu-trigger svg{display:block;width:20px;height:20px;flex:none}
@media(pointer:coarse),(max-width:820px){body.app-v2 :is(#main-content,dialog,.ui-object-heading) summary.ui-action-menu-trigger{flex-basis:44px;width:44px;min-width:44px;height:44px;min-height:44px}}

/* Open action groups: shared reading order, full labels, phone sheet remains one column. */
:is(body.app-v2,body.portal-shared) .ui-action-categories.ui-action-groups-open:is(:popover-open,:not([popover])){display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;align-items:start}
.ui-action-groups-open .ui-action-group-title{font-weight:700;font-size:12px;line-height:18px;color:var(--ui-muted);padding:4px 8px!important}
.ui-action-groups-open .ui-action-heading-redundant,.ui-action-groups-open .ui-action-category-empty{display:none!important}
:is(body.app-v2,body.portal-shared) .ui-action-groups-open>.ui-action-menu-close{grid-column:1/-1;justify-self:end;width:auto!important;margin-left:auto!important;color:var(--ui-form-ink,var(--ui-ink))!important;background:var(--ui-form-main,var(--ui-surface))!important}
@media(min-width:768px){:is(body.app-v2,body.portal-shared) .ui-action-categories.ui-action-groups-open[data-action-columns="2"]{width:min(760px,calc(100vw - 32px))!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* Native DOM order is authoritative for the shared header, including keyboard navigation. */
body.app-v2 #main-content .ui-object-heading .actions.ui-action-bar{gap:8px}
body.app-v2 #main-content .ui-object-heading .actions.ui-action-bar>*{order:0!important}
.ui-object-heading .ui-customer-object-cluster{gap:8px}

/* Compact list actions share a row when they fit; extra actions wrap completely. */
@media(max-width:767px){
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified{gap:4px;align-items:center}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified .ui-list-selection-count{padding:0;line-height:16px}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified>.ui-list-actions{flex-wrap:wrap!important;gap:8px;min-width:0}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified>.ui-list-actions>details{min-width:0;flex:0 1 auto}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified>.ui-list-actions>details>summary.button{padding-inline:6px;gap:4px;white-space:normal}
}

@media(max-width:359px){
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified{display:grid!important;grid-template-columns:minmax(0,1fr) auto}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified>.ui-list-actions{display:contents!important}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified>.ui-list-actions>details{grid-column:1/-1;width:100%}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified>.ui-list-actions>details>summary.button{width:100%}
}

/* Switchable customer file: attached primary tabs, shared section marks, unchanged classic layout (#550). */
body.app-v2 #main-content .customer-record-cards{max-width:none;min-width:0}
body.app-v2 #main-content .customer-record-cards .customer-cards-navigation{position:sticky;top:calc(var(--ui-header-height,72px) + var(--customer-heading-height,0px));z-index:8;min-width:0;background:var(--ui-surface,#fff)}
body.app-v2 #main-content .customer-record-cards .customer-cards-tabs{display:flex!important;flex-flow:row nowrap!important;align-items:stretch!important;gap:4px;margin:0;padding:0 4px;border-bottom:1px solid var(--ui-line);overflow-x:auto!important;scrollbar-width:thin}
body.app-v2 #main-content .customer-record-cards .customer-cards-tabs>[role=tab]{align-self:stretch!important;height:auto!important;flex:1 0 auto;white-space:nowrap!important;min-width:0;min-height:var(--ui-field-height,44px);padding:8px 10px;border:1px solid var(--ui-line)!important;border-bottom:0!important;border-radius:8px 8px 0 0!important;background:var(--ui-soft)!important;color:var(--ui-muted)!important;box-shadow:none!important}
body.app-v2 #main-content .customer-record-cards .customer-cards-tabs>[role=tab][aria-selected=true]{background:var(--ui-surface,#fff)!important;color:var(--ui-ink)!important;border-top:3px solid var(--ui-accent,#263746)!important;margin-bottom:-1px;box-shadow:none!important}
body.app-v2 #main-content .customer-record-cards .customer-cards-sectionbar{padding:4px 12px;border:1px solid var(--ui-line);border-top:0;border-radius:0 0 8px 8px;background:var(--ui-surface,#fff)}
body.app-v2 #main-content .customer-record-cards [data-customer-card-sections]{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
body.app-v2 #main-content .customer-record-cards [data-customer-card-sections][hidden]{display:none}
body.app-v2 #main-content .customer-record-cards [data-customer-card-sections] button{padding:4px;min-height:var(--ui-field-height,44px)}
body.app-v2 #main-content .customer-record-cards [data-customer-layout-content]{display:flex;flex-direction:column;gap:12px;min-width:0}
body.app-v2 #main-content .customer-record-cards [data-customer-layout-content]>form.customer-editor{display:contents}
body.app-v2 #main-content .customer-record-cards [data-org-panel]{margin:0;scroll-margin-top:calc(var(--ui-header-height,72px) + var(--customer-heading-height,0px) + var(--customer-navigation-height,100px) + 8px)}
body.app-v2 #main-content .customer-record-cards .organization-save{order:999}
@media(max-width:767px){
 body.app-v2 #main-content .customer-record-cards .customer-cards-tabs>[role=tab]{flex:0 0 auto;padding-inline:12px}
 body.app-v2 #main-content .customer-record-cards .customer-cards-sectionbar{padding-inline:8px}
}
body.app-v2 #main-content .customer-record-cards .customer-overview-grid{display:block;columns:2;column-gap:16px}
body.app-v2 #main-content .customer-record-cards .customer-overview-grid>fieldset{min-width:0;margin:0 0 12px;break-inside:avoid}
body.app-v2 #main-content .customer-record-cards .customer-overview-grid .panel-head{gap:8px;margin:0 0 8px;align-items:center}
body.app-v2 #main-content .customer-record-cards .customer-overview-grid h3{margin:0}
body.app-v2 #main-content .customer-record-cards .customer-overview-grid p{margin:8px 0;overflow-wrap:anywhere}
body.app-v2 #main-content .customer-record-cards .customer-overview-grid small{display:block;color:var(--ui-muted);font-weight:400}

@media(max-width:767px){body.app-v2 #main-content .customer-record-cards .customer-overview-grid{columns:1}}

/* The classic customer heading keeps its original grid and controls. */
body.app-v2 #main-content .customer-record-heading-cards>.ui-object-identity-grid:first-child{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:0 8px}
body.app-v2 #main-content .customer-record-heading-cards .ui-object-title-line{display:contents}
body.app-v2 #main-content .customer-record-heading-cards .ui-object-status-line:empty{display:none}
body.app-v2 #main-content .customer-record-heading-cards>.ui-object-identity-grid:first-child>.ui-object-customer-line{grid-column:1;grid-row:1;padding:0;border:0;min-height:var(--ui-field-height,44px)}
body.app-v2 #main-content .customer-record-heading-cards>.ui-object-identity-grid:first-child>.ui-object-contacts{grid-column:1;grid-row:2;padding:0;border:0}
body.app-v2 #main-content .customer-record-heading-cards .customer-card-short-label{font-size:12px;white-space:nowrap}
body.app-v2 #main-content .customer-record-heading-cards [data-customer-object-key] .ui-object-count{position:static;margin-left:2px}
body.app-v2 #main-content .customer-record-heading-cards [data-object-count="0"] .ui-object-count{display:none}
@media(min-width:1440px){body.app-v2 #main-content .customer-record-heading-cards [data-customer-object-key]{width:auto;gap:4px;padding-inline:6px}}
@media(max-width:1439px){body.app-v2 #main-content .customer-record-heading-cards .customer-card-short-label{display:none}}
@media(max-width:767px){
 body.app-v2 #main-content .customer-record-heading-cards>.ui-object-identity-grid:first-child{grid-template-columns:minmax(0,1fr) auto;gap:0 8px}
 body.app-v2 #main-content .customer-record-heading-cards>.ui-object-identity-grid:first-child>.ui-object-customer-line{grid-column:1/-1;grid-row:1}
 body.app-v2 #main-content .customer-record-heading-cards>.ui-object-identity-grid:first-child>.ui-object-contacts{grid-column:1;grid-row:2;flex-wrap:wrap;gap:0}
 body.app-v2 #main-content .customer-record-heading-cards>.ui-object-identity-grid:first-child>.ui-customer-object-cluster{grid-column:2;grid-row:2}
}
@media(max-width:767px){
 body.app-v2 #main-content .customer-record-heading-cards>.actions.ui-action-bar{display:flex!important;flex-flow:row nowrap!important;bottom:calc(var(--customer-bottom-navigation-height,70px) + env(safe-area-inset-bottom,0px));gap:8px}
 body.app-v2 #main-content .customer-record-heading-cards>.actions.ui-action-bar>[data-object-primary]:empty{display:none}
 body.app-v2 #main-content .customer-record-heading-cards>.actions.ui-action-bar>:is(a,button,details){flex:0 0 auto;width:auto;max-width:100%}
}
body.app-v2 #main-content .customer-record-cards [data-customer-card-sections] [aria-current=location]{text-decoration:underline;text-underline-offset:5px;font-weight:700}
body.app-v2 #main-content .customer-record-cards .customer-overview-grid>fieldset>.form-actions{float:right;margin:0 0 8px 12px}

/* #1009: one opaque row surface, including fixed identity cells while scrolling.
   Status palettes keep their existing meaning; header surfaces and phone cards stay separate. */
@media(min-width:768px){
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr{--ui-row-bg:var(--theme-surface,#fafafa);background:var(--ui-row-bg)}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:nth-child(even){--ui-row-bg:var(--theme-surface-alt,#f5f7fa)}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:hover{--ui-row-bg:#f3f3f5}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr.due-soon{--ui-row-bg:#fff4d6}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(.due-overdue,.portal-overdue){--ui-row-bg:#ffedef}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:has([data-case-inline][data-current=low] select[name=priority]){--ui-row-bg:#f2f6f9}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(:has(.priority-high),:has([data-case-inline][data-current=high] select[name=priority])){--ui-row-bg:var(--ui-priority-high-row)}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(:has(.priority-urgent),:has([data-case-inline][data-current=urgent] select[name=priority])){--ui-row-bg:var(--ui-priority-urgent-row)}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(:has(.priority-critical),:has([data-case-inline][data-current=critical] select[name=priority])){--ui-row-bg:color-mix(in srgb,var(--ui-priority-urgent-row) 85%,#d90020 15%)}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr[data-ui-row-tone=success]{--ui-row-bg:#eff8f2}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr[data-ui-row-tone=warning]{--ui-row-bg:#fff9e8}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr[data-ui-row-tone=info]{--ui-row-bg:#eef6ff}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr{--ui-row-bg:var(--theme-surface,#1c2b3c)}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:nth-child(even){--ui-row-bg:var(--theme-surface-alt,#23364a)}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:hover{--ui-row-bg:#293e53}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr.due-soon{--ui-row-bg:#46351d}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(.due-overdue,.portal-overdue){--ui-row-bg:#42232d}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(:has(.priority-high),:has([data-case-inline][data-current=high] select[name=priority])){--ui-row-bg:var(--ui-priority-high-row)}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(:has(.priority-urgent),:has([data-case-inline][data-current=urgent] select[name=priority])){--ui-row-bg:var(--ui-priority-urgent-row)}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(:has(.priority-critical),:has([data-case-inline][data-current=critical] select[name=priority])){--ui-row-bg:#582330}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr[data-ui-row-tone=success]{--ui-row-bg:#193b2a}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr[data-ui-row-tone=warning]{--ui-row-bg:#41371c}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr[data-ui-row-tone=info]{--ui-row-bg:#19394f}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(.bulk-selected,[aria-selected=true],:has(>.ui-selection-cell input[type=checkbox]:checked)){--ui-row-bg:#e8f1ff;background:var(--ui-row-bg)!important}
 html:root[data-color-mode=dark] body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr:is(.bulk-selected,[aria-selected=true],:has(>.ui-selection-cell input[type=checkbox]:checked)){--ui-row-bg:#244761}
 html:root body.app-v2 #main-content .ui-responsive-list:not(.ui-form-table)>tbody>tr>td{background:inherit!important}
}

/* #932: the shared list filter uses the whole phone viewport. */
@media(max-width:767px){
 :is(body.app-v2,body.portal-shared) dialog.ui-dialog.ui-column-filter-dialog{margin:0;width:100vw;max-width:100vw;height:var(--ui-dialog-viewport-height,100dvh);max-height:var(--ui-dialog-viewport-height,100dvh);border-radius:0;box-sizing:border-box}
}

.ui-column-filter-dialog .ui-column-filter-choice-text{min-width:0;white-space:normal;overflow-wrap:anywhere}

/* Keep shared date shortcuts readable on narrow dialog sheets. */
:is(body.app-v2,body.portal-shared) .ui-column-filter-dialog .ui-column-filter-date-presets{display:flex;flex-wrap:wrap;gap:8px}
:is(body.app-v2,body.portal-shared) .ui-column-filter-dialog .ui-column-filter-date-presets>button{flex:1 0 120px;white-space:normal;overflow-wrap:normal}

/* Native dialogs follow the visible viewport, including the mobile keyboard. */
html:root body.app-v2 #main-content dialog:is(.ui-dialog,dialog):modal,html:root body.app-v2 dialog:is(.ui-dialog,dialog):modal,html:root body.portal-shared dialog:is(.ui-dialog,dialog):modal{position:fixed;inset:var(--ui-dialog-viewport-top,0px) 0 var(--ui-dialog-keyboard-offset,0px);margin:auto;max-width:calc(100vw - 32px);max-height:calc(var(--ui-dialog-viewport-height,100dvh) - 32px);border-radius:var(--ui-radius,8px)}

/* Desktop header: free space belongs after search, not between quick actions. */
@media(min-width:1280px){
 body.app-v2>header{justify-content:flex-start;--ui-field-height:44px}
 body.app-v2>header [data-header-search]{max-width:640px;margin-right:auto}
 body.app-v2>header :is(.header-create-menu,.header-timer-slot,[data-header-group=tasks],.header-notifications,[data-header-group=help],.header-profile){flex:0 0 auto}
 body.app-v2>header .ui-mail-warning{order:6}
 body.app-v2>header [data-header-group=help]{order:7}
 body.app-v2>header .header-profile{order:8}
 body.app-v2>header [data-simulation-open]{order:9}
 body.app-v2>header :is(.header-create-menu,.header-notifications,.header-profile)>summary,
 body.app-v2>header :is(.header-icon-action,[data-header-group=tasks],[data-header-group=help]){box-sizing:border-box;height:44px;min-height:44px}
 body.app-v2>header .header-icon-action{width:44px;min-width:44px;flex-basis:44px}
 body.app-v2>header [data-header-search] :is(input,.header-camera-trigger){box-sizing:border-box;height:44px;min-height:44px}
}

/* Changelog versions share one full-width reading flow, with complete change lines. */
body.app-v2 #main-content .changelog-list{display:grid;grid-template-columns:minmax(0,1fr)}
body.app-v2 #main-content .release-card li{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-block:6px}
body.app-v2 #main-content .release-card li>span:not(.badge){flex:1 1 240px;min-width:0;overflow-wrap:anywhere}
body.app-v2 #main-content .release-card{padding:12px}
body.app-v2 #main-content .changelog-list .release-card{padding:0;min-width:0}
body.app-v2 #main-content .changelog-list .release-card>header{padding:8px 12px;gap:8px}
body.app-v2 #main-content .changelog-list .release-card ul{columns:1;margin:0;padding:6px 12px;list-style:none}
body.app-v2 #main-content .changelog-list .release-card footer{margin:0 12px;padding:4px 0 6px;gap:8px}

/* Shared native record picker; original list and customer editor remain in their application shell. */
body.app-v2 dialog.ui-record-picker-dialog{width:min(1280px,calc(100vw - 32px))}.ui-record-picker-frame{display:block;width:100%;height:68vh;border:0;background:var(--ui-surface,#fff)}.ui-record-picker-frame[hidden]{display:none}

body.ui-embedded-page :is(.ui-floating-actions,.feedback-modal-access,.feedback-trigger){display:none!important}

/* Short technical values keep their words intact in shared list cells. */
body.app-v2 #main-content .ui-responsive-list td.ui-technical-value{hyphens:none;overflow-wrap:normal;word-break:normal;min-width:10em}

@media(max-width:767px){body.app-v2 #main-content .ui-responsive-list[data-mobile-row-actions] .ui-mobile-card-cell{display:flex!important;align-items:center;gap:8px}body.app-v2 #main-content .ui-responsive-list[data-mobile-row-actions] .ui-mobile-record{flex:1;min-width:0}body.app-v2 #main-content .ui-responsive-list[data-mobile-row-actions] .ui-mobile-card-cell>.ui-action-menu{flex:0 0 auto;margin:8px}}

/* Native links across plain record cells retain browser modifier and middle-click behavior. */
body.app-v2 #main-content .ui-record-cell-link{display:block;color:inherit;text-decoration:none;margin:calc(-1 * var(--record-cell-y,8px)) calc(-1 * var(--record-cell-x,8px));padding:var(--record-cell-y,8px) var(--record-cell-x,8px)}
body.app-v2 #main-content .ui-record-navigation-row{cursor:pointer}
body.app-v2 #main-content .ui-record-navigation-row:focus-visible{outline:2px solid var(--ui-focus,#2474bf);outline-offset:-2px}

/* Step actions share the workshop alignment, including generic secondary buttons. */
body.app-v2 #main-content dialog.ui-dialog.workshop-step-menu .ui-action-group>button,body.app-v2 #main-content dialog.ui-dialog.workshop-step-menu .ui-action-group>a{justify-content:flex-start;text-align:left}
/* Read-only report cards expose original fields below their existing shared toggle. */
@media(max-width:767px){
 body.app-v2 #main-content .ui-responsive-list[data-mobile-expand-fields] tbody>tr{display:flex!important;flex-direction:column}
 body.app-v2 #main-content .ui-responsive-list[data-mobile-expand-fields] tbody>tr>td{width:100%!important;min-width:0!important;max-width:100%;box-sizing:border-box}
 body.app-v2 #main-content .ui-responsive-list[data-mobile-expand-fields] tbody>tr>.ui-mobile-card-cell{order:-1}
 body.app-v2 #main-content .ui-responsive-list[data-mobile-expand-fields] .ui-mobile-record-title{display:block;-webkit-line-clamp:unset;overflow:visible}
}

/* #576: original document controls in a single active phone card. */
@media(max-width:767px){
 body.app-v2 #main-content [data-mobile-position-cards] .position-table tbody>tr[data-mobile-position-card]{grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:6px!important;padding:8px!important;align-items:start}
 body.app-v2 #main-content [data-mobile-position-card]>td{grid-column:auto!important;padding:0!important;min-width:0}
 body.app-v2 #main-content [data-mobile-position-card]>td:before{display:none!important}
 body.app-v2 #main-content [data-mobile-position-card]:not(.position-mobile-active)>td:not(.position-mobile-summary){display:none!important}
 body.app-v2 #main-content [data-mobile-position-card]>.position-mobile-summary{grid-column:1/-1!important;display:block!important}
 body.app-v2 #main-content .position-mobile-active>.position-mobile-summary{display:none!important}
 body.app-v2 #main-content .position-mobile-open{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;width:100%;min-height:44px;text-align:left;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;color:var(--ui-ink)!important}
 body.app-v2 #main-content .position-mobile-open>strong:first-child{font-size:14px;line-height:20px;overflow-wrap:anywhere}
 body.app-v2 #main-content .position-mobile-open>small{grid-column:1;font-size:11px;line-height:18px;overflow-wrap:anywhere}
 body.app-v2 #main-content .position-mobile-summary-amount{grid-column:2;grid-row:1/3;align-self:center;font-size:13px;white-space:nowrap}
 body.app-v2 #main-content .position-mobile-active>.position-mobile-index{grid-column:1/3!important;align-self:center}
 body.app-v2 #main-content .position-mobile-index .position-drag{display:none!important}
 body.app-v2 #main-content .position-mobile-active>.position-mobile-kind{grid-column:3/9!important}
 body.app-v2 #main-content .position-mobile-kind>.position-kind,.position-mobile-kind>.position-secondary{display:none!important}
 body.app-v2 #main-content .position-mobile-active>.position-mobile-sum{grid-column:9/13!important;grid-row:1;align-self:center;text-align:right;font-size:13px}
 body.app-v2 #main-content .position-mobile-active>.position-mobile-name{grid-column:1/-1!important}
 body.app-v2 #main-content .position-mobile-active>td[data-label="Menge"]{grid-column:1/4!important}
 body.app-v2 #main-content .position-mobile-active>td[data-label="Einheit"]{grid-column:4/9!important}
 body.app-v2 #main-content .position-mobile-active>td[data-label^="Einzelpreis"]{grid-column:9/13!important}
 body.app-v2 #main-content .position-mobile-active>.position-mobile-tax{grid-column:1/5!important}
 body.app-v2 #main-content .position-mobile-active>.position-mobile-actions{grid-column:5/13!important;display:flex!important;gap:8px;align-items:start}
 body.app-v2 #main-content .position-mobile-field{display:block!important;position:relative;min-width:0;margin:0!important;padding:0!important;line-height:0;min-height:0}
 body.app-v2 #main-content .position-mobile-field>span{position:absolute;top:3px;left:10px;z-index:1;font-size:10px;line-height:12px;pointer-events:none;font-weight:600;color:var(--ui-muted)}
 body.app-v2 #main-content .position-mobile-field>:is(input,select,textarea){height:44px!important;min-height:44px!important;padding:17px 9px 3px!important;line-height:22px!important;margin:0!important;font-size:16px!important}
 body.app-v2 #main-content .position-mobile-field>textarea{resize:none}
 body.app-v2 #main-content .position-mobile-kind .position-mobile-field>span{display:none}
 body.app-v2 #main-content .position-mobile-kind .position-mobile-field>select{padding:4px 8px!important}
 body.app-v2 #main-content .position-mobile-extras{min-width:0;flex:1}
 body.app-v2 #main-content .position-mobile-extras>summary{font-size:11px;line-height:18px;min-height:44px;display:flex;align-items:center;cursor:pointer}
 body.app-v2 #main-content .position-mobile-extras[open]{position:relative}
 body.app-v2 #main-content .position-mobile-extras[open]>.position-row-tools{display:flex;flex-direction:column;align-items:stretch;margin-top:8px}
 body.app-v2 #main-content .position-mobile-menu{flex:none}
 body.app-v2 #main-content .position-mobile-menu>summary{min-width:44px;min-height:44px;padding:10px!important}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields>.position-mobile-field{grid-column:span 2}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields>.position-mobile-field:nth-child(n+4){grid-column:span 3}

 body.app-v2 #main-content [data-mobile-position-card] .position-unit-control{display:block!important;min-height:0}
 body.app-v2 #main-content [data-mobile-position-card] .position-unit-control::after{display:none!important}
 body.app-v2 #main-content [data-mobile-position-card] .position-unit-control .position-mobile-field>input{border-radius:var(--ui-field-radius,7px)!important;padding-left:6px!important;padding-right:6px!important}

 body.app-v2 #main-content [data-mobile-position-cards] .position-table tbody>tr[data-mobile-position-card]>td{padding:0!important;align-self:start!important}

 body.app-v2 #main-content [data-mobile-position-cards] .position-table tbody>tr[data-mobile-position-card]>td:empty{display:none!important}

 body.app-v2 #main-content [data-mobile-position-cards] .position-table tbody>tr[data-mobile-position-card]:not(.position-mobile-active){padding:4px 8px!important}

 body.app-v2 #main-content [data-mobile-position-card] .position-mobile-field>textarea{height:auto!important}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields{grid-template-columns:repeat(12,minmax(0,1fr))}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields>.position-mobile-field:first-child{grid-column:span 6}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields>.position-mobile-field:nth-child(2),body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields>.position-mobile-field:nth-child(3){grid-column:span 3}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields>.position-mobile-field:nth-child(4){grid-column:span 4}
 body.app-v2 #main-content .position-mobile-active.position-date .position-heading-fields>.position-mobile-field:nth-child(5){grid-column:span 8}
 body.app-v2 #main-content [data-mobile-position-add]{flex:1 1 100%}
 body.app-v2 #main-content [data-mobile-position-add]{width:100%;box-sizing:border-box}
}
/* Explicit shared single action rows remain horizontal inside native dialogs. */
body.app-v2 #main-content dialog.ui-dialog :is(.form-actions,.ui-action-bar).ui-single-action-row{flex-wrap:nowrap!important;overflow-x:auto!important;justify-content:safe flex-end;max-width:100%;min-width:0}
body.app-v2 #main-content dialog.ui-dialog .ui-single-action-row>:is(button,a,form){flex:0 0 auto;width:auto;min-width:max-content;white-space:nowrap}

/* On-site map content (#743); surrounding fields/actions keep the shared UI system. */
.onsite-map-canvas{height:clamp(280px,48vh,420px);width:100%;min-width:0;position:relative;isolation:isolate;border-radius:var(--ui-radius,8px);font:inherit;margin-top:16px}
.onsite-map-canvas .leaflet-control-attribution{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.onsite-map-canvas .onsite-map-marker{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;display:flex!important;align-items:center;justify-content:center;cursor:pointer;border:2px solid #fff!important;border-radius:50%!important;background:var(--theme-primary,#263f56)!important;color:var(--theme-primary-text,#fff)!important;font-family:inherit;font-weight:700;font-size:15px;line-height:1.1;box-shadow:0 1px 5px #0006;text-align:center}
.onsite-map-canvas button.onsite-map-marker{position:absolute;transform:translate(-50%,-50%)}
.onsite-map-marker small{display:block;font-size:10px;line-height:1.2}
.onsite-map-marker:focus-visible{outline:3px solid var(--focus,#3b82f6);outline-offset:2px}
.onsite-map-choices{display:grid;gap:8px;width:min(260px,calc(100vw - 128px));max-height:min(200px,24vh);overflow-y:auto;overflow-wrap:anywhere}
body.app-v2 #main-content .onsite-map-canvas .onsite-map-choices button.secondary{display:block!important;white-space:normal!important;max-width:100%;height:auto!important;min-height:44px!important;padding:8px 12px!important;line-height:1.4!important}
.onsite-stop[data-map-selected]{outline:2px solid var(--focus,#3b82f6);outline-offset:2px}
.onsite-stop{scroll-margin-block-start:100px}

body.app-v2 .onsite-map-canvas a.leaflet-popup-close-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
body.app-v2 .onsite-map-canvas .leaflet-popup-content{margin:44px 16px 16px}

/* Employee tour columns reuse the original cards and shared panels. */
.onsite-dispatch-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px;align-items:start}
.onsite-dispatch-columns>.panel{min-width:0}

/* Decimal quantities and amounts share the same readable numeric alignment,
   including inputs rendered later in dialogs. Input values remain untouched. */
body.app-v2 input[inputmode="decimal"]{text-align:right}

/* Native filter chips keep their original toolbar position at every breakpoint. */
body.app-v2 #main-content .ui-compact-list-toolbar>[data-list-filter-chips-ssr]{flex:1 1 100%;min-width:0;margin:0}
/* Shared HD list chrome: keep active criteria in the toolbar, with original actions. */
@media(min-width:1280px) and (pointer:fine){
 body.app-v2 #main-content .ui-compact-list-toolbar{flex-wrap:wrap}
 body.app-v2 #main-content .ui-compact-list-toolbar>:is(.ui-list-active-filters-inline,[data-list-filter-chips-ssr]):not([hidden]){display:flex;align-items:center;margin:0;gap:4px;flex:0 1 auto;flex-wrap:wrap;min-width:0}
 body.app-v2 #main-content :is(.ui-list-active-filters-inline,[data-list-filter-chips-ssr])>button{font-size:12px;line-height:16px!important;min-height:36px;padding:0 6px!important;white-space:normal;max-width:10em}
 body.app-v2 #main-content :is(.ui-list-active-filters-inline,[data-list-filter-chips-ssr])>.ui-list-filter-reset{width:36px;min-width:36px;padding:4px}
 body.app-v2 #main-content .ui-compact-list-toolbar .ui-list-filter-access{position:relative;width:36px;min-width:36px;padding:4px}
 body.app-v2 #main-content .ui-list-filter-count{position:absolute;right:0;top:0;min-width:12px;height:12px;font-size:9px;line-height:12px;text-align:center;border-radius:6px;background:var(--ui-ink,#263b4e);color:var(--ui-surface,#fff)}
 body.app-v2 #main-content .ui-compact-list-toolbar label:has(select[name$="size"]){width:80px;min-width:80px}
 body.app-v2 #main-content .ui-compact-list-toolbar select.ui-select[name$="size"]:not([multiple]):not([size]){width:80px;min-width:80px;padding-inline-end:32px}
 body.app-v2 #main-content .ui-responsive-list:has(th[data-list-primary-title]){table-layout:fixed}
 body.app-v2 #main-content .ui-responsive-list th[data-list-primary-title]{width:28%}
 body.app-v2 #main-content .ui-responsive-list :is(.ui-record-cell-link,.ui-compact-name,span.ui-case-status-field){box-sizing:border-box;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
 body.app-v2 #main-content .ui-responsive-list .ui-compact-name>*{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip}
 body.app-v2 #main-content .ui-responsive-list span.ui-case-status-field{padding:4px 8px;line-height:1.2}
}

/* Dialog headers wrap whole actions instead of splitting or clipping button words. */
html:root body:is(.app-v2,.portal-shared) dialog.ui-dialog .panel-head>:is(.form-actions,.ui-action-bar){flex-wrap:wrap!important;overflow-x:visible;align-items:center}
html:root body:is(.app-v2,.portal-shared) dialog.ui-dialog .panel-head>:is(.form-actions,.ui-action-bar)>:is(button,a.button,summary.button){flex:0 0 auto!important;width:auto;min-width:var(--ui-field-height,44px)!important;max-width:100%;overflow-wrap:normal!important;word-break:normal;white-space:normal!important}
/* Nested consecutive field groups need the same legend clearance as direct panel children. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,dialog) :not(.organization-fields,.form-grid,.ui-form-grid,.ui-field-grid,.ui-field-group-grid,.ui-form-columns)>.ui-field-group+.ui-field-group{margin-block-start:16px}

/* The clock action menu shares the existing dialog button dimensions. */
body.app-v2 #main-content [data-pdc-stop-dialog] .pdc-stop-header>.form-actions>.ui-action-menu>summary{width:44px;min-width:44px;height:52px;min-height:52px;margin:0;display:flex;align-items:center;justify-content:center;padding:8px}
/* Shared panel actions keep their natural label width; headings yield before buttons. */
html:root body:is(.app-v2,.portal-shared) :is(#main-content,.portal-content,dialog) .panel-head{flex-wrap:wrap}
html:root body:is(.app-v2,.portal-shared) :is(#main-content,.portal-content,dialog) .panel-head>:is(.form-actions,.ui-action-bar){flex:0 0 auto;max-width:100%;flex-wrap:wrap;min-width:0}
html:root body:is(.app-v2,.portal-shared) :is(#main-content,.portal-content,dialog) .panel-head>:is(.form-actions,.ui-action-bar)>:is(button,a.button,summary.button){flex:0 0 auto!important;width:auto;max-width:100%;overflow-wrap:normal!important;word-break:normal;white-space:normal!important}
/* All explicit unavailable actions share neutral, readable states, including native popovers. */
html:root{--ui-disabled-surface:#edf0f3;--ui-disabled-ink:#5b6571;--ui-disabled-line:#b9c2cc}
html:root[data-color-mode=dark]{--ui-disabled-surface:#303841;--ui-disabled-ink:#c2c9d1;--ui-disabled-line:#66717e}
html:root body:is(.app-v2,.portal-shared) :is(#main-content,main,dialog,header,nav,[popover],.ui-action-items,.ui-action-group) :is(button,a,summary,input[type=button],input[type=submit],input[type=reset],[role=button],[role=menuitem]):is(:disabled,[aria-disabled=true]){background:var(--ui-disabled-surface)!important;color:var(--ui-disabled-ink)!important;border-color:var(--ui-disabled-line)!important;opacity:1!important;cursor:not-allowed!important;box-shadow:none!important;text-decoration:none!important}

/* Shared automatic record columns keep semantic widths and join compact name facts without an extra forced line. */
@media(min-width:1280px) and (pointer:fine){
 body.app-v2 #main-content .ui-responsive-list:has(th[data-list-primary-title]) .ui-compact-name{line-height:1.2}
 body.app-v2 #main-content .ui-responsive-list:has(th[data-list-primary-title]) .ui-compact-name>:is(span,small){display:inline}
 body.app-v2 #main-content .ui-responsive-list:has(th[data-list-primary-title]) .ui-compact-name>small::before{content:" · "}
}

/* Search, optional switches and reset share compact rows without changing touch targets. */
@media(max-width:767px){
 body.app-v2 #main-content form.ui-list-search-form:has(>label.check){flex-wrap:wrap}
 body.app-v2 #main-content form.ui-list-search-form:has(>label.check)>label:has(input[type=search]){flex-basis:100%}
 body.app-v2 #main-content form.ui-list-search-form:has(>label.check)>label.check{flex:1 1 190px;min-width:0;width:auto;margin:0}
 body.app-v2 #main-content form.ui-list-search-form:has(>label.check)>.actions{flex:0 0 auto;width:auto;min-width:0}
}
/* Phone list controls keep Filter and selection actions together above the count. */
@media(min-width:360px) and (max-width:767px){
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified:has(.ui-list-selection-count){display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified>[data-list-filter-chips-ssr]{grid-column:1/-1;grid-row:3;justify-content:flex-start}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified:has(.ui-list-selection-count)>.ui-list-filter-scroll{grid-column:1/-1;grid-row:2;min-height:16px}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified:has(.ui-list-selection-count)>.ui-list-actions{display:contents!important}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified:has(.ui-list-selection-count)>.ui-list-actions>.ui-list-filter-access{grid-column:1;grid-row:1;justify-self:start}
 html:root body.app-v2 #main-content .ui-compact-list-toolbar.ui-list-unified:has(.ui-list-selection-count)>.ui-list-actions>details{grid-column:2;grid-row:1}
}
/* Pending attachment images share the common field and action layout. */
[data-prepared-image]{min-width:0}[data-prepared-image]>img{display:block;max-width:100%;max-height:35dvh;object-fit:contain}[data-prepared-image][hidden]{display:none!important}
