:root {
    --tt-accent: #4f46e5;
    --tt-accent-2: #7c3aed;
    --tt-accent-soft: rgba(79, 70, 229, 0.12);
    --tt-accent-grad: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);

    --tt-bg: #f4f5fb;
    --tt-bg-2: #eef0f8;
    --tt-card: #ffffff;
    --tt-card-2: #fbfbfe;
    --tt-surface: #ffffff;
    --tt-text: #1a1c2b;
    --tt-text-dim: #6b7088;
    --tt-text-faint: #9aa0b5;
    --tt-border: #e6e8f2;
    --tt-border-strong: #d4d7e6;
    --tt-input-bg: #ffffff;
    --tt-shadow: 0 1px 2px rgba(16, 18, 40, 0.04), 0 8px 24px rgba(16, 18, 40, 0.06);
    --tt-shadow-lg: 0 20px 60px rgba(16, 18, 40, 0.18);
    /* Shared by .tt-card and left side panels (.tt-detail-nav .tt-tabs-bar); themes override both. */
    --tt-card-border: 1px solid var(--tt-border);
    --tt-card-shadow: var(--tt-shadow);

    --tt-success: #16a34a;
    --tt-danger: #dc2626;
    --tt-warning: #ea580c;

    --tt-radius: 16px;
    --tt-radius-sm: 10px;
    --tt-radius-xs: 8px;
    --tt-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --tt-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --tt-font-size: 15px;
    --tt-font-size-sm: 13px;
    --tt-font-size-title: 15px;
    --tt-font-weight: 400;
    --tt-font-weight-semibold: 600;
    --tt-font-weight-bold: 700;
    --tt-link-decoration: none;
}

/* Title-case all placeholder hints (ucwords-style) */
input::placeholder,
textarea::placeholder,
select::placeholder {
    text-transform: capitalize;
}
input[type="email"]::placeholder,
input[type="url"]::placeholder,
input[type="number"]::placeholder,
input[inputmode="decimal"]::placeholder,
input[inputmode="numeric"]::placeholder,
input[data-tt-money-format]::placeholder {
    text-transform: none;
}


html { color-scheme: light; }
html[data-theme="dark"] { color-scheme: dark; }

[data-theme="dark"] {
    --tt-bg: #0d0f1a;
    --tt-bg-2: #11131f;
    --tt-card: #181b2a;
    --tt-card-2: #1d2132;
    --tt-surface: #181b2a;
    --tt-text: #eef0fa;
    --tt-text-dim: #a3a8c0;
    --tt-text-faint: #6f748f;
    --tt-border: #262a3d;
    --tt-border-strong: #333851;
    --tt-input-bg: #12141f;
    --tt-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 12px 32px rgba(0, 0, 0, 0.35);
    --tt-shadow-lg: 0 24px 70px rgba(0, 0, 0, 0.55);
    --tt-accent-soft: rgba(124, 92, 246, 0.2);
}

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; overflow-x: clip; }

.tt-body {
    font-family: var(--tt-font);
    background:
        radial-gradient(1200px 600px at 100% -10%, var(--tt-accent-soft), transparent 60%),
        var(--tt-bg);
    color: var(--tt-text);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
    font-size: var(--tt-font-size);
    font-weight: var(--tt-font-weight);
    line-height: 1.5;
    display: flex;
    flex-direction: column;
}

a { color: var(--tt-accent); text-decoration: var(--tt-link-decoration); }
a:hover { text-decoration: underline; }
a:hover { text-decoration: underline; }

/* ── Header ─────────────────────────────────────────────── */
.tt-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    width: 100%;
    min-width: 0;
    padding: 8px 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0) 42%),
        linear-gradient(180deg, #1e3a5f 0%, #0f172a 100%);
    border-bottom: 1px solid rgba(148, 163, 184, 0.28);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.28);
}
html[data-app-theme] .tt-header {
    background-color: var(--tt-card) !important;
    backdrop-filter: none !important;
}
.tt-header .tt-brand-text strong,
.tt-header .tt-brand-tagline {
    color: #f8fafc;
}
.tt-header .tt-brand-tagline {
    opacity: 0.78;
}
.tt-header .tt-nav-toggle-bar {
    background: #e2e8f0;
}
.tt-header .tt-user-chip,
.tt-header .tt-user-chip-name,
.tt-header .tt-btn-logout {
    color: #e2e8f0;
}
.tt-header .tt-notif-btn,
.tt-header .tt-compose-header-btn,
.tt-header .tt-theme-toggle {
    color: #e2e8f0;
    border-color: rgba(148, 163, 184, 0.35);
    background: rgba(15, 23, 42, 0.25);
}
.tt-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    margin-left: auto;
    position: relative;
}
.tt-header-actions-panel {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.tt-header-actions-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: 11px;
    background: var(--tt-card-2);
    color: var(--tt-text);
    cursor: pointer;
    flex-shrink: 0;
}
.tt-header-actions-toggle[hidden] {
    display: none !important;
}
.tt-header--actions-compact .tt-header-actions-toggle {
    display: flex;
}
.tt-header--actions-compact .tt-header-actions-panel {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 240px;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 12px;
    background: var(--tt-card);
    border: 1px solid var(--tt-border-strong);
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-shadow-lg);
    z-index: 80;
}
.tt-header--actions-compact.tt-header--actions-open .tt-header-actions-panel {
    display: flex;
}
.tt-header--actions-compact .tt-header-actions-panel .tt-header-utilities,
.tt-header--actions-compact .tt-header-actions-panel .tt-header-trailing-icons,
.tt-header--actions-compact .tt-header-actions-panel .tt-user-chip {
    width: 100%;
    justify-content: flex-start;
}
.tt-header--actions-compact .tt-header-actions-panel .tt-user-chip {
    justify-content: space-between;
    padding-top: 8px;
    border-top: 1px solid var(--tt-border);
}
.tt-header--actions-compact .tt-header-actions-panel .tt-theme-toggle {
    width: 100%;
    height: 40px;
    justify-content: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0 12px;
}
.tt-header--actions-compact .tt-header-actions-toggle .tt-nav-toggle-bar:nth-child(1),
.tt-header--actions-compact.tt-header--actions-open .tt-header-actions-toggle .tt-nav-toggle-bar:nth-child(1) {
    transform: none;
}
.tt-header--actions-compact.tt-header--actions-open .tt-header-actions-toggle .tt-nav-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.tt-header--actions-compact.tt-header--actions-open .tt-header-actions-toggle .tt-nav-toggle-bar:nth-child(2) {
    opacity: 0;
}
.tt-header--actions-compact.tt-header--actions-open .tt-header-actions-toggle .tt-nav-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}
.tt-header--actions-compact .tt-nav {
    flex: 1 1 auto;
    overflow: visible;
}

.tt-brand { display: flex; align-items: center; gap: 12px; color: var(--tt-text); min-width: 0; flex-shrink: 1; }
.tt-brand:hover { text-decoration: none; }
.tt-brand-mark {
    display: grid;
    place-items: center;
    width: 38px; height: 38px;
    border-radius: 11px;
    background: var(--tt-accent-grad);
    color: #fff;
    font-weight: 800;
    font-size: 11px;
    letter-spacing: -0.02em;
    box-shadow: 0 6px 18px rgba(79, 70, 229, 0.4);
}
.tt-brand-mark--lg { width: 56px; height: 56px; font-size: 17px; border-radius: 16px; margin: 0 auto 8px; }
.tt-brand-text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.tt-brand-text strong { font-size: 16px; font-weight: 700; }
.tt-brand-text small { font-size: 12px; color: var(--tt-text-dim); }
.tt-brand-tagline { color: inherit; }

.tt-nav-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: 11px;
    background: var(--tt-card-2);
    color: var(--tt-text);
    cursor: pointer;
    flex-shrink: 0;
}
.tt-nav-toggle-bar {
    display: block;
    width: 18px;
    height: 2px;
    margin: 0 auto;
    border-radius: 999px;
    background: currentColor;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.tt-header--nav-open .tt-nav-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.tt-header--nav-open .tt-nav-toggle-bar:nth-child(2) {
    opacity: 0;
}
.tt-header--nav-open .tt-nav-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.tt-nav { display: flex; align-items: center; gap: 4px; min-width: 0; flex: 1; }
.tt-nav-link {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 68px;
    min-height: 56px;
    padding: 7px 8px 6px;
    border-radius: 10px;
    color: rgba(248, 250, 252, 0.88);
    font-family: var(--tt-font);
    font-weight: 650;
    font-size: 11px;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    overflow: hidden;
    box-sizing: border-box;
}
.tt-nav-link i,
.tt-nav-link svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    stroke-width: 2;
}
.tt-nav-link-label {
    display: block;
    max-width: 7.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: inherit;
}
.tt-nav-link:hover {
    color: #fff;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.1);
}
.tt-nav-link.active,
.tt-nav-group.is-active > .tt-nav-group-toggle {
    color: #fff;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.38) 0%, rgba(255, 255, 255, 0.05) 38%, transparent 70%),
        linear-gradient(180deg, #3b82f6 0%, #1d4ed8 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 0 0 1px rgba(96, 165, 250, 0.45),
        0 6px 16px rgba(37, 99, 235, 0.35);
}
.tt-nav-link.active::before,
.tt-nav-group.is-active > .tt-nav-group-toggle::before {
    content: '';
    position: absolute;
    left: 8%;
    right: 8%;
    top: 0;
    height: 45%;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 100%);
}

.tt-header-search {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 0 1 220px;
    max-width: 260px;
    min-width: 140px;
    margin: 0 8px 0 4px;
    position: relative;
    z-index: 40;
}
.tt-header-search-wrap {
    position: relative;
    flex: 1;
    background: #fff;
    border-radius: 999px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        0 4px 12px rgba(15, 23, 42, 0.18);
}
.tt-header-search-wrap .tt-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    color: #94a3b8;
    pointer-events: none;
    z-index: 1;
}
.tt-header-search input {
    width: 100%;
    padding: 7px 12px 7px 32px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #0f172a;
    font-size: 13px;
}
.tt-header-search input::placeholder {
    color: #94a3b8;
}
.tt-header-search input:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.35);
}

.tt-nav-group { position: relative; }
.tt-nav-group-toggle {
    border: 0;
    background: transparent;
    /* Do not use `font: inherit` — it overrides .tt-nav-link’s font-family and makes
       Closed Sales / Communications look like a different (often monospace) face. */
    font-family: var(--tt-font);
    font-weight: 650;
    font-size: 11px;
    line-height: 1.15;
    cursor: pointer;
}
.tt-nav-group.is-active > .tt-nav-group-toggle {
    color: #fff;
}
.tt-nav-submenu-panel {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    padding-top: 10px;
    z-index: 30;
}
.tt-nav-group.is-open .tt-nav-submenu-panel {
    display: block;
}
.tt-nav-submenu {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px;
    border-radius: var(--tt-radius);
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
}
.tt-nav-sublink {
    display: block;
    padding: 8px 12px;
    border-radius: var(--tt-radius-sm);
    color: var(--tt-text-dim);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
}
.tt-nav-sublink:hover,
.tt-nav-sublink.active {
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
    text-decoration: none;
}

.tt-list-section { margin-bottom: 36px; }
.tt-list-section:last-child { margin-bottom: 0; }
.tt-section-title {
    margin: 0 0 14px;
    font-size: 18px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-section-count {
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-empty--compact {
    padding: 28px 20px;
    margin-top: 0;
}
.tt-empty--compact p { margin: 0; }

.tt-theme-toggle {
    width: 38px; height: 38px;
    border-radius: 11px;
    border: 1px solid var(--tt-border);
    background: var(--tt-card-2);
    color: var(--tt-text);
    cursor: pointer;
    font-size: 17px;
    display: grid; place-items: center;
    transition: 0.18s;
}
.tt-theme-toggle:hover { border-color: var(--tt-accent); color: var(--tt-accent); }

.tt-user-chip { display: flex; align-items: center; gap: 10px; }
.tt-avatar {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--tt-accent-soft);
    color: var(--tt-accent);
    font-weight: 700; font-size: 13px;
    display: grid; place-items: center;
}

/* ── Buttons ────────────────────────────────────────────── */
.tt-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid transparent;
    border-radius: var(--tt-radius-sm);
    padding: 10px 18px;
    font-family: var(--tt-font);
    font-size: var(--tt-font-size-sm);
    font-weight: var(--tt-font-weight-semibold);
    cursor: pointer;
    transition: 0.16s ease;
    white-space: nowrap;
}
.tt-btn:hover { text-decoration: none; transform: translateY(-1px); }
.tt-btn:active { transform: translateY(0); }
.tt-btn-sm { padding: 7px 12px; font-size: 13px; }
.tt-btn-block { width: 100%; justify-content: center; }
.tt-btn-icon { font-size: 17px; line-height: 1; }

.tt-btn-primary { background: var(--tt-accent-grad); color: #fff; box-shadow: 0 8px 22px rgba(79, 70, 229, 0.32); }
.tt-btn-primary:hover { box-shadow: 0 12px 28px rgba(79, 70, 229, 0.42); }
.tt-btn-secondary { background: var(--tt-card); color: var(--tt-text); border-color: var(--tt-border-strong); }
.tt-btn-secondary:hover { border-color: var(--tt-accent); color: var(--tt-accent); }
.tt-btn-ghost { background: transparent; color: var(--tt-text-dim); }
.tt-btn-ghost:hover { background: var(--tt-accent-soft); color: var(--tt-accent); }
.tt-btn-danger { background: var(--tt-danger); color: #fff; }
.tt-btn-ghost.tt-btn-danger {
    background: transparent;
    color: var(--tt-danger);
    border-color: transparent;
}
.tt-btn-ghost.tt-btn-danger:hover {
    background: rgba(220, 53, 69, 0.08);
    color: var(--tt-danger);
    border-color: transparent;
}
.tt-btn-logout {
    background: transparent;
    color: var(--tt-text);
    border: 1px solid var(--tt-border-strong);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}
.tt-btn-logout:hover {
    background: transparent;
    color: var(--tt-accent);
    border-color: var(--tt-accent);
}
[data-theme="dark"] .tt-btn-logout {
    color: var(--tt-text);
    border-color: var(--tt-border-strong);
}
[data-theme="dark"] .tt-btn-logout:hover {
    color: #c4b5fd;
    border-color: #c4b5fd;
}
[data-theme="light"] .tt-btn-logout {
    color: var(--tt-text);
    border-color: var(--tt-border-strong);
}

/* ── Cards / layout ─────────────────────────────────────── */
.tt-main { flex: 1; width: 100%; max-width: none; margin: 0; padding: 32px 45px 60px; min-width: 0; box-sizing: border-box; }
.tt-detail { max-width: none; }
.tt-detail #ttDetailContent { padding-bottom: 88px; }
.tt-detail-layout {
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}
.tt-detail-main { min-width: 0; }
.tt-detail-save-bar {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 150;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 12px 10px 18px;
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    border-radius: 999px;
    box-shadow: var(--tt-shadow-lg);
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.tt-detail-save-bar.is-exploding {
    pointer-events: none;
    animation: tt-save-bar-dissolve 0.55s ease forwards;
}
.tt-detail-save-bar[hidden],
.tt-detail-save-bar.is-hidden {
    display: none !important;
}
.tt-save-bar-particles {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 151;
    overflow: hidden;
}
.tt-save-bar-particle {
    position: fixed;
    border-radius: 999px;
    opacity: 1;
    animation: tt-save-bar-particle 0.68s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes tt-save-bar-dissolve {
    0% { opacity: 1; transform: translateX(-50%) scale(1); filter: blur(0); }
    35% { opacity: 0.85; transform: translateX(-50%) scale(1.04); filter: blur(0); }
    100% { opacity: 0; transform: translateX(-50%) scale(0.72); filter: blur(8px); }
}
@keyframes tt-save-bar-particle {
    0% { opacity: 1; transform: translate(0, 0) rotate(0deg) scale(1); }
    100% { opacity: 0; transform: translate(var(--tx), var(--ty)) rotate(var(--rot)) scale(0.2); }
}
@media (prefers-reduced-motion: reduce) {
    .tt-detail-save-bar.is-exploding {
        animation: tt-save-bar-dissolve-reduced 0.18s ease forwards;
    }
    .tt-save-bar-particle { display: none; }
}
@keyframes tt-save-bar-dissolve-reduced {
    to { opacity: 0; transform: translateX(-50%) scale(0.96); }
}
.tt-save-status {
    min-width: 140px;
    max-width: min(70vw, 360px);
    margin: 0;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
    letter-spacing: 0.01em;
    white-space: nowrap;
    transition: color 0.2s ease;
}
.tt-save-status--pending { color: var(--tt-text-faint); }
.tt-save-status--saving { color: var(--tt-accent); }
.tt-save-status--saved { color: var(--tt-success); }
.tt-save-status--error { color: var(--tt-danger); }

.tt-card {
    background: var(--tt-card);
    border: var(--tt-card-border, 1px solid var(--tt-border));
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-card-shadow, var(--tt-shadow));
    padding: 22px;
}

.tt-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.tt-page-head-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tt-page-head--closed-sales {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: end;
    gap: 16px;
}
.tt-page-head--closed-sales > div:first-child { justify-self: start; }
.tt-closed-sales-summary {
    justify-self: center;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.tt-page-head--closed-sales > .tt-closed-sales-summary,
.tt-page-head--closed-sales > .tt-closed-sales-actions,
.tt-page-head--closed-sales > #ttClosedDealsSwapBtn { align-self: end; }
.tt-closed-sales-actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.tt-closed-sales-volume {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--tt-text);
    white-space: nowrap;
}
.tt-list-page-gross-comp {
    font-size: 0.95rem;
    font-weight: 600;
    white-space: normal;
}
.tt-closed-sales-counts {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 18px;
    font-size: 0.875rem;
    color: var(--tt-text-dim);
}
.tt-closed-sales-count {
    white-space: nowrap;
}
.tt-body--active-buyers-page .tt-closed-sales-volume:not(.tt-list-page-gross-comp) {
    order: 0;
    white-space: normal;
}
.tt-body--active-buyers-page .tt-closed-sales-counts {
    order: 1;
    font-size: 1rem;
    font-weight: 600;
    color: var(--tt-text);
}
.tt-body--transactions-page .tt-closed-sales-counts {
    font-size: 1rem;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-body--listings-page .tt-closed-sales-counts {
    font-size: 1rem;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-body--active-buyers-page .tt-list-page-gross-comp {
    order: 2;
}
.tt-body--transactions-page .tt-page-head--closed-sales {
    grid-template-columns: minmax(260px, 1fr) auto minmax(240px, 1fr);
    align-items: center;
    gap: 22px;
}
.tt-body--transactions-page .tt-page-head-actions {
    justify-self: end;
}
.tt-body--transactions-page .tt-page-head-actions .tt-btn-primary {
    min-height: 44px;
    padding-inline: 20px;
    border-radius: 8px;
    box-shadow: 0 7px 16px rgba(37, 99, 235, 0.28);
}
.tt-transactions-heading {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
}
.tt-transactions-heading-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    background: linear-gradient(180deg, #174d89 0%, #0e3567 100%);
    color: #fff;
    box-shadow: 0 5px 12px rgba(15, 65, 125, 0.25);
}
.tt-transactions-heading-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
}
.tt-body--transactions-page .tt-transactions-heading .tt-page-title {
    margin-bottom: 3px;
    color: #15375f;
    font-size: 26px;
    line-height: 1.05;
}
.tt-body--transactions-page .tt-transactions-heading .tt-page-sub {
    color: #70849d;
    font-size: 12px;
    line-height: 1.25;
}
:is(
    .tt-body--listings-page,
    .tt-body--active-buyers-page,
    .tt-body--closed-deals-page,
    .tt-body--closed-buyers-page,
    .tt-body--closed-sellers-page
) .tt-page-head--closed-sales {
    grid-template-columns: minmax(260px, 1fr) auto minmax(220px, 1fr);
    align-items: center;
    gap: 22px;
}
.tt-list-page-heading {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
}
.tt-list-page-heading-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    background: linear-gradient(180deg, #174d89 0%, #0e3567 100%);
    color: #fff;
    box-shadow: 0 5px 12px rgba(15, 65, 125, 0.25);
}
.tt-list-page-heading-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
}
.tt-list-page-heading .tt-page-title {
    margin-bottom: 3px;
    color: #15375f;
    font-size: 26px;
    line-height: 1.05;
}
.tt-list-page-heading .tt-page-sub {
    color: #70849d;
    font-size: 12px;
    line-height: 1.25;
}
.tt-list-page-heading .tt-page-sub.tt-listings-active-pending {
    color: #15375f;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
}
.tt-summary-metrics {
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
}
.tt-summary-metric-card {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 250px;
    min-height: 62px;
    padding: 9px 14px;
    border: 1px solid #c9dced;
    border-radius: 9px;
    background: linear-gradient(180deg, #fff 0%, #f5faff 100%);
    box-shadow:
        inset 0 1px 0 #fff,
        0 5px 13px rgba(26, 71, 125, 0.13);
    text-align: left;
}
.tt-summary-metric-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    color: #1473dc;
}
.tt-summary-metric-icon svg {
    width: 38px;
    height: 38px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
}
.tt-summary-metric-icon--people svg,
.tt-summary-metric-icon--volume svg,
.tt-summary-metric-icon--gci svg {
    fill: currentColor;
    stroke: none;
}
.tt-summary-metric-icon--gci {
    color: #188760;
}
.tt-summary-metric-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.tt-summary-metric-value {
    color: #183a6a;
    font-size: 19px;
    font-weight: 850;
    line-height: 1.05;
    letter-spacing: -0.02em;
    white-space: nowrap;
}
.tt-summary-metric-label {
    margin-top: 3px;
    color: #6b8099;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.15;
    white-space: nowrap;
}
.tt-closed-metric-counts {
    display: flex;
    align-items: center;
}
.tt-closed-metric-counts > span + span::before {
    margin-inline: 6px;
    content: "/";
}
.tt-summary-metrics.tt-is-loading .tt-summary-metric-value {
    color: transparent;
    position: relative;
}
.tt-summary-metrics.tt-is-loading .tt-summary-metric-value::after {
    position: absolute;
    inset: 2px 0;
    border-radius: 5px;
    background: linear-gradient(90deg, #d8e4ef 0%, #edf3f8 45%, #d8e4ef 90%);
    background-size: 200% 100%;
    animation: tt-skeleton-shimmer 1.35s ease-in-out infinite;
    content: "";
}
@media (max-width: 1500px) {
    :is(
        .tt-body--transactions-page,
        .tt-body--listings-page,
        .tt-body--active-buyers-page,
        .tt-body--closed-deals-page,
        .tt-body--closed-buyers-page,
        .tt-body--closed-sellers-page
    ) .tt-page-head--closed-sales {
        grid-template-columns: 1fr auto;
    }
    :is(
        .tt-body--transactions-page,
        .tt-body--listings-page,
        .tt-body--active-buyers-page,
        .tt-body--closed-deals-page,
        .tt-body--closed-buyers-page,
        .tt-body--closed-sellers-page
    ) .tt-summary-metrics {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-self: stretch;
    }
    .tt-summary-metric-card {
        flex: 1 1 0;
    }
}
@media (max-width: 720px) {
    :is(
        .tt-body--transactions-page,
        .tt-body--listings-page,
        .tt-body--active-buyers-page,
        .tt-body--closed-deals-page,
        .tt-body--closed-buyers-page,
        .tt-body--closed-sellers-page
    ) .tt-page-head--closed-sales {
        display: flex;
        align-items: stretch;
    }
    .tt-summary-metrics {
        display: grid;
        grid-template-columns: 1fr;
    }
    .tt-summary-metric-card {
        min-width: 0;
    }
}
.tt-body--listings-page .tt-listings-page-head,
.tt-unified-list-head {
    grid-template-columns: minmax(230px, 1.15fr) minmax(0, 3fr) minmax(140px, 0.65fr);
    align-items: stretch;
    gap: 10px;
    margin-bottom: 10px;
}
.tt-body--listings-page .tt-listings-title-card,
.tt-body--listings-page .tt-listings-new-card,
.tt-unified-list-title-card,
.tt-unified-list-action-card {
    min-height: 84px;
    padding: 12px 14px;
    border: 1px solid #c9dced;
    border-radius: 10px;
    background: linear-gradient(180deg, #fff 0%, #f5faff 100%);
    box-shadow:
        inset 0 1px 0 #fff,
        0 5px 13px rgba(26, 71, 125, 0.13);
}
.tt-body--listings-page .tt-page-head--closed-sales > .tt-listings-title-card,
.tt-page-head--closed-sales.tt-unified-list-head > .tt-unified-list-title-card {
    justify-self: stretch;
}
.tt-listings-status-title {
    display: inline-block;
}
.tt-body--listings-page .tt-summary-metrics,
.tt-unified-list-head .tt-summary-metrics {
    align-self: stretch;
    justify-self: stretch;
    grid-column: auto;
    grid-row: auto;
    min-width: 0;
    gap: 10px;
}
.tt-body--listings-page .tt-summary-metric-card,
.tt-unified-list-head .tt-summary-metric-card {
    flex: 1 1 0;
    min-width: 0;
    min-height: 84px;
    height: 100%;
    padding: 16px 14px;
    border-radius: 10px;
}
.tt-body--listings-page .tt-summary-metric-value,
.tt-unified-list-head .tt-summary-metric-value {
    font-size: 18px;
    white-space: normal;
}
.tt-body--listings-page .tt-summary-metric-label,
.tt-unified-list-head .tt-summary-metric-label {
    color: #576e8c;
    font-size: 12px;
    white-space: normal;
}
.tt-body--listings-page .tt-listings-new-card,
.tt-unified-list-action-card {
    display: flex;
    align-items: center;
    justify-content: center;
}
.tt-body--listings-page .tt-listings-new-card .tt-btn,
.tt-unified-list-action-card .tt-btn {
    width: 100%;
    min-height: 44px;
    padding-inline: 14px;
    white-space: nowrap;
}
.tt-unified-list-action-card--multi {
    min-width: 190px;
    flex-direction: column;
    gap: 6px;
    padding: 8px 10px;
}
.tt-unified-list-action-card--multi .tt-btn {
    min-height: 30px;
    padding-block: 4px;
}
.tt-body--listings-page .tt-listings-filter-bar,
.tt-unified-list-filter-bar {
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.tt-body--listings-page .tt-listings-filter-bar .tt-search--compact,
.tt-unified-list-filter-bar .tt-search--compact {
    flex: 1 1 210px;
    min-width: 180px;
    max-width: 260px;
}
.tt-body--listings-page .tt-listings-filter-bar .tt-multi-filter,
.tt-unified-list-filter-bar .tt-multi-filter {
    min-width: 170px;
    max-width: 220px;
}
.tt-unified-list-filter-bar.tt-filter-bar--closed-sales {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
}
.tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-filter-bar-primary {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    width: auto;
    flex: 1 1 auto;
    min-width: 0;
}
.tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-search {
    flex: 0 1 220px;
    width: auto;
    max-width: 240px;
    min-width: 160px;
}
.tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-filter-bar-dates {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-filter-date {
    flex-direction: row;
    align-items: center;
    gap: 6px;
    margin: 0;
    white-space: nowrap;
    color: #15375f;
    font-size: 12px;
    font-weight: 600;
}
.tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-filter-date input[type="date"] {
    min-width: 9.5rem;
    height: 38px;
    box-sizing: border-box;
    padding: 7px 10px;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: #fff;
    color: #0f2744;
    font: inherit;
}
.tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-btn {
    flex: 0 0 auto;
    align-self: center;
}
@media (max-width: 1200px) {
    .tt-body--listings-page .tt-listings-page-head,
    .tt-unified-list-head {
        grid-template-columns: 1fr auto;
    }
    .tt-body--listings-page .tt-listings-page-head .tt-summary-metrics,
    .tt-unified-list-head .tt-summary-metrics {
        grid-column: 1 / -1;
        grid-row: 2;
    }
    .tt-body--listings-page .tt-listings-filter-bar,
    .tt-unified-list-filter-bar {
        flex-wrap: wrap;
    }
    .tt-body--listings-page .tt-listings-filter-bar .tt-search--compact,
    .tt-unified-list-filter-bar .tt-search--compact {
        flex: 1 1 100%;
        max-width: none;
    }
}
@media (max-width: 860px) {
    .tt-body--listings-page .tt-listings-new-card,
    .tt-unified-list-action-card--create-only {
        display: none !important;
    }
    .tt-unified-list-action-card #ttNewTransactionBtn,
    .tt-unified-list-action-card #ttEzTxnBtn,
    .tt-unified-list-action-card #ttNewListingBtn,
    .tt-unified-list-action-card #ttEzListingBtn {
        display: none !important;
    }
}
@media (max-width: 900px) {
    .tt-unified-list-filter-bar.tt-filter-bar--closed-sales,
    .tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-filter-bar-primary {
        flex-wrap: wrap;
    }
}
@media (max-width: 720px) {
    .tt-body--listings-page .tt-listings-page-head,
    .tt-unified-list-head {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }
    .tt-body--listings-page .tt-listings-page-head .tt-summary-metrics,
    .tt-unified-list-head .tt-summary-metrics {
        display: grid;
        grid-template-columns: 1fr;
    }
    .tt-body--listings-page .tt-listings-filter-bar > *,
    .tt-unified-list-filter-bar > * {
        width: 100%;
        max-width: none;
    }
    .tt-body--listings-page .tt-listings-filter-bar .tt-multi-filter,
    .tt-unified-list-filter-bar .tt-multi-filter {
        width: 100%;
        max-width: none;
    }
    .tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-filter-bar-primary,
    .tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-filter-bar-dates,
    .tt-unified-list-filter-bar.tt-filter-bar--closed-sales .tt-search {
        width: 100%;
        max-width: none;
        flex: 1 1 100%;
    }
}
.tt-page-head--closed-sales > #ttClosedDealsSwapBtn { justify-self: end; }
.tt-page-head--closed-sales > .tt-btn-primary,
.tt-page-head--closed-sales > .tt-closed-sales-actions { justify-self: end; align-self: end; }
.tt-filter-date {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--tt-text-dim);
}
.tt-filter-date input[type="date"] {
    min-width: 10.5rem;
    padding: 9px 10px;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: var(--tt-card);
    color: var(--tt-text);
    font: inherit;
}
.tt-page-title { font-size: 28px; font-weight: 800; margin: 0 0 4px; letter-spacing: -0.02em; }
.tt-page-sub { margin: 0; color: var(--tt-text-dim); }

/* ── Filter bar ─────────────────────────────────────────── */
.tt-filter-bar { display: flex; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.tt-filter-bar--closed-sales {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
}
.tt-filter-bar-primary {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    width: 100%;
    align-items: flex-end;
    justify-content: flex-start;
}
.tt-filter-bar--closed-sales .tt-search {
    flex: 0 0 250px;
    width: 250px;
    max-width: 250px;
    min-width: 0;
}
.tt-filter-bar-dates {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.tt-filter-bar--compact {
    flex-wrap: nowrap;
    align-items: center;
}
.tt-filter-bar--compact .tt-search--compact {
    flex: 1 1 auto;
    min-width: 120px;
    max-width: 260px;
}
.tt-filter-bar--compact .tt-select {
    flex: 0 0 auto;
    min-width: 140px;
}
.tt-filter-bar--compact .tt-multi-filter {
    flex: 0 0 auto;
    min-width: 160px;
    max-width: min(280px, 42vw);
}
.tt-multi-filter {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}
.tt-multi-filter-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-input-bg);
    color: var(--tt-text);
    font: inherit;
    font-size: 14px;
    cursor: pointer;
    text-align: left;
}
.tt-multi-filter-trigger:hover {
    border-color: var(--tt-border-strong);
}
.tt-multi-filter.is-open .tt-multi-filter-trigger {
    border-color: var(--tt-accent);
    box-shadow: 0 0 0 3px var(--tt-accent-soft);
}
.tt-multi-filter-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-multi-filter-chevron {
    flex: 0 0 auto;
    color: var(--tt-text-faint);
    font-size: 12px;
}
.tt-multi-filter-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 40;
    min-width: 100%;
    width: max-content;
    max-width: min(320px, 90vw);
    max-height: min(320px, 50vh);
    overflow: auto;
    padding: 8px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card);
    box-shadow: var(--tt-shadow-lg);
}
.tt-multi-filter-menu-head {
    padding: 4px 8px 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tt-text-faint);
}
.tt-multi-filter-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 8px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    color: var(--tt-text);
}
.tt-multi-filter-option:hover {
    background: var(--tt-bg-2);
}
.tt-multi-filter-option input {
    margin-top: 2px;
    flex: 0 0 auto;
}
.tt-multi-filter-option span {
    flex: 1 1 auto;
    line-height: 1.3;
}
.tt-multi-filter-clear {
    display: block;
    width: 100%;
    margin-top: 4px;
}
.tt-filter-bar--compact .tt-btn {
    flex: 0 0 auto;
    white-space: nowrap;
}
.tt-btn-see-all.is-active {
    color: var(--tt-accent);
    border-color: var(--tt-accent);
    background: var(--tt-accent-soft);
    font-weight: 600;
}
.tt-btn-scope-toggle.is-active {
    color: var(--tt-accent);
    border-color: var(--tt-accent);
    background: var(--tt-accent-soft);
    font-weight: 600;
}
@media (max-width: 860px) {
    .tt-filter-bar--compact {
        flex-wrap: wrap;
    }
    .tt-filter-bar--compact .tt-search--compact {
        flex: 1 1 100%;
        max-width: none;
    }
}
.tt-recent-records {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    margin: 0 0 14px;
    padding: 8px 12px;
    border: 1px solid #d8e6f7;
    border-radius: 11px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(243,248,255,0.75) 100%),
        #eef6ff;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.95),
        0 4px 12px rgba(30, 64, 120, 0.08);
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 12px;
    line-height: 1.2;
}
.tt-recent-records-label {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 18px;
    font-weight: 750;
    letter-spacing: 0;
    color: #17365d;
    white-space: nowrap;
}
.tt-recent-records-clock {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: #3976c5;
}
.tt-recent-records-clock svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tt-recent-records-track {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}
.tt-recent-records-grid {
    display: flex;
    align-items: center;
    gap: 7px;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
    cursor: grab;
    touch-action: pan-y;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}
.tt-recent-records-grid::-webkit-scrollbar {
    display: none;
}
.tt-recent-records-grid.is-dragging {
    cursor: grabbing;
    user-select: none;
}
.tt-recent-records-nav {
    position: absolute;
    z-index: 3;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid #b9d1ee;
    border-radius: 999px;
    background: #fff;
    color: #2563eb;
    cursor: pointer;
    box-shadow:
        0 3px 10px rgba(30, 64, 120, 0.2);
}
.tt-recent-records-prev {
    left: 0;
    box-shadow:
        0 3px 10px rgba(30, 64, 120, 0.2),
        14px 0 18px 8px rgba(238, 246, 255, 0.94);
}
.tt-recent-records-next {
    right: 0;
    box-shadow:
        0 3px 10px rgba(30, 64, 120, 0.2),
        -14px 0 18px 8px rgba(238, 246, 255, 0.94);
}
.tt-recent-records-nav[hidden] {
    display: none !important;
}
.tt-recent-records-nav:hover {
    border-color: #6ba4e8;
    background: #e8f1ff;
    color: #174e91;
}
.tt-recent-records-nav svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tt-recent-records-link {
    --tt-recent-status-color: #2563eb;
    -webkit-user-drag: none;
    user-select: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    min-width: 0;
    max-width: none;
    padding: 6px 11px;
    border: 1px solid #dce7f4;
    border-radius: 999px;
    background:
        linear-gradient(180deg, #fff 0%, #f7faff 100%);
    color: #324d70;
    text-decoration: none;
    font-size: 16px;
    font-weight: 650;
    line-height: 1;
    overflow: visible;
    white-space: nowrap;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,1),
        0 2px 5px rgba(30, 64, 120, 0.07);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.tt-recent-records-addr {
    display: block;
    white-space: nowrap;
}
.tt-recent-records-dot {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tt-recent-status-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--tt-recent-status-color) 12%, transparent);
}
.tt-recent-records-sep {
    font-weight: 500;
    opacity: 0.75;
}
.tt-recent-records-role {
    font-weight: 700;
    white-space: nowrap;
}
.tt-recent-records-link:hover {
    text-decoration: none;
    border-color: transparent;
    background:
        linear-gradient(180deg, #fff 0%, #f7faff 100%) padding-box,
        linear-gradient(
            110deg,
            color-mix(in srgb, var(--tt-recent-status-color) 38%, #fff),
            var(--tt-recent-status-color),
            color-mix(in srgb, var(--tt-recent-status-color) 38%, #fff)
        ) border-box;
    box-shadow:
        inset 0 1px 0 #fff,
        0 0 0 1px color-mix(in srgb, var(--tt-recent-status-color) 35%, transparent),
        0 0 12px color-mix(in srgb, var(--tt-recent-status-color) 38%, transparent);
    transform: none;
}
/* Buyer-side categories */
.tt-recent-records-link--buyer,
.tt-recent-records-link--buyer-escrow { --tt-recent-status-color: #13956f; }
.tt-recent-records-link--buyer-closed { --tt-recent-status-color: #64748b; }
/* Seller-side categories */
.tt-recent-records-link--seller-listing { --tt-recent-status-color: #13956f; }
.tt-recent-records-link--seller-escrow { --tt-recent-status-color: #f97316; }
.tt-recent-records-link--seller-closed { --tt-recent-status-color: #78716c; }
.tt-recent-records-link--unknown { --tt-recent-status-color: #2563eb; }
.tt-recent-records-view-all {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 5px 2px 5px 8px;
    color: #2563eb;
    font-size: 11px;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
}
.tt-recent-records-view-all:hover {
    color: #1d4ed8;
    text-decoration: underline;
}
.tt-recent-records-view-all svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}
@media (max-width: 720px) {
    .tt-recent-records {
        align-items: flex-start;
        flex-wrap: wrap;
    }
    .tt-recent-records-track {
        order: 3;
        flex-basis: 100%;
        width: 100%;
    }
    .tt-recent-records-grid {
        overflow-x: auto;
        padding-bottom: 2px;
    }
    .tt-recent-records-link {
        flex: 0 0 auto;
    }
}
.tt-search { position: relative; flex: 1; min-width: 220px; }
.tt-search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--tt-text-faint); font-size: 18px; }
.tt-search input {
    width: 100%; padding: 11px 14px 11px 40px;
    border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm);
    background: var(--tt-input-bg); color: var(--tt-text); font-family: inherit; font-size: 14px;
}
.tt-search input:focus { outline: none; border-color: var(--tt-accent); box-shadow: 0 0 0 3px var(--tt-accent-soft); }

.tt-select {
    padding: 11px 14px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm);
    background: var(--tt-input-bg); color: var(--tt-text); font-family: inherit; font-size: 14px; cursor: pointer;
}
.tt-select:focus { outline: none; border-color: var(--tt-accent); box-shadow: 0 0 0 3px var(--tt-accent-soft); }

.tt-category-select { position: relative; width: 100%; }
.tt-category-select-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 11px 14px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-input-bg);
    color: var(--tt-text);
    font-family: inherit;
    font-size: 14px;
    cursor: pointer;
    text-align: left;
}
.tt-category-select-trigger:hover { border-color: var(--tt-border-strong); }
.tt-category-select-trigger:focus,
.tt-category-select.is-open .tt-category-select-trigger {
    outline: none;
    border-color: var(--tt-accent);
    box-shadow: 0 0 0 3px var(--tt-accent-soft);
}
.tt-category-select-chevron { color: var(--tt-text-dim); font-size: 12px; line-height: 1; }
.tt-category-select-label.is-placeholder { color: var(--tt-text-dim); }
.tt-category-select-menu {
    position: absolute;
    z-index: 120;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 340px;
    overflow-y: auto;
    border: 1px solid var(--tt-border-strong);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card);
    box-shadow: var(--tt-shadow-lg);
    padding: 6px 0;
}
.tt-category-select-menu:not([hidden]) { display: block; }
.tt-category-select-group-label {
    padding: 10px 14px 6px;
    font-size: 16px;
    font-weight: 700;
    font-style: italic;
    color: #ffffff;
    letter-spacing: 0.02em;
}
[data-theme="light"] .tt-category-select-group-label { color: var(--tt-text); }
.tt-category-select-option {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    color: var(--tt-text);
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    font-style: normal;
    text-align: left;
    padding: 9px 14px 9px 22px;
    cursor: pointer;
}
.tt-category-select-option:hover,
.tt-category-select-option:focus {
    background: var(--tt-accent-soft);
    outline: none;
}
.tt-category-select-option.is-selected {
    color: var(--tt-accent);
    font-weight: 600;
}

/* ── Dashboard ──────────────────────────────────────────── */
.tt-dashboard {
    --tt-dash-purple-dark: #4a1d96;
    --tt-dash-lilac: #ede4ff;
    --tt-dash-lilac-border: #d8c4ff;
    --tt-dash-lilac-hover: #e2d0ff;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding-top: 12px;
    font-family: 'Nunito', var(--tt-font);
}
.tt-dashboard-welcome {
    text-align: center;
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-shadow);
    padding: 28px 24px 24px;
    margin-bottom: 24px;
}
.tt-dashboard-welcome-label {
    margin: 0 0 8px;
    font-size: clamp(28px, 5vw, 44px);
    font-weight: 800;
    color: var(--tt-dash-purple-dark);
    line-height: 1.05;
    letter-spacing: -0.01em;
}
.tt-dashboard-welcome-name {
    margin: 0;
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
    color: var(--tt-text);
}
.tt-dashboard-welcome-role {
    margin: 10px 0 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--tt-dash-purple-dark);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.tt-dashboard-welcome-kind {
    margin: 12px 0 0;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--tt-text-faint);
}
.tt-dashboard-metrics {
    margin: 0 auto;
}
.tt-dashboard-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.tt-dash-metric {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 148px;
    padding: 22px 16px;
    text-align: center;
    text-decoration: none;
    color: var(--tt-text);
    background:
        radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, 0.72), transparent 55%),
        var(--tt-dash-lilac);
    border: 1px solid var(--tt-dash-lilac-border);
    border-radius: calc(var(--tt-radius) + 4px);
    box-shadow: var(--tt-shadow);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}
.tt-dash-metric:hover {
    transform: translateY(-3px);
    background:
        radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, 0.8), transparent 55%),
        var(--tt-dash-lilac-hover);
    border-color: color-mix(in srgb, var(--tt-dash-purple-dark) 28%, var(--tt-dash-lilac-border));
    box-shadow: var(--tt-shadow-lg);
    text-decoration: none;
}
.tt-dash-metric-label {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--tt-dash-purple-dark) 72%, var(--tt-text-dim));
}
.tt-dash-metric-value {
    font-size: clamp(36px, 5vw, 48px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--tt-dash-purple-dark);
}
.tt-dash-metric-value--icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--tt-dash-purple-dark);
}
.tt-dash-metric-caption {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: color-mix(in srgb, var(--tt-dash-purple-dark) 48%, var(--tt-text-dim));
}
.tt-dash-metric--emphasis {
    border-color: color-mix(in srgb, #dc2626 35%, var(--tt-dash-lilac-border));
    box-shadow: 0 10px 24px rgba(220, 38, 38, 0.12), var(--tt-shadow);
}
.tt-dash-metric--emphasis .tt-dash-metric-value {
    color: #b91c1c;
}
[data-theme="dark"] .tt-dashboard {
    --tt-dash-purple-dark: #c4b5fd;
    --tt-dash-lilac: rgba(139, 92, 246, 0.22);
    --tt-dash-lilac-border: rgba(167, 139, 250, 0.38);
    --tt-dash-lilac-hover: rgba(139, 92, 246, 0.3);
}
[data-theme="dark"] .tt-dashboard-welcome-label,
[data-theme="dark"] .tt-dash-metric-value,
[data-theme="dark"] .tt-dash-metric-value--icon {
    color: #ddd6fe;
}
[data-theme="dark"] .tt-dash-metric--emphasis .tt-dash-metric-value {
    color: #fca5a5;
}
@media (max-width: 960px) {
    .tt-dashboard-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.tt-dashboard-birthdays {
    margin: 24px auto 0;
}
.tt-dashboard-birthdays-card {
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-shadow);
    padding: 20px 22px 18px;
}
.tt-dashboard-birthdays-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.tt-dashboard-birthdays-title {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tt-dash-purple-dark);
}
.tt-dashboard-birthdays-link {
    font-size: 13px;
    font-weight: 700;
    color: color-mix(in srgb, var(--tt-dash-purple-dark) 70%, var(--tt-text-dim));
    text-decoration: none;
}
.tt-dashboard-birthdays-link:hover {
    text-decoration: underline;
}
.tt-dashboard-birthdays-empty {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--tt-text-dim);
}
.tt-dashboard-birthdays-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}
.tt-dashboard-birthday-link {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border-radius: calc(var(--tt-radius) - 2px);
    background:
        radial-gradient(120% 90% at 0% 0%, rgba(255, 255, 255, 0.55), transparent 55%),
        var(--tt-dash-lilac);
    border: 1px solid var(--tt-dash-lilac-border);
    text-decoration: none;
    color: inherit;
    transition: transform 0.14s ease, border-color 0.14s ease, background 0.14s ease;
}
.tt-dashboard-birthday-link:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--tt-dash-purple-dark) 28%, var(--tt-dash-lilac-border));
    text-decoration: none;
}
.tt-dashboard-birthday.is-today .tt-dashboard-birthday-link {
    border-color: color-mix(in srgb, #dc2626 35%, var(--tt-dash-lilac-border));
}
.tt-dashboard-birthday-cal {
    position: relative;
    width: 56px;
    height: 62px;
    display: grid;
    grid-template-rows: auto 1fr auto;
    align-content: stretch;
    justify-items: center;
    border-radius: 8px;
    background: #f3f4f6;
    border: 1px solid #d1d5db;
    box-shadow: 0 2px 0 rgba(15, 23, 42, 0.08), 0 4px 10px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    flex-shrink: 0;
}
.tt-dashboard-birthday-cal-rings {
    position: absolute;
    top: 3px;
    left: 50%;
    width: 34px;
    height: 6px;
    transform: translateX(-50%);
    background:
        radial-gradient(circle at 4px 50%, rgba(255, 255, 255, 0.92) 0 2.2px, transparent 2.4px) 0 0 / 8.5px 100% repeat-x,
        radial-gradient(circle at 4px 50%, rgba(127, 29, 29, 0.35) 0 1.5px, transparent 1.7px) 0 0 / 8.5px 100% repeat-x;
    z-index: 2;
    pointer-events: none;
}
.tt-dashboard-birthday-cal-month {
    width: 100%;
    margin-top: 0;
    padding: 11px 4px 4px;
    background: #dc2626;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: center;
    line-height: 1.1;
}
.tt-dashboard-birthday-cal-day {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 0;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    color: #111827;
}
.tt-dashboard-birthday-cal-weekday {
    width: 100%;
    padding: 0 4px 4px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: center;
    color: #374151;
    line-height: 1.1;
}
.tt-dashboard-birthday.is-today .tt-dashboard-birthday-cal {
    border-color: #fca5a5;
    box-shadow: 0 2px 0 rgba(185, 28, 28, 0.12), 0 4px 12px rgba(185, 28, 28, 0.12);
}
.tt-dashboard-birthday-main {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.tt-dashboard-birthday-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--tt-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-dashboard-birthday-meta {
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-dashboard-birthday-age {
    font-weight: 700;
    color: color-mix(in srgb, var(--tt-dash-purple-dark) 70%, var(--tt-text-dim));
}
.tt-dashboard-birthday-when {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--tt-dash-purple-dark) 72%, var(--tt-text-dim));
    white-space: nowrap;
}
.tt-dashboard-birthday.is-today .tt-dashboard-birthday-when {
    color: #b91c1c;
}
[data-theme="dark"] .tt-dashboard-birthday-cal {
    background: #1f2937;
    border-color: #374151;
    box-shadow: 0 2px 0 rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.28);
}
[data-theme="dark"] .tt-dashboard-birthday-cal-weekday {
    color: #e5e7eb;
}
[data-theme="dark"] .tt-dashboard-birthday-cal-day {
    color: #f9fafb;
}
.tt-field-optional {
    font-weight: 600;
    font-size: 12px;
    color: var(--tt-text-faint);
    text-transform: none;
    letter-spacing: 0;
}
@media (max-width: 640px) {
    .tt-dashboard-birthday-link {
        grid-template-columns: 56px minmax(0, 1fr);
        grid-template-rows: auto auto;
    }
    .tt-dashboard-birthday-when {
        grid-column: 2;
    }
}

/* Dashboard 3 — birthday tile + month calendar */
.tt-dash-metric--birthdays {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    cursor: default;
    text-decoration: none;
}
.tt-dash-metric--calendar {
    cursor: default;
    text-decoration: none;
}
.tt-dash3-cal-toggle {
    margin-top: auto;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    color: inherit;
}
.tt-dash3-cal-toggle:hover,
.tt-dash3-cal-toggle:focus-visible {
    text-decoration: underline;
}
.tt-dash3-bday-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}
.tt-dash3-bday-list a {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    text-decoration: none;
    color: inherit;
    font-size: 13px;
    font-weight: 600;
}
.tt-dash3-bday-list a:hover .tt-dash3-bday-name { text-decoration: underline; }
.tt-dash3-bday-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-dash3-bday-date { color: var(--tt-text-dim); font-weight: 600; white-space: nowrap; }
.tt-dash3-bday-empty { font-size: 13px; color: var(--tt-text-dim); }
.tt-dash3-bday-link { margin-top: auto; }

.tt-dash3-calendar { margin: 8px 0 28px; }
.tt-dash3-calendar-card {
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    background: var(--tt-card);
    padding: 16px 18px 18px;
}
.tt-dash3-calendar-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.tt-dash3-calendar-nav {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tt-dash3-calendar-label {
    margin: 0;
    min-width: 160px;
    text-align: center;
    font-size: 1.15rem;
    font-weight: 700;
}
.tt-dash3-gcal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.tt-dash3-gcal .tt-btn[hidden] {
    display: none !important;
}
.tt-dash3-gcal-admin-link {
    font-size: 12px;
    font-weight: 600;
}
.tt-dash3-gcal-meta {
    font-size: 12px;
    color: var(--tt-text-dim);
    max-width: 280px;
}
.tt-dash3-calendar-status {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-dash3-calendar-status.is-error { color: #b91c1c; }
.tt-dash3-calendar-status--setup {
    color: var(--tt-text);
    background: var(--tt-accent-soft, rgba(79, 70, 229, 0.08));
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    padding: 10px 12px;
    line-height: 1.45;
}
.tt-dash3-calendar-status--setup code {
    display: inline-block;
    margin-top: 4px;
    font-size: 11px;
    word-break: break-all;
}
.tt-dash3-calendar-hint {
    margin: 12px 0 0;
    font-size: 12px;
    color: var(--tt-text-dim);
    line-height: 1.4;
}
.tt-dash3-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
}
.tt-dash3-cal-dow {
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    color: var(--tt-text-dim);
    padding: 4px 0;
}
.tt-dash3-cal-cell {
    min-height: 96px;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: var(--tt-card-2);
    padding: 4px;
    overflow: hidden;
}
.tt-dash3-cal-cell.is-empty {
    background: transparent;
    border-color: transparent;
    min-height: 0;
}
.tt-dash3-cal-cell.is-today {
    border-color: var(--tt-accent);
    box-shadow: inset 0 0 0 1px var(--tt-accent);
}
.tt-dash3-cal-dayhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    margin-bottom: 2px;
}
.tt-dash3-cal-daynum {
    font-size: 12px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-dash3-cal-overflow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--tt-text);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    border: 0;
}
.tt-dash3-cal-overflow:hover {
    filter: brightness(1.1);
}
.tt-dash3-cal-events {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-dash3-cal-event {
    display: block;
    border-radius: 4px;
    padding: 2px 4px;
    font-size: 10px;
    line-height: 1.25;
    text-decoration: none;
    color: #fff;
    background: #64748b;
    overflow: hidden;
}
.tt-dash3-cal-event-title {
    display: block;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-dash3-cal-event-sub {
    display: block;
    opacity: 0.9;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-dash3-cal-event--buyer,
.tt-dash3-cal-event--buyer-escrow { background: #2563eb; }
.tt-dash3-cal-event--buyer-closed { background: #64748b; }
.tt-dash3-cal-event--seller-listing { background: #0f766e; }
.tt-dash3-cal-event--seller-escrow { background: #c2410c; }
.tt-dash3-cal-event--seller-closed { background: #78716c; }
.tt-dash3-cal-event--google { background: #7c3aed; }
.tt-dash3-cal-event--birthday { background: #ec4899; }
.tt-dash3-cal-event--unknown,
.tt-dash3-cal-event--mtt { background: #475569; }
.tt-dash3-cal-more {
    font-size: 10px;
    font-weight: 700;
    color: var(--tt-accent);
    padding: 1px 2px;
    cursor: pointer;
    background: none;
    border: 0;
    text-align: left;
}
.tt-dash3-cal-daypop {
    position: fixed;
    z-index: 90;
    width: min(320px, calc(100vw - 24px));
    max-height: min(360px, 60vh);
    overflow: auto;
    padding: 10px;
    border-radius: 10px;
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
}
.tt-dash3-cal-daypop[hidden] {
    display: none !important;
}
.tt-dash3-cal-daypop-title {
    font-size: 13px;
    font-weight: 700;
    margin: 0 0 8px;
}
.tt-dash3-cal-daypop-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* ── Tasks / Checklist ─────────────────────────────────── */
.tt-tasks-panel { display: flex; flex-direction: column; gap: 14px; }
.tt-tasks-order-bar {
    display: flex;
    justify-content: flex-end;
}
.tt-tasks-order-swap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tt-tasks-order-swap i,
.tt-tasks-order-swap svg {
    width: 16px;
    height: 16px;
}
.tt-tasks-stack {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tt-tasks-add {
    display: grid;
    grid-template-columns: 140px minmax(0, 1.4fr) 110px minmax(140px, 1fr) auto;
    gap: 10px;
    align-items: end;
}
.tt-tasks-add .tt-field {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.tt-tasks-add-actions-label {
    visibility: hidden;
    user-select: none;
}
.tt-tasks-add-actions .tt-btn {
    width: 100%;
    min-height: 42px;
    justify-content: center;
    white-space: nowrap;
}
.tt-tasks-table .tt-tasks-row.is-done .tt-tasks-col-date,
.tt-tasks-table .tt-tasks-row.is-done .tt-tasks-col-body {
    text-decoration: line-through;
    opacity: 0.65;
}
.tt-tasks-col-done { width: 56px; text-align: center; }
.tt-tasks-col-date { width: 120px; white-space: nowrap; }
.tt-tasks-col-actions { width: 90px; text-align: right; }
.tt-tasks-sort-btn {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    font-weight: 700;
}
.tt-tasks-empty-row td { color: var(--tt-text-dim); padding: 16px; }

.tt-dash3-cal-filters {
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-card-2);
}
.tt-dash3-cal-filters-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.tt-dash3-cal-filters-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.tt-dash3-cal-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--tt-border);
    background: var(--tt-card);
    font-size: 12px;
    cursor: pointer;
}
.tt-dash3-cal-filter.is-on {
    border-color: var(--tt-accent);
    background: var(--tt-accent-soft, rgba(79, 70, 229, 0.1));
}
.tt-dash3-cal-event.is-done .tt-dash3-cal-event-title,
.tt-dash3-cal-event.is-done .tt-dash3-cal-event-sub {
    text-decoration: line-through;
    opacity: 0.75;
}
.tt-dash3-cal-event--task {
    background: #a16207;
    width: 100%;
    text-align: left;
    border: 0;
    cursor: pointer;
}
.tt-dash3-task-modal-date,
.tt-dash3-task-modal-meta,
.tt-dash3-task-modal-address {
    margin: 0 0 6px;
    color: var(--tt-text-dim);
    font-size: 13px;
}
.tt-dash3-task-modal-body {
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 1.45;
    white-space: pre-wrap;
}
.tt-dash3-task-modal-done {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}

.tt-tasks-col-priority { width: 88px; }
.tt-tasks-col-assignee { min-width: 140px; }
.tt-tasks-priority {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    color: #fff;
    background: #64748b;
}
.tt-tasks-priority-select {
    display: inline-flex;
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    cursor: pointer;
    text-align: center;
    text-align-last: center;
    line-height: 1.2;
    padding: 4px 18px 4px 8px;
    background-image:
        linear-gradient(45deg, transparent 50%, currentColor 50%),
        linear-gradient(135deg, currentColor 50%, transparent 50%);
    background-position:
        calc(100% - 10px) calc(50% - 2px),
        calc(100% - 6px) calc(50% - 2px);
    background-size: 4px 4px, 4px 4px;
    background-repeat: no-repeat;
}
.tt-tasks-priority-select:focus {
    outline: 2px solid var(--tt-accent);
    outline-offset: 1px;
}
.tt-tasks-priority-select option {
    color: #0f172a;
    background: #fff;
}
.tt-tasks-assignee-select {
    width: 100%;
    max-width: 220px;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: var(--tt-card);
    color: var(--tt-text);
    font: inherit;
    font-size: 13px;
    padding: 6px 8px;
    cursor: pointer;
}
.tt-tasks-assignee-select:hover,
.tt-tasks-assignee-select:focus {
    border-color: var(--tt-accent);
}
.tt-tasks-assignee-select:focus {
    outline: none;
    box-shadow: 0 0 0 3px var(--tt-accent-soft);
}
.tt-tasks-body-text {
    display: block;
    cursor: text;
    border-radius: 6px;
    padding: 4px 6px;
    margin: -4px -6px;
    border: 1px solid transparent;
    word-break: break-word;
}
.tt-tasks-body-text:hover,
.tt-tasks-body-text:focus {
    border-color: var(--tt-border);
    background: var(--tt-card);
}
.tt-tasks-body-text:focus {
    outline: none;
    border-color: var(--tt-accent);
    box-shadow: 0 0 0 3px var(--tt-accent-soft);
}
.tt-tasks-body-input {
    width: 100%;
    min-width: 0;
    font: inherit;
    font-size: 13px;
    padding: 6px 8px;
}
.tt-tasks-priority--1 { background: #22c55e; }
.tt-tasks-priority--2 { background: #84cc16; color: #14532d; }
.tt-tasks-priority--3 { background: #eab308; color: #422006; }
.tt-tasks-priority--4 { background: #f97316; }
.tt-tasks-priority--5 { background: #ef4444; }
.tt-tasks-table .tt-tasks-row.is-done .tt-tasks-col-priority,
.tt-tasks-table .tt-tasks-row.is-done .tt-tasks-col-assignee {
    opacity: 0.65;
}
@media (max-width: 980px) {
    .tt-tasks-add {
        grid-template-columns: 1fr 1fr;
    }
    .tt-tasks-add-body,
    .tt-tasks-add-actions {
        grid-column: 1 / -1;
    }
}

.tt-checklists-wrap {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: var(--tt-card-2);
}
.tt-checklists-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.tt-checklists-title {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
}
.tt-checklists-sub {
    margin: 4px 0 0;
    color: var(--tt-text-dim);
    font-size: 13px;
}
.tt-checklists-head-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.tt-checklists-progress {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.5rem;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--tt-accent, #4f46e5);
    color: #fff;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    font-size: 15px;
    letter-spacing: 0.02em;
}
.tt-tasks-section-title {
    margin: 8px 0 0;
    font-size: 14px;
    font-weight: 700;
}
.tt-cl-activate {
    position: relative;
    z-index: 60;
}
.tt-cl-activate-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 80;
    width: min(360px, 90vw);
    padding: 12px;
    border: 1px solid #c9d7e8;
    border-radius: 12px;
    background: #fff;
    color: #0f2744;
    box-shadow: 0 16px 40px rgba(15, 40, 80, 0.22);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-cl-activate-panel[hidden] {
    display: none !important;
}
.tt-cl-activate-panel-head {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.tt-cl-activate-panel-head .tt-cl-activate-hint {
    flex: 1 1 auto;
}
.tt-cl-activate-close {
    flex: 0 0 auto;
    margin: -4px -4px 0 0;
    line-height: 1;
    font-size: 18px;
}
.tt-cl-activate-hint,
.tt-cl-empty,
.tt-cl-item-empty,
.tt-cl-txn-empty-item {
    margin: 0;
    color: var(--tt-text-dim);
    font-size: 13px;
}
.tt-cl-activate-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 240px;
    overflow: auto;
}
.tt-cl-activate-option {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px;
    border-radius: 8px;
    cursor: pointer;
}
.tt-cl-activate-option:hover { background: var(--tt-card-2); }
.tt-cl-activate-option.is-on-file { opacity: 0.65; cursor: default; }
.tt-cl-activate-meta {
    display: block;
    color: var(--tt-text-dim);
    font-size: 12px;
    font-weight: 400;
}
.tt-cl-activate-settings {
    font-size: 12px;
    color: var(--tt-accent, #4f46e5);
}
.tt-checklists-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.tt-cl-card {
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-card);
    padding: 12px;
}
.tt-cl-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.tt-cl-card.is-collapsed .tt-cl-card-head {
    margin-bottom: 0;
}
.tt-cl-card-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    color: inherit;
    cursor: pointer;
    flex: 1 1 auto;
    text-align: left;
    min-width: 0;
}
.tt-cl-card-title::before {
    content: '';
    width: 0.42em;
    height: 0.42em;
    flex: 0 0 auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -2px;
    transition: transform 0.15s ease;
}
.tt-cl-card.is-collapsed .tt-cl-card-title::before {
    transform: rotate(-45deg);
    margin-top: 0;
}
.tt-cl-card-title:hover {
    color: var(--tt-accent, #4f46e5);
}
.tt-cl-card-title-text {
    min-width: 0;
}
.tt-cl-card.is-collapsed .tt-cl-txn-items,
.tt-cl-card.is-collapsed .tt-cl-txn-add {
    display: none;
}
.tt-cl-card-progress {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--tt-accent, #4f46e5);
}
.tt-cl-card-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    flex: 0 0 auto;
}
.tt-cl-card-pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    padding-left: 8px;
    padding-right: 8px;
    color: var(--tt-text-dim);
}
.tt-cl-card-pin .tt-pin-lucide {
    width: 16px;
    height: 16px;
    pointer-events: none;
}
.tt-cl-card-pin.is-pinned,
.tt-cl-card-pin.is-pinned:hover {
    color: #c0392b;
    background: rgba(192, 57, 43, 0.08);
}
.tt-cl-card-remove.tt-btn-danger {
    color: #fff;
    background: var(--tt-danger, #dc2626);
    border-color: var(--tt-danger, #dc2626);
}
.tt-cl-card-remove.tt-btn-danger:hover {
    color: #fff;
    background: #b91c1c;
    border-color: #b91c1c;
}
.tt-postit.tt-cl-postit {
    z-index: 188;
    width: min(280px, calc(100vw - 28px));
    min-height: 160px;
    max-height: min(72vh, 560px);
    overflow: auto;
    cursor: grab;
    touch-action: none;
}
.tt-postit.tt-cl-postit.is-dragging {
    z-index: 195;
}
.tt-postit.tt-cl-postit.is-minimized {
    min-height: 0;
    max-height: none;
    width: min(230px, calc(100vw - 28px));
    overflow: hidden;
}
.tt-cl-postit.is-minimized .tt-lizard-postit-list,
.tt-cl-postit.is-minimized .tt-postit-drag-hint {
    display: none;
}
.tt-postit.tt-cl-postit .tt-postit-unpin,
.tt-postit.tt-cl-postit .tt-postit-collapse {
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    font-family: var(--tt-font);
    color: #9a3412;
}
.tt-postit.tt-cl-postit .tt-postit-unpin .tt-pin-lucide {
    width: 16px;
    height: 16px;
    pointer-events: none;
}
.tt-cl-postit.is-complete .tt-lizard-postit-progress-fill {
    background: linear-gradient(90deg, #4ade80, #16a34a);
}
.tt-cl-txn-items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.tt-cl-txn-item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}
.tt-cl-txn-item-label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    flex: 1 1 auto;
    cursor: pointer;
    line-height: 1.4;
}
.tt-cl-txn-item.is-done .tt-cl-txn-item-label span {
    text-decoration: line-through;
    opacity: 0.65;
}
.tt-cl-txn-add {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}
.tt-cl-txn-add .tt-input { flex: 1 1 auto; min-width: 0; }
.tt-cl-item-editor {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tt-cl-item-row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto auto auto;
    gap: 6px;
    align-items: center;
}
.tt-cl-item-num {
    color: var(--tt-text-dim);
    font-size: 12px;
    font-weight: 700;
    text-align: right;
}
.tt-cl-item-add-row {
    display: flex;
    gap: 8px;
}
.tt-cl-item-add-row .tt-input { flex: 1 1 auto; min-width: 0; }
.tt-cl-share-box { position: relative; margin: 16px 0 8px; }
.tt-cl-share-row { position: relative; }
.tt-cl-share-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    z-index: 20;
    max-height: 220px;
    overflow: auto;
    padding: 6px;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-card);
    box-shadow: var(--tt-shadow, 0 10px 30px rgba(15, 23, 42, 0.12));
}
.tt-cl-share-result {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: left;
    gap: 2px;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    cursor: pointer;
}
.tt-cl-share-result:hover { background: var(--tt-card-2); }
.tt-cl-share-result-name { font-weight: 700; }
.tt-cl-share-result-sub { font-size: 12px; color: var(--tt-text-dim); }


.tt-dash3-cal-tip {
    position: absolute;
    z-index: 80;
    max-width: 280px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #111827;
    color: #f9fafb;
    font-size: 12px;
    line-height: 1.35;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    pointer-events: none;
}
@media (max-width: 900px) {
    .tt-dash3-cal-cell { min-height: 72px; }
    .tt-dash3-cal-event-sub { display: none; }
}

/* ── Table ──────────────────────────────────────────────── */
.tt-table-wrap { background: var(--tt-card); border: 1px solid var(--tt-border); border-radius: var(--tt-radius); box-shadow: var(--tt-shadow); overflow: hidden; }
.tt-table { width: 100%; border-collapse: collapse; }
.tt-table thead th {
    text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--tt-text-faint); font-weight: 700; padding: 14px 20px; border-bottom: 1px solid var(--tt-border);
}
.tt-th-sortable { padding: 0; }
.tt-th-sort {
    display: block;
    width: 100%;
    padding: 14px 20px;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
    color: var(--tt-text-faint);
    text-decoration: none;
    white-space: nowrap;
}
.tt-th-sort:hover { color: var(--tt-accent); text-decoration: none; }
.tt-th-sort.is-active { color: var(--tt-accent); }
.tt-body--closed-sales .tt-table thead th,
.tt-body--purple-table .tt-table thead th { color: #4f46e5; }
.tt-body--closed-sales .tt-th-sort,
.tt-body--purple-table .tt-th-sort {
    color: #4f46e5;
}
.tt-body--closed-sales .tt-th-sort:hover,
.tt-body--closed-sales .tt-th-sort.is-active,
.tt-body--purple-table .tt-th-sort:hover,
.tt-body--purple-table .tt-th-sort.is-active {
    color: #4f46e5;
}
.tt-body--closed-sales .tt-th-sort[data-sort="expiration_date"],
.tt-body--closed-sales .tt-th-sort[data-sort="expiration_date"]:hover,
.tt-body--closed-sales .tt-th-sort[data-sort="expiration_date"].is-active,
.tt-body--purple-table .tt-th-sort[data-sort="expiration_date"],
.tt-body--purple-table .tt-th-sort[data-sort="expiration_date"]:hover,
.tt-body--purple-table .tt-th-sort[data-sort="expiration_date"].is-active {
    color: #f00;
}
.tt-body--closed-sales .tt-table thead th,
.tt-body--closed-sales .tt-th-sort {
    text-align: center;
}
.tt-body--closed-sales .tt-table tbody td {
    text-align: center;
    vertical-align: middle;
}
.tt-expiration-cell {
    vertical-align: top;
    min-width: 9.5rem;
}
.tt-expiration-date {
    display: block;
}
.tt-expiration-countdown {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}
.tt-expiration-countdown--green { color: var(--tt-expiration-green, #16a34a); }
.tt-expiration-countdown--warn { color: var(--tt-expiration-warn, #d97706); }
.tt-expiration-countdown--urgent { color: var(--tt-expiration-urgent, #dc2626); }
.tt-target-coe-attention {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    margin-top: 3px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}
.tt-target-coe-attention-icon {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    margin-top: 1px;
    stroke-width: 2.4;
}
.tt-settings-expiration-grid {
    display: grid;
    gap: 18px;
}
@media (min-width: 720px) {
    .tt-settings-expiration-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.tt-settings-expiration-tier {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card-2);
}
.tt-settings-expiration-tier-head {
    font-size: 13px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-settings-expiration-tier-range {
    font-size: 12px;
    color: var(--tt-text-dim);
    line-height: 1.35;
}
.tt-settings-expiration-thresholds {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    margin-bottom: 18px;
}
.tt-settings-expiration-preview {
    display: block;
    margin-top: 8px;
    font-size: 12px;
    font-weight: 600;
}
.tt-settings-note-priority-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.tt-settings-note-priority-tier {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card-2);
}
.tt-settings-note-priority-tier-head {
    font-size: 13px;
    font-weight: 700;
}
.tt-settings-note-priority-preview {
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.tt-settings-note-priority-default { font-size: 18px; line-height: 1; letter-spacing: -2px; }
.tt-body--listings-page .tt-expiration-cell {
    text-align: left;
}
.tt-list-mobile,
.tt-listings-mobile {
    display: none;
}
@media (max-width: 720px) {
    .tt-list-mobile:not([hidden]) + .tt-table-wrap,
    .tt-listings-mobile:not([hidden]) + .tt-table-wrap {
        display: none !important;
    }
    .tt-list-mobile:not([hidden]),
    .tt-listings-mobile:not([hidden]) {
        display: block;
        position: relative;
        margin: 4px 0 28px;
        padding: 2px 0 8px;
    }
    .tt-listings-mcard {
        position: relative;
        margin: 0 0 16px;
        background: #fff;
        border-radius: 10px;
        box-shadow: 0 2px 10px rgba(15, 23, 42, 0.12);
        overflow: visible;
        cursor: default;
        --tt-mcard-accent: #1e3a5f;
    }
    /* Buyers — green family */
    .tt-listings-mcard--buyer-active { --tt-mcard-accent: #3d9b6c; }   /* light green */
    .tt-listings-mcard--buyer-escrow,
    .tt-listings-mcard--green { --tt-mcard-accent: #1f6b4a; }          /* current escrow green */
    .tt-listings-mcard--buyer-hold,
    .tt-listings-mcard--orange { --tt-mcard-accent: #c2410c; }         /* hold = orange, not green */
    .tt-listings-mcard--buyer-closed { --tt-mcard-accent: #059669; }   /* happy/success green */
    /* Sellers / listings — blue family */
    .tt-listings-mcard--listing-active { --tt-mcard-accent: #3b82f6; } /* light blue */
    .tt-listings-mcard--seller-escrow,
    .tt-listings-mcard--navy { --tt-mcard-accent: #1e3a5f; }           /* current escrow navy */
    .tt-listings-mcard--listing-soon,
    .tt-listings-mcard--gray { --tt-mcard-accent: #5b6b7c; }           /* grey-blue Coming Soon / Upcoming */
    .tt-listings-mcard--seller-closed,
    .tt-listings-mcard--blue { --tt-mcard-accent: #1d4ed8; }           /* happy blue */
    .tt-listings-mcard-head {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 6px;
        padding: 12px 12px 12px 14px;
        background: var(--tt-mcard-accent);
        border-radius: 10px;
        color: #fff;
        cursor: pointer;
    }
    .tt-listings-mcard.is-expanded .tt-listings-mcard-head {
        border-radius: 10px 10px 0 0;
    }
    .tt-listings-mcard:not(.is-expanded) {
        background: transparent;
        box-shadow: none;
    }
    .tt-listings-mcard:not(.is-expanded) .tt-listings-mcard-head {
        box-shadow: 0 2px 10px rgba(15, 23, 42, 0.12);
    }
    .tt-listings-mcard-addr {
        min-width: 0;
        width: 100%;
    }
    .tt-listings-mcard-street,
    .tt-listings-mcard-city,
    .tt-listings-mcard-client,
    .tt-listings-mcard-category {
        display: block;
        color: #fff;
        white-space: normal;
        overflow: visible;
        word-break: break-word;
        line-height: 1.25;
    }
    .tt-listings-mcard-street {
        font-size: 15px;
        font-weight: 700;
    }
    .tt-listings-mcard-city {
        margin-top: 2px;
        font-size: 13px;
        font-weight: 500;
        opacity: 0.95;
    }
    .tt-listings-mcard-client {
        margin-top: 2px;
        font-size: 13px;
        font-weight: 600;
    }
    .tt-listings-mcard-category {
        font-size: 12px;
        font-weight: 500;
        opacity: 0.9;
    }
    .tt-listings-mcard-exp {
        align-self: center;
        max-width: 100%;
        padding: 6px 8px;
        border-radius: 6px;
        background: rgba(0, 0, 0, 0.22);
        text-align: center;
    }
    .tt-listings-mcard-exp-date {
        display: block;
        color: #fff;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.25;
        white-space: nowrap;
    }
    .tt-listings-mcard-exp-count {
        display: block;
        margin-top: 2px;
        font-size: 11px;
        font-weight: 600;
        line-height: 1.25;
        white-space: normal;
    }
    .tt-listings-mcard-exp-count.tt-expiration-countdown--green { color: #86efac; }
    .tt-listings-mcard-exp-count.tt-expiration-countdown--warn { color: #fdba74; }
    .tt-listings-mcard-exp-count.tt-expiration-countdown--urgent { color: #fca5a5; }
    .tt-listings-mcard-body {
        display: none;
        padding: 12px 14px 14px;
        background: #fff;
        border-radius: 0 0 10px 10px;
        cursor: pointer;
    }
    .tt-listings-mcard.is-expanded .tt-listings-mcard-body {
        display: block;
    }
    .tt-listings-mcard-who {
        padding-bottom: 12px;
        margin-bottom: 12px;
        border-bottom: 1px solid #e8eaef;
    }
    .tt-listings-mcard-line {
        margin: 0 0 6px;
        display: flex;
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 4px 6px;
        font-size: 14px;
        line-height: 1.35;
    }
    .tt-listings-mcard-line:last-child { margin-bottom: 0; }
    .tt-listings-mcard-k { color: #6b7280; font-weight: 500; }
    .tt-listings-mcard-v { color: #1e293b; font-weight: 700; word-break: break-word; }
    .tt-listings-mcard-line .tt-listings-mcard-icon {
        width: 15px;
        height: 15px;
        color: #9aa3b2;
        margin-top: 2px;
    }
    .tt-listings-mcard-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px 10px;
    }
    .tt-listings-mcard-spec {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        min-width: 0;
    }
    .tt-listings-mcard-icon {
        width: 16px;
        height: 16px;
        flex: 0 0 auto;
        margin-top: 2px;
        color: #9aa3b2;
    }
    .tt-listings-mcard-spec-text {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 1px;
    }
    .tt-listings-mcard-spec-label {
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: #60a5fa;
    }
    .tt-listings-mcard-spec-value {
        font-size: 14px;
        font-weight: 700;
        color: #1e3a5f;
        line-height: 1.25;
        word-break: break-word;
    }
    .tt-listings-mcard--skeleton {
        pointer-events: none;
        --tt-mcard-accent: #cbd5e1;
    }
    .tt-listings-mcard--skeleton .tt-listings-mcard-head {
        min-height: 56px;
        background: #cbd5e1;
    }
    .tt-listings-mcard--skeleton .tt-listings-mcard-body {
        display: none;
    }
    [data-theme="dark"] .tt-listings-mcard {
        background: var(--tt-card);
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
    }
    [data-theme="dark"] .tt-listings-mcard-body {
        background: var(--tt-card);
    }
    [data-theme="dark"] .tt-listings-mcard-who { border-bottom-color: var(--tt-border); }
    [data-theme="dark"] .tt-listings-mcard-k { color: var(--tt-text-dim); }
    [data-theme="dark"] .tt-listings-mcard-v,
    [data-theme="dark"] .tt-listings-mcard-spec-value { color: var(--tt-text); }
}
@media (max-width: 640px) {
    body.tt-list-focus-open {
        overflow: hidden;
        overscroll-behavior: none;
    }
    body.tt-list-focus-open .tt-header {
        display: none !important;
    }
    body.tt-list-focus-open .tt-toast {
        z-index: 1400;
    }
    .tt-list-focus {
        --ro-ink: #14201c;
        --ro-muted: #53645c;
        --ro-line: #d7e0db;
        --ro-paper: #f4f7f5;
        --ro-card: #fff;
        --ro-accent: #0f766e;
        --ro-accent-deep: #115e59;
        --ro-warm: #c2410c;
        --ro-net: #047857;
        position: fixed;
        inset: 0;
        z-index: 1100;
        display: flex;
        flex-direction: column;
        background: var(--ro-paper);
        color: var(--ro-ink);
        font-family: "Outfit", "DM Sans", system-ui, sans-serif;
        opacity: 0;
        transform: translateY(8px);
        transition: opacity 0.18s ease, transform 0.18s ease;
    }
    body.tt-voice-assistant-on .tt-list-focus {
        top: var(--tt-voice-assistant-height, 52px);
    }
    .tt-list-focus.is-visible {
        opacity: 1;
        transform: translateY(0);
    }
    .tt-list-focus.is-closing {
        opacity: 0;
        transform: translateY(6px);
        pointer-events: none;
    }
    .tt-list-focus .tt-listings-mcard-icon {
        color: currentColor;
        margin: 0;
    }
    .tt-list-focus-scroll {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior-y: contain;
        padding-bottom: calc(92px + env(safe-area-inset-bottom));
        background:
            radial-gradient(520px 240px at 10% -5%, rgba(15, 118, 110, 0.11), transparent 58%),
            var(--ro-paper);
    }
    .tt-list-focus-media {
        position: relative;
        min-height: 240px;
        background: #0f172a;
        animation: tt-list-focus-fade 0.2s ease both;
    }
    .tt-list-focus-media[hidden] {
        display: none !important;
    }
    @keyframes tt-list-focus-fade {
        from { opacity: 0; }
        to { opacity: 1; }
    }
    .tt-list-focus-close {
        position: absolute;
        top: 12px;
        right: 12px;
        z-index: 4;
        width: 42px;
        height: 42px;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.78);
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.9);
        color: #fff;
        box-shadow: 0 5px 18px rgba(15, 23, 42, 0.3);
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .tt-list-focus-close:hover,
    .tt-list-focus-close:focus-visible {
        background: #020617;
        outline: 3px solid rgba(56, 189, 248, 0.55);
        outline-offset: 2px;
    }
    .tt-list-focus-close svg {
        width: 22px;
        height: 22px;
    }
    .tt-list-focus-gallery {
        position: relative;
        height: 268px;
        background: #0f172a;
        overflow: hidden;
        touch-action: pan-y;
    }
    .tt-list-focus-gallery-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    .tt-list-focus-gallery-arrow {
        position: absolute;
        top: 50%;
        z-index: 2;
        width: 42px;
        height: 42px;
        padding: 0;
        transform: translateY(-50%);
        border: 1px solid rgba(255, 255, 255, 0.75);
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.82);
        color: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .tt-list-focus-gallery-arrow--prev { left: 10px; }
    .tt-list-focus-gallery-arrow--next { right: 10px; }
    .tt-list-focus-gallery-arrow svg {
        width: 23px;
        height: 23px;
    }
    .tt-list-focus-gallery-count {
        position: absolute;
        right: 14px;
        bottom: 64px;
        padding: 4px 9px;
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.82);
        color: #fff;
        font-size: 12px;
        font-weight: 700;
    }
    .tt-list-focus-thumbs {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        display: flex;
        gap: 7px;
        padding: 8px 10px;
        overflow-x: auto;
        background: linear-gradient(transparent, rgba(2, 6, 23, 0.88));
        scrollbar-width: none;
    }
    .tt-list-focus-thumbs::-webkit-scrollbar { display: none; }
    .tt-list-focus-thumb {
        flex: 0 0 48px;
        width: 48px;
        height: 42px;
        padding: 0;
        overflow: hidden;
        border: 2px solid transparent;
        border-radius: 7px;
        background: #fff;
        opacity: 0.72;
    }
    .tt-list-focus-thumb.is-active {
        border-color: #fff;
        opacity: 1;
        box-shadow: 0 0 0 2px #0ea5e9;
    }
    .tt-list-focus-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    .tt-list-focus-property-head {
        position: relative;
        z-index: 1;
        padding: 16px 58px 16px 18px;
        background: var(--tt-list-focus-accent, #1e3a5f);
        color: #fff;
        box-shadow: 0 5px 16px rgba(15, 23, 42, 0.2);
        text-align: left;
        animation: tt-list-focus-head-in 0.2s ease both;
    }
    @keyframes tt-list-focus-head-in {
        from { opacity: 0.75; transform: translateY(5px); }
        to { opacity: 1; transform: translateY(0); }
    }
    .tt-list-focus-property-head .tt-listings-mcard-addr,
    .tt-list-focus-property-head .tt-listings-mcard-exp {
        width: 100%;
        text-align: left;
    }
    .tt-list-focus-property-head .tt-listings-mcard-street {
        display: block;
        color: #fff;
        font-size: 20px;
        line-height: 1.18;
        font-weight: 800;
    }
    .tt-list-focus-property-head .tt-listings-mcard-city,
    .tt-list-focus-property-head .tt-listings-mcard-client,
    .tt-list-focus-property-head .tt-listings-mcard-category {
        display: block;
        color: #fff;
        margin-top: 3px;
        font-size: 14px;
        line-height: 1.3;
    }
    .tt-list-focus-property-head .tt-listings-mcard-exp {
        margin-top: 10px;
        padding: 7px 9px;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.25);
    }
    .tt-list-focus-property-head .tt-listings-mcard-exp-date,
    .tt-list-focus-property-head .tt-listings-mcard-exp-count {
        color: #fff;
    }
    .tt-list-focus-content {
        padding: 14px 12px 24px;
    }
    .tt-list-focus-content .tt-ro {
        max-width: none;
    }
    .tt-list-focus-content .tt-ro-body {
        gap: 12px;
    }
    .tt-list-focus-content .tt-ro-section {
        border-color: #cbd8d1;
        box-shadow: 0 2px 8px rgba(20, 32, 28, 0.06);
    }
    .tt-list-focus-content .tt-ro-section-toggle {
        min-height: 54px;
    }
    .tt-list-focus-content .tt-ro-section-title {
        font-size: 1.08rem;
    }
    .tt-list-focus-content .tt-ro-doc-actions .tt-share-wrap,
    .tt-list-focus-content .tt-ro-mns-share-open {
        display: none !important;
    }
    .tt-list-focus-loading,
    .tt-list-focus-empty {
        min-height: 180px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #475569;
        font-size: 15px;
        font-weight: 700;
        text-align: center;
    }
    .tt-list-focus-contact {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 5;
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
        background: rgba(255, 255, 255, 0.97);
        border-top: 1px solid #cbd5e1;
        box-shadow: 0 -8px 28px rgba(15, 23, 42, 0.16);
        backdrop-filter: blur(12px);
    }
    .tt-list-focus-contact-trigger {
        width: 100%;
        min-height: 52px;
        border: 1px solid #075985;
        border-radius: 14px;
        background: linear-gradient(135deg, #0369a1, #0f766e);
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        font-size: 17px;
        font-weight: 800;
        box-shadow: 0 6px 18px rgba(3, 105, 161, 0.25);
    }
    .tt-list-focus-contact-trigger svg {
        width: 21px;
        height: 21px;
    }
    .tt-list-focus-contact-trigger:disabled {
        opacity: 0.65;
    }
    .tt-list-focus-contact-details {
        max-height: min(42vh, 330px);
        overflow-y: auto;
    }
    .tt-list-focus-contact-details[hidden],
    .tt-list-focus-contact-trigger[hidden] {
        display: none !important;
    }
    .tt-list-focus-contact-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
    }
    .tt-list-focus-contact-head > div {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 2px;
        color: #334155;
        font-size: 14px;
    }
    .tt-list-focus-contact-head strong {
        color: #0f172a;
        font-size: 18px;
        line-height: 1.25;
    }
    .tt-list-focus-contact-head a {
        color: #075985;
        font-weight: 700;
        text-decoration: none;
    }
    .tt-list-focus-contact-eyebrow {
        color: #0f766e;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }
    .tt-list-focus-contact-close {
        flex: 0 0 38px;
        width: 38px;
        height: 38px;
        padding: 0;
        border: 1px solid #94a3b8;
        border-radius: 999px;
        background: #f8fafc;
        color: #0f172a;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .tt-list-focus-contact-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin-top: 11px;
    }
    .tt-list-focus-contact-action {
        min-height: 48px;
        padding: 8px 5px;
        border: 1px solid #0f766e;
        border-radius: 11px;
        background: #ecfdf5;
        color: #115e59;
        text-decoration: none;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        font-size: 12px;
        font-weight: 800;
    }
    .tt-list-focus-contact-action svg {
        width: 19px;
        height: 19px;
    }
    .tt-list-focus-contact-empty {
        margin: 10px 0 0;
        color: #475569;
        font-size: 14px;
    }
}
.tt-body--closed-sales .tt-list-map-thumb {
    margin-left: auto;
    margin-right: auto;
}
.tt-th-sort-icon {
    display: inline-block;
    margin-left: 6px;
    font-size: 11px;
    opacity: 0.55;
    vertical-align: middle;
}
.tt-th-sort.is-active .tt-th-sort-icon { opacity: 1; }
.tt-th-gear {
    width: 44px;
    padding: 0 !important;
    text-align: center;
    vertical-align: middle;
}
.tt-th-gear-spacer { width: 44px; padding: 16px 8px !important; border-bottom: 1px solid var(--tt-border); }
.tt-th-gear-btn { margin: 0 auto; padding: 8px; }
.tt-table-wrap--scroll-x {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}
.tt-table-wrap--scroll-x .tt-table {
    width: max-content;
    min-width: 100%;
}
.tt-table-wrap--scroll-x .tt-th-gear,
.tt-table-wrap--scroll-x .tt-th-gear-spacer {
    position: sticky;
    right: 0;
    z-index: 2;
    background: var(--tt-card);
    box-shadow: -6px 0 10px -8px rgba(15, 23, 42, 0.35);
}
.tt-table-wrap--scroll-x .tt-row:hover .tt-th-gear-spacer {
    background: var(--tt-accent-soft);
}
.tt-closed-deals-sections { display: flex; flex-direction: column; gap: 28px; }
.tt-list-map-cell {
    width: 92px;
    padding: 10px 12px !important;
    vertical-align: middle;
    overflow: hidden;
    position: relative;
    z-index: 0;
}
.tt-list-map-thumb {
    display: block;
    position: relative;
    width: 72px;
    height: 54px;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    overflow: hidden;
    contain: paint;
    cursor: pointer;
    background: var(--tt-bg-2);
}
.tt-list-map-thumb:hover { border-color: var(--tt-accent); }
.tt-list-map-canvas {
    position: absolute;
    inset: 0;
    width: 72px;
    height: 54px;
    max-width: 100%;
    max-height: 100%;
    overflow: hidden;
    pointer-events: none;
}
.tt-list-map-thumb .gm-style,
.tt-list-map-thumb .gm-style * {
    max-width: 72px !important;
    max-height: 54px !important;
    pointer-events: none !important;
}
.tt-list-map-thumb-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #fff;
    background: rgba(15, 23, 42, 0.35);
    opacity: 0;
    transition: opacity 0.15s;
}
.tt-list-map-thumb:hover .tt-list-map-thumb-overlay { opacity: 1; }
.tt-list-map-empty { color: var(--tt-text-faint); font-size: 13px; }
.tt-list-map-cell-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.tt-list-map-photo-count {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--tt-text-faint, #64748b);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}
.tt-list-map-photo-count-icon {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}
.tt-list-map-photo-count-num {
    font-variant-numeric: tabular-nums;
}
.tt-table tbody td { padding: 16px 20px; border-bottom: 1px solid var(--tt-border); }
.tt-table tbody tr:last-child td { border-bottom: none; }
.tt-row {
    cursor: pointer;
    transition: background 0.14s;
    position: relative;
    z-index: 0;
    overflow: hidden;
}
.tt-txn-photos-cell {
    overflow: hidden;
    position: relative;
    z-index: 0;
}
.tt-row:hover { background: var(--tt-accent-soft); }
.tt-row--test {
    background: linear-gradient(90deg, rgba(254, 249, 195, 0.72) 0%, rgba(220, 252, 231, 0.62) 100%);
}
.tt-row--test:hover {
    background: linear-gradient(90deg, rgba(254, 249, 195, 0.92) 0%, rgba(220, 252, 231, 0.82) 100%);
}
[data-theme="dark"] .tt-row--test {
    background: linear-gradient(90deg, rgba(113, 63, 18, 0.28) 0%, rgba(20, 83, 45, 0.24) 100%);
}
[data-theme="dark"] .tt-row--test:hover {
    background: linear-gradient(90deg, rgba(113, 63, 18, 0.38) 0%, rgba(20, 83, 45, 0.32) 100%);
}
.tt-row--shared {
    background-color: #e8f4ff;
}
.tt-row--shared:hover {
    background-color: #d9edff;
}
.tt-row--shared.tt-row--test {
    background: linear-gradient(90deg, rgba(254, 249, 195, 0.72) 0%, rgba(232, 244, 255, 0.85) 100%);
}
.tt-row--shared.tt-row--test:hover {
    background: linear-gradient(90deg, rgba(254, 249, 195, 0.92) 0%, rgba(217, 237, 255, 0.92) 100%);
}
[data-theme="dark"] .tt-row--shared {
    background-color: rgba(30, 64, 120, 0.38);
}
[data-theme="dark"] .tt-row--shared:hover {
    background-color: rgba(30, 64, 120, 0.5);
}
[data-theme="dark"] .tt-row--shared.tt-row--test {
    background: linear-gradient(90deg, rgba(113, 63, 18, 0.28) 0%, rgba(30, 64, 120, 0.38) 100%);
}
[data-theme="dark"] .tt-row--shared.tt-row--test:hover {
    background: linear-gradient(90deg, rgba(113, 63, 18, 0.38) 0%, rgba(30, 64, 120, 0.5) 100%);
}
.tt-row-title { display: block; font-weight: 600; }
.tt-row-sub { display: block; font-size: 12.5px; color: var(--tt-text-dim); margin-top: 2px; }
.tt-row-client {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    line-height: 1.35;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-row-client-label { color: var(--tt-text); font-weight: 700; }
.tt-row-client-name { font-weight: 700; color: var(--tt-text); }
.tt-row-nickname {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    line-height: 1.35;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-row-nickname-label,
.tt-row-nickname-value { font-weight: 700; color: var(--tt-text); }
.tt-row-title.tt-row-client-name { display: block; font-weight: 700; }
.tt-row-primary-agent {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    line-height: 1.35;
    font-weight: 700;
    color: #1e5a96;
}
.tt-row-primary-agent-label,
.tt-row-primary-agent-value {
    font-weight: 700;
    color: #1e5a96;
}
.tt-row-share {
    display: block;
    margin-top: 2px;
    line-height: 1.35;
}
.tt-row-share .tt-share-count {
    margin-left: 0;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-row-share .tt-share-count-icon {
    width: 13px;
    height: 13px;
}
.tt-share-count {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 6px;
    vertical-align: middle;
    color: var(--tt-text-faint, #64748b);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}
.tt-share-count-icon {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}
.tt-share-count-num {
    font-variant-numeric: tabular-nums;
}

.tt-comp-cell { vertical-align: middle; }
.tt-list-category-cell {
    vertical-align: middle;
    max-width: 240px;
    overflow: hidden;
}
.tt-list-category-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    box-sizing: border-box;
    width: fit-content;
    min-width: 0;
    max-width: 100%;
    padding: 9px 16px;
    border: 1px solid #d7e2ee;
    border-radius: 999px;
    background: #f4f7fa;
    color: #334155;
    line-height: 1.15;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
    overflow: hidden;
}
.tt-list-category-pill-icon {
    flex: 0 0 31px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
}
.tt-list-category-pill-icon svg {
    width: 28px;
    height: 28px;
    stroke-width: 2.35;
}
.tt-list-category-pill-copy {
    display: flex;
    min-width: 0;
    max-width: 100%;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    overflow: hidden;
}
.tt-list-category-pill-copy strong,
.tt-list-category-pill-copy small {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
}
.tt-list-category-pill-copy strong {
    font-size: 0.88rem;
    font-weight: 800;
}
.tt-list-category-pill-copy small {
    font-size: 0.76rem;
    font-weight: 650;
    opacity: 0.9;
}
.tt-list-category-pill.is-buyer-escrow {
    border-color: #bad9fb;
    background: linear-gradient(135deg, #edf7ff 0%, #e3f0ff 100%);
    color: #075fc9;
}
.tt-list-category-pill.is-active-buyer {
    border-color: #f4d399;
    background: linear-gradient(135deg, #fff9eb 0%, #fff2d8 100%);
    color: #b84a00;
}
.tt-list-category-pill.is-seller-escrow {
    border-color: #ddc5f4;
    background: linear-gradient(135deg, #faf4ff 0%, #f1e5fc 100%);
    color: #7839a8;
}
.tt-list-category-pill.is-test {
    border-color: #a9e5cd;
    background: linear-gradient(135deg, #edfcf6 0%, #ddf8ed 100%);
    color: #087a58;
}
.tt-comp-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; line-height: 1.35; }
.tt-comp-line { white-space: nowrap; }
.tt-comp-kind {
    display: block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.tt-comp-kind--final { color: #2f6b4f; }
.tt-comp-kind--estimated { color: #b45309; }
[data-theme="dark"] .tt-comp-kind--final { color: #6aab84; }
[data-theme="dark"] .tt-comp-kind--estimated { color: #d97706; }
/* Active Buyers: center Compensation Range cell values */
.tt-body--active-buyers-page .tt-comp-cell {
    text-align: center;
}
.tt-body--active-buyers-page .tt-comp-stack {
    align-items: center;
}

.tt-status { display: inline-block; padding: 4px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.tt-status--open { background: rgba(79, 70, 229, 0.14); color: var(--tt-accent); }
.tt-status--pending { background: rgba(234, 88, 12, 0.14); color: var(--tt-warning); }
.tt-status--closed { background: rgba(22, 163, 74, 0.14); color: var(--tt-success); }
.tt-status--cancelled { background: rgba(220, 38, 38, 0.14); color: var(--tt-danger); }
.tt-listing-status--coming_soon { background: rgba(99, 102, 241, 0.14); color: #4f46e5; }
.tt-listing-status--active { background: rgba(22, 163, 74, 0.14); color: var(--tt-success); }
.tt-listing-status--active_under_contract { background: rgba(234, 88, 12, 0.14); color: var(--tt-warning); }
.tt-listing-status--pending { background: rgba(202, 138, 4, 0.14); color: #ca8a04; }
.tt-listing-status--sold_closed { background: rgba(100, 116, 139, 0.16); color: var(--tt-text-dim); }

.tt-ab-email-stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    min-width: 0;
}
.tt-ab-duplicate-warning-copy {
    margin: 0 0 16px;
    color: var(--tt-text);
    font-size: 15px;
    font-weight: 650;
    line-height: 1.5;
}
.tt-ab-duplicate-match-list {
    display: grid;
    gap: 10px;
}
.tt-ab-duplicate-match {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    border: 1px solid #bfd2e5;
    border-radius: 10px;
    background: #f5f9fd;
}
.tt-ab-duplicate-match-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 4px;
}
.tt-ab-duplicate-match-copy strong {
    color: #17365d;
    font-size: 15px;
}
.tt-ab-duplicate-match-copy span {
    color: #516a84;
    font-size: 13px;
    line-height: 1.35;
}
@media (max-width: 640px) {
    .tt-ab-duplicate-match {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Transactions list — photo-led compact table. */
.tt-body--transactions-page #ttTransactionsTableWrap {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    overflow: hidden;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-table {
    width: 100%;
    min-width: 1360px;
    table-layout: fixed;
    color: #18325c;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.tt-body--transactions-page #ttTransactionsTableWrap thead {
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
}
.tt-body--transactions-page #ttTransactionsTableWrap thead th,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-th-sort {
    color: #fff;
    background: transparent;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.045em;
    text-align: left;
}
.tt-body--transactions-page #ttTransactionsTableWrap thead th {
    height: 38px;
    padding: 0 12px;
    border-bottom-color: #c9ddef;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-th-sort {
    padding: 13px 12px;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-th-sort:hover,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-th-sort.is-active {
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
}
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="map"] { width: 96px; }
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="property_photos"] { width: 96px; }
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="client_property"] { width: 16%; }
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="linked"] { width: 16%; }
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="trans_role"] { width: 14%; }
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="sale_price"] { width: 12%; }
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="target_coe"] { width: 15%; }
.tt-body--transactions-page #ttTransactionsTableWrap th[data-tt-col="la_compensation"] { width: 15%; }
.tt-body--transactions-page #ttTransactionsTableWrap tbody tr {
    background: #fff;
}
.tt-body--transactions-page #ttTransactionsTableWrap tbody tr:nth-child(even) {
    background: #f7fafc;
}
.tt-body--transactions-page #ttTransactionsTableWrap tbody tr:hover {
    background: #eef4fb;
}
.tt-body--transactions-page #ttTransactionsTableWrap tbody td {
    padding: 9px 12px;
    border-bottom-color: #cfdfed;
    vertical-align: middle;
    text-align: left;
    color: #18325c;
    font-size: 14px;
    font-weight: 500;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-property-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-photos-cell {
    padding-block: 7px;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-photo-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 50px;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-photo-thumb {
    display: block;
    width: 72px;
    height: 50px;
    border: 1px solid #c8d9e9;
    border-radius: 7px;
    background: #e5eef7;
    object-fit: cover;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-photo-count {
    position: absolute;
    right: -5px;
    bottom: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border: 2px solid #f8fbff;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-photo-empty {
    color: #71859b;
    font-size: 13px;
}
.tt-table .tt-txn-photos-cell {
    width: 96px;
    padding-block: 7px;
}
.tt-table .tt-txn-photo-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 50px;
}
.tt-table .tt-txn-photo-thumb {
    display: block;
    width: 72px;
    height: 50px;
    border: 1px solid #c8d9e9;
    border-radius: 7px;
    background: #e5eef7;
    object-fit: cover;
}
.tt-table .tt-txn-photo-count {
    position: absolute;
    right: -5px;
    bottom: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border: 2px solid #f8fbff;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}
.tt-table .tt-txn-photo-empty {
    color: #71859b;
    font-size: 13px;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-property-cell,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-linked-cell,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-role-cell {
    overflow: hidden;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-property-copy,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-linked-open,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-property-wrap {
    min-width: 0;
    max-width: 100%;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-list-category-pill {
    min-width: 0;
    max-width: 100%;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-property-street {
    overflow: hidden;
    color: #18325c;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.18;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-property-location,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-client,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-nickname,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-share,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-primary-agent {
    display: block;
    overflow: hidden;
    max-width: 100%;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-property-location,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-client,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-nickname,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-share {
    margin-top: 1px;
    color: #45617f;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.18;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-primary-agent,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-primary-agent-label,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-primary-agent-value {
    margin-top: 1px;
    color: #1e5a96;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.18;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-client-label,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-client-name,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-nickname-label,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-row-nickname-value {
    color: inherit;
    font-weight: 600;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-role-cell,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-price-cell,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-expiration-date,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-comp-line {
    font-weight: 650;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-expiration-cell {
    min-width: 0;
}
/* Transactions, Listings, Active Buyers, and Closed Sales lists — Dates/contingency chrome. Layout grid stays the same. */
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-title-card {
    border: 1px solid #163a66;
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    color: #fff;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-title-card .tt-list-page-heading-icon {
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-title-card .tt-page-title,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-title-card .tt-listings-status-title {
    color: #fff;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-title-card .tt-page-sub,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-title-card .tt-page-sub.tt-listings-active-pending {
    color: rgba(255, 255, 255, 0.86);
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-head .tt-summary-metric-card {
    border: 1px solid #e2eaf3;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.04);
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-head .tt-summary-metric-value {
    color: #0f2744;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-head .tt-summary-metric-label {
    color: #334155;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-action-card {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-action-card .tt-btn,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-action-card .tt-btn-secondary,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-action-card .tt-btn-ghost {
    background: #fff;
    color: #0f2744;
    border: 1px solid #94a3b8;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-action-card .tt-btn-primary {
    background: #0f2744;
    color: #fff;
    border: 1px solid #0f2744;
    box-shadow: none;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar {
    padding: 12px 14px;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.06);
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-search input,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-filter-date input[type="date"],
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-multi-filter-trigger,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-btn-secondary,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-btn-ghost {
    background: #fff;
    color: #0f2744;
    border: 1px solid #94a3b8;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-btn-see-all.is-active,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-btn-linked.is-active,
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-unified-list-filter-bar .tt-btn-scope-toggle.is-active {
    background: #e8f1ff;
    color: #0f2744;
    border-color: #1e4d8c;
}
.tt-txn-linked-cell .tt-txn-linked-empty {
    color: #334155;
}
.tt-txn-linked-open {
    display: block;
    color: #0f2744;
    text-decoration: none;
}
.tt-txn-linked-open:hover .tt-txn-property-street,
.tt-listings-mcard-line .tt-txn-linked-open:hover {
    color: #1d4ed8;
    text-decoration: underline;
}
.tt-listings-mcard-line .tt-txn-linked-open {
    display: inline;
    color: #0f2744;
    font-weight: 700;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-recent-records {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.06);
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-recent-records-label {
    color: #0f2744;
}
:is(.tt-body--transactions-page, .tt-body--listings-page, .tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-recent-records-link {
    border-radius: 12px;
    background: #fff;
    color: #0f2744;
    border: 1px solid #e2eaf3;
}
/* Active Buyers and Closed Sales tables — navy header, white labels, gray shell. Column alignment stays centered. */
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap thead {
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-table thead th,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort:hover,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort.is-active,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort[data-sort="expiration_date"],
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort[data-sort="expiration_date"]:hover,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort[data-sort="expiration_date"].is-active {
    color: #fff;
    background: transparent;
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort:hover,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap .tt-th-sort.is-active {
    background: rgba(255, 255, 255, 0.14);
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap thead .tt-th-gear,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap thead .tt-th-gear-btn {
    background: #1e4d8c;
    color: #fff;
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap thead .tt-th-gear-btn:hover,
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap thead .tt-th-gear-btn[aria-expanded="true"] {
    color: #fff;
    background: rgba(255, 255, 255, 0.16);
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap tbody tr {
    background: #fff;
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap tbody tr:nth-child(even) {
    background: #f7fafc;
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap tbody tr:hover {
    background: #eef4fb;
}
:is(.tt-body--active-buyers-page, .tt-body--closed-deals-page, .tt-body--closed-buyers-page, .tt-body--closed-sellers-page) .tt-table-wrap tbody td {
    color: #18325c;
    border-bottom-color: #cfdfed;
}
/* Listings list — same Dates chrome on table wrap + Linked column widths. */
.tt-body--listings-page #ttListingsTableWrap {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    overflow: hidden;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-body--listings-page #ttListingsTableWrap .tt-table {
    width: 100%;
    min-width: 1360px;
    table-layout: fixed;
    color: #18325c;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.tt-body--listings-page #ttListingsTableWrap thead {
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
}
.tt-body--listings-page #ttListingsTableWrap thead th,
.tt-body--listings-page #ttListingsTableWrap .tt-th-sort {
    color: #fff;
    background: transparent;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.045em;
    text-align: left;
}
.tt-body--listings-page #ttListingsTableWrap thead th {
    height: 38px;
    padding: 0 12px;
    border-bottom-color: #c9ddef;
}
.tt-body--listings-page #ttListingsTableWrap .tt-th-sort {
    padding: 13px 12px;
}
.tt-body--listings-page #ttListingsTableWrap .tt-th-sort:hover,
.tt-body--listings-page #ttListingsTableWrap .tt-th-sort.is-active {
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
}
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="map"] { width: 96px; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="property_photos"] { width: 96px; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="client_property"] { width: 16%; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="linked"] { width: 16%; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="mls_id"] { width: 9%; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="list_price"] { width: 10%; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="la_compensation"] { width: 12%; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="category"] { width: 12%; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="list_date"] { width: 10%; }
.tt-body--listings-page #ttListingsTableWrap th[data-tt-col="expiration_date"] { width: 12%; }
.tt-body--listings-page #ttListingsTableWrap tbody tr {
    background: #fff;
}
.tt-body--listings-page #ttListingsTableWrap tbody tr:nth-child(even) {
    background: #f7fafc;
}
.tt-body--listings-page #ttListingsTableWrap tbody tr:hover {
    background: #eef4fb;
}
.tt-body--listings-page #ttListingsTableWrap tbody td {
    padding: 9px 12px;
    border-bottom-color: #cfdfed;
    vertical-align: middle;
    text-align: left;
    color: #18325c;
    font-size: 14px;
    font-weight: 500;
}
.tt-body--listings-page #ttListingsTableWrap .tt-txn-property-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.tt-body--listings-page #ttListingsTableWrap .tt-txn-property-cell,
.tt-body--listings-page #ttListingsTableWrap .tt-txn-linked-cell,
.tt-body--listings-page #ttListingsTableWrap .tt-list-category-cell {
    overflow: hidden;
}
.tt-body--listings-page #ttListingsTableWrap .tt-txn-property-copy,
.tt-body--listings-page #ttListingsTableWrap .tt-txn-linked-open,
.tt-body--listings-page #ttListingsTableWrap .tt-txn-property-wrap {
    min-width: 0;
    max-width: 100%;
}
.tt-body--listings-page #ttListingsTableWrap .tt-list-category-pill {
    min-width: 0;
    max-width: 100%;
}
.tt-body--listings-page #ttListingsTableWrap .tt-txn-property-street {
    overflow: hidden;
    color: #18325c;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.18;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-body--listings-page #ttListingsTableWrap .tt-txn-property-location,
.tt-body--listings-page #ttListingsTableWrap .tt-row-client,
.tt-body--listings-page #ttListingsTableWrap .tt-row-nickname,
.tt-body--listings-page #ttListingsTableWrap .tt-row-share,
.tt-body--listings-page #ttListingsTableWrap .tt-row-primary-agent {
    display: block;
    overflow: hidden;
    max-width: 100%;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-body--listings-page #ttListingsTableWrap .tt-txn-property-location,
.tt-body--listings-page #ttListingsTableWrap .tt-row-client,
.tt-body--listings-page #ttListingsTableWrap .tt-row-nickname,
.tt-body--listings-page #ttListingsTableWrap .tt-row-share {
    margin-top: 1px;
    color: #45617f;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.18;
}
.tt-body--listings-page #ttListingsTableWrap .tt-row-primary-agent,
.tt-body--listings-page #ttListingsTableWrap .tt-row-primary-agent-label,
.tt-body--listings-page #ttListingsTableWrap .tt-row-primary-agent-value {
    margin-top: 1px;
    color: #1e5a96;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.18;
}
.tt-body--listings-page #ttListingsTableWrap .tt-row-client-label,
.tt-body--listings-page #ttListingsTableWrap .tt-row-client-name,
.tt-body--listings-page #ttListingsTableWrap .tt-row-nickname-label,
.tt-body--listings-page #ttListingsTableWrap .tt-row-nickname-value {
    color: inherit;
    font-weight: 600;
}
.tt-body--listings-page #ttListingsTableWrap .tt-expiration-date,
.tt-body--listings-page #ttListingsTableWrap .tt-comp-line {
    font-weight: 650;
}
.tt-body--listings-page #ttListingsTableWrap .tt-expiration-cell {
    min-width: 0;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-target-coe-attention {
    margin-top: 4px;
    color: #dc2626;
    font-size: 11.5px;
    font-weight: 750;
    white-space: nowrap;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-target-coe-attention-icon {
    width: 14px;
    height: 14px;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-comp-main {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-txn-comp-percent {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #e7f0fb;
    color: #4b78a8;
    font-size: 11.5px;
    font-weight: 700;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-comp-kind {
    color: #39765a;
    font-size: 11.5px;
    font-weight: 600;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 74px;
    justify-content: center;
    padding: 7px 12px;
    color: #286247;
    background: #dff5e9;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-status::before {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #10c63f;
    box-shadow: 0 0 6px rgba(16, 198, 63, 0.42);
    content: "";
}
.tt-body--transactions-page #ttTransactionsTableWrap .tt-status--pending::before { background: #2788f5; }
.tt-body--transactions-page #ttTransactionsTableWrap .tt-status--cancelled::before { background: #dc2626; }
.tt-body--transactions-page #ttTransactionsTableWrap .tt-th-gear,
.tt-body--transactions-page #ttTransactionsTableWrap .tt-th-gear-spacer {
    width: 44px;
    background: inherit;
}

/* ── Empty state ────────────────────────────────────────── */
.tt-empty { text-align: center; padding: 70px 20px; background: var(--tt-card); border: 1px dashed var(--tt-border-strong); border-radius: var(--tt-radius); }
.tt-empty-art { font-size: 52px; margin-bottom: 10px; }
.tt-empty h2 { margin: 0 0 6px; font-size: 20px; }
.tt-empty p { color: var(--tt-text-dim); margin: 0 0 18px; }

/* ── My Docs ─────────────────────────────────────────────── */
.tt-my-docs {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
    min-height: 420px;
}
.tt-my-docs-tree,
.tt-my-docs-files {
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.tt-my-docs-tree-head,
.tt-my-docs-files-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--tt-border);
    background: color-mix(in srgb, var(--tt-card) 88%, var(--tt-bg));
}
.tt-my-docs-tree-head {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
}
.tt-my-docs-tree-body,
.tt-my-docs-files-body {
    padding: 10px;
    overflow: auto;
    flex: 1;
}
.tt-my-docs-folder {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 0;
    background: transparent;
    color: var(--tt-text);
    text-align: left;
    font: inherit;
    padding: 9px 10px;
    border-radius: 8px;
    cursor: pointer;
}
.tt-my-docs-folder:hover {
    background: color-mix(in srgb, var(--tt-accent, #4f46e5) 10%, transparent);
}
.tt-my-docs-folder.is-active {
    background: color-mix(in srgb, var(--tt-accent, #4f46e5) 16%, transparent);
    font-weight: 600;
}
.tt-my-docs-folder--child {
    padding-left: 18px;
    font-size: 0.95rem;
}
.tt-my-docs-folder em {
    font-style: normal;
    font-size: 12px;
    color: var(--tt-text-dim);
    flex-shrink: 0;
}
.tt-my-docs-children {
    margin: 0 0 6px;
    padding-left: 6px;
}
.tt-my-docs-children.is-collapsed { display: none; }
.tt-my-docs-crumb {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    font-size: 12px;
    color: var(--tt-text-dim);
    margin-bottom: 4px;
}
.tt-my-docs-crumb-sep { opacity: 0.55; }
.tt-my-docs-files-title {
    margin: 0;
    font-size: 1.05rem;
}
.tt-my-docs-muted {
    margin: 8px 10px;
    color: var(--tt-text-dim);
    font-size: 13px;
}
.tt-my-docs-table { width: 100%; }
.tt-my-docs-table td:last-child { text-align: right; white-space: nowrap; }
.tt-my-docs-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
    align-items: center;
}
.tt-my-docs-danger {
    color: #b91c1c;
}
.tt-my-docs-sort-btn {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    padding: 0;
    cursor: pointer;
    text-align: left;
}
.tt-my-docs-sort-btn:hover {
    color: var(--tt-accent, #4f46e5);
}
.tt-my-docs-sort-ind {
    font-size: 0.85em;
    opacity: 0.8;
}
.tt-my-docs-code {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
@media (max-width: 860px) {
    .tt-my-docs {
        grid-template-columns: 1fr;
        min-height: 0;
    }
    .tt-my-docs-tree { max-height: 280px; }
}

.tt-mls-lookup-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
}
.tt-mls-lookup-row input {
    flex: 1;
    min-width: 0;
}
.tt-mls-lookup-row .tt-btn {
    flex-shrink: 0;
    align-self: stretch;
}
.tt-mls-lookup-status {
    margin: 8px 0 0;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-mls-lookup-status--error { color: var(--tt-danger, #dc2626); }
.tt-mls-lookup-status--success { color: var(--tt-success, #16a34a); }
.tt-mls-lookup-status--loading { color: var(--tt-accent); }
/* Detail panels skeleton (fields hydrate via api/transaction-detail.php). */
.tt-detail-panels-skeleton {
    display: grid;
    gap: 14px;
    padding: 4px 0 12px;
}
.tt-detail-panels-skeleton-card {
    min-height: 120px;
    padding: 18px 20px;
}
.tt-detail-panels-skeleton-line {
    height: 12px;
    margin: 0 0 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, #e8eef7 0%, #f5f8fc 45%, #e8eef7 100%);
    background-size: 200% 100%;
    animation: tt-detail-skeleton-shimmer 1.25s ease-in-out infinite;
}
.tt-detail-panels-skeleton-line--title {
    width: 38%;
    height: 16px;
    margin-bottom: 18px;
}
.tt-detail-panels-skeleton-line--short {
    width: 55%;
    margin-bottom: 0;
}
@keyframes tt-detail-skeleton-shimmer {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.tt-table-loading {
    text-align: center;
    padding: 48px 20px;
    color: var(--tt-text-dim);
    font-size: 15px;
}

/* List table skeleton (initial shell + reload shimmer) */
.tt-table-wrap.is-loading .tt-table {
    pointer-events: none;
}
.tt-skeleton-row td {
    padding-top: 14px;
    padding-bottom: 14px;
    vertical-align: middle;
}
.tt-skeleton-bar {
    display: block;
    height: 14px;
    width: 72%;
    max-width: 140px;
    border-radius: 6px;
    background: linear-gradient(
        90deg,
        var(--tt-border) 0%,
        color-mix(in srgb, var(--tt-border) 55%, var(--tt-surface)) 45%,
        var(--tt-border) 90%
    );
    background-size: 200% 100%;
    animation: tt-skeleton-shimmer 1.35s ease-in-out infinite;
}
.tt-skeleton-bar--wide {
    width: 88%;
    max-width: 220px;
}
.tt-skeleton-bar--head {
    height: 12px;
    width: 64%;
    max-width: 100px;
    opacity: 0.75;
}
.tt-closed-sales-summary.tt-is-loading .tt-closed-sales-volume,
.tt-closed-sales-summary.tt-is-loading .tt-closed-sales-count {
    color: transparent;
    position: relative;
    user-select: none;
}
.tt-closed-sales-summary.tt-is-loading .tt-closed-sales-volume::after,
.tt-closed-sales-summary.tt-is-loading .tt-closed-sales-count::after {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 14px;
    width: min(280px, 72%);
    border-radius: 6px;
    background: linear-gradient(
        90deg,
        var(--tt-border) 0%,
        color-mix(in srgb, var(--tt-border) 55%, var(--tt-surface)) 45%,
        var(--tt-border) 90%
    );
    background-size: 200% 100%;
    animation: tt-skeleton-shimmer 1.35s ease-in-out infinite;
}
.tt-closed-sales-summary.tt-is-loading .tt-closed-sales-count::after {
    width: min(200px, 55%);
}
@keyframes tt-skeleton-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Auth ───────────────────────────────────────────────── */
.tt-auth-wrap { flex: 1; display: grid; place-items: center; padding: 48px 20px; }
.tt-auth-card { width: 100%; max-width: 420px; }
.tt-auth-brand { text-align: center; margin-bottom: 22px; }
.tt-auth-title { font-size: 24px; font-weight: 800; margin: 0 0 4px; }
.tt-auth-sub { color: var(--tt-text-dim); margin: 0; font-size: 14px; }
.tt-auth-links { text-align: center; color: var(--tt-text-dim); font-size: 13.5px; margin: 14px 0 0; }
.tt-auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0;
    color: var(--tt-text-dim);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.tt-auth-divider::before,
.tt-auth-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--tt-border);
}
.tt-auth-link-hint { margin-top: 8px; text-align: center; }
.tt-auth-skip-form { margin-top: 12px; }
.tt-password-wrap {
    position: relative;
    display: block;
}
.tt-password-wrap > input {
    padding-right: 44px;
}
.tt-password-toggle {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: var(--tt-radius-xs);
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
}
.tt-password-toggle:hover,
.tt-password-toggle:focus-visible {
    color: var(--tt-text);
    background: var(--tt-accent-soft);
    outline: none;
}
.tt-password-toggle-icon {
    display: none;
}
.tt-password-toggle-icon.is-active {
    display: block;
}
.tt-label-optional { font-weight: 400; color: var(--tt-text-dim); font-size: 12px; }
.tt-alert-success {
    background: rgba(34, 197, 94, 0.12);
    border: 1px solid rgba(34, 197, 94, 0.35);
    color: var(--tt-text);
    padding: 10px 12px;
    border-radius: 8px;
    margin-bottom: 14px;
    font-size: 13px;
}

.tt-field { margin-bottom: 16px; }
.tt-field > label { display: block; font-size: 13px; font-weight: 600; color: var(--tt-text-dim); margin-bottom: 6px; }
.tt-field input, .tt-field textarea, .tt-field select {
    width: 100%; padding: 11px 14px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm);
    background: var(--tt-input-bg); color: var(--tt-text); font-family: inherit; font-size: 14px;
}
.tt-field input:focus, .tt-field textarea:focus, .tt-field select:focus { outline: none; border-color: var(--tt-accent); box-shadow: 0 0 0 3px var(--tt-accent-soft); }
.tt-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.req { color: var(--tt-danger); }

.tt-alert { padding: 11px 14px; border-radius: var(--tt-radius-sm); font-size: 13.5px; margin-bottom: 16px; }
.tt-alert-error { background: rgba(220, 38, 38, 0.1); color: var(--tt-danger); border: 1px solid rgba(220, 38, 38, 0.25); }
.tt-alert-success { background: rgba(22, 163, 74, 0.1); color: var(--tt-success); border: 1px solid rgba(22, 163, 74, 0.25); }

/* ── Setup ──────────────────────────────────────────────── */
.tt-setup-list { list-style: none; padding: 0; margin: 18px 0; }
.tt-setup-list li { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--tt-border); }
.tt-setup-badge { font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; }
.tt-setup-badge.is-ok { background: rgba(22, 163, 74, 0.15); color: var(--tt-success); }
.tt-setup-badge.is-missing { background: rgba(220, 38, 38, 0.15); color: var(--tt-danger); }

/* ── Detail bar ─────────────────────────────────────────── */
.tt-detail-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; flex-wrap: wrap; }
.tt-detail-bar-hidden {
    display: none !important;
}
.tt-detail-bar--hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    flex-wrap: nowrap;
}
.tt-detail-bar-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    width: 100%;
}
/* Desktop: no empty toolbar row once Summary lives in the hero. */
@media (min-width: 861px) {
    .tt-detail-bar--hero > .tt-detail-bar-toolbar:not(:has(#ttUnsavedBadge:not([hidden]))) {
        display: none;
    }
}
.tt-detail-hero-aside {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    flex-shrink: 0;
    margin-left: auto;
}
.tt-detail-hero-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
#ttEditOverviewSections {
    display: none !important;
}
body.tt-overview-active #ttEditOverviewSections {
    display: inline-flex !important;
}
.tt-detail-hero-summary {
    align-self: flex-end;
}
.tt-detail-bar--hero .tt-detail-hero {
    width: 100%;
    margin-top: 0;
}
.tt-detail-bar-left {
    flex: 1 1 420px;
    min-width: 0;
}
.tt-detail-bar-left .tt-detail-hero {
    margin-top: 8px;
}
.tt-back { font-size: 13px; color: var(--tt-text-dim); font-weight: 600; }
.tt-detail-back {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0 0 10px;
    padding: 6px 10px;
    border: 1px solid #c7d9ef;
    border-radius: 10px;
    background: #fff;
    color: #1e3a5f;
    text-decoration: none;
}
.tt-detail-back:hover { text-decoration: none; background: #f0f7ff; }
.tt-detail-back svg { width: 16px; height: 16px; }
.tt-detail-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 0 0 6px;
}
.tt-detail-title {
    font-size: 1.25rem;
    font-weight: 800;
    margin: 0;
    letter-spacing: -0.02em;
    line-height: 1.3;
    color: #0f2744;
}
.tt-detail-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: auto;
    padding: 0;
    border-radius: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    background: transparent;
    color: #3b82f6;
    border: none;
}
.tt-detail-status-badge::before {
    content: '•';
    width: auto;
    height: auto;
    border-radius: 0;
    background: none;
    color: #60a5fa;
    font-size: 1.1em;
    line-height: 1;
}
.tt-detail-status-badge--warn {
    background: transparent;
    color: #c2410c;
    border-color: transparent;
}
.tt-detail-status-badge--bad {
    background: transparent;
    color: #b91c1c;
    border-color: transparent;
}
.tt-detail-title .tt-detail-closing-countdown {
    font-weight: 700;
    font-size: large;
}
.tt-detail-header-coe {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 10px;
    margin-right: 4px;
}
.tt-detail-coe-date {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #c7d9ef;
    color: #0f2744;
}
.tt-detail-coe-date svg {
    width: 18px;
    height: 18px;
    color: #2563eb;
    flex: 0 0 auto;
}
.tt-detail-coe-label {
    display: block;
    font-size: 11px;
    font-weight: 650;
    color: #64748b;
    line-height: 1.2;
}
.tt-detail-coe-value {
    display: block;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
}
.tt-detail-coe-days {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    background: #e8f8ee;
    color: #15803d;
    border: 1px solid #bbf7d0;
}
.tt-detail-meta span:not(:empty) + span:not(:empty)::before {
    content: ' | ';
    color: #94a3b8;
    font-weight: 500;
}
.tt-detail-mobile-head { display: none; }
.tt-detail-mobile-address {
    font-size: 18px;
    font-weight: 800;
    margin: 6px 0 4px;
    letter-spacing: -0.02em;
    line-height: 1.3;
}
.tt-detail-mobile-category {
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-detail-mobile-coe {
    margin: 0 0 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text);
}
.tt-detail-mobile-coe .tt-detail-closing-countdown { font-weight: 700; }
.tt-detail-mobile-actions {
    display: none;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}
.tt-detail-access-level {
    margin: 4px 0 8px;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.35;
    color: var(--tt-muted, #64748b);
}
.tt-detail-access-level strong {
    font-weight: 700;
    color: var(--tt-ink, #1e293b);
}
.tt-detail-access-level--mobile {
    margin: 2px 0 8px;
}
.tt-detail-summary {
    margin: 0 0 5px;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.45;
    color: #4338ca;
}
.tt-detail-transaction-title {
    margin: 0 0 8px;
    font-size: 0.875rem;
    font-weight: 700;
    font-style: italic;
    color: #4b5563;
}
.tt-detail-header-card {
    min-width: 0;
}
.tt-detail-hero {
    width: 100%;
    padding: 16px 18px;
    background: #fff !important;
    border: 1px solid #dbe3ef;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(15, 39, 68, 0.06);
}
.tt-detail-hero-main {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}
.tt-detail-hero-thumb {
    position: relative;
    flex: 0 0 150px;
    width: 150px;
    height: 150px;
    border-radius: 16px;
    overflow: hidden;
    background: #e8eef7;
    border: 1px solid #d5deeb;
}
.tt-detail-hero-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tt-detail-hero-map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: none;
}
.tt-detail-hero-thumb.has-map .tt-detail-hero-map {
    display: block;
}
.tt-detail-hero-thumb.has-map .tt-detail-hero-thumb-fallback,
.tt-detail-hero-thumb.has-photo .tt-detail-hero-map {
    display: none !important;
}
.tt-detail-hero-thumb-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #64748b;
}
.tt-detail-hero-thumb-fallback svg {
    width: 56px;
    height: 56px;
}
.tt-detail-hero-thumb.has-photo .tt-detail-hero-thumb-fallback {
    display: none;
}
.tt-detail-hero-body {
    flex: 1;
    min-width: 0;
}
.tt-detail-hero-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}
.tt-detail-hero-identity {
    min-width: 0;
    flex: 1 1 360px;
}
.tt-detail-hero-kicker-row {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 15px;
    margin: 0 0 4px;
    width: max-content;
    max-width: 100%;
}
.tt-detail-hero-kicker {
    margin: 0;
    flex: 0 1 auto;
    min-width: 0;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #2563eb;
    white-space: nowrap;
}
.tt-linked-view-btn {
    flex: 0 0 auto;
    margin-left: 0;
    white-space: nowrap;
    background: #fff !important;
    color: #0f2744 !important;
    border: 1px solid #93c5fd !important;
    font-weight: 700;
    text-transform: none;
    display: inline-flex !important;
    align-items: center;
}
/* .tt-btn { display: inline-flex } beats the HTML hidden attribute — force hide. */
.tt-linked-view-btn[hidden] {
    display: none !important;
}
.tt-linked-view-btn:hover {
    background: #eff6ff !important;
    border-color: #2563eb !important;
}
.tt-linked-timelines {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tt-linked-timelines--compare {
    gap: 16px;
}
.tt-linked-timeline-compare {
    margin: 0 0 18px;
    padding: 14px 16px 16px;
    border-radius: 14px;
    border: 1px solid #c7d9ef;
    background: linear-gradient(180deg, #f3f8ff 0%, #ffffff 55%);
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.07);
    overflow: visible;
}
.tt-linked-timeline-compare-head {
    margin: 0 0 14px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
}
.tt-linked-timeline-compare-brand {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    flex: 1 1 220px;
}
.tt-linked-timeline-compare-copy {
    min-width: 0;
}
.tt-linked-timeline-compare-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    margin-left: auto;
}
.tt-linked-timeline-compare-tools .tt-timeline-mode {
    flex: 0 0 auto;
}
.tt-linked-timeline-collapse-btn--compare {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid #c7d9ef;
    background: #fff;
    color: #1e5a96;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.tt-linked-timeline-collapse-btn--compare:hover {
    background: #eef5ff;
}
.tt-linked-timeline-compare.is-collapsed .tt-linked-timelines--compare {
    display: none !important;
}
/* Master Simplified/Extended lives in the compare head — hide per-pipeline copies. */
.tt-linked-timeline-compare .tt-stage-pipeline-head-tools > .tt-timeline-mode {
    display: none !important;
}
.tt-linked-timeline-compare-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1e5a96 0%, #0f3d6e 100%);
    color: #fff;
    flex: 0 0 auto;
}
.tt-linked-timeline-compare-icon i,
.tt-linked-timeline-compare-icon svg {
    width: 18px;
    height: 18px;
}
.tt-linked-timeline-compare-brand strong {
    display: block;
    font-size: 1rem;
    font-weight: 800;
    color: #0f2744;
    line-height: 1.25;
}
.tt-linked-timeline-compare-brand span {
    display: block;
    margin-top: 2px;
    font-size: 0.82rem;
    color: #3d5a7a;
    line-height: 1.35;
}
.tt-linked-timeline-block {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #dbe7f3;
    background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
    box-shadow: 0 8px 22px rgba(15, 40, 80, 0.06);
}
.tt-linked-timeline-block[data-tt-linked-timeline="peer"] {
    border-color: #d6c9b8;
    background: linear-gradient(180deg, #fffaf3 0%, #fff 100%);
}
.tt-linked-timeline-block[data-tt-linked-timeline="peer"] .tt-linked-timeline-label {
    color: #8a5a1a;
}
.tt-linked-timeline-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #1e5a96;
    margin: 0 0 10px;
}
.tt-linked-timeline-label-text {
    min-width: 0;
}
.tt-linked-timeline-collapse-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    margin: 0;
    padding: 0;
    border: 1px solid #94a3b8;
    border-radius: 8px;
    background: #fff;
    color: #0f2744;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.06);
}
.tt-linked-timeline-collapse-btn:hover {
    background: #e8f1ff;
    border-color: #1e4d8c;
    color: #0f2744;
}
.tt-linked-timeline-collapse-btn:focus-visible {
    outline: 2px solid #1e4d8c;
    outline-offset: 2px;
}
.tt-linked-timeline-collapse-btn .tt-linked-timeline-collapse-icon,
.tt-linked-timeline-collapse-btn .tt-linked-timeline-collapse-icon svg {
    width: 16px;
    height: 16px;
}
.tt-linked-timeline-collapse-btn .tt-linked-timeline-collapse-icon--collapsed {
    display: none;
}
/* Per-block chevron icons (BUYER/SELLER IN ESCROW label button) */
.tt-linked-timeline-block.is-collapsed .tt-linked-timeline-collapse-btn .tt-linked-timeline-collapse-icon--expanded {
    display: none;
}
.tt-linked-timeline-block.is-collapsed .tt-linked-timeline-collapse-btn .tt-linked-timeline-collapse-icon--collapsed {
    display: inline-flex;
}
/* Solo header pipeline (no linked blocks): brand chevron */
#ttDetailHeaderTimeline.is-collapsed:not(:has(.tt-linked-timeline-block)) .tt-linked-timeline-collapse-btn .tt-linked-timeline-collapse-icon--expanded {
    display: none;
}
#ttDetailHeaderTimeline.is-collapsed:not(:has(.tt-linked-timeline-block)) .tt-linked-timeline-collapse-btn .tt-linked-timeline-collapse-icon--collapsed {
    display: inline-flex;
}
.tt-linked-timeline-collapse-btn {
    position: relative;
    z-index: 6;
    pointer-events: auto;
}
.tt-stage-pipeline-brand-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.tt-stage-pipeline-brand-title-row .tt-stage-pipeline-brand-title {
    min-width: 0;
}
/* Linked / Compare: brand row removed in PHP (hide_brand); belt-and-suspenders hide */
.tt-linked-timeline-block .tt-stage-pipeline-brand,
.tt-linked-timeline-compare .tt-stage-pipeline-brand {
    display: none !important;
}
.tt-linked-timeline-block .tt-stage-pipeline-head--tools-only,
.tt-linked-timeline-compare .tt-stage-pipeline-head--tools-only {
    justify-content: flex-end;
}
/* Per-block collapsed: hide entire pipeline (Edit / Simplified / track) */
.tt-linked-timeline-block.is-collapsed .tt-stage-pipeline {
    display: none !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}
.tt-linked-timeline-block.is-collapsed {
    padding-bottom: 10px;
}
.tt-linked-timeline-block.is-collapsed .tt-linked-timeline-label {
    margin-bottom: 0;
}
/* Solo header collapsed: keep brand; hide track/tools */
#ttDetailHeaderTimeline.is-collapsed:not(:has(.tt-linked-timeline-block)) .tt-stage-pipeline-track,
#ttDetailHeaderTimeline.is-collapsed:not(:has(.tt-linked-timeline-block)) .tt-stage-pipeline-head-tools,
#ttDetailHeaderTimeline.is-collapsed:not(:has(.tt-linked-timeline-block)) .tt-stage-pipeline-brand-sub {
    display: none !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}
#ttDetailHeaderTimeline.is-collapsed:not(:has(.tt-linked-timeline-block)) .tt-stage-pipeline {
    min-height: 0 !important;
    gap: 8px;
}
.tt-linked-timeline-compare .tt-stage-pipeline,
.tt-linked-timeline-block .tt-stage-pipeline {
    box-shadow: none;
    border: 0;
    background: transparent;
    padding: 0;
}
.tt-linked-timeline-compare .tt-stage-pipeline-brand-sub {
    display: none;
}
.tt-linked-overview-banner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #93c5fd;
    background: linear-gradient(135deg, #eff6ff 0%, #f8fbff 100%);
    color: #0f2744;
}
.tt-linked-overview-banner svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    color: #1d4ed8;
    margin-top: 2px;
}
.tt-linked-overview-banner strong {
    display: block;
    font-size: 0.95rem;
    font-weight: 800;
    color: #0f2744;
}
.tt-linked-overview-banner span {
    display: block;
    margin-top: 2px;
    font-size: 0.8125rem;
    color: #475569;
}
.tt-linked-overview-side,
.tt-linked-overview-peer {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 2px dashed #bfdbfe;
}
/* Unified Overview only: pack escrow cards so the short middle column doesn’t leave a hole. */
.tt-overview--linked .tt-overview-txn-grid--escrow {
    grid-template-columns: minmax(0, 1.08fr) minmax(220px, 0.82fr) minmax(0, 1.1fr);
    gap: 12px;
    align-items: stretch;
}
.tt-overview--linked .tt-overview-txn-mid,
.tt-overview--linked .tt-overview-txn-right {
    display: contents;
}
.tt-overview--linked .tt-overview-txn-grid--escrow > .tt-card:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
}
.tt-overview--linked .tt-overview-tags-card {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
}
.tt-overview--linked .tt-overview-notes-card {
    grid-column: 2;
    grid-row: 2;
    align-self: stretch;
}
.tt-overview--linked .tt-overview-property {
    grid-column: 3;
    grid-row: 1;
    align-self: start;
}
.tt-overview--linked [data-tt-overview-financials] {
    grid-column: 3;
    grid-row: 2;
    align-self: start;
}
.tt-linked-overview-side--buyer {
    border-top-color: #93c5fd;
}
.tt-linked-overview-side--seller {
    border-top-color: #d6c9b8;
}
.tt-overview--linked > .tt-overview-actions,
.tt-overview--linked > .tt-overview-quick-actions {
    margin: 10px 0 4px;
}
.tt-linked-overview-peer-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.tt-linked-overview-peer-kicker {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #1e5a96;
}
.tt-linked-overview-peer-title {
    display: block;
    font-size: 1.1rem;
    font-weight: 800;
    color: #0f2744;
    margin-top: 2px;
}
.tt-linked-search-results {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    max-height: 280px;
    overflow: auto;
    border: 1px solid #dbe7f3;
    border-radius: 12px;
    background: #fff;
}
.tt-linked-search-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    cursor: pointer;
    border-bottom: 1px solid #eef2f7;
    color: #0f2744;
}
.tt-linked-search-item:last-child {
    border-bottom: 0;
}
.tt-linked-search-item strong {
    font-size: 0.9375rem;
}
.tt-linked-search-item span {
    font-size: 0.8125rem;
    color: #64748b;
}
.tt-linked-search-item:hover,
.tt-linked-search-item.is-selected {
    background: #eff6ff;
}
.tt-linked-search-empty {
    margin: 12px 0 0;
    color: #64748b;
    font-size: 0.875rem;
}
.tt-overview-qa--indigo {
    background: #e0e7ff;
    border-color: #a5b4fc;
    color: #312e81;
}
.tt-overview-qa--rose {
    background: #ffe4e6;
    border-color: #fda4af;
    color: #9f1239;
}
.tt-detail-hero .tt-detail-title {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #0f2744;
    margin: 0;
}
.tt-detail-hero-sub {
    margin: 4px 0 0;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #64748b;
}
.tt-detail-hero-parties {
    margin: 8px 0 0;
    font-size: 0.875rem;
    line-height: 1.4;
    color: #64748b;
}
.tt-detail-hero-parties strong {
    color: #0f2744;
    font-weight: 700;
}
.tt-detail-hero .tt-detail-header-coe {
    flex-shrink: 0;
    margin: 0;
    margin-left: 0;
    align-items: flex-end;
    flex-direction: column;
}
.tt-detail-hero .tt-detail-coe-date {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #c7d9ef;
    background: #fff;
    padding: 8px 12px;
    border-radius: 12px;
    text-align: left;
}
.tt-detail-hero .tt-detail-coe-date svg {
    width: 18px;
    height: 18px;
    color: #2563eb;
    flex: 0 0 auto;
}
.tt-detail-hero .tt-detail-coe-label {
    text-align: left;
    font-size: 17px;
    font-weight: 600;
    color: #1e5a96;
}
.tt-detail-hero .tt-detail-coe-value {
    font-size: 0.9375rem;
    color: #0f2744;
}
.tt-detail-hero .tt-detail-coe-days.tt-expiration-countdown--urgent,
.tt-detail-hero .tt-detail-coe-days.tt-expiration-countdown--red {
    background: transparent;
    border: none;
    color: #dc2626;
    font-weight: 700;
    padding: 4px 0 0;
    border-radius: 0;
}
.tt-detail-hero-mid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1 1 320px;
    min-width: 0;
    min-height: 150px;
    gap: 14px;
}
.tt-detail-hero-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-self: stretch;
    justify-content: center;
    flex: 1 1 auto;
    gap: 6px 0;
    margin: 0;
    min-width: 0;
    min-height: 0;
}
.tt-detail-hero-stats[hidden] {
    display: none !important;
}
.tt-detail-hero-stat {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    min-width: 84px;
    color: #0f2744;
    border-right: 1px solid #dbe3ef;
    text-align: center;
}
.tt-detail-hero-stat:first-child {
    padding-left: 0;
}
.tt-detail-hero-stat:last-child {
    border-right: none;
    padding-right: 0;
}
.tt-detail-hero-stat svg {
    width: 28px;
    height: 28px;
    color: #2563eb;
    flex: 0 0 auto;
}
.tt-detail-hero-stat-value {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
    color: #0f2744;
}
.tt-detail-hero-stat-label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #1e5a96;
    line-height: 1.2;
}
.tt-detail-hero-meta {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    width: 100%;
    text-align: center;
}
/* Stats center on the full header bar for every role, not in the gap before Target COE. */
@media (min-width: 901px) {
    .tt-detail-bar--hero {
        position: relative;
    }
    .tt-detail-hero-mid {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        flex: none;
        width: max-content;
        max-width: calc(100% - 24px);
        min-width: 0;
        min-height: 0;
        z-index: 1;
        pointer-events: none;
    }
    .tt-detail-hero-stats {
        align-self: center;
        width: max-content;
        max-width: 100%;
        justify-content: center;
    }
    .tt-detail-hero-identity {
        flex: 0 1 auto;
        position: relative;
        z-index: 2;
    }
    .tt-detail-hero-aside {
        position: relative;
        z-index: 2;
    }
}
.tt-detail-header-card--entity-trust {
    /* Keep hero chrome; soft violet only on the trust line itself. */
    background: #fff;
    border-color: #dbe3ef;
}
@media (max-width: 900px) {
    .tt-detail-hero-top {
        flex-direction: column;
    }
    .tt-detail-hero-identity {
        flex: 1 1 auto;
        width: 100%;
    }
    .tt-detail-hero-mid {
        flex: 1 1 auto;
        width: 100%;
        align-items: flex-start;
    }
    .tt-detail-hero-stats {
        justify-content: flex-start;
        width: 100%;
    }
    .tt-detail-hero-meta {
        text-align: left;
    }
    .tt-detail-hero-aside {
        align-items: flex-start;
        margin-left: 0;
        width: 100%;
    }
    .tt-detail-hero-summary {
        align-self: flex-start;
    }
    .tt-detail-hero .tt-detail-header-coe {
        align-items: flex-start;
        margin-left: 0;
    }
    .tt-detail-hero .tt-detail-coe-date,
    .tt-detail-hero .tt-detail-coe-label {
        text-align: left;
    }
}
@media (max-width: 640px) {
    .tt-detail-hero-main {
        flex-direction: column;
        align-items: stretch;
    }
    .tt-detail-hero-thumb {
        width: 150px;
        height: 150px;
        flex-basis: 150px;
    }
    .tt-detail-hero-mid {
        min-height: 0;
    }
    .tt-detail-hero-stat {
        border-right: none;
        padding: 8px 12px 8px 0;
        width: 50%;
    }
}
.tt-detail-hero-thumb {
    appearance: none;
    -webkit-appearance: none;
    margin: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: default;
}
.tt-detail-hero-thumb.is-clickable {
    cursor: zoom-in;
}
.tt-detail-hero-thumb.is-clickable:hover {
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.35);
}
.tt-detail-hero-thumb:disabled {
    cursor: default;
    opacity: 1;
}
.tt-detail-hero .tt-detail-summary,
.tt-detail-hero .tt-detail-summary[hidden],
.tt-detail-hero-kicker[hidden],
.tt-detail-hero-sub[hidden],
.tt-detail-hero-parties[hidden],
.tt-detail-transaction-title[hidden],
.tt-detail-hero-stats[hidden],
.tt-detail-status-badge[hidden],
.tt-detail-coe-date[hidden],
.tt-detail-coe-days[hidden],
.tt-detail-header-timeline[hidden] {
    display: none !important;
}
.tt-detail-header-timeline {
    margin: 0 0 14px;
}
.tt-detail-entity-trust {
    display: block;
    margin: 0 0 8px;
    padding: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.01em;
    color: #5b21b6;
    background: none;
    border: none;
    border-radius: 0;
}
.tt-detail-entity-trust[hidden] {
    display: none !important;
}
.tt-detail-meta { margin: 0; color: #9ca3af; font-size: 0.75rem; line-height: 1.5; }
.tt-detail-bar-right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.tt-detail-bar-right #ttOpenContactsWindowBtn {
    white-space: normal;
    text-align: center;
    line-height: 1.25;
    max-width: 11.5rem;
}
.tt-status-select { font-weight: 600; }

.tt-contact-field {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.tt-contact-field .tt-input { flex: 1; min-width: 0; }
.tt-contact-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
.tt-contact-actions--tel { display: none; }
/* Client Details: SMS and Call stay beside the phone, same as the mail icon. */
[data-tt-panel="client"] .tt-contact-actions--tel {
    display: inline-flex;
}
.tt-contact-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card);
    color: var(--tt-accent);
    cursor: pointer;
    transition: 0.15s;
}
.tt-contact-action:hover:not(:disabled) {
    background: var(--tt-accent-soft);
    border-color: var(--tt-accent);
}
.tt-contact-action:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.tt-contact-action svg { width: 16px; height: 16px; display: block; }

.tt-unsaved-badge {
    font-size: 12px; font-weight: 700; color: var(--tt-warning);
    background: rgba(234, 88, 12, 0.12); padding: 6px 12px; border-radius: 999px;
    animation: tt-pulse 1.8s ease-in-out infinite;
}
@keyframes tt-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
.tt-btn.is-attention { animation: tt-shine 1.6s ease-in-out infinite; }
@keyframes tt-shine { 0%, 100% { box-shadow: 0 8px 22px rgba(79, 70, 229, 0.32); } 50% { box-shadow: 0 0 0 4px var(--tt-accent-soft), 0 12px 30px rgba(79, 70, 229, 0.5); } }

/* ── Tabs ───────────────────────────────────────────────── */
.tt-tabs-wrap { position: relative; margin-bottom: 22px; }
.tt-tabs {
    display: flex; gap: 6px; overflow-x: auto; padding: 6px;
    background: var(--tt-card); border: 1px solid var(--tt-border); border-radius: 999px;
    box-shadow: var(--tt-shadow);
    scrollbar-width: thin;
}

/* Transaction detail: left grouped section nav */
.tt-detail-tabs-wrap.tt-detail-nav {
    position: sticky;
    top: 16px;
    z-index: 5;
    margin-bottom: 0;
    max-height: calc(100vh - 32px);
}
/* Transaction record left rail: show the full menu — no inner vertical scroll. */
.tt-detail-tabs-wrap.tt-detail-nav.tt-detail-nav--left {
    position: relative;
    top: auto;
    max-height: none;
    align-self: start;
}
.tt-detail-nav .tt-tabs-bar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 10px;
    background: var(--tt-card);
    /* Match .tt-card chrome; app themes override both together. */
    border: var(--tt-card-border, 1px solid var(--tt-border));
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-card-shadow, var(--tt-shadow));
    max-height: calc(100vh - 32px);
}
.tt-detail-nav--left .tt-tabs-bar {
    max-height: none;
    height: auto;
}
.tt-detail-nav-scroll {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 0;
    flex: 1;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.tt-detail-nav--left .tt-detail-nav-scroll {
    flex: 0 1 auto;
    overflow: visible;
    -webkit-overflow-scrolling: auto;
    scrollbar-width: auto;
}
.tt-detail-nav-version {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.tt-detail-nav-version-head {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 4px;
}
.tt-detail-nav-version-head-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}
.tt-detail-nav-version-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.tt-detail-nav-version-title {
    margin: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-text-faint);
}
.tt-detail-nav-version-hint {
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    color: var(--tt-text-muted, #6b7280);
}
.tt-detail-nav-bulk {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}
.tt-detail-nav-bulk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    transition: color 0.14s ease, background 0.14s ease;
}
.tt-detail-nav-bulk-btn:hover {
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
}
.tt-detail-nav-bulk-btn:focus-visible {
    outline: 2px solid var(--tt-accent);
    outline-offset: 1px;
}
.tt-detail-tabs-wrap .tt-tabs {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 3px;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.tt-detail-tabs-wrap .tt-tab {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 13px;
    line-height: 1.25;
    white-space: normal;
    text-align: left;
    max-width: 100%;
}
.tt-detail-tabs-wrap .tt-tab-status {
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
}
.tt-detail-tabs-wrap .tt-tab-settings-wrap {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    margin-left: 0;
    align-self: stretch;
    order: -1;
}
.tt-detail-nav-done-btn,
.tt-detail-nav-done-btn[hidden] {
    display: none !important;
}
.tt-detail-nav.is-menu-edit .tt-detail-nav-done-btn {
    display: inline-flex !important;
    min-height: 32px;
    padding: 0 12px;
    font-size: 12px;
    font-weight: 700;
}
.tt-detail-nav-edit-toolbar {
    order: -1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-bg-2);
}
.tt-detail-nav-edit-toolbar[hidden] { display: none !important; }
.tt-detail-nav-edit-toolbar-title {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-accent);
}
.tt-detail-nav-edit-hint {
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
    color: var(--tt-text-muted, #6b7280);
}
.tt-detail-nav-preset-section { margin-bottom: 0; }
.tt-detail-nav-preset-section .tt-tab-settings-row {
    flex-wrap: wrap;
}
.tt-detail-nav-group-head {
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(15, 23, 42, 0.055);
    border-bottom: 1px solid transparent;
}
.tt-detail-nav-group.is-open .tt-detail-nav-group-head {
    border-bottom-color: rgba(15, 23, 42, 0.06);
}
.tt-detail-nav-group-head .tt-detail-nav-group-toggle {
    flex: 1;
    min-width: 0;
}
.tt-detail-nav-group-rename {
    display: none;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
}
.tt-detail-nav-group-rename:hover {
    background: var(--tt-bg-2);
    color: var(--tt-accent);
}
.tt-detail-nav.is-menu-edit .tt-detail-nav-group-rename,
.tt-detail-nav.is-menu-edit .tt-detail-nav-group-delete {
    display: inline-flex;
}
.tt-detail-nav-group-delete {
    display: none;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
}
.tt-detail-nav-group-delete:hover {
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
}
.tt-detail-nav-edit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-detail-nav-group-rename-input {
    flex: 1;
    min-width: 0;
    height: 30px;
    margin: 0 4px 0 0;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 700;
}
.tt-detail-nav-group.is-renaming .tt-detail-nav-group-chevron {
    display: none;
}
.tt-detail-nav-group.is-drop-target {
    border-color: var(--tt-accent);
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.18);
}
.tt-detail-nav-drag-handle {
    display: none;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 28px;
    color: var(--tt-text-faint);
    cursor: grab;
    touch-action: none;
}
.tt-detail-nav-drag-handle:active { cursor: grabbing; }
.tt-detail-nav .tt-tab-fav-btn {
    display: none;
    position: absolute;
    top: 50%;
    right: 6px;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #c4a035;
    cursor: pointer;
    align-items: center;
    justify-content: center;
}
.tt-detail-nav .tt-tab-fav-btn svg path {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
}
.tt-detail-nav .tt-tab-fav-btn.is-favorite svg path {
    fill: currentColor;
    stroke: currentColor;
}
.tt-detail-nav.is-menu-edit .tt-detail-nav-drag-handle {
    display: inline-flex;
}
.tt-detail-nav.is-menu-edit .tt-tab-fav-btn {
    display: inline-flex;
}
.tt-detail-nav.is-menu-edit .tt-tab-status {
    display: none !important;
}
.tt-detail-nav.is-menu-edit .tt-tab {
    padding-right: 30px;
    padding-left: 4px;
}
.tt-detail-nav.is-menu-edit .tt-detail-nav-group.is-dragging,
.tt-detail-nav.is-menu-edit .tt-tab.is-dragging {
    opacity: 0.35;
}
.tt-detail-nav-drop-indicator {
    margin: 4px 0;
    min-height: 28px;
}
.tt-detail-nav.is-menu-edit .tt-detail-nav-version-hint {
    color: var(--tt-accent);
}
.tt-detail-nav.is-menu-edit .tt-detail-nav-version-hint::after {
    content: ' · editing';
}

/* Version 2 — grouped collapsible */
.tt-detail-nav-grouped {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.tt-detail-nav-group {
    border-radius: 10px;
    background: #fff;
    border: 1px solid transparent;
    overflow: hidden;
}
.tt-detail-nav-group.is-open {
    border-color: var(--tt-border);
    background: #fff;
}
.tt-detail-nav-group-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    padding: 9px 10px;
    border: none;
    border-radius: 0;
    background: transparent;
    color: var(--tt-text);
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-align: left;
    cursor: pointer;
    transition: background 0.14s ease, color 0.14s ease;
}
.tt-detail-nav-group-toggle:hover {
    background: rgba(15, 23, 42, 0.04);
    color: var(--tt-accent);
}
.tt-detail-nav-group-label { min-width: 0; }
.tt-detail-nav-group-chevron {
    flex-shrink: 0;
    color: var(--tt-text-dim);
    transition: transform 0.16s ease;
}
.tt-detail-nav-group.is-open .tt-detail-nav-group-chevron {
    transform: rotate(180deg);
}
.tt-detail-nav-group-items {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 4px 4px 6px;
    background: #fff;
}
.tt-detail-nav-group-items[hidden] { display: none !important; }
.tt-detail-nav-grouped .tt-tab {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    border: none;
    border-radius: 9px;
    padding: 8px 12px;
    background: transparent;
    color: var(--tt-text-dim);
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    white-space: normal;
    transition: 0.16s;
}
.tt-detail-nav-group.is-empty { display: none !important; }
.tt-detail-nav.is-menu-edit .tt-detail-nav-group.is-empty {
    display: block !important;
    opacity: 0.85;
}

.tt-tabs-mobile-trigger {
    display: none;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
    min-height: 48px;
    padding: 8px 12px;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: var(--tt-bg-2);
    color: var(--tt-text);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.16s, box-shadow 0.16s, background 0.16s;
}
.tt-tabs-mobile-trigger:hover,
.tt-tabs-mobile-trigger[aria-expanded="true"] {
    border-color: var(--tt-accent);
    background: var(--tt-card);
    box-shadow: 0 0 0 3px var(--tt-accent-soft);
}
.tt-tabs-mobile-trigger-status {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: transparent;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.08);
}
.tt-tabs-mobile-trigger-status.tt-tab-status--green { background: #22c55e; }
.tt-tabs-mobile-trigger-status.tt-tab-status--orange { background: #f97316; }
.tt-tabs-mobile-trigger-status.tt-tab-status--red { background: #ef4444; }
.tt-tabs-mobile-trigger-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}
.tt-tabs-mobile-trigger-kicker {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tt-text-faint);
}
.tt-tabs-mobile-trigger-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--tt-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-tabs-mobile-trigger-chevron {
    flex-shrink: 0;
    color: var(--tt-text-dim);
    transition: transform 0.18s ease;
}
.tt-detail-tabs-wrap.is-mobile-open .tt-tabs-mobile-trigger-chevron {
    transform: rotate(180deg);
}

@media (max-width: 980px) {
    .tt-detail-layout {
        grid-template-columns: 1fr;
    }
    .tt-detail-tabs-wrap.tt-detail-nav {
        position: relative;
        top: auto;
        max-height: none;
        z-index: 5;
        margin-bottom: 16px;
    }
    .tt-detail-nav .tt-tabs-bar {
        max-height: none;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        position: relative;
    }
    .tt-tabs-mobile-trigger {
        display: flex;
    }
    .tt-detail-nav-scroll {
        display: none;
        position: absolute;
        top: calc(100% + 6px);
        left: 0;
        right: 0;
        z-index: 161;
        max-height: min(70vh, 560px);
        padding: 10px;
        background: var(--tt-card);
        border: var(--tt-card-border, 1px solid var(--tt-border));
        border-radius: var(--tt-radius);
        box-shadow: var(--tt-card-shadow, 0 14px 36px rgba(15, 23, 42, 0.22));
    }
    .tt-detail-nav--left .tt-detail-nav-scroll {
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    .tt-detail-tabs-wrap.is-mobile-open {
        z-index: 160;
    }
    .tt-detail-tabs-wrap.is-mobile-open .tt-detail-nav-scroll {
        display: flex;
    }
    .tt-detail-tabs-wrap .tt-tab-settings-wrap {
        order: 0;
        margin-left: auto;
        align-self: center;
        flex-shrink: 0;
    }
}

.tt-tab-settings-wrap { position: relative; margin-left: auto; flex-shrink: 0; }
.tt-tab-settings-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    transition: 0.16s;
}
.tt-tab-settings-btn:hover,
.tt-tab-settings-btn[aria-expanded="true"] {
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
}
.tt-tab-settings-overlay {
    position: fixed;
    inset: 0;
    z-index: 200;
    padding: 0;
    animation: tt-fade 0.18s ease;
}
.tt-tab-settings-overlay[hidden] { display: none !important; }
.tt-tab-settings-overlay:not([hidden]) {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(10, 12, 24, 0.4);
    backdrop-filter: blur(3px);
}
.tt-tab-settings-overlay .tt-tab-settings-panel {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    z-index: 201;
    width: min(360px, calc(100vw - 32px));
    max-height: min(480px, calc(100vh - 32px));
    margin: 0;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    background: var(--tt-card);
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.2);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: tt-pop 0.2s ease;
}
.tt-tab-settings-overlay .tt-tab-settings-panel:not([hidden]) { display: flex; }
.tt-tab-settings-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 14px 10px;
    border-bottom: 1px solid var(--tt-border);
    flex-shrink: 0;
}
.tt-tab-settings-head h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}
.tt-tab-settings-overlay .tt-tab-settings-section,
.tt-tab-settings-overlay .tt-tab-settings-divider,
.tt-tab-settings-overlay .tt-tab-settings-checklist {
    margin-left: 14px;
    margin-right: 14px;
}
.tt-tab-settings-overlay .tt-tab-settings-section:first-of-type { margin-top: 14px; }
.tt-tab-settings-overlay .tt-tab-settings-checklist {
    margin-bottom: 14px;
    flex: 1;
    min-height: 0;
}
.tt-tab-settings-section { margin-bottom: 12px; }
.tt-tab-settings-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--tt-text-faint);
    margin-bottom: 6px;
}
.tt-tab-settings-row { display: flex; gap: 8px; align-items: center; }
.tt-tab-settings-row .tt-input { flex: 1; min-width: 0; }
.tt-tab-settings-select { flex: 1; min-width: 0; font-size: 13px; }
.tt-tab-settings-divider { height: 1px; background: var(--tt-border); margin: 12px 0; }
.tt-tab-settings-checklist {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 280px;
    overflow-y: auto;
}
.tt-tab-settings-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: var(--tt-radius-sm);
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text);
}
.tt-tab-settings-item:hover { background: var(--tt-bg-2); }
.tt-tab-settings-item input { flex-shrink: 0; }
label.tt-tab-settings-item { cursor: pointer; }
.tt-tab-settings-hint {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 500;
    color: var(--tt-text-muted, #6b7280);
}
.tt-column-settings-hint-mobile { display: none; }
@media (max-width: 860px) {
    .tt-column-settings-hint-desktop { display: none; }
    .tt-column-settings-hint-mobile { display: block; }
}
/* Gear column dialog on Listings, Transactions, and Active Buyers. */
.tt-tab-settings-overlay .tt-column-settings-panel--dates.tt-form-card--contingency-opts {
    width: min(400px, calc(100vw - 32px));
    max-height: min(560px, calc(100vh - 32px));
    padding: 0;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    overflow: hidden !important;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-column-settings-panel--dates .tt-contingency-opts-head {
    flex-shrink: 0;
    border-radius: 14px 14px 0 0;
}
.tt-column-settings-panel--dates .tt-contingency-opts-title.tt-card-title {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 700;
    letter-spacing: 0 !important;
    line-height: 1.3;
    text-transform: none !important;
}
.tt-column-settings-panel--dates .tt-modal-close {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #fff;
    color: #163a66;
    font-size: 22px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.tt-column-settings-panel--dates .tt-modal-close:hover {
    background: #e8f1ff;
    color: #0f2744;
}
.tt-column-settings-panel--dates .tt-contingency-opts-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
    flex: 1 1 auto;
    padding: 14px;
    overflow: hidden;
    background: #f7fafc;
}
.tt-tab-settings-overlay .tt-column-settings-panel--dates .tt-tab-settings-section,
.tt-tab-settings-overlay .tt-column-settings-panel--dates .tt-tab-settings-divider,
.tt-tab-settings-overlay .tt-column-settings-panel--dates .tt-tab-settings-checklist,
.tt-tab-settings-overlay .tt-column-settings-panel--dates .tt-tab-settings-hint {
    margin: 0;
}
.tt-column-settings-panel--dates .tt-tab-settings-label {
    color: #163a66;
}
.tt-column-settings-panel--dates .tt-tab-settings-hint {
    color: #3d5270;
}
.tt-column-settings-panel--dates .tt-tab-settings-divider {
    height: 1px;
    background: #e2eaf3;
}
.tt-column-settings-panel--dates .tt-input,
.tt-column-settings-panel--dates .tt-select,
body.tt-form-fields--underline .tt-column-settings-panel--dates .tt-input,
body.tt-form-fields--underline .tt-column-settings-panel--dates .tt-select {
    background: #fff !important;
    color: #132d5a !important;
    border: 1px solid #b4d5fa !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 8px 10px !important;
}
body.tt-form-fields--underline .tt-column-settings-panel--dates .tt-input:hover,
body.tt-form-fields--underline .tt-column-settings-panel--dates .tt-input:focus,
body.tt-form-fields--underline .tt-column-settings-panel--dates .tt-select:hover,
body.tt-form-fields--underline .tt-column-settings-panel--dates .tt-select:focus {
    border-color: #1e4d8c !important;
    box-shadow: none !important;
    outline: none !important;
}
.tt-column-settings-panel--dates .tt-column-settings-item {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    color: #132d5a;
}
.tt-column-settings-panel--dates .tt-tab-settings-checklist {
    gap: 8px;
    min-height: 0;
}
.tt-column-settings-item {
    cursor: grab;
    position: relative;
    border: 1px solid transparent;
    transition: border-color 0.12s ease, box-shadow 0.12s ease, opacity 0.12s ease;
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
}
.tt-column-settings-item.is-dragging {
    opacity: 0.35;
    border-style: dashed;
    border-color: var(--tt-border-strong, #cbd5e1);
    background: var(--tt-bg-2);
}
.tt-tab-settings-checklist.is-column-drag-active .tt-column-settings-item:not(.is-dragging) {
    transition: transform 0.12s ease;
}
.tt-column-drop-indicator {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 34px;
    margin: 2px 0;
    padding: 4px 10px;
    border-radius: var(--tt-radius-sm);
    background: rgba(37, 99, 235, 0.1);
    border: 2px dashed var(--tt-accent, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
    pointer-events: none;
    animation: tt-column-drop-pulse 0.9s ease-in-out infinite alternate;
}
.tt-column-drop-indicator__line {
    flex: 1;
    height: 3px;
    border-radius: 999px;
    background: var(--tt-accent, #2563eb);
}
.tt-column-drop-indicator__label {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tt-accent, #2563eb);
}
@keyframes tt-column-drop-pulse {
    from { box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); }
    to { box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.2); }
}
.tt-column-drag-ghost {
    opacity: 0.96;
    border: 1px solid var(--tt-accent, #2563eb);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
}
.tt-column-drag-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 40px;
    margin: -8px 0 -8px -6px;
    color: var(--tt-text-muted, #9ca3af);
    cursor: grab;
    border-radius: var(--tt-radius-sm);
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}
.tt-column-drag-handle svg {
    pointer-events: none;
}
.tt-column-drag-handle:hover {
    color: var(--tt-text);
    background: var(--tt-bg-2);
}
.tt-column-drag-handle:active {
    cursor: grabbing;
}
body.tt-column-is-dragging {
    cursor: grabbing;
    user-select: none;
    -webkit-user-select: none;
    overscroll-behavior: none;
    touch-action: none;
}
body.tt-column-is-dragging .tt-tab-settings-checklist {
    overscroll-behavior: contain;
    touch-action: none;
}
.tt-column-settings-check {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
    cursor: grab;
}
.tt-tab-fav-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin-left: auto;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.tt-tab-fav-btn svg {
    display: block;
}
.tt-tab-fav-btn svg path {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linejoin: round;
}
.tt-tab-fav-btn:hover {
    color: #d4a017;
    background: rgba(245, 200, 66, 0.12);
}
.tt-tab-fav-btn.is-favorite {
    color: #d4a017;
}
.tt-tab-fav-btn.is-favorite svg path {
    fill: #f5c842;
    stroke: #c99212;
}
.tt-tab-fav-btn.is-favorite:hover {
    transform: scale(1.06);
}
.tt-column-settings-check input[type="checkbox"] {
    cursor: pointer;
    touch-action: manipulation;
}
.tt-column-move-btns {
    display: none;
    flex-direction: column;
    flex-shrink: 0;
    gap: 4px;
    margin: -4px 0 -4px -4px;
}
.tt-column-move-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-bg-2);
    color: var(--tt-text);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.tt-column-move-btn:active {
    background: var(--tt-accent-soft);
    border-color: var(--tt-accent);
    color: var(--tt-accent);
}
.tt-column-move-btn--spacer {
    visibility: hidden;
    pointer-events: none;
    border: none;
    background: transparent;
}
.tt-column-settings-item--mobile {
    cursor: default;
    touch-action: manipulation;
}
.tt-column-settings-item--mobile .tt-column-settings-check {
    cursor: pointer;
}
@media (max-width: 860px) {
    .tt-column-drag-handle { display: none !important; }
    .tt-column-move-btns { display: inline-flex; }
    .tt-column-settings-item {
        cursor: default;
        touch-action: manipulation;
    }
}
@media (min-width: 861px) {
    .tt-column-move-btns { display: none !important; }
}
.tt-tab[hidden], .tt-panel[hidden] { display: none !important; }
.tt-tab {
    position: relative;
    border: none; background: transparent; color: var(--tt-text-dim);
    padding: 9px 16px; border-radius: 999px; font-family: inherit; font-size: 13.5px; font-weight: 600;
    cursor: pointer; white-space: nowrap; transition: 0.16s;
}
.tt-tab-label { pointer-events: none; }
.tt-tab-status {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1.5px solid var(--tt-card);
    pointer-events: none;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.06);
}
.tt-tab.active .tt-tab-status {
    border-color: rgba(255, 255, 255, 0.9);
    box-shadow: none;
}
.tt-tab-status--green { background: #22c55e; }
.tt-tab-status--orange { background: #f97316; }
.tt-tab-status--red { background: #ef4444; }
.tt-tab:hover { color: var(--tt-text); background: var(--tt-bg-2); }
.tt-tab.active { color: #fff; background: var(--tt-accent-grad); box-shadow: 0 6px 16px rgba(79, 70, 229, 0.32); }
.tt-tab.tt-tab--favorite {
    color: #7a5310;
    background:
        radial-gradient(circle at 18% 28%, rgba(255, 255, 255, 0.95) 0 1px, transparent 1.5px),
        radial-gradient(circle at 78% 22%, rgba(255, 248, 200, 0.95) 0 1.2px, transparent 1.8px),
        radial-gradient(circle at 62% 72%, rgba(255, 255, 255, 0.85) 0 1px, transparent 1.6px),
        radial-gradient(circle at 30% 78%, rgba(255, 236, 160, 0.9) 0 1.1px, transparent 1.7px),
        linear-gradient(135deg, #fff4c4 0%, #f5c842 48%, #e8b020 100%);
    box-shadow: 0 4px 14px rgba(212, 160, 23, 0.28);
    overflow: hidden;
}
.tt-tab.tt-tab--favorite::before,
.tt-tab.tt-tab--favorite::after {
    content: '';
    position: absolute;
    width: 5px;
    height: 5px;
    pointer-events: none;
    background: #fff8d6;
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
    opacity: 0.85;
    animation: tt-tab-sparkle 2.4s ease-in-out infinite;
}
.tt-tab.tt-tab--favorite::before {
    top: 3px;
    left: 8px;
}
.tt-tab.tt-tab--favorite::after {
    right: 10px;
    bottom: 4px;
    width: 4px;
    height: 4px;
    animation-delay: 1.1s;
}
.tt-tab.tt-tab--favorite:hover {
    color: #6b470c;
    background:
        radial-gradient(circle at 18% 28%, rgba(255, 255, 255, 0.95) 0 1px, transparent 1.5px),
        radial-gradient(circle at 78% 22%, rgba(255, 248, 200, 0.95) 0 1.2px, transparent 1.8px),
        radial-gradient(circle at 62% 72%, rgba(255, 255, 255, 0.85) 0 1px, transparent 1.6px),
        radial-gradient(circle at 30% 78%, rgba(255, 236, 160, 0.9) 0 1.1px, transparent 1.7px),
        linear-gradient(135deg, #fff7d0 0%, #f7cf4f 48%, #ebb326 100%);
}
.tt-tab.tt-tab--favorite.active {
    color: #5c3d08;
    background:
        radial-gradient(circle at 18% 28%, rgba(255, 255, 255, 0.95) 0 1px, transparent 1.5px),
        radial-gradient(circle at 78% 22%, rgba(255, 248, 200, 0.95) 0 1.2px, transparent 1.8px),
        radial-gradient(circle at 62% 72%, rgba(255, 255, 255, 0.85) 0 1px, transparent 1.6px),
        radial-gradient(circle at 30% 78%, rgba(255, 236, 160, 0.9) 0 1.1px, transparent 1.7px),
        linear-gradient(135deg, #ffe9a0 0%, #f0b429 45%, #d99912 100%);
    box-shadow: 0 6px 16px rgba(196, 140, 16, 0.38);
}
.tt-tab.tt-tab--favorite.active .tt-tab-status {
    border-color: rgba(255, 244, 196, 0.95);
}
@keyframes tt-tab-sparkle {
    0%, 100% { opacity: 0.35; transform: scale(0.75) rotate(0deg); }
    50% { opacity: 1; transform: scale(1.15) rotate(18deg); }
}

/* Subject Property Info — inner tabs (two rows, no horizontal scroll) */
.tt-subject-tabs-wrap { margin-top: 4px; min-width: 0; }
.tt-subject-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 16px;
    padding: 4px;
    background: var(--tt-bg-2);
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    overflow: visible;
}
.tt-subject-tab {
    border: none;
    background: transparent;
    color: var(--tt-text-dim);
    padding: 8px 10px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    cursor: pointer;
    white-space: normal;
    min-width: 0;
    transition: 0.16s;
}
.tt-subject-tab:hover { color: var(--tt-text); background: var(--tt-card); }
.tt-subject-tab.active {
    color: var(--tt-accent);
    background: var(--tt-card);
    box-shadow: 0 2px 8px rgba(79, 70, 229, 0.12);
}
.tt-perm-readonly .tt-subject-tab {
    display: inline-block !important;
}
.tt-subject-panel { display: none; animation: tt-fade 0.2s ease; }
.tt-subject-panel.active { display: block; }
.tt-subject-panel[hidden] { display: none !important; }
.tt-compensation-groups {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.tt-compensation-dual {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}
.tt-compensation-side {
    border-radius: var(--tt-radius-sm);
    padding: 14px 14px 16px;
    border: 1px solid transparent;
}
.tt-compensation-side--our {
    background: rgba(79, 70, 229, 0.05);
    border-color: rgba(79, 70, 229, 0.14);
}
.tt-compensation-side--other {
    background: rgba(234, 88, 12, 0.14);
    border-color: rgba(234, 88, 12, 0.28);
}
.tt-compensation-side-title {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
}
.tt-compensation-side--our .tt-compensation-side-title {
    color: #4338ca;
}
.tt-compensation-side--other .tt-compensation-side-title {
    color: #c2410c;
}
@media (max-width: 900px) {
    .tt-compensation-dual {
        grid-template-columns: 1fr;
    }
}
.tt-compensation-box {
    border: 1px solid var(--tt-border);
    border-radius: 7px;
    padding: 14px 16px;
    background: var(--tt-card);
}
.tt-compensation-box--presale { background: lavenderblush; }
.tt-compensation-box--final { background: #0077001f; }
.tt-compensation-side--our .tt-compensation-box--presale {
    background: rgba(244, 230, 255, 0.72);
}
.tt-compensation-side--our .tt-compensation-box--final {
    background: rgba(0, 119, 0, 0.09);
}
.tt-compensation-side--other .tt-compensation-box--presale {
    background: #ffc4a8;
}
.tt-compensation-side--other .tt-compensation-box--final {
    background: rgba(22, 163, 74, 0.28);
}
[data-theme="dark"] .tt-compensation-side--our {
    background: rgba(124, 92, 246, 0.12);
    border-color: rgba(124, 92, 246, 0.26);
}
[data-theme="dark"] .tt-compensation-side--other {
    background: rgba(251, 146, 60, 0.20);
    border-color: rgba(251, 146, 60, 0.38);
}
[data-theme="dark"] .tt-compensation-side--our .tt-compensation-side-title {
    color: #c4b5fd;
}
[data-theme="dark"] .tt-compensation-side--other .tt-compensation-side-title {
    color: #fdba74;
}

/* Escrow & Compensation — List / Buy Side cards */
.tt-escrow-comp-section-title {
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #0f2744 !important;
}
.tt-escrow-comp {
    margin-top: 4px;
}
.tt-escrow-comp-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}
.tt-escrow-comp-side {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-radius: 14px;
    border: 1px solid #d7e3f4;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 22px rgba(30, 64, 120, 0.07);
}
.tt-escrow-comp-side--list {
    background:
        linear-gradient(180deg, rgba(124, 92, 246, 0.14) 0%, rgba(124, 92, 246, 0.04) 42%, #fff 72%);
}
.tt-escrow-comp-side--buy {
    background:
        linear-gradient(180deg, rgba(251, 146, 60, 0.18) 0%, rgba(251, 146, 60, 0.05) 42%, #fff 72%);
}
.tt-escrow-comp-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px 10px;
}
.tt-escrow-comp-icon {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex: 0 0 auto;
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.18);
}
.tt-escrow-comp-side--list .tt-escrow-comp-icon {
    background: linear-gradient(145deg, #6366f1 0%, #4f46e5 100%);
}
.tt-escrow-comp-side--buy .tt-escrow-comp-icon {
    background: linear-gradient(145deg, #fb923c 0%, #ea580c 100%);
}
.tt-escrow-comp-icon svg {
    width: 20px;
    height: 20px;
}
.tt-escrow-comp-head-rule {
    width: 1px;
    height: 22px;
    background: rgba(100, 116, 139, 0.35);
    flex: 0 0 auto;
}
.tt-escrow-comp-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #1e3a8a;
}
.tt-escrow-comp-side--buy .tt-escrow-comp-title {
    color: #9a3412;
}
.tt-escrow-comp-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
    gap: 0;
    margin: 0 14px 14px;
    padding: 18px 10px 16px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e8eef7;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.tt-escrow-comp-divider {
    width: 1px;
    background: #e2e8f0;
    align-self: stretch;
}
.tt-escrow-comp-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    padding: 0 10px;
    min-width: 0;
}
.tt-escrow-comp-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.tt-escrow-comp-side--list .tt-escrow-comp-pill--estimated {
    background: #ece7ff;
    color: #3730a3;
}
.tt-escrow-comp-side--buy .tt-escrow-comp-pill--estimated {
    background: #ffedd5;
    color: #9a3412;
}
.tt-escrow-comp-pill--actual {
    background: #dcfce7;
    color: #166534;
}
.tt-escrow-comp-amount-wrap {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
    max-width: 100%;
}
.tt-escrow-comp-currency {
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1;
}
.tt-escrow-comp-side--list .tt-escrow-comp-col--estimated .tt-escrow-comp-currency,
.tt-escrow-comp-side--list .tt-escrow-comp-col--estimated .tt-escrow-comp-amount {
    color: #3730a3;
}
.tt-escrow-comp-side--buy .tt-escrow-comp-col--estimated .tt-escrow-comp-currency,
.tt-escrow-comp-side--buy .tt-escrow-comp-col--estimated .tt-escrow-comp-amount {
    color: #c2410c;
}
.tt-escrow-comp-col--actual .tt-escrow-comp-currency,
.tt-escrow-comp-col--actual .tt-escrow-comp-amount {
    color: #15803d;
}
.tt-escrow-comp-amount {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0;
    width: auto;
    min-width: 3ch;
    max-width: 11ch;
    font-size: 1.7rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    text-align: center;
    color: inherit;
    font-variant-numeric: tabular-nums;
}
.tt-escrow-comp-rate {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 0.88rem;
    color: #334155;
    font-weight: 600;
}
.tt-escrow-comp-rate-label {
    color: #64748b;
    font-weight: 650;
}
.tt-escrow-comp-percent {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    max-width: none;
}
.tt-escrow-comp-percent .tt-input {
    width: 4.2rem;
    min-width: 0;
    padding: 3px 6px;
    text-align: center;
    font-weight: 800;
    font-size: 0.9rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
    color: #0f172a;
}
.tt-escrow-comp-percent .tt-percent-sign {
    position: static;
    font-weight: 800;
    color: #0f172a;
}
.tt-escrow-comp-basis {
    margin: 2px 0 0;
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
    line-height: 1.35;
}
.tt-escrow-comp-basis .tt-percent-basis-text {
    color: #0f172a;
    font-weight: 800;
}
@media (max-width: 960px) {
    .tt-escrow-comp-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 520px) {
    .tt-escrow-comp-panel {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .tt-escrow-comp-divider {
        width: 100%;
        height: 1px;
    }
}
.tt-subject-placeholder {
    padding: 28px 20px;
    text-align: center;
    border: 1px dashed var(--tt-border);
    border-radius: var(--tt-radius);
    background: var(--tt-bg-2);
}
.tt-subject-placeholder-title {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-subject-placeholder-msg {
    margin: 0;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-apn-related-section--tab { margin-top: 0; }
.tt-apn-related-card--tab {
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-card-2);
    overflow: hidden;
    box-shadow: var(--tt-shadow);
}
.tt-apn-related-header--static {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--tt-border);
    background: var(--tt-card);
}
.tt-apn-related-section--tab .tt-apn-related-panel {
    display: block !important;
    padding: 14px;
    border-top: none;
    background: var(--tt-card-2);
}
.tt-apn-related-section--tab .tt-apn-related-toolbar {
    padding-top: 0;
    margin-bottom: 14px;
}
.tt-apn-related-section--tab .tt-apn-doc-upload,
.tt-apn-related-section--tab .tt-apn-link-docs-btn {
    flex: 1 1 220px;
    min-height: 38px;
}
.tt-apn-doc-upload-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: var(--tt-accent-soft);
    color: var(--tt-accent);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
}
.tt-apn-related-section--tab .tt-apn-doc-upload {
    gap: 8px;
}
.tt-apn-related-section--tab .tt-apn-docs-list {
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: var(--tt-card);
    padding: 6px;
}
.tt-apn-related-section--tab .tt-apn-doc-item {
    border-radius: 6px;
    background: var(--tt-card-2);
}
.tt-field-line--apn-docs > .tt-apn-related-section { width: 100%; }
.tt-apn-related-docs-tab-stack {
    display: grid;
    gap: 16px;
    width: 100%;
}
.tt-apn-related-docs-tab-stack > .tt-related-docs-toolbar {
    margin: 0;
}
.tt-apn-related-docs-tab-stack > .tt-record-links-card {
    margin: 0;
}

/* Hide header escrow timeline only while the Overview tab is the open tab */
body.tt-overview-active #ttDetailHeaderTimeline {
    display: none !important;
}

/* Overview tab — buyer / listing / escrow dashboards */
.tt-overview {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.tt-overview-client {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}
.tt-overview-client > .tt-overview-qa-bar {
    grid-column: 1 / -1;
    margin-top: 0;
}
.tt-overview-client > .tt-overview-card {
    min-width: 0;
    height: 100%;
}
.tt-overview-side,
.tt-overview-main,
.tt-overview-txn,
.tt-overview-txn-mid,
.tt-overview-txn-right,
.tt-overview-listing-right {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}
/* Overview cards — Dates navy chrome; keep existing grids (client / 3-col escrow / listing) */
.tt-overview-card.tt-card,
.tt-overview-card {
    padding: 0 14px 14px;
    border-radius: 14px;
    overflow: hidden !important;
    background: #f7fafc;
    border: 1px solid #dbe7f3;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-overview-card-head,
.tt-overview-timeline-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 -14px 14px;
    padding: 16px 18px;
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
    color: #fff;
    border-radius: 14px 14px 0 0;
}
.tt-overview-timeline-head {
    flex-direction: column;
    align-items: stretch;
    padding: 0;
}
.tt-overview-timeline-head .tt-overview-card-head {
    margin: 0;
    border-radius: 14px 14px 0 0;
}
.tt-overview-card-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.tt-overview-card-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    flex: 0 0 auto;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}
.tt-overview-card-icon svg {
    width: 20px;
    height: 20px;
}
.tt-overview-card-head h3 {
    margin: 0;
    padding: 0;
    border: none;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
    color: #fff !important;
}
.tt-overview-card-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-left: auto;
}
.tt-overview-edit {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.16);
    color: #fff !important;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.tt-overview-edit:hover {
    background: rgba(255, 255, 255, 0.28);
    color: #fff !important;
    text-decoration: none !important;
}
.tt-overview-detail-list,
.tt-overview-finance-list,
.tt-overview-profile-body,
.tt-overview-snapshot,
.tt-overview-chips,
.tt-overview-notes-list,
.tt-overview-criteria-grid {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-overview-profile-body {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}
.tt-overview-avatar {
    width: 72px;
    height: 72px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, #dbeafe 0%, #eff6ff 100%);
    color: #1d4ed8;
    flex: 0 0 auto;
    border: 0;
    padding: 0;
    cursor: pointer;
    overflow: hidden;
    font: inherit;
}
.tt-overview-avatar svg {
    width: 34px;
    height: 34px;
}
.tt-overview-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.tt-overview-role-pill,
.tt-overview-status-pill {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #fff;
    background: #16a34a;
}
.tt-overview-role-pill {
    background: #7c3aed;
}
.tt-overview-name {
    display: block;
    margin-top: 6px;
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f2744;
}
.tt-overview-sub {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-weight: 600;
}
.tt-overview-contact {
    margin: 12px 0 0;
    display: grid;
    gap: 8px;
}
.tt-overview-contact > div {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
}
.tt-overview-contact--icons > div {
    grid-template-columns: minmax(90px, auto) minmax(0, 1fr);
}
.tt-overview-contact dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tt-overview-contact dt svg {
    width: 14px;
    height: 14px;
    color: #2563eb;
}
.tt-overview-contact dd {
    margin: 0;
    font-weight: 650;
    color: #0f2744;
    word-break: break-word;
}
.tt-overview-contact-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-overview-contact-text {
    min-width: 0;
}
.tt-overview-contact .tt-contact-field,
.tt-overview-person .tt-contact-field {
    display: inline-flex;
    width: auto;
    gap: 4px;
}
.tt-overview-contact .tt-contact-actions--tel,
.tt-overview-person .tt-contact-actions--tel {
    display: inline-flex;
}
.tt-overview-pill {
    display: inline-flex;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
}
.tt-overview-pill.is-yes {
    background: #dcfce7;
    color: #166534;
}
.tt-overview-pill.is-no {
    background: #f1f5f9;
    color: #475569;
}
.tt-overview-notes {
    margin: 12px 0 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
    font-size: 0.9rem;
    line-height: 1.45;
}
.tt-overview-criteria-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.tt-overview-criteria-item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e8eef6;
}
.tt-overview-criteria-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #dbeafe;
    color: #1d4ed8;
    flex: 0 0 auto;
}
.tt-overview-criteria-icon svg {
    width: 16px;
    height: 16px;
}
.tt-overview-criteria-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}
.tt-overview-criteria-item strong {
    font-size: 0.95rem;
    color: #0f2744;
}
.tt-overview-criteria-areas {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #e2e8f0;
}
.tt-overview-criteria-areas-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}
.tt-overview-criteria-areas-label svg {
    width: 14px;
    height: 14px;
}
.tt-overview-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-overview-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #1e3a5f;
    background: #e0f2fe;
    border: 1px solid #7dd3fc;
}
.tt-overview-chip--trust {
    background: #ede9fe;
    border-color: #c4b5fd;
    color: #5b21b6;
    margin-top: 6px;
}
.tt-overview-chip--add {
    appearance: none;
    cursor: pointer;
    background: #eff6ff;
    border: 1px dashed #60a5fa;
    color: #1d4ed8;
}
.tt-overview-chip--add:hover {
    background: #dbeafe;
}
.tt-overview-chip--user {
    gap: 6px;
}
.tt-overview-chip-x {
    appearance: none;
    border: 0;
    background: transparent;
    color: #1e3a5f;
    font-size: 14px;
    line-height: 1;
    padding: 0;
    cursor: pointer;
}
.tt-overview-tag-input {
    width: 140px;
    min-height: 32px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid #1d4ed8;
    background: #fff;
    color: #0f2744;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
}
.tt-overview-empty {
    margin: 0 0 10px;
    color: #64748b;
    font-size: 0.9rem;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-overview-txn-grid,
.tt-overview-txn-grid--escrow,
.tt-overview-listing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
/* Overview sections: 4-column board. Spans are fixed; order is drag-and-drop. */
.tt-overview-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: dense;
    grid-auto-rows: minmax(148px, auto);
    gap: 16px;
    align-items: stretch;
}
.tt-overview-board > [data-tt-overview-span="2x1"] {
    grid-column: span 2;
}
.tt-overview-board > [data-tt-overview-span="2x2"] {
    grid-column: span 2;
    grid-row: span 2;
}
.tt-overview-board > [data-tt-overview-span="4x1"] {
    grid-column: span 4;
}
.tt-overview-board > [data-tt-overview-span="4x3"] {
    grid-column: span 4;
    grid-row: span 3;
}
.tt-overview-board > [data-tt-overview-span="4x3"] .tt-overview-tab-slot {
    max-height: none;
    min-height: 520px;
}
.tt-overview-board > [data-tt-overview-section] {
    min-width: 0;
    height: 100%;
    margin: 0;
}
.tt-overview-board > [data-tt-overview-section][hidden] {
    display: none !important;
}
.tt-overview-tab-slot {
    min-height: 0;
    max-height: 560px;
    overflow: auto;
    background: #f7fafc;
    border-radius: 0 0 12px 12px;
}
.tt-overview-board > [data-tt-overview-span="4x1"].tt-overview-tab-card .tt-overview-tab-slot {
    max-height: 440px;
}
.tt-overview-tab-slot > .tt-panel.tt-panel--overview-hosted,
.tt-overview-tab-slot > .tt-panel.tt-panel--overview-hosted[hidden] {
    display: block !important;
    position: relative;
    animation: none;
    padding: 12px;
}
/* Hosted sections stay visible and read-only. Edit lives on the card header. */
body.tt-overview-active .tt-overview-tab-slot > .tt-panel.tt-panel--overview-hosted,
body.tt-overview-active .tt-overview-tab-slot > .tt-panel.tt-panel--overview-hosted[hidden] {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
}
body.tt-overview-active .tt-panel--overview-hosted input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.tt-overview-active .tt-panel--overview-hosted select,
body.tt-overview-active .tt-panel--overview-hosted textarea,
body.tt-form-fields--underline.tt-overview-active .tt-panel--overview-hosted .tt-input,
body.tt-form-fields--underline.tt-overview-active .tt-panel--overview-hosted select,
body.tt-form-fields--underline.tt-overview-active .tt-panel--overview-hosted textarea,
body.tt-overview-active .tt-panel--overview-hosted .tt-category-select-trigger,
body.tt-overview-active .tt-panel--overview-hosted .tt-email-chips-box {
    pointer-events: none !important;
    color: #0f2744 !important;
    -webkit-text-fill-color: #0f2744 !important;
    opacity: 1 !important;
    background-color: #fff !important;
    border: 1px solid #d5e2f0 !important;
    min-height: 32px !important;
    cursor: default !important;
}
body.tt-overview-active .tt-panel--overview-hosted input[type="checkbox"],
body.tt-overview-active .tt-panel--overview-hosted input[type="radio"],
body.tt-overview-active .tt-panel--overview-hosted label {
    pointer-events: none !important;
}
body.tt-overview-active .tt-panel--overview-hosted input[type="file"],
body.tt-overview-active .tt-panel--overview-hosted .tt-concession-add-fee-wrap,
body.tt-overview-active .tt-panel--overview-hosted .tt-mns-row--add-fee {
    display: none !important;
}
.tt-overview-hide-eye {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid #b4d5fa;
    background: #fff;
    color: #163a66;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    flex: 0 0 auto;
}
.tt-overview-hide-eye svg {
    width: 18px;
    height: 18px;
}
.tt-overview-pref-metrics {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 8px 6px;
}
.tt-overview-pref-metrics .tt-detail-hero-stat {
    min-width: 96px;
}
body.tt-overview-active .tt-panel--overview-hosted .tt-contact-actions,
body.tt-overview-active .tt-panel--overview-hosted .tt-contact-action,
body.tt-overview-active .tt-panel--overview-hosted .tt-overview-contact-avatar,
body.tt-overview-active .tt-panel--overview-hosted .tt-contact-actions--tel {
    display: inline-flex !important;
    pointer-events: auto !important;
}
/* Overview Docs & Links: one title (the card header). Explorer fills the card. Management buttons stay on the Docs tab. */
body.tt-overview-active .tt-overview-board > .tt-overview-tab-card[data-tt-overview-section="tab:docs"] {
    display: flex;
    flex-direction: column;
    padding: 0;
    height: 100%;
    min-height: 0;
}
body.tt-overview-active .tt-overview-tab-card[data-tt-overview-section="tab:docs"] > .tt-overview-card-head {
    margin: 0;
    flex: 0 0 auto;
}
body.tt-overview-active .tt-overview-tab-card[data-tt-overview-section="tab:docs"] > .tt-overview-tab-slot {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    padding: 0;
    background: #fff;
    overflow: hidden;
    border-radius: 0 0 13px 13px;
}
body.tt-overview-active .tt-overview-tab-slot > .tt-panel.tt-panel--overview-hosted[data-tt-panel="docs"],
body.tt-overview-active .tt-overview-tab-slot > .tt-panel.tt-panel--overview-hosted[data-tt-panel="docs"][hidden] {
    flex: 1 1 auto;
    align-self: stretch;
    display: flex !important;
    flex-direction: column;
    height: 100% !important;
    min-height: 100%;
    padding: 0 !important;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] > [data-tt-perm-section="docs"],
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-layout,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-chrome-card,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-chrome-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    width: 100%;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-layout {
    gap: 0;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-chrome-card,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-chrome-card.tt-form-card--contingency-opts {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-chrome-card > .tt-contingency-opts-head {
    display: none !important;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-chrome-body {
    padding: 0;
    gap: 0;
    background: transparent;
    border-radius: 0;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-explorer {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-folders,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-file-pane {
    min-height: 0;
    height: 100%;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-toolbar-wrap,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-folders-actions,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-fm-actions {
    display: none !important;
}
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-explorer a,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-explorer button,
body.tt-overview-active .tt-panel--overview-hosted[data-tt-panel="docs"] .tt-docs-explorer [role="button"] {
    pointer-events: auto !important;
}
/* Gallery overview (?gallery=1 only). Absent that param, these rules do not apply. */
body.tt-overview-gallery .tt-overview-board > [data-tt-overview-section^="tab:"] {
    display: none !important;
}
body.tt-overview-gallery .tt-stage-pipeline--tabs {
    padding: 8px 8px 0;
    background: transparent;
}
body.tt-overview-gallery .tt-stage-pipeline--tabs .tt-stage-pipeline-track {
    min-height: calc(8px + (48px * var(--tt-dock-max, 1.92)) + 16px + (18px * var(--tt-dock-max, 1.92) * 1.3));
}
body.tt-overview-gallery .tt-stage-pipeline--tabs .tt-stage-pipeline-date,
body.tt-overview-gallery .tt-stage-pipeline--tabs .tt-stage-pipeline-status,
body.tt-overview-gallery .tt-stage-pipeline--tabs .tt-stage-pipeline-eye {
    display: none !important;
}
body.tt-overview-gallery .tt-overview-gallery-tabs-body {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: #f7fafc;
}
.tt-gallery-preview {
    border-top: 1px solid #dbe7f3;
    background: #111;
}
.tt-gallery-preview-kicker {
    margin: 0;
    padding: 12px 16px 0;
    color: #fff;
    font-size: 15px;
    font-weight: 750;
}
.tt-gallery-preview-viewport {
    position: relative;
    overflow: hidden;
    min-height: 420px;
    height: 62vh;
    max-height: 72vh;
    perspective: 1600px;
    perspective-origin: 50% 46%;
    background:
        radial-gradient(ellipse at 50% 42%, rgba(255, 255, 255, 0.08), transparent 55%),
        linear-gradient(180deg, #2a2a2a 0%, #111 58%, #0a0a0a 100%);
}
.tt-gallery-preview-sheet {
    position: absolute;
    top: 28px;
    bottom: 86px;
    left: 18%;
    right: 18%;
    overflow: auto;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 22px 50px rgba(0, 0, 0, 0.55);
    transform-origin: center center;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    transition: transform 0.62s cubic-bezier(0.22, 0.61, 0.36, 1);
    -webkit-box-reflect: below 10px linear-gradient(transparent 50%, rgba(255, 255, 255, 0.22));
}
.tt-gallery-preview-sheet.is-from-right,
.tt-gallery-preview-sheet.is-to-right {
    transform: translate3d(68%, 0, -220px) rotateY(-64deg);
    z-index: 1;
}
.tt-gallery-preview-sheet.is-from-left,
.tt-gallery-preview-sheet.is-to-left {
    transform: translate3d(-68%, 0, -220px) rotateY(64deg);
    z-index: 1;
}
.tt-gallery-preview-sheet.is-current {
    transform: translate3d(0, 0, 90px) rotateY(0deg);
    z-index: 3;
}
body.tt-overview-gallery .tt-gallery-preview-sheet > .tt-panel.tt-panel--overview-hosted,
body.tt-overview-gallery .tt-gallery-preview-sheet > .tt-panel.tt-panel--overview-hosted[hidden] {
    display: block !important;
    position: relative;
    animation: none;
    padding: 12px 14px 18px;
    height: auto !important;
}
@media (prefers-reduced-motion: reduce) {
    .tt-gallery-preview-sheet { transition: none; }
}
.tt-overview-sections-dialog.tt-modal {
    width: min(560px, calc(100vw - 32px));
    max-width: 560px;
    max-height: min(760px, calc(100vh - 32px));
    background: transparent;
    border: 0;
    box-shadow: none;
    overflow: visible;
}
.tt-overview-sections-card.tt-form-card.tt-form-card--contingency-opts {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-height: min(760px, calc(100vh - 32px));
    padding: 0;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    overflow: hidden !important;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-overview-sections-card .tt-contingency-opts-head {
    border-radius: 14px 14px 0 0;
}
.tt-overview-sections-card .tt-contingency-opts-title.tt-card-title {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    color: #fff !important;
    font-size: 1.05rem !important;
    font-weight: 700;
    letter-spacing: 0 !important;
    line-height: 1.3;
    text-transform: none !important;
}
.tt-overview-sections-card .tt-modal-close {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #fff;
    color: #163a66;
    font-size: 22px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.tt-overview-sections-card .tt-contingency-opts-body {
    min-height: 0;
    overflow: auto;
    background: #f7fafc;
}
.tt-overview-sections-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-overview-sections-actions .tt-btn {
    background: #fff !important;
    color: #0f2744 !important;
    border: 1px solid #b4d5fa !important;
    border-radius: 10px !important;
}
.tt-overview-sections-actions .tt-btn:hover {
    background: #e8f1ff !important;
    color: #0f2744 !important;
}
.tt-overview-sections-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tt-overview-section-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    font: inherit;
    text-align: left;
    cursor: pointer;
    appearance: none;
}
.tt-overview-section-row.is-shown:hover {
    background: #dcfce7;
}
.tt-overview-section-row.is-hidden:hover {
    background: #fee2e2;
}
.tt-overview-section-row:focus-visible {
    outline: 2px solid #163a66;
    outline-offset: 2px;
}
.tt-overview-section-row.is-shown {
    background: #f0fdf4;
    border-color: #4ade80;
}
.tt-overview-section-row.is-hidden {
    background: #fef2f2;
    border-color: #fca5a5;
}
.tt-overview-section-row-title {
    color: #0f2744;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}
.tt-overview-section-row.is-shown .tt-overview-section-row-title {
    color: #14532d;
}
.tt-overview-section-row.is-hidden .tt-overview-section-row-title {
    color: #7f1d1d;
}
.tt-overview-section-eye {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    border: 1px solid #4ade80;
    border-radius: 10px;
    background: #dcfce7;
    color: #15803d;
    cursor: pointer;
}
.tt-overview-section-row.is-shown .tt-overview-section-eye {
    border-color: #4ade80;
    background: #dcfce7;
    color: #15803d;
}
.tt-overview-section-row.is-hidden .tt-overview-section-eye {
    border-color: #fca5a5;
    background: #fee2e2;
    color: #b91c1c;
}
.tt-overview-section-eye svg {
    width: 18px;
    height: 18px;
    color: inherit;
    stroke: currentColor;
}
.tt-overview-drag {
    display: none;
}
.tt-overview-board .tt-overview-drag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0;
    padding: 0;
    border: 1px solid #fff;
    border-radius: 10px;
    background: #fff;
    color: #163a66;
    cursor: grab;
    flex: 0 0 auto;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.12);
}
.tt-overview-board .tt-overview-drag svg {
    width: 18px;
    height: 18px;
    stroke: #163a66;
}
.tt-overview-board .tt-overview-drag:active {
    cursor: grabbing;
}
.tt-overview-board .tt-overview-qa-bar-head {
    display: flex;
    align-items: center;
    gap: 10px;
}
.tt-overview-board .tt-overview-qa-bar-head strong {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-overview-board.is-overview-sorting {
    padding-bottom: 88px;
}
.tt-overview-board > .is-overview-dragging {
    opacity: 0.55;
    outline: 2px dashed #93c5fd;
    outline-offset: 3px;
}
.tt-overview-timeline .tt-stage-pipeline-brand {
    display: none;
}
.tt-overview-timeline .tt-stage-pipeline-head {
    justify-content: flex-end;
    margin-bottom: 8px;
}
.tt-overview-timeline .tt-stage-pipeline {
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}
.tt-overview-timeline-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
}
.tt-overview-timeline-pipeline {
    min-width: 0;
    overflow-x: auto;
}
.tt-overview-days-gauge {
    width: 112px;
    height: 112px;
    border-radius: 999px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 50% 40%, #eff6ff 0%, #dbeafe 55%, #bfdbfe 100%);
    border: 4px solid #2563eb;
    color: #1e3a8a;
    flex: 0 0 auto;
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.18);
}
.tt-overview-days-gauge strong {
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1;
}
.tt-overview-days-gauge span {
    margin-top: 4px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.tt-overview-detail-list,
.tt-overview-finance-list {
    margin: 0;
    display: grid;
    gap: 0;
}
.tt-overview-detail-list > div,
.tt-overview-finance-list > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid #eef2f7;
}
.tt-overview-detail-list > div:last-child,
.tt-overview-finance-list > div:last-child {
    border-bottom: none;
}
.tt-overview-detail-list dt,
.tt-overview-finance-list dt {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: #64748b;
}
.tt-overview-detail-list dd,
.tt-overview-finance-list dd {
    margin: 0;
    font-weight: 750;
    color: #0f2744;
    text-align: right;
}
.tt-overview-finance-list .is-emphasis dd {
    color: #166534;
}
.tt-overview-person {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.tt-overview-contact-avatar {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    border: 1px solid #b4d5fa;
    background: #163a66;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
    flex: 0 0 auto;
    line-height: 1;
}
.tt-overview-contact-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.tt-overview-person-links {
    display: inline-flex;
    gap: 4px;
}
.tt-overview-person-link {
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
    cursor: pointer;
    font: inherit;
}
.tt-overview-person-link svg {
    width: 13px;
    height: 13px;
}
.tt-overview-snapshot-address {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}
.tt-overview-snapshot-media-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
    margin: 0 0 12px;
}
.tt-overview-snapshot-media {
    flex: 1 1 50%;
    min-width: 0;
    height: 148px;
    border-radius: 12px;
    overflow: hidden;
    background: #e2e8f0;
    border: 1px solid #dbe4f0;
}
.tt-overview-snapshot-media[hidden] { display: none !important; }
.tt-overview-snapshot-photo {
    display: block;
    width: 100%;
    height: 148px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.tt-overview-snapshot-media img {
    width: 100%;
    height: 148px;
    object-fit: cover;
    display: block;
}
.tt-overview-snapshot-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}
.tt-overview-snapshot-city {
    color: #2563eb;
    font-weight: 650;
    font-size: 0.92rem;
}
.tt-overview-snapshot-address strong {
    font-size: 0.98rem;
    color: #0f2744;
}
.tt-overview-map-thumb {
    flex: 1 1 100%;
    width: auto;
    min-width: 0;
    height: 148px;
    margin: 0;
    cursor: pointer;
    border-radius: 12px;
}
.tt-overview-snapshot-media-row:has(.tt-overview-snapshot-media:not([hidden])) .tt-overview-map-thumb {
    flex: 1 1 50%;
}
.tt-overview-map-thumb .tt-subject-map-thumb-map,
.tt-overview-map-thumb .gm-style {
    width: 100%;
    height: 148px;
    pointer-events: none;
}
.tt-overview-snapshot-specs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.tt-overview-snapshot-spec {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 8px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e8eef6;
}
.tt-overview-snapshot-spec-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #dbeafe;
    color: #1d4ed8;
    flex: 0 0 auto;
}
.tt-overview-snapshot-spec-icon svg {
    width: 14px;
    height: 14px;
}
.tt-overview-snapshot-spec-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}
.tt-overview-snapshot-spec strong {
    font-size: 0.9rem;
    color: #0f2744;
}
.tt-overview-notes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.tt-overview-note-item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 8px;
    margin: -8px;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s ease, box-shadow 0.15s ease;
}
.tt-overview-note-item:hover,
.tt-overview-note-item:focus-visible {
    background: #eff6ff;
    outline: none;
    box-shadow: inset 0 0 0 1px #bfdbfe;
}
.tt-overview-note-item.is-pinned {
    background: #fff7ed;
    box-shadow: inset 0 0 0 1px #fdba74;
}
.tt-overview-note-item.is-pinned:hover,
.tt-overview-note-item.is-pinned:focus-visible {
    background: #ffedd5;
    box-shadow: inset 0 0 0 1px #fb923c;
}
.tt-overview-note-avatar {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #dbeafe;
    color: #1d4ed8;
    font-size: 0.72rem;
    font-weight: 800;
    flex: 0 0 auto;
}
.tt-overview-note-copy {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-overview-note-copy p {
    margin: 0;
    color: #0f2744;
    font-size: 0.9rem;
    line-height: 1.4;
    font-weight: 600;
}
.tt-overview-note-meta {
    display: block;
    margin-top: 4px;
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 600;
}
.tt-overview-note-pin {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.tt-overview-note-pin svg {
    width: 15px;
    height: 15px;
}
.tt-overview-note-item.is-pinned .tt-overview-note-pin {
    color: #c2410c;
    background: #fff7ed;
    border-color: #fdba74;
}
.tt-overview-notes-all {
    appearance: none;
    margin-top: 12px;
    border: none;
    background: transparent;
    color: #1d4ed8;
    font-weight: 750;
    font-size: 0.86rem;
    cursor: pointer;
    padding: 0;
}
.tt-overview-notes-all:hover {
    text-decoration: underline;
}
.tt-overview-ownership-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-overview-ownership-pill {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #475569;
    font-size: 0.82rem;
    font-weight: 700;
}
.tt-overview-ownership-pill.is-active {
    background: #2563eb;
    border-color: #1d4ed8;
    color: #fff;
}
.tt-overview-listing-tags {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #eef2f7;
}
.tt-overview-listing-tags-label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}
.tt-overview-listing-timeline {
    margin-top: 2px;
}
.tt-overview-listing-track {
    display: flex;
    align-items: flex-start;
    gap: 0;
    overflow-x: auto;
    padding: 6px 4px 2px;
}
.tt-overview-listing-step {
    position: relative;
    flex: 1 1 0;
    min-width: 88px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
}
.tt-overview-listing-line {
    position: absolute;
    top: 11px;
    right: calc(50% + 12px);
    left: calc(-50% + 12px);
    height: 3px;
    background: #cbd5e1;
    border-radius: 999px;
}
.tt-overview-listing-step.is-done .tt-overview-listing-line,
.tt-overview-listing-step.is-current .tt-overview-listing-line {
    background: #22c55e;
}
.tt-overview-listing-node {
    width: 22px;
    height: 22px;
    border-radius: 999px;
    border: 3px solid #94a3b8;
    background: #fff;
    z-index: 1;
}
.tt-overview-listing-step.is-done .tt-overview-listing-node {
    background: #22c55e;
    border-color: #16a34a;
}
.tt-overview-listing-step.is-current .tt-overview-listing-node {
    background: #2563eb;
    border-color: #1d4ed8;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.18);
}
.tt-overview-listing-label {
    font-size: 0.78rem;
    font-weight: 750;
    color: #334155;
    line-height: 1.25;
}
.tt-overview-listing-step.is-upcoming .tt-overview-listing-label {
    color: #94a3b8;
}
.tt-overview-qa-bar {
    margin-top: 4px;
    padding: 0 14px 14px;
    border-radius: 14px;
    overflow: hidden;
    background: #f7fafc;
    border: 1px solid #dbe7f3;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-overview-qa-bar-head {
    margin: 0 -14px 14px;
    padding: 16px 18px;
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
    border-radius: 14px 14px 0 0;
}
.tt-overview-qa-bar-head strong {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
}
.tt-overview-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-overview-qa {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid transparent;
    font-weight: 750;
    font-size: 0.88rem;
    cursor: pointer;
    color: #0f2744;
}
.tt-overview-qa svg {
    width: 16px;
    height: 16px;
}
.tt-overview-qa--purple {
    background: #ede9fe;
    border-color: #c4b5fd;
    color: #5b21b6;
}
.tt-overview-qa--blue {
    background: #dbeafe;
    border-color: #93c5fd;
    color: #1e3a8a;
}
.tt-overview-qa--green {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
}
.tt-overview-qa--orange {
    background: #ffedd5;
    border-color: #fdba74;
    color: #9a3412;
}
.tt-overview-qa--violet {
    background: #e0e7ff;
    border-color: #a5b4fc;
    color: #3730a3;
}
.tt-overview-qa--sky {
    background: #e0f2fe;
    border-color: #7dd3fc;
    color: #075985;
}
.tt-overview-qa:hover {
    filter: brightness(0.97);
}
.tt-overview-property .tt-subject-property-view {
    margin: 0;
}
[data-theme="dark"] .tt-overview-card,
[data-theme="dark"] .tt-overview-qa-bar {
    background: #152033;
    border-color: rgba(148, 163, 184, 0.35);
}
[data-theme="dark"] .tt-overview-detail-list,
[data-theme="dark"] .tt-overview-finance-list,
[data-theme="dark"] .tt-overview-profile-body,
[data-theme="dark"] .tt-overview-snapshot,
[data-theme="dark"] .tt-overview-chips,
[data-theme="dark"] .tt-overview-notes-list,
[data-theme="dark"] .tt-overview-criteria-grid,
[data-theme="dark"] .tt-overview-quick-actions,
[data-theme="dark"] .tt-overview-empty {
    background: #1a2332;
    border-color: rgba(148, 163, 184, 0.28);
}
[data-theme="dark"] .tt-overview-card-head h3,
[data-theme="dark"] .tt-overview-name,
[data-theme="dark"] .tt-overview-criteria-item strong,
[data-theme="dark"] .tt-overview-contact dd,
[data-theme="dark"] .tt-overview-detail-list dd,
[data-theme="dark"] .tt-overview-finance-list dd,
[data-theme="dark"] .tt-overview-snapshot-address strong,
[data-theme="dark"] .tt-overview-snapshot-spec strong,
[data-theme="dark"] .tt-overview-note-copy p,
[data-theme="dark"] .tt-overview-qa-bar-head strong {
    color: #e8eef6;
}
[data-theme="dark"] .tt-overview-criteria-item,
[data-theme="dark"] .tt-overview-notes,
[data-theme="dark"] .tt-overview-snapshot-spec {
    background: #121a24;
    border-color: rgba(148, 163, 184, 0.28);
}
@media (max-width: 1100px) {
    .tt-overview-txn-grid,
    .tt-overview-txn-grid--escrow,
    .tt-overview-listing-grid {
        grid-template-columns: 1fr;
    }
    .tt-overview--linked .tt-overview-txn-mid,
    .tt-overview--linked .tt-overview-txn-right {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .tt-overview-timeline-top {
        grid-template-columns: 1fr;
        justify-items: center;
    }
}
@media (max-width: 900px) {
    .tt-overview-client,
    .tt-overview-board {
        grid-template-columns: 1fr;
    }
    .tt-overview-board > [data-tt-overview-span] {
        grid-column: 1 / -1;
        grid-row: auto;
    }
    .tt-overview-client > .tt-overview-card {
        height: auto;
    }
}
@media (max-width: 560px) {
    .tt-overview-client {
        gap: 12px;
    }
    .tt-overview-criteria-grid {
        grid-template-columns: 1fr;
    }
    .tt-overview-quick-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .tt-overview-qa {
        justify-content: center;
        width: 100%;
    }
}

/* Client Details tab — client profile left, subject + snapshot stacked right */
.tt-panel[data-tt-panel="client"] .tt-card-grid {
    grid-template-columns: minmax(320px, 1.2fr) minmax(300px, 0.9fr);
    align-items: start;
    gap: 22px;
}
.tt-panel[data-tt-panel="client"] .tt-card-grid > .tt-form-card,
.tt-panel[data-tt-panel="client"] .tt-client-right-stack {
    min-width: 0;
}
.tt-client-right-stack {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}
.tt-panel[data-tt-panel="client"] .tt-form-card--client-profile {
    grid-row: auto;
}
.tt-panel[data-tt-panel="client"] .tt-form-card--subject-property,
.tt-panel[data-tt-panel="client"] .tt-form-card--txn-snapshot,
.tt-panel[data-tt-panel="client"] .tt-form-card--client-profile {
    border-radius: 14px;
    border: 1px solid #dbe7f3;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    background: #fff;
}
.tt-panel[data-tt-panel="client"] .tt-form-card--contingency-opts {
    padding: 0;
    overflow: hidden;
}
.tt-panel[data-tt-panel="client"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="client"] .tt-form-card--contingency-opts > .tt-card-title-row {
    display: none;
}
.tt-client-add-link--on-navy,
.tt-subject-edit-toggle--on-navy {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.16);
    color: #fff !important;
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none !important;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.tt-client-add-link--on-navy:hover,
.tt-subject-edit-toggle--on-navy:hover {
    background: rgba(255, 255, 255, 0.28);
    color: #fff !important;
    text-decoration: none !important;
}
.tt-client-add-link--on-navy svg,
.tt-subject-edit-toggle--on-navy svg {
    width: 15px;
    height: 15px;
    color: #fff;
}
.tt-client-profile-body,
.tt-client-subject-body,
.tt-client-snapshot-body {
    gap: 12px;
}
.tt-client-meta-row {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-client-profile-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}
.tt-client-profile-body .tt-field-line,
.tt-client-subject-body .tt-field-line,
.tt-client-profile-body .tt-address-block {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    margin: 0;
}
.tt-client-profile-body .tt-address-block .tt-field-line {
    border: 0;
    box-shadow: none;
    padding: 0;
    border-radius: 0;
}
.tt-client-profile-body .tt-field-line > label,
.tt-client-profile-body .tt-field-label-col > label,
.tt-client-subject-body .tt-field-line > label,
.tt-client-subject-body .tt-field-label-col > label {
    color: #0f2744;
    font-weight: 700;
}
.tt-client-snapshot-body .tt-txn-snapshot {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-client-entity-trust {
    padding: 12px 14px;
}
@media (max-width: 720px) {
    .tt-contingency-opts-head {
        flex-wrap: wrap;
    }
    .tt-contingency-opts-head-actions {
        width: 100%;
        margin-left: 52px;
    }
}
.tt-subject-property-title-row {
    margin-bottom: 14px;
}
.tt-subject-property-title-row .tt-card-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #0f2744;
    font-weight: 800;
}
.tt-subject-edit-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: #2563eb;
    font-size: 13px;
    font-weight: 650;
    cursor: pointer;
    padding: 4px 2px;
}
.tt-subject-edit-toggle:hover {
    color: #1d4ed8;
    text-decoration: underline;
}
.tt-subject-edit-toggle svg {
    width: 14px;
    height: 14px;
}
.tt-subject-edit-toggle[aria-pressed="true"] {
    color: #0f2744;
}

/* Subject Property — view mode (design screenshot) */
.tt-subject-view {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    row-gap: 18px;
    align-items: start;
}
.tt-address-block--subject[data-tt-subject-mode="edit"] .tt-subject-view {
    display: none !important;
}
.tt-address-block--subject[data-tt-subject-mode="view"] .tt-subject-edit {
    display: none !important;
}
.tt-address-block--subject[data-tt-subject-mode="edit"] .tt-subject-edit {
    display: block;
}
.tt-subject-view-photo {
    position: relative;
    min-width: 0;
}
.tt-subject-view-photo[hidden],
.tt-subject-view-photo-btn[hidden] {
    display: none !important;
}
.tt-subject-view-photo-btn {
    position: relative;
    display: block;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid #bfd1e5;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    background: #dbe7f5;
}
.tt-subject-view-photo-btn img {
    display: block;
    width: 50px;
    height: 50px;
    object-fit: cover;
    vertical-align: middle;
}
.tt-subject-address-row {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.tt-subject-address-media {
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
}
.tt-subject-address-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}
.tt-subject-view-map-slot {
    width: 50px;
    height: 50px;
}
.tt-subject-view-map-slot[hidden] {
    display: none !important;
}
.tt-subject-view-map-slot .tt-subject-map-aside {
    margin: 0;
    width: 50px;
    height: 50px;
}
.tt-subject-view-map-slot .tt-subject-map-thumb {
    width: 50px;
    height: 50px;
    border-radius: 10px;
}
.tt-subject-view-map-slot .tt-subject-map-thumb-map {
    width: 50px;
    height: 50px;
}
.tt-subject-view-map-slot .tt-subject-map-link {
    display: none !important;
}
.tt-subject-view-map-slot .tt-subject-map-thumb-overlay {
    display: none;
}
.tt-subject-view-map-slot .tt-subject-map-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    margin: 0;
    padding: 0;
    border: 1px solid #bfd1e5;
    border-radius: 10px;
    background: #eef4fb;
    color: #2563eb;
}
.tt-subject-view-map-slot .tt-subject-map-empty svg {
    width: 25px;
    height: 25px;
}
.tt-subject-view-map-slot .tt-subject-map-empty span {
    display: none;
}
.tt-subject-view-main {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tt-subject-view-address {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}
.tt-subject-view-street {
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    color: #0f2744;
}
.tt-subject-view-city {
    font-size: 14px;
    font-weight: 550;
    color: #3b82f6;
}
.tt-subject-view-map-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    margin-left: 62px;
    padding: 7px 12px;
    border: 0;
    border-radius: 999px;
    background: #e8f1ff;
    color: #2563eb;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.tt-subject-view-map-btn:hover {
    background: #dbe7ff;
}
.tt-subject-view-map-btn svg {
    width: 14px;
    height: 14px;
}
.tt-subject-view-specs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid #e6edf5;
}
.tt-subject-view-spec {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 8px 12px 0;
    border-bottom: 1px solid #e6edf5;
    min-width: 0;
}
.tt-subject-view-spec-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-top: 2px;
    color: #1d4ed8;
}
.tt-subject-view-spec-icon svg {
    width: 18px;
    height: 18px;
}
.tt-subject-view-spec-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-subject-view-spec-label {
    font-size: 17px;
    font-weight: 600;
    color: #1e5a96;
}
.tt-subject-view-spec-value {
    font-size: 14px;
    font-weight: 750;
    color: #0f2744;
    line-height: 1.25;
    word-break: break-word;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-subject-view-spec-primary {
    font-weight: inherit;
    color: inherit;
}
.tt-subject-view-spec-secondary {
    font-size: 13px;
    font-weight: 650;
    color: #334155;
    line-height: 1.2;
}
.tt-subject-view-ownership {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
    padding-top: 4px;
}
.tt-subject-view-ownership-title {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 800;
    color: #0f2744;
}
.tt-subject-view-ownership-pills {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
}
.tt-subject-view-ownership-pill {
    border: 0;
    border-radius: 999px;
    padding: 9px 16px;
    background: #eef4fb;
    color: #0f2744;
    font-size: 13px;
    font-weight: 650;
    cursor: pointer;
    width: 100%;
}
.tt-subject-view-ownership-pill.is-active {
    background: #2563eb;
    color: #fff;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.28);
}
.tt-subject-view-ownership-pill:hover:not(.is-active) {
    background: #e2ebf6;
}
@media (max-width: 900px) {
    .tt-subject-view {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
    }
    .tt-subject-view-main {
        grid-column: 1;
        grid-row: 1;
    }
    .tt-subject-view-ownership {
        grid-column: 1;
        grid-row: 2;
    }
    .tt-subject-view-specs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Subject Property — edit mode polish */
.tt-address-block--subject .tt-field-label-col .tt-btn-mailing-copy {
    background: #efe8ff;
    color: #7c3aed;
    border-color: rgba(124, 58, 237, 0.28);
    font-weight: 700;
}
.tt-address-block--subject .tt-field-label-col .tt-btn-mailing-copy:hover {
    background: #e6dbff;
    color: #6d28d9;
}
.tt-address-block--subject .tt-field-label-col .tt-btn-ghost {
    color: #2563eb;
    font-weight: 650;
}
.tt-subject-edit-map-slot {
    width: 100%;
    margin-top: 8px;
}
.tt-subject-edit-map-slot .tt-subject-map-aside {
    margin-top: 0;
}
.tt-subject-ownership-bottom {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid #dbe6f4;
}
.tt-subject-ownership-bottom .tt-subject-ownership-type {
    width: 100%;
}
.tt-subject-ownership-bottom .tt-field-line {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin: 0;
}
.tt-subject-ownership-bottom .tt-field-line > label {
    text-align: left;
    font-size: 14px;
    font-weight: 800;
    color: #0f2744;
}
.tt-subject-ownership-bottom .tt-field-control,
.tt-subject-ownership-bottom .tt-radio-group {
    width: 100%;
    max-width: none;
}
.tt-subject-ownership-bottom .tt-radio-group {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1100px) {
    .tt-subject-trust-row {
        grid-template-columns: 1fr;
    }
    .tt-panel[data-tt-panel="client"] .tt-card-grid {
        grid-template-columns: 1fr;
    }
    .tt-panel[data-tt-panel="client"] .tt-form-card--client-profile {
        grid-row: auto;
    }
}

/* Agents Details tab — primary + co-agent side by side; Additional full-width (layout kept) */
.tt-panel[data-tt-panel="agent"] .tt-card-grid {
    grid-template-columns: minmax(300px, 1fr) minmax(300px, 1fr);
    align-items: start;
}
.tt-panel[data-tt-panel="agent"] .tt-card-grid > .tt-form-card {
    min-width: 0;
}
.tt-panel[data-tt-panel="agent"] .tt-card-grid > .tt-form-card:has([data-tt-additional-agents]) {
    grid-column: 1 / -1;
}
.tt-panel[data-tt-panel="agent"] .tt-form-card--contingency-opts {
    padding: 0;
    overflow: hidden !important;
    border-radius: 14px;
}
.tt-panel[data-tt-panel="agent"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="agent"] .tt-form-card--contingency-opts > .tt-card-title-row {
    display: none;
}
.tt-agent-block-body,
.tt-agent-additional-body {
    gap: 12px;
}
.tt-agent-block-body .tt-agent-block-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}
.tt-agent-block-body .tt-field-line,
.tt-agent-block-body .tt-address-block {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    margin: 0;
}
.tt-agent-block-body .tt-address-block .tt-field-line {
    border: 0;
    box-shadow: none;
    padding: 0;
    border-radius: 0;
    background: transparent;
}
.tt-agent-block-body .tt-field-line > label,
.tt-agent-block-body .tt-field-label-col > label {
    color: #0f2744;
    font-weight: 700;
}
.tt-agent-additional-body .tt-field-hint {
    margin: 0;
}
.tt-agent-additional-body .tt-additional-agents-list {
    margin-top: 0;
}
.tt-additional-agents-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}
.tt-additional-agents-head .tt-card-title { margin: 0; }
.tt-additional-agents-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 16px;
    margin-top: 14px;
}
.tt-additional-agent-card {
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    background: #fff;
    padding: 14px 14px 10px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-additional-agent-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.tt-additional-agent-title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-additional-agent-remove { color: #b91c1c; }
@media (max-width: 1100px) {
    .tt-panel[data-tt-panel="agent"] .tt-card-grid {
        grid-template-columns: 1fr;
    }
}

/* TC tab — our side and other side side by side */
.tt-panel[data-tt-panel="transaction_coordinators"] .tt-card-grid {
    grid-template-columns: minmax(300px, 1fr) minmax(300px, 1fr);
    align-items: start;
}
.tt-panel[data-tt-panel="transaction_coordinators"] .tt-card-grid > .tt-form-card {
    min-width: 0;
}
@media (max-width: 1100px) {
    .tt-panel[data-tt-panel="transaction_coordinators"] .tt-card-grid {
        grid-template-columns: 1fr;
    }
}

/* Contact / TC / Other Side / Loan / Concessions / Escrow / Inspections / HPP-NHD — navy chrome, keep grids */
.tt-panel[data-tt-panel="transaction_coordinators"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="other_side"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="loan"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="concessions"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="escrow"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="inspections"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="hw_nhd"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="buyer_preferences"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="notes"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="tasks"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="cda"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="docs"] .tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="logs"] .tt-form-card--contingency-opts {
    padding: 0;
    overflow: hidden !important;
    border-radius: 14px;
}
.tt-panel[data-tt-panel="transaction_coordinators"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="transaction_coordinators"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="other_side"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="other_side"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="loan"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="loan"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="concessions"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="concessions"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="escrow"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="escrow"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="inspections"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="inspections"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="hw_nhd"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="hw_nhd"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="buyer_preferences"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="buyer_preferences"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="notes"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="notes"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="tasks"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="tasks"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="cda"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="cda"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="docs"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="docs"] .tt-form-card--contingency-opts > .tt-card-title-row,
.tt-panel[data-tt-panel="logs"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="logs"] .tt-form-card--contingency-opts > .tt-card-title-row {
    display: none;
}
.tt-panel[data-tt-panel="escrow"] .tt-card-grid,
.tt-panel[data-tt-panel="inspections"] .tt-card-grid,
.tt-panel[data-tt-panel="hw_nhd"] .tt-card-grid,
.tt-panel[data-tt-panel="buyer_preferences"] .tt-card-grid {
    align-items: start;
}
.tt-panel[data-tt-panel="escrow"] .tt-card-grid > .tt-form-card,
.tt-panel[data-tt-panel="inspections"] .tt-card-grid > .tt-form-card,
.tt-panel[data-tt-panel="hw_nhd"] .tt-card-grid > .tt-form-card,
.tt-panel[data-tt-panel="buyer_preferences"] .tt-card-grid > .tt-form-card {
    min-width: 0;
}
.tt-contact-chrome-body {
    gap: 12px;
}
.tt-contact-chrome-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}
.tt-contact-chrome-body .tt-field-line,
.tt-contact-chrome-body .tt-address-block,
.tt-cda-chrome-body .tt-field-line,
.tt-cda-chrome-body .tt-address-block {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    margin: 0;
}
.tt-contact-chrome-body .tt-address-block .tt-field-line,
.tt-cda-chrome-body .tt-address-block .tt-field-line {
    border: 0;
    box-shadow: none;
    padding: 0;
    border-radius: 0;
    background: transparent;
}
.tt-contact-chrome-body .tt-field-line > label,
.tt-contact-chrome-body .tt-field-label-col > label,
.tt-cda-chrome-body .tt-field-line > label,
.tt-cda-chrome-body .tt-field-label-col > label {
    color: #0f2744;
    font-weight: 700;
}
.tt-panel[data-tt-panel="loan"] .tt-card-grid {
    align-items: start;
}
.tt-panel[data-tt-panel="loan"] .tt-card-grid > .tt-form-card {
    min-width: 0;
}
.tt-panel[data-tt-panel="cda"] .tt-card-grid--cda > .tt-cda-step-card {
    min-width: 0;
}
.tt-cda-chrome-body {
    gap: 12px;
}
.tt-cda-chrome-body .tt-cda-dynamic-list,
.tt-cda-chrome-body .tt-cda-step3-report {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}

/* Notes — navy composer + timeline */
.tt-notes-chrome-body {
    gap: 12px;
}
.tt-notes-chrome-body .tt-note-input {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
}
.tt-notes-chrome-body .tt-note-priority,
.tt-notes-chrome-body .tt-note-composer-foot {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-notes-chrome-body .tt-note-composer-foot {
    margin-top: 0;
}
.tt-notes-chrome-body .tt-note {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-notes-chrome-body .tt-note-empty {
    margin: 0;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    color: #0f2744;
}

/* Tasks — navy checklists + dated tasks shells */
.tt-panel[data-tt-panel="tasks"] .tt-checklists-wrap.tt-form-card--contingency-opts,
.tt-panel[data-tt-panel="tasks"] .tt-tasks-dated.tt-form-card--contingency-opts {
    gap: 0;
    background: #fff;
    border: 1px solid #dbe7f3;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-panel[data-tt-panel="tasks"] .tt-checklists-wrap.tt-form-card--contingency-opts {
    overflow: visible !important;
}
.tt-panel[data-tt-panel="tasks"] .tt-checklists-head.tt-contingency-opts-head {
    align-items: flex-start;
    overflow: visible;
    position: relative;
    z-index: 50;
}
.tt-panel[data-tt-panel="tasks"] .tt-checklists-head-meta {
    position: relative;
    z-index: 55;
}
.tt-panel[data-tt-panel="tasks"] .tt-checklists-sub.tt-contingency-opts-sub {
    color: rgba(255, 255, 255, 0.82);
}
.tt-panel[data-tt-panel="tasks"] .tt-checklists-progress {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.45);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.tt-panel[data-tt-panel="tasks"] .tt-checklists-activate-btn {
    background: #fff !important;
    color: #0f2744 !important;
    border: 1px solid #fff !important;
    font-weight: 750;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.22);
}
.tt-panel[data-tt-panel="tasks"] .tt-checklists-activate-btn:hover {
    background: #eef5ff !important;
    color: #0f2744 !important;
    border-color: #dbe7f3 !important;
}
.tt-tasks-chrome-body {
    gap: 12px;
}
.tt-tasks-chrome-body .tt-tasks-add,
.tt-tasks-chrome-body .tt-tasks-table-wrap,
.tt-tasks-chrome-body .tt-checklists-list {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}

/* Docs — navy shell clips to 14px corners (same as Key Dates / Contingency cards). */
.tt-panel[data-tt-panel="docs"] .tt-docs-chrome-card.tt-form-card--contingency-opts,
.tt-form-card.tt-docs-chrome-card.tt-form-card--contingency-opts {
    overflow: hidden !important;
    border-radius: 14px;
}
.tt-docs-chrome-body {
    gap: 12px;
    border-radius: 0 0 14px 14px;
    overflow: hidden;
}
.tt-docs-chrome-body .tt-docs-toolbar-wrap {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-docs-chrome-body .tt-docs-explorer {
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    overflow: hidden;
}

/* Logs — navy chrome; keep row list internals */
.tt-logs-chrome-body {
    gap: 10px;
}
.tt-logs-chrome-body .tt-logs-archive-actions {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-logs-list-body .tt-logs-sort-hint {
    margin: 0;
    color: #475569;
    font-weight: 600;
}
.tt-logs-list-body .tt-logs-list {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-logs-intro-copy {
    margin: 0;
    color: #0f2744;
}

/* Co-Agent Address: same 150px | control grid as Primary; Copy sits under the label. */
.tt-panel[data-tt-panel="agent"] .tt-field-line--co-agent-address {
    align-items: start;
}
.tt-panel[data-tt-panel="agent"] .tt-co-agent-address-label-block {
    min-width: 0;
}
.tt-panel[data-tt-panel="agent"] .tt-co-agent-address-label-block > label {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
/* Temporarily hidden — restore display:flex (+ hover) when bringing Copy From Primary back. */
.tt-panel[data-tt-panel="agent"] .tt-co-agent-copy-primary-btn {
    display: none !important;
}
.tt-panel[data-tt-panel="agent"] .tt-field-line--co-agent-address .tt-field-control {
    width: 100%;
    min-width: 0;
}
.tt-panel[data-tt-panel="agent"] .tt-address-block--co-agent .tt-address-block-meta {
    margin-left: 162px;
}

/* HOA/PM tab — HOA 1 and HOA 2 side by side (layout unchanged; navy chrome only) */
.tt-panel[data-tt-panel="hoa"] .tt-card-grid {
    grid-template-columns: minmax(300px, 1fr) minmax(300px, 1fr);
    align-items: start;
}
.tt-panel[data-tt-panel="hoa"] .tt-card-grid > .tt-form-card {
    min-width: 0;
}
.tt-panel[data-tt-panel="hoa"] .tt-form-card--contingency-opts {
    padding: 0;
    overflow: hidden;
}
.tt-panel[data-tt-panel="hoa"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="hoa"] .tt-form-card--contingency-opts > .tt-card-title-row {
    display: none;
}
.tt-hoa-pm-body {
    gap: 12px;
}
.tt-hoa-pm-body .tt-property-hoa-pm-panel {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}
.tt-hoa-pm-body .tt-field-line,
.tt-hoa-pm-body .tt-directory-search {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    margin: 0;
}
.tt-hoa-pm-body .tt-field-line > label,
.tt-hoa-pm-body .tt-field-label-col > label {
    color: #0f2744;
    font-weight: 700;
}
.tt-hoa-pm-body .tt-property-hoa-pm-fees {
    margin-top: 4px;
    padding: 12px 14px;
    border-top: 0;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-hoa-pm-body .tt-property-hoa-pm-fees .tt-field-line {
    border: 0;
    box-shadow: none;
    padding: 0;
    border-radius: 0;
    background: transparent;
}
@media (max-width: 1100px) {
    .tt-panel[data-tt-panel="hoa"] .tt-card-grid {
        grid-template-columns: 1fr;
    }
}

.tt-property-hoa-pm-fees {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--tt-border, #e5e7eb);
}
.tt-property-hoa-pm-fees .tt-field-line {
    align-items: center;
}

.tt-property-hoa-pm-panel.is-hoa2-mirrored .tt-field-line input,
.tt-property-hoa-pm-panel.is-hoa2-mirrored .tt-field-line select,
.tt-property-hoa-pm-panel.is-hoa2-mirrored .tt-directory-search-input {
    opacity: 0.88;
}

.tt-card-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--tt-border);
    margin-bottom: 16px;
}
.tt-card-title-row .tt-card-title {
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 0;
}
.tt-hoa-same-as-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
}
.tt-hoa-same-as-checkbox input {
    width: 16px;
    height: 16px;
    margin: 0;
    cursor: pointer;
}
.tt-hoa-same-as-checkbox--on-navy {
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.16);
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.tt-hoa-same-as-checkbox--on-navy:hover {
    background: rgba(255, 255, 255, 0.28);
    color: #fff !important;
}
.tt-hoa-same-as-checkbox--on-navy input {
    accent-color: #fff;
    width: 16px;
    height: 16px;
}

/* Net Sheet */
.tt-mns {
    width: 100%;
    min-width: 0;
    margin-top: 4px;
}
.tt-subject-panel .tt-fields:has(.tt-mns) {
    gap: 0;
}
.tt-mns-layout {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 28px 32px;
}
.tt-mns-main {
    flex: 1 1 480px;
    min-width: 0;
}
.tt-mns-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    background: var(--tt-card);
    box-shadow: var(--tt-shadow);
}
.tt-mns-table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    table-layout: fixed;
}
.tt-mns-table th,
.tt-mns-table td {
    padding: 10px 12px;
    vertical-align: middle;
    border-bottom: 1px solid var(--tt-border);
}
.tt-mns-table thead th {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
    background: var(--tt-bg-2);
}
.tt-mns-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.tt-btn-mns-scenarios {
    border-color: transparent;
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 45%, #ea580c 100%);
    color: #1c1917;
    font-weight: 800;
    letter-spacing: 0.02em;
    box-shadow: 0 6px 18px rgba(245, 158, 11, 0.45);
}
.tt-btn-mns-scenarios:hover {
    color: #0c0a09;
    filter: brightness(1.06);
    box-shadow: 0 10px 24px rgba(234, 88, 12, 0.5);
}
.tt-mns-toolbar-hint {
    font-size: 12.5px;
    color: var(--tt-text-dim);
}
.tt-mns-head-label { width: 42%; text-align: left; }
.tt-mns-head-col { width: 28%; text-align: center; }
.tt-mns-head-col--extra { width: 30%; }
.tt-mns-row-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--tt-text);
    text-align: left;
    line-height: 1.35;
}
.tt-mns-label-with-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.tt-label-with-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.tt-mns-label-with-info .tt-field-info-popover,
.tt-label-with-info .tt-field-info-popover {
    min-width: 220px;
    max-width: min(320px, 85vw);
    white-space: normal;
}
.tt-cda-formula-popover {
    display: grid;
    gap: 8px;
}
.tt-cda-formula-heading {
    margin: 0;
    font-size: 12px;
    color: var(--tt-text);
}
.tt-cda-formula-eq {
    margin: 0;
    padding: 6px 8px;
    border-radius: 6px;
    background: var(--tt-bg-2, #f4f6f9);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 11px;
    line-height: 1.45;
    color: var(--tt-text);
}
.tt-cda-formula-breakdown {
    margin: 0;
    font-size: 11px;
    line-height: 1.45;
    color: var(--tt-text-dim);
}
.tt-mns-cell { min-width: 0; }
.tt-mns-cell--amount { text-align: center; }
.tt-mns-cell--debit,
.tt-mns-cell--credit { text-align: center; }
.tt-mns-cell--extra { text-align: left; }
.tt-mns .tt-money,
.tt-mns .tt-percent {
    width: 100%;
    max-width: none;
}
.tt-mns-money .tt-input {
    width: 100%;
    min-width: 0;
    text-align: right;
    box-sizing: border-box;
}
.tt-mns-percent .tt-input { text-align: right; }
.tt-mns-money--computed .tt-input {
    font-weight: 700;
    background: var(--tt-bg-2);
}
.tt-mns-money--computed .tt-input[data-tt-field="mns_estimated_proceeds"],
.tt-mns-money--computed .tt-input[data-tt-field="mns_total"] {
    width: 15ch;
    min-width: 15ch;
    max-width: 15ch;
}
.tt-mns-money--computed:has([data-tt-field="mns_estimated_proceeds"]),
.tt-mns-money--computed:has([data-tt-field="mns_total"]) {
    width: 15ch;
    margin-inline: auto;
}
.tt-mns-table tfoot .tt-mns-row-label { font-size: 14px; }
.tt-mns-row--total .tt-mns-row-label { font-weight: 800; }
.tt-mns-table tfoot tr:last-child th,
.tt-mns-table tfoot tr:last-child td { border-bottom: none; }
.tt-mns-sim-modal .tt-modal-body { max-height: min(70vh, 640px); overflow: auto; }
.tt-mns-sim-prices {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 16px 0 8px;
}
.tt-mns-sim-price-row {
    display: grid;
    grid-template-columns: minmax(7rem, 9rem) minmax(10rem, 14rem) auto;
    gap: 10px;
    align-items: center;
}
.tt-mns-sim-price-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text);
}
.tt-mns-sim-price-actions { margin-bottom: 16px; }
.tt-mns-sim-results {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tt-mns-sim-card {
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    padding: 12px 14px;
    background: var(--tt-bg-2);
}
.tt-mns-sim-card.is-validated {
    border-color: var(--tt-accent, #4f46e5);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tt-accent, #4f46e5) 35%, transparent);
}
.tt-mns-sim-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.tt-mns-sim-card-title {
    font-weight: 700;
    font-size: 14px;
}
.tt-mns-sim-card-meta {
    font-size: 12.5px;
    color: var(--tt-text-dim);
}
.tt-mns-sim-card-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.tt-mns-sim-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 12.5px;
    padding: 2px 0;
}
.tt-mns-sim-line.is-total {
    font-weight: 700;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid var(--tt-border);
}
.tt-mns-sim-foot-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.tt-mns-var,
.tt-mns-misc {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: stretch;
}
.tt-mns-var-label,
.tt-mns-misc-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--tt-text-dim);
}
.tt-mns-var-hint {
    font-size: 10px;
    color: var(--tt-text-dim);
    line-height: 1.3;
}
.tt-mns-calc-btn { white-space: nowrap; }
.tt-mns-row-label--extra-fee { padding-right: 0; }
.tt-mns-extra-fee-title {
    width: 100%;
    min-width: 0;
    font-weight: 600;
}
.tt-mns-extra-fee-remove {
    border: 1px solid var(--tt-border);
    background: var(--tt-card);
    color: var(--tt-text-dim);
    border-radius: 6px;
    width: 28px;
    height: 28px;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    font-family: inherit;
}
.tt-mns-extra-fee-remove:hover {
    color: #dc2626;
    border-color: #fecaca;
    background: #fef2f2;
}
.tt-mns-add-fee-cell {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 12px !important;
    border-bottom: none !important;
}
.tt-mns-add-fee-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-mns-aside {
    flex: 0 1 240px;
    min-width: 200px;
    max-width: 280px;
    padding-top: 8px;
}
.tt-mns-disclaimer {
    margin: 0;
    font-size: 10px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
    text-align: center;
}
@media (max-width: 1100px) {
    .tt-mns-aside {
        flex: 1 1 100%;
        max-width: none;
        padding-top: 0;
    }
    .tt-mns-disclaimer { max-width: 520px; margin-left: auto; margin-right: auto; }
}
@media (max-width: 900px) {
    .tt-mns-table { min-width: 640px; }
}

.tt-panel { display: none; animation: tt-fade 0.25s ease; }
.tt-panel.active { display: block; }
@keyframes tt-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

.tt-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 22px; align-items: start; }
.tt-card-grid--cda { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.tt-card-grid--dates {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.tt-card-grid--dates {
    grid-template-columns: minmax(0, 1fr);
}
.tt-dates-left,
.tt-dates-right,
.tt-dates-reorderable {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
    width: 100%;
    max-width: 1510px;
}
/* Target COE Date Calculation + Additional Contingency Options — full width in stacked demo layout */
.tt-dates-reorderable > .tt-form-card,
.tt-dates-reorderable > .tt-dates-extra,
.tt-dates-reorderable .tt-date-calc,
.tt-dates-right > .tt-form-card,
.tt-dates-right > .tt-dates-extra,
.tt-dates-right .tt-date-calc,
.tt-dates-right .tt-date-calc.tt-form-card--contingency-opts,
.tt-dates-right > .tt-form-card--contingency-opts {
    max-width: none;
    width: 100%;
}

/* ===== Dates demo dashboard (from key_transaction_dates_new.html) ===== */
.tt-dates-tool-drag {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    cursor: grab;
    touch-action: none;
}
.tt-dates-tool-drag:active { cursor: grabbing; }
.tt-dates-tool-drag svg { width: 18px; height: 18px; }
.tt-dates-demo-manage,
.tt-dates-demo-collapse,
.tt-dates-demo-save,
.tt-dates-demo-reorder {
    border: 1px solid #8bc2f5;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    border-radius: 8px;
    padding: 9px 13px;
    cursor: pointer;
    font-weight: 700;
    font-size: 13px;
    white-space: nowrap;
}
.tt-dates-demo-collapse,
.tt-dates-demo-reorder {
    background: #fff;
    color: #12528f;
    border-color: #9bc4ec;
}
/* Parked while the grouped layout is always on. Delete this rule to show Reorder The Dates again. */
.tt-dates-demo-reorder {
    display: none !important;
}
.tt-dates-reorder-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 16px 2px 8px;
    padding: 7px 12px;
    border-radius: 8px;
    background: #0f2744;
    color: #fff;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.tt-dates-reorder-label-title {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-dates-reorder-label-tools {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}
.tt-dates-reorder-label.is-collapsed .tt-cr-status-group-toggle svg {
    transform: rotate(-90deg);
}
[data-tt-dates-demo-row][data-tt-dates-reorder-folded="1"] {
    display: none !important;
}
.tt-dates-demo-save {
    background: #0969c9;
    border-color: #0969c9;
    color: #fff;
}
.tt-dates-demo-head .tt-contingency-opts-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-left: auto;
}
.tt-dates-demo-manager {
    padding: 12px 16px;
    background: #f9fcff;
    border-bottom: 1px solid #c4ddf4;
}
.tt-dates-demo-manager[hidden] { display: none !important; }
.tt-dates-demo-manager-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.tt-dates-demo-manager-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.tt-dates-demo-manager-copy strong {
    font-size: 13px;
    color: #0f2744;
}
.tt-dates-demo-manager-copy span {
    font-size: 12px;
    color: #476d94;
    line-height: 1.35;
}
.tt-dates-demo-show-all {
    flex: 0 0 auto;
    border: 1px solid #8bc2f5;
    background: #fff;
    color: #12528f;
    border-radius: 7px;
    padding: 7px 11px;
    cursor: pointer;
    font-weight: 700;
    font-size: 12px;
}
.tt-dates-demo-show-all:hover {
    background: #e8f1ff;
}
.tt-dates-demo-manager-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.tt-dates-demo-manager-grid label,
.tt-dates-demo-manager-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #eaf3ff;
    padding: 6px 9px;
    border-radius: 7px;
    font-size: 12px;
    cursor: pointer;
    color: #0f2744;
    border: 1px solid #c7ddf5;
}
.tt-dates-demo-manager-item.is-hidden-row {
    background: #fff4e5;
    border-color: #f0c48a;
    color: #9a3412;
}
.tt-dates-demo-manager-item.is-hidden-row span {
    font-weight: 700;
}
.tt-dates-demo-body {
    background: #e8f4ff !important;
    padding: 8px !important;
}
.tt-dates-demo-rows {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
}
.tt-key-dates-extra {
    margin: 6px 2px 2px;
}
.tt-key-dates-extra-rule {
    border: 0;
    border-top: 2px solid #93c5fd;
    margin: 12px 4px 10px;
}
.tt-key-dates-extra-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 10px;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid #c5d4e8;
    border-radius: 10px;
    background: #fff;
    color: #0f2744;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}
.tt-key-dates-extra-toggle svg {
    width: 18px;
    height: 18px;
    color: #0f2744;
    transition: transform 0.15s ease;
}
.tt-key-dates-extra:not(.is-collapsed) .tt-key-dates-extra-toggle svg {
    transform: rotate(180deg);
}
.tt-key-dates-extra-body {
    margin-top: 8px;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    overflow: hidden;
}
.tt-key-dates-extra-body[hidden] {
    display: none !important;
}
/* Key Dates hides raw field lines; Additional Contingencies still uses them. */
.tt-dates-demo-body .tt-key-dates-extra .tt-field-line {
    display: grid !important;
}
.tt-dates-demo-body .tt-key-dates-extra .tt-field-line[hidden] {
    display: none !important;
}
.tt-dates-demo-item {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.3fr) minmax(0, 1fr);
    width: 100%;
    min-width: 0;
    min-height: 44px;
    margin: 3px 0;
    background: #e5f2ff;
    border: 1px solid #c5e1f9;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(52, 97, 140, 0.06);
    /* Keep every row on the same 3-col track (empty status cell when N/A) */
}
.tt-dates-demo-item--no-status {
    /* Same 3 columns as status rows so the table stays aligned end-to-end */
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.3fr) minmax(0, 1fr);
}
.tt-dates-demo-na {
    display: none !important;
}
.tt-contingency-opts-head.tt-dates-demo-head {
    display: flex;
    align-items: center;
    gap: 12px;
}
.tt-contingency-opts-head.tt-dates-demo-head > .tt-dates-tool-drag {
    flex: 0 0 auto;
    order: 0;
}
.tt-contingency-opts-head.tt-dates-demo-head > .tt-contingency-opts-head-icon {
    flex: 0 0 auto;
}
.tt-contingency-opts-head.tt-dates-demo-head > .tt-contingency-opts-head-copy {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-contingency-opts-head.tt-dates-demo-head > .tt-contingency-opts-head-actions {
    margin-left: auto;
    flex: 0 0 auto;
}
.tt-dates-demo-item[data-status="waived"] { background: #fff; }
.tt-dates-demo-item[data-status="pending"] { background: #fbd6e2; }
.tt-dates-demo-item[data-status="cleared"] { background: #d9f6e6; }
.tt-dates-demo-item[data-status="na"] { background: #e6f2ff; }
.tt-dates-demo-item[hidden] { display: none !important; }
.tt-dates-demo-item.is-dragging { opacity: 0.35; }
.tt-dates-demo-item.is-drop-target { outline: 2px dashed #1b7bdf; }
.tt-dates-demo-cell {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 11px;
    min-width: 0;
}
.tt-dates-demo-cell + .tt-dates-demo-cell {
    border-left: 1px solid #73a9df;
}
.tt-dates-demo-drag {
    border: 0;
    background: none;
    color: #46729c;
    cursor: grab;
    padding: 0 3px;
    touch-action: none;
    display: inline-flex;
}
.tt-dates-demo-drag svg { width: 18px; height: 18px; }
.tt-dates-demo-glyph {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.66);
    color: #1269c0;
    flex: none;
    border: 1px solid #cfe3f8;
}
.tt-dates-demo-glyph svg { width: 16px; height: 16px; }
.tt-dates-demo-label {
    font-size: 13px;
    font-weight: 700;
    flex: 1;
    min-width: 0;
    color: #102852;
    text-align: left !important;
    margin: 0;
}
/* Belt-and-suspenders: never show a second Lucide icon inside the label */
.tt-dates-demo-label .tt-field-label-icon,
.tt-dates-demo-label > i[data-lucide],
.tt-dates-demo-label > svg.lucide {
    display: none !important;
}
.tt-dates-demo-eye {
    background: none;
    border: 0;
    padding: 4px;
    color: #2c72b9;
    cursor: pointer;
    display: grid;
    place-items: center;
}
.tt-dates-demo-eye svg { width: 18px; height: 18px; }
.tt-dates-demo-cell--field .tt-input,
.tt-dates-demo-cell--field .tt-select,
.tt-dates-demo-cell--field select.tt-select,
.tt-dates-demo-cell--field .tt-date-field-wrap,
.tt-dates-demo-cell--field .tt-money,
.tt-dates-demo-cell--field .tt-input-icon-wrap {
    width: min(290px, 100%);
    max-width: 100%;
}
/* Demo “normal” controls: white fill + 1px border (matches key_transaction_dates_new.html) */
.tt-dates-demo-cell--field .tt-input,
.tt-dates-demo-cell--field .tt-select,
.tt-dates-demo-cell--field select.tt-select,
.tt-dates-demo-cell--field .tt-money .tt-input,
.tt-dates-demo-cell--field .tt-date-field-wrap .tt-input,
.tt-dates-demo-cell--field .tt-input-icon-wrap .tt-input,
.tt-dates-demo-cell--field textarea {
    height: 31px;
    min-height: 31px;
    padding: 4px 10px !important;
    background: #ffffff !important;
    border: 1px solid #b4d5fa !important;
    border-radius: 6px !important;
    color: #132d5a !important;
    font-weight: 600;
    font-size: 13px;
    box-shadow: none !important;
    outline: none;
}
.tt-dates-demo-cell--field .tt-input:focus,
.tt-dates-demo-cell--field .tt-select:focus,
.tt-dates-demo-cell--field select.tt-select:focus,
.tt-dates-demo-cell--field .tt-money .tt-input:focus,
.tt-dates-demo-cell--field .tt-date-field-wrap .tt-input:focus,
.tt-dates-demo-cell--field .tt-input-icon-wrap .tt-input:focus {
    border-color: #176df5 !important;
    box-shadow: 0 0 0 2px rgba(23, 109, 245, 0.18) !important;
    background: #ffffff !important;
}
.tt-dates-demo-cell--field .tt-date-field-wrap {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.tt-dates-demo-cell--field .tt-money {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
.tt-dates-demo-cell--field .tt-money-sign {
    left: 10px;
    color: #3b82f6;
    z-index: 1;
}
.tt-dates-demo-cell--field .tt-money .tt-input {
    padding-left: 22px !important;
}
.tt-dates-demo-cell--status {
    justify-content: center;
}
.tt-dates-full-cr-blockers {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
    min-width: 0;
    padding: 2px 0;
}
.tt-dates-full-cr-blockers-label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9f1239;
}
.tt-dates-full-cr-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.tt-dates-full-cr-chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    color: #9f1239;
    background: #ffe4e6;
    border: 1px solid #fda4af;
    cursor: pointer;
}
button.tt-dates-full-cr-chip:hover,
button.tt-dates-full-cr-chip:focus-visible {
    background: #fecdd3;
    border-color: #e11d48;
    color: #881337;
    outline: 2px solid #f59e0b;
    outline-offset: 2px;
}
.tt-dates-full-cr-blockers.is-ready .tt-dates-full-cr-ready,
.tt-dates-full-cr-ready {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    color: #14532d;
    background: #dcfce7;
    border: 1px solid #86efac;
}
.tt-dates-full-cr-ready svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}
.tt-dates-demo-item[data-tt-dates-demo-row="all_contingencies_removed"] .tt-dates-demo-cell--status {
    justify-content: flex-start;
}
.tt-dates-demo-switch {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3px;
    width: 100%;
    max-width: 350px;
    padding: 3px;
    background: #c7d9ee;
    border-radius: 100px;
}
.tt-dates-demo-switch button {
    border: 0;
    background: transparent;
    color: #244e7e;
    font-size: 12px;
    font-weight: 700;
    min-height: 29px;
    border-radius: 99px;
    cursor: pointer;
}
.tt-dates-demo-switch button[aria-pressed="true"][data-set="waived"] {
    background: #1679ed;
    color: #fff;
    box-shadow: 0 2px 5px rgba(22, 106, 211, 0.25);
}
.tt-dates-demo-switch button[aria-pressed="true"][data-set="pending"] {
    background: #c71c62;
    color: #fff;
    box-shadow: 0 2px 5px rgba(158, 25, 82, 0.25);
}
.tt-dates-demo-switch button[aria-pressed="true"][data-set="cleared"] {
    background: #009d5b;
    color: #fff;
    box-shadow: 0 2px 5px rgba(10, 119, 69, 0.25);
}
.tt-dates-demo-na {
    color: #5d7493;
    font-size: 12px;
    font-weight: 700;
    background: #cad9ea;
    border-radius: 99px;
    width: 100%;
    max-width: 350px;
    text-align: center;
    padding: 9px;
}
.tt-dates-demo-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 9px 8px 6px;
}
.tt-dates-demo-notice {
    font-size: 12px;
    color: #476d94;
}
.tt-dates-reorderable.is-dates-sorting {
    padding-bottom: 28px;
}
.tt-dates-reorderable > .tt-dates-tool-moving {
    opacity: 0.55;
    outline: 2px dashed #93c5fd;
    outline-offset: 3px;
}
.tt-dates-reorderable > .tt-dates-tool-drop-slot,
.tt-dates-tool-drop-slot {
    height: 80px;
    margin: 8px 0;
    border: 2px dashed #2b8df5;
    border-radius: 12px;
    background: rgba(43, 141, 245, 0.12);
    box-sizing: border-box;
    pointer-events: auto; /* drop only works when released on this slot */
    transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}
.tt-dates-tool-drop-slot.is-drop-ready {
    border-color: #0b74e5;
    background: rgba(43, 141, 245, 0.28);
    box-shadow: inset 0 0 0 1px rgba(11, 116, 229, 0.35);
}
/* Override prior Key Dates white-card underline look when demo rows are present */
.tt-dates-demo-body .tt-key-dates-fields {
    gap: 0;
}
.tt-dates-demo-body .tt-field-line {
    display: none !important;
}
@media (max-width: 850px) {
    .tt-dates-demo-item,
    .tt-dates-demo-item--no-status {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.3fr) minmax(0, 1fr);
    }
    .tt-dates-demo-body .tt-dates-demo-cell--field > .tt-input,
    .tt-dates-demo-body .tt-dates-demo-cell--field > .tt-select,
    .tt-dates-demo-body .tt-dates-demo-cell--field > select,
    .tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-field-wrap,
    .tt-dates-demo-body .tt-dates-demo-cell--field .tt-money,
    .tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-input,
    .tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-select,
    .tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-date-field-wrap,
    .tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-money,
    .tt-dates-demo-body .tt-dates-demo-cell--field .tt-input--days-count {
        width: 100% !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }
}
@media (max-width: 520px) {
    .tt-dates-demo-item,
    .tt-dates-demo-item--no-status {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr) minmax(0, 0.95fr);
    }
    .tt-dates-demo-switch { max-width: none; }
}

/* —— Additional Contingency & Date Options (mockup card rows) —— */
/* Specificity must beat later `.tt-form-card { overflow: visible }` so navy heads clip to 14px corners. */
.tt-api-manager-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.tt-api-manager-mail {
    grid-column: 1 / -1;
}
.tt-api-mail-protocols {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 8px 0 4px;
}
.tt-api-mail-protocol {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    background: #e8eef6;
    color: #0f2744;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.02em;
}
.tt-api-manager-hero {
    margin-bottom: 18px;
}
.tt-api-manager .tt-contingency-opts-body {
    gap: 12px;
}
.tt-api-card {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-api-card-head h2 {
    margin: 0;
    color: #0f2744;
    font-size: 1.05rem;
    font-weight: 800;
}
.tt-api-card-head p,
.tt-api-connection-detail {
    margin: 4px 0 0;
    color: #334155;
    font-size: 0.86rem;
}
.tt-api-card-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin: 10px 0 12px;
}
.tt-api-card-links a {
    color: #1d4ed8;
    font-weight: 700;
    text-decoration: underline;
}
.tt-api-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 10px;
}
.tt-api-field-label {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    color: #0f2744;
    font-size: 0.82rem;
    font-weight: 800;
}
.tt-api-field-label em {
    color: #475569;
    font-style: normal;
    font-weight: 650;
}
.tt-api-field-control {
    display: flex;
    gap: 8px;
    align-items: center;
}
.tt-api-field-control .tt-input {
    flex: 1 1 auto;
    min-width: 0;
    background: #fff;
    color: #0f2744;
    border: 1px solid #94a3b8;
    border-radius: 10px;
}
.tt-api-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.tt-api-user-pick {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}
.tt-api-user-pick select,
.tt-api-manager .tt-contingency-opts-head .tt-input {
    min-width: 220px;
    background: #fff;
    color: #0f2744;
    border: 1px solid #fff;
    border-radius: 10px;
}
@media (max-width: 1100px) {
    .tt-api-manager-grid {
        grid-template-columns: 1fr;
    }
}
.tt-form-card.tt-form-card--contingency-opts,
.tt-form-card--contingency-opts {
    padding: 0;
    overflow: hidden !important;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    background: #fff;
}
.tt-form-card--contingency-opts > .tt-card-title {
    display: none;
}
.tt-contingency-opts-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 18px;
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
    color: #fff;
    border-radius: 14px 14px 0 0;
}
.tt-contingency-opts-head-icon {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}
.tt-contingency-opts-head-icon svg {
    width: 20px;
    height: 20px;
}
.tt-contingency-opts-head-copy {
    min-width: 0;
    flex: 1 1 auto;
}
.tt-contingency-opts-head-actions {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.tt-contingency-opts-title {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    color: #fff !important;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
}
.tt-contingency-opts-sub {
    margin: 4px 0 0;
    font-size: 0.8rem;
    line-height: 1.35;
    color: rgba(255, 255, 255, 0.82);
    font-weight: 500;
}
.tt-contingency-opts-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    background: #f7fafc;
}
/* Author display:flex must not defeat section Collapse [hidden] */
.tt-contingency-opts-body[hidden],
.tt-date-calc-body[hidden],
.tt-dates-demo-body[hidden],
.tt-date-calc-inner[hidden],
[data-tt-dates-section-body][hidden] {
    display: none !important;
}
.tt-contingency-row {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-contingency-row-head {
    display: flex;
    align-items: center;
    gap: 12px;
}
.tt-contingency-row-icon {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.tt-contingency-row-icon svg {
    width: 18px;
    height: 18px;
}
.tt-contingency-row--blue .tt-contingency-row-icon {
    background: #e8f1ff;
    color: #2563eb;
}
.tt-contingency-row--teal .tt-contingency-row-icon {
    background: #dff7f1;
    color: #0f766e;
}
.tt-contingency-row--purple .tt-contingency-row-icon {
    background: #f1e8ff;
    color: #7c3aed;
}
.tt-contingency-row--orange .tt-contingency-row-icon {
    background: #fff1e6;
    color: #ea580c;
}
.tt-contingency-row--slate .tt-contingency-row-icon {
    background: #eef2f7;
    color: #475569;
}
.tt-contingency-row-copy {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-contingency-row-title {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.tt-contingency-row-label {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f2744;
    letter-spacing: -0.01em;
}
.tt-contingency-row-title .tt-field-info-btn {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 1px solid #93c5fd;
    background: #eff6ff;
    color: #2563eb;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.tt-contingency-row-desc {
    margin: 2px 0 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #64748b;
    font-weight: 500;
}
.tt-contingency-row-desc--admin-edit {
    cursor: text;
    border-radius: 6px;
    outline: none;
    transition: background 0.15s ease, box-shadow 0.15s ease;
}
.tt-contingency-row-desc--admin-edit:hover {
    background: #eef4ff;
    box-shadow: inset 0 0 0 1px #bfdbfe;
    color: #334155;
}
.tt-contingency-row-desc--admin-edit:focus-visible,
.tt-contingency-row-desc--admin-edit.is-editing {
    background: #fff;
    box-shadow: inset 0 0 0 2px #2563eb;
    color: #0f2744;
    cursor: text;
}
.tt-contingency-row-desc--admin-edit.is-saving {
    opacity: 0.7;
    pointer-events: none;
}
.tt-contingency-row-toggle {
    flex: 0 0 auto;
    margin-left: auto;
}
.tt-radio-group--contingency-yesno {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 3px;
    border-radius: 999px;
    background: #eef2f7;
    box-shadow: none;
    width: auto;
    max-width: none;
}
.tt-radio-group--contingency-yesno .tt-radio span {
    min-width: 46px;
    padding: 7px 14px;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: #475569;
    background: transparent;
    box-shadow: none;
}
.tt-radio-group--contingency-yesno .tt-radio.is-active:has(input[value="No"]) span {
    background: #1e3a5f;
    color: #fff;
    box-shadow: 0 2px 6px rgba(30, 58, 95, 0.28);
}
.tt-radio-group--contingency-yesno .tt-radio.is-active:has(input[value="Yes"]) span {
    background: #22c55e;
    color: #fff;
    box-shadow: 0 2px 6px rgba(34, 197, 94, 0.3);
}
.tt-contingency-row-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
    padding-top: 2px;
    padding-left: 50px;
}
.tt-contingency-row--collapsible .tt-contingency-row-head[data-tt-contingency-collapse-head] {
    cursor: pointer;
    border-radius: 10px;
    margin: -4px;
    padding: 4px;
}
.tt-contingency-row--collapsible .tt-contingency-row-head[data-tt-contingency-collapse-head]:hover {
    background: rgba(15, 39, 68, 0.04);
}
.tt-contingency-row--collapsible .tt-contingency-row-head[data-tt-contingency-collapse-head]:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}
.tt-contingency-row-collapse-btn {
    flex: 0 0 auto;
    margin-left: auto;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #0f2744;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.06);
}
.tt-contingency-row-collapse-btn:hover,
.tt-contingency-row-collapse-btn:focus-visible {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
    outline: none;
}
.tt-contingency-row-collapse-btn svg {
    width: 18px;
    height: 18px;
    transition: transform 0.18s ease;
}
.tt-contingency-row--collapsible:not(.is-collapsed) .tt-contingency-row-collapse-btn svg {
    transform: rotate(180deg);
}
.tt-contingency-row--collapsible.is-collapsed .tt-contingency-row-body,
.tt-contingency-row--collapsible .tt-contingency-row-body[hidden] {
    display: none !important;
}
.tt-contingency-row-body:not(:has(.tt-field-line:not([hidden]))) {
    display: none;
}
.tt-contingency-row-body .tt-field-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    margin: 0;
    align-items: stretch;
}
.tt-contingency-row-body .tt-field-line > label,
.tt-contingency-row-body .tt-field-line > .tt-sprp-pdf-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: #334155;
    margin: 0;
}
.tt-contingency-row-body .tt-field-control {
    width: 100%;
    max-width: 100%;
}
.tt-contingency-row-body .tt-field-line[hidden] {
    display: none !important;
}
/* Days inputs as soft blue nested boxes */
.tt-contingency-row-body .tt-field-line:has([data-tt-field$="_days"]),
.tt-contingency-row-body .tt-field-line:has([data-tt-field="target_possession_days"]),
.tt-contingency-row-body .tt-field-line:has([data-tt-field="sip_days"]) {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    padding: 10px 12px;
}
.tt-contingency-row-body .tt-field-line:has([data-tt-field$="_days"]) .tt-input,
.tt-contingency-row-body .tt-field-line:has([data-tt-field="target_possession_days"]) .tt-input,
.tt-contingency-row-body .tt-field-line:has([data-tt-field="sip_days"]) .tt-input {
    max-width: 120px;
    background: #fff;
    border: 1px solid #93c5fd;
    border-radius: 8px;
    color: #0f2744;
    font-weight: 700;
}
/* Document slot cards */
.tt-contingency-row-body .tt-sprp-pdf {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 10px;
}
.tt-contingency-row-body .tt-sprp-pdf-file {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 8px 10px;
}
.tt-contingency-row-body .tt-sprp-pdf-preview {
    border-color: #2563eb;
    color: #1d4ed8;
    background: #fff;
}
.tt-contingency-row-body .tt-sprp-pdf-delete {
    color: #dc2626;
}
.tt-contingency-row-body .tt-sprp-pdf-upload {
    border: 1px dashed #94a3b8;
    background: #f1f5f9;
    color: #334155;
    border-radius: 8px;
}
@media (max-width: 640px) {
    .tt-contingency-row-head {
        flex-wrap: wrap;
    }
    .tt-contingency-row-toggle {
        width: 100%;
        margin-left: 50px;
    }
    .tt-contingency-row-body {
        padding-left: 0;
    }
    .tt-radio-group--contingency-yesno {
        width: 100%;
    }
    .tt-radio-group--contingency-yesno .tt-radio {
        flex: 1 1 0;
    }
    .tt-radio-group--contingency-yesno .tt-radio span {
        width: 100%;
    }
}
.tt-panel[data-tt-panel="dates"] .tt-dates-extra { margin-top: 0; }
@media (max-width: 900px) {
    .tt-card-grid--dates { grid-template-columns: 1fr; }
}
.tt-card-title {
    font-family: var(--tt-font-display);
    font-size: var(--tt-font-size-title);
    font-weight: var(--tt-font-weight-bold);
    margin: 0 0 4px;
}
.tt-card-sub {
    font-size: var(--tt-font-size-sm);
    font-weight: var(--tt-font-weight);
    color: var(--tt-text-dim);
    margin: 0 0 14px;
}
.tt-form-card .tt-card-title { padding-bottom: 14px; border-bottom: 1px solid var(--tt-border); margin-bottom: 16px; }

/* Key Transaction Dates — same card design as Additional Contingency & Date Options.
   Must beat later `.tt-form-card { overflow: visible }` so bottom corners stay 14px. */
.tt-rpa-side-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #0f2744;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.55);
}
.tt-rpa-time-frames-body .tt-field > label {
    font-variant-numeric: tabular-nums;
}
.tt-form-card.tt-form-card--key-dates,
.tt-form-card--key-dates {
    --tt-key-date-w: min(100%, 320px);
    padding: 0;
    overflow: hidden !important;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    background: #fff;
}
.tt-form-card--key-dates .tt-key-dates-body,
.tt-form-card--key-dates .tt-contingency-opts-body.tt-key-dates-body {
    border-radius: 0 0 14px 14px;
    background: #eef2f7;
}
.tt-form-card--key-dates > .tt-card-title {
    display: none;
}
.tt-key-dates-fields {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
}
/* One white card per field — label + circular icon | underline control */
.tt-key-dates-body .tt-field-line {
    display: grid;
    grid-template-columns: minmax(200px, 44%) minmax(0, 1fr);
    align-items: center;
    gap: 14px 18px;
    margin: 0;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(15, 40, 80, 0.04);
}
.tt-key-dates-body .tt-field-line[hidden] {
    display: none !important;
}
.tt-key-dates-body .tt-field-line > label {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: 0;
    font-size: 0.95rem;
    font-weight: 750;
    letter-spacing: -0.01em;
    line-height: 1.25;
    text-align: right;
    color: #0f2744;
}
.tt-key-dates-body .tt-field-line--has-icon > label {
    justify-content: flex-end;
}
.tt-key-dates-body .tt-field-label-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #e8f1ff;
    color: #2563eb;
    border: 1px solid #dbeafe;
    box-shadow: 0 1px 3px rgba(37, 99, 235, 0.12);
    order: -1;
}
.tt-key-dates-body .tt-field-label-icon svg {
    width: 18px;
    height: 18px;
}
.tt-key-dates-body .tt-field-label-text {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    line-height: inherit;
}
/* Acceptance milestone — green accent like the mock */
.tt-key-dates-body .tt-field-line[data-tt-perm-field="acceptance_date"] > label {
    color: #166534;
}
.tt-key-dates-body .tt-field-line[data-tt-perm-field="acceptance_date"] .tt-field-label-icon {
    background: #dff7e8;
    color: #15803d;
    border-color: #bbf7d0;
}
.tt-key-dates-body .tt-field-control {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
/* Legacy underline style — only when NOT using the demo 3-col rows */
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-form-card--key-dates .tt-field-control > .tt-input,
.tt-form-card--key-dates:not(:has(.tt-dates-demo-body)) .tt-field-control > .tt-input,
.tt-form-card--key-dates:not(:has(.tt-dates-demo-body)) .tt-field-control > .tt-date-field-wrap,
.tt-form-card--key-dates:not(:has(.tt-dates-demo-body)) .tt-field-control > .tt-money,
.tt-form-card--key-dates:not(:has(.tt-dates-demo-body)) .tt-field-control > .tt-input-icon-wrap {
    max-width: var(--tt-key-date-w);
    width: var(--tt-key-date-w);
    background: transparent;
    color: #0f172a;
}
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-field-control > .tt-input,
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-field-control > .tt-money .tt-input,
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-date-field-wrap .tt-input,
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-input-icon-wrap .tt-input {
    width: 100%;
    border: none !important;
    border-bottom: 1.5px solid #cbd5e1 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 6px 0 8px !important;
    min-height: 36px;
    font-size: 0.98rem;
    font-weight: 600;
    color: #0f172a;
}
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-field-control > .tt-input:focus,
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-field-control > .tt-money .tt-input:focus,
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-date-field-wrap .tt-input:focus,
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-input-icon-wrap .tt-input:focus {
    border-bottom-color: #2563eb !important;
    outline: none;
}
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-money {
    width: var(--tt-key-date-w);
    max-width: 100%;
}
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-money-sign {
    left: 0;
    color: #3b82f6;
    font-weight: 700;
}
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-money .tt-input {
    padding-left: 1.1rem !important;
}
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-date-field-wrap {
    position: relative;
}
.tt-key-dates-body:not(.tt-dates-demo-body) .tt-date-field-wrap .tt-input {
    padding-right: 2rem !important;
}

/* Demo date/select: force white boxed look (beats any leftover underline rules) */
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-select,
.tt-dates-demo-body .tt-dates-demo-cell--field select,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-input,
.tt-dates-demo-body .tt-dates-demo-cell--field input[type="date"],
.tt-dates-demo-body .tt-dates-demo-cell--field input[type="text"],
.tt-dates-demo-body .tt-dates-demo-cell--field input[type="number"],
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-money .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-field-wrap .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap .tt-input {
    background: #ffffff !important;
    border: 1px solid #b4d5fa !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    color: #132d5a !important;
    height: 31px !important;
    min-height: 31px !important;
    padding: 4px 10px !important;
}
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-field-wrap .tt-input,
.tt-key-dates-body .tt-date-field-wrap .tt-input {
    padding-right: 4.6rem !important;
}
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-field-wrap.is-empty .tt-date-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-field-wrap.is-empty .tt-input {
    /* Keep the white box visible even when TBD overlay hides the native date text */
    background: #ffffff !important;
    border: 1px solid #b4d5fa !important;
    color: transparent !important;
}
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-tbd {
    left: 12px;
    color: #64748b;
}
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-money .tt-input {
    padding-left: 22px !important;
}
/* Every text box is the same width. Info, calculator, and date-picker icons sit beside it. */
.tt-dates-demo-cell--field {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.tt-dates-demo-cell--field .tt-input-icon-wrap {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 100% !important;
    max-width: 100%;
    flex: 1 1 auto;
    min-width: 0;
}
.tt-dates-demo-body .tt-dates-demo-cell--field > .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field > .tt-select,
.tt-dates-demo-body .tt-dates-demo-cell--field > select,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-field-wrap,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-money,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-select,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-date-field-wrap,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap > .tt-money,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input--days-count {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 290px !important;
    flex: 1 1 auto !important;
    box-sizing: border-box !important;
}
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-date-field-wrap .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-money .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap .tt-date-field-wrap .tt-input,
.tt-dates-demo-body .tt-dates-demo-cell--field .tt-input-icon-wrap .tt-money .tt-input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 1 1 auto !important;
}
.tt-form-card--key-dates .tt-field-control > .tt-radio-group {
    width: fit-content;
    max-width: 100%;
    align-self: center;
    flex: 0 0 auto;
}
/* Yes/No toggles — green Yes / gray No like the mock */
.tt-form-card--key-dates .tt-radio-group:has(input[value="Yes"]):has(input[value="No"]) {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 3px;
    border-radius: 999px;
    background: #eef2f7;
    box-shadow: none;
    width: auto;
    max-width: none;
}
.tt-form-card--key-dates .tt-radio-group:has(input[value="Yes"]):has(input[value="No"]) .tt-radio span {
    min-width: 46px;
    padding: 7px 14px;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
    background: transparent;
    box-shadow: none;
}
.tt-form-card--key-dates .tt-radio-group:has(input[value="Yes"]):has(input[value="No"]) .tt-radio.is-active:has(input[value="No"]) span {
    background: #cbd5e1;
    color: #334155;
    box-shadow: none;
}
.tt-form-card--key-dates .tt-radio-group:has(input[value="Yes"]):has(input[value="No"]) .tt-radio.is-active:has(input[value="Yes"]) span {
    background: #22c55e;
    color: #fff;
    box-shadow: 0 2px 6px rgba(34, 197, 94, 0.3);
}
@media (max-width: 720px) {
    .tt-key-dates-body .tt-field-line {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .tt-key-dates-body .tt-field-line > label {
        justify-content: flex-start;
        text-align: left;
    }
}
.tt-date-status-row {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-width: 0;
}
.tt-date-status-row > .tt-date-field-wrap {
    flex: 0 0 var(--tt-key-date-w, calc((100% - 12px) / 2));
    width: var(--tt-key-date-w, calc((100% - 12px) / 2));
    max-width: var(--tt-key-date-w, calc((100% - 12px) / 2));
    min-width: 0;
}
/* Info lives inside the date column so the Pending/Received slider matches sibling rows. */
.tt-date-status-row > .tt-date-field-wrap.tt-date-field-wrap--with-info {
    padding-right: 1.75rem;
    box-sizing: border-box;
}
.tt-date-status-row > .tt-date-field-wrap.tt-date-field-wrap--with-info > .tt-field-info-wrap {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
}
.tt-date-status-row > .tt-radio-group {
    flex: 1 1 auto;
    max-width: none;
    width: auto;
    min-width: 0;
}
/* Contingencies Status Monitor — screenshot-style rows on Dates chrome */
.tt-form-card--cr-monitor {
    padding: 0;
    overflow: hidden !important;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    background: #fff;
}
.tt-form-card--cr-monitor > .tt-card-title {
    display: none;
}
.tt-cr-monitor-body {
    background: #eef2f7;
}
.tt-cr-monitor-body[hidden] {
    display: none !important;
}
.tt-cr-monitor-head.tt-contingency-opts-head,
.tt-contingency-opts-head.tt-cr-monitor-head {
    position: relative;
    min-height: 72px;
}
.tt-cr-monitor-head .tt-contingency-opts-head-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-left: auto;
    z-index: 3;
}
/* Dead-centered progress — not a tiny right-side sliver */
.tt-cr-monitor-head .tt-cr-monitor-progress {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(440px, 52vw);
    max-width: calc(100% - 280px);
    min-width: 200px;
    z-index: 2;
    pointer-events: none;
}
.tt-cr-monitor-progress-track {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    border-radius: 999px;
    background: rgba(6, 24, 48, 0.55);
    border: 2px solid rgba(255, 255, 255, 0.55);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35), 0 1px 0 rgba(255, 255, 255, 0.12);
    overflow: hidden;
    container-type: inline-size;
    container-name: tt-cr-progress;
}
/* Fill width grows; gradient is full-track wide so red→green reveals with progress */
.tt-cr-monitor-progress-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    overflow: hidden;
    border-radius: inherit;
    transition: width 0.25s ease;
    z-index: 0;
    background: transparent;
}
.tt-cr-monitor-progress-grad {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 100cqw; /* full track width, not the clipped fill */
    min-width: 100%;
    background: linear-gradient(
        90deg,
        #dc2626 0%,
        #ea580c 28%,
        #ca8a04 55%,
        #65a30d 78%,
        #16a34a 100%
    );
    pointer-events: none;
}
/* Count lives inside the bar on a high-contrast chip (readable on any fill) */
.tt-cr-monitor-progress-count {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.4em;
    padding: 4px 14px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 15px;
    letter-spacing: 0.04em;
    line-height: 1;
    color: #0a1628;
    background: #ffffff;
    border: 1px solid rgba(10, 22, 40, 0.18);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
@media (max-width: 720px) {
    .tt-cr-monitor-head .tt-cr-monitor-progress {
        width: min(280px, 58%);
        max-width: calc(100% - 160px);
    }
    .tt-cr-monitor-progress-track {
        height: 32px;
    }
    .tt-cr-monitor-progress-count {
        font-size: 13px;
        padding: 3px 11px;
    }
}
.tt-cr-status-monitor {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}
.tt-cr-status-groups {
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.tt-cr-status-group {
    border: 1px solid #c4d9ee;
    border-radius: 11px;
    background: #f6faff;
    overflow: hidden;
}
.tt-cr-status-group-head {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 9px 14px;
    font-weight: 800;
    font-size: 14px;
}
.tt-cr-status-group-drag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.72);
    color: #163a66;
    cursor: grab;
}
.tt-cr-status-group-drag:active {
    cursor: grabbing;
}
.tt-cr-status-group-drag svg {
    width: 14px;
    height: 14px;
}
.tt-cr-status-group-title {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-cr-status-group.is-group-moving {
    opacity: 0.55;
    outline: 2px dashed #93c5fd;
    outline-offset: 2px;
}
.tt-cr-status-group[data-tt-cr-status-group="waived"] .tt-cr-status-group-head {
    background: #cde3ff;
    color: #0752a5;
}
.tt-cr-status-group[data-tt-cr-status-group="pending"] .tt-cr-status-group-head {
    background: #f9ccdd;
    color: #a90e50;
}
.tt-cr-status-group[data-tt-cr-status-group="cleared"] .tt-cr-status-group-head {
    background: #c6f0db;
    color: #067548;
}
.tt-cr-status-group[data-tt-cr-status-group="hidden"] .tt-cr-status-group-head {
    background: #e7e9ee;
    color: #3d4f66;
}
.tt-cr-status-group-tools {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}
.tt-cr-status-group-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(15, 39, 68, 0.22);
    border-radius: 8px;
    background: #fff;
    color: #0f2744;
    cursor: pointer;
}
.tt-cr-status-group-toggle svg {
    width: 16px;
    height: 16px;
    transition: transform 0.15s ease;
}
.tt-cr-status-group.is-collapsed .tt-cr-status-group-toggle svg {
    transform: rotate(-90deg);
}
.tt-cr-status-group.is-collapsed .tt-cr-status-group-list {
    display: none;
}
.tt-cr-status-group-count {
    min-width: 1.6rem;
    border-radius: 99px;
    padding: 3px 9px;
    background: rgba(255, 255, 255, 0.78);
    color: #0f2744;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.tt-cr-status-group-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 7px 10px 8px;
}
.tt-cr-status-group-list .tt-cr-status-monitor-row {
    justify-content: space-between;
    min-height: 34px;
    padding: 6px 12px;
    border-radius: 8px;
    box-shadow: none;
}
.tt-cr-status-group[data-tt-cr-status-group="waived"] .tt-cr-status-monitor-row {
    background: #e6f0ff;
    border-color: #b7d4ff;
}
.tt-cr-status-group[data-tt-cr-status-group="pending"] .tt-cr-status-monitor-row {
    background: #ffebf1;
    border-color: #f5c2d3;
}
.tt-cr-status-group[data-tt-cr-status-group="cleared"] .tt-cr-status-monitor-row {
    background: #e5f8ee;
    border-color: #b5e8d0;
}
.tt-cr-status-group[data-tt-cr-status-group="hidden"] .tt-cr-status-monitor-row {
    background: #f4f6f8;
    border-color: #d5dbe3;
}
.tt-cr-status-group-list .tt-cr-status-monitor-label {
    color: #142f57;
    font-weight: 700;
}
.tt-cr-status-monitor-date {
    color: #456386;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    border-left: 1px solid #b7d3ed;
    padding-left: 14px;
    min-width: 88px;
    text-align: right;
}
.tt-cr-status-monitor-date.is-tbd,
.tt-cr-status-monitor-date.is-missing {
    color: #c1121f;
    font-weight: 800;
}
.tt-cr-status-monitor-date.is-missing {
    white-space: normal;
    max-width: 220px;
    line-height: 1.25;
}
.tt-cr-status-group-empty {
    margin: 0;
    padding: 12px 8px;
    text-align: center;
    color: #7288a1;
    font-size: 12px;
}
.tt-cr-status-group-empty[hidden] {
    display: none !important;
}
.tt-milestone-body {
    background: #f7fbff;
}
.tt-milestone-view-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
    padding: 4px;
    background: #e4edf8;
    border-radius: 11px;
    margin-bottom: 16px;
}
.tt-milestone-view-tab {
    border: 0;
    background: transparent;
    border-radius: 9px;
    padding: 10px;
    font-weight: 700;
    color: #4c698b;
    cursor: pointer;
}
.tt-milestone-view-tab.is-active,
.tt-milestone-view-tab[aria-selected="true"] {
    background: #fff;
    color: #064d9b;
    box-shadow: 0 2px 7px rgba(36, 75, 120, 0.14);
}
.tt-milestone-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.tt-milestone-toolbar h3 {
    margin: 0;
    font-size: 19px;
    color: #133660;
}
.tt-milestone-month-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}
.tt-milestone-month-actions button {
    border: 1px solid #bad5f1;
    background: #fff;
    border-radius: 7px;
    color: #075bb0;
    cursor: pointer;
    padding: 7px 11px;
    font-weight: 700;
}
.tt-milestone-month-actions button:hover {
    background: #e5f1ff;
}
.tt-milestone-weekdays,
.tt-milestone-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
}
.tt-milestone-weekday {
    text-align: center;
    color: #607c9b;
    font-size: 12px;
    font-weight: 700;
    padding: 8px 0;
}
.tt-milestone-day {
    border: 1px solid transparent;
    background: #fff;
    min-height: 66px;
    border-radius: 9px;
    padding: 7px 5px;
    color: #213b5f;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.tt-milestone-day.is-blank {
    background: transparent;
    cursor: default;
    min-height: 66px;
}
.tt-milestone-day:hover:not(.is-blank) {
    border-color: #8bbbea;
    background: #f0f7ff;
}
.tt-milestone-day.has-event {
    background: #e2ecff;
    border-color: #c9dcfc;
}
.tt-milestone-day.is-selected {
    outline: 2px solid #136fd7;
    outline-offset: -2px;
}
.tt-milestone-day-number {
    font-size: 13px;
    font-weight: 700;
    color: #213b5f;
}
.tt-milestone-dots {
    display: flex;
    gap: 3px;
    justify-content: center;
    flex-wrap: wrap;
}
.tt-milestone-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #7c95b0;
}
.tt-milestone-dot.is-waived { background: #1679ed; }
.tt-milestone-dot.is-pending { background: #c71c62; }
.tt-milestone-dot.is-cleared { background: #009d5b; }
.tt-milestone-detail {
    margin-top: 15px;
    border: 1px solid #c9ddf4;
    border-radius: 10px;
    background: #fff;
    padding: 12px;
}
.tt-milestone-detail h4 {
    margin: 0 0 9px;
    font-size: 14px;
    color: #1b4574;
}
.tt-milestone-event,
.tt-milestone-alt-item {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    width: 100%;
    border: 0;
    border-top: 1px solid #e0eaf6;
    border-radius: 0;
    background: transparent;
    padding: 9px 2px;
    font: inherit;
    font-size: 13px;
    color: #16375f;
    text-align: left;
    cursor: pointer;
}
.tt-milestone-event:hover,
.tt-milestone-alt-item:hover {
    background: #f4f8fd;
}
.tt-milestone-event strong,
.tt-milestone-alt-item strong {
    color: #16375f;
    font-weight: 700;
}
.tt-milestone-status {
    border-radius: 99px;
    padding: 5px 10px;
    font-size: 11px;
    font-weight: 700;
    background: #dce9f7;
    color: #496580;
    white-space: nowrap;
}
.tt-milestone-status.is-waived { background: #d9eaff; color: #0759ae; }
.tt-milestone-status.is-pending { background: #fbd6e2; color: #9f1048; }
.tt-milestone-status.is-cleared { background: #d9f6e6; color: #067548; }
.tt-milestone-empty {
    margin: 0;
    font-size: 12px;
    color: #647f9b;
}
.tt-milestone-alt {
    display: grid;
    gap: 7px;
}
.tt-milestone-alt-item {
    border: 1px solid #d2e3f5;
    border-top: 1px solid #d2e3f5;
    background: #fff;
    border-radius: 9px;
    padding: 11px 13px;
}
.tt-milestone-alt-item.is-waived { border-left: 5px solid #1679ed; }
.tt-milestone-alt-item.is-pending { border-left: 5px solid #c71c62; }
.tt-milestone-alt-item.is-cleared { border-left: 5px solid #009d5b; }
.tt-milestone-alt-item small,
.tt-milestone-alt-date {
    display: block;
    color: #5a7695;
    font-size: 12px;
    margin-top: 4px;
}
.tt-milestone-alt-meta {
    display: flex;
    align-items: center;
    gap: 9px;
}
.tt-milestone-pane[hidden] {
    display: none !important;
}
@media (max-width: 600px) {
    .tt-milestone-day,
    .tt-milestone-day.is-blank {
        min-height: 49px;
        padding: 6px 1px;
    }
    .tt-milestone-toolbar h3 {
        font-size: 16px;
    }
    .tt-milestone-event,
    .tt-milestone-alt-item {
        align-items: flex-start;
        flex-direction: column;
    }
}
.tt-cr-status-monitor-row {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin: 0;
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    font: inherit;
    text-align: left;
    color: #0f2744;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.tt-cr-status-monitor-row:hover {
    border-color: #bfdbfe;
    box-shadow: 0 4px 12px rgba(15, 40, 80, 0.08);
}
.tt-cr-status-monitor-row:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}
.tt-cr-status-monitor-icon {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.tt-cr-status-monitor-icon::after {
    content: '';
    position: absolute;
    top: 8px;
    bottom: 8px;
    right: -7px;
    width: 1px;
    background: #e2e8f0;
}
.tt-cr-status-monitor-icon svg {
    width: 18px;
    height: 18px;
}
.tt-cr-status-monitor-row--blue .tt-cr-status-monitor-icon {
    background: #e8f1ff;
    color: #2563eb;
}
.tt-cr-status-monitor-row--green .tt-cr-status-monitor-icon {
    background: #dff7e8;
    color: #15803d;
}
.tt-cr-status-monitor-row--orange .tt-cr-status-monitor-icon {
    background: #fff1e6;
    color: #ea580c;
}
.tt-cr-status-monitor-row--purple .tt-cr-status-monitor-icon {
    background: #f1e8ff;
    color: #7c3aed;
}
.tt-cr-status-monitor-row--teal .tt-cr-status-monitor-icon {
    background: #dff7f1;
    color: #0f766e;
}
.tt-cr-status-monitor-row--slate .tt-cr-status-monitor-icon {
    background: #eef2f7;
    color: #475569;
}
.tt-cr-status-monitor-copy {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-left: 4px;
}
.tt-cr-status-monitor-label {
    font-weight: 750;
    font-size: 0.95rem;
    color: #0f2744;
    letter-spacing: -0.01em;
    line-height: 1.25;
}
.tt-cr-status-monitor-desc {
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    color: #64748b;
}
.tt-cr-status-pill {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 750;
    letter-spacing: -0.01em;
    white-space: nowrap;
}
.tt-cr-status-pill svg {
    width: 14px;
    height: 14px;
}
.tt-cr-status-pill.is-pending {
    background: #fee2e2;
    color: #b91c1c;
}
.tt-cr-status-pill.is-cleared {
    background: #dcfce7;
    color: #15803d;
}
.tt-cr-status-pill.is-waived {
    background: #dbeafe;
    color: #1d4ed8;
}
.tt-cr-status-monitor-chevron {
    flex: 0 0 auto;
    color: #94a3b8;
    display: inline-flex;
    align-items: center;
}
.tt-cr-status-monitor-chevron svg {
    width: 18px;
    height: 18px;
}
.tt-cr-status-monitor-info {
    margin: 0;
    padding: 12px 14px;
    border-radius: 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #0f2744;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.4;
}
.tt-cr-status-monitor-info[hidden] { display: none !important; }
.tt-cr-status-monitor-yes {
    display: inline-block;
    margin: 0 1px;
    padding: 2px 12px;
    border: 1px solid #0b4a6f;
    border-radius: 999px;
    background: #0b4a6f;
    color: #fff;
    font: inherit;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
}
.tt-cr-status-monitor-yes:hover { background: #0f5f8c; border-color: #0f5f8c; }
[data-theme="dark"] .tt-cr-status-monitor-row {
    background: #132338;
    border-color: #2a4060;
    color: #e8eef6;
}
[data-theme="dark"] .tt-cr-status-monitor-label { color: #e8eef6; }
[data-theme="dark"] .tt-cr-status-monitor-desc { color: #94a3b8; }
[data-theme="dark"] .tt-cr-status-monitor-icon::after { background: #2a4060; }
[data-theme="dark"] .tt-cr-status-monitor-yes {
    background: #3d6f94;
    border-color: #3d6f94;
    color: #eaf6ff;
}
[data-theme="dark"] .tt-cr-status-monitor-yes:hover { background: #4d85ad; border-color: #4d85ad; }
[data-theme="dark"] .tt-cr-status-monitor-info {
    background: #16344a;
    border-color: #3d6f94;
    color: #c5e4f7;
}
@media (max-width: 640px) {
    .tt-cr-status-monitor-row {
        flex-wrap: wrap;
    }
    .tt-cr-status-monitor-copy {
        flex: 1 1 calc(100% - 70px);
    }
    .tt-cr-status-pill {
        margin-left: 54px;
    }
    .tt-cr-status-monitor-chevron {
        margin-left: auto;
    }
}
@media (max-width: 640px) {
    .tt-form-card--key-dates .tt-field-control > .tt-input,
    .tt-form-card--key-dates .tt-field-control > .tt-date-field-wrap,
    .tt-form-card--key-dates .tt-field-control > .tt-money,
    .tt-form-card--key-dates .tt-field-control > .tt-input-icon-wrap,
    .tt-date-status-row > .tt-date-field-wrap,
    .tt-date-status-row > .tt-radio-group {
        max-width: 100%;
        width: 100%;
        flex: 1 1 100%;
    }
    .tt-date-status-row {
        flex-wrap: wrap;
    }
    .tt-date-status-row > .tt-date-field-wrap,
    .tt-date-status-row > .tt-radio-group {
        flex: 1 1 100%;
    }
}
.tt-card-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--tt-border);
    margin-bottom: 16px;
}
.tt-card-title-row .tt-card-title {
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 0;
}
.tt-card-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.tt-card-title-icon {
    width: 18px;
    height: 18px;
    color: #2563eb;
    flex: 0 0 auto;
}
.tt-client-add-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.tt-client-add-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--tt-text-dim);
    white-space: nowrap;
}
.tt-client-add-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: #2563eb;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    padding: 4px 2px;
    white-space: nowrap;
}
.tt-client-add-link svg {
    width: 16px;
    height: 16px;
}
.tt-client-add-link:hover {
    color: #1d4ed8;
    text-decoration: underline;
}
.tt-add-circle-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--tt-border-strong);
    background: var(--tt-card);
    color: var(--tt-accent);
    font-size: 22px;
    line-height: 1;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.tt-add-circle-btn:hover {
    background: var(--tt-accent-soft);
    border-color: var(--tt-accent);
    transform: scale(1.04);
}
.tt-client-category-role { margin-bottom: 14px; }
.tt-client-title-pin { margin-bottom: 14px; }
.tt-subject-trust-ownership-row {
    display: grid;
    /* Match Subject Property Info columns: Trust=#Bedrooms, Ownership=#Bathrooms. */
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 6px;
    margin-top: 4px;
    margin-bottom: 10px;
    align-items: end;
}
.tt-subject-trust,
.tt-subject-ownership-type {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: 1 / span 2;
    width: auto;
    min-width: 0;
    justify-self: stretch;
}
.tt-subject-trust {
    grid-column: 1;
}
.tt-subject-ownership-type {
    grid-column: 2 / span 2;
}
.tt-subject-trust .tt-field-line,
.tt-subject-ownership-type .tt-field-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: subgrid;
    grid-row: 1 / span 2;
    gap: 6px;
    margin-bottom: 0;
    align-items: end;
}
.tt-subject-trust .tt-field-line > label,
.tt-subject-ownership-type .tt-field-line > label {
    text-align: left;
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
    line-height: 1.3;
    margin-bottom: 0;
    align-self: end;
}
.tt-subject-trust .tt-field-line > label {
    width: auto;
    min-width: 0;
    white-space: normal;
}
.tt-subject-trust .tt-field-control,
.tt-subject-ownership-type .tt-field-control {
    width: 100%;
    min-width: 0;
}
.tt-subject-trust .tt-radio-group,
.tt-subject-ownership-type .tt-radio-group {
    flex-wrap: nowrap;
    align-self: start;
    width: 100%;
}
.tt-subject-trust .tt-radio-group.tt-radio-group--segment {
    width: 100%;
    min-width: 0;
    max-width: none;
}
.tt-subject-trust .tt-radio-group .tt-radio {
    flex: 1 1 0;
    min-width: 0;
}
.tt-subject-trust .tt-radio-group .tt-radio span {
    padding-left: 12px;
    padding-right: 12px;
}
.tt-subject-ownership-type .tt-radio-group.tt-radio-group--pill-select {
    width: 100%;
    min-width: 0;
    max-width: none;
    flex-wrap: wrap;
    gap: 6px;
}
.tt-subject-ownership-type .tt-radio-group .tt-radio {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-subject-ownership-type .tt-radio-group .tt-radio span {
    font-size: 11px;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-subject-trust-row {
    grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr);
    margin: 8px 0 14px;
}
.tt-subject-edit-mls {
    min-width: 0;
    align-self: end;
}
.tt-subject-edit-mls > label {
    display: block;
    margin-bottom: 6px;
    color: var(--tt-text-dim);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}
.tt-subject-edit-mls-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 38px;
    align-items: center;
    gap: 7px;
}
.tt-subject-edit-mls-row .tt-input {
    min-width: 0;
}
.tt-subject-edit-mls-row .tt-btn {
    min-height: 38px;
    white-space: nowrap;
}
.tt-subject-edit-mls-row .tt-btn-icon {
    width: 38px;
    min-width: 38px;
    padding-inline: 0;
}
.tt-subject-edit-mls .tt-mls-lookup-status {
    margin-top: 5px;
}
.tt-subject-ownership-bottom .tt-subject-ownership-type {
    display: block;
    grid-column: auto;
    grid-row: auto;
}
.tt-subject-ownership-bottom .tt-subject-ownership-type .tt-field-line {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    grid-row: auto;
    gap: 9px;
}
.tt-subject-ownership-bottom .tt-subject-ownership-type .tt-field-line > label {
    font-size: 14px;
    font-weight: 800;
    color: #0f2744;
}
.tt-subject-ownership-bottom .tt-subject-ownership-type .tt-radio-group.tt-radio-group--pill-select {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    flex-wrap: nowrap;
}
.tt-subject-ownership-bottom .tt-subject-ownership-type .tt-radio {
    width: 100%;
}
.tt-subject-ownership-bottom .tt-subject-ownership-type .tt-radio span {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 14px;
    font-size: 12px;
    text-align: center;
}
.tt-subject-property-info-grid {
    margin-top: 2px;
}
.tt-property-details-grid--subject-info {
    /* Keep same 3-col track as base .tt-property-details-grid so Trust/Ownership align. */
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 14px;
}
.tt-property-details-grid--subject-info .tt-field-line--grid-span-3 {
    grid-column: span 3;
}
.tt-property-details-grid--subject-info .tt-field-line > label,
.tt-property-details-grid--subject-info .tt-lot-size-main-label {
    font-size: 17px;
    font-weight: 600;
    color: #1e5a96;
}
.tt-property-details-grid--subject-info .tt-input,
.tt-property-details-grid--subject-info select.tt-input,
.tt-property-details-grid--subject-info .tt-field-control .tt-input,
.tt-property-details-grid--subject-info select {
    font-size: 16px;
    font-weight: 700;
    color: #0f2744;
    line-height: 1.3;
}
.tt-property-details-grid--subject-info .tt-lot-size-sublabel {
    font-size: 13px;
    font-weight: 600;
    color: #1e5a96;
}
.tt-property-details-grid--subject-info .tt-lot-size-pair--stacked {
    grid-template-columns: 1fr;
    gap: 8px;
}
.tt-property-details-grid--subject-info .tt-field-line--lot-pair-stacked {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}
.tt-property-details-grid--subject-info .tt-lot-size-main-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
}
@media (max-width: 720px) {
    .tt-subject-property-info-grid .tt-property-details-grid,
    .tt-property-details-grid.tt-property-details-grid--subject-info,
    .tt-mls-core-property-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-auto-columns: minmax(0, 1fr);
        grid-auto-rows: min-content;
        grid-auto-flow: row dense;
        align-content: start;
        align-items: start;
        height: auto;
        min-height: 0;
        gap: 8px 10px;
    }
    .tt-subject-property-info-grid .tt-field-line,
    .tt-property-details-grid--subject-info .tt-field-line,
    .tt-mls-core-property-grid .tt-field-line {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: 4px;
        min-width: 0;
        max-width: 100%;
        min-height: 0;
        overflow: hidden;
        grid-column: auto;
    }
    .tt-subject-property-info-grid .tt-field-line[hidden],
    .tt-property-details-grid--subject-info .tt-field-line[hidden],
    .tt-mls-core-property-grid .tt-field-line[hidden] {
        display: none !important;
    }
    .tt-subject-property-info-grid .tt-field-line--grid-span-3,
    .tt-property-details-grid--subject-info .tt-field-line--grid-span-3,
    .tt-mls-core-property-grid .tt-field-line--grid-span-3,
    .tt-subject-property-info-grid .tt-field-line[data-tt-perm-field="property_tract_name"],
    .tt-property-details-grid--subject-info .tt-field-line[data-tt-perm-field="property_tract_name"] {
        grid-column: 1 / -1;
    }
    .tt-subject-property-info-grid .tt-field-line > label,
    .tt-property-details-grid--subject-info .tt-field-line > label,
    .tt-mls-core-property-grid .tt-field-line > label {
        display: block;
        text-align: left;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: break-word;
        line-height: 1.3;
        min-width: 0;
        max-width: 100%;
    }
    .tt-subject-property-info-grid .tt-field-control,
    .tt-property-details-grid--subject-info .tt-field-control,
    .tt-mls-core-property-grid .tt-field-control,
    .tt-subject-property-info-grid .tt-input,
    .tt-property-details-grid--subject-info .tt-input,
    .tt-mls-core-property-grid .tt-input,
    .tt-subject-property-info-grid select,
    .tt-property-details-grid--subject-info select,
    .tt-mls-core-property-grid select {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    .tt-subject-property-info-grid .tt-lot-size-pair,
    .tt-property-details-grid--subject-info .tt-lot-size-pair {
        grid-template-columns: 1fr;
    }
}
.tt-client-entity-trust {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--tt-border);
}
.tt-client-entity-trust .tt-field-line {
    margin-bottom: 10px;
}
.tt-client-entity-trust .tt-field-line > label {
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-client-entity-trust .tt-radio-group--pill-select {
    width: 100%;
    max-width: none;
}
.tt-radio-group--pill-select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}
.tt-radio-group--pill-select .tt-radio { flex: 1 1 0; min-width: 0; }
.tt-radio-group--pill-select .tt-radio span {
    display: block;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
    padding-left: clamp(8px, 1.6vw, 14px);
    padding-right: clamp(8px, 1.6vw, 14px);
}
.tt-client-view-toggle-row {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: -4px 0 16px;
}
.tt-client-view-toggle-row .tt-segment-toggle {
    width: min(100%, 240px);
}
.tt-segment-toggle {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: min(100%, 280px);
    padding: 3px;
    border: 1px solid var(--tt-border);
    border-radius: 999px;
    background: var(--tt-bg-2);
}
.tt-segment-toggle--client {
    background: #dbeafe;
    border-color: #93c5fd;
}
.tt-segment-toggle--client .tt-segment-toggle-thumb {
    background: #fff;
    box-shadow: 0 1px 4px rgba(37, 99, 235, 0.2);
}
.tt-segment-toggle--client .tt-segment-toggle-btn {
    color: #1e3a5f;
}
.tt-segment-toggle--client .tt-segment-toggle-btn.is-active {
    color: #0f2744;
}
.tt-segment-toggle-thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: calc(50% - 3px);
    height: calc(100% - 6px);
    border-radius: 999px;
    background: var(--tt-card);
    box-shadow: var(--tt-shadow);
    transition: transform 0.2s ease;
    pointer-events: none;
}
.tt-segment-toggle.is-collapsed .tt-segment-toggle-thumb {
    transform: translateX(100%);
}
.tt-segment-toggle-btn {
    position: relative;
    z-index: 1;
    border: 0;
    background: transparent;
    color: var(--tt-text-dim);
    padding: 8px 14px;
    border-radius: 999px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.15s ease;
}
.tt-segment-toggle-btn.is-active { color: var(--tt-text); }

/* Client/Subject segmented sliders — match the Expanded / Collapsed control. */
.tt-client-entity-trust .tt-radio-group--segment,
.tt-subject-trust .tt-radio-group--segment,
.tt-subject-ownership-bottom .tt-radio-group--pill-select {
    display: grid;
    gap: 0;
    width: 100%;
    max-width: none;
    padding: 3px;
    border: 1px solid #93c5fd;
    border-radius: 999px;
    background: #dbeafe;
    box-shadow:
        inset 0 1px 2px rgba(30, 64, 175, 0.08),
        0 1px 2px rgba(30, 64, 175, 0.04);
}
.tt-client-entity-trust .tt-radio-group--segment,
.tt-subject-trust .tt-radio-group--segment {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tt-subject-ownership-bottom .tt-radio-group--pill-select {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tt-client-entity-trust .tt-radio-group--segment .tt-radio,
.tt-subject-trust .tt-radio-group--segment .tt-radio,
.tt-subject-ownership-bottom .tt-radio-group--pill-select .tt-radio {
    display: block;
    width: 100%;
    min-width: 0;
}
.tt-client-entity-trust .tt-radio-group--segment .tt-radio span,
.tt-subject-trust .tt-radio-group--segment .tt-radio span,
.tt-subject-ownership-bottom .tt-radio-group--pill-select .tt-radio span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 32px;
    padding: 7px 14px;
    border-radius: 999px;
    background: transparent;
    color: #1e3a5f;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    box-sizing: border-box;
    box-shadow: none;
}
.tt-client-entity-trust .tt-radio-group--segment .tt-radio.is-active span,
.tt-subject-trust .tt-radio-group--segment .tt-radio.is-active span,
.tt-subject-ownership-bottom .tt-radio-group--pill-select .tt-radio.is-active span {
    background: #fff;
    color: #0f2744;
    font-weight: 700;
    box-shadow:
        0 1px 4px rgba(37, 99, 235, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
}
.tt-client-entity-trust .tt-radio-group--segment .tt-radio:hover span,
.tt-subject-trust .tt-radio-group--segment .tt-radio:hover span,
.tt-subject-ownership-bottom .tt-radio-group--pill-select .tt-radio:hover span {
    color: #0f2744;
}
.tt-client-entity-trust .tt-field-control:has(.tt-radio-group--segment),
.tt-subject-trust .tt-field-control:has(.tt-radio-group--segment),
.tt-subject-ownership-bottom .tt-field-control:has(.tt-radio-group--pill-select) {
    width: 100%;
    max-width: none;
}
.tt-client-entity-trust .tt-field-control > .tt-radio-group--segment {
    width: min(100%, 240px);
    max-width: 240px;
}
.tt-client-entity-trust .tt-field-line:has(.tt-radio-group--segment) {
    grid-template-columns: 150px minmax(0, 1fr);
}
.tt-client-collapsed { padding-top: 4px; }
.tt-client-name-list {
    margin: 0;
    padding-left: 20px;
    color: var(--tt-text);
    font-size: 14px;
    line-height: 1.7;
}
.tt-client-name-list li + li { margin-top: 2px; }
.tt-client-name-empty { color: var(--tt-text-dim); list-style: disc; }
.tt-additional-clients-wrap { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--tt-border); }
.tt-additional-clients-title { margin: 0 0 12px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #1e3a5f; }
.tt-clients-list { display: flex; flex-direction: column; gap: 24px; }
.tt-clients-empty { margin: 0; color: var(--tt-text-dim); font-size: 14px; }

.tt-subject-map-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #2563eb;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.tt-subject-map-link svg { width: 14px; height: 14px; }
.tt-subject-map-link:hover { text-decoration: underline; color: #1d4ed8; }

.tt-property-details-grid--subject-info .tt-field-line--has-icon > label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tt-field-label-icon {
    width: 14px;
    height: 14px;
    color: #2563eb;
    flex: 0 0 auto;
}
.tt-field-label-text {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
    color: inherit;
}

/* Client Profile: match Subject Property spec labels (17px); keep labels on one line */
.tt-form-card--client-profile .tt-field-line,
.tt-form-card--client-profile .tt-address-block .tt-field-line {
    /* Wider than default 150px so “Category / Role”, “Mailing Address”, “Entity / Trust?” stay one line */
    grid-template-columns: 11.75rem minmax(0, 1fr);
}
.tt-form-card--client-profile .tt-field-line > label,
.tt-form-card--client-profile .tt-field-label-col > label,
.tt-form-card--client-profile .tt-address-block .tt-field-line > label,
.tt-form-card--client-profile .tt-address-block .tt-field-label-col > label {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--tt-text-dim);
    white-space: nowrap;
}
.tt-form-card--client-profile .tt-client-entity-trust .tt-field-line > label {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--tt-text-dim);
    white-space: nowrap;
}
.tt-form-card--client-profile .tt-field-label-text {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
}
/* Field values: match Subject Property Info weight */
.tt-form-card--client-profile .tt-input,
.tt-form-card--client-profile select.tt-input,
.tt-form-card--client-profile .tt-field-control .tt-input,
.tt-form-card--client-profile .tt-field-control select,
.tt-form-card--client-profile .tt-field-control textarea,
.tt-form-card--client-profile .tt-email-chip-label,
.tt-form-card--client-profile .tt-email-chip-label strong,
.tt-form-card--client-profile .tt-email-chips-editor {
    font-weight: 600;
}

.tt-txn-snapshot-list {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-txn-snapshot-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e2e8f0;
}
.tt-txn-snapshot-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.tt-txn-snapshot-row dt {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    color: #64748b;
}
.tt-txn-snapshot-row dd {
    margin: 0;
    font-size: 14px;
    font-weight: 800;
    color: #0f2744;
    text-align: right;
}
.tt-client-row {
    padding: 16px 0 0;
    border-top: 1px solid var(--tt-border);
}
.tt-client-row:first-child { border-top: none; padding-top: 0; }
.tt-client-row-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-bottom: 12px;
}
.tt-modal-foot-spacer { flex: 1; }

/* ── Field lines ────────────────────────────────────────── */
.tt-fields { display: flex; flex-direction: column; gap: 12px; }
.tt-field-line { display: grid; grid-template-columns: 150px 1fr; align-items: center; gap: 12px; }
.tt-field-line.tt-field-line--apn-docs { grid-template-columns: minmax(0, 1fr); }
.tt-field-line[hidden] { display: none !important; }
.tt-field-line--sprp-pdf > label,
.tt-field-line--sprp-pdf > .tt-sprp-pdf-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
    text-align: right;
}
.tt-sprp-pdf { display: flex; flex-direction: column; gap: 8px; }
.tt-sprp-pdf-files {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tt-sprp-pdf-files:empty { display: none; }
.tt-sprp-pdf-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.tt-sprp-pdf-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px dashed var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card-2);
    color: var(--tt-text-dim);
    cursor: pointer;
}
.tt-sprp-pdf-add:hover {
    border-color: var(--tt-accent);
    color: var(--tt-accent);
}
.tt-sprp-pdf-add[hidden],
.tt-sprp-pdf-actions [hidden] {
    display: none !important;
}
.tt-sprp-pdf-add-icon { display: block; }
.tt-sprp-pdf-progress {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tt-sprp-pdf-progress[hidden],
.tt-sprp-pdf-upload[hidden],
.tt-sprp-pdf-file[hidden] {
    display: none !important;
}
.tt-sprp-pdf-progress-track {
    height: 6px;
    border-radius: 999px;
    background: var(--tt-border);
    overflow: hidden;
}
.tt-sprp-pdf-progress-fill {
    display: block;
    width: 35%;
    height: 100%;
    border-radius: inherit;
    background: var(--tt-accent);
    animation: tt-sprp-upload-indeterminate 1.1s ease-in-out infinite;
}
@keyframes tt-sprp-upload-indeterminate {
    0% { transform: translateX(-120%); }
    100% { transform: translateX(320%); }
}
.tt-sprp-pdf-progress-text {
    font-size: 12px;
    color: var(--tt-text-dim);
}
.tt-sprp-pdf-upload {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px dashed var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card-2);
    color: var(--tt-text-dim);
    font-size: 13px;
    cursor: pointer;
    width: fit-content;
    max-width: 100%;
}
.tt-sprp-pdf-upload:hover {
    border-color: var(--tt-accent);
    color: var(--tt-accent);
}
.tt-sprp-pdf-file {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card-2);
}
.tt-sprp-pdf-preview {
    flex-shrink: 0;
    white-space: nowrap;
}
.tt-sprp-pdf-preview:disabled {
    opacity: 0.45;
    cursor: default;
    transform: none;
}
.tt-sprp-pdf-file-meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-sprp-pdf-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 700;
    color: var(--tt-text);
}
button.tt-sprp-pdf-name {
    display: block;
    width: 100%;
    max-width: 100%;
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    color: var(--tt-text);
    line-height: 1.3;
}
button.tt-sprp-pdf-name:hover,
button.tt-sprp-pdf-name:focus-visible {
    text-decoration: underline;
    color: var(--tt-accent);
}
.tt-sprp-pdf-name-input {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--tt-text);
    background: var(--tt-card);
    border: 1px solid var(--tt-accent);
    border-radius: var(--tt-radius-sm);
    padding: 2px 6px;
}
.tt-sprp-pdf-when {
    font-size: 12px;
    font-weight: 500;
    color: var(--tt-text-dim);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-sprp-pdf-when:empty {
    display: none;
}
.tt-sprp-pdf-delete {
    border: none;
    background: none;
    color: var(--tt-text-faint);
    cursor: pointer;
    line-height: 0;
    padding: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--tt-radius-sm);
}
.tt-sprp-pdf-delete:hover { color: var(--tt-danger); background: rgba(220, 53, 69, 0.08); }
.tt-sprp-pdf-delete-icon { display: block; }
.tt-sprp-pdf-file--pending {
    border-style: dashed;
    border-color: #d97706;
    background: rgba(217, 119, 6, 0.06);
}
.tt-sprp-pdf-pending-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: none;
    color: #b45309;
}
.tt-sprp-pdf-review {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.tt-sprp-pdf-review[hidden] { display: none !important; }
.tt-field-line > label { font-size: 13px; font-weight: 600; color: var(--tt-text-dim); text-align: right; }
.tt-field-line > label.tt-coe-anchor-label {
    font-size: 17px;
    font-weight: 700;
    color: #0b5d32;
}
[data-theme="dark"] .tt-field-line > label.tt-coe-anchor-label {
    color: #6ee7b7;
}
.tt-field-label-col {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}
.tt-field-label-col > label { text-align: right; }
.tt-field-label-col .tt-btn { white-space: normal; text-align: right; line-height: 1.25; }
.tt-ab-category-combo {
    position: relative;
    min-width: 180px;
    flex: 1 1 200px;
}
.tt-filter-bar .tt-ab-category-combo {
    max-width: 280px;
}
.tt-ab-category-combo .tt-ab-category-input {
    width: 100%;
}
.tt-ab-category-combo .tt-ab-category-results {
    z-index: 140;
    max-height: min(42dvh, 360px);
}
.tt-ab-category-combo .tt-directory-search-item.is-active,
.tt-ab-category-combo .tt-directory-search-item.is-selected {
    background: var(--tt-bg-2);
}
.tt-ab-category-combo .tt-ab-category-create {
    font-weight: 600;
    color: var(--tt-primary, #2563eb);
}
.tt-modal .tt-ab-category-combo {
    z-index: 6;
}
/* Add Contact Classic / AI category step: fill available screen height with the list. */
#ttAbModal .tt-modal.tt-modal--wide {
    max-height: calc(100dvh - 24px);
    display: flex;
    flex-direction: column;
}
#ttAbModal .tt-modal.tt-modal--wide > .tt-modal-head,
#ttAbModal .tt-modal.tt-modal--wide > .tt-modal-foot {
    flex: 0 0 auto;
}
#ttAbModal .tt-modal.tt-modal--wide > .tt-modal-body {
    flex: 1 1 auto;
    min-height: 0;
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"],
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] {
    max-height: none;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] .tt-ab-wizard-step--classic,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] .tt-ab-wizard-step--ai {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] #ttAbClassicCategoryMount,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] #ttAbAiCategoryMount,
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] #ttAbCategoryPanel,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] #ttAbCategoryPanel {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] #ttAbCategoryPanel > .tt-field,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] #ttAbCategoryPanel > .tt-field {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    margin-bottom: 0;
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] .tt-ab-category-combo,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] .tt-ab-category-combo {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] .tt-ab-category-combo .tt-ab-category-results:not([hidden]),
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] .tt-ab-category-combo .tt-ab-category-results:not([hidden]) {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    flex: 1 1 auto;
    min-height: min(48dvh, 420px);
    max-height: min(68dvh, calc(100dvh - 220px));
    margin-top: 8px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: inset 0 0 0 1px #dbe3ef, 0 6px 18px rgba(15, 23, 42, 0.08);
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] .tt-field-hint,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] .tt-field-hint {
    flex: 0 0 auto;
    margin-top: 8px;
}
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] .tt-ab-quickpicks,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] .tt-ab-quickpicks,
#ttAbModal .tt-ab-form[data-tt-ab-step="classic"] .tt-ab-crosssearch,
#ttAbModal .tt-ab-form[data-tt-ab-step="ai"] .tt-ab-crosssearch {
    flex: 0 0 auto;
}
.tt-directory-search-results,
.tt-escrow-search-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    z-index: 120;
    max-height: 240px;
    overflow-y: auto;
    background: var(--tt-card);
    border: 1px solid var(--tt-border-strong);
    border-radius: 10px;
    box-shadow: var(--tt-shadow-md);
}
.tt-directory-search-item,
.tt-escrow-search-item {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    border-bottom: 1px solid var(--tt-border);
    background: var(--tt-card);
    text-align: left;
    cursor: pointer;
    color: var(--tt-text);
    position: relative;
    z-index: 1;
}
.tt-directory-search-item:last-child,
.tt-escrow-search-item:last-child { border-bottom: 0; }
.tt-directory-search-item:hover,
.tt-directory-search-item:focus-visible,
.tt-escrow-search-item:hover,
.tt-escrow-search-item:focus-visible {
    background: var(--tt-bg-2);
    outline: none;
}
.tt-field-line--directory-search .tt-directory-search-wrap {
    position: relative;
    z-index: 5;
}
.tt-field-line--directory-search:focus-within {
    z-index: 25;
}
.tt-directory-search-item strong,
.tt-escrow-search-item strong { display: block; font-size: 13px; font-weight: 600; }
.tt-directory-search-item em,
.tt-escrow-search-item em {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    color: var(--tt-text);
}
.tt-directory-search-item span,
.tt-escrow-search-item span { display: block; margin-top: 2px; font-size: 12px; color: var(--tt-text-dim); }
.tt-directory-search-empty,
.tt-escrow-search-empty { margin: 0; padding: 10px 12px; font-size: 12px; color: var(--tt-text-dim); }

.tt-escrow-period-timeline-card {
    margin-bottom: 22px;
}
.tt-detail-header-timeline {
    margin: 0 0 14px;
}

/* Transaction escrow timeline (circle steps) — header */
.tt-stage-pipeline {
    --tt-stage-label-fs: 20px;
    --tt-stage-date-fs: 18px;
    --tt-stage-status-fs: 11px;
    --tt-stage-status-pad-y: 4px;
    --tt-stage-status-pad-x: 10px;
    --tt-stage-status-icon: 12px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 18px 22px 18px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e6edf5;
    box-shadow: 0 4px 14px rgba(15, 39, 68, 0.06);
}
.tt-stage-pipeline-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.tt-stage-pipeline-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.tt-stage-pipeline-brand-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    color: #2563eb;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.18);
    flex: 0 0 auto;
}
.tt-stage-pipeline-brand-icon i,
.tt-stage-pipeline-brand-icon svg {
    width: 20px;
    height: 20px;
    stroke-width: 2.25;
}
.tt-stage-pipeline-brand-copy {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    min-width: 0;
}
.tt-stage-pipeline-brand-title {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: #0f2744;
}
.tt-stage-pipeline-brand-sub {
    font-size: 14px;
    font-weight: 500;
    color: #64748b;
}
.tt-stage-pipeline-head-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
    margin-left: auto;
}
.tt-timeline-edit {
    margin: 0;
    border: 1px solid #0f2744;
    background: #fff;
    color: #0f2744;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    padding: 7px 14px;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
}
.tt-stage-pipeline.is-editing .tt-timeline-edit {
    background: #0f2744;
    color: #fff;
}
.tt-timeline-edit:disabled {
    opacity: 0.7;
    cursor: wait;
}
.tt-stage-pipeline-eye {
    display: none;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-top: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #b91c1c;
    color: #fff;
    cursor: pointer;
    flex: 0 0 auto;
}
.tt-stage-pipeline.is-editing .tt-stage-pipeline-step[data-tt-stage-extended="1"] .tt-stage-pipeline-eye {
    display: inline-flex;
}
.tt-stage-pipeline-eye .tt-stage-eye-on,
.tt-stage-pipeline-eye .tt-stage-eye-off {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.tt-stage-pipeline-eye .tt-stage-eye-off,
.tt-stage-pipeline-eye.is-hidden .tt-stage-eye-on {
    display: none;
}
.tt-stage-pipeline-eye.is-hidden .tt-stage-eye-off {
    display: inline-flex;
}
.tt-stage-pipeline-eye i,
.tt-stage-pipeline-eye svg {
    width: 16px;
    height: 16px;
    stroke: #fff;
    color: #fff;
}
.tt-timeline-mode {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    padding: 3px;
    border-radius: 999px;
    background: #e8eef6;
    border: 1px solid #94a3b8;
    flex: 0 0 auto;
}
.tt-timeline-mode-thumb {
    position: absolute;
    top: 3px;
    bottom: 3px;
    left: 3px;
    width: calc(50% - 3px);
    border-radius: 999px;
    background: #0f2744;
    transition: transform 0.18s ease;
}
.tt-timeline-mode.is-extended .tt-timeline-mode-thumb {
    transform: translateX(100%);
}
.tt-timeline-mode button {
    position: relative;
    z-index: 1;
    margin: 0;
    border: 0;
    background: transparent;
    color: #0f2744;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    padding: 7px 12px;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
}
.tt-timeline-mode button[aria-pressed="true"] {
    color: #fff;
}
.tt-stage-pipeline:not(.is-editing) .tt-stage-pipeline-step[hidden],
.tt-stage-pipeline:not(.is-editing)[data-tt-timeline-view="simplified"] .tt-stage-pipeline-step[data-tt-stage-extended="1"],
.tt-stage-pipeline:not(.is-editing) .tt-stage-pipeline-step[data-tt-stage-user-hidden="1"] {
    display: none !important;
}
.tt-stage-pipeline.is-editing .tt-stage-pipeline-step[data-tt-stage-extended="1"] {
    display: flex !important;
}
.tt-stage-pipeline-legend {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 18px;
    padding: 8px 16px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.tt-stage-pipeline-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
    color: #334155;
    white-space: nowrap;
}
.tt-stage-pipeline-legend-swatch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    box-sizing: border-box;
}
.tt-stage-pipeline-legend-swatch i,
.tt-stage-pipeline-legend-swatch svg {
    width: 10px;
    height: 10px;
}
.tt-stage-pipeline-legend-swatch.is-done {
    background: #10b981;
    color: #fff;
}
.tt-stage-pipeline-legend-swatch.is-current {
    background: #fff;
    border: 2px solid #2563eb;
}
.tt-stage-pipeline-legend-swatch.is-upcoming {
    background: #fff;
    border: 2px dotted #94a3b8;
}
.tt-stage-pipeline-legend-swatch.is-scheduled {
    background: #2563eb;
    border: 2px solid #2563eb;
}
.tt-stage-pipeline-track {
    --tt-dock-max: 1.92;
    display: flex;
    align-items: flex-start;
    flex: 1 1 auto;
    min-width: 0;
    gap: 0;
    /* Resting height matches the largest dock magnification so hover does not grow the section. */
    min-height: calc(
        6px
        + (48px * var(--tt-dock-max))
        + 12px
        + (var(--tt-stage-label-fs, 20px) * var(--tt-dock-max) * 1.25)
        + 4px
        + (var(--tt-stage-date-fs, 18px) * var(--tt-dock-max) * 1.2)
        + 9px
        + (var(--tt-stage-status-pad-y, 4px) * 2)
        + 2px
        + (var(--tt-stage-status-fs, 11px) * var(--tt-dock-max) * 1.2)
        + 8px
    );
}
.tt-stage-pipeline.is-docking {
    overflow: visible;
}
.tt-stage-pipeline-node,
.tt-stage-pipeline-label,
.tt-stage-pipeline-date {
    cursor: pointer;
}
.tt-field-line.tt-pipeline-field-focus,
.tt-field-control.tt-pipeline-field-focus,
.tt-dates-demo-item.tt-pipeline-field-focus,
.tt-contingency-row.tt-pipeline-field-focus {
    outline: 3px solid #d97706 !important;
    outline-offset: 2px;
    border-radius: 12px;
    background: #fff7ed !important;
    box-shadow: inset 4px 0 0 #f59e0b, 0 0 0 3px rgba(245, 158, 11, 0.45);
    animation: ttPipelineFieldPulse 1.1s ease;
}
.tt-dates-demo-cell--field .tt-input.tt-pipeline-field-focus,
.tt-dates-demo-cell--field input.tt-pipeline-field-focus,
.tt-dates-demo-cell--field select.tt-pipeline-field-focus {
    background: #fff7ed !important;
    box-shadow: 0 0 0 3px #f59e0b !important;
    border-radius: 8px;
}
@keyframes ttPipelineFieldPulse {
    0% { box-shadow: 0 0 0 0 rgba(21, 100, 230, 0.45); }
    100% { box-shadow: 0 0 0 10px rgba(21, 100, 230, 0); }
}
.tt-stage-pipeline-step {
    position: relative;
    flex: var(--tt-dock-flex, 1) 1 0;
    z-index: var(--tt-dock-z, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 0;
    padding-top: 6px;
}
.tt-stage-pipeline-line {
    position: absolute;
    top: calc(27px + (24px * (var(--tt-dock-scale, 1) - 1)));
    right: calc(50% + (24px * var(--tt-dock-scale, 1)));
    left: calc(-50% + (24px * var(--tt-dock-scale, 1)));
    height: 3px;
    border-radius: 999px;
    z-index: 0;
    background: #cbd5e1;
    border: 0;
}
.tt-stage-pipeline-line.is-complete {
    background: #10b981;
}
.tt-stage-pipeline-line.is-pending {
    height: 0;
    background: transparent;
    border-top: 3px dashed #cbd5e1;
    border-radius: 0;
}
.tt-stage-pipeline-line.is-scheduled {
    background: #cbd5e1;
}
.tt-stage-pipeline-node {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(48px * var(--tt-dock-scale, 1));
    height: calc(48px * var(--tt-dock-scale, 1));
    border-radius: 50%;
    background: #fff;
    border: 2.5px solid #cbd5e1;
    color: #64748b;
    box-sizing: border-box;
}
.tt-stage-pipeline-node i,
.tt-stage-pipeline-node svg {
    width: calc(22px * var(--tt-dock-scale, 1));
    height: calc(22px * var(--tt-dock-scale, 1));
    stroke-width: 2.35;
}
.tt-stage-pipeline-step.is-done .tt-stage-pipeline-node {
    background: #10b981;
    border-color: #10b981;
    color: #fff;
    box-shadow: 0 3px 10px rgba(16, 185, 129, 0.32);
}
.tt-stage-pipeline-step.is-current .tt-stage-pipeline-node {
    background: #fff;
    border-color: #2563eb;
    color: #2563eb;
    box-shadow:
        0 0 0 7px rgba(37, 99, 235, 0.14),
        0 3px 12px rgba(37, 99, 235, 0.2);
}
.tt-stage-pipeline-step.is-upcoming .tt-stage-pipeline-node {
    background: #fff;
    border: 2.5px dotted #94a3b8;
    color: #94a3b8;
}
.tt-stage-pipeline-step.is-scheduled .tt-stage-pipeline-node {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
    box-shadow:
        0 0 0 7px rgba(37, 99, 235, 0.14),
        0 3px 12px rgba(37, 99, 235, 0.28);
}
.tt-stage-pipeline-label {
    margin-top: 12px;
    font-size: calc(var(--tt-stage-label-fs, 20px) * var(--tt-dock-scale, 1));
    font-weight: 700;
    line-height: 1.25;
    color: #0f2744;
    white-space: nowrap;
}
.tt-stage-pipeline-step.is-upcoming .tt-stage-pipeline-label {
    color: #64748b;
    font-weight: 600;
}
.tt-stage-pipeline-step.is-current .tt-stage-pipeline-label,
.tt-stage-pipeline-step.is-scheduled .tt-stage-pipeline-label {
    color: #1d4ed8;
    font-weight: 800;
}
.tt-stage-pipeline-date {
    margin-top: 4px;
    font-size: calc(var(--tt-stage-date-fs, 18px) * var(--tt-dock-scale, 1));
    font-weight: 600;
    line-height: 1.2;
    color: #475569;
    white-space: nowrap;
}
.tt-stage-pipeline-date--empty {
    visibility: hidden;
}
.tt-stage-pipeline-date-day {
    color: #475569;
    font-weight: 600;
}
.tt-stage-pipeline-step.is-scheduled .tt-stage-pipeline-date-day {
    color: #1d4ed8;
    font-weight: 700;
}
/* Month hues — adjacent months far apart on the color wheel (AA on white) */
.tt-stage-pipeline-date-month[data-month="1"] { color: #b91c1c; }   /* Jan red */
.tt-stage-pipeline-date-month[data-month="2"] { color: #0f766e; }   /* Feb teal */
.tt-stage-pipeline-date-month[data-month="3"] { color: #a21caf; }   /* Mar magenta */
.tt-stage-pipeline-date-month[data-month="4"] { color: #15803d; }   /* Apr green */
.tt-stage-pipeline-date-month[data-month="5"] { color: #1d4ed8; }   /* May blue */
.tt-stage-pipeline-date-month[data-month="6"] { color: #c2410c; }   /* Jun orange */
.tt-stage-pipeline-date-month[data-month="7"] { color: #6d28d9; }   /* Jul violet */
.tt-stage-pipeline-date-month[data-month="8"] { color: #be185d; }   /* Aug pink */
.tt-stage-pipeline-date-month[data-month="9"] { color: #0e7490; }   /* Sep cyan */
.tt-stage-pipeline-date-month[data-month="10"] { color: #a16207; }  /* Oct gold */
.tt-stage-pipeline-date-month[data-month="11"] { color: #4338ca; }  /* Nov indigo */
.tt-stage-pipeline-date-month[data-month="12"] { color: #047857; }  /* Dec emerald */
.tt-stage-pipeline-status {
    margin-top: 9px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: var(--tt-stage-status-pad-y, 4px) var(--tt-stage-status-pad-x, 10px);
    border-radius: 999px;
    font-size: calc(var(--tt-stage-status-fs, 11px) * var(--tt-dock-scale, 1));
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    border: 1px solid transparent;
}
.tt-stage-pipeline-status i,
.tt-stage-pipeline-status svg {
    width: var(--tt-stage-status-icon, 12px);
    height: var(--tt-stage-status-icon, 12px);
    flex: 0 0 auto;
}
.tt-stage-pipeline-status-disk {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
    display: inline-block;
}
.tt-stage-pipeline-status.is-done {
    background: #d1fae5;
    color: #047857;
    border-color: #a7f3d0;
}
.tt-stage-pipeline-status.is-current {
    background: #dbeafe;
    color: #1d4ed8;
    border-color: #bfdbfe;
}
.tt-stage-pipeline-status.is-upcoming {
    background: #f1f5f9;
    color: #475569;
    border-color: #e2e8f0;
}
.tt-stage-pipeline-status.is-scheduled {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #bfdbfe;
}
@media (max-width: 1100px) {
    .tt-stage-pipeline {
        gap: 14px;
        padding: 14px 14px 12px;
    }
    .tt-stage-pipeline-brand-title {
        font-size: 18px;
    }
    .tt-stage-pipeline-track {
        overflow-x: auto;
        padding-bottom: 4px;
    }
    .tt-stage-pipeline-step {
        flex: 0 0 118px;
    }
    .tt-stage-pipeline-legend {
        border-radius: 14px;
    }
}

/* Escrow timeline — dark mode contrast */
[data-theme="dark"] .tt-stage-pipeline {
    background: var(--tt-card, #122033);
    border-color: var(--tt-border, #2a3f57);
    box-shadow: none;
}
[data-theme="dark"] .tt-stage-pipeline-brand-icon {
    background: var(--tt-card, #122033);
    border-color: var(--tt-border, #2a3f57);
    color: #93c5fd;
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.28);
}
[data-theme="dark"] .tt-stage-pipeline-brand-title {
    color: var(--tt-text, #e8eef7);
}
[data-theme="dark"] .tt-stage-pipeline-brand-sub {
    color: var(--tt-text-dim, #a8b8cc);
}
[data-theme="dark"] .tt-stage-pipeline-legend {
    background: rgba(255, 255, 255, 0.06);
    border-color: var(--tt-border, #2a3f57);
}
[data-theme="dark"] .tt-stage-pipeline-legend-item {
    color: var(--tt-text, #e8eef7);
}
[data-theme="dark"] .tt-stage-pipeline-legend-swatch.is-current,
[data-theme="dark"] .tt-stage-pipeline-legend-swatch.is-upcoming {
    background: transparent;
}
[data-theme="dark"] .tt-stage-pipeline-label {
    color: var(--tt-text, #e8eef7);
}
[data-theme="dark"] .tt-stage-pipeline-step.is-upcoming .tt-stage-pipeline-label {
    color: var(--tt-text-dim, #a8b8cc);
}
[data-theme="dark"] .tt-stage-pipeline-step.is-current .tt-stage-pipeline-label,
[data-theme="dark"] .tt-stage-pipeline-step.is-scheduled .tt-stage-pipeline-label {
    color: #93c5fd;
}
[data-theme="dark"] .tt-stage-pipeline-date-day,
[data-theme="dark"] .tt-stage-pipeline-step.is-scheduled .tt-stage-pipeline-date-day {
    color: var(--tt-text-dim, #a8b8cc);
}
[data-theme="dark"] .tt-stage-pipeline-step.is-scheduled .tt-stage-pipeline-date-day {
    color: #93c5fd;
}
[data-theme="dark"] .tt-stage-pipeline-step.is-current .tt-stage-pipeline-node,
[data-theme="dark"] .tt-stage-pipeline-step.is-upcoming .tt-stage-pipeline-node {
    background: var(--tt-card, #122033);
}
[data-theme="dark"] .tt-stage-pipeline-line.is-pending {
    border-top-color: #64748b;
}
[data-theme="dark"] .tt-stage-pipeline-line.is-scheduled {
    background: #64748b;
}
[data-theme="dark"] .tt-stage-pipeline-status.is-done {
    background: rgba(16, 185, 129, 0.22);
    color: #6ee7b7;
    border-color: rgba(110, 231, 183, 0.35);
}
[data-theme="dark"] .tt-stage-pipeline-status.is-current,
[data-theme="dark"] .tt-stage-pipeline-status.is-scheduled {
    background: rgba(37, 99, 235, 0.28);
    color: #bfdbfe;
    border-color: rgba(147, 197, 253, 0.4);
}
[data-theme="dark"] .tt-stage-pipeline-status.is-upcoming {
    background: rgba(148, 163, 184, 0.16);
    color: #cbd5e1;
    border-color: rgba(148, 163, 184, 0.35);
}
/* Month hues — brighter + still distinct adjacent months on dark UI */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="1"] { color: #f87171; }   /* Jan red */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="2"] { color: #2dd4bf; }   /* Feb teal */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="3"] { color: #e879f9; }   /* Mar magenta */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="4"] { color: #4ade80; }   /* Apr green */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="5"] { color: #60a5fa; }   /* May blue */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="6"] { color: #fb923c; }   /* Jun orange */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="7"] { color: #c084fc; }   /* Jul violet */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="8"] { color: #f472b6; }   /* Aug pink */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="9"] { color: #22d3ee; }   /* Sep cyan */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="10"] { color: #fbbf24; }  /* Oct gold */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="11"] { color: #a5b4fc; }  /* Nov indigo */
[data-theme="dark"] .tt-stage-pipeline-date-month[data-month="12"] { color: #34d399; }  /* Dec emerald */

.tt-escrow-period-timeline-card--in-header {
    margin: 0;
    padding: 14px 16px 12px;
    border-radius: 14px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.45) 100%),
        #e8f1fb;
    border: 1px solid #c7d9ef;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 8px 22px rgba(30, 64, 120, 0.08);
}
.tt-escrow-period-timeline-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 0.85rem;
}
.tt-escrow-period-timeline-head-right {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.tt-escrow-period-timeline-title {
    margin: 0;
    color: #0f2744;
    font-size: 1rem;
    font-weight: 800;
}
.tt-escrow-period-timeline-status {
    font-size: 13px;
    font-weight: 600;
    color: #2563eb;
}
.tt-escrow-period-timeline-track-wrap {
    padding: 3.25rem 0.35rem 0.35rem;
}
.tt-escrow-period-timeline-milestones {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.tt-escrow-period-timeline-milestone {
    position: absolute;
    top: 50%;
    z-index: 1;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    pointer-events: auto;
}
.tt-escrow-period-timeline-milestone-dot {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.12) 45%, transparent 72%),
        #2563eb;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.75),
        0 0 0 2px #fff,
        0 2px 6px rgba(37, 99, 235, 0.4);
    cursor: default;
}
.tt-escrow-period-timeline-milestone.is-cluster .tt-escrow-period-timeline-milestone-dot {
    width: 20px;
    height: 20px;
    background: #1d4ed8;
}
.tt-escrow-period-timeline-milestone-count {
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    color: #fff;
}
.tt-escrow-period-timeline-milestone-short {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #1d4ed8;
    text-transform: uppercase;
    transition: opacity 0.12s ease;
    pointer-events: none;
}
.tt-escrow-period-timeline-milestone.is-cluster .tt-escrow-period-timeline-milestone-short {
    font-size: 10px;
    color: #1e3a8a;
}
.tt-escrow-period-timeline-milestone-date {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    min-width: 10rem;
    max-width: 16rem;
    white-space: normal;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #0f172a;
    background: #fff;
    padding: 0.4rem 0.55rem;
    border-radius: 8px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.18);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.12s ease, visibility 0.12s ease;
    pointer-events: none;
    z-index: 100;
}
.tt-escrow-period-timeline-milestone-tip-head {
    font-weight: 700;
    color: #0f172a;
}
.tt-escrow-period-timeline-milestone-tip-item {
    display: block;
    padding-left: 0.55rem;
    position: relative;
    font-weight: 600;
    color: #334155;
}
.tt-escrow-period-timeline-milestone-tip-item::before {
    content: '•';
    position: absolute;
    left: 0;
    color: #2563eb;
}
.tt-escrow-period-timeline-milestone:hover,
.tt-escrow-period-timeline-milestone:focus-visible {
    z-index: 100;
}
.tt-escrow-period-timeline-milestone:hover .tt-escrow-period-timeline-milestone-date,
.tt-escrow-period-timeline-milestone:focus-visible .tt-escrow-period-timeline-milestone-date {
    opacity: 1;
    visibility: visible;
}
.tt-escrow-period-timeline-milestone:hover .tt-escrow-period-timeline-milestone-short,
.tt-escrow-period-timeline-milestone:focus-visible .tt-escrow-period-timeline-milestone-short {
    opacity: 0;
}
.tt-escrow-period-timeline-milestone:focus-visible {
    outline: none;
}
.tt-escrow-period-timeline-milestone:focus-visible .tt-escrow-period-timeline-milestone-dot {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(37, 99, 235, 0.45);
}
.tt-escrow-period-timeline-milestone.is-before .tt-escrow-period-timeline-milestone-dot,
.tt-escrow-period-timeline-milestone.is-after .tt-escrow-period-timeline-milestone-dot {
    background: #64748b;
    box-shadow: 0 0 0 2px #fff, 0 1px 4px rgba(100, 116, 139, 0.35);
}
.tt-escrow-period-timeline-milestone.is-before .tt-escrow-period-timeline-milestone-short,
.tt-escrow-period-timeline-milestone.is-after .tt-escrow-period-timeline-milestone-short {
    color: #64748b;
}
.tt-escrow-period-timeline-keydates {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.tt-escrow-period-timeline-keydates-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    margin: 0 0 0.55rem;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
}
.tt-escrow-period-timeline-keydates.is-collapsed .tt-escrow-period-timeline-keydates-toggle {
    margin-bottom: 0;
}
.tt-escrow-period-timeline-keydates-toggle:hover .tt-escrow-period-timeline-keydates-title {
    color: var(--tt-accent);
}
.tt-escrow-period-timeline-keydates-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
}
.tt-escrow-period-timeline-keydates-chevron {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: var(--tt-text-dim);
    transition: transform 0.16s ease;
}
.tt-escrow-period-timeline-keydates.is-expanded .tt-escrow-period-timeline-keydates-chevron {
    transform: rotate(180deg);
}
.tt-escrow-period-timeline-keydates-panel[hidden] {
    display: none !important;
}
.tt-escrow-period-timeline-keydates-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}
.tt-escrow-period-timeline-keydates-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
    font-size: 12px;
}
.tt-escrow-period-timeline-keydates-label {
    flex: 0 0 auto;
    font-weight: 600;
    color: var(--tt-text);
}
.tt-escrow-period-timeline-keydates-date {
    flex: 0 0 auto;
    color: var(--tt-text);
    font-weight: 700;
}
.tt-escrow-period-timeline-keydates-day {
    margin-left: auto;
    color: var(--tt-text-dim);
    white-space: nowrap;
    text-align: right;
    font-weight: 700;
}
.tt-escrow-period-timeline-keydates-item.is-before .tt-escrow-period-timeline-keydates-day,
.tt-escrow-period-timeline-keydates-item.is-after .tt-escrow-period-timeline-keydates-day {
    color: #64748b;
}
@media (max-width: 640px) {
    .tt-escrow-period-timeline-keydates-item {
        gap: 0.15rem 0.5rem;
    }
    .tt-escrow-period-timeline-keydates-day {
        margin-left: 0;
        width: 100%;
        text-align: left;
    }
    .tt-escrow-period-timeline-milestone-short {
        display: none;
    }
}
.tt-escrow-period-timeline-track {
    position: relative;
    height: 16px;
    border-radius: 999px;
    overflow: visible;
}
.tt-escrow-period-timeline-gradient {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.38) 0%, rgba(255, 255, 255, 0) 48%),
        linear-gradient(90deg, #1d4ed8 0%, #2563eb 18%, #ca8a04 52%, #22c55e 82%, #4ade80 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        inset 0 0 0 1px rgba(15, 23, 42, 0.08);
}
.tt-escrow-period-timeline-endpoint {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    pointer-events: none;
}
.tt-escrow-period-timeline-endpoint--start {
    left: 0;
    transform: translate(0, -50%);
    align-items: flex-start;
}
.tt-escrow-period-timeline-endpoint--finish {
    left: 100%;
    transform: translate(-100%, -50%);
    flex-direction: row;
    align-items: center;
    gap: 3px;
}
.tt-escrow-period-timeline-endpoint-caption {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tt-text);
    line-height: 1;
    margin-top: 0.1rem;
}
.tt-escrow-period-timeline-race-flag {
    display: block;
    flex-shrink: 0;
    filter: drop-shadow(0 1px 3px rgba(15, 23, 42, 0.28));
}
.tt-escrow-period-timeline-race-flag--go {
    position: relative;
    width: 28px;
    height: 22px;
    border-radius: 5px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.45) 0%, transparent 50%),
        linear-gradient(180deg, #4ade80 0%, #16a34a 55%, #15803d 100%);
    clip-path: none;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 1px 3px rgba(15, 23, 42, 0.25);
}
.tt-escrow-period-timeline-race-flag-go-text {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 0;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.04em;
    color: #fff;
    text-shadow: 0 1px 0 rgba(15, 23, 42, 0.35);
}
.tt-escrow-period-timeline-race-flag--end {
    position: relative;
    width: 34px;
    height: 22px;
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.35) 0%, transparent 55%),
        linear-gradient(180deg, #f87171 0%, #dc2626 55%, #b91c1c 100%);
    clip-path: none;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 1px 3px rgba(15, 23, 42, 0.25);
}
.tt-escrow-period-timeline-race-flag-end-text {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 0;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.04em;
    color: #fff;
    text-shadow: 0 1px 0 rgba(15, 23, 42, 0.35);
}
/* F1-style checkered finish flag — sits immediately right of END. */
.tt-escrow-period-timeline-race-flag--checkered {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    border-radius: 2px;
    background-color: #fff;
    background-image:
        linear-gradient(45deg, #0f172a 25%, transparent 25%, transparent 75%, #0f172a 75%, #0f172a),
        linear-gradient(45deg, #0f172a 25%, transparent 25%, transparent 75%, #0f172a 75%, #0f172a);
    background-size: 6px 6px;
    background-position: 0 0, 3px 3px;
    box-shadow:
        inset 0 0 0 1px rgba(15, 23, 42, 0.2),
        0 1px 3px rgba(15, 23, 42, 0.28);
}
.tt-escrow-period-timeline-race-flag--today {
    position: relative;
    left: auto;
    top: auto;
    flex-shrink: 0;
    width: 22px;
    height: 17px;
    clip-path: polygon(0 0, 100% 0, 82% 50%, 100% 100%, 0 100%);
    background: var(--tt-escrow-marker-color, #2563eb);
    box-shadow: inset 0 -1px 0 rgba(15, 23, 42, 0.12);
}
.tt-escrow-period-timeline-flag-post {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    width: 28px;
    height: 52px;
    margin-top: -26px;
    filter: drop-shadow(0 2px 4px rgba(15, 23, 42, 0.22));
}
.tt-escrow-period-timeline-flag-post-pole {
    align-self: stretch;
    flex-shrink: 0;
    width: 3px;
    border-radius: 1px;
    background: linear-gradient(90deg, #334155 0%, #94a3b8 42%, #64748b 100%);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.45);
}
.tt-escrow-period-timeline-marker {
    position: absolute;
    top: 50%;
    z-index: 3;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
}
.tt-escrow-period-timeline-marker-badge {
    position: absolute;
    bottom: calc(100% + 44px);
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    min-height: 22px;
    padding: 0.15rem 0.7rem;
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.28) 0%, transparent 55%),
        #0f172a;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        0 4px 14px rgba(15, 23, 42, 0.22);
}
.tt-escrow-period-timeline-labels {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.65rem;
    font-size: 12px;
    color: #2563eb;
    font-weight: 700;
}
.tt-escrow-period-timeline-labels strong {
    display: block;
    color: #0f2744;
    font-size: 13px;
    margin-bottom: 0.1rem;
    font-weight: 800;
}
.tt-escrow-period-timeline-label-end {
    text-align: right;
}
.tt-escrow-period-timeline-keydates-countdown {
    flex: 1 0 100%;
    margin-top: 0.1rem;
    font-size: 1.6em;
    font-weight: 700;
    color: #01a30e;
}
.tt-escrow-period-timeline-empty {
    margin: 0;
}
.tt-escrow-period-timeline-card.is-empty .tt-escrow-period-timeline-status {
    color: var(--tt-text-dim);
}
[data-theme="dark"] .tt-escrow-period-timeline-flag-post-pole {
    background: linear-gradient(90deg, #1e293b 0%, #cbd5e1 45%, #475569 100%);
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.65);
}
[data-theme="dark"] .tt-escrow-period-timeline-marker-badge {
    background: #f8fafc;
    color: #0f172a;
}
[data-theme="dark"] .tt-escrow-period-timeline-milestone-dot {
    box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.85), 0 1px 4px rgba(37, 99, 235, 0.45);
}
[data-theme="dark"] .tt-escrow-period-timeline-milestone-short {
    color: #93c5fd;
}
[data-theme="dark"] .tt-escrow-period-timeline-milestone-date {
    color: #f8fafc;
    background: #1e293b;
    border-color: rgba(248, 250, 252, 0.12);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}
[data-theme="dark"] .tt-escrow-period-timeline-milestone-tip-head {
    color: #f8fafc;
}
[data-theme="dark"] .tt-escrow-period-timeline-milestone-tip-item {
    color: #cbd5e1;
}
[data-theme="dark"] .tt-escrow-period-timeline-milestone.is-cluster .tt-escrow-period-timeline-milestone-short {
    color: #93c5fd;
}
[data-theme="dark"] .tt-escrow-period-timeline-keydates {
    border-top-color: rgba(248, 250, 252, 0.1);
}
.tt-ab-category-cell {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    max-width: 100%;
}
.tt-ab-category { display: inline-block; font-size: 13px; font-weight: 600; color: var(--tt-text); white-space: nowrap; }
.tt-ab-category-media {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    border-radius: 6px;
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
    cursor: pointer;
    vertical-align: middle;
}
.tt-ab-category-media:hover,
.tt-ab-category-media:focus-visible {
    color: #fff;
    background: var(--tt-accent);
    outline: none;
}
.tt-ab-category-media svg { display: block; pointer-events: none; }
.tt-ab-gallery .tt-tp-gallery-thumb-label {
    position: absolute;
    left: 4px;
    right: 4px;
    bottom: 4px;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-ab-gallery .tt-tp-gallery-thumb {
    position: relative;
}
.tt-ab-email-link {
    color: var(--tt-accent);
    text-decoration: none;
    font-weight: 500;
    word-break: break-word;
}
.tt-ab-table--cards .tt-ab-email-link {
    word-break: normal;
    overflow-wrap: normal;
    white-space: nowrap;
}
.tt-ab-email-link:hover,
.tt-ab-email-link:focus-visible {
    text-decoration: underline;
    color: var(--tt-accent-deep, var(--tt-accent));
}
.tt-field-hint { margin: 6px 0 0; font-size: 12px; color: var(--tt-text-dim); line-height: 1.35; }
.tt-field-control { display: flex; flex-direction: column; gap: 4px; }
.tt-hint { font-size: 11.5px; color: var(--tt-text-faint); }

.tt-input, .tt-field-control textarea, .tt-field-control select {
    width: 100%; padding: 9px 12px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-xs);
    background: var(--tt-input-bg); color: var(--tt-text); font-family: inherit; font-size: 14px;
}
.tt-input:focus, .tt-field-control textarea:focus, .tt-field-control select:focus,
.tt-note-input:focus {
    outline: none; border-color: var(--tt-accent); box-shadow: 0 0 0 3px var(--tt-accent-soft);
}
.tt-input--computed { background: var(--tt-bg-2); color: var(--tt-text-dim); font-weight: 600; cursor: not-allowed; }
.tt-input--state { text-transform: uppercase; max-width: 90px; }

.tt-money { position: relative; display: flex; align-items: center; }
.tt-money-sign { position: absolute; left: 12px; color: var(--tt-text-faint); font-weight: 600; pointer-events: none; }
.tt-money .tt-input { padding-left: 26px; }
.tt-amount-unit {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
}
.tt-amount-unit .tt-input--amount-unit {
    width: 7.25rem;
    flex: 0 0 auto;
    text-align: right;
}
.tt-radio-group--amount-unit {
    min-width: 0;
    flex: 0 0 auto;
    gap: 0;
    padding: 2px;
    border: 1px solid var(--tt-border);
    border-radius: 999px;
    background: var(--tt-bg-2);
}
.tt-radio-group--amount-unit .tt-radio {
    flex: 0 0 auto;
}
.tt-radio-group--amount-unit .tt-radio span {
    display: block;
    min-width: 1.85rem;
    padding: 4px 9px;
    text-align: center;
    box-sizing: border-box;
}
.tt-radio-group--amount-unit .tt-radio.is-active span {
    background: var(--tt-card);
    color: var(--tt-accent);
    box-shadow: var(--tt-shadow);
}
.tt-percent { position: relative; display: flex; align-items: center; max-width: 9rem; }
.tt-percent-sign { position: absolute; left: 12px; color: var(--tt-text-faint); font-weight: 600; pointer-events: none; }
.tt-percent .tt-input { padding-left: 28px; text-align: center; }
.tt-escrow-comp-percent.tt-percent {
    position: relative;
    max-width: none;
}
.tt-escrow-comp-percent .tt-percent-sign {
    position: static;
    left: auto;
    color: #0f172a;
    font-weight: 800;
}
.tt-escrow-comp-percent .tt-input {
    padding-left: 6px;
    padding-right: 6px;
}
.tt-percent-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.tt-percent-basis {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
    white-space: nowrap;
}
.tt-compensation-box .tt-percent { max-width: 7.5rem; }
.tt-compensation-box .tt-field-line {
    grid-template-columns: minmax(0, 5.75rem) 1fr;
    align-items: start;
    gap: 8px;
}
.tt-compensation-box .tt-field-line > label {
    line-height: 1.25;
}

.tt-radio-group {
    display: inline-flex;
    flex-wrap: wrap;
    width: fit-content;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    align-self: stretch;
    gap: 4px;
    background: var(--tt-bg-2);
    padding: 3px;
    border-radius: 999px;
}
/* Dates rows: the Yes/No pill must stay a short switch, not stretch with the row. */
.tt-dates-demo-cell--field > .tt-radio-group {
    align-self: center;
    height: auto;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    gap: 3px;
    padding: 3px;
    background: #c7d9ee;
    border-radius: 100px;
}
.tt-dates-demo-cell--field > .tt-radio-group .tt-radio span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    min-height: 29px;
    padding: 0 16px;
    line-height: 1;
}
.tt-radio-group--segment {
    width: 100%;
    max-width: 100%;
    gap: 0;
}
.tt-radio-group--segment .tt-radio {
    flex: 1 1 0;
    min-width: 0;
}
.tt-radio-group--segment .tt-radio span {
    display: block;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}
.tt-radio { position: relative; cursor: pointer; flex: 0 1 auto; min-width: 0; }
.tt-radio input { position: absolute; opacity: 0; width: 0; height: 0; }
.tt-radio span {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
    transition: 0.15s;
    white-space: nowrap;
    box-sizing: border-box;
    max-width: 100%;
}
.tt-radio.is-active span { background: var(--tt-card); color: var(--tt-accent); box-shadow: var(--tt-shadow); }
.tt-radio-group--cr-status {
    width: 100%;
    max-width: 100%;
}
.tt-radio-group--cr-status .tt-radio.is-active:has(input[value="Pending"]) span {
    color: #c62828;
}
.tt-radio-group--cr-status .tt-radio.is-active:has(input[value="Cleared"]) span,
.tt-radio-group--cr-status .tt-radio.is-active:has(input[value="Received"]) span,
.tt-radio-group--cr-status .tt-radio.is-active:has(input[value="Waived Cleared"]) span {
    color: #1b7a3d;
}
.tt-form-card--key-dates .tt-radio-group--cr-status:has(input[value="Waived Cleared"]) .tt-radio span {
    font-size: 11px;
    padding-left: 10px;
    padding-right: 10px;
    white-space: nowrap;
}
.tt-radio-group--yesno-blue .tt-radio.is-active:has(input[value="Yes"]) span {
    background: #2563eb;
    color: #fff;
}
.tt-radio-group--yesno-solar .tt-radio.is-active:has(input[value="Yes"]) span {
    background: linear-gradient(180deg, #fde047 0%, #f59e0b 100%);
    color: #713f12;
}
.tt-field-control:has(.tt-radio-group) {
    align-items: stretch;
    min-width: 0;
    max-width: 100%;
}
/* Keep pill/toggle controls inside cards on every tab — never clip at the card edge. */
.tt-form-card,
.tt-card-grid > .tt-form-card,
.tt-field-line,
.tt-field-control {
    min-width: 0;
}
.tt-form-card {
    overflow: visible;
}

.tt-field-line--misc { grid-template-columns: 150px 1fr; }
.tt-cda .tt-misc-row {
    display: grid;
    grid-template-columns: 7.25rem minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}
.tt-cda .tt-misc-row .tt-misc-amount { min-width: 0; }
.tt-cda .tt-misc-row .tt-misc-amount .tt-input { width: 100%; min-width: 0; }
.tt-cda .tt-misc-label {
    font-size: 13px;
    min-width: 0;
    width: 100%;
}
.tt-cda-bsf-row {
    display: grid;
    grid-template-columns: 7.25rem 3.75rem;
    gap: 10px;
    align-items: end;
    width: fit-content;
    max-width: 100%;
}
.tt-cda-bsf-row .tt-money,
.tt-cda-net-row .tt-cda-net-amount {
    min-width: 0;
}
.tt-cda-bsf-row .tt-money .tt-input,
.tt-cda-net-row .tt-cda-net-amount .tt-input {
    width: 100%;
    min-width: 0;
}
.tt-cda-net-row {
    display: grid;
    grid-template-columns: 7.25rem 3.75rem;
    gap: 10px;
    align-items: end;
    width: fit-content;
    max-width: 100%;
}
.tt-cda-split-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    width: 3.75rem;
}
.tt-input--split-pct {
    padding-left: 6px;
    padding-right: 6px;
    text-align: center;
}
.tt-cda-split-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--tt-muted, #5f6368);
}
.tt-cda-dynamic-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.tt-cda .tt-field-line.tt-cda-dynamic-row--inline {
    align-items: center;
}
.tt-cda .tt-field-line.tt-cda-dynamic-row--inline .tt-cda-dynamic-control {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 100%;
}
.tt-cda .tt-field-line.tt-cda-dynamic-row--inline .tt-money--cda-compact {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    max-width: none;
}
.tt-cda-dynamic-control {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
}
.tt-cda-dynamic-control--compact {
    justify-content: flex-start;
    flex-wrap: nowrap;
    width: 100%;
}
.tt-money--cda-compact .tt-input {
    width: 100%;
    min-width: 0;
}
.tt-money--cda-credit .tt-input {
    color: var(--tt-success, #16a34a);
}
.tt-money--cda-debit .tt-input {
    color: var(--tt-danger, #dc2626);
}
.tt-cda [data-tt-field="remax_bsf"],
.tt-cda [data-tt-field="remax_ccf"],
.tt-cda [data-tt-field="transaction_coordinator_fee"],
.tt-cda [data-tt-field="referral_fee"] {
    color: var(--tt-danger, #dc2626);
}
.tt-cda-misc-cost-stack {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
.tt-field-line--cda-misc-cost,
.tt-field-line--cda-escrow-paid {
    align-items: start;
}
.tt-cda-editable-label-host {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
    text-align: right;
    margin: 0;
}
.tt-cda-editable-label {
    cursor: text;
    border-bottom: 1px dashed transparent;
    outline: none;
}
.tt-cda-editable-label:hover,
.tt-cda-editable-label:focus {
    border-bottom-color: var(--tt-border-strong, #94a3b8);
}
.tt-cda-editable-label-input {
    width: 100%;
    min-width: 0;
    font-size: 13px;
    font-weight: 600;
}
.tt-field-line--cda-misc-cost > label,
.tt-field-line--cda-escrow-paid > label {
    padding-top: 10px;
}
.tt-cda-misc-cost-line {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.tt-cda-misc-cost-line--amount .tt-money--cda-compact {
    flex: 1 1 auto;
    max-width: none;
    width: auto;
}
.tt-cda-misc-cost-line--desc .tt-misc-label {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-cda-dynamic-remove {
    border: none;
    background: transparent;
    color: var(--tt-text-faint);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 6px;
    flex-shrink: 0;
}
.tt-cda-dynamic-remove:hover { color: var(--tt-danger); }
.tt-add-circle-btn--sm {
    width: 28px;
    height: 28px;
    font-size: 18px;
    flex-shrink: 0;
}
.tt-cda-dynamic-add[hidden] {
    display: none !important;
}
.tt-field-line--cda-misc-cost .tt-field-control,
.tt-field-line--cda-escrow-paid .tt-field-control {
    min-width: 0;
}
.tt-misc-row { display: grid; grid-template-columns: 150px 1fr; gap: 8px; }

.tt-cda-step3-report {
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid var(--tt-border);
}
.tt-cda-report-modal .tt-modal-body {
    max-height: min(72vh, 720px);
    overflow: auto;
}
.tt-cda-report-export-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-cda-report-loading {
    color: var(--tt-text-dim);
    font-size: 14px;
    margin: 0;
}
.tt-cda-report {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.tt-cda-report-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.tt-cda-report-logo {
    max-width: 160px;
    max-height: 64px;
    object-fit: contain;
    flex-shrink: 0;
}
.tt-cda-report-head-text {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-cda-report-title {
    margin: 0 0 4px;
    font-size: 20px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-cda-report-sub,
.tt-cda-report-meta,
.tt-cda-report-property {
    margin: 0;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-cda-report-property + .tt-cda-report-property {
    margin-top: 2px;
}
.tt-cda-report-take-home {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-radius: var(--tt-radius-sm);
    background: linear-gradient(180deg, rgba(22, 163, 74, 0.12) 0%, rgba(22, 163, 74, 0.06) 100%);
    border: 1px solid rgba(22, 163, 74, 0.25);
}
.tt-cda-report-take-home-label {
    font-size: 14px;
    font-weight: 700;
    color: #166534;
}
.tt-cda-report-take-home-value {
    font-size: 22px;
    font-weight: 700;
    color: #166534;
}
.tt-cda-report-section-title {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-cda-report-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.tt-cda-report-table th,
.tt-cda-report-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--tt-border);
    vertical-align: top;
}
.tt-cda-report-table th {
    width: 58%;
    font-weight: 600;
    text-align: left;
    color: var(--tt-text-dim);
}
.tt-cda-report-table td {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--tt-text);
}
.tt-cda-report-row--debit td { color: var(--tt-danger, #dc2626); }
.tt-cda-report-row--credit td { color: var(--tt-success, #16a34a); }
.tt-cda-report-row--total td,
.tt-cda-report-row--total th { font-weight: 700; }
.tt-cda-report-row--highlight td,
.tt-cda-report-row--highlight th {
    font-weight: 700;
    color: #166534;
    background: rgba(22, 163, 74, 0.06);
}

/* ── Notes ──────────────────────────────────────────────── */
.tt-notes-layout { display: grid; grid-template-columns: 360px 1fr; gap: 22px; align-items: start; }
.tt-notes-toolbar,
.tt-docs-toolbar-wrap {
    grid-column: 1 / -1;
}
.tt-notes-toolbar,
.tt-docs-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card);
}
.tt-docs-toolbar-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tt-docs-toolbar-hint {
    margin: 0;
    font-size: 12px;
    color: var(--tt-text-faint);
    line-height: 1.45;
}
.tt-notes-search-wrap,
.tt-docs-search-wrap { flex: 1 1 220px; min-width: 0; }
.tt-notes-search,
.tt-docs-search { width: 100%; }
.tt-notes-filters,
.tt-docs-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.tt-notes-filter,
.tt-docs-filter,
.tt-chat-media-filter {
    border: 1px solid var(--tt-border); background: var(--tt-card-2); color: var(--tt-text-dim);
    border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 600; cursor: pointer;
}
.tt-notes-filter.is-active,
.tt-docs-filter.is-active,
.tt-chat-media-filter.is-active { border-color: var(--tt-accent); background: var(--tt-accent-soft); color: var(--tt-accent); }
.tt-notes-result-count,
.tt-docs-result-count { font-size: 12px; color: var(--tt-text-faint); white-space: nowrap; margin-left: auto; }
.tt-note-input { width: 100%; padding: 12px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm); background: var(--tt-input-bg); color: var(--tt-text); font-family: inherit; font-size: 14px; resize: vertical; }
.tt-note-composer-foot { margin-top: 12px; display: flex; justify-content: flex-end; }
.tt-note-priority { margin-top: 14px; }
.tt-note-priority-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.tt-note-priority-value { font-size: 12px; font-weight: 600; color: var(--tt-text-dim); }
.tt-note-priority-track-wrap { position: relative; padding: 0 2px 34px; }
.tt-note-priority-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(90deg, #22c55e 0%, #84cc16 25%, #eab308 50%, #f97316 75%, #ef4444 100%);
    outline: none;
    cursor: pointer;
}
.tt-note-priority-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: var(--tt-text);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    cursor: grab;
}
.tt-note-priority-range::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: var(--tt-text);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    cursor: grab;
}
.tt-note-priority-stops {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    pointer-events: none;
}
.tt-note-priority-stop {
    pointer-events: auto;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 28px;
    opacity: 0.72;
    transition: opacity 0.15s ease, transform 0.15s ease;
}
.tt-note-priority-stop.is-active { opacity: 1; transform: translateY(-1px); }
.tt-note-priority-stop-icons {
    display: inline-block;
    letter-spacing: -7px;
    line-height: 1;
    white-space: nowrap;
    min-height: 20px;
}
.tt-note-priority-pepper-emoji {
    font-size: 16px;
    line-height: 1;
    display: inline-block;
    vertical-align: middle;
}
.tt-note-priority-custom-icon {
    width: 16px;
    height: 16px;
    object-fit: contain;
    display: inline-block;
}
.tt-note-priority-edit-mount .tt-note-priority { margin-top: 10px; }

.tt-note-priority-row,
.tt-postit-priority-row {
    display: flex;
    align-items: center;
    min-height: 18px;
    margin-bottom: 6px;
    line-height: 1;
}
.tt-note-chili-badge {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 1;
    vertical-align: middle;
}
.tt-note-chili-badge-icons {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    letter-spacing: -9px;
    line-height: 1;
    gap: 0;
}
.tt-note-chili-badge-icons .tt-note-priority-pepper-emoji { font-size: 14px; }
.tt-note-chili-badge-icons .tt-note-priority-custom-icon {
    width: 14px;
    height: 14px;
    margin-right: -5px;
}
.tt-note-chili-badge-icons .tt-note-priority-custom-icon:last-child {
    margin-right: 0;
}
.tt-postit-priority-row .tt-note-chili-badge-icons .tt-note-priority-pepper-emoji { font-size: 13px; }

.tt-note--priority-1 { background: rgba(34, 197, 94, 0.12); border-color: rgba(34, 197, 94, 0.34); }
.tt-note--priority-2 { background: rgba(132, 204, 22, 0.13); border-color: rgba(132, 204, 22, 0.34); }
.tt-note--priority-3 { background: rgba(234, 179, 8, 0.14); border-color: rgba(234, 179, 8, 0.36); }
.tt-note--priority-4 { background: rgba(249, 115, 22, 0.13); border-color: rgba(249, 115, 22, 0.36); }
.tt-note--priority-5 { background: rgba(239, 68, 68, 0.13); border-color: rgba(239, 68, 68, 0.38); }
.tt-note.is-pinned.tt-note--priority-1 { background: linear-gradient(180deg, rgba(254, 243, 199, 0.55) 0%, rgba(34, 197, 94, 0.14) 72%); }
.tt-note.is-pinned.tt-note--priority-2 { background: linear-gradient(180deg, rgba(254, 243, 199, 0.55) 0%, rgba(132, 204, 22, 0.15) 72%); }
.tt-note.is-pinned.tt-note--priority-3 { background: linear-gradient(180deg, rgba(254, 243, 199, 0.55) 0%, rgba(234, 179, 8, 0.16) 72%); }
.tt-note.is-pinned.tt-note--priority-4 { background: linear-gradient(180deg, rgba(254, 243, 199, 0.55) 0%, rgba(249, 115, 22, 0.15) 72%); }
.tt-note.is-pinned.tt-note--priority-5 { background: linear-gradient(180deg, rgba(254, 243, 199, 0.55) 0%, rgba(239, 68, 68, 0.15) 72%); }
.tt-note-feed { display: flex; flex-direction: column; gap: 14px; max-height: 620px; overflow-y: auto; }
.tt-note { padding: 14px 16px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm); background: var(--tt-card-2); }
.tt-note-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 7px; }
.tt-note-privacy { flex: 0 1 auto; min-width: 150px; }
.tt-note-privacy .tt-radio span { font-size: 11px; padding: 4px 10px; }
.tt-note-privacy-badge {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--tt-muted, #64748b);
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.12);
}
.tt-note.is-private { border-left-color: var(--tt-muted, #94a3b8); }
.tt-note-meta { font-size: 12.5px; color: var(--tt-text-dim); }
.tt-note-actions { display: flex; gap: 8px; opacity: 0; transition: 0.15s; }
.tt-note:hover .tt-note-actions { opacity: 1; }
.tt-note-edit, .tt-note-delete { border: none; background: none; cursor: pointer; font-size: 12px; font-weight: 600; color: var(--tt-text-dim); }
.tt-note-pin {
    border: none;
    background: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    color: var(--tt-text-faint);
    transition: color 0.15s, background 0.15s;
}
.tt-note-pin:hover { color: var(--tt-accent); background: var(--tt-accent-soft); }
.tt-note-pin.is-pinned { color: #c0392b; }
.tt-note-pin.is-pinned:hover { color: #a93226; }
.tt-note.is-pinned {
    border: 2px solid #f59e0b;
    box-shadow:
        0 0 0 3px rgba(245, 158, 11, 0.28),
        inset 0 0 0 1px rgba(251, 191, 36, 0.45);
}
.tt-note-pin.is-pinned { color: #d97706; }
.tt-pin-lucide {
    display: inline-block;
    vertical-align: middle;
    stroke: currentColor;
}
.tt-note-pin .tt-pin-lucide,
.tt-postit-unpin .tt-pin-lucide { pointer-events: none; }
.tt-postit-pin-lucide {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%) rotate(-18deg);
    color: #dc2626;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.28));
    pointer-events: none;
}
.tt-postit-pin-lucide .tt-pin-lucide { width: 26px; height: 26px; stroke-width: 2.4; }
.tt-note-edit:hover { color: var(--tt-accent); }
.tt-note-delete:hover { color: var(--tt-danger); }
.tt-note-body { font-size: 14px; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }
.tt-note-empty, .tt-doc-empty { color: var(--tt-text-faint); font-size: 14px; }

/* ── Pinned post-it notes ───────────────────────────────── */
.tt-pinned-notes-layer {
    position: fixed;
    inset: 0;
    z-index: 9100;
    pointer-events: none;
    overflow: hidden;
}
.tt-postit {
    position: fixed;
    width: min(240px, calc(100vw - 32px));
    min-height: 120px;
    padding: 28px 14px 14px;
    pointer-events: auto;
    touch-action: none;
    cursor: grab;
    border: none;
    border-radius: 2px 2px 14px 2px;
    background:
        linear-gradient(150deg, rgba(255, 255, 255, 0.45) 0%, transparent 42%),
        linear-gradient(180deg, #fff9b8 0%, #fef08a 48%, color-mix(in srgb, var(--tt-postit-priority, #fde68a) 42%, #fffdf0) 100%);
    box-shadow:
        0 14px 28px rgba(0, 0, 0, 0.16),
        0 2px 0 rgba(255, 255, 255, 0.65) inset,
        2px 3px 0 rgba(0, 0, 0, 0.06);
    transform: rotate(var(--tt-postit-rot, -1deg));
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    font-family: "Comic Sans MS", "Segoe Print", "Bradley Hand", cursive;
    color: #3f3f1f;
}
.tt-postit:focus-visible {
    outline: 2px solid var(--tt-accent);
    outline-offset: 2px;
}
.tt-postit.is-dragging {
    cursor: grabbing;
    box-shadow: 0 22px 40px rgba(0, 0, 0, 0.22);
    transform: rotate(0deg) scale(1.02);
    z-index: 9999 !important;
}
.tt-postit-toolbar {
    position: absolute;
    top: 6px;
    right: 6px;
    display: flex;
    align-items: center;
    gap: 4px;
    z-index: 2;
}
.tt-postit-collapse,
.tt-postit-unpin {
    position: static;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.55);
    color: #9a3412;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.tt-postit-collapse:hover,
.tt-postit-unpin:hover { background: rgba(255, 255, 255, 0.9); }
.tt-postit-collapse .tt-pin-lucide,
.tt-postit-unpin .tt-pin-lucide { pointer-events: none; }
.tt-postit-meta {
    display: block;
    font-size: 11px;
    color: rgba(63, 63, 31, 0.72);
    margin-bottom: 8px;
    padding-right: 72px;
    font-family: var(--tt-font);
}
.tt-postit-body {
    font-size: 14px;
    line-height: 1.45;
    max-height: 180px;
    overflow: auto;
    word-break: break-word;
    white-space: pre-wrap;
}
.tt-postit.is-collapsed {
    min-height: 88px;
    padding-bottom: 10px;
}
.tt-postit.is-collapsed .tt-postit-body {
    max-height: none;
    overflow: hidden;
    font-size: 13px;
}
.tt-postit.is-collapsed .tt-postit-drag-hint { display: none; }
.tt-postit-drag-hint {
    margin-top: 8px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(63, 63, 31, 0.45);
    font-family: var(--tt-font);
}
.tt-pinned-notes-layer.is-mobile .tt-postit {
    width: min(280px, calc(100vw - 24px));
    min-height: 132px;
    padding-top: 32px;
}
.tt-pinned-notes-layer.is-mobile .tt-postit-drag-hint {
    font-size: 11px;
}
@media (max-width: 768px) {
    .tt-pinned-notes-layer .tt-postit {
        width: min(280px, calc(100vw - 24px));
    }
    .tt-note-pin {
        width: 36px;
        height: 36px;
    }
    .tt-note-actions { opacity: 1; }
    .tt-access-panels {
        grid-template-columns: 1fr;
    }
    .tt-property-details-mls-identity-row {
        grid-template-columns: 1fr;
    }
}

/* ── CDA ────────────────────────────────────────────────── */
.tt-cda-actions { display: flex; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.tt-misc-label { font-size: 13px; }

/* ── Dates extra ────────────────────────────────────────── */
.tt-dates-extra { margin-top: 22px; }
.tt-date-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}
.tt-date-input-wrap .tt-input[type="date"] {
    width: 100%;
    padding-right: 3.25rem;
}
.tt-date-field-wrap {
    position: relative;
    width: 100%;
}
[data-tt-panel="dates"] input[type="date"] {
    cursor: pointer;
}
.tt-date-field-wrap .tt-date-tbd {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--tt-text-faint);
    font-size: 14px;
    line-height: 1;
    z-index: 1;
}
.tt-date-field-wrap:not(.is-empty) .tt-date-tbd,
.tt-date-field-wrap:focus-within .tt-date-tbd {
    display: none;
}
.tt-date-field-wrap.is-empty .tt-date-input {
    color: transparent;
}
.tt-date-field-wrap.is-empty .tt-date-input::-webkit-datetime-edit,
.tt-date-field-wrap.is-empty .tt-date-input::-webkit-datetime-edit-fields-wrapper {
    color: transparent;
}
.tt-date-field-wrap:focus-within .tt-date-input,
.tt-date-field-wrap:focus-within .tt-date-input::-webkit-datetime-edit,
.tt-date-field-wrap:focus-within .tt-date-input::-webkit-datetime-edit-fields-wrapper {
    color: inherit;
}
.tt-date-tool-inline-btn {
    position: absolute;
    right: 2.55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}
.tt-date-tool-inline-icon {
    display: block;
    width: 14px;
    height: 14px;
    object-fit: cover;
    border-radius: 50%;
}
.tt-date-tool-inline-btn:hover { opacity: 0.85; }
.tt-date-tool-inline-btn:focus-visible {
    outline: 2px solid var(--tt-accent);
    outline-offset: 2px;
}
.tt-date-calc { max-width: 520px; color: #000; }
.tt-date-calc.tt-form-card--contingency-opts,
.tt-form-card.tt-date-calc {
    max-width: none;
    width: 100%;
}
.tt-date-calc--bare {
    max-width: none;
    width: 100%;
}
.tt-date-calc .tt-date-calc-body,
.tt-date-calc .tt-date-calc-inner {
    color: #0f172a;
}
.tt-date-calc .tt-date-calc-body label,
.tt-date-calc .tt-date-calc-body .tt-input {
    color: #000;
}
.tt-date-calc-body {
    background: #eef2f7;
}
.tt-date-calc-inner {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 14px 14px 12px;
}
.tt-date-calc-formula {
    margin: 0 0 8px;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.35;
    color: #0a1628;
}
.tt-date-calc-widget-line {
    margin: 0 0 14px;
    font-size: var(--tt-font-size-sm, 13px);
    font-weight: 600;
    line-height: 1.4;
    color: #0a1628;
}
.tt-date-calc .tt-contingency-opts-head {
    overflow: visible;
    position: relative;
    z-index: 4;
}
.tt-date-calc .tt-contingency-opts-head-actions {
    align-self: center;
}
.tt-date-calc-widget-btn--on-navy {
    background: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
}
.tt-date-calc-widget-btn {
    flex: 0 0 auto;
    position: relative;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(16, 18, 40, 0.22);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    overflow: visible;
    line-height: 0;
}
.tt-date-calc-widget-btn::after {
    content: attr(aria-label);
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 5;
    padding: 5px 8px;
    border: 1px solid #c5cad6;
    border-radius: 6px;
    background: #fff;
    color: #111827;
    box-shadow: 0 4px 12px rgba(16, 18, 40, 0.18);
    font-family: var(--tt-font);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
}
.tt-date-calc-widget-icon {
    display: block;
    width: 36px;
    height: 36px;
    object-fit: cover;
    border-radius: 50%;
    pointer-events: none;
}
.tt-date-calc-widget-btn:hover {
    box-shadow: 0 4px 12px rgba(16, 18, 40, 0.28);
}
.tt-date-calc-widget-btn:hover .tt-date-calc-widget-icon,
.tt-date-calc-widget-btn:focus-visible .tt-date-calc-widget-icon {
    transform: scale(1.06);
}
.tt-date-calc-widget-btn:hover::after,
.tt-date-calc-widget-btn:focus-visible::after {
    opacity: 1;
    visibility: visible;
}
.tt-date-calc-widget-btn:focus-visible {
    outline: 2px solid var(--tt-accent);
    outline-offset: 2px;
}
.tt-date-calc-row {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 14px;
}
.tt-date-calc-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.tt-date-calc-field label {
    font-size: 12px;
    font-weight: 700;
    color: #000;
}
.tt-date-calc-field--days { flex: 0 0 7.5rem; }
.tt-date-calc-field--result { flex: 1 1 auto; }
.tt-input--days-count {
    max-width: 7.5rem;
    text-align: center;
}
.tt-input--selm-reg {
    width: calc(7ch + 1.75rem);
    max-width: 100%;
}
.tt-input-icon-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    max-width: 100%;
}
.tt-input-icon-wrap .tt-input--days-count {
    flex: 0 0 auto;
}
.tt-field-info-wrap {
    position: relative;
    flex-shrink: 0;
}
.tt-field-info-btn {
    width: 18px;
    height: 18px;
    padding: 0;
    border: 1px solid var(--tt-text-dim);
    border-radius: 50%;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.tt-field-info-icon {
    font-size: 11px;
    font-weight: 700;
    font-style: italic;
    font-family: Georgia, "Times New Roman", serif;
    transform: translateY(-0.5px);
}
.tt-field-info-btn:hover,
.tt-field-info-wrap.is-open .tt-field-info-btn {
    color: var(--tt-accent);
    border-color: var(--tt-accent);
}
.tt-field-info-btn:focus-visible {
    outline: 2px solid var(--tt-accent);
    outline-offset: 2px;
}
.tt-field-info-popover {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    transform: translateX(-50%);
    min-width: 220px;
    max-width: 280px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--tt-surface-raised, #fff);
    border: 1px solid var(--tt-border, #d8dce3);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    font-size: 12px;
    line-height: 1.4;
    color: var(--tt-text, #1a1a1a);
    text-align: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 30;
    transition: opacity 0.15s ease, visibility 0.15s ease;
}
.tt-field-info-wrap:hover .tt-field-info-popover,
.tt-field-info-wrap.is-open .tt-field-info-popover {
    opacity: 1;
    visibility: visible;
}
.tt-date-calc-row--reference .tt-date-calc-field--reference { flex: 1 1 auto; }
.tt-date-calc-result-wrap {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    min-width: 0;
}
.tt-date-calc-result-wrap .tt-date-calc-result {
    width: 13.5rem;
    max-width: 100%;
    flex: 0 1 13.5rem;
}
.tt-date-calc-copy {
    align-self: center;
    flex: 0 0 auto;
    height: 32px;
    padding: 0 12px;
    gap: 6px;
    border: 1px solid #0f4ea8;
    border-radius: 8px;
    background: #1564e6;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.tt-date-calc-copy[hidden] {
    display: none !important;
}
.tt-date-calc-copy:hover,
.tt-date-calc-copy:focus-visible {
    background: #0f4ea8;
    border-color: #0c3f88;
    color: #ffffff;
    outline: none;
}
.tt-date-calc-copy.is-copied {
    background: #0f6f86;
    border-color: #0c5a6e;
    color: #ffffff;
}
.tt-date-paste-btn {
    position: absolute;
    right: 1.85rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    height: 26px;
    width: auto;
    padding: 0 8px;
    border: 1px solid #0f4ea8;
    border-radius: 7px;
    background: #1564e6;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    overflow: visible;
}
.tt-date-field-wrap:has(.tt-date-tool-inline-btn) .tt-date-paste-btn {
    right: 3.15rem;
}
body.tt-date-paste-prompt .tt-date-paste-btn,
.tt-date-field-wrap.has-clipboard-date:hover .tt-date-paste-btn,
.tt-date-field-wrap.has-clipboard-date:focus-within .tt-date-paste-btn {
    display: inline-flex;
}
.tt-date-paste-btn:hover,
.tt-date-paste-btn:focus-visible {
    background: #0f4ea8;
    border-color: #0c3f88;
    color: #ffffff;
    outline: none;
}
.tt-date-paste-spark {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 4px;
    height: 4px;
    margin: -2px 0 0 -2px;
    border-radius: 50%;
    background: #ffffff;
    pointer-events: none;
    opacity: 0;
    box-shadow:
        0 -16px 0 0 #c98400,
        14px -7px 0 0 #1564e6,
        15px 10px 0 0 #c98400,
        -1px 16px 0 0 #1564e6,
        -15px 8px 0 0 #c98400,
        -14px -8px 0 0 #1564e6;
}
body.tt-date-paste-prompt:not(.tt-date-paste-fading) .tt-date-paste-btn {
    animation: ttPasteGlow 1.15s ease-in-out infinite;
}
body.tt-date-paste-prompt:not(.tt-date-paste-fading) .tt-date-paste-spark {
    opacity: 1;
    animation: ttPasteSpark 1.15s ease-in-out infinite;
}
body.tt-date-paste-fading .tt-date-paste-btn {
    animation: ttPasteBtnFade 0.5s ease forwards;
    pointer-events: none;
}
body.tt-date-paste-fading .tt-date-paste-spark {
    animation: ttPasteSparkFade 0.5s ease forwards;
}
@keyframes ttPasteSpark {
    0% { transform: scale(0.65) rotate(0deg); opacity: 0.25; }
    45% { opacity: 1; }
    100% { transform: scale(1.2) rotate(24deg); opacity: 0.2; }
}
@keyframes ttPasteGlow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(21, 100, 230, 0.28); }
    50% { box-shadow: 0 0 0 5px rgba(201, 132, 0, 0.18), 0 0 14px 2px rgba(21, 100, 230, 0.45); }
}
@keyframes ttPasteBtnFade {
    from { opacity: 1; }
    to { opacity: 0; }
}
@keyframes ttPasteSparkFade {
    from { opacity: 1; transform: scale(1) rotate(0deg); }
    to { opacity: 0; transform: scale(0.4) rotate(12deg); }
}
@media (prefers-reduced-motion: reduce) {
    body.tt-date-paste-prompt .tt-date-paste-btn,
    body.tt-date-paste-prompt .tt-date-paste-spark {
        animation: none;
    }
    body.tt-date-paste-prompt:not(.tt-date-paste-fading) .tt-date-paste-spark {
        opacity: 1;
    }
    body.tt-date-paste-fading .tt-date-paste-btn,
    body.tt-date-paste-fading .tt-date-paste-spark {
        opacity: 0;
    }
}
body.tt-date-paste-prompt .tt-date-field-wrap .tt-date-input,
.tt-date-field-wrap.has-clipboard-date:hover .tt-date-input,
.tt-date-field-wrap.has-clipboard-date:focus-within .tt-date-input {
    padding-right: 7.6rem;
}
body.tt-date-paste-prompt .tt-date-field-wrap:has(.tt-date-tool-inline-btn) .tt-date-input,
.tt-date-field-wrap.has-clipboard-date:hover:has(.tt-date-tool-inline-btn) .tt-date-input,
.tt-date-field-wrap.has-clipboard-date:focus-within:has(.tt-date-tool-inline-btn) .tt-date-input {
    padding-right: 8.8rem;
}
.tt-date-calc-result--draggable {
    cursor: grab;
}
.tt-date-calc-result--draggable.is-dragging {
    cursor: grabbing;
    opacity: 0.75;
}
.tt-date-calc-warning {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: var(--tt-radius-sm);
    background: #fef3c7;
    border: 1px solid #f59e0b;
    color: #92400e;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
}
.tt-date-calc-warning[hidden] { display: none !important; }
.tt-date-calc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.tt-date-calc-holidays-btn.is-active {
    background: var(--tt-accent-soft);
    border-color: var(--tt-accent);
    color: var(--tt-accent);
}
.tt-date-calc-holidays {
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card-2);
    max-height: 220px;
    overflow-y: auto;
}
.tt-date-calc-holidays[hidden] { display: none !important; }
.tt-date-calc-holidays-title {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--tt-text-dim);
}
.tt-date-calc-holidays-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tt-date-calc-holidays-list li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 13px;
    line-height: 1.35;
}
.tt-date-calc-holiday-date {
    flex: 0 0 5.5rem;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--tt-text);
}
.tt-date-calc-holiday-name {
    color: var(--tt-text-dim);
}
.tt-date-calc-holidays-empty {
    color: var(--tt-text-faint);
    font-size: 13px;
}
.tt-date-drop-target {
    outline: 2px solid var(--tt-accent);
    outline-offset: 2px;
    background: color-mix(in srgb, var(--tt-accent) 12%, transparent);
}

/* Floating FAB stack (Lizard + calculators) */
.tt-fab-stack {
    position: fixed;
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: max(20px, calc(12px + env(safe-area-inset-bottom, 0px)));
    z-index: 9000;
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: 10px;
    pointer-events: none;
}
.tt-fab-stack > * { pointer-events: auto; }

/* Keep Lizzy/Lizo above the floating save bar on detail pages */
body:has(#ttDetailSaveBar.is-visible) .tt-fab-stack {
    bottom: max(88px, calc(76px + env(safe-area-inset-bottom, 0px)));
}

@media (max-width: 860px) {
    .tt-fab-stack {
        right: max(10px, env(safe-area-inset-right, 0px));
        bottom: max(18px, calc(14px + env(safe-area-inset-bottom, 0px)));
    }
    body:has(#ttDetailSaveBar.is-visible) .tt-fab-stack {
        bottom: max(96px, calc(84px + env(safe-area-inset-bottom, 0px)));
    }
    .tt-lizard-wizard-fab {
        width: 58px;
        height: 58px;
    }
    .tt-lizard-wizard-fab-emoji {
        font-size: 32px;
    }
    .tt-lizard-wizard-panel {
        width: min(380px, calc(100vw - 20px));
        max-height: min(70dvh, 560px);
        right: 0;
    }
}

@media (max-width: 640px) {
    /* Phone only: remove Lizzy and Lizzo assistants. */
    .tt-lizard-wizard {
        display: none !important;
    }
}

/* Lizard the Wizard AI assistant */
.tt-lizard-wizard {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    pointer-events: none;
    will-change: transform;
}
.tt-lizard-wizard > * { pointer-events: auto; }
.tt-lizard-wizard-fab {
    width: 60px;
    height: 60px;
    padding: 0;
    border: 2px solid #86efac;
    border-radius: 50%;
    background: linear-gradient(145deg, #ecfdf5 0%, #bbf7d0 55%, #4ade80 100%);
    box-shadow: var(--tt-shadow-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    touch-action: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    user-select: none;
}
.tt-lizard-wizard-fab.is-dragging {
    cursor: grabbing;
    transition: box-shadow 0.2s ease;
}
.tt-lizard-wizard-fab-emoji {
    font-size: 34px;
    line-height: 1;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));
    pointer-events: none;
}
.tt-lizard-wizard-fab:hover:not(.is-dragging) {
    transform: scale(1.04);
    box-shadow: 0 10px 28px rgba(34, 197, 94, 0.28);
}
.tt-lizard-wizard-panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    width: min(380px, calc(100vw - 40px));
    max-height: min(78vh, 640px);
    z-index: 2;
    background: var(--tt-surface);
    border: 1px solid #86efac;
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-shadow-md);
    transform: scale(0.88) translateY(16px);
    opacity: 0;
    transform-origin: bottom right;
    transition: transform 0.28s cubic-bezier(0.34, 1.4, 0.64, 1), opacity 0.22s ease;
    pointer-events: none;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.tt-lizard-wizard-panel.is-open {
    transform: scale(1) translateY(0);
    opacity: 1;
    pointer-events: auto;
    background: #fff;
}
.tt-lizard-wizard-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--tt-border);
    background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
}
.tt-lizard-wizard-title-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.tt-lizard-wizard-avatar {
    font-size: 28px;
    line-height: 1;
}
.tt-lizard-wizard-panel-title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}
.tt-lizard-wizard-panel-sub {
    margin: 2px 0 0;
    font-size: 12px;
    color: var(--tt-text-dim);
}
.tt-lizard-wizard-close {
    border: 0;
    background: transparent;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    color: var(--tt-text-dim);
    padding: 0 4px;
}
.tt-lizard-wizard-messages {
    flex: 1;
    min-height: 200px;
    max-height: min(52vh, 420px);
    overflow-y: auto;
    padding: 14px 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #fff;
}
.tt-lizard-wizard-msg {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    max-width: 100%;
}
.tt-lizard-wizard-msg--user {
    justify-content: flex-end;
}
.tt-lizard-wizard-msg-avatar {
    font-size: 22px;
    line-height: 1;
    flex-shrink: 0;
}
.tt-lizard-wizard-msg-bubble {
    padding: 10px 12px;
    border-radius: 14px;
    font-size: 14px;
    line-height: 1.45;
    max-width: calc(100% - 34px);
    white-space: pre-wrap;
    word-break: break-word;
}
.tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: var(--tt-text);
}
.tt-lizard-wizard-msg--error .tt-lizard-wizard-msg-bubble {
    background: rgba(254, 226, 226, 0.95);
    border: 1px solid rgba(239, 68, 68, 0.35);
}
.tt-lizard-wizard-error-text {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 1.45;
}
.tt-lizard-wizard-retry-btn {
    margin-bottom: 6px;
}
.tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble .tt-lizard-wizard-link {
    color: #15803d;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble .tt-lizard-wizard-link:hover {
    color: #166534;
}
.tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble .tt-lizard-field-link {
    color: #1d4ed8;
    background: #dbeafe;
    padding: 0 0.28em;
    border-radius: 4px;
    text-decoration: none;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}
.tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble .tt-lizard-field-link:hover {
    color: #1e3a8a;
    background: #bfdbfe;
    text-decoration: underline;
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble .tt-lizard-field-link {
    color: #9a3412;
    background: #ffedd5;
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble .tt-lizard-field-link:hover {
    color: #7c2d12;
    background: #fed7aa;
}
.tt-lizard-wizard-vcard-offer {
    margin: 10px 0 4px;
}
.tt-lizard-wizard-vcard-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    font-weight: 600;
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-vcard-btn {
    background: #ea580c;
    border-color: #ea580c;
    color: #fff;
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-vcard-btn:hover {
    background: #c2410c;
    border-color: #c2410c;
    color: #fff;
}
.tt-lizard-wizard-welcome-list {
    margin: 0.55rem 0 0;
    padding-left: 1.15rem;
}
.tt-lizard-wizard-welcome-list li {
    margin: 0.3rem 0;
}
.tt-lizard-wizard-tutorial-steps {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 2px 0 4px;
}
.tt-lizard-tutorial-step {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    text-align: left;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid #bbf7d0;
    background: #fff;
    color: var(--tt-text);
    font: inherit;
    font-size: 13px;
    line-height: 1.35;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.12s ease;
}
.tt-lizard-tutorial-step:hover {
    border-color: #86efac;
    background: #f0fdf4;
    transform: translateY(-1px);
}
.tt-lizard-tutorial-step.is-done {
    border-color: #86efac;
    background: #ecfdf5;
    color: #166534;
}
.tt-lizard-tutorial-step-mark {
    flex-shrink: 0;
    width: 1.15em;
    font-weight: 700;
}
.tt-lizard-tutorial-step-title {
    flex: 1;
    min-width: 0;
}
.tt-lizard-wizard-choices {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 10px 0 6px;
}
.tt-lizard-wizard-choice {
    display: block;
    width: 100%;
    text-align: left;
    padding: 8px 11px;
    border-radius: 999px;
    border: 1px solid #fdba74;
    background: #fff;
    color: #9a3412;
    font: inherit;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}
.tt-lizard-wizard-choice:hover:not(:disabled) {
    background: #fff7ed;
    border-color: #fb923c;
    transform: translateY(-1px);
}
.tt-lizard-wizard-choice.is-picked {
    background: #ffedd5;
    border-color: #ea580c;
    color: #c2410c;
}
.tt-lizard-wizard-choices.is-used .tt-lizard-wizard-choice:not(.is-picked) {
    opacity: 0.55;
}
.tt-lizard-wizard-msg--postit .tt-lizard-wizard-msg-bubble {
    background: transparent;
    border: none;
    padding: 2px 0 0;
    max-width: min(320px, calc(100% - 34px));
}
.tt-postit.tt-lizard-tutorial-postit {
    z-index: 190;
    width: min(280px, calc(100vw - 28px));
    min-height: 160px;
    max-height: min(72vh, 560px);
    overflow: auto;
    cursor: grab;
    touch-action: none;
}
.tt-postit.tt-lizard-tutorial-postit.is-dragging {
    z-index: 195;
}
.tt-postit.tt-lizard-tutorial-postit.is-minimized {
    min-height: 0;
    max-height: none;
    width: min(230px, calc(100vw - 28px));
    overflow: hidden;
}
.tt-lizard-tutorial-postit.is-minimized .tt-lizard-postit-intro,
.tt-lizard-tutorial-postit.is-minimized .tt-lizard-postit-list,
.tt-lizard-tutorial-postit.is-minimized .tt-postit-drag-hint {
    display: none;
}
.tt-postit.tt-lizard-tutorial-postit .tt-postit-unpin,
.tt-postit.tt-lizard-tutorial-postit .tt-postit-collapse {
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    font-family: var(--tt-font);
    color: #9a3412;
}
.tt-lizard-postit-progress {
    margin: 0 0 10px;
    padding-right: 68px;
}
.tt-lizard-postit-progress-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 5px;
    font-family: var(--tt-font);
    font-size: 11px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: rgba(63, 63, 31, 0.72);
}
.tt-lizard-postit-progress-meta strong {
    font-size: 13px;
    letter-spacing: 0;
    text-transform: none;
    color: #3f3f1f;
}
.tt-lizard-postit-progress-track {
    height: 8px;
    border-radius: 999px;
    background: rgba(161, 98, 7, 0.18);
    overflow: hidden;
}
.tt-lizard-postit-progress-fill {
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #fb923c, #ea580c);
    transition: width 0.28s ease, background 0.28s ease;
}
.tt-lizard-tutorial-postit.is-complete .tt-lizard-postit-progress-fill {
    background: linear-gradient(90deg, #4ade80, #16a34a);
}
.tt-lizard-postit-pin {
    position: absolute;
    top: 6px;
    left: 50%;
    width: 14px;
    height: 14px;
    margin-left: -7px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #fecaca, #dc2626 62%, #991b1b);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}
.tt-lizard-postit-title {
    margin: 4px 68px 8px 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
}
.tt-lizard-postit-intro {
    margin: 0 0 10px;
    font-size: 12px;
    line-height: 1.4;
    color: #57534e;
}
.tt-lizard-postit-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tt-lizard-postit-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0 -6px;
    padding: 6px;
    border-radius: 8px;
    cursor: pointer;
}
.tt-lizard-postit-item:hover {
    background: rgba(250, 204, 21, 0.35);
}
.tt-lizard-postit-item:focus-visible {
    outline: 2px solid #a16207;
    outline-offset: 1px;
}
.tt-lizard-postit-check {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    padding: 0;
    border: 2px solid #a16207;
    border-radius: 5px;
    background: #fffdf0;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    line-height: 18px;
    cursor: pointer;
}
.tt-lizard-postit-item.is-auto .tt-lizard-postit-check {
    cursor: default;
}
.tt-lizard-postit-item.is-done .tt-lizard-postit-check {
    background: #22c55e;
    border-color: #15803d;
}
.tt-lizard-postit-item.is-done .tt-lizard-postit-copy strong {
    text-decoration: line-through;
    color: #78716c;
}
.tt-lizard-postit-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    font-family: inherit;
}
.tt-lizard-postit-copy strong {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.tt-lizard-postit-hint {
    font-size: 11px;
    line-height: 1.35;
    color: #78716c;
    font-family: inherit;
}
.tt-offer-accepted-gate-note {
    margin: 0 0 14px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #fef3c7;
    border: 1px solid #f59e0b;
    color: #92400e;
    font-size: 13px;
    line-height: 1.4;
}
.tt-escrow-offer-pick-intro {
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--tt-muted, #57534e);
}
.tt-escrow-offer-pick-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: min(48vh, 360px);
    overflow: auto;
}
.tt-escrow-offer-pick-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    text-align: left;
    padding: 10px 12px;
    border: 1px solid var(--tt-border, #e7e5e4);
    border-radius: 10px;
    background: var(--tt-card, #fff);
    cursor: pointer;
    font-family: var(--tt-font);
}
.tt-escrow-offer-pick-item:hover {
    border-color: #f59e0b;
    background: #fffbeb;
}
.tt-escrow-offer-pick-item strong {
    font-size: 14px;
    color: var(--tt-text, #1c1917);
}
.tt-escrow-offer-pick-item span {
    font-size: 12px;
    color: var(--tt-muted, #78716c);
}
.tt-field-tutorial-highlight,
.tt-field-line.tt-field-tutorial-highlight,
[data-tt-field].tt-field-tutorial-highlight,
.tt-panel-tutorial-highlight {
    outline: 2px solid #22c55e;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.18);
    border-radius: 6px;
    transition: outline-color 0.2s ease, box-shadow 0.2s ease;
}
@keyframes tt-field-tutorial-pulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.18); }
    50% { box-shadow: 0 0 0 7px rgba(34, 197, 94, 0.08); }
}
.tt-field-tutorial-highlight,
.tt-field-line.tt-field-tutorial-highlight,
.tt-panel-tutorial-highlight {
    animation: tt-field-tutorial-pulse 1.4s ease-in-out 2;
}
.tt-lizard-wizard-msg-time {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    line-height: 1.2;
    opacity: 0.65;
}
.tt-lizard-wizard-msg--user .tt-lizard-wizard-msg-time {
    color: rgba(255, 255, 255, 0.85);
}
.tt-lizard-wizard-msg--user .tt-lizard-wizard-msg-bubble {
    background: #2563eb;
    color: #fff;
}
.tt-lizard-wizard-compose {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    padding: 12px;
    border-top: 1px solid var(--tt-border);
    background: #fff;
}
.tt-lizard-wizard-input {
    flex: 1;
    min-height: 44px;
    max-height: 120px;
    resize: vertical;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    padding: 10px 12px;
    font: inherit;
}
.tt-lizard-wizard-send {
    flex-shrink: 0;
    min-width: 64px;
}
.tt-lizard-wizard-dots {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    height: 14px;
}
.tt-lizard-wizard-dots span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #16a34a;
    animation: tt-lizard-dot 1.2s infinite ease-in-out;
}
.tt-lizard-wizard-dots span:nth-child(2) { animation-delay: 0.15s; }
.tt-lizard-wizard-dots span:nth-child(3) { animation-delay: 0.3s; }
@keyframes tt-lizard-dot {
    0%, 80%, 100% { opacity: 0.35; transform: translateY(0); }
    40% { opacity: 1; transform: translateY(-3px); }
}
.tt-lizard-wizard-day-header {
    align-self: center;
    margin: 10px 0 6px;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--tt-bg-2);
    color: var(--tt-text-dim);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.01em;
}
.tt-lizard-wizard-head-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    margin-right: 6px;
}
.tt-lizard-wizard-clean-btn,
.tt-lizard-wizard-archives-btn,
.tt-lizard-wizard-compose-btn {
    border: 0;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
}
.tt-lizard-wizard-clean-btn:hover,
.tt-lizard-wizard-archives-btn:hover,
.tt-lizard-wizard-compose-btn:hover {
    background: var(--tt-bg-2);
    color: var(--tt-text);
}
.tt-lizard-wizard-compose-icon { display: block; }
.tt-lizard-wizard-archives {
    border-bottom: 1px solid var(--tt-border);
    background: var(--tt-card);
    max-height: 280px;
    overflow: auto;
}
.tt-lizard-wizard-archives-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-bottom: 1px solid var(--tt-border);
    font-size: 13px;
}
.tt-lizard-wizard-archives-close,
.tt-lizard-wizard-archive-back {
    border: 0;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
}
.tt-lizard-wizard-archives-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.tt-lizard-wizard-archive-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--tt-border);
    background: transparent;
    padding: 10px 14px;
    text-align: left;
    cursor: pointer;
}
.tt-lizard-wizard-archive-row:hover { background: var(--tt-bg-2); }
.tt-lizard-wizard-archive-row-date { font-weight: 600; font-size: 13px; color: var(--tt-text); }
.tt-lizard-wizard-archive-row-meta { font-size: 12px; color: var(--tt-text-dim); }
.tt-lizard-wizard-archive-log {
    padding: 0 0 12px;
}
.tt-lizard-wizard-archive-log-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--tt-border);
    font-size: 13px;
    font-weight: 600;
}
.tt-lizard-wizard-archive-log-messages {
    max-height: 220px;
    overflow: auto;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tt-lizard-wizard-unarchive-btn { margin: 8px 14px 0; }
.tt-lizard-wizard--lizzo .tt-lizard-wizard-fab {
    border-color: #fdba74;
    background: linear-gradient(145deg, #fff7ed 0%, #fed7aa 55%, #fb923c 100%);
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-fab:hover:not(.is-dragging) {
    box-shadow: 0 10px 24px rgba(251, 146, 60, 0.35);
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-panel-title { color: #c2410c; }
.tt-lizard-wizard--lizzo .tt-lizard-wizard-panel-head {
    background: linear-gradient(180deg, #fff7ed 0%, #fff 100%);
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-send {
    background: linear-gradient(135deg, #fb923c 0%, #ea580c 100%);
    border-color: #ea580c;
}
.tt-lizard-wizard--lizzo .tt-lizard-wizard-msg--assistant .tt-lizard-wizard-msg-bubble {
    background: #fff7ed;
    border-color: #fed7aa;
}
.tt-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Floating calculators tool (lot size + date calc) */
.tt-date-tool {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    pointer-events: none;
    will-change: transform;
}
.tt-date-tool > * { pointer-events: auto; }
.tt-date-tool-fab {
    width: 60px;
    height: 60px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: transparent;
    box-shadow: var(--tt-shadow-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    touch-action: none;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    user-select: none;
}
.tt-date-tool-fab.is-dragging {
    cursor: grabbing;
    transition: box-shadow 0.2s ease;
}
.tt-date-tool-fab-icon {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    pointer-events: none;
}
.tt-date-tool-fab:hover:not(.is-dragging) {
    transform: scale(1.04);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}
.tt-date-tool-panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    z-index: 2;
    width: min(340px, calc(100vw - 40px));
    max-height: min(85vh, 720px);
    background: var(--tt-surface);
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-shadow-md);
    transform: scale(0.88) translateY(16px);
    opacity: 0;
    transform-origin: bottom right;
    transition: transform 0.28s cubic-bezier(0.34, 1.4, 0.64, 1), opacity 0.22s ease;
    pointer-events: none;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.tt-date-tool-panel.is-open {
    transform: scale(1) translateY(0);
    opacity: 1;
    pointer-events: auto;
    background: #fff;
}
.tt-date-tool-panel.is-open .tt-date-tool-panel-head,
.tt-date-tool-panel.is-open .tt-date-tool-panel-body,
.tt-date-tool-panel.is-open .tt-date-calc--tool {
    background: #fff;
}
.tt-date-tool-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--tt-border);
}
.tt-date-tool-panel-title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: #000;
}
.tt-date-tool-close {
    border: none;
    background: transparent;
    font-size: 22px;
    line-height: 1;
    color: var(--tt-text-dim);
    cursor: pointer;
    padding: 4px 8px;
}
.tt-date-tool-panel-body {
    padding: 14px 16px 16px;
    overflow-y: auto;
}
.tt-date-calc--tool {
    max-width: none;
    color: #000;
}
.tt-date-calc--tool .tt-card-sub,
.tt-date-calc--tool label,
.tt-date-calc--tool .tt-input {
    color: #000;
}
.tt-date-calc--tool .tt-date-calc-row { margin-bottom: 12px; }
.tt-date-calc--tool .tt-input--computed {
    background: #f3f4f6;
    color: #000;
}
.tt-date-tool-sub { margin: 0 0 12px !important; }
.tt-date-tool-hint {
    margin: 0;
    font-size: 12px;
    color: var(--tt-text-dim);
    line-height: 1.4;
}

.tt-concession-summary {
    margin: 2px 0 10px;
}
.tt-concessions-section {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--tt-border);
}
.tt-concessions-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.tt-concessions-section-title {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-concession-extra-fees {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}
.tt-concession-extra-fee {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px auto;
    gap: 10px;
    align-items: center;
}
.tt-concession-extra-fee-remove {
    border: none;
    background: transparent;
    color: var(--tt-text-faint);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 6px;
}
.tt-concession-extra-fee-remove:hover { color: var(--tt-danger); }
.tt-concession-add-fee-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px 0 6px;
}
.tt-concession-add-fee-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-concession-summary--items {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed var(--tt-border);
}
.tt-mns-label-with-expand {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tt-mns-expand-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid var(--tt-border);
    border-radius: 6px;
    background: var(--tt-bg-2);
    color: var(--tt-text-dim);
    cursor: pointer;
    padding: 0;
}
.tt-mns-expand-btn:hover { color: var(--tt-accent); border-color: var(--tt-accent); }
.tt-mns-expand-btn.is-expanded svg { transform: rotate(180deg); }
.tt-mns-expand-btn svg { width: 14px; height: 14px; transition: transform 0.16s ease; }
.tt-mns-row--concessions-breakdown td {
    padding: 12px 12px;
    background: transparent;
    text-align: center;
}
.tt-mns-concessions-breakdown-panel {
    display: inline-block;
    margin: 0 auto;
    padding: 12px 14px;
    max-width: 600px;
    width: 100%;
    box-sizing: border-box;
    text-align: left;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-card);
    vertical-align: top;
}
.tt-mns-concessions-breakdown-lines {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tt-mns-concessions-breakdown-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-mns-concessions-breakdown-line span:last-child {
    font-variant-numeric: tabular-nums;
    color: var(--tt-text);
    font-weight: 600;
}
.tt-mns-concessions-breakdown-total {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--tt-border);
    font-size: 13px;
    font-weight: 700;
}
.tt-mns-concessions-breakdown-total--triple {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}
.tt-mns-concessions-breakdown-total-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
    font-weight: 600;
}
.tt-mns-concessions-breakdown-total-col strong {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
.tt-mns-concessions-breakdown-total-col--grand strong {
    color: var(--tt-accent);
}
.tt-mns-concessions-breakdown-empty {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--tt-text-faint);
    text-align: center;
}
.tt-mns-concessions-breakdown-actions {
    margin: 10px 0;
    text-align: center;
}
.tt-mns-concessions-breakdown-actions .tt-btn {
    font-size: 13px;
}
.tt-concession-mns-estimate {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 12px;
    padding: 10px 14px;
    border-radius: var(--tt-radius);
    background: var(--tt-bg-2);
    font-size: 13px;
}
.tt-concession-mns-estimate-label,
.tt-concession-mns-estimate-value {
    color: var(--tt-text-dim);
    font-weight: 600;
}
.tt-concession-mns-estimate-label {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-concession-mns-estimate-value {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}
.tt-fields-section-title {
    margin: 16px 0 10px;
    font-size: 15px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-concession-summary-line {
    display: grid;
    grid-template-columns: 150px 1fr;
    align-items: center;
    gap: 12px;
    padding: 4px 0;
    font-size: 13px;
}
.tt-concession-summary-line--triple {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
    padding: 8px 0 4px;
}
.tt-concession-summary-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}
.tt-concession-summary-col .tt-concession-summary-label {
    text-align: center;
}
.tt-concession-summary-col--total .tt-concession-summary-value {
    color: var(--tt-accent);
}
.tt-concession-summary-label {
    text-align: right;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-concession-summary-value {
    font-weight: 700;
    color: var(--tt-text);
}

.tt-sprp-pdf-delete-icon { display: block; }

.tt-input--apn {
    width: 20ch;
    min-width: 20ch;
    max-width: 20ch;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
    text-align: center;
}
.tt-apn-row { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; }
.tt-apn-related-section { margin-top: 10px; width: 100%; }
.tt-apn-related-kicker {
    font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
    color: var(--tt-text-faint); margin: 0 0 6px;
}
.tt-apn-related-card {
    border: 1px solid var(--tt-border); border-radius: 10px; background: var(--tt-card-2); overflow: hidden;
}
.tt-apn-related-header {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; padding: 10px 12px; border: 0; background: transparent; cursor: pointer; text-align: left;
}
.tt-apn-related-header:hover { background: var(--tt-accent-soft); }
.tt-apn-related-header-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tt-apn-related-title-row { display: inline-flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.tt-apn-related-title { font-size: 13px; font-weight: 700; color: var(--tt-text); }
.tt-apn-related-count { font-size: 12px; font-weight: 600; color: var(--tt-text-dim); }
.tt-apn-related-state {
    font-size: 11px; font-weight: 600; color: var(--tt-text-faint); text-transform: uppercase; letter-spacing: 0.03em;
}
.tt-apn-related-section.is-expanded .tt-apn-related-state { color: var(--tt-accent); }
.tt-apn-related-header-icons { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; }
.tt-apn-status-icon.is-empty { color: #dc3545; }
.tt-apn-status-icon.has-docs { color: #16a34a; }
.tt-apn-related-chevron {
    display: block; color: var(--tt-text-faint); transition: transform 0.2s ease;
}
.tt-apn-related-section.is-expanded .tt-apn-related-chevron { transform: rotate(90deg); }
.tt-apn-related-panel {
    padding: 0 12px 12px; border-top: 1px solid var(--tt-border); background: var(--tt-card);
}
.tt-apn-related-panel[hidden] { display: none !important; }
.tt-apn-related-toolbar {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 12px; margin-bottom: 10px;
}
.tt-apn-docs-empty {
    margin: 0 0 8px; font-size: 12px; color: var(--tt-text-faint); font-style: italic;
}
.tt-apn-docs-empty[hidden] { display: none !important; }
.tt-apn-doc-progress[hidden] { display: none !important; }
.tt-apn-doc-progress-track {
    height: 8px; border-radius: 999px; background: var(--tt-bg-2); overflow: hidden;
}
.tt-apn-doc-progress-fill {
    display: block; height: 100%; width: 0%; border-radius: inherit;
    background: linear-gradient(90deg, var(--tt-accent), #7c3aed);
    transition: width 0.15s ease;
}
.tt-apn-doc-progress-text { font-size: 12px; color: var(--tt-text-dim); }
.tt-apn-doc-upload {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 0 12px; border-radius: 8px; border: 1px dashed var(--tt-border-strong);
    background: var(--tt-card-2); color: var(--tt-text-dim); font-size: 13px; font-weight: 600; cursor: pointer;
    white-space: nowrap; box-sizing: border-box; min-height: 35px;
}
.tt-apn-doc-upload:hover { border-color: var(--tt-accent); color: var(--tt-accent); background: var(--tt-accent-soft); }
.tt-apn-doc-upload.is-busy { opacity: 0.55; pointer-events: none; }
.tt-apn-copy-btn {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; align-self: stretch; aspect-ratio: 1;
    min-width: 35px; padding: 0; border-radius: 8px; border: 1px solid var(--tt-border-strong);
    background: var(--tt-card-2); color: var(--tt-text-dim); cursor: pointer;
}
.tt-apn-copy-btn:hover { border-color: var(--tt-accent); color: var(--tt-accent); background: var(--tt-accent-soft); }
.tt-apn-copy-icon { display: block; width: 15px; height: 15px; }
.tt-apn-lookup-btn {
    flex: 0 0 auto;
    min-height: 35px;
    white-space: nowrap;
}
.tt-apn-lookup-modal.tt-modal--wide {
    max-width: min(960px, calc(100vw - 32px));
}
.tt-apn-lookup-head-text {
    min-width: 0;
    padding-right: 12px;
}
.tt-apn-lookup-subtitle {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-apn-lookup-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-height: min(68vh, 640px);
    overflow: auto;
}
.tt-apn-lookup-loading,
.tt-apn-lookup-empty {
    margin: 0;
    color: var(--tt-text-dim);
    font-size: 14px;
}
.tt-apn-lookup-hero {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 18px;
    border: 1px solid var(--tt-border);
    border-radius: 14px;
    background: linear-gradient(135deg, var(--tt-card-2) 0%, var(--tt-accent-soft) 100%);
}
.tt-apn-lookup-hero-address {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--tt-text);
    word-break: break-word;
}
.tt-apn-lookup-hero-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-apn-lookup-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid var(--tt-border);
    background: rgba(255, 255, 255, 0.72);
    font-size: 12px;
}
.tt-apn-lookup-chip-label {
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
}
.tt-apn-lookup-chip-value {
    font-weight: 600;
    color: var(--tt-text);
}
.tt-apn-lookup-sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.tt-apn-lookup-section {
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: var(--tt-card-2);
    padding: 14px 16px;
    min-width: 0;
}
.tt-apn-lookup-section-title {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-apn-lookup-grid {
    margin: 0;
    display: grid;
    gap: 8px 12px;
}
.tt-apn-lookup-row {
    display: grid;
    grid-template-columns: minmax(110px, 38%) 1fr;
    gap: 8px 10px;
    align-items: start;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--tt-border);
}
.tt-apn-lookup-row:last-child {
    padding-bottom: 0;
    border-bottom: none;
}
.tt-apn-lookup-row dt {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-apn-lookup-row dd {
    margin: 0;
    font-size: 13px;
    color: var(--tt-text);
    word-break: break-word;
}
.tt-apn-lookup-foot {
    align-items: center;
    gap: 12px;
}
.tt-apn-lookup-meta {
    margin-right: auto;
    font-size: 12px;
    color: var(--tt-text-dim);
}
@media (max-width: 820px) {
    .tt-apn-lookup-sections {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 560px) {
    .tt-apn-lookup-row {
        grid-template-columns: 1fr;
        gap: 2px;
    }
    .tt-apn-lookup-hero-address {
        font-size: 16px;
    }
}
.tt-apn-link-docs-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 12px; min-height: 35px; border-radius: 8px; border: 1px solid var(--tt-border-strong);
    background: var(--tt-card-2); color: var(--tt-text-dim); font-size: 12px; font-weight: 600;
    white-space: nowrap; cursor: pointer; box-sizing: border-box;
}
.tt-apn-link-docs-btn:hover { border-color: var(--tt-accent); color: var(--tt-accent); background: var(--tt-accent-soft); }
.tt-apn-link-intro { margin: 0 0 14px; color: var(--tt-text-dim); font-size: 13px; }
.tt-apn-link-empty { margin: 0; color: var(--tt-text-faint); font-size: 13px; }
.tt-apn-link-doc-list {
    list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px;
    max-height: min(52vh, 420px); overflow-y: auto;
}
.tt-apn-link-doc-item {
    border: 1px solid var(--tt-border); border-radius: 8px; background: var(--tt-card-2);
}
.tt-apn-link-doc-item.is-linked {
    border-color: rgba(22, 163, 74, 0.35);
    background: rgba(22, 163, 74, 0.06);
}
.tt-apn-link-doc-label {
    display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; cursor: pointer;
}
.tt-apn-link-doc-item.is-linked .tt-apn-link-doc-label { cursor: pointer; }
.tt-apn-link-doc-check { margin-top: 3px; flex: 0 0 auto; }
.tt-apn-link-doc-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tt-apn-link-doc-name {
    font-size: 13px; font-weight: 600; color: var(--tt-text);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tt-apn-link-doc-meta { font-size: 12px; color: var(--tt-text-dim); }
.tt-apn-docs-list {
    list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; width: 100%;
}
.tt-apn-docs-list[hidden] { display: none !important; }
.tt-apn-doc-item {
    display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px;
    background: var(--tt-bg-2); border: 1px solid var(--tt-border); border-radius: 8px; min-width: 0;
}
.tt-apn-doc-item-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tt-apn-doc-item-name {
    display: block; font-size: 13px; font-weight: 600; color: var(--tt-accent); text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tt-apn-doc-item-name:hover { text-decoration: underline; }
@keyframes tt-apn-doc-note-border {
    0%, 100% { border-color: #2563eb; }
    33% { border-color: #8032cd; }
    66% { border-color: #ec4899; }
}
.tt-apn-doc-item-note {
    font-size: 12px;
    color: #170c62;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    border: 2px dashed #2563eb;
    border-radius: 10px;
    padding: 5px;
    background: #fff;
    animation: tt-apn-doc-note-border 4s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .tt-apn-doc-item-note {
        animation: none;
        border-color: #8032cd;
    }
}
.tt-apn-doc-item-actions { display: flex; gap: 4px; flex-shrink: 0; align-items: center; margin-top: 1px; }
.tt-apn-doc-item-actions .tt-share-wrap { display: inline-flex; }
.tt-apn-doc-item-actions .tt-share-btn {
    width: 30px;
    height: 30px;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: var(--tt-card);
    color: var(--tt-text-dim);
}
.tt-apn-doc-item-actions .tt-share-btn:hover,
.tt-apn-doc-item-actions .tt-share-btn[aria-expanded="true"] {
    border-color: var(--tt-accent);
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
}
.tt-apn-doc-item-btn {
    width: 30px; height: 30px; border: 1px solid var(--tt-border); border-radius: 8px;
    background: var(--tt-card); color: var(--tt-text-dim); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; padding: 0;
}
.tt-apn-doc-item-btn:hover { border-color: var(--tt-accent); color: var(--tt-accent); background: var(--tt-accent-soft); }
.tt-apn-doc-item-btn--danger:hover { border-color: var(--tt-danger); color: var(--tt-danger); background: rgba(220, 53, 69, 0.1); }
.tt-apn-doc-item-btn svg { width: 14px; height: 14px; display: block; }

@media (max-width: 860px) {
    .tt-apn-related-docs-tab-stack,
    .tt-apn-related-section,
    .tt-apn-related-card,
    .tt-apn-related-panel,
    .tt-apn-docs-list,
    .tt-apn-doc-item,
    .tt-apn-doc-item-main {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }
    .tt-apn-related-card--tab {
        overflow: visible;
    }
    .tt-apn-related-section--tab .tt-apn-related-panel {
        padding: 12px;
    }
    .tt-apn-related-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .tt-apn-related-section--tab .tt-apn-doc-upload,
    .tt-apn-related-section--tab .tt-apn-link-docs-btn,
    .tt-apn-doc-upload,
    .tt-apn-link-docs-btn {
        flex: 1 1 auto;
        width: 100%;
        white-space: normal;
        text-align: center;
    }
    .tt-apn-doc-item {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    .tt-apn-doc-item-actions {
        width: 100%;
        flex-wrap: wrap;
        justify-content: flex-start;
        margin-top: 0;
        gap: 6px;
    }
    .tt-apn-doc-item-actions .tt-apn-doc-item-btn,
    .tt-apn-doc-item-actions .tt-share-btn {
        width: 36px;
        height: 36px;
    }
    .tt-related-docs-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .tt-related-docs-toolbar .tt-docs-filters {
        width: 100%;
    }
    .tt-related-docs-toolbar .tt-docs-result-count {
        margin-left: 0;
    }
    .tt-record-links-list .tt-record-link-item {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .tt-record-link-side {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
    }
    .tt-record-link-side .tt-share-wrap {
        align-self: center;
    }
    .tt-record-link-edit .tt-input {
        min-width: 0;
        width: 100%;
    }
}

.tt-chat-media-card { margin-top: 0; }
.tt-chat-media-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.tt-chat-media-head .tt-card-title { margin: 0; }
.tt-chat-media-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.tt-chat-media-filter {
    border: 1px solid var(--tt-border); background: var(--tt-card-2); color: var(--tt-text-dim);
    border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 600; cursor: pointer;
}
.tt-chat-media-filter.is-active { border-color: var(--tt-accent); background: var(--tt-accent-soft); color: var(--tt-accent); }
.tt-chat-media-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.tt-chat-media-list .tt-chat-media-item {
    display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start;
    padding: 12px 14px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm); background: var(--tt-card-2);
}
.tt-chat-media-thumb {
    width: 52px; height: 52px; border-radius: 8px; object-fit: cover; background: var(--tt-bg-2);
    display: grid; place-items: center; font-size: 22px; overflow: hidden;
}
.tt-chat-media-main { min-width: 0; display: grid; gap: 4px; }
.tt-chat-media-name { font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-chat-media-meta { font-size: 12px; color: var(--tt-text-dim); }
.tt-chat-media-preview { font-size: 12px; color: var(--tt-text-faint); line-height: 1.45; }
.tt-chat-media-actions { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.tt-chat-media-link {
    font-size: 12px; font-weight: 600; color: var(--tt-accent); text-decoration: none; white-space: nowrap;
}
.tt-chat-media-link:hover { text-decoration: underline; }
.tt-chat-media-empty { margin: 0; font-size: 13px; color: var(--tt-text-faint); }
.tt-docs-layout .tt-chat-media-card { grid-column: 1 / -1; }
.tt-docs-layout .tt-record-links-card { grid-column: 1 / -1; }

.tt-record-links-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.tt-record-links-head .tt-card-title { margin: 0; }
.tt-record-links-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.tt-record-links-intro { margin: 0 0 14px; font-size: 13px; color: var(--tt-text-faint); line-height: 1.45; }
.tt-record-links-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.tt-record-links-empty { font-size: 14px; color: var(--tt-text-faint); }
.tt-record-links-list .tt-record-link-item {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start;
    padding: 12px 14px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm); background: var(--tt-card-2);
}
.tt-record-link-item.is-needs-title { border-color: color-mix(in srgb, var(--tt-accent) 35%, var(--tt-border)); }
.tt-record-link-main { min-width: 0; display: grid; gap: 8px; }
.tt-record-link-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tt-record-link-title { font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-record-link-badge {
    font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 2px 7px; border-radius: 999px; background: var(--tt-accent-soft); color: var(--tt-accent);
}
.tt-record-link-url { font-size: 12px; color: var(--tt-text-dim); word-break: break-all; line-height: 1.4; }
.tt-record-link-edit { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.tt-record-link-edit .tt-input { flex: 1; min-width: 180px; }
.tt-record-link-meta { font-size: 12px; color: var(--tt-text-faint); }
.tt-record-link-meta a { color: var(--tt-accent); }
.tt-record-link-side { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.tt-record-link-side .tt-share-wrap { align-self: flex-end; }
.tt-record-link-open {
    font-size: 13px; font-weight: 600; color: var(--tt-accent); white-space: nowrap;
}
.tt-record-link-open:hover { text-decoration: underline; }
.tt-record-link-delete { border: none; background: none; color: var(--tt-text-faint); font-size: 20px; cursor: pointer; line-height: 1; }
.tt-record-link-delete:hover { color: var(--tt-danger); }

/* ── Docs ───────────────────────────────────────────────── */
.tt-docs-layout { display: grid; grid-template-columns: 1fr; gap: 22px; align-items: start; }
.tt-docs-upload-section {
    width: 100%;
    min-width: 0;
}
.tt-docs-upload-section .tt-dropzone {
    display: flex;
    width: 100%;
    box-sizing: border-box;
}
.tt-docs-explorer {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 0;
    min-height: 360px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    overflow: hidden;
    background: var(--tt-card);
}
.tt-docs-folders {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-right: 1px solid #c8c8c8;
    background: #f7f7f7;
}
.tt-docs-folders-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 12px 8px;
    border-bottom: 1px solid var(--tt-border);
    background: var(--tt-card);
}
.tt-docs-folders-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
.tt-docs-folders .tt-upload-progress {
    margin: 0 12px 8px;
    font-size: 12px;
    color: var(--tt-text-dim);
}
.tt-docs-folders-title { margin: 0; font-size: 13px; font-weight: 700; }
.tt-docs-folder-tree {
    list-style: none;
    margin: 0;
    padding: 8px 0;
    flex: 1;
    overflow: auto;
}
.tt-docs-folder-node { list-style: none; }
.tt-docs-folder-children {
    list-style: none;
    margin: 0;
    padding: 0;
}
.tt-docs-folder-node > .tt-docs-folder-children {
    padding-left: 18px;
    border-left: 1px solid rgba(127, 127, 127, 0.18);
    margin-left: 14px;
}
.tt-docs-tree-file { list-style: none; }
.tt-docs-tree-file-row {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: 26px;
    padding: 1px 10px 1px 2px;
    cursor: pointer;
    user-select: none;
}
.tt-docs-tree-file-row:hover { background: rgba(127, 127, 127, 0.08); }
.tt-docs-tree-file-row.is-folder-dragging { opacity: 0.55; }
.tt-docs-tree-file-icon {
    flex-shrink: 0;
    width: 16px;
    text-align: center;
    font-size: 12px;
    line-height: 1;
}
.tt-docs-tree-file-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    color: var(--tt-text-dim);
}
.tt-docs-tree-file-link {
    color: inherit;
    text-decoration: none;
}
.tt-docs-tree-file-link:hover {
    color: var(--tt-accent);
    text-decoration: underline;
}
.tt-docs-tree-file-row .tt-doc-drag-handle {
    width: 22px;
    height: 22px;
    min-width: 22px;
    min-height: 22px;
    opacity: 0.45;
}
.tt-docs-tree-file-row:hover .tt-doc-drag-handle,
.tt-docs-tree-file-row.is-folder-dragging .tt-doc-drag-handle {
    opacity: 1;
}
.tt-docs-folder-children.is-collapsed { display: none; }
.tt-docs-folder-row {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: 30px;
    padding: 2px 10px 2px 6px;
    cursor: pointer;
    user-select: none;
    border: none;
    border-radius: 0;
    background: transparent;
    width: 100%;
    text-align: left;
}
.tt-docs-folder-row:hover { background: rgba(127, 127, 127, 0.08); }
.tt-docs-folder-row.is-selected { background: var(--tt-accent-soft); color: var(--tt-accent); font-weight: 600; }
.tt-docs-folder-row.is-root-row { font-weight: 600; }
.tt-docs-folder-row.is-drop-target { outline: 1px dashed var(--tt-accent); outline-offset: -1px; background: var(--tt-accent-soft); }
.tt-docs-folder-toggle, .tt-docs-folder-toggle-spacer {
    width: 16px;
    flex-shrink: 0;
    text-align: center;
    font-size: 10px;
    color: var(--tt-text-faint);
    line-height: 1;
}
.tt-docs-folder-toggle {
    border: none;
    background: none;
    cursor: pointer;
    padding: 0;
}
.tt-docs-folder-icon { flex-shrink: 0; font-size: 14px; width: 18px; text-align: center; }
.tt-docs-folder-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}
.tt-docs-folder-actions { display: none; gap: 2px; flex-shrink: 0; margin-left: 4px; }
.tt-docs-folder-row:hover .tt-docs-folder-actions,
.tt-docs-folder-row.is-selected .tt-docs-folder-actions { display: inline-flex; }
.tt-docs-folder-action {
    border: none;
    background: none;
    color: var(--tt-text-faint);
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    width: 20px;
    height: 20px;
    border-radius: 4px;
}
.tt-docs-folder-action:hover { background: var(--tt-card); color: var(--tt-text); }
.tt-docs-folder-action.tt-docs-folder-share {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
.tt-docs-folder-share svg {
    width: 11px;
    height: 11px;
    display: block;
    flex-shrink: 0;
}
body.tt-docs-edit-mode .tt-docs-folder-share { display: none !important; }
body:not(.tt-docs-edit-mode) .tt-docs-folder-delete { display: none !important; }
body:not(.tt-docs-edit-mode) .tt-docs-folder-drag { display: none !important; }
.tt-docs-folder-drag {
    flex-shrink: 0;
    margin-right: 2px;
    opacity: 0.55;
}
.tt-docs-folder-row:hover .tt-docs-folder-drag,
.tt-docs-folder-row.is-selected .tt-docs-folder-drag,
.tt-docs-folder-row.is-folder-dragging .tt-docs-folder-drag {
    opacity: 1;
}
.tt-docs-folder-row.is-folder-dragging {
    opacity: 0.55;
}
body.tt-docs-edit-mode .tt-docs-folder-row:not(.is-root-row) {
    cursor: grab;
}
body:not(.tt-docs-edit-mode) #ttDocsBulkDelete,
body:not(.tt-docs-edit-mode) .tt-docs-row-delete { display: none !important; }
body:not(.tt-docs-edit-mode) .tt-fm-col-select { display: none !important; }
body.tt-docs-edit-mode .tt-docs-folder-row.is-root-row .tt-docs-folder-actions { display: none !important; }
body.tt-docs-edit-mode .tt-fm-col-select { display: table-cell; }
body.tt-docs-edit-mode .tt-fm-col-select[hidden] { display: table-cell; }
body.tt-docs-edit-mode #ttDocsBulkDelete { display: inline-flex !important; }
body.tt-docs-edit-mode #ttDocExplorerReload,
body.tt-docs-edit-mode [data-tt-add-link-btn],
body.tt-docs-edit-mode .tt-fm-col-grip,
body.tt-docs-edit-mode .tt-compose-drag-handle,
body.tt-docs-edit-mode .tt-fm-doc-edit,
body.tt-docs-edit-mode .tt-fm-col-actions .tt-share-wrap,
body.tt-docs-edit-mode .tt-doc-delete,
body.tt-docs-edit-mode .tt-record-link-delete { display: none !important; }
body.tt-docs-no-delete .tt-docs-folder-delete,
body.tt-docs-no-delete #ttDocsBulkDelete,
body.tt-docs-no-delete .tt-docs-row-delete,
body.tt-docs-no-delete .tt-doc-delete,
body.tt-docs-no-delete .tt-record-link-delete,
body.tt-docs-no-delete .tt-apn-doc-item-btn--danger,
body.tt-docs-no-delete [data-tt-apn-delete] { display: none !important; }
body.tt-docs-edit-mode .tt-fm-toolbar { flex-wrap: wrap; gap: 8px; }
body.tt-docs-edit-mode #ttDocsEditModeToggle.is-active {
    background: #fed7aa;
    color: #9a3412;
    border-color: #fb923c;
}
.tt-fm-col-select {
    display: none;
    width: 36px;
    padding: 0 8px !important;
    text-align: center;
    vertical-align: middle;
}
.tt-fm-col-select input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}
.tt-docs-bulk-delete-btn {
    margin-left: 4px;
}
.tt-docs-row-delete {
    color: var(--tt-danger);
    border-color: color-mix(in srgb, var(--tt-danger) 35%, var(--tt-border));
}
.tt-docs-row-delete:hover {
    background: color-mix(in srgb, var(--tt-danger) 12%, transparent);
    color: var(--tt-danger);
}
.tt-docs-file-pane {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    background: #fff;
}
.tt-fm-toolbar {
    border-bottom: 1px solid #c8c8c8;
    background: linear-gradient(180deg, #fafafa 0%, #ececec 100%);
}
.tt-fm-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
    padding: 6px 8px;
    border-bottom: 1px solid #d8d8d8;
}
.tt-fm-search-wrap {
    flex: 1 1 200px;
    min-width: 160px;
    max-width: 320px;
    margin-right: 6px;
}
.tt-fm-search {
    width: 100%;
    font-size: 12px;
    padding: 6px 10px;
}
.tt-fm-action {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: 1px solid transparent;
    border-radius: 3px;
    background: transparent;
    color: #333;
    font-size: 12px;
    line-height: 1.2;
    padding: 5px 8px;
    cursor: pointer;
}
.tt-fm-action:hover {
    border-color: #b8b8b8;
    background: #fff;
}
#ttDocsEditModeToggle {
    background: #ffedd5;
    border-color: #fdba74;
    color: #9a3412;
    font-weight: 600;
}
#ttDocsEditModeToggle:hover {
    background: #fed7aa;
    border-color: #fb923c;
}
#ttDocsEditModeToggle.is-active {
    background: #fed7aa;
    color: #9a3412;
    border-color: #fb923c;
}
.tt-fm-action-icon { font-size: 13px; line-height: 1; }
.tt-fm-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    font-size: 12px;
    color: #444;
    background: #f3f3f3;
}
.tt-fm-nav-btn {
    border: 1px solid #bbb;
    border-radius: 3px;
    background: linear-gradient(180deg, #fff 0%, #e8e8e8 100%);
    color: #333;
    font-size: 11px;
    padding: 3px 8px;
    cursor: pointer;
}
.tt-fm-nav-btn:hover { background: #fff; }
.tt-fm-path {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}
.tt-fm-table-wrap {
    flex: 1;
    min-height: 0;
    overflow: auto;
    background: #fff;
}
.tt-fm-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 12px;
    color: #222;
}
.tt-fm-table thead { display: table-header-group; }
.tt-fm-table tbody { display: table-row-group; }
.tt-fm-table tr { display: table-row; }
.tt-fm-table th,
.tt-fm-table td { display: table-cell; }
.tt-fm-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #eaeaea;
    border-bottom: 1px solid #c8c8c8;
    border-right: 1px solid #d4d4d4;
    padding: 0;
    text-align: left;
    font-weight: 600;
    color: #333;
}
.tt-fm-table thead th:last-child { border-right: none; }
.tt-fm-sort {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 28px;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 600;
    text-align: left;
    padding: 4px 10px;
    cursor: pointer;
}
.tt-fm-sort:hover { background: rgba(0, 0, 0, 0.04); }
.tt-fm-sort.is-active::after {
    content: '▲';
    margin-left: 6px;
    font-size: 9px;
    opacity: 0.75;
}
.tt-fm-sort.is-active.is-desc::after { content: '▼'; }
.tt-fm-table tbody tr {
    border-bottom: 1px solid #ececec;
}
.tt-fm-table tbody tr:nth-child(even) { background: #f7f7f7; }
.tt-fm-table tbody tr:nth-child(odd) { background: #fff; }
.tt-fm-table tbody tr:hover { background: #e8f0fe; }
.tt-fm-table td {
    padding: 0 10px;
    vertical-align: middle;
    height: 34px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border-right: 1px solid #efefef;
}
.tt-fm-table td:last-child { border-right: none; }
.tt-fm-col-grip { width: 44px; padding: 0 !important; text-align: center; }
.tt-fm-col-name { width: 42%; }
.tt-fm-col-size { width: 12%; }
.tt-fm-col-date { width: 22%; }
.tt-fm-col-type { width: 18%; }
.tt-fm-name-cell {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}
.tt-fm-name-line {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    width: 100%;
}
.tt-fm-doc-edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    vertical-align: middle;
}
.tt-fm-doc-edit:hover,
.tt-fm-doc-edit:focus-visible {
    background: var(--tt-accent-soft);
    color: var(--tt-accent);
    outline: none;
}
.tt-fm-doc-edit svg {
    width: 15px;
    height: 15px;
}
.tt-fm-file-note {
    display: block;
    max-width: 100%;
    font-size: 12px;
    line-height: 1.35;
    color: darkviolet;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-doc-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}
.tt-doc-tags--compact {
    margin-top: 4px;
}
.tt-doc-tags-empty {
    font-size: 0.8rem;
    color: var(--tt-text-dim, #5a6072);
}
.tt-doc-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 0.72rem;
    font-weight: 650;
    line-height: 1.3;
}
.tt-doc-tag-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-doc-tag-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
}
.tt-doc-tag-remove:hover {
    background: rgba(29, 78, 216, 0.12);
}
.tt-doc-tags-add {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    align-items: center;
}
.tt-doc-tags-add .tt-input {
    flex: 1 1 auto;
    min-width: 0;
}
.tt-field-hint {
    margin: 6px 0 0;
    font-size: 0.78rem;
    color: var(--tt-text-dim, #5a6072);
}
.tt-offer-doc-meta {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--tt-border, #dbe3f0);
    border-radius: 10px;
    background: color-mix(in srgb, var(--tt-bg-2, #eef0f8) 40%, #fff);
}
.tt-offer-doc-meta-title {
    margin: 0 0 4px;
    font-weight: 700;
    font-size: 0.9rem;
}
.tt-offer-doc-meta-hint {
    margin: 0 0 10px;
    font-size: 0.78rem;
    color: var(--tt-text-dim, #5a6072);
}
.tt-offer-doc-note {
    margin-top: 4px;
    font-size: 0.78rem;
    color: var(--tt-text-dim, #5a6072);
}
.tt-label {
    display: block;
    margin-bottom: 4px;
    font-size: 0.82rem;
    font-weight: 600;
}
.tt-fm-col-actions { width: 132px; text-align: right; }
.tt-fm-file-icon {
    flex-shrink: 0;
    width: 18px;
    text-align: center;
    font-size: 14px;
    line-height: 1;
}
.tt-fm-empty {
    padding: 28px 16px;
    text-align: center;
    color: var(--tt-text-faint);
    font-size: 13px;
}
.tt-fm-row-link {
    font-size: 11px;
    color: var(--tt-accent);
    white-space: nowrap;
}
.tt-fm-row-link:hover { text-decoration: underline; }
.tt-fm-name-cell .tt-fm-file-link {
    flex: 1;
    min-width: 0;
    display: block;
}
.tt-fm-name-line .tt-fm-file-icon {
    flex-shrink: 0;
}
.tt-fm-file-link {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #1a1a1a;
    font-weight: 500;
    text-decoration: none;
}
.tt-fm-file-link:hover { color: var(--tt-accent); text-decoration: underline; }
.tt-fm-table .tt-doc-drag-handle {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    border-radius: 4px;
    background: transparent;
}
.tt-fm-table .tt-doc-drag-handle:hover,
.tt-fm-table .tt-doc-drag-handle:focus-visible {
    background: rgba(0, 0, 0, 0.06);
}
.tt-fm-col-actions {
    white-space: nowrap;
}
.tt-fm-col-actions .tt-share-btn {
    width: 28px;
    height: 28px;
}
.tt-explorer-item.is-folder-dragging,
.tt-fm-row.is-folder-dragging,
.tt-doc.is-folder-dragging,
.tt-chat-media-item.is-folder-dragging,
.tt-record-link-item.is-folder-dragging { opacity: 0.45; }
.tt-doc-drag-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: #777;
    cursor: grab;
    touch-action: none;
    -webkit-tap-highlight-color: transparent;
}
.tt-doc-drag-handle:hover,
.tt-doc-drag-handle:focus-visible {
    background: rgba(0, 0, 0, 0.06);
    color: var(--tt-accent);
    outline: none;
}
.tt-doc-drag-handle:active { cursor: grabbing; }
.tt-doc-drag-grip { display: block; pointer-events: none; width: 20px; height: 28px; }
.tt-explorer-name {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #1a1a1a;
    font-weight: 500;
}
.tt-explorer-name:hover { color: var(--tt-accent); text-decoration: none; }
.tt-fm-col-actions .tt-share-wrap,
.tt-fm-col-actions .tt-doc-delete,
.tt-fm-col-actions .tt-record-link-delete {
    display: inline-flex;
    vertical-align: middle;
}
.tt-compose-drag-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--tt-text-faint);
    cursor: grab;
    touch-action: none;
}
.tt-compose-drag-handle:hover,
.tt-compose-drag-handle:focus-visible {
    background: rgba(127, 127, 127, 0.12);
    color: var(--tt-accent);
    outline: none;
}
.tt-compose-drag-handle:active { cursor: grabbing; }
.tt-compose-drag-handle svg,
.tt-compose-drag-handle i { width: 16px; height: 16px; }
tr.tt-explorer-item.is-compose-draggable { cursor: grab; }
tr.tt-explorer-item.is-compose-draggable.is-compose-dragging { opacity: 0.55; cursor: grabbing; }
body.tt-compose-doc-dragging { cursor: copy; user-select: none; }
body.tt-docs-is-dragging { cursor: grabbing; user-select: none; }
body.tt-docs-is-dragging .tt-doc-drag-handle { cursor: grabbing; }
body.tt-docs-is-dragging .tt-docs-folder-row.is-drop-target,
body.tt-docs-is-dragging .tt-docs-folder-node.is-drop-target .tt-docs-folder-row {
    outline: 2px solid var(--tt-accent);
    outline-offset: -2px;
    background: var(--tt-accent-soft);
}
.tt-doc-drag-ghost {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 10000;
    pointer-events: none;
    padding: 8px 14px;
    border-radius: 8px;
    background: var(--tt-card);
    border: 1px solid var(--tt-accent);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    font-size: 13px;
    font-weight: 600;
    max-width: min(320px, 80vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-docs-main {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    min-width: 0;
    padding: 16px;
    background: var(--tt-card);
}
.tt-doc.is-folder-dragging, .tt-chat-media-item.is-folder-dragging, .tt-record-link-item.is-folder-dragging { opacity: 0.55; cursor: grabbing; }
.tt-doc-upload.is-docs-filter-hidden,
.tt-docs-upload-section.is-docs-filter-hidden,
.tt-docs-explorer.is-docs-filter-hidden,
.tt-docs-folders.is-docs-filter-hidden,
.tt-chat-media-card.is-docs-filter-hidden,
.tt-record-links-card.is-docs-filter-hidden,
.tt-apn-related-section.is-docs-filter-hidden { display: none !important; }
.tt-dropzone {
    display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center;
    padding: 34px 20px; border: 2px dashed var(--tt-border-strong); border-radius: var(--tt-radius-sm);
    cursor: pointer; transition: 0.16s; color: var(--tt-text-dim);
}
.tt-dropzone:hover, .tt-dropzone.is-drag { border-color: var(--tt-accent); background: var(--tt-accent-soft); color: var(--tt-accent); }
.tt-dropzone-icon { font-size: 30px; }
.tt-dropzone-text { font-weight: 600; }
.tt-dropzone-sub { font-size: 12px; color: var(--tt-text-faint); }
.tt-upload-progress { margin-top: 12px; font-size: 13px; color: var(--tt-text-dim); }
.tt-doc-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.tt-doc-list .tt-doc { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm); background: var(--tt-card-2); }
.tt-doc-list .tt-doc[draggable="true"] { cursor: grab; }
.tt-doc-list .tt-doc.is-compose-dragging { opacity: 0.55; cursor: grabbing; }
.tt-apn-doc-item[draggable="true"] { cursor: grab; }
.tt-apn-doc-item.is-compose-dragging { opacity: 0.55; cursor: grabbing; }
.tt-doc-list .tt-doc-link { display: flex; align-items: center; gap: 10px; flex: 1; color: var(--tt-text); min-width: 0; }
.tt-doc-list .tt-doc-link:hover { text-decoration: none; color: var(--tt-accent); }
.tt-doc-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-doc-size { font-size: 12px; color: var(--tt-text-faint); }
.tt-share-wrap { position: relative; flex-shrink: 0; }
.tt-share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    background: var(--tt-card);
    color: var(--tt-text-dim);
    cursor: pointer;
    line-height: 1;
}
.tt-note-actions .tt-share-btn,
.tt-postit-toolbar .tt-share-btn {
    width: 28px;
    height: 28px;
    border: none;
    background: rgba(255, 255, 255, 0.55);
}
.tt-share-btn:hover,
.tt-share-btn[aria-expanded="true"] {
    border-color: var(--tt-accent);
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
}
.tt-share-btn svg { width: 16px; height: 16px; display: block; }
.tt-share-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 40;
    min-width: 168px;
    padding: 4px;
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    box-shadow: var(--tt-shadow-lg);
}
.tt-share-menu.is-floating {
    position: fixed;
    right: auto;
    top: auto;
    z-index: 1350;
}
.tt-share-menu.is-floating.is-portaled {
    z-index: 9200;
}
.tt-share-menu[hidden] { display: none !important; }
.tt-share-menu button {
    display: block;
    width: 100%;
    padding: 8px 10px;
    border: none;
    border-radius: 4px;
    background: none;
    color: var(--tt-text);
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}
.tt-share-menu button:hover { background: var(--tt-bg-2); color: var(--tt-accent); }
.tt-doc-delete { border: none; background: none; color: var(--tt-text-faint); font-size: 20px; cursor: pointer; line-height: 1; }
.tt-doc-delete:hover { color: var(--tt-danger); }

/* ── Modal ──────────────────────────────────────────────── */
.tt-modal-overlay { position: fixed; inset: 0; background: rgba(10, 12, 24, 0.55); backdrop-filter: blur(4px); display: none; z-index: 200; padding: 20px; animation: tt-fade 0.18s ease; }
.tt-modal-overlay:not([hidden]) { display: grid; place-items: center; }
.tt-modal-overlay[hidden] { display: none !important; }
/* Confirm / delete lightboxes must sit above every other modal (edit, view, gallery, etc.). */
#ttDeleteLightbox,
#ttContactDupModal,
#ttOfferNetConfirm,
.tt-modal-overlay.tt-modal-overlay--confirm {
    z-index: 20000 !important;
}

.tt-contact-dup-warn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-left: 6px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--tt-warning, #ea580c) 18%, transparent);
    color: var(--tt-warning, #ea580c);
    cursor: pointer;
    vertical-align: middle;
    line-height: 1;
    transition: transform 0.12s ease, background 0.12s ease;
}
.tt-contact-dup-warn[hidden] {
    display: none !important;
}
.tt-contact-dup-warn:hover,
.tt-contact-dup-warn:focus-visible {
    transform: scale(1.08);
    background: color-mix(in srgb, var(--tt-warning, #ea580c) 28%, transparent);
    outline: none;
}
.tt-contact-dup-warn svg {
    width: 14px;
    height: 14px;
    display: block;
}
.tt-contact-dup-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: min(52vh, 420px);
    overflow: auto;
    margin-top: 12px;
}
.tt-contact-dup-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    text-align: left;
    padding: 12px 14px;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-card);
    color: var(--tt-text);
    cursor: pointer;
}
.tt-contact-dup-item:hover,
.tt-contact-dup-item:focus-visible {
    border-color: color-mix(in srgb, var(--tt-accent) 55%, var(--tt-border));
    background: color-mix(in srgb, var(--tt-accent-soft) 55%, var(--tt-card));
    outline: none;
}
.tt-contact-dup-item strong {
    font-size: 14px;
    font-weight: 700;
}
.tt-contact-dup-item em {
    font-style: normal;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-contact-dup-item span {
    font-size: 12px;
    color: var(--tt-text-dim);
}
.tt-modal { width: 100%; max-width: 460px; background: var(--tt-card); border: 1px solid var(--tt-border); border-radius: var(--tt-radius); box-shadow: var(--tt-shadow-lg); overflow: hidden; animation: tt-pop 0.2s ease; }
.tt-modal--wide { max-width: 720px; width: calc(100% - 24px); }
.tt-closed-report-modal {
    max-width: 640px;
    max-height: calc(100dvh - 40px);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
}
.tt-closed-report-modal .tt-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}
.tt-closed-report-modal .tt-modal-head {
    align-items: flex-start;
}
.tt-closed-report-modal .tt-modal-head h2 {
    font-size: 20px;
}
.tt-closed-report-modal .tt-modal-head p {
    margin: 5px 0 0;
    color: var(--tt-text-dim);
    font-size: 13px;
}
.tt-closed-report-modal fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}
.tt-closed-report-modal legend {
    margin-bottom: 10px;
    color: var(--tt-text);
    font-size: 14px;
    font-weight: 800;
}
.tt-closed-report-sides {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.tt-closed-report-sides label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--tt-border-strong);
    border-radius: 10px;
    background: var(--tt-input-bg, var(--tt-card-2));
    color: var(--tt-text);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}
.tt-closed-report-sides input {
    width: 19px;
    height: 19px;
    margin: 0;
    accent-color: var(--tt-accent);
}
.tt-closed-report-dates {
    margin-top: 22px !important;
    padding-top: 20px !important;
    border-top: 1px solid var(--tt-border) !important;
}
.tt-closed-report-date-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.tt-closed-report-date-grid label {
    display: grid;
    gap: 6px;
    color: var(--tt-text-dim);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.tt-closed-report-date-grid input {
    width: 100%;
    min-height: 44px;
    padding: 9px 11px;
    border: 1px solid var(--tt-border-strong);
    border-radius: 9px;
    background: var(--tt-input-bg, #fff);
    color: var(--tt-text);
    font: inherit;
    color-scheme: light dark;
}
.tt-closed-report-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.tt-closed-report-quick .tt-btn {
    min-width: 82px;
    justify-content: center;
    border-radius: 8px;
}
.tt-closed-report-quick .tt-btn.is-active {
    border-color: var(--tt-accent);
    background: var(--tt-accent);
    color: #fff;
}
.tt-closed-report-range-note {
    min-height: 20px;
    margin: 10px 0 0;
    color: var(--tt-text-dim);
    font-size: 13px;
}
.tt-closed-report-warnings {
    margin-top: 14px;
    border: 1px solid #d97706;
    border-radius: 10px;
    overflow: hidden;
    background: var(--tt-card);
}
.tt-closed-report-warnings[hidden] {
    display: none !important;
}
.tt-closed-report-warnings h3 {
    margin: 0;
    padding: 11px 13px 0;
    color: var(--tt-text);
    font-size: 14px;
}
.tt-closed-report-warnings-status {
    margin: 0;
    padding: 8px 13px 11px;
    color: #92400e;
    font-size: 13px;
    font-weight: 700;
}
.tt-closed-report-warnings.is-loading .tt-closed-report-warnings-status {
    color: var(--tt-text-dim);
}
.tt-closed-report-warnings.is-error {
    border-color: #b91c1c;
}
.tt-closed-report-warnings.is-error .tt-closed-report-warnings-status {
    color: #991b1b;
}
.tt-closed-report-warnings-table-wrap {
    max-height: 230px;
    overflow: auto;
    border-top: 1px solid var(--tt-border);
}
.tt-closed-report-warnings-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.tt-closed-report-warnings-table th,
.tt-closed-report-warnings-table td {
    padding: 9px 12px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--tt-border);
}
.tt-closed-report-warnings-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--tt-card-2);
    color: var(--tt-text-dim);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.tt-closed-report-warnings-table th:first-child {
    width: 58%;
}
.tt-closed-report-warnings-table tr:last-child td {
    border-bottom: 0;
}
.tt-closed-report-warnings-table a {
    color: var(--tt-text);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.tt-closed-report-warnings-table td:last-child a {
    color: #9f1239;
}
.tt-closed-report-warnings-table a:hover {
    color: var(--tt-accent);
}
.tt-report-field-focus {
    position: relative;
    z-index: 1;
    border-radius: 8px;
    outline: 3px solid #f59e0b;
    outline-offset: 4px;
    box-shadow: 0 0 0 7px rgba(245, 158, 11, 0.24);
}
/* Contingency Yes/No rows (SIP, TOPA, SPRP…) — ring on the full row, not the tiny radio. */
.tt-contingency-row.tt-report-field-focus,
.tt-contingency-row-head.tt-report-field-focus,
.tt-radio-group.tt-report-field-focus {
    border-radius: 12px;
}
[data-theme="dark"] .tt-closed-report-warnings-status {
    color: #fcd34d;
}
[data-theme="dark"] .tt-closed-report-warnings.is-error .tt-closed-report-warnings-status,
[data-theme="dark"] .tt-closed-report-warnings-table td:last-child a {
    color: #fda4af;
}
.tt-closed-report-error {
    margin: 16px 0 0;
    padding: 10px 12px;
    border: 1px solid #b91c1c;
    border-radius: 9px;
    background: #fef2f2;
    color: #991b1b;
    font-weight: 700;
}
.tt-closed-report-error[hidden] {
    display: none !important;
}
@media (max-width: 560px) {
    .tt-closed-report-modal .tt-modal-body {
        padding: 18px;
    }
    .tt-closed-report-sides,
    .tt-closed-report-date-grid {
        grid-template-columns: 1fr;
    }
    .tt-closed-report-quick .tt-btn {
        flex: 1 1 calc(33.333% - 8px);
    }
}
.tt-modal-overlay--doc-preview {
    padding: 16px;
    z-index: 1200;
}
.tt-modal-overlay--doc-preview:not([hidden]) {
    display: grid;
    place-items: stretch;
}
.tt-modal--doc-preview {
    max-width: none;
    width: 100%;
    height: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.tt-modal--doc-preview .tt-modal-head {
    flex: 0 0 auto;
    gap: 12px;
}
.tt-modal--doc-preview .tt-modal-head h2 {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-doc-preview-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
.tt-doc-preview-actions [hidden] {
    display: none !important;
}
.tt-doc-preview-body {
    flex: 1 1 auto;
    min-height: 0;
    background: #0b0c12;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.tt-doc-preview-body iframe,
.tt-doc-preview-body img,
.tt-doc-preview-body video,
.tt-doc-preview-body embed {
    width: 100%;
    height: 100%;
    border: 0;
    background: #0b0c12;
}
.tt-doc-preview-body img {
    object-fit: contain;
}
.tt-doc-preview-fallback {
    max-width: 28rem;
    padding: 24px;
    text-align: center;
    color: #e2e8f0;
}
.tt-doc-preview-fallback p {
    margin: 0 0 10px;
    line-height: 1.45;
}
@keyframes tt-pop { from { transform: scale(0.96) translateY(8px); opacity: 0; } to { transform: scale(1) translateY(0); opacity: 1; } }
.tt-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--tt-border); }
.tt-modal-head h2 { margin: 0; font-size: 17px; font-weight: 700; }
.tt-modal-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 18px 22px;
    border-top: 1px solid var(--tt-border);
}
.tt-ab-view-head .tt-ab-view-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 0 0 auto;
    margin-left: auto;
    padding-right: 12px;
}
.tt-ab-view-share-btn {
    flex-shrink: 0;
}
.tt-ab-view-share-btn.is-active {
    background: var(--tt-primary);
    border-color: var(--tt-primary);
    color: #fff;
}

/* Contact view: choose which field rows to show, and in what order. */
.tt-ab-view-customize-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 14px;
    margin-bottom: 14px;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-bg-subtle, rgba(127, 127, 127, 0.06));
}
.tt-ab-view-customize-bar[hidden] { display: none; }
.tt-ab-view-customize-hint {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--tt-text-faint);
    flex: 1 1 240px;
    min-width: 0;
}
.tt-ab-view-customize-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
/* In modification mode the real field cards carry the controls: grip in the top
   left corner, eye in the top right. No second list is rendered. */
.tt-ab-view-customizing { position: relative; }
.tt-ab-view-row-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
/* Make room in the card's own corners so nothing overlaps the label or value.
   In a grouped row the controls sit over the first card, so only that one is
   inset (the grip and eye are not .tt-ab-view-field, hence first-of-type). */
.tt-ab-view-field.tt-ab-view-customizing,
.tt-ab-view-row-group.tt-ab-view-customizing > .tt-ab-view-field:first-of-type {
    padding-left: 42px;
    padding-right: 42px;
}
/* .tt-column-settings-item exists only to hook the drag utility; its checklist
   styling must not take over the card. Above all, touch-action must stay auto
   so the panel can still be scrolled with a finger — only the grip swallows
   touch, so a drag starts from the grip and a swipe anywhere else scrolls. */
.tt-ab-view-customizing.tt-column-settings-item {
    cursor: default;
    touch-action: auto;
    -webkit-user-select: auto;
    user-select: auto;
}
.tt-ab-view-grip,
.tt-ab-view-customizing > .tt-ab-view-eye-btn {
    position: absolute;
    top: 8px;
    z-index: 2;
}
.tt-ab-view-grip {
    left: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    color: var(--tt-text-faint);
    cursor: grab;
    touch-action: none;
}
.tt-ab-view-grip:hover { color: var(--tt-text); background: color-mix(in srgb, var(--tt-border) 40%, transparent); }
.tt-ab-view-grip:focus-visible { outline: 2px solid var(--tt-primary); outline-offset: 2px; }
.tt-column-is-dragging .tt-ab-view-grip { cursor: grabbing; }
.tt-ab-view-eye-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: var(--tt-card, transparent);
    color: var(--tt-text);
    cursor: pointer;
}
.tt-ab-view-customizing > .tt-ab-view-eye-btn { right: 8px; }
.tt-ab-view-eye-btn svg { width: 15px; height: 15px; display: block; }
.tt-ab-view-eye-btn:hover { border-color: var(--tt-primary); color: var(--tt-primary); }
.tt-ab-view-eye-btn:focus-visible { outline: 2px solid var(--tt-primary); outline-offset: 2px; }
/* Hidden fields stay on screen in this mode so they can be switched back on. */
.tt-ab-view-customizing.is-field-hidden > .tt-ab-view-label,
.tt-ab-view-customizing.is-field-hidden > .tt-ab-view-value,
.tt-ab-view-customizing.is-field-hidden > .tt-ab-view-address-street-grid,
.tt-ab-view-customizing.is-field-hidden > .tt-ab-view-address-city-grid,
.tt-ab-view-customizing.is-field-hidden > .tt-ab-view-license-creds-grid,
.tt-ab-view-customizing.is-field-hidden > .tt-ab-tags-chips,
.tt-ab-view-row-group.is-field-hidden > .tt-ab-view-field {
    opacity: 0.4;
}
.tt-ab-view-customizing.is-field-hidden > .tt-ab-view-label { text-decoration: line-through; }
.tt-ab-view-customizing.is-field-hidden { border-style: dashed; }
.tt-modal-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tt-modal-close { border: none; background: none; font-size: 24px; line-height: 1; color: var(--tt-text-faint); cursor: pointer; }
.tt-modal-close:hover { color: var(--tt-text); }
.tt-modal-body { padding: 22px; max-height: 70vh; overflow-y: auto; }
.tt-modal-foot--offer-escrow {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
.tt-modal-foot--offer-escrow .tt-btn {
    white-space: nowrap;
}
@media (max-width: 640px) {
    .tt-modal-foot--offer-escrow {
        flex-direction: column-reverse;
        align-items: stretch;
    }
    .tt-modal-foot--offer-escrow .tt-btn {
        width: 100%;
    }
}
/* .tt-btn { display: inline-flex } otherwise overrides the HTML hidden attribute */
.tt-modal-foot [hidden] { display: none !important; }
.tt-modal .tt-field-row { grid-template-columns: 1fr 1fr; gap: 12px; }
.tt-modal .tt-field-row + .tt-field-row { margin-top: 20px; }
/* City / State / Zip (and other three-field) rows keep the compact third column. */
.tt-modal .tt-field-row:has(> .tt-field:nth-child(3)) { grid-template-columns: 1.4fr 0.65fr 0.85fr; gap: 10px; }
.tt-modal .tt-field-row .tt-field { margin-bottom: 0; min-width: 0; }
#ttOfferModal .tt-field-row .tt-field > label:not(:has(.tt-label-with-info)) { white-space: nowrap; }
#ttOfferModal .tt-offer-form-error {
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid #fecaca;
    border-radius: 8px;
    background: #fef2f2;
    color: #991b1b;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.4;
}
#ttOfferModal .tt-offer-form-error[hidden] {
    display: none !important;
}
#ttOfferModal .tt-field.tt-offer-field-invalid > label,
#ttOfferModal .tt-field.tt-offer-field-invalid > .tt-label {
    color: #b91c1c;
}
#ttOfferModal .tt-input.tt-offer-field-invalid,
#ttOfferModal .tt-select.tt-offer-field-invalid,
#ttOfferModal input.tt-offer-field-invalid,
#ttOfferModal textarea.tt-offer-field-invalid,
#ttOfferModal .tt-money.tt-offer-field-invalid,
#ttOfferModal .tt-amount-unit.tt-offer-field-invalid,
#ttOfferModal .tt-offer-smco-block.tt-offer-field-invalid {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.18);
    background: #fff5f5;
}
#ttOfferModal .tt-money.tt-offer-field-invalid .tt-input,
#ttOfferModal .tt-amount-unit.tt-offer-field-invalid .tt-input {
    border-color: transparent !important;
    box-shadow: none;
    background: transparent;
}
.tt-field--state input { text-transform: uppercase; }

.tt-address-block--subject .tt-address-block-layout {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}
.tt-address-block--subject {
    border-bottom: none;
    padding-bottom: 0;
}
.tt-address-block--subject .tt-address-block-fields .tt-address-block-meta,
.tt-address-block--subject .tt-address-block-fields .tt-address-block-middle,
.tt-address-block--subject .tt-address-block-fields .tt-address-block-extra,
.tt-address-block--subject .tt-address-block-fields .tt-address-block-city,
.tt-address-block--subject .tt-address-block-fields .tt-address-block-apn-mls {
    margin-left: 0;
}
.tt-address-block--subject .tt-address-block-city {
    margin-bottom: 8px;
}
.tt-address-block--subject .tt-address-block-apn-mls {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: start;
    margin-bottom: 8px;
}
.tt-address-block--subject .tt-address-part--apn,
.tt-address-block--subject .tt-address-part--mls_id {
    min-width: 0;
}
.tt-address-block--subject .tt-address-part--apn label,
.tt-address-block--subject .tt-address-part--mls_id label,
.tt-address-block--subject .tt-address-part--city label,
.tt-address-block--subject .tt-address-part--state label,
.tt-address-block--subject .tt-address-part--zip label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-faint);
    margin-bottom: 4px;
}
.tt-address-block--subject .tt-input--mls {
    font-variant-numeric: tabular-nums;
}
.tt-address-block--subject .tt-address-part--apn .tt-apn-row {
    width: auto;
    flex-wrap: nowrap;
}
.tt-address-block--subject .tt-address-part--apn .tt-input--apn {
    flex: 0 0 20ch;
    width: 20ch;
    min-width: 20ch;
    max-width: 20ch;
}
.tt-address-block--subject .tt-mls-lookup-row--inline {
    display: flex;
    align-items: center;
    gap: 8px;
    width: auto;
    max-width: 100%;
    flex-wrap: nowrap;
}
.tt-address-block--subject .tt-mls-lookup-row--inline .tt-input--mls {
    flex: 0 1 auto;
    width: 14ch;
    min-width: 14ch;
    max-width: 14ch;
}
.tt-address-block--subject .tt-mls-lookup-row--inline .tt-btn {
    flex: 0 0 auto;
    white-space: nowrap;
}
.tt-address-block--subject .tt-mls-lookup-row--inline .tt-btn-icon {
    min-width: 36px;
    padding-left: 8px;
    padding-right: 8px;
    font-size: 16px;
    line-height: 1;
}
.tt-address-block--subject .tt-mls-lookup-status--inline {
    grid-column: 1 / -1;
    margin: 0;
}
.tt-address-block--subject .tt-address-block-meta--state-zip {
    grid-template-columns: 0.65fr 0.85fr;
}
.tt-property-details-divider {
    border: 0;
    border-top: 1px solid var(--tt-border);
    margin: 16px 0;
}
.tt-property-details-listing {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 14px;
    margin-bottom: 4px;
}
.tt-property-details-listing .tt-field-line {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
}
.tt-property-details-listing .tt-field-line > label {
    font-size: 16px;
    font-weight: 700;
    color: #1e5a96;
    line-height: 1.3;
    text-align: left;
}
.tt-property-details-listing .tt-input,
.tt-property-details-listing select.tt-input,
.tt-property-details-listing .tt-field-control .tt-input,
.tt-property-details-listing select,
.tt-property-details-listing .tt-date-field-wrap .tt-input {
    font-size: 16px;
    font-weight: 700;
    color: #0f2744;
    line-height: 1.3;
}
.tt-property-details-mls-identity {
    margin-bottom: 4px;
}
.tt-property-details-mls-identity-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 14px;
    align-items: start;
}
.tt-property-details-mls-identity-mls,
.tt-property-details-mls-identity-tract,
.tt-property-details-mls-identity-apn,
.tt-property-details-mls-identity .tt-address-block-apn-mls {
    min-width: 0;
}
.tt-property-details-mls-identity .tt-address-part--mls_id,
.tt-property-details-mls-identity .tt-address-part--apn {
    min-width: 0;
}
.tt-property-details-mls-identity .tt-address-part--mls_id label,
.tt-property-details-mls-identity .tt-address-part--apn label,
.tt-property-details-mls-identity .tt-field-line > label {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #1e5a96;
    line-height: 1.3;
    margin-bottom: 4px;
    text-align: left;
}
.tt-property-details-mls-identity .tt-input,
.tt-property-details-mls-identity select.tt-input,
.tt-property-details-mls-identity .tt-field-control .tt-input,
.tt-property-details-mls-identity select,
.tt-property-details-mls-identity .tt-input--mls,
.tt-property-details-mls-identity .tt-input--apn {
    font-size: 16px;
    font-weight: 700;
    color: #0f2744;
    line-height: 1.3;
}
.tt-property-details-mls-identity .tt-mls-lookup-row--inline {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap;
}
.tt-property-details-mls-identity .tt-mls-lookup-row--inline .tt-input--mls {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
}
.tt-property-details-mls-identity .tt-mls-lookup-row--inline .tt-btn {
    flex-shrink: 0;
    padding-left: 10px;
    padding-right: 10px;
}
.tt-property-details-mls-identity .tt-apn-row {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    flex-wrap: nowrap;
}
.tt-property-details-mls-identity .tt-input--apn {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
    text-align: left;
}
.tt-property-details-mls-identity-tract .tt-field-line {
    width: 100%;
}
.tt-property-details-mls-identity-tract .tt-input {
    width: 100%;
    max-width: 100%;
}
.tt-property-details-mls-identity .tt-apn-copy-btn,
.tt-property-details-mls-identity .tt-apn-lookup-btn {
    flex-shrink: 0;
}
.tt-property-details-mls-identity .tt-apn-lookup-btn {
    white-space: nowrap;
}
.tt-property-details-mls-identity .tt-field-line {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
}
.tt-property-details-mls-identity .tt-field-line > label {
    text-align: left;
    font-size: 12px;
}
.tt-access-share-map-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 12px;
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-bg-2, #f9fafb);
}
.tt-access-share-map {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text);
    cursor: pointer;
    user-select: none;
}
.tt-access-share-map input {
    margin: 0;
    width: 15px;
    height: 15px;
    accent-color: var(--tt-accent);
    cursor: pointer;
}
.tt-access-map-preview[disabled],
.tt-access-map-preview.is-disabled {
    pointer-events: none;
    opacity: 0.45;
}
.tt-access-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}
@media (max-width: 960px) {
    .tt-access-panels {
        grid-template-columns: 1fr;
        display: flex;
        flex-direction: column;
    }
    .tt-access-panel {
        width: 100%;
        max-width: 100%;
    }
}
.tt-access-panel {
    min-width: 0;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: #fff;
    padding: 14px 16px 16px;
}
.tt-access-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 12px;
    margin-bottom: 12px;
}
.tt-access-panel-title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--tt-text);
}
.tt-access-panel--lockbox .tt-access-panel-title {
    font-size: 13px;
}
.tt-access-panel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.tt-access-slide-clear {
    width: 128px;
    flex-shrink: 0;
}
.tt-access-slide-clear--item {
    width: 108px;
}
.tt-access-slide-clear--item .tt-access-slide-clear-thumb {
    min-width: 64px;
    font-size: 11px;
}
.tt-access-slide-clear-track {
    position: relative;
    height: 34px;
    border-radius: 8px;
    background: var(--tt-bg-2, #f3f4f6);
    border: 1px solid var(--tt-border, #e5e7eb);
    overflow: hidden;
}
.tt-access-slide-clear.is-armed .tt-access-slide-clear-track {
    background: #fef2f2;
    border-color: #fecaca;
}
.tt-access-slide-clear-thumb {
    position: absolute;
    right: 0;
    left: auto;
    top: 0;
    z-index: 1;
    height: 100%;
    min-width: 72px;
    padding: 0 10px;
    border: 1px solid var(--tt-border, #e5e7eb);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
    cursor: grab;
    touch-action: none;
    user-select: none;
    font-size: 12px;
    font-weight: 700;
    color: var(--tt-text-dim, #6b7280);
    font-family: inherit;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.tt-access-slide-clear.is-armed .tt-access-slide-clear-thumb {
    cursor: grabbing;
    color: #b91c1c;
    border-color: #fca5a5;
}
.tt-access-slide-clear-label {
    white-space: nowrap;
    pointer-events: none;
}
@media (max-width: 960px) {
    .tt-access-panel-head {
        flex-direction: column;
        align-items: stretch;
    }
    .tt-access-panel-actions {
        width: 100%;
        justify-content: flex-start;
    }
}
.tt-access-panel .tt-lockbox-list,
.tt-access-panel .tt-gate-code-list {
    margin-top: 0;
}
/* MLS Details — Dates navy chrome only; keep existing 3-col grids */
.tt-panel[data-tt-panel="mls_details"] .tt-form-card--contingency-opts {
    padding: 0;
    overflow: hidden;
}
.tt-panel[data-tt-panel="mls_details"] .tt-form-card--contingency-opts > .tt-card-title,
.tt-panel[data-tt-panel="mls_details"] .tt-form-card--contingency-opts > .tt-card-title-row {
    display: none;
}
.tt-mls-details-body {
    gap: 12px;
}
.tt-mls-details-inner {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}
.tt-mls-details-body .tt-property-details-listing,
.tt-mls-details-body .tt-property-details-mls-identity,
.tt-mls-details-body .tt-mls-core-property-grid,
.tt-mls-details-body .tt-property-details-section {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    margin: 0;
    min-width: 0;
}
.tt-mls-details-body .tt-property-details-divider--listing,
.tt-mls-details-body .tt-property-details-divider--mls-core {
    margin: 0;
    border: 0;
    height: 0;
}
.tt-mls-details-body .tt-property-details-divider--mls-marketing {
    margin: 12px 0;
    border: 0;
    border-top: 1px solid #e2eaf3;
    height: 0;
}

.tt-property-details-section {
    margin-bottom: 12px;
}
.tt-property-details-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 14px;
    align-items: start;
}
.tt-property-details-grid .tt-field-line {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
}
.tt-property-details-grid .tt-field-line > label {
    text-align: left;
    font-size: 12px;
}
.tt-property-details-grid-stack {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.tt-property-details-grid-stack .tt-field-line {
    width: 100%;
}
/* Garage | Garage Direct Access | Gated Community — full row above Pool / Spa / Solar */
.tt-property-details-grid-stack--garage-pair {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 14px;
    align-items: start;
}
.tt-property-details-grid-stack--garage-pair > [data-tt-perm-field="property_gated_community"] {
    grid-column: 3;
}
.tt-property-details-grid-stack--garage-pair:not(:has(.tt-field-line:not([hidden]))) {
    display: none;
}
.tt-property-details-grid > .tt-field-line[data-tt-perm-field="property_pets"] {
    display: inline-block;
    width: 100%;
    vertical-align: top;
}
.tt-property-details-divider--mls-marketing {
    margin: 18px 0 14px;
}
.tt-property-details-mls-marketing {
    margin-bottom: 4px;
}
.tt-property-details-mls-footer {
    margin-top: 16px;
}
.tt-property-details-mls-footer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
}
.tt-field-line--lot-pair {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
}
.tt-lot-size-pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 6px;
    align-items: start;
    width: 100%;
}
.tt-lot-size-part {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.tt-lot-size-sublabel {
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-lot-size-part .tt-input {
    width: 100%;
    min-width: 0;
}
.tt-lot-calc-embed {
    margin-bottom: 0;
}
.tt-lot-calc-embed-title,
.tt-date-tool-section-title {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 700;
    color: #000;
}
.tt-date-tool-section-divider {
    height: 1px;
    margin: 14px 0;
    background: var(--tt-border);
}
.tt-lot-calc-embed .tt-lot-calc-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
}
.tt-lot-calc-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.tt-lot-calc-field > span {
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-lot-calc-foot {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding-top: 10px;
}
.tt-property-details-hoa-row,
.tt-property-hoa-subject-row {
    grid-column: 1 / -1;
}
.tt-property-hoa-subject-row {
    margin-top: 2px;
}
.tt-field-line--hoa-subject > label {
    display: block;
    margin-bottom: 6px;
}
.tt-property-hoa-subject-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
}
.tt-property-hoa-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 10px;
}
.tt-property-hoa-summary-item {
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text);
    white-space: nowrap;
    padding: 6px 10px;
    border-radius: 8px;
    background: var(--tt-surface-muted, #f3f4f6);
    border: 1px solid var(--tt-border, #e5e7eb);
}
.tt-property-hoa-subject-row.is-hoa-no .tt-property-hoa-summary,
.tt-property-hoa-subject-row.is-hoa-no .tt-property-hoa-summary-item,
[data-tt-hoa-summary][hidden] .tt-property-hoa-summary-item {
    display: none !important;
}
[data-tt-go-hoa-tab][hidden] {
    display: none !important;
}
.tt-radio-group--hoa-yesno .tt-radio.is-active span {
    box-shadow: var(--tt-shadow);
}
.tt-radio-group--hoa-yesno .tt-radio.is-active:has(input[value="No"]) span {
    background: #f00;
    color: #fff;
}
.tt-radio-group--hoa-yesno .tt-radio.is-active:has(input[value="Yes"]) span {
    background: #0a9620;
    color: #fff;
}
.tt-property-details-grid .tt-property-solar-power-row {
    min-width: 0;
}
.tt-property-details-grid .tt-field-line--solar-power > label {
    line-height: 1.35;
}
.tt-property-details-grid .tt-property-solar-power-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}
.tt-property-details-grid .tt-property-solar-summary {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px;
}
.tt-property-details-grid .tt-property-solar-summary-item {
    font-size: 11px;
    font-weight: 600;
    color: var(--tt-text);
    white-space: normal;
    padding: 5px 8px;
    border-radius: 8px;
    background: var(--tt-surface-muted, #f3f4f6);
    border: 1px solid var(--tt-border, #e5e7eb);
    max-width: 100%;
}
.tt-field-line--solar-power > label {
    line-height: 1.35;
}
.tt-property-solar-power-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
}
.tt-property-solar-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 10px;
}
.tt-property-solar-summary-item {
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text);
    white-space: nowrap;
    padding: 6px 10px;
    border-radius: 8px;
    background: var(--tt-surface-muted, #f3f4f6);
    border: 1px solid var(--tt-border, #e5e7eb);
}
.tt-solar-systems-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 16px;
    margin-bottom: 14px;
}
.tt-solar-systems-toolbar-hint {
    margin: 0;
    flex: 1 1 280px;
    font-size: 13px;
    color: var(--tt-text-dim);
    line-height: 1.45;
}
.tt-solar-systems-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tt-solar-systems-empty {
    margin: 0;
    padding: 18px;
    border-radius: 10px;
    background: var(--tt-surface-muted, #f3f4f6);
    color: var(--tt-text-dim);
    font-size: 13px;
    line-height: 1.5;
}
.tt-solar-system-item {
    border: 1px solid var(--tt-border, #e5e7eb);
    border-radius: 12px;
    background: var(--tt-surface, #fff);
    overflow: hidden;
}
.tt-solar-system-item-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: var(--tt-surface-muted, #f3f4f6);
    border-bottom: 1px solid var(--tt-border, #e5e7eb);
}
.tt-solar-system-item-title {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
}
.tt-solar-system-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
    padding: 14px;
}
.tt-solar-system-fields .tt-field-line {
    margin: 0;
}
@media (max-width: 720px) {
    .tt-solar-system-fields {
        grid-template-columns: 1fr;
    }
}
.tt-property-hoa-fee-panel .tt-field-line,
.tt-property-hoa-pm-panel .tt-field-line {
    align-items: center;
}
.tt-property-details-hoa-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 14px;
    margin-top: 2px;
}
.tt-property-hoa-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.tt-property-hoa-group-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}
.tt-property-hoa-group-head > label {
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
    white-space: nowrap;
}
.tt-property-hoa-group .tt-money {
    width: 100%;
    min-width: 0;
}
.tt-property-hoa-period-select {
    width: 100%;
    min-width: 0;
    font-size: 12px;
}
.tt-property-hoa-head-spacer {
    display: block;
    padding: 11px 14px;
    font-size: 12px;
    line-height: 1.2;
    border: 1px solid transparent;
    box-sizing: border-box;
    visibility: hidden;
    pointer-events: none;
    user-select: none;
}
.tt-subject-coe-dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
    align-items: start;
}
.tt-subject-coe-dates .tt-field-line {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
}
.tt-subject-coe-dates .tt-field-line > label {
    text-align: left;
    font-size: 12px;
}
.tt-address-block-extra .tt-address-extra-apn {
    grid-column: 1 / -1;
}
.tt-address-block--subject .tt-address-extra-apn .tt-field-line--apn {
    display: block;
    margin: 0;
}
.tt-address-block--subject .tt-address-extra-apn .tt-field-line--apn > label {
    display: block;
    text-align: left;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-faint);
    margin-bottom: 4px;
}
.tt-address-block--subject .tt-address-extra-apn .tt-apn-related-section { width: 100%; }
.tt-address-block--subject .tt-address-street-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 108px;
    gap: 10px;
    align-items: end;
    margin-bottom: 8px;
}
.tt-address-block--subject .tt-field-label-col .tt-btn-mailing-copy {
    /* Align with street input (same row offset as Unit # label above). */
    margin-top: calc(12px * 1.33 + 5px);
}
.tt-mailing-copy-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    text-align: center;
    line-height: 1.15;
    gap: 1px;
}
.tt-mailing-copy-label span {
    display: block;
    width: 100%;
    text-align: center;
}
.tt-field-label-col .tt-btn-mailing-copy {
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    align-self: stretch;
    padding: 8px 10px;
    font-size: 11px;
    line-height: 1.15;
    font-weight: 600;
    white-space: normal;
    text-align: center;
    min-height: 52px;
    background: lavender;
    color: blueviolet;
    border-color: rgba(138, 43, 226, 0.35);
}
.tt-address-block--subject .tt-address-part--street { min-width: 0; }
.tt-address-block--subject .tt-address-part--street .tt-input { width: 100%; }
.tt-address-block--subject .tt-address-part--unit label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-faint);
    margin-bottom: 4px;
}
.tt-address-block--subject .tt-address-part--unit .tt-input { width: 100%; }
.tt-subject-map-aside { width: 100%; margin-top: 4px; }
.tt-subject-sidebar-btn,
.tt-subject-lockbox-btn,
.tt-subject-gate-code-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    margin-top: 8px;
    padding: 8px 10px;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    background: var(--tt-card);
    color: var(--tt-text-dim);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.tt-subject-sidebar-btn:hover,
.tt-subject-lockbox-btn:hover,
.tt-subject-gate-code-btn:hover {
    border-color: var(--tt-accent);
    color: var(--tt-text);
    background: var(--tt-accent-soft);
}
.tt-subject-lockbox-icon,
.tt-subject-gate-icon {
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
}
.tt-subject-lockbox-count,
.tt-subject-gate-count {
    position: absolute;
    top: -6px;
    right: -6px;
    z-index: 3;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    box-sizing: border-box;
    pointer-events: none;
}
.tt-subject-sidebar-icon-wrap,
.tt-subject-lockbox-icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}
.tt-subject-sidebar-btn--filled .tt-subject-lockbox-icon,
.tt-subject-sidebar-btn--filled .tt-subject-gate-icon,
.tt-subject-lockbox-btn--filled .tt-subject-lockbox-icon {
    animation: tt-lockbox-shimmer 2.4s ease-in-out infinite;
}
.tt-subject-sidebar-spark,
.tt-subject-lockbox-spark {
    position: absolute;
    left: 50%;
    bottom: 2px;
    width: 3px;
    height: 3px;
    margin-left: -1.5px;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    background: radial-gradient(circle, #ffe566 0%, #e8b923 55%, transparent 100%);
    box-shadow: 0 0 4px rgba(255, 215, 0, 0.85);
    animation: tt-lockbox-spark-rise 2.2s ease-out infinite;
}
.tt-subject-sidebar-spark--1,
.tt-subject-lockbox-spark--1 { --tt-spark-x: -7px; animation-delay: 0s; }
.tt-subject-sidebar-spark--2,
.tt-subject-lockbox-spark--2 { --tt-spark-x: 6px; animation-delay: 0.35s; width: 2px; height: 2px; margin-left: -1px; }
.tt-subject-sidebar-spark--3,
.tt-subject-lockbox-spark--3 { --tt-spark-x: -3px; animation-delay: 0.7s; width: 2px; height: 2px; margin-left: -1px; }
.tt-subject-sidebar-spark--4,
.tt-subject-lockbox-spark--4 { --tt-spark-x: 4px; animation-delay: 1.05s; }
.tt-subject-sidebar-spark--5,
.tt-subject-lockbox-spark--5 { --tt-spark-x: -5px; animation-delay: 1.4s; width: 2px; height: 2px; margin-left: -1px; }
.tt-subject-sidebar-spark--6,
.tt-subject-lockbox-spark--6 { --tt-spark-x: 2px; animation-delay: 1.75s; }
@keyframes tt-lockbox-spark-rise {
    0% {
        transform: translate(0, 0) scale(0.2);
        opacity: 0;
    }
    15% {
        opacity: 1;
    }
    100% {
        transform: translate(var(--tt-spark-x, 0), -16px) scale(0.1);
        opacity: 0;
    }
}
@keyframes tt-lockbox-shimmer {
    0%, 100% {
        color: var(--tt-text-dim);
        filter: drop-shadow(0 0 1px rgba(232, 185, 35, 0.25));
    }
    50% {
        color: #c9a227;
        filter: drop-shadow(0 0 4px rgba(255, 215, 0, 0.95)) drop-shadow(0 0 8px rgba(232, 185, 35, 0.55));
    }
}
@media (prefers-reduced-motion: reduce) {
    .tt-subject-sidebar-btn--filled .tt-subject-lockbox-icon,
    .tt-subject-sidebar-btn--filled .tt-subject-gate-icon,
    .tt-subject-lockbox-btn--filled .tt-subject-lockbox-icon {
        animation: none;
        color: #c9a227;
        filter: drop-shadow(0 0 3px rgba(255, 215, 0, 0.6));
    }
    .tt-subject-sidebar-spark,
    .tt-subject-lockbox-spark { animation: none; opacity: 0; }
}
.tt-lockbox-fields .tt-field-line,
.tt-gate-code-fields .tt-field-line {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
}
.tt-lockbox-fields .tt-field-line > label,
.tt-gate-code-fields .tt-field-line > label {
    text-align: left;
    font-size: 13px;
}
.tt-lockbox-fields textarea,
.tt-gate-code-fields textarea {
    min-height: 88px;
    resize: vertical;
}
.tt-lockbox-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.tt-lockbox-toolbar-hint {
    margin: 0;
    color: var(--tt-text-muted);
    font-size: 0.9rem;
}
.tt-lockbox-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tt-lockbox-item {
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    padding: 12px 14px;
    background: var(--tt-bg-2);
}
.tt-lockbox-item-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.tt-lockbox-item-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.tt-lockbox-item-head-main {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    min-width: 0;
}
.tt-lockbox-item-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}
.tt-lockbox-shareable {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
    cursor: pointer;
    user-select: none;
}
.tt-lockbox-shareable input {
    margin: 0;
    width: 14px;
    height: 14px;
    accent-color: var(--tt-accent);
    cursor: pointer;
}
.tt-gate-code-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.tt-gate-code-toolbar-hint {
    margin: 0;
    color: var(--tt-text-muted);
    font-size: 0.9rem;
}
.tt-gate-code-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tt-gate-code-item {
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius-sm);
    padding: 12px 14px;
    background: var(--tt-bg-2);
}
.tt-gate-code-item-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.tt-gate-code-item-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.tt-gate-code-item-head-main {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    min-width: 0;
}
.tt-gate-code-item-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}
.tt-gate-code-shareable {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
    cursor: pointer;
    user-select: none;
}
.tt-gate-code-shareable input {
    margin: 0;
    width: 14px;
    height: 14px;
    accent-color: var(--tt-accent);
    cursor: pointer;
}
.tt-subject-panel .tt-fields > .tt-field-line--stacked {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 6px;
    width: calc((100% - 28px) / 3);
    max-width: 100%;
}
.tt-subject-panel .tt-fields > .tt-field-line--stacked > label {
    text-align: left;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-faint);
}
.tt-subject-map-empty {
    margin: 0;
    padding: 10px 8px;
    font-size: 11px;
    line-height: 1.4;
    color: var(--tt-text-faint);
    text-align: center;
    border: 1px dashed var(--tt-border);
    border-radius: 8px;
    background: var(--tt-bg-2);
}
.tt-subject-map-thumb {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    background: var(--tt-bg-2);
}
.tt-subject-map-thumb[hidden],
.tt-subject-map-link[hidden],
.tt-subject-map-empty[hidden] {
    display: none !important;
}
.tt-subject-map-thumb:hover { border-color: var(--tt-accent); }
.tt-subject-map-thumb-map { width: 100%; height: 128px; }
.tt-subject-photo-thumb {
    position: relative;
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 0;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    background: var(--tt-bg-2);
}
.tt-subject-photo-thumb[hidden] { display: none !important; }
.tt-subject-photo-thumb:hover { border-color: var(--tt-accent); }
.tt-subject-photo-thumb img {
    display: block;
    width: 100%;
    height: 128px;
    object-fit: cover;
}
.tt-subject-photo-thumb-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 6px 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(transparent, rgba(15, 23, 42, 0.72));
}
.tt-subject-photo-gallery {
    position: fixed;
    inset: 0;
    z-index: 12050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, 0.82);
}
.tt-subject-photo-gallery[hidden] { display: none !important; }
body.tt-subject-photo-open { overflow: hidden; }
.tt-subject-photo-gallery-card {
    position: relative;
    width: min(960px, 100%);
    max-height: calc(100vh - 48px);
    background: var(--tt-card);
    border-radius: 12px;
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.35);
    overflow: hidden;
}
.tt-subject-photo-gallery-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--tt-border);
}
.tt-subject-photo-gallery-head h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}
.tt-subject-photo-gallery-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: min(70vh, 640px);
    background: #0f172a;
    touch-action: pan-y;
}
.tt-subject-photo-gallery-stage img {
    display: block;
    max-width: 100%;
    max-height: min(70vh, 640px);
    width: auto;
    height: auto;
    object-fit: contain;
}
.tt-subject-photo-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #111827;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.25);
}
.tt-subject-photo-nav:hover { background: #fff; }
.tt-subject-photo-nav.prev { left: 12px; }
.tt-subject-photo-nav.next { right: 12px; }
.tt-subject-photo-gallery-counter {
    margin: 0;
    padding: 9px 16px;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-subject-photo-gallery-thumbs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 0 16px 14px;
    scrollbar-width: thin;
}
.tt-subject-photo-gallery-thumb {
    flex: 0 0 74px;
    width: 74px;
    height: 54px;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 8px;
    background: #dbe7f5;
    cursor: pointer;
    opacity: 0.7;
}
.tt-subject-photo-gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tt-subject-photo-gallery-thumb:hover {
    opacity: 1;
}
.tt-subject-photo-gallery-thumb.is-active {
    border-color: #2563eb;
    opacity: 1;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}
.tt-subject-map-thumb-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 6px 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(transparent, rgba(15, 23, 42, 0.72));
    pointer-events: none;
}
.tt-subject-map-expand {
    position: fixed;
    inset: 0;
    z-index: 250;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(10, 12, 24, 0.58);
    backdrop-filter: blur(4px);
}
.tt-subject-map-expand[hidden] { display: none !important; }
body.tt-subject-map-open { overflow: hidden; }
.tt-subject-map-expand-card {
    width: min(1120px, 96vw);
    height: min(84vh, 920px);
    display: flex;
    flex-direction: column;
    background: var(--tt-card);
    border: 1px solid var(--tt-border);
    border-radius: var(--tt-radius);
    box-shadow: var(--tt-shadow-lg);
    overflow: hidden;
}
.tt-subject-map-expand-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--tt-border);
}
.tt-subject-map-expand-head h3 { margin: 0; font-size: 15px; }
.tt-subject-map-expand-map { flex: 1; min-height: 0; }

.tt-address-block {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--tt-border);
}
.tt-address-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.tt-address-block-meta {
    display: grid;
    grid-template-columns: 1.4fr 0.65fr 0.85fr;
    gap: 10px;
    margin: 0 0 4px 162px;
}
.tt-address-block-middle {
    display: grid;
    grid-template-columns: 0.55fr 1fr;
    gap: 10px;
    margin: 0 0 4px 162px;
}
.tt-address-block-extra {
    display: grid;
    grid-template-columns: 1fr 0.75fr;
    gap: 10px;
    margin: 0 0 4px 162px;
}
.tt-address-block-extra--listing {
    grid-template-columns: 1fr 1fr;
}
.tt-address-block--mailing .tt-mailing-street-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 108px;
    gap: 10px;
    align-items: end;
}
.tt-field-line--mailing { align-items: start; }
.tt-address-block--mailing .tt-mailing-street-col {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.tt-address-block--mailing .tt-mailing-street-col .tt-input { width: 100%; }
.tt-address-block--mailing .tt-address-part--unit label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-faint);
    margin-bottom: 4px;
}
.tt-address-block--mailing .tt-address-part--unit .tt-input { width: 100%; }
/* Street + Suite/Unit # side-by-side (Agent, TC, Escrow, HOA, etc.) */
.tt-address-street-row,
.tt-address-block--agent .tt-agent-street-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 118px;
    gap: 10px;
    align-items: end;
}
.tt-address-street-col,
.tt-address-block--agent .tt-agent-street-col {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.tt-address-street-col .tt-input,
.tt-address-block--agent .tt-agent-street-col .tt-input { width: 100%; }
.tt-address-part--unit label,
.tt-address-block--agent .tt-address-part--unit label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-faint);
    margin-bottom: 4px;
}
.tt-address-part--unit .tt-input,
.tt-address-block--agent .tt-address-part--unit .tt-input { width: 100%; }
.tt-field-label-col .tt-btn-mailing-copy:hover {
    background: #e8e0ff;
    color: blueviolet;
    border-color: blueviolet;
}
.tt-mailing-spell-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 10040;
    overflow: hidden;
}
.tt-mailing-spell-spark {
    position: absolute;
    left: 0;
    top: 0;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0%, #dda0ff 28%, blueviolet 62%, transparent 100%);
    box-shadow: 0 0 10px 3px rgba(138, 43, 226, 0.95), 0 0 22px 8px rgba(230, 230, 250, 0.85);
    will-change: transform;
}
.tt-mailing-spell-trail {
    position: absolute;
    width: 7px;
    height: 7px;
    margin-left: -3px;
    margin-top: -3px;
    border-radius: 50%;
    background: radial-gradient(circle, lavender 0%, blueviolet 100%);
    opacity: 0.75;
    animation: tt-mailing-spell-trail-fade 0.45s ease-out forwards;
}
@keyframes tt-mailing-spell-trail-fade {
    to { opacity: 0; transform: scale(0.15); }
}
.tt-mailing-spell-flash {
    position: absolute;
    width: 48px;
    height: 48px;
    margin-left: -24px;
    margin-top: -24px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.98) 0%, rgba(186, 85, 211, 0.75) 38%, rgba(138, 43, 226, 0.25) 62%, transparent 78%);
    animation: tt-mailing-spell-flash 0.58s ease-out forwards;
}
@keyframes tt-mailing-spell-flash {
    0% { opacity: 1; transform: scale(0.15); }
    45% { opacity: 0.95; transform: scale(1.9); }
    100% { opacity: 0; transform: scale(2.6); }
}
.tt-mailing-spell-burst {
    position: absolute;
    width: 8px;
    height: 8px;
    margin-left: -4px;
    margin-top: -4px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0%, blueviolet 55%, lavender 100%);
    box-shadow: 0 0 8px 2px rgba(138, 43, 226, 0.65);
    animation: tt-mailing-spell-burst 0.58s ease-out forwards;
}
@keyframes tt-mailing-spell-burst {
    0% { opacity: 1; transform: translate(0, 0) scale(1); }
    100% { opacity: 0; transform: translate(var(--tx), var(--ty)) scale(0.2); }
}
.tt-mailing-spell-target-glow {
    animation: tt-mailing-spell-target-glow 0.65s ease-out;
}
@keyframes tt-mailing-spell-target-glow {
    0% { box-shadow: 0 0 0 0 rgba(138, 43, 226, 0.85); }
    40% { box-shadow: 0 0 0 6px rgba(138, 43, 226, 0.45), 0 0 18px 6px lavender; }
    100% { box-shadow: none; }
}
.tt-address-part label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-faint);
    margin-bottom: 4px;
}
.tt-address-part--state input { text-transform: uppercase; }

/* Legacy Places widget is disabled. Keep its error box hidden; suggestions use .places-suggest. */
.pac-container,
.gm-err-container { display: none !important; visibility: hidden !important; }

/* ── Timeline summary content ───────────────────────────── */
.tt-timeline { display: flex; flex-direction: column; gap: 2px; }
.tt-timeline-item { display: grid; grid-template-columns: auto 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--tt-border); align-items: baseline; }
.tt-modal-foot--split { justify-content: space-between; }
.tt-modal-foot--split .tt-btn-ghost { margin-left: auto; }
.tt-timeline-item:last-child { border-bottom: none; }
.tt-timeline-label { font-weight: 600; color: var(--tt-text); }
.tt-timeline-date { color: var(--tt-text-dim); font-variant-numeric: tabular-nums; }
.tt-timeline-empty { color: var(--tt-text-faint); }
.tt-ytd-figure { font-size: 34px; font-weight: 800; color: var(--tt-accent); margin: 6px 0; }

/* ── Footer ─────────────────────────────────────────────── */
.tt-footer { text-align: center; padding: 24px; color: var(--tt-text-faint); font-size: 13px; border-top: 1px solid var(--tt-border); margin-top: auto; }
.tt-footer-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px 8px;
    max-width: 960px;
    margin: 0 auto;
    line-height: 1.5;
}
.tt-footer a,
.tt-footer-linkbtn {
    color: var(--tt-text-dim, #64748b);
    text-decoration: underline;
    text-underline-offset: 2px;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    cursor: pointer;
}
.tt-footer a:hover,
.tt-footer-linkbtn:hover {
    color: var(--tt-text, #0f2744);
}
.tt-footer-sep {
    color: var(--tt-text-faint, #94a3b8);
    user-select: none;
}

/* ── Legal pages ────────────────────────────────────────── */
.tt-legal-wrap {
    flex: 1;
    width: 100%;
    max-width: 820px;
    margin: 0 auto;
    padding: 32px 20px 48px;
}
.tt-legal-card {
    padding: 28px 28px 22px;
}
.tt-legal-brand {
    margin: 0 0 6px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #2563eb;
}
.tt-legal-title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--tt-text, #0f2744);
    letter-spacing: -0.02em;
}
.tt-legal-updated {
    margin: 8px 0 0;
    font-size: 0.8125rem;
    color: var(--tt-text-faint, #94a3b8);
}
.tt-legal-body {
    margin-top: 22px;
    color: var(--tt-text, #0f2744);
    font-size: 0.9375rem;
    line-height: 1.65;
}
.tt-legal-body h2 {
    margin: 1.6em 0 0.55em;
    font-size: 1.0625rem;
    font-weight: 800;
    color: var(--tt-text, #0f2744);
}
.tt-legal-body p,
.tt-legal-body ul {
    margin: 0 0 0.9em;
}
.tt-legal-body ul {
    padding-left: 1.25em;
}
.tt-legal-body a {
    color: #1d4ed8;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.tt-legal-body code {
    font-size: 0.85em;
    background: #f1f5f9;
    padding: 1px 5px;
    border-radius: 4px;
}
.tt-legal-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
    margin: 0 0 1em;
}
.tt-legal-table th,
.tt-legal-table td {
    border: 1px solid var(--tt-border, #e2e8f0);
    padding: 8px 10px;
    text-align: left;
    vertical-align: top;
}
.tt-legal-table th {
    background: #f8fafc;
    font-weight: 700;
}
.tt-legal-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 28px;
    padding-top: 18px;
    border-top: 1px solid var(--tt-border, #e2e8f0);
    font-size: 0.8125rem;
}
.tt-legal-nav a {
    color: #1d4ed8;
    font-weight: 600;
    text-decoration: none;
}
.tt-legal-nav a:hover {
    text-decoration: underline;
}

/* ── Cookie consent ─────────────────────────────────────── */
.tt-cookie-consent {
    position: fixed;
    z-index: 10050;
    left: 16px;
    right: 16px;
    bottom: 16px;
    display: flex;
    justify-content: center;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.tt-cookie-consent--hide {
    opacity: 0;
    transform: translateY(12px);
}
.tt-cookie-consent-panel {
    pointer-events: auto;
    width: min(720px, 100%);
    background: #0f2744;
    color: #f8fafc;
    border: 1px solid #1e3a5f;
    border-radius: 14px;
    box-shadow: 0 18px 40px rgba(15, 39, 68, 0.35);
    padding: 16px 18px 14px;
}
.tt-cookie-consent-title {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 800;
    color: #ffffff;
}
.tt-cookie-consent-desc {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: #e2e8f0;
}
.tt-cookie-consent-desc a {
    color: #93c5fd;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.tt-cookie-consent-prefs {
    display: grid;
    gap: 8px;
    margin: 14px 0 4px;
}
.tt-cookie-consent-row {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 10px;
    align-items: start;
    padding: 10px 12px;
    border-radius: 10px;
    background: #173553;
    border: 1px solid #254b73;
    cursor: pointer;
}
.tt-cookie-consent-row input {
    margin-top: 3px;
    accent-color: #60a5fa;
}
.tt-cookie-consent-row-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.tt-cookie-consent-row-text strong {
    font-size: 0.8125rem;
    color: #ffffff;
}
.tt-cookie-consent-row-text span {
    font-size: 0.75rem;
    color: #cbd5e1;
    line-height: 1.4;
}
.tt-cookie-consent-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 14px;
}
.tt-cookie-consent-actions .tt-btn-primary {
    background: #2563eb;
    border-color: #2563eb;
    color: #ffffff;
}
.tt-cookie-consent-actions .tt-btn-secondary {
    background: #ffffff;
    border-color: #ffffff;
    color: #0f2744;
}
.tt-cookie-consent-actions .tt-btn-secondary:hover {
    background: #e2e8f0;
    color: #0f2744;
}
@media (max-width: 640px) {
    .tt-cookie-consent {
        left: 10px;
        right: 10px;
        bottom: 10px;
    }
    .tt-cookie-consent-actions {
        justify-content: stretch;
    }
    .tt-cookie-consent-actions .tt-btn {
        flex: 1 1 auto;
    }
    .tt-legal-card {
        padding: 20px 16px 16px;
    }
    .tt-legal-table {
        display: block;
        overflow-x: auto;
    }
}

/* ── Toast ──────────────────────────────────────────────── */
.tt-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    display: flex;
    align-items: flex-start;
    gap: 10px;
    max-width: min(560px, calc(100vw - 32px));
    background: var(--tt-text);
    color: var(--tt-bg);
    padding: 12px 20px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    box-shadow: var(--tt-shadow-lg);
    opacity: 0;
    pointer-events: none;
    transition: 0.25s;
    z-index: 200;
}
.tt-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.tt-toast-text { flex: 1; min-width: 0; line-height: 1.35; }
.tt-toast--error {
    background: var(--tt-danger);
    color: #fff;
    border-radius: 14px;
    padding: 14px 14px 14px 18px;
    pointer-events: auto;
}
.tt-toast--warning { background: var(--tt-warning); color: #fff; }
.tt-toast--success { background: var(--tt-success); color: #fff; }
.tt-toast--sticky { pointer-events: auto; }
.tt-toast-close {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: -4px -4px 0 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.18);
    color: inherit;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}
.tt-toast-close:hover,
.tt-toast-close:focus-visible {
    background: rgba(255, 255, 255, 0.3);
    outline: none;
}

/* ── Address Book ─────────────────────────────────────────── */
.tt-ab-page-head {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin-bottom: 14px;
}
.tt-ab-page-head-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
    padding: 16px 18px;
    border: 1px solid #163a66;
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    color: #fff;
}
.tt-ab-page-title-block {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 1 1 auto;
}
.tt-ab-page-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
    flex-shrink: 0;
}
.tt-ab-page-icon svg {
    width: 22px;
    height: 22px;
    display: block;
}
.tt-ab-page-title-copy .tt-page-title {
    margin: 0;
    line-height: 1.15;
    color: #fff !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
.tt-ab-page-title-copy .tt-page-sub {
    margin: 2px 0 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: 13px;
}
.tt-ab-page-head-top .tt-btn,
.tt-ab-page-head-top .tt-btn-secondary,
.tt-ab-page-head-top .tt-btn-primary {
    background: #fff;
    color: #163a66;
    border: 1px solid #fff;
    box-shadow: none;
}
.tt-ab-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.tt-ab-control-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.06);
}
.tt-ab-quick-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.tt-ab-quick-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid #94a3b8;
    border-radius: 999px;
    background: #fff;
    color: #0f2744;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.tt-ab-quick-filter svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: #163a66;
}
.tt-ab-quick-filter:hover,
.tt-ab-quick-filter:focus-visible {
    background: #e8f1ff;
    border-color: #1e4d8c;
    color: #0f2744;
    outline: none;
}
.tt-ab-quick-filter.is-active {
    background: #0f2744;
    border-color: #0f2744;
    color: #ffffff;
}
.tt-ab-quick-filter.is-active svg {
    color: #ffffff;
}
.tt-ab-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.tt-ab-toolbar-search {
    position: relative;
    flex: 0 1 560px;
    min-width: 220px;
    max-width: 560px;
}
.tt-ab-search-suggest {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    z-index: 160;
    max-height: 320px;
    overflow-y: auto;
    margin: 0;
    padding: 4px 0;
    border: 1px solid #c5d4e6;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
}
.tt-ab-search-suggest-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    margin: 0;
    padding: 10px 14px;
    border: 0;
    background: transparent;
    color: #0a1628;
    text-align: left;
    cursor: pointer;
}
.tt-ab-search-suggest-item:hover,
.tt-ab-search-suggest-item.is-active,
.tt-ab-search-suggest-item:focus-visible {
    background: #eff6ff;
    outline: none;
}
/* Fluorescent yellow marker for typed search matches in Contacts. */
.tt-ab-search-mark {
    background: linear-gradient(180deg, #fff59a 0%, #ffe200 55%, #ffd400 100%);
    color: #0a1628;
    padding: 0 0.12em;
    margin: 0 -0.02em;
    border-radius: 2px;
    box-shadow: inset 0 -0.08em 0 rgba(250, 204, 21, 0.55);
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    font-weight: inherit;
    font-style: inherit;
}
.tt-ab-search-suggest-item .tt-ab-search-mark,
.tt-ab-table .tt-ab-search-mark {
    background: #fff200;
    box-shadow: none;
}
.tt-ab-search-suggest-name {
    font-size: 14px;
    font-weight: 700;
    color: #0a1628;
}
.tt-ab-search-suggest-sub {
    font-size: 12px;
    font-weight: 600;
    color: #0f4ea8;
}
.tt-ab-search-suggest-meta {
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
}
.tt-ab-search-suggest-empty {
    margin: 0;
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
}
.tt-ab-search-suggest-footer {
    display: block;
    padding: 10px 14px;
    border-top: 1px solid #e2e8f0;
    font-size: 12px;
    font-weight: 700;
    color: #1564e6;
    text-decoration: none;
}
.tt-ab-search-suggest-footer:hover {
    background: #f8fafc;
    text-decoration: underline;
}
.tt-ab-toolbar-category {
    flex: 0 1 180px;
    min-width: 150px;
    max-width: 220px;
}
.tt-ab-toolbar-filter {
    flex: 0 0 auto;
    min-width: 148px;
}
.tt-ab-toolbar-search-btn,
.tt-ab-toolbar-clear {
    flex: 0 0 auto;
    height: 40px;
}
/* One shared control height so search / selects / buttons share a baseline. */
.tt-ab-toolbar .tt-search input,
.tt-ab-toolbar .tt-ab-category-input,
.tt-ab-toolbar .tt-select,
.tt-ab-toolbar .tt-btn {
    height: 40px;
    min-height: 40px;
    box-sizing: border-box;
}
.tt-ab-toolbar .tt-search input,
.tt-ab-toolbar .tt-ab-category-input,
.tt-ab-toolbar .tt-select {
    margin: 0;
    padding-top: 0;
    padding-bottom: 0;
    border: 1px solid #c5d4e6;
    border-radius: 10px;
    background: #ffffff;
    color: #0a1628;
    font-size: 14px;
    font-weight: 600;
    box-shadow: none;
}
.tt-ab-toolbar .tt-search input {
    padding-left: 40px;
    padding-right: 12px;
}
.tt-ab-toolbar .tt-ab-category-input,
.tt-ab-toolbar .tt-select {
    padding-left: 12px;
    padding-right: 12px;
    text-align: center;
}
.tt-ab-toolbar .tt-ab-category-input::placeholder {
    text-align: center;
    color: #6b7c99;
}
.tt-ab-toolbar .tt-search input:focus,
.tt-ab-toolbar .tt-ab-category-input:focus,
.tt-ab-toolbar .tt-select:focus {
    outline: none;
    border-color: #1564e6;
    box-shadow: 0 0 0 3px rgba(21, 100, 230, 0.18);
}
/* Underline form-field mode must not strip the boxed chrome on this bar. */
body.tt-form-fields--underline .tt-ab-toolbar .tt-search input,
body.tt-form-fields--underline .tt-ab-toolbar .tt-ab-category-input,
body.tt-form-fields--underline .tt-ab-toolbar .tt-select {
    border: 1px solid #c5d4e6 !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    color: #0a1628 !important;
    box-shadow: none !important;
}
@media (max-width: 900px) {
    .tt-ab-page-head-top {
        align-items: stretch;
    }
    .tt-ab-toolbar-actions {
        width: 100%;
        justify-content: flex-end;
    }
    .tt-ab-toolbar-search,
    .tt-ab-toolbar-category,
    .tt-ab-toolbar-filter {
        flex: 1 1 100%;
        max-width: none;
        min-width: 0;
    }
}
.tt-ab-count { margin: 0 0 12px; font-size: 13px; color: var(--tt-text-dim); }
.tt-ab-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--tt-bg-2, #f3f6fa) 70%, #fff);
}
.tt-ab-pagination--top {
    margin-top: 0;
    margin-bottom: 0.85rem;
}
.tt-ab-pagination--bottom {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
}
.tt-ab-pagination-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
}
.tt-ab-pagination-range {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text);
}
.tt-ab-page-size-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-ab-page-size {
    min-width: 4.5rem;
    background: #fff;
    color: var(--tt-text);
    border: 1px solid var(--tt-border);
}
.tt-ab-pagination-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
}
.tt-ab-export-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fff;
    color: var(--tt-accent);
    border-color: color-mix(in srgb, var(--tt-accent) 45%, var(--tt-border));
}
.tt-ab-export-btn svg {
    width: 15px;
    height: 15px;
}
.tt-ab-export-wrap {
    position: relative;
}
.tt-ab-export-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 30;
    min-width: 148px;
    padding: 6px;
    border: 1px solid #c5d4e6;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}
.tt-ab-export-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: #ffffff;
    color: #0a1628;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.tt-ab-export-item svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #0f4ea8;
}
.tt-ab-export-item:hover,
.tt-ab-export-item:focus-visible {
    background: #e7f1ff;
    color: #0a1628;
    outline: none;
}
.tt-ab-export-item:hover svg,
.tt-ab-export-item:focus-visible svg {
    color: #0f4ea8;
}
.tt-ab-pagination--bottom .tt-ab-export-menu {
    top: auto;
    bottom: calc(100% + 6px);
}
.tt-ab-pagination-controls {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.tt-ab-page-num,
.tt-ab-page-nav {
    min-width: 34px;
    height: 34px;
    padding: 0 8px;
    border-radius: 8px;
}
.tt-ab-page-num.is-active {
    background: #0f2744;
    color: #fff;
    border-color: #0f2744;
}
.tt-ab-page-info {
    font-size: 13px;
    color: var(--tt-text-dim);
}

/* Card-style contact rows */
.tt-ab-table-wrap {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    overflow-x: auto;
}
.tt-ab-table.tt-ab-table--cards {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    color: #18325c;
}
.tt-ab-table--cards thead {
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
}
.tt-ab-table--cards thead th,
.tt-ab-table--cards .tt-th-sort,
.tt-ab-table--cards .tt-ab-split-sort-btn {
    color: #fff;
    background: transparent;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.045em;
    text-align: left;
}
.tt-ab-table--cards thead th {
    height: 38px;
    padding: 0 12px;
    border: none;
    border-bottom: 1px solid #c9ddef;
    text-transform: uppercase;
    white-space: nowrap;
    vertical-align: middle;
}
.tt-ab-table--cards thead th:first-child {
    border-top-left-radius: 13px;
}
.tt-ab-table--cards thead th:last-child {
    border-top-right-radius: 13px;
}
.tt-ab-table--cards .tt-th-sort {
    padding: 13px 12px;
    gap: 6px;
    text-transform: uppercase;
}
.tt-ab-table--cards .tt-th-sort:hover,
.tt-ab-table--cards .tt-th-sort.is-active {
    color: #fff;
    font-weight: 800;
    background: rgba(255, 255, 255, 0.14);
}
.tt-ab-table--cards .tt-th-sort-icon {
    opacity: 0.9;
    color: #fff;
    font-size: 12px;
}
.tt-ab-table--cards .tt-th-sort:hover .tt-th-sort-icon,
.tt-ab-table--cards .tt-th-sort.is-active .tt-th-sort-icon {
    color: #fff;
}
.tt-ab-table-wrap.tt-table-wrap--scroll-x .tt-th-gear,
.tt-ab-table--cards thead .tt-th-gear {
    background: #1e4d8c;
    box-shadow: none;
}
.tt-ab-table--cards .tt-th-gear-btn,
.tt-ab-table--cards .tt-th-gear-btn:hover,
.tt-ab-table--cards .tt-th-gear-btn:focus-visible,
.tt-ab-table--cards .tt-th-gear-btn[aria-expanded="true"] {
    color: #fff;
    background: transparent;
}
.tt-ab-table--cards .tt-th-gear-btn:hover,
.tt-ab-table--cards .tt-th-gear-btn[aria-expanded="true"] {
    background: rgba(255, 255, 255, 0.16);
}
.tt-ab-split-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.tt-ab-table--cards .tt-ab-split-sort-btn {
    display: inline-flex;
    align-items: center;
    width: auto;
    padding: 0;
    gap: 4px;
    font-weight: 600;
    color: #fff;
}
.tt-ab-table--cards .tt-ab-split-sort-btn:hover,
.tt-ab-table--cards .tt-ab-split-sort-btn.is-active {
    color: #fff;
}
.tt-ab-table--cards .tt-ab-split-sort-btn.is-active .tt-ab-split-sort-word {
    font-weight: 800;
}
.tt-ab-table--cards .tt-ab-split-sort-btn .tt-th-sort-icon {
    margin-left: 0;
}
.tt-ab-split-sort-sep {
    color: #fff;
    font-weight: 600;
    opacity: 0.75;
}
.tt-ab-table--cards tbody tr.tt-ab-row {
    background: #f8fbff;
    box-shadow: none;
    cursor: pointer;
}
.tt-ab-table--cards tbody tr.tt-ab-row:nth-child(even) {
    background: #f2f8fe;
}
.tt-ab-table--cards tbody tr.tt-ab-row:hover {
    background: #e8f4ff;
    box-shadow: none;
}
.tt-ab-table--cards tbody td {
    background: transparent;
    color: #18325c;
    border-top: none;
    border-bottom: 1px solid #cfdfed;
    border-left: none;
    border-right: none;
    border-radius: 0;
    padding: 9px 12px;
    vertical-align: middle;
}
.tt-ab-table--cards tbody td:first-child,
.tt-ab-table--cards tbody td:last-child {
    border-left: none;
    border-right: none;
    border-radius: 0;
}
.tt-ab-check-th,
.tt-ab-check-cell {
    width: 42px;
    text-align: center;
}
.tt-ab-row-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    cursor: pointer;
}
.tt-ab-row-check input {
    width: 16px;
    height: 16px;
    accent-color: var(--tt-accent);
    cursor: pointer;
}
.tt-ab-td-category .tt-ab-category-cell {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.tt-ab-category-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #e2e8f0;
    color: #1e293b;
    flex-shrink: 0;
}
.tt-ab-category-icon.tt-ab-tone-agent { background: #dbeafe; color: #0f4ea8; }
.tt-ab-category-icon.tt-ab-tone-escrow { background: #ccfbf1; color: #0f766e; }
.tt-ab-category-icon.tt-ab-tone-hoa { background: #dcfce7; color: #166534; }
.tt-ab-category-icon.tt-ab-tone-inspector { background: #ffedd5; color: #9a3412; }
.tt-ab-category-icon.tt-ab-tone-lender { background: #ede9fe; color: #5b21b6; }
.tt-ab-category-icon.tt-ab-tone-title { background: #fce7f3; color: #9d174d; }
.tt-ab-category-icon.tt-ab-tone-client { background: #e0f2fe; color: #075985; }
.tt-ab-category-icon.tt-ab-tone-assistant { background: #fef3c7; color: #92400e; }
.tt-ab-category-icon.tt-ab-tone-other { background: #e2e8f0; color: #1e293b; }
.tt-ab-category-icon svg {
    width: 16px;
    height: 16px;
    display: block;
}
.tt-ab-category-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.tt-ab-category {
    font-size: 13px;
    font-weight: 600;
    color: var(--tt-text);
    white-space: nowrap;
}
.tt-ab-category-assistant {
    font-size: 11px;
    color: var(--tt-text-dim);
}
.tt-ab-person-cell {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.tt-ab-person-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-ab-list-rating {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-top: 2px;
    line-height: 1.2;
    white-space: nowrap;
}
.tt-ab-list-star {
    font-size: 13px;
    color: #c5cdd8;
    letter-spacing: -1px;
}
.tt-ab-list-star.is-on {
    color: #d97706;
}
.tt-ab-list-rating-avg {
    margin-left: 4px;
    font-size: 12px;
    font-weight: 800;
    color: var(--tt-text, #1e293b);
}
.tt-ab-list-rating-count {
    font-size: 11px;
    font-weight: 600;
    color: var(--tt-text-dim, #5c6b7c);
}
[data-theme="dark"] .tt-ab-list-star { color: rgba(255, 255, 255, 0.28); }
[data-theme="dark"] .tt-ab-list-star.is-on { color: #facc15; }
[data-theme="dark"] .tt-ab-list-rating-avg { color: #fff; }
[data-theme="dark"] .tt-ab-list-rating-count { color: rgba(255, 255, 255, 0.65); }
.tt-ab-portrait-btn {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 2px solid #5c6b7c;
    border-radius: 50%;
    overflow: hidden;
    background: #eef3f9;
    cursor: pointer;
}
.tt-ab-portrait-btn img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}
.tt-ab-portrait-btn:hover,
.tt-ab-portrait-btn:focus-visible {
    border-color: #0f4ea8;
    outline: 2px solid #0f4ea8;
    outline-offset: 2px;
}
.tt-ab-th-bc_picture {
    width: 72px;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--tt-text-dim, #5c6b7c);
    white-space: nowrap;
}
.tt-ab-td-bc {
    text-align: center;
    vertical-align: middle;
    width: 72px;
}
/* Phone + Email keep one line; Location gives up width. */
.tt-ab-table--cards .tt-ab-th-phone,
.tt-ab-table--cards .tt-ab-td-phone {
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
}
.tt-ab-table--cards .tt-ab-th-email,
.tt-ab-table--cards .tt-ab-td-email {
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
}
.tt-ab-table--cards .tt-ab-th-person_company,
.tt-ab-table--cards .tt-ab-td-person,
.tt-ab-table--cards .tt-ab-th-location,
.tt-ab-table--cards .tt-ab-td-location {
    width: 22%;
    max-width: 22%;
}
.tt-ab-table--cards .tt-ab-td-location .tt-ab-location-stack,
.tt-ab-table--cards .tt-ab-td-person .tt-ab-person-cell {
    max-width: 100%;
}
.tt-ab-table--cards .tt-ab-td-location .tt-ab-location-copy {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.tt-ab-table--cards .tt-ab-email-stack {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: max-content;
}
.tt-ab-table--cards .tt-ab-email-line {
    flex-wrap: nowrap;
    min-width: max-content;
}
.tt-ab-bc-thumb-btn {
    display: inline-block;
    width: 56px;
    height: 36px;
    padding: 0;
    margin: 0;
    border: 1px solid #94a3b8;
    border-radius: 6px;
    overflow: hidden;
    background: #eef2f7;
    cursor: pointer;
    vertical-align: middle;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.08);
}
.tt-ab-bc-thumb-btn img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}
.tt-ab-bc-thumb-btn:hover,
.tt-ab-bc-thumb-btn:focus-visible {
    border-color: #0f4ea8;
    outline: 2px solid #0f4ea8;
    outline-offset: 2px;
}
.tt-ab-td-person .tt-row-title {
    display: block;
    font-family: var(--tt-font);
    font-size: 15px;
    font-weight: 800;
    color: #0a1628;
    letter-spacing: -0.01em;
    line-height: 1.25;
}
.tt-ab-td-person .tt-row-sub {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 600;
    color: #0f4ea8;
}
.tt-ab-empty-dash {
    color: var(--tt-text-faint);
    font-weight: 500;
}
.tt-ab-email-stack,
.tt-ab-location-stack {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
}
.tt-ab-email-line {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.tt-ab-email-icon,
.tt-ab-location-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    color: #0f4ea8;
    background: #dbeafe;
    flex-shrink: 0;
    margin-top: 0;
}
.tt-ab-email-icon {
    color: #047857;
    background: #d1fae5;
}
.tt-ab-location-icon {
    color: #9a3412;
    background: #ffedd5;
}
.tt-ab-email-icon svg,
.tt-ab-location-icon svg {
    width: 16px;
    height: 16px;
    display: block;
}
.tt-ab-location-copy {
    min-width: 0;
}
.tt-ab-more-th,
.tt-ab-more-cell {
    width: 48px;
    text-align: center;
}
.tt-ab-more-wrap {
    position: relative;
    display: inline-flex;
    z-index: 1;
}
.tt-ab-more-wrap.is-open {
    z-index: 12000;
}
.tt-ab-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    cursor: pointer;
    transition: 0.15s ease;
}
.tt-ab-more-btn:hover,
.tt-ab-more-wrap.is-open .tt-ab-more-btn {
    background: #eff6ff;
    border-color: color-mix(in srgb, var(--tt-accent) 35%, #e2e8f0);
    color: var(--tt-accent);
}
.tt-ab-more-btn svg {
    width: 16px;
    height: 16px;
}
.tt-ab-more-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 12000;
    min-width: 148px;
    padding: 6px;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
}
/* Escapes the scrollable table overflow so View/Edit/Delete sit above the pager. */
.tt-ab-more-menu.is-fixed {
    position: fixed;
    right: auto;
    bottom: auto;
}
.tt-ab-table--cards tbody tr.tt-ab-row:has(.tt-ab-more-wrap.is-open) {
    position: relative;
    z-index: 30;
}
.tt-ab-more-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text);
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}
.tt-ab-more-item:hover {
    background: var(--tt-accent-soft);
    color: var(--tt-accent);
}
.tt-ab-more-item.tt-ab-delete:hover {
    background: rgba(220, 53, 69, 0.08);
    color: var(--tt-danger);
}
.tt-ab-more-item svg {
    width: 15px;
    height: 15px;
}
#ttAbListHost.tt-ab-list-updated { animation: tt-ab-flash 0.6s ease; }
@keyframes tt-ab-flash {
    0% { background: color-mix(in srgb, var(--tt-accent) 12%, transparent); }
    100% { background: transparent; }
}
.tt-ab-table .tt-ab-view-th,
.tt-ab-table .tt-ab-view-cell {
    width: 44px;
    min-width: 44px;
    vertical-align: top;
    padding-left: 8px;
    padding-right: 8px;
}
.tt-ab-row-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.tt-ab-row-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    transition: 0.15s ease;
}
.tt-ab-row-action:hover {
    background: var(--tt-accent-soft);
    color: var(--tt-accent);
}
.tt-ab-row-action.tt-ab-delete:hover {
    background: rgba(220, 53, 69, 0.08);
    color: var(--tt-danger);
}
.tt-ab-row-action svg,
.tt-ab-row-action i[data-lucide] {
    width: 16px;
    height: 16px;
    pointer-events: none;
}
.tt-ab-form .tt-field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 12px; }
.tt-ab-form .tt-ab-license-creds-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tt-ab-form .tt-ab-license-creds-row--duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tt-ab-form .tt-ab-license-creds-row--solo {
    grid-template-columns: minmax(0, 1fr);
}
.tt-ab-form .tt-ab-phone-solo-row {
    grid-template-columns: minmax(0, 1fr);
}
.tt-ab-form .tt-ab-address-street-row {
    grid-template-columns: minmax(0, 1fr) minmax(110px, 150px);
}
.tt-ab-form .tt-ab-address-city-row {
    grid-template-columns: minmax(0, 1.5fr) 72px 110px;
}
.tt-ab-location-stack {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.35;
    min-width: 0;
}
.tt-ab-location-line--city {
    color: var(--tt-text-dim);
    font-size: 0.95em;
}
.tt-ab-view-address-street-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(100px, 140px);
    gap: 10px;
}
.tt-ab-view-address-street-grid--solo {
    grid-template-columns: minmax(0, 1fr);
}
.tt-ab-view-address-city-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) 72px 110px;
    gap: 10px;
}
.tt-ab-view-address-part { min-width: 0; }
@media (max-width: 640px) {
    .tt-ab-form .tt-ab-address-street-row,
    .tt-ab-form .tt-ab-address-city-row,
    .tt-ab-view-address-street-grid,
    .tt-ab-view-address-city-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .tt-ab-form .tt-ab-license-creds-row { grid-template-columns: 1fr; }
}
.tt-ab-view-license-creds { padding-bottom: 10px; }
.tt-ab-view-license-creds-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.tt-ab-view-license-creds-grid--duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tt-ab-view-license-creds-grid--solo {
    grid-template-columns: minmax(0, 1fr);
}
.tt-ab-view-license-part { min-width: 0; }
@media (max-width: 640px) {
    .tt-ab-view-license-creds-grid { grid-template-columns: 1fr; }
}
.tt-field-line--license-creds {
    grid-template-columns: 150px 1fr;
    align-items: start;
    gap: 12px;
}
.tt-license-creds-spacer {
    display: block;
    min-height: 1px;
}
.tt-license-creds-pair {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
}
.tt-license-creds-pair--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tt-license-creds-pair--1 {
    grid-template-columns: minmax(0, 1fr);
}
.tt-license-creds-part {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.tt-license-creds-sublabel {
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
@media (max-width: 900px) {
    .tt-field-line--license-creds {
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .tt-license-creds-spacer { display: none; }
}
@media (max-width: 640px) {
    .tt-license-creds-pair,
    .tt-license-creds-pair--2,
    .tt-license-creds-pair--3 { grid-template-columns: 1fr; }
}
.tt-ab-form .tt-field { margin-bottom: 0; }
.tt-ab-form .tt-field--state input { text-transform: uppercase; }
.tt-ab-form-portrait-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: 0 0 18px;
    text-align: center;
}
.tt-ab-form-portrait-wrap .tt-ab-view-portrait {
    width: 104px;
    height: 104px;
    border-radius: 50%;
    border: 1px solid var(--tt-border);
    background: var(--tt-accent-soft, #e8f0fe);
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}
.tt-ab-form-portrait-wrap .tt-ab-view-portrait img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    display: block;
}
.tt-ab-form-portrait-wrap .tt-ab-view-portrait.has-photo .tt-ab-view-initials {
    display: none;
}
.tt-ab-form-portrait-wrap .tt-ab-view-initials {
    font-size: 36px;
    font-weight: 600;
    color: var(--tt-accent);
    line-height: 1;
    transform: translateY(-0.04em);
}
.tt-ab-form-portrait-action {
    color: var(--tt-accent);
}
.tt-ab-tags-field {
    margin-top: 4px;
    margin-bottom: 12px;
}
.tt-ab-tags-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 8px;
    min-height: 0;
}
.tt-ab-tags-chips:empty { display: none; margin: 0; }
.tt-ab-tag-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 4px 8px 4px 10px;
    border: 1px solid color-mix(in srgb, var(--tt-border, #cfcfcf) 85%, transparent);
    border-radius: 6px;
    background: color-mix(in srgb, var(--tt-accent, #1a73e8) 8%, #fff);
    color: var(--tt-text, #222);
    font-size: 13px;
    line-height: 1.2;
}
.tt-ab-tag-chip-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-ab-tag-chip-remove {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--tt-text-dim, #666);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 0 2px;
    margin: 0;
}
.tt-ab-tag-chip-remove:hover,
.tt-ab-tag-chip-remove:focus-visible {
    color: #c5221f;
}
.tt-ab-tags-input { width: 100%; }
.tt-ab-tags-empty { color: var(--tt-text-dim, #888); }
.tt-ab-tags-view .tt-ab-tags-chips { margin-bottom: 0; }
.tt-ab-view-field .tt-ab-tags-field { margin-bottom: 0; }
.tt-ab-tags-cell {
    max-width: 220px;
    vertical-align: middle;
}
.tt-ab-list-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}
.tt-ab-tag-chip--list {
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid transparent;
}
.tt-ab-list-tags .tt-ab-tag-chip--list:nth-child(4n + 1) { background: #dbeafe; color: #0f4ea8; }
.tt-ab-list-tags .tt-ab-tag-chip--list:nth-child(4n + 2) { background: #dcfce7; color: #166534; }
.tt-ab-list-tags .tt-ab-tag-chip--list:nth-child(4n + 3) { background: #ffedd5; color: #9a3412; }
.tt-ab-list-tags .tt-ab-tag-chip--list:nth-child(4n + 4) { background: #ede9fe; color: #5b21b6; }
.tt-ab-list-tags:not(.is-expanded) .tt-ab-tag-chip.is-overflow {
    display: none;
}
.tt-ab-tags-more {
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--tt-border, #cfcfcf) 90%, transparent);
    border-radius: 6px;
    background: color-mix(in srgb, var(--tt-card, #fff) 88%, var(--tt-accent, #1a73e8));
    color: var(--tt-text, #222);
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    padding: 2px 8px;
    white-space: nowrap;
}
.tt-ab-tags-more:hover,
.tt-ab-tags-more:focus-visible {
    border-color: var(--tt-accent, #1a73e8);
    color: var(--tt-accent, #1a73e8);
}
.tt-ab-private-field { margin-top: 14px; }
.tt-ab-private-field .tt-checkbox-label,
.tt-ab-view-private .tt-checkbox-label,
.tt-ab-always-include-field .tt-checkbox-label,
.tt-txn-assistant-include {
    display: block;
    overflow: hidden;
}
.tt-ab-private-field .tt-checkbox-label input[type="checkbox"],
.tt-ab-view-private .tt-checkbox-label input[type="checkbox"],
.tt-ab-always-include-field .tt-checkbox-label input[type="checkbox"],
.tt-txn-assistant-include input[type="checkbox"] {
    float: left;
    width: 25px;
    height: 25px;
    margin: 0 10px 0 0;
    flex-shrink: 0;
    cursor: pointer;
}
.tt-ab-category-assistant {
    display: block;
    width: 100%;
    flex-basis: 100%;
    font-size: 12px;
    font-weight: 500;
    color: var(--tt-text-dim);
    line-height: 1.3;
}
.tt-ab-assistant-section {
    margin: 14px 0 12px;
    padding: 12px 14px;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--tt-card) 70%, transparent);
}
.tt-ab-assistant-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.tt-ab-assistant-section-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
}
.tt-ab-assistant-empty {
    margin: 0;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-ab-assistant-summary-name {
    font-weight: 600;
    margin-bottom: 2px;
}
.tt-ab-assistant-summary-email,
.tt-ab-assistant-summary-flag {
    font-size: 13px;
    color: var(--tt-text-dim);
    margin-bottom: 6px;
}
.tt-txn-assistant-panel {
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--tt-card) 65%, transparent);
}
.tt-txn-assistant-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.tt-txn-assistant-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--tt-text-dim);
}
.tt-txn-assistant-name { font-weight: 600; }
.tt-txn-assistant-email {
    font-size: 13px;
    color: var(--tt-text-dim);
    margin: 2px 0 10px;
}
.tt-sandbox-list { margin-top: 8px; }
.tt-sandbox-table { width: 100%; }
.tt-sandbox-remaining { color: var(--tt-text-dim); font-size: 12px; }
.tt-db-backup-list { margin-top: 8px; overflow-x: auto; }
.tt-db-backup-table { width: 100%; }
.tt-db-backup-table code {
    font-size: 0.82rem;
    word-break: break-all;
}
.tt-db-backup-row-actions {
    white-space: nowrap;
}
.tt-db-backup-actions .tt-settings-actions,
.tt-db-backup-restore .tt-settings-actions {
    margin-top: 8px;
}
.tt-ab-private-badge {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: #fce8e6;
    color: #c5221f;
}
[data-theme="dark"] .tt-ab-private-badge { background: #3d2a2a; color: #f28b82; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 860px) {
    .tt-header {
        flex-wrap: wrap;
        align-items: center;
        padding: 12px 16px;
        gap: 10px;
    }
    .tt-brand {
        flex: 1 1 auto;
        min-width: 0;
        order: 1;
        justify-content: flex-start;
    }
    .tt-header .tt-brand-mark {
        display: none !important;
    }
    .tt-brand-text {
        align-items: flex-start;
        text-align: left;
    }
    .tt-brand-text small,
    .tt-brand-tagline { display: none; }
    .tt-brand-text strong {
        font-size: 15px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        text-align: left;
    }
    .tt-nav-toggle {
        display: flex;
        order: 3;
    }
    .tt-header-actions-toggle {
        display: none !important;
    }
    .tt-header-actions-panel {
        display: contents !important;
        position: static !important;
        min-width: 0;
        padding: 0;
        border: 0;
        box-shadow: none;
        background: transparent;
    }
    .tt-header-actions {
        order: 2;
        margin-left: auto;
    }
    .tt-header-trailing-icons {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        flex-shrink: 0;
    }
    .tt-header-create-btn {
        display: none;
        position: relative;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        padding: 0;
        border: 1px solid var(--tt-border);
        border-radius: 10px;
        background: var(--tt-bg-2);
        color: var(--tt-text);
        cursor: pointer;
        font: inherit;
        line-height: 1;
    }
    .tt-header-create-btn.is-visible {
        display: inline-flex;
    }
    .tt-header-create-btn:hover {
        background: var(--tt-bg-3);
    }
    .tt-header-create-plus {
        font-size: 26px;
        font-weight: 600;
        line-height: 1;
        margin-top: -1px;
    }
    .tt-notif-wrap {
        order: unset;
        margin-left: 0;
        flex-shrink: 0;
    }
    .tt-theme-toggle,
    .tt-user-chip,
    .tt-header-actions .tt-header-utilities {
        display: none;
    }
    body.tt-mobile-nav-open::before {
        content: '';
        position: fixed;
        inset: 0;
        z-index: 199;
        background: rgba(15, 23, 42, 0.35);
    }
    .tt-header--nav-open {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        max-height: 100dvh;
        max-height: 100svh;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        z-index: 200;
        align-items: stretch;
        align-content: flex-start;
        padding-bottom: max(24px, env(safe-area-inset-bottom, 24px));
        box-shadow: var(--tt-shadow-lg);
    }
    .tt-nav {
        display: none;
        width: 100%;
        flex: 1 1 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
        order: 4;
        padding-top: 12px;
        margin-top: 4px;
        border-top: 1px solid var(--tt-border);
    }
    .tt-header--nav-open .tt-nav {
        display: flex;
        flex: 0 0 auto;
        padding-bottom: 8px;
        border-top-color: rgba(148, 163, 184, 0.28);
    }
    .tt-header--nav-open .tt-nav-link {
        flex-direction: row;
        justify-content: flex-start;
        gap: 10px;
        min-width: 0;
        min-height: 44px;
        width: 100%;
        padding: 10px 12px;
        text-align: left;
        font-size: 14px;
    }
    .tt-header--nav-open .tt-nav-link i,
    .tt-header--nav-open .tt-nav-link svg {
        width: 18px;
        height: 18px;
    }
    .tt-header--nav-open .tt-nav-link-label {
        max-width: none;
        overflow: visible;
        text-overflow: clip;
    }
    .tt-header--nav-open .tt-header-search {
        flex: 1 1 100%;
        max-width: none;
        min-width: 0;
        margin: 8px 0 4px;
    }
    .tt-header--nav-open .tt-theme-toggle {
        display: inline-flex;
        order: 5;
        width: 100%;
        justify-content: flex-start;
        margin-top: 4px;
        padding: 12px 14px;
        border-radius: var(--tt-radius-sm);
    }
    .tt-header--nav-open .tt-header-actions {
        display: contents;
    }
    .tt-header--nav-open .tt-user-chip {
        display: flex;
        order: 6;
        width: 100%;
        justify-content: space-between;
        padding: 8px 4px 4px;
    }
    .tt-header--nav-open .tt-header-utilities,
    .tt-header--nav-open .tt-header-trailing-icons,
    .tt-header--nav-open .tt-notif-wrap,
    .tt-header--nav-open .tt-theme-toggle,
    .tt-header--nav-open .tt-user-chip,
    .tt-header--nav-open .tt-header-actions {
        flex-shrink: 0;
    }
    .tt-nav-link {
        width: 100%;
        border-radius: var(--tt-radius-sm);
        padding: 12px 14px;
        font-size: 15px;
    }
    .tt-nav-group { width: 100%; }
    .tt-nav-group-toggle {
        width: 100%;
        text-align: left;
        border-radius: var(--tt-radius-sm);
        padding: 12px 14px;
        font-family: var(--tt-font);
        font-size: 15px;
        font-weight: 650;
    }
    .tt-nav-submenu-panel {
        position: static;
        display: none;
        width: 100%;
        min-width: 0;
        padding: 0 0 4px 10px;
    }
    .tt-nav-group.is-open .tt-nav-submenu-panel {
        display: block;
    }
    .tt-header--nav-open .tt-nav-group .tt-nav-submenu-panel {
        display: block;
    }
    .tt-nav-submenu {
        border: 0;
        box-shadow: none;
        background: transparent;
        padding: 0;
    }
    .tt-nav-sublink {
        padding: 10px 14px;
        font-size: 15px;
    }
    .tt-theme-toggle {
        width: 100%;
        height: 42px;
        border-radius: var(--tt-radius-sm);
        margin-top: 4px;
    }
    .tt-user-chip {
        width: 100%;
        justify-content: space-between;
        padding-top: 10px;
        margin-top: 6px;
        border-top: 1px solid var(--tt-border);
    }
    .tt-page-head {
        position: relative;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 14px;
        padding-top: 2px;
    }
    .tt-page-head--closed-sales {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 14px;
        position: relative;
        padding-top: 2px;
    }
    .tt-page-head .tt-page-sub {
        display: none;
    }
    .tt-page-head--closed-sales > div:first-child,
    .tt-page-head--closed-sales > .tt-closed-sales-summary,
    .tt-page-head--closed-sales > .tt-closed-sales-actions,
    .tt-page-head--closed-sales > #ttClosedDealsSwapBtn {
        justify-self: center;
        align-self: center;
        width: 100%;
        text-align: center;
    }
    .tt-closed-sales-summary {
        justify-self: center;
        text-align: center;
        align-items: center;
        order: 2;
    }
    .tt-page-head--closed-sales > div:first-child {
        order: 1;
    }
    .tt-page-head--closed-sales > .tt-closed-sales-actions,
    .tt-page-head--closed-sales > #ttClosedDealsSwapBtn {
        order: 3;
        justify-content: center;
    }
    .tt-page-head > #ttNewListingBtn,
    .tt-page-head > #ttNewTransactionBtn {
        display: none !important;
    }
    .tt-closed-sales-volume {
        white-space: normal;
        font-size: 0.95rem;
        line-height: 1.35;
    }
    .tt-closed-sales-counts {
        justify-content: center;
    }
    .tt-page-title { font-size: 24px; }
    .tt-notes-layout, .tt-docs-layout { grid-template-columns: 1fr; }
    .tt-docs-explorer { grid-template-columns: 1fr; min-height: 0; }
    .tt-docs-folders { border-right: none; border-bottom: 1px solid var(--tt-border); max-height: 240px; }
    .tt-docs-file-pane { min-height: 280px; }
    .tt-fm-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .tt-fm-table { min-width: 640px; }
    .tt-fm-col-grip { position: sticky; left: 0; z-index: 1; background: inherit; }
    .tt-docs-main { grid-template-columns: 1fr; padding: 12px; }
    .tt-field-line { grid-template-columns: 1fr; }
    .tt-field-line > label { text-align: left; }
    .tt-client-view-toggle-row .tt-segment-toggle {
        width: min(100%, 280px);
    }
    .tt-address-block--mailing .tt-mailing-street-row { grid-template-columns: minmax(0, 1fr) 92px; }
    .tt-field-label-col { align-items: flex-start; }
    .tt-field-label-col > label { text-align: left; }
    .tt-address-block--subject .tt-address-block-layout { grid-template-columns: 1fr; }
    .tt-address-block--subject .tt-address-street-row { grid-template-columns: minmax(0, 1fr) 92px; }
    .tt-subject-trust-ownership-row {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }
    .tt-subject-trust,
    .tt-subject-ownership-type,
    .tt-subject-trust .tt-field-line,
    .tt-subject-ownership-type .tt-field-line {
        grid-row: auto;
        grid-template-rows: auto auto;
    }
    .tt-subject-trust .tt-field-line > label {
        width: auto;
        min-width: 0;
        max-width: none;
        white-space: normal;
    }
    .tt-subject-ownership-type .tt-field-control,
    .tt-subject-ownership-type .tt-radio-group {
        max-width: none;
        width: 100%;
    }
    .tt-property-details-grid--subject-info {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: min-content;
        grid-auto-flow: row dense;
        align-content: start;
        align-items: start;
        height: auto;
        min-height: 0;
        row-gap: 8px;
    }
    .tt-property-details-grid--subject-info > .tt-field-line--grid-span-3,
    .tt-property-details-grid--subject-info > .tt-field-line[data-tt-perm-field="property_tract_name"] {
        grid-column: 1 / -1;
    }
    .tt-address-block--subject .tt-address-block-apn-mls { grid-template-columns: 1fr; }
    .tt-property-details-grid { grid-template-columns: 1fr 1fr; }
    .tt-property-details-hoa-row { grid-template-columns: 1fr; }
    .tt-subject-coe-dates { grid-template-columns: 1fr 1fr; }
    .tt-subject-map-thumb-map { height: 160px; }
    .tt-address-block-meta { margin-left: 0; grid-template-columns: 1fr 0.75fr 0.85fr; }
    .tt-address-block-middle { margin-left: 0; grid-template-columns: 1fr 1fr; }
    .tt-address-block-extra { margin-left: 0; grid-template-columns: 1fr; }
    .tt-date-calc-row { flex-direction: column; align-items: stretch; }
    .tt-date-calc-field--days { flex: 1 1 auto; }
    .tt-input--days-count { max-width: none; text-align: left; }
    .tt-concession-extra-fee { grid-template-columns: 1fr; }
    .tt-concession-summary-line { grid-template-columns: 1fr; }
    .tt-concession-summary-line--triple { grid-template-columns: 1fr; }
    .tt-concession-summary-label { text-align: left; }
    .tt-concession-summary-col .tt-concession-summary-label { text-align: left; }
    .tt-concession-summary-col { align-items: flex-start; text-align: left; }
    .tt-mns-concessions-breakdown-total--triple { grid-template-columns: 1fr; }
    .tt-mns-concessions-breakdown-total-col { align-items: flex-start; text-align: left; }
    .tt-concession-mns-estimate { flex-direction: column; align-items: stretch; }
    .tt-concession-mns-estimate-value { text-align: left; }
    .tt-misc-row { grid-template-columns: 1fr; }
    .tt-main { padding: 16px 22px 40px; }
    .tt-dashboard {
        max-width: none;
        padding-top: 4px;
    }
    .tt-dashboard-welcome {
        padding: 28px 18px 24px;
        margin-bottom: 18px;
    }
    .tt-dashboard-welcome-label {
        font-size: clamp(30px, 10vw, 42px);
        margin-bottom: 8px;
    }
    .tt-dashboard-welcome-name {
        font-size: clamp(22px, 6.5vw, 28px);
        word-break: break-word;
    }
    .tt-dashboard-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
    .tt-dash-metric {
        min-height: 132px;
        padding: 18px 12px;
    }
    .tt-dash-metric-value {
        font-size: clamp(30px, 9vw, 40px);
    }
    .tt-footer { padding: 18px 16px; }

    /* Detail header — mobile simplification (legacy mobile-head only).
       Never gut the screenshot-style hero card title/meta/access. */
    .tt-detail-mobile-head { display: block !important; }
    .tt-detail-mobile-actions { display: flex; }
    .tt-detail-bar-left {
        width: 100%;
        text-align: center;
    }
    .tt-detail:not(:has(.tt-detail-bar--hero)) .tt-back,
    .tt-detail:not(:has(.tt-detail-bar--hero)) .tt-detail-title,
    .tt-detail:not(:has(.tt-detail-bar--hero)) .tt-detail-access-level:not(.tt-detail-access-level--mobile),
    .tt-detail:not(:has(.tt-detail-bar--hero)) .tt-detail-summary,
    .tt-detail:not(:has(.tt-detail-bar--hero)) .tt-detail-meta,
    .tt-detail:not(:has(.tt-detail-bar--hero)) .tt-detail-bar-right { display: none !important; }
    .tt-detail-bar--hero .tt-detail-title,
    .tt-detail-bar--hero .tt-detail-access-level,
    .tt-detail-bar--hero .tt-detail-meta {
        display: revert !important;
    }
    .tt-detail-bar--hero .tt-detail-title-row {
        display: flex !important;
    }
    .tt-contact-actions--tel {
        display: inline-flex;
    }
}

/* Showing Requests / Offers */
.tt-offers {
    --tt-offer-buyer-bg: #f5f3ff;
    --tt-offer-buyer-border: #ddd6fe;
    --tt-offer-buyer-accent: #c4b5fd;
    --tt-offer-buyer-ink: #6d28d9;
    --tt-offer-seller-bg: #fff7ed;
    --tt-offer-seller-border: #fed7aa;
    --tt-offer-seller-accent: #fdba74;
    --tt-offer-seller-ink: #c2410c;
    --tt-offer-await-bg: #fffbeb;
    --tt-offer-await-border: #fde68a;
    --tt-offer-await-accent: #fcd34d;
    --tt-offer-await-ink: #a16207;
    --tt-offer-accepted-bg: #f0fdf4;
    --tt-offer-accepted-border: #bbf7d0;
    --tt-offer-accepted-accent: #86efac;
    --tt-offer-accepted-ink: #15803d;
    --tt-offer-countered-bg: #f8fafc;
    --tt-offer-countered-accent: #94a3b8;
    --tt-offer-countered-ink: #475569;
    --tt-offer-superseded-bg: #f1f5f9;
    --tt-offer-superseded-accent: #cbd5e1;
    --tt-offer-superseded-ink: #64748b;
    --tt-offer-rejected-bg: #fef2f2;
    --tt-offer-rejected-border: #fecaca;
    --tt-offer-rejected-accent: #fca5a5;
    --tt-offer-rejected-ink: #b91c1c;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}
.tt-form-card--offers {
    padding: 18px 20px 20px;
}
.tt-offers-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 18px;
}
.tt-offers-page-title {
    margin: 0;
    font-family: var(--tt-font-display);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--tt-text);
    line-height: 1.25;
}
.tt-offers-page-sub {
    margin: 4px 0 0;
    font-size: 0.9rem;
    color: var(--tt-text-dim);
}
.tt-offers-head-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.tt-offers-head-filters .tt-sr-search-wrap,
.tt-offers-head-filters .tt-input {
    min-width: 0;
}
.tt-offers-head-filters #ttOfferSearch {
    min-width: 220px;
}
.tt-offers-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}
.tt-offers-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-offers-hint { margin: 0; font-size: 0.82rem; color: var(--tt-text-dim); line-height: 1.35; }
.tt-offers-counts {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.tt-offers-count {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--tt-text, #1a1c2b);
    background: var(--tt-bg-2, #eef0f8);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}
.tt-offers-count--buyers {
    color: #1d4ed8;
    background: rgba(29, 78, 216, 0.12);
}
.tt-offers-count--offers {
    color: #334155;
    background: rgba(51, 65, 85, 0.1);
}
.tt-offers-count--counter,
.tt-offers-count--sco {
    color: #c2410c;
    background: rgba(194, 65, 12, 0.12);
}
.tt-offers-count--bco {
    color: #1d4ed8;
    background: rgba(29, 78, 216, 0.12);
}
.tt-offers-count--docs {
    color: #5b21b6;
    background: rgba(91, 33, 182, 0.1);
}
.tt-offers-count--accepted {
    color: #15803d;
    background: rgba(21, 128, 61, 0.12);
}
.tt-offers-count--awaiting {
    color: #a16207;
    background: rgba(234, 179, 8, 0.18);
}
.tt-offers-count--rejected {
    color: #b91c1c;
    background: rgba(185, 28, 28, 0.12);
}

.tt-offers-summary {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 16px 18px;
    border: 1px solid var(--tt-border, #e6e8f2);
    border-radius: 12px;
    background: var(--tt-card, #fff);
}
.tt-offers-summary-head {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-offers-summary-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #0f172a;
}
.tt-offers-summary-sub {
    margin: 0;
    font-size: 12px;
    color: #475569;
}
.tt-offers-summary-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px 12px;
    width: 100%;
}
.tt-offers-summary-metric {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--tt-border, #e2e8f0);
    background: #f8fafc;
}
.tt-offers-summary-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-text-faint, #8b90a5);
}
.tt-offers-summary-value {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--tt-text);
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
.tt-offers-summary-value--net { color: #1b7a3d; }
.tt-offers-summary-accept {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    flex: 0 1 260px;
    text-align: right;
}
.tt-offers-accept-btn {
    white-space: nowrap;
}
.tt-offers-summary-accept-hint {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--tt-text-dim);
    max-width: 260px;
}

.tt-offers-board {
    border: 1px solid var(--tt-border, #dbe3f0);
    border-radius: 12px;
    background: color-mix(in srgb, var(--tt-bg-2, #eef0f8) 55%, #fff);
    overflow: hidden;
}
.tt-offers-board-head {
    display: grid;
    grid-template-columns: minmax(180px, 1.6fr) minmax(110px, 0.9fr) minmax(90px, 0.7fr) minmax(110px, 0.9fr) minmax(120px, 0.9fr) minmax(220px, 1.1fr);
    gap: 10px;
    padding: 10px 14px 10px 44px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-text-faint, #6b7088);
    background: color-mix(in srgb, #c7d7ef 35%, var(--tt-card, #fff));
    border-bottom: 1px solid var(--tt-border, #dbe3f0);
}
.tt-offers-sort {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
    text-align: left;
}
.tt-offers-sort:hover,
.tt-offers-sort.is-active {
    color: var(--tt-accent, #1d4ed8);
}
.tt-offers-sort .tt-sr-sort-icon {
    opacity: 0.55;
    font-size: 0.85em;
}
.tt-offers-sort.is-active .tt-sr-sort-icon {
    opacity: 1;
}
.tt-offers-board-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    background: #fff;
}
.tt-offers-board .tt-sr-empty {
    background: #fff;
    margin: 0;
    padding: 18px 14px;
    border-radius: 8px;
}
.tt-offers-board-body > .tt-offer-group.is-row-zebra .tt-offer-group-row,
.tt-offers-board-body > .tt-offer-group.is-row-zebra .tt-offer-group-timeline {
    background: transparent;
}
.tt-offer-group {
    border: 1px solid var(--tt-border, #e6e8f2);
    border-radius: 10px;
    background: var(--tt-card, #fff);
    overflow: hidden;
}
.tt-offer-group.is-dead-locked,
.tt-offer-nego-card.is-locked {
    background-color: #f8fafc;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(15, 23, 42, 0.07),
        rgba(15, 23, 42, 0.07) 10px,
        rgba(255, 255, 255, 0.72) 10px,
        rgba(255, 255, 255, 0.72) 20px
    );
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
}
.tt-offer-nego-card.is-locked.is-row-zebra {
    background-color: #e2e8f0;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(15, 23, 42, 0.08),
        rgba(15, 23, 42, 0.08) 10px,
        rgba(232, 238, 248, 0.85) 10px,
        rgba(232, 238, 248, 0.85) 20px
    );
}
/* Expanded panels use opaque fills — clear them so locked zebra shows through. */
.tt-offer-nego-card.is-locked .tt-offer-nego-side,
.tt-offer-nego-card.is-locked .tt-offer-nego-center,
.tt-offer-nego-card.is-locked .tt-offer-nego-action-panel,
.tt-offer-group.is-dead-locked .tt-offer-group-timeline {
    background: transparent;
}
.tt-offer-nego-card.is-locked .tt-offer-nego-action-panel.is-required {
    background: color-mix(in srgb, #fee2e2 28%, transparent);
}
/* Locked threads keep Offer/BCO/SCO tile colors (lock uses dead_rejected in DB). */
.tt-offer-nego-card.is-locked .tt-offer-nego-tile--buyer,
.tt-offer-group.is-dead-locked .tt-offer-nego-tile--buyer {
    background: var(--tt-offer-buyer-bg, #f5f3ff);
    border-color: var(--tt-offer-buyer-border, #ddd6fe);
    color: var(--tt-offer-buyer-ink, #6d28d9);
}
.tt-offer-nego-card.is-locked .tt-offer-nego-tile--seller,
.tt-offer-group.is-dead-locked .tt-offer-nego-tile--seller {
    background: var(--tt-offer-seller-bg, #fff7ed);
    border-color: var(--tt-offer-seller-border, #fed7aa);
    color: var(--tt-offer-seller-ink, #c2410c);
}
.tt-offer-nego-card.is-locked .tt-offer-nego-tile.is-current,
.tt-offer-group.is-dead-locked .tt-offer-nego-tile.is-current {
    border-color: currentColor;
}
.tt-offer-nego-action-omit-note {
    margin: 4px 0 0;
    font-size: 12px;
    font-weight: 600;
    color: #9a3412;
}
.tt-offer-group-row {
    display: grid;
    grid-template-columns: 28px minmax(160px, 1.6fr) minmax(110px, 0.9fr) minmax(90px, 0.7fr) minmax(110px, 0.9fr) minmax(120px, 0.9fr) minmax(220px, 1.1fr);
    gap: 10px;
    align-items: center;
    padding: 12px 14px 12px 10px;
    cursor: pointer;
}
.tt-offer-group-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 0;
    background: transparent;
    color: var(--tt-text-dim);
    font-size: 0.85rem;
    cursor: pointer;
    border-radius: 6px;
}
.tt-offer-group-toggle:hover { background: var(--tt-bg-2); }
.tt-offer-group.is-expanded .tt-offer-group-toggle { transform: rotate(0deg); }
.tt-offer-group:not(.is-expanded) .tt-offer-group-toggle { transform: rotate(-90deg); }
.tt-offer-group-buyer {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}
.tt-offer-group-index {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 800;
    color: #fff;
}
.tt-offer-group-index--0 { background: #2563eb; }
.tt-offer-group-index--1 { background: #ea580c; }
.tt-offer-group-index--2 { background: #7c3aed; }
.tt-offer-group-index--3 { background: #0d9488; }
.tt-offer-group-index--4 { background: #db2777; }
.tt-offer-group-buyer-text { min-width: 0; }
.tt-offer-group-name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    color: var(--tt-text);
    line-height: 1.25;
}
.tt-offer-group-role {
    margin: 2px 0 0;
    font-size: 0.78rem;
    color: var(--tt-text-dim);
}
.tt-offer-group-net {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-variant-numeric: tabular-nums;
}
.tt-offer-group-net-value {
    font-size: 1.05rem;
    font-weight: 800;
    color: #1b7a3d;
}
.tt-offer-group-net-price {
    font-size: 0.78rem;
    color: var(--tt-text);
}
.tt-offer-group-docs {
    font-size: 0.86rem;
    color: var(--tt-text);
}
.tt-offer-group-docs-latest {
    display: block;
    margin-top: 2px;
    font-size: 0.75rem;
    color: var(--tt-text-dim);
}
.tt-offer-group-updated {
    font-size: 0.84rem;
    color: var(--tt-text);
}
.tt-offer-group-status {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}
.tt-offer-status-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.tt-offer-status-pill.is-awaiting-buyer,
.tt-offer-status-pill.is-awaiting {
    color: var(--tt-offer-await-ink, #a16207);
    background: var(--tt-offer-await-bg, #fffbeb);
}
.tt-offer-status-pill.is-awaiting-seller {
    color: var(--tt-offer-seller-ink, #c2410c);
    background: var(--tt-offer-seller-bg, #fff7ed);
}
.tt-offer-status-pill.is-countered {
    color: var(--tt-offer-countered-ink, #475569);
    background: var(--tt-offer-countered-bg, #f8fafc);
}
.tt-offer-status-pill.is-new,
.tt-offer-status-pill.is-under-review {
    color: var(--tt-offer-buyer-ink, #6d28d9);
    background: var(--tt-offer-buyer-bg, #f5f3ff);
}
.tt-offer-status-pill.is-accepted {
    color: var(--tt-offer-accepted-ink, #15803d);
    background: var(--tt-offer-accepted-bg, #f0fdf4);
}
.tt-offer-status-pill.is-rejected,
.tt-offer-status-pill.is-expired {
    color: var(--tt-offer-rejected-ink, #b91c1c);
    background: var(--tt-offer-rejected-bg, #fef2f2);
}
.tt-offer-status-detail {
    font-size: 0.75rem;
    color: var(--tt-text-dim);
    line-height: 1.3;
}
.tt-offer-group-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.tt-offer-compare-eye {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border: 1px solid #1e3a8a;
    border-radius: 999px;
    background: #fff;
    color: #1e3a8a;
    cursor: pointer;
    flex: 0 0 auto;
}
.tt-offer-compare-eye svg {
    width: 18px;
    height: 18px;
}
.tt-offer-compare-eye.is-hidden {
    border-color: #334155;
    background: #fff;
    color: #334155;
}
.tt-offer-compare-eye:hover,
.tt-offer-compare-eye:focus-visible {
    background: #eff6ff;
    color: #1e3a8a;
}
.tt-offer-group.is-comparison-hidden {
    border-color: #b91c1c;
    background-color: #fee2e2 !important;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(185, 28, 28, 0.34) 0 10px,
        rgba(254, 226, 226, 0.96) 10px 20px
    ) !important;
}
.tt-offer-group.is-comparison-hidden .tt-offer-group-row,
.tt-offer-group.is-comparison-hidden .tt-offer-group-timeline {
    background: transparent !important;
    color: #7f1d1d;
}
.tt-offer-group.is-comparison-hidden .tt-offer-group-name,
.tt-offer-group.is-comparison-hidden .tt-offer-group-net-value,
.tt-offer-group.is-comparison-hidden .tt-offer-group-role,
.tt-offer-group.is-comparison-hidden .tt-offer-group-net-price,
.tt-offer-group.is-comparison-hidden .tt-offer-status-detail,
.tt-offer-group.is-comparison-hidden .tt-offer-group-docs,
.tt-offer-group.is-comparison-hidden .tt-offer-group-updated {
    color: #7f1d1d;
}
.tt-offer-timeline-report {
    width: 76px;
    text-align: center;
}
.tt-offer-report-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    cursor: pointer;
}
.tt-offer-report-check input {
    width: 22px;
    height: 22px;
    margin: 0;
    accent-color: #1d4ed8;
    cursor: pointer;
}
#ttOfferCreateReport {
    background: #e2e8f0;
    border-color: #94a3b8;
    color: #475569;
}
#ttOfferCreateReport:disabled {
    opacity: 1;
    background: #e2e8f0;
    border-color: #94a3b8;
    color: #475569;
    cursor: not-allowed;
}
#ttOfferCreateReport.is-ready {
    background: #1d4ed8;
    border-color: #1e3a8a;
    color: #fff;
    box-shadow: 0 2px 8px rgba(30, 64, 175, 0.28);
}
#ttOfferCreateReport.is-ready:hover,
#ttOfferCreateReport.is-ready:focus-visible {
    background: #1e3a8a;
    color: #fff;
}
.tt-offer-exclude-reason {
    margin: 8px 0 0;
    padding: 8px 10px;
    border: 1px solid #c2410c;
    border-radius: 8px;
    background: #fff7ed;
    color: #7c2d12;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.35;
}
.tt-offer-exclude-lead {
    margin: 0 0 12px;
    color: #0f172a;
}
.tt-offer-exclude-label {
    display: block;
    margin: 0 0 6px;
    color: #0f172a;
    font-weight: 800;
}
#ttOfferExcludeReason {
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    color: #0f172a;
    border: 1px solid #64748b;
}
.tt-offer-group-actions .tt-btn {
    flex: 0 0 auto;
    white-space: nowrap;
}
.tt-offer-accept-latest-intro {
    margin: 0 0 14px;
    color: var(--tt-text-dim, #5a6072);
    font-size: 0.92rem;
    line-height: 1.45;
}
.tt-offer-accept-latest-details {
    margin: 0;
    display: grid;
    gap: 8px;
}
.tt-offer-accept-latest-row {
    display: grid;
    grid-template-columns: minmax(120px, 38%) 1fr;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--tt-bg-2, #eef0f8) 55%, #fff);
}
.tt-offer-accept-latest-row dt {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--tt-text-dim, #5a6072);
}
.tt-offer-accept-latest-row dd {
    margin: 0;
    font-weight: 600;
    color: var(--tt-text, #1c2233);
}
.tt-offer-group-timeline {
    display: none;
    border-top: none;
    background: #fff;
    padding: 12px 14px 14px 42px;
}
[data-theme="dark"] .tt-offer-group-timeline {
    background: var(--tt-bg-1, #121a24);
}
.tt-offer-group.is-expanded .tt-offer-group-row {
    border-bottom: 1px solid var(--tt-border, #e6e8f2);
}
.tt-offer-group.is-expanded .tt-offer-group-timeline { display: block; }
.tt-offer-timeline-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.86rem;
    color: var(--tt-text, #0f2744);
    background: #fff;
    border: 1px solid var(--tt-border, #d7e0ec);
    border-radius: 10px;
    overflow: hidden;
}
[data-theme="dark"] .tt-offer-timeline-table {
    background: var(--tt-bg-1, #121a24);
    border-color: rgba(148, 163, 184, 0.35);
    color: var(--tt-text, #e8eef6);
}
.tt-offer-timeline-table th {
    text-align: left;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tt-text, #1e3a5f);
    padding: 10px 10px;
    background: #f8fafc;
    border-bottom: 1px solid var(--tt-border, #d7e0ec);
    border-right: 1px solid color-mix(in srgb, var(--tt-border, #d7e0ec) 85%, transparent);
    white-space: nowrap;
}
.tt-offer-timeline-table th:last-child {
    border-right: none;
}
[data-theme="dark"] .tt-offer-timeline-table th {
    background: #1a2332;
    color: #e2e8f0;
    border-bottom-color: rgba(148, 163, 184, 0.35);
    border-right-color: rgba(148, 163, 184, 0.28);
}
.tt-offer-timeline-table thead {
    border-bottom: none;
}
.tt-offer-timeline-table td {
    padding: 10px;
    vertical-align: middle;
    border-bottom: 1px solid color-mix(in srgb, var(--tt-border, #d7e0ec) 75%, transparent);
    border-right: 1px solid color-mix(in srgb, var(--tt-border, #d7e0ec) 70%, transparent);
    background: #fff;
}
.tt-offer-timeline-table td:last-child {
    border-right: none;
}
.tt-offer-timeline-table tbody tr:last-child td {
    border-bottom: none;
}
.tt-offer-timeline-table tbody tr:not(:last-child) {
    border-bottom: none;
}
[data-theme="dark"] .tt-offer-timeline-table td {
    background: var(--tt-bg-1, #121a24);
    border-bottom-color: rgba(148, 163, 184, 0.28);
    border-right-color: rgba(148, 163, 184, 0.22);
}
.tt-offer-timeline-type,
.tt-offer-timeline-price,
.tt-offer-timeline-net {
    font-weight: 800;
    color: var(--tt-text, #0f2744);
}
.tt-offer-timeline-price strong,
.tt-offer-timeline-net strong,
.tt-offer-timeline-type strong {
    font-weight: 800;
    color: inherit;
}
.tt-offer-timeline-net {
    color: #166534;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
[data-theme="dark"] .tt-offer-timeline-type,
[data-theme="dark"] .tt-offer-timeline-price {
    color: #e8eef6;
}
[data-theme="dark"] .tt-offer-timeline-net {
    color: #86efac;
}
.tt-offer-party-label {
    font-weight: 750;
    color: var(--tt-text, #0f2744);
}
[data-theme="dark"] .tt-offer-party-label {
    color: #e8eef6;
}
.tt-offer-timeline-status .tt-offer-status {
    font-weight: 750;
}
.tt-offer-timeline-when {
    font-weight: 600;
    color: var(--tt-text, #334155);
}
[data-theme="dark"] .tt-offer-timeline-when {
    color: #cbd5e1;
}
.tt-offer-timeline-num {
    width: 36px;
    position: relative;
    text-align: center;
    font-weight: 800;
    color: var(--tt-text-dim);
    overflow: hidden;
}
.tt-offer-timeline-num::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background: color-mix(in srgb, var(--tt-border) 80%, transparent);
    transform: translateX(-50%);
    z-index: 0;
    pointer-events: none;
}
.tt-offer-timeline-table tbody tr:first-child .tt-offer-timeline-num::before { top: 50%; }
.tt-offer-timeline-table tbody tr:last-child .tt-offer-timeline-num::before { bottom: 50%; }
.tt-offer-timeline-dot {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: var(--tt-offer-buyer-accent, #c4b5fd);
    box-shadow: 0 0 0 3px #fff;
}
[data-theme="dark"] .tt-offer-timeline-dot {
    box-shadow: 0 0 0 3px var(--tt-bg-1, #121a24);
}
.tt-offer-timeline-dot--seller { background: var(--tt-offer-seller-accent, #fdba74); }
.tt-offer-timeline-dot--accepted { background: var(--tt-offer-accepted-accent, #86efac); }
.tt-offer-timeline-dot--awaiting { background: var(--tt-offer-await-accent, #fcd34d); }
.tt-offer-timeline-actions-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: flex-end;
    align-items: center;
}

/* Negotiation Timeline — mockup card layout */
.tt-offer-negotiation {
    margin-top: 12px;
    border: 1px solid var(--tt-border, #dbe3f0);
    border-radius: 14px;
    background: #eef2f7;
    overflow: hidden;
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.tt-offer-nego-head {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
    padding: 12px 16px;
    background:
        radial-gradient(circle at 82% -35%, rgba(66, 224, 255, 0.72) 0%, rgba(66, 224, 255, 0) 36%),
        linear-gradient(105deg, #143b91 0%, #0867d6 55%, #0878e9 100%);
    color: #fff;
    border-bottom: 1px solid rgba(0, 31, 95, 0.55);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.52),
        inset 0 -7px 18px rgba(0, 29, 91, 0.2),
        0 5px 14px rgba(14, 77, 169, 0.25);
}
.tt-offer-nego-head::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 48% 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255,255,255,0.28), rgba(255,255,255,0));
}
.tt-offer-nego-head::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 3px;
    right: 6px;
    width: 170px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(137, 245, 255, 0.92), transparent);
    filter: blur(0.3px);
}
.tt-offer-nego-head-copy {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
}
.tt-offer-negotiation-title {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    grid-column: 1 / -1;
    font-size: 1.5rem;
    font-weight: 750;
    line-height: 1.05;
    letter-spacing: -0.025em;
    color: #fff;
    text-shadow: 0 2px 3px rgba(0, 28, 85, 0.5);
}
.tt-offer-nego-head-icon {
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    padding: 5px;
    border: 1px solid rgba(255,255,255,0.82);
    border-radius: 8px;
    filter: drop-shadow(0 2px 2px rgba(0, 25, 78, 0.42));
}
.tt-offer-nego-tagline {
    grid-column: 2;
    margin: 2px 0 0;
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: rgba(255,255,255,0.92);
    text-shadow: 0 1px 2px rgba(0, 25, 78, 0.4);
}
.tt-offer-nego-head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.tt-offer-nego-head #ttOfferNegoAdd {
    min-height: 38px;
    padding: 8px 16px;
    border: 1px solid rgba(96, 220, 255, 0.9);
    border-radius: 9px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 45%),
        linear-gradient(180deg, #168cf7 0%, #0867df 100%);
    color: #fff;
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.48),
        0 0 0 2px rgba(66, 204, 255, 0.18),
        0 4px 10px rgba(0, 36, 108, 0.32);
    text-shadow: 0 1px 2px rgba(0, 25, 80, 0.45);
}
.tt-offer-nego-sort-select {
    min-width: 200px;
    max-width: min(100%, 280px);
    color: #0f172a !important;
    background: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 9px !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,1),
        0 4px 10px rgba(0, 30, 90, 0.28);
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 0.82rem;
    font-weight: 650;
    /* Beat site-wide underline field style on the blue header */
    border-top: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-left: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.85) !important;
    background-image: none !important;
}
.tt-offer-nego-sort-select:hover,
.tt-offer-nego-sort-select:focus {
    color: #0f172a !important;
    background: #ffffff !important;
    border-color: #fff !important;
    outline: 2px solid rgba(255, 255, 255, 0.95);
    outline-offset: 1px;
}
body.tt-form-fields--underline .tt-offer-nego-head .tt-offer-nego-sort-select,
body.tt-form-fields--underline .tt-offer-nego-head select.tt-input.tt-offer-nego-sort-select {
    color: #0f172a !important;
    background: #ffffff !important;
    border: 1px solid #fff !important;
    border-radius: 8px !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.18);
}
.tt-offer-negotiation-track {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
}
.tt-offer-nego-card {
    background: #fff;
    border: 1px solid var(--tt-border, #dbe3f0);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    overflow: visible;
}
.tt-offer-nego-card.is-assistant-focus,
.tt-offer-group.is-assistant-focus {
    outline: 3px solid #2563eb;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.18);
}
.tt-offer-nego-card.is-collapsed .tt-offer-nego-expand {
    cursor: pointer;
}
.tt-offer-nego-card.is-expanded .tt-offer-nego-side,
.tt-offer-nego-card.is-expanded .tt-offer-nego-center {
    cursor: pointer;
}
.tt-offer-nego-card.is-expanded .tt-offer-nego-action-panel,
.tt-offer-nego-card.is-expanded .tt-offer-nego-action-panel * {
    cursor: default;
}
.tt-offer-nego-card.is-expanded .tt-offer-nego-action-panel button {
    cursor: pointer;
}
.tt-offer-nego-card.is-expanded .tt-offer-nego-side a,
.tt-offer-nego-card.is-expanded .tt-offer-nego-center button,
.tt-offer-nego-card.is-expanded .tt-offer-nego-doc-file {
    cursor: pointer;
}
.tt-offer-nego-card-grid {
    display: grid;
    grid-template-columns: minmax(0, 25fr) minmax(0, 45fr) minmax(0, 30fr);
    gap: 14px;
    align-items: start;
    padding: 14px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.65) 0%, rgba(248, 250, 252, 0.9) 100%),
        #eef4fb;
}
.tt-offer-nego-side { grid-column: 1; grid-row: 1; }
.tt-offer-nego-center { grid-column: 2; grid-row: 1; }
.tt-offer-nego-right { grid-column: 3; grid-row: 1 / span 2; }
.tt-offer-nego-keyterms-wrap {
    grid-column: 1 / 3;
    grid-row: 2;
    min-width: 0;
    align-self: start;
}
.tt-offer-nego-keyterms {
    margin-top: 2px;
    padding: 12px 14px;
    border-radius: 14px;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.78) 100%),
        #fff;
    border: 1px solid #d7e3f4;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        0 6px 16px rgba(30, 64, 120, 0.06);
}
.tt-offer-nego-keyterms-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 14px;
    margin-bottom: 10px;
}
.tt-offer-nego-keyterms-head strong {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #1e3a5f;
}
.tt-offer-keyterms-summarize {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 10px 18px;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.28);
}
.tt-offer-nego-keyterms-head span {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}
.tt-offer-nego-keyterms-empty {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.45;
    color: #64748b;
}
.tt-offer-nego-keyterms-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-offer-keyterm {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 750;
    line-height: 1.25;
    letter-spacing: 0.01em;
    border: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.tt-offer-keyterm--positive {
    color: #14532d;
    background: linear-gradient(180deg, #bbf7d0 0%, #86efac 100%);
    border-color: #16a34a;
}
.tt-offer-keyterm--negative {
    color: #7f1d1d;
    background: linear-gradient(180deg, #fecaca 0%, #fca5a5 100%);
    border-color: #dc2626;
}
.tt-offer-keyterm--neutral {
    color: #1e3a5f;
    background: linear-gradient(180deg, #e2e8f0 0%, #cbd5e1 100%);
    border-color: #64748b;
}
.tt-offer-metrics-summary-modal .tt-modal-body {
    max-height: min(72vh, 720px);
    overflow: auto;
}
.tt-offer-metrics-summary-buyer {
    margin: 0 0 14px;
    font-size: 0.95rem;
    color: var(--tt-text, #0f2744);
}
.tt-offer-metrics-summary-h {
    margin: 16px 0 10px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #1e3a5f;
}
.tt-offer-metrics-summary-empty {
    margin: 0;
    color: #64748b;
}
.tt-offer-metrics-summary-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-offer-metrics-summary-pills.is-round {
    margin-top: 8px;
}
.tt-offer-metrics-summary-rounds {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-offer-metrics-summary-round {
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #d7e3f4;
    background: #fff;
}
.tt-offer-metrics-summary-round--buyer {
    border-color: #c4b5fd;
    background: linear-gradient(180deg, #faf5ff 0%, #fff 100%);
}
.tt-offer-metrics-summary-round--seller {
    border-color: #fdba74;
    background: linear-gradient(180deg, #fff7ed 0%, #fff 100%);
}
.tt-offer-metrics-summary-round header {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.tt-offer-metrics-summary-round-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 0.8rem;
    color: #fff;
    background: #6366f1;
    flex: 0 0 auto;
}
.tt-offer-metrics-summary-round--seller .tt-offer-metrics-summary-round-num {
    background: #ea580c;
}
.tt-offer-metrics-summary-round header strong {
    display: block;
    font-size: 0.95rem;
    color: #0f2744;
}
.tt-offer-metrics-summary-round-when {
    display: block;
    margin-top: 2px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
}
.tt-offer-metrics-summary-round-amt {
    margin-left: auto;
    text-align: right;
    font-weight: 800;
    font-size: 1.05rem;
    color: #0f2744;
    font-variant-numeric: tabular-nums;
}
.tt-offer-metrics-summary-round-amt small {
    display: block;
    margin-top: 2px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #166534;
}
.tt-offer-metrics-summary-round-line {
    margin: 8px 0 0;
    font-size: 0.86rem;
    font-weight: 650;
    color: #334155;
}
[data-theme="dark"] .tt-offer-metrics-summary-round {
    background: #1a2332;
    border-color: rgba(148, 163, 184, 0.35);
}
[data-theme="dark"] .tt-offer-metrics-summary-h,
[data-theme="dark"] .tt-offer-metrics-summary-buyer,
[data-theme="dark"] .tt-offer-metrics-summary-round header strong,
[data-theme="dark"] .tt-offer-metrics-summary-round-amt {
    color: #e8eef6;
}
[data-theme="dark"] .tt-offer-metrics-summary-round-line,
[data-theme="dark"] .tt-offer-metrics-summary-round-when {
    color: #94a3b8;
}
[data-theme="dark"] .tt-offer-nego-keyterms {
    background: #1a2332;
    border-color: rgba(96, 165, 250, 0.35);
}
[data-theme="dark"] .tt-offer-nego-keyterms-head strong {
    color: #eef6ff;
}
[data-theme="dark"] .tt-offer-nego-keyterms-head span,
[data-theme="dark"] .tt-offer-nego-keyterms-empty {
    color: #9fb8d2;
}
[data-theme="dark"] .tt-offer-keyterm--positive {
    color: #ecfdf5;
    background: linear-gradient(180deg, #166534 0%, #14532d 100%);
    border-color: #4ade80;
}
[data-theme="dark"] .tt-offer-keyterm--negative {
    color: #fef2f2;
    background: linear-gradient(180deg, #991b1b 0%, #7f1d1d 100%);
    border-color: #f87171;
}
[data-theme="dark"] .tt-offer-keyterm--neutral {
    color: #e2e8f0;
    background: linear-gradient(180deg, #334155 0%, #1e293b 100%);
    border-color: #94a3b8;
}
@media (max-width: 980px) {
    .tt-offer-nego-keyterms-wrap {
        grid-column: 1 / -1;
    }
}
.tt-offer-nego-side {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
    border-right: 0;
    background: transparent;
}
.tt-offer-nego-party-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 12px;
    border-radius: 14px;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.72) 100%),
        #fff;
    border: 1px solid #d7e3f4;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        0 6px 16px rgba(30, 64, 120, 0.06);
}
.tt-offer-nego-party-icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.08) 45%, transparent 72%),
        linear-gradient(180deg, #60a5fa 0%, #2563eb 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 4px 10px rgba(37, 99, 235, 0.28);
}
.tt-offer-nego-party-card--violet .tt-offer-nego-party-icon {
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.08) 45%, transparent 72%),
        linear-gradient(180deg, #a78bfa 0%, #7c3aed 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 4px 10px rgba(124, 58, 237, 0.28);
}
.tt-offer-nego-party-card--rose .tt-offer-nego-party-icon {
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.08) 45%, transparent 72%),
        linear-gradient(180deg, #fb7185 0%, #e11d48 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 4px 10px rgba(225, 29, 72, 0.28);
}
.tt-offer-nego-party-icon svg {
    width: 22px;
    height: 22px;
}
.tt-offer-nego-party-body {
    min-width: 0;
    flex: 1 1 auto;
}
.tt-offer-nego-party-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}
.tt-offer-nego-side-block {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.tt-offer-nego-side-block-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}
.tt-offer-nego-side-label {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #2563eb;
}
.tt-offer-nego-side-value {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
    color: #0f2744;
    word-break: break-word;
}
.tt-offer-nego-buyer-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    font-weight: 700;
}
.tt-offer-nego-buyer-name {
    display: block;
    line-height: 1.3;
    color: var(--tt-text);
}
.tt-offer-nego-agent {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
}
.tt-offer-nego-agent-copy {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-offer-nego-agent + .tt-offer-nego-agent {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid color-mix(in srgb, var(--tt-border, #dbe3f0) 80%, transparent);
}
.tt-offer-nego-buyer-actor {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.tt-offer-actor-avatar,
.tt-offer-nego-agent-avatar,
.tt-offer-nego-buyer-avatar,
.tt-offer-nego-action-avatar {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.08) 42%, transparent 70%),
        #64748b;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        0 1px 2px rgba(15, 23, 42, 0.18);
}
.tt-offer-nego-action-avatar {
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.1) 40%, transparent 72%),
        #1d4ed8;
}
.tt-offer-actor-avatar.has-photo,
.tt-offer-nego-agent-avatar.has-photo,
.tt-offer-nego-buyer-avatar.has-photo,
.tt-offer-nego-action-avatar.has-photo {
    background: #e2e8f0;
    padding: 0;
}
.tt-offer-actor-avatar img,
.tt-offer-nego-agent-avatar img,
.tt-offer-nego-buyer-avatar img,
.tt-offer-nego-action-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.tt-offer-person-silhouette {
    width: 18px;
    height: 18px;
    opacity: 0.95;
}
.tt-offer-nego-side-meta {
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--tt-text-dim);
    word-break: break-word;
}
.tt-offer-nego-side-meta a,
.tt-offer-nego-side-meta .tt-offer-agent-email-btn,
.tt-offer-party-agent-email {
    color: #1d4ed8;
    text-decoration: none;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    cursor: pointer;
    text-align: left;
}
.tt-offer-nego-side-meta .tt-offer-agent-email-btn:hover,
.tt-offer-party-agent-email:hover {
    text-decoration: underline;
}
.tt-offer-nego-side-rule {
    border: 0;
    border-top: 1px solid var(--tt-border, #e6e8f2);
    margin: 12px 0;
}
.tt-offer-nego-collapse {
    border: 0;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1;
    padding: 2px 4px;
}
.tt-offer-nego-metrics {
    margin: 0;
    display: grid;
    gap: 8px;
}
.tt-offer-nego-metrics > div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 0.78rem;
}
.tt-offer-nego-metrics dt {
    margin: 0;
    color: var(--tt-text-dim);
}
.tt-offer-nego-metrics dd {
    margin: 0;
    font-weight: 700;
    color: var(--tt-text);
    text-align: right;
}
.tt-offer-nego-diff.is-up { color: #15803d; }
.tt-offer-nego-diff.is-down { color: #b91c1c; }
.tt-offer-nego-diff.is-flat { color: var(--tt-text-dim); }
.tt-offer-nego-center {
    padding: 12px 12px 14px;
    min-width: 0;
    border-radius: 14px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, #f8fbff 100%);
    border: 1px solid #d7e3f4;
    box-shadow: 0 6px 16px rgba(30, 64, 120, 0.05);
}
.tt-offer-nego-center-title {
    margin: 0 0 12px;
    text-align: center;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #1d4ed8;
}
.tt-offer-nego-rail {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0 !important;
    overflow: visible;
    padding: 2px;
    width: 100%;
}
.tt-offer-nego-rail > .tt-offer-nego-tile {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
}
.tt-offer-nego-rail > .tt-offer-nego-arrow {
    display: flex !important;
    width: 100% !important;
    flex: 0 0 auto !important;
    justify-content: center;
    padding: 2px 0 4px;
}
.tt-offer-nego-tile {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1.35fr) minmax(118px, 0.7fr) minmax(108px, auto);
    gap: 14px 16px;
    align-items: center;
    width: 100%;
    max-width: none;
    min-width: 0;
    flex: 0 0 auto;
    padding: 16px 16px 16px 14px;
    border-radius: 18px;
    border: 2px solid var(--tt-border);
    font-size: 0.9rem;
    line-height: 1.3;
    box-sizing: border-box;
    box-shadow:
        0 8px 20px rgba(15, 23, 42, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
}
.tt-offer-nego-tile-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 999px;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1;
    color: #fff !important;
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.12) 42%, transparent 70%),
        #7c3aed;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.55),
        0 4px 10px rgba(76, 29, 149, 0.35);
    flex: 0 0 auto;
}
.tt-offer-nego-tile--seller .tt-offer-nego-tile-num {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.12) 42%, transparent 70%),
        #ea580c;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.55),
        0 4px 10px rgba(194, 65, 12, 0.35);
}
.tt-offer-nego-tile--accepted .tt-offer-nego-tile-num {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.12) 42%, transparent 70%),
        #16a34a;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.55),
        0 4px 10px rgba(22, 163, 74, 0.35);
}
.tt-offer-nego-tile--rejected .tt-offer-nego-tile-num {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.12) 42%, transparent 70%),
        #dc2626;
}
.tt-offer-nego-tile-main {
    min-width: 0;
}
.tt-offer-nego-tile-meta {
    text-align: right;
    min-width: 0;
}
.tt-offer-nego-tile-status {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    padding-left: 14px;
    border-left: 1px solid color-mix(in srgb, currentColor 28%, transparent);
}
.tt-offer-nego-tile-verb {
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.2;
    color: inherit;
}
.tt-offer-nego-tile-date,
.tt-offer-nego-tile-time {
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.25;
    color: #0f2744;
    font-variant-numeric: tabular-nums;
}
.tt-offer-nego-tile-doc {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 100px;
    min-height: 78px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
    border-radius: 14px;
    color: inherit;
    cursor: pointer;
    flex: 0 0 auto;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.72) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 2px 6px rgba(15, 23, 42, 0.08);
}
.tt-offer-nego-tile-doc.is-empty {
    cursor: default;
    opacity: 0.92;
}
.tt-offer-nego-tile-doc:hover:not(.is-empty) {
    background:
        linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0.85) 100%);
}
.tt-offer-nego-tile-end {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: auto;
}
.tt-offer-nego-tile-edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
    border-radius: 12px;
    color: inherit;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.78) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 2px 6px rgba(15, 23, 42, 0.08);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
}
.tt-offer-nego-tile:hover .tt-offer-nego-tile-edit,
.tt-offer-nego-tile:focus-within .tt-offer-nego-tile-edit {
    opacity: 1;
    pointer-events: auto;
}
.tt-offer-nego-tile-edit:hover {
    background: #fff;
    transform: translateY(-1px);
}
.tt-offer-nego-tile-edit i,
.tt-offer-nego-tile-edit svg {
    width: 18px;
    height: 18px;
}
.tt-offer-nego-tile-doc-icon {
    display: inline-flex;
    color: inherit;
}
.tt-offer-nego-tile-doc-icon svg {
    width: 30px;
    height: 30px;
}
.tt-offer-nego-tile-doc-code {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.15;
    color: inherit;
}
.tt-offer-nego-tile--buyer {
    color: var(--tt-offer-buyer-ink, #6d28d9);
    border-color: var(--tt-offer-buyer-border, #ddd6fe);
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.78) 0%, rgba(255, 255, 255, 0.22) 38%, rgba(255, 255, 255, 0) 68%),
        linear-gradient(165deg, #faf8ff 0%, #f0ebff 45%, #e9e2ff 100%);
}
.tt-offer-nego-tile--seller {
    color: var(--tt-offer-seller-ink, #c2410c);
    border-color: var(--tt-offer-seller-border, #fed7aa);
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.78) 0%, rgba(255, 255, 255, 0.22) 38%, rgba(255, 255, 255, 0) 68%),
        linear-gradient(165deg, #fffaf5 0%, #fff1e4 45%, #ffe8d4 100%);
}
.tt-offer-nego-tile--accepted {
    color: #166534;
    border-color: #86efac;
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.18) 40%, transparent 70%),
        linear-gradient(165deg, #f0fdf6 0%, #dcfce7 55%, #bbf7d0 100%);
}
.tt-offer-nego-tile--rejected {
    color: #991b1b;
    border-color: #fecaca;
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.18) 40%, transparent 70%),
        linear-gradient(165deg, #fff5f5 0%, #fee2e2 55%, #fecaca 100%);
}
.tt-offer-nego-tile.is-current {
    /* Solid border on all sides — box-shadow was clipped by the rail's overflow-x. */
    border-width: 3px;
    border-style: solid;
    border-color: currentColor;
    box-shadow:
        0 4px 14px rgba(15, 23, 42, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.tt-offer-nego-tile.is-prior { opacity: 0.98; }
.tt-offer-nego-tile-title {
    display: block;
    margin: 0 0 4px;
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tt-offer-nego-tile-amount {
    font-size: 1.55rem;
    font-weight: 800;
    color: #0f2744;
    margin-bottom: 0;
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.tt-offer-nego-tile-when {
    font-size: 0.88rem;
    opacity: 0.95;
    font-variant-numeric: tabular-nums;
    margin-bottom: 4px;
}
.tt-offer-nego-tile-foot {
    margin-top: 0;
    padding-top: 0;
}
.tt-offer-nego-arrow {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1e3a8a;
    padding: 4px 0 6px;
}
.tt-offer-nego-arrow svg {
    width: 20px;
    height: 20px;
    padding: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
.tt-offer-nego-right {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}
.tt-offer-nego-action-panel {
    min-width: 0;
    padding: 14px 12px;
    border-left: 0;
    border-radius: 14px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, #f8fbff 100%);
    border: 1px solid #d7e3f4;
    box-shadow: 0 6px 16px rgba(30, 64, 120, 0.05);
    box-sizing: border-box;
    overflow: visible;
    position: relative;
    z-index: 4;
}
.tt-offer-nego-action-panel.is-required {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, #fff5f5 100%);
    border-color: #fecaca;
}
.tt-offer-nego-summary-card {
    padding: 14px 14px 12px;
    border-radius: 14px;
    background:
        linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%);
    border: 1px solid #c7d9ef;
    box-shadow: 0 6px 16px rgba(30, 64, 120, 0.06);
}
.tt-offer-nego-summary-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.tt-offer-nego-summary-title {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #1d4ed8;
}
.tt-offer-nego-summary-icon {
    display: inline-flex;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.5) 0%, transparent 55%),
        linear-gradient(180deg, #3b82f6 0%, #1e3a8a 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 3px 8px rgba(30, 64, 150, 0.35);
}
.tt-offer-nego-summary-icon svg {
    width: 16px;
    height: 16px;
}
.tt-offer-nego-summary-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.75rem;
}
.tt-offer-nego-summary-table th {
    text-align: left;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #2563eb;
    padding: 4px 6px 8px;
    border-bottom: 1px solid #dbe7f5;
}
.tt-offer-nego-summary-table th:nth-child(3),
.tt-offer-nego-summary-table th:nth-child(4) {
    text-align: right;
}
.tt-offer-nego-summary-table td {
    padding: 8px 6px;
    font-weight: 700;
    vertical-align: middle;
    border-bottom: 1px solid #eef3f9;
}
.tt-offer-nego-summary-when,
.tt-offer-nego-summary-amt {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.tt-offer-nego-summary-row--buyer td {
    color: #6d28d9;
    background: rgba(237, 233, 254, 0.45);
}
.tt-offer-nego-summary-row--seller td {
    color: #b91c1c;
    background: rgba(254, 226, 226, 0.4);
}
.tt-offer-nego-metrics--summary {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #dbe7f5;
}
.tt-offer-nego-metrics--summary > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 6px;
}
.tt-offer-nego-metrics--summary dt {
    color: #2563eb;
    font-weight: 700;
}
.tt-offer-nego-metrics--summary dd {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: #0f2744;
}
.tt-offer-nego-metrics--summary .tt-offer-nego-diff.is-up { color: #15803d; }
.tt-offer-nego-metrics--summary .tt-offer-nego-diff.is-down { color: #b91c1c; }
.tt-offer-nego-tile-meta .tt-offer-nego-tile-code-row {
    justify-content: flex-end;
}
.tt-offer-nego-tile-code {
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: left;
}
.tt-offer-nego-doc-file {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
    border-radius: 7px;
    color: inherit;
    cursor: pointer;
    flex: 0 0 auto;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.45) 48%, rgba(255, 255, 255, 0.22) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        0 1px 2px rgba(15, 23, 42, 0.08);
}
.tt-offer-nego-doc-file:hover {
    background:
        linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0.7) 50%, rgba(255, 255, 255, 0.4) 100%);
}
.tt-offer-nego-doc-file-icon {
    display: inline-flex;
    color: inherit;
}
.tt-offer-nego-doc-file-icon svg {
    width: 20px;
    height: 20px;
}
/*
 * Alternating row zebra (blue-gray / white).
 * Placed AFTER side/center/action opaque fills so the tint is not wiped.
 * nth-child keeps the rhythm when cards are Hidden (is-omitted) from Comparison.
 */
.tt-offer-negotiation-track > .tt-offer-nego-card:nth-child(odd),
.tt-offer-negotiation-track > .tt-offer-nego-card.is-row-zebra,
.tt-offers-board-body > .tt-offer-group:nth-child(odd),
.tt-offers-board-body > .tt-offer-group.is-row-zebra {
    background: #dbe6f4;
    border-color: #b6c7de;
}
.tt-offer-negotiation-track > .tt-offer-nego-card:nth-child(odd) .tt-offer-nego-side,
.tt-offer-negotiation-track > .tt-offer-nego-card:nth-child(odd) .tt-offer-nego-collapsed,
.tt-offer-negotiation-track > .tt-offer-nego-card.is-row-zebra .tt-offer-nego-side,
.tt-offer-negotiation-track > .tt-offer-nego-card.is-row-zebra .tt-offer-nego-collapsed,
.tt-offers-board-body > .tt-offer-group:nth-child(odd) .tt-offer-group-row,
.tt-offers-board-body > .tt-offer-group:nth-child(odd) .tt-offer-group-timeline,
.tt-offers-board-body > .tt-offer-group.is-row-zebra .tt-offer-group-row,
.tt-offers-board-body > .tt-offer-group.is-row-zebra .tt-offer-group-timeline {
    background: transparent;
}
/* Expanded Comparison timeline stays white (not zebra-tinted). */
.tt-offers-board-body > .tt-offer-group .tt-offer-group-timeline,
.tt-offers-board-body > .tt-offer-group:nth-child(odd) .tt-offer-group-timeline,
.tt-offers-board-body > .tt-offer-group.is-row-zebra .tt-offer-group-timeline {
    background: #fff;
}
[data-theme="dark"] .tt-offers-board-body > .tt-offer-group .tt-offer-group-timeline,
[data-theme="dark"] .tt-offers-board-body > .tt-offer-group:nth-child(odd) .tt-offer-group-timeline,
[data-theme="dark"] .tt-offers-board-body > .tt-offer-group.is-row-zebra .tt-offer-group-timeline {
    background: var(--tt-bg-1, #121a24);
}
.tt-offer-negotiation-track > .tt-offer-nego-card:nth-child(odd) .tt-offer-nego-card-grid,
.tt-offer-negotiation-track > .tt-offer-nego-card.is-row-zebra .tt-offer-nego-card-grid {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.45) 0%, rgba(219, 230, 244, 0.85) 100%),
        #dbe6f4;
}
.tt-offer-negotiation-track > .tt-offer-nego-card:nth-child(odd) .tt-offer-nego-action-panel:not(.is-required),
.tt-offer-negotiation-track > .tt-offer-nego-card.is-row-zebra .tt-offer-nego-action-panel:not(.is-required) {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, #eef4fb 100%);
}
.tt-offer-negotiation-track > .tt-offer-nego-card:nth-child(odd) .tt-offer-nego-summary-card,
.tt-offer-negotiation-track > .tt-offer-nego-card.is-row-zebra .tt-offer-nego-summary-card {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, #eef4fb 100%);
}
.tt-offer-negotiation-track > .tt-offer-nego-card:nth-child(odd) .tt-offer-nego-action-panel.is-required,
.tt-offer-negotiation-track > .tt-offer-nego-card.is-row-zebra .tt-offer-nego-action-panel.is-required {
    background: color-mix(in srgb, #fecaca 45%, #dbe6f4);
}
/*
 * Hidden from Comparison = same diagonal zebra watermark as Locked.
 * Must beat the solid row-tint fills above so stripes show through the whole card.
 */
.tt-offer-nego-card.is-excluded {
    opacity: 1;
    background-color: #e8eef6 !important;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(15, 23, 42, 0.1),
        rgba(15, 23, 42, 0.1) 10px,
        rgba(255, 255, 255, 0.82) 10px,
        rgba(255, 255, 255, 0.82) 20px
    ) !important;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.1);
    border-color: #94a3b8;
}
.tt-offer-nego-card.is-excluded .tt-offer-nego-side,
.tt-offer-nego-card.is-excluded .tt-offer-nego-center,
.tt-offer-nego-card.is-excluded .tt-offer-nego-right,
.tt-offer-nego-card.is-excluded .tt-offer-nego-collapsed,
.tt-offer-nego-card.is-excluded .tt-offer-nego-action-panel,
.tt-offer-nego-card.is-excluded .tt-offer-nego-summary-card,
.tt-offer-nego-card.is-excluded .tt-offer-nego-party-card {
    background: transparent !important;
}
.tt-offer-nego-card.is-excluded .tt-offer-nego-action-panel.is-required {
    background: color-mix(in srgb, #fecaca 32%, transparent) !important;
}
.tt-offer-nego-card.is-excluded .tt-offer-nego-tile--buyer {
    background: var(--tt-offer-buyer-bg, #f5f3ff);
    border-color: var(--tt-offer-buyer-border, #ddd6fe);
    color: var(--tt-offer-buyer-ink, #6d28d9);
}
.tt-offer-nego-card.is-excluded .tt-offer-nego-tile--seller {
    background: var(--tt-offer-seller-bg, #fff7ed);
    border-color: var(--tt-offer-seller-border, #fed7aa);
    color: var(--tt-offer-seller-ink, #c2410c);
}
.tt-offer-nego-card.is-excluded .tt-offer-nego-side,
.tt-offer-nego-card.is-excluded .tt-offer-nego-center,
.tt-offer-nego-card.is-excluded .tt-offer-nego-keyterms-wrap,
.tt-offer-nego-card.is-excluded .tt-offer-nego-summary-card,
.tt-offer-nego-card.is-excluded .tt-offer-nego-collapsed {
    filter: grayscale(1);
    opacity: 0.72;
}
.tt-offer-nego-card.is-locked:nth-child(odd),
.tt-offer-nego-card.is-locked.is-row-zebra {
    background-color: #cfdcea;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(15, 23, 42, 0.08),
        rgba(15, 23, 42, 0.08) 10px,
        rgba(219, 230, 244, 0.88) 10px,
        rgba(219, 230, 244, 0.88) 20px
    );
}
.tt-offer-nego-card.is-locked:nth-child(odd) .tt-offer-nego-side,
.tt-offer-nego-card.is-locked:nth-child(odd) .tt-offer-nego-center,
.tt-offer-nego-card.is-locked:nth-child(odd) .tt-offer-nego-action-panel,
.tt-offer-nego-card.is-locked.is-row-zebra .tt-offer-nego-side,
.tt-offer-nego-card.is-locked.is-row-zebra .tt-offer-nego-center,
.tt-offer-nego-card.is-locked.is-row-zebra .tt-offer-nego-action-panel {
    background: transparent;
}
/* Keep the locked zebra watermark visible behind all expanded columns. */
.tt-offer-negotiation-track > .tt-offer-nego-card.is-locked.is-expanded .tt-offer-nego-card-grid {
    background-color: #f8fafc !important;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(15, 23, 42, 0.07),
        rgba(15, 23, 42, 0.07) 10px,
        rgba(255, 255, 255, 0.72) 10px,
        rgba(255, 255, 255, 0.72) 20px
    ) !important;
}
.tt-offer-negotiation-track > .tt-offer-nego-card.is-locked.is-expanded.is-row-zebra .tt-offer-nego-card-grid {
    background-color: #e2e8f0 !important;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(15, 23, 42, 0.08),
        rgba(15, 23, 42, 0.08) 10px,
        rgba(232, 238, 248, 0.85) 10px,
        rgba(232, 238, 248, 0.85) 20px
    ) !important;
}
.tt-offer-nego-action-head {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}
.tt-offer-nego-action-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.tt-offer-nego-status-icon {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background:
        linear-gradient(155deg, rgba(255,255,255,0.56) 0%, rgba(255,255,255,0.08) 48%, transparent 72%),
        linear-gradient(180deg, #268cf6 0%, #0757d7 100%);
    border: 1px solid rgba(255,255,255,0.82);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.65),
        0 4px 10px rgba(10, 83, 205, 0.32);
}
.tt-offer-nego-status-icon svg {
    width: 21px;
    height: 21px;
    stroke-width: 2.4;
}
.tt-offer-nego-action-avatar {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.1) 40%, transparent 72%),
        #1d4ed8;
    color: #fff;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        0 1px 2px rgba(15, 23, 42, 0.18);
}
/* Indent body so first letter of Last Action lines up with icon center */
.tt-offer-nego-action-body {
    margin: 0;
    padding-left: 0;
    min-width: 0;
}
.tt-offer-nego-action-panel:has(.tt-offer-nego-action-avatar) .tt-offer-nego-action-body {
    padding-left: 18px; /* half of 36px avatar when photo present */
}
.tt-offer-nego-action-title {
    display: block;
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.015em;
    color: #d92332;
}
.tt-offer-nego-action-extra {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    margin-top: 6px;
}
.tt-offer-nego-action-extra:not(:has(.tt-offer-delete-last-round)) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tt-offer-nego-send-row {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: 6px;
}
.tt-offer-nego-send-row .tt-offer-nego-btn--send {
    width: 100%;
    color: #0f172a;
    background: #fff;
    border-color: #1e3a8a;
}
.tt-offer-delete-last-round,
.tt-offer-round-extra-btn,
.tt-offer-exclude-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: 6px 6px;
    border-radius: 7px;
    font: inherit;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
    cursor: pointer;
}
.tt-offer-delete-last-round {
    flex: 0 0 auto;
    border: 1px solid #8f1d16;
    background: #b42318;
    color: #fff;
    box-shadow: 0 2px 5px rgba(127, 29, 29, 0.2);
}
.tt-offer-round-extra-btn {
    border: 1px solid #1e3a8a;
    background: #1d4ed8;
    color: #fff;
    box-shadow: 0 2px 5px rgba(30, 64, 175, 0.22);
}
.tt-offer-round-extra-btn:hover,
.tt-offer-round-extra-btn:focus-visible {
    background: #1e3a8a;
    color: #fff;
}
.tt-offer-exclude-btn {
    border: 1px solid #334155;
    background: #475569;
    color: #fff;
    box-shadow: 0 2px 5px rgba(15, 23, 42, 0.18);
}
.tt-offer-exclude-btn:hover,
.tt-offer-exclude-btn:focus-visible,
.tt-offer-exclude-btn.is-included {
    background: #166534;
    border-color: #14532d;
    color: #fff;
}
.tt-offer-delete-last-round svg,
.tt-offer-round-extra-btn svg,
.tt-offer-exclude-btn svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}
.tt-offer-delete-last-round:hover,
.tt-offer-delete-last-round:focus-visible {
    background: #8f1d16;
    color: #fff;
}
.tt-offer-delete-last-round:focus-visible {
    outline: 3px solid rgba(180, 35, 24, 0.24);
    outline-offset: 2px;
}
.tt-offer-delete-last-round:disabled {
    opacity: 0.6;
    cursor: wait;
}
.tt-offer-delete-last-round svg {
    width: 14px;
    height: 14px;
    stroke-width: 2.2;
}
.tt-offer-nego-action-panel.is-required .tt-offer-nego-action-title { color: #d92332; }
.tt-offer-nego-action-last,
.tt-offer-nego-action-last-desc,
.tt-offer-nego-action-next,
.tt-offer-nego-action-prompt,
.tt-offer-nego-action-detail,
.tt-offer-nego-action-ago,
.tt-offer-nego-action-hint {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.4;
    color: var(--tt-text-dim);
}
.tt-offer-nego-action-last { margin-top: 0; color: var(--tt-text); }
.tt-offer-nego-action-last strong,
.tt-offer-nego-action-next strong {
    color: var(--tt-text);
    font-weight: 800;
}
.tt-offer-nego-action-last-desc { margin-top: 2px; }
.tt-offer-nego-action-rule {
    margin: 10px 0;
    border: 0;
    border-top: 1px solid #cbd5e1;
}
.tt-offer-nego-action-next { color: var(--tt-text); }
.tt-offer-nego-action-next {
    font-size: 0.9rem;
}
.tt-offer-nego-action-prompt {
    margin-top: 2px;
    color: #1d4ed8;
    font-size: 0.8rem;
}
.tt-offer-nego-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
}
.tt-offer-round-docs-lead {
    margin: 0 0 12px;
    color: #0f172a;
}
.tt-offer-round-docs-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tt-offer-round-docs-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
    color: #0f172a;
}
.tt-offer-round-docs-name {
    min-width: 0;
    font-weight: 700;
    word-break: break-word;
}
.tt-offer-round-docs-actions {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
}
.tt-offer-round-docs-actions .tt-btn {
    color: #0f172a;
    background: #f8fafc;
    border: 1px solid #94a3b8;
}
.tt-offer-round-docs-actions .tt-btn-primary {
    color: #fff;
    background: #1d4ed8;
    border-color: #1e3a8a;
}
.tt-offer-round-docs-remove {
    color: #fff !important;
    background: #b42318 !important;
    border-color: #8f1d16 !important;
}
.tt-offer-round-docs-empty {
    margin: 0;
    color: #334155;
}
.tt-offer-nego-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 100%;
    min-width: 0;
    min-height: 36px;
    padding: 7px 4px;
    border-radius: 8px;
    border: 1px solid var(--tt-border);
    background: #fff;
    color: var(--tt-text);
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.1;
    cursor: pointer;
    box-sizing: border-box;
    overflow: hidden;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 1px 2px rgba(15, 23, 42, 0.06);
}
.tt-offer-nego-btn::before {
    content: '';
    position: absolute;
    inset: 0 0 45% 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0) 100%);
    border-radius: inherit;
}
.tt-offer-nego-btn > span,
.tt-offer-nego-btn > svg,
.tt-offer-nego-btn > i {
    position: relative;
    z-index: 1;
}
.tt-offer-nego-btn > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-offer-nego-btn svg { width: 14px; height: 14px; flex: 0 0 auto; }
.tt-offer-nego-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    filter: grayscale(0.35);
}
.tt-offer-nego-btn--accept { background: #16a34a; border-color: #16a34a; color: #fff; }
.tt-offer-nego-btn--accept:hover:not(:disabled) { background: #15803d; }
.tt-offer-nego-btn--accept:disabled {
    background: #94a3b8;
    border-color: #94a3b8;
    color: #fff;
    opacity: 1;
    filter: none;
}
.tt-offer-nego-btn--counter { background: #2563eb; border-color: #2563eb; color: #fff; }
.tt-offer-nego-btn--counter:hover:not(:disabled) { background: #1d4ed8; }
.tt-offer-nego-btn--reject { background: #dc2626; border-color: #dc2626; color: #fff; }
.tt-offer-nego-btn--reject:hover:not(:disabled) { background: #b91c1c; }
.tt-offer-nego-btn--show,
.tt-offer-nego-btn--hide,
.tt-offer-nego-btn--send,
.tt-offer-nego-btn--lock,
.tt-offer-nego-btn--unlock { background: #fff; }
.tt-offer-nego-btn--show {
    color: #0f172a;
    border-color: #94a3b8;
}
.tt-offer-nego-btn--hide {
    color: #9a3412;
    border-color: #fdba74;
    background: #fff7ed;
}
.tt-offer-nego-btn--lock.is-locked-state {
    color: #0f172a;
    border-color: #64748b;
    background: #e2e8f0;
    font-weight: 700;
}
.tt-offer-nego-btn--show:hover:not(:disabled),
.tt-offer-nego-btn--hide:hover:not(:disabled),
.tt-offer-nego-btn--send:hover:not(:disabled),
.tt-offer-nego-btn--lock:hover:not(:disabled) { background: #f1f5f9; }
.tt-offer-nego-btn--hide:hover:not(:disabled) { background: #ffedd5; }
.tt-offer-nego-btn .tt-offer-nego-tip {
    /* In-button tip is never shown — JS clones it to body as .is-floating */
    display: none !important;
}
.tt-offer-nego-collapsed {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    padding: 12px 14px;
}
.tt-offer-nego-collapsed-main {
    flex: 1 1 220px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-offer-nego-collapsed-main strong { font-size: 0.92rem; }
.tt-offer-nego-collapsed-meta {
    font-size: 0.75rem;
    color: var(--tt-text-dim);
}
.tt-offer-nego-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    padding: 10px 14px 12px;
    border-top: 1px solid var(--tt-border, #dbe3f0);
    background: #fff;
}
.tt-offer-nego-stats {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--tt-text-dim);
    text-align: right;
}
.tt-offer-nego-doc {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 24px;
    height: 24px;
    border: 0;
    border-radius: 6px;
    background: rgba(255,255,255,0.55);
    color: inherit;
    cursor: pointer;
    flex: 0 0 auto;
}
.tt-offer-nego-doc:hover { background: rgba(255,255,255,0.9); }
.tt-offer-nego-doc-count {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 14px;
    height: 14px;
    padding: 0 3px;
    border-radius: 999px;
    background: #1e293b;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    line-height: 14px;
    text-align: center;
}
.tt-offer-nego-tile-doc .tt-offer-nego-doc-count {
    top: -12px;
    right: -12px;
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    font-size: 20px;
    line-height: 36px;
}
.tt-offer-nego-tip {
    display: none;
    position: absolute;
    z-index: 5;
    padding: 8px 10px;
    border-radius: 8px;
    background: #0f172a;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1.35;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.25);
    text-align: left;
    white-space: normal;
    max-width: min(320px, calc(100vw - 16px));
    pointer-events: none;
}
.tt-offer-nego-tip.is-floating {
    display: block !important;
    position: fixed;
    z-index: 2147483000;
    left: 0;
    top: 0;
    min-width: 180px;
}
.tt-offer-nego-tip::after {
    content: '';
    position: absolute;
    left: var(--tt-nego-tip-arrow-x, 50%);
    bottom: -6px;
    width: 10px;
    height: 10px;
    background: #0f172a;
    transform: translateX(-50%) rotate(45deg);
}
.tt-offer-nego-tip.is-floating.is-below::after {
    top: -6px;
    bottom: auto;
}
.tt-offer-nego-tip-title { display: block; margin-bottom: 4px; font-weight: 700; }
.tt-offer-nego-tip-line { display: block; }
.tt-offer-nego-tip-line + .tt-offer-nego-tip-line { margin-top: 2px; }
.tt-offer-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    font-size: 0.75rem;
    color: var(--tt-text-dim);
}
.tt-offer-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tt-offer-legend .tt-offer-dot {
    display: inline-block;
    width: 15px;
    height: 15px;
    border-radius: 999px;
    flex: 0 0 auto;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        inset 0 -1px 0 rgba(15, 23, 42, 0.12),
        0 1px 2px rgba(15, 23, 42, 0.14);
    background-image: linear-gradient(160deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.12) 45%, transparent 70%);
    background-blend-mode: soft-light;
}
.tt-offer-legend .tt-offer-dot--buyer {
    background-color: var(--tt-offer-buyer-ink, #6d28d9);
}
.tt-offer-legend .tt-offer-dot--seller {
    background-color: var(--tt-offer-seller-ink, #c2410c);
}
.tt-offer-legend .tt-offer-dot--accepted {
    background-color: var(--tt-offer-accepted-ink, #15803d);
}
.tt-offer-legend .tt-offer-dot--awaiting {
    background-color: var(--tt-offer-await-ink, #a16207);
}
.tt-offer-legend .tt-offer-dot--action { background-color: #2563eb; }
.tt-offer-legend .tt-offer-dot--countered {
    background-color: var(--tt-offer-countered-ink, #475569);
}
.tt-offer-legend .tt-offer-dot--superseded {
    background-color: var(--tt-offer-superseded-ink, #64748b);
}
.tt-offer-legend .tt-offer-dot--rejected {
    background-color: var(--tt-offer-rejected-ink, #b91c1c);
}

.tt-offer-counter-confirm-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.tt-offer-counter-confirm-foot-left {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tt-offer-smco-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
    max-height: min(50vh, 360px);
    overflow: auto;
}
.tt-offer-smco-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--tt-border, #dbe3f0);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    color: #0f172a;
}
.tt-offer-smco-row:hover {
    border-color: #93c5fd;
    background: #f8fbff;
}
.tt-offer-smco-row input {
    margin-top: 3px;
    flex: 0 0 auto;
}
.tt-offer-smco-row-copy {
    min-width: 0;
    flex: 1;
}
.tt-offer-smco-row-name {
    display: block;
    font-weight: 700;
    line-height: 1.3;
}
.tt-offer-smco-row-meta {
    display: block;
    margin-top: 2px;
    font-size: 0.8rem;
    color: #64748b;
}
.tt-offer-smco-block {
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid var(--tt-border, #dbe3f0);
    border-radius: 10px;
    background: #f8fafc;
}
/* .tt-field-row { display:grid } beats bare [hidden] — force hide in SMCO mode */
#ttOfferPartySingle[hidden],
#ttOfferComputedRow[hidden],
#ttOfferSmcoBlock[hidden],
#ttOfferModal.is-smco-mode #ttOfferPartySingle,
#ttOfferModal.is-smco-mode #ttOfferComputedRow {
    display: none !important;
}
.tt-offer-smco-block > .tt-label {
    display: block;
    margin: 0 0 10px;
    font-weight: 800;
    color: #0f172a;
}
.tt-offer-smco-table-wrap {
    overflow: auto;
    max-height: min(40vh, 280px);
    border: 1px solid #dbe3f0;
    border-radius: 8px;
    background: #fff;
}
.tt-offer-smco-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}
.tt-offer-smco-table th,
.tt-offer-smco-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    color: #0f172a;
    vertical-align: top;
    word-break: break-word;
}
.tt-offer-smco-table th {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #64748b;
    background: #f1f5f9;
    position: sticky;
    top: 0;
}
.tt-offer-smco-table tbody tr:last-child td {
    border-bottom: 0;
}
@media (max-width: 900px) {
    .tt-offer-nego-card-grid { grid-template-columns: 1fr; }
    .tt-offer-nego-side,
    .tt-offer-nego-center,
    .tt-offer-nego-right,
    .tt-offer-nego-keyterms-wrap {
        grid-column: 1;
        grid-row: auto;
    }
    .tt-offer-nego-side,
    .tt-offer-nego-right,
    .tt-offer-nego-action-panel {
        border: 0;
    }
    .tt-offer-nego-action-grid {
        max-width: 420px;
    }
}
@media (max-width: 720px) {
    .tt-offer-nego-tile {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas:
            "num main"
            "status status"
            "doc doc";
        gap: 10px 12px;
    }
    .tt-offer-nego-tile-num { grid-area: num; }
    .tt-offer-nego-tile-main { grid-area: main; }
    .tt-offer-nego-tile-status {
        grid-area: status;
        padding-left: 0;
        border-left: 0;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 6px 10px;
    }
    .tt-offer-nego-tile-doc {
        grid-area: doc;
        flex-direction: row;
        justify-content: flex-start;
        min-height: 0;
        width: 100%;
        box-sizing: border-box;
    }
}

.tt-offers-footnote {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: color-mix(in srgb, #2563eb 8%, #fff);
    color: #1e3a8a;
    font-size: 0.8rem;
    line-height: 1.4;
}
.tt-offers-footnote-icon {
    flex: 0 0 auto;
    font-weight: 700;
}

@media (max-width: 900px) {
    .tt-offers-summary-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .tt-offers-board-head { display: none; }
    .tt-offer-group-row {
        grid-template-columns: 28px 1fr;
        grid-template-areas:
            "toggle buyer"
            "toggle net"
            "toggle docs"
            "toggle updated"
            "toggle status"
            "toggle actions";
    }
    .tt-offer-group-toggle { grid-area: toggle; }
    .tt-offer-group-buyer { grid-area: buyer; }
    .tt-offer-group-net { grid-area: net; }
    .tt-offer-group-docs { grid-area: docs; }
    .tt-offer-group-updated { grid-area: updated; }
    .tt-offer-group-status { grid-area: status; }
    .tt-offer-group-actions { grid-area: actions; justify-content: flex-start; }
    .tt-offer-group-timeline { padding-left: 12px; }
    .tt-offers-summary-accept { align-items: flex-start; text-align: left; }
}
@media (max-width: 1100px) and (min-width: 901px) {
    .tt-offers-summary-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.tt-offer-round {
    display: inline-block;
    margin-right: 6px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 2px 8px;
    vertical-align: middle;
    white-space: nowrap;
}
.tt-offer-round--offer {
    color: #334155;
    background: rgba(51, 65, 85, 0.1);
}
.tt-offer-round--sco {
    color: #c2410c;
    background: rgba(194, 65, 12, 0.12);
}
.tt-offer-round--bco {
    color: #1d4ed8;
    background: rgba(29, 78, 216, 0.12);
}
.tt-offer-chronology {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-offer-chrono-card {
    border: 1px solid var(--tt-border, #e6e8f2);
    border-radius: 10px;
    background: var(--tt-card, #fff);
    padding: 12px 14px;
}
.tt-offer-chrono-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 8px;
}
.tt-offer-chrono-title {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
}
.tt-offer-chrono-agreed {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: #1b7a3d;
}
.tt-offer-chrono-agreed.is-open {
    color: #c2410c;
}
.tt-offer-chrono-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 8px 12px;
    padding: 6px 0;
    border-top: 1px solid var(--tt-border, #e6e8f2);
    font-size: 0.84rem;
    line-height: 1.4;
    align-items: start;
}
.tt-offer-chrono-row:first-of-type { border-top: 0; }
.tt-offer-chrono-meta { color: var(--tt-text, #1a1c2b); }
.tt-offer-chrono-diff { color: var(--tt-text-dim, #6b7088); font-size: 0.8rem; }
@media (max-width: 640px) {
    .tt-offer-chrono-row { grid-template-columns: 1fr; gap: 2px; }
}
.tt-offers-check-col { width: 36px; text-align: center; }
.tt-offers-check-all { display: inline-flex; align-items: center; justify-content: center; margin: 0; }
.tt-offers-net { font-variant-numeric: tabular-nums; white-space: nowrap; }
.tt-offers-net--best { font-weight: 700; color: #1b7a3d; }
.tt-offers-computed {
    font-size: 0.85rem;
    color: var(--tt-text-dim);
    padding-top: 2px;
    line-height: 1.45;
    max-width: none;
}
.tt-offers-computed-head,
.tt-offers-computed-row,
.tt-offers-extra-comp-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 140px 140px;
    gap: 10px 16px;
    align-items: center;
}
.tt-offers-computed-head {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tt-text);
    margin-bottom: 6px;
}
.tt-offers-computed-head span:nth-child(2),
.tt-offers-computed-head span:nth-child(3),
.tt-offers-computed-row > span:nth-child(2),
.tt-offers-computed-row > span:nth-child(3) {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.tt-offers-computed-row {
    padding: 2px 0;
}
.tt-offers-extra-comp-row .tt-input {
    background: #fff;
    color: #0f2744;
}
.tt-offers-extra-comp-amount {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}
.tt-offers-extra-comp-amount .tt-input {
    width: 100%;
    text-align: right;
}
.tt-offers-extra-comp-x {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #94a3b8;
    border-radius: 999px;
    background: #fff;
    color: #0f2744;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
}
.tt-offers-computed-row--deduct span:last-child {
    font-variant-numeric: tabular-nums;
}
.tt-offers-computed-row--net {
    font-weight: 700;
    color: var(--tt-text);
    padding-top: 8px;
}
.tt-offers-computed-row--sub {
    font-weight: 700;
    color: var(--tt-text);
}
.tt-offers-extra-comp-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 8px 0;
}
#ttOfferAddComp {
    margin: 0 0 8px;
}
.tt-offers-computed-hr {
    border: none;
    border-top: 1px solid var(--tt-border);
    margin: 6px 0 4px;
}
.tt-offers-computed-field { margin-top: 4px; }
#ttOfferModal .tt-money { width: 100%; }
#ttOfferModal .tt-offer-down-unit {
    width: 100%;
    max-width: 100%;
}
#ttOfferModal .tt-offer-down-control {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}
#ttOfferModal .tt-offer-down-control .tt-input {
    width: 100%;
    text-align: left;
    padding-left: 28px;
}
#ttOfferModal .tt-field > label .tt-label-with-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.tt-offers-share-row { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
.tt-offers-share-row .tt-input { flex: 1; min-width: 0; }
.tt-offers-report-msg { margin: 0; font-size: 0.92rem; line-height: 1.4; }
.tt-offers-report-links { margin: 12px 0 0; font-size: 0.9rem; }
.tt-offer-status { display: inline-block; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.01em; line-height: 1.25; white-space: normal; }
.tt-offer-status.is-pending,
.tt-offer-status.is-under-review { color: var(--tt-offer-buyer-ink, #6d28d9); }
.tt-offer-status.is-accepted { color: var(--tt-offer-accepted-ink, #15803d); }
.tt-offer-status.is-rejected { color: var(--tt-offer-rejected-ink, #b91c1c); }
.tt-offer-status.is-countered { color: var(--tt-offer-seller-ink, #c2410c); }
.tt-offer-status.is-expired { color: var(--tt-offer-superseded-ink, #64748b); }
.tt-offer-intake-banner {
    margin: 0 0 14px;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--tt-accent-soft);
    border: 1px solid var(--tt-accent);
    color: var(--tt-text);
    font-size: 13px;
}
.tt-offer-intake-banner p { margin: 0; }
.tt-offer-intake-banner p + p { margin-top: 8px; }

/* Add Offer modal: upload a document and let AI fill the form. */
.tt-offer-ai-upload {
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px dashed var(--tt-accent);
    border-radius: 10px;
    background: var(--tt-accent-soft);
}
.tt-offer-ai-upload-head {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 10px;
}
.tt-offer-ai-upload-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    font-size: 14px;
}
.tt-offer-ai-upload-title i,
.tt-offer-ai-upload-title svg { width: 16px; height: 16px; }
.tt-offer-ai-upload-hint { font-size: 12px; color: var(--tt-muted, #64748b); }
.tt-offer-ai-upload-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.tt-offer-ai-file {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
}
.tt-offer-ai-choose { cursor: pointer; margin: 0; }
.tt-offer-ai-choose.is-busy {
    opacity: 0.65;
    pointer-events: none;
}
/* Lock offer form during document upload / AI reading — Cancel stays clickable. */
#ttOfferModal.tt-offer-modal--ai-busy .tt-modal-body {
    opacity: 0.55;
    pointer-events: none;
}
#ttOfferModal.tt-offer-modal--ai-busy .tt-offer-ai-progress {
    opacity: 1;
}
#ttOfferModal.tt-offer-modal--ai-busy #ttOfferSave,
#ttOfferModal.tt-offer-modal--ai-busy #ttOfferSendOtherSide {
    opacity: 0.5;
    cursor: not-allowed;
}
#ttOfferModal.tt-offer-modal--ai-busy [data-tt-offer-close] {
    opacity: 1;
    cursor: pointer;
    pointer-events: auto;
}
#ttOfferModal.tt-offer-modal--ai-busy input:disabled,
#ttOfferModal.tt-offer-modal--ai-busy select:disabled,
#ttOfferModal.tt-offer-modal--ai-busy textarea:disabled,
#ttOfferModal.tt-offer-modal--ai-busy button:disabled {
    background: color-mix(in srgb, var(--tt-bg-2, #e8eef6) 80%, #fff);
    color: var(--tt-text-faint, #94a3b8);
}
.tt-offer-ai-file-name {
    font-size: 12px;
    color: var(--tt-muted, #64748b);
    overflow-wrap: anywhere;
}
.tt-offer-generate-bco {
    margin-top: 4px;
    padding: 14px 16px;
    border: 1px solid var(--tt-border, #cbd5e1);
    border-radius: 10px;
    background: var(--tt-bg-2, #f8fafc);
}
.tt-offer-generate-bco .tt-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    color: var(--tt-text, #0f2744);
    cursor: pointer;
}
.tt-offer-generate-bco input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: var(--tt-accent, #2563eb);
}
.tt-offer-generate-bco strong,
.tt-offer-generate-bco small {
    display: block;
}
.tt-offer-generate-bco strong {
    font-size: 14px;
}
.tt-offer-generate-bco small {
    margin-top: 3px;
    color: var(--tt-text-dim, #64748b);
    font-size: 12px;
    line-height: 1.35;
}
.tt-offer-date-holiday {
    border-color: #d97706 !important;
    background: #fffbeb !important;
    color: #451a03 !important;
    box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.18) !important;
}
.tt-field--holiday-warning > label {
    color: #92400e;
}
.tt-offer-date-holiday-warning {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    padding: 7px 9px;
    border: 1px solid #f59e0b;
    border-radius: 7px;
    background: #fffbeb;
    color: #78350f;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}
.tt-offer-date-holiday-warning::before {
    content: "⚠";
    color: #b45309;
    font-size: 14px;
}
.tt-offer-date-holiday-warning[hidden] {
    display: none !important;
}
.tt-offer-ai-progress {
    margin-top: 12px;
}
.tt-offer-ai-progress-bar {
    height: 6px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--tt-accent, #2b5aab) 18%, #fff);
    overflow: hidden;
}
.tt-offer-ai-progress-bar > span {
    display: block;
    height: 100%;
    width: 40%;
    border-radius: inherit;
    background: var(--tt-accent, #2b5aab);
    animation: tt-offer-ai-progress-slide 1.1s ease-in-out infinite;
}
@keyframes tt-offer-ai-progress-slide {
    0% { transform: translateX(-120%); }
    100% { transform: translateX(320%); }
}
.tt-offer-ai-progress-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 0;
    font-size: 12.5px;
    color: var(--tt-text-dim, #5a6072);
}
.tt-offer-ai-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid color-mix(in srgb, var(--tt-accent, #2b5aab) 25%, transparent);
    border-top-color: var(--tt-accent, #2b5aab);
    border-radius: 50%;
    animation: tt-offer-ai-spin 0.7s linear infinite;
    flex: 0 0 auto;
}
@keyframes tt-offer-ai-spin {
    to { transform: rotate(360deg); }
}
.tt-offer-ai-status {
    margin: 10px 0 0;
    font-size: 12.5px;
    line-height: 1.45;
}
.tt-offer-ai-status.is-busy { color: var(--tt-muted, #64748b); }
.tt-offer-ai-status.is-ok { color: #1b7a3d; font-weight: 600; }
.tt-offer-ai-status.is-warn { color: #b45309; font-weight: 600; }

.tt-offer-ai-eye {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    padding: 0;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #b45309;
    cursor: pointer;
    vertical-align: middle;
}
.tt-offer-ai-eye:hover {
    background: rgba(245, 158, 11, 0.18);
    color: #92400e;
}
.tt-field--ai-filled > label {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
}
.tt-modal--ai-evidence {
    max-width: 720px;
}
.tt-offer-ai-evidence-quote {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--tt-bg-2, #eef0f8) 70%, #fff);
    border: 1px solid var(--tt-border, #e6e8f2);
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--tt-text, #1a1c2b);
}
.tt-offer-ai-evidence-stage {
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0f172a0a;
    border-radius: 10px;
    overflow: auto;
    padding: 10px;
}
.tt-offer-ai-evidence-img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.18);
    background: #fff;
}

/* --- Add Contact wizard --- */
.tt-ab-method-lead {
    margin: 0 0 16px;
    font-size: 15px;
    font-weight: 600;
    color: #0a1628;
}
.tt-ab-method-tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
@media (max-width: 640px) {
    .tt-ab-method-tiles {
        grid-template-columns: 1fr;
    }
}
.tt-ab-method-tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 18px 18px 16px;
    border: 1.5px solid #c5d4e6;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
    color: #0a1628;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(30, 64, 175, 0.08);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.tt-ab-method-tile:hover,
.tt-ab-method-tile:focus-visible {
    border-color: #2563eb;
    box-shadow: 0 8px 22px rgba(37, 99, 235, 0.16);
    outline: none;
    transform: translateY(-1px);
}
.tt-ab-method-tile-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #dbeafe;
    color: #1d4ed8;
}
.tt-ab-method-tile-icon svg {
    width: 22px;
    height: 22px;
    display: block;
}
.tt-ab-method-tile-title {
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #0a1628;
}
.tt-ab-method-tile-desc {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    color: #334155;
}
.tt-ab-ai-category-gate {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #fcd34d;
    border-radius: 12px;
    background: #fffbeb;
}
.tt-ab-ai-category-gate-msg {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
    color: #92400e;
}
.tt-ab-preview-debug {
    border: 1px dashed #94a3b8;
    color: #334155;
}
.tt-ab-preview-debug::after {
    content: ' debug';
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-left: 4px;
}
.tt-ab-wizard-rail {
    display: flex;
    gap: 8px;
    align-items: center;
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}
.tt-ab-wizard-rail li {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #94a3b8;
}
.tt-ab-wizard-rail li + li::before {
    content: '';
    width: 18px;
    height: 1px;
    background: #e2e8f0;
    margin-right: 2px;
}
.tt-ab-wizard-rail li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #64748b;
    font-size: 11px;
}
.tt-ab-wizard-rail li.is-current { color: #0f172a; }
.tt-ab-wizard-rail li.is-current span { background: #2563eb; color: #fff; }
.tt-ab-wizard-rail li.is-done span { background: #16a34a; color: #fff; }
.tt-ab-smart-paste {
    margin: 0 0 18px;
    padding: 14px 14px 12px;
    border: 1px solid #c5d4e6;
    border-radius: 14px;
    background: #f4f8ff;
}
.tt-ab-smart-paste-label {
    display: block;
    margin: 0 0 8px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #0a1628;
}
.tt-ab-smart-paste-box {
    min-height: 110px;
    max-height: 220px;
    overflow: auto;
    padding: 12px 14px;
    border: 1.5px dashed #7aa2e8;
    border-radius: 12px;
    background: #ffffff;
    color: #0a1628;
    font-size: 14px;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}
.tt-ab-smart-paste-box:focus {
    outline: none;
    border-color: #1564e6;
    box-shadow: 0 0 0 3px rgba(21, 100, 230, 0.18);
}
.tt-ab-smart-paste-box:empty::before {
    content: attr(data-placeholder);
    color: #6b7c99;
    pointer-events: none;
}
.tt-ab-smart-paste-box img {
    display: block;
    max-width: 100%;
    max-height: 160px;
    margin: 8px 0;
    border-radius: 8px;
    border: 1px solid #d5e0f0;
}
.tt-ab-smart-paste-status {
    margin: 8px 0 0;
    font-size: 13px;
    font-weight: 600;
    color: #1564e6;
}
.tt-ab-smart-paste-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin-top: 12px;
}
.tt-ab-smart-paste-or {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}
.tt-ab-smart-paste-or::before,
.tt-ab-smart-paste-or::after {
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: #c5d4e6;
}
.tt-ab-card-upload-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 12px 14px;
    border: 1.5px solid #93c5fd;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #eff6ff 100%);
    color: #0a1628;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.tt-ab-card-upload-btn:hover,
.tt-ab-card-upload-btn:focus-visible {
    border-color: #2563eb;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.16);
    outline: none;
    transform: translateY(-1px);
}
.tt-ab-card-upload-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: #dbeafe;
    color: #1d4ed8;
}
.tt-ab-card-upload-btn-icon svg {
    width: 22px;
    height: 22px;
    display: block;
}
.tt-ab-card-upload-btn-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.tt-ab-card-upload-btn-title {
    font-size: 14px;
    font-weight: 800;
    color: #0a1628;
}
.tt-ab-card-upload-btn-sub {
    font-size: 12px;
    font-weight: 600;
    color: #334155;
}
.tt-ab-smart-paste.is-busy .tt-ab-smart-paste-box,
.tt-ab-smart-paste.is-busy .tt-ab-card-upload-btn {
    opacity: 0.7;
    pointer-events: none;
}
.tt-ab-wizard-chosen {
    margin: 0 0 14px;
    font-size: 12px;
    font-weight: 600;
    color: #475569;
}
.tt-ab-quickpicks { margin-top: 14px; }
.tt-ab-quickpicks-head {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}
.tt-ab-quickpick { margin: 0 6px 6px 0; }
.tt-ab-quickpick.is-selected {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}
.tt-ab-quickpick-count {
    display: inline-block;
    margin-left: 4px;
    opacity: 0.6;
    font-size: 11px;
}
.tt-ab-crosssearch {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid #e2e8f0;
}
.tt-ab-crosssearch-head {
    margin: 0 0 8px;
    font-size: 12px;
    color: #64748b;
}
.tt-ab-crosssearch-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 220px;
    overflow-y: auto;
}
.tt-ab-crosssearch-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2px 10px;
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}
.tt-ab-crosssearch-item:hover { background: #f8fafc; border-color: #cbd5e1; }
.tt-ab-crosssearch-name { font-size: 13px; font-weight: 600; color: #0f172a; }
.tt-ab-crosssearch-type {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #64748b;
    align-self: center;
}
.tt-ab-crosssearch-sub {
    grid-column: 1 / -1;
    font-size: 11.5px;
    color: #64748b;
}

/* AI-suggested values stay obvious until the user edits them. */
.tt-input.is-ai-filled,
[data-ab-field].is-ai-filled {
    background: #fffbeb;
    border-color: #f59e0b;
    box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.25);
}
.tt-field--ai-filled > label::after {
    content: 'AI';
    display: inline-block;
    margin-left: 6px;
    padding: 0 5px;
    border-radius: 999px;
    background: #f59e0b;
    color: #fff;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    vertical-align: middle;
}
/* Hard cap so a bad intake payload can never stack down the whole tab. */
.tt-offer-intake-banner { max-height: 190px; overflow-y: auto; }
.tt-offer-intake-banner .tt-offer-intake-more {
    margin-top: 8px;
    font-weight: 600;
    opacity: 0.85;
}
.tt-offer-mail-chip {
    display: inline-block;
    margin-left: 6px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
    border-radius: 999px;
    padding: 1px 7px;
    vertical-align: middle;
    text-decoration: none;
}
.tt-offer-mail-chip--guess {
    color: #9a6b00;
    background: rgba(154, 107, 0, 0.12);
}
.tt-offer-mail-source {
    margin: 0;
    font-size: 13px;
    color: var(--tt-text-dim);
}
.tt-offer-reassign-intro { margin: 0 0 12px; color: var(--tt-text-dim); font-size: 14px; }
.tt-offer-reassign-results { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; max-height: 280px; overflow: auto; }
.tt-offer-reassign-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    text-align: left;
    border: 1px solid var(--tt-border);
    background: var(--tt-card);
    border-radius: 10px;
    padding: 10px 12px;
    cursor: pointer;
    color: inherit;
}
.tt-offer-reassign-item:hover:not(:disabled) { border-color: var(--tt-accent); }
.tt-offer-reassign-item:disabled { opacity: 0.55; cursor: default; }
.tt-offer-reassign-item span, .tt-offer-reassign-item em { font-size: 12px; color: var(--tt-text-dim); font-style: normal; }
.tt-offer-reassign-empty { color: var(--tt-text-dim); font-size: 13px; }
.tt-offer-counter-flag {
    display: inline-block;
    margin-left: 6px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #c2410c;
    background: rgba(194, 65, 12, 0.12);
    border-radius: 999px;
    padding: 1px 7px;
    vertical-align: middle;
}
.tt-offer-row--nested td.tt-offer-from {
    padding-left: calc(12px + (var(--tt-offer-depth, 1) * 20px));
    position: relative;
}
.tt-offer-row--nested td.tt-offer-from::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #fdba74;
    border-radius: 2px;
}
.tt-offer-row--nested td.tt-offer-from::after {
    content: '';
    position: absolute;
    left: 8px;
    top: 50%;
    width: calc((var(--tt-offer-depth, 1) * 20px) - 4px);
    height: 2px;
    background: #fdba74;
}
tr.tt-offer-row--focus {
    outline: 2px solid #22c55e;
    outline-offset: -2px;
    box-shadow: inset 0 0 0 4px rgba(34, 197, 94, 0.14);
    background: rgba(34, 197, 94, 0.08);
}
.tt-offer-doc-links {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 4px;
}
.tt-offer-docs-panel {
    margin-top: 16px;
    padding: 12px 14px 10px;
    border: 1px solid #94a3b8;
    border-radius: 12px;
    background: #fff;
}
.tt-offer-docs-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.tt-offer-docs-head h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
}
.tt-offer-docs-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: #1d4ed8;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    vertical-align: middle;
}
.tt-offer-docs-table-wrap {
    overflow-x: auto;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
}
.tt-offer-docs-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}
.tt-offer-docs-table th,
.tt-offer-docs-table td {
    padding: 10px 12px;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #e2e8f0;
    color: #0f172a;
    font-size: 13px;
}
.tt-offer-docs-table th {
    background: #e2e8f0;
    color: #0f172a;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.tt-offer-docs-table tr:last-child td { border-bottom: none; }
.tt-offer-docs-table tbody tr:nth-child(even) { background: #f8fafc; }
.tt-offer-docs-name {
    font-weight: 600;
    word-break: break-word;
}
.tt-offer-docs-actions {
    white-space: nowrap;
}
.tt-offer-docs-actions .tt-btn {
    margin-right: 6px;
    background: #fff;
    color: #0f172a;
    border: 1px solid #64748b;
}
.tt-offer-docs-actions .tt-offer-docs-remove {
    color: #991b1b;
    border-color: #b91c1c;
    background: #fff;
}
.tt-offer-docs-empty td {
    color: #334155;
    font-weight: 600;
    background: #f8fafc;
}
.tt-offer-docs-notags { color: #475569; }
#ttOfferModal.tt-offer-modal--readonly #ttOfferDocsAdd,
#ttOfferModal.tt-offer-modal--readonly .tt-offer-docs-remove {
    display: none;
}
.tt-offer-docs {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tt-offer-docs-hint {
    margin: 6px 0 0;
    font-size: 12px;
    color: var(--tt-text-dim, #5f6368);
}
.tt-offer-doc-link {
    color: var(--tt-accent, #1a73e8);
    font-size: 0.86rem;
    font-weight: 600;
    text-decoration: none;
    word-break: break-word;
}
.tt-offer-doc-link:hover { text-decoration: underline; }
.tt-offer-doc-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.tt-offer-dt { white-space: nowrap; font-size: 0.82rem; color: var(--tt-text-dim); }
.tt-offer-modal-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
}
.tt-offer-modal-foot #ttOfferSendOtherSide {
    white-space: normal;
    text-align: center;
    max-width: 100%;
}
#ttOfferModal.tt-offer-modal--readonly .tt-offer-ai-upload,
#ttOfferModal.tt-offer-modal--readonly #ttOfferDocMeta,
#ttOfferModal.tt-offer-modal--readonly #ttOfferSave,
#ttOfferModal.tt-offer-modal--readonly #ttOfferSendOtherSide,
#ttOfferModal.tt-offer-modal--readonly #ttOfferChangePropertyBtn,
#ttOfferModal.tt-offer-modal--readonly .tt-radio-group--amount-unit,
#ttOfferModal.tt-offer-modal--readonly .ql-toolbar {
    display: none !important;
}
#ttOfferModal.tt-offer-modal--readonly input:disabled,
#ttOfferModal.tt-offer-modal--readonly select:disabled,
#ttOfferModal.tt-offer-modal--readonly textarea:disabled {
    opacity: 1;
    color: var(--tt-text, #1a1c2b);
    background: color-mix(in srgb, var(--tt-bg-2, #eef0f8) 55%, #fff);
    cursor: default;
    -webkit-text-fill-color: var(--tt-text, #1a1c2b);
}
#ttOfferModal.tt-offer-modal--readonly .ql-container {
    border-top: 1px solid var(--tt-border, #e6e8f2);
}
#ttOfferModal.tt-offer-modal--readonly .ql-editor {
    background: color-mix(in srgb, var(--tt-bg-2, #eef0f8) 55%, #fff);
    cursor: default;
}
#ttOfferModal .tt-offer-autogrow {
    display: block;
    width: 100%;
    min-height: 2.75em;
    max-height: min(55vh, 420px);
    overflow-y: hidden;
    resize: none;
    line-height: 1.45;
    field-sizing: content; /* progressive enhancement where supported */
}
#ttOfferModal .tt-offer-autogrow.is-overflowing {
    overflow-y: auto;
}
#ttOfferModal .tt-offer-rich-editor {
    width: 100%;
    min-width: 0;
}
#ttOfferModal .tt-offer-rich-editor .tt-quill-host,
#ttOfferModal .tt-offer-rich-editor .ql-container {
    min-height: 88px;
}
#ttOfferModal .tt-offer-rich-editor .ql-editor {
    min-height: 72px;
    max-height: min(40vh, 320px);
    overflow-y: auto;
    line-height: 1.45;
    font-size: 0.95rem;
}
#ttOfferModal .tt-offer-rich-editor .ql-toolbar {
    flex-wrap: wrap;
}
#ttOfferModal .tt-offer-rich-editor.is-ai-filled .ql-container {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--tt-accent) 45%, transparent);
}

/* offer-modal-condensed-start */
#ttOfferModal .tt-modal.tt-modal--wide {
    max-width: min(1240px, calc(100vw - 28px));
}
#ttOfferModal .tt-modal-body {
    padding: 12px 16px 8px;
}
#ttOfferModal .tt-offer-ai-upload {
    margin-bottom: 10px;
    padding: 8px 12px;
}
#ttOfferModal .tt-offer-ai-upload-head {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin-bottom: 6px;
}
#ttOfferModal .tt-offer-sheet-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
#ttOfferModal .tt-offer-sheet-grid > .tt-field-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px 14px;
    margin-top: 0;
    align-items: stretch;
}
#ttOfferModal .tt-offer-sheet-grid > .tt-field-row:has(> .tt-field:nth-child(3)) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
#ttOfferModal .tt-offer-span-2 {
    grid-column: span 2;
}
#ttOfferModal .tt-offer-span-2 .tt-amount-unit {
    max-width: 320px;
}
#ttOfferModal .tt-offer-sheet-split {
    margin-top: 2px;
    padding-top: 12px;
    border-top: 1px solid #e2e8f0;
}
#ttOfferModal .tt-offer-sheet-grid .tt-field-row > .tt-field,
#ttOfferModal .tt-offer-sheet-grid > .tt-field-row > .tt-field {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-width: 0;
}
#ttOfferModal .tt-offer-sheet-grid .tt-field > label,
#ttOfferModal .tt-offer-sheet-grid .tt-field > .tt-label {
    min-height: 2.5em;
    display: flex;
    align-items: flex-end;
}
#ttOfferModal .tt-field-row .tt-field > label,
#ttOfferModal .tt-field-row .tt-field > label:not(:has(.tt-label-with-info)) {
    white-space: normal;
    margin-bottom: 3px;
    font-size: 12px;
    line-height: 1.25;
    color: #334155;
}
#ttOfferModal .tt-field input,
#ttOfferModal .tt-field select,
#ttOfferModal .tt-field textarea,
#ttOfferModal .tt-money .tt-input {
    padding: 6px 10px;
}
#ttOfferModal .tt-offer-sheet-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.85fr);
    gap: 12px 16px;
    margin-top: 12px;
    align-items: stretch;
}
#ttOfferModal .tt-offer-sheet-bottom > .tt-field-row {
    margin-top: 0;
}
#ttOfferModal .tt-offer-notes-col {
    display: flex;
    flex-direction: column;
    grid-template-columns: 1fr;
    align-self: stretch;
    min-height: 100%;
}
#ttOfferModal .tt-offer-notes-col > .tt-field {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
#ttOfferModal .tt-offer-notes-col .tt-offer-rich-editor {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
#ttOfferModal .tt-offer-notes-col .tt-offer-rich-editor .ql-container,
#ttOfferModal .tt-offer-notes-col .tt-offer-rich-editor .tt-quill-host {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 220px;
    height: auto !important;
}
#ttOfferModal .tt-offer-notes-col .tt-offer-rich-editor .ql-editor {
    flex: 1 1 auto;
    min-height: 200px;
    max-height: none;
    height: auto !important;
}
#ttOfferModal .tt-offers-computed-head,
#ttOfferModal .tt-offers-computed-row,
#ttOfferModal .tt-offers-extra-comp-row {
    gap: 4px 10px;
}
#ttOfferModal .tt-offers-computed {
    font-size: 0.8rem;
    line-height: 1.3;
}
@media (max-width: 980px) {
    #ttOfferModal .tt-offer-sheet-grid > .tt-field-row,
    #ttOfferModal .tt-offer-sheet-grid > .tt-field-row:has(> .tt-field:nth-child(3)) {
        grid-template-columns: 1fr 1fr;
    }
    #ttOfferModal .tt-offer-span-2 {
        grid-column: 1 / -1;
    }
    #ttOfferModal .tt-offer-sheet-bottom {
        grid-template-columns: 1fr;
    }
}
/* offer-modal-condensed-end */
.tt-showing-requests { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.tt-sr-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.tt-sr-toolbar-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tt-sr-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tt-sr-filters .tt-input { min-width: 0; max-width: 180px; }
.tt-sr-search-wrap { flex: 1 1 180px; }
.tt-sr-table-wrap { overflow-x: auto; border: 1px solid var(--tt-border); border-radius: 12px; background: var(--tt-card); }
.tt-sr-table { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: auto; }
.tt-sr-table th, .tt-sr-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--tt-border); vertical-align: middle; }
.tt-sr-table th { color: var(--tt-text-dim); font-weight: 600; background: var(--tt-bg-2); }
.tt-sr-sort { border: none; background: transparent; color: inherit; font: inherit; cursor: pointer; padding: 0; display: inline-flex; align-items: center; gap: 4px; }
.tt-sr-sort.is-active { color: var(--tt-text); }
.tt-sr-sort-icon { opacity: 0.55; font-size: 11px; }
.tt-sr-note { max-width: 220px; word-break: break-word; }
.tt-sr-status-cell { min-width: 108px; }
.tt-sr-status-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.tt-sr-feedback-meta { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.tt-sr-actions { min-width: 0; }
.tt-sr-actions-inner { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.tt-sr-status { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.35; white-space: nowrap; }
.tt-sr-status--pending { background: rgba(249, 115, 22, 0.14); color: #c2410c; }
.tt-sr-status--complete { background: rgba(34, 197, 94, 0.14); color: #15803d; }
.tt-sr-status--complete.tt-sr-status--via-email {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(135deg, #fce7f3 0%, #fbcfe8 45%, #f9a8d4 100%);
    color: #be185d;
    box-shadow: 0 0 0 1px rgba(236, 72, 153, 0.35), 0 0 12px rgba(244, 114, 182, 0.45);
}
.tt-sr-status--complete.tt-sr-status--via-email::before {
    content: '';
    position: absolute;
    inset: -120% -40%;
    z-index: -1;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.95) 0 1px, transparent 2px),
        radial-gradient(circle at 70% 60%, rgba(255, 255, 255, 0.85) 0 1px, transparent 2px),
        radial-gradient(circle at 45% 80%, rgba(255, 255, 255, 0.75) 0 1px, transparent 2px),
        conic-gradient(from 0deg, transparent, rgba(255, 255, 255, 0.55), transparent, rgba(255, 255, 255, 0.35), transparent);
    animation: tt-sr-glitter 2.4s linear infinite;
    pointer-events: none;
}
@keyframes tt-sr-glitter {
    0% { transform: translateX(-8%) rotate(0deg); opacity: 0.55; }
    50% { opacity: 0.85; }
    100% { transform: translateX(8%) rotate(360deg); opacity: 0.55; }
}
.tt-sr-status--cancelled { background: rgba(148, 163, 184, 0.2); color: #475569; }
.tt-sr-feedback-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; line-height: 1.35; white-space: nowrap; }
.tt-sr-feedback-badge--sent { background: rgba(59, 130, 246, 0.14); color: #1d4ed8; }
.tt-sr-feedback-badge--received { background: rgba(34, 197, 94, 0.14); color: #15803d; }
.tt-sr-feedback-stars { display: block; font-size: 13px; line-height: 1; letter-spacing: 1px; color: #f59e0b; }
.tt-sr-bulk-intro { margin: 0 0 14px; color: var(--tt-text-dim); font-size: 14px; }
.tt-sr-bulk-table-wrap { max-height: 420px; overflow: auto; border: 1px solid var(--tt-border); border-radius: var(--tt-radius-sm); }
.tt-sr-bulk-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.tt-sr-bulk-table th, .tt-sr-bulk-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--tt-border); vertical-align: middle; }
.tt-sr-bulk-table th { background: var(--tt-bg-2); color: var(--tt-text-dim); font-weight: 600; position: sticky; top: 0; z-index: 1; }
.tt-sr-bulk-check-wrap { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; }
.tt-sr-bulk-name { font-weight: 600; min-width: 160px; }
.tt-sr-bulk-email { min-width: 220px; }
.tt-sr-bulk-email-display { border: none; background: transparent; color: var(--tt-link, #4f46e5); padding: 0; font: inherit; text-align: left; cursor: pointer; text-decoration: underline; }
.tt-sr-bulk-email-display:hover { color: var(--tt-text); }
.tt-sr-bulk-email-input { width: 100%; min-width: 200px; }
.tt-sr-bulk-empty { margin: 12px 0 0; color: var(--tt-text-dim); }
.tt-sr-bulk-error { margin: 12px 0 0; color: #b91c1c; }
.tt-sf-result-row { display: grid; grid-template-columns: minmax(120px, 200px) 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--tt-border); }
.tt-sf-result-row:last-child { border-bottom: 0; }
.tt-sf-result-label { font-weight: 700; color: var(--tt-text-dim); }
.tt-sf-result-value { white-space: pre-wrap; }
.tt-sr-empty { margin: 12px; color: var(--tt-text-dim); }
.tt-sr-actors-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.tt-sr-actor-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.tt-sr-actor-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--tt-border); border-radius: 8px; }
.tt-sr-actor-empty { color: var(--tt-text-dim); font-size: 13px; }
.tt-sr-actor-form[hidden] { display: none !important; }
.tt-sr-actor-form {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid var(--tt-border);
    border-radius: 10px;
    background: var(--tt-bg-2);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-sr-actor-form-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.tt-sr-modal-dialog { max-width: 720px !important; overflow: visible; }
.tt-sr-modal-dialog .tt-modal-body {
    max-height: min(70vh, 640px);
    overflow-x: hidden;
    overflow-y: auto;
}
.tt-sr-form.is-reading-card .tt-sr-card-field {
    opacity: 1;
}
.tt-sr-form.is-reading-card .tt-field:not(.tt-sr-card-field) {
    opacity: 0.45;
    pointer-events: none;
}
/* In-flow results so scrollable modal body does not clip the dropdown */
#ttShowingRequestModal .tt-directory-search-wrap {
    position: relative;
}
#ttShowingRequestModal .tt-directory-search-results {
    position: static;
    margin-top: 6px;
    max-height: 220px;
    display: block;
    z-index: 1;
}
#ttShowingRequestModal .tt-directory-search-results[hidden] {
    display: none !important;
}
#ttShowingRequestModal .tt-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
#ttShowingRequestModal .tt-field-row .tt-field {
    margin-bottom: 0;
    min-width: 0;
}
#ttShowingRequestModal .tt-field-row:has(#ttSrDate) {
    grid-template-columns: 1.2fr 0.9fr 0.9fr;
}
#ttShowingRequestModal .tt-input,
#ttShowingRequestModal .tt-select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    #ttShowingRequestModal .tt-modal {
        width: calc(100% - 20px);
        max-width: none;
    }
    #ttShowingRequestModal .tt-modal-body {
        max-height: calc(100dvh - 130px);
        padding: 16px;
    }
    #ttShowingRequestModal .tt-field-row,
    #ttShowingRequestModal .tt-field-row:has(#ttSrDate) {
        grid-template-columns: 1fr;
        gap: 0;
    }
    #ttShowingRequestModal .tt-field-row .tt-field {
        margin-bottom: 14px;
    }
    #ttShowingRequestModal .tt-field-row .tt-field:last-child {
        margin-bottom: 0;
    }
    #ttShowingRequestModal .tt-modal-foot {
        flex-direction: column-reverse;
        gap: 8px;
        padding: 12px 16px;
    }
    #ttShowingRequestModal .tt-modal-foot .tt-btn {
        width: 100%;
        justify-content: center;
    }
}
.tt-note-contact-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tt-ab-card-preview { margin-top: 8px; }
.tt-ab-card-preview img { max-width: 220px; max-height: 140px; border-radius: 8px; border: 1px solid var(--tt-border); object-fit: cover; }
.tt-ab-card-progress {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 10px;
}
.tt-ab-card-progress[hidden] { display: none !important; }
.tt-ab-card-progress-track {
    height: 6px;
    border-radius: 999px;
    background: var(--tt-border);
    overflow: hidden;
}
.tt-ab-card-progress-fill {
    display: block;
    width: 35%;
    height: 100%;
    border-radius: inherit;
    background: var(--tt-accent);
    animation: tt-sprp-upload-indeterminate 1.1s ease-in-out infinite;
}
.tt-ab-card-progress-text {
    margin: 0;
    font-size: 12px;
    color: var(--tt-text-dim);
}
.tt-ab-form.is-reading-card {
    pointer-events: none;
    opacity: 0.72;
}
.tt-ab-form.is-reading-card .tt-ab-card-field {
    pointer-events: auto;
    opacity: 1;
}
.tt-ab-form.is-reading-card #ttAbBusinessCard {
    pointer-events: none;
}
/* Contact view modal — desktop dashboard + mobile details (screenshot match) */
#ttAbViewModal {
    --abv-bg: #070b16;
    --abv-panel: rgba(16, 24, 44, 0.92);
    --abv-card: rgba(22, 32, 58, 0.88);
    --abv-border: rgba(64, 140, 255, 0.28);
    --abv-border-strong: rgba(80, 170, 255, 0.55);
    --abv-text: #f4f7ff;
    --abv-muted: #9db0d0;
    --abv-blue: #2f9bff;
    --abv-purple: #8b5cf6;
    --abv-green: #22c55e;
    --abv-glow: 0 0 24px rgba(47, 155, 255, 0.35);
    background: rgba(4, 8, 18, 0.72);
    backdrop-filter: blur(16px) saturate(140%);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
}
#ttAbViewModal .tt-ab-view-modal {
    position: relative;
    width: min(1180px, calc(100vw - 32px));
    max-width: 1180px;
    max-height: calc(100vh - 28px);
    margin: 14px auto;
    background: linear-gradient(165deg, #0c1428 0%, #08101e 55%, #0a1224 100%);
    border: 1px solid var(--abv-border-strong);
    border-radius: 22px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    color: var(--abv-text);
    font-family: var(--tt-font);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
#ttAbViewModal .tt-ab-view-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    background: rgba(10, 16, 32, 0.85);
    border-bottom: 1px solid var(--abv-border);
    flex-shrink: 0;
}
#ttAbViewModal .tt-ab-view-head-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
#ttAbViewModal .tt-ab-view-head-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--abv-text);
}
#ttAbViewModal .tt-ab-view-head-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: linear-gradient(145deg, #2f9bff, #6366f1);
    color: #fff;
    box-shadow: var(--abv-glow);
}
#ttAbViewModal .tt-ab-view-head-icon svg { width: 18px; height: 18px; }
#ttAbViewModal .tt-ab-view-back {
    display: none;
    align-items: center;
    gap: 2px;
    padding: 6px 8px;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--abv-blue);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}
#ttAbViewModal .tt-ab-view-back svg { width: 20px; height: 20px; }
#ttAbViewModal .tt-ab-view-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: 0;
    padding-right: 0;
    flex: 0 0 auto;
}
#ttAbViewModal .tt-ab-view-share-btn,
#ttAbViewModal .tt-modal-close {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid var(--abv-border);
    background: rgba(30, 48, 88, 0.65);
    color: #c8d7f5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
}
#ttAbViewModal .tt-ab-view-share-btn:hover,
#ttAbViewModal .tt-modal-close:hover {
    border-color: var(--abv-blue);
    color: #fff;
    background: rgba(47, 155, 255, 0.18);
}
#ttAbViewModal .tt-ab-view-share-btn svg { width: 16px; height: 16px; }
#ttAbViewModal .tt-ab-view-pdf-btn {
    min-width: 34px;
}
#ttAbViewModal .tt-ab-pdf-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 15px;
    padding: 0 5px;
    border-radius: 3px;
    background: #dc2626;
    color: #ffffff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif;
}
#ttAbViewModal .tt-ab-view-pdf-btn:hover .tt-ab-pdf-badge {
    background: #b91c1c;
}
#ttAbViewModal .tt-ab-view-pdf-btn.is-busy,
#ttAbViewModal .tt-ab-view-pdf-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
[data-theme="dark"] #ttAbViewModal .tt-ab-pdf-badge {
    background: #ef4444;
    color: #ffffff;
}
#ttAbViewModal .tt-modal-close {
    font-size: 22px;
    line-height: 1;
    color: #fff;
}
#ttAbViewModal .tt-ab-view-body {
    flex: 1 1 auto;
    overflow: auto;
    padding: 20px 22px 24px;
    background: transparent;
}
#ttAbViewModal .tt-ab-view-foot {
    display: none;
    background: transparent;
    border-top: 1px solid var(--abv-border);
}
#ttAbViewModal.is-editing .tt-ab-view-foot,
#ttAbViewModal.is-customizing .tt-ab-view-foot {
    display: flex;
}

/* Hero */
#ttAbViewModal .tt-ab-view-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px 22px;
    align-items: center;
    margin: 0 0 22px;
    padding: 8px 4px 18px;
    border-bottom: 1px solid rgba(64, 140, 255, 0.16);
}
#ttAbViewModal .tt-ab-view-media-side {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    min-width: 0;
}
#ttAbViewModal .tt-ab-view-qr-preview {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}
#ttAbViewModal .tt-ab-view-qr-preview[hidden] {
    display: none !important;
}
#ttAbViewModal .tt-ab-view-qr-link {
    display: block;
    width: 124px;
    height: 124px;
    padding: 8px;
    margin: 0;
    border-radius: 14px;
    border: 1px solid var(--abv-border);
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
    box-sizing: border-box;
    cursor: zoom-in;
}
#ttAbViewModal .tt-ab-view-qr-preview.is-placeholder .tt-ab-view-qr-link {
    border-style: dashed;
    border-color: #94a3b8;
    background: #f1f5f9;
    box-shadow: none;
    cursor: default;
    opacity: 0.92;
}
#ttAbViewModal .tt-ab-view-qr-preview.is-placeholder .tt-ab-view-qr-link img {
    image-rendering: auto;
    opacity: 0.9;
}
#ttAbViewModal .tt-ab-view-qr-preview.is-placeholder .tt-ab-view-qr-caption {
    color: #cbd5e1;
    font-weight: 600;
}
#ttAbViewModal .tt-ab-view-qr-link:hover {
    border-color: #7eb6ff;
    box-shadow: 0 14px 32px rgba(46, 155, 255, 0.35);
}
#ttAbViewModal .tt-ab-view-qr-link:focus-visible {
    outline: 2px solid #7eb6ff;
    outline-offset: 2px;
}
#ttAbViewModal .tt-ab-view-qr-link img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    image-rendering: pixelated;
    pointer-events: none;
}
#ttAbViewModal .tt-ab-view-qr-caption {
    max-width: 124px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.25;
    text-align: center;
    color: #9ec5ff;
}

/* Large QR preview (click thumbnail — not vCard download) */
#ttAbViewModal .tt-ab-qr-overlay {
    position: fixed;
    inset: 0;
    z-index: 21040;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(6, 12, 28, 0.82);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
#ttAbViewModal .tt-ab-qr-overlay[hidden] { display: none !important; }
#ttAbViewModal .tt-ab-qr-overlay.is-open { display: grid !important; }
#ttAbViewModal .tt-ab-qr-panel {
    width: min(420px, 100%);
    border-radius: 18px;
    border: 1px solid rgba(158, 197, 255, 0.35);
    background: #0f1b33;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5);
    color: #e8f1ff;
    overflow: hidden;
}
#ttAbViewModal .tt-ab-qr-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(158, 197, 255, 0.2);
}
#ttAbViewModal .tt-ab-qr-panel-head h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #f4f8ff;
}
#ttAbViewModal .tt-ab-qr-panel-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 22px 20px 24px;
}
#ttAbViewModal .tt-ab-qr-large-img {
    width: min(320px, 72vw);
    height: min(320px, 72vw);
    max-width: 100%;
    padding: 16px;
    box-sizing: border-box;
    border-radius: 16px;
    background: #ffffff;
    object-fit: contain;
    image-rendering: pixelated;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
}
#ttAbViewModal .tt-ab-qr-panel-hint {
    margin: 0;
    text-align: center;
    font-size: 0.92rem;
    line-height: 1.4;
    color: #9ec5ff;
}

/* Dense QR (portrait embedded in vCard): nearly full-screen for reliable phone scan */
#ttAbViewModal .tt-ab-qr-overlay.is-fullscreen {
    padding: 0;
    background: rgba(4, 8, 20, 0.92);
}
#ttAbViewModal .tt-ab-qr-overlay.is-fullscreen .tt-ab-qr-panel {
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    border-radius: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    display: flex;
    flex-direction: column;
}
#ttAbViewModal .tt-ab-qr-overlay.is-fullscreen .tt-ab-qr-panel-head {
    flex: 0 0 auto;
    padding: 12px 16px;
    border-bottom: none;
    background: rgba(10, 16, 32, 0.72);
}
#ttAbViewModal .tt-ab-qr-overlay.is-fullscreen .tt-ab-qr-panel-body {
    flex: 1 1 auto;
    justify-content: center;
    gap: 12px;
    padding: 12px 16px 20px;
    min-height: 0;
}
#ttAbViewModal .tt-ab-qr-overlay.is-fullscreen .tt-ab-qr-large-img {
    width: min(92vmin, calc(100vw - 24px), calc(100vh - 110px));
    height: min(92vmin, calc(100vw - 24px), calc(100vh - 110px));
    max-width: none;
    padding: min(28px, 4vmin);
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}
#ttAbViewModal .tt-ab-qr-overlay.is-fullscreen .tt-ab-qr-panel-hint {
    font-size: 0.95rem;
    color: #c5daf8;
}

/* Social & Links editor (dedicated panel — not the full contact form) */
#ttAbViewModal .tt-ab-social-overlay {
    position: fixed;
    inset: 0;
    z-index: 21050;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(6, 12, 28, 0.78);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
#ttAbViewModal .tt-ab-social-overlay[hidden] { display: none !important; }
#ttAbViewModal .tt-ab-social-overlay.is-open { display: grid !important; }
#ttAbViewModal .tt-ab-social-panel {
    width: min(440px, 100%);
    max-height: min(90vh, 640px);
    overflow: auto;
    border-radius: 16px;
    border: 1px solid rgba(158, 197, 255, 0.35);
    background: #0f1b33;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.45);
    color: #e8f1ff;
}
#ttAbViewModal .tt-ab-social-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(158, 197, 255, 0.2);
}
#ttAbViewModal .tt-ab-social-panel-head h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #f4f8ff;
}
#ttAbViewModal .tt-ab-social-panel-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
}
#ttAbViewModal .tt-ab-social-hint {
    margin: 0 0 4px;
    font-size: 0.9rem;
    color: #9ec5ff;
}
#ttAbViewModal .tt-ab-social-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}
#ttAbViewModal .tt-ab-social-field > span {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #c5daf8;
}
#ttAbViewModal .tt-ab-social-field .tt-input {
    width: 100%;
    box-sizing: border-box;
    background: #ffffff !important;
    color: #0a1628 !important;
    border: 1px solid #c5d4ea;
    border-radius: 10px;
    padding: 10px 12px;
}
#ttAbViewModal .tt-ab-social-field .tt-input::placeholder {
    color: #6b7c99;
}
#ttAbViewModal .tt-ab-social-panel-foot {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 16px 16px;
    border-top: 1px solid rgba(158, 197, 255, 0.2);
}
#ttAbViewModal .tt-ab-tags-overlay {
    position: fixed;
    inset: 0;
    z-index: 21050;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(6, 12, 28, 0.78);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
#ttAbViewModal .tt-ab-tags-overlay[hidden] { display: none !important; }
#ttAbViewModal .tt-ab-tags-overlay.is-open { display: grid !important; }
#ttAbViewModal .tt-ab-tags-panel {
    width: min(440px, 100%);
    max-height: min(90vh, 560px);
    overflow: auto;
    border-radius: 16px;
    border: 1px solid rgba(158, 197, 255, 0.35);
    background: #0f1b33;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.45);
    color: #e8f1ff;
}
#ttAbViewModal .tt-ab-tags-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(158, 197, 255, 0.2);
}
#ttAbViewModal .tt-ab-tags-panel-head h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #f4f8ff;
}
#ttAbViewModal .tt-ab-tags-panel-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
}
#ttAbViewModal .tt-ab-tags-hint {
    margin: 0 0 4px;
    font-size: 0.9rem;
    color: #9ec5ff;
}
#ttAbViewModal .tt-ab-tags-editor-host .tt-ab-tags-field > label,
#ttAbViewModal .tt-ab-tags-editor-host > .tt-ab-tags-field > label {
    color: #c5daf8;
}
#ttAbViewModal .tt-ab-tags-editor-host .tt-ab-tags-input {
    width: 100%;
    box-sizing: border-box;
    background: #ffffff !important;
    color: #0a1628 !important;
    -webkit-text-fill-color: #0a1628;
    border: 1px solid #c5d4ea;
    border-radius: 10px;
    padding: 10px 12px;
}
#ttAbViewModal .tt-ab-tags-editor-host .tt-ab-tags-input::placeholder {
    color: #6b7c99 !important;
    -webkit-text-fill-color: #6b7c99;
    opacity: 1;
}
#ttAbViewModal .tt-ab-tags-editor-host .tt-ab-tag-chip {
    background: #f4f7fb;
    color: #0a1628;
    border-color: rgba(10, 22, 40, 0.22);
}
#ttAbViewModal .tt-ab-tags-panel-foot {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 16px 16px;
    border-top: 1px solid rgba(158, 197, 255, 0.2);
}
#ttAbViewModal .tt-ab-view-identity {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    min-width: 0;
}
#ttAbViewModal .tt-ab-view-portrait-col {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
#ttAbViewModal .tt-ab-view-portrait {
    width: 124px;
    height: 124px;
    border-radius: 50%;
    border: 3px solid rgba(47, 155, 255, 0.85);
    box-shadow: 0 0 0 4px rgba(47, 155, 255, 0.15), var(--abv-glow);
    background: rgba(30, 48, 88, 0.9);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    flex-shrink: 0;
}
#ttAbViewModal .tt-ab-view-portrait img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#ttAbViewModal .tt-ab-view-initials {
    font-size: 40px;
    font-weight: 700;
    color: var(--abv-blue);
    letter-spacing: 0.02em;
    transform: translateY(-0.04em);
}
#ttAbViewModal .tt-ab-view-portrait.has-photo .tt-ab-view-initials { display: none; }
#ttAbViewModal .tt-ab-view-fav {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    border: 1px solid rgba(250, 204, 21, 0.55);
    background: rgba(12, 18, 36, 0.9);
    color: #facc15;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
#ttAbViewModal .tt-ab-view-fav svg { width: 15px; height: 15px; fill: currentColor; }
#ttAbViewModal .tt-ab-view-photo-link {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--abv-blue);
    cursor: pointer;
}
#ttAbViewModal .tt-ab-view-identity-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
}
#ttAbViewModal .tt-ab-view-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
#ttAbViewModal .tt-ab-view-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
#ttAbViewModal .tt-ab-view-badge svg { width: 13px; height: 13px; }
#ttAbViewModal .tt-ab-view-badge--category {
    background: rgba(139, 92, 246, 0.22);
    color: #d8b4fe;
    border: 1px solid rgba(167, 139, 250, 0.45);
}
#ttAbViewModal .tt-ab-view-badge--active {
    background: rgba(34, 197, 94, 0.16);
    color: #86efac;
    border: 1px solid rgba(34, 197, 94, 0.35);
}
#ttAbViewModal .tt-ab-view-badge--private {
    background: rgba(148, 163, 184, 0.16);
    color: #cbd5e1;
    border: 1px solid rgba(148, 163, 184, 0.35);
}
#ttAbViewModal .tt-ab-view-badge--rating {
    background: rgba(250, 204, 21, 0.12);
    color: #fde68a;
    border: 1px solid rgba(250, 204, 21, 0.35);
    gap: 4px;
}
#ttAbViewModal .tt-ab-view-badge--rating .tt-ab-list-rating {
    margin-top: 0;
}
#ttAbViewModal .tt-ab-view-badge--rating .tt-ab-list-star { color: rgba(255, 255, 255, 0.28); }
#ttAbViewModal .tt-ab-view-badge--rating .tt-ab-list-star.is-on { color: #facc15; }
#ttAbViewModal .tt-ab-view-badge--rating .tt-ab-list-rating-avg { color: #fff; }
#ttAbViewModal .tt-ab-view-badge--rating .tt-ab-list-rating-count { color: rgba(255, 255, 255, 0.7); }
#ttAbViewModal .tt-ab-view-name {
    margin: 0;
    padding: 0;
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
    color: #fff;
}
#ttAbViewModal .tt-ab-view-meta {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--abv-muted);
}
#ttAbViewModal .tt-ab-view-meta--creds {
    color: #9ec5ff;
    font-weight: 600;
}
#ttAbViewModal .tt-ab-view-meta--company {
    color: #e8eefc;
    font-weight: 600;
}
#ttAbViewModal .tt-ab-view-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}
#ttAbViewModal .tt-ab-view-quick-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 108px;
    height: 42px;
    padding: 0 16px;
    border-radius: 999px;
    border: none;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    transition: transform 0.12s ease, filter 0.12s ease;
}
#ttAbViewModal .tt-ab-view-quick-btn svg { width: 16px; height: 16px; }
#ttAbViewModal .tt-ab-view-quick-btn:hover:not(:disabled) { filter: brightness(1.08); transform: translateY(-1px); }
#ttAbViewModal .tt-ab-view-quick-btn:disabled { opacity: 0.4; cursor: not-allowed; }
#ttAbViewModal .tt-ab-view-quick-btn--call { background: linear-gradient(135deg, #1d8fff, #2563eb); box-shadow: 0 8px 20px rgba(37, 99, 235, 0.35); }
#ttAbViewModal .tt-ab-view-quick-btn--sms { background: linear-gradient(135deg, #8b5cf6, #6d28d9); box-shadow: 0 8px 20px rgba(109, 40, 217, 0.3); }
#ttAbViewModal .tt-ab-view-quick-btn--email { background: linear-gradient(135deg, #22c55e, #16a34a); box-shadow: 0 8px 20px rgba(22, 163, 74, 0.3); }
#ttAbViewModal .tt-ab-view-card-preview {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--abv-border);
    background: rgba(8, 12, 24, 0.7);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
    min-height: 120px;
    width: min(280px, 34vw);
    flex: 0 1 auto;
}
#ttAbViewModal .tt-ab-view-card-preview-link { display: block; }
#ttAbViewModal .tt-ab-view-card-preview img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 160px;
    object-fit: cover;
}

/* Tabs — desktop: hide (full dashboard). Mobile: show */
#ttAbViewModal .tt-ab-view-tabs {
    display: none;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    border-bottom: 1px solid rgba(64, 140, 255, 0.2);
}
#ttAbViewModal .tt-ab-view-tabs-bar {
    display: flex;
    flex: 1;
    gap: 2px;
    overflow-x: auto;
    min-width: 0;
}
#ttAbViewModal .tt-ab-view-tab {
    flex: 0 0 auto;
    padding: 12px 14px;
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--abv-muted);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
#ttAbViewModal .tt-ab-view-tab.is-active {
    color: #fff;
    border-bottom-color: var(--abv-blue);
    text-shadow: 0 0 12px rgba(47, 155, 255, 0.45);
}
#ttAbViewModal .tt-ab-view-tab:disabled { opacity: 0.4; cursor: not-allowed; }
#ttAbViewModal .tt-ab-view-tab-edit {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid var(--abv-border);
    background: transparent;
    color: var(--abv-blue);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
}
#ttAbViewModal .tt-ab-view-tab-edit svg { width: 14px; height: 14px; }

/* Dashboard grid */
#ttAbViewModal .tt-ab-ov-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
#ttAbViewModal .tt-ab-ov-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}
#ttAbViewModal .tt-ab-ov-card {
    background: var(--abv-card);
    border: 1px solid var(--abv-border);
    border-radius: 16px;
    padding: 16px 16px 14px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
#ttAbViewModal .tt-ab-ov-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}
#ttAbViewModal .tt-ab-ov-card-title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
#ttAbViewModal .tt-ab-ov-card-title svg { width: 16px; height: 16px; color: var(--abv-blue); }
#ttAbViewModal .tt-ab-ov-edit {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid var(--abv-border);
    background: transparent;
    color: var(--abv-blue);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}
#ttAbViewModal .tt-ab-ov-row {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
#ttAbViewModal .tt-ab-ov-row:first-of-type { border-top: none; padding-top: 2px; }
#ttAbViewModal .tt-ab-ov-row-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(47, 155, 255, 0.14);
    color: var(--abv-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
#ttAbViewModal .tt-ab-ov-row-icon svg { width: 16px; height: 16px; }
#ttAbViewModal .tt-ab-ov-row-copy { min-width: 0; }
#ttAbViewModal .tt-ab-ov-row-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--abv-muted);
    margin-bottom: 2px;
}
#ttAbViewModal .tt-ab-ov-row-value {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    word-break: break-word;
}
#ttAbViewModal .tt-ab-ov-row-value.is-empty { color: var(--abv-muted); font-weight: 500; }
#ttAbViewModal .tt-ab-ov-row-actions {
    display: inline-flex;
    gap: 6px;
}
#ttAbViewModal .tt-ab-ov-mini {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid var(--abv-border);
    background: rgba(47, 155, 255, 0.12);
    color: var(--abv-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
#ttAbViewModal .tt-ab-ov-mini svg { width: 14px; height: 14px; }
#ttAbViewModal .tt-ab-ov-mini:disabled { opacity: 0.35; cursor: not-allowed; }
#ttAbViewModal .tt-ab-ov-cat-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(139, 92, 246, 0.22);
    color: #d8b4fe;
    border: 1px solid rgba(167, 139, 250, 0.45);
    font-size: 12px;
    font-weight: 700;
}
#ttAbViewModal .tt-ab-ov-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
#ttAbViewModal .tt-ab-ov-tag {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(30, 41, 70, 0.9);
    border: 1px solid rgba(148, 163, 184, 0.25);
    color: #dbe4f5;
    font-size: 12px;
    font-weight: 600;
}
#ttAbViewModal .tt-ab-ov-tag-add {
    border-style: dashed;
    color: var(--abv-blue);
    cursor: pointer;
    background: transparent;
}
#ttAbViewModal .tt-ab-ov-note {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
#ttAbViewModal .tt-ab-ov-note:first-of-type { border-top: none; }
#ttAbViewModal .tt-ab-ov-note-av {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(47, 155, 255, 0.2);
    color: #bfdbfe;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
}
#ttAbViewModal .tt-ab-ov-note-text {
    margin: 0 0 4px;
    font-size: 13px;
    color: #e8eefc;
    line-height: 1.4;
}
#ttAbViewModal .tt-ab-ov-note-meta {
    font-size: 11px;
    color: var(--abv-muted);
}
#ttAbViewModal .tt-ab-ov-empty {
    margin: 0;
    font-size: 13px;
    color: var(--abv-muted);
}
#ttAbViewModal .tt-ab-ov-loc-line {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    margin-bottom: 6px;
}
#ttAbViewModal .tt-ab-ov-loc-line svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    color: #7eb6ff;
}
#ttAbViewModal .tt-ab-ov-loc-line--city {
    padding-left: 24px;
    margin-bottom: 10px;
    font-weight: 500;
    font-size: 13px;
    color: #c5daf8;
}
#ttAbViewModal .tt-ab-ov-map {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--abv-border);
    background: rgba(8, 12, 24, 0.8);
    min-height: 120px;
}
#ttAbViewModal .tt-ab-ov-map-thumb {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    cursor: pointer;
    font: inherit;
    color: inherit;
    text-align: left;
}
#ttAbViewModal .tt-ab-ov-map-thumb:hover {
    border-color: rgba(80, 170, 255, 0.7);
}
#ttAbViewModal .tt-ab-ov-map-thumb:focus-visible {
    outline: 2px solid var(--abv-blue);
    outline-offset: 2px;
}
#ttAbViewModal .tt-ab-ov-map-thumb-map {
    width: 100%;
    height: 148px;
    pointer-events: none;
}
#ttAbViewModal .tt-ab-ov-map-thumb-overlay {
    position: absolute;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(8, 12, 24, 0.82);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
    pointer-events: none;
}
#ttAbViewModal .tt-ab-ov-map iframe,
#ttAbViewModal .tt-ab-ov-map img {
    display: block;
    width: 100%;
    height: 140px;
    object-fit: cover;
    border: 0;
}
#ttAbViewModal .tt-ab-ov-social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
#ttAbViewModal .tt-ab-ov-social-btn {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    border: 1px solid var(--abv-border);
    background: rgba(30, 48, 88, 0.75);
    color: #c8d7f5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}
#ttAbViewModal .tt-ab-ov-social-btn.is-on {
    color: #fff;
    border-color: var(--abv-blue);
    box-shadow: 0 0 16px rgba(47, 155, 255, 0.25);
}
#ttAbViewModal .tt-ab-ov-social-btn svg { width: 18px; height: 18px; }
#ttAbViewModal .tt-ab-ov-social-btn.is-disabled {
    opacity: 0.35;
    pointer-events: none;
}

/* Business card footer band */
#ttAbViewModal .tt-ab-ov-biz {
    margin-top: 16px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 16px;
}
#ttAbViewModal .tt-ab-ov-biz-media {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--abv-border);
    background: #000;
    min-height: 110px;
}
#ttAbViewModal .tt-ab-ov-biz-media img {
    display: block;
    width: 100%;
    max-height: 180px;
    object-fit: contain;
    background: #0a0f1c;
}
#ttAbViewModal .tt-ab-ov-biz-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
#ttAbViewModal .tt-ab-ov-biz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 160px;
    height: 42px;
    padding: 0 16px;
    border-radius: 12px;
    border: 1px solid var(--abv-border-strong);
    background: rgba(20, 40, 80, 0.9);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}
#ttAbViewModal .tt-ab-ov-biz-btn svg { width: 15px; height: 15px; }
#ttAbViewModal .tt-ab-ov-biz-btn.is-busy {
    opacity: 0.55;
    pointer-events: none;
}

/* Contact Reviews */
#ttAbViewModal .tt-ab-ov-card--reviews {
    margin-top: 16px;
}
#ttAbViewModal .tt-ab-ov-reviews-summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
    color: var(--abv-muted);
    font-size: 12px;
    font-weight: 600;
}
#ttAbViewModal .tt-ab-ov-reviews-avg {
    color: #fff;
    font-size: 14px;
    font-weight: 800;
}
#ttAbViewModal .tt-ab-ov-stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
#ttAbViewModal .tt-ab-ov-star {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
}
#ttAbViewModal .tt-ab-ov-stars.is-interactive .tt-ab-ov-star {
    width: 32px;
    height: 32px;
    cursor: pointer;
    border-radius: 8px;
}
#ttAbViewModal .tt-ab-ov-stars.is-interactive .tt-ab-ov-star:hover,
#ttAbViewModal .tt-ab-ov-stars.is-interactive .tt-ab-ov-star:focus-visible {
    background: rgba(250, 204, 21, 0.12);
    outline: none;
}
#ttAbViewModal .tt-ab-ov-star svg {
    width: 16px;
    height: 16px;
}
#ttAbViewModal .tt-ab-ov-stars.is-interactive .tt-ab-ov-star svg {
    width: 22px;
    height: 22px;
}
#ttAbViewModal .tt-ab-ov-star.is-on {
    color: #facc15;
}
#ttAbViewModal .tt-ab-ov-star.is-on svg {
    fill: currentColor;
}
#ttAbViewModal .tt-ab-ov-review-compose {
    padding: 14px;
    margin-bottom: 14px;
    border-radius: 14px;
    border: 1px solid var(--abv-border);
    background: rgba(10, 22, 48, 0.55);
}
#ttAbViewModal .tt-ab-ov-review-compose-label {
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 8px;
}
#ttAbViewModal .tt-ab-ov-review-compose-stars {
    margin-bottom: 10px;
}
#ttAbViewModal .tt-ab-ov-review-comment {
    width: 100%;
    min-height: 64px;
    resize: vertical;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid var(--abv-border-strong, var(--abv-border));
    background: #fff;
    color: #0f172a;
    font: inherit;
    font-size: 13px;
    line-height: 1.4;
    box-sizing: border-box;
}
#ttAbViewModal .tt-ab-ov-review-comment::placeholder {
    color: #64748b;
}
#ttAbViewModal .tt-ab-ov-review-compose-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
#ttAbViewModal .tt-ab-ov-edit--danger {
    color: #fda4af;
    border-color: rgba(253, 164, 175, 0.45);
}
#ttAbViewModal .tt-ab-ov-review-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
#ttAbViewModal .tt-ab-ov-review {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.03);
}
#ttAbViewModal .tt-ab-ov-review.is-mine {
    border-color: rgba(250, 204, 21, 0.28);
    background: rgba(250, 204, 21, 0.06);
}
#ttAbViewModal .tt-ab-ov-review-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}
#ttAbViewModal .tt-ab-ov-review-author {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
}
#ttAbViewModal .tt-ab-ov-review-author em {
    font-style: normal;
    font-weight: 600;
    color: #facc15;
}
#ttAbViewModal .tt-ab-ov-review-del {
    border: 0;
    background: transparent;
    color: #fda4af;
    font: inherit;
    font-size: inherit;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
}

/* Mobile chevron rows */
#ttAbViewModal .tt-ab-ov-mobile-links { display: none; }
#ttAbViewModal .tt-ab-ov-link-row {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 14px 14px;
    margin-top: 12px;
    border-radius: 16px;
    border: 1px solid var(--abv-border);
    background: var(--abv-card);
    color: #fff;
    text-align: left;
    cursor: pointer;
}
#ttAbViewModal .tt-ab-ov-link-row-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
#ttAbViewModal .tt-ab-ov-link-row-icon--cat { background: rgba(139, 92, 246, 0.2); color: #c4b5fd; }
#ttAbViewModal .tt-ab-ov-link-row-icon--loc { background: rgba(34, 197, 94, 0.16); color: #86efac; }
#ttAbViewModal .tt-ab-ov-link-row-icon--social { background: rgba(56, 189, 248, 0.18); color: #7dd3fc; }
#ttAbViewModal .tt-ab-ov-link-row-copy { flex: 1; min-width: 0; }
#ttAbViewModal .tt-ab-ov-link-row-label { display: block; font-size: 12px; color: var(--abv-muted); font-weight: 600; }
#ttAbViewModal .tt-ab-ov-link-row-value { display: block; font-size: 14px; font-weight: 700; margin-top: 2px; }
#ttAbViewModal .tt-ab-ov-link-chevron { color: var(--abv-muted); }

/* Field edit / customize (keep usable on dark modal) */
#ttAbViewModal .tt-ab-view-readonly.tt-ab-view-dashboard {
    display: block;
}
#ttAbViewModal .tt-ab-view-readonly.is-editing,
#ttAbViewModal .tt-ab-view-readonly.is-customizing {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
#ttAbViewModal .tt-ab-view-field {
    background: var(--abv-card);
    border: 1px solid var(--abv-border);
    border-radius: 14px;
    padding: 12px 14px;
}
#ttAbViewModal .tt-ab-view-label { color: var(--abv-muted); }
#ttAbViewModal .tt-ab-view-value { color: #fff; }
#ttAbViewModal .tt-ab-view-input,
#ttAbViewModal .tt-select {
    background: rgba(8, 12, 24, 0.85);
    color: #fff;
    border-color: var(--abv-border);
}
#ttAbViewModal .tt-ab-tags-field > label {
    color: #f4f7ff;
}
#ttAbViewModal .tt-ab-tags-field .tt-field-optional {
    color: #d5e4f7;
}
#ttAbViewModal .tt-ab-tag-chip {
    background: #f4f7fb;
    color: #0a1628;
    border-color: rgba(10, 22, 40, 0.22);
}
#ttAbViewModal .tt-ab-tag-chip-remove {
    color: #1e293b;
}
#ttAbViewModal .tt-ab-tag-chip-remove:hover,
#ttAbViewModal .tt-ab-tag-chip-remove:focus-visible {
    color: #b91c1c;
}
#ttAbViewModal .tt-ab-tags-input {
    color: #f7fbff !important;
    -webkit-text-fill-color: #f7fbff;
    caret-color: #fff;
}
#ttAbViewModal .tt-ab-tags-input::placeholder {
    color: #d5e4f7 !important;
    -webkit-text-fill-color: #d5e4f7;
    opacity: 1;
}
#ttAbViewModal .tt-ab-view-hero.is-media-collapsed .tt-ab-view-portrait,
#ttAbViewModal .tt-ab-view-hero.is-media-collapsed .tt-ab-view-portrait-actions,
#ttAbViewModal .tt-ab-view-hero.is-media-collapsed .tt-ab-view-media-side,
#ttAbViewModal .tt-ab-view-hero.is-media-collapsed .tt-ab-view-card-preview,
#ttAbViewModal .tt-ab-view-hero.is-media-collapsed .tt-ab-view-qr-preview {
    display: none;
}

@media (max-width: 980px) {
    #ttAbViewModal .tt-ab-ov-grid {
        grid-template-columns: 1fr 1fr;
    }
    #ttAbViewModal .tt-ab-ov-grid > .tt-ab-ov-card--contact {
        grid-column: 1 / -1;
    }
}

/* Lock page scroll while Contact Details is open (esp. iOS: overflow:hidden alone is not enough). */
html.tt-ab-view-open,
body.tt-ab-view-open {
    overflow: hidden !important;
    overscroll-behavior: none;
}
body.tt-ab-view-open {
    position: fixed;
    width: 100%;
    left: 0;
    right: 0;
}

@media (max-width: 760px) {
    /* Center in the viewport: use % of the padded overlay, not 100vw (which overflows). */
    #ttAbViewModal.tt-modal-overlay,
    #ttAbViewModal {
        padding: max(8px, env(safe-area-inset-top, 0px)) max(8px, env(safe-area-inset-right, 0px))
            max(8px, env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left, 0px));
        display: grid !important;
        place-items: center;
        justify-items: center;
        align-items: center;
        box-sizing: border-box;
        overflow: hidden;
        overscroll-behavior: none;
        touch-action: none;
    }
    #ttAbViewModal[hidden] {
        display: none !important;
    }
    #ttAbViewModal .tt-ab-view-modal {
        width: 100%;
        max-width: min(440px, 100%);
        height: min(calc(100dvh - 16px), calc(100vh - 16px));
        max-height: min(calc(100dvh - 16px), calc(100vh - 16px));
        margin: 0 auto;
        border-radius: 20px;
        box-sizing: border-box;
        justify-self: center;
        align-self: center;
        touch-action: auto;
        overscroll-behavior: contain;
    }
    #ttAbViewModal .tt-ab-view-body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-y: contain;
        touch-action: pan-y;
    }
    #ttAbViewModal .tt-ab-view-head-title { display: none; }
    #ttAbViewModal .tt-ab-view-back { display: inline-flex; }
    #ttAbViewModal .tt-ab-view-back-label { display: none; }
    #ttAbViewModal .tt-ab-view-body { padding: 14px 14px 20px; }
    #ttAbViewModal .tt-ab-view-hero {
        grid-template-columns: 1fr;
        text-align: center;
        border-bottom: none;
        padding-bottom: 8px;
    }
    #ttAbViewModal .tt-ab-view-identity {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 12px;
    }
    #ttAbViewModal .tt-ab-view-identity-copy { align-items: center; text-align: center; }
    #ttAbViewModal .tt-ab-view-portrait {
        width: 112px;
        height: 112px;
        border-color: rgba(167, 139, 250, 0.9);
        box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.2), 0 0 28px rgba(139, 92, 246, 0.35);
    }
    #ttAbViewModal .tt-ab-view-fav { display: inline-flex; }
    #ttAbViewModal .tt-ab-view-name { font-size: 26px; text-align: center; }
    #ttAbViewModal .tt-ab-view-media-side {
        justify-content: center;
        width: 100%;
    }
    #ttAbViewModal .tt-ab-view-card-preview { display: none !important; }
    #ttAbViewModal .tt-ab-view-qr-preview { margin: 0 auto; }
    #ttAbViewModal .tt-ab-view-quick {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
    }
    #ttAbViewModal .tt-ab-view-quick-btn {
        min-width: 0;
        height: auto;
        flex-direction: column;
        gap: 6px;
        padding: 12px 6px;
        border-radius: 14px;
        font-size: 11px;
    }
    #ttAbViewModal .tt-ab-view-quick-btn svg { width: 18px; height: 18px; }
    #ttAbViewModal .tt-ab-view-tabs { display: flex; }
    #ttAbViewModal .tt-ab-ov-grid {
        grid-template-columns: 1fr;
    }
    #ttAbViewModal .tt-ab-ov-col--side,
    #ttAbViewModal .tt-ab-ov-biz,
    #ttAbViewModal .tt-ab-ov-card--tags,
    #ttAbViewModal .tt-ab-ov-card--notes,
    #ttAbViewModal .tt-ab-ov-card--location,
    #ttAbViewModal .tt-ab-ov-card--social {
        display: none;
    }
    #ttAbViewModal .tt-ab-ov-mobile-links { display: block; }
    /* Business Card tab: swap Details for the card panel (band is otherwise hidden on mobile). */
    #ttAbViewModal.is-bizcard-tab .tt-ab-ov-grid,
    #ttAbViewModal.is-bizcard-tab .tt-ab-ov-mobile-links {
        display: none !important;
    }
    #ttAbViewModal.is-bizcard-tab .tt-ab-ov-biz {
        display: grid !important;
        grid-template-columns: 1fr;
        margin-top: 0;
    }
    #ttAbViewModal.is-bizcard-tab .tt-ab-ov-biz-media {
        min-height: 160px;
    }
    #ttAbViewModal.is-bizcard-tab .tt-ab-ov-biz-media img {
        max-height: min(55vh, 360px);
    }
    #ttAbViewModal.is-bizcard-tab .tt-ab-ov-biz-actions {
        flex-direction: row;
        flex-wrap: wrap;
    }
    #ttAbViewModal.is-bizcard-tab .tt-ab-ov-biz-btn {
        flex: 1 1 auto;
        min-width: 0;
    }
    #ttAbViewModal .tt-ab-view-foot { display: none; }
    #ttAbViewModal .tt-ab-view-share-btn#ttAbViewPrintBtn,
    #ttAbViewModal .tt-ab-view-share-btn#ttAbViewVcardBtn { display: none; }
}

/* Contact print: hide the long contacts page so the fixed modal is not stamped on every page */
@media print {
    body.tt-ab-printing {
        background: #fff !important;
        height: auto !important;
        overflow: visible !important;
    }
    body.tt-ab-printing > *:not(#ttAbViewModal) {
        display: none !important;
    }
    body.tt-ab-printing #ttAbViewModal {
        display: block !important;
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        overflow: visible !important;
        place-items: unset !important;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-modal {
        width: 100% !important;
        max-width: none !important;
        max-height: none !important;
        height: auto !important;
        margin: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
        break-inside: avoid-page;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-body {
        overflow: visible !important;
        max-height: none !important;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-share-btn,
    body.tt-ab-printing #ttAbViewModal .tt-modal-close,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-back,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-quick,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-tabs,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-customize-bar,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-foot,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-photo-link,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-fav,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-map-thumb-overlay,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-card-edit,
    body.tt-ab-printing #ttAbViewModal [data-tt-ab-ov-edit] {
        display: none !important;
    }
    body.tt-ab-printing,
    body.tt-ab-printing #ttAbViewModal,
    body.tt-ab-printing #ttAbViewModal * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color: #0a1628 !important;
        text-shadow: none !important;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-modal,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-head,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-body,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-hero,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-card,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-biz,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-field,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-row-icon,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-mini,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-badge,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-cat-pill,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-tag,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-portrait {
        background: #ffffff !important;
        box-shadow: none !important;
        border-color: #0a1628 !important;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-grid {
        display: block !important;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-col,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-col--side,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-card,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-biz {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 12px !important;
        break-inside: avoid;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-name {
        font-size: 28px !important;
        font-weight: 800 !important;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-card,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-biz,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-badge,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-cat-pill,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-row-icon,
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-mini,
    body.tt-ab-printing #ttAbViewModal .tt-ab-view-portrait {
        border: 1.5px solid #0a1628 !important;
    }
    body.tt-ab-printing #ttAbViewModal .tt-ab-ov-row {
        border-top: 1px solid #8aa0b8 !important;
    }
    body.tt-ab-printing #ttAbViewModal a {
        text-decoration: underline !important;
    }
}

/* Multi-email chips on dark Contact modals: light box + dark text (WCAG) */
#ttAbModal .tt-email-chips-box,
#ttAbViewModal .tt-email-chips-box {
    background: #ffffff !important;
    border-color: #c5d4ea !important;
    color: #0a1628 !important;
}
#ttAbModal .tt-email-chips-editor,
#ttAbViewModal .tt-email-chips-editor {
    color: #0a1628 !important;
}
#ttAbModal .tt-email-chip,
#ttAbViewModal .tt-email-chip {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: #0a1628;
}
#ttAbModal .tt-email-chip-label em,
#ttAbViewModal .tt-email-chip-label em {
    color: #475569;
}

#ttAbViewModal .tt-contact-actions--tel,
#ttAbModal .tt-contact-actions--tel,
#ttAbListHost .tt-contact-actions--tel {
    display: inline-flex;
}
#ttAbListHost .tt-contact-field {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
    width: max-content;
    max-width: none;
    min-width: 0;
}
#ttAbListHost .tt-ab-phone-stack {
    min-width: max-content;
}
#ttAbListHost .tt-ab-phone-stack-main {
    flex: 0 0 auto;
    min-width: max-content;
}
#ttAbListHost .tt-ab-list-phone {
    flex: 0 0 auto;
    min-width: max-content;
    white-space: nowrap;
    font-weight: 700;
    color: var(--tt-text);
}
#ttAbListHost .tt-ab-phone-stack-line .tt-contact-field {
    width: max-content;
}
#ttAbListHost .tt-contact-action {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #eff6ff;
    border-color: #bfdbfe;
    color: var(--tt-accent);
}
#ttAbListHost .tt-contact-action:hover:not(:disabled) {
    background: #dbeafe;
    border-color: var(--tt-accent);
}
.tt-ab-phone-stack {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.tt-ab-phone-stack-line {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.tt-ab-phone-stack-main {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1 1 auto;
}
.tt-ab-phone-stack-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--tt-text-dim);
    line-height: 1.2;
}
.tt-ab-phone-stack-line .tt-contact-field {
    width: auto;
}
.tt-ab-full-name-value {
    margin: 0;
    min-height: 38px;
    display: flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: var(--tt-radius-sm);
    border: 1px solid var(--tt-border);
    background: var(--tt-bg-2, #f3f6fa);
    color: var(--tt-text);
    font-size: 14px;
    font-weight: 600;
}
.tt-ab-full-name-value.is-empty {
    color: var(--tt-text-faint);
    font-weight: 500;
}
.tt-ab-form .tt-ab-full-name-field {
    margin-bottom: 12px;
}
.tt-ab-form .tt-ab-office-phone-row {
    grid-template-columns: minmax(0, 1fr) 96px;
    align-items: end;
}
.tt-ab-office-phone-row .tt-ab-office-ext .tt-input {
    text-align: center;
}
#ttAbViewModal .tt-ab-office-phone-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px;
    gap: 8px;
    align-items: end;
    width: 100%;
}
#ttAbViewModal .tt-ab-office-ext .tt-ab-view-label {
    margin-bottom: 4px;
}
/* Above Contact Details / Add Contact; below delete confirm (20000). */
#ttAbPortraitCropModal {
    z-index: 19000 !important;
}
.tt-ab-crop-stage {
    width: 100%;
    max-height: min(55vh, 420px);
    background: #111;
    border-radius: 12px;
    overflow: hidden;
}
.tt-ab-crop-stage img {
    display: block;
    max-width: 100%;
}
.tt-ab-crop-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.tt-ab-portrait-progress {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 12px;
}
.tt-ab-portrait-progress[hidden] {
    display: none !important;
}
.tt-ab-portrait-progress-track {
    height: 8px;
    border-radius: 999px;
    background: #d7e2ef;
    overflow: hidden;
    border: 1px solid #9db8d8;
}
.tt-ab-portrait-progress-fill {
    display: block;
    width: 0%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1564e6, #2f9bff);
    transition: width 0.15s ease;
}
.tt-ab-portrait-progress.is-indeterminate .tt-ab-portrait-progress-fill {
    width: 35%;
    animation: tt-sprp-upload-indeterminate 1.1s ease-in-out infinite;
}
.tt-ab-portrait-progress-text {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: #0a1628;
}
#ttAbViewModal .tt-ab-portrait-progress {
    margin-top: 8px;
    width: 100%;
    max-width: 160px;
}
#ttAbViewModal .tt-ab-portrait-progress-track {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(47, 155, 255, 0.45);
}
#ttAbViewModal .tt-ab-portrait-progress-text {
    color: #dbeafe;
}
.tt-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

.tt-ab-dupes-modal.tt-modal {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    overflow: hidden;
    background: #f7fafc;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-ab-dupes-modal .tt-modal-head {
    background: linear-gradient(135deg, #163a66 0%, #1e4d8c 55%, #2563a8 100%);
    border-bottom: 0;
    color: #fff;
    border-radius: 14px 14px 0 0;
}
.tt-ab-dupes-modal .tt-modal-head h2 {
    color: #fff;
    text-transform: none;
}
.tt-ab-dupes-modal .tt-modal-close {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #fff;
    color: #163a66;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.tt-ab-dupes-modal .tt-modal-close:hover {
    background: #e8f1ff;
    color: #0f2744;
}
.tt-ab-dupes-modal .tt-modal-body {
    background: #f7fafc;
}
.tt-ab-dupes-intro { margin: 0 0 16px; color: #132d5a; }
.tt-ab-dupes-host { display: flex; flex-direction: column; gap: 18px; }
.tt-ab-dupe-group {
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    padding: 14px 16px;
    background: #fff;
    overflow: hidden;
}
.tt-ab-dupe-group-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}
.tt-ab-dupe-group-title { font-weight: 700; margin: 0; color: #0f2744; }
.tt-ab-dupe-group-meta { font-size: 0.875rem; color: #334155; }
.tt-ab-dupe-list { display: flex; flex-direction: column; gap: 8px; }
.tt-ab-dupe-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #e2eaf3;
    background: #fff;
}
.tt-ab-dupe-row.is-keep {
    border-color: #1e4d8c;
    background: #e8f1ff;
}
.tt-ab-dupes-modal .tt-ab-dupe-row input {
    accent-color: #163a66;
}
.tt-ab-dupe-row label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 0.875rem;
    white-space: nowrap;
}
.tt-ab-dupe-choice {
    font-weight: 800;
    color: #9f1239;
}
.tt-ab-dupe-row.is-keep .tt-ab-dupe-choice {
    color: #14532d;
}
.tt-ab-dupe-details { min-width: 0; }
.tt-ab-dupe-title { font-weight: 700; margin: 0 0 2px; color: #0f2744; }
.tt-ab-dupe-sub { margin: 0; font-size: 0.875rem; color: #334155; word-break: break-word; }
.tt-ab-dupe-score {
    font-size: 0.75rem;
    color: #163a66;
    font-weight: 700;
    white-space: nowrap;
    padding-top: 2px;
}
.tt-ab-dupes-modal .tt-modal-foot {
    background: #f7fafc;
    border-top: 1px solid #dbe7f3;
}
.tt-ab-dupes-modal .tt-modal-foot .tt-btn-ghost {
    background: #fff;
    color: #0f2744;
    border: 1px solid #94a3b8;
}
.tt-ab-dupes-modal .tt-modal-foot .tt-btn-primary {
    background: #0f2744;
    color: #fff;
    border: 1px solid #0f2744;
    box-shadow: none;
    text-transform: none;
}
@media (max-width: 640px) {
    .tt-ab-dupe-row {
        grid-template-columns: 1fr;
    }
}

/* Toured Properties (active buyers) */
.tt-toured-properties { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.tt-panel[data-tt-panel="toured_properties"] .tt-tp-chrome-card.tt-form-card--contingency-opts {
    overflow: hidden !important;
    border-radius: 14px;
    gap: 0;
    background: #fff;
    border: 1px solid #dbe7f3;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
}
.tt-tp-chrome-body {
    gap: 12px;
}
.tt-tp-add-btn--on-navy,
.tt-tp-detail-btn--on-navy {
    background: #fff !important;
    color: #0f2744 !important;
    border: 1px solid #fff !important;
    font-weight: 750;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.22);
    white-space: nowrap;
}
.tt-tp-add-btn--on-navy:hover,
.tt-tp-detail-btn--on-navy:hover {
    background: #eef5ff !important;
    color: #0f2744 !important;
    border-color: #dbe7f3 !important;
}
.tt-tp-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}
.tt-tp-toolbar-add { flex: 0 0 auto; white-space: nowrap; }
.tt-tp-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    flex: 1 1 420px;
    min-width: 0;
    width: 100%;
}
.tt-tp-chrome-body .tt-tp-filters .tt-input {
    background: #fff;
    color: #0f172a;
    border: 1px solid #c9d7e8;
    border-radius: 10px;
    min-height: 40px;
}
.tt-tp-search-wrap {
    flex: 1 1 140px;
    min-width: 120px;
    max-width: 220px;
}
.tt-tp-search-wrap .tt-input { width: 100%; max-width: none; }
.tt-tp-filter-interest { flex: 0 0 auto; width: 132px; max-width: none; }
.tt-tp-filter-date { flex: 0 0 auto; width: 142px; max-width: none; }
@media (min-width: 960px) {
    .tt-tp-filters { flex-wrap: nowrap; }
}
@media (max-width: 640px) {
    .tt-tp-filters {
        flex-basis: 100%;
    }
    .tt-tp-search-wrap {
        flex: 1 1 100%;
        max-width: none;
    }
}
.tt-tp-table-wrap { overflow-x: auto; border: 1px solid var(--tt-border); border-radius: 12px; background: var(--tt-card); }
.tt-tp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.tt-tp-table th, .tt-tp-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--tt-border); vertical-align: middle; }
.tt-tp-table th { white-space: nowrap; }
.tt-tp-sort {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: nowrap;
    white-space: nowrap;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    max-width: 100%;
}
.tt-tp-sort-icon {
    flex: 0 0 auto;
    display: inline-block;
    line-height: 1;
    font-size: 12px;
    opacity: 0.75;
}
.tt-tp-sort.is-active { font-weight: 600; }
.tt-tp-sort.is-active .tt-tp-sort-icon { opacity: 1; }
.tt-tp-empty { padding: 20px; text-align: center; color: var(--tt-text-muted); }
.tt-tp-address-link {
    background: none; border: 0; padding: 0; font: inherit; color: var(--tt-link, #2563eb);
    cursor: pointer; text-align: left; text-decoration: underline;
}
.tt-tp-address-plain { color: inherit; }
.tt-tp-actions {
    white-space: nowrap;
    min-width: 11.5rem;
}
.tt-tp-actions-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
}
.tt-tp-actions-main {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 2px;
    min-width: 0;
}
.tt-tp-actions-inner .tt-tp-delete-btn {
    margin-left: auto;
    flex: 0 0 auto;
}
.tt-tp-actions-inner .tt-btn {
    flex: 0 0 auto;
    white-space: nowrap;
}
.tt-tp-delete-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text-dim);
    cursor: pointer;
}
.tt-tp-delete-btn:hover {
    color: #b91c1c;
    background: rgba(185, 28, 28, 0.08);
    border-color: rgba(185, 28, 28, 0.18);
}
.tt-tp-delete-btn i[data-lucide],
.tt-tp-media-btn i[data-lucide] {
    width: 16px;
    height: 16px;
    pointer-events: none;
}
.tt-tp-media-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--tt-text-dim);
    font-size: 12px;
    font-weight: 650;
    cursor: pointer;
}
.tt-tp-media-btn:hover {
    color: var(--tt-accent);
    background: var(--tt-accent-soft);
    border-color: transparent;
}
.tt-tp-media-btn.is-empty {
    opacity: 0.55;
}
.tt-tp-media-count {
    min-width: 1ch;
    line-height: 1;
}
.tt-tp-table .tt-th-gear {
    width: 48px;
    text-align: center;
}
.tt-tp-table-wrap.tt-table-wrap--scroll-x .tt-th-gear,
.tt-tp-table-wrap.tt-table-wrap--scroll-x .tt-tp-actions {
    position: sticky;
    right: 0;
    z-index: 2;
    background: var(--tt-card);
}
.tt-tp-table-wrap.tt-table-wrap--scroll-x .tt-tp-actions {
    right: 48px;
    box-shadow: -6px 0 8px -8px rgba(0, 0, 0, 0.18);
}
.tt-tp-interest { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.tt-tp-interest--love { background: #fce7f3; color: #be185d; }
.tt-tp-interest--like { background: #dcfce7; color: #15803d; }
.tt-tp-interest--maybe { background: #fef9c3; color: #a16207; }
.tt-tp-interest--pass { background: #fee2e2; color: #b91c1c; }
.tt-modal--tour-detail {
    width: min(96vw, 1180px);
    max-width: none;
    max-height: calc(100dvh - 24px);
    display: flex;
    flex-direction: column;
}
.tt-tp-detail-overlay .tt-modal-body { overflow: auto; flex: 1; }
.tt-tp-detail-head-main { min-width: 0; }
.tt-tp-detail-sub:not(.tt-contingency-opts-sub) { margin: 4px 0 0; color: var(--tt-text-muted); font-size: 13px; }
.tt-tp-detail-head-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.tt-tp-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 0; }
.tt-tp-detail-section { margin-bottom: 0; }
.tt-tp-detail-section h4 { margin: 0 0 10px; font-size: 14px; }
.tt-tp-detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin: 0; }
.tt-tp-detail-facts dt { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--tt-text-muted); margin: 0; }
.tt-tp-detail-facts dd { margin: 0 0 8px; font-size: 14px; }
.tt-tp-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.tt-tp-section-head h4 { margin: 0; }
.tt-tp-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.tt-tp-photo-card { position: relative; margin: 0; border-radius: 10px; overflow: hidden; border: 1px solid var(--tt-border); background: var(--tt-bg); }
.tt-tp-photo-card img { display: block; width: 100%; height: 120px; object-fit: cover; }
.tt-tp-photo-card video { display: block; width: 100%; height: 120px; object-fit: cover; background: #111; }
.tt-tp-media-badge {
    position: absolute; left: 6px; bottom: 6px; padding: 2px 6px; border-radius: 999px;
    background: rgba(0,0,0,.65); color: #fff; font-size: 10px; font-weight: 600; letter-spacing: 0.02em;
}
.tt-tp-form-modal,
.tt-modal--tp-form,
.tt-modal--tp-detail {
    width: min(1120px, calc(100vw - 24px));
    max-width: none;
    max-height: calc(100dvh - 24px);
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.tt-modal--tp-detail {
    width: min(960px, calc(100vw - 24px));
}
.tt-tp-form-card,
.tt-tp-detail-card {
    margin: 0;
    width: 100%;
    max-height: calc(100dvh - 24px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 14px;
    box-shadow: 0 18px 48px rgba(15, 40, 80, 0.22);
}
.tt-tp-form-head,
.tt-tp-detail-head {
    position: relative;
    padding-right: 52px;
    flex: 0 0 auto;
}
.tt-tp-detail-head {
    padding-right: 56px;
}
.tt-tp-detail-head .tt-tp-detail-head-actions {
    margin-right: 4px;
}
.tt-tp-form-body,
.tt-tp-detail-body.tt-contingency-opts-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
}
.tt-tp-form-foot {
    flex: 0 0 auto;
}
.tt-tp-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: 14px;
    align-items: stretch;
    min-height: 0;
    flex: 1 1 auto;
}
.tt-tp-form-main {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.tt-tp-form-main .tt-field > label,
.tt-tp-detail-body .tt-field > label {
    color: #0f2744;
    font-weight: 700;
}
.tt-tp-form-main .tt-input,
.tt-tp-detail-body .tt-input {
    background: #fff;
    color: #0f172a;
    border: 1px solid #c9d7e8;
    border-radius: 10px;
    min-height: 42px;
    padding: 8px 12px;
}
.tt-tp-form-main textarea.tt-input,
.tt-tp-detail-body textarea.tt-input {
    min-height: 0;
}
.tt-tp-form-media {
    margin-top: 0;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    border: 1px solid #e2eaf3;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
    overflow: auto;
}
.tt-tp-form-media .tt-tp-section-head h4,
.tt-tp-detail-section h4 {
    color: #0f2744;
}
.tt-tp-detail-section.tt-contingency-row {
    margin-bottom: 0;
}
.tt-tp-detail-grid {
    gap: 12px;
    margin-bottom: 0;
}
@media (max-width: 820px) {
    .tt-tp-form-layout {
        grid-template-columns: 1fr;
    }
}
.tt-tp-form-media .tt-tp-section-head {
    flex: 0 0 auto;
}
.tt-tp-form-media .tt-tp-section-head h4 { font-size: 14px; margin: 0; }
.tt-tp-form-media .tt-tp-photo-grid {
    flex: 1 1 auto;
    align-content: start;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
}
.tt-tp-form-media .tt-field-hint,
.tt-tp-form-media .tt-tp-muted {
    flex: 0 0 auto;
}
.tt-tp-photo-card--pending { opacity: 0.92; }
.tt-tp-photo-open {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
    text-align: left;
}
.tt-tp-gallery {
    position: fixed;
    inset: 0;
    z-index: 15000; /* above edit/view modals; below delete confirm (20000) */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(15, 23, 42, 0.86);
}
.tt-tp-gallery[hidden] { display: none !important; }
body.tt-tp-gallery-open { overflow: hidden; }
.tt-tp-gallery-card {
    width: min(1080px, 100%);
    max-height: calc(100dvh - 40px);
    display: flex;
    flex-direction: column;
    background: var(--tt-card);
    border-radius: 14px;
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.4);
    overflow: hidden;
}
.tt-tp-gallery-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--tt-border);
    flex: 0 0 auto;
}
.tt-tp-gallery-head-main { min-width: 0; }
.tt-tp-gallery-head h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}
.tt-tp-gallery-counter {
    margin: 2px 0 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--tt-text-dim);
}
.tt-tp-gallery-head-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.tt-tp-gallery-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: min(58vh, 560px);
    background: #0f172a;
    touch-action: pan-y;
    flex: 1 1 auto;
}
.tt-tp-gallery-frame {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 56px;
    box-sizing: border-box;
}
.tt-tp-gallery-media {
    display: block;
    max-width: 100%;
    max-height: min(58vh, 560px);
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 6px;
    background: #000;
}
.tt-tp-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #111827;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.25);
}
.tt-tp-gallery-nav:hover { background: #fff; }
.tt-tp-gallery-nav.prev { left: 12px; }
.tt-tp-gallery-nav.next { right: 12px; }
.tt-tp-gallery-thumbs {
    display: flex;
    gap: 8px;
    padding: 12px 14px;
    overflow-x: auto;
    border-top: 1px solid var(--tt-border);
    background: var(--tt-bg-2, var(--tt-bg));
    flex: 0 0 auto;
}
.tt-tp-gallery-thumb {
    flex: 0 0 auto;
    width: 72px;
    height: 54px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    background: #111;
    cursor: pointer;
    opacity: 0.72;
}
.tt-tp-gallery-thumb img,
.tt-tp-gallery-thumb video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tt-tp-gallery-thumb .tt-tp-media-badge {
    font-size: 9px;
    left: 4px;
    bottom: 4px;
    padding: 1px 4px;
}
.tt-tp-gallery-thumb.is-active {
    opacity: 1;
    border-color: var(--tt-accent);
    box-shadow: 0 0 0 1px var(--tt-accent);
}
.tt-tp-gallery-thumb:hover { opacity: 1; }
@media (max-width: 700px) {
    .tt-tp-gallery { padding: 8px; }
    .tt-tp-gallery-frame { padding: 10px 48px; }
    .tt-tp-gallery-head-actions .tt-btn { padding-left: 8px; padding-right: 8px; }
}
@media (max-width: 900px) {
    .tt-tp-form-layout {
        grid-template-columns: 1fr;
    }
    .tt-tp-form-modal .tt-modal-body {
        overflow: auto;
    }
    .tt-tp-form-main,
    .tt-tp-form-media {
        overflow: visible;
    }
    .tt-tp-form-media {
        min-height: 220px;
    }
}
.tt-tp-photo-delete {
    position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; border-radius: 999px;
    border: 0; background: rgba(0,0,0,.55); color: #fff; cursor: pointer; line-height: 1;
}
.tt-tp-notes-list { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tt-tp-note-item { border: 1px solid var(--tt-border); border-radius: 10px; padding: 10px 12px; background: var(--tt-card); }
.tt-tp-note-meta { font-size: 12px; color: var(--tt-text-muted); margin-bottom: 6px; display: flex; justify-content: space-between; gap: 8px; }
.tt-tp-note-delete { background: none; border: 0; color: var(--tt-link, #2563eb); cursor: pointer; font-size: 12px; padding: 0; }
.tt-tp-note-form { border: 1px dashed var(--tt-border); border-radius: 10px; padding: 12px; margin-bottom: 8px; }
.tt-tp-muted { color: var(--tt-text-muted); font-size: 13px; margin: 0; }
.tt-tp-upload-label { cursor: pointer; margin: 0; }
.tt-tp-form .tt-field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.tt-tp-form-errors {
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    font-size: 13px;
    line-height: 1.45;
}
.tt-tp-form-errors div + div { margin-top: 4px; }
.tt-input--error { border-color: #ef4444 !important; box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.15); }
.tt-tp-mls-row { display: flex; gap: 8px; align-items: center; }
.tt-tp-mls-row .tt-input { flex: 1 1 auto; min-width: 0; }
.tt-tp-mls-field { min-width: 220px; }
.tt-field-grow { grid-column: span 2; }
.tt-field-narrow { max-width: 120px; }

/* Connected Apps (Settings) */
.tt-connected-app-card {
    margin-top: 18px;
    padding: 18px 18px 16px;
    border: 1px solid var(--tt-border);
    border-radius: 12px;
    background: var(--tt-surface, var(--tt-card));
}
.tt-connected-app-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 16px;
    margin-bottom: 10px;
}
.tt-connected-app-brand {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}
.tt-connected-app-mark {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fff;
    background: #1e3a5f;
}
.tt-connected-app-title {
    margin: 0 0 2px;
    font-size: 1.05rem;
    font-weight: 650;
}
.tt-connected-app-sub {
    margin: 0;
    font-size: 0.85rem;
    color: var(--tt-text-dim);
}
.tt-connected-app-status {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #e2e8f0;
}
.tt-connected-app-status--ready {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #bfdbfe;
}
.tt-connected-app-status--on {
    background: #ecfdf5;
    color: #047857;
    border-color: #a7f3d0;
}
.tt-connected-app-section-title {
    margin: 18px 0 6px;
    font-size: 0.92rem;
    font-weight: 650;
}
.tt-connected-app-admin,
.tt-connected-app-user {
    margin-top: 8px;
    padding-top: 4px;
    border-top: 1px solid var(--tt-border);
}
.tt-lone-wolf-user-pick { margin: 10px 0 4px; }
.tt-lone-wolf-forms-list {
    margin-top: 12px;
    max-height: min(42vh, 360px);
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 4px 2px;
}
.tt-lone-wolf-form-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--tt-border);
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1.35;
}
.tt-lone-wolf-form-row:hover { background: var(--tt-hover, rgba(0,0,0,0.03)); }
.tt-lone-wolf-form-check { margin-top: 2px; flex: 0 0 auto; }
.tt-modal--lone-wolf { max-width: 560px; }

@media (max-width: 768px) {
    .tt-tp-detail-grid, .tt-tp-detail-facts { grid-template-columns: 1fr; }
    .tt-modal--tour-detail { width: calc(100% - 16px); max-height: calc(100dvh - 12px); }
}

/* Phone drawer: keep the close control clear, restore the bell when closed. */
@media (max-width: 640px) {
    body .tt-header .tt-nav-toggle {
        border: 1px solid #64748b !important;
        background: #0f172a !important;
        color: #fff !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.12),
            0 3px 10px rgba(2, 6, 23, 0.38) !important;
    }
    body .tt-header .tt-nav-toggle:hover,
    body .tt-header .tt-nav-toggle:focus-visible {
        border-color: #93c5fd !important;
        background: #1e293b !important;
        color: #fff !important;
        outline: 2px solid rgba(147, 197, 253, 0.65);
        outline-offset: 2px;
    }
    body .tt-header .tt-nav-toggle-bar {
        background: #fff !important;
    }
    .tt-header--nav-open .tt-notif-wrap {
        display: none !important;
    }
}

/* Tablet header: preserve the shared horizontal icon navigation. */
@media (min-width: 641px) and (max-width: 860px) {
    .tt-header {
        flex-wrap: wrap;
        align-items: center;
        align-content: flex-start;
        padding: 9px 14px 8px;
        gap: 8px;
    }
    .tt-nav-toggle {
        display: none !important;
    }
    .tt-nav {
        order: 4;
        display: flex !important;
        flex: 1 1 100%;
        width: 100%;
        min-width: 0;
        flex-direction: row;
        align-items: stretch;
        gap: 4px;
        margin: 0;
        padding: 7px 0 0;
        border-top: 1px solid rgba(148, 163, 184, 0.28);
    }
    .tt-nav > .tt-nav-link,
    .tt-nav > .tt-nav-group {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }
    .tt-nav-link,
    .tt-nav-group-toggle {
        width: 100%;
        min-width: 0;
        min-height: 50px;
        padding: 6px 3px 5px;
        flex-direction: column;
        justify-content: center;
        gap: 3px;
        border-radius: 8px;
        font-family: var(--tt-font);
        font-size: 10px;
        font-weight: 650;
        line-height: 1.1;
        text-align: center;
    }
    .tt-nav-link i,
    .tt-nav-link svg {
        width: 17px;
        height: 17px;
    }
    .tt-nav-link-label {
        max-width: 100%;
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
    }
    .tt-nav-group {
        position: relative;
    }
    .tt-nav-submenu-panel {
        position: absolute;
        top: 100%;
        left: 0;
        width: max-content;
        min-width: 180px;
        padding: 8px 0 0;
        z-index: 80;
    }
    .tt-nav-submenu {
        padding: 6px;
        border: 1px solid var(--tt-border);
        border-radius: var(--tt-radius);
        background: var(--tt-card);
        box-shadow: 0 10px 28px rgba(15, 23, 42, 0.2);
    }
    .tt-nav-sublink {
        padding: 8px 12px;
        font-size: 13px;
        text-align: left;
    }
    .tt-header-search {
        display: none !important;
    }
}

/* —— Summary Report tab —— */
.tt-summary-report {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: none;
    width: 100%;
}
.tt-summary-report-top {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 18px;
    align-items: start;
    width: 100%;
}
.tt-summary-report-card--saved {
    width: 100%;
    grid-column: 1 / -1;
}
.tt-summary-report .tt-form-card.tt-form-card--contingency-opts,
.tt-summary-report .tt-form-card--contingency-opts {
    max-width: none;
    width: 100%;
    min-width: 0;
    border-radius: 14px;
    overflow: hidden !important;
}
.tt-summary-report .tt-contingency-opts-head {
    border-radius: 14px 14px 0 0;
}
.tt-summary-report .tt-contingency-row {
    border-radius: 12px;
}
@media (max-width: 1100px) {
    .tt-summary-report-top {
        grid-template-columns: 1fr;
    }
}
.tt-summary-report-body {
    gap: 12px;
}
.tt-summary-report-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 2px 2px 4px;
}
.tt-summary-report-toolbar-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.tt-summary-report-toolbar-copy strong {
    font-size: 0.92rem;
    font-weight: 800;
    color: #0f2744;
}
.tt-summary-report-toolbar-copy span {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 500;
}
.tt-summary-report-block-actions {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}
.tt-summary-report-block-actions .tt-btn {
    background: #fff;
    color: #0f2744;
    border: 1px solid #c7d7ea;
}
.tt-summary-report-block-actions .tt-btn:hover {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1e3a5f;
}
.tt-summary-report-sections {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-summary-report-sections.is-sr-reordering {
    cursor: grabbing;
}
.tt-summary-report-section-row .tt-contingency-row-head {
    gap: 10px;
}
.tt-summary-report-section-drag {
    flex: 0 0 auto;
    width: 28px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    touch-action: none;
}
.tt-summary-report-section-drag:hover,
.tt-summary-report-section-drag:focus-visible {
    background: #e8f1ff;
    color: #1e4d8c;
    outline: none;
}
.tt-summary-report-section-row.is-dragging {
    opacity: 0.55;
    box-shadow: 0 8px 22px rgba(15, 40, 80, 0.14);
}
.tt-summary-report-section-row.is-sr-drag-armed {
    cursor: grabbing;
}
[data-theme="dark"] .tt-summary-report-section-drag {
    color: #94a3b8;
}
[data-theme="dark"] .tt-summary-report-section-drag:hover,
[data-theme="dark"] .tt-summary-report-section-drag:focus-visible {
    background: rgba(37, 99, 235, 0.22);
    color: #dbeafe;
}
.tt-summary-report-generate-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e2eaf3;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-summary-report-generate-bar .tt-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tt-summary-report-pages {
    font-size: 0.9rem;
    font-weight: 750;
    color: #0f2744;
    white-space: nowrap;
    margin-left: 2px;
}
.tt-summary-report-pages.is-busy {
    color: #64748b;
    font-weight: 650;
}
[data-theme="dark"] .tt-summary-report-pages {
    color: #e8eef6;
}
[data-theme="dark"] .tt-summary-report-pages.is-busy {
    color: #94a3b8;
}
.tt-summary-report-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(146, 64, 14, 0.25);
    border-top-color: #92400e;
    border-radius: 50%;
    animation: tt-summary-report-spin 0.7s linear infinite;
    flex: 0 0 auto;
}
@keyframes tt-summary-report-spin {
    to { transform: rotate(360deg); }
}
.tt-summary-report-generate-bar .tt-btn.is-busy .tt-summary-report-spinner {
    border-color: rgba(15, 39, 68, 0.2);
    border-top-color: #0f2744;
}
[data-theme="dark"] .tt-summary-report-spinner {
    border-color: rgba(251, 191, 36, 0.28);
    border-top-color: #fbbf24;
}
[data-theme="dark"] .tt-summary-report-generate-bar .tt-btn.is-busy .tt-summary-report-spinner {
    border-color: rgba(255, 255, 255, 0.22);
    border-top-color: #fff;
}
.tt-summary-report-actors-card,
.tt-summary-report-extra-card,
.tt-summary-report-recent-card {
    padding: 12px 14px;
}
.tt-summary-report-extra-body {
    display: flex !important;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
    padding-left: 50px;
}
.tt-summary-report-actors-wrap {
    max-height: 280px;
    overflow: auto;
    border: 1px solid #e2eaf3;
    border-radius: 10px;
    background: #fff;
}
.tt-summary-report-actors {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.tt-summary-report-actors th,
.tt-summary-report-actors td {
    padding: 8px 10px;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    color: #0f172a;
    vertical-align: top;
}
.tt-summary-report-actors th {
    background: #f8fafc;
    font-weight: 650;
    position: sticky;
    top: 0;
    z-index: 1;
}
.tt-summary-report-actors-check {
    width: 36px;
}
.tt-summary-report-actors label {
    cursor: pointer;
    color: inherit;
}
.tt-summary-report-extra-row {
    display: flex;
    gap: 8px;
    align-items: center;
}
.tt-summary-report-extra-row .tt-input {
    flex: 1;
    min-width: 0;
    background: #fff;
    color: #0f172a;
    border: 1px solid #93c5fd;
    border-radius: 8px;
}
.tt-summary-report-extra-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.tt-summary-report-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #0f172a;
    font-size: 12px;
}
.tt-summary-report-chip-x {
    border: 0;
    background: transparent;
    color: #0f172a;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 0 2px;
}
.tt-summary-report-send-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e2eaf3;
}
.tt-summary-report-send-actions [data-tt-sr-share] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.tt-summary-report-send-hint {
    margin: 0;
}
.tt-summary-report-generate-bar .tt-btn:disabled,
.tt-summary-report-generate-bar .tt-btn[aria-disabled="true"],
.tt-summary-report-generate-bar .tt-summary-report-open.is-disabled,
.tt-summary-report-send-actions .tt-btn:disabled,
.tt-summary-report-send-actions .tt-btn[aria-disabled="true"] {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
    transform: none;
    box-shadow: none;
    color: #64748b;
    background: #e2e8f0;
    border-color: #cbd5e1;
}
.tt-summary-report-generate-bar .tt-summary-report-open.is-disabled:hover {
    color: #64748b;
    background: #e2e8f0;
    border-color: #cbd5e1;
}
.tt-summary-report-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}
.tt-summary-report-status.is-ok { color: #166534; }
.tt-summary-report-status.is-cached { color: #1d4ed8; }
.tt-summary-report-status.is-busy { color: #92400e; }
.tt-summary-report-recent-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.tt-summary-report-recent-actions {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}
.tt-summary-report-delete {
    color: #b91c1c !important;
    border-color: #fecaca;
    background: #fff;
}
.tt-summary-report-delete:hover {
    color: #7f1d1d !important;
    background: #fef2f2;
    border-color: #fca5a5;
}
[data-theme="dark"] .tt-summary-report-delete {
    color: #fecaca !important;
    background: #3f1d1d;
    border-color: #7f1d1d;
}
[data-theme="dark"] .tt-summary-report-delete:hover {
    color: #fff !important;
    background: #7f1d1d;
}
.tt-summary-report-recent-list li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 10px 0;
    border-bottom: 1px solid #e2e8f0;
    color: #0f172a;
}
.tt-summary-report-recent-list li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.tt-summary-report-recent-list a {
    color: #1d4ed8;
    font-weight: 600;
    text-decoration: none;
}
.tt-summary-report-recent-list a:hover {
    text-decoration: underline;
}
.tt-summary-report-docs-link {
    color: #1d4ed8;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.tt-summary-report-docs-link:hover {
    color: #1e40af;
}
.tt-summary-report-docs-link--on-navy {
    color: #fff;
    text-decoration-color: rgba(255, 255, 255, 0.55);
}
.tt-summary-report-docs-link--on-navy:hover {
    color: #dbeafe;
}
@media (max-width: 640px) {
    .tt-summary-report-extra-body {
        padding-left: 0;
    }
}
[data-theme="dark"] .tt-summary-report-toolbar-copy strong {
    color: #e8eef6;
}
[data-theme="dark"] .tt-summary-report-toolbar-copy span,
[data-theme="dark"] .tt-summary-report-status {
    color: #94a3b8;
}
[data-theme="dark"] .tt-summary-report-actors th {
    background: #1a2332;
}
[data-theme="dark"] .tt-summary-report-actors th,
[data-theme="dark"] .tt-summary-report-actors td {
    color: #e2e8f0;
    border-color: rgba(148, 163, 184, 0.28);
}
[data-theme="dark"] .tt-summary-report-generate-bar,
[data-theme="dark"] .tt-summary-report-send-actions,
[data-theme="dark"] .tt-summary-report-actors-wrap {
    background: #1a2332;
    border-color: rgba(148, 163, 184, 0.35);
}

/* providers-tab-start */
.tt-providers {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    gap: 18px;
    align-items: start;
    max-width: none;
    width: 100%;
}
.tt-providers-card.tt-form-card--contingency-opts {
    padding: 0;
    overflow: hidden;
    border: 1px solid #dbe7f3;
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(15, 40, 80, 0.08);
    background: #fff;
    min-width: 0;
    width: 100%;
}
.tt-providers-card--add {
    position: sticky;
    top: 12px;
}
@media (max-width: 1100px) {
    .tt-providers {
        grid-template-columns: 1fr;
    }
    .tt-providers-card--add {
        position: static;
    }
}
.tt-providers-card.tt-form-card--contingency-opts > .tt-card-title,
.tt-providers-card.tt-form-card--contingency-opts > .tt-card-title-row {
    display: none;
}
.tt-providers-main-body,
.tt-providers-add-body {
    gap: 12px;
}
.tt-providers-loading {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    background: #eff6ff;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.03);
}
.tt-providers-loading[hidden] { display: none !important; }
.tt-providers-loading-msg {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 700;
    color: #0f2744;
}
.tt-providers-progress {
    width: 100%;
    height: 8px;
    border-radius: 999px;
    background: #dbe7f3;
    overflow: hidden;
}
.tt-providers-progress-bar {
    height: 100%;
    width: 0%;
    border-radius: 999px;
    background: linear-gradient(90deg, #1e4d8c 0%, #2563eb 55%, #38bdf8 100%);
    transition: width 0.2s ease-out;
}
.tt-providers-error {
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 700;
}
.tt-providers-error[hidden] { display: none !important; }
.tt-providers-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tt-providers-grid.is-loading {
    opacity: 1;
    pointer-events: auto;
}
.tt-providers-row.tt-contingency-row {
    padding: 12px 14px;
}
.tt-providers-row .tt-contingency-row-head {
    align-items: center;
    gap: 12px;
}
.tt-providers-row .tt-contingency-row-icon {
    overflow: hidden;
}
.tt-providers-row .tt-contingency-row-icon .tt-providers-logo {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 8px;
    object-fit: contain;
    background: #fff;
}
.tt-providers-row.is-pending {
    border-style: dashed;
}
.tt-providers-row-finding {
    margin-left: 2px;
    font-size: 11px;
    font-weight: 700;
    color: #1d4ed8;
    letter-spacing: 0.02em;
    animation: ttProvidersPulse 1.2s ease-in-out infinite;
}
@keyframes ttProvidersPulse {
    0%, 100% { opacity: 0.45; }
    50% { opacity: 1; }
}
.tt-providers-row.is-pending .tt-providers-select:disabled {
    background: #eef2ff !important;
    color: #334155 !important;
    border-color: #c7d2fe;
    cursor: wait;
}
.tt-providers-row .tt-contingency-row-copy {
    flex: 0 1 200px;
    min-width: 120px;
    max-width: 240px;
}
.tt-providers-row-control {
    flex: 1 1 360px;
    min-width: 260px;
    max-width: none;
    margin-left: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
}
.tt-providers-select {
    flex: 1 1 auto;
    width: calc(100% - 150px);
    max-width: calc(100% - 150px);
    min-width: 0;
    background: #fff !important;
    color: #0f172a !important;
    border: 1px solid #94a3b8;
    border-radius: 8px;
    padding: 8px 10px;
    text-overflow: ellipsis;
}
.tt-providers-row-actions {
    flex: 0 0 150px;
    width: 150px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}
.tt-providers-contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 10px;
    border: 1px solid #94a3b8;
    background: #fff;
    color: #163a66;
    text-decoration: none;
    cursor: pointer;
    box-sizing: border-box;
    flex: 0 0 auto;
}
.tt-providers-contact-btn .lucide,
.tt-providers-contact-btn i[data-lucide] {
    width: 18px;
    height: 18px;
}
.tt-providers-contact-btn--call:hover,
.tt-providers-contact-btn--web:hover,
.tt-providers-contact-btn--email:hover {
    background: #eef5ff;
    border-color: #163a66;
    color: #0a1628;
}
.tt-providers-contact-btn.is-disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
    background: #f1f5f9;
    color: #64748b;
}
.tt-providers-row .tt-contingency-row-desc a {
    color: #1d4ed8;
    font-weight: 600;
    text-decoration: underline;
}
.tt-providers-add-wrap {
    padding: 12px 14px;
}
/* Override Dates rule that hides .tt-contingency-row-body without .tt-field-line. */
.tt-providers .tt-providers-add.tt-contingency-row-body {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 12px;
    padding-top: 12px;
    padding-left: 0;
    border-top: 1px solid #e2eaf3;
}
.tt-providers-add .tt-label {
    margin: 0;
    color: #0f2744;
    font-weight: 700;
}
.tt-providers-add-other {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 10px 12px;
    border: 1px dashed #93c5fd;
    border-radius: 12px;
    background: #eff6ff;
}
.tt-providers-add-other[hidden] {
    display: none !important;
}
.tt-providers-add-other .tt-field-hint {
    margin: 0;
    color: #1e3a5f;
}
.tt-providers-add .tt-input,
.tt-providers-add .tt-select {
    background: #fff !important;
    color: #0f172a !important;
    border: 1px solid #93c5fd;
    border-radius: 8px;
}
/* Share List slides right inside the body — keep card corners clipped, body visible. */
.tt-providers-card--main.tt-form-card--contingency-opts {
    overflow: hidden !important;
    border-radius: 14px;
}
.tt-providers-card--main .tt-contingency-opts-head {
    border-radius: 14px 14px 0 0;
    overflow: hidden;
}
.tt-providers-main-body {
    overflow: visible;
}
.tt-providers-request-owner-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: auto;
}
.tt-providers-request-owner-btn .lucide,
.tt-providers-request-owner-btn i[data-lucide] {
    width: 16px;
    height: 16px;
}
.tt-providers-share {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    overflow: visible;
}
.tt-providers-share-bar {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-width: 0;
}
.tt-providers-share-left {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    min-width: 0;
    flex: 1 1 auto;
}
.tt-providers-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
}
.tt-providers-share-btn .lucide,
.tt-providers-share-btn i[data-lucide] {
    width: 16px;
    height: 16px;
}
.tt-providers-share.is-busy .tt-providers-share-btn {
    cursor: wait;
}
.tt-providers-share-spinner {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(22, 58, 102, 0.22);
    border-top-color: #163a66;
    border-radius: 50%;
    animation: tt-providers-share-spin 0.7s linear infinite;
    flex: 0 0 auto;
}
.tt-providers-share-spinner[hidden] {
    display: none !important;
}
@keyframes tt-providers-share-spin {
    to { transform: rotate(360deg); }
}
.tt-providers-share-status {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: #163a66;
}
.tt-providers-share-status[hidden] {
    display: none !important;
}
.tt-providers-share-action.is-busy {
    opacity: 0.85;
    box-shadow: inset 0 0 0 1px #163a66;
}
.tt-providers-share.is-busy .tt-providers-share-action:not(.is-busy) {
    opacity: 0.45;
}
.tt-providers-share-rail {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    margin-left: 0;
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transform: translateX(-18px);
    transition:
        max-width 0.38s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.28s ease,
        transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
        margin-left 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.tt-providers-share.is-open .tt-providers-share-rail {
    max-width: 560px;
    margin-left: 10px;
    opacity: 1;
    overflow: visible;
    pointer-events: auto;
    transform: translateX(0);
}
.tt-providers-share-action {
    flex: 0 0 auto;
    white-space: nowrap;
    transform: translateX(-28px);
    opacity: 0;
    transition:
        transform 0.32s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.24s ease,
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
}
.tt-providers-share.is-open .tt-providers-share-action {
    transform: translateX(0);
    opacity: 1;
}
.tt-providers-share.is-open .tt-providers-share-action:nth-child(1) {
    transition-delay: 0.02s, 0.02s, 0s, 0s, 0s;
}
.tt-providers-share.is-open .tt-providers-share-action:nth-child(2) {
    transition-delay: 0.08s, 0.08s, 0s, 0s, 0s;
}
.tt-providers-share.is-open .tt-providers-share-action:nth-child(3) {
    transition-delay: 0.14s, 0.14s, 0s, 0s, 0s;
}
/* Reverse stagger when collapsing back under Share List */
.tt-providers-share:not(.is-open) .tt-providers-share-action:nth-child(1) {
    transition-delay: 0.12s, 0.12s, 0s, 0s, 0s;
}
.tt-providers-share:not(.is-open) .tt-providers-share-action:nth-child(2) {
    transition-delay: 0.06s, 0.06s, 0s, 0s, 0s;
}
.tt-providers-share:not(.is-open) .tt-providers-share-action:nth-child(3) {
    transition-delay: 0s, 0s, 0s, 0s, 0s;
}
.tt-providers-share-hint {
    margin: 0;
    max-width: 36rem;
}
@media (max-width: 720px) {
    .tt-providers-share.is-open .tt-providers-share-rail {
        max-width: 100%;
        flex-wrap: wrap;
        row-gap: 8px;
    }
}
.tt-providers-add-actions {
    grid-column: 1 / -1;
    margin-top: 4px;
}
@media (max-width: 720px) {
    .tt-providers-row .tt-contingency-row-head {
        flex-wrap: wrap;
    }
    .tt-providers-row-control {
        flex: 1 1 100%;
        min-width: 0;
        margin-left: 0;
        width: 100%;
    }
    .tt-providers-select {
        width: calc(100% - 110px);
        max-width: calc(100% - 110px);
    }
    .tt-providers-row-actions {
        flex: 0 0 110px;
        width: 110px;
    }
}
[data-theme="dark"] .tt-providers-contact-btn {
    background: #0f172a;
    border-color: #64748b;
    color: #e8eef6;
}
[data-theme="dark"] .tt-providers-contact-btn--call:hover,
[data-theme="dark"] .tt-providers-contact-btn--web:hover,
[data-theme="dark"] .tt-providers-contact-btn--email:hover {
    background: #1e3a5f;
    border-color: #93c5fd;
    color: #f8fafc;
}
[data-theme="dark"] .tt-providers-contact-btn.is-disabled {
    background: #1a2332;
    color: #64748b;
}
[data-theme="dark"] .tt-providers-row.tt-contingency-row {
    background: #1a2332;
    border-color: rgba(148, 163, 184, 0.35);
}
[data-theme="dark"] .tt-providers-row .tt-contingency-row-label,
[data-theme="dark"] .tt-providers-loading-msg {
    color: #e8eef6;
}
[data-theme="dark"] .tt-providers-row .tt-contingency-row-desc {
    color: #94a3b8;
}
[data-theme="dark"] .tt-providers-loading {
    background: #1a2332;
    border-color: rgba(148, 163, 184, 0.35);
}
[data-theme="dark"] .tt-providers-progress { background: #334155; }
[data-theme="dark"] .tt-providers-error {
    background: #3f1d1d;
    border-color: #7f1d1d;
    color: #fecaca;
}
[data-theme="dark"] .tt-providers-select,
[data-theme="dark"] .tt-providers-add .tt-input,
[data-theme="dark"] .tt-providers-add .tt-select {
    background: #0f172a !important;
    color: #f8fafc !important;
    border-color: #64748b;
}
[data-theme="dark"] .tt-providers-add .tt-label {
    color: #e8eef6;
}
[data-theme="dark"] .tt-providers-share {
    border-top-color: #334155;
}
[data-theme="dark"] .tt-providers .tt-providers-add.tt-contingency-row-body {
    border-top-color: rgba(148, 163, 184, 0.28);
}
/* providers-tab-end */

/* —— New / EZ Transaction create modals (Dates chrome) —— */
.tt-modal--create-form,
.tt-modal--ez-txn {
    padding: 0;
    overflow: hidden;
    background: transparent;
    border: 0;
    box-shadow: none;
    max-width: 640px;
}
.tt-modal--ez-txn {
    max-width: 560px;
}
.tt-create-form-card,
.tt-ez-txn-card {
    margin: 0;
}
.tt-create-form-head,
.tt-ez-txn-head {
    position: relative;
    padding-right: 52px;
}
.tt-create-form-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.14);
    color: #fff !important;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.tt-create-form-close:hover {
    background: rgba(255, 255, 255, 0.28);
}
.tt-create-form-body {
    max-height: min(62vh, 560px);
    overflow: auto;
}
.tt-create-form-section {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.tt-create-form-section .tt-field > label,
.tt-ez-txn-body .tt-field > label {
    color: #0f2744;
    font-weight: 700;
}
.tt-create-form-section .tt-input,
.tt-ez-txn-body .tt-input {
    background: #fff;
    color: #0f172a;
    border: 1px solid #c9d7e8;
    border-radius: 10px;
    min-height: 42px;
    padding: 8px 12px;
}
.tt-create-form-foot {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 12px 14px 14px;
    background: #f7fafc;
    border-top: 1px solid #e2eaf3;
}
.tt-ez-txn-progress {
    padding: 12px 16px 0;
    background: #f7fafc;
}
.tt-ez-txn-progress-track {
    height: 8px;
    border-radius: 999px;
    background: #dbe7f3;
    overflow: hidden;
}
.tt-ez-txn-progress-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #1e4d8c 0%, #2563a8 100%);
    transition: width 0.25s ease;
}
.tt-ez-txn-progress-labels {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-top: 8px;
}
.tt-ez-txn-progress-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #64748b;
    text-align: center;
}
.tt-ez-txn-progress-label.is-active,
.tt-ez-txn-progress-label.is-done {
    color: #163a66;
}
.tt-ez-txn-step-title {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 800;
    color: #0f2744;
}
.tt-ez-txn-tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.tt-ez-txn-address-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    border-radius: 12px;
    border: 1px solid #c9d7e8;
    background: linear-gradient(180deg, #f5faff 0%, #fff 100%);
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.04);
}
.tt-ez-txn-address-card[hidden] {
    display: none !important;
}
.tt-ez-txn-address-card-icon {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #163a66 0%, #2563a8 100%);
    color: #fff;
}
.tt-ez-txn-address-card-icon .lucide,
.tt-ez-txn-address-card-icon i[data-lucide] {
    width: 18px;
    height: 18px;
}
.tt-ez-txn-address-card-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tt-ez-txn-address-card-text strong {
    color: #0f2744;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.35;
}
.tt-ez-txn-address-card-text span {
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
}
.tt-ez-txn-body .tt-req {
    color: #b42318;
    font-weight: 800;
}
.tt-ez-txn-tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-height: 120px;
    padding: 16px;
    border-radius: 12px;
    border: 2px solid #dbe7f3;
    background: #fff;
    color: #0f2744;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 40, 80, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.tt-ez-txn-tile:hover {
    border-color: #2563a8;
    box-shadow: 0 8px 20px rgba(30, 77, 140, 0.12);
    transform: translateY(-1px);
}
.tt-ez-txn-tile.is-selected {
    border-color: #1e4d8c;
    background: linear-gradient(180deg, #f5faff 0%, #fff 100%);
    box-shadow: 0 0 0 1px #1e4d8c, 0 8px 20px rgba(30, 77, 140, 0.14);
}
.tt-ez-txn-tile-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #163a66 0%, #2563a8 100%);
    color: #fff;
}
.tt-ez-txn-tile-icon .lucide,
.tt-ez-txn-tile-icon i[data-lucide] {
    width: 20px;
    height: 20px;
}
.tt-ez-txn-tile-label {
    font-size: 15px;
    font-weight: 800;
    color: #0f2744;
}
.tt-ez-txn-tile-hint {
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
}
.tt-ez-txn-foot {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    justify-content: stretch;
    width: 100%;
    gap: 10px;
}
.tt-ez-txn-foot-left,
.tt-ez-txn-foot-right {
    display: flex;
    align-items: center;
    gap: 10px;
}
.tt-ez-txn-foot-left { justify-content: flex-start; }
.tt-ez-txn-foot-center { justify-self: center; }
.tt-ez-txn-foot-right { justify-content: flex-end; }
.tt-ez-txn-foot .tt-ez-txn-skip,
.tt-ez-txn-foot #ttEzTxnSkip.tt-ez-txn-skip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    padding: 8px 22px;
    border-radius: 999px;
    border: 1px solid rgba(201, 162, 39, 0.38);
    background: linear-gradient(180deg, #fffef9 0%, #fff8e6 100%);
    color: #6b5420;
    font-weight: 650;
    font-size: 13px;
    letter-spacing: 0.03em;
    text-align: center;
    box-shadow: 0 1px 0 rgba(212, 175, 55, 0.12);
    overflow: visible;
}
.tt-ez-txn-foot .tt-ez-txn-skip .tt-ez-txn-skip-label {
    display: block;
    width: 100%;
    text-align: center;
    line-height: 1.2;
}
.tt-ez-txn-foot .tt-ez-txn-skip:hover {
    background: linear-gradient(180deg, #fffdf5 0%, #fff3d1 100%);
    border-color: rgba(201, 162, 39, 0.55);
    color: #5a4518;
    box-shadow: 0 2px 8px rgba(212, 175, 55, 0.18);
}
.tt-ez-txn-foot .tt-ez-txn-skip:focus-visible {
    outline: 2px solid rgba(212, 175, 55, 0.55);
    outline-offset: 2px;
}
.tt-ez-txn-skip-spark {
    position: absolute;
    top: -3px;
    right: 4px;
    width: 12px;
    height: 12px;
    pointer-events: none;
    color: #d4a017;
    filter: drop-shadow(0 0 2px rgba(251, 191, 36, 0.55));
    animation: tt-ez-skip-twinkle 2.6s ease-in-out infinite;
}
.tt-ez-txn-skip-spark::before {
    content: '✦';
    display: block;
    font-size: 11px;
    line-height: 12px;
    text-align: center;
}
@keyframes tt-ez-skip-twinkle {
    0%, 72%, 100% {
        opacity: 0.35;
        transform: scale(0.85) rotate(0deg);
    }
    80% {
        opacity: 1;
        transform: scale(1.2) rotate(12deg);
    }
    88% {
        opacity: 0.75;
        transform: scale(1) rotate(-4deg);
    }
    94% {
        opacity: 1;
        transform: scale(1.15) rotate(6deg);
    }
}
/* .tt-btn / .tt-create-form-section display rules otherwise override HTML [hidden] */
.tt-create-form-foot [hidden],
.tt-ez-txn-foot [hidden],
.tt-ez-txn-body [data-ez-panel][hidden],
.tt-ez-txn-body .tt-create-form-section[hidden],
.tt-ez-txn-body .tt-ez-txn-step[hidden],
.tt-ez-txn-body [data-ez-address-search][hidden],
.tt-ez-txn-body [data-ez-mls-search][hidden],
.tt-ez-txn-body [data-ez-address-card-wrap][hidden],
.tt-ez-txn-body [data-ez-address-card][hidden] {
    display: none !important;
}
.tt-ez-txn-body [data-ez-address-card-wrap] {
    margin-top: 0;
}
.tt-ez-txn-body [data-ez-address-card-wrap] .tt-ez-txn-address-card {
    margin: 0;
}
@media (max-width: 560px) {
    .tt-ez-txn-tiles {
        grid-template-columns: 1fr;
    }
    .tt-ez-txn-foot {
        grid-template-columns: 1fr;
        justify-items: stretch;
    }
    .tt-ez-txn-foot-left,
    .tt-ez-txn-foot-center,
    .tt-ez-txn-foot-right {
        width: 100%;
        justify-content: stretch;
    }
    .tt-ez-txn-foot-left .tt-btn,
    .tt-ez-txn-foot-center .tt-btn,
    .tt-ez-txn-foot-right .tt-btn {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* Admin Transaction Monitor */
.tt-txn-monitor-page { max-width: 960px; }
.tt-txn-monitor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 20px;
    align-items: flex-end;
    margin-bottom: 18px;
}
.tt-txn-monitor-select-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: min(100%, 420px);
    flex: 1 1 280px;
}
.tt-txn-monitor-select-wrap span {
    font-size: 0.8rem;
    font-weight: 700;
    color: #334155;
}
.tt-txn-monitor-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
    font-size: 0.82rem;
    color: #475569;
}
.tt-txn-monitor-meta a { font-weight: 700; }
.tt-txn-monitor-cr { margin-top: 8px; }
.tt-txn-monitor-cr-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}
.tt-txn-monitor-progress {
    position: relative;
    margin-left: auto;
    min-width: 120px;
    height: 22px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.55);
    overflow: hidden;
    background: rgba(15, 40, 80, 0.35);
}
.tt-txn-monitor-progress-fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0;
    background: linear-gradient(90deg, #dc2626 0%, #16a34a 100%);
    transition: width 0.35s ease;
}
.tt-txn-monitor-progress-count {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 800;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0,0,0,0.45);
}
.tt-txn-monitor-rows { display: flex; flex-direction: column; }
.tt-txn-monitor-row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 4px;
    border-bottom: 1px solid #e2e8f0;
}
.tt-txn-monitor-row:last-child { border-bottom: 0; }
.tt-txn-monitor-row-icon {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef2ff;
    color: #1e3a8a;
}
.tt-txn-monitor-row-icon i,
.tt-txn-monitor-row-icon svg { width: 18px; height: 18px; }
.tt-txn-monitor-row-copy { min-width: 0; }
.tt-txn-monitor-row-copy strong {
    display: block;
    color: #0f172a;
    font-size: 0.95rem;
}
.tt-txn-monitor-row-copy span {
    display: block;
    color: #64748b;
    font-size: 0.8rem;
    margin-top: 2px;
}
.tt-txn-monitor-row-copy code {
    display: block;
    margin-top: 4px;
    font-size: 0.72rem;
    color: #334155;
    word-break: break-all;
}
.tt-txn-monitor-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}
.tt-txn-monitor-pill i,
.tt-txn-monitor-pill svg { width: 14px; height: 14px; }
.tt-txn-monitor-pill.is-pending { background: #fee2e2; color: #991b1b; }
.tt-txn-monitor-pill.is-cleared { background: #dcfce7; color: #166534; }
.tt-txn-monitor-pill.is-waived { background: #dbeafe; color: #1d4ed8; }
.tt-txn-monitor-raw {
    margin-top: 18px;
    padding: 14px;
    border-radius: 12px;
    background: #0f172a;
    color: #e2e8f0;
}
.tt-txn-monitor-raw h3 {
    margin: 0 0 8px;
    font-size: 0.85rem;
    color: #93c5fd;
}
.tt-txn-monitor-raw pre {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.78rem;
    line-height: 1.45;
}
.tt-txn-monitor-empty,
.tt-txn-monitor-error {
    margin: 12px 0 0;
    color: #64748b;
}
.tt-txn-monitor-error {
    color: #b91c1c;
    font-weight: 700;
}
#ttDetailHeaderTimeline .tt-linked-timeline-compare {
    margin-bottom: 0;
}
