/* Quiet botanical identity. Loaded last; application state and records stay unchanged. */
:root {
  --background: #f5f3ed;
  --surface: #fffefb;
  --text: #253b31;
  --muted: #646c61;
  --accent: #2e4d3d;
  --border: #dedfd3;
  --paper: #eeece2;
  --sage: #e7ecdf;
  --brass: #846b40;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Avenir Next', Avenir, 'Segoe UI', system-ui, sans-serif;
}
body { font-family: var(--sans); line-height: 1.65; background: var(--background); padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)); -webkit-font-smoothing: antialiased; }
::selection { background: #d9dfc8; color: #243b30; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; letter-spacing: -.025em; }
h2 { font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1.13; margin: 0 0 18px; }
h3 { font-size: 1.65rem; line-height: 1.25; }
p { margin-top: 0; }
.eyebrow { font-family: var(--sans); font-size: .68rem; font-weight: 650; letter-spacing: .16em; line-height: 1.6; color: var(--brass); }
.page-content { width: min(1140px, calc(100% - 64px)); padding: 38px 0 40px; }
.page-header, .garden-active .page-header, .plant-profile-active .page-header { display: block; width: 100%; padding: 0; border-bottom: 1px solid var(--border); background: var(--surface); }
.header-inner { width: min(1140px, calc(100% - 64px)); min-height: 91px; margin: auto; display: flex; align-items: center; gap: 16px; }
.brand-mark { width: 52px; height: 52px; flex: none; }
.brand-mark img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 8px; }
.brand-copy h1 { font-size: 1.55rem; line-height: 1.15; margin: 0; }
.brand-copy .eyebrow { font-size: .56rem; letter-spacing: .2em; margin: 6px 0 0; }
.header-inner > .brand-caption { font-family: var(--serif); font-style: italic; font-size: 1rem; margin: 0 0 0 auto; color: var(--muted); }
.app-view > .eyebrow { margin-bottom: 12px; }
.app-view > p:not([role]) { max-width: 70ch; color: var(--muted); }
button, .back-button, .reset-button { border-color: #bcc6b4; border-radius: 8px; padding: 12px 18px; background: var(--surface); color: var(--accent); font-family: var(--sans); font-size: .9rem; font-weight: 600; line-height: 1.4; min-height: 46px; transition: background .18s ease, border-color .18s ease, box-shadow .18s ease; }
button:hover:not(:disabled) { background: var(--sage); border-color: #81967b; }
button.primary, .add-to-garden, #cover-save, #save-notes, #cover-add-observation, #today-note { background: var(--accent); color: #fffefb; border-color: var(--accent); }
button.primary:hover:not(:disabled), .add-to-garden:hover:not(:disabled), #cover-save:hover:not(:disabled), #save-notes:hover:not(:disabled), #cover-add-observation:hover:not(:disabled), #today-note:hover:not(:disabled) { background: #1c362a; color: white; }
button:disabled { opacity: .6; }
:focus-visible { outline: 3px solid #9b7741; outline-offset: 4px; }
.skip-link { z-index: 200; }
.actions { gap: 10px; }
.app-view > button:first-child:not(.primary) { margin-bottom: 26px; border-color: transparent; background: transparent; padding-left: 0; font-size: .85rem; }
.app-view > button:first-child:hover:not(:disabled) { text-decoration: underline; text-underline-offset: 4px; }
input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea,
.space-form input:not([type=hidden]):not([type=checkbox]):not([type=radio]), .space-form select, .space-form textarea,
.filters input, .filters select, .meet-section select, #notes-search, #my-plants-search, #task-list-location,
#task-location-filter, #notes-location-filter, .note-composer input:not([type=file]):not([type=checkbox]), .note-composer select {
  border: 1px solid #cfd4c7; border-radius: 8px; background: var(--surface); color: var(--text); font-family: var(--sans); font-size: 1rem; padding: 12px 14px; min-height: 46px; max-width: 100%;
}
input::placeholder, textarea::placeholder { color: #72796e; opacity: 1; }
input[type=checkbox], input[type=radio] { accent-color: var(--accent); }
input[type=file] { padding: 10px; }
input[type=file]::file-selector-button { border: 0; border-radius: 5px; background: var(--sage); color: var(--accent); padding: 9px 12px; margin-right: 12px; font: inherit; }
label { font-size: .9rem; }
fieldset { border: 1px solid var(--border); border-radius: 10px; }
.hint, .local-note, .meet-garden .hint { color: var(--muted); font-size: .83rem; line-height: 1.65; }
.local-note { max-width: 80ch; }
.import-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 22px 26px; margin: 24px 0; }
summary { line-height: 1.5; }
details > summary { color: var(--accent); font-weight: 600; }

/* An inviting arrival, followed by the user's real work and observations. */
.home-welcome { display: grid; grid-template-columns: 1fr 1.05fr; overflow: hidden; border-radius: 16px; background: var(--paper); margin-bottom: 46px; }
.home-welcome-copy { padding: clamp(28px, 4.5vw, 56px); align-self: center; }
.home-welcome-copy .eyebrow { margin-bottom: 20px; }
#home-title { font-size: clamp(2.4rem, 4.5vw, 3.8rem); line-height: 1.06; letter-spacing: -.04em; max-width: 10ch; margin: 0 0 24px; }
.home-welcome-copy > p:not(.eyebrow) { font-size: .97rem; color: #586353; max-width: 34ch; }
.home-welcome-copy .actions { margin: 26px 0 0; }
.home-welcome-copy .actions button { font-size: .83rem; padding: 12px 15px; }
.home-welcome-photo { margin: 0; min-height: 410px; position: relative; background: #b5bca1; }
.home-welcome-photo img { display: block; width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; object-position: 64% 50%; }
.today-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.today-heading h2 { font-size: 2rem; margin-bottom: 6px; }
#today-date { font-size: .8rem; color: var(--muted); margin: 0; }
.today-heading .actions { margin: 0 0 3px; }
#today-content { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 24px 0 42px; }
#today-content .learn-card { display: flex; flex-direction: column; padding: 24px; border-radius: 10px; }
#today-content .learn-card h3 { font-size: 1.35rem; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--border); }
#today-content .learn-card p { font-size: .88rem; color: var(--muted); }
#today-content button { font-size: .83rem; margin-top: 6px; text-align: left; white-space: normal; }
#today-content .learn-card:first-child { background: #e9eddf; border-color: #d5ddc8; }
.home-menu { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0 0 36px; border-block: 1px solid var(--border); }
.menu-card { padding: 26px 22px; border: 0; border-radius: 0; background: transparent; min-width: 0; gap: 12px; }
.home-menu .menu-card + .menu-card { border-left: 1px solid var(--border); }
.home-menu .menu-card:hover { background: #eeeee4; border-color: var(--border); }
.menu-icon { display: block; width: 30px; height: 30px; color: var(--brass); margin-bottom: 4px; }
.menu-icon svg, .type-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.menu-card-title { font-family: var(--serif); font-weight: 400; font-size: 1.5rem; color: var(--text); }
.menu-card > span:not(.menu-icon):not(.menu-card-title):not(.card-link) { font-size: .83rem; font-weight: 400; line-height: 1.65; color: var(--muted); }
.card-link { font-size: .75rem; padding-top: 6px; }

/* The garden and its calendar. */
#garden-title.cover-section-label { font-family: var(--sans); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--brass); margin: 0 0 15px; }
.garden-cover { background: var(--surface); border-color: var(--border); border-radius: 16px; margin: 0 0 24px; }
.garden-cover-frame { aspect-ratio: 3.4 / 1; background: #dfe5d5; }
.garden-cover-frame #garden-cover-placeholder { opacity: 1; font-size: .9rem; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 14px; color: #506347; background: #e3e8da; }
#garden-cover-placeholder svg { width: 62px; height: 74px; fill: none; stroke: #6c805d; stroke-width: .9; }
.garden-cover-copy { padding: 28px 32px 3px; }
.garden-cover-heading h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); }
.garden-cover-heading button { border-color: var(--border); font-size: .77rem; }
.garden-cover-copy p { color: var(--muted); margin-top: 12px; }
.garden-cover-actions { padding: 6px 32px 26px; }
#garden-view > .actions { padding-bottom: 12px; }
#garden-overview { font-size: .83rem; }
#garden-view > details.hint { font-size: .8rem; }
.garden-tasks-section { border: 0; padding: 0; margin: 28px 0; }
#task-location-filter { max-width: 360px; }
.task-calendar { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 28px; margin: 20px 0; }
.task-calendar > h3 { font-size: 2rem; }
.task-calendar > p { font-size: .85rem; color: var(--muted); max-width: 70ch; }
.calendar-toolbar { padding: 16px 0; border-bottom: 1px solid var(--border); gap: 8px; }
.calendar-toolbar h4 { font-family: var(--serif); font-size: 1.35rem; min-width: 170px; }
.calendar-toolbar > button { min-width: 44px; padding: 10px 12px; }
.calendar-toolbar label { font-size: .76rem; }
.calendar-weekdays { text-transform: uppercase; letter-spacing: .1em; font-size: .65rem; color: var(--muted); margin: 20px 0 10px; }
.calendar-days { gap: 5px; }
button.calendar-day { background: #fafaf5; border: 1px solid #e4e5dc; border-radius: 7px; min-height: 88px; color: var(--text); padding-top: 10px; }
button.calendar-day:hover { background: var(--sage); }
button.calendar-day[aria-current=date] { outline-color: var(--brass); }
button.calendar-day[aria-pressed=true] { background: var(--accent); color: white; border-color: var(--accent); }
.calendar-day-number { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.calendar-count { font-size: .67rem; }
.calendar-selected { border-color: var(--border); padding-top: 24px; margin-top: 24px; }
.calendar-selected h4 { font-size: 1.3rem; }
.calendar-task { background: #f6f6ef; border-color: var(--border); padding: 18px; }
.calendar-task h4 { font-size: 1.2rem; }
#garden-layout > h3 { font-size: 2rem; margin-top: 40px; }
#garden-layout > p { color: var(--muted); max-width: 74ch; font-size: .9rem; }
.learn-card, .garden-item, .history-entry, .note-entry { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 3px 13px #243b3003; }
#space-cards .learn-card { border-top: 3px solid #9fae8d; padding: 26px; }
#space-cards .learn-card h3 { font-size: 1.6rem; }
#space-cards .actions button { font-size: .78rem; padding: 9px 12px; }
.my-plants-link { background: var(--sage); border: 1px solid #cfd9c3; border-radius: 12px; padding: 24px; }
.my-plants-link strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; }
.garden-item { padding: 22px; }
.garden-item button { font-size: .82rem; }
.personal-thumb { border-radius: 7px; }

/* A plant catalogue with generous photographs and quiet type selection. */
#plants-view > h2 { margin-top: 4px; }
.plant-type-menu { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 30px 0 22px; }
.plant-type-menu button { display: flex; align-items: flex-start; justify-content: flex-start; text-align: left; min-height: 148px; padding: 23px; gap: 18px; border-color: var(--border); border-radius: 12px; background: var(--surface); }
.plant-type-menu button > .type-icon { width: 32px; height: 32px; color: var(--brass); font-size: 0; flex: none; }
.plant-type-menu strong { font-family: var(--serif); font-weight: 400; font-size: 1.45rem; line-height: 1.2; }
[data-plant-type][aria-pressed=true] { background: #e5ebda; border-color: #869b76; box-shadow: inset 0 0 0 1px #869b76; }
.plant-type-menu button[aria-pressed=true] { background: #e5ebda; border-color: #869b76; }
#plant-search-title { margin-top: 38px; font-size: 2rem; }
.phone-filter-search { margin: 20px 0 12px; max-width: 100%; }
.phone-filter-search input { background: var(--surface); padding: 16px 18px; border-color: #cbd1c1; }
.phone-filters { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 0 20px; }
.phone-filters > summary { padding-block: 16px; font-size: .87rem; }
.phone-filters .filters { margin-top: 8px; }
#filter-result { font-size: .82rem; margin: 28px 0 18px; }
#plant-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
#plant-grid .plant-card { border-radius: 12px; background: var(--surface); box-shadow: 0 2px 14px #243b3005; border: 1px solid var(--border); }
#plant-grid .plant-content { padding: 19px 20px 22px; min-height: 140px; }
#plant-grid h3 { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; line-height: 1.15; }
#plant-grid .plant-more-details { font-family: var(--serif); font-weight: 400; font-size: inherit; line-height: 1.2; }
#plant-grid .botanical { color: #6d7567; font-size: .8rem; margin-top: 7px; }
#plant-grid .plant-card-summary { color: var(--muted); font-size: .81rem; }
#plant-grid .plant-visual img.remote-plant-photo { object-fit: contain; background: #e5e8dc; }
#plant-grid .favourite-button { color: var(--accent); background: #fffefbf5; box-shadow: 0 2px 10px #1f30282b; }
#plant-grid .in-garden-star, .in-garden-star { color: #715a2f; background: #f3e8c9; border-color: #cdbb8a; }
.plant-image-placeholder { display: inline-block; font-size: 0 !important; width: 58px; height: 72px; background: url('assets/leaf-mark.svg') center / contain no-repeat; opacity: .55; }
.plant-visual, #plant-grid button.plant-visual, .plant-profile-image { background-color: #e5e8dc; }
#plant-profile-view { max-width: 880px; }
#plant-profile-back { background: transparent; border-color: transparent; padding-left: 0; }
#plant-profile-content { border-radius: 16px; background: var(--surface); }
#plant-profile-content .plant-profile-image { border-radius: 16px 16px 0 0; }
#plant-profile-content .profile-intro { background: var(--surface); border-radius: 18px 18px 0 0; padding: 32px; }
#plant-profile-title { font-size: clamp(2.1rem, 4.5vw, 3.4rem); font-weight: 400; }
.profile-jumps { background: var(--background); border-color: var(--border); padding: 14px 20px; }
.profile-jumps .profile-jump { border-radius: 7px; background: transparent; font-size: .82rem; font-weight: 600; padding: 10px 14px; }
.profile-jumps .profile-jump[aria-current=true] { background: var(--accent); color: white; border-color: var(--accent); }
.profile-section { border-bottom: 1px solid var(--border); padding: 32px; }
.profile-section > h3 { font-size: 1.8rem; }
#plant-profile-content .plant-facts > div { background: #f1f3ea; border-radius: 8px; padding: 20px; }
#plant-profile-content .plant-facts dt { font-size: .77rem; color: var(--muted); }
#plant-profile-content .plant-facts dd { font-size: 1rem; font-weight: 550; }
.profile-howto { border-color: var(--border); border-radius: 10px; }
.plant-profile-active { padding-bottom: calc(204px + env(safe-area-inset-bottom, 0px)); }
#plant-profile-content .plant-profile-actions { background: #fffefbf5; border-color: var(--border); border-radius: 12px; bottom: calc(105px + env(safe-area-inset-bottom, 0px)); width: min(860px, calc(100% - 24px)); padding: 12px; box-shadow: 0 4px 24px #20332814; }
#plant-profile-content .plant-profile-actions button { border-radius: 7px; font-size: .85rem; }
.plant-profile-active .plant-save-toast { bottom: calc(192px + env(safe-area-inset-bottom, 0px)); }

/* The learning library reads like a small, considered garden publication. */
#info-view > h2 { max-width: 15ch; font-size: clamp(2.3rem, 4.6vw, 3.6rem); }
.learn-pathways { gap: 20px; margin: 36px 0; }
.learn-pathways .meet-invitation { position: relative; border-radius: 12px; background: var(--surface); border-color: var(--border); padding: 32px 28px; }
.learn-pathways .meet-invitation::before { content: '01'; font-family: var(--serif); font-size: 3.8rem; line-height: 1; color: #b0b59b; display: block; padding-bottom: 34px; }
.learn-pathways .meet-invitation:nth-child(2)::before { content: '02'; }
.learn-pathways .meet-invitation:nth-child(3)::before { content: '03'; }
.learn-pathways .meet-invitation:first-child { background: #263e31; border-color: #263e31; color: #fffef7; }
.learn-pathways .meet-invitation:first-child::before { color: #b9c5a6; }
.learn-pathways .meet-invitation:first-child .eyebrow { color: #d8c9a2; }
.learn-pathways .meet-invitation:first-child p { color: #e0e6d7; }
.learn-pathways .meet-invitation:first-child button { background: #e8e8d7; color: #263e31; border-color: #e8e8d7; }
.learn-pathways .meet-invitation:nth-child(3) { background: #e9eadc; }
.learn-pathways h3 { font-size: 2rem; line-height: 1.12; margin-bottom: 18px; }
.learn-pathways .meet-invitation > p:not(.eyebrow) { font-size: .9rem; }
.learn-pathways button { margin-top: auto; font-size: .82rem; width: 100%; }
.meet-garden { max-width: 800px; }
.meet-intro { max-width: 70ch; padding: 12px 0 26px; }
.meet-intro h2, #learn-article h2 { font-size: clamp(2.2rem, 4.7vw, 3.5rem); font-weight: 400; line-height: 1.12; letter-spacing: -.035em; margin: 12px 0 25px; }
.meet-lead { font-family: var(--serif); font-size: 1.35rem; line-height: 1.55 !important; color: #536349; }
.meet-garden p { line-height: 1.85; }
.meet-contents { gap: 6px; padding: 20px 0 26px; margin-bottom: 14px; border-block: 1px solid var(--border); }
.meet-contents a { background: transparent; border: 0; border-radius: 5px; padding: 10px 12px; font-size: .8rem; color: var(--accent); }
.meet-contents a:hover { background: var(--sage); }
.meet-section { background: var(--surface); border-color: var(--border); border-radius: 10px; padding: clamp(24px, 4vw, 40px); margin-bottom: 20px; }
.meet-section h3, #article-view .meet-section h3 { font-size: 1.8rem; margin-bottom: 20px; }
.meet-section > p:last-child { margin-bottom: 0; }
.meet-section p:has(> strong:first-child) { color: #4d6045; }
.meet-try, .meet-example { border-left: 2px solid #98a780; border-radius: 0 8px 8px 0; background: #edf0e6; padding: 22px; }
.meet-example { background: #f3efe5; border-color: #bca576; }
.meet-ending { background: #e8eddf; }
details.meet-section { background: transparent; border-color: var(--border); font-size: .84rem; padding-block: 18px; }
.meet-invitation, .border-invitation { background: var(--surface); border-color: var(--border); border-radius: 12px; padding: 30px; }
.meet-invitation h3, .border-invitation h3 { font-size: 1.85rem; }
.meet-invitation p, .border-invitation p { font-size: .92rem; }
.meet-invitation button, .border-invitation button { font-size: .84rem; }
#learn-discover-view, #learn-planning-view { max-width: 1040px; }
#learn-everyday-view { max-width: 960px; }
#learn-everyday-view > .meet-invitation { background: #e5ead9; border-color: #cfd9c1; margin: 12px 0 42px; }
#practical-guides-title { font-size: 1.9rem; }
.learn-card { padding: 25px; }
.learn-card h3 { font-size: 1.35rem; font-weight: 400; }
.learn-card p { font-size: .9rem; color: var(--muted); }
.learn-card .eyebrow { font-size: .65rem; color: var(--brass); }
.learn-card button { font-size: .83rem; }
.plant-words > div, .border-conditions, .border-layout, .reminder-editor { background: #edf0e6; border-color: var(--border); border-radius: 9px; }
.border-source, .border-candidate { background: var(--surface); border-color: var(--border); border-radius: 10px; }
#border-save-status { background: #e7ecdc; }
#border-steps button { border-radius: 6px; }
#border-steps button[aria-current=step] { background: var(--accent); }
#border-step-title { font-size: 1.8rem; }
.colour-palette { border-color: var(--border); background: var(--surface); border-radius: 10px; }

/* Journal, tasks, and the shared editors. */
#notes-view { max-width: 900px; margin: auto; }
.journal-heading { border-bottom: 1px solid var(--border); padding-bottom: 18px; margin-top: 40px; }
.journal-heading h3 { margin: 0; font-size: 1.8rem; }
.journal-heading button { font-size: .79rem; }
.note-entry { padding: 28px; border-left: 3px solid #b8bd9c; }
.note-entry h4 { font-family: var(--serif); font-size: 1.65rem; font-weight: 400; }
.note-body { line-height: 1.8; }
.note-location { font-size: .82rem; font-weight: 600; }
.note-photo-grid img { border-radius: 8px; }
.history-entry { padding: 24px; }
.history-entry h3 { font-size: 1.4rem; }
.task-details { border-top: 1px solid var(--border); margin-top: 10px; padding-top: 8px; }
.task-details h4 { font-family: var(--serif); font-size: 1.3rem; font-weight: 400; }
.followup-section { margin: 32px 0; }
#tasks-view > section { padding-block: 24px; border-bottom: 1px solid var(--border); }
#tasks-view > h3 { margin-top: 34px; }
#task-list-location { display: block; width: min(360px, 100%); margin: 8px 0 24px; }
.empty-state { padding: 30px; background: #eeefe5; border: 1px solid var(--border); border-radius: 10px; color: var(--muted); }
dialog, #space-task-panel, #note-dialog, #seasonal-review, .cover-dialog, .personal-plant-dialog, #garden-setup { background: var(--surface); color: var(--text); border: 1px solid #cbd2c1; border-radius: 16px; box-shadow: 0 20px 90px #1a2a2340; padding: 30px; }
dialog::backdrop, #space-task-panel::backdrop, #note-dialog::backdrop, .cover-dialog::backdrop { background: #172c24a3; backdrop-filter: blur(3px); }
dialog h2 { font-size: 2rem; margin-bottom: 20px; }
dialog h3 { font-size: 1.5rem; }
dialog .actions { padding-top: 10px; }
#close-task-dialog, #close-note-dialog { border-radius: 50%; min-width: 44px; height: 44px; padding: 0; border-color: var(--border); }
#garden-setup .setup-choice { padding: 12px; border: 1px solid var(--border); border-radius: 8px; margin: 8px 0; }
#garden-setup .setup-choice:has(input:checked) { background: var(--sage); border-color: #94a482; }
.action-feedback:not(:empty), .task-inline-feedback:not(:empty), .task-global-feedback:not(:empty) { background: #e3ecdb; color: #294630; border-radius: 8px; }
.action-feedback.error, .task-toast.error, #border-save-status.error { background: #f7e8e0; color: #843e2b; }
.task-toast, .plant-save-toast { background: #263e31; color: #fffef8; border: 1px solid #62735b; border-radius: 12px; bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }
.plant-save-toast button { color: var(--accent); background: var(--surface); }

/* Persistent navigation, kept familiar on both desktop and phone. */
.mobile-nav { width: min(560px, calc(100% - 24px)); left: 50%; right: auto; transform: translateX(-50%); bottom: max(12px, env(safe-area-inset-bottom, 0px)); padding: 7px; gap: 3px; background: #243c30; border: 1px solid #4b5f49; border-radius: 17px; box-shadow: 0 8px 30px #1d32252e; }
.mobile-nav button { background: transparent; color: #d9e0d0; border: 0; font-size: .66rem; font-weight: 450; border-radius: 10px; min-height: 62px; padding: 8px 2px; }
.mobile-nav button:hover:not(:disabled) { background: #35513e; color: white; }
.mobile-nav button[aria-current=page] { background: #e4e8d7; color: #263e31; font-weight: 650; }
.mobile-nav svg { width: 22px; height: 22px; stroke-width: 1.55; margin-bottom: 5px; }
.keyboard-open .mobile-nav { display: none; }
footer { border-color: var(--border); color: var(--muted); font-size: .7rem; letter-spacing: .04em; padding-block: 26px; }
@media (min-width: 801px) {
  #learn-discover-view:not([hidden]), #learn-planning-view:not([hidden]) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; row-gap: 24px; }
  #learn-discover-view > button, #learn-planning-view > button { grid-column: 1 / -1; justify-self: start; margin-bottom: 0; }
  #learn-discover-view > .meet-intro, #learn-planning-view > .meet-intro { grid-column: 1 / -1; }
  #learn-discover-view > .meet-invitation, #learn-planning-view > .meet-invitation { margin: 0; display: flex; flex-direction: column; align-items: flex-start; }
  #learn-discover-view > .meet-invitation button, #learn-planning-view > .meet-invitation button { margin-top: auto; }
  #learn-planning-view > .border-invitation { grid-column: 1 / -1; margin: 0; background: #e5ead9; }
}
@media (max-width: 800px) {
  .page-content, .header-inner { width: calc(100% - 36px); }
  .page-content { padding-top: 25px; }
  .header-inner { min-height: 76px; gap: 12px; }
  .brand-mark { width: 44px; height: 44px; }
  .brand-copy h1 { font-size: 1.3rem; margin: 0; }
  .brand-copy .eyebrow { font-size: .49rem; margin-top: 5px; }
  .header-inner > .brand-caption { display: none; }
  .home-welcome { grid-template-columns: 1fr 1fr; margin-bottom: 30px; }
  .home-welcome-copy { padding: 28px; }
  #home-title { font-size: 2.7rem; }
  .home-welcome-photo { min-height: 380px; }
  .home-welcome-copy .actions { flex-direction: column; align-items: stretch; }
  .home-welcome-copy .actions button { flex: none; }
  .today-heading { align-items: flex-start; flex-direction: column; gap: 16px; }
  .today-heading .actions { width: 100%; }
  #today-content { grid-template-columns: 1fr; gap: 12px; }
  #today-content .learn-card { padding: 22px; }
  .home-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-menu .menu-card { padding: 24px 18px; }
  .home-menu .menu-card:nth-child(3) { border-left: 0; }
  .home-menu .menu-card:nth-child(n+3) { border-top: 1px solid var(--border); }
  .menu-card-title { font-size: 1.4rem; }
  .garden-cover-frame { aspect-ratio: 16 / 8; }
  .garden-cover-copy { padding: 24px 22px 2px; }
  .garden-cover-actions { padding: 6px 22px 22px; }
  .garden-cover-heading h2 { font-size: 2rem; }
  .garden-cover-actions button { flex-basis: 130px; }
  .task-calendar { padding: 20px; }
  .calendar-toolbar h4 { min-width: 0; flex: 1; }
  .calendar-toolbar label { width: 100%; margin: 10px 0 0; }
  .plant-type-menu { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; }
  .plant-type-menu button { min-height: 148px; padding: 22px 18px; gap: 17px; }
  .plant-type-menu strong { font-size: 1.35rem; }
  #plant-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  #plant-grid .plant-content { padding: 14px 12px 18px; min-height: 130px; }
  #plant-grid h3 { font-size: 1.25rem; }
  #plant-grid .botanical { font-size: .73rem; }
  #plant-grid .plant-card-summary { font-size: .76rem; }
  #plant-profile-content .profile-intro, .profile-section { padding: 25px 22px; }
  .learn-pathways { grid-template-columns: 1fr; gap: 16px; margin-top: 28px; }
  .learn-pathways .meet-invitation { padding: 28px; }
  .learn-pathways .meet-invitation::before { font-size: 2.8rem; padding-bottom: 20px; }
  .learn-pathways h3 { font-size: 1.9rem; }
  .learn-pathways button { margin-top: 12px; }
  .meet-intro { padding-top: 6px; }
  .meet-section { padding: 26px; }
  .meet-section h3, #article-view .meet-section h3 { font-size: 1.6rem; }
  .meet-invitation, .border-invitation { padding: 26px; }
  .note-entry { padding: 24px; }
  dialog, #space-task-panel, #note-dialog, #seasonal-review, .cover-dialog, .personal-plant-dialog, #garden-setup { padding: 24px; width: calc(100% - 20px); max-height: calc(var(--phone-visible-height, 100dvh) - 24px); }
}
@media (max-width: 540px) {
  h2 { font-size: 2.2rem; }
  .home-welcome { grid-template-columns: 1fr; }
  .home-welcome-photo { grid-row: 1; min-height: 0; height: 194px; }
  .home-welcome-photo img { object-position: 55% 53%; }
  .home-welcome-copy { padding: 26px; }
  .home-welcome-copy .eyebrow { margin-bottom: 13px; font-size: .62rem; }
  #home-title { max-width: 14ch; font-size: 2.45rem; margin-bottom: 17px; }
  .home-welcome-copy > p:not(.eyebrow) { font-size: .9rem; }
  .home-welcome-copy .actions { flex-direction: row; gap: 8px; margin-top: 20px; }
  .home-welcome-copy .actions button { flex: 1 1 auto; font-size: .8rem; padding: 12px; }
  .today-heading h2 { font-size: 1.9rem; }
  .today-heading .actions button { font-size: .82rem; }
  .menu-card { gap: 10px; }
  .home-menu .menu-card { padding-inline: 15px; }
  .card-link { font-size: .68rem; }
  .home-menu .menu-card > span:not(.menu-icon):not(.menu-card-title):not(.card-link) { font-size: .78rem; }
  .garden-cover-heading { align-items: flex-start; }
  .garden-cover-heading h2 { flex-basis: 100%; font-size: 1.9rem; }
  .garden-cover-copy, .garden-cover-actions { padding-inline: 20px; }
  .garden-cover-actions button { font-size: .8rem; }
  .task-calendar { padding: 16px 12px; }
  .task-calendar > h3 { font-size: 1.8rem; }
  .calendar-toolbar { gap: 5px; }
  .calendar-toolbar h4 { font-size: 1.15rem; }
  .calendar-toolbar > button { padding: 8px; font-size: .75rem; }
  .calendar-toolbar input { min-width: 0; max-width: 100%; }
  .calendar-days { gap: 3px; }
  button.calendar-day { min-height: 64px; padding: 7px 1px; gap: 3px; }
  .calendar-day-number { font-size: 1rem; }
  .calendar-count { font-size: .59rem; }
  .calendar-weekdays { font-size: .59rem; letter-spacing: .04em; }
  .calendar-preview { display: none; }
  .plant-type-menu { gap: 10px; }
  .plant-type-menu button { padding: 18px 15px; min-height: 142px; }
  .plant-type-menu strong { font-size: 1.25rem; }
  #plant-grid { gap: 12px; }
  #plant-grid h3 { font-size: 1.18rem; }
  #plant-grid .plant-photo-credit { font-size: .65rem; }
  #plant-grid .plant-photo-credit summary { min-height: 36px; }
  .phone-filters { padding-inline: 16px; }
  .profile-jumps { padding-inline: 12px; }
  #plant-profile-content .plant-facts { grid-template-columns: 1fr; }
  #plant-profile-content .plant-profile-actions { gap: 8px; padding: 10px; }
  #plant-profile-content .plant-profile-actions button { font-size: .78rem; }
  .meet-intro h2, #learn-article h2 { font-size: 2.45rem; }
  .meet-lead { font-size: 1.2rem; }
  .meet-section, .meet-invitation, .border-invitation { padding: 24px 22px; }
  .meet-section p, .meet-section li { font-size: .95rem; }
  .meet-contents { padding-block: 12px; gap: 3px; }
  .meet-contents a { font-size: .76rem; padding: 10px; }
  .meet-section .actions button { flex-basis: 100%; }
  .learn-pathways .meet-invitation { padding: 26px; }
  .note-entry { padding: 22px; }
  .journal-heading button { width: 100%; }
  .import-panel { padding: 20px; }
}
@media (max-width: 360px) {
  .page-content, .header-inner { width: calc(100% - 28px); }
  .home-welcome-copy { padding: 22px; }
  #home-title { font-size: 2.15rem; }
  .home-welcome-copy .actions { flex-direction: column; }
  .mobile-nav { width: calc(100% - 16px); padding: 6px; }
  .mobile-nav button { font-size: .6rem; }
  .plant-type-menu button { padding: 16px 12px; }
  .plant-type-menu strong { font-size: 1.15rem; }
  #plant-grid .plant-content { padding-inline: 10px; }
  #plant-grid h3 { font-size: 1.08rem; }
  .calendar-toolbar h4 { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
