/**
 * TREVH Lead System — Public Stylesheet
 *
 * @package TREVH\LeadSystem
 * @since   1.0.0
 */

/* ── CSS Variables ──────────────────────────────────────────────────────────── */
:root {
	--trevh-primary:      #E05C1F;
	--trevh-primary-dark: #C14A10;
	--trevh-accent:       #1A3C5E;
	--trevh-success:      #28A745;
	--trevh-danger:       #DC3545;
	--trevh-warning:      #FFC107;
	--trevh-info:         #17A2B8;
	--trevh-grey-light:   #F5F5F5;
	--trevh-grey:         #999999;
	--trevh-text:         #333333;
	--trevh-border:       #DDDDDD;
	--trevh-radius:       6px;
	--trevh-shadow:       0 2px 12px rgba(0,0,0,.08);
}

/* ── Wrapper ────────────────────────────────────────────────────────────────── */
.trevh-wrap { max-width: 900px; margin: 0 auto; padding: 24px 16px; color: var(--trevh-text); font-family: 'Quicksand', sans-serif; }

/* Default UI font for the plugin's own containers (Quicksand). Scoped so the
   theme keeps its own typography everywhere else. */
.trevh-wrap, .trevh-wrap *,
.trevh-search-bar-wrap, .trevh-search-bar-wrap *,
.trevh-acct-menu, .trevh-acct-menu * { font-family: 'Quicksand', sans-serif; }

/* Full-width dashboard: let the dashboard body fill the same container width as
   the top nav (which is uncapped), instead of the narrow 900px reading column we
   keep for the login / KYC / thank-you pages. */
.trevh-wrap.trevh-dashboard { max-width: none; }

/* ── Alerts ─────────────────────────────────────────────────────────────────── */
.trevh-alert { padding: 12px 16px; border-radius: var(--trevh-radius); margin-bottom: 16px; font-size: 14px; }
.trevh-alert--error   { background:#FFF3F3; border:1px solid #F5C6C6; color:#C0392B; }
.trevh-alert--success { background:#F0FFF4; border:1px solid #9BE5B5; color:#155724; }
.trevh-alert--info    { background:#EBF7FF; border:1px solid #BEE1F7; color:#0C5460; }
.trevh-alert--warning { background:#FFFBE6; border:1px solid #FFE082; color:#856404; }

/* ── Buttons ────────────────────────────────────────────────────────────────── */
.trevh-btn { display:inline-block; padding:10px 20px; border:none; border-radius:var(--trevh-radius); font-size:14px; font-weight:600; cursor:pointer; text-decoration:none; transition:background .2s; }
.trevh-btn--primary  { background:var(--trevh-primary); color:#fff; }
.trevh-btn--primary:hover { background:var(--trevh-primary-dark); color:#fff; }
.trevh-btn--secondary{ background:#fff; color:var(--trevh-primary); border:1.5px solid var(--trevh-primary); }
.trevh-btn--secondary:hover { background:var(--trevh-primary); color:#fff; }
.trevh-btn--success  { background:var(--trevh-success); color:#fff; }
.trevh-btn--danger   { background:var(--trevh-danger);  color:#fff; }
.trevh-btn--ghost    { background:transparent; color:var(--trevh-grey); border:1px solid var(--trevh-border); }
.trevh-btn--outline  { background:transparent; color:var(--trevh-primary); border:1.5px solid var(--trevh-primary); }
.trevh-btn--full     { width:100%; text-align:center; }
.trevh-btn--lg       { padding:14px 28px; font-size:16px; }
.trevh-btn:disabled  { opacity:.55; cursor:not-allowed; }

/* ── Form ───────────────────────────────────────────────────────────────────── */
.trevh-form { background:#fff; padding:32px; border-radius:var(--trevh-radius); box-shadow:var(--trevh-shadow); }
.trevh-field { margin-bottom:20px; }
.trevh-field label { display:block; margin-bottom:6px; font-weight:600; font-size:14px; color:var(--trevh-text); }
.trevh-field input[type=text],
.trevh-field input[type=email],
.trevh-field input[type=tel],
.trevh-field input[type=password],
.trevh-field input[type=url],
.trevh-field input[type=number],
.trevh-field textarea,
.trevh-field select { width:100%; padding:10px 12px; border:1.5px solid var(--trevh-border); border-radius:var(--trevh-radius); font-size:14px; color:var(--trevh-text); box-sizing:border-box; transition:border-color .2s; }
.trevh-field input:focus,
.trevh-field textarea:focus,
.trevh-field select:focus { border-color:var(--trevh-primary); outline:none; }
.trevh-field .description { font-size:12px; color:var(--trevh-grey); margin-top:4px; }
.trevh-readonly { background:var(--trevh-grey-light) !important; color:var(--trevh-grey) !important; cursor:not-allowed; }
.trevh-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.required { color:var(--trevh-danger); }
.trevh-form-note { text-align:center; font-size:13px; margin-top:16px; }

/* ── OTP fields ─────────────────────────────────────────────────────────────── */
.trevh-input-group { display:flex; gap:8px; align-items:center; }
.trevh-input-group input { flex:1; }
.trevh-prefix { background:var(--trevh-grey-light); padding:10px 12px; border:1.5px solid var(--trevh-border); border-radius:var(--trevh-radius); font-size:14px; white-space:nowrap; }
.trevh-otp-verify { display:flex; gap:8px; align-items:center; margin-top:8px; }
.trevh-otp-input { width:150px !important; }
.trevh-otp-timer { font-size:12px; color:var(--trevh-grey); }
.trevh-verified-badge { display:inline-block; color:var(--trevh-success); font-size:13px; font-weight:600; margin-top:6px; }

/* ── Login page ─────────────────────────────────────────────────────────────── */
.trevh-login-page .trevh-form { max-width:480px; margin:0 auto; }
.trevh-login-tabs { display:flex; border-bottom:2px solid var(--trevh-border); margin-bottom:24px; }
.trevh-tab { flex:1; padding:14px; background:none; border:none; font-size:15px; font-weight:600; cursor:pointer; color:var(--trevh-grey); border-bottom:3px solid transparent; margin-bottom:-2px; transition:all .2s; }
.trevh-tab--active { color:var(--trevh-primary); border-bottom-color:var(--trevh-primary); }
.trevh-tab:hover:not(.trevh-tab--active) { color:var(--trevh-text); }

/* ── Dashboard ──────────────────────────────────────────────────────────────── */
.trevh-dashboard-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.trevh-dashboard-title { display:flex; align-items:center; gap:12px; }
.trevh-plan-badge { padding:4px 12px; border-radius:20px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.trevh-plan-badge--basic    { background:#E0E0E0; color:#555; }
.trevh-plan-badge--silver   { background:#C0C0C0; color:#333; }
.trevh-plan-badge--gold     { background:#FFD700; color:#333; }
.trevh-plan-badge--titanium { background:var(--trevh-accent); color:#fff; }

.trevh-stats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:24px; }
.trevh-stat-card { background:#fff; border-radius:var(--trevh-radius); box-shadow:var(--trevh-shadow); padding:20px; text-align:center; }
.trevh-stat-card--green { border-top:4px solid var(--trevh-success); }
.trevh-stat-card--red   { border-top:4px solid var(--trevh-danger); }
.trevh-stat-value { display:block; font-size:28px; font-weight:700; color:var(--trevh-accent); }
.trevh-stat-label { display:block; font-size:12px; color:var(--trevh-grey); margin-top:4px; }

/* Exhibitor dashboard CTA ("Submit a New Enquiry") — breathing room below the
   button so it doesn't sit flush against the "My Enquiries" panel. */
.trevh-dashboard-cta { margin-bottom:32px; }
.trevh-dashboard-cta p { margin:0 0 12px; }

.trevh-cities-bar { background:#fff; border-radius:var(--trevh-radius); padding:12px 16px; margin-bottom:24px; font-size:14px; }
.trevh-city-tag { display:inline-block; background:var(--trevh-primary); color:#fff; border-radius:20px; padding:3px 12px; font-size:12px; margin:2px; }

/* ── Leads table ────────────────────────────────────────────────────────────── */
.trevh-leads-section { background:#fff; border-radius:var(--trevh-radius); box-shadow:var(--trevh-shadow); padding:24px; }

/* Lead tabs (Available / Accepted / Rejected) */
.trevh-lead-tabs { display:flex; flex-wrap:wrap; gap:4px; border-bottom:2px solid var(--trevh-border); margin-bottom:18px; }
.trevh-lead-tab { background:none; border:0; border-bottom:2px solid transparent; margin-bottom:-2px; padding:10px 18px; font-size:14px; font-weight:600; color:var(--trevh-grey); cursor:pointer; }
.trevh-lead-tab:hover { color:var(--trevh-accent); }
.trevh-lead-tab.is-active { color:var(--trevh-primary); border-bottom-color:var(--trevh-primary); }
.trevh-leads-empty { text-align:center; padding:32px; color:var(--trevh-grey); }

/* Lead filter bar (search + city / show / budget dropdowns) */
.trevh-lead-filters { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:18px; }
.trevh-filter-search { flex:1 1 220px; min-width:0; padding:9px 12px; border:1px solid var(--trevh-border); border-radius:6px; font-size:14px; }
.trevh-filter-select { flex:0 1 170px; padding:9px 12px; border:1px solid var(--trevh-border); border-radius:6px; font-size:14px; background:#fff; }
.trevh-filter-clear { flex:0 0 auto; }
@media (max-width:600px) {
	.trevh-lead-filters { flex-direction:column; align-items:stretch; }
	.trevh-filter-search, .trevh-filter-select, .trevh-filter-clear { flex:1 1 auto; width:100%; }
}

/* A min-width keeps the columns usable: on a narrow viewport the wrapper
   (.trevh-table-wrap) scrolls horizontally instead of squashing cells, so the
   Action buttons never clip. */
.trevh-leads-table { width:100%; min-width:960px; border-collapse:collapse; font-size:14px; }
.trevh-leads-table th,
.trevh-leads-table td { padding:12px; border-bottom:1px solid var(--trevh-border); text-align:left; vertical-align:top; }
.trevh-leads-table th { background:var(--trevh-grey-light); font-weight:600; }
/* Action buttons must never wrap/clip. */
.trevh-leads-table td:last-child { white-space:nowrap; }
.trevh-leads-table .trevh-btn { white-space:nowrap; }
.trevh-contact-redacted { letter-spacing:2px; color:var(--trevh-grey); }
.trevh-contact-number { font-weight:600; color:var(--trevh-accent); }
.trevh-loading { text-align:center; padding:40px; color:var(--trevh-grey); }
.trevh-pagination { margin-top:16px; text-align:center; display:flex; flex-wrap:wrap; gap:6px; justify-content:center; align-items:center; }
.trevh-page-btn { min-width:38px; padding:6px 12px; border:1px solid var(--trevh-border); border-radius:4px; background:#fff; cursor:pointer; }
.trevh-page-btn--active { background:var(--trevh-primary); color:#fff; border-color:var(--trevh-primary); }
.trevh-page-btn:disabled { opacity:.45; cursor:not-allowed; }
.trevh-page-ellipsis { padding:0 4px; color:var(--trevh-grey); }

/* ── Badges ─────────────────────────────────────────────────────────────────── */
.trevh-badge { padding:3px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.trevh-badge--green { background:#d4edda; color:#155724; }
.trevh-badge--red   { background:#f8d7da; color:#721c24; }

/* ── KYC page ───────────────────────────────────────────────────────────────── */
.trevh-upload-area { border:2px dashed var(--trevh-border); border-radius:var(--trevh-radius); padding:24px; text-align:center; cursor:pointer; background:var(--trevh-grey-light); transition:border-color .2s; }
.trevh-upload-area:hover { border-color:var(--trevh-primary); }
.trevh-upload-area--small { padding:12px; margin-top:12px; max-width:200px; }
.trevh-upload-icon { font-size:32px; display:block; margin-bottom:8px; }
.trevh-logo-preview { max-height:120px; max-width:200px; object-fit:contain; }
.trevh-photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:8px; margin-top:12px; }
.trevh-photo-item { position:relative; border-radius:4px; overflow:hidden; }
.trevh-photo-item img { width:100%; height:100px; object-fit:cover; display:block; }
.trevh-photo-remove { position:absolute; top:4px; right:4px; background:rgba(0,0,0,.6); color:#fff; border:none; border-radius:50%; width:22px; height:22px; cursor:pointer; font-size:12px; line-height:22px; text-align:center; }
.trevh-locked-badge { display:inline-block; background:var(--trevh-accent); color:#fff; border-radius:4px; font-size:12px; padding:2px 8px; margin-left:8px; }
.trevh-selected-cities { margin-top:12px; min-height:40px; }
.trevh-no-cities { font-size:13px; color:var(--trevh-grey); }
.trevh-form-submit { margin-top:32px; }

/* ── Search bar ─────────────────────────────────────────────────────────────── */
.trevh-search-bar-wrap { display:flex; justify-content:center; padding:36px 16px; }
.trevh-search-bar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; justify-content:center; width:100%; max-width:760px; margin:0 auto; }
/* Both fields share the row equally (flex-basis + min-width:0) so State and City
   stay identical widths regardless of their option text. */
.trevh-search-field { flex:1 1 200px; min-width:0; }
.trevh-search-field select { width:100%; padding:12px 16px; border:none; border-radius:var(--trevh-radius); font-size:15px; box-shadow:0 2px 8px rgba(0,0,0,.1); background:#fff; }
.trevh-search-btn { flex:0 0 auto; padding:12px 28px; background:var(--trevh-primary); color:#fff; border:none; border-radius:var(--trevh-radius); font-size:15px; font-weight:700; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,.15); transition:background .2s; }
.trevh-search-btn:hover { background:var(--trevh-primary-dark); }

/* ── Thank you page ─────────────────────────────────────────────────────────── */
.trevh-thankyou-page { display:flex; justify-content:center; align-items:center; min-height:400px; }
.trevh-thankyou-card { text-align:center; background:#fff; border-radius:var(--trevh-radius); box-shadow:var(--trevh-shadow); padding:48px 40px; max-width:560px; }
.trevh-thankyou-icon { width:64px; height:64px; background:var(--trevh-success); border-radius:50%; font-size:28px; color:#fff; line-height:64px; margin:0 auto 24px; }
.trevh-thankyou-message { font-size:16px; color:#555; line-height:1.7; margin-bottom:28px; }

/* ── Upgrade popup ──────────────────────────────────────────────────────────── */
.trevh-popup-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:9999; display:flex; justify-content:center; align-items:center; }
.trevh-popup { background:#fff; border-radius:var(--trevh-radius); padding:32px; max-width:680px; width:90%; position:relative; max-height:85vh; overflow-y:auto; }
.trevh-popup-close { position:absolute; top:12px; right:12px; background:none; border:none; font-size:20px; cursor:pointer; color:var(--trevh-grey); }
.trevh-plan-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin:16px 0; }
.trevh-plan-card { border:1.5px solid var(--trevh-border); border-radius:var(--trevh-radius); padding:16px; text-align:center; }
.trevh-plan-card h4 { margin:0 0 8px; font-size:16px; color:var(--trevh-accent); }
.trevh-plan-price { font-size:20px; font-weight:700; color:var(--trevh-primary); margin:8px 0; }
.trevh-plan-card ul { list-style:none; padding:0; margin:8px 0 0; font-size:13px; color:#555; }
.trevh-popup-note { font-size:13px; color:var(--trevh-grey); text-align:center; margin-top:16px; }

/* ── Responsive ─────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
	.trevh-stats-row  { grid-template-columns:1fr 1fr; }
	.trevh-form-row   { grid-template-columns:1fr; }
	.trevh-search-bar { flex-direction:column; width:100%; }
	.trevh-search-field { flex:1 1 auto; width:100%; }
	.trevh-search-field select { width:100%; }
	.trevh-search-btn  { width:100%; }
}

/* ── Member top navigation ──────────────────────────────────────────────────── */
.trevh-nav { display:flex; flex-wrap:wrap; gap:6px; background:#fff; border-radius:var(--trevh-radius); box-shadow:var(--trevh-shadow); padding:8px; margin-bottom:24px; }
.trevh-nav-link { padding:8px 16px; border-radius:var(--trevh-radius); font-size:14px; font-weight:600; color:var(--trevh-accent); text-decoration:none; transition:background .2s,color .2s; }
.trevh-nav-link:hover { background:var(--trevh-grey-light); color:var(--trevh-accent); }
.trevh-nav-link.is-active { background:var(--trevh-primary); color:#fff; }
.trevh-nav-link--logout { color:var(--trevh-grey); }
.trevh-nav-link--logout:hover { background:#FFF3F3; color:var(--trevh-danger); }

/* Logged-in identity chip — pushed to the right, sits before Logout. */
.trevh-nav-identity { margin-left:auto; display:inline-flex; align-items:center; gap:8px; padding:4px 12px; line-height:1.2; }
.trevh-nav-identity-name { font-weight:600; color:var(--trevh-accent); max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.trevh-nav-identity-role { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:#fff; background:var(--trevh-primary); padding:2px 8px; border-radius:10px; }

/* ── Buy credits link (credit stat card) ────────────────────────────────────── */
.trevh-buy-credits { display:inline-block; margin-top:6px; font-size:12px; font-weight:600; color:var(--trevh-accent); text-decoration:none; }
.trevh-buy-credits:hover { text-decoration:underline; }

/* ── Profile summary card (dashboard) ───────────────────────────────────────── */
.trevh-profile-card { display:flex; align-items:center; gap:18px; background:#fff; border-radius:var(--trevh-radius); box-shadow:var(--trevh-shadow); padding:20px 24px; margin-bottom:24px; }
.trevh-profile-logo { flex:0 0 auto; width:72px; height:72px; border-radius:50%; overflow:hidden; background:var(--trevh-grey-light); display:flex; align-items:center; justify-content:center; }
.trevh-profile-logo img { width:100%; height:100%; object-fit:cover; }
.trevh-profile-info h2 { margin:0 0 4px; font-size:20px; color:var(--trevh-accent); }
.trevh-profile-meta { margin:0 0 10px; font-size:13px; color:var(--trevh-grey); }
.trevh-logo-placeholder { font-size:24px; font-weight:700; color:var(--trevh-grey); text-transform:uppercase; }
.trevh-btn--sm { padding:6px 14px; font-size:13px; }
.trevh-stat-value--sm { font-size:18px; }

/* ── Lead status pills ──────────────────────────────────────────────────────── */
.trevh-status { display:inline-block; padding:3px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.trevh-status--new         { background:#EBF7FF; color:#0C5460; }
.trevh-status--in_progress { background:#FFFBE6; color:#856404; }
.trevh-status--closed      { background:#E0E0E0; color:#555; }
/* Exhibitor status dropdown — reuses the pill colours above via .trevh-status--* */
.trevh-status-select {
	display:inline-block; padding:4px 26px 4px 12px; border-radius:20px;
	font-size:12px; font-weight:600; border:1px solid rgba(0,0,0,.08);
	cursor:pointer; line-height:1.4; -webkit-appearance:none; -moz-appearance:none; appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23555' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 10px center;
}
.trevh-status-select:disabled { opacity:.6; cursor:default; }
.trevh-empty { color:var(--trevh-grey); font-size:14px; padding:16px 0; }
.trevh-table-wrap { overflow-x:auto; }

/* ── My Account page ────────────────────────────────────────────────────────── */
.trevh-account-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; align-items:start; }
.trevh-card { background:#fff; padding:28px; border-radius:var(--trevh-radius); box-shadow:var(--trevh-shadow); }
.trevh-card h3 { margin:0 0 20px; font-size:17px; color:var(--trevh-accent); }
.trevh-logo-edit { display:flex; align-items:center; gap:18px; margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid var(--trevh-border); }
.trevh-logo-edit .trevh-logo-preview { flex:0 0 auto; width:84px; height:84px; max-width:84px; max-height:84px; border-radius:8px; overflow:hidden; background:var(--trevh-grey-light); display:flex; align-items:center; justify-content:center; }
.trevh-logo-edit .trevh-logo-preview img { width:100%; height:100%; object-fit:cover; }
.trevh-logo-actions { flex:1 1 auto; }
.trevh-field-hint { font-size:12px; color:var(--trevh-grey); margin:8px 0 0; }
.trevh-reverify-hint { color:#856404; }

@media (max-width: 760px) {
	.trevh-account-grid { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
	.trevh-profile-card { flex-direction:column; text-align:center; }
	.trevh-nav-link--logout { margin-left:0; }
	.trevh-nav-identity { margin-left:0; width:100%; }
}

/* ── KYC city tags + logo upload hint ───────────────────────────────────────── */
.trevh-selected-cities .trevh-city-tag { display:inline-flex; align-items:center; gap:6px; vertical-align:middle; }
.trevh-city-remove { background:none; border:0; color:#fff; cursor:pointer; font-size:13px; line-height:1; padding:0; margin:0; opacity:.85; box-shadow:none; }
.trevh-city-remove:hover,
.trevh-city-remove:focus { opacity:1; background:none; outline:none; }
.trevh-upload-hint { margin:8px 0 0; font-size:12px; color:var(--trevh-grey); }

/* ── City picker (v1.1.4) ────────────────────────────────────────────────────── */
.trevh-city-picker { background:#fafafa; border:1px solid #eee; border-radius:10px; padding:14px 16px; margin:8px 0 14px; }
.trevh-city-picker-row { align-items:end; }
.trevh-city-add-field { display:flex; flex-direction:column; }
.trevh-city-add-spacer { visibility:hidden; }
.trevh-city-counter { margin:10px 0 0; font-size:13px; font-weight:600; color:var(--trevh-grey); }
.trevh-city-picker--full .trevh-city-counter { color:#16a34a; }
.trevh-selected-cities-wrap { margin:0 0 8px; }
.trevh-selected-cities-heading { display:block; margin-bottom:8px; font-size:13px; color:var(--trevh-grey); }
.trevh-selected-cities { display:flex; flex-wrap:wrap; gap:8px; }
.trevh-no-cities { color:var(--trevh-grey); font-style:italic; }

/* ── Dashboard donut charts (v1.1.4) ─────────────────────────────────────────── */
.trevh-charts-row { display:flex; flex-wrap:wrap; gap:20px; margin:18px 0 24px; }
.trevh-chart-card { flex:1 1 240px; background:#fff; border:1px solid #ececec; border-radius:14px; padding:20px; box-shadow:0 4px 16px rgba(0,0,0,.04); text-align:center; }
.trevh-chart-title { margin:0 0 14px; font-size:15px; font-weight:700; color:#111827; }
.trevh-chart-wrap { position:relative; width:180px; max-width:100%; margin:0 auto; }
.trevh-chart-wrap canvas { display:block; width:100%!important; height:auto!important; }
.trevh-chart-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; pointer-events:none; }
.trevh-chart-num { font-size:30px; font-weight:800; line-height:1; color:#111827; }
.trevh-chart-cap { font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--trevh-grey); margin-top:2px; }
.trevh-chart-legend { list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; text-align:left; max-width:240px; margin-left:auto; margin-right:auto; }
.trevh-chart-legend li { font-size:13px; color:#374151; display:flex; align-items:center; gap:8px; }
.trevh-dot { width:11px; height:11px; border-radius:50%; flex:0 0 auto; display:inline-block; }
.trevh-dot--orange { background:var(--trevh-primary); }
.trevh-dot--grey { background:#e5e7eb; }
.trevh-dot--blue { background:#2563eb; }
.trevh-dot--blue-light { background:#dbeafe; }
.trevh-dot--green { background:#16a34a; }
/* "Last Enquiry" tile sits beside the exhibitor donut; centre its content so it
   matches the donut card's height. */
.trevh-chart-card--tile { display:flex; flex-direction:column; align-items:center; justify-content:center; }
.trevh-tile-value { font-size:24px; font-weight:800; color:#111827; line-height:1.2; text-align:center; }
.trevh-tile-sub { margin:8px 0 0; font-size:13px; color:var(--trevh-grey); text-align:center; }
/* Prominent, button-styled call-to-action under the Credits donut. */
.trevh-chart-card .trevh-buy-credits { display:block; width:100%; box-sizing:border-box; margin-top:16px; padding:12px 18px; background:var(--trevh-primary); color:#fff; font-size:15px; font-weight:700; text-align:center; text-decoration:none; border-radius:var(--trevh-radius); box-shadow:0 2px 8px rgba(0,0,0,.18); transition:background .2s, transform .1s, box-shadow .2s; }
.trevh-chart-card .trevh-buy-credits:hover { background:var(--trevh-primary-dark); color:#fff; text-decoration:none; transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.22); }

/* ── Leads table: hidden company + brief cell (v1.1.4) ───────────────────────── */
.trevh-company-hidden { color:var(--trevh-grey); font-style:italic; white-space:nowrap; }
.trevh-brief-cell { max-width:220px; max-height:3.2em; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; white-space:normal; font-size:13px; color:#4b5563; }

/* ── Enquiry form: new fields (v1.1.8) ──────────────────────────────────────── */
.trevh-sub-label { font-size:12px; font-weight:500; color:var(--trevh-grey); }
.trevh-field-hint { display:block; margin-top:4px; font-size:12px; color:var(--trevh-grey); }
.trevh-size-row { align-items:flex-end; }
.trevh-fieldset { border:1px solid #e5e7eb; border-radius:8px; padding:16px 18px 4px; margin:8px 0 20px; }
.trevh-fieldset legend { padding:0 8px; font-weight:600; font-size:14px; color:var(--trevh-accent); }
.trevh-optional-tag { font-weight:400; font-size:12px; color:var(--trevh-grey); }
.trevh-lead-form-page input[type="file"] { display:block; width:100%; font-size:14px; padding:8px 0; }

/* ── Leads table: details toggle + spec sheet (v1.1.8) ──────────────────────── */
.trevh-detail-col, .trevh-detail-toggle-cell { width:34px; text-align:center; }
.trevh-detail-toggle { border:1px solid #d1d5db; background:#f9fafb; border-radius:6px; width:26px; height:26px; line-height:1; cursor:pointer; color:var(--trevh-accent); font-size:12px; padding:0; }
.trevh-detail-toggle:hover { background:var(--trevh-primary); color:#fff; border-color:var(--trevh-primary); }
.trevh-detail-toggle[aria-expanded="true"] { background:var(--trevh-primary); color:#fff; border-color:var(--trevh-primary); }
.trevh-detail-row > td { background:#f9fafb; padding:14px 18px; }
.trevh-lead-specs { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px 24px; }
.trevh-spec { display:flex; flex-direction:column; gap:2px; font-size:13px; }
.trevh-spec-label { font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--trevh-grey); }
.trevh-spec-value { color:#1f2937; font-weight:500; word-break:break-word; }
.trevh-floorplan-link { color:var(--trevh-primary); text-decoration:none; font-weight:600; }
.trevh-floorplan-link:hover { text-decoration:underline; }
.trevh-floorplan-locked { color:var(--trevh-grey); font-style:italic; font-weight:400; }
.trevh-spec-empty { color:var(--trevh-grey); }

/* SB leads Brief cell (v1.1.13): snippet + a "Show details" toggle that
   expands the consolidated detail row. The toggle replaces the old separate
   arrow column, so the trigger now lives in the Brief column. */
.trevh-brief-col { min-width:200px; }
.trevh-brief-toggle { display:inline-block; margin-top:6px; padding:0; background:none; border:0; cursor:pointer; color:var(--trevh-primary); font-weight:600; font-size:12px; }
.trevh-brief-toggle:hover { text-decoration:underline; }
.trevh-brief-caret { font-size:10px; }

/* SB leads detail row (v1.1.12): consolidated brief block, not a column grid. */
.trevh-detail-locked { margin:0; color:var(--trevh-grey); font-style:italic; }
.trevh-lead-detail .trevh-detail-heading { margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--trevh-grey); }
.trevh-detail-brief { margin:0 0 12px; color:#1f2937; font-size:14px; line-height:1.5; white-space:pre-line; }
.trevh-detail-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.trevh-detail-list li { font-size:13px; color:#1f2937; }
.trevh-detail-term { color:var(--trevh-grey); font-weight:600; }
.trevh-detail-val { word-break:break-word; }
.trevh-detail-floorplan { margin:12px 0 0; font-size:13px; }


/* ── v1.1.9 — Login register links, row-based city picker, account layout ──── */

/* "Don't have an account?" links under both login forms */
.trevh-register-link { text-align:center; margin:0; padding:22px 0 10px; color:var(--trevh-grey); font-size:15px; }
.trevh-register-link a { color:var(--trevh-primary); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.trevh-register-link a:hover { color:var(--trevh-primary-dark); }

/* Row-based city picker (KYC + My Account): one State+City pair per row,
   a − button per row and a single + button to add another row. */
.trevh-city-rows { margin-bottom:6px; }
.trevh-city-row { display:grid; grid-template-columns:1fr 1fr 40px; gap:12px; align-items:end; margin-bottom:12px; }
.trevh-city-row .trevh-field { margin-bottom:0; }
.trevh-city-row-remove { width:36px; height:42px; border:1px solid #fca5a5; background:#fef2f2; color:#dc2626; border-radius:8px; font-size:20px; line-height:1; cursor:pointer; transition:background .15s,color .15s; }
.trevh-city-row-remove:hover:not(:disabled) { background:#dc2626; color:#fff; border-color:#dc2626; }
.trevh-city-row-remove:disabled { opacity:.35; cursor:not-allowed; }
.trevh-city-add-row { margin-top:2px; }
@media (max-width: 600px) {
	.trevh-city-row { grid-template-columns:1fr 1fr 36px; gap:8px; }
}

/* Native select arrow breathing room — long option names (e.g. "Meghalaya")
   were overlapping the dropdown chevron. */
.trevh-field select { padding-right:34px; text-overflow:ellipsis; }

/* ── My Account (v1.1.10 redesign) ──────────────────────────────────────────
   Comfortable reading width + an asymmetric layout: the tall Profile card
   anchors the left column while Password and Service Cities stack on the
   right, so the page no longer reads as three cramped equal columns. */
.trevh-wrap.trevh-account-page { max-width:1160px; margin:0 auto; }

.trevh-account-head { margin:4px 0 22px; }
.trevh-account-head h2 { margin:0 0 6px; }
.trevh-account-sub { margin:0; color:var(--trevh-grey); font-size:15px; }

.trevh-account-grid {
	display:grid;
	grid-template-columns:minmax(0, 1.15fr) minmax(0, 0.85fr);
	grid-template-areas:
		"profile password"
		"profile cities";
	gap:26px;
	align-items:start;
}
.trevh-card--profile  { grid-area:profile; }
.trevh-card--password { grid-area:password; }
.trevh-card--cities   { grid-area:cities; }

.trevh-account-grid .trevh-card { border:1px solid #e9edf1; border-radius:14px; padding:30px 32px; }
.trevh-account-grid .trevh-card h3 {
	display:flex; align-items:center; gap:10px;
	margin:0 0 22px; padding-bottom:14px; border-bottom:1px solid #f0f2f4;
}
.trevh-account-grid .trevh-card h3::before {
	content:""; width:4px; height:18px; border-radius:2px;
	background:var(--trevh-primary); flex:0 0 auto;
}

@media (max-width: 900px) {
	.trevh-account-grid {
		grid-template-columns:1fr;
		grid-template-areas:"profile" "password" "cities";
	}
	.trevh-account-grid .trevh-card { padding:24px 20px; }
}
