/* Phoenix Ticketing V2 - visual refresh overlay.
 * Loaded AFTER ticketing_v2.css to re-skin every page in a clean, flat style
 * (white surfaces, hairline borders, light type, no gradients/shadows) without
 * changing any page markup. Remove the <link> in ui_helpers.php to revert. */

:root {
    --rf-bg: #f6f7f9;
    --rf-surface: #ffffff;
    --rf-border: #e9e9ec;
    --rf-border-strong: #d8d9dd;
    --rf-text: #1d1d1f;
    --rf-text-2: #5f6571;
    --rf-text-3: #9aa0ab;
    --rf-accent: #2f64e0;
    --rf-accent-soft: #eef2fd;
}

/* Base */
body { background: var(--rf-bg); color: var(--rf-text); font-weight: 400; }
.v2-app-bg { background: var(--rf-bg) !important; }
a { color: var(--rf-accent); }
.v2-shell { max-width: 1440px; margin: 0 auto; }

/* Topbar + nav */
.v2-topbar { background: var(--rf-surface); border: 1px solid var(--rf-border); border-radius: 12px; box-shadow: none; padding: 12px 16px; }
.v2-brand { font-weight: 600; color: var(--rf-text); letter-spacing: -0.02em; }
.v2-logo-mark { background: var(--rf-accent-soft); color: var(--rf-accent); font-weight: 600; border-radius: 9px; }
.v2-subtitle { color: var(--rf-text-3); font-weight: 400; }
.v2-nav a { background: transparent; color: var(--rf-text-2); font-weight: 500; border-radius: 8px; min-height: 34px; }
.v2-nav a:hover { background: #f0f1f3; color: var(--rf-text); }
.v2-nav a.active { background: var(--rf-accent-soft); color: var(--rf-accent); box-shadow: none; }
.v2-nav-toggle { color: var(--rf-text-2); font-weight: 500; border-radius: 8px; }
.v2-nav-toggle:hover, .v2-nav-group.open > .v2-nav-toggle { background: #f0f1f3; color: var(--rf-text); }
.v2-nav-toggle.active { background: var(--rf-accent-soft); color: var(--rf-accent); box-shadow: none; }
.v2-nav-menu { background: var(--rf-surface); border: 1px solid var(--rf-border); border-radius: 12px; box-shadow: 0 12px 30px rgba(20,22,28,.10); }
.v2-nav .v2-nav-menu a { color: var(--rf-text-2); font-weight: 500; }
.v2-nav .v2-nav-menu a:hover, .v2-nav .v2-nav-menu a.active { background: var(--rf-accent-soft); color: var(--rf-accent); }
.v2-nav-badge { background: #e5484d; box-shadow: 0 0 0 2px var(--rf-surface); font-weight: 600; }

/* Page heads / hero (flatten dark + gradient heroes) */
.v2-page-head, .polished-head, .v2-ticket-hero, .v2-ticket-hero.dashboard-hero-refined {
    background: var(--rf-surface); border: 1px solid var(--rf-border); border-radius: 12px; box-shadow: none;
}
.v2-page-title, .v2-ticket-hero h1 { color: var(--rf-text); font-weight: 600; font-size: 23px; letter-spacing: -0.02em; }
.v2-crumb, .v2-eyebrow { color: var(--rf-accent); font-weight: 600; letter-spacing: 0.04em; }
.v2-page-caption, .v2-card-caption, .v2-mini-help { color: var(--rf-text-3); font-weight: 400; }
.v2-hero-meta span, .v2-info-strip span, .v2-quick-context span, .v2-title-hint { background: #f0f1f3; color: var(--rf-text-2); font-weight: 500; }

/* Cards / panels */
.v2-card, .v2-focus-card, .v2-issue-card, .v2-current-card, .v2-customer-vehicle-panel, .v2-ops-card,
.v2-status-strip, .v2-wide-panel {
    background: var(--rf-surface); border: 1px solid var(--rf-border); border-radius: 12px; box-shadow: none;
}
.v2-card-title, .v2-status-strip-title, .v2-action-title { color: var(--rf-text); font-weight: 600; letter-spacing: -0.01em; }

/* Stat cards */
.v2-stat-card, .v2-stat-card.refined { background: var(--rf-surface); border: 1px solid var(--rf-border); border-radius: 12px; box-shadow: none; }
.v2-stat-card:hover, .v2-stat-card.refined:hover { transform: none; box-shadow: none; border-color: var(--rf-border-strong); }
.v2-stat { color: var(--rf-text); font-weight: 600; letter-spacing: -0.02em; }
.v2-stat-label { color: var(--rf-text-2); font-weight: 400; }
.v2-stat-danger { color: #d33; } .v2-stat-warn { color: #b06a00; } .v2-stat-ok { color: #1a9d52; }

/* Buttons */
.v2-btn { background: var(--rf-accent); color: #fff; font-weight: 500; border-radius: 8px; box-shadow: none; min-height: 36px; }
.v2-btn:hover { background: #2351c0; color: #fff; }
.v2-btn.secondary, .v2-btn.light { background: #f0f1f3; color: var(--rf-text); box-shadow: none; }
.v2-btn.secondary:hover, .v2-btn.light:hover { background: #e4e5e8; color: var(--rf-text); }
.v2-btn.danger { background: #d83a3a; } .v2-btn.danger:hover { background: #bf2e2e; }
.v2-btn.success { background: #1a9d52; } .v2-btn.success:hover { background: #158043; }
.v2-btn.mini { min-height: 30px; }

/* Pills / badges */
.v2-badge, .v2-pill, .v2-type-badge { font-weight: 500; border-radius: 6px; }
.v2-badge, .v2-pill { background: #f0f1f3; color: var(--rf-text-2); }
.v2-pill.danger { background: #fcebeb; color: #be2f2f; } .v2-pill.warn { background: #fbf0d8; color: #9a6400; } .v2-pill.ok { background: #e7f5ec; color: #1a8048; }

/* Forms */
.v2-field label, .v2-modal-form .v2-field label, .v2-filter-panel .v2-field label { color: var(--rf-text-2); font-weight: 500; }
.v2-field input, .v2-field select, .v2-field textarea,
.v2-modal-form .v2-field input, .v2-modal-form .v2-field select, .v2-modal-form .v2-field textarea,
.v2-filter-panel .v2-field input, .v2-filter-panel .v2-field select, .v2-filter-panel .v2-field textarea {
    border: 1px solid var(--rf-border-strong); border-radius: 8px; background: var(--rf-surface);
}
.v2-field input:focus, .v2-field select:focus, .v2-field textarea:focus { border-color: var(--rf-accent); box-shadow: 0 0 0 3px rgba(47,100,224,.12); }

/* Tables */
.v2-table-wrap { border-radius: 12px; border: 1px solid var(--rf-border); }
.v2-table th { background: #fafafa; color: var(--rf-text-2); font-weight: 600; text-transform: none; letter-spacing: 0; border-bottom: 1px solid var(--rf-border); }
.v2-table td { border-bottom: 1px solid #f1f1f2; color: var(--rf-text-2); font-weight: 400; }
.v2-table tr:hover td { background: #fafafa; }
.v2-table td strong, .v2-two-line .main, .v2-kv .v { color: var(--rf-text); font-weight: 600; }
.v2-table td:last-child, .v2-table th:last-child { box-shadow: -8px 0 12px rgba(255,255,255,0.9); }

/* Status mix strip / chips */
.v2-status-chip { background: var(--rf-surface); border: 1px solid var(--rf-border); color: var(--rf-text-2); font-weight: 500; border-radius: 8px; }
.v2-status-chip strong { background: #f0f1f3; color: var(--rf-text-2); }
.v2-status-chip.active { background: var(--rf-accent-soft); color: var(--rf-accent); border-color: #cdd9f7; }
.v2-status-chip.active strong { background: #fff; color: var(--rf-accent); }

/* Attention / workload / dashboard widgets */
.v2-attention { background: #fafafa; border: 1px solid var(--rf-border); border-radius: 10px; }
.v2-attention strong { font-weight: 600; }
.v2-attention.danger { background: #fcebeb; border-color: #f1cccc; }
.v2-attention.warn { background: #fbf4df; border-color: #ecdca6; }
.v2-workload-panel, .v2-ops-card { background: var(--rf-surface) !important; }
.v2-workload-row.refined { background: #fafafa; border: 1px solid var(--rf-border); border-radius: 10px; }
.v2-workload-row.refined strong, .v2-workload-row.refined b, .v2-workload-row.refined span { color: var(--rf-text); }
.v2-workload-row.refined span { color: var(--rf-text-2); }

/* Flatten ALL dark / gradient panels to clean light surfaces */
.dark-card, .v2-dashboard-side-panel,
.handling-card.is-assigned, .handling-card.is-missing, .handling-card.report-stale, .handling-card.report-slow,
.handling-card.dark-card, .installation-request-card, .closure-panel, .v2-action-panel.closure-panel,
.v2-location-summary, .v2-problem, .v2-problem-clean, .v2-check-row, .v2-timeline-box, .v2-legacy-item,
.v2-event-card, .v2-health-row, .v2-metric, .v2-location-current > div, .v2-slot-time, .v2-mini-stat, .v2-action-panel {
    background: var(--rf-surface) !important; border-color: var(--rf-border) !important;
}
.dark-card, .dark-card *, .v2-dashboard-side-panel, .v2-dashboard-side-panel * { color: var(--rf-text) !important; }
.dark-card .v2-card-caption, .v2-dashboard-side-panel .v2-card-caption { color: var(--rf-text-3) !important; }
.v2-workload-row strong, .v2-workload-row b { color: var(--rf-text); }
.v2-workload-row span { color: var(--rf-text-2); }
.v2-handling-pill { background: #f0f1f3 !important; color: var(--rf-text-2) !important; font-weight: 500; }
.v2-handling-pill.assigned, .v2-handling-pill.live { background: #e7f5ec !important; color: #1a8048 !important; }
.v2-handling-pill.missing, .v2-handling-pill.stale { background: #fcebeb !important; color: #be2f2f !important; }
.v2-handling-pill.slow { background: #fbf0d8 !important; color: #9a6400 !important; }

/* Modals */
.v2-modal-card { border: 1px solid var(--rf-border); border-radius: 14px; box-shadow: 0 16px 48px rgba(20,22,28,.18); }
.v2-modal-close { background: #f0f1f3; color: var(--rf-text-2); border-radius: 8px; }
.v2-modal-close:hover { background: #e4e5e8; }

/* Suggested technicians panel (orchestrator Phase 1a) */
.v2-suggest-panel { border: 1px solid var(--rf-border); border-radius: 12px; background: var(--rf-accent-soft); padding: 10px 12px; margin-bottom: 14px; }
.v2-suggest-bar { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.v2-suggest-label { font-weight: 600; font-size: 12px; letter-spacing: .02em; text-transform: uppercase; color: var(--rf-accent); }
.v2-suggest-note { font-size: 12px; color: var(--rf-text-2); margin-bottom: 8px; }
.v2-suggest-list { display: flex; flex-direction: column; gap: 6px; }
.v2-suggest-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--rf-surface); border: 1px solid var(--rf-border); border-radius: 9px; padding: 7px 10px; }
.v2-suggest-info { min-width: 0; }
.v2-suggest-head { display: flex; align-items: center; gap: 7px; }
.v2-suggest-name { font-weight: 600; color: var(--rf-text); }
.v2-suggest-score { font-size: 11px; font-weight: 700; border-radius: 20px; padding: 1px 8px; line-height: 1.5; }
.v2-suggest-score.ok { background: #e7f5ec; color: #1a8048; }
.v2-suggest-score.warn { background: #fbf0d8; color: #9a6400; }
.v2-suggest-score.danger { background: #fcebeb; color: #be2f2f; }
.v2-suggest-reasons { font-size: 11.5px; color: var(--rf-text-2); margin-top: 2px; }
.v2-btn-mini { flex: 0 0 auto; cursor: pointer; border: 1px solid var(--rf-accent); background: var(--rf-accent); color: #fff; font-weight: 600; font-size: 12px; border-radius: 8px; padding: 5px 12px; }
.v2-btn-mini:hover { background: #2554c4; border-color: #2554c4; }
select.v2-flash { animation: v2flash 1.2s ease; }
@keyframes v2flash { 0%, 100% { box-shadow: 0 0 0 0 rgba(47,100,224,0); } 25% { box-shadow: 0 0 0 3px rgba(47,100,224,.35); } }

/* Roster Finder (probable complaints for a tech) */
.v2-finder-head { margin-bottom: 10px; }
.v2-finder-count { font-size: 15px; color: var(--rf-text); }
.v2-finder-sub-note { font-size: 12px; color: var(--rf-text-2); margin-top: 2px; }
.v2-finder-list { display: flex; flex-direction: column; gap: 8px; max-height: 60vh; overflow-y: auto; }
.v2-finder-row { border: 1px solid var(--rf-border); border-radius: 10px; padding: 9px 11px; background: var(--rf-surface); }
.v2-finder-line1 { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 3px; }
.v2-finder-fit { font-size: 11px; font-weight: 700; border-radius: 20px; padding: 1px 9px; }
.v2-finder-fit.ok { background: #e7f5ec; color: #1a8048; }
.v2-finder-fit.warn { background: #fbf0d8; color: #9a6400; }
.v2-finder-fit.danger { background: #fcebeb; color: #be2f2f; }
.v2-finder-area { font-weight: 600; font-size: 12.5px; color: var(--rf-text); }
.v2-finder-src { font-size: 11px; color: var(--rf-text-3); }
.v2-finder-sla { font-size: 11px; font-weight: 700; color: #be2f2f; background: #fcebeb; border-radius: 20px; padding: 1px 8px; }
.v2-finder-title { font-size: 13px; color: var(--rf-text); line-height: 1.35; }
.v2-finder-meta { font-size: 11.5px; color: var(--rf-text-2); margin-top: 2px; }
.v2-finder-actions { margin-top: 7px; }
.v2-finder-foot { margin-top: 10px; font-size: 12px; color: var(--rf-text-2); }
.tjr-finder-ico { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin-left: 6px; border-radius: 6px; border: 1px solid #d8d9dd; background: #fff; color: #2f64e0; cursor: pointer; vertical-align: middle; }
.tjr-finder-ico:hover { background: #eef2fd; border-color: #2f64e0; }
.tjr-finder-ico svg { display: block; }

/* Closed-by-Tech (status 14): open but tech-completed, awaiting office confirmation. */
.v2-badge.status-14 { background: #d8f1ee !important; color: #0b6b5f !important; }
.v2-cbt-banner { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #d8f1ee; border: 1px solid #9fd9d0; color: #0b5f55; border-radius: 10px; padding: 10px 13px; margin-bottom: 14px; font-size: 13px; }
.v2-cbt-banner strong { color: #08463e; }
.v2-cbt-actions { margin-left: auto; display: flex; gap: 8px; }
.v2-status-chip.cbt { border-color: #9fd9d0 !important; background: #eafaf7 !important; }
.v2-status-chip.cbt span { color: #0b6b5f !important; }

/* Misc */
.v2-message { font-weight: 500; border-radius: 8px; }
.v2-message.ok { background: #e7f5ec; color: #1a8048; }
.v2-message.err { background: #fcebeb; color: #be2f2f; }
.v2-alert { border-radius: 8px; font-weight: 400; }
.v2-slot-job-card, .v2-job-card { box-shadow: none !important; border: 1px solid var(--rf-border) !important; border-radius: 12px; }
.v2-slot-time { border-left: 3px solid var(--rf-accent) !important; border-radius: 10px; }
.v2-muted, .v2-small { color: var(--rf-text-2); }

/* ===================== Phoenix Secure brand ===================== */
:root { --rf-accent: #b07d12; --rf-accent-soft: #f6ebcb; --ps-gold: #d8a82a; --ps-gold-deep: #a9760f; --ps-ink: #14110a; }

/* Premium dark topbar with the gold shield + wordmark */
.v2-topbar { background: linear-gradient(180deg,#1e1a13 0%,#0a0906 100%) !important; border: 1px solid #4a3c1c !important; box-shadow: 0 8px 24px rgba(0,0,0,.20) !important; }
.v2-brand-block { gap: 11px; align-items: center; }
.v2-logo-img { height: 40px; width: auto; display: block; filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
.v2-brand { color: #f1d588 !important; font-weight: 700 !important; letter-spacing: .05em !important; text-transform: uppercase; font-size: 15px; }
.v2-subtitle { color: #9a8a63 !important; letter-spacing: .14em; text-transform: uppercase; font-size: 9.5px; }

/* Top-level nav on the dark bar (dropdown menu keeps its light-surface styling) */
.v2-topbar .v2-nav > a, .v2-topbar .v2-nav-group > .v2-nav-toggle { color: #cdbb8b !important; font-weight: 600 !important; }
.v2-topbar .v2-nav > a:hover, .v2-topbar .v2-nav-group > .v2-nav-toggle:hover, .v2-topbar .v2-nav-group.open > .v2-nav-toggle { background: rgba(216,168,42,.15) !important; color: #f3dd9b !important; }
.v2-topbar .v2-nav > a.active, .v2-topbar .v2-nav-group > .v2-nav-toggle.active { background: linear-gradient(180deg,#dcab2c,#b07d12) !important; color: #1a1206 !important; box-shadow: 0 6px 14px rgba(176,125,18,.28) !important; }

/* Primary buttons -> gold (secondary/light stay neutral; .danger + inline reds untouched) */
.v2-btn { background: linear-gradient(180deg,#e2b647,#b8860b); border: 1px solid #9c6f0e; color: #1c1406; font-weight: 600; }
.v2-btn:hover { background: linear-gradient(180deg,#ecc665,#a9760f); }
.v2-btn.secondary, .v2-btn.light { background: #ffffff; border: 1px solid var(--rf-border-strong); color: var(--rf-text); }
.v2-btn.secondary:hover, .v2-btn.light:hover { background: #f7f0e0; border-color: var(--ps-gold-deep); color: var(--ps-gold-deep); }
.v2-logo-mark { background: linear-gradient(180deg,#e3b546,#a9760f) !important; color: #1a1206 !important; }

/* Footer */
.v2-footer { text-align: center; color: var(--rf-text-3); font-size: 12px; padding: 22px 0 8px; }
.v2-footer .ps-mark { height: 15px; vertical-align: -3px; margin-right: 6px; opacity: .85; }
.v2-footer strong { color: var(--ps-gold-deep); font-weight: 600; }

/* Login page */
.v2-login-body { background: radial-gradient(1100px 560px at 50% -8%, #1d1912 0%, #0a0806 62%) !important; }
.v2-login-card { border: 1px solid #e7dcc0 !important; border-top: 3px solid var(--ps-gold) !important; box-shadow: 0 24px 60px rgba(0,0,0,.45) !important; }
.v2-login-brand { align-items: center; gap: 12px; }
.v2-login-brand .v2-logo-img { height: 48px; filter: none; }
.v2-login-brand strong { color: var(--ps-ink); letter-spacing: .04em; text-transform: uppercase; }
.v2-login-brand span { color: #9a8a63; letter-spacing: .1em; text-transform: uppercase; font-size: 10px; }
.v2-login-card .v2-btn { width: 100%; }
