/* /org — AI-filled org workspace */

.ow-page-bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    background-color: #eef4f1;
    background-image:
        repeating-linear-gradient(
            0deg,
            transparent 0 23px,
            rgba(111, 82, 193, 0.07) 23px 24px
        ),
        repeating-linear-gradient(
            90deg,
            transparent 0 23px,
            rgba(111, 82, 193, 0.07) 23px 24px
        );
}
.ow-page-bg-map {
    position: absolute;
    inset: 2% 0 4%;
    width: 100%;
    height: 94%;
    color: #6f52c1;
    opacity: 0.28;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ow-page-bg-map svg {
    width: 118%;
    height: 100%;
    margin-left: 10%;
    display: block;
    flex: 0 0 auto;
}
.ow-page-bg-map .ow-county-outline { opacity: 0.7; }
.ow-page-bg-map .ow-geo-line { opacity: 0.45; }

.ow-page {
    --ow-coral: #FF6B6B;
    position: relative;
    z-index: 1;
    max-width: 76rem;
    margin: 0 auto;
    padding: 48px 2.5rem 64px;
    min-height: calc(100vh - var(--navbar-height) - var(--navbar-shadow-height, 0px));
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
    font-family: var(--main-font-family);
    color: var(--primary-dark);
}
.ow-page.has-results {
    justify-content: flex-start;
    padding-top: 64px;
    max-width: min(96vw, 1680px);
}
.ow-page.has-results[data-folder="needs"] {
    --accent: var(--uscb-purple);
    --light-accent: color-mix(in srgb, var(--uscb-purple) 28%, #fff);
}
.ow-page.has-results[data-folder="grants"] {
    --accent: var(--primary-dark);
    --light-accent: color-mix(in srgb, var(--primary-dark) 22%, #fff);
}
.ow-page[data-folder="grants"] #ow-upcoming {
    display: none;
}
.ow-page[data-folder="grants"] .ow-who-row {
    grid-template-columns: minmax(0, 1fr);
}
.ow-page[data-folder="grants"] .ow-who-wrap {
    max-width: 46rem;
}
.ow-page.has-results[data-folder="reports"] {
    --accent: var(--primary-light);
    --light-accent: color-mix(in srgb, var(--primary-light) 26%, #fff);
}
.ow-page.has-results[data-folder="home"] {
    --accent: var(--primary-dark);
    --light-accent: color-mix(in srgb, var(--primary-dark) 18%, #fff);
}

.ow-public-follow { margin-top: 10px; }
.ow-public-join { margin-top: 14px; }

.ow-body {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.ow-top {
    display: block;
    width: 100%;
    margin-bottom: 22px;
}

.ow-top .ow-masthead {
    width: 100%;
    margin-bottom: 0;
}

.ow-top-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.ow-invite-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: var(--white);
    border: 2px dashed var(--accent);
    border-radius: 8px;
    color: var(--accent);
    font-family: var(--main-font-family);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
}
.ow-invite-btn svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}
.ow-invite-btn:hover {
    background: var(--accent);
    color: var(--white);
    border-style: solid;
}
.ow-invite-btn.is-empty {
    opacity: 0.55;
    border-color: var(--text-muted);
    color: var(--text-muted);
}

.ow-top .ow-btn--reset {
    flex-shrink: 0;
}

.ow-main {
    display: flex;
    flex-direction: column;
    gap: 22px;
    width: 100%;
}
.ow-main > * { min-width: 0; }

.ow-cabinet {
    --ow-cabinet: var(--accent);
    width: 100%;
    margin-top: 10px;
}

.ow-cabinet-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0;
    padding: 0;
    margin-bottom: -3px;
    position: relative;
    z-index: 2;
}
.ow-cabinet-tab {
    margin: 0;
    padding: 12px 26px 11px;
    border: 0;
    border-radius: 14px 14px 0 0;
    background: color-mix(in srgb, var(--tab, var(--primary-dark)) 74%, #fff);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1;
    cursor: pointer;
    position: relative;
    z-index: 1;
    box-shadow: 6px 0 10px rgba(44, 62, 80, 0.12);
}
.ow-cabinet-tab + .ow-cabinet-tab {
    margin-left: -16px;
}
.ow-cabinet-tab--need { --tab: var(--uscb-purple); z-index: 4; }
.ow-cabinet-tab--grant { --tab: var(--primary-dark); z-index: 3; }
.ow-cabinet-tab--data { --tab: var(--primary-light); z-index: 2; }
.ow-cabinet-tab--uscb { --tab: var(--uscb-purple); z-index: 2; }
.ow-cabinet-tab--story { --tab: var(--ow-coral); z-index: 1; }
.ow-cabinet-tab:hover:not(.is-on) {
    filter: brightness(1.06);
}
.ow-cabinet-tab.is-on {
    background: var(--tab);
    z-index: 6;
    box-shadow: none;
}
.ow-cabinet-sheet {
    background: rgba(255, 255, 255, 0.78);
    border: 3px solid var(--ow-cabinet);
    border-radius: 0 16px 16px 16px;
    min-height: min(72vh, 860px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
}
.ow-cabinet[data-open="home"] .ow-cabinet-sheet {
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.4);
}
.ow-cabinet[data-open="home"] .ow-cabinet-head {
    display: none;
}
.ow-cabinet[data-open="needs"] .ow-cabinet-sheet {
    background: rgba(255, 255, 255, 0.52);
}
.ow-cabinet-head {
    flex-shrink: 0;
    padding: 18px 20px 0;
}
.ow-cabinet-panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.ow-cabinet-intro {
    max-width: 40rem;
}
.ow-cabinet-title {
    margin: 0;
    font-family: var(--main-font-family);
    font-size: clamp(1.55rem, 2.8vw, 2.05rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: var(--ow-cabinet);
}
.ow-cabinet-sub {
    margin: 6px 0 0;
    font-family: var(--main-font-family);
    font-size: 1.02rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-cabinet-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 36px;
    padding-bottom: 10px;
    border-bottom: 2px solid color-mix(in srgb, var(--ow-cabinet) 18%, #fff);
}
.ow-cabinet-why {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 500;
    font-style: italic;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-cabinet-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.ow-pipeline {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 22px;
    padding: 28px 28px 36px;
    box-sizing: border-box;
}
.ow-pipeline-kicker {
    margin: 0;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--primary-dark);
}
.ow-pipeline-track {
    display: flex;
    align-items: stretch;
    gap: 0;
    min-height: 0;
}
.ow-pipe {
    appearance: none;
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    cursor: pointer;
    font-family: var(--main-font-family);
    color: var(--primary-dark);
}
.ow-pipe-tab {
    display: inline-flex;
    align-self: flex-start;
    margin: 0 0 -3px;
    padding: 10px 16px 9px;
    border-radius: 12px 12px 0 0;
    background: var(--pipe);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1;
    position: relative;
    z-index: 2;
}
.ow-pipe-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 11.5rem;
    padding: 20px 18px 18px;
    border: 3px solid var(--pipe);
    border-radius: 0 14px 14px 14px;
    background: #fff;
    box-sizing: border-box;
}
.ow-pipe-card strong {
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: var(--pipe);
}
.ow-pipe-card span {
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-pipe--need { --pipe: var(--uscb-purple); }
.ow-pipe--grant { --pipe: var(--primary-dark); }
.ow-pipe--data { --pipe: var(--primary-light); }
.ow-pipe:hover .ow-pipe-card {
    background: #fff;
    transform: translateY(-2px);
}
.ow-pipe-join {
    flex: 0 0 28px;
    align-self: center;
    height: 4px;
    margin-top: 22px;
    background: linear-gradient(90deg, var(--uscb-purple), var(--primary-dark), var(--primary-light));
    border-radius: 99px;
    position: relative;
}
.ow-pipe-join::after {
    content: '';
    position: absolute;
    right: -5px;
    top: 50%;
    width: 10px;
    height: 10px;
    border-right: 3px solid var(--primary-dark);
    border-top: 3px solid var(--primary-dark);
    transform: translateY(-50%) rotate(45deg);
}
.ow-drawer {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.ow-drawer .ow-stories-stage,
.ow-drawer .ow-grants-stage,
.ow-drawer .ow-reports-stage {
    flex: 1 1 auto;
    min-height: 520px;
}
.ow-drawer--pad {
    padding: 16px 18px 22px;
    overflow: auto;
}

.ow-kicker,
.ow-empty-label,
.ow-tile-kicker,
.ow-grant-kicker {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent);
    font-family: var(--main-font-family);
}

.ow-toolbar { display: none; }

.ow-card {
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 22px;
    box-sizing: border-box;
    font-family: var(--main-font-family);
}

.ow-card.is-empty {
    border-style: dashed;
    border-color: var(--primary-light);
    background: var(--background);
}

.ow-body-text {
    margin: 0;
    font-family: var(--main-font-family);
    font-size: 0.98rem;
    line-height: 1.55;
    font-weight: 600;
    color: var(--primary-dark);
}

.ow-research-cabinet {
    width: 100%;
    max-width: min(94vw, 64rem);
    margin: 0 auto;
}
.ow-research-section {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    box-sizing: border-box;
}

.ow-page.has-results #ow-sec-research {
    display: none;
}

.ow-page:has(.ow-research-cabinet):not(.has-results):not(.is-rehearsing) {
    justify-content: center;
    padding-top: 0;
}

.ow-research-title {
    margin: 0 0 8px;
    font-size: 1.85rem;
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: var(--primary-dark);
}

.ow-research-lead {
    margin: 0 0 12px;
    font-size: 0.98rem;
    line-height: 1.55;
    color: var(--text-muted);
    font-weight: 600;
}

.ow-research-lead + .ow-research-row {
    margin-top: 6px;
}

.ow-domain-hint + .ow-research-signin {
    margin-top: 8px;
}

.ow-research-signin {
    margin: 14px 0 0;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--text-muted);
    font-weight: 600;
}

.ow-research-signin a {
    color: var(--accent);
    font-weight: 800;
    text-decoration: none;
}

.ow-pipeline--in-card {
    flex: none;
    min-height: 0;
    justify-content: flex-start;
    gap: 0;
    padding: 10px 0 14px;
}
.ow-pipeline--in-card .ow-pipe-card {
    min-height: 0;
    padding: 14px 12px 12px;
    background: #fff;
}
.ow-pipeline--in-card .ow-pipe-card strong {
    font-size: 1rem;
}
.ow-pipeline--in-card .ow-pipe-card span {
    font-size: 0.82rem;
}
.ow-pipeline--in-card .ow-pipe {
    cursor: default;
}
.ow-pipeline--in-card .ow-pipe:hover .ow-pipe-card {
    transform: none;
}

.ow-page.is-rehearsing .ow-admin-switch,
.ow-page.is-rehearsing #ow-sec-research,
.ow-page.is-rehearsing .ow-agent-box,
.ow-page.is-rehearsing #ow-results {
    display: none;
}

@keyframes craft-shimmer {
    0% { opacity: 0.45; }
    50% { opacity: 0.9; }
    100% { opacity: 0.45; }
}

.craft-shimmer {
    animation: craft-shimmer 1.35s ease-in-out infinite;
}

.ow-skel {
    --ow-skel: color-mix(in srgb, var(--primary-dark) 16%, #fff);
    width: 100%;
}

.ow-skel-progress {
    position: sticky;
    top: 0;
    z-index: 3;
    margin: 0 0 20px;
    padding: 0 0 14px;
    background: linear-gradient(#eef4f1 78%, transparent);
}

.ow-skel-now {
    margin: 0 0 8px;
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.3;
    color: var(--primary-dark);
}

.ow-skel-bar-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ow-skel-track {
    flex: 1;
    height: 8px;
    border-radius: 99px;
    background: color-mix(in srgb, var(--accent) 18%, #fff);
    overflow: hidden;
}

.ow-skel-fill {
    height: 100%;
    width: 0;
    background: var(--accent);
    border-radius: inherit;
    transition: width 0.45s ease;
}

.ow-skel-pct {
    flex-shrink: 0;
    min-width: 2.6em;
    text-align: right;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.04em;
    color: var(--accent);
}

.ow-skel-bar {
    background: var(--ow-skel);
    border-radius: 8px;
}

.ow-skel-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    margin-bottom: 22px;
}

.ow-skel-mast { flex: 1; min-width: 0; }

.ow-skel-name-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin-bottom: 12px;
}

.ow-skel-name {
    height: clamp(2rem, 4.5vw, 3rem);
    border-radius: 10px;
    background: color-mix(in srgb, var(--primary-dark) 22%, #fff);
}

.ow-skel-badge {
    height: 1.7rem;
    border-radius: 8px;
    background: color-mix(in srgb, var(--primary-light) 28%, #fff);
}

.ow-skel-lead {
    height: 0.95rem;
    margin-bottom: 10px;
}

.ow-skel-who {
    height: 0.85rem;
    margin-bottom: 8px;
}

.ow-skel-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    margin-top: 2px;
}

.ow-skel-btn { height: 2.15rem; }

.ow-skel-cabinet { width: 100%; margin-top: 10px; }

.ow-skel-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0;
    padding: 0;
    margin-bottom: -3px;
    position: relative;
    z-index: 2;
}

.ow-skel-tab {
    display: block;
    width: 6.4rem;
    height: 2.45rem;
    border-radius: 14px 14px 0 0;
}

.ow-skel-tab + .ow-skel-tab { margin-left: -16px; }
.ow-skel-tab--need { width: 6.2rem; background: color-mix(in srgb, var(--uscb-purple) 42%, #fff); z-index: 4; }
.ow-skel-tab--grant { width: 6.6rem; background: color-mix(in srgb, var(--primary-dark) 36%, #fff); z-index: 3; }
.ow-skel-tab--data { width: 7rem; background: color-mix(in srgb, var(--primary-light) 38%, #fff); z-index: 2; }
.ow-skel-tab--swot { width: 5.8rem; background: color-mix(in srgb, var(--ow-coral, #FF6B6B) 42%, #fff); z-index: 1; }

.ow-skel-sheet {
    background: rgba(255, 255, 255, 0.52);
    border: 3px solid var(--uscb-purple);
    border-radius: 0 16px 16px 16px;
    min-height: min(72vh, 860px);
    padding: 12px 16px 18px;
    box-sizing: border-box;
}

.ow-skel-head {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 2px solid color-mix(in srgb, var(--uscb-purple) 18%, #fff);
}
.ow-skel-intro { max-width: 40rem; }
.ow-skel-title { height: 1.7rem; }
.ow-skel-sub { height: 0.85rem; margin-top: 8px; }
.ow-skel-lib {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ow-skel-stat { height: 1.15rem; }

.ow-skel-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 6px 4px 14px;
}

.ow-skel-card {
    min-height: 10rem;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.94);
    border: 2px solid var(--uscb-purple);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ow-skel-card-kicker { height: 0.55rem; }
.ow-skel-card-title { height: 0.85rem; background: color-mix(in srgb, var(--uscb-purple) 22%, #fff); }
.ow-skel-card-line { height: 0.7rem; }
.ow-skel-card-meta { height: 0.6rem; margin-top: auto; }

@keyframes ow-pop-in {
    0% { opacity: 0; transform: translateY(12px) scale(0.96); }
    70% { opacity: 1; transform: translateY(-3px) scale(1.02); }
    100% { opacity: 1; transform: none; }
}

.ow-page.is-arriving .ow-org-name,
.ow-page.is-arriving .ow-identity-badges,
.ow-page.is-arriving .ow-masthead-lead,
.ow-page.is-arriving .ow-who-row,
.ow-page.is-arriving .ow-top-actions,
.ow-page.is-arriving .ow-cabinet-tabs,
.ow-page.is-arriving .ow-cabinet-sheet,
.ow-page.is-arriving .ow-story-grid > * {
    animation: ow-pop-in 0.52s cubic-bezier(0.22, 1.15, 0.36, 1) both;
}

.ow-page.is-arriving .ow-identity-badges { animation-delay: 50ms; }
.ow-page.is-arriving .ow-masthead-lead { animation-delay: 80ms; }
.ow-page.is-arriving .ow-who-row { animation-delay: 110ms; }
.ow-page.is-arriving .ow-top-actions { animation-delay: 80ms; }
.ow-page.is-arriving .ow-cabinet-tabs { animation-delay: 140ms; }
.ow-page.is-arriving .ow-cabinet-sheet {
    animation-delay: 180ms;
    overflow: visible;
}
.ow-page.is-arriving .ow-story-grid > *:nth-child(1) { animation-delay: 220ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(2) { animation-delay: 265ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(3) { animation-delay: 310ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(4) { animation-delay: 355ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(5) { animation-delay: 400ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(6) { animation-delay: 445ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(7) { animation-delay: 490ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(8) { animation-delay: 535ms; }
.ow-page.is-arriving .ow-story-grid > *:nth-child(n+9) { animation-delay: 580ms; }

@media (prefers-reduced-motion: reduce) {
    .craft-shimmer,
    .ow-page.is-arriving .ow-org-name,
    .ow-page.is-arriving .ow-identity-badges,
    .ow-page.is-arriving .ow-masthead-lead,
    .ow-page.is-arriving .ow-who-row,
    .ow-page.is-arriving .ow-top-actions,
    .ow-page.is-arriving .ow-cabinet-tabs,
    .ow-page.is-arriving .ow-cabinet-sheet,
    .ow-page.is-arriving .ow-story-grid > *,
    .ow-page.has-results:not(.is-rehearsing) .ow-name-field::after {
        animation: none !important;
    }
    .ow-page.has-results:not(.is-rehearsing) .ow-name-field::after {
        transform: scaleX(1);
    }
}

.ow-research-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: stretch;
}

.ow-domain {
    width: 100%;
}

.ow-domain-row {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    width: 100%;
}

.ow-domain-field {
    flex: 1 1 auto;
    min-width: 0;
    border-bottom: 3px solid var(--primary-dark);
    padding: 0 0 1px;
}

.ow-domain-row:focus-within .ow-domain-field {
    border-bottom-color: var(--accent);
}

.ow-domain-input {
    display: block;
    box-sizing: content-box;
    width: 100%;
    min-width: 0;
    min-height: 1.3em;
    border: none;
    background: transparent;
    padding: 0.06em 0 0.08em;
    font-family: var(--main-font-family);
    font-size: clamp(2.1rem, 6.4vw, 4rem);
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.3;
    color: var(--primary-dark);
    caret-color: var(--accent);
    overflow: visible;
}

.ow-domain-input::placeholder {
    color: color-mix(in srgb, var(--primary-dark) 36%, transparent);
    font-weight: 800;
}

.ow-domain-input:focus {
    outline: none;
}

.ow-domain-go {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
    padding: 12px 18px;
    border: 2px solid var(--accent);
    border-radius: 8px;
    background: var(--accent);
    font-family: var(--main-font-family);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--white);
    cursor: pointer;
}

.ow-domain-go:hover,
.ow-domain-go:focus-visible {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: var(--white);
    outline: none;
}

.ow-domain-go:disabled {
    opacity: 0.45;
    cursor: default;
}

.ow-domain-hint {
    margin: 14px 0 0;
    max-width: 34rem;
    font-family: var(--main-font-family);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--text-muted);
}

.ow-research-input {
    flex: 1 1 220px;
    min-width: 0;
    border: 2px solid var(--border-gray);
    background: var(--white);
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 1rem;
    font-weight: 700;
    font-family: var(--main-font-family);
    color: var(--primary-dark);
}

.ow-research-input:focus {
    border-color: var(--accent);
    outline: none;
    box-shadow: 0 0 0 2px var(--accent);
}

.ow-masthead { margin-bottom: 16px; }

.ow-masthead-lead {
    margin: 0 0 10px;
    font-family: var(--main-font-family);
    font-size: 0.98rem;
    line-height: 1.55;
    color: var(--text-muted);
    font-weight: 600;
}

.ow-masthead.is-empty .ow-org-name {
    color: var(--text-muted);
    text-transform: none;
    letter-spacing: -0.01em;
    font-weight: 800;
}

.ow-name-row,
.ow-name-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
}
.ow-name-block {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 10px;
}
.ow-name-line {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    width: 100%;
}
.ow-name-field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    padding-bottom: 8px;
}
.ow-name-field::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: var(--primary-dark);
    transform: scaleX(1);
    transform-origin: left center;
    pointer-events: none;
}
.ow-page.has-results:not(.is-rehearsing) .ow-name-field::after {
    animation: ow-underline-fill 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes ow-underline-fill {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}
.ow-org-name {
    margin: 0;
    display: block;
    width: 100%;
    box-sizing: content-box;
    font-size: clamp(2rem, 4.5vw, 3rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.2;
    color: var(--primary-dark);
    text-transform: none;
    font-family: var(--main-font-family);
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
    outline: none;
    cursor: text;
    appearance: none;
    box-shadow: none;
    overflow: visible;
}
.ow-org-name::placeholder {
    color: var(--text-muted);
    opacity: 1;
}
h1.ow-org-name {
    display: block;
    width: 100%;
    border-bottom: 3px solid var(--primary-dark);
    padding-bottom: 8px;
}
.ow-name-line .ow-top-actions {
    padding-bottom: 0;
}

.ow-identity-row,
.ow-identity-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.ow-identity-badges {
    margin-top: 8px;
}
.ow-identity-row { margin-top: 2px; align-items: center; }
.ow-members-overlay {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(44, 62, 80, 0.36);
}
.ow-members-dialog {
    width: min(28rem, 94vw);
    max-height: min(72vh, 32rem);
    overflow: auto;
    padding: 18px 18px 14px;
    background: #fff;
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    box-sizing: border-box;
}
.ow-members-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.ow-members-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-members-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ow-members-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: #eef4f1;
    border-radius: 8px;
}
.ow-members-item svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: var(--primary-dark);
}
.ow-members-who {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.ow-members-name {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-members-email {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
}
.ow-members-empty {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-muted);
}

button.ow-invite-badge {
    appearance: none;
    cursor: pointer;
    border: none;
    font-family: var(--main-font-family);
}
button.ow-invite-badge:hover {
    background: var(--accent);
    color: var(--white);
}
button.ow-invite-badge.is-empty {
    opacity: 0.7;
}

.ow-admin-switch {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 22px;
}
.ow-admin-switch label {
    margin: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent);
    font-family: var(--main-font-family);
}
.ow-admin-switch select {
    min-width: 240px;
    padding: 8px 10px;
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    background: var(--white);
    color: var(--primary-dark);
    font-family: var(--main-font-family);
    font-size: 0.92rem;
    font-weight: 700;
}
.ow-who { margin-top: 14px; max-width: none; }
.ow-who.is-empty { color: var(--text-muted); font-style: italic; }
.ow-who-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 20rem);
    gap: 16px;
    align-items: start;
    margin-top: 16px;
}
.ow-who-row:not(:has(.ow-upcoming:not([hidden]))) {
    grid-template-columns: minmax(0, 1fr);
}
.ow-who-row:not(:has(.ow-upcoming:not([hidden]))) .ow-who-wrap {
    max-width: 46rem;
}
.ow-who-wrap {
    min-width: 0;
    padding: 16px 18px 14px;
    background: #fff;
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    box-sizing: border-box;
    position: relative;
}
.ow-upcoming {
    min-width: 0;
    padding: 16px 18px 14px;
    background: #fff;
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    box-sizing: border-box;
}
.ow-upcoming .ow-kicker {
    margin: 0 0 10px;
}
.ow-upcoming-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ow-upcoming-item {
    appearance: none;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: #eef4f1;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.ow-upcoming-item:hover {
    background: #e3ece7;
}
.ow-upcoming-name {
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--primary-dark);
}
.ow-upcoming-due {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-muted);
}
.ow-upcoming-item.is-soon .ow-upcoming-due {
    color: var(--accent);
}
.ow-upcoming-empty {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--text-muted);
}
.ow-upcoming--grants {
    margin-top: 18px;
}
.ow-who-wrap .ow-who { margin-top: 0; }
.ow-who-tools {
    display: flex;
    justify-content: flex-end;
    margin: -4px 0 8px;
}
.ow-edit-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 4px;
    width: 28px;
    height: 28px;
    border: 0;
    background: transparent;
    color: var(--primary-dark);
    cursor: pointer;
    line-height: 1;
    flex-shrink: 0;
}
.ow-edit-btn svg {
    width: 16px;
    height: 16px;
    display: block;
}
.ow-edit-btn:hover { color: var(--uscb-purple); }
.ow-name-row .ow-edit-btn { align-self: center; }
.ow-need-tools {
    display: flex;
    align-items: center;
    gap: 4px;
}
.ow-who-editor,
.ow-name-editor {
    width: 100%;
    box-sizing: border-box;
}
.ow-name-editor {
    width: 100%;
}
.ow-who-editor {
    display: block;
    width: 100%;
    min-height: 8rem;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--primary-dark);
    background: transparent;
    resize: vertical;
}
.ow-edit-actions {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

.ow-prose {
    white-space: pre-wrap;
}
.ow-prose--clamp {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ow-see-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 6px 11px;
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    background: var(--white);
    color: var(--primary-dark);
    font-family: var(--main-font-family);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}
.ow-see-more:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: var(--white);
}

.ow-badge {
    display: inline-block;
    padding: 6px 11px;
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    background: #fff;
    color: var(--primary-dark);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
button.ow-badge--members {
    appearance: none;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}
button.ow-badge--members:hover {
    background: var(--primary-dark);
    color: #fff;
}

.ow-card.is-empty .ow-body-text {
    color: var(--text-muted);
    font-style: italic;
}

.ow-swot {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 22px;
}

.ow-swot.is-empty { opacity: 0.85; }

.ow-drop {
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    overflow: hidden;
    font-family: var(--main-font-family);
}

.ow-drop--s {
    background: var(--background-light-shade);
    border-color: var(--primary-light);
}
.ow-drop--s .ow-kicker,
.ow-drop--s .ow-drop-count,
.ow-drop--s .ow-drop-arrow { color: var(--primary-light); }

.ow-drop--w {
    background: var(--light-accent);
    border-color: var(--accent);
}
.ow-drop--w .ow-kicker,
.ow-drop--w .ow-drop-count,
.ow-drop--w .ow-drop-arrow { color: var(--accent); }

.ow-drop-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    cursor: pointer;
    list-style: none;
}
.ow-drop-head::-webkit-details-marker,
.ow-drop-head::marker { display: none; }
.ow-drop-head .ow-kicker { margin: 0; }

.ow-drop-body {
    padding: 0 18px 16px;
}
.ow-swot-lede {
    margin: 0 0 12px;
    font-family: var(--main-font-family);
    font-size: 0.92rem;
    line-height: 1.5;
    font-weight: 600;
    color: var(--primary-dark);
}
.ow-swot-more { padding: 6px 12px; font-size: 0.8rem; }

.ow-drop-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    padding-top: 2px;
}

.ow-drop-count {
    font-size: 0.95rem;
    font-weight: 800;
    font-family: var(--main-font-family);
}

.ow-drop-arrow {
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid currentColor;
    transition: transform 0.16s ease;
}

.ow-drop[open] .ow-drop-arrow { transform: rotate(180deg); }

.ow-swot-list {
    list-style: none;
    margin: 0;
    padding: 0 18px 16px;
}
.ow-swot-list--modal {
    padding: 4px 4px 14px;
    counter-reset: ow-swot;
}
.ow-swot-list li {
    padding: 12px 0 0;
    margin-top: 12px;
    border-top: 1px solid rgba(44, 62, 80, 0.12);
}
.ow-swot-list--modal li {
    display: grid;
    grid-template-columns: 1.6rem minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin-top: 0;
    padding: 14px 0;
    border-top: 2px dotted var(--primary-dark);
}
.ow-swot-list li:first-child,
.ow-swot-list--modal li:first-child {
    border-top: none;
    margin-top: 0;
    padding-top: 4px;
}
.ow-swot-num {
    font-family: var(--main-font-family);
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--primary-dark);
    line-height: 1.55;
}
.ow-swot-list--modal li.is-empty {
    display: block;
    grid-template-columns: none;
}
.ow-swot-list li.is-empty {
    color: var(--text-muted);
    font-size: 0.98rem;
    font-weight: 600;
    font-style: italic;
}

.ow-drop--sources,
.ow-drop--src {
    background: #e8f2fa;
    border-color: var(--primary-light);
}
.ow-drop--sources { margin-bottom: 22px; }
.ow-drop--sources .ow-kicker,
.ow-drop--sources .ow-drop-count,
.ow-drop--sources .ow-drop-arrow,
.ow-drop--src .ow-kicker,
.ow-drop--src .ow-drop-count,
.ow-drop--src .ow-drop-arrow { color: var(--primary-light); }

.ow-sources-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.ow-modal-body .ow-sources-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ow-sources-list > li { margin: 0 0 6px; }
.ow-sources-list > li:last-child { margin-bottom: 0; }
.ow-sources-list > li.is-empty {
    padding: 8px 4px 4px;
    color: var(--text-muted);
    font-size: 0.98rem;
    font-weight: 600;
    font-style: italic;
}
.ow-source-item {
    display: block;
    padding: 10px 12px;
    background: var(--white);
    border: 1px solid rgba(44, 62, 80, 0.14);
    border-radius: 2px;
    text-decoration: none;
}
.ow-source-item:hover {
    border-color: var(--primary-light);
}
.ow-source-title {
    display: block;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--primary-dark);
}
.ow-source-url {
    display: block;
    margin-top: 3px;
    font-size: 0.78rem;
    line-height: 1.4;
    font-weight: 600;
    color: var(--primary-light);
    word-break: break-all;
}

.ow-tiles {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 22px;
}

.ow-tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 16px 18px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    font-family: var(--main-font-family);
    margin-bottom: 0;
}

.ow-tile:hover {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--light-accent);
}

.ow-tile-count {
    font-size: 1.55rem;
    font-weight: 900;
    color: var(--primary-dark);
    line-height: 1.1;
    font-family: var(--main-font-family);
}

.ow-tile-count--sm { font-size: 0.95rem; font-weight: 800; word-break: break-all; }
.ow-tile-hint {
    font-family: var(--main-font-family);
    font-size: 0.98rem;
    line-height: 1.55;
    font-weight: 600;
    color: var(--text-muted);
}

.ow-dataset-summary {
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 2px solid var(--primary-light);
    background: #e8f2fa;
    font-family: var(--main-font-family);
    font-size: 0.88rem;
    line-height: 1.5;
    font-weight: 600;
    color: var(--primary-dark);
}

.ow-queue { margin-bottom: 0; overflow: hidden; }
.ow-report-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 14px;
    min-width: 0;
    max-width: 100%;
}

.ow-queue-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

.ow-queue .download-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 18px;
    border: none;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    font-family: var(--main-font-family);
    color: #fff;
    background-color: var(--primary-light);
    box-shadow: 0 2px 8px rgba(0, 96, 86, 0.45);
    width: 100%;
    max-width: 250px;
}

.ow-queue .download-button svg { width: 16px; height: 16px; }
.ow-queue .download-button.analyze-report-btn {
    background-color: var(--accent);
    box-shadow: 0 2px 8px rgba(255, 107, 107, 0.45);
}
.ow-queue .download-button:disabled { opacity: 0.45; cursor: not-allowed; box-shadow: none; }

a.ow-btn { text-decoration: none; }
.ow-research-lead a {
    color: var(--accent);
    font-weight: 800;
    text-decoration: none;
}
.ow-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 16px;
    background: var(--accent);
    border: 2px solid var(--accent);
    border-radius: 8px;
    font-size: 11px;
    font-weight: 800;
    font-family: var(--main-font-family);
    color: var(--white);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.45px;
}

.ow-btn:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.ow-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.ow-btn--ghost { background: transparent; color: var(--primary-dark); border-color: var(--border-gray); }
.ow-btn--reset {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--white);
}
.ow-btn--reset:hover {
    background: var(--accent);
    border-color: var(--accent);
    filter: brightness(0.95);
}
.ow-btn--reset svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

.ow-queue-hint {
    margin: 0 0 10px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted);
}
.ow-report-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 10px 12px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    font-family: var(--main-font-family);
    color: var(--primary-dark);
}
.ow-report-row.is-picked {
    background: var(--light-accent);
    border-color: var(--accent);
    color: var(--primary-dark);
}
.ow-report-row.is-picked .ow-report-mark {
    background: var(--accent);
    border-color: var(--accent);
}
.ow-report-row.is-picked .ow-report-meta { color: var(--primary-dark); }
.ow-report-row:hover {
    border-color: var(--primary-light);
}
.ow-report-mark {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 3px;
    border: 2px solid var(--primary-dark);
    border-radius: 4px;
    background: var(--white);
    box-sizing: border-box;
}
.ow-report-name,
.ow-report-meta {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.ow-report-copy {
    min-width: 0;
    flex: 1;
}
.ow-report-name {
    display: block;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.ow-report-meta {
    display: block;
    margin-top: 2px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-muted);
}
.ow-report-why {
    display: block;
    margin-top: 8px;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-report-remove {
    flex-shrink: 0;
    border: 0;
    background: none;
    color: var(--primary-dark);
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    padding: 0 2px;
}
.ow-report-empty {
    color: var(--text-muted);
    font-size: 0.88rem;
    font-weight: 600;
    font-style: italic;
}

#ow-reports-modal .ow-modal--wide { max-width: min(92vw, 1400px); }
.ow-report-board {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.ow-report-shelf {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    min-width: 0;
}
.ow-report-tab {
    display: inline-block;
    margin: 0;
    padding: 5px 12px;
    border-radius: 10px 10px 0 0;
    background: var(--uscb-purple);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.ow-report-tab--uscb { background: var(--uscb-purple); }
.ow-report-tab--uwphi { background: var(--dataset-health-outcomes); }
.ow-report-tab--oi { background: var(--opportunity-insights-color); color: #123; }
.ow-report-tab--indiana { background: var(--state-of-indiana-color); }
.ow-report-shelf-body {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 12px;
    background: #fff;
    border: 2px solid var(--uscb-purple);
    border-radius: 0 12px 12px 12px;
    box-sizing: border-box;
}
.ow-report-shelf-body--uscb { border-color: var(--uscb-purple); }
.ow-report-shelf-body--uwphi { border-color: var(--dataset-health-outcomes); }
.ow-report-shelf-body--oi { border-color: var(--opportunity-insights-color); }
.ow-report-shelf-body--indiana { border-color: var(--state-of-indiana-color); }
.ow-report-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
    padding: 14px 14px 12px;
    text-align: left;
    background: var(--background);
    border: 2px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    font-family: inherit;
    color: var(--primary-dark);
}
.ow-report-card:hover { background: #fff; }
.ow-report-card.is-on {
    color: #fff;
}
.ow-report-card--uscb.is-on {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
}
.ow-report-card--uwphi.is-on {
    background: var(--dataset-health-outcomes);
    border-color: var(--dataset-health-outcomes);
}
.ow-report-card--oi.is-on {
    background: var(--opportunity-insights-color);
    border-color: var(--opportunity-insights-color);
    color: #123;
}
.ow-report-card--indiana.is-on {
    background: var(--state-of-indiana-color);
    border-color: var(--state-of-indiana-color);
}
.ow-report-card-title {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}
.ow-report-card-place {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.ow-report-card-why {
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.45;
}
.ow-report-card-pick {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--primary-light);
}
.ow-report-card.is-on .ow-report-card-place { color: inherit; opacity: 0.8; }
.ow-report-card.is-on .ow-report-card-pick { color: inherit; }

.ow-page.has-results[data-folder="reports"] .ow-report-tab,
.ow-page.has-results[data-folder="reports"] .ow-report-tab--uscb,
.ow-page.has-results[data-folder="reports"] .ow-report-tab--uwphi,
.ow-page.has-results[data-folder="reports"] .ow-report-tab--oi,
.ow-page.has-results[data-folder="reports"] .ow-report-tab--indiana {
    background: var(--primary-light);
    color: #fff;
}
.ow-page.has-results[data-folder="reports"] .ow-report-shelf-body,
.ow-page.has-results[data-folder="reports"] .ow-report-shelf-body--uscb,
.ow-page.has-results[data-folder="reports"] .ow-report-shelf-body--uwphi,
.ow-page.has-results[data-folder="reports"] .ow-report-shelf-body--oi,
.ow-page.has-results[data-folder="reports"] .ow-report-shelf-body--indiana {
    border-color: var(--primary-light);
}
.ow-page.has-results[data-folder="reports"] .ow-report-card.is-on,
.ow-page.has-results[data-folder="reports"] .ow-report-card--uscb.is-on,
.ow-page.has-results[data-folder="reports"] .ow-report-card--uwphi.is-on,
.ow-page.has-results[data-folder="reports"] .ow-report-card--oi.is-on,
.ow-page.has-results[data-folder="reports"] .ow-report-card--indiana.is-on {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
}
.ow-page.has-results[data-folder="reports"] .ow-report-card-pick {
    color: var(--primary-light);
}

.ow-page.has-results[data-folder="swot"] .ow-swot-tile,
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--w,
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--t {
    border-color: var(--ow-coral);
}
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--s.is-open,
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--o.is-open,
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--w.is-open,
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--t.is-open {
    background: color-mix(in srgb, var(--ow-coral) 12%, #fff);
}
.ow-page.has-results[data-folder="swot"] .ow-swot-expand,
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--w .ow-swot-expand,
.ow-page.has-results[data-folder="swot"] .ow-swot-tile--t .ow-swot-expand {
    background: var(--ow-coral);
}
.ow-page.has-results[data-folder="swot"] .ow-swot-tray-kicker,
.ow-page.has-results[data-folder="swot"] .ow-swot-tray--w .ow-swot-tray-kicker,
.ow-page.has-results[data-folder="swot"] .ow-swot-tray--t .ow-swot-tray-kicker {
    color: var(--ow-coral);
}

.ow-icon-btn {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 2px solid var(--accent);
    background: var(--accent);
    color: var(--white);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
}

.ow-icon-btn:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.ow-modal-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    position: relative;
    z-index: 2;
    padding: 3px;
}
.ow-modal-actions .ow-text-btn {
    margin: 0;
    line-height: 1;
}

.ow-modal {
    max-width: min(92vw, 1200px);
    width: 94%;
    border: 2px solid var(--primary-dark);
    overflow: hidden;
    position: relative;
}

.ow-modal--wide { max-width: min(94vw, 1400px); }
#ow-stories-modal .ow-modal--wide,
#ow-grants-modal .ow-modal--wide { max-width: min(96vw, 1680px); }
.ow-modal .ow-modal-header {
    position: relative;
    align-items: center;
    background: var(--white);
    border-bottom: 2px solid var(--primary-light);
    gap: 12px;
}
.ow-lib-mark {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
    flex: 1 1 auto;
}
.ow-modal .modal-title {
    flex: 0 1 auto;
    width: max-content;
    color: var(--primary-dark);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    position: relative;
    padding-bottom: 7px;
}
.ow-modal .modal-title::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: var(--accent);
}
.ow-modal--need .modal-title {
    flex: 1;
    min-width: 0;
    text-wrap: pretty;
    line-height: 1.25;
}
.ow-modal-body {
    max-height: min(82vh, 920px);
    overflow: auto;
    background: var(--background);
}

.ow-stories-board {
    width: 100%;
    margin: 8px 0 22px;
}
.ow-stories-board-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.ow-stories-board-head .ow-kicker { margin: 0; }
.ow-stories-more { padding: 6px 12px; font-size: 0.8rem; }
.ow-stories-board.is-empty { opacity: 0.85; }

.ow-story-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 6px 4px 14px;
    min-width: 0;
}

.ow-story-grid--board {
    padding: 0;
}

.ow-story-card {
    background: var(--white);
    border-radius: 8px;
    box-shadow: none;
    border: 2px solid var(--primary-dark);
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    min-width: 0;
    min-height: 0;
    transition: box-shadow 0.22s, transform 0.22s, width 0.48s cubic-bezier(0.22, 1, 0.36, 1);
}

.ow-story-card:hover {
    box-shadow: 0 0.25rem 0.75rem var(--shadow-medium);
    transform: translateY(-0.08rem);
    z-index: 1;
}

.ow-story-quote-mark { display: none; }

.ow-story-card-title {
    margin: 0 0 4px;
    font-family: var(--main-font-family);
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.25;
    color: var(--primary-dark);
}

.ow-story-card-snip {
    margin: 0;
    font-family: var(--main-font-family);
    font-size: 0.78rem;
    font-style: italic;
    line-height: 1.35;
    font-weight: 600;
    color: var(--primary-dark);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ow-story-need { display: none; }

.ow-story-empty { grid-column: 1 / -1; color: var(--text-muted); font-size: 0.88rem; }

.ow-need-card {
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    width: 100%;
    height: 100%;
    min-height: 10rem;
    background: rgba(255, 255, 255, 0.94);
    border-color: var(--uscb-purple);
}
.ow-need-card .ow-story-card-title {
    color: var(--uscb-purple);
}
.ow-grant-card {
    background: rgba(255, 255, 255, 0.94);
    border-color: var(--primary-dark);
}
.ow-grant-card .ow-story-card-title {
    color: var(--primary-dark);
}
.ow-need-card.is-picked,
.ow-need-card.is-picked:hover {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
    color: #fff;
    box-shadow: none;
    transform: none;
}
.ow-grant-card.is-picked,
.ow-grant-card.is-picked:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-report-lib-card.is-picked,
.ow-report-lib-card.is-picked:hover {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
}
.ow-need-card.is-picked .ow-story-card-title,
.ow-need-card.is-picked .ow-story-card-snip,
.ow-need-card.is-picked .ow-need-card-place,
.ow-need-card.is-picked .ow-need-card-meta {
    color: #fff;
}
.ow-need-card.is-picked .ow-need-card-place,
.ow-need-card.is-picked .ow-need-card-meta {
    opacity: 0.85;
}
.ow-need-card.ow-ring.is-picked::before,
.ow-need-card.ow-ring.is-picked::after,
.ow-grant-card.ow-ring.is-picked::before,
.ow-grant-card.ow-ring.is-picked::after {
    content: none;
    animation: none;
}
@property --ow-ring {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}
.ow-ring {
    position: relative;
    isolation: isolate;
}
.ow-ring.is-picked:not(.ow-need-card) {
    border-color: transparent;
    z-index: 1;
}
.ow-ring.is-picked::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: inherit;
    background: conic-gradient(
        from var(--ow-ring),
        var(--accent) 0deg,
        color-mix(in srgb, var(--accent) 55%, #fff) 90deg,
        var(--accent) 180deg,
        color-mix(in srgb, var(--accent) 55%, #fff) 270deg,
        var(--accent) 360deg
    );
    z-index: -1;
    animation: ow-ring-spin 2.2s linear infinite;
}
.ow-ring.is-picked::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--white);
    z-index: -1;
}
.ow-cabinet .ow-ring.is-picked::before,
.ow-cabinet .ow-ring.is-picked::after {
    content: none;
    animation: none;
}
.ow-tile.ow-ring.is-picked::before { border-radius: 15px; }
.ow-tile.ow-ring.is-picked::after { border-radius: 10px; }
.ow-folder.ow-ring.is-picked::before { border-radius: 16px; }
.ow-folder.ow-ring.is-picked::after { border-radius: 12px; background: transparent; }
.ow-board-tab.ow-ring.is-picked::before { border-radius: 10px 10px 2px 2px; }
.ow-board-tab.ow-ring.is-picked::after {
    background: var(--uscb-purple);
    border-radius: 8px 8px 0 0;
}
.ow-text-btn--fill.ow-ring.is-picked,
.ow-text-btn--need.ow-text-btn--fill.ow-ring.is-picked,
.ow-text-btn--need.ow-text-btn--fill.ow-ring.is-picked:hover,
.ow-text-btn.ow-ring.is-picked:hover,
.ow-text-btn--coral.ow-ring.is-picked:hover {
    background: var(--white);
    color: var(--uscb-purple);
    border-color: transparent;
}
.ow-text-btn--grant.ow-text-btn--fill.ow-ring.is-picked,
.ow-text-btn--grant.ow-text-btn--fill.ow-ring.is-picked:hover {
    background: var(--white);
    color: var(--primary-dark);
    border-color: transparent;
}
.ow-text-btn--story.ow-text-btn--fill.ow-ring.is-picked,
.ow-text-btn--story.ow-text-btn--fill.ow-ring.is-picked:hover,
.ow-text-btn--coral.ow-ring.is-picked:hover {
    color: var(--accent);
}
@keyframes ow-ring-spin {
    to { --ow-ring: 360deg; }
}
.ow-need-card-place {
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--text-muted);
    margin: 0 0 6px;
}
.ow-need-card-meta {
    display: block;
    margin-top: auto;
    padding-top: 8px;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--text-muted);
}
.ow-modal--need {
    max-width: 640px;
}
.ow-modal--need .ow-modal-header {
    align-items: flex-start;
}
.ow-need-block {
    margin: 0 0 16px;
}
.ow-need-block .ow-grant-kicker-sm,
.ow-need-exhibits-tabs .ow-grant-kicker-sm {
    display: inline-block;
    margin: 0;
    padding: 3px 9px;
    background: var(--primary-dark);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: none;
    font-family: inherit;
    border-radius: 8px 8px 0 0;
}
.ow-need-block .ow-kicker--need,
.ow-need-exhibits-tabs .ow-kicker--need {
    background: var(--uscb-purple);
    color: #fff;
}
.ow-need-block .ow-kicker--story,
.ow-need-exhibits-tabs .ow-kicker--story,
#ow-drawer-needs .ow-add-story-tab,
#ow-drawer-needs .ow-add-story-tab.is-on {
    background: var(--uscb-purple);
    color: #fff;
}
.ow-need-paste,
.ow-need-exhibits-box {
    margin: 0;
    background: rgba(255, 255, 255, 0.94);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 0 0;
}
.ow-need-block .ow-kicker--need + .ow-need-paste,
.ow-need-block:has(.ow-kicker--need) .ow-need-paste {
    border-color: var(--uscb-purple);
}
.ow-need-block .ow-kicker--story + .ow-need-paste,
.ow-need-block:has(.ow-kicker--story) .ow-need-paste,
.ow-need-paste--story {
    border-color: var(--uscb-purple);
    border-radius: 0 8px 0 0;
}
.ow-need-exhibits-box {
    border-radius: 0 0 8px 8px;
}
.ow-need-paste {
    padding: 10px 12px;
}
.ow-need-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 10px;
    align-items: start;
}
.ow-need-row .ow-need-paste-text,
.ow-need-row .ow-need-exhibit-title {
    min-width: 0;
    margin: 0;
}
.ow-need-paste-text,
.ow-need-exhibit-body,
.ow-need-paste .ow-form-input--plain {
    font-family: var(--main-font-family);
    font-size: 0.88rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.45;
    letter-spacing: normal;
    color: var(--primary-dark);
}
.ow-need-paste-text,
#ow-story-need,
#ow-add-story-need-text {
    color: var(--primary-dark);
}
#ow-grant-expand-body .ow-need-paste-text {
    color: var(--primary-dark);
    font-weight: 600;
}
#ow-grant-expand-body .ow-need-paste {
    padding: 12px;
}
#ow-grant-expand-body .ow-need-paste:has(.ow-cite) {
    padding-bottom: 2.15rem;
}
#ow-grant-expand-body .ow-grant-facts {
    margin: 0;
    gap: 0;
}
#ow-grant-expand-body .ow-grant-facts div {
    display: block;
    grid-template-columns: none;
    padding: 12px 0;
    border-top: 2px dotted var(--primary-dark);
}
#ow-grant-expand-body .ow-grant-facts div:first-child {
    border-top: none;
    padding-top: 0;
}
#ow-grant-expand-body .ow-grant-facts dt {
    display: block;
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
#ow-grant-expand-body .ow-grant-facts dd {
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1.4;
}
#ow-grant-expand-body .ow-grant-desc {
    margin: 12px 0 0;
    padding-top: 12px;
    border-top: 2px dotted var(--primary-dark);
    color: var(--primary-dark);
}
#ow-grant-expand-body .ow-grant-check { margin-top: 0; }
#ow-grant-expand-body .ow-grant-danger { margin-bottom: 0; }
.ow-need-exhibits {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
}
.ow-need-exhibits-tabs {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
}
.ow-add-story-tab {
    cursor: pointer;
}
.ow-add-story-tab.is-on {
    background: var(--uscb-purple);
    color: #fff;
}
.ow-need-exhibits-box {
    width: 100%;
}
.ow-need-exhibit {
    margin: 0;
    padding: 10px 12px;
    background: transparent;
    border: none;
    border-radius: 0;
}
.ow-need-exhibit + .ow-need-exhibit {
    border-top: 2px solid color-mix(in srgb, var(--accent) 28%, #fff);
}
.ow-need-paste--story .ow-need-exhibit:first-child {
    padding-top: 0;
}
.ow-need-paste--story .ow-need-exhibit:last-child {
    padding-bottom: 0;
}
.ow-need-paste--story .ow-story-empty {
    margin: 0;
    color: var(--text-muted);
}
.ow-need-paste--story .ow-need-paste-text,
.ow-need-paste--story .ow-need-exhibit-title,
#ow-story-summary,
#ow-add-story-summary {
    color: var(--primary-dark);
}
.ow-story-expand-title { color: var(--primary-dark); }
.ow-need-exhibits-box .ow-story-empty {
    margin: 0;
    padding: 10px 12px;
}
.ow-need-exhibit-title {
    font-family: var(--main-font-family);
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--primary-dark);
}
.ow-need-exhibit .ow-need-row {
    margin-bottom: 4px;
}
.ow-need-exhibit .ow-copy-btn {
    margin-bottom: 2px;
}
.ow-need-exhibit-body {
    margin: 0;
}
.ow-copy-btn {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border: 2px dashed var(--accent);
    border-radius: 8px;
    color: var(--accent);
    cursor: pointer;
    position: relative;
    z-index: 2;
}
.ow-copy-btn--need {
    border-color: var(--uscb-purple);
    color: var(--uscb-purple);
}
.ow-copy-btn--story {
    border-color: var(--accent);
    color: var(--accent);
}
.ow-copy-btn svg {
    width: 15px;
    height: 15px;
    pointer-events: none;
}
.ow-copy-btn:hover {
    background: var(--accent);
    color: var(--white);
    border-style: solid;
}
.ow-copy-btn.is-copied {
    background: var(--accent);
    color: var(--white);
    border-style: solid;
    animation: ow-copy-pop 0.58s cubic-bezier(0.22, 1.45, 0.36, 1);
}
.ow-copy-btn--need:hover,
.ow-copy-btn--need.is-copied {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
    color: #fff;
}
@keyframes ow-copy-pop {
    0% { transform: scale(1) rotate(0deg); }
    28% { transform: scale(1.32) rotate(-14deg); }
    58% { transform: scale(0.88) rotate(10deg); }
    100% { transform: scale(1) rotate(0deg); }
}

.ow-source-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: auto;
    align-self: flex-end;
}

.ow-masthead .ow-source-row,
.ow-card .ow-source-row,
.ow-swot-list .ow-source-row,
.ow-grant-card .ow-source-row {
    margin-top: 8px;
    align-self: flex-start;
}

.ow-source-row:empty { display: none; }

.ow-source-badge {
    display: inline-block;
    padding: 0.375rem 1rem;
    border-radius: 0.5rem;
    background: var(--primary-light);
    color: var(--white);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    box-shadow: 0 0.0625rem 0.25rem var(--shadow-light);
}

.ow-source-badge:hover {
    background: var(--primary-dark);
    color: var(--white);
}

.ow-swot-claim,
.ow-swot-tile,
.ow-need-paste,
.ow-need-exhibit,
.ow-grant-row,
.ow-mod {
    position: relative;
    padding-bottom: 2.15rem;
}
.ow-cite {
    position: absolute;
    right: 10px;
    bottom: 0;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.ow-cite-btn {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    font-family: inherit;
}
.ow-cite-tab {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 8px 8px 0 0;
    background: var(--primary-light);
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1.2;
}
.ow-cite-body {
    display: block;
    width: 2.55rem;
    height: 0.55rem;
    border-radius: 0 0 7px 7px;
    background: var(--primary-light);
}
.ow-cite-btn:hover .ow-cite-tab,
.ow-cite-btn:hover .ow-cite-body,
.ow-cite.is-open .ow-cite-tab,
.ow-cite.is-open .ow-cite-body {
    filter: brightness(1.08);
}
.ow-cite-n { display: none; }
.ow-cite-menu {
    display: none;
    position: absolute;
    right: 0;
    bottom: calc(100% + 6px);
    min-width: 13.5rem;
    max-width: 18rem;
    padding: 6px;
    background: #fff;
    border: 2px solid var(--primary-light);
    border-radius: 10px 10px 2px 10px;
    box-shadow: 0 8px 20px rgba(44, 62, 80, 0.14);
}
.ow-cite.is-open .ow-cite-menu,
.ow-cite-menu.is-open { display: block; }
.ow-cite-menu.is-open {
    position: fixed;
    z-index: 4000;
}
.ow-cite-menu a {
    display: block;
    padding: 8px 9px;
    text-decoration: none;
    color: var(--primary-dark);
    border-radius: 6px;
}
.ow-cite-menu a:hover {
    background: #e8f2fa;
}
.ow-cite-menu a + a { margin-top: 2px; }
.ow-cite-menu strong {
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.3;
}
.ow-cite-menu em {
    display: block;
    margin-top: 2px;
    font-size: 0.68rem;
    font-style: normal;
    font-weight: 600;
    color: var(--primary-light);
    word-break: break-all;
}

.ow-cite--tab .ow-cite-body { display: none; }
.ow-cite--tab .ow-cite-tab { border-radius: 8px 8px 0 0; }

.ow-cite--pill .ow-cite-body { display: none; }
.ow-cite--pill .ow-cite-tab {
    border-radius: 999px;
    padding: 5px 11px;
}

.ow-cite--count .ow-cite-body { display: none; }
.ow-cite--count .ow-cite-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    padding: 5px 8px 5px 11px;
}
.ow-cite--count .ow-cite-n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #fff;
    color: var(--primary-light);
    font-size: 9px;
    letter-spacing: 0;
}

.ow-cite--ear .ow-cite-tab {
    border-radius: 10px 8px 0 0;
    padding-left: 14px;
    position: relative;
}
.ow-cite--ear .ow-cite-tab::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 8px;
    height: 8px;
    border-radius: 2px 0 0 2px;
    background: var(--primary-light);
    transform: skewY(-28deg);
}

.ow-grant-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.ow-grant-row {
    width: 100%;
    min-width: 0;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    box-sizing: border-box;
    overflow: visible;
}
.ow-grant-row.is-open {
    background: var(--background-light-shade);
}
.ow-grant-row-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 10px 12px;
    cursor: pointer;
    box-sizing: border-box;
}
.ow-grant-row-main:hover {
    border-color: var(--primary-light);
}
.ow-grant-copy {
    min-width: 0;
    flex: 1;
}
.ow-grant-name {
    display: block;
    margin: 0;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.35;
    color: var(--primary-dark);
    overflow-wrap: anywhere;
}
.ow-grant-meta {
    display: block;
    margin-top: 2px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-muted);
    overflow-wrap: anywhere;
}
.ow-grant-back {
    flex-shrink: 0;
    border: 2px solid var(--primary-dark);
    background: var(--white);
    color: var(--primary-dark);
    font-family: var(--main-font-family);
    font-size: 0.78rem;
    font-weight: 800;
    padding: 6px 10px;
    cursor: pointer;
}
.ow-grant-back:hover {
    background: var(--background-light-shade);
}
.ow-grant-danger {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 2px dotted var(--accent);
}
.ow-grant-delete {
    border: 2px solid var(--accent);
    background: var(--light-accent);
    color: var(--accent);
    font-family: var(--main-font-family);
    font-size: 0.82rem;
    font-weight: 800;
    padding: 8px 12px;
    cursor: pointer;
}
.ow-grant-delete:hover {
    background: var(--accent);
    color: var(--white);
}
.ow-grant-track {
    padding: 0 12px 12px;
    min-width: 0;
    box-sizing: border-box;
}
.ow-grant-block {
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 2px solid var(--primary-light);
    background: #e8f2fa;
    box-sizing: border-box;
}
.ow-grant-block + .ow-grant-block {
    border-color: var(--primary-dark);
    background: var(--white);
}
.ow-grant-kicker-sm {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--primary-light);
}
.ow-grant-facts {
    margin: 0 0 8px;
    display: grid;
    gap: 6px;
}
.ow-grant-facts div {
    display: grid;
    grid-template-columns: 9.5rem minmax(0, 1fr);
    gap: 8px;
    align-items: start;
}
.ow-grant-facts dt {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-grant-facts dd {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--primary-dark);
    overflow-wrap: anywhere;
}
.ow-grant-why,
.ow-grant-desc {
    margin: 0 0 8px;
    font-family: var(--main-font-family);
    font-size: 0.88rem;
    line-height: 1.45;
    font-weight: 600;
    color: var(--primary-dark);
    overflow-wrap: anywhere;
}
.ow-grant-desc { color: var(--text-muted); }
.ow-grant-link {
    display: inline-block;
    margin: 0 0 10px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--primary-light);
}
.ow-grant-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-grant-outcomes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 10px;
}
.ow-grant-outcome {
    padding: 6px 10px;
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    background: var(--white);
    color: var(--primary-dark);
    font-family: var(--main-font-family);
    font-size: 0.78rem;
    font-weight: 800;
    cursor: pointer;
}
.ow-grant-outcome.is-on {
    background: var(--primary-dark);
    color: var(--white);
}
.ow-grant-reason {
    width: 100%;
    min-width: 0;
    resize: vertical;
    box-sizing: border-box;
}
.ow-grant-amount {
    max-width: 12rem;
    margin: 0 0 10px;
}

.ow-story-form {
    margin-bottom: 16px;
    padding: 14px;
    border: 2px dashed var(--accent);
    border-radius: 10px;
    background: var(--white);
}

.ow-form-label {
    display: block;
    margin: 10px 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--primary-dark);
}

.ow-form-label:first-child { margin-top: 0; }
.ow-form-opt { font-weight: 500; text-transform: none; color: var(--text-muted); }

.ow-form-input {
    width: 100%;
    border: 2px solid var(--border-gray);
    border-radius: 8px;
    padding: 8px 10px;
    font: inherit;
    color: var(--primary-dark);
    box-sizing: border-box;
}

.ow-form-textarea { resize: vertical; min-height: 88px; }
.ow-form-textarea--need { min-height: 64px; }
.ow-form-input--plain {
    border: none;
    border-radius: 0;
    background: transparent;
    padding: 0;
}
.ow-form-input--plain:focus {
    outline: none;
}
.ow-form-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
#ow-grant-form .ow-form-row--catalog {
    margin-bottom: 22px;
}
#ow-grant-form .ow-form-row--catalog + .ow-need-block {
    margin-top: 8px;
}
.ow-cite-out { margin-top: 12px; }
.ow-cite-source {
    margin: 10px 0 0;
    text-align: right;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.ow-progress {
    padding: 14px;
    border-radius: 8px;
    border: 1px solid var(--border-gray);
    background: var(--white);
    margin-top: 14px;
}

.ow-progress-meta {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.ow-progress-bar { height: 6px; border-radius: 99px; background: var(--border-gray); overflow: hidden; }
.ow-progress-fill { height: 100%; width: 0; background: var(--accent); }
.ow-progress-msg { margin: 8px 0 0; font-size: 0.82rem; color: var(--text-muted); }
.ow-progress-log { list-style: none; margin: 10px 0 0; padding: 0; max-height: 140px; overflow: auto; }
.ow-progress-log li {
    margin: 0 0 3px;
    padding: 6px 8px;
    border-radius: 4px;
    background: var(--background-light-shade);
    font-size: 0.78rem;
    color: var(--text-muted);
}

@keyframes ow-spin {
    to { transform: rotate(360deg); }
}

.ow-spin {
    width: 14px;
    height: 14px;
    border: 2px solid var(--light-accent);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: ow-spin 0.7s linear infinite;
    flex-shrink: 0;
}

.ow-spin--lg {
    width: 18px;
    height: 18px;
    border-width: 2.5px;
}

.ow-agents { margin-top: 22px; }
.ow-agents-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 900;
    color: var(--primary-dark);
}

.ow-page > .ow-agent-box { margin: 0 0 22px; }

.ow-agent-box {
    margin-top: 18px;
    padding: 18px 0 0;
    border-top: 0.125rem solid var(--primary-light);
    animation: ow-box-in 0.28s ease;
    text-align: center;
}

@keyframes ow-box-in {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.ow-agent-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent);
}

.ow-agent-now {
    margin: 0 0 4px;
    font-size: 1.25rem;
    font-weight: 900;
    color: var(--primary-dark);
    line-height: 1.25;
}

.ow-agent-blurb-now {
    margin: 0 0 16px;
    font-size: 0.84rem;
    color: var(--text-muted);
    font-weight: 600;
}

.ow-agent-bar-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ow-agent-pct {
    flex-shrink: 0;
    min-width: 2.6em;
    text-align: right;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.04em;
    color: var(--accent);
}

.ow-agent-bar {
    flex: 1;
    height: 8px;
    border-radius: 99px;
    background: var(--light-accent);
    overflow: hidden;
}

.ow-agent-bar-fill {
    height: 100%;
    width: 0;
    background: var(--accent);
    transition: width 0.45s ease;
}

.ow-agent-box--tight { padding: 12px 14px 12px; }
.ow-agent-box--tight .ow-agent-now { font-size: 1rem; margin-top: 4px; }
.ow-agent-box--tight .ow-agent-blurb-now { margin-bottom: 10px; }

.ow-agent-box--barfirst { display: flex; flex-direction: column; }
.ow-agent-box--barfirst .ow-agent-box-head { order: 0; }
.ow-agent-box--barfirst .ow-agent-bar { order: 1; margin: 0 0 12px; }
.ow-agent-box--barfirst .ow-agent-now { order: 2; }
.ow-agent-box--barfirst .ow-agent-blurb-now { order: 3; margin-bottom: 0; }

.ow-agent-box--quiet {
    border-color: var(--primary-light);
}
.ow-agent-box--quiet .ow-agent-bar { background: rgba(58, 134, 183, 0.16); }
.ow-agent-box--quiet .ow-agent-bar-fill { background: var(--primary-light); }
.ow-agent-box--quiet .ow-agent-pct { color: var(--primary-light); }

.ow-agent-box--dark { padding: 0 0 16px; overflow: hidden; }
.ow-agent-box--dark .ow-agent-box-head {
    background: var(--primary-dark);
    padding: 14px 16px;
    margin: 0 0 16px;
}
.ow-agent-box--dark .ow-agent-box-head .ow-kicker,
.ow-agent-box--dark .ow-agents-title,
.ow-agent-box--dark .ow-agent-pct { color: var(--white); }
.ow-agent-box--dark .ow-agent-now,
.ow-agent-box--dark .ow-agent-blurb-now { padding: 0 16px; }
.ow-agent-box--dark .ow-agent-bar { margin: 0 16px; }

.ow-agent-box--stack .ow-agent-list { gap: 6px; }

.ow-agent-box--now .ow-agent:not(.is-running):not(.is-done) { opacity: 0.45; }
.ow-agent-box--now .ow-agent.is-running {
    padding: 16px 14px;
    border-width: 2px;
}
.ow-agent-box--now .ow-agent.is-running .ow-agent-name { font-size: 1.05rem; }
.ow-agent-box--now .ow-agent.is-running .ow-spin { width: 18px; height: 18px; }

.ow-agent-box--timeline .ow-agent-list { gap: 0; }
.ow-agent-box--timeline .ow-agent {
    border: none;
    border-radius: 0;
    background: transparent;
    padding: 8px 0 8px 4px;
    border-left: 2px solid var(--border-gray);
    margin-left: 10px;
}
.ow-agent-box--timeline .ow-agent.is-running {
    border-left-color: var(--accent);
    background: transparent;
}
.ow-agent-box--timeline .ow-agent.is-done {
    border-left-color: var(--primary-light);
}
.ow-agent-box--timeline .ow-agent-mark { margin-left: -16px; background: var(--white); }

.ow-agent-box--grid .ow-agent-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}
.ow-agent-box--grid .ow-agent {
    flex-direction: column;
    align-items: flex-start;
    min-height: 88px;
}

.ow-agent-box--ticker .ow-agent-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
}
.ow-agent-box--ticker .ow-agent {
    padding: 7px 12px;
    border-radius: 99px;
    gap: 8px;
}
.ow-agent-box--ticker .ow-agent-blurb { display: none; }

.ow-agent-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ow-agent {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 2px solid var(--border-gray);
    border-radius: 10px;
    background: var(--white);
}

.ow-agent.is-running {
    border-color: var(--accent);
    background: var(--light-accent);
}

.ow-agent.is-done { border-color: var(--primary-light); }

.ow-agent-mark {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ow-agent-check {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--primary-light);
    color: var(--white);
    font-size: 12px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ow-agent-wait {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--border-gray);
}

.ow-agent-copy { min-width: 0; }
.ow-agent-name {
    display: block;
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-agent-blurb {
    display: block;
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* Style 4 — cards */
.ow-agents--cards .ow-agent-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.ow-agents--cards .ow-agent {
    flex-direction: column;
    align-items: flex-start;
    min-height: 104px;
}

/* Style 5 — chips */
.ow-agents--chips .ow-agent-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
}

.ow-agents--chips .ow-agent {
    padding: 7px 12px;
    border-radius: 99px;
    gap: 8px;
}

.ow-agents--chips .ow-agent-blurb { display: none; }

/* Need / grant split — grid stays, pane grows, cards squish */
.ow-stories-stage,
.ow-grants-stage,
.ow-reports-stage {
    display: flex;
    overflow: hidden;
    padding: 0;
}
.ow-stories-main,
.ow-grants-main,
.ow-reports-main {
    flex: 1 1 auto;
    min-width: 0;
    overflow: auto;
    padding: 14px 16px;
}
.ow-need-pane {
    flex: 0 0 auto;
    width: 0;
    min-width: 0;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.88);
    border-left: 2px solid transparent;
    transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.3s ease;
}
.ow-stories-stage.is-split #ow-need-pane,
.ow-grants-stage.is-split #ow-grant-pane,
.ow-reports-stage.is-split #ow-report-pane {
    width: 42%;
    border-left-color: var(--primary-dark);
}
.ow-reports-stage.is-split #ow-report-pane {
    border-left-color: var(--primary-light);
}
.ow-report-expand-title { color: var(--primary-light); }
#ow-report-expand-body .ow-need-paste {
    border-radius: 0 8px 0 0;
    border-color: var(--primary-light);
}
#ow-grant-expand-body .ow-need-paste {
    border-radius: 0 8px 0 0;
}
.ow-report-story-list {
    margin: 0;
    padding: 0 0 0 1.1rem;
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-report-story-list li + li { margin-top: 6px; }
.ow-report-lib-card {
    border-color: var(--primary-light);
    background: rgba(255, 255, 255, 0.94);
}
.ow-report-lib-card.ow-need-card .ow-story-card-title { color: var(--primary-light); }
.ow-report-lib-card.ow-need-card.is-picked .ow-story-card-title,
.ow-report-lib-card.ow-need-card.is-picked .ow-story-card-snip,
.ow-report-lib-card.ow-need-card.is-picked .ow-need-card-place,
.ow-report-lib-card.ow-need-card.is-picked .ow-need-card-meta { color: #fff; }
.ow-kicker--report {
    color: var(--primary-light);
}
.ow-stories-stage.is-story-add #ow-story-pane {
    width: 34%;
    border-left-color: var(--primary-dark);
}
.ow-stories-stage.is-split.is-story-add #ow-need-pane {
    width: 32%;
}
.ow-need-pane-inner {
    min-width: 300px;
    width: 100%;
    height: 100%;
    overflow: auto;
}
.ow-need-pane-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 10px;
    align-items: start;
    padding: 14px 12px 4px 16px;
}
.ow-need-pane-head--end {
    grid-template-columns: 1fr;
    justify-items: end;
}
.ow-need-expand-title {
    margin: 0;
    font-family: var(--main-font-family);
    font-size: 1.15rem;
    font-weight: 900;
    font-style: normal;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--primary-dark);
    text-align: left;
    text-transform: none;
}
.ow-grant-expand-title { color: var(--primary-dark); }
#ow-report-expand-title,
.ow-report-expand-title { color: var(--primary-light); }
#ow-report-expand-body .ow-need-paste-text,
#ow-report-expand-body .ow-report-story-list {
    color: var(--primary-dark);
    font-weight: 600;
}
#ow-report-expand-body .ow-grant-kicker-sm,
#ow-report-expand-body .ow-kicker--report {
    background: var(--primary-light);
    color: #fff;
}
.ow-need-expand-body {
    padding: 16px 12px 20px 16px;
}
.ow-need-expand-body > .ow-story-form {
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}

.ow-modal-body,
.ow-need-pane-inner,
.ow-stories-main,
.ow-grants-main,
.ow-reports-main {
    scrollbar-width: thin;
    scrollbar-color: var(--primary-light) #dce8f4;
}
.ow-modal-body::-webkit-scrollbar,
.ow-need-pane-inner::-webkit-scrollbar,
.ow-stories-main::-webkit-scrollbar,
.ow-grants-main::-webkit-scrollbar {
    width: 11px;
}
.ow-modal-body::-webkit-scrollbar-button,
.ow-need-pane-inner::-webkit-scrollbar-button,
.ow-stories-main::-webkit-scrollbar-button,
.ow-grants-main::-webkit-scrollbar-button {
    display: none;
    height: 0;
    width: 0;
}
.ow-modal-body::-webkit-scrollbar-track,
.ow-need-pane-inner::-webkit-scrollbar-track,
.ow-stories-main::-webkit-scrollbar-track,
.ow-grants-main::-webkit-scrollbar-track {
    background: #dce8f4;
    border-radius: 99px;
    margin: 6px 0;
}
.ow-modal-body::-webkit-scrollbar-thumb,
.ow-need-pane-inner::-webkit-scrollbar-thumb,
.ow-stories-main::-webkit-scrollbar-thumb,
.ow-grants-main::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--primary-light), #3d7eb5);
    border-radius: 99px;
    border: 2px solid #dce8f4;
}
.ow-modal-body::-webkit-scrollbar-thumb:hover,
.ow-need-pane-inner::-webkit-scrollbar-thumb:hover,
.ow-stories-main::-webkit-scrollbar-thumb:hover,
.ow-grants-main::-webkit-scrollbar-thumb:hover {
    background: var(--primary-dark);
}

@media (prefers-reduced-motion: reduce) {
    .ow-need-pane,
    .ow-ring.is-picked::before,
    .ow-copy-btn.is-copied {
        animation: none !important;
        transition: none !important;
    }
}

/* Style lab */
.ow-style-lab { max-width: 76rem; margin: 0 auto; padding: 28px 2.5rem 72px; }
.ow-style-intro { margin: 0 0 22px; }
.ow-style-intro h1 {
    margin: 6px 0 8px;
    font-size: 1.7rem;
    font-weight: 900;
    color: var(--primary-dark);
}
.ow-style-intro p { margin: 0; color: var(--text-muted); font-weight: 600; max-width: 40rem; }
.ow-style-lab > .ow-masthead { margin-bottom: 20px; }
.ow-home-switch {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 10px 0 14px;
    margin-bottom: 18px;
    background: var(--background);
    border-bottom: 2px solid var(--primary-light);
}
.ow-home-switch-name {
    margin: 0 0 0 8px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.ow-home-switch .ow-text-btn.is-on {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-home-view { display: none; }
.ow-home-view.is-on { display: block; }
.ow-page .ow-grant-kicker-sm,
.ow-style-lab .ow-grant-kicker-sm,
.ow-swot-analysis .ow-grant-kicker-sm {
    display: inline-block;
    margin: 0;
    padding: 3px 9px;
    background: var(--primary-dark);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: none;
    font-family: inherit;
    border-radius: 8px;
}
.ow-page .ow-need-block .ow-grant-kicker-sm {
    margin: 0;
    border-radius: 0 8px 0 0;
}
.ow-page .ow-need-block .ow-kicker--need,
.ow-page .ow-need-block .ow-kicker--story,
.ow-page #ow-drawer-needs .ow-add-story-tab,
.ow-page #ow-drawer-needs .ow-add-story-tab.is-on {
    background: var(--uscb-purple);
    color: #fff;
}
.ow-kicker--need { background: var(--uscb-purple); color: #fff; }
.ow-kicker--story { background: var(--accent); color: #fff; }
.ow-kicker--uscb { background: var(--uscb-purple); color: #fff; }
.ow-kicker--uwphi { background: var(--dataset-health-outcomes); color: #fff; }
.ow-kicker--oi { background: var(--opportunity-insights-color); color: #fff; }
.ow-kicker--indiana { background: var(--state-of-indiana-color); color: #fff; }
.ow-page button.ow-board-tab,
.ow-style-lab button.ow-board-tab { cursor: pointer; }
.ow-mod {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.ow-mod > .ow-grant-kicker-sm {
    border-radius: 8px 8px 0 0;
}
.ow-mod > .ow-grant-mod,
.ow-mod > .ow-report-mod,
.ow-mod > .ow-need-paste,
.ow-mod > .ow-swot-box {
    width: 100%;
    border-radius: 0 8px 8px 8px;
}
.ow-mod > .ow-cite { margin: 0; }
.ow-badge--swot {
    cursor: pointer;
    font-family: inherit;
}
.ow-swot-stage {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.ow-swot-analysis {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 12px;
}
#ow-swot-modal .ow-modal--wide { max-width: min(94vw, 1400px); }
.ow-swot-quad {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.ow-swot-tab {
    display: inline-block;
    margin: 0;
    padding: 5px 12px;
    border-radius: 10px 10px 0 0;
    background: var(--primary-dark);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.ow-swot-quad--s .ow-swot-tab,
.ow-swot-quad--o .ow-swot-tab { background: var(--primary-dark); }
.ow-swot-quad--w .ow-swot-tab,
.ow-swot-quad--t .ow-swot-tab { background: var(--accent); }
.ow-swot-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 12px 14px 12px;
    background: #fff;
    border: 2px solid var(--primary-dark);
    border-radius: 0 12px 12px 12px;
    box-sizing: border-box;
    min-height: 10.5rem;
    color: var(--primary-dark);
}
.ow-swot-quad--s .ow-swot-box,
.ow-swot-quad--o .ow-swot-box {
    background: #fff;
    border-color: var(--primary-dark);
    color: var(--primary-dark);
}
.ow-swot-quad--w .ow-swot-box,
.ow-swot-quad--t .ow-swot-box {
    background: #fff;
    border-color: var(--accent);
    color: var(--accent);
}
.ow-swot-quad--s:hover:not(.is-on) .ow-swot-box,
.ow-swot-quad--o:hover:not(.is-on) .ow-swot-box {
    background: color-mix(in srgb, var(--primary-dark) 10%, #fff);
}
.ow-swot-quad--w:hover:not(.is-on) .ow-swot-box,
.ow-swot-quad--t:hover:not(.is-on) .ow-swot-box {
    background: color-mix(in srgb, var(--accent) 10%, #fff);
}
.ow-swot-quad--s.is-on .ow-swot-box,
.ow-swot-quad--o.is-on .ow-swot-box {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-swot-quad--w.is-on .ow-swot-box,
.ow-swot-quad--t.is-on .ow-swot-box {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.ow-swot-letter {
    display: block;
    font-size: clamp(2.4rem, 5vw, 3.8rem);
    line-height: 0.85;
    letter-spacing: -0.06em;
    font-weight: 800;
    color: inherit;
}
.ow-swot-box .ow-swot-lede {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: 0.86rem;
    font-weight: 650;
    line-height: 1.4;
    color: inherit;
}
.ow-swot-tray-kicker {
    margin: 0 0 10px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--primary-dark);
}
.ow-swot-tray--w .ow-swot-tray-kicker,
.ow-swot-tray--t .ow-swot-tray-kicker { color: var(--accent); }
.ow-swot-tiles {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
}
.ow-swot-tiles + .ow-swot-tiles { margin-top: 10px; }
.ow-swot-tray-empty {
    margin: 0;
    padding: 16px 4px;
    color: var(--text-muted);
    font-size: 0.95rem;
    font-weight: 650;
    font-style: italic;
}
.ow-swot-tile {
    flex: 1 1 0;
    min-width: 0;
    max-width: calc((100% - 40px) / 5);
    min-height: 5.75rem;
    padding: 12px 14px 2.15rem;
    background: #fff;
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    cursor: pointer;
    transition: flex 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.28s ease;
}
.ow-swot-tiles:has(.is-open) .ow-swot-tile { max-width: none; }
.ow-swot-tile.is-open { flex: 3.4 1 0; }
.ow-swot-tile--w,
.ow-swot-tile--t { border-color: var(--accent); }
.ow-swot-tile:hover { filter: brightness(0.99); }
.ow-swot-tile--s.is-open,
.ow-swot-tile--o.is-open { background: color-mix(in srgb, var(--primary-dark) 10%, #fff); }
.ow-swot-tile--w.is-open,
.ow-swot-tile--t.is-open { background: color-mix(in srgb, var(--accent) 10%, #fff); }
.ow-swot-expand {
    position: absolute;
    left: 10px;
    bottom: 0;
    z-index: 3;
    padding: 4px 10px;
    border-radius: 8px 8px 0 0;
    background: var(--primary-dark);
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ow-swot-tile--w .ow-swot-expand,
.ow-swot-tile--t .ow-swot-expand { background: var(--accent); }
.ow-swot-expand-out { display: none; }
.ow-swot-tile.is-open .ow-swot-expand-in { display: none; }
.ow-swot-tile.is-open .ow-swot-expand-out { display: inline; }
.ow-swot-tile-text {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--primary-dark);
    overflow-wrap: break-word;
}
.ow-swot-tile.is-open .ow-swot-tile-text {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}
.ow-swot-claim {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.ow-swot-claim .ow-body-text { margin: 0; flex: 1; min-width: 0; }
.ow-style-lab .ow-grant-kicker-sm.ow-kicker-spaced { margin-top: 16px; }
.ow-style-lab .ow-gist,
.ow-style-lab .ow-grant-mod,
.ow-style-lab .ow-report-mod,
.ow-style-lab .ow-pair,
.ow-style-lab .ow-prove-tile,
.ow-style-lab .ow-pick-need,
.ow-style-lab .ow-pick-read,
.ow-style-lab .ow-dossier,
.ow-style-lab .ow-grow,
.ow-style-lab .ow-board-col,
.ow-style-lab .ow-door-box,
.ow-style-lab .ow-swot-chip p:last-of-type,
.ow-style-lab .ow-lab-report-box,
.ow-style-lab .ow-spine-copy,
.ow-style-lab .ow-lab-list,
.ow-style-lab .ow-grant-door,
.ow-style-lab .ow-lab-grant-list article,
.ow-style-lab .ow-swot-strip span,
.ow-style-lab .ow-swot-grid div,
.ow-style-lab .ow-brief-letter p:last-child,
.ow-style-lab .ow-brief-swot-pane,
.ow-style-lab .ow-brief-grants,
.ow-style-lab .ow-need-mini {
    border-radius: 12px;
}
.ow-style-lab .ow-mod > .ow-grant-mod,
.ow-style-lab .ow-mod > .ow-report-mod {
    border-radius: 0 8px 8px 8px;
}
.ow-lab-mission {
    margin: 0 0 18px;
    font-size: 1.05rem;
    font-weight: 650;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-doors {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.ow-door {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}
.ow-door-box {
    width: 100%;
    min-height: 8.5rem;
    padding: 16px 16px 18px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    box-sizing: border-box;
}
.ow-door-count {
    display: block;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    color: var(--primary-dark);
}
.ow-door-box--need .ow-door-count { color: var(--uscb-purple); }
.ow-door-box--story .ow-door-count { color: var(--accent); }
.ow-door-label {
    display: block;
    margin-top: 8px;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--primary-dark);
}
.ow-swot-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}
.ow-swot-chip {
    padding: 0;
    background: transparent;
}
.ow-swot-chip p:last-of-type {
    margin: 0;
    padding: 10px 12px 8px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    font-size: 0.84rem;
    font-weight: 650;
    line-height: 1.4;
    color: var(--primary-dark);
}
.ow-swot-chip span {
    display: block;
    margin-top: 6px;
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--text-muted);
}
.ow-lab-reports { margin-top: 4px; }
.ow-lab-report-box {
    padding: 12px 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
}
.ow-lab-report-box label {
    display: block;
    margin: 0 0 8px;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--primary-dark);
}
.ow-spine { display: flex; flex-direction: column; gap: 22px; }
.ow-spine-block { min-width: 0; }
.ow-spine-copy {
    margin: 0;
    padding: 12px 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    font-size: 0.98rem;
    font-weight: 650;
    line-height: 1.5;
    color: var(--primary-dark);
}
.ow-spine-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px;
    margin-bottom: 8px;
}
.ow-need-minis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.ow-need-minis--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ow-need-mini {
    min-height: 7.5rem;
    padding: 12px;
    text-align: left;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
}
.ow-need-mini strong {
    display: block;
    margin-bottom: 8px;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--uscb-purple);
}
.ow-need-mini span {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--accent);
}
.ow-swot-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.ow-swot-grid div {
    padding: 12px 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
}
.ow-swot-grid b {
    display: block;
    margin-bottom: 6px;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--primary-dark);
}
.ow-swot-grid p { margin: 0; font-size: 0.86rem; font-weight: 650; line-height: 1.4; color: var(--primary-dark); }
.ow-spine-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.ow-lab-list {
    margin: 0 0 10px;
    padding: 10px 14px;
    list-style: none;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
}
.ow-lab-list li {
    margin: 0;
    padding: 6px 0;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--primary-dark);
}
.ow-lab-list li + li { border-top: 1px solid var(--primary-light); }
.ow-desk {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr) minmax(0, 0.9fr);
    gap: 18px;
    align-items: start;
}
.ow-desk-swot { display: flex; flex-direction: column; gap: 8px; }
.ow-desk-swot .ow-drop { margin: 0; }
.ow-desk-swot .ow-swot-lede { margin: 0; padding: 10px 12px 12px; font-size: 0.84rem; font-weight: 650; }
.ow-lab-sources { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ow-board-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.ow-board-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px;
}
.ow-board-hint {
    margin: 6px 0 8px;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.4;
    color: var(--text-muted);
}
.ow-board-hint--wide { max-width: 40rem; margin-bottom: 14px; }
.ow-board-path-lead {
    margin: 0 0 14px;
    font-size: 0.95rem;
    font-weight: 650;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-board-tab {
    cursor: pointer;
    font-family: inherit;
}
.ow-board-link {
    display: block;
    width: 100%;
    margin: 0;
    padding: 8px 0;
    border: 0;
    border-top: 1px solid var(--primary-light);
    background: none;
    text-align: left;
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--primary-dark);
    cursor: pointer;
}
.ow-board-col > .ow-board-link:first-child { border-top: 0; padding-top: 0; }
.ow-board-link:hover { color: var(--uscb-purple); }
.ow-board--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ow-board--path { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.85fr) minmax(0, 0.95fr); }
.ow-pair-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.ow-pair {
    min-height: 7.5rem;
    padding: 12px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    box-sizing: border-box;
}
.ow-pair-need {
    margin: 0 0 8px;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--uscb-purple);
}
.ow-pair-story {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 650;
    font-style: italic;
    line-height: 1.35;
    color: var(--accent);
}
.ow-prove-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 10px;
}
.ow-prove-tile {
    min-height: 7.5rem;
    padding: 12px;
    text-align: left;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    cursor: pointer;
    font-family: inherit;
}
.ow-prove-tile strong {
    display: block;
    margin-bottom: 6px;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--primary-dark);
}
.ow-prove-tile span {
    display: block;
    font-size: 0.75rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--text-muted);
}
.ow-prove-tile.is-on {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}
.ow-prove-tile.is-on strong,
.ow-prove-tile.is-on span { color: #fff; }
.ow-prove-dl { margin-top: 0; }
.ow-pair-grid > .ow-story-empty,
.ow-grant-mods > .ow-story-empty {
    grid-column: 1 / -1;
    margin: 0;
}
.ow-gist {
    min-height: 8.5rem;
    padding: 12px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 12px;
    box-sizing: border-box;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    width: 100%;
}
.ow-gist-need {
    margin: 0 0 8px;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--uscb-purple);
}
.ow-gist-story {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 650;
    line-height: 1.4;
    color: var(--accent);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ow-grant-mods { display: flex; flex-direction: column; gap: 8px; }
.ow-grant-mod {
    display: block;
    width: 100%;
    min-height: 8.5rem;
    padding: 12px;
    text-align: left;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    cursor: pointer;
    font-family: inherit;
    box-sizing: border-box;
}
.ow-grant-mod strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--primary-dark);
}
.ow-grant-mod-why {
    display: block;
    font-size: 0.8rem;
    font-weight: 650;
    line-height: 1.4;
    color: var(--primary-dark);
}
.ow-grant-mod:hover { box-shadow: 0 0 0 2px var(--primary-light); }
.ow-gist-more { margin-top: 10px; }
.ow-gist-extra {
    margin: 10px 0 0;
    font-size: 0.8rem;
    font-weight: 650;
    line-height: 1.4;
    color: var(--primary-dark);
}
.ow-report-mods { display: flex; flex-direction: column; gap: 8px; }
.ow-report-mod {
    display: block;
    width: 100%;
    padding: 12px;
    text-align: left;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    cursor: pointer;
    font-family: inherit;
    box-sizing: border-box;
}
.ow-report-mod strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-report-mod-meta {
    display: block;
    margin: 4px 0 8px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.ow-report-mod-why {
    display: block;
    font-size: 0.8rem;
    font-weight: 650;
    line-height: 1.4;
    color: var(--primary-dark);
}
.ow-report-mod.is-on {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}
.ow-report-mod.is-on strong,
.ow-report-mod.is-on .ow-report-mod-why { color: #fff; }
.ow-report-mod.is-on .ow-report-mod-meta { color: #d7e6f4; }
.ow-report-mod--uscb,
.ow-report-mod--uscb.is-on {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
}
.ow-report-mod--uscb strong,
.ow-report-mod--uscb .ow-report-mod-why,
.ow-report-mod--uscb.is-on strong,
.ow-report-mod--uscb.is-on .ow-report-mod-why { color: #fff; }
.ow-report-mod--uscb .ow-report-mod-meta,
.ow-report-mod--uscb.is-on .ow-report-mod-meta { color: #e8dffc; }
.ow-report-mod--uwphi,
.ow-report-mod--uwphi.is-on {
    background: var(--dataset-health-outcomes);
    border-color: var(--dataset-health-outcomes);
}
.ow-report-mod--uwphi strong,
.ow-report-mod--uwphi .ow-report-mod-why,
.ow-report-mod--uwphi.is-on strong,
.ow-report-mod--uwphi.is-on .ow-report-mod-why { color: #fff; }
.ow-report-mod--uwphi .ow-report-mod-meta,
.ow-report-mod--uwphi.is-on .ow-report-mod-meta { color: #ffd6d6; }
.ow-report-mod--oi,
.ow-report-mod--oi.is-on {
    background: var(--opportunity-insights-color);
    border-color: var(--opportunity-insights-color);
}
.ow-report-mod--oi strong,
.ow-report-mod--oi .ow-report-mod-why,
.ow-report-mod--oi.is-on strong,
.ow-report-mod--oi.is-on .ow-report-mod-why { color: #123; }
.ow-report-mod--oi .ow-report-mod-meta,
.ow-report-mod--oi.is-on .ow-report-mod-meta { color: #1a4a44; }
.ow-report-mod--indiana,
.ow-report-mod--indiana.is-on {
    background: var(--state-of-indiana-color);
    border-color: var(--state-of-indiana-color);
}
.ow-report-mod--indiana strong,
.ow-report-mod--indiana .ow-report-mod-why,
.ow-report-mod--indiana.is-on strong,
.ow-report-mod--indiana.is-on .ow-report-mod-why { color: #fff; }
.ow-report-mod--indiana .ow-report-mod-meta,
.ow-report-mod--indiana.is-on .ow-report-mod-meta { color: #d4f0e2; }
.ow-report-mod--uscb.is-on,
.ow-report-mod--uwphi.is-on,
.ow-report-mod--oi.is-on {
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4);
}
.ow-board--pick { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) minmax(0, 1.1fr); }
.ow-pick-list { display: flex; flex-direction: column; gap: 8px; }
.ow-pick-need {
    padding: 12px;
    text-align: left;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--uscb-purple);
    cursor: pointer;
}
.ow-pick-need.is-on {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
    color: #fff;
}
.ow-pick-read {
    min-height: 10rem;
    padding: 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
}
.ow-pick-read .ow-report-mod { padding: 12px; }
.ow-dossier-list { display: flex; flex-direction: column; gap: 10px; }
.ow-dossier {
    padding: 12px 14px 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    cursor: pointer;
}
.ow-dossier h4 {
    margin: 6px 0 8px;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-dossier > p {
    margin: 0 0 8px;
    font-size: 0.84rem;
    font-weight: 650;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-dossier > .ow-dossier-need {
    color: var(--uscb-purple);
    font-weight: 800;
}
.ow-dossier.is-on { box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.4); }
.ow-dossier--uscb,
.ow-dossier--uscb.is-on {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
    color: #fff;
}
.ow-dossier--uscb h4,
.ow-dossier--uscb > p { color: #fff; }
.ow-dossier--uscb .ow-dossier-need { color: #f3ecff; }
.ow-dossier--uscb .ow-report-mod-meta { color: #e8dffc; }
.ow-dossier--uwphi,
.ow-dossier--uwphi.is-on {
    background: var(--dataset-health-outcomes);
    border-color: var(--dataset-health-outcomes);
    color: #fff;
}
.ow-dossier--uwphi h4,
.ow-dossier--uwphi > p { color: #fff; }
.ow-dossier--uwphi .ow-dossier-need { color: #ffe4e4; }
.ow-dossier--uwphi .ow-report-mod-meta { color: #ffd6d6; }
.ow-dossier--oi,
.ow-dossier--oi.is-on {
    background: var(--opportunity-insights-color);
    border-color: var(--opportunity-insights-color);
    color: #123;
}
.ow-dossier--oi h4,
.ow-dossier--oi > p { color: #123; }
.ow-dossier--oi .ow-dossier-need { color: #1a4a44; }
.ow-dossier--oi .ow-report-mod-meta { color: #1a4a44; }
.ow-dossier--uscb .ow-grant-kicker-sm,
.ow-dossier--uwphi .ow-grant-kicker-sm {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}
.ow-dossier--oi .ow-grant-kicker-sm {
    background: rgba(18, 51, 47, 0.16);
    color: #123;
}
.ow-grow-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.ow-grow {
    padding: 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    cursor: pointer;
    min-height: 8rem;
}
.ow-grow.is-open { grid-column: 1 / -1; }
.ow-grow-more { display: none; margin-top: 12px; }
.ow-grow.is-open .ow-grow-more { display: block; }
.ow-grow-more p {
    margin: 0 0 12px;
    font-size: 0.84rem;
    font-weight: 650;
    line-height: 1.45;
    color: var(--primary-dark);
}
.ow-board--5wide { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.ow-board-need { padding: 8px 0; }
.ow-board-need + .ow-board-need { border-top: 1px solid var(--primary-light); }
.ow-board-need p { padding: 0; border: 0; color: var(--uscb-purple); }
.ow-board-need span {
    display: block;
    margin-top: 4px;
    font-size: 0.78rem;
    font-weight: 650;
    font-style: italic;
    color: var(--accent);
}
.ow-grant-door {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
    min-height: 8.5rem;
    padding: 16px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}
.ow-grant-door-count {
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    color: var(--primary-dark);
}
.ow-grant-door > span:nth-child(2) {
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--primary-dark);
}
.ow-grant-door-go {
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--text-muted);
}
.ow-grant-door:hover { box-shadow: 0 0 0 2px var(--primary-light); }
.ow-lab-page {
    margin-top: 28px;
    padding-top: 18px;
    border-top: 2px solid var(--primary-dark);
}
.ow-lab-page-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.ow-lab-page-bar h3 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 900;
    color: var(--primary-dark);
}
.ow-lab-grant-list { display: flex; flex-direction: column; gap: 8px; }
.ow-lab-grant-list article {
    padding: 12px 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
}
.ow-lab-grant-list h4 {
    margin: 0 0 4px;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--primary-dark);
}
.ow-lab-grant-list p {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 650;
    color: var(--text-muted);
}
.ow-swot-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 16px;
}
.ow-swot-strip span {
    padding: 8px 10px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--primary-dark);
}
.ow-swot-strip b { color: var(--text-muted); }
.ow-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}
.ow-board-col {
    padding: 10px 12px 12px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 0 8px 8px;
}
.ow-board-col p {
    margin: 0;
    padding: 8px 0;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--uscb-purple);
}
.ow-board-col--story p { color: var(--accent); }
.ow-board-col > p + p { border-top: 1px solid var(--primary-light); }
.ow-brief-letter { margin-bottom: 20px; }
.ow-brief-letter p:last-child {
    margin: 0;
    padding: 14px 16px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    font-size: 1.02rem;
    font-weight: 650;
    line-height: 1.5;
    color: var(--primary-dark);
}
.ow-brief-prove {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 18px;
    margin-bottom: 20px;
}
.ow-brief-swot { margin-bottom: 20px; }
.ow-brief-swot-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 0; }
.ow-brief-swot-tabs .ow-text-btn.is-on {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-brief-swot-tabs .ow-text-btn--story.is-on {
    background: var(--accent);
    border-color: var(--accent);
}
.ow-brief-swot-tabs .ow-text-btn--need.is-on {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
}
.ow-brief-swot-pane {
    padding: 14px 16px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    font-size: 0.95rem;
    font-weight: 650;
    line-height: 1.5;
    color: var(--primary-dark);
}
.ow-brief-foot { margin-top: 4px; }
.ow-brief-grants {
    margin: 0;
    padding: 12px 14px;
    background: var(--white);
    border: 2px solid var(--primary-dark);
    border-radius: 0 8px 8px 8px;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--primary-dark);
}

.ow-text-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 11px;
    border: 2px solid var(--primary-dark);
    border-radius: 8px;
    background: var(--white);
    color: var(--primary-dark);
    font-family: var(--main-font-family);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
}
.ow-text-btn--coral {
    border-color: var(--accent);
    color: var(--accent);
}
.ow-text-btn--ghost {
    border-color: transparent;
    padding-left: 4px;
    padding-right: 4px;
}
.ow-text-btn:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-text-btn--coral:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.ow-text-btn--need {
    border-color: var(--uscb-purple);
    color: var(--uscb-purple);
}
.ow-text-btn--grant {
    border-color: var(--primary-dark);
    color: var(--primary-dark);
}
.ow-text-btn--data {
    border-color: var(--primary-light);
    color: var(--primary-light);
}
.ow-text-btn--story {
    border-color: var(--accent);
    color: var(--accent);
}
.ow-text-btn--fill {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.ow-text-btn--need.ow-text-btn--fill {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
    color: #fff;
}
.ow-text-btn--grant.ow-text-btn--fill {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-text-btn--data.ow-text-btn--fill {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
}
.ow-text-btn--story.ow-text-btn--fill {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.ow-text-btn--fill:hover,
.ow-text-btn--need:hover,
.ow-text-btn--need.ow-text-btn--fill:hover,
.ow-text-btn--story:hover,
.ow-text-btn--story.ow-text-btn--fill:hover {
    color: #fff;
}
.ow-text-btn--need:hover,
.ow-text-btn--need.ow-text-btn--fill:hover {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
}
.ow-text-btn--grant:hover,
.ow-text-btn--grant.ow-text-btn--fill:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-text-btn--data:hover,
.ow-text-btn--data.ow-text-btn--fill:hover {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
}
.ow-text-btn--story:hover,
.ow-text-btn--story.ow-text-btn--fill:hover,
.ow-text-btn--fill:hover {
    background: var(--accent);
    border-color: var(--accent);
}
.ow-lib-stat {
    cursor: default;
    color: #fff;
}
.ow-lib-stat--need,
.ow-lib-stat--need:hover {
    background: var(--uscb-purple);
    border-color: var(--uscb-purple);
    color: #fff;
}
.ow-lib-stat--story,
.ow-lib-stat--story:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.ow-lib-stat--grant,
.ow-lib-stat--grant:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}
.ow-lib-stat--won,
.ow-lib-stat--won:hover {
    background: #eef4f1;
    border-color: var(--primary-dark);
    color: var(--primary-dark);
}
.ow-lib-stat--data,
.ow-lib-stat--data:hover {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
}


[hidden] { display: none !important; }

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 900px) {
    .ow-page { padding: 32px 16px 56px; }
    .ow-page.has-results { padding-top: 40px; }
    .ow-style-lab { padding: 20px 16px 56px; }
    .ow-main { grid-template-columns: 1fr; }
    .ow-cabinet-head { padding: 14px 14px 0; }
    .ow-cabinet-tabs { padding: 0; }
    .ow-cabinet-tab { padding: 10px 18px 9px; font-size: 12px; }
    .ow-cabinet-tab + .ow-cabinet-tab { margin-left: -12px; }
    .ow-cabinet-sheet { min-height: 60vh; border-radius: 0 12px 12px 12px; }
    .ow-cabinet[data-open="home"] .ow-cabinet-sheet { border-radius: 12px; }
    .ow-pipeline { padding: 20px 16px 28px; }
    .ow-pipeline--in-card { padding: 16px 0 4px; }
    .ow-pipeline-track { flex-direction: column; gap: 14px; }
    .ow-pipe-join { flex: 0 0 18px; width: 4px; height: 18px; margin: 0 auto; }
    .ow-pipe-join::after {
        right: 50%;
        top: auto;
        bottom: -6px;
        transform: translateX(50%) rotate(135deg);
    }
    .ow-swot-analysis { grid-template-columns: 1fr; }
    .ow-swot-tiles { flex-wrap: wrap; }
    .ow-swot-tile,
    .ow-swot-tiles:has(.is-open) .ow-swot-tile {
        max-width: none;
        flex: 1 1 calc(50% - 6px);
    }
    .ow-swot-tile.is-open { flex: 1 1 100%; }
    .ow-report-shelf-body { grid-template-columns: 1fr; }
    .ow-who-row { grid-template-columns: 1fr; }
    .ow-name-line { flex-wrap: wrap; }
    .ow-tiles { grid-template-columns: 1fr; }
    .ow-swot { flex-direction: column; }
    .ow-story-grid,
    .ow-skel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ow-doors, .ow-swot-row, .ow-board, .ow-board--3, .ow-board--path, .ow-board--pick, .ow-board--5wide, .ow-grow-grid, .ow-swot-strip, .ow-desk, .ow-spine-split, .ow-brief-prove, .ow-need-minis { grid-template-columns: 1fr; }
    .ow-agent-box--grid .ow-agent-list { grid-template-columns: 1fr; }
}
