/* Woodfield Premium Dark Polish (Copart/ACV vibe)
   Surgical override layer (CSS-only) — safe for PHP/DB/functions.
   File: /assets/css/polish.css
   Version: v3 (Fix: stable table hover — remove flicker/erratic lines)
*/

/* ===== Compatibility tokens ===== */
:root{
  --gold: var(--accent, #cfa24a);
  --blue: var(--accent2, #2aa9ff);
  --good: #2ecc71;
  --warn: #f5c542;
  --bad: var(--danger, #ff5c5c);

  --ring: rgba(207,162,74,.42);
  --ring2: rgba(42,169,255,.34);

  --shadowSoft: 0 10px 28px rgba(0,0,0,.28);
  --shadowHard: 0 18px 42px rgba(0,0,0,.46);

  --radiusSm: 10px;
  --radiusMd: 14px;
  --radiusLg: 18px;

  --line: rgba(255,255,255,.10);
  --line2: rgba(255,255,255,.14);

  /* premium glow system */
  --glowGold: 0 0 0 1px rgba(207,162,74,.12), 0 14px 34px rgba(0,0,0,.44), 0 0 42px rgba(207,162,74,.12);
  --glowBlue: 0 0 0 1px rgba(42,169,255,.12), 0 14px 34px rgba(0,0,0,.44), 0 0 44px rgba(42,169,255,.10);

  /* separators */
  --sepGold: linear-gradient(90deg, rgba(207,162,74,0), rgba(207,162,74,.55), rgba(207,162,74,0));
  --sepSoft: rgba(255,255,255,.10);
}

/* ===== Public (non-admin) dark conversion ===== */
body:not(.admin){
  --bg: #070b12;
  --panel: #0f1626;
  --panel2:#0b1220;
  --text: #e8eef7;
  --muted: rgba(232,238,247,.74);
  --border: rgba(255,255,255,.10);
  --shadow: var(--shadowSoft);
  --radius: var(--radiusMd);
  --primary: #0b1220;
  --primary2:#0f1a2d;
  --accent: #cfa24a;
}

body:not(.admin){
  background: var(--bg) !important;
  color: var(--text) !important;
}

body:not(.admin) a{ color: inherit; }
body:not(.admin) a:hover{ color: var(--gold); }

body:not(.admin) header,
body:not(.admin) footer{
  background: rgba(11,18,32,.92) !important;
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
}

body:not(.admin) .panel,
body:not(.admin) .card,
body:not(.admin) .box,
body:not(.admin) .section,
body:not(.admin) .content-card{
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02)) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadowSoft);
  border-radius: var(--radiusLg);
}

body:not(.admin) .muted{ color: var(--muted) !important; }

/* ===== Universal refinements ===== */
*{ -webkit-tap-highlight-color: rgba(0,0,0,0); }

a{
  text-decoration-thickness: .08em;
  text-underline-offset: 3px;
}

/* Focus rings */
:focus{ outline: none; }
:focus-visible{
  box-shadow: 0 0 0 3px var(--ring);
  border-radius: 10px;
}

/* Inputs */
input[type="text"], input[type="email"], input[type="password"], input[type="number"],
input[type="date"], input[type="search"], input[type="tel"], input[type="url"],
textarea, select{
  border-radius: var(--radiusSm) !important;
  border: 1px solid var(--border, rgba(255,255,255,.10)) !important;
  background: rgba(0,0,0,.18) !important;
  color: var(--text, #e8eef7) !important;
}

textarea{ min-height: 110px; }
input::placeholder, textarea::placeholder{ color: rgba(230,237,246,.55); }

select option, datalist option{
  background: #0b1220;
  color: #e6edf6;
}

input:hover, textarea:hover, select:hover{
  border-color: var(--line2) !important;
}

/* ===== Primary CTA gold gradient tuning ===== */
.btn, button.btn, a.btn{
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.28);
  transition: transform .08s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, filter .18s ease;
  will-change: transform;
}

.btn:hover, button.btn:hover, a.btn:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.22) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.38);
}

.btn:active, button.btn:active, a.btn:active{
  transform: translateY(0px);
  box-shadow: 0 10px 22px rgba(0,0,0,.30);
}

.btn.primary,
.btn:not(.secondary):not(.ghost):not(.danger){
  background:
    radial-gradient(120% 140% at 10% 0%, rgba(207,162,74,.38), rgba(207,162,74,0) 55%),
    linear-gradient(135deg, rgba(207,162,74,.26), rgba(207,162,74,.12)) !important;
  border-color: rgba(207,162,74,.44) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.36), 0 0 0 1px rgba(207,162,74,.10) inset;
}

.btn.primary:hover,
.btn:not(.secondary):not(.ghost):not(.danger):hover{
  filter: brightness(1.04);
  border-color: rgba(207,162,74,.58) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.44), 0 0 0 1px rgba(207,162,74,.14) inset;
}

.btn.secondary{
  background: rgba(255,255,255,.06) !important;
}
.btn.secondary:hover{
  background: rgba(255,255,255,.075) !important;
}

.btn.ghost{ background: transparent !important; }

.btn.danger{
  border-color: rgba(255,92,92,.38) !important;
  background: rgba(255,92,92,.10) !important;
}

.btn.tiny, .btn.btn-small, .btn.small{
  padding-top: 7px !important;
  padding-bottom: 7px !important;
}

/* Pills */
.pill, .badge, .tag{
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.05) !important;
}
.pill.good, .badge.good, .tag.good{ border-color: rgba(46,204,113,.35) !important; }
.pill.warn, .badge.warn, .tag.warn{ border-color: rgba(245,197,66,.35) !important; }
.pill.bad,  .badge.bad,  .tag.bad { border-color: rgba(255,92,92,.35) !important; }

/* ===== Sidebar glow + gold accent separators ===== */
.sidebar, .sidenav{
  position: relative;
  box-shadow: var(--glowGold) !important;
}

.sidebar::after, .sidenav::after{
  content:"";
  position:absolute;
  top: 82px;
  left: 14px;
  right: 14px;
  height: 1px;
  background: var(--sepGold);
  opacity: .9;
  pointer-events:none;
}

.nav-group-panel{ position: relative; }
.nav-group-panel::before{
  content:"";
  display:block;
  height: 1px;
  margin: 10px 10px 12px;
  background: rgba(255,255,255,.08);
}

.nav-item.active,
.nav-item.active.sub{
  box-shadow: 0 0 0 1px rgba(207,162,74,.18) inset;
}

.nav-item.active .nav-dot{
  background: rgba(207,162,74,.95) !important;
  box-shadow: 0 0 0 3px rgba(207,162,74,.18);
}

/* ===== App / classic topbar glow + gold separator ===== */
.topbar, .app-topbar{
  position: relative;
  box-shadow: var(--glowBlue) !important;
}

.topbar::after, .app-topbar::after{
  content:"";
  position:absolute;
  left: 16px;
  right: 16px;
  bottom: -1px;
  height: 1px;
  background: var(--sepGold);
  opacity: .9;
  pointer-events:none;
}

/* ===== Table row density + stable auction-style hover =====
   Fix: remove pseudo-elements on <tr> to prevent flicker/erratic lines.
*/
.table th, .table td, table th, table td{
  border-bottom-color: rgba(255,255,255,.08) !important;
}

.table th, table th{
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  letter-spacing: .03em;
}

.table td, table td{
  padding-top: 9px !important;
  padding-bottom: 9px !important;
}

/* Stable hover (no gradients, no pseudo elements on rows) */
.table tbody tr:hover,
table tbody tr:hover{
  background: rgba(207,162,74,.055) !important;
}

/* Add a stable “auction rail” using inset shadow on the row background (supported) */
.table tbody tr:hover,
table tbody tr:hover{
  box-shadow: inset 3px 0 0 rgba(207,162,74,.70), inset 0 0 0 1px rgba(207,162,74,.10);
}

/* Ensure the hover shadow doesn’t get clipped in scrolling containers */
.table tbody tr,
table tbody tr{
  position: static;
}

/* ===== Panels/cards ===== */
.panel, .card, .card-body, .widget, .well{
  border-radius: var(--radiusLg) !important;
}

/* Borders */
.sidebar, .sidenav, .nav, .topbar{
  border-color: rgba(255,255,255,.10) !important;
}

/* HR */
hr{
  border: 0;
  border-top: 1px solid rgba(255,255,255,.10);
  margin: 14px 0;
}

/* Scrollbar */
::-webkit-scrollbar{ width: 12px; height: 12px; }
::-webkit-scrollbar-track{ background: rgba(255,255,255,.04); }
::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.14);
  border-radius: 999px;
  border: 3px solid rgba(0,0,0,0);
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover{ background: rgba(255,255,255,.22); }

/* ===== Mobile app-topbar tightening ===== */
@media (max-width: 760px){
  .btn, button.btn, a.btn{
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .panel, .card{ border-radius: 16px !important; }

  .table, table{ font-size: 14px; }
  .table th, table th{ padding-top: 9px !important; padding-bottom: 9px !important; }
  .table td, table td{ padding-top: 8px !important; padding-bottom: 8px !important; }

  .app-topbar .inner{
    padding-left: 12px !important;
    padding-right: 12px !important;
    min-height: 52px !important;
  }
  .app-topbar .title{
    font-size: 16px !important;
    letter-spacing: .02em;
  }
  .app-topbar .actions{ gap: 8px !important; }

  .topbar{
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

/* Print */
@media print{
  :focus-visible{ box-shadow:none !important; }
  .topbar::after, .app-topbar::after, .sidebar::after{ display:none !important; }
}
