/* ==========================================================================
   TWG Pop — additive colour + motion layer (loaded last).
   Same navy / blue / gold palette as before, pushed to be brighter, higher
   contrast and more alive. Only adds styling: no markup, layout, feature or
   setting is removed or moved.
   ========================================================================== */
:root{
  --pop-blue:#2563ff;--pop-blue-2:#4f8bff;--pop-blue-3:#0f46d6;
  --pop-gold:#f5b942;--pop-gold-2:#ffd978;--pop-gold-3:#c8901a;
  --pop-glow:0 8px 24px -8px rgba(37,99,255,.55);
  --pop-glow-gold:0 8px 22px -8px rgba(245,185,66,.6);
  --accent:#2563ff;--accent-2:#4f8bff;--accent-deep:#0f46d6;
  --accent-soft:#e6eeff;--accent-line:#b4c9ff;
  --ring:0 0 0 3px rgba(37,99,255,.28);
  --bg:#f1f4fb;
  --sh2:0 1px 3px rgba(16,28,60,.08),0 10px 26px -12px rgba(16,28,60,.2);
  --sh3:0 18px 46px -14px rgba(16,28,60,.34),0 2px 6px rgba(16,28,60,.1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --accent:#5b95ff;--accent-2:#86b0ff;--accent-deep:#3b78f5;--accent-soft:#12224a;--accent-line:#2a4a96;--ring:0 0 0 3px rgba(91,149,255,.38);
  --bg:#070b14;--card:#0f1626;--card-2:#141d31;--line:#1f2a42;--line-2:#18223a;--line-strong:#2d3b5c;
}}
:root[data-theme="dark"]{
  --accent:#5b95ff;--accent-2:#86b0ff;--accent-deep:#3b78f5;--accent-soft:#12224a;--accent-line:#2a4a96;--ring:0 0 0 3px rgba(91,149,255,.38);
  --bg:#070b14;--card:#0f1626;--card-2:#141d31;--line:#1f2a42;--line-2:#18223a;--line-strong:#2d3b5c;
}

/* page backdrop: soft colour wash so cards have something to float on */
body{background-image:radial-gradient(900px 420px at 85% -80px,rgba(37,99,255,.10),transparent 70%),radial-gradient(700px 380px at -5% 10%,rgba(245,185,66,.08),transparent 70%);background-attachment:fixed}

/* headings */
h1,.page-head h1{letter-spacing:-.03em}
.page-head h1{background:linear-gradient(90deg,var(--ink) 0%,var(--ink) 55%,var(--accent) 130%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
@supports not (background-clip:text){.page-head h1{-webkit-text-fill-color:currentColor}}

/* primary buttons: vivid gradient + glow + press */
.btn:not(.secondary):not(.alt):not(.ghost):not(.plain):not(.danger):not(.ok),
button:not(.secondary):not(.alt):not(.ghost):not(.plain):not(.danger):not(.ok):not(.sm):not([class*="side"]):not([class*="tab"]):not([class*="icon"]):not([class*="close"]):not([class*="x"]):not(.nova){
  background-image:linear-gradient(180deg,var(--pop-blue-2),var(--pop-blue) 55%,var(--pop-blue-3));
  border-color:var(--pop-blue-3);color:#fff;box-shadow:var(--pop-glow),inset 0 1px 0 rgba(255,255,255,.28);
}
.btn:not(.secondary):not(.alt):not(.ghost):not(.plain):not(.danger):not(.ok):hover{filter:brightness(1.08) saturate(1.1);transform:translateY(-1px);box-shadow:0 12px 28px -8px rgba(37,99,255,.7),inset 0 1px 0 rgba(255,255,255,.34)}
.btn:active,button:active{transform:translateY(0) scale(.98)}
.btn.secondary:hover,button.secondary:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--sh2)}

/* cards: crisp edge, coloured top accent, lift on hover */
.card{border-radius:14px;box-shadow:var(--sh2)}
a.card.stat-tile,.card.stat-tile{overflow:hidden;position:relative;border-color:var(--line)}
.card.stat-tile::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--pop-blue),var(--pop-blue-2) 55%,var(--pop-gold))}
.card.stat-tile:hover{border-color:var(--accent-line);box-shadow:var(--sh3),0 0 0 1px var(--accent-line);transform:translateY(-3px)}
.stat{background:linear-gradient(180deg,var(--ink),color-mix(in srgb,var(--ink) 70%,var(--accent)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
span.stat{-webkit-text-fill-color:currentColor;background:none}
.meter{height:8px;background:var(--bg-2)}
.meter>span,.meter>div{background:linear-gradient(90deg,var(--pop-blue),var(--pop-gold));box-shadow:0 0 12px rgba(245,185,66,.45)}

/* pills: more saturated, still readable */
.pill{font-weight:600;letter-spacing:.01em}
.pill.wait{background:#fff3d6;color:#8a5200;border-color:#f3cf86}
.pill.won,.pill.ok{background:#d9f7e4;color:#0b6b36;border-color:#8fddac}
.pill.lost,.pill.bad{background:#ffe1de;color:#a3150c;border-color:#f6a8a1}
.pill.info,.pill.acc{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent-line)}
.chips a.pill:hover,a.pill:hover{background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}
a.pill{transition:background .16s,color .16s,border-color .16s,transform .14s}

/* sidebar: brighter active state with a gold marker */
.side-nav a.nl{transition:background .16s,color .16s,transform .16s}
.side-nav a.nl:hover{background:rgba(91,149,255,.14);transform:translateX(2px)}
.side-nav a.nl.on{background:linear-gradient(90deg,rgba(37,99,255,.38),rgba(37,99,255,.12));box-shadow:inset 0 0 0 1px rgba(91,149,255,.35)}
.side-nav a.nl.on::before{background:linear-gradient(180deg,var(--pop-gold-2),var(--pop-gold));width:4px;border-radius:0 4px 4px 0;box-shadow:0 0 14px rgba(245,185,66,.8)}
.side-nav a.nl.on svg{color:var(--pop-gold-2)}
.side-brand .mark{background:linear-gradient(145deg,var(--pop-gold-2),var(--pop-gold) 45%,var(--pop-gold-3));color:#241800;box-shadow:var(--pop-glow-gold)}

/* tabs and sub-nav */
.tabs a.on,.tabs button.on,.tabs a[aria-current],.subnav-tabs a.on{color:var(--accent);border-bottom-color:var(--pop-gold);border-bottom-width:3px}

/* tables: readable header, row hover */
table th{font-weight:700;letter-spacing:.03em}
table tbody tr,table tr{transition:background .12s}
table tr:hover td{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}

/* inputs */
input:focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:var(--ring)}

/* empty states get a little life */
.empty{border:1px dashed var(--accent-line);background:linear-gradient(180deg,color-mix(in srgb,var(--accent-soft) 40%,transparent),transparent);border-radius:14px}
.empty .ttl{background:linear-gradient(90deg,var(--accent),var(--pop-gold-3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* entrance motion: content fades up once; list items cascade */
@keyframes pop-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.page-head,.grid>.card,.chips,.split>div,.card{animation:pop-in .42s cubic-bezier(.2,.7,.2,1) both}
.grid>.card:nth-child(2){animation-delay:.04s}.grid>.card:nth-child(3){animation-delay:.08s}.grid>.card:nth-child(4){animation-delay:.12s}.grid>.card:nth-child(5){animation-delay:.16s}
.grid>.card:nth-child(n+6){animation-delay:.2s}
/* notification badge pulse */
@keyframes pop-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.55)}60%{box-shadow:0 0 0 7px rgba(239,68,68,0)}}
.side-nav a.nl .cnt,.badge-dot{animation:pop-pulse 2.2s infinite}

@media (prefers-reduced-motion:reduce){
  .page-head,.grid>.card,.chips,.split>div,.card,.side-nav a.nl .cnt,.badge-dot{animation:none}
  .card.stat-tile:hover,.btn:hover,.side-nav a.nl:hover,a.pill:hover{transform:none}
}

/* ---- w299: dashboard hero, opportunities quick views, contact snapshot ---- */
.dash-hero{display:grid;gap:14px;margin:0 0 var(--s4,20px)}
.dash-focus{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:var(--r3,14px);color:#fff;
  background:linear-gradient(120deg,#0f2a6b 0%,#2563ff 60%,#4f8bff 100%);box-shadow:var(--pop-glow);animation:pop-in .5s both}
.dash-focus p{margin:2px 0 0;font-size:1.02rem}.dash-focus a{color:var(--pop-gold-2);font-weight:700}
.dash-focus-ttl{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;opacity:.8}
.dash-spark{font-size:1.5rem;color:var(--pop-gold-2);animation:pop-pulse 2.6s ease-in-out infinite}
.dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.dash-kpi{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--r2,10px);background:var(--card,#fff);
  border:1px solid var(--line,#dfe5f2);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s,border-color .18s;animation:pop-in .5s both}
.dash-kpi:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:var(--accent-line)}
.dash-kpi .k{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.dash-kpi .v{font-size:1.5rem;font-weight:800;background:linear-gradient(90deg,var(--pop-blue),var(--pop-gold-3));-webkit-background-clip:text;background-clip:text;color:transparent}
.dash-kpi.warn{border-color:#f0c872}.dash-kpi.bad{border-color:#f2a3a3}
.qv{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 var(--s3,12px)}
.qv .pill{text-decoration:none;cursor:pointer}.qv .pill.on{background:var(--accent);color:#fff;border-color:var(--accent)}
#opps.compact td,#opps.compact th{padding-top:3px;padding-bottom:3px;font-size:var(--fs-sm)}#opps.compact .muted.fs-xs{display:none}
#opps th{position:sticky;top:0;background:var(--card,#fff);z-index:1}
.cd-snap{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch;margin:0 0 var(--s3,12px)}
.cd-avatar{display:grid;place-items:center;width:52px;border-radius:14px;font-size:1.5rem;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--pop-blue),var(--pop-gold-3));box-shadow:var(--pop-glow)}
.cd-stat{display:flex;flex-direction:column;justify-content:center;padding:8px 14px;border-radius:var(--r2,10px);background:var(--card,#fff);border:1px solid var(--line,#dfe5f2);min-width:110px}
.cd-stat.grow{flex:1;min-width:200px}.cd-stat .k{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cd-stat .v{font-size:1.2rem;font-weight:800}.cd-stat .v.sm{font-size:.95rem;font-weight:600}
.cd-jump{position:sticky;top:0;z-index:5;display:flex;gap:6px;padding:6px 0;margin:0 0 var(--s3,12px);background:var(--bg);overflow-x:auto}
.cd-jump a{padding:5px 12px;border-radius:999px;border:1px solid var(--line,#dfe5f2);background:var(--card,#fff);text-decoration:none;font-size:var(--fs-sm);white-space:nowrap}
.cd-jump a:hover{border-color:var(--accent);color:var(--accent)}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){.dash-focus,.dash-kpi,.dash-spark{animation:none}html{scroll-behavior:auto}}
/* w299b: dashboard shortcut cards */
.dash-short{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 var(--s3,12px)}
.dash-card{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--r2,10px);background:var(--card,#fff);border:1px solid var(--line,#dfe5f2);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s,border-color .18s}
.dash-card:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:var(--pop-gold)}
.dash-card .ttl{font-weight:700;color:var(--accent)}
