/* AP Unified Site Layer v20260702
   A single visual contract for Ararat Petrosyan public pages and atlas interfaces.
   This layer is intentionally additive: it normalizes color, typography, panels,
   buttons, links, map popups and sidebar spacing without replacing map logic. */
:root {
  color-scheme: dark;
  --ap-bg: #080b0c;
  --ap-bg-deep: #030505;
  --ap-panel: rgba(17, 22, 23, 0.94);
  --ap-panel-2: rgba(24, 30, 31, 0.92);
  --ap-panel-soft: rgba(255, 255, 255, 0.045);
  --ap-ink: #f7efe2;
  --ap-muted: #c7d0d2;
  --ap-dim: #8b979c;
  --ap-line: rgba(247, 239, 226, 0.14);
  --ap-line-strong: rgba(232, 191, 97, 0.38);
  --ap-gold: #e8bf61;
  --ap-gold-soft: rgba(232, 191, 97, 0.16);
  --ap-cyan: #62d8e8;
  --ap-blue: #7bb8ff;
  --ap-red: #ef6f61;
  --ap-rose: #e86d88;
  --ap-green: #7bc88a;
  --ap-orange: #f59e0b;
  --ap-violet: #b8a2ff;
  --ap-font-ui: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ap-font-display: Georgia, "Times New Roman", serif;
  --ap-radius: 0px;
  --ap-shadow: 0 20px 70px rgba(0, 0, 0, 0.38);
}
html { background: var(--ap-bg-deep); }
body {
  background: radial-gradient(circle at 15% 0%, rgba(232, 191, 97, .08), transparent 30rem), var(--ap-bg-deep);
  color: var(--ap-ink);
  font-family: var(--ap-font-ui);
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-underline-offset: 0.18em; }
a:hover { color: var(--ap-gold); }
::selection { background: rgba(232, 191, 97, .32); color: var(--ap-ink); }

/* Global brand/navigation normalization */
.dashboard-topbar,
.conflict-topbar,
.site-header,
.header,
.ap-topbar {
  background: rgba(5, 7, 7, 0.94) !important;
  border-bottom: 1px solid var(--ap-line) !important;
  color: var(--ap-ink) !important;
  backdrop-filter: blur(14px);
}
.dashboard-brand,
.ww1-brand,
.ww2-brand,
.brand,
.ap-brand {
  color: var(--ap-ink) !important;
  letter-spacing: .01em;
}
.dashboard-brand span,
.ww1-brand span,
.ww2-brand span,
.brand span,
.ap-brand span {
  border-color: var(--ap-line-strong) !important;
  color: var(--ap-gold) !important;
}
nav a,
.dashboard-topbar nav a,
.conflict-topbar nav a {
  color: var(--ap-muted) !important;
}
nav a:hover,
.dashboard-topbar nav a:hover,
.conflict-topbar nav a:hover {
  color: var(--ap-gold) !important;
}

/* Atlas side panels */
.dashboard-side,
.conflict-side,
.ww1-side,
.ww2-side,
.side,
.right,
.ww1-right,
.ww2-right {
  background: linear-gradient(180deg, rgba(232,191,97,.055), transparent 24rem), var(--ap-panel) !important;
  border-color: var(--ap-line) !important;
  color: var(--ap-ink) !important;
}
.head,
.panel,
.ww1-head,
.ww2-head,
.selected-panel,
.ledger {
  border-color: var(--ap-line) !important;
}
.eyebrow,
.source-card strong,
.kpis span,
.ww1-kpis span,
.ww2-kpis span,
.selected-grid span,
.fact span,
.table-heading span {
  color: var(--ap-gold) !important;
  letter-spacing: .12em;
}
h1, h2, h3,
.side h1,
.right h2,
.ww1-side h1,
.ww2-side h1,
.selected-panel h2 {
  color: var(--ap-ink) !important;
  font-family: var(--ap-font-display) !important;
  letter-spacing: -0.035em;
}
p, .mode-note, .selected-note, .source-card span,
.dashboard-date, .legend, .ww1-legend, .ww2-legend {
  color: var(--ap-muted) !important;
}

/* Cards, KPIs and controls */
.source-card,
.kpis article,
.ww1-kpis article,
.ww2-kpis article,
.selected-grid article,
.fact,
.era-card,
.provenance-card,
.conflict-focus-card,
.ledger-card,
.country-table-wrap,
.ap-source-note {
  background: var(--ap-panel-soft) !important;
  border: 1px solid var(--ap-line) !important;
  border-radius: var(--ap-radius) !important;
}
.source-card:hover,
.ledger-card:hover {
  border-color: var(--ap-line-strong) !important;
}
button,
.button,
.play-btn,
.filter button,
.ww1-filter button,
.ww2-filter button,
.gis-filter-panel button,
.download-links a,
.source-actions a,
.source-actions button,
.link-list a,
.navline a {
  background: rgba(255,255,255,.045) !important;
  border: 1px solid var(--ap-line) !important;
  color: var(--ap-muted) !important;
  border-radius: var(--ap-radius) !important;
}
button:hover,
.button:hover,
.filter button:hover,
.ww1-filter button:hover,
.ww2-filter button:hover,
.gis-filter-panel button:hover,
.link-list a:hover {
  border-color: var(--ap-line-strong) !important;
  color: var(--ap-ink) !important;
}
button.active,
.filter button.active,
.ww1-filter button.active,
.ww2-filter button.active,
.gis-filter-panel button.active,
.play-btn.active,
.button.primary {
  background: var(--ap-gold-soft) !important;
  border-color: var(--ap-gold) !important;
  color: var(--ap-ink) !important;
}
input,
select,
textarea,
.search,
.ww1-tools input,
.ww2-tools input {
  background: rgba(3,5,5,.88) !important;
  border: 1px solid var(--ap-line) !important;
  color: var(--ap-ink) !important;
  border-radius: var(--ap-radius) !important;
}
input:focus,
select:focus,
textarea:focus {
  outline: 1px solid var(--ap-gold);
  border-color: var(--ap-gold) !important;
}

/* Map chrome and popups */
.leaflet-container,
.dashboard-map,
.ww1-map,
.ww2-map,
.map,
.conflict-systems-map {
  background: #090d0f !important;
}
.leaflet-control-zoom a {
  border-radius: 0 !important;
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: #111718 !important;
  color: var(--ap-ink) !important;
  border: 1px solid var(--ap-line) !important;
  box-shadow: var(--ap-shadow) !important;
}
.leaflet-popup-content { color: var(--ap-ink) !important; }
.atlas-popup,
.ww-popup,
.conflict-popup,
.popup {
  color: var(--ap-ink) !important;
}
.atlas-popup h3,
.popup strong,
.ww-popup strong {
  color: var(--ap-ink) !important;
}
.atlas-popup__eyebrow,
.popup-meta,
.popup .period,
.record-badge,
.atlas-popup__actions a,
.popup-actions a {
  color: var(--ap-gold) !important;
}
.atlas-popup__grid div,
.popup .facts div {
  background: rgba(255,255,255,.035) !important;
  border-color: rgba(247,239,226,.11) !important;
}
.atlas-popup__grid dt,
.popup .facts span {
  color: var(--ap-dim) !important;
}
.atlas-popup__source,
.atlas-popup__note {
  border-color: var(--ap-line) !important;
  background: rgba(232,191,97,.06) !important;
}
.legend,
.ww1-legend,
.ww2-legend,
.map-timeline,
.boundary-key,
.scene-card,
.atlas-loading-overlay {
  background: rgba(5, 7, 7, 0.82) !important;
  border: 1px solid var(--ap-line) !important;
  backdrop-filter: blur(16px);
  box-shadow: var(--ap-shadow);
}
.ap-map-credit,
.ap-map-credit a {
  color: var(--ap-gold) !important;
}

/* Tables */
table,
.country-table,
.conflict-table {
  color: var(--ap-ink) !important;
}
th,
td {
  border-color: rgba(247,239,226,.1) !important;
}
tr:hover {
  background: rgba(255,255,255,.045) !important;
}

/* Page-level content outside map apps */
main:not(.ww1-shell):not(.ww2-shell):not(.wh-shell):not(.covid-arcgis-shell):not(.conflict-systems-shell),
.page-shell,
.content-shell,
.prose {
  color: var(--ap-ink);
}
.prose p,
.prose li,
article p,
article li {
  color: var(--ap-muted);
}
.prose a,
article a {
  color: var(--ap-gold);
}

@media (max-width: 760px) {
  :root { --ap-shadow: 0 14px 40px rgba(0,0,0,.34); }
  .dashboard-side,
  .ww1-side,
  .ww2-side,
  .side,
  .right,
  .ww1-right,
  .ww2-right { background: var(--ap-panel) !important; }
}

/* Final atlas typography safety rail for pages that do not load the professor UI. */
body:not(.home) main h1,
body:not(.home) .hero h1,
body:not(.home) .atlas-hero h1,
body:not(.home) .room-hero h1,
body:not(.home) .page-hero h1{
  font-size:clamp(2.15rem,4.8vw,5.1rem)!important;
  line-height:.92!important;
  letter-spacing:-.05em!important;
}
body:not(.home) main h2,
body:not(.home) .section-heading h2,
body:not(.home) .room-section h2,
body:not(.home) .page-section h2{
  font-size:clamp(1.55rem,3vw,3.15rem)!important;
  line-height:.96!important;
  letter-spacing:-.035em!important;
}
body:not(.home) aside h1,
body:not(.home) aside h2,
body:not(.home) .left h1,
body:not(.home) .right h2,
body:not(.home) .hud h1,
body:not(.home) .hud h2{
  font-size:clamp(1.35rem,2.3vw,2.45rem)!important;
  line-height:.98!important;
  letter-spacing:-.025em!important;
}
@media(max-width:760px){
  body:not(.home) main h1,body:not(.home) .hero h1,body:not(.home) .atlas-hero h1,body:not(.home) .page-hero h1{font-size:clamp(2rem,10vw,3.4rem)!important}
  body:not(.home) main h2,body:not(.home) .section-heading h2{font-size:clamp(1.45rem,7vw,2.45rem)!important}
}


/* Compact homepage entry for the lightweight live atlas. */
.ap-live-pulse-entry{width:min(1180px,calc(100% - 2rem));margin:clamp(1.4rem,3vw,2.8rem) auto;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;border:1px solid rgba(240,199,99,.28);background:linear-gradient(135deg,rgba(240,199,99,.1),rgba(8,14,11,.88));padding:clamp(1rem,2vw,1.45rem);box-shadow:0 22px 80px rgba(0,0,0,.32)}
.ap-live-pulse-entry h2{margin:0;color:#fff7e6;font-family:Georgia,'Times New Roman',serif!important;font-size:clamp(2rem,4vw,4.2rem)!important;line-height:.9!important;letter-spacing:-.05em!important}
.ap-live-pulse-entry p:not(.eyebrow){max-width:760px;margin:.45rem 0 0;color:#dce9df;font:1rem/1.55 Arial,sans-serif}
.ap-live-pulse-entry a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.82rem 1rem;border:1px solid rgba(240,199,99,.36);background:linear-gradient(180deg,#f0c763,#c9964a);color:#10140f;text-decoration:none;font:950 .8rem/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:760px){.ap-live-pulse-entry{grid-template-columns:1fr}.ap-live-pulse-entry a{width:max-content}}

/* Editorial non-map visual system. */
.ap-visual-library,.ap-visual-split{width:min(1180px,calc(100% - 2rem));margin:clamp(2rem,5vw,5rem) auto;border:1px solid rgba(240,199,99,.22);background:linear-gradient(135deg,rgba(240,199,99,.08),rgba(255,255,255,.025));box-shadow:0 24px 80px rgba(0,0,0,.28);overflow:hidden}
.ap-visual-library{padding:clamp(1rem,2.4vw,1.6rem)}.ap-visual-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ap-visual-head h2,.ap-visual-split h2{margin:0;color:#fff7e6;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,4vw,4.2rem);line-height:.9;letter-spacing:-.05em}.ap-visual-head p,.ap-visual-split p{color:#dce9df;font:1rem/1.58 Arial,sans-serif}.ap-visual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.ap-visual-card{position:relative;min-height:310px;margin:0;overflow:hidden;border:1px solid rgba(240,199,99,.18);background:#070b09}.ap-visual-card img,.ap-visual-split figure img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.95) contrast(1.06)}.ap-visual-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem;background:linear-gradient(180deg,transparent,rgba(5,8,7,.92));color:#fff7e6}.ap-visual-card b{display:block;margin-bottom:.2rem;color:#f0c763;font:900 .72rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em}.ap-visual-card span{display:block;font:900 1.1rem/1.15 Georgia,'Times New Roman',serif}.ap-visual-source{margin:.85rem 0 0;color:#9fb7ae!important;font:12px/1.45 Arial,sans-serif!important}.ap-visual-source a{color:#f0c763}.ap-visual-split{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch}.ap-visual-split figure{margin:0;min-height:390px}.ap-visual-split .copy{padding:clamp(1.2rem,3vw,2.4rem);display:flex;flex-direction:column;justify-content:center}.ap-visual-mini{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.ap-visual-mini img{width:100%;height:150px;object-fit:cover;border:1px solid rgba(240,199,99,.18)}@media(max-width:900px){.ap-visual-grid{grid-template-columns:1fr 1fr}.ap-visual-split{grid-template-columns:1fr}.ap-visual-split figure{min-height:300px}}@media(max-width:560px){.ap-visual-grid{grid-template-columns:1fr}.ap-visual-head{display:block}.ap-visual-card{min-height:260px}}


/* Floating visitor message widget. */
.ap-contact-widget{position:fixed;right:18px;bottom:18px;z-index:99999;font-family:Arial,sans-serif}.ap-contact-fab{border:1px solid rgba(240,199,99,.42);background:linear-gradient(180deg,#f0c763,#c9964a);color:#10140f;border-radius:999px;padding:.9rem 1.05rem;font:950 .78rem/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 18px 55px rgba(0,0,0,.38);cursor:pointer}.ap-contact-panel{position:absolute;right:0;bottom:58px;width:min(360px,calc(100vw - 2rem));padding:0;border:1px solid rgba(240,199,99,.3);background:linear-gradient(180deg,rgba(7,11,9,.98),rgba(7,11,9,.92));box-shadow:0 26px 90px rgba(0,0,0,.52);opacity:0;transform:translateY(10px);pointer-events:none;transition:.18s ease;color:#fff7e6}.ap-contact-widget.open .ap-contact-panel{opacity:1;transform:translateY(0);pointer-events:auto}.ap-contact-panel header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid rgba(240,199,99,.18)}.ap-contact-panel header strong{font:850 1.1rem Georgia,'Times New Roman',serif}.ap-contact-panel header button{border:0;background:transparent;color:#f0c763;font:900 1rem Arial;cursor:pointer}.ap-contact-panel form{display:grid;gap:.75rem;padding:1rem}.ap-contact-panel label{display:grid;gap:.32rem;color:#cfe0d8;font:800 .75rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}.ap-contact-panel input,.ap-contact-panel textarea{width:100%;border:1px solid rgba(240,199,99,.2);background:rgba(255,255,255,.045);color:#fff7e6;padding:.72rem;border-radius:0;font:14px/1.35 Arial,sans-serif}.ap-contact-panel textarea{resize:vertical}.ap-contact-panel form button[type=submit]{border:1px solid rgba(240,199,99,.36);background:linear-gradient(180deg,#f0c763,#c9964a);color:#10140f;padding:.82rem;font:950 .78rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.ap-contact-status{min-height:18px;margin:0;color:#f0c763;font:12px/1.4 Arial,sans-serif}.ap-contact-honey{position:absolute!important;left:-9999px!important;opacity:0!important}@media(max-width:560px){.ap-contact-widget{right:12px;bottom:12px}.ap-contact-panel{width:calc(100vw - 1.5rem)}}

/* Final audit responsive guard: keeps restored atlas/index pages usable without changing desktop art direction. */
@media (max-width: 980px) {
  .site-header,
  .dashboard-topbar,
  .conflict-topbar,
  .ap-topbar {
    position: sticky;
    top: 0;
    z-index: 9000;
    min-height: 56px;
    padding: 0.7rem 1rem !important;
  }
  .site-header nav,
  .dashboard-topbar nav,
  .conflict-topbar nav,
  .ap-topbar nav {
    gap: 0.7rem !important;
    overflow-x: auto;
    white-space: nowrap;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }
  main,
  .page-shell,
  .archive-shell,
  .system-shell {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden;
  }
  .map-lab-hero,
  .atlas-hero,
  .hero,
  .ap-professor-hero,
  .ap-visual-split {
    grid-template-columns: 1fr !important;
    width: min(100% - 1.5rem, 980px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .map-lab-hero h1,
  .atlas-hero h1,
  .hero h1,
  .ap-professor-hero h1 {
    font-size: clamp(2.4rem, 13vw, 4.8rem) !important;
    line-height: 0.94 !important;
    overflow-wrap: anywhere;
  }
  .large-map-panel,
  .ap-orbit-panel,
  .ap-live-board {
    min-height: 260px !important;
    width: 100% !important;
  }
  .project-seo-strip,
  .atlas-command,
  .map-command-center,
  .ap-professor-section,
  .ap-source-ledger,
  .ap-front-map-command {
    width: 100% !important;
    max-width: 100% !important;
    left: auto !important;
    right: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  .ap-professor-ledger,
  .ap-showcase-stats,
  .ap-ledger-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .ap-map-priority,
  .map-grid,
  .card-grid,
  .project-grid,
  .atlas-grid,
  .ap-visual-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }
  .ap-map-card,
  .source-card,
  .project-card,
  .atlas-card {
    min-width: 0 !important;
    max-width: 100% !important;
  }
}
@media (max-width: 620px) {
  .site-header,
  .dashboard-topbar,
  .conflict-topbar,
  .ap-topbar {
    align-items: flex-start !important;
    gap: 0.65rem !important;
    flex-direction: column !important;
  }
  .ap-professor-ledger,
  .ap-showcase-stats,
  .ap-ledger-grid,
  .kpis,
  .stats {
    grid-template-columns: 1fr !important;
  }
  .section-heading h2,
  .ap-source-ledger h2,
  .ap-live-atlas-feature h2 {
    font-size: clamp(2rem, 12vw, 3.4rem) !important;
    line-height: 0.98 !important;
  }
  .ap-live-iframe-shell {
    height: 720px !important;
    min-height: 620px !important;
  }
}

/* Final presentation mobile hardening. */
@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: hidden !important; }
  .site-header { position: sticky !important; top: 0 !important; z-index: 9999 !important; }
  .site-header .brand strong { max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .site-nav, .site-header nav { width: 100%; overflow-x: auto; padding-bottom: 0.25rem; }
  .hero.atlas-hero { min-height: auto !important; padding-top: 3.5rem !important; padding-bottom: 2.5rem !important; gap: 2rem !important; }
  .hero-copy h1, .hero.atlas-hero h1 { font-size: clamp(3.2rem, 18vw, 5.4rem) !important; line-height: 0.88 !important; }
  .hero-title { font-size: clamp(1.45rem, 7vw, 2.35rem) !important; line-height: 1.12 !important; }
  .hero-summary { font-size: 1rem !important; line-height: 1.55 !important; }
  .hero-actions { display: grid !important; grid-template-columns: 1fr !important; width: 100% !important; }
  .hero-actions .button { width: 100% !important; justify-content: center !important; }
  .hero-visual, .research-map { min-height: 360px !important; width: 100% !important; }
  .ap-live-atlas-feature { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
  .ap-live-direct-head { gap: 1rem !important; }
  .ap-live-direct-head h2 { font-size: clamp(3rem, 15vw, 4.8rem) !important; line-height: 0.9 !important; }
  .ap-live-actions { display: grid !important; grid-template-columns: 1fr !important; width: 100% !important; }
  .ap-live-actions a { width: 100% !important; }
  .ap-live-iframe-shell { height: 880px !important; min-height: 780px !important; }
  .ap-front-map-command .section-heading { width: 100% !important; max-width: 100% !important; }
  .ap-front-map-command .section-heading h2 { font-size: clamp(2.15rem, 11vw, 3.8rem) !important; line-height: 0.98 !important; }
  .ap-map-priority { gap: 0.9rem !important; }
  .ap-map-card { min-height: auto !important; border-radius: 12px !important; }
  .ap-map-card .map-cover { height: 148px !important; }
  .ap-source-ledger-inner { padding: 1rem !important; }
  .ap-source-ledger h2 { font-size: clamp(2.3rem, 12vw, 4rem) !important; line-height: 0.95 !important; overflow-wrap: anywhere; }
  .ap-ledger-cell b { font-size: clamp(2rem, 11vw, 3.1rem) !important; overflow-wrap: anywhere; }
  .ap-ledger-grid, .ap-showcase-stats { grid-template-columns: 1fr !important; }
  .ap-showcase-actions, .contact-actions { display: grid !important; grid-template-columns: 1fr !important; }
  .ap-showcase-actions .button, .contact-actions .button { width: 100% !important; justify-content: center !important; }
  footer { display: grid !important; gap: 0.6rem !important; padding-left: 1rem !important; padding-right: 1rem !important; }
}
