/* r553: Settings › Dropdowns tables */
.ddt-wrap{border:1px solid var(--bd);border-radius:10px;overflow:auto;margin:6px 0 10px}
.ddt{width:100%;border-collapse:collapse;font-size:13px}
.ddt th{background:var(--s2);text-align:left;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--t3);padding:9px 12px;border-bottom:1px solid var(--bd);white-space:nowrap}
.ddt td{padding:8px 12px;border-bottom:1px solid var(--bd);color:var(--t);vertical-align:middle}
.ddt tr:last-child td{border-bottom:0}
.ddt tbody tr:hover{background:color-mix(in srgb,var(--s2) 70%,transparent)}
.ddt tr.dim td{opacity:.55}
.ddt .c{text-align:center}.ddt .r{text-align:right;white-space:nowrap}
.ddt b{font-weight:600}
.ddt-sel{height:32px;font-size:12.5px;width:100%;max-width:150px}
.ddt-st{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:999px}
.ddt-st.on{color:#15803D;background:color-mix(in srgb,#16A34A 12%,var(--s))}
.ddt-st.off{color:var(--t3);background:var(--s2)}
.ddt-mut{color:var(--t3);font-size:12.5px}
.ddt-del{color:var(--r)!important}
.ddt-empty{font-size:12.5px;color:var(--t3);padding:12px;border:1px dashed var(--bd);border-radius:10px;margin:6px 0 10px;text-align:center}
.ddt-sw{position:relative;display:inline-block;width:34px;height:19px;cursor:pointer}
.ddt-sw input{opacity:0;width:0;height:0;position:absolute}
.ddt-sw span{position:absolute;inset:0;border-radius:999px;background:var(--bd2,#cbd5e1);transition:background .15s}
.ddt-sw span:before{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s}
.ddt-sw input:checked+span{background:var(--p)}
.ddt-sw input:checked+span:before{transform:translateX(15px)}
.ddt-sw input:focus-visible+span{outline:2px solid var(--p);outline-offset:2px}
#docf_chips{display:block!important;width:100%}
/* r560: the Action column takes only the width its buttons need (Opportunities was
   stretching it across the empty space); the other columns share the rest */
th.has-colpick{width:1px;white-space:nowrap}
table:has(> thead th.has-colpick) > tbody > tr > td:last-child{width:1px;white-space:nowrap}
/* r562: text in a frozen column is cut with "…" inside its own width, never drawn over the next column */
td[style*="position:sticky;left"]{overflow:hidden;text-overflow:ellipsis}
td[style*="position:sticky;left"] > *{max-width:100%;overflow:hidden;text-overflow:ellipsis}
/* r586: action buttons in any dialog keep an even gap (Cancel · Save as draft · Save & submit…) */
.modal-actions,.factions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
/* r587: New Campaign › channel tiles — light tint with the icon in its colour, like the Leads chips */
.cw-ic{background:color-mix(in srgb,var(--cc,#3E5A8C) 13%,#fff)!important;color:var(--cc,#3E5A8C)!important}
.cw-ic svg{stroke:currentColor}
.cw-mod.on{border-color:color-mix(in srgb,var(--p) 55%,var(--bd))!important;background:color-mix(in srgb,var(--p) 4%,var(--s))!important}

/* r601: fill-mode 'backwards' — once the fade ends nothing lingers, so drawers and pop-ups
   inside a page are no longer trapped under the top bar (the Edit-field drawer lost its
   Cancel / Save header behind it). */
/* r591: smoother switching between pages and tabs. Opacity only (a transform would
   re-anchor fixed bars inside a page): the page fades in a little slower, and its parts
   appear one after another — header, then filters, then the content. */
/* r664: no blink. Pages and their parts used to start fully transparent, so every tab click —
   and every redraw of a page's content (the setup steps, Settings, Users) — flashed white.
   Now only the page as a whole eases in, from almost visible, once per tab change. */
@keyframes selFadeIn{from{opacity:.94}to{opacity:1}}
#app .page.active{animation:selFadeIn .12s ease-out!important}
@media (prefers-reduced-motion:reduce){#app .page.active{animation:none!important}}
/* r594: top of the sidebar — only the business logo. The menu button (☰) is gone; the
   letter tile shows only while a business has not uploaded a logo (Apps › Branding). */
.sbar .sb-collapse{display:none!important}
.sbar .sb-brand{justify-content:center!important}
body.has-org-logo .sbar .sb-brand .bt::before{display:none!important}
body.has-org-logo .sbar .sb-brand .bt img{display:block!important;max-height:44px!important;max-width:100%!important;object-fit:contain;background:#fff!important;padding:4px 6px!important;border-radius:10px!important;box-shadow:0 2px 8px rgba(0,0,0,.25)!important}
/* collapsed rail: the logo shrinks to fit the rail instead of hiding */
body.has-org-logo.sb-hover .sbar:not(:hover):not(:has(:focus-visible)) .sb-brand .bt img,
body.has-org-logo.sb-collapsed .sbar .sb-brand .bt img{display:block!important;max-width:52px!important;max-height:40px!important;padding:3px!important}
body.has-org-logo .sbar .sb-brand .bt{font-size:0!important;overflow:visible!important}
body.has-org-logo .sbar .sb-brand .brand-badge{display:none!important}
body.has-org-logo .sbar .sb-brand{min-height:72px!important;padding:14px 8px!important;display:flex!important;align-items:center}
body.has-org-logo .sbar .sb-brand .bt{display:flex!important;justify-content:center;align-items:center;width:100%}
