/* APX Dataroom — design-system tokens & shared styles */
@font-face { font-family: "Source Serif 4"; font-weight: 200 900; font-display: swap;
  src: url("/static/assets/SourceSerif4-Variable.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 100 900; font-display: swap;
  src: url("/static/assets/Inter-Variable.woff2") format("woff2"); }

:root {
  --ink:#1a1a1a; --charcoal:#333; --gray:#ccc; --mist:#e6e6e6; --white:#fff;
  --positive:#1f7a4d; --negative:#b03a2e;
  --serif:"Source Serif 4",Georgia,serif; --sans:"Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
}
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:var(--sans); color:var(--ink); background:var(--white); line-height:1.5; }
a { color:inherit; }

.eyebrow { font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--charcoal); }
.eyebrow.on-dark { color:var(--gray); }

/* ---------- dark gate pages ---------- */
.gate { min-height:100vh; background:var(--ink) url("/static/assets/bg-cover.png") center/cover no-repeat;
  display:flex; flex-direction:column; }
.gate-header { padding:36px 48px; }
.gate-header img { height:30px; display:block; }
.gate-main { flex:1; display:flex; align-items:center; padding:0 48px 64px; }
.gate-card { max-width:520px; }
.gate-card h1 { font-family:var(--serif); font-weight:700; font-size:44px; color:var(--white);
  line-height:1.15; margin:14px 0 12px; }
.gate-card p.lede { color:var(--gray); font-size:15px; margin-bottom:28px; }
.gate-form { display:flex; gap:0; max-width:460px; }
.gate-form input { flex:1; padding:13px 16px; font:inherit; font-size:15px; border:1px solid #555;
  border-right:none; background:rgba(255,255,255,.04); color:var(--white); border-radius:2px 0 0 2px; outline:none; }
.gate-form input::placeholder { color:#777; }
.gate-form input:focus { border-color:var(--gray); }
.gate-form button { padding:13px 22px; font:inherit; font-size:14px; font-weight:600; letter-spacing:.04em;
  background:var(--white); color:var(--ink); border:1px solid var(--white); border-radius:0 2px 2px 0; cursor:pointer; }
.gate-form button:hover { background:var(--mist); }
.gate-note { margin-top:14px; font-size:12.5px; color:#8a8a8a; }
.gate-error { margin-top:14px; font-size:13.5px; color:#e08a80; }
.gate-footer { padding:24px 48px; border-top:1px solid #2c2c2c; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:#666; }

/* ---------- light app pages ---------- */
.app-header { display:flex; align-items:center; justify-content:space-between;
  padding:20px 48px; border-bottom:1px solid var(--mist); }
.app-header img { height:22px; display:block; }
.app-header .who { font-size:13px; color:var(--charcoal); display:flex; align-items:center; gap:16px; }
.app-header form { display:inline; }
.app-header button { font:inherit; font-size:12.5px; border:1px solid var(--gray); background:var(--white);
  padding:6px 14px; border-radius:2px; cursor:pointer; color:var(--charcoal); }
.app-header button:hover { border-color:var(--ink); color:var(--ink); }
.wrap { max-width:1080px; margin:0 auto; padding:48px; }
.wrap h1 { font-family:var(--serif); font-size:34px; font-weight:700; margin:6px 0 6px; }
.wrap p.sub { color:var(--charcoal); font-size:14.5px; margin-bottom:36px; }

.doc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.doc-card { border:1px solid var(--gray); border-radius:2px; padding:26px 26px 22px; background:var(--white);
  text-decoration:none; display:block; transition:border-color .15s ease; }
.doc-card:hover { border-color:var(--ink); }
.doc-card .doc-kicker { font-size:10.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:#999; margin-bottom:10px; }
.doc-card h2 { font-family:var(--serif); font-size:19px; font-weight:700; line-height:1.3; margin-bottom:14px; }
.doc-card .doc-meta { font-size:12.5px; color:var(--charcoal); border-top:1px solid var(--mist); padding-top:12px; }
.notice { margin-top:36px; padding-top:16px; border-top:1px solid var(--mist); font-size:12px; color:#888; }

/* ---------- viewer ---------- */
.viewer-body { background:#111; min-height:100vh; display:flex; flex-direction:column; user-select:none; }
.viewer-top { display:flex; align-items:center; justify-content:space-between; padding:14px 24px;
  background:var(--ink); border-bottom:1px solid #2c2c2c; }
.viewer-top .left { display:flex; align-items:center; gap:18px; min-width:0; }
.viewer-top img { height:18px; display:block; }
.viewer-top .doc-title { font-size:13.5px; color:var(--gray); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; max-width:46vw; }
.viewer-top .right { display:flex; align-items:center; gap:14px; }
.viewer-top .counter { font-size:12.5px; color:#999; letter-spacing:.08em; font-variant-numeric:tabular-nums; }
.viewer-top a.back { font-size:12.5px; color:#999; text-decoration:none; border:1px solid #444;
  padding:5px 12px; border-radius:2px; }
.viewer-top a.back:hover { color:var(--white); border-color:#777; }
.stage { flex:1; position:relative; display:flex; align-items:center; justify-content:center; padding:22px; }
.stage img.page { max-width:100%; max-height:calc(100vh - 120px); box-shadow:0 12px 32px rgba(0,0,0,.5);
  background:var(--white); -webkit-user-drag:none; user-drag:none; }
.nav-btn { position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:999px;
  border:1px solid #444; background:rgba(26,26,26,.85); color:#bbb; font-size:19px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:all .12s ease; }
.nav-btn:hover { color:var(--white); border-color:#888; }
.nav-btn[disabled] { opacity:.25; cursor:default; }
.nav-btn.prev { left:20px; } .nav-btn.next { right:20px; }
.watermark { position:absolute; inset:0; pointer-events:none; display:flex; align-items:flex-end;
  justify-content:center; padding-bottom:30px; }
.watermark span { font-size:11px; letter-spacing:.14em; color:rgba(255,255,255,.4);
  background:rgba(17,17,17,.55); padding:4px 14px; border-radius:2px; }

/* ---------- admin ---------- */
table.data { width:100%; border-collapse:collapse; font-size:13.5px; margin-bottom:44px; }
table.data th { text-align:left; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--charcoal); border-bottom:1.5px solid var(--ink); padding:8px 10px 6px; }
table.data td { border-bottom:1px solid var(--mist); padding:9px 10px; }
table.data tr:nth-child(even) td { background:#f7f7f7; }
.pill { display:inline-block; font-size:11px; font-weight:600; padding:2px 10px; border-radius:999px;
  border:1px solid; }
.pill.new { color:var(--positive); border-color:var(--positive); }

@media (max-width:640px) {
  .gate-header,.gate-main,.gate-footer,.app-header,.wrap { padding-left:22px; padding-right:22px; }
  .gate-card h1 { font-size:32px; }
  .gate-form { flex-direction:column; }
  .gate-form input { border-right:1px solid #555; border-radius:2px; }
  .gate-form button { border-radius:2px; margin-top:10px; }
}
