:root { --ink:#15231f; --muted:#60706a; --paper:#f5f7f2; --card:#fff; --line:#d9e0dc; --accent:#16634a; --soft:#e4f2eb; --warn:#9a5b11; --bad:#a33b34; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.5 system-ui,sans-serif; }
a { color:var(--accent); text-underline-offset:3px; }
.skip-link { position:absolute; left:-9999px; }.skip-link:focus { left:1rem; top:1rem; background:white; padding:.5rem; z-index:2; }
.site-header { min-height:68px; padding:0 max(1rem,calc((100% - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:white; }
.brand { color:var(--ink); font-weight:800; text-decoration:none; letter-spacing:-.03em; }
nav { display:flex; gap:1.25rem; align-items:center; } nav form { display:inline; }.link-button { background:none;border:0;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer; }
.container { width:min(1180px,calc(100% - 2rem)); margin:0 auto; padding:3rem 0 5rem; }
.page-heading { display:flex; justify-content:space-between; margin-bottom:1.5rem; }.page-heading h1 { font-size:clamp(2rem,5vw,3.5rem);line-height:1.05;letter-spacing:-.05em;margin:.1rem 0 .7rem; }.page-heading p { color:var(--muted);max-width:700px; }
.eyebrow { color:var(--accent)!important;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800; }
.filters { display:flex; gap:1rem; align-items:end; flex-wrap:wrap; padding:1rem; background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:2.5rem; }.filters div { display:grid;gap:.25rem; }.filters label,label { font-size:.8rem;font-weight:700; } input,select { min-height:42px;padding:.5rem;border:1px solid #aab7b1;border-radius:6px;background:white;font:inherit; }
.button { min-height:42px;padding:.55rem 1rem;border:0;border-radius:6px;background:var(--accent);color:white;font-weight:700;cursor:pointer; }
.section-heading { display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-top:2.5rem; }.section-heading h2 { margin-bottom:.7rem; }.section-heading p { color:var(--muted); }
.funnel { display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem; }.funnel-step,.kpi-card,aside { background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem; }.funnel-step { position:relative;min-height:245px; }.funnel-step:not(:last-child)::after { content:"→";position:absolute;right:-.7rem;top:45%;z-index:1;color:var(--accent);font-weight:900; }.step-number { color:var(--muted);font-size:.75rem; }.funnel h3,.card-grid h3 { font-size:.95rem;min-height:44px; }.metric-value { font-size:1.8rem;font-weight:800;letter-spacing:-.04em;margin:.5rem 0; }.unavailable { color:var(--muted);font-size:.9rem; }.conversion { font-size:.75rem;color:var(--accent);font-weight:700; }.stage-status { color:var(--muted);font-size:.74rem;min-height:54px; }
.status { display:inline-block;padding:.2rem .45rem;border-radius:99px;background:#edf0ee;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em; }.fresh,.succeeded { background:var(--soft);color:var(--accent); }.stale,.partial { background:#fff0d8;color:var(--warn); }.failed { background:#fde8e6;color:var(--bad); }
.card-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1rem; }.two-column { display:grid;grid-template-columns:2fr 1fr;gap:1.5rem;margin-top:2rem; }.two-column .section-heading { margin-top:0; }.readiness { list-style:none;padding:0; }.readiness li { display:flex;justify-content:space-between;padding:.65rem 0;border-bottom:1px solid var(--line); }
.subsection-heading { margin:2rem 0 .25rem; }.section-note { color:var(--muted);margin-top:0; }.lifecycle-grid { grid-template-columns:repeat(5,1fr); }
.table-wrap { overflow-x:auto;background:white;border:1px solid var(--line);border-radius:12px; } table { width:100%;border-collapse:collapse;font-size:.85rem; } th,td { padding:.75rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top; } th { color:var(--muted);text-transform:uppercase;font-size:.7rem;letter-spacing:.06em; }
.empty-state { padding:2rem;background:white;border:1px dashed #aab7b1;border-radius:12px;color:var(--muted); }.metadata { display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem; }.metadata span { background:var(--soft);padding:.35rem .6rem;border-radius:6px;font-size:.8rem; }
.login-card { max-width:420px;margin:5vh auto;background:white;border:1px solid var(--line);border-radius:16px;padding:2rem; }.login-card form { display:grid;gap:.6rem; }.login-card .button { margin-top:.7rem; }.notice.error { color:var(--bad); }
@media (max-width:900px) { .funnel { grid-template-columns:repeat(3,1fr); }.card-grid,.lifecycle-grid { grid-template-columns:repeat(2,1fr); }.two-column { grid-template-columns:1fr; } }
@media (max-width:600px) { .site-header { align-items:flex-start;padding:1rem; }.site-header nav { flex-wrap:wrap;justify-content:flex-end;gap:.6rem; }.container { padding-top:2rem; }.funnel,.card-grid { grid-template-columns:1fr; }.funnel-step:not(:last-child)::after { content:"↓";right:1rem;top:auto;bottom:-1rem; }.filters>* { width:100%; }.filters input,.filters select { width:100%; } }
