/* Shared charcoal palette for garden, plant guides, and the cookbook.
   Keep this stylesheet loaded across enhanced navigation; scope the treatment to
   fieldbook components and the shell that contains a standalone fieldbook page. */
:root {
    --gsf-desktop-nav-h: 76px;
    --gsf-book-bg: #1b1d1b;
    --gsf-book-surface: #252824;
    --gsf-book-surface-raised: #30342e;
    --gsf-book-line: #43483f;
    --gsf-book-text: #ebe9dd;
    --gsf-book-muted: #b7b8aa;
    --gsf-book-sage: #b5c78c;
    --gsf-book-clay: #d7a57b;
    --gsf-primary-bg: #46623f;
    --gsf-action-bg: var(--gsf-primary-bg);
    --gsf-on-accent: #ebe9dd;
    --gsf-book-display: Georgia, "Times New Roman", serif;
}

@media (max-width: 991.98px) {
    :root { --gsf-desktop-nav-h: 72px; }
}

.gsf-fieldbook {
    --gsf-bg: var(--gsf-book-bg);
    --gsf-surface: var(--gsf-book-surface);
    --gsf-surface-2: #20231f;
    --gsf-surface-3: var(--gsf-book-surface-raised);
    --gsf-border: var(--gsf-book-line);
    --gsf-border-soft: #353a32;
    --gsf-border-2: #717967;
    --gsf-text: var(--gsf-book-text);
    --gsf-text-2: #d0d1c3;
    --gsf-muted: #b7b8aa;
    --gsf-muted-2: var(--gsf-book-muted);
    --gsf-muted-3: #a0a694;
    --gsf-accent: var(--gsf-book-sage);
    --gsf-accent-ink: var(--gsf-book-sage);
    --gsf-accent-soft: #35402f;
    --gsf-accent-tint: #293225;
    --gsf-danger: #e49388;
    --gsf-accent-warm: #dab279;
    --gsf-focus-ring: rgba(181, 199, 140, .2);
    color: var(--gsf-text);
    color-scheme: dark;
}

/* Embedded guides also carry the type tokens, but do not retheme their host. */
body:has(.gsf-content > .gsf-fieldbook, .gsf-content > .gsf-page > .gsf-fieldbook),
.gsf-app-shell:has(.gsf-content > .gsf-fieldbook, .gsf-content > .gsf-page > .gsf-fieldbook) {
    background: var(--gsf-book-bg);
}

.gsf-fieldbook .gsf-pageheader.gsf-pageheader--workspace {
    --gsf-band-identity-h: 104px;
    background: var(--gsf-book-bg);
}

.gsf-fieldbook .gsf-pageheader .gsf-pageheader__title {
    font-family: var(--gsf-book-display);
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -.035em;
    color: var(--gsf-book-text);
}

.gsf-fieldbook .gsf-pageheader .gsf-pageheader__subtitle {
    color: var(--gsf-book-muted);
    font-size: 14px;
}

.gsf-fieldbook .gsf-pageheader .gsf-pageheader__tabs,
.gsf-fieldbook .gsf-pageheader .gsf-pageheader__filters {
    background: var(--gsf-book-bg);
    border-bottom-color: var(--gsf-book-line);
}

.gsf-fieldbook .gsf-pagectx__item { color: var(--gsf-book-muted); font-size: 12px; }

.gsf-fieldbook .gsf-segmented {
    background: var(--gsf-book-surface);
    border-color: var(--gsf-book-line);
    box-shadow: none;
}

.gsf-fieldbook .gsf-segmented .gsf-segmented__item {
    color: #b7b8aa;
    box-shadow: none;
}

.gsf-fieldbook .gsf-segmented .gsf-segmented__item[aria-selected="true"] {
    background: var(--gsf-accent-soft);
    color: var(--gsf-book-sage);
    border-color: var(--gsf-book-line);
    box-shadow: none;
}

.gsf-fieldbook .gsf-ctl-search,
.gsf-fieldbook .gsf-ctl-toggle,
.gsf-fieldbook .gsf-zone-btn {
    background: var(--gsf-book-surface);
    border-color: var(--gsf-book-line);
    color: var(--gsf-book-text);
}

.gsf-fieldbook .gsf-ctl-search input::placeholder { color: var(--gsf-book-muted); }

.gsf-fieldbook .gsf-btn--primary { background: var(--gsf-primary-bg); border-color: var(--gsf-primary-bg); color: var(--gsf-on-accent); }
.gsf-fieldbook .gsf-btn--primary:hover:not(:disabled) { background: #58784c; border-color: #58784c; }
.gsf-fieldbook .gsf-ctl-search { border: 1px solid var(--gsf-book-line); border-radius: 9px; }
.gsf-fieldbook .gsf-ctl-search input { background: transparent; border: 0; color: var(--gsf-book-text); }
.gsf-fieldbook .gsf-ctl-search i { color: var(--gsf-book-muted); }
.gsf-fsm--fieldbook .gsf-fsm-subheader { background: var(--gsf-book-bg); border-color: var(--gsf-book-line); }
.gsf-fsm--fieldbook :is(.form-control,.form-select,.gsf-input) { background: var(--gsf-book-surface-raised); color: var(--gsf-book-text); border-color: var(--gsf-book-line); }
.gsf-fsm.gsf-fsm--fieldbook .gsf-fsm-main :is(input,textarea)::placeholder { color: var(--gsf-book-muted) !important; opacity: 1 !important; }

.gsf-fieldbook .gsf-ctl-toggle.is-active {
    background: var(--gsf-accent-soft);
    border-color: var(--gsf-book-sage);
    color: var(--gsf-book-sage);
}

.gsf-fieldbook :is(a, button, input, select, summary):focus-visible {
    outline: 2px solid var(--gsf-book-sage);
    outline-offset: 4px;
}

@media (min-width: 768px) {
    .gsf-fieldbook .gsf-pageheader--band .gsf-pageheader__row { padding-top: 9px; }
    .gsf-fieldbook .gsf-pageheader--band .gsf-pageheader__title-row { height: 50px; }
    .gsf-fieldbook .gsf-pageheader--band .gsf-pageheader__identity { gap: 8px; }
    .gsf-fieldbook .gsf-pageheader--band .gsf-pageheader__actions { padding-top: 8px; }
}

@media (max-width: 767.98px) {
    .gsf-fieldbook .gsf-pageheader.gsf-pageheader--m4 .gsf-pageheader__title { font-size: 30px; font-weight: 400; }
    .gsf-fieldbook .gsf-toolbar { background: var(--gsf-book-bg); }
}

/* A narrow desktop window also needs the compact feedback button, otherwise
   its label covers the recipe's fixed meal-planning action. */
@media (max-width: 575.98px) {
    body:has(.gsf-content > .rcd-actionbar) .gsf-feedback-fab {
        width: 44px;
        height: 44px;
        padding: 0;
        justify-content: center;
    }
    body:has(.gsf-content > .rcd-actionbar) .gsf-feedback-fab__label { display: none; }
}

@media print {
    .gsf-fieldbook { color-scheme: light; }
}


/* Compound search fields own their focus border; the inner input must not
   draw a second, offset outline around only part of the control. */
.gsf-fieldbook .gsf-ctl-search:focus-within {
    border-color: var(--gsf-book-sage);
    box-shadow: 0 0 0 2px var(--gsf-focus-ring);
}
.gsf-fieldbook .gsf-ctl-search input:is(:focus, :focus-visible) {
    outline: none;
    box-shadow: none;
}
@media (forced-colors: active) {
    .gsf-fieldbook .gsf-ctl-search:focus-within { outline: 2px solid Highlight; outline-offset: 2px; }
}

/* Legacy mobile modal rules used a hard-coded bright green focus glow.
   Fieldbook dialogs use the same muted focus palette at every screen size. */
.gsf-fsm.gsf-fsm--fieldbook .gsf-fsm-main :is(input, select, textarea):focus {
    outline: none !important;
    border-color: var(--gsf-book-sage) !important;
    box-shadow: 0 0 0 2px var(--gsf-focus-ring) !important;
}
.gsf-fsm.gsf-fsm--fieldbook .gsf-fsm-main :is(.gsf-tipc__search, .gsf-ctl-search) input:focus {
    box-shadow: none !important;
}
@media (forced-colors: active) {
    .gsf-fsm.gsf-fsm--fieldbook .gsf-fsm-main :is(input, select, textarea):focus { outline: 2px solid Highlight !important; outline-offset: 2px; }
    .gsf-fsm.gsf-fsm--fieldbook .gsf-fsm-main :is(.gsf-tipc__search, .gsf-ctl-search) input:focus { outline: none !important; }
}
