/* Shared across all pages — assumes each page's own <style> block defines the
   --bg/--panel/--ink/--muted/--line/--steel/--steel-dark/--amber-*/--green-*/--mono/--sans/--cond
   tokens already established in the process-diagram / SLD pages. This file only adds
   site-wide chrome (nav, draft notice, cards) on top of those tokens. */

.site-nav{
  max-width:1300px; margin:0 auto 18px; display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px; font-family:var(--mono); font-size:12px; padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.site-nav .brand{
  display:flex; align-items:center; gap:9px;
  color:var(--steel-dark); font-weight:700; text-decoration:none; letter-spacing:1px; text-transform:uppercase;
}
.site-nav .brand img{ height:22px; width:auto; display:block; }
.site-nav .links{ display:flex; gap:16px; flex-wrap:wrap; }
.site-nav .links a{
  color:var(--muted); text-decoration:none; text-transform:uppercase; letter-spacing:0.5px;
  padding:4px 2px; border-bottom:2px solid transparent;
}
.site-nav .links a:hover{ color:var(--ink); }
.site-nav .links a.active{ color:var(--steel-dark); border-bottom-color:var(--steel-dark); }

.draft-note{
  max-width:1300px; margin:0 auto 18px; font-family:var(--mono); font-size:11.5px; color:var(--amber-text);
  background:var(--amber-fill); border:1px solid var(--amber-border); border-radius:4px; padding:8px 12px;
}

.card-grid{
  max-width:1300px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
}
.card{
  display:block; text-decoration:none; background:var(--panel); border:1.5px solid var(--line);
  border-radius:6px; padding:16px 18px; box-shadow:3px 3px 0 rgba(27,42,56,0.08); color:var(--ink);
}
.card:hover{ box-shadow:5px 5px 0 rgba(27,42,56,0.14); }
.card .card-eyebrow{
  font-family:var(--mono); font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--steel-dark);
}
.card h3{ font-family:var(--cond); font-weight:700; text-transform:uppercase; font-size:19px; margin:4px 0 8px; }
.card p{ font-size:13px; color:var(--muted); margin:0; line-height:1.5; }

.lookup-table{ width:100%; border-collapse:collapse; background:var(--panel); font-size:12.5px; box-shadow:3px 3px 0 rgba(27,42,56,0.08); }
.lookup-table th{ background:#dfe7ee; color:var(--steel-dark); font-family:var(--mono); text-transform:uppercase; font-size:10.5px; letter-spacing:0.5px; text-align:left; padding:8px 12px; border-bottom:2px solid var(--line); }
.lookup-table td{ padding:9px 12px; border-bottom:1px solid #d7dee5; vertical-align:top; line-height:1.4; }
.lookup-table tr:nth-child(even) td{ background:rgba(0,0,0,0.02); }
.lookup-table a{ color:var(--steel-dark); font-weight:600; text-decoration:none; }
.lookup-table a:hover{ text-decoration:underline; }

/* ============ password gate ============ */
@keyframes gateIn{ from{ opacity:0; transform:translateY(6px) scale(0.98); } to{ opacity:1; transform:translateY(0) scale(1); } }

#gate-overlay{
  position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(ellipse 900px 600px at 50% 38%, color-mix(in srgb, var(--steel) 10%, transparent), transparent),
    linear-gradient(var(--bg), var(--bg)),
    repeating-linear-gradient(0deg, color-mix(in srgb, var(--line) 5%, transparent) 0 1px, transparent 1px 28px),
    repeating-linear-gradient(90deg, color-mix(in srgb, var(--line) 5%, transparent) 0 1px, transparent 1px 28px);
}
#gate-overlay .gate-box{
  background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:34px 34px 28px;
  box-shadow:0 18px 40px rgba(27,42,56,0.16), 0 2px 0 rgba(27,42,56,0.04);
  width:340px; max-width:90vw; text-align:center;
  animation:gateIn 0.35s cubic-bezier(.2,.8,.2,1);
}
#gate-overlay .gate-logos{
  display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:18px;
}
#gate-overlay .gate-logos img{ height:38px; width:auto; }
#gate-overlay .gate-logos .divider{ width:1px; height:26px; background:var(--line); opacity:0.4; }
#gate-overlay .gate-lock{
  width:34px; height:34px; margin:0 auto 12px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; background:color-mix(in srgb, var(--steel) 12%, transparent); color:var(--steel-dark);
}
#gate-overlay .gate-eyebrow{
  font-family:var(--mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--muted);
}
#gate-overlay h2{
  font-family:var(--cond); font-weight:700; text-transform:uppercase; font-size:20px; letter-spacing:0.5px;
  margin:4px 0 20px; color:var(--ink);
}
#gate-overlay input[type="password"]{
  width:100%; font-family:var(--mono); font-size:13.5px; padding:11px 13px; border:1.5px solid var(--line);
  border-radius:6px; background:var(--bg); color:var(--ink); margin-bottom:12px; text-align:center;
  letter-spacing:1px; transition:border-color 0.15s, box-shadow 0.15s;
}
#gate-overlay input[type="password"]:focus{
  outline:none; border-color:var(--steel); box-shadow:0 0 0 3px color-mix(in srgb, var(--steel) 20%, transparent);
}
#gate-overlay button{
  width:100%; font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:1px;
  padding:11px 10px; border:none; border-radius:6px; background:var(--steel-dark);
  color:#fff; cursor:pointer; transition:background 0.15s, transform 0.1s;
}
#gate-overlay button:hover{ background:var(--steel); }
#gate-overlay button:active{ transform:scale(0.98); }
#gate-overlay .gate-error{ display:none; color:var(--amber-text); background:var(--amber-fill); border:1px solid var(--amber-border);
  border-radius:6px; padding:7px 10px; font-size:11.5px; margin-bottom:12px; }
#gate-overlay .gate-footnote{
  margin-top:18px; font-family:var(--mono); font-size:9.5px; letter-spacing:0.3px; color:var(--muted); opacity:0.75;
}

/* ============ header/footer logos ============ */
.brand-logos{
  display:flex; align-items:center; gap:14px; max-width:1300px; margin:0 auto 4px;
}
.brand-logos img{ height:30px; width:auto; }
.brand-logos .divider{ width:1px; height:22px; background:var(--line); opacity:0.35; }
.brand-logos .prepared-by{ font-family:var(--mono); font-size:10px; color:var(--muted); letter-spacing:0.5px; }

/* ============ confidentiality + copyright ============ */
.legal-footer{
  max-width:1300px; margin:16px auto 0; padding-top:12px; border-top:1px solid color-mix(in srgb, var(--line) 25%, transparent);
  font-family:var(--mono); font-size:10.5px; color:var(--muted); line-height:1.6;
}
.legal-footer .confidential{ text-transform:uppercase; letter-spacing:0.5px; color:var(--amber-text); font-weight:600; }

/* ============ hidden nav items ============ */
.site-nav .links a.hidden-tab{ display:none; }

/* ============ in-context comment button ============ */
.comment-btn{
  border:none; background:rgba(255,255,255,0.22); color:inherit; border-radius:3px; cursor:pointer;
  font-size:11px; line-height:1; padding:3px 6px; margin-left:auto; opacity:0.85; transition:opacity 0.15s, background 0.15s;
}
.comment-btn:hover{ opacity:1; background:rgba(255,255,255,0.38); }

/* ============ comment dialog ============ */
.comment-dialog-overlay{
  display:none; position:fixed; inset:0; z-index:2000; align-items:center; justify-content:center;
  background:rgba(10,16,22,0.45); backdrop-filter:blur(1.5px);
}
.comment-dialog{
  background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:24px 26px;
  width:380px; max-width:90vw; box-shadow:0 18px 40px rgba(27,42,56,0.2); position:relative;
  animation:gateIn 0.2s cubic-bezier(.2,.8,.2,1);
}
.comment-dialog .cd-close{
  position:absolute; top:12px; right:14px; border:none; background:none; font-size:20px; line-height:1;
  color:var(--muted); cursor:pointer; padding:2px 4px;
}
.comment-dialog .cd-close:hover{ color:var(--ink); }
.comment-dialog .cd-target{
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.5px; text-transform:uppercase; color:var(--steel-dark);
  background:color-mix(in srgb, var(--steel) 10%, transparent); border-radius:4px; padding:5px 9px; display:inline-block;
  margin-bottom:12px;
}
.comment-dialog h3{ font-family:var(--cond); text-transform:uppercase; font-size:17px; margin:0 0 14px; color:var(--ink); }
.comment-dialog label{ display:block; font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.5px; color:var(--muted); margin-bottom:4px; }
.comment-dialog input[type="text"], .comment-dialog textarea{
  width:100%; font-family:var(--sans); font-size:13px; padding:8px 10px; border:1.5px solid var(--line);
  border-radius:5px; background:var(--bg); color:var(--ink); margin-bottom:12px; box-sizing:border-box;
}
.comment-dialog textarea{ min-height:90px; resize:vertical; }
.comment-dialog button.cd-submit{
  width:100%; font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:0.5px;
  padding:10px; border:none; border-radius:6px; background:var(--steel-dark); color:#fff; cursor:pointer;
}
.comment-dialog button.cd-submit:hover{ background:var(--steel); }
.comment-dialog button.cd-submit:disabled{ opacity:0.6; cursor:default; }
.comment-dialog .cd-status{ margin-top:10px; font-size:11.5px; display:none; }
.comment-dialog .cd-status.ok{ display:block; color:var(--green-text); }
.comment-dialog .cd-status.err{ display:block; color:var(--amber-text); }
