/* Directory surfaces follow BizDev task cards and the lead filter dialog. */
.admin-directory { color:var(--admin-foreground,#101828); font:13px/1.45 var(--admin-ui-font); background:inherit; }
.admin-directory [hidden], .directory-filter-dialog:not([open]) { display:none!important; }
.admin-directory .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.directory-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; margin:0 0 .7rem; background:inherit; }
.directory-summary__card { min-width:0; min-height:5.8rem; padding:.9rem 1.05rem; border:1px solid #c8d5e7; border-radius:11px; background:inherit; box-shadow:0 3px 12px #172c480e; }
.directory-summary__card span { display:flex; align-items:center; gap:.48rem; color:#5d6b82; font-size:.73rem; }
.directory-summary__card span::before { content:''; width:.45rem; height:.45rem; border-radius:50%; background:var(--admin-button-primary); }
.directory-summary__card[data-accent=success] span::before { background:#13704a; }
.directory-summary__card[data-accent=warning] span::before { background:#8a5a00; }
.directory-summary__card[data-accent=danger] span::before { background:#b42318; }
.directory-summary__card strong { display:block; margin-top:.45rem; color:#101828; font-size:1.65rem; font-weight:650; line-height:1.1; font-variant-numeric:tabular-nums; }
.directory-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin-bottom:.65rem; background:inherit; }
.directory-toolbar__grow { flex:1; }
.directory-toolbar__filters { display:flex; align-items:center; gap:.55rem; min-width:0; max-width:100%; }
.admin-directory .admin-button { min-height:2.25rem; padding:.45rem .75rem; font-size:.75rem; border-radius:7px; }
.admin-directory .admin-button:not(.admin-button--primary):not(.admin-button--danger) { background:transparent; }
/* Collapsible lens search (components/directory/search_lens.html): one look on every list page. The doubled
   class and [data-*] hooks give these rules enough weight to win over page-level .admin-button /
   .admin-form-control / .dlx input overrides wherever the lens sits, and borders
   use a fixed colour because route-scoped token sets (utilities) redefine --admin-border-strong. */
.directory-search { display:flex; align-items:center; min-width:0; }
/* Server-rendered lists group the lens with their Filters button, spaced like .directory-toolbar__filters. */
.directory-search-actions { display:flex; align-items:center; gap:.55rem; flex:none; min-width:0; margin-left:auto; }
/* The field slides open from the toggle; 3px padding keeps the focus ring inside the clipped box. */
.directory-search [data-directory-search-field] { display:block; flex:none; width:0; min-width:0; max-width:calc(100vw - 8rem); margin:-3px; padding:3px; overflow:hidden; opacity:0; transition:width 260ms cubic-bezier(.2,.8,.2,1), margin 260ms cubic-bezier(.2,.8,.2,1), opacity 180ms ease; }
.directory-search.is-open [data-directory-search-field] { width:clamp(240px,30vw,400px); margin-right:calc(.5rem - 3px); opacity:1; }
.directory-toolbar__filters > button,.directory-search > button { flex:none; }
.directory-search.directory-search input[type=search][data-directory-search] { box-sizing:border-box; width:100%; height:2.25rem; min-height:2.25rem; margin:0; padding:0 .75rem; border:1px solid #d0d5dd; border-radius:7px; background:var(--admin-card,#fff); color:var(--admin-foreground,#101828); font:400 13px/1.4 var(--admin-ui-font); box-shadow:none; outline:none; transition:border-color 160ms ease, box-shadow 160ms ease; }
.directory-search.directory-search input[type=search][data-directory-search]::placeholder { color:var(--admin-subtle,#98a2b3); }
.directory-search.directory-search input[type=search][data-directory-search]:focus { border-color:#d0d5dd; box-shadow:0 0 0 2px color-mix(in srgb, var(--admin-ring,rgba(32,60,97,.16)) 40%, transparent); outline:none; }
.directory-search.directory-search button[data-directory-search-toggle] { position:relative; display:inline-flex; align-items:center; justify-content:center; width:2.625rem; height:2.25rem; min-height:2.25rem; padding:0; border:1px solid #d0d5dd; border-radius:7px; background:transparent; color:var(--admin-muted-foreground,#5d6b82); box-shadow:none; transition:color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.directory-search.directory-search button[data-directory-search-toggle] svg { width:16px; height:16px; }
.directory-search.directory-search button[data-directory-search-toggle]:is(:hover,[aria-expanded="true"],.is-active) { border-color:var(--admin-primary-line,#c8d5e7); background:var(--admin-primary-light,#f9fafb); color:var(--admin-button-primary,#203c61); }
.directory-search.directory-search button[data-directory-search-toggle] .directory-search-dot { position:absolute; top:5px; right:6px; }
/* The Filters button sits beside the lens on every list page, so it shares the same size, outline and states. */
.directory-filter-button.directory-filter-button { display:inline-flex; align-items:center; justify-content:center; gap:.38rem; height:2.25rem; min-height:2.25rem; padding:0 .75rem; border:1px solid #d0d5dd; border-radius:7px; background:transparent; color:var(--admin-muted-foreground,#5d6b82); font-size:12px; font-weight:550; line-height:1.45; box-shadow:none; transition:color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.directory-filter-button.directory-filter-button svg { flex:none; width:16px; height:16px; }
.directory-filter-button.directory-filter-button:is(:hover,[aria-expanded="true"]) { border-color:var(--admin-primary-line,#c8d5e7); background:var(--admin-primary-light,#f9fafb); color:var(--admin-button-primary,#203c61); }
@media (prefers-reduced-motion:reduce) { .directory-search [data-directory-search-field],.directory-search.directory-search :is(input[data-directory-search],[data-directory-search-toggle]) { transition:none; } }
.directory-search-dot { width:6px; height:6px; border-radius:50%; background:var(--admin-button-primary); }
.directory-pills { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:.5rem; margin-bottom:.65rem; }
.directory-pill { display:inline-flex; align-items:center; gap:.4rem; max-width:100%; border:1px solid #d0d5dd; border-radius:999px; background:inherit; padding:.3rem .6rem; color:#203c61; font:inherit; font-size:.72rem; cursor:pointer; }
.directory-pill small { color:#5d6b82; }
.directory-pills > button[data-directory-clear] { border:0; background:transparent; color:#5d6b82; font:inherit; font-size:.72rem; cursor:pointer; }
.admin-directory :is(.admin-card,.profile-users-table-card,.property-list-card,.dhh-ticket-table-card,.dlx-panel,.utilities-provider-group,.admin-table-wrap,.dlx-table-scroll) { background:inherit; box-shadow:none; }
.admin-directory :is(table,.admin-table,.profile-users-table,.payment-table,.dhh-ticket-table) { width:100%; border-collapse:separate; border-spacing:0; background:inherit; color:var(--admin-table-color); font:13px/1.45 var(--admin-ui-font); }
.admin-directory :is(table,.admin-table,.profile-users-table,.payment-table,.dhh-ticket-table) thead th { background:var(--admin-table-header-background); color:var(--admin-table-header-color); padding:var(--admin-table-cell-padding); border:0; border-bottom:1px solid var(--admin-table-border); font-size:var(--admin-table-header-font-size); font-weight:650; text-align:left; text-transform:none; letter-spacing:normal; white-space:nowrap; }
.admin-directory thead th button { color:inherit; font:inherit; background:transparent; border:0; }
.admin-directory :is(table,.admin-table,.profile-users-table,.payment-table,.dhh-ticket-table) tbody :is(td,th) { background:inherit; padding:var(--admin-table-cell-padding); border-bottom:1px solid var(--admin-table-line); text-align:left; vertical-align:middle; font-size:var(--admin-table-font-size); }
.admin-directory :is(table,.admin-table,.profile-users-table,.payment-table,.dhh-ticket-table) tbody tr:last-child > :is(td,th) { border-bottom:0; }
.admin-directory tbody tr:hover { background:var(--admin-table-hover-background); }
.admin-directory table caption { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.admin-directory :is(.status-pill,.payment-status,.payment-type,.dhh-ticket-badge) { display:inline-flex; border-radius:999px; padding:.2rem .5rem; font-size:.68rem; font-weight:600; line-height:1.3; }
.admin-directory :is(.admin-table-wrap,.profile-users-table-wrap,.dhh-ticket-table-scroll,.dlx-table-scroll) { overflow-x:auto; border:1px solid var(--admin-table-line); border-radius:var(--admin-table-radius); }
.directory-pagination { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.6rem; margin:.75rem 0; color:#5d6b82; font-size:.73rem; }
.directory-pagination > div { display:flex; flex-wrap:wrap; gap:.3rem; }
.directory-pagination :is(a,[aria-current]) { display:inline-flex; align-items:center; justify-content:center; min-width:2rem; height:2rem; padding:0 .55rem; border:1px solid #d0d5dd; border-radius:6px; color:#203c61; background:inherit; text-decoration:none; }
.directory-pagination [aria-current] { background:var(--admin-button-primary); color:#fff; }
.directory-menu-toggle { display:inline-grid; place-items:center; width:2rem; height:2rem; border:1px solid #d0d5dd; border-radius:6px; background:inherit; color:#203c61; cursor:pointer; }
.directory-menu-toggle svg { width:16px; height:16px; }
.directory-menu { position:fixed; z-index:10000; min-width:170px; max-width:calc(100vw - 16px); max-height:70vh; overflow:auto; border:1px solid #d0d5dd; border-radius:8px; background:var(--admin-background,#f6f7f9); box-shadow:0 8px 24px #10182826; padding:.3rem; }
.directory-menu[hidden] { display:none; }
.directory-menu :is(a,button) { display:flex; align-items:center; gap:.5rem; width:100%; border:0; border-radius:5px; background:inherit; color:#203c61; text-align:left; padding:.55rem .65rem; text-decoration:none; font:13px/1.4 var(--admin-ui-font); cursor:pointer; }
.directory-menu :is(a,button):hover,.directory-menu :is(a,button):focus-visible { background:var(--admin-primary-light); }
.directory-menu :is(a,button) svg { flex:none; width:16px; height:16px; }
.directory-menu label { display:block; padding:.5rem; font-size:.73rem; }
.directory-menu .directory-menu-item--danger { color:var(--admin-danger,#b42318); }
.directory-menu .directory-menu-item--danger:is(:hover,:focus-visible) { background:var(--admin-danger-soft,#fef3f2); }
.directory-state { color:#5d6b82; font-size:.75rem; }
.admin-directory :focus-visible { outline:2px solid #203c61; outline-offset:2px; }
@media(max-width:800px) { .directory-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .directory-toolbar__grow { display:none; } .directory-toolbar { justify-content:flex-end; } .directory-search.is-open [data-directory-search-field] { width:min(220px, calc(100vw - 9rem)); } .directory-search-actions .directory-search.is-open [data-directory-search-field] { width:min(220px, calc(100vw - 12.5rem)); } .directory-summary__card { padding:.7rem; } }
.directory-create { max-width:900px; margin:auto; }
.directory-create h1 { font-size:1.2rem; margin:1rem 0; }
.directory-sync { display:flex; justify-content:flex-end; margin:0 0 .6rem; }
.approval-directory-bridge .stage { display:none; }
.approval-directory-bridge .dhh-inbox-prototype { min-height:0; height:auto; }
.approval-directory-body .admin-shell-main { overflow:visible; }
/* Select2 filter menus remain in the native dialog's top layer. Keep the
   Approval Requests dialog unclipped and scroll its form on short screens. */
.approval-directory-body .directory-filter-dialog { overflow:visible; }
.approval-directory-body .directory-filter-dialog > form { max-height:inherit; overflow-y:auto; overscroll-behavior:contain; border-radius:inherit; }
/* Contacts and Referrals share this stylesheet. Keep their native filter
   dialogs unclipped while retaining form scrolling on short screens. */
:is(.contacts-directory,.referrals-directory) .directory-filter-dialog { overflow:visible; }
:is(.contacts-directory,.referrals-directory) .directory-filter-dialog > form { max-height:inherit; overflow-y:auto; overscroll-behavior:contain; border-radius:inherit; }
/* Inline assignee: the name is the button; the pencil appears on hover or keyboard focus and stays visible on touch screens. */
.assignee-edit { display:inline-flex; align-items:center; gap:.35rem; max-width:100%; padding:.2rem .35rem; margin:-.2rem -.35rem; border:0; border-radius:6px; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.assignee-edit > span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.assignee-edit--empty { color:var(--admin-muted-foreground,#5d6b82); }
.assignee-edit svg { flex:none; opacity:0; color:var(--admin-muted-foreground,#5d6b82); transition:opacity .12s; }
.assignee-edit:is(:hover,:focus-visible) { background:var(--admin-muted-strong,#f2f4f7); }
.assignee-edit:is(:hover,:focus-visible) svg { opacity:1; }
.assignee-edit:focus-visible { outline:2px solid var(--admin-primary-line,#c8d5e7); outline-offset:1px; }
@media (hover:none) { .assignee-edit svg { opacity:1; } }
/* Directory dialogs follow the Design Template dialog: title-only header, one muted record line, footer actions. */
.directory-dialog { --dhh-select2-control-height:2.5rem; --dhh-select2-control-border:var(--admin-border-strong,#d0d5dd); --dhh-select2-control-bg:var(--admin-card,#fff); --dhh-select2-control-radius:var(--admin-radius-control,7px); --dhh-select2-control-color:var(--admin-foreground,#101828); --dhh-select2-control-muted:var(--admin-muted-foreground,#5d6b82); --dhh-select2-control-focus:var(--admin-button-primary,#203c61); --dhh-select2-control-ring:var(--admin-ring,rgba(32,60,97,.16)); --dhh-select2-font-size:.85rem;
  width:min(480px, calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:0; overflow:visible; border:1px solid var(--admin-border,#e4e7ec); border-radius:var(--admin-radius-card,10px); background:var(--admin-card,#fff); color:var(--admin-foreground,#101828); box-shadow:var(--shadow-panel,0 24px 56px rgba(16,24,40,.16)); font:13px/1.45 var(--admin-ui-font); }
.directory-dialog::backdrop { background:rgba(15,23,42,.45); }
.directory-dialog > form { margin:0; }
.directory-dialog header { padding:16px 18px; border-bottom:1px solid var(--admin-border,#e4e7ec); }
.directory-dialog h2 { margin:0; color:var(--admin-foreground,#101828); font-size:16px; font-weight:650; line-height:1.35; }
.directory-dialog__body { display:grid; gap:14px; padding:18px; }
.directory-dialog__meta { margin:0; color:var(--admin-muted-foreground,#5d6b82); font-size:12px; }
.directory-dialog__meta:empty { display:none; }
.directory-dialog__field { display:grid; gap:6px; color:var(--admin-text,#344054); font-size:12px; font-weight:500; }
.directory-dialog__body :is(select, textarea), .directory-dialog__body .select2-container { width:100% !important; }
.directory-dialog__body textarea { min-height:auto; resize:vertical; }
.directory-dialog__error { margin:0; padding:8px 10px; border:1px solid var(--admin-danger-line,#f6cbc6); border-radius:var(--admin-radius-control,7px); background:var(--admin-danger-soft,#fef3f2); color:var(--admin-danger,#b42318); font-size:12px; }
.directory-dialog__error[hidden] { display:none; }
.directory-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding:12px 18px; border-top:1px solid var(--admin-border,#e4e7ec); border-radius:0 0 var(--admin-radius-card,10px) var(--admin-radius-card,10px); background:var(--admin-muted,#f9fafb); }
@media (max-height:420px) { .directory-dialog { overflow-y:auto; } }

.admin-directory-body .admin-shell-main { min-width:0; max-width:100%; }
.admin-directory,.admin-directory [data-directory-results],.admin-directory .admin-card { min-width:0; max-width:100%; }
.admin-directory .admin-table-container { overflow-x:auto; max-width:100%; }
.directory-tabs { display:flex; flex-wrap:wrap; gap:.3rem; }
.directory-tabs a { padding:.45rem .65rem; border-radius:7px; color:#5d6b82; font-size:.75rem; text-decoration:none; border:1px solid transparent; background:inherit; }
.directory-tabs a[aria-current] { color:#203c61; border-color:#d0d5dd; font-weight:600; }
.admin-directory .admin-button svg,.directory-create .admin-button svg { flex:none; width:16px; height:16px; }
.admin-directory :is(.admin-table-wrap,.profile-users-table-wrap,.dhh-ticket-table-scroll,.dlx-table-scroll) { position:relative; }

.approval-directory-bridge .field-error:empty { display:none; }

.admin-directory :is(.status-pill,.payment-status,.payment-type,.dhh-ticket-badge) { background:inherit; }
.approval-directory-bridge .modal input[type=search] { margin-bottom:.5rem; }

.admin-directory .utility-card-header { background:inherit; }

.directory-menu .admin-table-actions { display:flex; flex-direction:column; align-items:stretch; gap:0; }
.directory-menu .utility-icon-action { height:auto; justify-content:flex-start; }

.profile-users-modal__panel { background:var(--admin-background,#f6f7f9); font:13px/1.45 var(--admin-ui-font); }
.profile-users-modal__head { background:var(--admin-button-primary); color:#fff; }
.profile-users-modal__head :is(h2,button) { color:inherit; }
.profile-users-modal :is(.profile-users-modal-form,.profile-users-modal__body,.profile-users-modal__target,.profile-users-modal__actions,input,select,textarea) { background:inherit; }

.dlx .payment-popup { background:var(--admin-background,#f6f7f9); font:13px/1.45 var(--admin-ui-font); }
.dlx .payment-popup > header { background:var(--admin-button-primary); color:white; }
.dlx .payment-popup > header :is(h2,a) { color:inherit; }
.dlx .payment-popup :is(.payment-popup-content,input:not([type=file]),select,.select2-selection) { background:inherit; }
.profile-users-modal__head .profile-users-modal__close { background:transparent; border-color:#ffffff55; }
.profile-users-modal__close svg { width:16px; height:16px; }

.directory-create :is(input,select,textarea,.select2-selection) { background:inherit!important; }

/* Opt-in directory controls row: applied filters left, search/filters/create right. */
.directory-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; column-gap:.6rem; }
.directory-controls > * { grid-column:1 / -1; }
.directory-controls > .directory-pills { grid-row:1; grid-column:1; }
.directory-controls > .directory-toolbar { grid-row:1; grid-column:2; }
@media (max-width:720px) { .directory-controls > .directory-toolbar { grid-column:1 / -1; } .directory-controls > .directory-pills { grid-row:2; } }

/* Short filter modals let select2 dropdowns extend past them; very short screens keep scrolling. */
.directory-controls .directory-filter-dialog { overflow:visible; }
@media (max-height:560px) { .directory-controls .directory-filter-dialog { overflow-y:auto; } }

/* Opt-in grouped pills ([data-directory-grouped-pills]) follow the BizDev tasks applied filters. */
[data-directory-grouped-pills] .directory-pills { gap:.5rem; }
.directory-pill-group { display:inline-flex; flex-wrap:wrap; align-items:center; gap:.2rem; max-width:100%; min-height:2.15rem; padding:.2rem .25rem .2rem .65rem; border:1px solid var(--admin-border-strong,#d0d5dd); border-radius:999px; background:var(--admin-primary-light,#f9fafb); box-shadow:0 1px 3px rgba(23,44,72,.05); }
.directory-pill-group__label { margin-right:.2rem; color:#5d6b82; font-size:.7rem; font-weight:600; line-height:1.2; white-space:nowrap; }
.directory-pill-group .directory-pill { gap:.35rem; min-width:0; min-height:1.65rem; padding:.18rem .37rem .18rem .55rem; border-color:var(--admin-primary-line,#c8d5e7); background:#f6f7f9; color:#101828; font-size:.7rem; line-height:1.2; white-space:nowrap; transition:background 140ms ease,border-color 140ms ease; }
.directory-pill-group .directory-pill > small { display:none; }
.directory-pill-group .directory-pill > span:last-child { display:inline-grid; place-items:center; width:1rem; height:1rem; border-radius:50%; color:#5d6b82; font-size:.95rem; line-height:1; }
.directory-pill-group .directory-pill:is(:hover,:focus-visible) { border-color:#8a94a6; background:var(--admin-primary-light,#f9fafb); color:var(--admin-button-primary); }
.directory-pill-group .directory-pill:is(:hover,:focus-visible) > span:last-child { background:#eef0f3; color:var(--admin-button-primary); }
[data-directory-grouped-pills] .directory-pills > [data-directory-clear] { padding:.25rem; color:#5d6b82; font-size:.7rem; font-weight:600; line-height:1.2; white-space:nowrap; }
[data-directory-grouped-pills] .directory-pills > [data-directory-clear]:is(:hover,:focus-visible) { color:var(--admin-button-primary); text-decoration:underline; }
@media (max-width:720px) { .directory-pill-group { border-radius:1.1rem; } }
