:root {
    color-scheme: light;
    --ink: #162235;
    --muted: #5e6878;
    --line: #d7dde6;
    --soft: #f3f6f9;
    --brand: #4169e1;
    --brand-dark: #2448b8;
    --warning: #fff5d9;
    --warning-line: #d8aa32;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: #eef2f5; line-height: 1.5; }
a { color: var(--brand-dark); }
code { padding: .12rem .3rem; border-radius: .25rem; background: #e9edf2; }
.shell { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: 2rem 0 4rem; }
.shell.narrow { width: min(900px, calc(100% - 2rem)); }
.masthead { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.masthead h1 { margin: 0; font-size: clamp(2rem, 5vw, 3rem); letter-spacing: -.035em; }
.eyebrow { margin: 0 0 .35rem; color: var(--brand); font-weight: 800; font-size: .78rem; letter-spacing: .14em; }
.subtitle, .muted { color: var(--muted); }
.subtitle { margin: .25rem 0 0; font-size: 1.05rem; }
.panel { border: 1px solid var(--line); border-radius: .8rem; background: white; padding: 1.5rem; box-shadow: 0 10px 30px rgba(25, 43, 57, .06); }
.panel h2 { margin-top: 0; }
.panel.soft { background: var(--soft); box-shadow: none; }
.panel.warning { background: var(--warning); border-color: var(--warning-line); }
.login-grid, .two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.hero { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-start; margin-bottom: 1.25rem; }
.status-pill { border-radius: 999px; background: #d9f2e4; color: #12522c; padding: .45rem .8rem; font-weight: 800; }
.stacked-form { display: grid; gap: 1rem; }
.stacked-form label { display: grid; gap: .35rem; font-weight: 700; }
.stacked-form small { color: var(--muted); font-weight: 400; }
input, select, textarea { width: 100%; border: 1px solid #aeb8c6; border-radius: .4rem; padding: .72rem .8rem; color: var(--ink); background: white; font: inherit; }
input:focus, select:focus { outline: 3px solid rgba(65,105,225,.22); border-color: var(--brand); }
.button { display: inline-block; border: 1px solid var(--brand-dark); border-radius: .4rem; background: var(--brand-dark); color: white; padding: .65rem .9rem; font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; }
.button.secondary { background: white; color: var(--brand-dark); }
.button.danger { border-color: #9b261f; background: #9b261f; }
.button.small { padding: .42rem .62rem; font-size: .88rem; }
.logout-form { display: flex; align-items: center; gap: .75rem; }
.form-error { border-left: 4px solid #b42318; background: #fff1f0; padding: .7rem .8rem; }
.health-list { margin: 0; }
.health-list div { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--line); }
.health-list div:last-child { border-bottom: 0; }
.health-list dt { font-weight: 700; }
.health-list dd { margin: 0; color: var(--muted); text-align: right; }
.three-column { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.stacked-form.compact { gap: .7rem; }
.shell:has(> .app-nav) { width: 100%; max-width: none; padding: 2rem max(2rem,calc((100vw - 1660px)/2)) 4rem 286px; }
.shell:has(> .app-nav) > :not(.app-nav) { max-width: 1374px; margin-left: auto; margin-right: auto; }
.wide-shell:has(> .app-nav) > :not(.app-nav) { max-width: 1600px; }
.app-nav { position: fixed; inset: 0 auto 0 0; z-index: 20; display: flex; width: 258px; flex-direction: column; gap: 1.15rem; overflow-y: auto; border-right: 1px solid #18358f; background: var(--brand-dark); padding: 1.5rem 1rem; color: white; box-shadow: 8px 0 24px rgba(18,31,48,.12); }
.nav-brand { display: grid; gap: .05rem; border-bottom: 1px solid rgba(255,255,255,.2); padding: .15rem .65rem 1rem; }
.nav-brand strong { font-size: 1.18rem; letter-spacing: .02em; }
.nav-brand small { color: #dbe4ff; font-size: .72rem; }
.nav-group { display: grid; gap: .15rem; }
.nav-group > span { padding: 0 .65rem .25rem; color: #c4d1ff; font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.app-nav a { border-radius: .4rem; padding: .5rem .65rem; color: white; text-decoration: none; font-weight: 700; }
.app-nav a:hover, .app-nav a[aria-current="page"] { background: rgba(255,255,255,.14); box-shadow: inset 3px 0 0 #a9bcff; }
.app-nav .nav-subitem { padding-left: 1.5rem; color: #e2e8ff; font-size: .88rem; }
.app-nav .nav-primary-action { border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); }
.nav-account { display: grid; gap: .15rem; margin-top: auto; border-top: 1px solid rgba(255,255,255,.2); padding: 1rem .65rem 0; }
.nav-account > span { color: #c4d1ff; font-size: .7rem; text-transform: uppercase; }
.nav-account form { margin-top: .45rem; }
.nav-account button { width: 100%; border: 1px solid rgba(255,255,255,.45); border-radius: .35rem; background: transparent; padding: .45rem .6rem; color: white; font: inherit; font-weight: 750; cursor: pointer; }
.nav-account button:hover { background: rgba(255,255,255,.12); }
.notice { margin: 0 0 1rem; border: 1px solid #8ac6a3; border-radius: .5rem; background: #e8f7ee; padding: .8rem 1rem; }
.notice.warning { border-color: var(--warning-line); background: var(--warning); }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.status-pill.neutral, .mini-pill { background: #e7edf3; color: #344256; }
.mini-pill { display: inline-block; border-radius: 999px; padding: .2rem .48rem; font-size: .78rem; font-weight: 800; text-transform: capitalize; }
.status-pending_approval, .status-pending_email { background: #fff0c2; color: #654a00; }
.status-active { background: #d9f2e4; color: #12522c; }
.status-approved { background: #d9f2e4; color: #12522c; }
.status-pending { background: #fff0c2; color: #654a00; }
.status-suspended, .status-rejected, .status-disabled { background: #f8dedd; color: #7b201a; }
.table-panel { margin-top: 1.25rem; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: var(--soft); color: #344256; font-size: .86rem; }
.inline-action { display: grid; gap: .4rem; margin-bottom: .5rem; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.stat { display: grid; gap: .2rem; text-decoration: none; color: var(--ink); }
.stat strong { font-size: 1.8rem; }
.search-row { display: flex; align-items: end; gap: .65rem; margin: .75rem 0; }
.search-row .grow { flex: 1; }
.record-list { display: grid; margin-top: .75rem; }
.record-list > a, .record-list > div { display: grid; gap: .15rem; padding: .75rem .25rem; border-bottom: 1px solid var(--line); text-decoration: none; }
.record-list span { color: var(--muted); font-size: .9rem; }
.record-list.compact { margin-bottom: 1rem; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.check { width: auto; margin-right: .35rem; }
.record-columns { align-items: start; }
.pipeline-board { display: grid; grid-template-columns: repeat(4,minmax(220px,1fr)); gap: 1rem; overflow-x: auto; padding-bottom: .5rem; }
.pipeline-column { min-width: 220px; border-radius: .6rem; background: var(--soft); padding: .8rem; }
.pipeline-column h3 { margin: 0 0 .7rem; font-size: .95rem; }
.pipeline-column h3 small { color: var(--muted); }
.pipeline-card { display: grid; gap: .3rem; margin-bottom: .6rem; border: 1px solid var(--line); border-radius: .45rem; background: white; padding: .7rem; color: var(--ink); text-decoration: none; }
.pipeline-card span { color: var(--muted); font-size: .82rem; }
.stage-dot { display: inline-block; width: .7rem; height: .7rem; margin-right: .45rem; border-radius: 50%; }
.timeline { display: grid; gap: 1rem; }
.timeline article { border-left: 3px solid var(--brand); padding: .2rem 0 .7rem 1rem; }
.timeline article h3 { margin: .2rem 0; }
.timeline article p { margin: .45rem 0; }
.mapping-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.status-valid, .status-imported, .status-updated, .status-replied, .status-sent { background: #d9f2e4; color: #12522c; }
.status-duplicate, .status-queued, .status-in_progress { background: #fff0c2; color: #654a00; }
.status-error, .status-bounced, .status-opted_out, .status-skipped { background: #f8dedd; color: #7b201a; }
.status-review, .research-needs_review { background: #fff0c2; color: #654a00; }
.status-blocked, .research-no_route { background: #f8dedd; color: #7b201a; }
.status-preferred, .status-allowed, .research-ready_email, .research-ready_phone { background: #d9f2e4; color: #12522c; }
.research-web_only, .research-unresearched { background: #e7edf3; color: #344256; }
.enrichment-stats { grid-template-columns: repeat(5,minmax(0,1fr)); }
.message-preview { white-space: pre-wrap; overflow-wrap: anywhere; border: 1px solid var(--line); border-radius: .5rem; background: var(--soft); padding: 1rem; font: inherit; }
.wide-shell { max-width: 1700px; }
.pipeline-toolbar, .record-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.inline-form { display: flex; align-items: end; flex-wrap: wrap; gap: .65rem; }
.inline-form label, .form-grid label, .stage-config-row label { display: grid; gap: .3rem; font-weight: 700; }
.kanban-board { display: grid; grid-template-columns: repeat(10,minmax(260px,1fr)); gap: .8rem; overflow-x: auto; padding: .25rem 0 1rem; }
.kanban-column { min-width: 260px; border: 1px solid var(--line); border-radius: .65rem; background: #e8edf1; }
.kanban-column > header { display: flex; justify-content: space-between; align-items: center; border-top: 5px solid; border-radius: .65rem .65rem 0 0; padding: .75rem; }
.kanban-column h2 { margin: 0; font-size: 1rem; }
.kanban-column header span { border-radius: 999px; background: white; padding: .12rem .45rem; font-weight: 800; }
.kanban-dropzone { min-height: 220px; padding: .55rem; }
.kanban-column.drag-over { outline: 3px solid rgba(65,105,225,.45); background: #e6ebff; }
.prospect-card { margin-bottom: .55rem; border: 1px solid var(--line); border-left: 5px solid var(--brand); border-radius: .5rem; background: white; box-shadow: 0 2px 6px rgba(18,31,48,.06); cursor: grab; }
.prospect-card.stale { border-left-color: #d97706; }
.prospect-card.overdue { border-left-color: #b42318; background: #fff7f6; }
.prospect-card.dragging { opacity: .55; cursor: grabbing; }
.prospect-card-main { display: grid; gap: .28rem; padding: .7rem; color: var(--ink); text-decoration: none; }
.prospect-card span, .prospect-card small { color: var(--muted); }
.prospect-card em { font-size: .82rem; font-style: normal; color: var(--brand-dark); }
.prospect-focus { color: var(--brand-dark) !important; font-weight: 800; }
.prospect-card-actions { display: flex; align-items: stretch; justify-content: space-between; border-top: 1px solid var(--line); }
.prospect-card-actions form { display: flex; margin: 0; }
.prospect-advance { display: flex; flex: 1; align-items: center; justify-content: flex-end; gap: .5rem; padding: .5rem .7rem; color: var(--brand-dark); text-decoration: none; font-size: .78rem; font-weight: 800; }
.prospect-advance:hover { background: #eef1ff; }
.prospect-advance b, .prospect-back b { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--brand-dark); color: white; font-size: 1.15rem; }
.prospect-back { display: flex; align-items: center; gap: .35rem; border: 0; border-right: 1px solid var(--line); background: white; padding: .5rem .7rem; color: var(--brand-dark); font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.prospect-back:hover { background: #eef1f4; }
.prospect-back b { background: #526173; }
.contact-route-list a { overflow-wrap: anywhere; }
.copy-contact { border: 0; background: transparent; color: var(--brand-dark); padding: .1rem .25rem; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.inline-contact-form { margin: 1rem 0; border: 1px solid var(--line); border-radius: .55rem; background: var(--soft); padding: 1rem; }
.inline-contact-form[hidden] { display: none; }
.inline-contact-details { margin: 1rem 0; }
.inline-contact-details > summary { display: inline-flex; list-style: none; cursor: pointer; }
.inline-contact-details > summary::-webkit-details-marker { display: none; }
.inline-contact-details[open] > summary { margin-bottom: .25rem; }
.contact-person-options { display: grid; gap: .75rem; border: 1px solid var(--line); border-radius: .45rem; padding: .8rem; }
.compact-panel { margin-top: .5rem; }
.compact-panel summary { cursor: pointer; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin-top: 1rem; }
.span-2 { grid-column: 1/-1; }
.wizard-panel { max-width: 900px; margin-inline: auto; }
.wizard-progress { display: grid; grid-template-columns: repeat(3,1fr); gap: .4rem; margin-bottom: 1.5rem; }
.wizard-progress span { border-bottom: 4px solid var(--line); padding: .5rem; color: var(--muted); font-weight: 800; }
.wizard-progress .done { border-color: #15803d; color: #12522c; }
.wizard-progress .current { border-color: var(--brand); color: var(--brand-dark); }
.method-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.method-card { display: grid; gap: .35rem; min-height: 100px; border: 1px solid var(--line); border-radius: .55rem; padding: 1rem; color: var(--ink); text-decoration: none; }
.method-card:hover { border-color: var(--brand); background: var(--soft); }
.method-card span { color: var(--muted); overflow-wrap: anywhere; }
.button-row, .stage-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.stage-config-list { display: grid; }
.stage-config-row { display: grid; grid-template-columns: 20px 2fr 1fr .5fr auto; align-items: end; gap: .8rem; border-bottom: 1px solid var(--line); padding: .8rem 0; }
.stage-swatch { width: 16px; height: 42px; border-radius: .3rem; }
.guided-wizard-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(300px,.8fr); gap: 1.25rem; align-items: start; }
.guided-wizard-layout .wizard-panel { max-width: none; margin: 0; }
.playbook-panel { position: sticky; top: 1rem; }
.playbook-panel h2 { margin-top: .2rem; }
.playbook-panel h3 { margin: 1.1rem 0 .3rem; font-size: .95rem; }
.playbook-panel p { color: var(--muted); }
.guidance-flow { display: grid; justify-items: center; gap: .35rem; margin: 1.2rem 0; }
.guidance-flow > div { width: 100%; border: 1px solid var(--line); border-radius: .5rem; background: var(--soft); padding: .75rem; }
.guidance-flow small { display: block; margin-bottom: .2rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; font-weight: 800; }
.guidance-flow span { color: var(--brand); font-size: 1.2rem; font-weight: 900; }
.playbook-config-list { display: grid; gap: .8rem; margin-top: 1rem; }
.playbook-config { border: 1px solid var(--line); border-radius: .55rem; background: white; }
.playbook-config > summary { display: grid; grid-template-columns: 18px 1fr auto; align-items: center; gap: .7rem; cursor: pointer; padding: .85rem 1rem; }
.playbook-config > summary .stage-swatch { width: 14px; height: 32px; }
.playbook-config > summary span:last-child { color: var(--muted); font-size: .85rem; }
.playbook-config-body { display: grid; gap: 1rem; border-top: 1px solid var(--line); padding: 1rem; }
.playbook-form { border: 1px solid var(--line); border-radius: .5rem; background: var(--soft); padding: 1rem; }
.template-assignments { border-top: 1px solid var(--line); padding-top: .5rem; }
.assignment-row { display: grid; grid-template-columns: minmax(220px,1fr) auto auto auto; align-items: center; gap: .6rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.assignment-row input[type="number"] { width: 90px; }
.template-editor-list { display: grid; gap: .65rem; margin-top: 1rem; }
.template-editor { border: 1px solid var(--line); border-radius: .5rem; }
.template-editor summary { display: grid; gap: .2rem; cursor: pointer; padding: .8rem; }
.template-editor summary span { color: var(--muted); font-size: .85rem; }
.template-editor form { border-top: 1px solid var(--line); background: var(--soft); padding: 1rem; }
.template-loader { margin-bottom: 1rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--soft); padding: 1rem; }
.template-editor.archived { opacity: .82; }
.template-preview { border-top: 1px solid var(--line); padding: 1rem; }
.template-status-form { border-top: 0 !important; background: white !important; padding-top: 0 !important; }
.onboarding-form { display: grid; gap: 1.25rem; max-width: 1100px; margin-inline: auto; }
.onboarding-step { display: grid; gap: 1rem; }
.onboarding-step > header { display: grid; grid-template-columns: 48px 1fr; gap: .85rem; align-items: start; }
.onboarding-step > header > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--brand-dark); color: white; font-size: 1.2rem; font-weight: 900; }
.onboarding-step > header h2, .onboarding-step > header p { margin: 0; }
.onboarding-step > header p { color: var(--muted); }
.onboarding-step label { display: grid; gap: .35rem; font-weight: 700; }
.onboarding-step label small, .onboarding-step .choice-card span, .onboarding-step fieldset > small { color: var(--muted); font-weight: 400; }
.onboarding-step fieldset { display: grid; gap: .8rem; min-width: 0; border: 1px solid var(--line); border-radius: .55rem; padding: 1rem; }
.onboarding-step legend { padding: 0 .35rem; font-weight: 850; }
.choice-grid, .contact-route-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.choice-card { display: grid !important; grid-template-columns: auto 1fr; gap: .7rem !important; border: 1px solid var(--line); border-radius: .55rem; background: var(--soft); padding: .85rem; cursor: pointer; }
.choice-card > strong { display: grid; align-content: center; }
.choice-card > span { display: grid; gap: .15rem; }
.inline-choice { align-items: start; }
.onboarding-submit { display: flex; justify-content: flex-end; gap: .7rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.workflow-list { display: grid; gap: .65rem; padding-left: 1.4rem; }
.work-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.25rem; }
.work-hero h2, .work-hero p { margin-top: 0; }
.quick-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.work-stats { margin-bottom: 1.25rem; }
.work-stats .stat { border-top: 4px solid var(--brand); }
.work-stats .attention-overdue { border-top-color: #b42318; }
.work-stats .attention-stale { border-top-color: #d97706; }
.dashboard-columns { display: grid; grid-template-columns: minmax(0,2fr) minmax(300px,.8fr); gap: 1.25rem; align-items: start; }
.dashboard-side { display: grid; gap: 1.25rem; }
.work-list { display: grid; }
.work-list > a { display: grid; grid-template-columns: minmax(180px,.8fr) minmax(240px,1.4fr) auto; align-items: center; gap: 1rem; border-bottom: 1px solid var(--line); padding: .8rem 0; color: var(--ink); text-decoration: none; }
.work-list > a:hover { background: var(--soft); }
.work-list > a > span { display: grid; gap: .12rem; }
.work-list small { color: var(--muted); }
.workspace-tools { margin-top: 1.25rem; }
.workspace-tools summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; }
.workspace-tools summary span { color: var(--muted); }
.workspace-tools-grid { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(320px,1.3fr); gap: 1.25rem; border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1rem; }

@media (max-width: 720px) {
    .shell:has(> .app-nav), .wide-shell:has(> .app-nav) { width: min(100% - 1rem,1120px); padding: 1rem 0 3rem; }
    .shell:has(> .app-nav) > :not(.app-nav), .wide-shell:has(> .app-nav) > :not(.app-nav) { max-width: none; }
    .app-nav { position: static; width: 100%; max-height: none; margin: 0 0 1rem; border: 0; border-radius: .65rem; padding: 1rem; }
    .nav-brand { padding-bottom: .75rem; }
    .nav-group { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .nav-group > span { grid-column: 1/-1; padding-top: .3rem; }
    .nav-account { margin-top: 0; }
    .login-grid, .two-column, .three-column, .stat-grid, .field-grid, .mapping-grid, .form-grid, .method-grid, .guided-wizard-layout, .choice-grid, .contact-route-columns, .dashboard-columns, .workspace-tools-grid { grid-template-columns: 1fr; }
    .search-row { align-items: stretch; flex-direction: column; }
    .pipeline-board { grid-template-columns: repeat(8,minmax(220px,1fr)); }
    .masthead, .hero, .pipeline-toolbar { flex-direction: column; align-items: stretch; }
    .inline-form { display: grid; }
    .stage-config-row { grid-template-columns: 16px 1fr; }
    .stage-config-row label, .stage-config-row button { grid-column: 2; }
    .playbook-panel { position: static; }
    .assignment-row { grid-template-columns: 1fr; }
    .logout-form { width: 100%; justify-content: space-between; }
    .work-hero { align-items: stretch; flex-direction: column; }
    .quick-actions { justify-content: flex-start; }
    .work-list > a { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
