.bloom-planner-page { --planner-gap: #986415; --planner-gap-soft: #fff7e8; padding-bottom: 48px; }
[data-bs-theme="dark"] .bloom-planner-page { --planner-gap: #efbe70; --planner-gap-soft: #302a1d; }
.bloom-planner-page .app-page-inner { width: min(1540px, 100%); }
.bloom-planner-page *, .bloom-planner-page *::before, .bloom-planner-page *::after { box-sizing: border-box; }
.bloom-planner-page [hidden] { display: none !important; }
.bloom-planner-page :is(button, a, input, select, summary):focus-visible { outline: 3px solid var(--app-page-green); outline-offset: 3px; }
.bloom-planner-page button:disabled { opacity: .5; cursor: not-allowed; }
.flowering-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.flowering-ui-icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.2em; }
.planner-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 0 0 24px; }
.planner-hero .app-page-eyebrow { margin-bottom: 8px; }
.planner-hero h1 { margin: 0; color: var(--app-page-ink); font-size: clamp(1.85rem, 3.5vw, 2.7rem); font-weight: 760; line-height: 1.12; letter-spacing: -.045em; }
.planner-hero p { margin: 10px 0 0; color: var(--app-page-muted); font-size: .96rem; line-height: 1.6; }
.planner-hero-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: 8px; flex-shrink: 0; max-width: 350px; }
.planner-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 9px 14px; border: 1px solid var(--app-page-line); border-radius: 9px; background: var(--app-page-surface); color: var(--app-page-ink); font-family: inherit; font-size: .8rem; font-weight: 650; line-height: 1.3; text-decoration: none; cursor: pointer; transition: border-color 120ms ease, background 120ms ease; }
.planner-button:hover { border-color: var(--app-page-green); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.planner-button-primary { border-color: var(--app-page-green); background: var(--app-page-green); color: var(--app-page-surface); }
.planner-button-primary:hover { border-color: var(--app-page-green-dark); background: var(--app-page-green-dark); color: var(--app-page-surface); }
.planner-button-quiet { border-color: transparent; background: transparent; color: var(--app-page-muted); }
.planner-button-small { padding: 7px 12px; }
.planner-panel { min-width: 0; border: 1px solid var(--app-page-line); border-radius: var(--app-page-radius); background: var(--app-page-surface); color: var(--app-page-ink); box-shadow: 0 4px 16px color-mix(in srgb, var(--app-page-ink) 3%, transparent); }
.planner-project { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(320px, 1.2fr); gap: 14px 24px; padding: 18px 22px 13px; }
.planner-project:has(#plannerRecipePicker[hidden]) { grid-template-columns: minmax(0, 1fr); }
.planner-account-cta { grid-column: 1 / -1; order: -1; }
.planner-account-cta h2 { margin: 0 0 6px; color: var(--app-page-ink); font-size: 1.05rem; font-weight: 720; }
.planner-account-cta p { margin: 0; color: var(--app-page-muted); font-size: .8rem; line-height: 1.6; }
.planner-account-login { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.planner-account-login button { min-height: 44px; padding: 6px 4px; border: 0; background: transparent; color: var(--app-page-green-dark); font: inherit; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.planner-project-open, .planner-project-save { display: flex; align-items: end; gap: 10px; min-width: 0; }
.planner-project-open .planner-field, .planner-project-save .planner-field { flex: 1; }
.planner-project-open .planner-button, .planner-project-save .planner-button { flex-shrink: 0; }
.planner-project-save { margin: 0; }
.planner-project-status { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; color: var(--app-page-muted); font-size: .73rem; line-height: 1.5; }
.planner-project-status [data-state="error"], .planner-project-status .is-error { color: var(--bs-danger, #b42318); }
.planner-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; margin: 0; }
.planner-field > span, .planner-target legend { margin: 0; color: var(--app-page-muted); font-size: .72rem; font-weight: 650; line-height: 1.4; }
.planner-field input, .planner-field select { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--app-page-line); border-radius: 8px; background-color: var(--app-page-surface); color: var(--app-page-ink); font-family: inherit; font-size: .84rem; line-height: 1.35; }
.planner-field select { padding-right: 28px; }
.planner-field input::placeholder { color: var(--app-page-muted); opacity: .9; }
.planner-field input:hover, .planner-field select:hover { border-color: color-mix(in srgb, var(--app-page-green) 60%, var(--app-page-line)); }
.planner-feedback { display: flex; align-items: center; gap: 10px; min-height: 38px; color: var(--app-page-green-dark); font-size: .8rem; line-height: 1.5; }
.planner-feedback:has(#plannerMessage:empty):has(#plannerUndo[hidden]) { min-height: 18px; }
.planner-feedback.is-error { color: var(--bs-danger, #b42318); }
.planner-feedback:has(#plannerMessage:not(:empty)), .planner-feedback:has(#plannerUndo:not([hidden])) { position: sticky; top: calc(var(--topbar-height, 64px) + 8px); z-index: 4; margin: 12px 0; padding: 8px 12px; border: 1px solid var(--app-page-line); border-radius: 10px; background: var(--app-page-surface); box-shadow: 0 4px 16px color-mix(in srgb, var(--app-page-ink) 8%, transparent); }
.planner-feedback > button { flex-shrink: 0; }
.planner-season { padding: 24px; scroll-margin-top: 145px; }
.planner-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.planner-section-heading > div { min-width: 0; }
.planner-section-heading h2 { margin: 5px 0 0; color: var(--app-page-ink); font-size: 1.12rem; font-weight: 730; line-height: 1.3; letter-spacing: -.02em; }
.planner-section-heading p { margin: 5px 0 0; color: var(--app-page-muted); font-size: .79rem; line-height: 1.5; }
.planner-section-heading > button { flex-shrink: 0; }
.planner-kicker { color: var(--app-page-green-dark); font-size: .67rem; font-weight: 750; text-transform: uppercase; letter-spacing: .09em; }
.planner-season-controls { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 18px; margin: 22px 0 20px; }
.planner-target { display: flex; align-items: center; gap: 9px; min-width: 0; margin: 0; padding: 0; border: 0; }
.planner-target legend { float: none; width: auto; margin-bottom: 5px; }
.planner-target .planner-field { width: 136px; }
.planner-range-to { color: var(--app-page-muted); font-size: .8rem; }
.planner-analysis-field { width: 240px; }
.planner-coverage { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; }
.planner-month { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; min-height: 107px; padding: 12px 4px 10px; border: 1px solid var(--app-page-line); border-radius: 10px; background: var(--app-page-canvas); color: var(--app-page-muted); cursor: pointer; }
.planner-month-name { font-size: .71rem; font-weight: 680; }
.planner-month strong { color: inherit; font-size: 1.65rem; line-height: 1; font-weight: 730; font-variant-numeric: tabular-nums; }
.planner-month small { display: flex; align-items: end; justify-content: center; min-height: 2.5em; max-width: 100%; font-size: .65rem; line-height: 1.25; }
.planner-month.has-bloom { border-color: color-mix(in srgb, var(--app-page-green) 20%, var(--app-page-line)); background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.planner-month.is-gap { border-color: color-mix(in srgb, var(--planner-gap) 28%, var(--app-page-line)); background: var(--planner-gap-soft); color: var(--planner-gap); }
.planner-month.is-outside { border-color: var(--app-page-line); background: var(--app-page-canvas); color: var(--app-page-muted); }
.planner-month:hover { border-color: var(--app-page-green); box-shadow: 0 0 0 1px var(--app-page-green); }
.planner-month.is-active, .planner-month[aria-pressed="true"] { border-color: var(--app-page-green); box-shadow: 0 0 0 2px var(--app-page-green); }
.planner-coverage-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 17px; }
.planner-coverage-summary { margin: 0; font-size: .81rem; font-weight: 650; line-height: 1.5; }
.planner-legend { display: flex; flex-wrap: wrap; gap: 12px; color: var(--app-page-muted); font-size: .68rem; }
.planner-legend > span { display: inline-flex; align-items: center; gap: 5px; }
.planner-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; }
.planner-legend-bloom { background: var(--app-page-green); }
.planner-legend-gap { border: 1px solid var(--planner-gap); background: var(--planner-gap-soft); }
.planner-data-note { margin: 11px 0 0; color: var(--app-page-muted); font-size: .7rem; line-height: 1.55; }
.planner-unknown { margin: 10px 0 0; padding: 9px 12px; border-radius: 7px; background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .75rem; line-height: 1.5; }
.planner-workspace { display: grid; grid-template-columns: minmax(0, 1.38fr) minmax(360px, 1fr); align-items: start; gap: 20px; margin-top: 20px; }
.planner-selection-panel > .planner-section-heading, .planner-candidates-panel > .planner-section-heading { padding: 21px 20px 17px; }
.planner-selection-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: 4px; }
.planner-count { display: inline-grid; place-items: center; min-width: 25px; min-height: 25px; margin-left: 5px; padding: 3px 6px; border-radius: 7px; background: var(--app-page-green-soft); color: var(--app-page-green-dark); font-size: .75rem; vertical-align: 2px; }
.planner-selection { position: relative; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.planner-calendar { width: 100%; min-width: 680px; margin: 0; border-spacing: 0; border-collapse: separate; table-layout: fixed; font-size: .7rem; }
.planner-calendar th, .planner-calendar td { height: 67px; padding: 8px 3px; border-bottom: 1px solid var(--app-page-line); text-align: center; vertical-align: middle; }
.planner-calendar thead th { height: 39px; border-top: 1px solid var(--app-page-line); background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .63rem; font-weight: 650; }
.planner-calendar th:first-child { position: sticky; left: 0; z-index: 1; width: 190px; padding-left: 20px; padding-right: 10px; background: var(--app-page-surface); text-align: left; box-shadow: 1px 0 0 var(--app-page-line); }
.planner-calendar thead th:first-child { z-index: 2; background: var(--app-page-canvas); }
.planner-calendar th small { display: block; margin-top: 2px; color: var(--app-page-muted); font-size: .65rem; font-weight: 400; line-height: 1.4; }
.planner-calendar th:last-child, .planner-calendar td:last-child { width: 64px; padding-right: 8px; }
.planner-calendar td.is-target { background: color-mix(in srgb, var(--app-page-green-soft) 24%, var(--app-page-surface)); }
.planner-calendar td.is-flowering { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.planner-calendar td.is-unknown { color: var(--app-page-muted); background: repeating-linear-gradient(135deg, transparent, transparent 4px, color-mix(in srgb, var(--app-page-line) 35%, transparent) 4px, color-mix(in srgb, var(--app-page-line) 35%, transparent) 5px); }
.planner-bloom { display: block; width: 16px; height: 9px; max-width: 100%; margin: auto; border-radius: 3px; background: var(--app-page-green); }
.planner-plant-name { display: inline-block; max-width: 100%; min-height: 44px; padding: 5px 0; border: 0; background: transparent; color: var(--app-page-ink); font-family: inherit; font-size: .8rem; font-weight: 670; line-height: 1.4; overflow-wrap: anywhere; text-align: left; text-decoration: none; cursor: pointer; }
.planner-plant-name:hover { color: var(--app-page-green-dark); text-decoration: underline; text-underline-offset: 3px; }
.planner-remove { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 44px; min-height: 44px; padding: 5px 2px; border: 0; border-radius: 7px; background: transparent; color: var(--app-page-muted); font-size: .68rem; cursor: pointer; }
.planner-remove-label { font-size: .6rem; line-height: 1.2; }
.planner-remove:hover { background: color-mix(in srgb, var(--bs-danger, #b42318) 7%, var(--app-page-surface)); color: var(--bs-danger, #b42318); }
.planner-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 250px; padding: 35px 24px; background: linear-gradient(180deg, var(--app-page-surface), var(--app-page-canvas)); text-align: center; }
.planner-empty h3 { margin: 0; font-size: 1.05rem; font-weight: 700; }
.planner-empty p { max-width: 330px; margin: 0; color: var(--app-page-muted); font-size: .82rem; line-height: 1.65; }
.planner-empty .planner-button { margin-top: 6px; }
.planner-curated { margin-top: 28px; scroll-margin-top: 96px; }
.planner-curated-heading { margin-bottom: 17px; }
.planner-curated-actions { display: flex; flex-wrap: wrap; flex-shrink: 0; gap: 8px; }
.planner-curated-intro { margin: 0 0 17px; color: var(--app-page-muted); font-size: .8rem; line-height: 1.6; }
#plannerCuratedToggle { min-width: 112px; }
#plannerCuratedToggle::after { content: ""; width: 7px; height: 7px; margin-left: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(2px) rotate(225deg); }
#plannerCuratedToggle[aria-expanded="false"]::after { transform: translateY(-2px) rotate(45deg); }
.planner-mix-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 18px; }
.planner-mix-card { display: flex; flex-direction: column; align-self: stretch; overflow: hidden; }
.planner-mix-grid:has(.planner-mix-details[open]) .planner-mix-card { align-self: start; }
.planner-mix-photo .planner-candidate-figure { display: block; margin: 0; }
.planner-mix-photo .planner-candidate-photo { display: block; width: 100%; height: 148px; border-radius: 0; }
.planner-mix-photo .planner-photo-credit { margin: 8px 18px 0; font-size: .61rem; }
.planner-mix-photo > p { margin: 4px 18px 0; color: var(--app-page-muted); font-size: .65rem; }
.planner-mix-copy { padding: 20px 18px 0; }
.planner-mix-copy h3 { margin: 6px 0 9px; color: var(--app-page-ink); font-size: 1.06rem; font-weight: 730; line-height: 1.35; }
.planner-mix-copy > p { margin: 0 0 12px; color: var(--app-page-muted); font-size: .78rem; line-height: 1.6; }
.planner-mix-copy > .planner-mix-site { color: var(--app-page-green-dark); font-size: .72rem; font-weight: 600; }
.planner-mix-site i { margin-right: 4px; }
.planner-mix-months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3px; margin: 16px 0 8px; }
.planner-mix-months > span { display: grid; justify-items: center; gap: 4px; min-width: 0; padding: 7px 0; border-radius: 5px; background: var(--app-page-canvas); color: var(--app-page-muted); font-size: .62rem; }
.planner-mix-months > .has-bloom { background: var(--app-page-green-soft); color: var(--app-page-green-dark); }
.planner-mix-months b { font-weight: 650; }
.planner-mix-months > span > span { font-variant-numeric: tabular-nums; }
.planner-mix-details { font-size: .75rem; line-height: 1.6; }
.planner-mix-details summary { min-height: 44px; padding: 11px 0; color: var(--app-page-green-dark); font-weight: 600; cursor: pointer; }
.planner-mix-details ul { display: grid; gap: 7px; margin: 8px 0 15px; padding-left: 18px; }
.planner-mix-details li small { display: block; color: var(--app-page-muted); font-size: .67rem; }
.planner-mix-details p { margin: 0 0 10px; color: var(--app-page-muted); }
.planner-mix-details a { display: inline-flex; align-items: center; min-height: 44px; color: var(--app-page-green-dark); text-underline-offset: 3px; }
.planner-mix-actions { margin-top: auto; padding: 14px 18px 18px; }
.planner-mix-actions p { margin: 0 0 8px; color: var(--app-page-muted); font-size: .72rem; line-height: 1.5; }
.planner-mix-actions p:focus-visible { outline: 2px solid var(--app-page-green); outline-offset: 3px; }
.planner-mix-actions .planner-button { width: 100%; }
.planner-candidate-column { display: grid; gap: 20px; min-width: 0; }
.planner-filters { display: grid; gap: 12px; padding: 0 20px; }
.planner-filter-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.planner-advanced { padding: 0 0 9px; border-bottom: 1px solid var(--app-page-line); }
.planner-advanced summary { display: list-item; min-height: 44px; padding: 11px 0; color: var(--app-page-green-dark); font-size: .77rem; font-weight: 650; cursor: pointer; }
.planner-advanced > p { margin: 0 0 13px; color: var(--app-page-muted); font-size: .72rem; line-height: 1.5; }
.planner-advanced .planner-filter-pair + .planner-filter-pair { margin-top: 12px; }
.planner-checkbox { display: flex; align-items: center; gap: 9px; min-height: 44px; margin: 8px 0 0; color: var(--app-page-muted); font-size: .74rem; cursor: pointer; }
.planner-checkbox input { width: 17px; height: 17px; accent-color: var(--app-page-green); }
.planner-candidate-summary { margin: 0; padding: 15px 20px 11px; color: var(--app-page-muted); font-size: .75rem; line-height: 1.5; }
.planner-candidate-list { display: grid; }
.planner-candidate { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 9px 13px; padding: 17px 20px; border-top: 1px solid var(--app-page-line); }
.planner-candidate-photo, .planner-photo-placeholder { width: 64px; height: 72px; border-radius: 9px; object-fit: cover; background: var(--app-page-canvas); }
.planner-photo-placeholder { display: grid; align-content: center; justify-items: center; gap: 3px; padding: 4px; color: var(--app-page-muted); font-size: .57rem; text-align: center; }
.planner-photo-placeholder svg { width: 24px; height: 24px; margin-bottom: 3px; color: var(--app-page-green); }
.planner-candidate-copy { min-width: 0; }
.planner-candidate-figure { display: contents; }
.planner-candidate-figure .planner-candidate-photo, .planner-candidate > .planner-photo-placeholder { grid-column: 1; grid-row: 1; }
.planner-photo-credit { grid-column: 1 / -1; grid-row: 3; margin: 0; color: var(--app-page-muted); font-size: .64rem; line-height: 1.45; overflow-wrap: anywhere; }
.planner-photo-credit a { color: inherit; text-underline-offset: 2px; }
.planner-candidate-copy { grid-column: 2; grid-row: 1; }
.planner-candidate-copy > p:not(.planner-reason) { margin: 5px 0 0; color: var(--app-page-muted); font-size: .73rem; line-height: 1.45; }
.planner-candidate h3 { margin: -4px 0 0; font-size: .87rem; }
.planner-candidate .planner-plant-name { min-height: 0; padding: 3px 0; font-size: .88rem; }
.planner-candidate-copy > small { display: block; color: var(--app-page-muted); font-size: .7rem; line-height: 1.4; }
.planner-reason { margin: 7px 0 0; color: var(--app-page-green-dark); font-size: .75rem; font-weight: 570; line-height: 1.55; }
.planner-candidate-actions { grid-column: 2; grid-row: 2; display: flex; align-items: center; gap: 8px; }
.planner-candidate-actions .planner-button { flex: 1; padding: 8px 10px; font-size: .74rem; }
.planner-tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 7px 0; }
.planner-tag { display: inline-flex; padding: 4px 6px; border: 1px solid var(--app-page-line); border-radius: 5px; color: var(--app-page-muted); font-size: .64rem; line-height: 1.4; }
.planner-more { padding: 0 20px 18px; }
.planner-more:has([hidden]) { display: none; }
.planner-more .planner-button { width: 100%; }
.planner-details { order: -1; padding: 20px; scroll-margin-top: 145px; }
.planner-details > .planner-section-heading { margin-bottom: 16px; }
.planner-detail-photo { width: 100%; max-height: 240px; margin-bottom: 15px; border-radius: 9px; object-fit: cover; }
.planner-detail-heading h3, .planner-details h3 { margin: 0 0 4px; color: var(--app-page-ink); font-size: 1.1rem; font-weight: 700; line-height: 1.4; }
.planner-detail-heading p, .planner-details p { color: var(--app-page-muted); font-size: .78rem; line-height: 1.6; }
.planner-details h4 { margin: 20px 0 10px; font-size: .88rem; font-weight: 700; }
.planner-facts { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(0, 1.5fr); gap: 9px 12px; margin: 18px 0; font-size: .76rem; line-height: 1.5; }
.planner-facts dt { color: var(--app-page-muted); font-weight: 500; }
.planner-facts dd { margin: 0; color: var(--app-page-ink); }
.planner-ratings { display: grid; gap: 9px; margin: 12px 0 0; padding: 0; list-style: none; }
.planner-ratings li { padding: 10px; border: 1px solid var(--app-page-line); border-radius: 8px; font-size: .75rem; line-height: 1.6; }
.planner-ratings li strong { display: block; }
.planner-ratings section { padding: 10px; border: 1px solid var(--app-page-line); border-radius: 8px; }
.planner-ratings section h4 { margin: 0 0 8px; }
.planner-ratings dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px 10px; margin: 0; font-size: .73rem; }
.planner-ratings dl > div { display: grid; gap: 3px; }
.planner-ratings dt { color: var(--app-page-muted); font-weight: 500; }
.planner-ratings dd { margin: 0; }
.bloom-planner-page .is-error { color: var(--bs-danger, #b42318); }
.flowering-quick-detail { display: grid; gap: 17px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--app-page-line); }
.pollinator-quick-photo { margin: 0; }
.pollinator-quick-photo img { display: block; width: 100%; height: auto; max-height: 270px; border-radius: 9px; object-fit: cover; }
.pollinator-quick-photo figcaption { margin-top: 7px; color: var(--app-page-muted); font-size: .66rem; line-height: 1.5; overflow-wrap: anywhere; }
.flowering-quick-section h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 9px; font-size: .88rem; }
.flowering-quick-section h3 > i { color: var(--app-page-green); }
.flowering-quick-section p { margin: 0; white-space: pre-line; }
.flowering-quick-section dl { display: grid; gap: 8px; margin: 0; }
.flowering-quick-section dl > div { display: grid; grid-template-columns: minmax(80px, .8fr) minmax(0, 1.5fr); gap: 8px 12px; font-size: .76rem; line-height: 1.5; }
.flowering-quick-section dt { color: var(--app-page-muted); font-weight: 500; }
.flowering-quick-section dd { margin: 0; overflow-wrap: anywhere; }
.flowering-quick-detail .is-unknown { color: var(--app-page-muted); font-style: italic; }
.planner-source-list { padding-left: 18px; color: var(--app-page-muted); font-size: .75rem; line-height: 1.7; overflow-wrap: anywhere; }
.planner-notice { padding: 15px 18px; border: 1px solid var(--app-page-line); border-radius: 9px; background: var(--app-page-green-soft); font-size: .84rem; line-height: 1.6; }
.planner-mobile-jump { display: none; }
#plannerCandidatesPanel, #plannerSelectionPanel { scroll-margin-top: 145px; }
@media (max-width: 1199px) {
  .planner-mix-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .planner-workspace { grid-template-columns: minmax(0, 1.3fr) minmax(330px, 1fr); gap: 16px; }
  .planner-project { grid-template-columns: 1fr 1.15fr; gap: 14px 16px; padding: 16px; }
  .planner-project-save .planner-button { max-width: 130px; }
  .planner-project:has(#plannerRecipePicker[hidden]) .planner-project-save .planner-button { max-width: none; }
  .planner-season { padding: 20px; }
  .planner-selection-panel > .planner-section-heading { align-items: start; }
  .planner-selection-panel > .planner-section-heading > .planner-button { max-width: 85px; }
  .planner-candidates-panel > .planner-section-heading { align-items: start; }
  .planner-candidates-panel > .planner-section-heading > button { max-width: 74px; padding-left: 6px; padding-right: 6px; }
  .planner-month small { font-size: .625rem; }
}
@media (max-width: 991px) {
  .planner-project { grid-template-columns: 1fr; }
  .planner-project-save .planner-button { max-width: none; }
  .planner-project-status { grid-column: auto; }
  .planner-workspace { grid-template-columns: minmax(0, 1fr); }
  .planner-candidate-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planner-candidate:nth-child(odd) { border-right: 1px solid var(--app-page-line); }
  .planner-mobile-jump { display: inline-flex; }
  .planner-selection-jump { min-height: 44px; align-items: center; margin: 0 20px 14px; font-size: .8rem; color: var(--app-page-green-dark); }
  .planner-selection-panel > .planner-section-heading > .planner-button, .planner-candidates-panel > .planner-section-heading > button { max-width: none; }
}
@media (max-width: 640px) {
  .planner-mix-grid { grid-template-columns: minmax(0, 1fr); }
  .planner-curated-heading { align-items: start; flex-wrap: wrap; }
  .planner-curated-actions { flex-shrink: 1; }
  .planner-curated-actions .planner-button { padding: 8px 10px; font-size: .7rem; }
  .planner-curated-intro { font-size: .74rem; }
  .bloom-planner-page { padding: 22px 14px 40px; }
  .planner-hero { flex-direction: column; align-items: start; gap: 16px; margin-bottom: 20px; }
  .planner-hero h1 { font-size: 1.8rem; }
  .planner-hero p { font-size: .82rem; }
  .planner-hero-actions { justify-content: start; max-width: 100%; }
  .planner-hero-actions .planner-button { padding: 8px 10px; font-size: .75rem; }
  .planner-hero .app-page-eyebrow { font-size: .64rem; }
  .planner-project { padding: 15px; }
  .planner-project:has(#plannerRecipePicker[hidden]) .planner-project-save { flex-direction: column; align-items: stretch; }
  .planner-project-open .planner-button, .planner-project-save .planner-button { max-width: 100px; padding: 8px 10px; font-size: .73rem; }
  .planner-project-status { font-size: .7rem; }
  .planner-season { padding: 17px 14px; }
  .planner-section-heading { gap: 9px; }
  .planner-section-heading h2 { font-size: 1.02rem; }
  .planner-section-heading p { font-size: .74rem; }
  .planner-section-heading > .planner-mobile-jump { padding: 8px; font-size: .69rem; }
  .planner-season-controls { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 17px 0; }
  .planner-target .planner-field { flex: 1; width: auto; }
  .planner-analysis-field { width: 100%; }
  .planner-coverage { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
  .planner-month { min-height: 88px; padding: 9px 3px; gap: 6px; }
  .planner-month strong { font-size: 1.45rem; }
  .planner-month small { font-size: .625rem; }
  .planner-coverage-summary { font-size: .76rem; }
  .planner-data-note { font-size: .68rem; }
  .planner-workspace { gap: 16px; margin-top: 16px; }
  .planner-selection-panel > .planner-section-heading, .planner-candidates-panel > .planner-section-heading { padding: 17px 15px 15px; }
  .planner-selection-actions { flex-direction: column; align-items: end; flex-shrink: 0; }
  .planner-selection-actions .planner-button { padding: 7px 9px; font-size: .69rem; }
  .planner-filters { padding: 0 15px; }
  .planner-filter-pair { gap: 10px; }
  .planner-field input, .planner-field select { font-size: 16px; }
  .planner-field > span { font-size: .68rem; }
  .planner-candidate-summary { padding: 13px 15px 10px; }
  .planner-candidate-list { grid-template-columns: minmax(0, 1fr); }
  .planner-candidate { padding: 16px 15px; grid-template-columns: 70px minmax(0, 1fr); }
  .planner-candidate:nth-child(odd) { border-right: 0; }
  .planner-candidate-photo, .planner-photo-placeholder { width: 70px; height: 79px; }
  .planner-candidate h3, .planner-candidate .planner-plant-name { font-size: .9rem; }
  .planner-candidate-actions .planner-button { font-size: .77rem; }
  .planner-more { padding: 0 15px 15px; }
  .planner-calendar { min-width: 650px; }
  .planner-calendar th:first-child { width: 170px; padding-left: 15px; }
  .planner-calendar th:last-child, .planner-calendar td:last-child { width: 60px; }
  .planner-details { padding: 17px 15px; }
}
@media (prefers-reduced-motion: reduce) { .bloom-planner-page * { scroll-behavior: auto !important; transition: none !important; } }

/* Reuse the app's tour components with the planner's theme and touch targets. */
.bloom-planner-tour {
  --guided-green: var(--app-page-green);
  --guided-green-dark: var(--app-page-green-dark);
  --guided-green-soft: var(--app-page-green-soft);
  --guided-ink: var(--app-page-ink);
  --guided-muted: var(--app-page-muted);
  --guided-line: var(--app-page-line);
}
.bloom-planner-tour [hidden] { display: none !important; }
.bloom-planner-tour .guided-basics-popover, .bloom-planner-tour .guided-basics-footer button { background: var(--app-page-surface); }
.bloom-planner-tour .guided-basics-popover { display: flex; flex-direction: column; }
.bloom-planner-tour .guided-basics-popover > * { flex-shrink: 0; }
.bloom-planner-tour #plannerTourBody { min-height: 0; flex: 1 1 auto; overflow-y: auto; }
.bloom-planner-tour .guided-basics-footer { flex-wrap: wrap; }
.bloom-planner-tour .guided-basics-progress { order: -1; width: 100%; }
.bloom-planner-tour .guided-basics-footer button { min-height: 44px; }
.bloom-planner-tour .guided-basics-footer .guided-basics-next { background: var(--guided-green); color: var(--app-page-surface); }
.bloom-planner-tour .guided-basics-footer .guided-basics-next:hover { background: var(--guided-green-dark); }
.bloom-planner-tour .guided-basics-footer button:focus-visible { outline: 3px solid var(--guided-green); outline-offset: 3px; }
.bloom-planner-tour .guided-basics-spotlight { border-color: var(--guided-green); }
@media (max-width: 767.98px), (hover: none) and (pointer: coarse) and (max-height: 520px) {
  .bloom-planner-tour .guided-basics-popover { padding: 16px; max-height: calc(50dvh - 16px); }
  .bloom-planner-tour .guided-basics-popover.is-centered { left: 12px; right: 12px; max-height: calc(100dvh - 32px); }
  .bloom-planner-tour .guided-basics-popover h2 { font-size: 1.1rem; }
  .bloom-planner-tour .guided-basics-popover p { font-size: .84rem; }
  .bloom-planner-tour .guided-basics-progress-track { margin-block: 12px 10px; }
}
