/**
 * ContractScope — market.css
 * Page-specific styles for market.html
 * Global tokens and components: shared.css
 * Header/nav styles: header.js (injected)
 */

/* ── Header ──────────────────────────────────────────────────────────────── */
header { position:sticky; top:0; z-index:100; background:rgba(8,13,26,0.97); backdrop-filter:blur(16px); border-bottom:1px solid rgba(255,255,255,0.06); padding:0 40px; display:flex; align-items:center; justify-content:space-between; height:64px; }
.logo img { height:38px; width:auto; object-fit:contain; max-width:200px; }
nav { display:flex; align-items:center; gap:2px; }
.nav-link.active { color:var(--cyan); background:rgba(0,153,204,0.1); border-color:rgba(0,153,204,0.2); }
.nav-link.active svg { opacity:1; }
.nav-link.gold { color:var(--text3); }
.nav-link.gold:hover { color:var(--gold); background:rgba(245,158,11,0.06); }
.user-dropdown.open .user-dropdown-menu { display:block; }
.user-dropdown-item.danger:hover { background:rgba(255,77,106,0.08); color:var(--danger); }

.hero { position:relative; padding:36px 40px 16px; overflow:hidden; background:transparent; }
.hero-inner { max-width:1200px; margin:0 auto; }
.hero-top { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:20px; }
.hero-title { font-family:'DM Serif Display',serif; font-size:52px; font-weight:400; color:var(--text); line-height:1.1; margin-bottom:10px; }
.hero-sub { font-size:16px; color:var(--text2); line-height:1.5; }
.period-picker svg { color:var(--cyan); flex-shrink:0; }

/* ── Search ──────────────────────────────────────────────────────────────── */
.search-wrap { position:relative; margin-bottom:16px; }
.search-wrap svg { position:absolute; left:18px; top:50%; transform:translateY(-50%); color:var(--text3); pointer-events:none; }
.search-input { width:100%; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:12px; color:var(--text); font-family:'DM Sans',sans-serif; font-size:15px; padding:16px 20px 16px 50px; outline:none; transition:all 0.2s; }
.search-input::placeholder { color:var(--text3); }
.search-input:focus { border-color:rgba(0,153,204,0.4); background:rgba(0,153,204,0.04); box-shadow:0 0 0 3px rgba(0,153,204,0.08); }
.search-dropdown { display:none; position:absolute; top:calc(100% + 6px); left:0; right:0; background:#0d1e35; border:1px solid rgba(255,255,255,0.1); border-radius:12px; z-index:200; max-height:280px; overflow-y:auto; box-shadow:0 16px 48px rgba(0,0,0,0.5); }

/* ── Filters ─────────────────────────────────────────────────────────────── */
.filter-groups { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:8px; }
.filter-group-label { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--text2); margin-bottom:12px; letter-spacing:0.3px; }
.filter-group-label svg { color:var(--cyan); }
.filter-pills { display:flex; gap:8px; flex-wrap:wrap; }
.filter-pill { display:inline-flex; align-items:center; gap:7px; padding:9px 18px; font-size:13px; font-weight:500; border-radius:8px; border:1px solid rgba(255,255,255,0.1); background:rgba(255,255,255,0.03); color:var(--text2); cursor:pointer; transition:all 0.2s; font-family:'DM Sans',sans-serif; }
.filter-pill:hover { border-color:rgba(255,255,255,0.2); color:var(--text); background:rgba(255,255,255,0.06); }
.filter-pill.active { background:var(--cyan); border-color:var(--cyan); color:#fff; }
.filter-pill.active svg { color:#fff; opacity:1; }
.filter-pill svg { opacity:0.7; flex-shrink:0; }

/* ── Dashboard & Charts Layout ────────────────────────────────────────────── */
.charts-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:24px; }
.chart-card .chart-wrap { height:280px; position:relative; width:100%; }
.chart-card.wide .chart-wrap { height:250px; }
.period-badge { display:none; }
.filter-bar { display:none; }
.period-select-old { display:none; }
.view-toggle { display:none; }
.period-select-legacy { background:#0a1628; border:1px solid var(--border); color:var(--text); padding:5px 10px; font-family:'DM Sans',sans-serif; font-size:12px; outline:none; border-radius:4px; }
.kpi-delta { font-size:11px; margin-top:4px; }
.kpi-delta.up { color:var(--success); }
.kpi-delta.down { color:var(--danger); }
.chart-card.wide { grid-column:1/-1; }
.chart-wrap.tall { height:260px; }
.agency-select { background:rgba(8,13,26,0.6); border:1px solid var(--border); color:var(--text); padding:4px 8px; font-family:'DM Sans',sans-serif; font-size:11px; outline:none; border-radius:4px; max-width:280px; margin-bottom:10px; }

/* ── Agency table ────────────────────────────────────────────────────────── */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:12px; }
th { font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--text2); font-weight:500; padding:8px 10px; border-bottom:1px solid rgba(255,255,255,0.06); text-align:left; cursor:pointer; white-space:nowrap; user-select:none; }
th:hover { color:var(--text2); }
th.sorted { color:var(--cyan); }
td { padding:8px 10px; border-bottom:1px solid rgba(255,255,255,0.04); color:var(--text2); white-space:nowrap; }
td.agency-name { color:var(--text); font-weight:500; cursor:pointer; }
td.agency-name:hover { color:var(--cyan); }
td.value { text-align:right; color:var(--text); }
td.count { text-align:center; }
td.top-contractor { color:var(--cyan); font-size:11px; max-width:160px; overflow:hidden; text-overflow:ellipsis; }
tr:hover td { background:rgba(0,153,204,0.03); }
.tipo-dot { display:inline-block; width:6px; height:6px; border-radius:50%; margin-right:4px; vertical-align:middle; }

/* ── Modal ───────────────────────────────────────────────────────────────── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.75); z-index:2000; display:none; align-items:center; justify-content:center; backdrop-filter:blur(4px); padding:20px; }
.modal-overlay.show { display:flex; }
.modal-box { background:#0a1628; border:1px solid var(--border2); border-radius:4px; width:100%; max-width:780px; max-height:85vh; overflow-y:auto; }
.modal-header { display:flex; align-items:flex-start; justify-content:space-between; padding:20px 24px 16px; border-bottom:1px solid var(--border); position:sticky; top:0; background:#0a1628; z-index:1; }
.modal-title { font-family:'DM Serif Display',serif; font-size:18px; color:var(--text); margin-bottom:3px; }
.modal-sub { font-size:12px; color:var(--text3); }
.modal-close { background:none; border:none; color:var(--text2); font-size:20px; cursor:pointer; padding:0; line-height:1; }
.modal-body { padding:20px 24px 24px; }
.modal-section { margin-bottom:24px; }
.modal-section-title { font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--text3); margin-bottom:12px; }
.modal-chart-wrap { height:180px; position:relative; margin-bottom:8px; }
.type-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.type-card { background:var(--navy); border:1px solid var(--border); padding:12px; border-radius:4px; }
.type-card-label { font-size:10px; letter-spacing:1px; text-transform:uppercase; margin-bottom:6px; }
.type-card-value { font-size:18px; font-weight:700; margin-bottom:2px; }
.type-card-sub { font-size:11px; color:var(--text3); }

/* ── Access denied ───────────────────────────────────────────────────────── */
.access-denied { text-align:center; padding:80px 20px; color:var(--text3); }
.access-denied .icon { font-size:48px; margin-bottom:16px; }
.access-denied h2 { font-family:'DM Serif Display',serif; font-size:22px; color:var(--text); margin-bottom:10px; }
.access-denied p { font-size:14px; line-height:1.6; }

/* ── Misc ────────────────────────────────────────────────────────────────── */
select option { background:#0a1628; color:var(--text); }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width:768px) {
  header { padding:0 16px; }
  .hero { padding: 20px 14px 12px; }
  .hero-top { flex-direction: column; gap: 14px; }
  .hero-title { font-size: 32px !important; }
  .hero-sub { font-size: 14px; }
  .filter-groups { grid-template-columns: 1fr; gap: 14px; }
  .charts-grid { grid-template-columns: 1fr; }
  .type-cards { grid-template-columns: 1fr; }
  .search-input { font-size: 16px !important; padding: 14px 16px 14px 44px; }
  .modal-overlay { align-items: flex-end; padding: 0; }
  .modal-box { max-height: calc(100dvh - 30px); border-radius: 12px 12px 0 0; }
}
