/* ============================================================
   BHOOMI Real Estate Management System — Global Styles v2
   ============================================================ */

/* ---- Reset / Base ---- */
*, *::before, *::after { box-sizing: border-box; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

body.re-body {
    margin: 0; padding: 0;
    font-family: 'Inter', 'Segoe UI', sans-serif;
    font-size: 13.5px;
    background: #f1f5f9;
    color: #334155;
    min-height: 100vh;
}

/* ============================
   SIDEBAR
   ============================ */
.re-sidebar {
    width: 252px;
    height: 100vh;
    position: fixed;
    top: 0; left: 0;
    background: linear-gradient(180deg, #0d1b2a 0%, #0f2240 100%);
    color: #94a3b8;
    display: flex;
    flex-direction: column;
    transition: width 0.28s cubic-bezier(.4,0,.2,1), transform 0.28s cubic-bezier(.4,0,.2,1);
    z-index: 1050;
    overflow: hidden;
}
.re-sidebar.collapsed { width: 62px; }

/* Brand */
.sidebar-brand {
    display: flex; align-items: center; gap: 11px;
    padding: 18px 16px 16px;
    border-bottom: 1px solid rgba(255,255,255,.07);
    flex-shrink: 0; min-height: 64px;
}
.brand-icon { font-size: 26px; color: #3b82f6; flex-shrink: 0; }
.brand-text {
    font-size: 17px; font-weight: 800; letter-spacing: 2px;
    color: #f8fafc; white-space: nowrap; line-height: 1.1;
}
.brand-sub {
    font-size: 9.5px; font-weight: 500; letter-spacing: 2.5px;
    color: #3b82f6; margin-top: 1px; white-space: nowrap;
}

/* Nav scroll area */
.sidebar-nav {
    padding: 6px 0 20px; flex: 1 1 auto; min-height: 0;
    overflow-y: auto; overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.12) transparent;
}
.sidebar-nav::-webkit-scrollbar { width: 4px; }
.sidebar-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.14); border-radius: 4px; }

/* Section dividers */
.snav-divider {
    padding: 16px 16px 4px;
    font-size: 9.5px; font-weight: 700;
    letter-spacing: 1.8px; color: #3d5066;
    text-transform: uppercase; white-space: nowrap;
}

/* Nav items */
.snav-item {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 16px;
    color: #8fa3ba; text-decoration: none !important;
    font-size: 13px; font-weight: 500;
    border-left: 3px solid transparent;
    cursor: pointer; white-space: nowrap;
    transition: background .15s, color .15s, border-color .15s;
}
.snav-item > i:first-child { font-size: 15px; flex-shrink: 0; width: 18px; text-align: center; }
.snav-item:hover {
    background: rgba(59,130,246,.1); color: #c7d8ed;
    border-left-color: rgba(59,130,246,.4);
}
.snav-item.active { background: rgba(59,130,246,.18); color: #93c5fd; border-left-color: #3b82f6; }

.snav-arrow { margin-left: auto; font-size: 10px; flex-shrink: 0; transition: transform .25s; }
.snav-parent:not(.collapsed) .snav-arrow { transform: rotate(90deg); }

/* Sub-menu */
.snav-sub { background: rgba(0,0,0,.15); }
.snav-child {
    display: flex; align-items: center; gap: 8px;
    padding: 6.5px 16px 6.5px 38px;
    color: #607080; text-decoration: none !important;
    font-size: 12.5px;
    border-left: 3px solid transparent;
    white-space: nowrap;
    transition: background .12s, color .12s, border-color .12s;
}
.snav-child > i { font-size: 13px; width: 14px; text-align: center; flex-shrink: 0; }
.snav-child:hover { background: rgba(59,130,246,.09); color: #93c5fd; border-left-color: rgba(59,130,246,.35); text-decoration: none; }
.snav-child.active { color: #60a5fa; background: rgba(59,130,246,.14); border-left-color: #3b82f6; }

/* Legacy / coming-soon items */
.snav-legacy { opacity: .45; cursor: default; pointer-events: none; }
.snav-badge-legacy {
    margin-left: auto; font-size: 9px; font-weight: 600;
    padding: 1px 6px; border-radius: 8px;
    background: rgba(100,116,139,.2); color: #64748b;
    letter-spacing: .4px; flex-shrink: 0;
}
.snav-badge-soon {
    font-size: 9px; font-weight: 700; padding: 2px 6px;
    border-radius: 8px; letter-spacing: .5px; flex-shrink: 0;
    background: rgba(245,158,11,.15); color: #fbbf24;
    margin-left: 6px;
}

/* Collapsed sidebar hides text */
.re-sidebar.collapsed .brand-text,
.re-sidebar.collapsed .brand-sub,
.re-sidebar.collapsed .snav-divider,
.re-sidebar.collapsed .snav-item > span,
.re-sidebar.collapsed .snav-arrow,
.re-sidebar.collapsed .snav-badge-soon,
.re-sidebar.collapsed .snav-sub,
.re-sidebar.collapsed .sidebar-footer { display: none; }
.re-sidebar.collapsed .snav-item { padding: 11px; justify-content: center; border-left: none; }
.re-sidebar.collapsed .snav-item > i:first-child { font-size: 18px; width: auto; }
.re-sidebar.collapsed .sidebar-brand { justify-content: center; padding: 16px 8px; }

/* Sidebar footer */
.sidebar-footer {
    padding: 11px 16px; font-size: 10.5px; color: #2e4055;
    border-top: 1px solid rgba(255,255,255,.05);
    flex-shrink: 0; white-space: nowrap;
}

/* ============================
   MAIN AREA
   ============================ */
.re-main {
    margin-left: 252px; min-height: 100vh;
    display: flex; flex-direction: column;
    transition: margin-left .28s cubic-bezier(.4,0,.2,1);
}
.re-main.sidebar-collapsed { margin-left: 62px; }

/* ============================
   TOP BAR
   ============================ */
.re-topbar {
    position: sticky; top: 0; z-index: 1000;
    height: 58px;
    background: #ffffff;
    border-bottom: 1px solid #e8eef4;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
    display: flex; align-items: center;
    padding: 0 20px; gap: 12px; flex-shrink: 0;
}

.sidebar-toggle {
    background: none; border: none;
    width: 36px; height: 36px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; color: #64748b; cursor: pointer;
    transition: background .15s; flex-shrink: 0;
}
.sidebar-toggle:hover { background: #f1f5f9; color: #334155; }

.topbar-left { flex: 0 0 auto; min-width: 0; }
.topbar-title {
    font-size: 15px; font-weight: 600; color: #1e293b;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Search bar */
.topbar-search-wrap {
    flex: 1 1 0; max-width: 380px; min-width: 160px;
    display: flex; align-items: center; gap: 8px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 0 12px; height: 36px;
    transition: border-color .15s, box-shadow .15s;
}
.topbar-search-wrap:focus-within {
    border-color: #93c5fd;
    box-shadow: 0 0 0 3px rgba(59,130,246,.1);
    background: #fff;
}
.topbar-search-wrap i { color: #94a3b8; font-size: 14px; flex-shrink: 0; }
.topbar-search-wrap input {
    border: none; background: none; outline: none;
    font-size: 13px; color: #475569; width: 100%;
    font-family: 'Inter', 'Segoe UI', sans-serif;
}
.topbar-search-wrap input::placeholder { color: #94a3b8; }

/* Topbar right cluster */
.topbar-actions {
    display: flex; align-items: center;
    gap: 4px; flex-shrink: 0; margin-left: auto;
}

.topbar-icon-btn {
    width: 36px; height: 36px; border-radius: 8px;
    border: 1px solid #e8eef4; background: #fff;
    color: #64748b; display: flex; align-items: center;
    justify-content: center; font-size: 16px; cursor: pointer;
    position: relative; transition: all .15s;
    flex-shrink: 0;
}
.topbar-icon-btn:hover { background: #f8fafc; color: #334155; border-color: #cbd5e1; }

/* notification red dot */
.notif-dot {
    position: absolute; top: 8px; right: 8px;
    width: 7px; height: 7px;
    background: #ef4444; border-radius: 50%;
    border: 1.5px solid #fff;
}

/* vertical separator */
.topbar-sep {
    width: 1px; height: 28px; background: #e2e8f0;
    margin: 0 6px; flex-shrink: 0;
}

.btn-login {
    padding: 7px 16px; background: #2563eb;
    color: #fff !important; border-radius: 7px;
    text-decoration: none !important; font-size: 13px;
    font-weight: 500; transition: background .15s;
}
.btn-login:hover { background: #1d4ed8; }

/* User cluster */
.topbar-user-wrap {
    display: flex; align-items: center; gap: 9px;
    position: relative; cursor: pointer;
    padding: 4px 6px 4px 4px;
    border-radius: 10px;
    transition: background .15s;
}
.topbar-user-wrap:hover { background: #f8fafc; }

.user-avatar {
    width: 34px; height: 34px; border-radius: 50%;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 13px; font-weight: 700;
    flex-shrink: 0; letter-spacing: .5px;
}
.user-meta { display: flex; flex-direction: column; line-height: 1.25; }
.user-name { font-size: 13px; font-weight: 600; color: #1e293b; white-space: nowrap; }
.user-role { font-size: 11px; color: #94a3b8; }
.user-chevron { font-size: 11px; color: #94a3b8; transition: transform .2s; flex-shrink: 0; }

/* User dropdown */
.user-dropdown {
    display: none; position: absolute;
    top: calc(100% + 8px); right: 0;
    width: 228px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
    z-index: 2000; overflow: hidden;
    animation: ddFadeIn .15s ease;
}
.user-dropdown.open { display: block; }

@keyframes ddFadeIn {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.user-dropdown-header {
    display: flex; align-items: center; gap: 10px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid #f1f5f9;
}
.user-avatar-lg {
    width: 38px; height: 38px; border-radius: 50%;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 14px; font-weight: 700;
    flex-shrink: 0;
}
.udd-name { font-size: 13.5px; font-weight: 600; color: #0f172a; }
.udd-role { font-size: 11.5px; color: #64748b; }

.udd-divider { height: 1px; background: #f1f5f9; margin: 4px 0; }

.udd-item {
    display: flex; align-items: center; gap: 9px;
    padding: 9px 16px; font-size: 13px; color: #334155;
    text-decoration: none !important;
    transition: background .12s, color .12s;
    background: none; border: none; width: 100%;
    cursor: pointer; text-align: left;
}
.udd-item i { font-size: 14px; width: 16px; text-align: center; color: #64748b; flex-shrink: 0; }
.udd-item:hover { background: #f8fafc; color: #1e293b; text-decoration: none; }

.udd-signout { color: #ef4444 !important; }
.udd-signout i { color: #ef4444 !important; }
.udd-signout:hover { background: #fef2f2 !important; }

/* ============================
   PAGE CONTENT
   ============================ */
.re-content { flex: 1; padding: 16px 20px; }

/* ============================
   FOOTER
   ============================ */
.re-footer {
    background: #fff; border-top: 1px solid #e8eef4;
    padding: 10px 24px; font-size: 11.5px; color: #94a3b8;
    text-align: center; flex-shrink: 0;
}
.re-footer a { color: #2563eb; text-decoration: none; }
.re-footer a:hover { text-decoration: underline; }

/* ============================
   PAGE HEADER
   ============================ */
.page-header-bar {
    display: flex; align-items: flex-start; justify-content: space-between;
    margin-bottom: 14px; flex-wrap: wrap; gap: 10px;
}
.page-title {
    font-size: 18px; font-weight: 700; color: #0f172a;
    display: flex; align-items: center; gap: 8px; margin: 0;
}
.page-title i { color: #2563eb; }
.page-subtitle { font-size: 12px; color: #94a3b8; margin-top: 2px; }

/* Welcome bar (dashboard) */
.welcome-bar {
    display: flex; align-items: center; justify-content: space-between;
    background: linear-gradient(135deg, #1e3a5f 0%, #1e40af 100%);
    border-radius: 12px; padding: 20px 24px;
    margin-bottom: 22px; color: #fff;
    flex-wrap: wrap; gap: 12px;
}
.welcome-bar h2 { margin: 0 0 4px; font-size: 18px; font-weight: 700; }
.welcome-bar p  { margin: 0; font-size: 13px; color: rgba(255,255,255,.75); }
.welcome-bar-date { font-size: 12.5px; color: rgba(255,255,255,.65); text-align: right; }
.welcome-bar-date strong { display: block; font-size: 20px; font-weight: 700; color: #fff; }

/* ============================
   KPI CARDS
   ============================ */
.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
    gap: 14px; margin-bottom: 22px;
}
.kpi-card {
    background: #fff; border-radius: 12px;
    padding: 18px 20px 16px;
    display: flex; align-items: flex-start; gap: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
    border-left: 4px solid transparent;
    transition: transform .15s, box-shadow .15s;
    position: relative; overflow: hidden;
}
.kpi-card::after {
    content: ''; position: absolute;
    top: 0; right: 0; width: 60px; height: 60px;
    border-radius: 0 0 0 60px;
    background: rgba(0,0,0,.025);
}
.kpi-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.1); }

.kpi-icon {
    width: 46px; height: 46px; border-radius: 11px;
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; flex-shrink: 0;
}
.kpi-body { flex: 1; min-width: 0; }
.kpi-value { font-size: 24px; font-weight: 700; color: #0f172a; line-height: 1; }
.kpi-label { font-size: 11.5px; color: #64748b; margin-top: 5px; font-weight: 500; }
.kpi-trend {
    font-size: 11px; margin-top: 6px; font-weight: 600;
    display: inline-flex; align-items: center; gap: 3px;
}
.kpi-trend.up   { color: #059669; }
.kpi-trend.down { color: #dc2626; }
.kpi-trend.flat { color: #94a3b8; }

.kpi-blue   { border-left-color: #2563eb; } .kpi-blue   .kpi-icon { background: #eff6ff; color: #2563eb; }
.kpi-green  { border-left-color: #059669; } .kpi-green  .kpi-icon { background: #ecfdf5; color: #059669; }
.kpi-yellow { border-left-color: #d97706; } .kpi-yellow .kpi-icon { background: #fffbeb; color: #d97706; }
.kpi-red    { border-left-color: #dc2626; } .kpi-red    .kpi-icon { background: #fef2f2; color: #dc2626; }
.kpi-purple { border-left-color: #7c3aed; } .kpi-purple .kpi-icon { background: #f5f3ff; color: #7c3aed; }
.kpi-teal   { border-left-color: #0891b2; } .kpi-teal   .kpi-icon { background: #ecfeff; color: #0891b2; }
.kpi-orange { border-left-color: #ea580c; } .kpi-orange .kpi-icon { background: #fff7ed; color: #ea580c; }
.kpi-slate  { border-left-color: #475569; } .kpi-slate  .kpi-icon { background: #f8fafc; color: #475569; }
.kpi-pink   { border-left-color: #db2777; } .kpi-pink   .kpi-icon { background: #fdf2f8; color: #db2777; }
.kpi-indigo { border-left-color: #4f46e5; } .kpi-indigo .kpi-icon { background: #eef2ff; color: #4f46e5; }

/* ============================
   CARDS
   ============================ */
.card {
    background: #fff; border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);
    border: none; margin-bottom: 14px; overflow: hidden;
}
.card-header {
    background: #fff; border-bottom: 1px solid #f1f5f9;
    padding: 10px 16px; font-weight: 600; font-size: 13px;
    color: #1e293b; display: flex; align-items: center; gap: 8px;
}
.card-header i { color: #2563eb; font-size: 14px; }
.card-header .card-header-actions { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.card-body { padding: 14px 16px; }
.card-footer {
    background: #f8fafc; border-top: 1px solid #f1f5f9;
    padding: 10px 18px; font-size: 12px; color: #94a3b8;
}

/* ============================
   TABLES
   ============================ */
.table {
    font-size: 13px; color: #334155;
    width: 100%; border-collapse: collapse; margin-bottom: 0;
}
.table th {
    font-weight: 600; color: #64748b;
    background: #f8fafc; border-color: #e8eef4;
    padding: 8px 10px; font-size: 11.5px;
    text-transform: uppercase; letter-spacing: .5px;
    white-space: nowrap;
}
.table td { padding: 7px 10px; border-color: #f1f5f9; vertical-align: middle; }
.table-striped > tbody > tr:nth-child(odd) > td { background: #fafbfc; }
.table-hover > tbody > tr:hover > td { background: #f0f7ff; }
.table-bordered th, .table-bordered td { border: 1px solid #e2e8f0; }
.table-responsive { overflow-x: auto; }
.table-action-col { width: 120px; white-space: nowrap; text-align: right; }

/* ============================
   FORMS
   ============================ */
.form-control {
    border-radius: 7px; border: 1px solid #e2e8f0;
    font-size: 13px; height: 32px; color: #334155;
    background: #fff; max-width: 100%;
    transition: border-color .15s, box-shadow .15s;
    padding: 0 10px;
    font-family: 'Inter', 'Segoe UI', sans-serif;
}
.form-control:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37,99,235,.1);
    outline: none;
}
textarea.form-control { height: auto; padding: 6px 10px; }
select.form-control { height: 32px; }
label { font-weight: 500; color: #475569; font-size: 12px; margin-bottom: 3px; display: inline-block; }
.form-group { margin-bottom: 10px; }

/* Form section header */
.form-section-title {
    font-size: 12.5px; font-weight: 700; color: #1e293b;
    padding-bottom: 9px;
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 16px; margin-top: 4px;
    display: flex; align-items: center; gap: 7px;
}
.form-section-title i { color: #2563eb; font-size: 14px; }
.form-section-title .fst-accent { color: #2563eb; border-bottom-color: #2563eb; }

/* Required star */
.req { color: #ef4444; margin-left: 2px; font-weight: 700; }

/* Hint text beside a label */
.label-hint { font-weight: 400; color: #94a3b8; font-size: 11px; }

/* Input-group with trailing button (Bootstrap 3) */
.input-group .form-control { z-index: 1; }
.input-group .form-control:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group-btn .btn {
    height: 32px; padding: 0 10px;
    border: 1px solid #e2e8f0; border-left: none;
    border-radius: 0 7px 7px 0;
    background: #f8fafc; color: #64748b;
}
.input-group-btn .btn:hover,
.input-group-btn .btn:focus { background: #eff6ff; color: #2563eb; border-color: #bfdbfe; }

/* Pill checkboxes (amenities, boolean flags) */
.amenity-pills { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; min-height: 32px; }
.amenity-pill { display: inline-flex; position: relative; }
.amenity-pill input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.amenity-pill label {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 5px 13px; margin: 0; border-radius: 20px;
    border: 1.5px solid #e2e8f0; background: #f8fafc; color: #64748b;
    font-size: 12.5px; font-weight: 500; cursor: pointer;
    transition: all .15s; user-select: none; white-space: nowrap;
}
.amenity-pill label::before {
    content: ''; width: 8px; height: 8px; border-radius: 50%;
    background: #cbd5e1; transition: background .15s; flex-shrink: 0;
}
.amenity-pill label:hover { border-color: #cbd5e1; background: #f1f5f9; }
.amenity-pill input[type="checkbox"]:checked + label { background: #eff6ff; border-color: #2563eb; color: #1d4ed8; }
.amenity-pill input[type="checkbox"]:checked + label::before { background: #2563eb; }
.amenity-pill input[type="checkbox"]:focus + label { box-shadow: 0 0 0 3px rgba(37,99,235,.12); }

/* Sticky form action bar */
.form-actions {
    position: sticky; bottom: 10px; z-index: 100;
    display: flex; align-items: center; gap: 8px;
    background: #fff; border-radius: 10px;
    padding: 9px 14px;
    box-shadow: 0 4px 20px rgba(15,23,42,.12), 0 0 0 1px #eef2f7;
}
.form-actions .btn-primary { padding: 6px 22px; font-weight: 600; }
.form-actions-hint { margin-left: auto; font-size: 12px; color: #94a3b8; }

/* Empty message label should not paint an empty bar */
.alert-bar:empty { display: none; }

/* Brochure gallery picker (ProjectForm) */
.gallery-pick {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px; margin-top: 8px;
}
.gallery-pick-item {
    border: 1px solid #e2e8f0; border-radius: 10px;
    overflow: hidden; background: #fff;
    transition: opacity .15s, box-shadow .15s;
}
.gallery-pick-item:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.gallery-pick-item img { width: 100%; height: 130px; object-fit: cover; display: block; background: #f1f5f9; }
.gallery-pick-item .gpi-body { padding: 8px; }
.gallery-pick-item .gpi-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 6px; }
.gallery-pick-item .gpi-include { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; margin: 0; cursor: pointer; }
.gallery-pick-item.excluded { opacity: .4; }

/* ============================
   BUTTONS
   ============================ */
.btn { border-radius: 7px; font-size: 13px; font-weight: 500; transition: all .15s; }
.btn-primary   { background: #2563eb; border-color: #2563eb; color: #fff; }
.btn-primary:hover   { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }
.btn-primary:active  { background: #1e40af; }
.btn-success   { border-radius: 7px; }
.btn-danger    { border-radius: 7px; }
.btn-warning   { border-radius: 7px; }
.btn-default   { border-color: #e2e8f0; color: #475569; background: #fff; }
.btn-default:hover { background: #f8fafc; border-color: #cbd5e1; color: #334155; }
.btn-outline-primary { border-color: #2563eb; color: #2563eb; background: transparent; }
.btn-outline-primary:hover { background: #eff6ff; }
.btn-sm { font-size: 12px; padding: 4px 10px; }
.btn-xs { font-size: 11.5px; padding: 2px 8px; border-radius: 5px; }
.btn-icon { width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }

/* ============================
   QUICK ACTION GRID
   ============================ */
.quick-action-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 10px;
}
.quick-action-btn {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 8px; padding: 18px 10px;
    border: 1px solid #e8eef4;
    border-radius: 12px; background: #fff;
    color: #475569; text-decoration: none !important;
    font-size: 12px; font-weight: 500;
    transition: all .15s; cursor: pointer; text-align: center;
    min-height: 88px;
}
.quick-action-btn i { font-size: 24px; color: #2563eb; }
.quick-action-btn:hover {
    background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8;
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(37,99,235,.12);
    text-decoration: none;
}
.quick-action-btn:hover i { color: #1d4ed8; }

/* ============================
   STATUS BADGES
   ============================ */
.badge-status {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 3px 10px; border-radius: 20px;
    font-size: 11.5px; font-weight: 600;
}
.badge-available  { background: #d1fae5; color: #065f46; }
.badge-reserved   { background: #dbeafe; color: #1e40af; }
.badge-blocked    { background: #fce7f3; color: #9d174d; }
.badge-booked     { background: #fef9c3; color: #92400e; }
.badge-agreement  { background: #ede9fe; color: #5b21b6; }
.badge-registered { background: #cffafe; color: #164e63; }
.badge-possession { background: #dcfce7; color: #14532d; }
.badge-sold       { background: #fee2e2; color: #991b1b; }
.badge-cancelled  { background: #f3f4f6; color: #6b7280; }
.badge-pending    { background: #fffbeb; color: #92400e; }
.badge-completed  { background: #ecfdf5; color: #065f46; }
.badge-resale     { background: #fdf4ff; color: #701a75; }
.badge-archived   { background: #f1f5f9; color: #475569; }
.badge-active     { background: #ecfdf5; color: #065f46; }
.badge-inactive   { background: #fef2f2; color: #991b1b; }

/* ============================
   EMPTY STATE
   ============================ */
.empty-state {
    text-align: center; padding: 56px 24px; color: #94a3b8;
}
.empty-state .empty-icon {
    font-size: 52px; display: block;
    margin-bottom: 14px; opacity: .35;
    color: #94a3b8;
}
.empty-state h5 {
    font-size: 15px; font-weight: 600; color: #64748b;
    margin: 0 0 6px;
}
.empty-state p { font-size: 13px; margin: 0 0 18px; }

/* ============================
   ALERT / INFO BARS
   ============================ */
.alert-bar {
    border-radius: 8px; padding: 12px 16px;
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 18px; font-size: 13px;
}
.alert-bar-info    { background: #eff6ff; border-left: 4px solid #2563eb; color: #1e40af; }
.alert-bar-success { background: #ecfdf5; border-left: 4px solid #059669; color: #065f46; }
.alert-bar-warning { background: #fffbeb; border-left: 4px solid #d97706; color: #92400e; }
.alert-bar-danger  { background: #fef2f2; border-left: 4px solid #dc2626; color: #991b1b; }

/* ============================
   MODALS (Bootstrap 3 restyle)
   ============================ */
.modal-content {
    border: none; border-radius: 14px;
    box-shadow: 0 20px 60px rgba(15,23,42,.28);
}
.modal-header { border-bottom: 1px solid #f1f5f9; padding: 16px 20px; }
.modal-title {
    font-size: 15px; font-weight: 600; color: #1e293b;
    display: flex; align-items: center; gap: 8px;
}
.modal-title i { color: #2563eb; }
.modal-header .close { margin-top: 2px; font-size: 22px; opacity: .4; outline: none; }
.modal-header .close:hover { opacity: .75; }
.modal-body { padding: 20px; }
.modal-footer { border-top: 1px solid #f1f5f9; padding: 12px 20px; }
.modal-backdrop.in { opacity: .45; }

/* ============================
   SECTION DIVIDERS
   ============================ */
.section-divider { border: none; border-top: 1px solid #e2e8f0; margin: 20px 0; }

/* ============================
   STATUS FLOW / WORKFLOW
   ============================ */
.workflow-strip { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.workflow-strip span {
    background: #fff; border: 1px solid #e2e8f0;
    border-radius: 8px; padding: 8px 12px;
    font-weight: 600; color: #334155;
    box-shadow: 0 1px 2px rgba(0,0,0,.04); font-size: 12.5px;
}
.workflow-strip span::after { content: " →"; color: #94a3b8; }
.workflow-strip span:last-child::after { content: ""; }

/* ============================
   CHART BOXES
   ============================ */
.chart-box { height: 260px; position: relative; }
.chart-box canvas { max-height: 240px !important; }

/* ============================
   MISC UTILITIES
   ============================ */
.bg-lightgreen  { background-color: #d1fae5; }
.bg-lightyellow { background-color: #fef9c3; }
.bg-lightblue   { background-color: #dbeafe; }
.bg-aliceblue   { background-color: #f0f9ff; }
.bg-silver      { background-color: #f1f5f9; }
.text-muted     { color: #94a3b8 !important; }
.text-primary-custom { color: #2563eb !important; }
.fw-600         { font-weight: 600; }
.small-11       { font-size: 11px; }
.small-12       { font-size: 12px; }
.rupee::before  { content: '₹'; }

/* ============================
   LAYOUT / PLOT VIEWER
   ============================ */
.layout-wrapper {
    position: relative; height: 500px;
    border: 1px solid #e2e8f0; overflow: auto;
    background: #f8fafc; border-radius: 10px;
}
.plot-marker {
    position: absolute; border: 1px solid rgba(0,0,0,.2);
    cursor: pointer; transition: outline .1s;
}
.plot-marker:hover { outline: 2px solid #2563eb; }
.plot-available { background-color: rgba(5,150,105,.15); }
.plot-booked    { background-color: rgba(217,119,6,.15); }
.plot-sold      { background-color: rgba(220,38,38,.15); }

/* ============================
   REPORT / LIST GRIDS
   ============================ */
.report-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}
.report-grid a, .report-grid span {
    display: block; padding: 12px 14px;
    border: 1px solid #e2e8f0; border-radius: 9px;
    background: #f8fafc; color: #334155;
    text-decoration: none; font-weight: 500;
    font-size: 13px; transition: all .14s;
}
.report-grid a:hover { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }

/* FixedHeaderGrid */
.FixedHeaderGrid { border-collapse: collapse; width: 100%; }
.FixedHeaderGrid th {
    position: sticky; top: 0; background: #f8fafc;
    z-index: 10; font-weight: 600; color: #475569;
    padding: 8px 10px; border: 1px solid #e2e8f0;
    font-size: 12px; text-align: center;
}
.FixedHeaderGrid td { border: 1px solid #e2e8f0; padding: 6px 8px; }

/* iframe */
.iframe-container { width: 100%; }
iframe { width: 100%; height: 300px; border: none; border-radius: 8px; }

/* ============================
   BOOTSTRAP 3 COMPAT SHIMS
   ============================ */
.row.g-3 { margin-bottom: 0; margin-left: -8px; margin-right: -8px; }
.row.g-3 > [class*="col-"] { margin-bottom: 10px; padding-left: 8px; padding-right: 8px; }
.card-body > .row.g-3:last-child > [class*="col-"]:last-child { margin-bottom: 0; }
.input-group-addon { padding: 0; }
.table-condensed > tbody > tr > td,
.table-condensed > thead > tr > th { padding: 5px 8px; }
.nav-tabs > li > a { font-size: 13px; font-weight: 500; }
.form-group label.checkbox-inline { font-weight: 400; }
.form-group-compact { margin-bottom: 10px; }

/* Status toggle pills */
.status-toggle { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.status-toggle input[type="radio"] { display: none; }
.status-toggle label {
    padding: 5px 16px; border-radius: 20px; font-size: 12.5px;
    font-weight: 500; cursor: pointer;
    border: 2px solid #e2e8f0; background: #f8fafc; color: #475569;
    transition: all .18s; user-select: none;
}
.status-toggle label:hover { background: #f1f5f9; border-color: #cbd5e1; }
.status-toggle input[type="radio"]:checked + label { background: #d1fae5; border-color: #059669; color: #065f46; }
.status-toggle input[type="radio"][value="Sold"]:checked + label { background: #fef9c3; border-color: #d97706; color: #92400e; }
.status-toggle input[type="radio"][value="Booked"]:checked + label { background: #dbeafe; border-color: #2563eb; color: #1e40af; }

/* ============================
   RESPONSIVE
   ============================ */
@media (max-width: 991px) {
    .re-sidebar { transform: translateX(-252px); transition: transform .28s; }
    .re-sidebar.mobile-open { transform: translateX(0); }
    .re-main { margin-left: 0 !important; }
    .kpi-grid { grid-template-columns: repeat(2, 1fr); }
    .topbar-search-wrap { display: none; }
    .welcome-bar { padding: 16px 18px; }
}

@media (max-width: 576px) {
    .re-content { padding: 12px 14px; }
    .kpi-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .kpi-value { font-size: 20px; }
    .re-topbar { padding: 0 12px; gap: 8px; }
    .topbar-actions { gap: 2px; }
}

@media print {
    .re-sidebar, .re-topbar, .re-footer, .no-print { display: none !important; }
    .re-main { margin-left: 0 !important; }
    .re-content { padding: 0; }
    .card { box-shadow: none; border: 1px solid #e2e8f0; }
}

/* ============================================================
   Lead form redesign (2026-07-08)
   ============================================================ */

/* --- header meta + score + completeness --- */
.lead-meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: 12px; color: #64748b; margin-top: 6px; }
.lead-meta i { color: #94a3b8; margin-right: 3px; }
.lead-header-right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.score-box { display: flex; align-items: center; gap: 8px; }
.score-stars i { color: #f59e0b; font-size: 14px; }
.score-stars i.bi-star { color: #e2e8f0; }
.score-badge { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.score-badge-hot  { background: #fef2f2; color: #b91c1c; }
.score-badge-warm { background: #fffbeb; color: #b45309; }
.score-badge-cold { background: #f1f5f9; color: #475569; }
.lead-progress-wrap { display: flex; align-items: center; gap: 8px; }
.lead-progress { width: 150px; height: 8px; border-radius: 999px; background: #e2e8f0; overflow: hidden; }
.lead-progress-fill { height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, #2563eb, #059669); transition: width .25s ease; }
.lead-progress-pct { font-size: 12px; font-weight: 600; color: #475569; min-width: 34px; }

/* --- step wizard --- */
.lead-stepper { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 8px 0 20px; }
.step-item { display: inline-flex; align-items: center; gap: 9px; border: 1px solid #e2e8f0; background: #fff; border-radius: 999px; padding: 7px 18px 7px 7px; font-size: 13px; font-weight: 600; color: #64748b; cursor: pointer; transition: all .15s ease; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.step-item:hover { border-color: #cbd5e1; transform: translateY(-1px); }
.step-num { width: 26px; height: 26px; border-radius: 50%; background: #e2e8f0; color: #475569; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.step-item.active { border-color: #2563eb; background: linear-gradient(135deg, #2563eb, #1d4ed8); color: #fff; box-shadow: 0 4px 10px rgba(37,99,235,.3); }
.step-item.active .step-num { background: rgba(255,255,255,.22); color: #fff; }
.step-item.done { border-color: #a7f3d0; background: #ecfdf5; color: #047857; }
.step-item.done .step-num { background: #059669; color: #fff; }
.step-arrow { color: #cbd5e1; font-size: 14px; }
.wizard-step { display: none; }
.wizard-step.active { display: block; }
.wizard-nav { display: flex; justify-content: space-between; gap: 8px; margin: 14px 0 22px; }
.wizard-nav .btn { min-width: 130px; padding: 7px 18px; }

/* --- colored section cards --- */
.card-accent-blue, .card-accent-green, .card-accent-orange, .card-accent-purple { border-radius: 12px; }
.card-accent-blue   > .card-header, .card-accent-green > .card-header,
.card-accent-orange > .card-header, .card-accent-purple > .card-header {
    padding: 13px 20px; font-size: 13.5px; letter-spacing: .2px;
}
.card-accent-blue   > .card-header i, .card-accent-green > .card-header i,
.card-accent-orange > .card-header i, .card-accent-purple > .card-header i {
    width: 30px; height: 30px; border-radius: 8px; font-size: 15px;
    display: inline-flex; align-items: center; justify-content: center;
}
.card-accent-blue   { border-left: 4px solid #2563eb; }
.card-accent-blue   > .card-header { background: linear-gradient(90deg, #dbeafe, #eff6ff 55%, #fff); color: #1e40af; }
.card-accent-blue   > .card-header i { background: #2563eb; color: #fff; }
.card-accent-blue   > .card-body { background: #f8fbff; }
.card-accent-green  { border-left: 4px solid #059669; }
.card-accent-green  > .card-header { background: linear-gradient(90deg, #d1fae5, #ecfdf5 55%, #fff); color: #065f46; }
.card-accent-green  > .card-header i { background: #059669; color: #fff; }
.card-accent-green  > .card-body { background: #f7fdfa; }
.card-accent-orange { border-left: 4px solid #ea580c; }
.card-accent-orange > .card-header { background: linear-gradient(90deg, #ffedd5, #fff7ed 55%, #fff); color: #9a3412; }
.card-accent-orange > .card-header i { background: #ea580c; color: #fff; }
.card-accent-orange > .card-body { background: #fffcf8; }
.card-accent-purple { border-left: 4px solid #7c3aed; }
.card-accent-purple > .card-header { background: linear-gradient(90deg, #ede9fe, #f5f3ff 55%, #fff); color: #5b21b6; }
.card-accent-purple > .card-header i { background: #7c3aed; color: #fff; }
.card-accent-purple > .card-body { background: #fcfbff; }

/* --- roomier spacing inside the wizard --- */
.wizard-step .card { margin-bottom: 18px; }
.wizard-step .card-body { padding: 22px 24px; }
.wizard-step .row.g-3 > [class*="col-"] { margin-bottom: 16px; }
.wizard-step label { font-size: 12.5px; margin-bottom: 6px; }
.wizard-step .form-control { height: 36px; }
.wizard-step select.form-control { height: 36px; }
.wizard-step textarea.form-control { height: auto; }
.wizard-step .input-group-addon { border-radius: 7px 0 0 7px; border: 1px solid #e2e8f0; border-right: none; background: #f1f5f9; color: #475569; font-weight: 600; }

/* --- chip groups (radio / checkbox pills) --- */
.chip-group { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.chip-group input[type="radio"], .chip-group input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.chip-group label { border: 1px solid #e2e8f0; border-radius: 999px; padding: 6px 16px; font-size: 12.5px; font-weight: 500; color: #475569; background: #fff; cursor: pointer; margin: 0; transition: all .12s ease; }
.chip-group label:hover { border-color: #93c5fd; background: #f0f7ff; }
.chip-group input:checked + label { background: #2563eb; border-color: #2563eb; color: #fff; font-weight: 600; box-shadow: 0 2px 6px rgba(37,99,235,.3); }
.chip-group input:focus + label { box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.chip-label { display: block; margin-bottom: 8px; }

/* --- required marker + collapse toggle --- */
.req-star { color: #dc2626; font-weight: 700; }
.collapse-toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: #2563eb; cursor: pointer; margin: 10px 0 4px; text-decoration: none; }
.collapse-toggle:hover, .collapse-toggle:focus { color: #1d4ed8; text-decoration: none; }

/* --- AI requirement box --- */
.ai-box { border: 1px dashed #a5b4fc; background: linear-gradient(135deg, #eef2ff, #f8fbff); border-radius: 10px; padding: 14px 16px; margin-bottom: 18px; }
.ai-box-title { font-size: 12.5px; font-weight: 700; color: #1d4ed8; margin-bottom: 6px; }
.ai-box-title i { margin-right: 4px; }
.ai-box textarea { resize: vertical; }
.ai-box .btn { margin-top: 8px; }

/* --- customer snapshot --- */
.lead-snapshot { position: -webkit-sticky; position: sticky; top: 66px; }
.lead-snapshot .card { border-top: none; }
.lead-snapshot .card-header { background: linear-gradient(135deg, #0d1b2a, #1e3a8a); color: #fff; padding: 13px 18px; font-size: 13.5px; }
.lead-snapshot .card-header i { color: #93c5fd; }
.lead-snapshot .card-body { padding: 16px 18px; }
.snap-empty { text-align: center; color: #94a3b8; font-size: 12.5px; padding: 18px 6px; }
.snap-empty i { font-size: 26px; display: block; margin-bottom: 8px; color: #cbd5e1; }
.snap-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.snap-avatar { width: 44px; height: 44px; border-radius: 50%; background: #2563eb; color: #fff; font-weight: 700; font-size: 17px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.snap-name { font-weight: 700; font-size: 14px; color: #1e293b; line-height: 1.25; }
.snap-badge { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; margin-top: 3px; }
.snap-badge-existing { background: #ecfdf5; color: #047857; }
.snap-badge-new { background: #eff6ff; color: #1d4ed8; }
.snap-stat { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px dashed #eef2f7; font-size: 12.5px; color: #64748b; }
.snap-stat b { color: #1e293b; font-weight: 600; }
.snap-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 12px; }
.snap-actions .btn { font-size: 12px; padding: 5px 6px; }
.snap-actions .btn i { margin-right: 4px; }
.snap-actions-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #94a3b8; margin-top: 12px; }

/* --- duplicate lead banner --- */
.dup-banner { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #fffbeb; border: 1px solid #fde68a; border-left: 4px solid #d97706; color: #92400e; border-radius: 6px; padding: 8px 12px; margin: 8px 0 4px; font-size: 12.5px; }
.dup-banner i { color: #d97706; font-size: 15px; }
.dup-banner .btn { margin-left: 4px; }

/* --- project info strip --- */
.project-info-strip { display: flex; gap: 18px; flex-wrap: wrap; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; padding: 8px 12px; margin: 8px 0 4px; font-size: 12.5px; color: #64748b; }
.project-info-strip b { color: #1e293b; font-weight: 600; }
.project-info-strip i { color: #2563eb; margin-right: 3px; }

/* --- budget slider --- */
.budget-slider-wrap { padding: 16px 10px 2px; }
#lfBudgetSlider.ui-slider { height: 6px; border: none; background: #e2e8f0; border-radius: 999px; margin: 4px 8px 10px; }
#lfBudgetSlider .ui-slider-range { background: linear-gradient(90deg, #2563eb, #059669); border-radius: 999px; }
#lfBudgetSlider .ui-slider-handle { width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 3px solid #2563eb; top: -7px; margin-left: -10px; cursor: grab; outline: none; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
#lfBudgetSlider .ui-slider-handle.ui-state-active { cursor: grabbing; box-shadow: 0 0 0 5px rgba(37,99,235,.15); }
.budget-slider-labels { display: flex; justify-content: space-between; font-size: 10.5px; color: #94a3b8; margin: 0 4px; }
.budget-hint { font-size: 13px; font-weight: 700; color: #1d4ed8; margin-top: 6px; min-height: 18px; display: block; }

/* --- activity timeline --- */
.lead-timeline { margin-top: 4px; }
.tl-item { position: relative; padding: 0 0 14px 22px; border-left: 2px solid #e2e8f0; margin-left: 6px; }
.tl-item:last-child { padding-bottom: 2px; }
.tl-dot { position: absolute; left: -7px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 3px solid #2563eb; }
.tl-title { font-size: 13px; font-weight: 600; color: #1e293b; }
.tl-meta { font-size: 12px; color: #94a3b8; margin-top: 1px; }

@media (max-width: 991px) {
    .lead-snapshot { position: static; margin-top: 14px; }
    .lead-header-right { align-items: flex-start; }
}

/* ============================================================
   Site visit page redesign (2026-07-08)
   ============================================================ */

/* --- visit journey strip --- */
.journey { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 10px; padding: 12px 16px; margin: 4px 0 14px; }
.j-step { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; color: #64748b; min-width: 72px; }
.j-step i { width: 32px; height: 32px; border-radius: 50%; background: #e0eaff; color: #2563eb; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; }
.j-arrow { color: #cbd5e1; font-size: 13px; flex: 1; text-align: center; min-width: 14px; }

/* --- unit selection cards --- */
.unit-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 8px; margin-top: 4px; }
.unit-card { position: relative; display: flex; flex-direction: column; gap: 2px; border: 1px solid #e2e8f0; border-radius: 10px; padding: 10px 12px; background: #fff; cursor: pointer; margin: 0; font-weight: 400; transition: all .12s ease; }
.unit-card:hover { border-color: #93c5fd; box-shadow: 0 2px 6px rgba(37,99,235,.12); }
.unit-card input[type="checkbox"] { position: absolute; top: 10px; right: 10px; }
.unit-card:has(input:checked) { border-color: #2563eb; background: #eff6ff; box-shadow: 0 2px 8px rgba(37,99,235,.2); }
.unit-card.uc-off { opacity: .55; cursor: not-allowed; background: #f8fafc; }
.uc-no { font-size: 13.5px; font-weight: 700; color: #1e293b; }
.uc-meta { font-size: 11.5px; color: #64748b; }
.uc-rate { font-size: 12.5px; font-weight: 700; color: #1d4ed8; }
.uc-status { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; }
.uc-status.st-avail { color: #059669; }
.uc-status.st-booked { color: #dc2626; }
.uc-status.st-other { color: #94a3b8; }
.unit-cards-empty { font-size: 12.5px; color: #94a3b8; padding: 10px 2px; }

/* --- outcome chips (colored) --- */
.outcome-chips label::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 7px; background: #94a3b8; }
.outcome-chips label:nth-of-type(1)::before { background: #059669; }
.outcome-chips label:nth-of-type(2)::before { background: #ca8a04; }
.outcome-chips label:nth-of-type(3)::before { background: #ea580c; }
.outcome-chips label:nth-of-type(4)::before { background: #dc2626; }
.outcome-chips label:nth-of-type(5)::before { background: #334155; }
.outcome-chips input:checked + label::before { background: #fff; }
.outcome-chips input:nth-of-type(1):checked + label { background: #059669; border-color: #059669; }
.outcome-chips input:nth-of-type(2):checked + label { background: #ca8a04; border-color: #ca8a04; }
.outcome-chips input:nth-of-type(3):checked + label { background: #ea580c; border-color: #ea580c; }
.outcome-chips input:nth-of-type(4):checked + label { background: #dc2626; border-color: #dc2626; }
.outcome-chips input:nth-of-type(5):checked + label { background: #334155; border-color: #334155; }

/* --- GPS check-in --- */
.geo-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.geo-status { font-size: 12.5px; color: #94a3b8; }
.geo-status.geo-ok { color: #047857; font-weight: 600; }
.geo-status.geo-ok i { margin-right: 4px; }

/* --- AI brief / recommendations --- */
.brief-section { margin-bottom: 10px; }
.brief-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #94a3b8; margin-bottom: 5px; }
.brief-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.brief-tag { font-size: 11.5px; font-weight: 600; background: #ecfdf5; color: #047857; border-radius: 999px; padding: 3px 10px; }
.brief-tag.bt-warn { background: #fff7ed; color: #9a3412; }
.brief-unit { display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; padding: 5px 0; border-bottom: 1px dashed #eef2f7; color: #475569; }
.brief-unit b { color: #1e293b; }
.prob-wrap { margin-top: 4px; }
.prob-bar { height: 8px; border-radius: 999px; background: #e2e8f0; overflow: hidden; margin-top: 5px; }
.prob-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #f59e0b, #059669); }
.prob-label { display: flex; justify-content: space-between; font-size: 12px; color: #64748b; }
.prob-label b { color: #047857; font-size: 14px; }

/* --- photo upload --- */
.photo-box { border: 1px dashed #cbd5e1; border-radius: 10px; padding: 12px 14px; background: #f8fafc; }
.photo-box .label-hint { display: block; margin-top: 5px; }

/* ============================================================
   AI-first lead capture (2026-07-08)
   ============================================================ */

/* --- capture hero card --- */
.ai-capture-card { border-top: 4px solid #7c3aed; background: linear-gradient(180deg, #faf9ff, #fff 40%); }
.ai-capture-card > .card-body { padding: 28px 30px 24px; }
.ai-capture-head { text-align: center; margin-bottom: 18px; }
.ai-capture-head h2 { font-size: 23px; font-weight: 800; color: #1e293b; margin: 0 0 8px; }
.ai-capture-head h2 i { color: #7c3aed; margin-right: 4px; }
.ai-capture-head p { font-size: 13.5px; color: #64748b; max-width: 560px; margin: 0 auto; }

/* --- input method buttons --- */
.ai-input-methods { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.ai-method-btn { border: 1px solid #e2e8f0; background: #fff; border-radius: 12px; padding: 14px 10px 12px; display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 13px; font-weight: 700; color: #334155; cursor: pointer; transition: all .15s ease; }
.ai-method-btn i { font-size: 22px; color: #2563eb; margin-bottom: 3px; }
.ai-method-btn small { font-weight: 400; color: #94a3b8; font-size: 11px; }
.ai-method-btn:hover { border-color: #93c5fd; box-shadow: 0 4px 12px rgba(37,99,235,.14); transform: translateY(-2px); }
.ai-method-btn.active { border-color: #7c3aed; background: #f5f3ff; }
.ai-method-btn.active i { color: #7c3aed; }

/* --- capture textbox with mic --- */
.ai-textbox-wrap { position: relative; }
textarea.ai-textbox { border-radius: 12px; padding: 12px 52px 12px 14px; font-size: 14px; line-height: 1.55; min-height: 150px; }
.ai-mic-btn { position: absolute; right: 12px; top: 12px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #e2e8f0; background: #fff; color: #2563eb; font-size: 17px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .15s ease; }
.ai-mic-btn:hover { background: #eff6ff; border-color: #93c5fd; }
.ai-mic-btn.rec { background: #dc2626; border-color: #dc2626; color: #fff; animation: micPulse 1.2s infinite; }
@keyframes micPulse {
    0% { box-shadow: 0 0 0 0 rgba(220,38,38,.4); }
    70% { box-shadow: 0 0 0 12px rgba(220,38,38,0); }
    100% { box-shadow: 0 0 0 0 rgba(220,38,38,0); }
}

/* --- extract button --- */
.ai-extract-row { text-align: center; margin-top: 16px; }
.ai-extract-btn, .ai-extract-btn:focus { font-size: 15px; font-weight: 700; padding: 11px 36px; border-radius: 10px; background: linear-gradient(135deg, #7c3aed, #2563eb); border: none; color: #fff; box-shadow: 0 6px 16px rgba(79,70,229,.35); text-decoration: none; }
.ai-extract-btn:hover { color: #fff; text-decoration: none; box-shadow: 0 8px 22px rgba(79,70,229,.5); }
.ai-extract-btn i { margin-right: 6px; }

/* --- yellow flash on AI-filled controls --- */
.ai-flash { background-color: #fef9c3 !important; box-shadow: 0 0 0 3px rgba(250,204,21,.35) !important; transition: background-color .8s ease, box-shadow .8s ease; }

/* --- extraction confidence chips --- */
.conf-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; justify-content: center; }
.conf-item { display: inline-flex; align-items: center; gap: 6px; background: #ecfdf5; color: #065f46; border-radius: 999px; padding: 5px 13px; font-size: 12px; font-weight: 600; }
.conf-item i { color: #059669; }
.conf-item b { color: #047857; }
.conf-item.conf-warn { background: #fffbeb; color: #92400e; }
.conf-item.conf-warn i { color: #d97706; }
.conf-item.conf-warn b { color: #b45309; }
.conf-item em { font-style: normal; font-size: 10.5px; color: #b45309; }

/* --- missing information card --- */
.missing-card { border: 1px dashed #fbbf24; background: #fffdf5; border-radius: 10px; padding: 12px 16px; margin-top: 14px; }
.missing-title { font-weight: 700; font-size: 12.5px; color: #92400e; margin-bottom: 7px; }
.missing-title i { margin-right: 4px; }
.missing-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12.5px; color: #78716c; }
.missing-list i { color: #d6d3d1; margin-right: 4px; }
.missing-hint { font-size: 11px; color: #a8a29e; display: block; margin-top: 7px; }

/* --- AI summary strip (step 3) --- */
.ai-summary-strip { background: #f5f3ff; border: 1px solid #ddd6fe; border-radius: 8px; padding: 9px 14px; font-size: 12.5px; color: #5b21b6; margin-bottom: 14px; }
.ai-summary-strip i { margin-right: 4px; }

@media (max-width: 767px) {
    .ai-input-methods { grid-template-columns: 1fr 1fr; }
    .ai-capture-card > .card-body { padding: 18px 16px; }
}
/* Project-aware navigation architecture */
.legacy-navigation{display:none!important}.global-business-nav{padding-top:12px}.project-workspace-shell{background:#fff;border-bottom:1px solid #dbe3ef;padding:12px 28px 0;position:relative;z-index:20}.workspace-context{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.workspace-project{display:flex;align-items:center;gap:10px}.workspace-project i{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eaf1ff;color:#2563eb}.workspace-project strong,.workspace-project small{display:block}.workspace-project small{color:#64748b}.workspace-setup-cta{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:8px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;text-decoration:none;font-weight:600}.workspace-setup-cta.ready{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.workspace-tabs{display:flex;gap:4px;overflow-x:auto}.workspace-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:3px solid transparent;color:#475569;text-decoration:none;white-space:nowrap}.workspace-tab:hover{color:#1d4ed8;text-decoration:none}.workspace-tab.active{color:#1d4ed8;border-bottom-color:#2563eb;font-weight:700}.workspace-guidance{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;color:#64748b;font-size:13px}.workspace-breadcrumb a{color:#2563eb;text-decoration:none}.workspace-actions{display:flex;gap:7px;flex-wrap:wrap}.workspace-action{padding:5px 9px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;text-decoration:none;background:#fff}.workspace-action.primary{background:#2563eb;border-color:#2563eb;color:#fff}@media(max-width:991px){.project-workspace-shell{padding-left:16px;padding-right:16px}.workspace-context,.workspace-guidance{align-items:flex-start;flex-direction:column}}
