/*
Theme Name: ArthaVision
Theme URI: https://arthavision.in
Author: ArthaVision Team
Author URI: https://arthavision.in
Description: Complete Indian Stock Market Intelligence Platform for NSE & BSE — featuring Stock Universe, DNA Analyser, Portfolio Manager, Trade Log, Tax Tools, Alerts, Market News, FII/DII Tracker, AI Chat, Options Chain, and more. 6 international theme skins included. No plugins required.
Version: 2.2.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: arthavision
Tags: stock-market, finance, trading, portfolio, india, nse, bse, dark-mode, responsive, custom-colors

ArthaVision WordPress Theme, Copyright 2025 ArthaVision
ArthaVision is distributed under the terms of the GNU GPL
*/

/* =====================================================
   ARTHAVISION — BASE RESET & ROOT VARIABLES
   Active skin is set via body data-skin="..."
   Available skins:
     1. midnight-blue   (dark professional — default)
     2. obsidian-gold   (dark premium)
     3. arctic-white    (light clean)
     4. emerald-pro     (dark green terminal)
     5. rose-quartz     (light elegant)
     6. cyber-violet    (dark futuristic)
===================================================== */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ---- SKIN 1: Midnight Blue (default) ---- */
:root,
body[data-skin="midnight-blue"] {
  --bg-primary:    #0d1117;
  --bg-secondary:  #161b22;
  --bg-card:       #1c2230;
  --bg-hover:      #21273a;
  --border:        rgba(48, 58, 82, 0.8);
  --accent:        #2563eb;
  --accent-hover:  #3b82f6;
  --accent-soft:   rgba(37, 99, 235, 0.12);
  --green:         #22c55e;
  --red:           #ef4444;
  --amber:         #f59e0b;
  --purple:        #a78bfa;
  --cyan:          #22d3ee;
  --text-primary:  #e6edf3;
  --text-secondary:#8b949e;
  --text-muted:    #6e7681;
  --shadow:        0 4px 24px rgba(0,0,0,0.5);
  --radius-sm:     6px;
  --radius-md:     10px;
  --radius-lg:     16px;
  --radius-xl:     22px;
  --font-sans:     'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-mono:     'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
  --header-h:      60px;
  --sidebar-w:     240px;
  --transition:    0.18s ease;
}

/* ---- SKIN 2: Obsidian Gold ---- */
body[data-skin="obsidian-gold"] {
  --bg-primary:    #0a0a0a;
  --bg-secondary:  #111111;
  --bg-card:       #1a1a1a;
  --bg-hover:      #222222;
  --border:        rgba(212, 160, 23, 0.2);
  --accent:        #d4a017;
  --accent-hover:  #f0bb2c;
  --accent-soft:   rgba(212, 160, 23, 0.1);
  --green:         #4ade80;
  --red:           #f87171;
  --amber:         #fbbf24;
  --purple:        #c084fc;
  --cyan:          #67e8f9;
  --text-primary:  #f5f0e8;
  --text-secondary:#a89880;
  --text-muted:    #6b5e50;
  --shadow:        0 4px 24px rgba(0,0,0,0.7);
}

/* ---- SKIN 3: Arctic White ---- */
body[data-skin="arctic-white"] {
  --bg-primary:    #ffffff;
  --bg-secondary:  #f3f6fb;
  --bg-card:       #ffffff;
  --bg-hover:      #eef2f9;
  --border:        rgba(15, 23, 42, 0.1);
  --accent:        #0f62fe;
  --accent-hover:  #0043ce;
  --accent-soft:   rgba(15, 98, 254, 0.08);
  --green:         #16a34a;
  --red:           #dc2626;
  --amber:         #d97706;
  --purple:        #7c3aed;
  --cyan:          #0891b2;
  --text-primary:  #0f172a;
  --text-secondary:#475569;
  --text-muted:    #94a3b8;
  --shadow:        0 2px 16px rgba(15,23,42,0.08);
}

/* ---- SKIN 4: Emerald Pro ---- */
body[data-skin="emerald-pro"] {
  --bg-primary:    #021a0f;
  --bg-secondary:  #051f12;
  --bg-card:       #072916;
  --bg-hover:      #0a331b;
  --border:        rgba(16, 185, 129, 0.15);
  --accent:        #10b981;
  --accent-hover:  #34d399;
  --accent-soft:   rgba(16, 185, 129, 0.1);
  --green:         #34d399;
  --red:           #f87171;
  --amber:         #fbbf24;
  --purple:        #a78bfa;
  --cyan:          #22d3ee;
  --text-primary:  #d1fae5;
  --text-secondary:#6ee7b7;
  --text-muted:    #34d399;
  --shadow:        0 4px 24px rgba(0,0,0,0.6);
}

/* ---- SKIN 5: Rose Quartz ---- */
body[data-skin="rose-quartz"] {
  --bg-primary:    #fdf8f8;
  --bg-secondary:  #fdf2f4;
  --bg-card:       #ffffff;
  --bg-hover:      #fce7eb;
  --border:        rgba(159, 18, 57, 0.1);
  --accent:        #e11d48;
  --accent-hover:  #be123c;
  --accent-soft:   rgba(225, 29, 72, 0.07);
  --green:         #15803d;
  --red:           #dc2626;
  --amber:         #b45309;
  --purple:        #7e22ce;
  --cyan:          #0e7490;
  --text-primary:  #1e1b1b;
  --text-secondary:#6b4a52;
  --text-muted:    #9d7b83;
  --shadow:        0 2px 16px rgba(225,29,72,0.07);
}

/* ---- SKIN 6: Cyber Violet ---- */
body[data-skin="cyber-violet"] {
  --bg-primary:    #07040f;
  --bg-secondary:  #0e0820;
  --bg-card:       #130d28;
  --bg-hover:      #1a1235;
  --border:        rgba(139, 92, 246, 0.18);
  --accent:        #8b5cf6;
  --accent-hover:  #a78bfa;
  --accent-soft:   rgba(139, 92, 246, 0.12);
  --green:         #4ade80;
  --red:           #f87171;
  --amber:         #fbbf24;
  --purple:        #c084fc;
  --cyan:          #22d3ee;
  --text-primary:  #ede9fe;
  --text-secondary:#a78bfa;
  --text-muted:    #6d28d9;
  --shadow:        0 4px 32px rgba(139,92,246,0.15);
}

/* =====================================================
   GLOBAL LAYOUT
===================================================== */
html { scroll-behavior: smooth; font-size: 14px; }

body {
  font-family: var(--font-sans);
  background: var(--bg-primary);
  color: var(--text-primary);
  line-height: 1.6;
  min-height: 100vh;
  overflow-x: hidden;
  transition: background var(--transition), color var(--transition);
}

a { color: var(--accent); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--accent-hover); }

img { max-width: 100%; height: auto; display: block; }

/* =====================================================
   SCROLLBAR
===================================================== */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: var(--bg-secondary); }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* =====================================================
   TYPOGRAPHY
===================================================== */
h1,h2,h3,h4,h5,h6 { line-height: 1.3; font-weight: 600; color: var(--text-primary); }
h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.2rem; }
h4 { font-size: 1rem; }
p  { color: var(--text-secondary); line-height: 1.7; }

/* =====================================================
   HEADER
===================================================== */
#av-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--header-h);
  background: var(--bg-secondary);
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center;
  padding: 0 20px;
  gap: 16px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.av-logo { display:flex; align-items:center; gap:8px; text-decoration:none; flex-shrink:0; }
.av-logo-icon { width:32px;height:32px;border-radius:8px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:#fff; }
.av-logo-text { font-size:1.1rem;font-weight:700;color:var(--text-primary); }
.av-logo-sub  { font-size:0.65rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase; }

#av-search-wrap { flex:1; max-width:400px; position:relative; }
#av-search { width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:7px 14px 7px 36px;color:var(--text-primary);font-size:.85rem;outline:none;transition:border var(--transition); }
#av-search:focus { border-color:var(--accent); }
#av-search::placeholder { color:var(--text-muted); }
.av-search-icon { position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:14px; }
#av-search-results { position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);max-height:300px;overflow-y:auto;z-index:200;display:none;box-shadow:var(--shadow); }
#av-search-results.open { display:block; }
.av-sr-item { padding:8px 14px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background var(--transition); }
.av-sr-item:hover { background:var(--bg-hover); }
.av-sr-sym  { font-weight:600;font-size:.85rem;min-width:70px; }
.av-sr-name { font-size:.78rem;color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.av-sr-exch { font-size:.72rem;padding:1px 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent); }

.av-header-actions { display:flex;align-items:center;gap:8px;margin-left:auto; }
.av-icon-btn { width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:15px;transition:all var(--transition); }
.av-icon-btn:hover { background:var(--bg-hover);color:var(--text-primary); }
.av-noti-badge { position:relative; }
.av-noti-badge::after { content:'';position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--red);border:2px solid var(--bg-secondary); }
.av-market-status { display:flex;align-items:center;gap:6px;font-size:.75rem;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border); }
.av-status-dot { width:7px;height:7px;border-radius:50%;background:var(--green); animation:pulse 2s infinite; }
.av-status-dot.closed { background:var(--red); animation:none; }
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.4} }

/* =====================================================
   SIDEBAR
===================================================== */
#av-sidebar {
  position:fixed;top:var(--header-h);left:0;bottom:0;
  width:var(--sidebar-w);
  background:var(--bg-secondary);
  border-right:1px solid var(--border);
  overflow-y:auto;overflow-x:hidden;
  z-index:900;
  transition:transform var(--transition), width var(--transition);
  padding-bottom:80px;
}
#av-sidebar.collapsed { width:56px; }
#av-sidebar.collapsed .av-nav-label,
#av-sidebar.collapsed .av-nav-section-title,
#av-sidebar.collapsed .av-nav-badge { display:none; }
#av-sidebar.collapsed .av-nav-item { justify-content:center; padding:10px 0; }
#av-sidebar.collapsed .av-nav-group-toggle { display:none; }

.av-nav-section { padding:16px 12px 4px; }
.av-nav-section-title { font-size:.67rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 8px; }
.av-nav-item {
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;margin:2px 0;
  border-radius:var(--radius-sm);cursor:pointer;
  color:var(--text-secondary);font-size:.85rem;
  transition:all var(--transition);text-decoration:none;
  position:relative;
}
.av-nav-item:hover  { background:var(--bg-hover);color:var(--text-primary); }
.av-nav-item.active { background:var(--accent-soft);color:var(--accent); }
.av-nav-item.active .av-nav-icon { color:var(--accent); }
.av-nav-icon { width:18px;text-align:center;font-size:15px;flex-shrink:0; }
.av-nav-label { flex:1; }
.av-nav-badge { background:var(--accent);color:#fff;font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:99px; }
.av-nav-badge.red { background:var(--red); }
.av-nav-badge.green { background:var(--green); }

/* Sub-nav groups */
.av-nav-group-toggle { font-size:10px;transition:transform var(--transition); }
.av-sub-nav { display:none; }
.av-sub-nav.open { display:block; }
.av-sub-nav .av-nav-item { padding-left:36px;font-size:.8rem; }

/* =====================================================
   MAIN CONTENT
===================================================== */
#av-main {
  margin-left:var(--sidebar-w);
  margin-top:var(--header-h);
  padding:24px;
  min-height:calc(100vh - var(--header-h));
  transition:margin var(--transition);
}
#av-main.expanded { margin-left:56px; }

/* Pages */
.av-page { display:none; }
.av-page.active { display:block; }

/* Page header */
.av-page-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px; }
.av-page-title { font-size:1.4rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:10px; }
.av-page-title span { font-size:1.3rem; }
.av-page-subtitle { font-size:.82rem;color:var(--text-muted);margin-top:2px; }
.av-page-actions { display:flex;gap:8px;flex-wrap:wrap; }

/* =====================================================
   BUTTONS
===================================================== */
.av-btn {
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 16px;border-radius:var(--radius-sm);
  font-size:.83rem;font-weight:500;cursor:pointer;
  border:1px solid transparent;transition:all var(--transition);
  text-decoration:none;white-space:nowrap;
}
.av-btn-primary { background:var(--accent);color:#fff;border-color:var(--accent); }
.av-btn-primary:hover { background:var(--accent-hover);color:#fff; }
.av-btn-outline { background:transparent;color:var(--text-secondary);border-color:var(--border); }
.av-btn-outline:hover { background:var(--bg-hover);color:var(--text-primary); }
.av-btn-sm { padding:4px 10px;font-size:.77rem; }
.av-btn-danger { background:rgba(239,68,68,.12);color:var(--red);border-color:rgba(239,68,68,.2); }
.av-btn-success { background:rgba(34,197,94,.1);color:var(--green);border-color:rgba(34,197,94,.2); }
.av-btn-icon { padding:7px;width:34px;height:34px;justify-content:center; }

/* =====================================================
   CARDS
===================================================== */
.av-card {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:20px;
  transition:border var(--transition);
}
.av-card:hover { border-color:rgba(var(--accent),0.3); }
.av-card-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:16px; }
.av-card-title { font-size:.95rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px; }

/* METRIC CARDS */
.av-metric-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px; }
.av-metric {
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:14px 16px;
  transition:border var(--transition);cursor:default;
}
.av-metric:hover { border-color:var(--accent); }
.av-metric-label { font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px; }
.av-metric-value { font-size:1.35rem;font-weight:700;color:var(--text-primary);line-height:1; }
.av-metric-change { font-size:.75rem;margin-top:5px;display:flex;align-items:center;gap:3px; }
.up   { color:var(--green); }
.down { color:var(--red); }
.flat { color:var(--text-muted); }

/* =====================================================
   GRID LAYOUTS
===================================================== */
.av-grid-2 { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.av-grid-3 { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.av-grid-4 { display:grid;grid-template-columns:repeat(4,1fr);gap:16px; }
.av-grid-auto { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px; }

/* =====================================================
   TABLES
===================================================== */
.av-table-wrap { overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border); }
.av-table { width:100%;border-collapse:collapse;font-size:.82rem; }
.av-table thead th {
  background:var(--bg-secondary);padding:10px 14px;
  text-align:left;font-weight:600;font-size:.75rem;
  color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;
  border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;
  user-select:none;
}
.av-table thead th:hover { color:var(--text-primary); }
.av-table tbody td { padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary);white-space:nowrap; }
.av-table tbody tr:last-child td { border-bottom:none; }
.av-table tbody tr { transition:background var(--transition); }
.av-table tbody tr:hover { background:var(--bg-hover); }
.av-table .sym-cell { font-weight:700;color:var(--text-primary);font-family:var(--font-mono); }
.av-table .price-cell { font-weight:600;color:var(--text-primary);font-family:var(--font-mono); }

/* Exchange badges */
.badge { display:inline-block;font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:4px;letter-spacing:.03em; }
.badge-nse { background:rgba(37,99,235,.15);color:#3b82f6; }
.badge-bse { background:rgba(245,158,11,.12);color:var(--amber); }
.badge-large { background:rgba(34,197,94,.1);color:var(--green); }
.badge-mid   { background:rgba(139,92,246,.1);color:var(--purple); }
.badge-small { background:rgba(239,68,68,.1);color:var(--red); }
.badge-buy   { background:rgba(34,197,94,.12);color:var(--green); }
.badge-sell  { background:rgba(239,68,68,.12);color:var(--red); }
.badge-hold  { background:rgba(245,158,11,.12);color:var(--amber); }

/* =====================================================
   FILTERS BAR
===================================================== */
.av-filters {
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-md);padding:10px 14px;margin-bottom:16px;
}
.av-filter-select {
  background:var(--bg-secondary);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:5px 10px;
  color:var(--text-primary);font-size:.8rem;outline:none;cursor:pointer;
}
.av-filter-select:focus { border-color:var(--accent); }
.av-filter-search {
  flex:1;min-width:160px;background:var(--bg-secondary);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:5px 10px;color:var(--text-primary);font-size:.8rem;outline:none;
}
.av-filter-search:focus { border-color:var(--accent); }
.av-filter-toggle { display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary);cursor:pointer;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);transition:all var(--transition); }
.av-filter-toggle.active,.av-filter-toggle:hover { background:var(--accent-soft);border-color:var(--accent);color:var(--accent); }

/* =====================================================
   TABS
===================================================== */
.av-tabs { display:flex;gap:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:4px;margin-bottom:20px;flex-wrap:wrap; }
.av-tab { padding:6px 16px;border-radius:var(--radius-sm);cursor:pointer;font-size:.83rem;color:var(--text-secondary);transition:all var(--transition);white-space:nowrap;border:1px solid transparent; }
.av-tab:hover { color:var(--text-primary); }
.av-tab.active { background:var(--accent);color:#fff;border-color:var(--accent); }

/* =====================================================
   FORMS & INPUTS
===================================================== */
.av-input {
  width:100%;background:var(--bg-secondary);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:8px 12px;color:var(--text-primary);
  font-size:.85rem;outline:none;font-family:var(--font-sans);
  transition:border var(--transition);
}
.av-input:focus { border-color:var(--accent); }
.av-input::placeholder { color:var(--text-muted); }
.av-label { display:block;font-size:.78rem;font-weight:600;color:var(--text-secondary);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em; }
.av-form-group { margin-bottom:14px; }
select.av-input { cursor:pointer; }
textarea.av-input { resize:vertical;min-height:80px; }

/* =====================================================
   DNA SCORE METER
===================================================== */
.av-dna-score {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:110px;height:110px;border-radius:50%;border:4px solid var(--accent);
  background:var(--accent-soft);
}
.av-dna-score-num { font-size:2rem;font-weight:800;color:var(--accent);line-height:1; }
.av-dna-score-lbl { font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted); }

/* DNA bar */
.av-dna-bar { display:flex;flex-direction:column;gap:6px;margin-bottom:14px; }
.av-dna-row { display:grid;grid-template-columns:140px 1fr 40px;align-items:center;gap:10px; }
.av-dna-dim { font-size:.78rem;color:var(--text-secondary); }
.av-bar-track { height:6px;background:var(--bg-secondary);border-radius:99px;overflow:hidden; }
.av-bar-fill  { height:100%;border-radius:99px;background:var(--accent);transition:width .6s ease; }
.av-bar-fill.green { background:var(--green); }
.av-bar-fill.red   { background:var(--red); }
.av-bar-fill.amber { background:var(--amber); }
.av-dna-val { font-size:.78rem;font-weight:600;text-align:right; }

/* =====================================================
   ALERTS
===================================================== */
.av-alert-item {
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;border-radius:var(--radius-md);
  border:1px solid var(--border);background:var(--bg-card);
  margin-bottom:8px;transition:border var(--transition);cursor:pointer;
}
.av-alert-item:hover { border-color:var(--accent); }
.av-alert-dot { width:10px;height:10px;border-radius:50%;flex-shrink:0; }

/* =====================================================
   CHAT (AI)
===================================================== */
.av-chat-wrap { display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:400px; }
.av-chat-messages { flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px; }
.av-chat-msg { display:flex;gap:10px;align-items:flex-start; }
.av-chat-msg.user { flex-direction:row-reverse; }
.av-chat-avatar { width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0; }
.av-chat-msg.user .av-chat-avatar { background:var(--bg-hover); }
.av-chat-bubble { max-width:75%;padding:10px 14px;border-radius:var(--radius-md);font-size:.85rem;line-height:1.6; }
.av-chat-msg.ai .av-chat-bubble   { background:var(--bg-card);border:1px solid var(--border); }
.av-chat-msg.user .av-chat-bubble { background:var(--accent);color:#fff; }
.av-chat-input-wrap { padding:12px;border-top:1px solid var(--border);display:flex;gap:8px; }
.av-chat-input { flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;color:var(--text-primary);font-size:.85rem;outline:none;resize:none; }
.av-chat-input:focus { border-color:var(--accent); }

/* =====================================================
   PROGRESS / LOADING
===================================================== */
.av-spinner { width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block; }
@keyframes spin { to{transform:rotate(360deg)} }
.av-skeleton { background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-hover) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm); }
@keyframes shimmer { to{background-position:-200% 0} }

/* =====================================================
   PAGINATION
===================================================== */
.av-pagination { display:flex;align-items:center;gap:6px;justify-content:center;margin-top:16px;flex-wrap:wrap; }
.av-page-btn { width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text-secondary);font-size:.82rem;transition:all var(--transition);display:flex;align-items:center;justify-content:center; }
.av-page-btn:hover { background:var(--bg-hover);color:var(--text-primary); }
.av-page-btn.active { background:var(--accent);color:#fff;border-color:var(--accent); }
.av-page-btn:disabled { opacity:.4;cursor:not-allowed; }

/* =====================================================
   SKIN SWITCHER MODAL
===================================================== */
.av-skin-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px; }
.av-skin-card {
  border-radius:var(--radius-md);overflow:hidden;cursor:pointer;
  border:2px solid transparent;transition:border var(--transition);
}
.av-skin-card.selected { border-color:var(--accent); }
.av-skin-preview { height:60px;display:flex;gap:3px;padding:8px; }
.av-skin-swatch { flex:1;border-radius:4px; }
.av-skin-name { padding:6px 10px;font-size:.78rem;font-weight:600;background:var(--bg-secondary);color:var(--text-primary); }

/* Modal */
.av-modal-overlay { position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:2000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px); }
.av-modal-overlay.open { display:flex; }
.av-modal { background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:24px;min-width:320px;max-width:520px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow); }
.av-modal-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:16px; }
.av-modal-title { font-size:1.1rem;font-weight:700; }

/* =====================================================
   CHARTS PLACEHOLDER
===================================================== */
.av-chart-wrap { position:relative;width:100%;border-radius:var(--radius-md);overflow:hidden; }
.av-chart-wrap canvas { display:block; }

/* =====================================================
   MARKET TICKER STRIP
===================================================== */
.av-ticker { height:32px;background:var(--bg-secondary);border-bottom:1px solid var(--border);overflow:hidden;display:flex;align-items:center; }
.av-ticker-inner { display:flex;gap:32px;animation:ticker 60s linear infinite;white-space:nowrap; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.av-ticker-item { display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-secondary);flex-shrink:0; }
.av-ticker-sym { font-weight:700;color:var(--text-primary);font-family:var(--font-mono); }
.av-ticker-val { font-family:var(--font-mono); }

/* =====================================================
   HEATMAP
===================================================== */
.av-heatmap { display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:4px; }
.av-heatmap-cell { padding:10px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition);text-align:center; }
.av-heatmap-cell:hover { opacity:.85; }
.av-heatmap-cell .sym { font-size:.78rem;font-weight:700; }
.av-heatmap-cell .chg { font-size:.72rem;margin-top:2px; }

/* =====================================================
   BOTTOM MOBILE NAV
===================================================== */
#av-bottom-nav {
  display:none;
  position:fixed;bottom:0;left:0;right:0;
  background:var(--bg-secondary);border-top:1px solid var(--border);
  padding:6px 0 env(safe-area-inset-bottom,8px);
  z-index:1000;
}
.av-bottom-nav-items { display:flex;justify-content:space-around; }
.av-bottom-nav-item { display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 12px;cursor:pointer;color:var(--text-muted);font-size:.65rem;transition:color var(--transition); }
.av-bottom-nav-item.active,.av-bottom-nav-item:hover { color:var(--accent); }
.av-bottom-nav-item .nav-icon { font-size:18px; }

/* =====================================================
   RESPONSIVE
===================================================== */
@media (max-width:1024px) {
  :root { --sidebar-w:56px; }
  #av-sidebar .av-nav-label,
  #av-sidebar .av-nav-section-title,
  #av-sidebar .av-nav-badge { display:none; }
  #av-sidebar .av-nav-item { justify-content:center;padding:10px 0; }
}
@media (max-width:768px) {
  #av-sidebar { display:none; }
  #av-main { margin-left:0;padding:14px; }
  #av-bottom-nav { display:block; }
  .av-grid-2,.av-grid-3,.av-grid-4 { grid-template-columns:1fr; }
  .av-metric-grid { grid-template-columns:repeat(2,1fr); }
  #av-main { padding-bottom:80px; }
  .av-skin-grid { grid-template-columns:repeat(2,1fr); }
  .av-page-header { flex-direction:column;align-items:flex-start; }
}
@media (max-width:480px) {
  .av-metric-grid { grid-template-columns:repeat(2,1fr); }
  .av-tabs { overflow-x:auto;flex-wrap:nowrap; }
}

/* =====================================================
   UTILITIES
===================================================== */
.text-up    { color:var(--green) !important; }
.text-down  { color:var(--red) !important; }
.text-muted { color:var(--text-muted) !important; }
.text-accent{ color:var(--accent) !important; }
.fw-700 { font-weight:700; }
.mono   { font-family:var(--font-mono); }
.mt-8  { margin-top:8px; }
.mt-16 { margin-top:16px; }
.mt-20 { margin-top:20px; }
.mb-8  { margin-bottom:8px; }
.mb-16 { margin-bottom:16px; }
.mb-20 { margin-bottom:20px; }
.flex  { display:flex; }
.flex-center { display:flex;align-items:center;justify-content:center; }
.gap-8  { gap:8px; }
.gap-12 { gap:12px; }
.hidden { display:none !important; }
.w-full { width:100%; }
.divider { height:1px;background:var(--border);margin:16px 0; }
.nowrap { white-space:nowrap; }
.truncate { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

/* Print */
@media print { #av-header,#av-sidebar,#av-bottom-nav { display:none; } #av-main { margin:0;padding:0; } }

/* =====================================================
   DNA ANALYSER v1.2 — new panels
===================================================== */
.av-grid-3 { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }

#dna-report .av-card { animation:fadeUp .3s ease; }
@keyframes fadeUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* DNA score ring animation */
.av-dna-score { transition:border-color .4s ease, background .4s ease; }
.av-dna-score-num { transition:color .4s ease; }

/* Dimension bar animation */
.av-bar-fill { transition:width .7s cubic-bezier(.4,0,.2,1); }

/* Pivot level grid */
#dna-sr .pivot-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:4px; }

/* Pattern signal badge */
#dna-pattern .signal-badge { display:inline-block;padding:3px 10px;border-radius:99px;font-size:.75rem;font-weight:600;margin-top:6px; }

/* Strategy entry/exit cards */
#dna-strategy > div > div { transition:background var(--transition); }
#dna-strategy > div > div:hover { filter:brightness(1.05); }

/* Bear score ring */
#dna-shortsell .av-dna-score { flex-shrink:0; }

@media(max-width:1024px) {
  .av-grid-3 { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px) {
  .av-grid-3 { grid-template-columns:1fr; }
  #dna-report .av-chart-wrap { height:180px !important; }
}

/* =====================================================
   MARKET NEWS  v1.3
===================================================== */
.av-news-card {
  transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.av-news-card:hover {
  box-shadow: var(--shadow);
}

/* Sentiment pill colours handled inline via JS */

/* Source tab scroll on mobile */
#news-source-tabs {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#news-source-tabs::-webkit-scrollbar { display: none; }

/* News grid responsive */
@media (max-width: 700px) {
  #news-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Sentiment progress bar */
#news-sentiment-bar > div {
  transition: all var(--transition);
}

/* =====================================================
   AI BRIEF  v1.4
===================================================== */
#brief-content .av-card {
  animation: fadeUp .3s ease;
}

/* Narration text */
#brief-content > .av-card > div > div:last-child {
  font-size: .92rem;
  line-height: 1.8;
}

/* Sector bar */
#ai-panel-brief .av-metric-grid {
  grid-template-columns: repeat(auto-fit, minmax(130px,1fr));
}

/* Earnings result box */
#earn-result {
  transition: background var(--transition);
}

/* NL screener quick example buttons */
#nl-screener .av-btn-outline {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

/* Chat quick prompt buttons */
#page-aichat .av-btn-outline {
  transition: all var(--transition);
}
#page-aichat .av-btn-outline:hover {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
}

@media (max-width: 700px) {
  #ai-panel-earnings .av-grid-2 {
    grid-template-columns: 1fr;
  }
  #earn-result {
    min-height: 160px;
  }
}

/* =====================================================
   BACKTESTER  v1.5
===================================================== */
.bt-strat-card {
  transition: all var(--transition);
}
.bt-strat-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}
.bt-strat-card.selected {
  border-width: 2px !important;
  box-shadow: 0 0 0 2px var(--accent-soft);
}
#bt-strategy-cards {
  grid-template-columns: repeat(auto-fill, minmax(190px,1fr));
}
@media (max-width:700px) {
  #bt-strategy-cards { grid-template-columns: 1fr; }
  .av-grid-3 { grid-template-columns: 1fr; }
}

/* =====================================================
   OPTIONS CHAIN  v1.6
===================================================== */

/* Chain table — tight compact rows */
#opt-table tbody td {
  padding: 6px 8px;
  font-size: .82rem;
}
#opt-table thead th {
  padding: 7px 8px;
  font-size: .72rem;
}

/* ATM row highlight pulse */
#opt-table tr[style*="accent-soft"] {
  animation: atmPulse 2.5s ease-in-out infinite;
}
@keyframes atmPulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .85; }
}

/* OI inline bar */
#opt-table td div[style*="height:4px"] {
  transition: width .4s ease;
}

/* PCR gauge needle */
#opt-pcr-gauge > div:first-child {
  transition: all var(--transition);
}

/* Greeks table */
#opt-greeks-panel .av-table tbody td {
  padding: 5px 8px;
  font-size: .78rem;
}

/* Mobile: hide less important columns */
@media (max-width: 768px) {
  #opt-table .hide-mobile { display: none; }
  #opt-chain-wrap { overflow-x: auto; }
}

/* =====================================================
   FII / DII TRACKER  v1.7
===================================================== */
/* Monthly heatmap cells */
#fii-monthly-grid > div {
  transition: transform var(--transition), opacity var(--transition);
}
#fii-monthly-grid > div:hover {
  transform: translateY(-2px);
  opacity: .9;
}

/* Correlation ring */
#fii-correlation > div:first-child > div:first-child {
  transition: border-color .4s ease, background .4s ease;
}

/* Flow bars */
#fii-flow-bars > div > div > div {
  transition: width .5s cubic-bezier(.4,0,.2,1);
}

/* F&O panel net badge */
#fii-fo-panel > div:first-child {
  transition: background var(--transition), border-color var(--transition);
}

@media (max-width: 768px) {
  #fii-monthly-grid {
    grid-template-columns: repeat(auto-fill, minmax(75px, 1fr));
  }
}

/* =====================================================
   EARNINGS CALENDAR  v1.8
===================================================== */
#earnings-panel-upcoming > div { transition: opacity .2s ease; }

/* Earnings cards */
#earnings-panel-upcoming .av-card {
  transition: border-color var(--transition), transform var(--transition);
}
#earnings-panel-upcoming .av-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

/* Beat / Miss verdict colours */
.verdict-beat  { color: var(--green); }
.verdict-miss  { color: var(--red);   }
.verdict-inline{ color: var(--amber); }

/* =====================================================
   SECTOR ROTATION  v1.8
===================================================== */
/* Sector heatmap cells */
#sector-heatmap > div {
  transition: transform .15s ease, opacity .15s ease;
  user-select: none;
}

/* Sector performance bars */
#sector-performance-bars > div > div:nth-child(2) > div {
  transition: width .6s cubic-bezier(.4,0,.2,1);
}

/* Sector detail modal table */
#sector-detail-body .av-table tbody tr:hover {
  cursor: pointer;
}

@media (max-width: 768px) {
  #sector-heatmap {
    grid-template-columns: repeat(auto-fill, minmax(85px, 1fr));
  }
  .av-grid-2 > .av-card { min-width: 0; }
}

/* =====================================================
   DIVIDENDS TRACKER  v2.0
===================================================== */
#div-panel-upcoming .av-card { transition:border-color var(--transition),transform var(--transition); }
#div-panel-upcoming .av-card:hover { transform:translateY(-2px); box-shadow:var(--shadow); }

/* DRIP chart wrap */
#drip-result canvas { width:100%!important; }

/* =====================================================
   PORTFOLIO REBALANCER  v2.0
===================================================== */
.reb-target:focus { border-color:var(--accent); outline:none; }

#reb-target-inputs { scrollbar-width:thin; }
#reb-target-inputs::-webkit-scrollbar { width:4px; }
#reb-target-inputs::-webkit-scrollbar-thumb { background:var(--border); border-radius:2px; }

#reb-results .av-card { animation:fadeUp .3s ease; }

/* =====================================================
   PAPER TRADING  v2.1
===================================================== */
/* Position cards */
#paper-panel-positions .av-card {
  transition: border-color var(--transition);
}
#paper-panel-positions .av-card:hover {
  box-shadow: var(--shadow);
}

/* Quick trade form grid */
#paper-panel-dashboard input[type="number"],
#paper-panel-dashboard select {
  font-size: .82rem;
}

/* Cost preview bar */
#pt-cost-preview {
  transition: all var(--transition);
  min-height: 28px;
}

/* Analytics monthly grid */
#paper-panel-analytics > .av-card:last-child > div {
  scrollbar-width: thin;
}

/* Equity chart */
#chart-paper-equity {
  width: 100% !important;
}

/* History table compact */
#paper-panel-history .av-table tbody td {
  padding: 6px 8px;
  font-size: .8rem;
}

@media (max-width: 768px) {
  #paper-panel-dashboard > .av-card > div:first-child {
    grid-template-columns: 1fr;
  }
}

/* =====================================================
   ARTHAVISION v2.2 — FINAL UI/UX PASS
   ✓ Accessibility  ✓ PWA  ✓ Print  ✓ Performance
   ✓ Mobile polish  ✓ Motion  ✓ Scrollbar  ✓ Focus
===================================================== */

/* ─── Skip-to-content link (a11y) ─────────────────── */
.av-skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  background: var(--accent);
  color: #fff;
  padding: 8px 16px;
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size: .9rem;
  z-index: 10000;
  text-decoration: none;
  transition: top .15s ease;
}
.av-skip-link:focus {
  top: 8px;
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* ─── Focus ring (keyboard users) ─────────────────── */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ─── Main content landmark ────────────────────────── */
#av-main-content {
  outline: none;
}

/* ─── Scrollbar polish (webkit) ────────────────────── */
::-webkit-scrollbar            { width: 6px; height: 6px; }
::-webkit-scrollbar-track      { background: var(--bg-secondary); }
::-webkit-scrollbar-thumb      { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover{ background: var(--text-muted); }

/* Sidebar scrollbar thinner */
.av-sidebar::-webkit-scrollbar { width: 3px; }

/* ─── Reduced motion ───────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:   0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration:  0.01ms !important;
    scroll-behavior:      auto   !important;
  }
  .av-spinner { animation-duration: 1s !important; }
}

/* ─── Performance: defer off-screen content ────────── */
.av-page:not(.active) {
  content-visibility: auto;
  contain-intrinsic-size: 0 600px;
}

/* ─── Touch targets (mobile a11y — 44×44 minimum) ──── */
@media (max-width: 768px) {
  .av-btn,
  .av-tab,
  .nav-item,
  button,
  [role="button"] {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .av-btn-sm {
    min-height: 36px;
    min-width: 36px;
  }

  /* Bottom safe area for iPhone notch */
  .av-footer, .av-bottom-nav {
    padding-bottom: env(safe-area-inset-bottom, 8px);
  }

  /* Metric grid — 2 cols on phone */
  .av-metric-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Full-width cards on mobile */
  .av-grid-2,
  .av-grid-3 {
    grid-template-columns: 1fr !important;
  }

  /* Table horizontal scroll with smooth momentum */
  .av-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }

  /* DNA report mobile */
  #dna-report .av-chart-wrap {
    height: 200px !important;
  }

  /* Options chain mobile: hide lower-priority columns */
  #opt-table th:nth-child(2),
  #opt-table td:nth-child(2),
  #opt-table th:nth-child(3),
  #opt-table td:nth-child(3) {
    display: none;
  }

  /* Sidebar off-canvas on mobile (already handled via JS) */
  .av-sidebar {
    max-width: 280px;
  }

  /* Page header stack on mobile */
  .av-page-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .av-page-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* ─── Toast / notification animation ───────────────── */
.av-toast {
  animation: toastSlideIn .25s cubic-bezier(.4,0,.2,1);
}
.av-toast.hiding {
  animation: toastSlideOut .2s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes toastSlideIn {
  from { transform: translateX(120%); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}
@keyframes toastSlideOut {
  from { transform: translateX(0);    opacity: 1; }
  to   { transform: translateX(120%); opacity: 0; }
}

/* ─── Card micro-interactions ───────────────────────── */
.av-card {
  transition: box-shadow var(--transition), border-color var(--transition), transform var(--transition);
  will-change: transform;
}
.av-card:hover {
  box-shadow: var(--shadow);
}

/* ─── Skeleton loader animation ────────────────────── */
.av-skeleton {
  background: linear-gradient(90deg,
    var(--bg-secondary) 25%,
    var(--bg-hover)     50%,
    var(--bg-secondary) 75%);
  background-size: 200% 100%;
  animation: skeletonShimmer 1.4s ease-in-out infinite;
  border-radius: var(--radius-sm);
}
@keyframes skeletonShimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ─── Metric grid animation on load ────────────────── */
.av-metric {
  animation: fadeUp .3s ease both;
}
.av-metric:nth-child(1)  { animation-delay: .03s; }
.av-metric:nth-child(2)  { animation-delay: .06s; }
.av-metric:nth-child(3)  { animation-delay: .09s; }
.av-metric:nth-child(4)  { animation-delay: .12s; }
.av-metric:nth-child(5)  { animation-delay: .15s; }
.av-metric:nth-child(6)  { animation-delay: .18s; }
.av-metric:nth-child(7)  { animation-delay: .21s; }
.av-metric:nth-child(8)  { animation-delay: .24s; }

/* ─── Skin: Arctic White — extra light-mode polish ─── */
body[data-skin="arctic-white"] {
  --shadow: 0 2px 20px rgba(15,23,42,.1);
}
body[data-skin="arctic-white"] .av-card {
  border: 1px solid rgba(15,23,42,.09);
}
body[data-skin="arctic-white"] .av-sidebar {
  border-right: 1px solid rgba(15,23,42,.1);
}
body[data-skin="arctic-white"] .av-header {
  border-bottom: 1px solid rgba(15,23,42,.1);
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(12px);
}

/* ─── Skin: Rose Quartz — light elegant polish ──────── */
body[data-skin="rose-quartz"] {
  --shadow: 0 2px 20px rgba(131,24,67,.08);
}
body[data-skin="rose-quartz"] .av-card {
  border: 1px solid rgba(131,24,67,.08);
}

/* ─── All dark skins — glass header ────────────────── */
body[data-skin="midnight-blue"] .av-header,
body[data-skin="obsidian-gold"]  .av-header,
body[data-skin="emerald-pro"]    .av-header,
body[data-skin="cyber-violet"]   .av-header {
  backdrop-filter: blur(16px) saturate(1.5);
  -webkit-backdrop-filter: blur(16px) saturate(1.5);
  background: rgba(0,0,0,.6);
  border-bottom: 1px solid var(--border);
}

/* ─── Nav item active indicator ────────────────────── */
.nav-item.active {
  background: var(--accent-soft);
  color: var(--accent);
}
.nav-item.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 3px;
  background: var(--accent);
  border-radius: 0 3px 3px 0;
}
.nav-item {
  position: relative;
}

/* ─── Chart.js canvas crisp on retina ──────────────── */
canvas {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* ─── Input autofill override (dark skins) ─────────── */
body:not([data-skin="arctic-white"]):not([data-skin="rose-quartz"]) {
  input:-webkit-autofill,
  input:-webkit-autofill:hover,
  input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px var(--bg-secondary) inset !important;
    -webkit-text-fill-color: var(--text-primary) !important;
  }
}

/* ─── Emoji / icon vertical alignment ──────────────── */
.av-page-title span,
.av-card-title {
  vertical-align: middle;
}

/* ─── PRINT CSS ─────────────────────────────────────── */
@media print {
  /* Hide chrome */
  .av-sidebar,
  .av-header,
  .av-footer,
  .av-btn,
  .av-tabs,
  #av-toast-container,
  .av-skip-link,
  .av-page-actions,
  #dna-actions,
  #dna-source-warning,
  #bt-run-btn,
  #opt-load-btn,
  .av-filters,
  .av-form-group {
    display: none !important;
  }

  /* Show main content full width */
  body, html {
    background: #fff !important;
    color: #000 !important;
    font-size: 11pt;
  }
  .av-main, .av-page, .av-content {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }
  .av-page:not(.active) {
    display: none !important;
  }

  /* Cards print as bordered blocks */
  .av-card {
    border: 1px solid #ccc !important;
    box-shadow: none !important;
    page-break-inside: avoid;
    background: #fff !important;
    color: #000 !important;
    margin-bottom: 12pt;
  }

  /* Metrics print compact */
  .av-metric {
    background: #f5f5f5 !important;
    border: 1px solid #ddd !important;
    color: #000 !important;
  }
  .av-metric-value { color: #000 !important; }
  .av-metric-value.up   { color: #16a34a !important; }
  .av-metric-value.down { color: #dc2626 !important; }

  /* Tables */
  .av-table th { background: #f5f5f5 !important; color: #000 !important; }
  .av-table td { color: #000 !important; border-color: #ddd !important; }
  .av-table tr { page-break-inside: avoid; }

  /* DNA score ring */
  .av-dna-score { border-color: #000 !important; background: #fff !important; }
  .av-dna-score-num { color: #000 !important; }

  /* Charts — preserve but allow page break after */
  .av-chart-wrap canvas { page-break-after: always; }

  /* Print header */
  body::before {
    content: 'ArthaVision — Indian Stock Market Intelligence · Printed on: ' attr(data-print-date);
    display: block;
    font-size: 9pt;
    color: #666;
    padding: 0 0 8pt;
    border-bottom: 1pt solid #ccc;
    margin-bottom: 16pt;
  }

  /* Page margins */
  @page {
    margin: 15mm 12mm;
    size: A4;
  }
  @page :first {
    margin-top: 20mm;
  }
}

/* ─── FOUT prevention — system font stack fallback ─── */
.av-font-loading body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ─── Line clamp utility ────────────────────────────── */
.av-clamp-1 { overflow:hidden; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; }
.av-clamp-2 { overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.av-clamp-3 { overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }

/* ─── Visually hidden (screen-reader only) ──────────── */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ─── High-contrast mode support ───────────────────── */
@media (forced-colors: active) {
  .av-card      { border: 1px solid ButtonText; }
  .av-btn       { border: 1px solid ButtonText; }
  .badge        { border: 1px solid ButtonText; }
  .av-dna-score { border: 2px solid ButtonText; }
}

/* =====================================================
   WATCHDOG AI  v3.0
===================================================== */

/* Sector heatmap cells */
#wd-sector-heat > div {
  transition: transform .15s ease;
  cursor: pointer;
  user-select: none;
}
#wd-sector-heat > div:hover { transform: translateY(-3px); }

/* Index metric cards */
#wd-indices .av-metric {
  cursor: pointer;
  transition: border-color var(--transition), transform var(--transition);
}
#wd-indices .av-metric:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
}

/* Sentiment ring */
#wd-sentiment-result > div > div:first-child {
  transition: border-color .4s ease, background .4s ease;
}

/* Scoring bars */
#wd-score-result > div:last-child > div > div:last-child > div {
  transition: width .6s cubic-bezier(.4,0,.2,1);
}

/* News feed items */
#wd-news-feed > div {
  transition: background var(--transition);
}
#wd-news-feed > div:hover {
  background: var(--bg-secondary);
  border-radius: 6px;
}

/* Plan cards */
#wd-panel-plans .av-card {
  transition: transform var(--transition), box-shadow var(--transition);
}
#wd-panel-plans .av-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

/* WatchDog nav badge */
.nav-item[data-page="watchdog"] .av-nav-label::after {
  content: '';
}

/* Tab bar horizontal scroll on mobile */
#wd-tabs {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#wd-tabs::-webkit-scrollbar { display: none; }

/* Alert channel badges */
.wd-channel-cb { accent-color: var(--accent); }

/* Gainers/losers table hover */
#wd-panel-dashboard .wd-subtab > div:hover {
  background: var(--bg-secondary);
  border-radius: 6px;
  padding-left: 4px;
}

@media (max-width: 768px) {
  #wd-sector-heat {
    grid-template-columns: repeat(auto-fill, minmax(75px, 1fr));
  }
  #wd-panel-plans > div {
    grid-template-columns: 1fr;
  }
}
