/* Shared finishing layer: consistent rhythm, visible actions and quiet surfaces. */
body { font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
button,a,summary { touch-action:manipulation; }
button.text-link { border:0; background:transparent; padding:3px 0; font:inherit; font-size:12px; color:var(--accent-text); text-align:left; }
.app-body .sidebar { padding:18px 12px; gap:12px; scrollbar-gutter:stable; }
.app-body .sidebar .brand { padding-bottom:15px; }
.app-body .nav-caption { padding:14px 10px 5px; font-size:10px; }
.app-body .nav-link { min-height:36px; padding:7px 10px; border-radius:8px; font-size:12px; }
.app-body .nav-link .ui-icon { width:17px; height:17px; flex-basis:17px; }
.app-body .nav-link.active { position:relative; }
.app-body .nav-link.active::before { content:""; position:absolute; left:-6px; top:10px; bottom:10px; width:2px; border-radius:2px; background:var(--accent-text); }
.app-body .topbar { min-height:68px; padding:12px 28px; gap:18px; }
.app-body .topbar-right { gap:12px; }
.app-body .content { padding:26px 28px; }
.app-body .page-heading { gap:16px; margin-bottom:22px; }
.app-body .page-heading h1 { font-size:clamp(24px,2.2vw,29px); line-height:1.25; }
.app-body .page-heading p { margin-top:7px; line-height:1.6; }
.app-body .page-card { border-radius:12px; box-shadow:0 1px 3px color-mix(in srgb,var(--text) 3%,transparent); }
.app-body .metric-card { padding:20px; }
.app-body .metric-value { font-size:28px; line-height:1.3; margin-top:12px; font-variant-numeric:tabular-nums; }
.app-body .metric-help { font-size:11px; line-height:1.5; }
.app-body .metric-top .ui-icon { color:var(--muted); width:17px; height:17px; }
.app-body :is(.btn-primary,.btn-secondary,.btn-danger,.btn-success,.privacy-toggle) { border-radius:8px; padding:9px 14px; min-height:40px; font-size:13px; font-weight:550; transition:background 140ms,border-color 140ms,box-shadow 140ms; }
body .btn-primary:hover:not(:disabled) { background:var(--primary-hover); border-color:var(--primary-hover); }
.app-body .btn-secondary { color:var(--muted-strong); }
.app-body .btn-secondary:hover:not(:disabled) { background:var(--panel-soft); border-color:var(--border-strong); color:var(--text); }
.app-body .icon-button { border-radius:8px; }
.app-body .table-actions { gap:6px; }
.app-body .table-actions :is(.btn-secondary,.btn-primary,.btn-danger,.btn-success) { min-height:34px; font-size:12px; padding:7px 10px; white-space:nowrap; flex-shrink:0; }
.app-body .table-actions .icon-button { width:34px; height:34px; flex-basis:34px; }
.app-body .data-table th { font-weight:600; font-size:11px; padding-block:12px; background:color-mix(in srgb,var(--panel-soft) 65%,var(--panel)); }
.app-body .data-table td { padding-block:11px; font-size:13px; line-height:1.45; }
.app-body .data-table tbody tr:last-child td { border-bottom:0; }
.app-body .data-table .numeric { font-variant-numeric:tabular-nums; }
.app-body .data-table .status-badge { white-space:nowrap; }
@media(min-width:681px) and (max-width:900px) {
    .app-body .responsive-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; padding:18px 20px; }
    .app-body .responsive-table td { display:block; width:auto; min-width:0; padding:0; text-align:left; }
    .app-body .responsive-table td::before { display:block; margin-bottom:5px; }
    .app-body .responsive-table td[data-label='Aktionen'] { grid-column:1/-1; margin-top:0; padding-top:12px; }
    .app-body .responsive-table td[data-label='Aktionen']::before { display:none; }
    .app-body .responsive-table td[colspan] { grid-column:1/-1; }
    .app-body .responsive-table td .customer-cell { justify-content:flex-start; }
    .app-body .responsive-table td .customer-cell>div { text-align:left; }
    .app-body .responsive-table .table-actions { flex-wrap:wrap; }
}
.app-body .data-table small { line-height:1.5; margin-top:4px; }
.app-body .data-table .crm-labels { margin-top:4px; gap:4px; }
.app-body .data-table .crm-label { padding:1px 6px; font-size:10px; }
.document-row-share { display:inline-flex; vertical-align:middle; margin-top:3px; }
.document-row-heading { display:flex; align-items:center; flex-wrap:wrap; gap:3px 10px; }
.document-row-heading .document-row-share { margin:0; }
.app-body .document-row-share .status-badge { background:transparent; border:0; padding:1px 0; min-height:24px; gap:5px; font-size:10px; }
.app-body .document-row-share .status-badge:hover { text-decoration:underline; text-underline-offset:3px; }
.app-body .document-row-share .ui-icon { width:12px; height:12px; }
.app-body :is(.crm-plate,.license-plate) { display:inline-flex; align-items:center; width:max-content; max-width:100%; padding:3px 7px; border:1px solid var(--border); border-radius:5px; background:var(--panel-soft); color:var(--text); font:600 12px/1.4 Inter,system-ui,sans-serif; font-variant-numeric:tabular-nums; letter-spacing:.045em; white-space:nowrap; vertical-align:middle; box-shadow:none; }
.app-body .data-table :is(.crm-plate,.license-plate) { padding:2px 6px; font-size:11px; }
.app-body .list-toolbar { gap:12px 18px; padding:18px 20px; }
.app-body .search-box input { min-height:40px; }
.app-body .search-form .btn-secondary { min-height:40px; }
.app-body :is(input,select,textarea):not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],.numInput,.flatpickr-monthDropdown-months) { transition:border-color 140ms,box-shadow 140ms; }
.app-body :is(input,select,textarea):not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button]):focus-visible { border-color:var(--accent-text); outline:2px solid color-mix(in srgb,var(--accent-text) 18%,transparent); outline-offset:1px; }
.app-body .search-box:focus-within .ui-icon { color:var(--accent-text); }
.app-body .form-actions { gap:10px; }
.app-body :is(.field-help,.cell-subtext) { line-height:1.6; }
.app-body .status-badge { font-variant-numeric:tabular-nums; }
.app-body .empty-state { padding:36px 20px; }
.app-body .app-footer { font-size:11px; padding:20px 28px; }
.workspace-dialog { border-radius:16px; box-shadow:var(--shadow-float); padding:24px; scrollbar-gutter:stable; }
.workspace-dialog::backdrop { background:var(--backdrop); backdrop-filter:blur(3px); }
.workspace-dialog-heading { margin-bottom:20px; }
.quick-form-context { padding:0 0 16px; color:var(--muted-strong); font-size:13px; }
.workspace-dialog-heading h2,.workspace-dialog .create-panel>h2 { font-size:21px; }
.workspace-dialog .create-panel>h2 { margin-bottom:20px; }
body:has(dialog[open]) .scanner-launcher { visibility:hidden; }
/* Compact icon entry point; its accessible name and tooltip explain the action. */
.scanner-launcher { flex-direction:column; justify-content:center; gap:3px; width:54px; padding:7px; border-radius:13px; box-shadow:var(--shadow-float); }
.scanner-launcher:hover { transform:none; box-shadow:var(--shadow-float); }
.scanner-launcher .scanner-launcher-icon { width:32px; height:32px; border-radius:9px; }
.scanner-launcher-beta { font-size:9px; font-weight:550; line-height:1.2; letter-spacing:.025em; color:var(--muted-strong); }
.scanner-launcher .scanner-launcher-dot { display:none; }
.scanner-launcher[data-status="scanning"] .scanner-launcher-dot,.scanner-launcher[data-has-result="true"] .scanner-launcher-dot { display:block; width:8px; height:8px; background:var(--success); }
.workspace-lock-mobile { display:none; }
.workspace-lock-desktop { display:inline-flex; }
/* Keep floating scanning available without covering a form's save action. */
.app-body:has(.settings-save-bar,.document-save-bar) .scanner-launcher { bottom:max(102px,calc(env(safe-area-inset-bottom) + 102px)); }

/* One discreet entry in the header replaces hunting through a long menu. */
.quick-access-trigger { display:inline-flex; align-items:center; gap:9px; min-height:36px; border:1px solid var(--border); border-radius:8px; padding:7px 10px; background:var(--panel); color:var(--muted); font-size:12px; white-space:nowrap; }
.quick-access-trigger:hover { border-color:var(--border-strong); color:var(--text); background:var(--panel-soft); }
.quick-access-trigger .ui-icon { width:16px; height:16px; flex-basis:16px; }
.quick-access-trigger kbd { font:inherit; font-size:10px; padding:1px 4px; background:var(--panel-soft); border:1px solid var(--border); border-radius:4px; margin-left:8px; }
.quick-access-mobile { display:none; }
.workspace-dialog.quick-access { width:min(540px,calc(100vw - 32px)); padding:18px; overflow:hidden; }
.quick-access-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.quick-access-heading h2 { font-size:16px; letter-spacing:-.02em; }
.quick-access-search { position:relative; display:block; }
.quick-access-search>.ui-icon { position:absolute; top:14px; left:12px; width:18px; height:18px; color:var(--muted); }
.quick-access-search input { padding-left:40px!important; font-size:15px!important; }
.quick-access-search + .field-help { margin:8px 0 12px; }
.quick-access-results { display:grid; gap:3px; max-height:min(380px,calc(100dvh - 250px)); overflow:auto; overscroll-behavior:contain; }
.quick-access-result { display:flex; align-items:center; gap:11px; min-height:43px; border-radius:7px; padding:10px 12px; color:var(--text); font-size:13px; }
.quick-access-result:hover,.quick-access-result:focus-visible { background:var(--primary-soft); color:var(--accent-text); outline-offset:-2px; }
.quick-access-result .ui-icon { width:17px; height:17px; flex-basis:17px; color:var(--muted); }
.quick-access-result span { flex:1; min-width:0; }
.quick-access-result small { color:var(--muted); font-size:10px; }
.quick-access-empty { padding:22px 12px; font-size:13px; }
.dashboard-shortcuts { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.dashboard-shortcuts>span { font-size:12px; color:var(--muted); margin-right:4px; }
.dashboard-shortcuts .btn-secondary { background:var(--panel); }
.dashboard-shortcuts .ui-icon { width:16px; height:16px; flex-basis:16px; }
@media(min-width:1101px) { .app-body .topbar-left { display:flex; align-items:center; gap:28px; } }
@media(max-width:1250px) { .quick-access-trigger kbd { display:none; } }
@media(max-width:1100px) {
    .quick-access-desktop { display:none; }
    .quick-access-mobile { display:inline-flex; padding:8px; min-width:36px; justify-content:center; }
    .app-body .topbar { padding:12px 20px; }
    .app-body .topbar { display:block; }
    .app-body .topbar-right,.app-body .topbar-left { display:none; }
    .app-body .mobile-topbar-row { width:100%; gap:8px; }
    .app-body .mobile-brand-title { margin-right:auto; }
    .app-body .mobile-nav { margin-left:0; flex:none; }
    .app-body .theme-toggle--mobile { margin-left:0; }
    .workspace-lock-desktop { display:none; }
    .workspace-lock-mobile { display:inline-flex; flex:none; }
    .app-body .mobile-nav-panel { top:calc(100% - 1px); right:12px; width:min(440px,calc(100% - 24px)); max-height:calc(100dvh - 92px); padding:12px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 6px; border-radius:12px; overscroll-behavior:contain; }
    .app-body .mobile-menu-heading { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:2px 4px 10px; border-bottom:1px solid var(--border); margin-bottom:4px; }
    .mobile-menu-heading strong { display:block; font-size:14px; }
    .mobile-menu-heading small { display:block; color:var(--muted); font-size:11px; max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:2px; }
    .app-body .mobile-nav-panel .nav-caption { grid-column:1/-1; padding:10px 8px 2px; font-size:10px; }
    .app-body .mobile-nav-panel .nav-link { min-height:40px; padding:8px; font-size:12px; gap:7px; line-height:1.4; overflow-wrap:anywhere; }
    .app-body .mobile-nav-panel .nav-link .ui-icon { width:16px; height:16px; flex-basis:16px; }
    .app-body .mobile-nav-panel form { grid-column:1/-1; margin-top:8px; padding-top:8px; }
    .app-body .mobile-nav-panel form button { width:100%; }
    .app-body .nav-link.active::before { display:none; }
}
@media(max-width:600px) {
    .app-body:has(.document-save-bar) .scanner-launcher { bottom:max(150px,calc(env(safe-area-inset-bottom) + 150px)); }
    .quick-access-search input { font-size:16px!important; }
    .app-body .content { padding:20px 16px; }
    .app-body .topbar { padding:10px 16px; }
    .app-body .mobile-brand-title { display:none; }
    .app-body .mobile-topbar-row { gap:6px; }
    .app-body .mobile-topbar-row > .brand-mark { margin-right:auto; }
    .app-body .mobile-topbar-row :is(.icon-button,.quick-access-mobile,.mobile-nav summary) { width:36px; height:36px; min-width:36px; min-height:36px; padding:8px; }
    .app-body .mobile-nav summary span { display:none; }
    .app-body .theme-toggle { height:36px; padding:2px; }
    .app-body .theme-toggle-option { width:26px; height:28px; }
    .app-body .theme-toggle::before { width:26px; height:28px; top:3px; left:2px; }
    .app-body[data-theme="dark"] .theme-toggle::before, [data-theme="dark"] .app-body .theme-toggle::before { transform:translateX(28px); }
    .app-body .scanner-launcher { right:14px; bottom:max(14px,env(safe-area-inset-bottom)); width:50px; padding:6px; gap:3px; border-radius:12px; }
    .app-body .scanner-launcher .scanner-launcher-icon { width:30px; height:30px; border-radius:8px; }
    .app-body .topbar-right { gap:8px; }
    .app-body .metric-card { padding:16px; }
    .app-body .metric-value { font-size:24px; }
    .app-body .list-toolbar { padding:16px; gap:12px; }
    .app-body .list-toolbar .search-form { width:100%; }
    .app-body .data-table td { padding-block:8px; }
    .app-body .table-actions :is(.btn-primary,.btn-secondary,.btn-danger,.btn-success,.icon-button) { min-height:40px; }
    .app-body .table-actions .icon-button { width:40px; flex-basis:40px; }
    .app-body .app-footer { padding:18px 16px; gap:12px; }
    .dashboard-shortcuts { gap:8px; margin-bottom:20px; }
    .dashboard-shortcuts>span { width:100%; }
    .dashboard-shortcuts .btn-secondary { flex:1 1 auto; font-size:12px; }
    .workspace-dialog { padding:20px; border-radius:14px; }
}
@media(max-width:359px) {
    .app-body .mobile-nav-panel { grid-template-columns:1fr; width:calc(100% - 32px); }
    .app-body .topbar { padding-inline:10px; }
}
@media(prefers-reduced-motion:reduce) {
    :is(button,a,input,select,textarea,.theme-toggle::before) { transition:none!important; }
}

/* A single, quiet action language across all record tables. Text remains in
   native tooltips and accessible names; coarse pointers receive larger targets. */
.app-body .icon-button.table-action {
    width:36px;
    height:36px;
    min-height:36px;
    flex:0 0 36px;
    padding:0;
    border:1px solid var(--border);
    border-radius:9px;
    background:transparent;
    color:var(--muted);
    vertical-align:middle;
    cursor:pointer;
}
.app-body .icon-button.table-action .ui-icon { width:17px; height:17px; flex-basis:17px; }
.app-body .icon-button.table-action:hover { background:var(--hover); border-color:var(--border); color:var(--text); }
.app-body .icon-button.table-action:focus-visible { outline:2px solid var(--accent); outline-offset:3px; color:var(--text); }
.app-body .icon-button.table-action.danger:hover { background:var(--danger-bg); color:var(--danger); }
.app-body .data-table td[data-label="Aktionen"] { text-align:right; }
.app-body .data-table td[data-label="Aktionen"] .table-actions { gap:6px; }
@media(max-width:700px),(pointer:coarse) {
    .app-body .icon-button.table-action { width:44px; height:44px; min-height:44px; flex-basis:44px; }
}
