/* Shared CRM tokens. Company appearance overrides only brand/navigation tokens. */
:root {
    color-scheme: light;
    --crm-background:#f4f6f8; --crm-surface:#fff; --crm-surface-secondary:#f8fafb;
    --crm-border:#dce2e8; --crm-text-primary:#182630; --crm-text-secondary:#465766; --crm-muted:#5e6d79;
    --crm-primary:#16655e; --crm-primary-hover:#104c47; --crm-primary-soft:#e9f3f0;
    --crm-primary-text:#16655e; --crm-primary-active-text:#104c47; --crm-primary-foreground:#fff; --crm-primary-hover-foreground:#fff;
    --crm-accent:#16655e; --crm-accent-soft:#e9f3f0; --crm-accent-text:#16655e;
    --crm-sidebar-brand:var(--crm-text-primary); --crm-sidebar-bg:var(--crm-surface); --crm-sidebar-text:var(--crm-text-secondary); --crm-sidebar-muted:var(--crm-muted); --crm-sidebar-hover:var(--crm-surface-secondary); --crm-sidebar-border:var(--crm-border);
    --crm-focus:var(--crm-info); --crm-link:var(--crm-info); --crm-link-hover:#1e40af;
    --crm-success:#17613e; --crm-success-soft:#edf8f1; --crm-warning:#85500c; --crm-warning-soft:#fff6df;
    --crm-danger:#a52b35; --crm-danger-soft:#fff0f1; --crm-info:#225da2; --crm-info-soft:#edf4ff;
    --crm-space-1:4px; --crm-space-2:8px; --crm-space-3:12px; --crm-space-4:16px; --crm-space-5:24px; --crm-space-6:32px; --crm-space-7:48px;
    --crm-radius-sm:5px; --crm-radius:8px; --crm-radius-lg:12px;
    --crm-shadow:0 2px 5px rgb(24 38 48 / 3%); --crm-shadow-raised:0 12px 36px rgb(24 38 48 / 14%);
    --crm-text-xs:12px; --crm-text-sm:13px; --crm-text-base:14px; --crm-text-lg:18px; --crm-text-xl:26px; --crm-text-stat:30px;
    --crm-control:40px; --crm-control-sm:32px; --crm-sidebar:240px; --crm-topbar:68px; --crm-page:1400px; --crm-form:800px;
    /* Compatibility aliases for existing module patterns. */
    --brand:var(--crm-primary); --brand-dark:var(--crm-primary-active-text); --brand-soft:var(--crm-primary-soft);
    --accent:var(--crm-primary); --accent-dark:var(--crm-primary-hover); --bg:var(--crm-background); --surface:var(--crm-surface); --surface-soft:var(--crm-surface-secondary);
    --border:var(--crm-border); --line:var(--crm-border); --text:var(--crm-text-primary); --muted:var(--crm-muted);
    --danger:var(--crm-danger); --success:var(--crm-success); --info:var(--crm-info); --shadow:var(--crm-shadow);
}
html { scroll-padding-top:calc(var(--crm-topbar) + 16px); }
body:has(.crm-sidebar) { display:block; margin:0; padding:var(--crm-topbar) 0 0 var(--crm-sidebar); background:var(--crm-background); color:var(--crm-text-primary); font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.5; }
:where(button,input,select,textarea) { font:inherit; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--crm-focus); outline-offset:3px; }
:where(button,input,select,textarea):disabled { opacity:.55; cursor:not-allowed; }
[hidden] { display:none !important; }
.crm-skip-link { position:fixed; left:var(--crm-space-4); top:-100px; z-index:1200; padding:12px; background:var(--crm-surface); color:var(--crm-primary-text); }
.crm-skip-link:focus { top:var(--crm-space-4); }
body .crm-sidebar { position:fixed; inset:0 auto 0 0; z-index:100; width:var(--crm-sidebar); height:100dvh; overflow-y:auto; padding:var(--crm-space-5) var(--crm-space-3); border-right:1px solid var(--crm-sidebar-border); background:var(--crm-sidebar-bg); color:var(--crm-sidebar-text); }
.crm-brand-row { display:flex; align-items:center; gap:var(--crm-space-2); padding:0 var(--crm-space-2) var(--crm-space-5); }
.crm-brand { color:var(--crm-sidebar-brand); display:flex; gap:var(--crm-space-3); align-items:center; min-width:0; font-size:var(--crm-text-lg); overflow-wrap:anywhere; }
.crm-brand img { max-width:180px; max-height:40px; object-fit:contain; }
.crm-brand-mark { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; border-radius:var(--crm-radius); background:var(--crm-primary); color:var(--crm-primary-foreground); font-weight:700; }
.crm-nav-group { margin-bottom:var(--crm-space-4); }
.crm-nav-group h2 { margin:0 0 var(--crm-space-1); padding:0 var(--crm-space-3); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--crm-sidebar-muted); font-weight:650; }
body .crm-sidebar .crm-nav-link { display:flex; gap:var(--crm-space-3); align-items:center; min-height:36px; padding:7px var(--crm-space-3); margin:2px 0; border:0; border-radius:var(--crm-radius-sm); color:var(--crm-sidebar-text); font-size:var(--crm-text-sm); text-decoration:none; }
body .crm-sidebar .crm-nav-link:hover { background:var(--crm-sidebar-hover); }
body .crm-sidebar .crm-nav-link.active { background:var(--crm-primary-soft); color:var(--crm-primary-active-text); font-weight:650; }
.crm-nav-indicator { width:6px; height:6px; border:1px solid currentColor; border-radius:2px; flex-shrink:0; opacity:.65; }
.active .crm-nav-indicator { background:currentColor; opacity:1; }
.crm-sidebar-footer { border-top:1px solid var(--crm-sidebar-border); padding:var(--crm-space-4) var(--crm-space-3) 0; color:var(--crm-sidebar-muted); font-size:var(--crm-text-xs); }
.crm-topbar { position:fixed; inset:0 0 auto var(--crm-sidebar); height:var(--crm-topbar); z-index:90; display:flex; align-items:center; justify-content:space-between; gap:var(--crm-space-4); padding:0 var(--crm-space-6); border-bottom:1px solid var(--crm-border); background:var(--crm-surface); }
.crm-context { display:flex; gap:var(--crm-space-3); align-items:center; min-width:0; color:var(--crm-muted); font-size:var(--crm-text-sm); }
.crm-context strong { font-weight:500; color:var(--crm-text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.crm-topbar-actions { display:flex; align-items:center; gap:var(--crm-space-4); min-width:0; }
.crm-company { max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--crm-text-xs); color:var(--crm-muted); }
.crm-notifications { position:relative; }
#crm-notification-panel { position:absolute; right:0; top:100%; }
body:has(.crm-sidebar) > .content { padding:var(--crm-space-6); width:100%; min-width:0; max-width:calc(var(--crm-page) + 64px); margin:0 auto; }
body:has(.crm-sidebar) .container { width:100%; max-width:var(--crm-page); }
.crm-icon { width:18px; height:18px; flex-shrink:0; }
.mobile-nav-toggle,.crm-nav-close { display:none !important; }
.ui-page-header { display:flex; justify-content:space-between; align-items:center; gap:var(--crm-space-5); margin:0 0 var(--crm-space-5); flex-wrap:wrap; }
.ui-page-header h1 { margin:0; font-size:var(--crm-text-xl); font-weight:650; letter-spacing:-.035em; line-height:1.25; }
.ui-page-header p { margin:var(--crm-space-2) 0 0; color:var(--crm-muted); font-size:var(--crm-text-sm); }
.ui-page-actions { display:flex; align-items:center; gap:var(--crm-space-2); flex-wrap:wrap; }
.ui-button,body.crm-app .btn,body.crm-app .btn-primary,body.crm-app .btn-secondary,body.crm-app .btn-danger { display:inline-flex; align-items:center; justify-content:center; gap:var(--crm-space-2); min-height:var(--crm-control); padding:8px 14px; border:1px solid var(--crm-border); border-radius:var(--crm-radius-sm); font-size:var(--crm-text-sm); line-height:1.4; font-weight:600; text-decoration:none; cursor:pointer; background:var(--crm-surface); color:var(--crm-text-secondary); }
.ui-button-primary,body.crm-app .btn-primary { color:var(--crm-primary-foreground); background:var(--crm-primary); border-color:var(--crm-primary); }
.ui-button-primary:hover,body.crm-app .btn-primary:hover { background:var(--crm-primary-hover); color:var(--crm-primary-hover-foreground); }
.ui-button-secondary:hover,body.crm-app .btn-secondary:hover { background:var(--crm-surface-secondary); }
.ui-button-danger,body.crm-app .btn-danger { color:var(--crm-danger); background:var(--crm-danger-soft); border-color:var(--crm-danger); }
.ui-button[aria-disabled=true] { pointer-events:none; opacity:.55; }
.ui-icon-button { width:var(--crm-control); padding:0; }
.ui-card,body.crm-app .card,body.crm-app .kpi-card { background:var(--crm-surface); border:1px solid var(--crm-border); border-radius:var(--crm-radius); box-shadow:var(--crm-shadow); padding:var(--crm-space-5); margin-bottom:var(--crm-space-4); }
.ui-card h2 { margin:0 0 var(--crm-space-4); font-size:var(--crm-text-lg); }
.ui-stat-label { color:var(--crm-muted); font-size:var(--crm-text-sm); }
.ui-stat-value { font-size:var(--crm-text-stat); font-weight:650; letter-spacing:-.03em; margin:var(--crm-space-2) 0; }
.ui-tone-neutral { --ui-tone:var(--crm-text-secondary); --ui-tone-soft:var(--crm-surface-secondary); }
.ui-tone-success { --ui-tone:var(--crm-success); --ui-tone-soft:var(--crm-success-soft); }
.ui-tone-warning { --ui-tone:var(--crm-warning); --ui-tone-soft:var(--crm-warning-soft); }
.ui-tone-danger { --ui-tone:var(--crm-danger); --ui-tone-soft:var(--crm-danger-soft); }
.ui-tone-info { --ui-tone:var(--crm-info); --ui-tone-soft:var(--crm-info-soft); }
.ui-badge { display:inline-flex; padding:3px 8px; border-radius:var(--crm-radius-sm); font-size:var(--crm-text-xs); font-weight:600; color:var(--ui-tone); background:var(--ui-tone-soft); white-space:nowrap; }
.ui-alert { padding:var(--crm-space-4); margin-bottom:var(--crm-space-4); border:1px solid var(--ui-tone); border-radius:var(--crm-radius); background:var(--ui-tone-soft); color:var(--ui-tone); }
.ui-empty { text-align:center; padding:var(--crm-space-7) var(--crm-space-5); border:1px dashed var(--crm-border); border-radius:var(--crm-radius); background:var(--crm-surface); }
.ui-empty h2 { margin:0 0 var(--crm-space-2); font-size:var(--crm-text-lg); }
.ui-empty p { margin:0 0 var(--crm-space-4); color:var(--crm-muted); }
.ui-field { min-width:0; margin-bottom:var(--crm-space-4); }
.ui-label { display:block; margin-bottom:var(--crm-space-2); font-size:var(--crm-text-sm); font-weight:600; }
.ui-control,body.crm-app .search-input,body.crm-app .form-control { width:100%; min-width:0; min-height:var(--crm-control); border:1px solid var(--crm-border); border-radius:var(--crm-radius-sm); padding:9px 12px; background:var(--crm-surface); color:var(--crm-text-primary); font-size:var(--crm-text-base); }
body.crm-app .search-input { width:min(420px,100%); }
textarea.ui-control { min-height:112px; resize:vertical; }
.ui-control[aria-invalid=true] { border-color:var(--crm-danger); }
.ui-help,.ui-error { font-size:var(--crm-text-xs); margin:var(--crm-space-1) 0 0; color:var(--crm-muted); }
.ui-error { color:var(--crm-danger); }
.ui-checkbox-label { display:flex; align-items:center; gap:var(--crm-space-2); min-height:var(--crm-control); }
.ui-checkbox { width:18px; height:18px; accent-color:var(--crm-primary-text); }
.ui-form { max-width:var(--crm-form); }
.ui-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--crm-space-5); }
.ui-form-actions { display:flex; gap:var(--crm-space-2); flex-wrap:wrap; border-top:1px solid var(--crm-border); padding-top:var(--crm-space-5); margin-top:var(--crm-space-2); }
.ui-table-wrap { width:100%; max-width:100%; overflow:auto; border:1px solid var(--crm-border); border-radius:var(--crm-radius); background:var(--crm-surface); }
.ui-table-wrap table { width:100%; border-collapse:collapse; min-width:700px; font-size:var(--crm-text-sm); }
.ui-table-wrap th { text-align:left; background:var(--crm-surface-secondary); color:var(--crm-muted); font-weight:600; font-size:var(--crm-text-xs); }
.ui-table-wrap th,.ui-table-wrap td { padding:14px 16px; border-bottom:1px solid var(--crm-border); vertical-align:middle; }
.ui-table-wrap tr:last-child td { border-bottom:0; }
.ui-table-wrap tbody tr:hover td { background:var(--crm-surface-secondary); }
.ui-pagination { display:flex; justify-content:space-between; align-items:center; gap:var(--crm-space-3); flex-wrap:wrap; margin-top:var(--crm-space-5); font-size:var(--crm-text-sm); color:var(--crm-muted); }
.ui-pagination-links { display:flex; flex-wrap:wrap; align-items:center; gap:var(--crm-space-2); }
.ui-pagination [aria-current=page] { background:var(--crm-primary-soft); color:var(--crm-primary-text); }
.ui-dropdown { position:relative; }
.ui-dropdown > summary { list-style:none; max-width:220px; overflow-wrap:anywhere; }
.ui-dropdown > summary::-webkit-details-marker { display:none; }
.ui-dropdown-panel { position:absolute; right:0; top:calc(100% + 8px); z-index:110; width:240px; max-width:calc(100vw - 32px); border:1px solid var(--crm-border); border-radius:var(--crm-radius); background:var(--crm-surface); box-shadow:var(--crm-shadow-raised); padding:var(--crm-space-2); }
.ui-menu-caption { padding:var(--crm-space-2); font-size:var(--crm-text-xs); color:var(--crm-muted); overflow-wrap:anywhere; }
.ui-menu-item { display:block; width:100%; text-align:left; padding:var(--crm-space-3); border:0; border-radius:var(--crm-radius-sm); background:transparent; color:var(--crm-text-primary); cursor:pointer; }
.ui-menu-item:hover { background:var(--crm-surface-secondary); }
.ui-modal { width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 48px); padding:var(--crm-space-5); border:1px solid var(--crm-border); border-radius:var(--crm-radius-lg); color:var(--crm-text-primary); box-shadow:var(--crm-shadow-raised); }
.ui-modal::backdrop { background:rgb(24 38 48 / 45%); }
.ui-modal-header { display:flex; align-items:center; justify-content:space-between; gap:var(--crm-space-4); margin-bottom:var(--crm-space-4); }
.ui-modal-header h2 { margin:0; font-size:var(--crm-text-lg); }
.ui-tabs { display:flex; gap:var(--crm-space-5); overflow:auto; border-bottom:1px solid var(--crm-border); margin-bottom:var(--crm-space-5); }
.ui-tab { display:block; padding:var(--crm-space-3) 0; white-space:nowrap; color:var(--crm-muted); text-decoration:none; border-bottom:2px solid transparent; }
.ui-tab[aria-current=page] { color:var(--crm-primary-text); border-bottom-color:var(--crm-primary); font-weight:600; }
@media (max-width:1024px) {
    body:has(.crm-sidebar) { padding-left:0; }
    body .crm-sidebar { width:min(300px,86vw); transform:translateX(-100%); visibility:hidden; z-index:1003; transition:transform .18s ease; }
    body.crm-nav-open .crm-sidebar { transform:none; visibility:visible; }
    body.crm-nav-open { overflow:hidden; }
    .crm-topbar { left:0; padding-left:72px; padding-right:var(--crm-space-4); }
    .mobile-nav-toggle { display:inline-flex !important; position:fixed; top:14px; left:16px; z-index:100; width:40px; padding:0; }
    .crm-nav-close { display:inline-flex !important; margin-left:auto; padding:8px; }
    .mobile-nav-backdrop:not([hidden]) { display:block; position:fixed; inset:0; background:rgb(24 38 48 / 45%); z-index:1002; }
    .crm-company { display:none; }
    body:has(.crm-sidebar) > .content { padding:var(--crm-space-5); }
}
@media (max-width:760px) {
    .crm-context > span { display:none; }
    .crm-topbar { gap:var(--crm-space-2); }
    .crm-topbar-actions { gap:var(--crm-space-2); }
    .crm-topbar .ui-dropdown > summary { max-width:120px; font-size:var(--crm-text-xs); padding:8px; }
    .crm-context { flex:1; }
    body:has(.crm-sidebar) > .content { padding:var(--crm-space-5) var(--crm-space-4); }
    .ui-page-header { align-items:flex-start; gap:var(--crm-space-4); }
    .ui-page-header h1 { font-size:24px; }
    .ui-page-actions { width:100%; }
    .ui-form-grid { grid-template-columns:1fr; }
    .ui-card,body.crm-app .card { padding:var(--crm-space-4); }
    .ui-control,body.crm-app .search-input { font-size:16px; }
    #crm-notification-panel { position:fixed; top:var(--crm-topbar); right:14px; }
    body.crm-app .page-header,body.crm-app .topbar { margin-top:0; }
    .ui-table-wrap.table-desktop { display:none; }
    .ui-table-wrap:not(.table-desktop) { display:block; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
@media print { .crm-sidebar,.crm-topbar,.mobile-nav-toggle,.crm-skip-link { display:none !important; } body:has(.crm-sidebar) { padding:0; } }

/* Existing notification flow, now hosted in topbar. */
.crm-notification-toggle { position:relative; width:var(--crm-control); height:var(--crm-control); border-radius:var(--crm-radius-sm); border:1px solid var(--crm-border); background:var(--crm-surface); cursor:pointer; box-shadow:var(--crm-shadow); font-size:19px; }
.crm-notification-count { position:absolute; top:-5px; right:-6px; min-width:19px; height:19px; border-radius:999px; background:var(--crm-primary); color:var(--crm-primary-foreground); font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; padding:0 5px; }
.crm-notification-panel { display:none; width:min(380px, calc(100vw - 28px)); max-height:70vh; overflow:auto; margin-top:10px; background:var(--crm-surface); border:1px solid var(--crm-border); border-radius:var(--crm-radius); box-shadow:var(--crm-shadow-raised); }
.crm-notification-header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; border-bottom:1px solid var(--crm-border); }
.crm-notification-heading { font-size:14px; }
.crm-notification-header-actions { display:flex; align-items:center; gap:10px; }
.crm-notification-link { font-size:12px; color:var(--crm-link); text-decoration:none; font-weight:600; }
.crm-notification-action { border:none; background:none; color:var(--crm-link); font-size:12px; font-weight:600; cursor:pointer; }
.crm-notification-body { padding:10px 12px; }
.crm-notification-empty { font-size:13px; color:var(--crm-muted); }
.crm-notification-title { font-size:13px; font-weight:600; color:var(--crm-text-primary); margin-bottom:4px; }
.crm-notification-message { font-size:13px; color:var(--crm-text-secondary); margin-bottom:6px; }
.crm-notification-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.crm-notification-time { font-size:11px; color:var(--crm-muted); }
.crm-notification-item-actions { display:flex; align-items:center; gap:8px; }
.crm-notification-item { padding:10px; border:1px solid var(--crm-border); border-radius:var(--crm-radius); margin-bottom:8px; background:var(--crm-surface); }
.crm-notification-item.is-unread { background:var(--crm-primary-soft); }
/* Legacy field rules must not stretch native checkboxes to text-input dimensions. */
body.crm-app .field input:is([type="checkbox"],[type="radio"]) { width:18px; height:18px; min-height:18px; padding:0; flex-shrink:0; accent-color:var(--crm-primary-text); }

/* M3B record pages extend the M3A tokens and components. */
.ui-detail { overflow-wrap:anywhere; }
.ui-detail > .ui-card { margin-bottom:var(--crm-space-5); }
.ui-detail-columns { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); gap:var(--crm-space-5); align-items:start; }
.ui-stack { display:grid; gap:var(--crm-space-5); min-width:0; }
.ui-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--crm-space-5); margin:0; }
.ui-summary-single { grid-template-columns:1fr; }
.ui-summary-item { min-width:0; }
.ui-summary-item dt { font-size:var(--crm-text-xs); color:var(--crm-muted); margin-bottom:var(--crm-space-1); }
.ui-summary-item dd { margin:0; font-size:var(--crm-text-base); font-weight:500; }
.ui-summary-item a,.ui-relation a { color:var(--crm-primary-text); }
.ui-contact-actions { margin-top:var(--crm-space-5); }
.ui-prose { white-space:pre-wrap; overflow-wrap:anywhere; margin:0 0 var(--crm-space-4); }
.ui-action-stack { display:flex; flex-direction:column; gap:var(--crm-space-3); }
.ui-action-stack form,.ui-action-stack .ui-button { width:100%; }
.ui-action-stack .ui-button { white-space:normal; text-align:center; }
.ui-relation { display:flex; align-items:center; justify-content:space-between; gap:var(--crm-space-4); border-bottom:1px solid var(--crm-border); padding:var(--crm-space-4) 0; }
.ui-relation:last-child { border-bottom:0; padding-bottom:0; }
.ui-relation-title { font-weight:600; text-decoration:none; }
.ui-relation-title:hover { text-decoration:underline; }
.ui-relation p { margin:var(--crm-space-1) 0 0; color:var(--crm-muted); font-size:var(--crm-text-sm); }
.ui-relation-meta { display:flex; flex-direction:column; gap:var(--crm-space-1); align-items:flex-end; font-size:var(--crm-text-xs); color:var(--crm-muted); }
.ui-detail .ui-empty { padding:var(--crm-space-5) var(--crm-space-4); margin:var(--crm-space-4) 0; background:var(--crm-surface-secondary); }
.ui-detail .ui-empty h2 { font-size:var(--crm-text-base); }
.ui-filters { margin-bottom:var(--crm-space-5); }
.ui-filter-form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:var(--crm-space-3); }
.ui-filter-form .ui-field { margin:0; }
.ui-filter-form .ui-field:first-child { flex:1 1 280px; }
.ui-filter-summary { display:flex; align-items:center; gap:var(--crm-space-2); flex-wrap:wrap; margin:var(--crm-space-4) 0 0; color:var(--crm-muted); font-size:var(--crm-text-xs); }
.ui-filter-summary .ui-badge { white-space:normal; overflow-wrap:anywhere; }
.ui-list-surface { background:var(--crm-surface); border:1px solid var(--crm-border); border-radius:var(--crm-radius); }
.ui-record-list .mobile-cards { padding:var(--crm-space-3); }
.ui-record-list .mobile-card { overflow-wrap:anywhere; }
.ui-record-list .table-compact td { overflow-wrap:anywhere; max-width:260px; }
.ui-record-list .assign-form { gap:var(--crm-space-2); }
.ui-record-list .assign-select { max-width:180px; }
.ui-dashboard .kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:var(--crm-space-4); }
.ui-dashboard .ui-stats-value { font-variant-numeric:tabular-nums; }
.ui-dashboard .section { margin-top:var(--crm-space-5); }
.ui-dashboard .welcome { margin-bottom:var(--crm-space-5); }
.ui-dashboard .ui-card h2,.ui-dashboard .section h3 { font-size:var(--crm-text-lg); }
.ui-dashboard .ui-mobile-table td { overflow-wrap:anywhere; }
@media(max-width:900px) {
    .ui-detail-columns { grid-template-columns:1fr; }
}
@media(max-width:760px) {
    .ui-summary-grid { grid-template-columns:1fr; gap:var(--crm-space-4); }
    .ui-relation { align-items:flex-start; flex-direction:column; gap:var(--crm-space-2); }
    .ui-relation-meta { align-items:flex-start; }
    .ui-filter-form { align-items:stretch; }
    .ui-filter-form .ui-field:first-child { flex-basis:100%; }
    .ui-filter-form .ui-checkbox-label { width:100%; }
    .ui-filter-form > .ui-button { flex:1; }
    .ui-dashboard .ui-mobile-table { min-width:0; display:block; }
    .ui-dashboard .ui-mobile-table thead { display:none; }
    .ui-dashboard .ui-mobile-table tbody { display:block; }
    .ui-dashboard .ui-mobile-table tr { display:grid; grid-template-columns:1fr 1fr; padding:var(--crm-space-3); border-bottom:1px solid var(--crm-border); gap:var(--crm-space-2); }
    .ui-dashboard .ui-mobile-table td { display:block; padding:0; border:0; white-space:normal; min-width:0; }
    .ui-dashboard .ui-mobile-table td::before { content:attr(data-label); display:block; color:var(--crm-muted); font-size:var(--crm-text-xs); font-weight:400; }
    .ui-dashboard .ui-mobile-table td:first-child { grid-column:1 / -1; font-weight:600; }
    .ui-dashboard .ui-mobile-table .status-form { flex-wrap:wrap; }
    .ui-dashboard .ui-mobile-table .status-select { min-width:0; max-width:100%; }
}
.ui-field-full { grid-column:1 / -1; }
body:has(.crm-sidebar) .ui-import { max-width:var(--crm-form); }
.ui-import > .card { margin-bottom:var(--crm-space-5); }
.ui-chart-data { margin-top:var(--crm-space-4); }
.ui-chart-data summary { cursor:pointer; color:var(--crm-primary-text); font-size:var(--crm-text-sm); margin-bottom:var(--crm-space-3); }
/* Legacy mobile tables were hidden; the M3B tables carry their own card layout. */
@media(max-width:760px) {
    .ui-dashboard .table-wrap.scrollable:has(.ui-mobile-table) { display:block; overflow:visible; }
}
.ui-record-list .ui-table-wrap table { min-width:1000px; }
.ui-record-list .ui-table-wrap td:nth-child(2) { min-width:170px; }
.ui-record-list .assign-select { width:170px; }
.ui-row-actions { margin-top:var(--crm-space-2); }
.ui-row-actions summary { cursor:pointer; color:var(--crm-muted); font-size:var(--crm-text-xs); }
.ui-row-actions-panel { display:grid; gap:var(--crm-space-2); margin-top:var(--crm-space-3); }
.ui-row-actions-panel form:last-child { border-top:1px solid var(--crm-border); padding-top:var(--crm-space-3); }

.ui-stack > .ui-card { margin-bottom:0; }
.ui-detail .ui-badge { white-space:normal; }
.ui-record-list .table-compact td:last-child { min-width:130px; }
.ui-record-list .table-compact td:last-child .ui-button { white-space:nowrap; }
.ui-record-list .ui-row-actions summary { white-space:nowrap; }
.ui-record-list .ui-badge { white-space:normal; overflow-wrap:normal; }

/* M3C.1 case work list; scoped to keep detail and other modules unchanged. */
.case-status-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:var(--crm-space-4); }
.case-status-filter { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:8px 12px; border:1px solid var(--crm-border); border-radius:var(--crm-radius); background:var(--crm-surface); color:var(--crm-text-secondary); text-decoration:none; overflow-wrap:anywhere; }
.case-status-filter strong { font-variant-numeric:tabular-nums; }
.case-status-filter:hover { border-color:var(--crm-primary); }
.case-status-filter[aria-current] { background:var(--crm-primary-soft); color:var(--crm-primary-active-text); border-color:var(--crm-primary); box-shadow:inset 0 -2px var(--crm-primary); font-weight:650; }
.case-search-row { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; }
.case-search-row .ui-field { flex:1 1 300px; min-width:0; }
.case-filter-form .ui-field { margin:0; }
.case-list-options { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; padding-top:12px; border-top:1px solid var(--crm-border); }
.case-list-options .ui-field { flex:0 1 190px; min-width:0; }
.case-column-picker { padding:12px 16px; border-bottom:1px solid var(--crm-border); }
.case-column-picker summary { cursor:pointer; color:var(--crm-text-secondary); min-height:32px; }
.case-column-picker form { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding-top:8px; }
.case-column-picker label { display:inline-flex; align-items:center; gap:6px; min-height:40px; }
.ui-case-list .case-row { background:var(--crm-surface); }
.ui-case-list .case-row:hover { background:var(--crm-surface-secondary); }
.ui-case-list .case-primary-link { display:block; min-width:110px; padding:0; font-weight:650; }
.ui-case-list .status-form { display:flex; flex-wrap:wrap; gap:6px; }
.ui-case-list .status-select { max-width:190px; min-height:40px; }
.ui-case-list .status-btn { min-height:40px; }
.ui-case-list .badge { white-space:normal; overflow-wrap:anywhere; }
.ui-case-list .mobile-card-title { display:block; margin-bottom:8px; }
.case-card-customer { font-size:var(--crm-text-lg); font-weight:600; margin:10px 0; }
.case-card-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; font-size:var(--crm-text-xs); color:var(--crm-muted); }
.case-card-facts strong { display:block; color:var(--crm-text-primary); font-size:var(--crm-text-sm); }
@media (max-width:760px) {
    .case-status-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .case-status-filter { min-width:0; font-size:var(--crm-text-xs); }
    .case-status-filter:first-child { grid-column:1 / -1; }
    .case-column-picker { display:none; }
    .case-list-options .ui-field { flex:1 1 130px; }
    .ui-case-list .ui-control { width:100%; min-width:0; }
    .ui-case-list .mobile-actions { display:flex; flex-wrap:wrap; gap:8px; }
    .ui-case-list .mobile-actions a { flex:1; min-height:44px; display:flex; align-items:center; justify-content:center; }
}

.ui-case-list .case-money { white-space:nowrap; font-variant-numeric:tabular-nums; }
.ui-case-list .case-primary-link,.ui-case-list .case-customer-link,.ui-case-list .case-measure { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.ui-case-list .status-form { min-width:220px; }
.ui-case-list .status-select { flex:1; min-width:150px; }
@media (max-width:760px) {
    .case-search-row .ui-field { flex:1 1 190px; }
}


.note-list { display:flex; flex-direction:column; gap:12px; margin:12px 0 16px; }
.note-card { background:var(--crm-surface-secondary); border:1px solid var(--crm-border); border-left:3px solid var(--crm-primary); border-radius:var(--crm-radius); padding:12px 14px; }
.note-card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; margin:0 0 8px; color:var(--crm-muted); font-size:var(--crm-text-xs); line-height:1.4; }
.note-card-body { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.note-section { margin-top:16px; }
.note-section h3 { margin:0 0 4px; font-size:var(--crm-text-lg); }
.note-compose { display:grid; gap:12px; max-width:640px; margin-top:4px; }
.note-compose .ui-button { justify-self:start; }

body.crm-app .table-link,body.crm-app .name-link,body.crm-app .kpi-link { color:var(--crm-link); }
body.crm-app .table-link:hover,body.crm-app .name-link:hover { color:var(--crm-link-hover); }

.crm-reminders { position:relative; }
.crm-reminder-menu h3 { margin:8px 0; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--crm-muted); }
.crm-reminder-alert { position:fixed; z-index:120; top:calc(var(--crm-topbar) + 12px); right:16px; width:min(360px, calc(100vw - 24px)); }
.crm-reminder-card { display:grid; gap:8px; padding:16px; border:2px solid var(--crm-primary); border-radius:var(--crm-radius); background:var(--crm-surface); box-shadow:var(--crm-shadow-raised); }
.crm-reminder-kicker { margin:0; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--crm-accent-text, var(--crm-primary)); }
.crm-reminder-card strong { font-size:18px; }
.crm-reminder-more { margin:0; font-weight:700; }
.crm-reminder-snooze, .reminder-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.reminder-card--overdue { border-color:#b42318; background:#fff5f5; }
@media(max-width:700px) {
    .crm-reminder-alert { left:12px; right:12px; width:auto; }
}
