:root { --blue:#0c234b; --red:#ab0520; --gold:#d29a25; --ink:#18243a; --muted:#63708a; --line:#dbe1eb; --surface:#fff; --green:#147a4c; }
* { box-sizing:border-box; }
body { background:linear-gradient(135deg,#eef3fa 0%,#f9fafc 48%,#edf1f6 100%); color:var(--ink); font-family:Arial,Helvetica,sans-serif; margin:0; }
.dashboard-shell { margin:0 auto; max-width:1240px; padding:32px 24px 48px; }
.dashboard-header { align-items:center; background:var(--surface); border:1px solid var(--line); border-top:6px solid var(--blue); display:grid; gap:26px; grid-template-columns:230px 1fr auto; padding:24px 28px; }
.brand { display:block; }.brand img { display:block; max-width:220px; width:100%; }h1,h2,p { margin-top:0; }h1,h2 { color:var(--blue); line-height:1.15; }h1 { font-size:clamp(1.65rem,3vw,2.35rem); margin-bottom:8px; }h2 { font-size:1.2rem; margin-bottom:0; }.header-copy>p:last-child { color:var(--muted); line-height:1.5; margin-bottom:0; max-width:630px; }.eyebrow { color:var(--green); font-size:.72rem; font-weight:800; letter-spacing:.13em; margin-bottom:8px; text-transform:uppercase; }.generated { border-left:1px solid var(--line); color:var(--muted); font-size:.85rem; line-height:1.55; margin:0; padding-left:24px; white-space:nowrap; }.generated strong { color:var(--blue); }
.notice { background:#e8f0fb; border-left:4px solid var(--blue); color:#263d62; line-height:1.55; margin:22px 0; padding:16px 20px; }.empty-state,.panel { background:var(--surface); border:1px solid var(--line); }.empty-state { padding:42px; text-align:center; }.empty-state p { color:var(--muted); margin:14px auto 0; max-width:600px; }.section-block { margin-top:26px; }.section-heading { align-items:end; display:flex; justify-content:space-between; margin-bottom:15px; }.section-heading.compact { align-items:start; margin-bottom:20px; }.section-heading .eyebrow { margin-bottom:6px; }.muted { color:var(--muted); line-height:1.55; }.section-heading .muted { font-size:.85rem; margin:0; }
.metric-grid { display:grid; gap:16px; grid-template-columns:repeat(4,1fr); }.metric-card { background:var(--surface); border:1px solid var(--line); border-top:5px solid var(--blue); min-height:150px; padding:20px; }.metric-card:nth-child(2) { border-top-color:var(--gold); }.metric-card.profile { border-top-color:var(--green); }.metric-card.action { border-top-color:var(--blue); }.metric-card p { color:var(--muted); font-size:.82rem; font-weight:bold; margin-bottom:16px; text-transform:uppercase; }.metric-card strong { color:var(--blue); display:block; font-size:2.25rem; line-height:1; margin-bottom:10px; }.metric-card span { color:var(--muted); font-size:.84rem; }.metric-card.search { min-height:174px; }.metric-source { border-top:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:2px 10px; padding:8px 0; }.metric-source:first-of-type { border-top:0; padding-top:0; }.metric-source b { color:var(--blue); font-size:.82rem; line-height:1.35; }.metric-source strong { font-size:1.45rem; margin:0; text-align:right; }.metric-source span { font-size:.72rem; grid-column:1/-1; line-height:1.25; }.positive { color:var(--green)!important; }.negative { color:var(--red)!important; }.neutral { color:var(--muted)!important; }
.two-column { display:grid; gap:20px; grid-template-columns:1.25fr .95fr; }.two-column > *,.decision-grid > *,.panel,.decision-card,.table-wrap { min-width:0; }.panel { padding:24px; }.table-wrap { max-width:100%; overflow-x:auto; }table { border-collapse:collapse; font-size:.92rem; width:100%; }th { color:var(--blue); font-size:.74rem; letter-spacing:.06em; text-align:left; text-transform:uppercase; }td,th { border-bottom:1px solid var(--line); padding:12px 10px; }td:not(:first-child),th:not(:first-child) { text-align:right; white-space:nowrap; }td:first-child { font-weight:bold; }.pill { background:#edf2f8; border:1px solid #d9e2ee; border-radius:999px; color:#405471; font-size:.72rem; font-weight:bold; padding:7px 10px; white-space:nowrap; }.panel-message { font-size:.93rem; margin-bottom:0; }.action-plan { background:linear-gradient(150deg,#0c234b 0%,#102f62 100%); border-color:var(--blue); color:#fff; }.action-plan h2 { color:#fff; }.action-plan .eyebrow { color:#f7c65c; }.action-plan ol { line-height:1.6; margin:0; padding-left:22px; }.action-plan code { overflow-wrap:anywhere; }.action-plan li+li { margin-top:15px; }
.conversion-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:20px; }.conversion-grid div { border-right:1px solid var(--line); padding:4px 14px; text-align:center; }.conversion-grid div:first-child { padding-left:0; }.conversion-grid div:last-child { border-right:0; padding-right:0; }.conversion-grid strong { color:var(--blue); display:block; font-size:1.8rem; }.conversion-grid span { color:var(--muted); font-size:.76rem; line-height:1.35; }.status-list { margin:0; }.status-list div { border-bottom:1px solid var(--line); padding:12px 0; }.status-list div:first-child { padding-top:0; }.status-list div:last-child { border-bottom:0; padding-bottom:0; }.status-list dt { color:var(--blue); font-size:.82rem; font-weight:800; margin-bottom:4px; }.status-list dd { color:var(--muted); font-size:.9rem; line-height:1.45; margin:0; }.status-list dd span { font-size:.78rem; margin-left:6px; }
.source-row { display:grid; gap:16px; grid-template-columns:repeat(3,1fr); }.source-row article { background:rgba(255,255,255,.72); border:1px solid var(--line); border-bottom:3px solid var(--blue); padding:22px; }.source-row article:nth-child(2) { border-bottom-color:var(--gold); }.source-row article:nth-child(3) { border-bottom-color:var(--green); }.source-row h2 { font-size:1.25rem; margin-bottom:10px; }.source-row p:last-child { color:var(--muted); font-size:.9rem; line-height:1.55; margin-bottom:0; }footer { border-top:1px solid var(--line); color:var(--muted); display:flex; font-size:.78rem; justify-content:space-between; margin-top:30px; padding-top:18px; }footer a { color:#405471; font-weight:700; }footer a:hover { color:var(--blue); }.decision-grid { display:grid; gap:16px; grid-template-columns:repeat(3,1fr); }.decision-card { background:var(--surface); border:1px solid var(--line); border-top:5px solid var(--blue); padding:22px; }.two-column > .decision-card { min-height:100%; }.decision-card .eyebrow { color:var(--blue); }.decision-card p:not(.eyebrow) { color:var(--muted); font-size:.98rem; font-weight:400; line-height:1.6; margin-bottom:14px; }.decision-card p:last-child { margin-bottom:0; }.decision-card a { color:#405471; font-weight:700; text-decoration:underline; text-underline-offset:3px; }.decision-card a:hover { color:var(--blue); }.inline-label { color:var(--blue); font-weight:700; }.do-card,.track-card { border-top-color:var(--blue); }.watch-card { border-top-color:var(--gold); }.stable-card { border-top-color:var(--green); }.watch-card .eyebrow { color:#a87716; }.stable-card .eyebrow { color:var(--green); }
@media (max-width:920px) { .dashboard-header { grid-template-columns:180px 1fr; }.generated { border-left:0; border-top:1px solid var(--line); grid-column:1/-1; padding:15px 0 0; }.metric-grid { grid-template-columns:repeat(2,1fr); }.two-column,.decision-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .dashboard-shell { padding:14px 12px 30px; }.dashboard-header { display:block; padding:20px; }.brand img { max-width:190px; }.header-copy { margin-top:18px; }.generated { margin-top:18px; }.section-heading { align-items:start; flex-direction:column; gap:10px; }.metric-grid,.source-row { grid-template-columns:1fr; }.metric-card { min-height:126px; }.conversion-grid { grid-template-columns:repeat(2,1fr); row-gap:16px; }.conversion-grid div:nth-child(odd) { padding-left:0; }.conversion-grid div:nth-child(even) { border-right:0; padding-right:0; }.conversion-grid div:nth-child(n+3) { border-top:1px solid var(--line); padding-top:16px; }.conversion-grid div:last-child { border-right:0; grid-column:1/-1; padding-right:0; }footer { flex-direction:column; gap:6px; } }
.dashboard-nav { margin:14px 0 0!important; }.dashboard-nav a { color:#405471; font-size:.9rem; font-weight:700; text-decoration:underline; text-underline-offset:3px; }.dashboard-nav a:hover { color:var(--blue); }.demand-legend { display:grid; gap:20px; grid-template-columns:1.35fr .8fr; }.demand-legend .panel { min-height:210px; }.demand-explainer { display:grid; gap:14px; grid-template-columns:repeat(3,1fr); }.demand-explainer p { border-left:3px solid var(--blue); color:var(--muted); font-size:.9rem; line-height:1.55; margin:0; padding-left:12px; }.demand-explainer p:nth-child(2) { border-left-color:var(--gold); }.demand-explainer p:nth-child(3) { border-left-color:var(--green); }.demand-explainer strong { color:var(--blue); display:block; margin-bottom:5px; }.demand-empty code { background:#f0f4f8; display:block; font-size:.86rem; margin:12px auto 0; max-width:760px; overflow-wrap:anywhere; padding:12px; text-align:left; }.demand-table td:last-child { min-width:260px; text-align:left; white-space:normal; }.demand-table td:last-child a { color:#405471; font-weight:700; text-decoration:underline; text-underline-offset:3px; }.demand-table td:last-child a:hover { color:var(--blue); }.demand-table td:last-child span { color:var(--muted); font-size:.82rem; line-height:1.4; }.demand-actions { margin-bottom:8px; }@media (max-width:920px) { .demand-legend,.demand-explainer { grid-template-columns:1fr; }.demand-legend .panel { min-height:0; } }
.compact-notice { margin:14px 0 0; }.source-health { background:var(--surface); border:1px solid var(--line); padding:22px 24px; }.health-grid,.demand-summary { display:grid; gap:12px; grid-template-columns:repeat(4,1fr); }.health-grid article,.demand-summary article { background:#f7f9fc; border:1px solid var(--line); display:grid; gap:5px; padding:14px; }.health-grid strong { color:var(--blue); font-size:.84rem; }.health-grid small { color:var(--muted); }.health-status { font-size:.75rem; font-weight:800; text-transform:uppercase; }.demand-summary article { background:var(--surface); text-align:center; }.demand-summary strong { color:var(--blue); font-size:1.7rem; }.demand-summary span { color:var(--muted); font-size:.78rem; }.demand-table td:nth-child(4) { text-align:left; white-space:normal; }.demand-table td:nth-child(4) span { color:var(--muted); font-size:.8rem; line-height:1.45; }
.history-details { margin-top:16px; }.history-details summary { color:#405471; cursor:pointer; font-size:.9rem; font-weight:700; padding:10px 0; }.history-details .table-wrap { border-top:1px solid var(--line); padding-top:8px; }.decision-card code { overflow-wrap:anywhere; white-space:normal; word-break:break-word; }
.internal-navigation { border-top:1px solid var(--line); margin-top:18px; padding-top:16px; }.internal-navigation-heading { align-items:baseline; display:flex; gap:10px; justify-content:space-between; }.internal-navigation-heading strong { color:var(--blue); font-size:.85rem; }.internal-navigation-heading span { color:var(--muted); font-size:.75rem; }.internal-navigation .muted { font-size:.86rem; margin:10px 0 0; }.route-list { list-style:none; margin:9px 0 0; padding:0; }.route-list li { align-items:center; display:grid; gap:7px; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto; padding:6px 0; }.route-list code { color:#405471; font-size:.76rem; overflow-wrap:anywhere; }.route-list span { color:var(--gold); font-weight:800; }.route-list strong { color:var(--blue); font-size:.84rem; text-align:right; }
.weekly-engagement { border-top:1px solid var(--line); margin-top:18px; padding-top:16px; }.weekly-engagement-heading { align-items:baseline; display:flex; gap:10px; justify-content:space-between; }.weekly-engagement-heading strong { color:var(--blue); font-size:.85rem; }.weekly-engagement-heading span { color:var(--muted); font-size:.75rem; }.weekly-engagement-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:10px; }.weekly-engagement-grid article { border-right:1px solid var(--line); padding:3px 10px; text-align:center; }.weekly-engagement-grid article:first-child { padding-left:0; }.weekly-engagement-grid article:last-child { border-right:0; padding-right:0; }.weekly-engagement-grid strong { color:var(--blue); display:block; font-size:1.35rem; }.weekly-engagement-grid span,.weekly-engagement-grid small { display:block; font-size:.72rem; line-height:1.35; }.weekly-engagement-grid span { color:var(--muted); }.weekly-engagement-grid small { margin-top:3px; }.weekly-contact-breakdown { color:var(--muted); font-size:.78rem; line-height:1.5; margin:12px 0 0; }.weekly-contact-breakdown strong { color:#405471; }
.internal-navigation-details { margin-top:8px; }.internal-navigation-details summary { color:#405471; cursor:pointer; font-size:.8rem; font-weight:700; padding:6px 0; }.internal-navigation-details .route-list { border-top:1px solid var(--line); padding-top:5px; }
@media (max-width:920px) { .health-grid,.demand-summary { grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px) { .health-grid,.demand-summary { grid-template-columns:1fr; }.source-health { padding:18px; }.source-health .pill { max-width:100%; white-space:normal; } }
@media (max-width:420px) { .internal-navigation-heading { align-items:start; flex-direction:column; gap:3px; }.route-list li { gap:5px; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto; }.route-list code { font-size:.71rem; } }
@media (max-width:420px) { .weekly-engagement-heading { align-items:start; flex-direction:column; gap:3px; }.weekly-engagement-grid { grid-template-columns:1fr; gap:9px; }.weekly-engagement-grid article,.weekly-engagement-grid article:first-child,.weekly-engagement-grid article:last-child { border-right:0; border-bottom:1px solid var(--line); padding:0 0 9px; }.weekly-engagement-grid article:last-child { border-bottom:0; padding-bottom:0; } }
.two-column > * { min-width:0; }.table-wrap { max-width:100%; }
.vendor-research-shell { max-width:1100px; }.vendor-access-panel { margin:28px auto 0; max-width:620px; }.vendor-access-panel h2,.vendor-search-panel h2,.vendor-rules h2 { margin-bottom:10px; }.vendor-unlock-form,.vendor-search-form { align-items:end; display:grid; gap:14px; grid-template-columns:minmax(0,1fr) auto; margin-top:20px; }.vendor-search-form { grid-template-columns:minmax(0,1.55fr) minmax(190px,.75fr) auto; }.vendor-unlock-form label,.vendor-search-form label { color:var(--blue); display:block; font-size:.8rem; font-weight:800; margin:0 0 6px; }.vendor-unlock-form input,.vendor-search-form input,.vendor-search-form select { background:#fff; border:1px solid #aebaca; border-radius:2px; color:var(--ink); font:inherit; min-height:43px; padding:10px 12px; width:100%; }.vendor-unlock-form button,.vendor-search-form button { background:var(--blue); border:1px solid var(--blue); border-radius:2px; color:#fff; cursor:pointer; font:inherit; font-weight:800; min-height:43px; padding:10px 17px; white-space:nowrap; }.vendor-unlock-form button:hover,.vendor-search-form button:hover { background:#17386d; }.vendor-search-note { color:var(--muted); font-size:.82rem; line-height:1.5; margin:15px 0 0; }.vendor-error { background:#fff2f3!important; border-left-color:var(--red)!important; color:#7f172a!important; }.vendor-access-panel .vendor-error { margin:16px 0 0; padding:11px 13px; }.vendor-results { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); }.vendor-card { background:var(--surface); border:1px solid var(--line); border-top:4px solid var(--blue); display:flex; flex-direction:column; padding:20px; }.vendor-card h3 { color:var(--blue); font-size:1.08rem; line-height:1.3; margin:0 0 7px; }.vendor-address { color:var(--muted); font-size:.88rem; line-height:1.45; margin:0 0 15px; }.vendor-details { border-top:1px solid var(--line); margin:0; }.vendor-details div { border-bottom:1px solid var(--line); display:grid; gap:6px; grid-template-columns:126px minmax(0,1fr); padding:10px 0; }.vendor-details dt { color:#405471; font-size:.78rem; font-weight:800; }.vendor-details dd { color:var(--ink); font-size:.87rem; line-height:1.4; margin:0; overflow-wrap:anywhere; }.vendor-details dd span { color:var(--muted); font-size:.78rem; }.vendor-details a,.vendor-card-footer a { color:#405471; font-weight:700; text-decoration:underline; text-underline-offset:3px; }.vendor-details a:hover,.vendor-card-footer a:hover { color:var(--blue); }.vendor-card-footer { align-items:center; display:flex; gap:12px; justify-content:space-between; margin-top:auto; padding-top:14px; }.google-maps-attribution { color:#5e5e5e; font-family:Roboto,Arial,Helvetica,sans-serif; font-size:12px; font-style:normal; font-weight:400; letter-spacing:normal; white-space:nowrap; }.vendor-disclosure { background:#f7f9fc; border-left:3px solid var(--gold); color:var(--muted); font-size:.84rem; line-height:1.55; margin:18px 0 0; padding:12px 14px; }.vendor-disclosure strong { color:#405471; }.vendor-rules { margin-top:24px; }.vendor-rules p { margin-bottom:0; }
@media (max-width:720px) { .vendor-search-form { grid-template-columns:1fr; }.vendor-search-form button { width:100%; }.vendor-results { grid-template-columns:1fr; } }
@media (max-width:480px) { .vendor-unlock-form { grid-template-columns:1fr; }.vendor-unlock-form button { width:100%; }.vendor-details div { grid-template-columns:1fr; gap:3px; }.vendor-card-footer { align-items:start; flex-direction:column; } }
.legal-shell { max-width:950px; }.legal-copy { line-height:1.65; }.legal-copy h2 { border-top:1px solid var(--line); font-size:1.15rem; margin:26px 0 9px; padding-top:22px; }.legal-copy h2:first-child { border-top:0; margin-top:0; padding-top:0; }.legal-copy p { color:#405471; margin-bottom:16px; }.legal-copy p:last-child { margin-bottom:0; }.legal-copy a { color:#405471; font-weight:700; text-decoration:underline; text-underline-offset:3px; }.legal-copy a:hover { color:var(--blue); }
.vendor-preview-notice { margin-bottom:0; }
.vendor-more-form { align-items:center; display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }.vendor-more-form button { background:#fff; border:1px solid var(--blue); border-radius:2px; color:var(--blue); cursor:pointer; font:inherit; font-weight:800; min-height:41px; padding:9px 15px; }.vendor-more-form button:hover { background:#edf2f8; }.vendor-more-form span { color:var(--muted); font-size:.8rem; line-height:1.4; }
