@import url("https://fonts.googleapis.com/css2?family=Google+Sans+Flex:wght@100..900&display=swap");

* { box-sizing: border-box; }

:root {
    --bg: #f6f7f5;
    --surface: #ffffff;
    --text: #202522;
    --muted: #68716c;
    --border: #d9dedb;
    --accent: #276749;
    --accent-dark: #1f523b;
    --accent-soft: #eaf3ee;
    --accent-border: #cbded3;
    --accent-strong: #1f523b;
    --surface-soft: #f5f8f6;
    --soft-accent: #eaf3ee;
    --focus-ring: rgba(39, 103, 73, 0.18);
    --danger-bg: #fff0f0;
    --danger-text: #8a2424;
    --success-bg: #edf8f1;
    --success-text: #245d39;
    --important-bg: #fff5df;
    --important-border: #d9a400;
    --urgent-bg: #fff0f0;
    --urgent-border: #d44848;
}

html {
    font-family: Arial, Helvetica, sans-serif;
    color: var(--text);
    background: var(--bg);
}

body {
    margin: 0;
    min-height: 100%;
    font-size: 16px;
    line-height: 1.5;
}

a { color: inherit; }
button, input, select, textarea { font: inherit; }

.auth-page {
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 32px 18px;
}

.auth-card,
.settings-card,
.form-card {
    width: min(100%, 780px);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 32px;
}

.auth-card {
    width: min(100%, 460px);
}

.auth-logo {
    margin-bottom: 8px;
}
.auth-logo img {
    max-width: 260px;
    width: 100%;
    height: auto;
    display: block;
}

h1 {
    margin: 0 0 8px;
    font-size: 32px;
    line-height: 1.15;
}

.lede {
    margin: 0 0 24px;
    color: var(--muted);
}

label {
    display: block;
    margin: 18px 0 7px;
    font-weight: 700;
}

input:not([type]),
input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
input[type="time"],
select,
textarea {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #b9c1bc;
    border-radius: 7px;
    background: #fff;
    color: var(--text);
}

textarea {
    min-height: 130px;
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    outline: 3px solid var(--focus-ring);
    border-color: var(--accent);
}

button[type="submit"],
.primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 18px;
    border: 0;
    border-radius: 7px;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.primary-button.small {
    min-height: 42px;
}

.secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 18px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #fff;
    color: var(--text);
    text-decoration: none;
    font-weight: 700;
}

.secondary-button.full-width {
    width: 100%;
}

.hint {
    margin: 6px 0 0;
    font-size: 14px;
    color: var(--muted);
}

.alert {
    margin: 16px 0 20px;
    padding: 12px 14px;
    border-radius: 7px;
    font-size: 15px;
}
.alert.error { background: var(--danger-bg); color: var(--danger-text); }
.alert.success { background: var(--success-bg); color: var(--success-text); }

.inline-alert {
    margin-top: 0;
}

.site-header {
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 0 28px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}

.brand-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.header-logo {
    display: block;
    width: auto;
    height: 40px;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 14px;
}

.header-actions form { margin: 0; }

.header-link {
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
}

.signed-in { color: var(--muted); }

.link-button {
    padding: 8px 0;
    border: 0;
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    font-weight: 700;
}

.calendar-page {
    max-width: 1600px;
    margin: 0 auto;
    padding: 24px 24px 38px;
}

.calendar-page.with-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 22px;
    align-items: start;
}

.main-column {
    min-width: 0;
}

.calendar-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 22px;
    margin-bottom: 18px;
}

.date-navigation,
.toolbar-actions,
.view-switcher {
    display: flex;
    align-items: center;
}

.date-navigation { gap: 10px; }
.date-navigation h1 {
    min-width: 225px;
    margin: 0;
    text-align: center;
    font-size: 27px;
    letter-spacing: -0.4px;
}

.month-title-control {
    position: relative;
    min-width: 225px;
}

.month-title-control h1 {
    min-width: 0;
}

.month-title-button {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 4px 7px;
    margin: -4px -7px;
    border-radius: 8px;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.month-title-button:hover,
.month-title-button:focus-visible,
.month-title-button[aria-expanded="true"] {
    background: var(--accent-soft);
    outline: none;
}

.month-title-chevron {
    font-size: 18px;
    line-height: 1;
    color: var(--muted);
    transform: translateY(-1px);
}

.month-title-popover {
    position: absolute;
    z-index: 60;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    width: 290px;
    padding: 14px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: 0 12px 30px rgba(20, 35, 28, 0.14);
}

.month-title-popover::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 50%;
    width: 12px;
    height: 12px;
    background: var(--surface);
    border-left: 1px solid var(--border);
    border-top: 1px solid var(--border);
    transform: translateX(-50%) rotate(45deg);
}

.month-title-jump-form {
    display: grid;
    grid-template-columns: 1fr 92px auto;
    align-items: end;
    gap: 8px;
}

.month-title-field label {
    display: block;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.month-title-field select {
    width: 100%;
    min-height: 40px;
    margin: 0;
    padding: 6px 8px;
}

.month-title-go {
    min-height: 40px;
    padding: 0 12px;
}

.icon-button,
.today-button,
.view-switcher a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    background: var(--surface);
    text-decoration: none;
}

.icon-button {
    width: 40px;
    border-radius: 7px;
    font-size: 26px;
    line-height: 1;
}

.toolbar-actions {
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.today-button {
    padding: 0 14px;
    border-radius: 7px;
    font-weight: 700;
}

.view-switcher a {
    padding: 0 13px;
    border-right: 0;
    font-size: 14px;
    color: var(--muted);
}
.view-switcher a:first-child { border-radius: 7px 0 0 7px; }
.view-switcher a:last-child { border-right: 1px solid var(--border); border-radius: 0 7px 7px 0; }
.view-switcher a.active {
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-weight: 700;
}

.header-add-button {
    min-height: 40px;
}

.month-calendar {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    background: var(--border);
    gap: 1px;
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
}

.weekday {
    padding: 10px 12px;
    background: #f0f2f0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.calendar-day {
    min-height: 150px;
    padding: 9px;
    background: var(--surface);
    display: flex;
    flex-direction: column;
}

.calendar-day.outside-month {
    background: #fafbfa;
    color: #9aa19d;
}

.calendar-day.is-today {
    box-shadow: inset 0 0 0 2px var(--accent);
}

.calendar-day-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.day-number {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 14px;
    font-weight: 700;
}

.is-today .day-number {
    background: var(--accent);
    color: white;
}

.day-add-link,
.mini-add-link {
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
}

.day-add-link {
    width: 24px;
    height: 24px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: var(--accent-soft);
}

.day-space {
    padding-top: 8px;
    min-height: 0;
    flex: 1;
}

.today-label {
    display: inline-block;
    margin-bottom: 6px;
    padding: 3px 7px;
    border-radius: 5px;
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 700;
}

.calendar-item {
    margin-bottom: 6px;
    padding: 5px 7px;
    border-left: 3px solid #aeb6b1;
    border-radius: 6px;
    background: #f8f9f8;
    font-size: 12px;
}

.calendar-item.priority-important {
    border-left-color: var(--important-border);
    background: var(--important-bg);
}

.calendar-item.priority-urgent {
    border-left-color: var(--urgent-border);
    background: var(--urgent-bg);
}

.calendar-item-title {
    display: block;
    font-weight: 700;
}

.calendar-item-time {
    display: block;
    margin-top: 2px;
    color: var(--muted);
}

.more-items {
    font-size: 12px;
    color: var(--muted);
    font-weight: 700;
}

.empty-add {
    display: inline-block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    text-decoration: none;
}

.week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--border);
}

.week-day {
    min-height: 520px;
    background: var(--surface);
}

.week-day header {
    padding: 13px 10px;
    border-bottom: 1px solid var(--border);
}
.week-day header span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
}
.week-day header strong {
    display: block;
    font-size: 22px;
}
.week-day header .mini-add-link {
    display: inline-block;
    margin-top: 6px;
    font-size: 12px;
}
.week-day.is-today header {
    background: var(--accent-soft);
    color: var(--accent-dark);
}
.week-day-body {
    padding: 12px 10px;
    color: var(--muted);
    font-size: 13px;
}
.empty-week-text {
    margin: 0;
}

.day-view {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
}

.day-view-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--border);
}
.day-view-header strong { font-size: 34px; display: block; }
.day-view-header span { color: var(--muted); }

.day-list {
    padding: 18px;
}

.day-empty {
    padding: 54px 24px;
    text-align: center;
}
.day-empty h2 { margin: 0 0 7px; font-size: 20px; }
.day-empty p { margin: 0; color: var(--muted); }

.day-item {
    margin-bottom: 14px;
    padding: 16px;
    border: 1px solid var(--border);
    border-left: 4px solid #aeb6b1;
    border-radius: 10px;
    background: #fff;
}
.day-item.priority-important {
    border-left-color: var(--important-border);
}
.day-item.priority-urgent {
    border-left-color: var(--urgent-border);
}

.day-item-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}
.day-item-type {
    margin: 0 0 3px;
    color: var(--muted);
    font-size: 13px;
}
.day-item h2 {
    margin: 0;
    font-size: 20px;
}
.day-item-meta,
.day-item-notes {
    margin: 10px 0 0;
    color: var(--muted);
}

.priority-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.priority-pill.priority-important {
    background: var(--important-bg);
    color: #7f6000;
}

.priority-pill.priority-urgent {
    background: var(--urgent-bg);
    color: #a02d2d;
}

.sidebar-panel {
    min-width: 0;
}

.sidebar-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px;
}

.sidebar-heading h2 {
    margin: 0 0 4px;
    font-size: 22px;
}

.sidebar-heading p,
.sidebar-empty p,
.upcoming-meta,
.upcoming-type {
    margin: 0;
    color: var(--muted);
}

.upcoming-list {
    margin-top: 16px;
}

.upcoming-item {
    padding: 13px 0;
    border-bottom: 1px solid var(--border);
}
.upcoming-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.upcoming-top {
    display: flex;
    gap: 8px;
    justify-content: space-between;
    align-items: flex-start;
}
.upcoming-top h3 {
    margin: 0;
    font-size: 15px;
}
.upcoming-meta {
    margin-top: 4px;
    font-size: 13px;
}
.upcoming-type {
    margin-top: 4px;
    font-size: 12px;
}

.settings-wrap,
.form-wrap {
    padding: 40px 18px;
}

.settings-card,
.form-card {
    margin: 0 auto;
}

.eyebrow {
    margin: 0 0 4px;
    color: var(--accent);
    font-size: 14px;
    font-weight: 700;
}

fieldset {
    border: 0;
    padding: 0;
    margin: 0;
}

legend {
    margin-bottom: 8px;
    font-weight: 700;
}

.radio-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 13px 0;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
}
.radio-row input { margin-top: 4px; }
.radio-row strong,
.radio-row small { display: block; }
.radio-row small {
    margin-top: 2px;
    color: var(--muted);
    font-weight: 400;
}

.field-grid {
    display: grid;
    gap: 16px;
}
.field-grid.two-col {
    grid-template-columns: 1fr 1fr;
}

.checkbox-row {
    display: flex;
    align-items: center;
    gap: 10px;
}
.checkbox-row input {
    width: auto;
    min-height: 0;
}

.form-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin-top: 24px;
}

@media (max-width: 1200px) {
    .calendar-page.with-sidebar {
        grid-template-columns: 1fr;
    }

    .sidebar-panel {
        position: static;
    }

    .sidebar-card {
        position: static;
    }
}

@media (max-width: 900px) {
    .calendar-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .toolbar-actions {
        width: 100%;
    }

    .month-calendar {
        overflow-x: auto;
        grid-template-columns: repeat(7, minmax(135px, 1fr));
    }

    .week-grid {
        overflow-x: auto;
        grid-template-columns: repeat(7, minmax(175px, 1fr));
    }

    .field-grid.two-col {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .site-header {
        padding: 12px 16px;
        align-items: flex-start;
        flex-direction: column;
    }

    .header-actions {
        gap: 14px;
        flex-wrap: wrap;
    }

    .signed-in { display: none; }

    .calendar-page {
        padding: 18px 12px 30px;
    }

    .date-navigation {
        width: 100%;
        justify-content: space-between;
    }

    .date-navigation h1 {
        min-width: 0;
        font-size: 22px;
    }

    .month-title-control {
        min-width: 0;
    }

    .month-title-popover {
        left: 0;
        transform: none;
        width: min(290px, calc(100vw - 48px));
    }

    .month-title-popover::before {
        left: 72px;
    }

    .month-title-jump-form {
        grid-template-columns: 1fr 88px auto;
    }

    .toolbar-actions {
        gap: 8px;
    }

    .view-switcher {
        order: 3;
        width: 100%;
    }

    .view-switcher a {
        flex: 1;
    }

    .day-view-header,
    .day-item-top,
    .form-actions {
        display: block;
    }

    .form-actions .secondary-button,
    .form-actions .primary-button.small,
    .day-view-header .primary-button.small {
        width: 100%;
        margin-top: 10px;
    }

    .calendar-day {
        min-height: 135px;
    }
}


/* Version 4 additions */
.optional {
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
}

.form-section-heading {
    margin: 28px 0 4px;
    padding-top: 22px;
    border-top: 1px solid var(--border);
}

.form-section-heading h2 {
    margin: 0 0 3px;
    font-size: 20px;
}

.form-section-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.calendar-item {
    display: block;
    color: inherit;
    text-decoration: none;
}

.day-item {
    display: block;
    color: inherit;
    text-decoration: none;
}

.upcoming-item {
    display: block;
    color: inherit;
    text-decoration: none;
}

.upcoming-item:hover,
.day-item:hover,
.calendar-item:hover {
    border-color: #bfc7c2;
}

.upcoming-extra {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.day-jump-bar {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 16px;
    margin-bottom: 14px;
    padding: 12px 14px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 9px;
}

.jump-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.jump-buttons a {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    padding: 0 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
}

.jump-form {
    display: flex;
    align-items: end;
    gap: 7px;
}

.jump-form label {
    margin: 0 2px 7px 0;
    font-size: 13px;
}

.jump-form input[type="date"] {
    width: auto;
    min-height: 36px;
    padding: 6px 9px;
}

.jump-form button {
    min-height: 36px;
    padding: 0 12px;
    border: 0;
    border-radius: 6px;
    background: var(--accent);
    color: white;
    font-weight: 700;
    cursor: pointer;
}

.detail-wrap {
    padding: 40px 18px;
}

.detail-card,
.confirm-card {
    width: min(100%, 780px);
    margin: 0 auto;
    padding: 30px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
}

.confirm-card {
    width: min(100%, 600px);
}

.detail-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.detail-top h1 {
    margin-top: 2px;
}

.detail-list {
    margin: 28px 0 0;
}

.detail-list > div {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: 18px;
    padding: 13px 0;
    border-bottom: 1px solid var(--border);
}

.detail-list dt {
    color: var(--muted);
    font-weight: 700;
}

.detail-list dd {
    margin: 0;
}

.detail-notes {
    margin-top: 25px;
}

.detail-notes h2 {
    margin: 0 0 8px;
    font-size: 19px;
}

.detail-notes p {
    margin: 0;
}

.detail-actions,
.confirm-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

.danger-button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 1px solid #d44848;
    border-radius: 7px;
    background: #fff;
    color: #a02d2d;
    text-decoration: none;
    font-weight: 700;
    cursor: pointer;
}

.danger-button.filled {
    background: #a83232;
    color: #fff;
    border-color: #a83232;
}

.confirm-card h1 {
    margin: 3px 0 10px;
}

.confirm-card > p:not(.eyebrow) {
    color: var(--muted);
}

@media (max-width: 760px) {
    .day-jump-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .jump-form {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .jump-form label {
        width: 100%;
    }

    .jump-form input[type="date"] {
        flex: 1;
        min-width: 0;
    }

    .detail-list > div {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .detail-top {
        display: block;
    }

    .detail-top .priority-pill {
        margin-top: 10px;
    }
}


/* Version 5 additions */
.reminder-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
    margin: 10px 0 6px;
}

.reminder-check {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #fff;
    font-weight: 400;
}

.reminder-check input {
    margin: 0;
}

.field-help,
.detail-small {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.detail-utility {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
    margin-bottom: 8px;
    font-size: 13px;
}

.detail-utility a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
}

.detail-utility .delete-text-link {
    color: #a02d2d;
}

.detail-reminder-list {
    margin: 8px 0 0;
    padding-left: 20px;
}

.detail-reminder-list li {
    margin-bottom: 4px;
}

.settings-test-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

.settings-test-row span {
    color: var(--muted);
    font-size: 13px;
}

@media (max-width: 640px) {
    .reminder-options {
        grid-template-columns: 1fr;
    }

    .settings-test-row {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* Version 5.3 additions */
.status-completed {
    opacity: 0.56;
}

.calendar-item.status-completed .calendar-item-title,
.day-item.status-completed h2 {
    text-decoration: line-through;
}

.status-cancelled,
.status-duplicate {
    opacity: 0.5;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.status-pill.status-completed {
    background: #e7f0e9;
    color: #476450;
    opacity: 1;
}

.status-pill.status-cancelled {
    background: #f2ecec;
    color: #7a5555;
    opacity: 1;
}

.status-pill.status-duplicate {
    background: #eeeef3;
    color: #5f6072;
    opacity: 1;
}

.detail-badges,
.day-item-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
}

.status-actions-card {
    margin-top: 24px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fafbfa;
}

.status-actions-card h2 {
    margin: 0 0 10px;
    font-size: 19px;
}

.status-actions-card p {
    margin: 0 0 12px;
    color: var(--muted);
}

.status-actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.status-actions-row form {
    margin: 0;
}

.status-action {
    min-height: 36px;
    padding: 0 11px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    font-weight: 700;
    cursor: pointer;
}

.status-action.complete {
    border-color: #9ab7a1;
    color: #345540;
}

.status-action.cancel {
    color: #7a5555;
}

.status-action.duplicate {
    color: #5f6072;
}

.status-action.restore {
    border-color: #9ab7a1;
    color: #345540;
}

.duplicate-warning {
    margin: 18px 0;
    padding: 16px;
    border: 1px solid #d8b75c;
    border-radius: 9px;
    background: #fff9e8;
}

.duplicate-warning h2 {
    margin: 0 0 5px;
    font-size: 18px;
}

.duplicate-warning > p {
    margin: 0 0 12px;
}

.duplicate-match {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 0;
    border-top: 1px solid #eadcae;
}

.duplicate-match div {
    display: grid;
    gap: 2px;
}

.duplicate-match span {
    color: var(--muted);
    font-size: 13px;
}

.duplicate-match a {
    white-space: nowrap;
    font-weight: 700;
}

.duplicate-continue {
    margin-top: 12px;
}

@media (max-width: 640px) {
    .duplicate-match {
        align-items: flex-start;
        flex-direction: column;
    }

    .status-actions-row {
        flex-direction: column;
    }

    .status-actions-row form,
    .status-action {
        width: 100%;
    }
}


/* Version 5.4 additions */

/* Login / setup branding */
.auth-brand {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 auto 18px;
}

.auth-logo {
    display: block;
    max-width: min(280px, 78vw);
    height: auto;
    margin: 0 auto;
}

/* Softer status buttons */
.status-action.complete {
    background: #e6f3e9;
    border-color: #bfd8c5;
    color: #264e33;
}

.status-action.cancel {
    background: #f9e9e9;
    border-color: #e5c3c3;
    color: #7a3e3e;
}

.status-action.duplicate {
    background: #efedf7;
    border-color: #d8d2e8;
    color: #51476d;
}

.status-action.restore {
    background: #eef6ef;
    border-color: #c9dbc9;
    color: #345540;
}

.status-action:hover {
    filter: brightness(0.985);
}

/* Month view navigation */
.day-number-link {
    color: inherit;
    text-decoration: none;
    font-weight: inherit;
}

.day-number-link:hover {
    text-decoration: underline;
}

.more-items-link {
    display: inline-block;
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
}

.more-items-link:hover {
    text-decoration: underline;
}

/* Setup safety notice */
.security-notice {
    display: grid;
    gap: 8px;
    margin: 20px 0;
    padding: 14px 16px;
    border: 1px solid #e6c66e;
    border-radius: 9px;
    background: #fff9e8;
}

.security-notice code {
    overflow-wrap: anywhere;
    font-size: 13px;
}

.security-notice span {
    color: var(--muted);
    font-size: 13px;
}


/* Version 5.5 additions */
.more-items-link {
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    cursor: pointer;
}

.day-overlay-backdrop {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(26, 35, 30, 0.16);
}

.day-overlay-panel {
    position: fixed;
    z-index: 100;
    top: 50%;
    left: 50%;
    width: min(560px, calc(100vw - 40px));
    max-height: min(720px, calc(100vh - 40px));
    transform: translate(-50%, -50%);
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 20px 55px rgba(31, 42, 36, 0.22);
}

.day-overlay-panel.is-dragging {
    user-select: none;
}

.day-overlay-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 17px 18px 14px;
    border-bottom: 1px solid var(--border);
    background: #fafbfa;
    cursor: move;
    touch-action: none;
}

.day-overlay-header .eyebrow {
    margin-bottom: 2px;
}

.day-overlay-header h2 {
    margin: 0;
    font-size: 21px;
}

.day-overlay-close {
    width: 34px;
    height: 34px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #fff;
    color: var(--text);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.day-overlay-body {
    max-height: calc(min(720px, calc(100vh - 40px)) - 78px);
    overflow-y: auto;
    padding: 14px 18px 18px;
}

.overlay-item-list {
    display: grid;
    gap: 8px;
}

.overlay-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
    background: #fff;
}

.overlay-item:hover {
    border-color: #b9c5bd;
    background: #fbfcfb;
}

.overlay-item-main {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.overlay-item-main strong {
    overflow-wrap: anywhere;
}

.overlay-item-main span {
    color: var(--muted);
    font-size: 13px;
}

.overlay-item.status-completed .overlay-item-main strong {
    text-decoration: line-through;
}

.overlay-empty {
    padding: 22px 4px;
    color: var(--muted);
}

.overlay-full-day-link {
    display: inline-flex;
    margin-top: 15px;
    color: var(--accent);
    font-weight: 700;
    text-decoration: none;
}

.overlay-full-day-link:hover {
    text-decoration: underline;
}

body.overlay-open {
    overflow: hidden;
}

@media (max-width: 760px) {
    .day-overlay-panel {
        top: auto !important;
        right: 0;
        bottom: 0;
        left: 0 !important;
        width: 100%;
        max-height: 78vh;
        transform: none !important;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 18px 18px 0 0;
    }

    .day-overlay-header {
        cursor: default;
        touch-action: auto;
    }

    .day-overlay-body {
        max-height: calc(78vh - 78px);
    }
}


/* Version 5.6 additions */
.active-header-link {
    color: var(--accent);
    font-weight: 800;
}

.calendar-quick-search {
    margin: 0;
}

.calendar-quick-search input {
    width: 180px;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #fff;
}

.search-page {
    width: min(1100px, calc(100% - 36px));
    margin: 0 auto;
    padding: 32px 0 48px;
}

.search-card,
.search-results-card {
    padding: 24px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
}

.search-results-card {
    margin-top: 18px;
}

.search-form {
    margin-top: 20px;
}

.search-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
}

.search-input-row input {
    min-height: 46px;
}

.search-filter-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 220px));
    gap: 12px;
    margin-top: 14px;
}

.search-results-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.search-results-heading h2 {
    margin-top: 3px;
}

.search-results-list {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.search-result {
    display: block;
    padding: 15px 16px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    color: inherit;
    text-decoration: none;
}

.search-result:hover {
    border-color: #b9c5bd;
    background: #fbfcfb;
}

.search-result.status-completed .search-result-title-row h3 {
    text-decoration: line-through;
}

.search-result-main {
    min-width: 0;
}

.search-result-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.search-result-title-row h3 {
    margin: 0;
    font-size: 18px;
    overflow-wrap: anywhere;
}

.search-result-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.search-result-date {
    margin: 5px 0 0;
    font-weight: 700;
}

.search-result-meta,
.search-result-notes {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 14px;
}

.temporal-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
    background: #eef1ef;
    color: #526058;
}

.temporal-pill.temporal-upcoming {
    background: var(--accent-soft);
    color: var(--accent-dark);
}

.temporal-pill.temporal-today {
    background: #fff3cf;
    color: #765f1e;
}

.temporal-pill.temporal-past {
    background: #eeeeee;
    color: #666;
}

.search-empty {
    padding: 28px 0 8px;
}

.search-empty h3 {
    margin: 0 0 7px;
}

.search-empty p {
    margin: 0;
    color: var(--muted);
}

@media (max-width: 820px) {
    .calendar-quick-search {
        width: 100%;
    }

    .calendar-quick-search input {
        width: 100%;
    }

    .search-input-row {
        grid-template-columns: 1fr;
    }

    .search-filter-row {
        grid-template-columns: 1fr;
    }

    .search-results-heading,
    .search-result-title-row {
        flex-direction: column;
    }

    .search-result-badges {
        justify-content: flex-start;
    }
}


/* v6 organiser additions */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.calendar-item.multi-day-item { position:relative; border-left-color:var(--accent); background:var(--accent-soft); color:var(--accent-dark); z-index:2; }
.calendar-item.multi-day-item:not(.multi-day-start) { margin-left:-10px; padding-left:10px; border-left:0; border-top-left-radius:0; border-bottom-left-radius:0; }
.calendar-item.multi-day-item:not(.multi-day-end) { margin-right:-10px; padding-right:10px; border-top-right-radius:0; border-bottom-right-radius:0; }
.calendar-item.multi-day-start { border-top-left-radius:7px; border-bottom-left-radius:7px; }
.calendar-item.multi-day-end { border-top-right-radius:7px; border-bottom-right-radius:7px; }
.continuation-mark { opacity:.55; font-weight:700; }
.calendar-day { position:relative; }
.day-space { overflow:visible; }

.contacts-sidebar-card { margin-top:0; }
.sidebar-heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.sidebar-heading-link, .sidebar-all-link { color:var(--accent); text-decoration:none; font-weight:700; font-size:14px; }
.sidebar-contact-list { display:grid; gap:4px; margin-top:8px; }
.sidebar-contact { display:flex; align-items:center; gap:10px; padding:8px 6px; text-decoration:none; border-radius:7px; }
.sidebar-contact:hover { background:var(--accent-soft); }
.sidebar-all-link { display:inline-block; margin-top:10px; }
.contact-avatar { width:42px; height:42px; border-radius:50%; display:inline-grid; place-items:center; flex:0 0 auto; background:var(--accent-soft); color:var(--accent-dark); font-weight:700; }
.contact-avatar.small { width:30px; height:30px; font-size:12px; }
.contact-avatar.large { width:64px; height:64px; font-size:20px; }
.contacts-page { max-width:980px; margin:0 auto; padding:32px 24px 50px; }
.section-heading-row { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:20px; }
.contacts-search { display:flex; gap:8px; margin-bottom:18px; }
.contacts-search input { margin:0; }
.contacts-search button { min-width:100px; }
.contacts-list { background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.contact-row { display:flex; align-items:center; gap:12px; padding:13px 16px; text-decoration:none; border-bottom:1px solid var(--border); }
.contact-row:last-child { border-bottom:0; }
.contact-row:hover { background:#fafbfa; }
.contact-row-main { min-width:0; display:grid; gap:2px; flex:1; }
.contact-row-main small { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contact-chevron { color:var(--muted); font-size:26px; }
.contact-detail-heading { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.contact-detail-heading h1 { margin:0; }
.empty-card { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:28px; }
.form-two-columns { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.checkbox-row { display:flex; align-items:center; gap:9px; font-weight:700; }
.checkbox-row input { width:18px; height:18px; }
.form-actions { display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }
.danger-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; border:0; border-radius:7px; background:#8a2424; color:#fff; font-weight:700; cursor:pointer; }

@media (max-width: 900px) {
}
@media (max-width: 700px) {
    .section-heading-row { display:block; }
    .section-heading-row .primary-button { margin-top:14px; }
    .contacts-search { display:grid; grid-template-columns:1fr auto; }
    .form-two-columns { grid-template-columns:1fr; gap:0; }
}

/* v6.2 recurring tasks */
.status-pill.status-skipped {
    background: #f1eff8;
    color: #554a70;
    border-color: #ddd7ec;
}

.status-pill.status-missed {
    background: #fff3df;
    color: #76501b;
    border-color: #efd9b7;
}

.calendar-item.status-skipped,
.day-item.status-skipped,
.overlay-item.status-skipped {
    opacity: .62;
}

.calendar-item.status-completed .calendar-item-title,
.calendar-item.status-skipped .calendar-item-title,
.day-item.status-completed h2,
.day-item.status-skipped h2,
.overlay-item.status-completed .overlay-item-main strong,
.overlay-item.status-skipped .overlay-item-main strong {
    text-decoration: line-through;
}

.calendar-item.status-missed,
.day-item.status-missed,
.overlay-item.status-missed {
    border-style: dashed;
}

.status-action.skip {
    background: #f1eff8;
    color: #554a70;
    border-color: #ddd7ec;
}

.scope-options {
    display: grid;
    gap: 10px;
    margin: 8px 0 20px;
}

.scope-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--border, #dfe4df);
    border-radius: 10px;
    cursor: pointer;
}

.scope-option input {
    margin-top: 3px;
}

.scope-option span {
    display: grid;
    gap: 3px;
}

.scope-option small {
    color: var(--muted, #66706a);
    line-height: 1.35;
}

.series-edit-note {
    margin: 14px 0 22px;
    padding: 12px 14px;
    border: 1px solid var(--accent-border);
    border-radius: 10px;
    background: var(--accent-soft);
    color: var(--accent-dark);
    line-height: 1.45;
}

/* v6.3 — organiser sidebar and work schedules */
.sidebar-panel {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: sticky;
    top: 20px;
    align-self: start;
}

.sidebar-panel > .sidebar-card {
    margin-top: 0;
    position: static;
}

.sidebar-panel > .contacts-sidebar-card {
    position: static;
    top: auto;
}

.recurrence-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 700;
}

.work-schedule-card {
    max-width: 820px;
}

.work-weeks {
    display: grid;
    gap: 14px;
}

.work-week-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 16px;
    background: #fbfcfb;
}

.work-week-card[hidden] {
    display: none !important;
}

.work-week-heading h3 {
    margin: 0 0 12px;
    font-size: 17px;
}

.weekday-picker {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 14px;
}

.weekday-chip {
    position: relative;
    cursor: pointer;
}

.weekday-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.weekday-chip span {
    display: inline-flex;
    min-width: 44px;
    justify-content: center;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    font-size: 13px;
    font-weight: 700;
}

.weekday-chip input:checked + span {
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--accent-dark);
}

.compact-time-grid {
    max-width: 420px;
}

.work-pattern-list {
    display: grid;
    gap: 8px;
}

.work-pattern-row {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--border);
}

.work-pattern-row:last-child {
    border-bottom: 0;
}

@media (max-width: 700px) {
    .weekday-chip span {
        min-width: 40px;
        padding: 8px;
    }
    .work-pattern-row {
        grid-template-columns: 1fr;
        gap: 3px;
    }
}


/* v6.4 — time off and unified sticky sidebar */
.time-off-help {
    margin: 0 0 18px;
    padding: 12px 14px;
    border: 1px solid var(--accent-border);
    border-radius: 10px;
    background: var(--accent-soft);
    color: var(--accent-dark);
    line-height: 1.45;
}

@media (max-width: 1200px) {
    .sidebar-panel {
        position: static;
        top: auto;
    }
}

/* v6.5 — personal themes */
.theme-green { --accent:#276749; --accent-dark:#1f523b; --accent-strong:#1f523b; --accent-soft:#eaf3ee; --soft-accent:#eaf3ee; --accent-border:#cbded3; --surface-soft:#f5f8f6; --focus-ring:rgba(39,103,73,.18); }
.theme-blue { --accent:#2f5f8f; --accent-dark:#23486c; --accent-strong:#23486c; --accent-soft:#eaf1f8; --soft-accent:#eaf1f8; --accent-border:#cfdeec; --surface-soft:#f5f8fc; --focus-ring:rgba(47,95,143,.18); }
.theme-purple { --accent:#6b4c8a; --accent-dark:#503869; --accent-strong:#503869; --accent-soft:#f0ebf5; --soft-accent:#f0ebf5; --accent-border:#ddd0e8; --surface-soft:#faf7fc; --focus-ring:rgba(107,76,138,.18); }
.theme-orange { --accent:#a65c1c; --accent-dark:#7a4315; --accent-strong:#7a4315; --accent-soft:#fff0e3; --soft-accent:#fff0e3; --accent-border:#f1d2b5; --surface-soft:#fff9f4; --focus-ring:rgba(166,92,28,.18); }
.theme-red { --accent:#a54242; --accent-dark:#7b3030; --accent-strong:#7b3030; --accent-soft:#faeaea; --soft-accent:#faeaea; --accent-border:#eccaca; --surface-soft:#fff7f7; --focus-ring:rgba(165,66,66,.18); }
.theme-grey { --accent:#5e6662; --accent-dark:#414744; --accent-strong:#414744; --accent-soft:#eef0ef; --soft-accent:#eef0ef; --accent-border:#d7dcda; --surface-soft:#f7f8f8; --focus-ring:rgba(94,102,98,.18); }

.theme-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:10px 0 24px; }
.theme-choice { display:flex; align-items:center; gap:9px; margin:0; padding:11px 12px; border:1px solid var(--border); border-radius:9px; cursor:pointer; background:#fff; }
.theme-choice input { width:16px; height:16px; margin:0; accent-color:var(--accent); }
input[type="radio"], input[type="checkbox"] { accent-color:var(--accent); }
.theme-dot { width:18px; height:18px; border-radius:50%; display:inline-block; background:#276749; }
.theme-preview-blue .theme-dot { background:#2f5f8f; }
.theme-preview-purple .theme-dot { background:#6b4c8a; }
.theme-preview-orange .theme-dot { background:#a65c1c; }
.theme-preview-red .theme-dot { background:#a54242; }
.theme-preview-grey .theme-dot { background:#5e6662; }
@media (max-width:620px){ .theme-options{grid-template-columns:1fr 1fr;} }

/* v6.5 — linked organiser tools */
.contact-proper-name { margin:4px 0 0; color:var(--muted); }
.section-heading-inline { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.section-heading-inline h2 { margin:0 0 4px; }
.compact-button { min-height:38px; padding:0 12px; white-space:nowrap; }
.linked-organiser-section { margin-top:20px; }
.linked-task-list, .prep-reminder-list { display:grid; gap:8px; margin-top:12px; }
.linked-task-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:11px 12px; border:1px solid var(--border); border-radius:9px; text-decoration:none; background:#fff; }
.linked-task-row:hover { background:var(--accent-soft); }
.linked-task-row span:first-child { display:grid; gap:2px; }
.linked-task-row small, .prep-reminder-row small { color:var(--muted); }
.linked-task-row-end { display:flex!important; align-items:center; gap:8px; flex:0 0 auto; }
.linked-task-row-end .status-pill { white-space:nowrap; }
.prep-reminder-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:11px 12px; border:1px solid var(--border); border-radius:9px; background:#fff; }
.prep-reminder-row > div { display:grid; gap:2px; }
.prep-reminder-row form { margin:0; }
.text-danger-button { border:0; background:transparent; color:#8a2424; font-weight:700; cursor:pointer; padding:6px 4px; }
.empty-inline { color:var(--muted); margin:10px 0 0; }
@media (max-width:620px){ .section-heading-inline{display:block;} .section-heading-inline .compact-button{margin-top:10px;} }


/* v6.6 — importer, icons and polish */
.auth-card h1 { font-size: 28px; }
.theme-pink { --accent:#7e3653; --accent-dark:#672b43; --accent-strong:#672b43; --accent-soft:#fdebf2; --soft-accent:#fdebf2; --accent-border:#efcad8; --surface-soft:#fff7fa; --focus-ring:rgba(126,54,83,.18); }
.theme-preview-pink .theme-dot { background:#fdebf2; border:1px solid #7e3653; }
.theme-pink .primary-button, .theme-pink .auth-card button[type="submit"] { background:#fdebf2; color:#7e3653; }
.theme-pink .primary-button:hover, .theme-pink .auth-card button[type="submit"]:hover { background:#fdebf2; box-shadow:inset 0 0 0 2px #7e3653; }
.form-three-columns { display:grid; grid-template-columns:150px minmax(180px,1fr) minmax(220px,1fr); gap:14px; align-items:end; }
.header-icon-link { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:7px; color:var(--accent); text-decoration:none; }
.header-icon-link:hover { background:var(--accent-soft); }
.header-icon-link svg { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.header-link-with-icon { display:inline-flex; align-items:center; gap:6px; }
.header-link-with-icon svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.import-card { width:min(100%,980px); }
.import-drop { border:2px dashed var(--border); border-radius:12px; padding:24px; background:#fafbfa; }
.import-preview { display:grid; gap:10px; margin-top:18px; }
.import-event { display:grid; grid-template-columns:auto 1fr; gap:12px; padding:12px; border:1px solid var(--border); border-radius:9px; background:#fff; }
.import-event input { margin-top:4px; }
.import-event small { display:block; color:var(--muted); margin-top:2px; }
.import-summary { padding:12px 14px; background:var(--accent-soft); border-radius:9px; margin:16px 0; }
@media (max-width:700px){ .form-three-columns{grid-template-columns:1fr;} .header-text-desktop{display:none;} }

/* v6.7 — cleaner icon navigation and simplified Light Pink theme */
.theme-pink input:focus, .theme-pink select:focus, .theme-pink textarea:focus { outline-color:rgba(126,54,83,.18); }

/* v6.8 import/status refinements */
.import-type-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px}.import-type-row>span:first-child{font-size:.85rem;font-weight:700;color:var(--muted)}.import-type-row select{width:auto;min-width:165px;padding:7px 28px 7px 9px}.import-detected{font-weight:700;color:var(--accent-strong)}.status-action-link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.cancel-card{max-width:680px;margin:40px auto}.cancel-card .form-actions{align-items:center}


/* v6.9 contact address autocomplete + linked birthday */
.address-autocomplete-wrap { position: relative; }
.address-suggestions { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid rgba(31,41,55,.18); border-radius: 12px; box-shadow: 0 12px 30px rgba(31,41,55,.16); overflow: hidden; }
.address-suggestion { display: block; width: 100%; border: 0; border-bottom: 1px solid rgba(31,41,55,.08); background: #fff; color: #1f2937; text-align: left; padding: 11px 13px; font: inherit; cursor: pointer; }
.address-suggestion:last-child { border-bottom: 0; }
.address-suggestion:hover, .address-suggestion:focus { background: #f7f7f6; outline: none; }
.birthday-calendar-choice { margin-top: 10px; }
.alert.warning { background: #fff7e8; border-color: #e5b864; color: #6b4a13; }

/* v7.0 contacts */
.contact-avatar-photo { object-fit: cover; display:block; }
.checkbox-row.compact { margin-top:8px; }

.invite-link-field { margin-top:10px; width:100%; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.admin-list { display:grid; gap:10px; margin:12px 0 22px; }
.admin-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 14px; border:1px solid rgba(31,41,55,.12); border-radius:12px; background:#fff; }
.admin-row > div { display:grid; gap:3px; }
.admin-row small { color:var(--muted); }
.small-pill { display:inline-block; margin-left:6px; padding:2px 7px; border-radius:999px; background:var(--accent-soft); color:var(--accent-dark); font-size:11px; font-weight:700; }

/* v7.1 — invitations and settings polish */
.invite-create-form { margin-top: 8px; }
.invite-create-fields { display:flex; align-items:flex-end; gap:12px; }
.invite-email-field { flex:1 1 auto; min-width:0; }
.invite-email-field label { margin-top:0; }
.invite-create-fields .primary-button { flex:0 0 auto; white-space:nowrap; }

.settings-panel { margin-top:20px; padding:18px; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); }
.settings-panel h2 { margin:0 0 3px; font-size:20px; }
.settings-panel p { margin:0; color:var(--muted); font-size:14px; }
.settings-panel > label:first-of-type { margin-top:16px; }
.settings-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.settings-panel-row { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.settings-status-pill { flex:0 0 auto; display:inline-flex; align-items:center; min-height:26px; padding:3px 9px; border-radius:999px; background:var(--accent-soft); color:var(--accent-dark); font-size:12px; font-weight:700; }
.settings-muted-control { opacity:.82; font-weight:400; }
.settings-actions-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; }

@media (max-width:640px) {
    .invite-create-fields { display:grid; grid-template-columns:1fr; align-items:stretch; }
    .invite-create-fields .primary-button { width:100%; }
    .settings-panel-row { align-items:flex-start; flex-direction:column; }
    .settings-panel-row .secondary-button { width:100%; }
    .settings-actions-row { align-items:stretch; flex-direction:column; }
    .settings-actions-row .secondary-button, .settings-actions-row .primary-button { width:100%; }
}


/* v7.2 organiser polish */
.settings-card > form { display:grid; gap:18px; }
.settings-panel { margin:0; }
.contacts-heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.contacts-filter-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto;gap:10px}
.contact-group-choices{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 18px}
.contact-group-tags{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 20px}
.contact-group-tag{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);font-size:.86rem;font-weight:700}
.inline-form,.share-form,.group-row-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.inline-form input{flex:1;min-width:220px}.share-form>div{flex:1;min-width:200px}.group-row-form{flex:1}.group-row-form input{min-width:180px}
.calendar-owner-switcher{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;border:1px solid var(--border,#d9dedb);border-radius:10px;background:#fff}.calendar-owner-switcher>div{margin-left:auto}.calendar-owner-switcher small{width:100%;color:#65706a}
@media(max-width:700px){.contacts-filter-row{grid-template-columns:1fr}.share-form{display:grid}.calendar-owner-switcher>div{margin-left:0;width:100%}}

/* v0.7.3 — Notes */
.notes-page{max-width:1180px;margin:0 auto;padding:34px 24px 64px}.notes-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.notes-toolbar h1{margin:4px 0 8px}.notes-search{display:flex;gap:10px;align-items:center;margin:0 0 24px}.notes-search input{max-width:520px}.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.note-card{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--border,#dfe5e1);border-radius:14px;padding:18px;box-shadow:0 2px 10px rgba(28,38,32,.04);transition:transform .12s ease,box-shadow .12s ease}.note-card:hover{transform:translateY(-1px);box-shadow:0 5px 18px rgba(28,38,32,.08)}.note-card.pinned{border-color:var(--accent,#6f9b7a)}.note-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.note-card h2{font-size:1.05rem;margin:0 0 10px}.note-card p{margin:0 0 14px;color:var(--muted,#5f6b64);white-space:pre-line}.note-card small,.note-meta{color:var(--muted,#6b746f)}.note-detail .note-body{font-size:1.02rem;line-height:1.7;margin:22px 0;white-space:normal}.search-notes-section{margin-top:30px;padding-top:24px;border-top:1px solid var(--border,#dfe5e1)}.search-notes-section>h3{margin:0 0 12px}.version-stamp{margin:22px 2px 0;text-align:right;font-size:.78rem;color:#7a837e}.settings-panel .setting-note{margin-top:8px;color:var(--muted,#68736d);font-size:.9rem}
@media(max-width:850px){.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.notes-page{padding:24px 16px 48px}.notes-toolbar{display:block}.notes-toolbar .primary-button{display:inline-flex;margin-top:14px}.notes-search{align-items:stretch;flex-wrap:wrap}.notes-search input{max-width:none;flex:1 1 100%}.notes-grid{grid-template-columns:1fr}}
.scope-link{text-decoration:none;color:inherit;cursor:pointer}.scope-link:hover{border-color:var(--accent,#6f9b7a);background:rgba(120,150,130,.06)}.edit-scope-options{margin:18px 0 4px}

/* v0.7.3 — sync, email-to-calendar and release polish */
.sync-row{align-items:flex-start}.sync-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sync-actions form{margin:0}.sync-error{display:block;color:#9a3e46;margin-top:5px}.review-list{display:grid;gap:14px}.review-card{border:1px solid var(--border,#dfe5e1);border-radius:12px;padding:16px;background:#fff}.review-card>strong{display:block;margin-bottom:12px}.compact-review-form{gap:9px}.version-stamp{text-align:center!important;margin:24px 0 0!important;font-size:.78rem!important;color:var(--muted,#758078)!important}.active-header-link{background:var(--accent-soft,#edf4ef)}
@media(max-width:700px){.sync-actions{width:100%;margin-top:8px}.sync-row{display:block}}

/* v0.7.5 — Inbox and email-to-calendar polish */
.header-icon-link { position:relative; }
.header-badge { position:absolute; top:-4px; right:-5px; min-width:17px; height:17px; padding:0 4px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#a33f4a; color:#fff; font-size:10px; font-weight:800; line-height:1; border:2px solid #fff; }
.mailbox-settings-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:18px; }
.inbox-page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; }
.inbox-page-heading h1 { margin-bottom:6px; }
.inbox-message-meta { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:7px; color:var(--muted); font-size:.8rem; }
.inbox-history-list { display:grid; gap:0; margin-top:12px; background:#fff; border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.inbox-history-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 14px; border-bottom:1px solid var(--border); }
.inbox-history-row:last-child { border-bottom:0; }
.inbox-history-row > div { min-width:0; display:grid; gap:3px; }
.inbox-history-row strong { overflow-wrap:anywhere; }
.inbox-history-row small { color:var(--muted); }
@media(max-width:640px){.mailbox-settings-actions{display:grid;grid-template-columns:1fr}.mailbox-settings-actions .primary-button,.mailbox-settings-actions .secondary-button{width:100%}.inbox-page-heading{display:block}.inbox-page-heading form{margin-top:12px}.inbox-history-row{align-items:flex-start}}

/* v0.7.6 — Help Centre and multi-day clarity */
.help-page{max-width:var(--page-standard,1040px);margin:0 auto;padding:34px 24px 64px}.help-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:22px}.help-hero h1{margin:4px 0 8px}.help-search{display:flex;gap:10px;align-items:center;margin:0 0 28px}.help-search input{flex:1;max-width:620px}.help-categories{display:grid;gap:26px}.help-category>h2{font-size:1.15rem;margin:0 0 10px}.help-article-list{border:1px solid var(--border);background:#fff;border-radius:14px;overflow:hidden}.help-article-link{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 17px;text-decoration:none;color:inherit;border-bottom:1px solid var(--border)}.help-article-link:last-child{border-bottom:0}.help-article-link:hover{background:var(--accent-soft)}.help-article-link>span:first-child{display:grid;gap:3px}.help-article-link small{color:var(--muted);line-height:1.35}.help-breadcrumbs{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.9rem;margin-bottom:18px}.help-breadcrumbs a{color:inherit}.help-article{max-width:780px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:28px}.help-article h1{margin:4px 0 3px}.help-reviewed{margin:0 0 18px;color:var(--muted);font-size:.82rem}.help-article-body{line-height:1.7}.help-article-body h2{font-size:1.14rem;margin:26px 0 8px}.help-article-body ul,.help-article-body ol{padding-left:22px}.help-article-body li{margin:6px 0}.help-article-footer{margin-top:30px;padding-top:20px;border-top:1px solid var(--border)}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.feature-card{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;min-height:170px}.feature-card:hover{border-color:var(--accent);box-shadow:0 5px 18px rgba(28,38,32,.06)}.feature-card h2{font-size:1.05rem;margin:0 0 8px}.feature-card p{color:var(--muted);line-height:1.5;margin:0 0 15px}.feature-card span{font-weight:700;color:var(--accent-dark)}.multi-day-behaviour{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fafbfa}.multi-day-behaviour>label:first-child{margin-top:0;font-weight:700}.multi-day-behaviour .radio-row{margin:9px 0 0}.multi-day-behaviour .radio-row small{display:block;color:var(--muted);margin-top:2px}
@media(max-width:820px){.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.help-page{padding:24px 16px 48px}.help-hero{display:block}.help-hero .secondary-button{margin-top:12px}.help-search{align-items:stretch;flex-wrap:wrap}.help-search input{flex:1 1 100%;max-width:none}.help-article{padding:20px}.feature-grid{grid-template-columns:1fr}}


/* v0.7.7 — Inbox parser and layout polish */
.inbox-page-heading .secondary-button{white-space:nowrap;min-width:max-content}
.review-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px}
.review-actions form{margin:0}
.review-actions .text-danger-button{white-space:nowrap}
@media(max-width:520px){.review-actions{align-items:stretch;flex-direction:column}.review-actions .primary-button,.review-actions form,.review-actions .text-danger-button{width:100%}}


/* v0.7.8 — consistency and email parser polish */
.settings-card > .settings-panel + .settings-panel { margin-top: 20px; }
.review-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.review-actions > form { margin:0; }
.settings-card > .form-actions { margin-top:24px; gap:12px; align-items:center; }
.notes-search input[type="search"], .calendar-search input[type="search"], .search-form input[type="search"] { padding-left:14px; }
.field-grid.three-col { grid-template-columns: 1.4fr 1fr 1fr; }
@media (max-width: 720px) {
  .field-grid.three-col { grid-template-columns:1fr; }
  .review-actions { align-items:stretch; }
  .review-actions .primary-button, .review-actions .text-danger-button { width:auto; }
}


/* v0.7.9 — settings polish, accessibility and Lists */
.settings-panel .form-section-heading{margin:0 0 4px;padding-top:0;border-top:0}
.settings-panel{padding:20px;background:#fff}
.settings-panel-row{min-height:92px}
.settings-action-button{min-width:150px;justify-content:center;white-space:nowrap;padding-left:16px;padding-right:16px}
.help-search input[type="search"]{min-height:52px;padding:12px 14px;font-size:1rem;line-height:1.35;border-radius:4px}
.accessibility-grid{display:grid;grid-template-columns:minmax(210px,280px) 1fr 1fr;gap:12px 22px;align-items:end;margin-top:16px}
.accessibility-grid .checkbox-row{margin:0;min-height:44px}
.text-large{font-size:112.5%}.text-xlarge{font-size:125%}
.access-high-contrast{--border:#7a817d;--muted:#3f4743}.access-high-contrast input,.access-high-contrast select,.access-high-contrast textarea,.access-high-contrast .settings-panel,.access-high-contrast .search-card,.access-high-contrast .contact-row,.access-high-contrast .organiser-list-card{border-color:#68706b!important}.access-high-contrast :focus-visible{outline:3px solid currentColor;outline-offset:2px}
.access-large-controls button,.access-large-controls .primary-button,.access-large-controls .secondary-button,.access-large-controls input,.access-large-controls select{min-height:48px}.access-large-controls .header-icon-link{width:42px;height:42px}
.access-underline-links a:not(.primary-button):not(.secondary-button):not(.danger-button):not(.header-icon-link):not(.brand-link){text-decoration:underline;text-underline-offset:2px}
.access-reduce-motion *,.access-reduce-motion *::before,.access-reduce-motion *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
.lists-page,.list-detail-page{max-width:1180px;margin:0 auto;padding:34px 24px 64px}.list-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.organiser-list-card{display:block;text-decoration:none;color:inherit;border:1px solid var(--border);border-radius:14px;background:#fff;padding:18px}.organiser-list-card:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(0,0,0,.05)}.organiser-list-card.pinned{border-color:var(--accent)}.list-card-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.organiser-list-card h2{margin:0;font-size:1.05rem}.organiser-list-card p{margin:9px 0 0;color:var(--muted)}.list-detail-card{max-width:850px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px}.list-detail-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.list-detail-heading h1{margin:4px 0 0}.list-add-item-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin:18px 0}.checklist-items{display:grid;gap:8px}.checklist-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}.checklist-row.done span{text-decoration:line-through;color:var(--muted)}.checklist-toggle{width:34px;height:34px;border-radius:999px;border:1px solid var(--border);background:var(--accent-soft);color:var(--accent-dark);font-weight:800;cursor:pointer}.list-settings{margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}.list-settings summary{font-weight:700;cursor:pointer}.list-settings form{margin-top:14px}.list-delete-form{margin-top:18px}.contacts-filter-row{grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto auto}.favourites-filter{display:flex;align-items:center;gap:8px;min-height:44px;margin:0!important;white-space:nowrap}
@media(max-width:900px){.accessibility-grid{grid-template-columns:1fr 1fr}.list-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contacts-filter-row{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.accessibility-grid{grid-template-columns:1fr}.settings-action-button{width:100%}.lists-page,.list-detail-page{padding:24px 16px 48px}.list-card-grid{grid-template-columns:1fr}.list-detail-card{padding:20px}.list-detail-heading{display:block}.list-detail-heading .secondary-button{margin-top:12px}.contacts-filter-row{grid-template-columns:1fr}.list-add-item-row{grid-template-columns:1fr}.list-add-item-row .primary-button{width:100%}}

/* v0.8.0 — landing page, global footer and mobile month view */
.site-footer {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:54px;
    padding:14px 18px;
    border-top:1px solid var(--border);
    background:var(--surface);
    color:var(--muted);
    font-size:.78rem;
    text-align:center;
}
.site-footer-home { color:inherit; text-decoration:none; font-weight:700; }
.site-footer-home:hover { color:var(--accent-dark); }
.auth-page { grid-template-rows:minmax(0,1fr) auto; }
.auth-page > .auth-card { align-self:center; }
.auth-page > .site-footer { width:100%; align-self:end; }

.landing-page { background:#f7f8f6; color:#202522; }
.landing-header {
    max-width:1240px;
    min-height:78px;
    margin:0 auto;
    padding:16px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.landing-brand { display:inline-flex; align-items:center; text-decoration:none; }
.landing-brand img { display:block; height:44px; width:auto; }
.landing-nav { display:flex; align-items:center; gap:22px; font-size:14px; }
.landing-nav a { color:#344039; text-decoration:none; font-weight:700; }
.landing-nav a:hover { color:var(--accent-dark); }
.landing-nav .landing-login {
    min-height:40px;
    padding:0 15px;
    display:inline-flex;
    align-items:center;
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff;
}
.landing-hero {
    max-width:1240px;
    margin:0 auto;
    padding:72px 28px 84px;
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(560px,1.1fr);
    gap:64px;
    align-items:center;
}
.landing-kicker { margin:0 0 10px; color:var(--accent); font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.landing-hero h1 { max-width:620px; margin:0; font-size:clamp(44px,5vw,72px); line-height:.98; letter-spacing:-.045em; }
.landing-hero-text { max-width:650px; margin:24px 0 0; color:#58635d; font-size:clamp(19px,2vw,23px); line-height:1.5; }
.landing-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.landing-primary-cta { min-height:50px; padding:0 22px; }
.landing-invite-note { max-width:600px; margin:16px 0 0; color:var(--muted); font-size:13px; line-height:1.5; }

.landing-product-preview { overflow:hidden; border:1px solid #d7ddd9; border-radius:18px; background:#fff; box-shadow:0 26px 70px rgba(32,45,37,.13); }
.preview-topbar { min-height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid #e1e5e2; }
.preview-example-label { color:#8a948e; font-size:10px; font-weight:700; letter-spacing:.02em; }
.preview-arrow { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; color:#8b948f; font-size:20px; line-height:1; }
.preview-logo-word { font-size:16px; font-weight:800; letter-spacing:-.02em; }
.preview-logo-word::after { content:""; display:inline-block; width:7px; height:7px; margin-left:3px; border-radius:50%; background:var(--accent); vertical-align:middle; }
.preview-dots { display:flex; gap:7px; }
.preview-dots span { width:7px; height:7px; border-radius:50%; background:#d2d8d4; }
.preview-toolbar { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid #e1e5e2; }
.preview-toolbar strong { text-align:center; font-size:15px; }
.preview-today { padding:6px 10px; border:1px solid #d8ded9; border-radius:7px; font-size:11px; font-weight:700; }
.preview-layout { display:grid; grid-template-columns:minmax(0,1fr) 180px; }
.preview-calendar { min-width:0; border-right:1px solid #e1e5e2; }
.preview-weekdays { display:grid; grid-template-columns:repeat(7,1fr); background:#f3f5f3; border-bottom:1px solid #e1e5e2; }
.preview-weekdays span { padding:7px 2px; color:#79827d; font-size:9px; font-weight:700; text-align:center; }
.preview-days { display:grid; grid-template-columns:repeat(7,1fr); }
.preview-day { min-height:74px; padding:6px; border-right:1px solid #e7ebe8; border-bottom:1px solid #e7ebe8; background:#fff; font-size:9px; }
.preview-day:nth-child(7n) { border-right:0; }
.preview-day b { display:block; width:19px; height:19px; line-height:19px; border-radius:50%; font-size:9px; text-align:center; }
.preview-day small, .preview-day em { display:block; overflow:hidden; margin-top:5px; padding:3px 4px; border-radius:4px; background:#f1f4f2; color:#49534d; font-size:7px; font-style:normal; white-space:nowrap; text-overflow:ellipsis; }
.preview-day em { background:#fdebf2; color:#7e3653; }
.preview-day.muted { color:#a6aca8; background:#fafbfa; }
.preview-day.current b { background:var(--accent); color:#fff; }
.preview-coming-up { padding:16px 14px; }
.preview-coming-up h3 { margin:0 0 8px; font-size:14px; }
.preview-coming-up div { padding:10px 0; border-bottom:1px solid #e6eae7; }
.preview-coming-up div:last-child { border-bottom:0; }
.preview-coming-up strong, .preview-coming-up small { display:block; }
.preview-coming-up strong { font-size:10px; }
.preview-coming-up small { margin-top:2px; color:#7a837e; font-size:8px; }

.landing-problem, .landing-section, .landing-organiser-strip, .landing-final-cta { max-width:1180px; margin:0 auto; }
.landing-problem { padding:80px 28px; text-align:center; }
.landing-problem h2 { max-width:880px; margin:0 auto; font-size:clamp(30px,4vw,48px); line-height:1.08; letter-spacing:-.035em; }
.landing-problem > p:last-child { max-width:800px; margin:22px auto 0; color:#616c65; font-size:18px; line-height:1.65; }
.landing-section { padding:84px 28px; }
.landing-section-heading { max-width:760px; margin-bottom:34px; }
.landing-section-heading.compact { margin-bottom:26px; }
.landing-section-heading h2, .landing-split h2, .landing-privacy h2, .landing-final-cta h2 { margin:0; font-size:clamp(30px,3.5vw,46px); line-height:1.08; letter-spacing:-.03em; }
.landing-section-heading > p:last-child, .landing-split p, .landing-privacy p, .landing-final-cta p { color:#616c65; line-height:1.65; }
.landing-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.landing-feature-card { min-height:225px; padding:24px; border:1px solid #dce1dd; border-radius:14px; background:#fff; }
.landing-feature-icon { width:38px; height:38px; display:grid; place-items:center; margin-bottom:22px; border-radius:10px; background:var(--accent-soft); color:var(--accent-dark); font-weight:900; }
.landing-feature-card h3 { margin:0 0 9px; font-size:19px; }
.landing-feature-card p { margin:0; color:#68716c; line-height:1.6; }
.landing-organiser-strip { padding:58px 28px; }
.landing-three-up { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid #dce1dd; border-radius:14px; background:#dce1dd; }
.landing-three-up > div { min-height:180px; padding:26px; background:#fff; }
.landing-three-up strong { font-size:19px; }
.landing-three-up p { margin:8px 0 0; color:#68716c; line-height:1.6; }
.landing-split { display:grid; grid-template-columns:1fr .9fr; gap:68px; align-items:center; }
.landing-integration-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.landing-integration-list span { padding:16px 18px; border:1px solid #dce1dd; border-radius:10px; background:#fff; font-weight:700; }
.landing-privacy > div { padding:38px; border-radius:16px; background:#eaf3ee; }
.landing-privacy p { max-width:820px; margin-bottom:0; color:#435149; }
.landing-final-cta { padding:96px 28px 104px; text-align:center; }
.landing-final-cta h2 { max-width:820px; margin:0 auto; }
.landing-final-cta p { margin:16px auto 24px; }

@media (max-width:1000px) {
    .landing-hero { grid-template-columns:1fr; gap:42px; padding-top:48px; }
    .landing-product-preview { max-width:760px; }
    .landing-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
    .landing-header { padding:12px 16px; }
    .landing-brand img { height:36px; }
    .landing-nav { gap:12px; }
    .landing-nav > a:not(.landing-login):not(.landing-waitlist-cta):not(:first-child) { display:none; }
    .landing-hero { padding:42px 16px 62px; }
    .landing-hero h1 { font-size:46px; }
    .landing-hero-text { font-size:18px; }
    .preview-layout { grid-template-columns:1fr; }
    .preview-calendar { border-right:0; }
    .preview-coming-up { display:none; }
    .preview-day { min-height:62px; padding:4px; }
    .landing-problem, .landing-section, .landing-organiser-strip, .landing-final-cta { padding-left:16px; padding-right:16px; }
    .landing-feature-grid, .landing-three-up, .landing-split, .landing-integration-list { grid-template-columns:1fr; }
    .landing-split { gap:28px; }
    .landing-three-up { gap:1px; }
}

/* Keep all seven days visible in Month view on phones. */
@media (max-width:900px) {
    .month-calendar { overflow:visible; grid-template-columns:repeat(7,minmax(0,1fr)); }
}
@media (max-width:640px) {
    .month-calendar { border-radius:8px; }
    .weekday { padding:7px 2px; font-size:10px; }
    .calendar-day { min-height:92px; padding:4px 3px; }
    .calendar-day-head { gap:2px; }
    .day-number { width:22px; height:22px; font-size:11px; }
    .day-add-link { width:20px; height:20px; font-size:12px; }
    .day-space { padding-top:4px; }
    .calendar-item { margin-bottom:3px; padding:3px 4px; border-left-width:2px; border-radius:4px; font-size:9px; overflow:hidden; }
    .calendar-item-title, .calendar-item-time { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
    .calendar-item-time { font-size:8px; }
    .more-link { font-size:9px; }
}

/* v0.8.1 — home-link branding, legal footer and logo polish */
.header-logo { height:46px; }
.site-footer { padding:12px 18px; }
.site-footer-inner {
    width:min(1240px,100%);
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:18px;
}
.site-footer-meta {
    grid-column:2;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    white-space:nowrap;
}
.site-footer-links {
    grid-column:3;
    justify-self:end;
    display:flex;
    align-items:center;
    gap:14px;
}
.site-footer-links a { color:inherit; text-decoration:none; }
.site-footer-links a:hover { color:var(--accent-dark); text-decoration:underline; }
.legal-page {
    max-width:var(--page-standard,1040px);
    margin:0 auto;
    padding:42px 24px 70px;
}
.legal-card {
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:16px;
    padding:30px;
}
.legal-card h1 { margin:4px 0 8px; }
.legal-card h2 { margin:28px 0 8px; font-size:1.15rem; }
.legal-card p,.legal-card li { line-height:1.65; }
.legal-card ul { padding-left:22px; }
.legal-updated { color:var(--muted); font-size:.88rem; margin:0 0 24px; }
.legal-header {
    min-height:78px;
    padding:14px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    background:var(--surface);
    border-bottom:1px solid var(--border);
}
.legal-header .landing-brand img { height:46px; }
.legal-header-actions { display:flex; align-items:center; gap:12px; }
@media (max-width:640px) {
    .header-logo { height:42px; }
    .site-footer-inner { display:flex; flex-direction:column; gap:8px; }
    .site-footer-meta,.site-footer-links { grid-column:auto; justify-self:auto; }
    .legal-page { padding:24px 16px 48px; }
    .legal-card { padding:22px 18px; }
    .legal-header { padding:12px 16px; }
}

/* v0.8.2 — dashboard, richer contacts/sharing and reminder-time polish */
.header-logo { height:53px; }

.reminder-options-with-time { display:grid; gap:8px; }
.reminder-time-row { display:grid; grid-template-columns:minmax(0,1fr) 132px; gap:12px; align-items:center; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.reminder-time-row .reminder-check { margin:0; }
.reminder-row-time { margin:0; }
.reminder-row-time input { width:100%; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.today-page { max-width:1180px; margin:0 auto; padding:34px 24px 70px; }
.today-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:22px; }
.today-hero h1 { margin:4px 0 6px; }
.today-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.today-card { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:20px; box-shadow:0 2px 10px rgba(28,38,32,.04); }
.today-card-wide { grid-column:1/-1; }
.today-card h2 { margin:0 0 14px; font-size:1.08rem; }
.today-item-list,.today-mini-list { display:grid; gap:8px; }
.today-item-row,.today-mini-list a { display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:10px; text-decoration:none; color:inherit; background:var(--surface-soft); border:1px solid transparent; }
.today-item-row:hover,.today-mini-list a:hover { border-color:var(--border); }
.today-item-row > span:last-child,.today-mini-list a { min-width:0; }
.today-item-row strong,.today-mini-list strong { display:block; }
.today-item-row small,.today-mini-list small { display:block; color:var(--muted); margin-top:2px; }
.today-item-icon { font-size:1.1rem; width:22px; text-align:center; }
.today-mini-list a { display:block; }

.birthday-contact-panel { margin-top:20px; }
.birthday-contact-actions { display:flex; gap:10px; flex-wrap:wrap; }
.suggested-contact-card { padding:14px; margin:14px 0; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); }
.suggested-contact-card strong,.suggested-contact-card small { display:block; }
.suggested-contact-card small { color:var(--muted); margin-top:3px; }

.contact-suggestion-list { display:grid; gap:10px; margin-top:20px; }
.contact-suggestion-row { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 16px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.contact-suggestion-row strong,.contact-suggestion-row small { display:block; }
.contact-suggestion-row small { color:var(--muted); margin-top:3px; }
.contact-suggestion-actions { display:flex; align-items:center; gap:8px; }
.contact-suggestion-actions form { margin:0; }

.lists-section { margin-top:24px; }
.lists-section > h2 { font-size:1.1rem; margin:0 0 12px; }
.shared-lists-section { padding-top:22px; border-top:1px solid var(--border); }
.share-badge { font-size:.72rem; padding:4px 7px; border-radius:999px; background:var(--accent-soft,#edf5ef); color:var(--accent-dark); white-space:nowrap; }
.list-share-panel { margin-top:24px; padding-top:22px; border-top:1px solid var(--border); }
.list-share-panel h2 { margin:0 0 4px; font-size:1.05rem; }
.compact-list { margin-top:14px; }
.checklist-toggle.static { display:inline-flex; align-items:center; justify-content:center; }

.about-card .form-actions { margin-top:28px; }
.contact-page-card .stacked-form { margin-top:22px; }

@media (max-width:760px) {
    .header-logo { height:48px; }
    .today-grid { grid-template-columns:1fr; }
    .today-card-wide { grid-column:auto; }
    .today-hero { flex-direction:column; }
    .contact-suggestion-row { align-items:flex-start; flex-direction:column; }
    .contact-suggestion-actions { width:100%; }
    .reminder-time-row { grid-template-columns:1fr 118px; }
}
@media (max-width:480px) {
    .reminder-time-row { grid-template-columns:1fr; }
    .reminder-row-time input { max-width:160px; }
}

/* v0.8.3 — landing rhythm, PWA, related events, prep templates and contact history */
.landing-header .landing-brand img { height:68px; }
.landing-page { background:#fff; }
.landing-problem,
.landing-organiser-strip,
.landing-privacy { background:#f3f5f3; box-shadow:0 0 0 100vmax #f3f5f3; clip-path:inset(0 -100vmax); }
.landing-section,
.landing-final-cta { background:#fff; box-shadow:0 0 0 100vmax #fff; clip-path:inset(0 -100vmax); }
.landing-privacy > div { background:transparent; padding-left:0; padding-right:0; }

.auth-submit-gap { margin-top:16px !important; }
.password-rules { list-style:none; margin:10px 0 4px; padding:0; display:grid; gap:5px; color:var(--muted); font-size:13px; }
.password-rules li::before { content:'○'; display:inline-block; width:20px; font-weight:800; }
.password-rules li.met { color:var(--accent-dark); }
.password-rules li.met::before { content:'✓'; }

.prep-template-panel { margin:20px 0 24px; padding:16px; border:1px solid var(--border); border-radius:12px; background:var(--soft-bg,#f8faf8); }
.prep-template-list { display:grid; gap:8px; }
.prep-template-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 12px; border:1px solid var(--border); border-radius:9px; background:#fff; }
.prep-template-row > a { display:grid; gap:2px; color:inherit; text-decoration:none; flex:1; }
.prep-template-row small { color:var(--muted); }
.prep-template-row form { margin:0; }

.contact-history-section { margin-top:24px; }
.contact-history-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:14px; }
.contact-history-grid > div { padding:14px; border:1px solid var(--border); border-radius:11px; background:#fff; }
.contact-history-grid h3 { margin:0 0 10px; font-size:16px; }
.contact-history-list { display:grid; gap:7px; }
.contact-history-list a { display:grid; gap:2px; padding:9px 10px; border-radius:8px; background:var(--soft-bg,#f7f9f7); color:inherit; text-decoration:none; }
.contact-history-list a:hover { box-shadow:inset 0 0 0 1px var(--accent); }
.contact-history-list small { color:var(--muted); }

@media (max-width:700px){
  .landing-header .landing-brand img { height:56px; }
  .contact-history-grid { grid-template-columns:1fr; }
  .prep-template-row { align-items:flex-start; }
}


/* v0.8.3 rebuild — audited landing cleanup and narrow-phone month hardening */
.landing-section-heading > h2:first-child,
.landing-problem > h2:first-child,
.landing-organiser-strip h2:first-child,
.landing-split h2:first-child,
.landing-privacy h2:first-child { margin-top:0; }

@media (max-width:480px) {
    .month-calendar { width:100%; min-width:0; }
    .weekday { padding:6px 1px; font-size:9px; }
    .calendar-day { min-width:0; min-height:82px; padding:3px 2px; }
    .calendar-day-head { gap:1px; }
    .day-number { width:18px; height:18px; font-size:10px; }
    .day-add-link { width:17px; height:17px; font-size:10px; }
    .calendar-item { padding:2px 3px; font-size:8px; line-height:1.2; }
    .calendar-item-time { display:none; }
    .more-link { font-size:8px; }
}

/* v0.8.4 — landing/container, search, recurrence and mobile polish */
.landing-section-heading,
.landing-section-heading.compact {
    max-width: 100%;
    width: 100%;
}
.landing-section-heading h2,
.landing-organiser-strip .landing-section-heading h2,
.landing-split > div:first-child,
.landing-privacy > div {
    max-width: 100%;
}
.landing-organiser-strip .landing-section-heading {
    margin-bottom: 28px;
}

.auth-intro {
    margin-top: 4px;
    font-size: 1.05rem;
}

.contact-page-card {
    max-width: 760px;
    margin: 0 auto;
}
.contact-page-card > .lede {
    max-width: 620px;
}
.contact-form {
    margin-top: 26px;
}
.contact-form .form-two-columns {
    gap: 18px;
}
.contact-form label {
    margin-top: 0;
}
.contact-form .form-two-columns + .contact-subject {
    margin-top: 18px;
}
.contact-form .contact-subject input,
.contact-form .form-two-columns input,
.contact-form textarea {
    min-height: 52px;
    padding: 12px 14px;
    font-size: 1rem;
}
.contact-form textarea {
    min-height: 230px;
}
.contact-form .hint {
    margin-top: 10px;
}
.contact-form .form-actions {
    justify-content: space-between;
    align-items: center;
    margin-top: 26px;
}

.recurrence-choice-intro {
    border-left: 4px solid var(--accent);
}
.scope-option {
    transition: border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
.scope-option:hover,
.scope-option:focus-within {
    border-color: var(--accent);
    background: var(--accent-soft);
}
.scope-option input:checked + span strong {
    color: var(--accent-dark);
}

.search-filter-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.search-kind {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    margin-right: 6px;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--accent-dark);
    font-size: .72rem;
    font-weight: 800;
    vertical-align: 2px;
}
.search-highlight {
    background: #fff1a8;
    color: inherit;
    padding: 0 .08em;
    border-radius: 2px;
}

@media (max-width: 760px) {
    .search-filter-row { grid-template-columns: 1fr 1fr; }
    .contact-form .form-two-columns { grid-template-columns: 1fr; gap: 0; }
    .contact-form .form-two-columns > div + div { margin-top: 18px; }
}

@media (max-width: 640px) {
    .site-header {
        flex-direction: row;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
        overflow: hidden;
    }
    .brand-link { flex: 0 0 auto; }
    .header-logo { height: 42px; }
    .header-actions {
        margin-left: auto;
        gap: 5px;
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
        padding: 2px 0;
    }
    .header-actions::-webkit-scrollbar { display:none; }
    .header-icon-link {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
    }
    .header-actions .link-button {
        min-height: 44px;
        padding: 0 8px;
        white-space: nowrap;
    }
    .search-filter-row { grid-template-columns: 1fr; }
    .search-input-row { gap: 8px; }
    .search-input-row input,
    .help-search input,
    .contacts-search input { min-height: 48px; }
    .detail-card,
    .confirm-card,
    .form-card,
    .settings-card { padding: 22px 16px; }
    .scope-option { padding: 14px 12px; }
    .contact-form .form-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .contact-form .form-actions > * { width: 100%; }
    .auth-page { padding: 18px 12px; }
    .auth-card { padding: 26px 22px; }
    .auth-logo img { max-width: 230px; margin: 0 auto; }
    .landing-section-heading h2,
    .landing-organiser-strip .landing-section-heading h2 {
        max-width: none;
    }
}

@media (max-width: 420px) {
    .calendar-page { padding-left: 8px; padding-right: 8px; }
    .month-calendar { border-radius: 10px; }
    .weekday { font-size: 8px; letter-spacing: 0; }
    .calendar-day { min-height: 76px; padding: 2px 1px; }
    .day-number { width: 17px; height: 17px; font-size: 9px; }
    .day-add-link { width: 16px; height: 16px; font-size: 9px; }
    .calendar-item { font-size: 7.5px; padding: 2px; }
    .view-switcher a { min-height: 42px; }
    .toolbar-actions .primary-button,
    .toolbar-actions .secondary-button { min-height: 44px; }
}

/* v0.8.5 — Notes, contact form and opt-in app-install polish */
.contact-form .contact-name-email-row {
    gap: 10px;
}
.contact-form .contact-subject {
    width: 100%;
    max-width: none;
}
.contact-form .contact-subject input {
    display: block;
    width: 100% !important;
    max-width: none !important;
}

.notes-page-polished {
    max-width: var(--page-control, 1180px);
    box-sizing: border-box;
}
.notes-intro {
    margin-bottom: 22px;
}
.notes-intro h1 {
    margin: 0 0 8px;
}
.notes-intro .lede {
    max-width: 700px;
    margin-bottom: 0;
}
 .notes-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 24px;
}
.notes-tools .notes-search {
    margin: 0;
    min-width: 0;
}
.notes-tools .notes-search input {
    max-width: none;
    flex: 1;
    min-width: 0;
}
.notes-add-button {
    white-space: nowrap;
}
.notes-empty-state {
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
    padding: 34px 28px;
    text-align: center;
    box-shadow: 0 2px 10px rgba(28,38,32,.035);
}
.notes-empty-state h2 {
    margin: 0 0 8px;
}
.notes-empty-state p {
    max-width: 580px;
    margin: 0 auto 20px;
    color: var(--muted);
    line-height: 1.6;
}
.notes-grid-polished:not(.oy-sticky-board) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.notes-grid-polished .note-card {
    min-height: 180px;
    display: flex;
    flex-direction: column;
}
.notes-grid-polished .note-card p {
    flex: 1;
    line-height: 1.55;
}
.note-pin {
    color: var(--accent-dark);
}
.note-card-empty {
    color: var(--muted);
    font-style: italic;
}

.app-install-banner {
    position: relative;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-height: 44px;
    padding: 8px 14px;
    background: var(--accent-soft, #edf5ef);
    color: var(--text);
    border-bottom: 1px solid var(--border);
    font-size: .92rem;
}
.app-install-banner-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.app-install-link {
    color: var(--accent-dark);
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}
.app-install-link:hover { text-decoration: underline; }
.app-install-dismiss {
    width: 32px;
    height: 32px;
    min-height: 32px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: currentColor;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.app-install-dismiss:hover { background: rgba(0,0,0,.06); }
#get-app { scroll-margin-top: 20px; }
.install-help-text { margin-bottom: 0; }

@media (max-width: 700px) {
    .notes-tools {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .notes-tools .notes-search {
        flex-wrap: wrap;
        align-items: stretch;
    }
    .notes-tools .notes-search input {
        flex: 1 1 100%;
    }
    .notes-add-button {
        width: 100%;
    }
    .notes-grid-polished {
        grid-template-columns: 1fr;
    }
    .contact-form .contact-name-email-row {
        gap: 0;
    }
    .app-install-banner {
        justify-content: space-between;
        text-align: left;
    }
}


/* v0.8.6 — mobile navigation, contact form and landing-page polish */
/* v0.8.7 — QA, accessibility and security hardening */
.mobile-brand-link,
.mobile-header-menu { display:none; }

/* Keep the privacy section in the alternating soft-grey rhythm. */
.landing-privacy {
    background:#f3f5f3;
    box-shadow:0 0 0 100vmax #f3f5f3;
    clip-path:inset(0 -100vmax);
}
.landing-privacy > div { background:transparent; }

/* Contact form: balanced first row, full-width subject, clear spacing before message. */
.contact-form .contact-name-email-row {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:12px;
}
.contact-form .contact-name-email-row > div,
.contact-form .contact-name-email-row input { min-width:0; width:100%; }
.contact-form .contact-subject { margin-top:20px; }
.contact-form .contact-message { margin-top:22px; }
.contact-form .contact-message label { margin-top:0; }

/* Mobile/PWA header: logo + burger only. */
@media (max-width: 640px) {
    .site-header {
        position:relative;
        min-height:66px;
        padding:8px 14px;
        overflow:visible;
    }
    .desktop-brand-link,
    .desktop-header-actions { display:none !important; }
    .mobile-brand-link,
    .mobile-header-menu { display:flex; }
    .mobile-brand-link { align-items:center; flex:0 0 auto; }
    .mobile-brand-link .header-logo { height:44px; }
    .mobile-header-menu { margin-left:auto; align-items:center; position:relative; }
    .mobile-menu-toggle {
        width:46px;
        height:46px;
        min-height:46px;
        padding:0;
        border:0;
        border-radius:9px;
        background:transparent;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:5px;
        cursor:pointer;
        color:var(--accent);
    }
    .mobile-menu-toggle:hover,
    .mobile-menu-toggle:focus-visible { background:var(--accent-soft); }
    .mobile-menu-toggle span {
        display:block;
        width:23px;
        height:2px;
        border-radius:999px;
        background:currentColor;
    }
    .mobile-menu-panel {
        position:absolute;
        z-index:1200;
        top:54px;
        right:0;
        width:min(82vw,320px);
        max-height:calc(100vh - 86px);
        overflow:auto;
        padding:10px;
        border:1px solid var(--border);
        border-radius:14px;
        background:var(--surface);
        box-shadow:0 18px 45px rgba(24,34,28,.18);
    }
    .mobile-menu-panel[hidden] { display:none !important; }
    .mobile-menu-user {
        padding:9px 11px 11px;
        margin-bottom:4px;
        color:var(--muted);
        font-size:.86rem;
        border-bottom:1px solid var(--border);
    }
    .mobile-menu-link {
        position:relative;
        display:flex;
        align-items:center;
        gap:12px;
        min-height:48px;
        padding:10px 12px;
        border-radius:9px;
        color:var(--text);
        text-decoration:none;
        font-weight:700;
    }
    .mobile-menu-link:hover,
    .active-mobile-menu-link { background:var(--accent-soft); color:var(--accent-dark); }
    .mobile-menu-link svg {
        width:21px;
        height:21px;
        flex:0 0 21px;
        stroke:currentColor;
        fill:none;
        stroke-width:2;
        stroke-linecap:round;
        stroke-linejoin:round;
    }
    .mobile-menu-badge {
        margin-left:auto;
        min-width:22px;
        height:22px;
        padding:0 6px;
        border-radius:999px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        background:var(--danger-text,#a73535);
        color:#fff;
        font-size:.72rem;
        font-weight:800;
    }
    .mobile-menu-logout { margin:6px 0 0; padding-top:8px; border-top:1px solid var(--border); }
    .mobile-menu-logout button {
        width:100%;
        min-height:48px;
        border:0;
        border-radius:9px;
        background:transparent;
        color:var(--accent-dark);
        text-align:left;
        padding:10px 12px;
        font:inherit;
        font-weight:800;
        cursor:pointer;
    }
    .mobile-menu-logout button:hover { background:var(--accent-soft); }
    .mobile-menu-open { overflow-x:hidden; }

    .contact-form .contact-name-email-row { grid-template-columns:1fr; gap:0; }
    .contact-form .contact-name-email-row > div + div { margin-top:18px; }
}

/* v0.8.7 QA hardening */
.contact-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.site-footer-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
}

/* v0.8.8 — activity, sharing and reliability */
.activity-page{max-width:980px;margin:0 auto;padding:42px 24px 70px}.activity-list{display:grid;gap:16px}.activity-card{background:var(--card-bg,#fff);border:1px solid #d9dfda;border-radius:14px;padding:20px}.activity-card-main,.activity-event{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.activity-card-main>div{display:grid;gap:4px}.activity-card small,.activity-time{color:#687169}.activity-event{margin-top:16px;padding-top:14px;border-top:1px solid #e4e8e4}.activity-event>span{margin-left:auto}.activity-event>small{display:block;flex-basis:100%}.activity-deleted .activity-card-main strong{text-decoration:line-through;color:#7a817c}.activity-deleted{opacity:.82}.people-choice-list{display:grid;gap:8px;margin:20px 0}.assigned-people{display:flex;flex-wrap:wrap;gap:8px}.person-pill{display:inline-flex;align-items:center;border-radius:999px;background:var(--accent-soft);padding:6px 10px;font-weight:700}.comment-list{display:grid;gap:12px;margin:14px 0}.comment-row{border:1px solid #e1e5e2;border-radius:10px;padding:14px}.comment-row p{margin:8px 0 0;white-space:normal}.comment-meta{display:flex;justify-content:space-between;gap:12px}.comment-meta small{color:#727a74}.comment-form{display:grid;gap:10px;margin-top:16px}.comment-form textarea{width:100%}.friendly-error-card{max-width:680px;margin:50px auto;text-align:center}.invite-row-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.delete-confirm-form button[disabled]{opacity:.65;cursor:wait}.header-icon-link[aria-label="Activity"] svg{stroke-width:1.8}
@media(max-width:700px){.activity-page{padding:24px 16px 50px}.activity-card-main,.activity-event{display:grid;gap:6px}.activity-event>span{margin-left:0}.activity-time{font-size:.9rem}.comment-meta{align-items:center}.invite-row-actions{justify-content:flex-start}}


/* v0.8.9 — meal planner, push notifications and Today behaviour */
.meal-planner-page{max-width:1400px;margin:0 auto;padding:28px 24px 56px}
.meal-planner-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}
.meal-planner-heading h1{margin:0 0 4px}.meal-nav{display:flex;gap:8px;flex-wrap:wrap}
.meal-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.meal-day-card{background:var(--surface,#fff);border:1px solid var(--border,#d9dfdb);border-radius:14px;padding:12px;min-height:230px}
.meal-day-today{outline:2px solid var(--accent,#2f6f55);outline-offset:1px}
.meal-day-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border,#e1e5e2);padding-bottom:9px;margin-bottom:10px}
.meal-day-heading strong,.meal-day-heading span{display:block}.meal-day-heading span{font-size:13px;color:var(--muted,#65716a)}
.meal-add-link{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft,#e8f1ec);color:var(--accent-dark,#245943);text-decoration:none;font-size:20px;font-weight:700}
.meal-day-list{display:grid;gap:8px}.meal-entry{display:block;padding:9px;border-radius:10px;background:rgba(0,0,0,.025);text-decoration:none;color:inherit}.meal-entry:hover{background:var(--accent-soft,#edf4ef)}
.meal-entry strong{display:block;font-size:14px;line-height:1.25}.meal-type{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-dark,#245943);margin-bottom:3px}
.meal-empty{font-size:13px;color:var(--muted,#6c756f)}.meal-planner-hint{text-align:center;color:var(--muted,#6c756f);margin-top:18px}
.meal-shopping-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.meal-shopping-row .secondary-button{white-space:nowrap}
.push-preference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px;margin:10px 0}.push-actions{justify-content:flex-start}
@media(max-width:900px){.meal-planner-page{padding:20px 14px 44px}.meal-planner-heading{align-items:flex-start;flex-direction:column}.meal-week-grid{grid-template-columns:1fr}.meal-day-card{min-height:0}.meal-day-list{grid-template-columns:repeat(2,minmax(0,1fr))}.push-preference-grid{grid-template-columns:1fr}.meal-shopping-row{grid-template-columns:1fr}}
@media(max-width:520px){.meal-day-list{grid-template-columns:1fr}.meal-nav{width:100%}.meal-nav .secondary-button{flex:1;text-align:center}}

/* v0.8.91 — QA polish */
.eyebrow{display:none!important}
.birthday-duplicate-warning{display:block;width:100%;margin:3px 0 5px;padding:4px 6px;border:1px solid #d9a441;border-radius:7px;background:#fff8e6;color:#704d00;font:inherit;font-size:11px;font-weight:700;text-align:left;cursor:pointer}
@media(max-width:900px){
  .meal-week-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:8px;margin-right:-14px;padding-right:14px}
  .meal-day-card{flex:0 0 min(82vw,360px);scroll-snap-align:start;min-height:0}
  .meal-day-list{grid-template-columns:1fr}
}


/* v0.8.92 — personal navigation, status, waiting list and work schedule polish */
.header-nav-builder{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:14px 0}.header-nav-column{border:1px solid var(--border,#dfe5e1);border-radius:14px;padding:14px;background:var(--card-bg,#fff)}.header-nav-column h3{margin:0 0 10px}.header-nav-sort-list,#header-nav-available{display:grid;gap:8px}.header-nav-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border,#dfe5e1);border-radius:10px;background:#fff}.header-nav-choice>div{display:flex;gap:6px}.header-nav-choice button{font:inherit}.overview-status-pill,.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:700;white-space:nowrap}.today-item-row{border-left:4px solid transparent}.today-item-row.overview-status-done{border-left-color:#62a575}.today-item-row.overview-status-pending{border-left-color:#d8aa3d}.today-item-row.overview-status-alert{border-left-color:#c95b5b}.today-item-row.overview-status-neutral{border-left-color:#9aa39f}.status-done,.status-success{background:#e8f5eb;color:#246437}.status-pending,.status-warning{background:#fff4cf;color:#795d08}.status-alert{background:#fde8e8;color:#8a3030}.status-neutral{background:#edf0ef;color:#515b57}.contact-account-card,.work-schedule-guide,.work-pattern-preview{margin:20px 0;padding:16px;border:1px solid var(--border,#dfe5e1);border-radius:14px;background:#fafcfb}.contact-account-card h2,.work-pattern-preview h2{margin-top:0}.work-schedule-guide p{margin-bottom:12px}.work-pattern-preview-list{display:grid;gap:7px}.work-pattern-preview-list>div{display:flex;justify-content:space-between;gap:16px;padding:9px 11px;border-radius:9px;background:#fff;border:1px solid var(--border,#dfe5e1)}.waiting-admin-row{align-items:flex-start}.waiting-admin-row p{margin:.45rem 0 0;max-width:55ch}.waiting-list-card{max-width:860px;margin-left:auto;margin-right:auto}.waiting-list-card .stacked-form input,.waiting-list-card .stacked-form textarea{width:100%}.landing-invite-note a{font-weight:700}.landing-final-cta>.secondary-button{margin-left:8px}
@media(max-width:800px){.header-nav-builder{grid-template-columns:1fr}.overview-status-pill{margin-left:auto}.work-pattern-preview-list>div{align-items:flex-start;flex-direction:column;gap:3px}.landing-final-cta>.secondary-button{margin-left:0;margin-top:8px}}

.overview-mini-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px;border-left:4px solid transparent}.overview-mini-row.overview-status-done{border-left-color:#62a575}.overview-mini-row.overview-status-pending{border-left-color:#d8aa3d}.overview-mini-row.overview-status-alert{border-left-color:#c95b5b}.overview-mini-row.overview-status-neutral{border-left-color:#9aa39f}

/* email-to-organiser foundation (introduced in v0.8.93) */
.email-parser-guide{margin-top:18px}
.email-parser-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.email-parser-examples>div{border:1px solid var(--border,#dfe6e2);border-radius:12px;padding:12px;background:var(--surface-soft)}
.email-parser-examples strong{display:block;margin-bottom:5px}
.email-parser-examples span{display:block;line-height:1.45;color:var(--muted,#5d6b64)}
.email-source-preview{display:grid;gap:8px;margin:10px 0 12px}
.email-source-preview>div{border-left:3px solid var(--accent,#2f6f55);padding:7px 10px;background:var(--surface-soft);border-radius:0 8px 8px 0}
.email-source-preview span{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#66736d);margin-bottom:2px}
.email-source-preview strong{display:block;line-height:1.45;overflow-wrap:anywhere}
@media (max-width:760px){.email-parser-examples{grid-template-columns:1fr}}


/* v0.8.94 — Type → What → When email parsing */
.email-review-intro{margin:16px 0 10px;font-weight:700}
.email-review-reason{margin:10px 0 14px;padding:10px 12px;border-radius:10px;background:#fff5df;border:1px solid #ecd39a;color:#674a0f}
.email-three-part-review{gap:12px}
.email-parse-part{border:1px solid var(--border,#dfe6e2);border-radius:14px;padding:14px;background:var(--surface,#fff)}
.email-parse-part-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.email-parse-part-heading>div{display:flex;align-items:center;gap:8px}
.email-parse-number{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--accent-soft,#e9f3ed);color:var(--accent-dark,#245943);font-size:.78rem;font-weight:800}
.email-confidence{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.74rem;font-weight:700;white-space:nowrap}
.email-confidence.confidence-high{background:#e8f5eb;color:#246437}
.email-confidence.confidence-good{background:#eef5e9;color:#476330}
.email-confidence.confidence-medium{background:#fff4cf;color:#795d08}
.email-confidence.confidence-low{background:#fde8e8;color:#8a3030}
.email-when-preview{margin:0 0 10px;font-weight:700;color:var(--muted,#526159)}
.email-reminder-intent{margin:0;padding:10px 12px;border-radius:10px;background:var(--accent-soft);color:var(--accent-dark);font-size:.92rem}
.email-three-part-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 12px;margin-top:5px}
.email-three-part-summary dt{font-weight:700;color:var(--muted,#5d6b64)}
.email-three-part-summary dd{margin:0;font-weight:600}
@media(max-width:640px){.email-parse-part-heading{align-items:flex-start;flex-direction:column}.email-confidence{margin-left:33px}.email-three-part-summary{grid-template-columns:1fr;gap:2px}.email-three-part-summary dd{margin-bottom:7px}}


/* v0.8.97 — reliability: reminder warnings and recovery */
.late-reminder-warning{border:1px solid #d4a43a;background:#fff8e4;color:#5f4707;border-radius:12px;padding:14px 16px;margin:14px 0}.late-reminder-warning h2{font-size:1rem;margin:0 0 6px}.late-reminder-warning p{margin:5px 0}.recently-deleted-list{display:grid;gap:12px;margin-top:18px}.recently-deleted-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--border,#dfe5e1);border-radius:12px;padding:14px 16px;background:#fff}.recently-deleted-row>div:first-child{display:grid;gap:4px}.recently-deleted-row small{color:var(--muted,#69736e)}.inline-alert a{font-weight:700}
@media(max-width:700px){.recently-deleted-row{align-items:flex-start;flex-direction:column}.recently-deleted-row .invite-row-actions{width:100%}}

/* v0.8.98 — recurrence split reliability: preserve monthly anchors and occurrence state */

/* v0.8.99 — desktop settings workspace, security and draggable navigation */
.security-recovery-hint{margin-top:16px;text-align:center}
.settings-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.settings-page-heading .lede{margin-bottom:0}.settings-global-save{flex:0 0 auto}.settings-tabs{display:flex;align-items:flex-end;gap:6px;border-bottom:1px solid var(--border);margin:0}.settings-tab{appearance:none;border:1px solid var(--border);border-bottom:0;border-radius:10px 10px 0 0;background:var(--surface-soft);color:var(--muted);padding:11px 14px;font-weight:700;cursor:pointer;white-space:nowrap}.settings-tab:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-dark)}.settings-tab.is-active{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-dark);position:relative;top:1px}.settings-tab-content{border:1px solid var(--border);border-top:0;border-radius:0 0 14px 14px;padding:22px;background:#fff}.settings-tab-panel{display:none}.settings-tab-panel.is-active{display:block}.settings-tab-panel>.settings-panel,.settings-section-form>.settings-panel{margin:0 0 18px}.settings-section-form{display:block}.settings-section-save{display:flex;justify-content:flex-end;margin-top:2px}.settings-mobile-section-title{display:none}.settings-security-action{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.security-duration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.security-duration-grid label{margin-top:14px}.header-nav-choice{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.header-nav-choice>.header-nav-label{min-width:0}.header-nav-choice>.nav-add{grid-column:3}.header-nav-choice-actions{display:flex;gap:6px;align-items:center}.nav-drag-handle{display:inline-grid;place-items:center;width:28px;height:32px;border-radius:7px;color:#7a847f;font-weight:800;letter-spacing:-2px;cursor:grab;user-select:none}.nav-drag-handle:hover,.nav-drag-handle:focus{background:var(--accent-soft);color:var(--accent-dark);outline:none}.nav-drag-handle:active{cursor:grabbing}.header-nav-choice.is-dragging{opacity:.55;box-shadow:0 8px 22px rgba(30,45,36,.14);border-color:var(--accent)}.header-nav-sort-list{min-height:54px}.login-remember-row{margin-top:14px!important;align-items:flex-start}.login-remember-row span strong,.login-remember-row span small{display:block}.login-remember-row span small{margin-top:2px;color:var(--muted);font-weight:400}.session-list{display:grid;gap:10px;margin:18px 0}.session-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#fff}.session-row>div{display:grid;gap:4px}.session-row small{color:var(--muted)}.security-session-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.security-card{width:min(100%,820px)}.totp-secret-box{margin:16px 0;padding:14px;border:1px solid var(--border);border-radius:10px;background:#f7f9f8}.totp-secret-box span{display:block;color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.totp-secret-box code{display:block;margin-top:6px;font-size:1rem;letter-spacing:.08em;overflow-wrap:anywhere}.totp-qr-wrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center;margin:18px 0}.totp-qr{width:220px;height:220px;padding:10px;border:1px solid var(--border);border-radius:12px;background:#fff}.totp-qr svg{display:block;width:100%;height:100%}.totp-qr-help p{margin:0 0 8px}.recovery-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.recovery-code-grid code{display:block;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-weight:700;letter-spacing:.06em}.security-inline-form{margin-top:14px}.danger-zone{border-color:#e4bcbc!important;background:#fffafa!important}.admin-account-actions{display:flex!important;align-items:center;gap:10px!important;grid-auto-flow:column}.settings-card-tabs .settings-status-pill.status-success{background:#e8f5eb;color:#246437}.settings-card-tabs .settings-status-pill.status-neutral{background:#edf0ef;color:#515b57}

@media(min-width:901px){
  .settings-wrap-wide{padding-left:28px;padding-right:28px}.settings-card-tabs{width:min(100%,1180px);padding:30px}.settings-tab-panel{min-height:300px}.settings-tab-panel[data-settings-panel="navigation"] .header-nav-builder{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(min-width:901px) and (max-width:1100px){
  .settings-tab{padding:10px 9px;font-size:.86rem}
}
@media(max-width:900px){
  .settings-card-tabs{width:min(100%,780px)}.settings-tabs{display:none}.settings-global-save{display:none}.settings-tab-content{border:0;padding:0;background:transparent}.settings-tab-panel{display:block!important;margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.settings-tab-panel:first-child{margin-top:0;padding-top:0;border-top:0}.settings-mobile-section-title{display:block;margin:0 0 14px;font-size:1.35rem}.settings-page-heading{display:block}.security-duration-grid{grid-template-columns:1fr}.settings-security-action{justify-content:flex-start}.header-nav-choice{grid-template-columns:auto minmax(0,1fr) auto}.nav-drag-handle{display:none}.header-nav-choice .header-nav-label{grid-column:1 / 3}.session-row{align-items:flex-start;flex-direction:column}.session-row form,.session-row form button{width:100%}.security-session-actions{align-items:stretch;flex-direction:column}.security-session-actions form,.security-session-actions button{width:100%}.totp-qr-wrap{grid-template-columns:1fr}.totp-qr{margin:0 auto}.admin-account-actions{align-items:flex-end;grid-auto-flow:row!important}.recovery-code-grid{grid-template-columns:1fr}
}


/* v0.9.2 — audit/control-panel logs and reliability polish */
.admin-logs-wrap{max-width:1320px}
.admin-log-tabs{margin:18px 0}
.log-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end;margin-top:16px}
.log-filter-grid label{display:grid;gap:6px;font-weight:700}
.log-filter-grid input,.log-filter-grid select{width:100%}
.admin-log-list{display:grid;gap:10px;margin:16px 0 22px}
.admin-log-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:14px 16px;border:1px solid var(--border,#dfe5e1);border-radius:12px;background:var(--card-bg,#fff)}
.admin-log-main{min-width:0;display:grid;gap:4px}
.admin-log-main strong{overflow-wrap:anywhere}
.admin-log-main small{color:var(--muted,#69736e);line-height:1.4}
.admin-log-main p{margin:4px 0 0;color:var(--muted,#69736e)}
.admin-log-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;flex:0 0 auto}
.admin-log-meta>span:not(.status-pill){display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--surface-soft);font-size:.78rem;font-weight:700;color:var(--muted,#56635d)}
.status-failure,.status-blocked{background:#fde8e8;color:#8a3030}
.status-info{background:#edf3f6;color:#365a69}
.log-privacy-note{margin-top:22px}
.contact-history-cancelled{opacity:.72}
.contact-history-cancelled strong{color:var(--muted,#616c66)}
.contact-history-cancelled .status-pill{opacity:1}
@media(max-width:980px){.log-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.log-filter-grid{grid-template-columns:1fr}.admin-log-row{flex-direction:column}.admin-log-meta{justify-content:flex-start}}
.status-danger{background:#fde8e8;color:#8a3030}

/* v0.9.3 — relative birthday-task editing and small usability refinements */
.readonly-field{min-height:44px;display:flex;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#f7f9f8;color:var(--muted)}
.relative-task-schedule-card{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:12px;background:#f7f9f8}.relative-task-schedule-card h2{margin:0 0 6px;font-size:1.05rem}.relative-task-schedule-card p{margin:4px 0 10px}.relative-task-schedule-card input[type="number"]{max-width:180px}
.checklist-content{min-width:0;flex:1}.checklist-edit-link{white-space:nowrap}.checklist-inline-edit{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.checklist-inline-edit input{min-width:0;flex:1;margin:0}.checklist-inline-edit-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.checklist-inline-edit{align-items:stretch;flex-direction:column}.checklist-inline-edit-actions{justify-content:flex-start}}

.checklist-row{grid-template-columns:auto minmax(0,1fr) auto auto}

/* v0.9.6 — modal emphasis and meal-planner navigation */
:root{--modal-backdrop:rgba(26,35,30,.30)}
.app-modal-backdrop,.day-overlay-backdrop{background:var(--modal-backdrop)}
.app-modal-panel,.day-overlay-panel{opacity:1;filter:none;isolation:isolate}
.meal-jump-form{display:flex;align-items:end;justify-content:flex-end;gap:10px;margin:-8px 0 18px}.meal-jump-form label{display:grid;gap:6px;font-weight:700}.meal-jump-form>div{display:flex;gap:8px;align-items:center}.meal-jump-form input[type="date"]{min-width:180px}
@media(max-width:760px){:root{--modal-backdrop:rgba(26,35,30,.34)}}
@media(max-width:700px){.meal-jump-form{align-items:stretch;flex-direction:column}.meal-jump-form>div{width:100%}.meal-jump-form input[type="date"]{min-width:0;flex:1}}
.status-pill.status-superseded{background:#edf0ef;color:#56615c}

/* v0.9.7 — complete theme accents + cross-column navigation drag */
.header-nav-sort-list,#header-nav-available{min-height:54px}.header-nav-column{transition:background .15s ease,box-shadow .15s ease,border-color .15s ease}.header-nav-column.is-drop-target{background:var(--accent-soft);border-color:var(--accent-border);box-shadow:inset 0 0 0 2px var(--accent-border)}
.header-nav-choice .nav-drag-handle{touch-action:none}
/* v0.9.7 — whole navigation shortcut cards can be dragged between columns. */
.header-nav-choice[draggable="true"]{cursor:grab}
.header-nav-choice[draggable="true"]:active{cursor:grabbing}
.header-nav-choice button,.header-nav-choice input{cursor:pointer}

/* v0.9.71 — bidirectional full-column shortcut dropping + complete theme soft surfaces */
.header-nav-column{min-height:120px}
.theme-pink .settings-tab-content{border-color:var(--accent-border)}

/* v0.9.72 — bottom Settings save, overdue state and Bin polish */
.settings-section-save{padding-top:8px;margin-top:8px;border-top:1px solid var(--border)}
.status-pill.status-overdue,.temporal-pill.temporal-overdue{background:#fde8e8;color:#8a3030}
.bin-header-link{position:relative}

/* v0.9.73 — wider admin logs and settings/admin terminology polish */
.admin-logs-wrap .settings-card{width:min(100%,1180px)}
@media(max-width:900px){.admin-logs-wrap .settings-card{width:min(100%,780px)}}


/* v0.9.74 — support-page, Logs and Help Centre visual consistency */
.support-page-body,
.landing-page.support-page-body{
    background:var(--bg);
}

/* Logs: centre the full desktop module and make filter controls read as one row. */
.admin-logs-wrap{
    width:min(100%,1320px);
    max-width:1320px;
    margin:0 auto;
}
.admin-logs-wrap .settings-card{
    width:min(100%,1180px);
    margin-left:auto;
    margin-right:auto;
}
.log-filter-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
}
.log-filter-grid input,
.log-filter-grid select,
.log-filter-grid button{
    width:100%;
    min-height:48px;
    box-sizing:border-box;
}
.log-filter-grid input,
.log-filter-grid select{
    padding-top:10px;
    padding-bottom:10px;
}
.log-filter-grid button{
    align-self:end;
}

/* Help Centre: balance the search field and action instead of a very long field + tiny button. */
.help-search{
    max-width:760px;
    align-items:stretch;
}
.help-search input[type="search"]{
    flex:0 1 590px;
    width:min(100%,590px);
    max-width:590px;
    min-height:52px;
}
.help-search .primary-button{
    flex:0 0 112px;
    width:112px;
    min-height:52px;
    padding-left:18px;
    padding-right:18px;
}
.help-search .text-link{
    align-self:center;
}

@media(max-width:980px){
    .admin-logs-wrap{width:100%;max-width:100%}
    .admin-logs-wrap .settings-card{width:min(100%,780px)}
    .log-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
    .help-search{max-width:none;display:grid;grid-template-columns:1fr;gap:10px}
    .help-search input[type="search"],
    .help-search .primary-button{width:100%;max-width:none;flex:none}
    .help-search .text-link{justify-self:start}
    .log-filter-grid{grid-template-columns:1fr}
}

/* v0.9.75 — contact-form corner consistency */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea{
    border-radius:7px!important;
}

/* v0.9.76 — page-width system, Admin area and utility-page consistency */
:root{
    --page-standard:1040px;
    --page-form:900px;
    --page-control:1180px;
    --page-wide:1320px;
    --page-gutter:24px;
}
.page-shell{
    width:min(100%,var(--page-control));
    margin:0 auto;
    padding:40px var(--page-gutter) 70px;
}
.page-shell-standard{max-width:var(--page-standard)}
.page-shell-form{max-width:var(--page-form)}
.page-shell-control{max-width:var(--page-control)}
.page-shell-wide{max-width:var(--page-wide)}
.page-shell .settings-card{width:100%;margin:0 auto}
.page-back-row{margin:0 0 18px}.page-back-row .text-link{font-weight:700;text-decoration:none}.page-back-row .text-link:hover{text-decoration:underline}

/* Top-level public/support pages share the same standard content width. */
.legal-page.page-shell-standard,
.help-page.page-shell-standard{
    width:min(100%,var(--page-standard));
    max-width:var(--page-standard);
    margin-left:auto;
    margin-right:auto;
}
.contact-page-card{max-width:none}
.contact-page-card .contact-form{max-width:780px}

/* Admin Control Panel and admin tools. */
.header-icon-link[aria-label="Admin"] svg{stroke-width:1.8}
.admin-control-page,.admin-tool-page{width:min(100%,var(--page-control));max-width:var(--page-control)}
.admin-control-card,.admin-tool-card{width:100%;max-width:none}
.admin-control-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:26px}.admin-control-heading h1{margin:3px 0 7px}.admin-control-heading .lede{margin:0;max-width:70ch}
.admin-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-control-tile{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);color:inherit;text-decoration:none;min-height:112px}.admin-control-tile:hover{background:var(--accent-soft);border-color:var(--accent-border)}.admin-control-tile strong,.admin-control-tile small{display:block}.admin-control-tile small{margin-top:4px;color:var(--muted);line-height:1.45}.admin-control-icon{font-size:1.35rem;width:30px;text-align:center}
.admin-tool-heading{display:grid;gap:14px;margin-bottom:8px}.admin-tool-heading h1{margin:0}.admin-tool-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--border)}
.admin-tool-nav .secondary-button{min-height:40px}

/* Users & Invitations: wider, tidier actions and a balanced invite row. */
.admin-tool-page .section-heading-inline{align-items:flex-start}
.invite-create-fields{max-width:760px;align-items:flex-end}.invite-email-field{flex:1 1 560px}.invite-create-fields .primary-button{min-height:48px;padding-left:20px;padding-right:20px}.invite-email-field input{min-height:48px}
.admin-tool-card .admin-row{padding:14px 16px}

/* Live calendar syncing uses the same control-page width as Settings/Admin. */
.calendar-sync-page{width:min(100%,var(--page-control));max-width:var(--page-control)}
.calendar-sync-card{width:100%;max-width:none}
.calendar-sync-card .stacked-form{max-width:900px}
.calendar-sync-card #calendar-name,
.calendar-sync-card #calendar-feed-url{width:100%;min-height:48px}
.calendar-sync-card .sync-row{align-items:flex-start}

/* Rubbish Bin is a standard-width destination, not a narrow form. */
.rubbish-bin-page{width:min(100%,var(--page-standard));max-width:var(--page-standard)}
.rubbish-bin-card{width:100%;max-width:none}
.rubbish-bin-card h1{margin-top:0}

@media(max-width:760px){
    :root{--page-gutter:16px}
    .page-shell{padding-top:24px;padding-bottom:50px}
    .admin-control-heading{display:block}.admin-control-heading>.secondary-button{margin-top:12px}
    .admin-control-grid{grid-template-columns:1fr}
    .admin-tool-nav{align-items:stretch}.admin-tool-nav .secondary-button{width:100%;text-align:center}
    .invite-create-fields{max-width:none}
}

/* v0.9.81 — calmer desktop header with a More menu */
.header-more-menu{position:relative;display:inline-flex;align-items:center}
.header-more-toggle{border:0;background:transparent;cursor:pointer;font:inherit;padding:0}
.header-more-panel{position:absolute;z-index:120;top:calc(100% + 10px);right:0;width:230px;padding:8px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px rgba(31,41,35,.16)}
.header-more-panel[hidden]{display:none!important}
.header-more-link{position:relative;display:flex;align-items:center;gap:11px;min-height:42px;padding:9px 11px;border-radius:8px;color:var(--text);text-decoration:none;font-weight:700}
.header-more-link:hover,.active-header-more-link{background:var(--accent-soft);color:var(--accent-dark)}
.header-more-link svg{width:19px;height:19px;flex:0 0 19px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.header-more-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#a33f4a;color:#fff;font-size:10px;font-weight:800;line-height:1}
@media(max-width:900px){.header-more-menu{display:none}}

/* v0.9.82 — Appearance section, public wait-list CTA and wordmark polish */
.landing-nav .landing-waitlist-cta{
    min-height:40px;
    padding:0 15px;
    color:#fff;
    border-color:var(--accent);
    background:var(--accent);
    box-shadow:none;
}
.landing-nav .landing-waitlist-cta:hover{
    color:#fff;
    background:var(--accent-dark);
    border-color:var(--accent-dark);
}
@media (max-width:720px){
    .landing-header{gap:12px}
    .landing-header .landing-brand img{height:42px}
    .landing-nav{gap:8px}
    .landing-nav > a:not(.landing-login):not(.landing-waitlist-cta){display:none}
    .landing-nav .landing-login{min-height:38px;padding:0 11px;font-size:13px}
    .landing-nav .landing-waitlist-cta{min-height:38px;padding:0 11px;font-size:13px;white-space:nowrap}
}
@media (max-width:430px){
    .landing-header .landing-brand img{height:36px}
    .landing-nav .landing-login{padding:0 8px}
    .landing-nav .landing-waitlist-cta{padding:0 8px;font-size:12px}
}


/* v0.9.83 — QA20 consistency fixes, wider wait list and Google Sans Flex lockup */
.brand-link,.landing-brand,.auth-logo a{display:inline-flex;align-items:center;gap:9px;text-decoration:none;white-space:nowrap}
.brand-symbol{display:block;width:auto;height:40px;flex:0 0 auto}
.brand-wordmark{display:inline-flex;align-items:baseline;gap:0;font-family:"Google Sans Flex",Arial,sans-serif;font-size:28px;font-weight:650;line-height:1;letter-spacing:-.025em}
.brand-organise{color:#202825}
.brand-you{color:#6a9a72}
.site-header .brand-symbol{height:39px}
.site-header .brand-wordmark{font-size:27px}
.landing-header .landing-brand .brand-symbol{height:44px}
.landing-header .landing-brand .brand-wordmark{font-size:31px}
.legal-header .landing-brand .brand-symbol{height:40px}
.legal-header .landing-brand .brand-wordmark{font-size:28px}
.auth-logo a{justify-content:center}
.auth-logo .brand-symbol{height:42px;margin:0;max-width:none}
.auth-logo .brand-wordmark{font-size:30px}
@media(max-width:720px){
  .landing-header .landing-brand .brand-symbol{height:37px}
  .landing-header .landing-brand .brand-wordmark{font-size:26px}
}
@media(max-width:430px){
  .landing-header .landing-brand{gap:7px}
  .landing-header .landing-brand .brand-symbol{height:33px}
  .landing-header .landing-brand .brand-wordmark{font-size:23px}
}
@media(max-width:640px){
  .waiting-list-card{max-width:none}
  .waiting-list-card .form-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .waiting-list-card .form-actions>*{width:100%;margin:0}
}


/* v0.9.84 — header brand visibility hotfix
   v0.9.83's later generic .brand-link display rule overrode the older
   desktop-only hide for .mobile-brand-link, so both desktop and mobile
   wordmarks appeared side-by-side on wide screens. Keep exactly one brand
   visible for each breakpoint. */
.mobile-brand-link{display:none}
@media(max-width:640px){
  .desktop-brand-link{display:none !important}
  .mobile-brand-link{display:inline-flex}
}

/* v0.9.85 — recoverable note drafts */
.note-draft-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 2px;color:var(--muted);font-size:.92rem}
.note-draft-meta[hidden]{display:none!important}
.note-draft-meta .note-draft-discard{padding:4px 0;white-space:nowrap}
@media(max-width:560px){.note-draft-meta{align-items:flex-start;flex-direction:column;gap:4px}}


/* v0.9.86 — trustworthy Notes drafts + auth-page polish */
/* The old auth image rule was written for a single full-width logo image.
   The current brand symbol is a separate asset and must keep its proportions. */
.auth-logo img.brand-symbol{
    width:auto !important;
    height:42px;
    max-width:none !important;
    flex:0 0 auto;
}
.auth-card form > .auth-submit-gap{
    display:block;
    margin:16px auto 0 !important;
}
.note-draft-conflict{
    display:grid;
    gap:5px;
    margin:10px 0 4px;
    padding:12px 14px;
    border:1px solid #d8c895;
    border-radius:9px;
    background:#fff9e8;
    color:#5f5124;
    font-size:.92rem;
}
.note-draft-conflict[hidden]{display:none!important}
.note-draft-conflict>span{color:#74673a}
.note-draft-conflict-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:4px;
}
.note-draft-conflict-actions .secondary-button{
    min-height:38px;
    padding:7px 11px;
}
@media(max-width:560px){
    .auth-logo img.brand-symbol{height:40px}
    .note-draft-conflict-actions{display:grid;grid-template-columns:1fr}
    .note-draft-conflict-actions .secondary-button{width:100%;text-align:center}
}


/* v0.9.87 — Address Book layout polish + Wish list type */
.contacts-page{max-width:1180px}
.contacts-heading-actions{
    flex-wrap:nowrap;
    justify-content:flex-end;
    flex:0 0 auto;
}
.contacts-heading-actions .secondary-button,
.contacts-heading-actions .primary-button{white-space:nowrap;margin-top:0}
@media(max-width:900px){
    .contacts-page .section-heading-row{flex-direction:column;align-items:stretch}
    .contacts-heading-actions{justify-content:flex-start;flex-wrap:wrap}
}
@media(max-width:620px){
    .contacts-heading-actions{display:grid;grid-template-columns:1fr}
    .contacts-heading-actions .secondary-button,
    .contacts-heading-actions .primary-button{width:100%;text-align:center;margin-top:0}
}


/* v0.9.88 — calendar invitations, combined view, reminder diagnostics + wider Inbox */
.inbox-wrap .settings-card{width:min(100%,1180px)}
.calendar-invitation-list{display:grid;gap:12px;margin-top:14px}
.calendar-invitation-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.calendar-invitation-card>div:first-child{display:grid;gap:4px;min-width:0}
.calendar-invitation-card small{color:var(--muted)}
.calendar-invitation-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.calendar-invitation-actions form{margin:0}
.shared-combined-hint{margin-top:14px}
.calendar-share-invite-alert{margin-bottom:14px}
.calendar-owner-chip{display:inline-flex;align-items:center;margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark);font-size:.68rem;font-weight:700;line-height:1.45;vertical-align:middle}
.calendar-item-title .calendar-owner-chip{font-size:.64rem}
.admin-reminder-log-detail{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:7px;color:var(--muted);font-size:.82rem}
.admin-reminder-log-detail span{display:inline-flex;gap:4px}
.admin-reminder-log-detail strong{color:var(--text);font-size:inherit}
@media(max-width:900px){.inbox-wrap .settings-card{width:min(100%,780px)}}
@media(max-width:640px){.calendar-invitation-card{align-items:flex-start;flex-direction:column}.calendar-invitation-actions{width:100%}.calendar-invitation-actions form{flex:1}.calendar-invitation-actions button{width:100%}.calendar-owner-chip{font-size:.62rem}}

/* v0.9.90 — stronger public landing page */
.landing-page-v2 .landing-hero{padding-top:72px;padding-bottom:88px}
.landing-page-v2 .landing-hero h1 span{color:#26312b}
.landing-page-v2 .landing-invite-note{font-size:14px;color:#66726b}
.landing-page-v2 .landing-invite-note strong{color:#30463a}
.landing-full-bleed-soft{background:#f3f5f3;box-shadow:0 0 0 100vmax #f3f5f3;clip-path:inset(0 -100vmax)}
.landing-full-bleed-green{background:#2f6f55;box-shadow:0 0 0 100vmax #2f6f55;clip-path:inset(0 -100vmax)}
.landing-centered-heading{max-width:850px;margin:0 auto 34px;text-align:center}
.landing-centered-heading h2{margin:0;font-size:clamp(30px,3.5vw,46px);line-height:1.08;letter-spacing:-.03em}
.landing-centered-heading p{max-width:760px;margin:16px auto 0;color:#616c65;font-size:18px;line-height:1.65}
.landing-problem{padding-top:84px;padding-bottom:84px}
.landing-problem-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1080px;margin:0 auto}
.landing-problem-grid article{padding:26px;border:1px solid #dde3df;border-radius:15px;background:#fff}
.landing-problem-grid h3{margin:0 0 8px;font-size:20px}
.landing-problem-grid p{margin:0;color:#66716b;line-height:1.6}
.landing-section-punchline{max-width:820px;margin:30px auto 0;text-align:center;color:#30463a!important;font-size:18px;font-weight:750;line-height:1.5}
.landing-page-v2 .landing-feature-card{min-height:250px;padding:28px}
.landing-page-v2 .landing-feature-icon,.landing-use-icon{width:62px;height:62px;display:grid;place-items:center;margin-bottom:24px;border-radius:16px;background:var(--accent-soft);color:var(--accent-dark)}
.landing-page-v2 .landing-feature-icon svg,.landing-use-icon svg{width:32px;height:32px}
.landing-more-link{margin:26px 0 0;text-align:right}
.landing-more-link a{color:var(--accent-dark);font-weight:800;text-decoration:none}
.landing-more-link a:hover{text-decoration:underline}
.landing-shared{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.landing-eyebrow{margin:0 0 12px!important;color:var(--accent-dark)!important;font-size:13px!important;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.landing-shared h2,.landing-founder h2{margin:0;font-size:clamp(30px,3.5vw,46px);line-height:1.08;letter-spacing:-.03em}
.landing-section-lede{margin:18px 0 26px!important;color:#59665f!important;font-size:18px;line-height:1.65!important}
.landing-shared-points{display:grid;gap:18px}
.landing-shared-points>div{padding-left:18px;border-left:3px solid #9bc2ae}
.landing-shared-points strong{font-size:17px}
.landing-shared-points p{margin:5px 0 0;color:#68736c;line-height:1.55}
.landing-shared-note{margin:26px 0 0!important;color:#30463a!important;font-weight:800;line-height:1.55!important}
.landing-shared-visual{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"me plus other" "arrow arrow arrow" "combined combined combined";gap:12px;align-items:center}
.shared-calendar-card{padding:20px;border:1px solid #d8e0db;border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(37,54,44,.07)}
.shared-calendar-card span{display:block;margin-bottom:13px;color:#526159;font-family:"Google Sans Flex",Arial,sans-serif;font-size:16px;font-weight:650;line-height:1.2;letter-spacing:-.01em}
.shared-calendar-card strong,.shared-calendar-card small{display:block;padding:9px 10px;border-radius:9px;background:#f4f7f5;line-height:1.35}
.shared-calendar-card small{margin-top:7px;color:#5d6962;font-size:12px}
.shared-calendar-card b{margin-right:6px;color:#2f6f55}
.shared-calendar-me{grid-area:me}.shared-calendar-other{grid-area:other}.shared-calendar-combined{grid-area:combined;max-width:420px;width:100%;justify-self:center}.shared-plus{grid-area:plus}.shared-equals{grid-area:arrow}
.shared-plus,.shared-equals{text-align:center;color:#2f6f55;font-size:30px;font-weight:900}
.landing-import-reassurance{margin-top:18px!important;color:#30463a!important;font-weight:800}
.landing-integration-list span{display:flex;flex-direction:column;gap:4px;padding:18px 20px}
.landing-integration-list small{color:#748078;font-size:12px;font-weight:600}
.landing-use-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.landing-use-grid article{padding:26px;border:1px solid #dde3df;border-radius:15px;background:#fff}
.landing-use-grid h3{margin:0 0 8px;font-size:19px}
.landing-use-grid p{margin:0;color:#68736c;line-height:1.6}
.landing-use-icon{width:54px;height:54px;margin-bottom:20px;border-radius:14px}
.landing-use-icon svg{width:28px;height:28px}
.landing-page-v2 .landing-privacy{max-width:1180px;margin:0 auto;padding-top:92px;padding-bottom:92px;text-align:center;background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}
.landing-page-v2 .landing-privacy>div{max-width:950px;margin:0 auto;padding:0}
.landing-privacy-icon{width:62px;height:62px;display:grid;place-items:center;margin:0 auto 24px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark)}
.landing-privacy-icon svg{width:32px;height:32px}
.landing-page-v2 .landing-privacy h2{max-width:950px;margin:0 auto;font-size:clamp(32px,3.7vw,50px);line-height:1.08}
.landing-page-v2 .landing-privacy p{max-width:880px;margin:20px auto 0;color:#56635c;font-size:17px;line-height:1.7}
.landing-difference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1080px;margin:0 auto}
.landing-difference-grid article{padding:28px;border:1px solid #dde3df;border-radius:15px;background:#fff}
.landing-difference-grid h3{margin:0 0 9px;font-size:20px}
.landing-difference-grid p{margin:0;color:#68736c;line-height:1.6}
.landing-founder{padding-top:82px;padding-bottom:82px}
.landing-founder-card{max-width:900px;margin:0 auto;padding:42px 46px;border:1px solid #dce2de;border-radius:18px;background:#fff;box-shadow:0 16px 44px rgba(37,54,44,.06)}
.landing-founder-card>p:not(.landing-eyebrow){color:#5e6b64;font-size:17px;line-height:1.7}
.landing-founder-link{display:inline-block;margin-top:8px;font-weight:800}
.landing-page-v2 .landing-final-cta{max-width:1180px;padding:92px 28px 98px;color:#fff}
.landing-page-v2 .landing-final-cta h2{color:#fff;font-size:clamp(34px,4vw,52px)}
.landing-page-v2 .landing-final-cta p{max-width:760px;color:#e5f0ea;font-size:18px;line-height:1.65}
.landing-page-v2 .landing-final-cta small{display:block;margin-top:18px;color:#dcebe3;font-size:14px}
.landing-final-white-button{background:#fff!important;color:#245640!important;border-color:#fff!important}
.landing-final-white-button:hover{background:#f4f8f6!important;color:#173c2d!important}

.public-footer{background:#fff;border-top:1px solid #e0e5e2}
.public-footer-main{max-width:1180px;margin:0 auto;padding:52px 28px 42px;display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:46px}
.public-footer-brand .landing-brand{margin-bottom:16px}
.public-footer-brand .brand-symbol{height:36px;width:auto}
.public-footer-brand .brand-wordmark{font-size:25px}
.public-footer-brand p{max-width:320px;margin:0;color:#69736e;line-height:1.6}
.public-footer-column h2{margin:4px 0 14px;font-size:14px;text-transform:uppercase;letter-spacing:.045em;color:#39483f}
.public-footer-column a{display:block;width:max-content;max-width:100%;margin:9px 0;color:#59665f;text-decoration:none}
.public-footer-column a:hover{color:var(--accent-dark);text-decoration:underline}
.public-footer-bottom{border-top:1px solid #e6eae7}
.public-footer-bottom-inner{max-width:1180px;margin:0 auto;padding:17px 28px;display:flex;justify-content:space-between;gap:18px;color:#778179;font-size:13px}
.public-footer-bottom a{color:inherit;text-decoration:none}

@media(max-width:900px){
  .landing-shared{grid-template-columns:1fr;gap:38px}
  .landing-use-grid,.landing-problem-grid,.landing-difference-grid{grid-template-columns:1fr 1fr}
  .public-footer-main{grid-template-columns:1.4fr 1fr 1fr;gap:32px}
  .public-footer-column:last-child{grid-column:2/4}
}
@media(max-width:720px){
  .landing-page-v2 .landing-hero{padding-top:44px;padding-bottom:64px}
  .landing-page-v2 .landing-hero h1{font-size:44px}
  .landing-problem-grid,.landing-use-grid,.landing-difference-grid{grid-template-columns:1fr}
  .landing-centered-heading{text-align:left;margin-bottom:26px}
  .landing-centered-heading p{margin-left:0;margin-right:0}
  .landing-section-punchline{text-align:left}
  .landing-more-link{text-align:left}
  .landing-shared-visual{grid-template-columns:1fr;grid-template-areas:"me" "plus" "other" "arrow" "combined"}
  .shared-calendar-combined{max-width:none}
  .shared-plus,.shared-equals{font-size:24px}
  .landing-page-v2 .landing-privacy{text-align:left;padding-top:72px;padding-bottom:72px}
  .landing-privacy-icon{margin-left:0}
  .landing-page-v2 .landing-privacy h2{font-size:36px}
  .landing-page-v2 .landing-privacy p{margin-left:0;margin-right:0}
  .landing-founder-card{padding:30px 24px}
  .public-footer-main{grid-template-columns:1fr 1fr;padding:40px 18px 32px;gap:30px 22px}
  .public-footer-brand{grid-column:1/-1}
  .public-footer-column:last-child{grid-column:auto}
  .public-footer-bottom-inner{padding:16px 18px;flex-direction:column;gap:5px}
}
@media(max-width:480px){
  .landing-page-v2 .landing-hero h1{font-size:39px}
  .landing-page-v2 .landing-feature-icon{width:56px;height:56px}
  .landing-page-v2 .landing-feature-icon svg{width:29px;height:29px}
  .public-footer-main{grid-template-columns:1fr}
  .public-footer-brand,.public-footer-column:last-child{grid-column:auto}
}

/* v0.9.90 — About story */
.about-story-card{max-width:900px}
.about-story-card>h1{max-width:760px}
.about-story-card>p,.about-story-card>h2{max-width:760px}
.about-founding-callout{margin-top:36px;padding:28px;border-radius:16px;background:#eaf3ee}
.about-founding-callout h2{margin-top:0}
.about-founding-callout p{max-width:620px}


/* v0.9.901 — landing-page visual polish */
.landing-page-v2 .landing-hero{max-width:1360px;grid-template-columns:minmax(0,1.08fr) minmax(540px,.92fr);gap:54px}
.landing-page-v2 .landing-hero h1{max-width:700px;font-size:clamp(42px,4.4vw,62px);line-height:1}
.landing-page-v2 .landing-problem .landing-centered-heading{max-width:1180px}
.landing-page-v2 .landing-problem .landing-centered-heading h2{max-width:none;font-size:clamp(30px,3.1vw,43px)}
@media(min-width:1000px){.landing-page-v2 .landing-problem .landing-centered-heading h2{white-space:nowrap}}
.landing-page-v2 .landing-feature-icon,.landing-page-v2 .landing-use-icon{width:auto;height:auto;display:block;margin-bottom:22px;border-radius:0;background:transparent;color:var(--accent-dark)}
.landing-page-v2 .landing-feature-icon svg{width:42px;height:42px}
.landing-page-v2 .landing-use-icon{margin-bottom:20px}
.landing-page-v2 .landing-use-icon svg{width:38px;height:38px}
.landing-shared-copy>.landing-eyebrow,.landing-founder-card>.landing-eyebrow{display:none}
.landing-page-v2 .landing-final-cta{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:center;gap:56px;padding:66px 28px 70px;text-align:left}
.landing-page-v2 .landing-final-cta h2{max-width:760px;margin:0}
.landing-page-v2 .landing-final-cta p{margin:16px 0 24px}
.landing-page-v2 .landing-final-cta small{margin-top:16px}
.landing-final-illustration{display:flex;align-items:center;justify-content:center;min-height:220px}
.landing-final-illustration svg{width:min(100%,470px);height:auto;overflow:visible;fill:none;stroke:rgba(255,255,255,.88);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.landing-final-illustration svg rect{fill:rgba(255,255,255,.055)}
@media(max-width:980px){
  .landing-page-v2 .landing-hero{grid-template-columns:1fr;gap:42px;max-width:1240px}
  .landing-page-v2 .landing-hero h1{max-width:760px}
  .landing-page-v2 .landing-final-cta{grid-template-columns:1fr;gap:28px;text-align:center}
  .landing-page-v2 .landing-final-cta h2,.landing-page-v2 .landing-final-cta p{margin-left:auto;margin-right:auto}
  .landing-final-illustration{min-height:170px}
  .landing-final-illustration svg{width:min(82%,400px)}
}
@media(max-width:720px){
  .landing-page-v2 .landing-hero h1{font-size:42px}
  .landing-page-v2 .landing-feature-icon svg{width:38px;height:38px}
  .landing-page-v2 .landing-use-icon svg{width:35px;height:35px}
  .landing-page-v2 .landing-final-cta{padding-top:54px;padding-bottom:56px}
  .landing-final-illustration{min-height:145px}
}
@media(max-width:480px){
  .landing-page-v2 .landing-hero h1{font-size:38px}
}

/* v0.9.902 — draft reliability and public-page clarity */
.landing-page-v2 .landing-nav .landing-login,.landing-page-v2 .landing-nav .landing-waitlist-cta{box-sizing:border-box}
.waiting-list-next-steps{margin:22px 0 6px;padding:16px 18px;border:1px solid #dfe5e1;border-radius:12px;background:#f7f9f8}
.waiting-list-next-steps strong{display:block;margin-bottom:5px}
.waiting-list-next-steps p{margin:0;color:#5f6c65;line-height:1.55}


/* v0.9.903 — press page and account-entry polish */
.press-page{max-width:1040px}
.press-card{max-width:980px}
.press-intro{padding-bottom:8px}
.press-intro h1{max-width:760px}
.press-intro .lede{max-width:780px}
.press-private-note{display:inline-block;margin:8px 0 0;padding:8px 11px;border-radius:9px;background:#f4f7f5;color:#647069;font-size:.9rem}
.press-section{margin-top:34px;padding-top:32px;border-top:1px solid #e3e8e5}
.press-section h2{margin:0 0 12px}
.press-section>p{max-width:800px}
.press-fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.press-fact-grid>div{padding:16px 18px;border:1px solid #e0e6e2;border-radius:12px;background:#fafbfa}
.press-fact-grid span{display:block;margin-bottom:4px;color:#68746d;font-size:.86rem}
.press-fact-grid strong{display:block;line-height:1.35}
.press-quote-section blockquote{max-width:790px;margin:18px 0;padding:22px 24px;border-left:4px solid var(--accent,#2f6f55);border-radius:0 12px 12px 0;background:#f3f8f5;font-size:1.18rem;line-height:1.55}
.press-angle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.press-angle-grid article{padding:18px;border:1px solid #e0e6e2;border-radius:12px;background:#fff}
.press-angle-grid h3{margin:0 0 7px;font-size:1.03rem}
.press-angle-grid p{margin:0;color:#5f6c65;line-height:1.5}
.press-copy-box{max-width:820px;padding:20px 22px;border-radius:12px;background:#f7f9f8;border:1px solid #dfe5e1}
.press-copy-box p{margin:0;line-height:1.65}
.press-assets{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.press-contact-section .form-actions{margin-top:18px}
@media(max-width:700px){.press-fact-grid,.press-angle-grid{grid-template-columns:1fr}.press-card{padding-left:20px;padding-right:20px}.press-assets{align-items:stretch;flex-direction:column}.press-assets .secondary-button{width:100%;justify-content:center}.press-contact-section .form-actions{align-items:stretch;flex-direction:column}.press-contact-section .form-actions a{width:100%;justify-content:center}}


/* v0.9.904 — clearer registration validation and password-manager friendly passwords */
.auth-card input[aria-invalid="true"]{border-color:#b84343;background:#fffafa}
.auth-card input[aria-invalid="true"]:focus{border-color:#a93232;outline-color:rgba(184,67,67,.18)}
.field-error{margin:7px 0 0;color:var(--danger-text);font-size:14px;font-weight:700;line-height:1.4}
.registration-error-summary{margin-bottom:14px}

/* v0.9.905 — stronger password policy; registration keeps field-specific validation */

/* v0.9.906 — account controls, related contacts and actionable nudges */
.related-contacts-picker{margin:16px 0 4px;padding:14px 16px 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}
.related-contacts-picker legend{padding:0 6px;font-weight:700;color:var(--text)}
.related-contacts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;max-height:220px;overflow:auto;padding:2px 2px 4px}
.related-contact-links{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px}
.related-contact-links a{font-weight:700}
.account-delete-card,.reminder-action-card{max-width:720px}
@media(max-width:640px){.related-contacts-list{grid-template-columns:1fr}}

/* v0.9.908 — profiles and schedule conflict warnings */
.signed-in-profile{text-decoration:none}.signed-in-profile:hover{text-decoration:underline}
.schedule-behaviour{margin-top:22px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}
.schedule-behaviour .form-section-heading{margin-top:0}
.schedule-conflict-warning{margin:0 0 22px;padding:18px 20px;border:1px solid #d8b55b;border-radius:14px;background:#fff9e8}
.schedule-conflict-warning h2{margin:0 0 7px;font-size:1.14rem}.schedule-conflict-warning>p{margin:0 0 13px}
.schedule-conflict-list{display:grid;gap:8px}.schedule-conflict-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid #ead89e;border-radius:10px;background:#fff}
.schedule-conflict-item strong,.schedule-conflict-item span{display:block}.schedule-conflict-item span{margin-top:2px;color:var(--muted);font-size:.9rem}.schedule-conflict-item a{font-weight:700;white-space:nowrap}
.schedule-conflict-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}.schedule-conflict-actions span{color:var(--muted)}
.profile-card{max-width:820px}.profile-heading{display:flex;align-items:center;gap:20px;margin-bottom:18px}.profile-heading h1{margin:.15rem 0}.profile-username{margin:0;color:var(--muted)}
.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:104px;height:104px;flex:0 0 104px;border-radius:50%;background:var(--surface-soft);border:1px solid var(--border);font-size:2rem;font-weight:800;color:var(--accent-dark)}
.profile-avatar-photo{object-fit:cover;background:#fff}.profile-edit-form{margin-top:24px}.profile-detail-list{margin-top:24px}.mobile-menu-profile{text-decoration:none}
@media(max-width:640px){.schedule-conflict-item{align-items:flex-start}.profile-heading{align-items:flex-start}.profile-avatar{width:82px;height:82px;flex-basis:82px}}


/* v0.9.909 — recurrence exception safety, calendar boundary fixes and homepage label polish */

/* beta.3 admin improvements */
.admin-account-sort{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0 20px}.admin-account-sort select{width:auto;max-width:100%}.admin-notification-preferences{border-top:1px solid var(--border,#e3e8e3);margin-top:30px;padding-top:22px}.meal-status{display:inline-block;font-size:12px;color:var(--muted,#69746e);font-weight:600}.meal-cancelled{opacity:.65}.meal-archive-controls{padding:14px 0;border-top:1px solid #e6eae7;margin-top:18px}.meal-archive-controls label{display:block;margin:8px 0}.meal-archive-controls .form-actions{display:flex;flex-wrap:wrap;gap:8px}.history-note{border-left:3px solid #407b5b;padding:9px 12px;background:rgba(71,126,91,.07);margin:12px 0}

.sync-warning{color:#996012;font-weight:600;display:block;margin-top:5px}

/* Beta.6: allow user-selected desktop shortcuts; JS moves those that do not fit into More. */
@media(min-width:901px){.site-header .desktop-header-actions{min-width:0;flex:1;justify-content:flex-end;overflow:visible}.site-header .desktop-header-actions>a.header-icon-link[hidden]{display:none!important}.header-more-responsive{flex-shrink:0}}
.meal-shopping-row #new-shopping-list-wrap{margin-top:12px}
.meal-shopping-row #new-shopping-list-wrap[hidden]{display:none}

/* beta.7: consistent compact toolbar and shared hourly Week / Day time grid */
.calendar-toolbar-v7{gap:12px;align-items:center;flex-wrap:wrap}
.calendar-toolbar-v7 .date-navigation{flex:0 0 auto;gap:7px}
.calendar-toolbar-v7 .date-navigation h1{min-width:0;font-size:21px;letter-spacing:-.35px;white-space:nowrap}
.calendar-toolbar-v7 .month-title-control{min-width:0}
.calendar-toolbar-v7 .icon-button{width:34px;min-height:34px;font-size:22px}
.calendar-toolbar-v7 .toolbar-actions-v7{gap:6px;flex:1 1 auto;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.calendar-toolbar-v7 .today-button,.calendar-toolbar-v7 .view-switcher a,.calendar-toolbar-v7 .header-add-button,.calendar-toolbar-v7 .header-history-button{min-height:34px;padding:7px 10px;font-size:12px;line-height:19px;white-space:nowrap}
.calendar-toolbar-v7 .calendar-quick-search input{min-height:34px;padding:6px 8px;width:132px;font-size:12px}
.calendar-create-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.calendar-toolbar-v7 .header-history-button{display:inline-flex;align-items:center;justify-content:center}
@media (max-width:1100px){.calendar-toolbar-v7{align-items:flex-start;flex-direction:column}.calendar-toolbar-v7 .toolbar-actions-v7{width:100%;justify-content:flex-start}}
@media (max-width:640px){.calendar-toolbar-v7 .date-navigation h1{font-size:19px}.calendar-toolbar-v7 .toolbar-actions-v7 .view-switcher{order:0;width:auto}.calendar-toolbar-v7 .view-switcher a{padding-inline:8px}.calendar-toolbar-v7 .calendar-quick-search{flex:1 1 135px}.calendar-toolbar-v7 .calendar-quick-search input{width:100%}.calendar-create-actions{flex:1 1 100%;justify-content:flex-start}.calendar-toolbar-v7 .header-add-button,.calendar-toolbar-v7 .header-history-button{flex:1 1 0;text-align:center}.calendar-toolbar-v7 .date-navigation{justify-content:space-between;width:100%}}

.timegrid-calendar{--timegrid-minute:1.1px;--timegrid-hour:66px;background:var(--surface);border:1px solid var(--border);border-radius:11px;overflow:hidden}
.timegrid-head,.timegrid-all-day,.timegrid-body{display:grid;grid-template-columns:55px repeat(var(--timegrid-days),minmax(0,1fr))}
.timegrid-head{border-bottom:1px solid var(--border)}
.timegrid-axis-head{padding:12px 3px 3px;text-align:center;font-size:9px;color:var(--muted);border-right:1px solid var(--border)}
.timegrid-day-heading{display:flex;gap:5px;align-items:center;justify-content:center;text-decoration:none;color:var(--text);padding:9px 3px;border-right:1px solid var(--border);font-size:12px}
.timegrid-day-heading strong{font-size:19px}
.timegrid-day-heading.is-today{background:var(--accent-soft);color:var(--accent-dark)}
.timegrid-all-day{border-bottom:1px solid var(--border);min-height:45px}
.timegrid-all-day-label{display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border);font-size:10px;color:var(--muted)}
.timegrid-all-day-cell{border-right:1px solid var(--border);padding:4px;min-width:0;display:flex;flex-direction:column;gap:3px}
.timegrid-allday-event{display:block;background:var(--accent-soft);color:var(--accent-dark);border-radius:5px;padding:5px;font-size:11px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timegrid-allday-event.status-cancelled,.timegrid-event.status-cancelled{opacity:.55;text-decoration:line-through}
.timegrid-scroll{height:660px;max-height:min(74vh,660px);overflow-y:auto;scrollbar-gutter:stable}
.timegrid-body{height:1584px}
.timegrid-hours{height:1584px;position:relative;border-right:1px solid var(--border)}
.timegrid-hours>div{position:absolute;right:7px;color:var(--muted);font-size:10px;transform:translateY(-45%)}
.timegrid-day-column{height:1584px;position:relative;min-width:0;border-right:1px solid var(--border);background:repeating-linear-gradient(to bottom,transparent 0px,transparent 32px,rgba(120,140,125,.11) 32px,rgba(120,140,125,.11) 33px,transparent 33px,transparent 65px,var(--border) 65px,var(--border) 66px)}
.timegrid-day-column.is-today{background-color:rgba(67,135,98,.04)}
.timegrid-day-column.can-add{cursor:crosshair}
.timegrid-event{box-sizing:border-box;position:absolute;z-index:2;overflow:hidden;border-radius:5px;border-left:3px solid var(--accent);background:var(--accent-soft);padding:3px 5px;text-decoration:none;color:var(--accent-dark);font-size:11px;line-height:1.3;box-shadow:0 1px 3px rgba(0,0,0,.08);display:flex;flex-direction:column}
.timegrid-event:hover,.timegrid-event:focus-visible{z-index:8;box-shadow:0 2px 9px rgba(0,0,0,.17)}
.timegrid-event strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timegrid-event span,.timegrid-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.timegrid-event.priority-urgent{border-left-color:var(--urgent-border)}
.timegrid-event.priority-important{border-left-color:var(--important-border)}
.timegrid-event.status-completed,.timegrid-event.status-skipped{opacity:.76}
.timegrid-footer-note{font-size:12px;color:var(--muted);padding:10px 12px;border-top:1px solid var(--border)}
.timegrid-mobile-days{display:none}
@media (max-width:700px){
 .timegrid-calendar.timegrid-week{--timegrid-days:1!important}
 .timegrid-week .timegrid-week-col:not(.is-selected){display:none}
 .timegrid-mobile-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}
 .timegrid-mobile-days a{text-align:center;font-size:10px;padding:8px 1px;color:var(--muted);text-decoration:none;display:flex;flex-direction:column;gap:3px}
 .timegrid-mobile-days a strong{font-size:15px}
 .timegrid-mobile-days a.active{color:var(--accent-dark);background:var(--accent-soft);font-weight:700}
 .timegrid-scroll{max-height:60vh}
 .timegrid-event{font-size:12px}
}

/* beta.7 optional cooking records */
.meal-cook-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.meal-cook-fields input{width:100%;box-sizing:border-box}
.meal-cooked-check{margin:8px 0 14px}
.meal-cook-tag{display:block;color:var(--muted);font-size:12px;margin-top:5px}
.cooking-history-summary{margin-top:24px;padding:18px;border:1px solid var(--border);background:var(--surface);border-radius:12px}
.cooking-history-summary h2{margin:0 0 5px;font-size:20px}
.cooking-history-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:16px}
.cooking-history-stat{border:1px solid var(--border);border-radius:9px;padding:14px;display:flex;flex-direction:column;gap:4px}
.cooking-history-stat strong{font-size:26px;color:var(--accent-dark)}
.cooking-history-stat span{font-weight:700}
.cooking-history-stat small{color:var(--muted)}
@media(max-width:640px){.meal-cook-fields{grid-template-columns:1fr}}

/* beta.7.1: one cook field with searchable contacts and removable selections. */
.meal-cook-single{position:relative;min-width:0}
.meal-cook-picker{position:relative;border:1px solid var(--border,#d4ddd8);border-radius:10px;padding:6px;background:var(--surface,#fff)}
.meal-cook-picker:focus-within{outline:2px solid #4c9074;outline-offset:1px}
.meal-cook-picker input[type="text"]{border:0!important;box-shadow:none!important;outline:none!important;width:100%;max-width:none;margin:0;padding:9px 8px;background:transparent}
.meal-cook-chips{display:flex;flex-wrap:wrap;gap:6px}
.meal-cook-chip{display:inline-flex;gap:8px;align-items:center;padding:5px 8px;border-radius:20px;background:#eaf3ee;color:#174b35;font-size:.88rem}
.meal-cook-remove{border:0;background:transparent;cursor:pointer;color:inherit;padding:0 3px;font-size:1.15em;line-height:1}
.meal-cook-suggestions{position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:20;background:var(--surface,#fff);border:1px solid var(--border,#d4ddd8);border-radius:10px;box-shadow:0 10px 24px #0002;max-height:250px;overflow:auto}
.meal-cook-suggestions[hidden]{display:none}
.meal-cook-suggestion{width:100%;text-align:left;background:transparent;border:0;padding:9px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.meal-cook-suggestion:hover,.meal-cook-suggestion:focus{background:#eaf3ee;color:#174b35;outline:none}
.meal-cook-suggestion small{opacity:.7}

/* beta.8 — tighter desktop hero, preserve the original mobile headline */
.hero-copy-mobile{display:none}
@media(max-width:720px){.hero-copy-desktop{display:none}.hero-copy-mobile{display:inline}}
@media(min-width:721px){.landing-page-v2 .landing-hero .landing-hero-copy h1{font-size:clamp(42px,3.5vw,60px);letter-spacing:-.045em;line-height:1.09}}
/* Recipe Book */
.recipe-shell{width:min(1180px,calc(100% - 36px));margin:40px auto 80px}
.recipe-head{display:flex;align-items:start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.recipe-head p{color:var(--muted);margin:5px 0}
.recipe-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.recipe-tabs a{padding:9px 14px;border:1px solid var(--border);border-radius:10px;text-decoration:none;background:var(--surface)}
.recipe-tabs .selected{background:var(--accent-soft);border-color:var(--accent);font-weight:700}
.recipe-search{display:flex;gap:8px;max-width:650px;margin:0 0 23px}
.recipe-search input{flex:1;min-width:90px;min-height:45px;padding:10px 12px;border:1px solid var(--border);border-radius:8px}
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px}
.recipe-card{display:block;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:14px;color:inherit;text-decoration:none}
.recipe-card:hover{border-color:var(--accent)}
.recipe-card-image{width:100%;height:165px;object-fit:cover;background:var(--surface-soft)}
.recipe-card-placeholder{height:165px;display:grid;place-items:center;font-size:54px;background:var(--accent-soft)}
.recipe-card-content{padding:16px}
.recipe-card-content h2{font-size:20px;margin:0 0 8px}
.recipe-card-content p{color:var(--muted);font-size:14px;min-height:42px}
.recipe-card-content small{color:var(--muted)}
.recipe-form,.recipe-detail{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:28px;max-width:850px;margin:0 auto}
.recipe-form label{margin-top:16px}
.recipe-form textarea{width:100%}
.recipe-fields-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.recipe-fields-grid input{width:100%;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:7px}
.recipe-detail img.recipe-cover{width:100%;max-height:370px;object-fit:cover;border-radius:11px;margin:12px 0 20px}
.recipe-detail h1{margin:0 0 14px}.recipe-detail h2{margin-top:25px;font-size:23px}
.recipe-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}
.recipe-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin-bottom:16px}
.recipe-actions{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}
.recipe-empty{padding:35px;background:var(--surface);border:1px solid var(--border);border-radius:13px}
.recipe-checkbox{display:flex;align-items:start;gap:10px;margin:22px 0}
.recipe-checkbox input{width:auto;min-height:auto;margin-top:5px}.recipe-checkbox label{margin:0;font-weight:400}
@media(max-width:640px){.recipe-shell{margin:25px auto}.recipe-form,.recipe-detail{padding:18px}.recipe-fields-grid{grid-template-columns:1fr}.recipe-head{display:block}}

/* beta.8.1 — public feature catalogue and Help Centre navigation */
.features-page{max-width:1160px;padding-bottom:70px}
.features-page .help-hero h1{max-width:750px;line-height:1.12}
.features-page .help-hero .lede{max-width:760px}
.features-jump-nav,.support-topic-nav{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:24px 0 34px}
.features-jump-nav a,.support-topic-nav a{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface,#fff);text-decoration:none;color:var(--text,#26312b);font-size:.9rem;font-weight:700;line-height:1.25}
.features-jump-nav a:hover,.support-topic-nav a:hover{border-color:var(--accent);background:var(--accent-soft)}
.features-jump-nav a:focus-visible,.support-topic-nav a:focus-visible,.feature-card:focus-visible,.help-article-link:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.support-topic-nav{margin:0 0 28px}
.support-topic-nav a span{color:var(--muted);font-weight:600}
.feature-section{padding:30px 0 34px;border-top:1px solid var(--border);scroll-margin-top:90px}
.feature-section-heading{margin-bottom:20px}
.feature-section-heading h2{margin:0 0 7px;font-size:clamp(1.35rem,2vw,1.85rem)}
.feature-section-heading p{margin:0;color:var(--muted);max-width:700px;line-height:1.55}
.features-page .feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.features-page .feature-card{min-height:175px;padding:21px;display:flex;flex-direction:column}
.features-page .feature-card h3{font-size:1.06rem;margin:0 0 8px;line-height:1.35;color:var(--text)}
.features-page .feature-card p{font-size:.94rem;margin:0 0 18px}
.features-page .feature-card>span{margin-top:auto;font-size:.87rem}
.features-cta{margin-top:20px;padding:32px;border-radius:17px;background:var(--surface-soft);border:1px solid var(--border);text-align:center}
.features-cta h2{margin:0 0 8px}
.features-cta p{margin:0 auto 18px;max-width:510px;color:var(--muted)}
.help-result-count{margin:-12px 0 24px;color:var(--muted)}
.help-category{scroll-margin-top:90px}
.help-article-footer{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.visually-hidden{position:absolute!important;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){.features-page .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.features-page .feature-grid{grid-template-columns:1fr}.features-page .feature-card{min-height:0}.features-jump-nav,.support-topic-nav{gap:7px}.features-jump-nav a,.support-topic-nav a{padding:8px 11px;font-size:.82rem}.feature-section{padding:24px 0 28px}.features-cta{padding:26px 18px}}

/* v1.0.0-beta.8.3 — Organise You editorial homepage, intentionally scoped to v3 */
.landing-page-v3{background:#fff;color:#202b25;overflow-x:hidden;overflow-x:clip}
.landing-page-v3 .landing-header{background:#fff;position:relative;z-index:8}
.landing-page-v3 .landing-hero{max-width:1380px;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);padding:94px 42px 102px;gap:44px;overflow:visible}
.oy-eyebrow{margin:0 0 19px!important;font-size:12px!important;font-weight:850!important;text-transform:uppercase;letter-spacing:.13em;color:#296346!important;line-height:1.5!important}
.oy-hero-eyebrow{display:flex;align-items:center;gap:10px}
.oy-eyebrow-mark{display:inline-block;width:26px;height:2px;background:#d99839}
.landing-page-v3 .landing-hero .landing-hero-copy h1{font-size:clamp(47px,4.35vw,69px);letter-spacing:-.065em;line-height:1.06;max-width:800px}
.landing-page-v3 .oy-hero-ink{color:#2b7052}
.landing-page-v3 .landing-hero-text{font-size:clamp(18px,1.55vw,21px);max-width:570px;line-height:1.55;color:#52655a}
.landing-page-v3 .landing-hero .landing-hero-actions{margin-top:28px}
.oy-hero-stage{position:relative;min-width:0;isolation:isolate}
.landing-page-v3 .landing-product-preview{position:relative;z-index:2;box-shadow:0 24px 78px rgba(19,64,45,.15);transform:rotate(-1.3deg);border-radius:17px}
.oy-orbit-note{position:absolute;z-index:3;background:#fff;box-shadow:0 12px 36px rgba(26,51,37,.18);border:1px solid #e5e2d9;padding:11px 15px;border-radius:12px;font-size:13px;font-weight:750;color:#264a37;white-space:nowrap}
.oy-orbit-one{top:-25px;right:-13px;transform:rotate(6deg)}
.oy-orbit-two{bottom:-23px;left:8%;transform:rotate(-6deg);background:#ffedc4;color:#533d20}
.oy-orbit-check{display:inline-grid;place-items:center;width:20px;height:20px;background:#ddefdc;color:#18613c;border-radius:50%;margin-right:4px}
.oy-section-shell{max-width:1220px;margin:0 auto;padding:0 30px}
.oy-life{background:#123f30;color:#fff;padding:108px 0 106px;overflow:hidden;position:relative}
.oy-life:after{content:'✳';position:absolute;bottom:-180px;right:-35px;font-size:430px;color:rgba(255,255,255,.055);line-height:1;pointer-events:none}
.oy-life .oy-eyebrow{color:#c8dc9e!important}
.oy-life-layout{display:grid;grid-template-columns:1.04fr .96fr;gap:95px;position:relative;z-index:1}
.oy-life h2{color:#fff;font-size:clamp(45px,5.4vw,78px);letter-spacing:-.06em;line-height:1.03;margin:0;font-weight:800}
.oy-life h2 em{color:#e8bf78;font-style:normal}
.oy-life-right{padding-top:20px}
.oy-life-right>p{font-size:clamp(18px,1.75vw,23px);line-height:1.6;margin:0 0 32px;color:#e0eee5}
.oy-life-scribble{display:flex;flex-wrap:wrap;gap:10px;max-width:510px}
.oy-life-scribble span{border:1px solid rgba(255,255,255,.35);border-radius:30px;padding:9px 14px;font-size:14px;color:#f3f5e9;letter-spacing:.005em}
.oy-life-scribble span:nth-child(2),.oy-life-scribble span:nth-child(5){transform:rotate(-4deg)}
.oy-life-scribble span:nth-child(3),.oy-life-scribble span:nth-child(6){transform:rotate(3deg)}
.oy-life-answer{display:block;margin-top:34px;font-size:clamp(20px,2.5vw,29px);color:#eecb84}
.oy-life-answer span{font-size:27px;margin-right:6px}
.oy-story{padding:112px 0 98px;background:#fff}
.oy-story-heading{max-width:1000px;margin:0 0 50px}
.oy-story-heading h2{margin:0;max-width:1050px;font-size:clamp(42px,5.4vw,75px);line-height:1.08;letter-spacing:-.055em;color:#19372a}
.oy-story-heading h2 span{color:#438262}
.oy-story-heading>p:last-child{font-size:19px;line-height:1.65;color:#586960;max-width:700px;margin:22px 0 0}
.oy-story-stage{display:grid;grid-template-columns:minmax(250px,.68fr) minmax(0,1.32fr);min-height:510px;background:#f3f2e9;border-radius:26px;overflow:hidden;border:1px solid #e6e8df}
.oy-story-aside{padding:57px 46px;display:flex;flex-direction:column;align-items:flex-start}
.oy-story-stamp{font-size:11px;font-weight:850;letter-spacing:.16em;color:#347054}
.oy-story-aside h3{font-size:clamp(34px,3.4vw,50px);letter-spacing:-.045em;line-height:1.05;margin:27px 0 18px;color:#1f4431}
.oy-story-aside p{font-size:17px;color:#5a695f;line-height:1.6;margin:0 0 36px}
.oy-day-picker{display:flex;gap:7px;padding:6px;background:#e5e8de;border-radius:100px}
.oy-day-button{font:inherit!important;font-weight:780!important;border:0;background:transparent;color:#476451;padding:11px 18px;border-radius:100px;cursor:pointer;min-width:69px}
.oy-day-button[aria-pressed="true"]{background:#245f44;color:#fff;box-shadow:0 4px 13px #1c4c3422}
.oy-day-button:focus-visible{outline:3px solid #d99839;outline-offset:2px}
.oy-day-hint{font-size:12px;color:#6c7b6e;margin-top:12px}
.oy-story-timeline{background:#fff;padding:34px clamp(24px,4vw,54px);min-width:0;display:flex;align-items:stretch}
.oy-day-panel{width:100%;animation:oy-panel-in .22s ease-out}
.oy-day-panel[hidden]{display:none!important}
.oy-day-panel-top{display:flex;align-items:baseline;gap:12px;padding-bottom:24px;margin-bottom:12px;border-bottom:1px solid #e8ebe6}
.oy-day-panel-top>span{font-size:11px;font-weight:900;letter-spacing:.14em;color:#438262}
.oy-day-panel-top strong{font-size:25px;letter-spacing:-.035em;color:#244432}
.oy-day-panel-top small{font-size:12px;color:#79877c;margin-left:auto}
.oy-line{display:grid;grid-template-columns:51px 18px minmax(0,1fr);gap:12px;min-height:92px;position:relative}
.oy-line:not(:last-child):before{content:'';position:absolute;left:71px;top:18px;bottom:-4px;width:2px;background:#d9e7dc}
.oy-line time{font-size:13px;font-weight:700;color:#78857c;padding-top:13px}
.oy-line-point{width:12px;height:12px;background:#3c8660;border:3px solid #e0efe4;border-radius:50%;margin-top:14px;position:relative;z-index:1}
.oy-line>div{border-bottom:1px solid #e9ede9;padding:9px 0 21px;min-width:0}
.oy-line:last-child>div{border-bottom:0}
.oy-line b{display:block;color:#263b2f;font-size:17px;line-height:1.4}
.oy-line div span{display:block;color:#6d7b70;margin-top:4px;font-size:13px;line-height:1.4}
.oy-story-foot{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:24px;flex-wrap:wrap}
.oy-story-foot p{font-size:15px;color:#62756a;margin:0}
.oy-arrow-link{color:#1c6444!important;text-decoration:none;font-weight:850;display:inline-flex;gap:12px;align-items:center;border-bottom:2px solid #d6e6d9;padding:0 0 4px;font-size:16px}
.oy-arrow-link:hover{border-color:#1c6444}
.oy-arrow-link:focus-visible{outline:3px solid #e8be6d;outline-offset:4px}
.oy-arrow-link span{font-size:23px}
.oy-everyday{padding:88px 0 96px;background:#f8f9f5}
.oy-everyday-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:80px}
.oy-everyday-intro{position:sticky;top:35px;align-self:start}
.oy-everyday-intro h2{font-size:clamp(35px,4.4vw,59px);letter-spacing:-.055em;line-height:1.1;margin:0;color:#214430}
.oy-everyday-intro h2 span{color:#53876b}
.oy-everyday-list{border-top:1px solid #cbd8cf}
.oy-everyday-list>div{display:grid;grid-template-columns:37px 1fr;column-gap:23px;padding:27px 0 29px;border-bottom:1px solid #cbd8cf}
.oy-everyday-list>div>span{grid-row:1/3;font-size:13px;font-weight:900;color:#447e5d;padding-top:4px}
.oy-everyday-list h3{margin:0;font-size:22px;letter-spacing:-.025em;color:#263e30}
.oy-everyday-list p{margin:9px 0 0;color:#637168;font-size:16px;line-height:1.6}
.oy-meal-chapter{padding:100px 0 108px;background:#fce9bf;overflow:hidden}
.oy-meal-layout{display:grid;grid-template-columns:.86fr 1.14fr;align-items:center;gap:40px}
.oy-meal-copy h2{font-size:clamp(44px,5.2vw,71px);letter-spacing:-.065em;line-height:1.04;margin:0 0 24px;color:#29392a}
.oy-meal-copy h2 span{color:#a45d33}
.oy-meal-copy>p:not(.oy-eyebrow){font-size:19px;line-height:1.65;color:#655a46;max-width:490px;margin:0 0 26px}
.oy-meal-art{position:relative;min-height:415px;display:flex;align-items:flex-start;justify-content:center;padding:22px 34px}
.oy-recipe-paper,.oy-shop-paper{box-shadow:0 18px 45px rgba(72,51,29,.13);border:1px solid rgba(100,75,45,.12);background:#fffdf7}
.oy-recipe-paper{position:absolute;top:35px;left:3%;width:min(67%,340px);min-height:296px;padding:28px 28px 22px;transform:rotate(-7deg);border-radius:5px}
.oy-paper-label{display:block;font-size:11px;font-weight:900;letter-spacing:.12em;color:#866b47}
.oy-recipe-symbol{position:absolute;right:22px;top:15px;color:#d1a24d;font-size:45px}
.oy-recipe-paper h3{font-size:30px;color:#293b2c;letter-spacing:-.05em;line-height:1.1;margin:34px 0 12px;max-width:220px}
.oy-recipe-paper p{color:#776d5b;font-size:15px;margin:0}
.oy-paper-rule{margin-top:28px;border-top:2px dashed #e1d9cb}
.oy-paper-mini{display:block;margin-top:19px;color:#266944;font-size:15px;font-weight:900}
.oy-shop-paper{position:absolute;right:0;bottom:15px;width:min(48%,255px);padding:25px 27px 23px;transform:rotate(6deg);border-radius:7px;display:flex;flex-direction:column;gap:13px}
.oy-shop-paper strong{font-size:20px;line-height:1.2;color:#304131;margin:2px 0 4px}
.oy-shop-paper>span:not(.oy-paper-label){display:flex;gap:11px;color:#555d4e;font-size:15px}
.oy-shop-paper b{color:#3f835d}
.oy-meal-dash{position:absolute;left:52%;top:41%;font-size:60px;transform:rotate(-3deg);color:#8e6838}
.landing-page-v3 .landing-shared{padding-top:105px;padding-bottom:105px;background:#f3f7f1;box-shadow:0 0 0 100vmax #f3f7f1}
.landing-page-v3 .landing-shared h2,.landing-page-v3 .landing-import h2{font-size:clamp(36px,4.2vw,57px);letter-spacing:-.05em;line-height:1.1}
.landing-page-v3 .landing-import{padding-top:105px;padding-bottom:105px}
.landing-page-v3 .landing-privacy{padding-top:108px;padding-bottom:108px;background:#fff;box-shadow:0 0 0 100vmax #fff}
.landing-page-v3 .landing-privacy h2{font-size:clamp(39px,4.5vw,60px);letter-spacing:-.048em}
.landing-page-v3 .landing-founder{padding-top:62px;padding-bottom:90px}
.landing-page-v3 .landing-founder-card{border:0;box-shadow:none;border-left:5px solid #d7a65a;border-radius:0;background:transparent;padding:13px 45px;max-width:860px}
.landing-page-v3 .landing-founder-card h2{font-size:clamp(31px,4vw,51px);line-height:1.12;letter-spacing:-.045em}
.landing-page-v3 .landing-final-cta{padding-top:100px;padding-bottom:105px}
@keyframes oy-panel-in{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1120px){
 .landing-page-v3 .landing-hero{grid-template-columns:1fr;max-width:900px;gap:60px;padding:66px 28px 90px}
 .landing-page-v3 .landing-product-preview{transform:rotate(-.7deg)}
 .oy-life-layout{gap:45px}
 .oy-story-aside{padding:42px 30px}
 .oy-meal-art{min-height:375px}
}
@media(max-width:770px){
 .oy-section-shell{padding:0 22px}
 .oy-life,.oy-story,.oy-everyday,.oy-meal-chapter{padding-top:77px;padding-bottom:78px}
 .oy-life-layout,.oy-everyday-layout,.oy-meal-layout{grid-template-columns:1fr;gap:35px}
 .oy-life h2{max-width:640px}
 .oy-story-heading{margin-bottom:32px}
 .oy-story-stage{grid-template-columns:1fr}
 .oy-story-aside{padding:32px 28px}
 .oy-story-aside h3{margin:13px 0 9px;font-size:35px}
 .oy-story-aside p{margin-bottom:24px}
 .oy-day-hint{display:none}
 .oy-story-timeline{min-height:335px;padding:24px 28px}
 .oy-everyday-intro{position:static}
 .oy-meal-art{min-height:385px;max-width:590px;width:100%;margin:0 auto}
 .landing-page-v3 .landing-shared,.landing-page-v3 .landing-import,.landing-page-v3 .landing-privacy{padding-top:75px;padding-bottom:75px}
 .landing-page-v3 .landing-founder-card{padding:10px 28px}
}
@media(max-width:480px){
 .landing-page-v3 .landing-hero{padding:48px 17px 82px;gap:45px}
 .landing-page-v3 .landing-hero .landing-hero-copy h1{font-size:clamp(39px,10.9vw,49px);line-height:1.08;letter-spacing:-.055em}
 .landing-page-v3 .landing-hero-text{font-size:17px}
 .oy-orbit-note{font-size:11px;padding:8px 10px}
 .oy-orbit-one{right:-7px;top:-18px}
 .oy-orbit-two{bottom:-20px;left:0}
 .oy-section-shell{padding:0 17px}
 .oy-life h2,.oy-story-heading h2,.oy-meal-copy h2{font-size:clamp(38px,10vw,47px)}
 .oy-story-stage{border-radius:17px}
 .oy-day-button{min-width:61px;padding:11px 12px}
 .oy-story-timeline{padding:20px 18px;min-height:320px}
 .oy-line{grid-template-columns:43px 14px minmax(0,1fr);gap:9px;min-height:94px}
 .oy-line:not(:last-child):before{left:58px}
 .oy-line b{font-size:15px}
 .oy-line>div{padding-top:12px}
 .oy-day-panel-top strong{font-size:20px}
 .oy-day-panel-top small{font-size:10px}
 .oy-meal-art{padding:0;min-height:345px}
 .oy-recipe-paper{left:0;top:19px;padding:22px 21px;width:66%;min-height:265px}
 .oy-recipe-paper h3{font-size:25px}
 .oy-shop-paper{right:0;bottom:8px;width:49%;padding:17px 15px;gap:8px}
 .oy-shop-paper strong{font-size:17px}
 .oy-shop-paper>span:not(.oy-paper-label){font-size:13px}
 .oy-meal-dash{font-size:43px;left:47%}
}
@media(max-width:640px){.landing-page-v3 .landing-nav .landing-waitlist-cta{display:none!important}.landing-page-v3 .landing-header{padding-left:16px;padding-right:16px}.landing-page-v3 .landing-nav{gap:8px}}
@media(max-width:360px){.oy-orbit-note{display:none}}
@media(prefers-reduced-motion:reduce){.oy-day-panel{animation:none}.oy-life-scribble span,.landing-page-v3 .landing-product-preview{transform:none}}

/* v1.0.0-beta.8.3.1 — founding invitation illustration and natural section headings */
.landing-page-v3 .landing-founding-art{display:block;width:min(100%,520px);height:auto;object-fit:contain}
.landing-page-v3 .oy-story-aside h3{margin-top:0}
@media(max-width:980px){.landing-page-v3 .landing-founding-art{width:min(82%,430px)}}
@media(max-width:480px){.landing-page-v3 .landing-founding-art{width:min(100%,340px)}}

/* v1.0.0-beta.8.3.2 — the Organise You homepage: clearer hierarchy, real section contrast and everyday details */
.landing-page-v3{font-family:"Google Sans Flex",Arial,Helvetica,sans-serif}
.landing-page-v3 h1,.landing-page-v3 h2,.landing-page-v3 h3,.landing-page-v3 p,.landing-page-v3 a,.landing-page-v3 button{font-family:inherit}
/* Keep the main message on two intentional lines at full desktop widths. */
@media(min-width:1121px){
 .landing-page-v3 .landing-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:36px}
 .landing-page-v3 .landing-hero .landing-hero-copy h1{font-size:clamp(42px,3.5vw,53px);letter-spacing:-.047em;line-height:1.13;font-weight:750}
 .landing-page-v3 .landing-hero .landing-hero-copy h1 .oy-hero-ink{white-space:nowrap}
}
/* Life's not neat: an illustrated desk of actual everyday objects, rather than pill buttons. */
.oy-life{background:#163f32}
.oy-life:after{content:none}
.oy-life-layout{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:clamp(40px,6vw,90px);align-items:center}
.oy-life-copy h2{font-size:clamp(38px,3.9vw,55px);font-weight:740;letter-spacing:-.047em;line-height:1.12}
.oy-life-copy>p:not(.oy-life-answer){font-size:clamp(17px,1.35vw,20px);line-height:1.67;margin:24px 0;color:#e4eee8}
.oy-life-copy .oy-life-answer{font-size:clamp(19px,1.65vw,25px);font-weight:620;margin:24px 0 0;color:#f0cd91}
.oy-desk-collage{position:relative;min-height:390px;width:100%;isolation:isolate}
.oy-desk-diary{position:absolute;left:6%;top:15%;width:76%;height:253px;background:#fbf8ed;border-radius:5px;box-shadow:0 24px 50px #071f1759;display:grid;grid-template-columns:1fr 1fr;transform:rotate(-7deg);border:1px solid #e8e2d3;overflow:hidden}
.oy-desk-binding{position:absolute;z-index:1;left:calc(50% - 3px);top:0;bottom:0;width:6px;background:linear-gradient(90deg,#e4dbcb,#fffdf8,#d9d0bf)}
.oy-desk-page{padding:28px 12px 14px 22px;display:flex;flex-direction:column;gap:13px;color:#4e6659;font-size:12px;line-height:1.4;min-width:0}
.oy-desk-page strong{color:#214d38;font-size:24px;font-weight:700;margin-bottom:3px}
.oy-desk-page-right{padding-left:25px;background:#fffdf8}
.oy-desk-page-right strong{font-size:19px}
.oy-desk-note{position:absolute;z-index:2;padding:16px 14px 12px;color:#4a402f;box-shadow:0 10px 27px #0c261f38;font-size:17px;font-weight:570;line-height:1.35;min-width:140px;text-align:left}
.oy-desk-yellow{top:2%;right:0;background:#ffe49b;transform:rotate(10deg)}
.oy-desk-pink{bottom:5%;left:1%;background:#f7cad4;transform:rotate(9deg)}
.oy-desk-slip{position:absolute;z-index:2;right:0;bottom:12%;padding:14px 19px;background:#f9fbff;color:#304657;box-shadow:0 13px 26px #09271b45;transform:rotate(-10deg);display:flex;flex-direction:column;gap:4px}
.oy-desk-slip span{font-size:10px;letter-spacing:.03em;color:#6a7883}.oy-desk-slip strong{font-size:19px}.oy-desk-slip small{font-size:12px}
.oy-desk-pencil{position:absolute;z-index:3;bottom:12%;left:24%;height:11px;width:42%;background:#dfac61;border-bottom:3px solid #b27a32;border-radius:2px;transform:rotate(-23deg);box-shadow:0 4px 10px #091b1657}
.oy-desk-pencil:before{content:'';position:absolute;right:-23px;top:0;border-left:25px solid #e8c89d;border-top:5px solid transparent;border-bottom:6px solid transparent}
.oy-desk-pencil:after{content:'';position:absolute;right:-25px;top:4px;border-left:6px solid #354d48;border-top:2px solid transparent;border-bottom:2px solid transparent}
/* Reduce the second showcase's headline to a supporting scale. */
.oy-story{padding-top:84px;padding-bottom:82px;background:#fff}
.oy-story-heading{margin-bottom:35px;max-width:900px}
.oy-story-heading h2{font-size:clamp(36px,4.0vw,54px);font-weight:740;letter-spacing:-.043em;line-height:1.14}
.oy-story-heading>p:last-child{font-size:18px;margin-top:17px}
.oy-story-aside h3{font-size:clamp(28px,2.75vw,39px);font-weight:700;letter-spacing:-.035em}
.oy-story-foot{margin-top:21px}
.oy-arrow-link{font-size:16px;font-weight:500!important;gap:9px;border-bottom:0;padding:4px 0;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px}
.oy-arrow-link:hover{text-decoration-color:currentColor;border-bottom:0}
.oy-arrow-link span{font-size:18px;font-weight:400}
/* Clearly different from the white timeline: a paper-coloured section, not two near-identical greys. */
.oy-everyday{background:#f2e5d1;padding:102px 0 108px}
.oy-everyday-layout{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(44px,6vw,90px);align-items:center}
.oy-everyday-copy h2{font-size:clamp(37px,4vw,54px);line-height:1.12;letter-spacing:-.043em;font-weight:740;margin:0 0 22px;color:#234231}
.oy-everyday-lede{font-size:18px;line-height:1.65;color:#52675a;margin:0 0 20px}
.oy-everyday-detail{border-top:1px solid #d4c6b3}
.oy-everyday-detail p{margin:0;padding:14px 0;border-bottom:1px solid #d4c6b3;font-size:16px;line-height:1.6;color:#56655b}
.oy-everyday-detail strong{display:block;font-size:17px;color:#214c36;font-weight:690;margin-bottom:3px}
.oy-diary-scene{position:relative;min-height:395px;width:100%}
.oy-diary-pages{position:absolute;top:17%;left:4%;width:90%;height:278px;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 24px 45px #5c463039;border:1px solid #e4dace;transform:rotate(5deg);border-radius:8px;background:#fffdfa;overflow:hidden}
.oy-diary-page{background:linear-gradient(#fffdf8 32px,#f2ebdf 33px,#fffdf8 34px);border-right:1px solid #e4dccc;display:flex;flex-direction:column;gap:17px;padding:23px 24px;color:#637268;font-size:13px;min-width:0}
.oy-diary-page:last-child{border-right:0;background:#f9f7ed}
.oy-diary-page strong{font-size:23px;color:#2e573f;font-weight:720;margin-bottom:7px}
.oy-diary-lines{display:block;height:52px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 21px,#e6dfcf 22px,#e6dfcf 23px)}
.oy-diary-birthday{position:absolute;top:0;right:0;background:#f5c1d2;transform:rotate(-8deg);font-size:18px;font-weight:610;line-height:1.3;color:#56404a;box-shadow:0 10px 26px #745a412b;padding:20px 26px;z-index:2}
.oy-diary-pen{position:absolute;left:11%;bottom:7%;height:13px;width:50%;border-radius:3px;transform:rotate(-16deg);background:linear-gradient(to right,#293c4c 0 10%,#437c9f 10% 95%,#c6d3d9 95%);box-shadow:0 5px 11px #71533c38}
/* The next section deliberately changes to deep green: no almost-the-same background band. */
.landing-page-v3 .landing-shared{background:#173f32!important;box-shadow:0 0 0 100vmax #173f32!important;color:#fff}
.landing-page-v3 .landing-shared h2{color:#fff!important;font-size:clamp(34px,3.8vw,52px);font-weight:740}
.landing-page-v3 .landing-shared .landing-section-lede{color:#e1ece5!important}
.landing-page-v3 .landing-shared-points strong{color:#fff}
.landing-page-v3 .landing-shared-points p{color:#dde9e1}
.landing-page-v3 .landing-shared-note{color:#f4d19a!important;font-weight:580}
.landing-page-v3 .landing-shared-points>div{border-color:#c0d3bd}
.landing-page-v3 .landing-shared .shared-calendar-card{color:#2f4739}
.landing-page-v3 .landing-shared .shared-calendar-card strong{color:#2c4938}
.landing-page-v3 .landing-shared .shared-calendar-card small{color:#596a5f}
.landing-page-v3 .landing-shared .shared-plus,.landing-page-v3 .landing-shared .shared-equals{color:#f1d293}
/* Alternate the final chapters cleanly: white -> honey -> white -> warm paper -> green. */
.landing-page-v3 .landing-import{background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}
.landing-page-v3 .landing-founder{background:#f2e5d1;box-shadow:0 0 0 100vmax #f2e5d1;clip-path:inset(0 -100vmax)}
.landing-page-v3 .landing-founder-card{border-left-color:#b8833d}
.landing-page-v3 .oy-meal-copy h2{font-size:clamp(37px,4.2vw,57px);font-weight:740;letter-spacing:-.043em;line-height:1.12}
/* Don't let the illustrations or two-column layouts squash on smaller screens. */
@media(max-width:1120px){.oy-life-layout{gap:34px}.oy-everyday-layout{gap:42px}}
@media(max-width:770px){
 .oy-life-layout,.oy-everyday-layout{grid-template-columns:1fr;gap:20px}
 .oy-life-copy{order:1}.oy-desk-collage{order:2;max-width:570px;margin:0 auto}
 .oy-diary-scene{max-width:580px;margin:0 auto}
 .oy-everyday-copy{order:1}.oy-diary-scene{order:2}
 .oy-story-heading h2{font-size:clamp(37px,6.3vw,48px)}
 .oy-everyday{padding-top:78px;padding-bottom:85px}
}
@media(max-width:480px){
 .landing-page-v3 .landing-hero .landing-hero-copy h1{font-size:clamp(37px,10vw,46px)}
 .oy-life-copy h2,.oy-story-heading h2,.oy-everyday-copy h2,.landing-page-v3 .oy-meal-copy h2{font-size:clamp(33px,8.7vw,40px)}
 .oy-story-aside h3{font-size:29px}
 .oy-desk-collage{min-height:288px}
 .oy-desk-diary{height:194px;width:82%;left:2%;top:16%}
 .oy-desk-page{padding:18px 9px 9px 14px;font-size:9px;gap:10px}.oy-desk-page strong{font-size:17px}
 .oy-desk-page-right{padding-left:16px}.oy-desk-page-right strong{font-size:14px}
 .oy-desk-note{font-size:12px;min-width:0;padding:11px 10px}.oy-desk-pink{bottom:8%}.oy-desk-yellow{right:0}
 .oy-desk-slip{padding:10px;bottom:8%}.oy-desk-slip strong{font-size:14px}
 .oy-diary-scene{min-height:285px}
 .oy-diary-pages{height:209px;width:92%;top:21%;left:1%}
 .oy-diary-page{gap:11px;padding:17px 12px;font-size:10px}.oy-diary-page strong{font-size:17px}
 .oy-diary-birthday{padding:12px 17px;font-size:13px}
 .oy-everyday-lede{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.oy-desk-diary,.oy-desk-note,.oy-desk-slip,.oy-desk-pencil,.oy-diary-pages,.oy-diary-birthday,.oy-diary-pen{transform:none}}


/* v1.0.0-beta.8.3.3 — homepage review refinements, keep approved sections unchanged. */
/* Example week: align weekday with the date in ordinary Google Sans Flex, and remove excess vertical air. */
.landing-page-v3 .oy-story-stage{min-height:0}
.landing-page-v3 .oy-story-aside{padding-top:46px;padding-bottom:40px}
.landing-page-v3 .oy-story-timeline{padding-top:30px;padding-bottom:27px}
.landing-page-v3 .oy-day-panel-top{padding-bottom:17px;margin-bottom:7px}
.landing-page-v3 .oy-day-full-date{font-family:"Google Sans Flex",Arial,sans-serif;font-size:clamp(21px,2.05vw,26px);font-weight:600;letter-spacing:-.022em;line-height:1.25}
.landing-page-v3 .oy-line{min-height:78px}
.landing-page-v3 .oy-line>div{padding-bottom:16px}
/* Shared heading should be one clean line on spacious desktop layouts; allow natural wrapping on smaller displays. */
@media(min-width:1180px){
 .landing-page-v3 .landing-shared{grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr);gap:40px}
 .landing-page-v3 .landing-shared h2{font-size:clamp(32px,2.45vw,43px);letter-spacing:-.04em;white-space:nowrap}
}
/* Platform graphic at left, explainer at right. The stacked mobile reading order follows that order. */
.landing-page-v3 .landing-import{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(38px,5vw,80px)}
.landing-page-v3 .landing-import-copy{min-width:0}
/* Recipe illustration labels: no AI-style tracking or tiny shouty all-caps. */
.landing-page-v3 .oy-paper-label{font-family:"Google Sans Flex",Arial,sans-serif;font-size:15px;font-weight:550;letter-spacing:normal;text-transform:none;color:#80684d;line-height:1.35}
/* Replace generic floating privacy shield with a picture of a lockable diary and its key. */
.landing-page-v3 .landing-privacy{text-align:left}
.landing-page-v3 .landing-privacy>.oy-privacy-layout{display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);align-items:center;gap:clamp(34px,5vw,82px);max-width:1120px;padding:0;margin:0 auto}
.landing-page-v3 .oy-privacy-illustration{min-width:0}
.landing-page-v3 .oy-privacy-illustration img{display:block;width:100%;height:auto;max-height:370px;object-fit:contain}
.landing-page-v3 .oy-privacy-copy{min-width:0}
.landing-page-v3 .oy-privacy-copy h2{font-size:clamp(32px,3.1vw,46px);max-width:none;margin:0;line-height:1.15;letter-spacing:-.04em}
.landing-page-v3 .oy-privacy-copy p{font-size:17px;line-height:1.7;max-width:550px;margin:20px 0 0}
/* About page: centre the article against the viewport, independently of legacy page-shell offsets. */
.support-page-body .about-page-shell{box-sizing:border-box;width:min(100% - 36px,1020px);max-width:1020px;padding:42px 0 70px;margin-inline:auto!important;float:none;display:block}
.support-page-body .about-page-shell>.about-story-card{box-sizing:border-box;display:block;width:100%;max-width:none;margin-inline:auto}
@media(max-width:980px){
 .landing-page-v3 .landing-shared h2{white-space:normal}
 .landing-page-v3 .landing-privacy>.oy-privacy-layout{grid-template-columns:1fr;gap:14px;max-width:720px}
 .landing-page-v3 .oy-privacy-illustration img{max-height:315px}
 .landing-page-v3 .oy-privacy-copy{order:0}
 .landing-page-v3 .oy-privacy-illustration{order:1}
}
@media(max-width:770px){
 .landing-page-v3 .landing-import{grid-template-columns:1fr;gap:26px}
 .landing-page-v3 .landing-import-copy{order:0}
 .landing-page-v3 .landing-integration-list{order:1}
 .landing-page-v3 .oy-story-aside{padding:36px 28px 25px}
 .landing-page-v3 .oy-story-timeline{padding:25px 28px}
}
@media(max-width:480px){
 .landing-page-v3 .oy-story-timeline{padding:22px 20px 24px}
 .landing-page-v3 .oy-day-full-date{font-size:21px}
 .landing-page-v3 .oy-line{min-height:80px}
 .landing-page-v3 .oy-privacy-copy h2{font-size:clamp(30px,8.4vw,38px)}
 .support-page-body .about-page-shell{width:calc(100% - 28px);padding:25px 0 48px}
}

/* beta.8.3.3 — recognisable import platform graphics with real, selectable website text. */
.landing-page-v3 .landing-integration-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.landing-page-v3 .landing-integration-list .oy-import-card{display:flex;flex-direction:row;align-items:center;gap:14px;min-width:0;min-height:112px;padding:20px 15px;border:1px solid #e0e5e0;border-radius:17px;background:white;box-shadow:0 7px 20px rgba(17,50,37,.045)}
.landing-page-v3 .landing-integration-list .oy-import-card img{display:block;width:60px;height:60px;object-fit:contain;flex:0 0 60px}
.landing-page-v3 .landing-integration-list .oy-import-card .oy-import-text{display:flex;flex-direction:column;gap:6px;min-width:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;line-height:1.22}
.landing-page-v3 .landing-integration-list .oy-import-text strong{font-size:16px;letter-spacing:-.016em;font-weight:660;line-height:1.25;color:#25392f}
.landing-page-v3 .landing-integration-list .oy-import-text small{font-size:13px;line-height:1.25;color:#6e7a70;font-weight:450}
.landing-page-v3 .oy-import-feed-icon{width:57px;height:57px;flex:0 0 57px;display:grid;place-items:center;background:#25845b;color:white;border-radius:13px;padding:0;border:0;box-shadow:0 5px 12px rgba(21,87,60,.12)}
@media(max-width:1150px){.landing-page-v3 .landing-integration-list .oy-import-card{gap:10px;padding:14px 11px;min-height:93px}.landing-page-v3 .landing-integration-list .oy-import-card img{width:48px;height:48px;flex-basis:48px}.landing-page-v3 .oy-import-feed-icon{width:48px;height:48px;flex-basis:48px}.landing-page-v3 .landing-integration-list .oy-import-text strong{font-size:14px}}
@media(max-width:770px){.landing-page-v3 .landing-integration-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.landing-page-v3 .landing-integration-list{grid-template-columns:1fr}.landing-page-v3 .landing-integration-list .oy-import-card{padding:13px 16px}}
/* Keep the public About page header fully on-screen at phone sizes. */
@media(max-width:640px){
 .about-page-body .legal-header{gap:10px;padding:12px 14px}
 .about-page-body .legal-header .brand-symbol{height:31px}
 .about-page-body .legal-header .brand-wordmark{font-size:22px}
 .about-page-body .legal-header-actions{gap:5px}
 .about-page-body .legal-header-actions .primary-button{display:none}
 .about-page-body .legal-header-actions .secondary-button{padding:9px 11px;white-space:nowrap}
}



/* v1.0.0-beta.8.3.5 — show real occasion preparation, not a full-screen privacy claim. */
.landing-page-v3 .oy-ready{background:#edf4ee;padding:93px 0 95px;overflow:hidden;isolation:isolate}
.landing-page-v3 .oy-ready-layout{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);gap:clamp(45px,7vw,105px);align-items:center;max-width:1220px}
.landing-page-v3 .oy-ready-copy h2{font-size:clamp(38px,4.1vw,57px);line-height:1.075;letter-spacing:-.053em;font-weight:760;color:#183e2d;margin:0 0 23px;max-width:620px}
.landing-page-v3 .oy-ready-copy h2 em{color:#448360;font-style:normal}
.landing-page-v3 .oy-ready-copy p{font-size:18px;line-height:1.65;color:#52695b;max-width:505px;margin:0 0 17px}
.landing-page-v3 .oy-ready-copy .oy-arrow-link{margin-top:12px;font-size:16px}
/* Two pieces of paper, rather than a row of feature cards: a birthday in the diary and its linked jobs. */
.oy-ready-visual{height:385px;min-width:0;position:relative;isolation:isolate}
.oy-ready-visual::before{content:'';position:absolute;inset:30px 20px 30px 15px;border:1px dashed #bfd2c2;border-radius:50%;transform:rotate(-10deg);opacity:.72}
.oy-ready-calendar{position:absolute;top:28px;left:3%;height:284px;width:52%;max-width:275px;padding:31px 26px 18px;border-radius:10px;background:#205841;color:white;transform:rotate(-9deg);box-shadow:0 17px 30px #21482b30;display:flex;flex-direction:column;z-index:1}
.oy-ready-calendar::before{content:'';position:absolute;top:0;left:0;right:0;height:12px;border-radius:10px 10px 0 0;background:#143e2c}
.oy-ready-calendar-month{font-size:19px;line-height:1.2;color:#e0eecf;font-weight:630}
.oy-ready-calendar-date{display:flex;align-items:flex-end;gap:9px;margin:24px 0 8px;font-size:78px;line-height:.95;font-weight:760;letter-spacing:-.06em}
.oy-ready-calendar-date span{font-size:23px;line-height:1.3;letter-spacing:-.02em;font-weight:570;padding-bottom:6px}
.oy-ready-calendar strong{font-size:16px;font-weight:630;color:#fff4d4;line-height:1.25}
.oy-ready-calendar-swish{position:absolute;right:19px;bottom:9px;font-size:52px;color:#d9bc75;transform:rotate(10deg);line-height:1}
.oy-ready-pad{position:absolute;right:4%;top:68px;z-index:2;transform:rotate(5deg);width:60%;max-width:325px;height:293px;filter:drop-shadow(0 17px 20px #213d2925)}
.oy-ready-pad-inner{position:relative;height:100%;background:repeating-linear-gradient(to bottom,#fffdf6 0px,#fffdf6 32px,#cadbd2 33px,#fffdf6 34px);border:1px solid #e0d8c5;border-radius:5px 5px 7px 7px;padding:41px 20px 15px;display:flex;flex-direction:column;gap:13px}
.oy-ready-rings{display:flex;justify-content:space-around;align-items:flex-start;position:absolute;z-index:3;top:-13px;left:5%;width:90%;height:26px}
.oy-ready-rings i{display:block;width:10px;height:27px;border:3px solid #7b9483;border-radius:8px;box-shadow:1px 0 1px #536b55;transform:rotate(2deg)}
.oy-ready-pad-heading{font-size:20px;letter-spacing:-.035em;font-weight:760;color:#315941;line-height:1.2;margin:0 0 5px}
.oy-ready-task{display:flex;gap:11px;align-items:start;color:#455e4c;font-size:16px;font-weight:625;line-height:1.12}
.oy-ready-task>span:last-child{display:block;flex:1}
.oy-ready-task small{font-size:12px;display:block;font-weight:480;color:#738271;margin-top:5px;line-height:1.2}
.oy-ready-tick{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border:2px solid #6f9a7a;background:#d9eddb;border-radius:5px;color:#28744a;font-size:14px;line-height:1}
.oy-ready-tick.oy-ready-empty{background:transparent;border-color:#9bac9d}
.oy-ready-tag{position:absolute;z-index:3;left:6%;bottom:3px;transform:rotate(-6deg);padding:10px 16px 11px;border-radius:9px;background:#ffe4ab;box-shadow:0 8px 22px #43583b27;color:#6a4e25;font-size:14px;font-weight:680;white-space:nowrap}
.oy-ready-tag span{font-size:22px;margin-left:7px}
/* Privacy remains visible but compact; the feature demonstration is the chapter. */
.landing-page-v3 .oy-home-privacy-note{display:flex;justify-content:center;align-items:center;gap:11px;flex-wrap:wrap;padding:19px 23px;background:#fff;color:#4f6858;text-align:center;font-size:14px;line-height:1.5}
.landing-page-v3 .oy-home-privacy-note svg{width:20px;height:20px;flex:0 0 20px;color:#3b7957}
.landing-page-v3 .oy-home-privacy-note a{color:#285e43;font-weight:670;text-underline-offset:4px}
.landing-page-v3 .oy-home-privacy-note a:focus-visible{outline:3px solid #ecc879;outline-offset:3px}
@media(max-width:850px){
 .landing-page-v3 .oy-ready-layout{gap:29px;grid-template-columns:1fr}
 .landing-page-v3 .oy-ready-copy{order:0}
 .landing-page-v3 .oy-ready-visual{order:1;max-width:580px;width:100%;margin:0 auto}
}
@media(max-width:600px){
 .landing-page-v3 .oy-ready{padding-top:73px;padding-bottom:78px}
 .landing-page-v3 .oy-ready-copy h2{font-size:clamp(36px,9.2vw,44px)}
 .landing-page-v3 .oy-ready-copy p{font-size:16px}
 .landing-page-v3 .oy-ready-visual{height:317px}
 .oy-ready-calendar{top:25px;height:240px;padding:25px 17px;width:54%}
 .oy-ready-calendar-month{font-size:17px}
 .oy-ready-calendar-date{margin-top:25px;font-size:57px}
 .oy-ready-calendar-date span{font-size:19px}
 .oy-ready-calendar strong{font-size:13px}
 .oy-ready-pad{top:54px;right:1%;height:242px;width:63%}
 .oy-ready-pad-inner{padding:35px 13px 9px;gap:9px;background:repeating-linear-gradient(to bottom,#fffdf6 0px,#fffdf6 27px,#cadbd2 28px,#fffdf6 29px)}
 .oy-ready-pad-heading{font-size:17px;margin-bottom:5px}
 .oy-ready-task{font-size:13px;gap:8px}
 .oy-ready-task small{font-size:11px;margin-top:3px}
 .oy-ready-tick{flex-basis:16px;width:16px;height:16px;border-width:1.5px;font-size:12px}
 .oy-ready-tag{font-size:12px;padding:8px 11px;bottom:0;left:3%}
 .landing-page-v3 .oy-home-privacy-note{gap:7px;padding:17px}
}
@media(prefers-reduced-motion:reduce){.oy-ready-calendar,.oy-ready-pad,.oy-ready-tag{transform:none}}

@media(max-width:370px){.oy-ready-calendar strong{font-size:12px;max-width:86px}.oy-ready-pad{right:-1%}.oy-ready-pad-heading{font-size:16px}}

/* beta.9 — slight logo adjustment and focused new utilities. */
/* beta.9 web-root hotfix — align header brand edge exactly with hero content. */
@media(min-width:1000px){.landing-page-v3 .landing-header{max-width:1380px;padding-left:42px;padding-right:42px}}
.bin-empty-actions{display:flex;justify-content:flex-end;margin:18px 0}.bin-empty-button{border-color:#ad483e;color:#943b32}.bin-empty-button:hover{background:#fff0ec}
.quick-add-card{max-width:840px;margin-inline:auto}.quick-add-review{margin-top:26px;padding:22px;border:1px solid #c9ddcf;border-radius:14px;background:#f5faf6}.quick-add-review h2{margin-top:0}.quick-add-review .primary-button{display:inline-flex;text-decoration:none;margin-top:12px}
@media(max-width:650px){.bin-empty-actions{justify-content:stretch}.bin-empty-actions form,.bin-empty-button{width:100%}.calendar-create-actions{flex-wrap:wrap}}


/* beta.9.1 — unified calendar Add dropdown (replaces three competing toolbar buttons). */
.calendar-create-actions{flex:0 0 auto;position:relative}
.calendar-add-dropdown{position:relative;display:block}
.calendar-toolbar-v7 .calendar-add-dropdown>summary.header-add-button{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    min-height:34px;padding:7px 13px;font-size:12px;line-height:19px;
    white-space:nowrap;list-style:none;user-select:none;cursor:pointer
}
.calendar-add-dropdown>summary::-webkit-details-marker{display:none}
.calendar-add-dropdown>summary::marker{content:''}
.calendar-add-dropdown>summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
.calendar-add-chevron{font-size:16px;line-height:1;margin-left:2px;transition:transform .16s ease}
.calendar-add-dropdown[open] .calendar-add-chevron{transform:rotate(180deg)}
.calendar-add-dropdown-panel{
    position:absolute;right:0;top:calc(100% + 7px);z-index:80;
    width:260px;max-width:calc(100vw - 24px);
    padding:6px;border:1px solid var(--border);border-radius:12px;
    background:var(--surface);box-shadow:0 12px 34px rgba(17,48,33,.16)
}
.calendar-add-dropdown-link{
    display:flex;align-items:center;gap:11px;padding:10px;
    border-radius:8px;text-decoration:none;color:var(--text)
}
.calendar-add-dropdown-link:hover,.calendar-add-dropdown-link:focus-visible{
    background:var(--accent-soft);color:var(--accent-dark)
}
.calendar-add-dropdown-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.calendar-add-option-icon{
    width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;
    border-radius:8px;background:var(--accent-soft);color:var(--accent-dark);
    font-size:17px;font-weight:700
}
.calendar-add-dropdown-link span:last-child{display:flex;flex-direction:column;min-width:0}
.calendar-add-dropdown-link strong{font-size:13px;line-height:1.3}
.calendar-add-dropdown-link small{font-size:11px;line-height:1.4;color:var(--muted);margin-top:2px}
@media(max-width:640px){
    .calendar-create-actions{flex:0 0 auto;margin-left:auto}
    .calendar-toolbar-v7 .calendar-add-dropdown>summary.header-add-button{min-height:42px;padding:8px 14px}
}
@media(prefers-reduced-motion:reduce){.calendar-add-chevron{transition:none}}


/* beta.9.2 — slim signed-in workspace navigation */
.workspace-nav{position:relative;z-index:95;background:#f0f6f1;border-bottom:1px solid #dce8de}
.workspace-nav-inner{max-width:1600px;margin:0 auto;min-height:49px;padding:5px 27px;display:flex;align-items:center;gap:4px}
.workspace-nav-link,.workspace-nav-toggle{font-family:inherit;font-size:13px;font-weight:650;line-height:1.3;display:inline-flex;align-items:center;gap:7px;justify-content:center;min-height:35px;padding:8px 14px;border:1px solid transparent;border-radius:8px;color:#284d3a;text-decoration:none;white-space:nowrap;background:transparent;cursor:pointer}
.workspace-nav-link:hover,.workspace-nav-toggle:not(.workspace-nav-add):hover,.workspace-nav-link.is-current,.workspace-nav-toggle:not(.workspace-nav-add).is-current{background:#fff;border-color:#d4e3d7;color:#195139}
.workspace-nav-add{background:#276b4d;color:#fff;border-color:#276b4d;font-weight:750;padding-inline:16px;margin-right:7px}
.workspace-nav-add:hover,.workspace-nav-add[aria-expanded=true]{background:#1b573d;color:#fff}
.workspace-chevron{font-size:17px;line-height:1;transform:translateY(-1px);opacity:.8;transition:transform .14s ease}
.workspace-nav-toggle[aria-expanded=true] .workspace-chevron{transform:rotate(180deg)}
.workspace-nav-group{position:relative;flex:0 0 auto}
.workspace-nav-menu{position:absolute;top:calc(100% + 5px);left:0;width:242px;display:grid;gap:2px;background:#fff;border:1px solid #d9e4da;border-radius:12px;padding:7px;box-shadow:0 14px 34px rgba(23,51,34,.14);z-index:200}
.workspace-nav-menu[hidden]{display:none!important}
.workspace-nav-option{display:flex;flex-direction:column;gap:3px;padding:10px 11px;color:#233b2e;border-radius:7px;text-decoration:none}
.workspace-nav-option:hover,.workspace-nav-option:focus-visible{background:#eef6ef;color:#15563b}
.workspace-nav-option strong{font-size:13px;line-height:1.4}
.workspace-nav-option small{color:#67736b;font-size:11px;line-height:1.3}
.workspace-nav-toggle:focus-visible,.workspace-nav-link:focus-visible{outline:3px solid #85ba92;outline-offset:2px}
@media (max-width:1050px) and (min-width:641px){.workspace-nav-inner{padding:7px 14px;gap:0;flex-wrap:wrap}.workspace-nav-link,.workspace-nav-toggle{padding-inline:11px;font-size:12px}.workspace-nav-add{margin-right:4px}}
/* The existing accessible mobile hamburger contains every destination. */
@media(max-width:640px){.workspace-nav{display:none}}
@media(prefers-reduced-motion:reduce){.workspace-chevron{transition:none}}
/* Keep More reachable between tablet and mobile breakpoints. */
@media(min-width:641px) and (max-width:900px){.site-header .header-more-menu{display:inline-flex}}

/* beta.9.3 Google Tasks — private read-only mirror */
.gt-list-choices{display:flex;flex-direction:column;gap:12px;margin:16px 0}
.gt-list-choices label{display:flex;align-items:center;gap:9px;font-size:14px}
.gt-task-list{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.gt-task{padding:14px 15px;border:1px solid var(--border,#dce6df);border-radius:12px;background:var(--surface,#fff);display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.gt-task>div{flex:1;min-width:0}
.gt-task strong{font-size:14px;display:inline-block;margin-bottom:4px;overflow-wrap:anywhere}
.gt-task small{display:block;color:var(--muted,#667a70);font-size:12px;line-height:1.5}
.gt-task p{white-space:normal;overflow-wrap:anywhere;font-size:13px;margin:9px 0 0}
.gt-task-action{display:flex;flex-direction:column;gap:7px;align-items:flex-end}
.gt-task-action label{display:flex;flex-direction:column;gap:5px;font-size:12px}
.gt-task-action input{font:inherit;padding:7px;border:1px solid var(--border,#ddd);border-radius:7px}
.gt-done{font-size:11px;color:#27694c;background:#e8f5e9;border-radius:999px;padding:3px 7px;margin-left:7px}
@media(max-width:680px){.gt-task{flex-direction:column}.gt-task-action{width:100%;align-items:stretch}.gt-task-action button{width:100%}}

/* beta.9.4 blog media library */
.blog-media-actions{margin:12px 0}.blog-media-panel{border:1px solid var(--border,#cbd5d1);border-radius:12px;padding:18px;margin:15px 0;background:var(--card,#fff)}.blog-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:12px;margin:15px 0}.blog-media-tile{min-width:0;padding:7px;border:1px solid #b9c8c2;border-radius:9px;background:#fff;cursor:pointer;text-align:left}.blog-media-tile img{width:100%;height:100px;object-fit:contain}.blog-media-tile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-prose img{max-width:100%;height:auto;border-radius:8px}.recipe-prose p{white-space:normal}.recipe-prose blockquote{border-left:3px solid #2a7653;margin:1em 0;padding-left:1em}


/* beta.9.4.1: Appearance-driven workspace navigation */
.workspace-nav{background:var(--accent-soft,#eaf3ee);border-bottom-color:var(--accent-border,#dce8de)}
.workspace-nav-link,.workspace-nav-toggle{color:var(--accent-dark,#1f523b)}
.workspace-nav-link:hover,.workspace-nav-toggle:not(.workspace-nav-add):hover,
.workspace-nav-link.is-current,.workspace-nav-toggle:not(.workspace-nav-add).is-current{background:var(--surface,#fff);border-color:var(--accent-border,#dce8de);color:var(--accent-dark,#1f523b)}
.workspace-nav-add{background:var(--accent,#276749);border-color:var(--accent,#276749);color:#fff}
.workspace-nav-add:hover,.workspace-nav-add[aria-expanded=true]{background:var(--accent-dark,#1f523b);color:#fff}
.workspace-nav-menu{background:var(--surface,#fff);border-color:var(--accent-border,#dce8de)}
.workspace-nav-option{color:var(--text,#233b2e)}
.workspace-nav-option:hover,.workspace-nav-option:focus-visible{background:var(--accent-soft,#eaf3ee);color:var(--accent-dark,#1f523b)}
.workspace-nav-option small{color:var(--muted,#67736b)}
.workspace-nav-toggle:focus-visible,.workspace-nav-link:focus-visible,.workspace-nav-option:focus-visible{outline:3px solid var(--focus-ring,var(--accent,#276749));outline-offset:2px}
/* Blossom uses a pale CTA treatment to preserve readable contrast. */
body.theme-pink .workspace-nav-add{background:var(--accent-soft,#fdebf2);color:var(--accent-dark,#672b43);border-color:var(--accent-border,#dfb6c9)}
body.theme-pink .workspace-nav-add:hover,body.theme-pink .workspace-nav-add[aria-expanded=true]{background:var(--accent,#7e3653);color:#fff}
/* beta.9.4.1: keep public help/legal header controls inside narrow viewports. */
@media(max-width:640px){
 .legal-header{flex-wrap:wrap;gap:9px 12px;min-width:0;padding:12px 14px}
 .legal-header .landing-brand{min-width:0;max-width:100%}
 .legal-header .landing-brand .brand-wordmark{font-size:clamp(19px,5vw,24px)}
 .legal-header .landing-brand .brand-symbol{height:33px}
 .legal-header-actions{min-width:0;max-width:100%;flex-wrap:wrap;gap:8px;margin-left:auto}
 .legal-header-actions a,.legal-header-actions button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
 .help-page,.help-page .help-card,.help-page .support-topic-nav,.help-page .help-search{min-width:0}
 .support-topic-nav{flex-wrap:wrap}
 .help-search{max-width:100%}
 .help-search input{max-width:100%;min-width:0}
}
@media(max-width:360px){.legal-header-actions{width:100%;justify-content:flex-start;margin-left:0}}

/* beta.9.5.3 — optional stationery surfaces; keep normal content as HTML for accessibility. */
.oy-paper {position:relative;--oy-paper-color:#fffdf5;--oy-paper-ink:#c4dcec;}
.oy-paper:not(.oy-paper-standard){background-color:var(--oy-paper-color)!important;color:#343c38;box-shadow:0 8px 28px rgba(48,45,31,.085);}
.oy-paper-plain{--oy-paper-color:#fffdf5;}
.oy-paper-lined{--oy-paper-color:#fffdf5;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 30px,var(--oy-paper-ink) 31px,transparent 32px);background-origin:padding-box;}
.oy-paper-grid{--oy-paper-color:#fffdf5;background-image:linear-gradient(to right,rgba(125,169,193,.22) 1px,transparent 1px),linear-gradient(to bottom,rgba(125,169,193,.22) 1px,transparent 1px);background-size:24px 24px;}
.oy-paper-spiral{padding-top:48px!important;}
.oy-paper-spiral::before{content:'';pointer-events:none;position:absolute;top:8px;left:12px;right:12px;height:25px;background:radial-gradient(ellipse 8px 11px at center,transparent 51%,#929ba0 58%,#e3e7e7 73%,transparent 79%) 0 0/34px 25px repeat-x;opacity:.85;}
.oy-paper .checklist-row{background:rgba(255,255,255,.75);}
.oy-paper-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0;}
.oy-paper-picker label{display:grid;gap:6px;font-weight:600;}
.oy-paper-picker select{width:100%;}
.notes-view-switch{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.oy-sticky-board{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:start;gap:22px;padding:14px 6px 24px;}
.oy-sticky{--sticky-background:#fff2a8;--sticky-ink:#40391b;position:relative!important;background:var(--sticky-background)!important;color:var(--sticky-ink)!important;border:0!important;border-radius:2px 3px 14px 3px!important;box-shadow:2px 8px 13px rgba(26,24,17,.18),inset 0 1px rgba(255,255,255,.65)!important;}
.oy-sticky:before{content:'';position:absolute;right:0;bottom:0;width:19px;height:19px;background:linear-gradient(135deg,rgba(0,0,0,.1) 0%,rgba(255,255,255,.7) 40%,rgba(255,255,255,.97) 75%);clip-path:polygon(100% 0,0 100%,100% 100%);border-radius:0 0 9px 0;pointer-events:none;}
.oy-sticky-yellow{--sticky-background:#fff2a8;--sticky-ink:#40391b}
.oy-sticky-pink{--sticky-background:#f9dce7;--sticky-ink:#573245}
.oy-sticky-blue{--sticky-background:#d9ebfd;--sticky-ink:#284b65}
.oy-sticky-green{--sticky-background:#ddf1d7;--sticky-ink:#30513c}
.oy-sticky-peach{--sticky-background:#ffe5c8;--sticky-ink:#5d4235}
.oy-sticky-purple{--sticky-background:#e8dffa;--sticky-ink:#4b3961}
.oy-sticky-board .note-card{min-height:180px;padding:21px 20px 26px;cursor:grab;transform:rotate(-.6deg);transition:transform .15s,box-shadow .15s;}
.oy-sticky-board .note-card:nth-child(3n){transform:rotate(.7deg)}
.oy-sticky-board .note-card:hover,.oy-sticky-board .note-card:focus-visible{transform:rotate(0) translateY(-3px);}
.oy-sticky-board .note-card h2,.oy-sticky-board .note-card p,.oy-sticky-board .note-card small{color:var(--sticky-ink)!important;}
.oy-sticky-arrows{display:flex;gap:7px;justify-content:flex-end;margin-top:12px;}
.oy-sticky-arrows>span{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.16);border-radius:6px;width:31px;height:29px;font-weight:bold;cursor:pointer;background:rgba(255,255,255,.4)}
.oy-sticky-arrows>span:focus-visible{outline:2px solid #303f5e;outline-offset:2px}
.note-detail.oy-sticky{max-width:750px;}
@media(max-width:640px){.oy-paper-picker{grid-template-columns:1fr}.oy-sticky-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.oy-sticky-board .note-card{padding:15px;min-height:140px}.notes-view-switch{width:100%}}
@media(max-width:420px){.oy-sticky-board{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.oy-sticky-board .note-card{transition:none;transform:none!important}}
.access-high-contrast .oy-paper,.access-high-contrast .oy-sticky{border:2px solid #4c5251!important;box-shadow:none!important;}

/* Show ruled backgrounds through editable note areas, without changing textarea content. */
.form-card.oy-paper .stacked-form textarea{background-color:rgba(255,255,255,.42);font:inherit;line-height:32px;}
.notes-grid-polished .note-card.oy-paper:not(.oy-paper-standard){background-color:var(--oy-paper-color)!important;}

/* beta.9.5.4 — make the editable surface a physical notepad, not a white field atop paper. */
.oy-notebook-editor{--oy-paper-color:#fffdf4;--oy-paper-ink:rgba(100,149,177,.36)}
.oy-notebook-editor .oy-notebook-controls{margin:16px 0 14px;padding:14px 16px;border:1px solid var(--border,#dfe5e1);border-radius:12px;background:var(--card-bg,#fff);color:var(--text,#283c33)}
.oy-notebook-controls-title{margin:0 0 4px;font-size:1rem}
.oy-notebook-controls .oy-paper-picker{margin:8px 0}
.oy-paper-unsaved{font-size:.83rem;color:var(--muted,#5c6d63);margin:6px 0 0}
.oy-paper-unsaved[data-unsaved="1"]{font-weight:700;color:#80601e}
.oy-notebook-sheet{position:relative;margin:16px 0 18px;padding:16px 14px 14px;background:#fffdf4;border:1px solid #ded8c6;border-radius:5px;box-shadow:0 9px 24px rgba(48,45,31,.12);isolation:isolate}
.oy-notebook-sheet>label{display:block;margin-bottom:10px;position:relative;z-index:1;font-weight:700;color:#554a35}
.oy-notebook-editor .oy-notebook-sheet textarea{display:block;width:100%;min-height:340px;box-sizing:border-box;resize:vertical;border:0!important;border-radius:0!important;outline-offset:2px;background:#fffdf4!important;color:#303a34;box-shadow:none!important;font-family:inherit;font-size:16px;line-height:32px;letter-spacing:normal;padding:8px 16px 12px 44px;margin:0;tab-size:4}
.oy-notebook-editor.oy-paper-standard .oy-notebook-sheet textarea{background:#fff!important;padding-left:16px;line-height:1.65}
.oy-notebook-editor.oy-paper-standard .oy-notebook-sheet{background:#fff;border-radius:10px}
.oy-notebook-editor.oy-paper-plain .oy-notebook-sheet textarea{background:#fffdf4!important}
.oy-notebook-editor.oy-paper-lined .oy-notebook-sheet textarea{background-color:#fffdf4!important;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(100,149,177,.4) 31px,rgba(100,149,177,.4) 32px)!important;background-position:left 8px!important;background-attachment:local!important}
.oy-notebook-editor.oy-paper-lined .oy-notebook-sheet:after{content:"";position:absolute;top:56px;bottom:15px;left:49px;border-left:1px solid rgba(205,105,111,.45);pointer-events:none}
.oy-notebook-editor.oy-paper-grid .oy-notebook-sheet textarea{background-color:#fffdf4!important;background-image:linear-gradient(to right,rgba(100,149,177,.22) 1px,transparent 1px),linear-gradient(to bottom,rgba(100,149,177,.22) 1px,transparent 1px)!important;background-size:24px 24px!important;background-attachment:local!important}
/* Wire-o binding: perforations and thin intersecting metallic wire loops, above the page. */
.oy-notebook-editor.oy-paper-spiral{padding-top:24px!important}
.oy-notebook-editor.oy-paper-spiral:before{display:none}
.oy-notebook-editor.oy-paper-spiral .oy-notebook-sheet{margin-top:32px}
.oy-paper-spiral .oy-notebook-sheet:before,.oy-list-notebook.oy-paper-spiral:before{content:"";position:absolute;left:22px;right:22px;top:-20px;height:36px;pointer-events:none;z-index:3;background-image:radial-gradient(ellipse 5px 4px at 50% 83%,#a6a297 65%,transparent 72%),radial-gradient(ellipse 6px 15px at 50% 38%,transparent 62%,#899298 66%,#f3f4f3 74%,#848a8d 79%,transparent 84%);background-repeat:repeat-x;background-size:28px 35px;filter:drop-shadow(1px 2px 1px rgba(30,31,30,.25))}
.oy-notebook-editor .form-actions{position:sticky;bottom:6px;z-index:5;padding:12px;border-radius:12px;background:var(--card-bg,#fff);box-shadow:0 4px 18px rgba(0,0,0,.1)}
/* List checkboxes and entry rows live on the ruled page instead of isolated white blocks. */
.oy-list-notebook.oy-paper-lined .checklist-items,.oy-list-notebook.oy-paper-grid .checklist-items{background-color:#fffdf4;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,rgba(100,149,177,.33) 47px,rgba(100,149,177,.33) 48px);padding:5px 12px 8px;border-radius:6px}
.oy-list-notebook.oy-paper-grid .checklist-items{background-image:linear-gradient(to right,rgba(100,149,177,.19) 1px,transparent 1px),linear-gradient(to bottom,rgba(100,149,177,.19) 1px,transparent 1px);background-size:24px 24px}
.oy-list-notebook.oy-paper-lined .checklist-row,.oy-list-notebook.oy-paper-grid .checklist-row{min-height:48px;box-sizing:border-box;background:transparent!important;border-radius:0;box-shadow:none}
.oy-list-notebook .oy-list-paper-options{padding:12px;border:1px solid var(--border,#dfe5e1);border-radius:12px;background:var(--card-bg,#fff)}
.oy-list-notebook .oy-list-paper-options h3{margin:0}
.oy-list-notebook.oy-paper-spiral:before{top:6px}
.oy-list-notebook.oy-paper-spiral{padding-top:49px!important}
@media(max-width:640px){.oy-notebook-sheet{padding:12px 8px}.oy-notebook-editor .oy-notebook-sheet textarea{padding-left:26px}.oy-notebook-editor.oy-paper-lined .oy-notebook-sheet:after{left:29px}.oy-paper-spiral .oy-notebook-sheet:before{left:9px;right:9px}}
@media(prefers-reduced-motion:reduce){.oy-notebook-editor .oy-notebook-sheet textarea{scroll-behavior:auto}}
.access-high-contrast .oy-notebook-sheet textarea{background-image:none!important;border:2px solid currentColor!important}


/* beta.9.5.6 — Notes layout only. Paper is the editable sheet, never the page/form. */
.oy-notes-form-wrap{max-width:1200px;margin:0 auto;box-sizing:border-box}
.oy-notes-form-wrap .oy-notebook-editor{width:100%;max-width:1120px;box-sizing:border-box;background:var(--surface,#fff)!important;background-image:none!important;color:var(--text,#283c33)!important;box-shadow:0 8px 28px rgba(28,43,37,.06)}
.oy-notes-form-wrap .oy-notebook-editor.oy-paper-spiral{padding-top:32px!important}
.oy-notes-form-wrap .oy-notebook-editor::before{display:none!important}
.oy-notebook-workspace{display:grid;grid-template-columns:minmax(0,700px) minmax(250px,1fr);gap:26px;align-items:start;margin:16px 0 18px}
.oy-notebook-workspace>.oy-notebook-sheet{grid-column:1;grid-row:1;margin:16px 0 0;min-width:0}
.oy-notebook-workspace>.oy-notebook-controls{grid-column:2;grid-row:1;margin:0;min-width:0}
.oy-notebook-workspace .oy-paper-picker{grid-template-columns:1fr}
.oy-notebook-editor.oy-paper-spiral .oy-notebook-workspace>.oy-notebook-sheet{margin-top:32px}
@media(max-width:850px){
 .oy-notebook-workspace{display:flex;flex-direction:column;gap:6px}
 .oy-notebook-workspace>.oy-notebook-controls,.oy-notebook-workspace>.oy-notebook-sheet{width:100%;box-sizing:border-box}
 .oy-notebook-workspace>.oy-notebook-controls{order:0}
 .oy-notebook-workspace>.oy-notebook-sheet{order:1;margin-top:14px}
 .oy-notebook-editor.oy-paper-spiral .oy-notebook-workspace>.oy-notebook-sheet{margin-top:30px}
 .oy-notebook-workspace .oy-paper-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){.oy-notes-form-wrap{padding:20px 12px}.oy-notes-form-wrap .oy-notebook-editor{padding:18px 14px}.oy-notebook-workspace .oy-paper-picker{grid-template-columns:1fr}}

/* beta.9.5.8 — Notes overview follows the shared wide-page rhythm.
   Keep the sticky board's own responsive grid and draggable note behaviour. */
@media (max-width: 1020px) and (min-width: 701px) {
  .notes-tools { grid-template-columns: minmax(0, 1fr) auto; }
  .notes-tools .notes-search { grid-column: 1 / -1; }
}
@media (max-width: 950px) {
  .notes-grid-polished:not(.oy-sticky-board) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .notes-grid-polished:not(.oy-sticky-board) { grid-template-columns: minmax(0, 1fr); }
}

/* beta.9.5.8 — visible cross-navigation between sign-in and waiting list. */
.auth-waitlist-link { margin: 16px 0 0; text-align: center; line-height: 1.5; }
.auth-waitlist-link a { font-weight: 700; text-underline-offset: 3px; }


/* beta.9.5.9 — authoritative Notes overview width and responsive grid.
   The shared control width is 1180px; keep sticky board and Add/Edit Notes separate.
   These specific final rules replace older 980px / 2-column presentation styles. */
main.notes-page.notes-page-polished {
  box-sizing: border-box;
  width: min(100%, var(--page-control, 1180px));
  max-width: var(--page-control, 1180px);
  margin-inline: auto;
}
main.notes-page.notes-page-polished > .notes-grid.notes-grid-polished:not(.oy-sticky-board) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1100px) {
  main.notes-page.notes-page-polished > .notes-grid.notes-grid-polished:not(.oy-sticky-board) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  main.notes-page.notes-page-polished > .notes-grid.notes-grid-polished:not(.oy-sticky-board) {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* beta.9.5.10 — fix the exact legacy selector seen in live Chrome DevTools.
   Older deployments used `.notes-page.polished`; newer templates use
   `.notes-page.notes-page-polished`. Both must receive the same wide rhythm.
   Keep all rules scoped to the Notes overview, never the sticky board. */
main.notes-page.polished,
main.notes-page.notes-page-polished {
  box-sizing: border-box;
  width: min(100%, 1180px);
  max-width: 1180px;
  margin-inline: auto;
}
main.notes-page.polished > .notes-grid:not(.oy-sticky-board),
main.notes-page.notes-page-polished > .notes-grid:not(.oy-sticky-board) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 1100px) {
  main.notes-page.polished > .notes-grid:not(.oy-sticky-board),
  main.notes-page.notes-page-polished > .notes-grid:not(.oy-sticky-board) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  main.notes-page.polished > .notes-grid:not(.oy-sticky-board),
  main.notes-page.notes-page-polished > .notes-grid:not(.oy-sticky-board) {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* beta.9.5.13 — chosen desktop shortcuts can exceed five; responsive JS moves overflow into More. */
@media (min-width:641px){
 .site-header .desktop-header-actions {min-width:0;flex:1 1 auto;justify-content:flex-end;overflow:visible;}
 .site-header .desktop-header-actions>a.header-icon-link {flex:0 0 34px;}
 .site-header .desktop-header-actions>a.header-icon-link[hidden] {display:none!important;}
 .site-header .header-more-responsive {display:inline-flex;flex:0 0 auto;}
 .site-header .desktop-brand-link {flex-shrink:0;}
}

/* beta.9.5.18: lightweight contextual return link above item details */
.detail-back-top{margin:0 0 1rem;font-size:.925rem}.detail-back-top a{color:inherit;text-decoration:none;font-weight:600}.detail-back-top a:hover{text-decoration:underline}


/* beta.9.5.19 — scoped form and Notes usability improvements */
main.form-wrap .form-card{box-sizing:border-box;width:min(100%,950px);max-width:950px}
main.form-wrap .related-contacts-picker{display:block;margin:16px 0 4px;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}
main.form-wrap .related-contacts-picker>summary{display:list-item;cursor:pointer;padding:14px 17px;font-weight:700;list-style-position:inside}
main.form-wrap .related-contacts-picker>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
main.form-wrap .related-contacts-picker[open]>summary{margin-bottom:6px}
main.form-wrap .related-contacts-picker .related-contacts-list{padding:4px 16px 10px;grid-template-columns:repeat(3,minmax(0,1fr));max-height:260px}
main.form-wrap .related-contacts-picker .field-help{margin:0;padding:0 16px 14px}
main.form-wrap .related-contacts-count{margin-left:8px;font-size:12px;font-weight:500;color:var(--muted)}
main.form-wrap #travel-fields>.form-section-heading{border-top:0;padding-top:0;margin-top:22px}
main.notes-page.notes-page-polished,main.notes-page.polished{width:min(100%,1320px);max-width:1320px}
main.notes-page.notes-page-polished .notes-tools .notes-search input[type="search"],
main.notes-page.polished .notes-tools .notes-search input[type="search"]{box-sizing:border-box;min-height:44px;padding:11px 15px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;line-height:1.4;appearance:none}
main.notes-page.notes-page-polished .notes-tools .notes-search input[type="search"]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
main.notes-page.notes-page-polished .notes-tools .notes-search button{min-height:44px}
@media(max-width:860px){main.form-wrap .related-contacts-picker .related-contacts-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){main.form-wrap .related-contacts-picker .related-contacts-list{grid-template-columns:minmax(0,1fr)}main.form-wrap .form-card{padding:22px 16px}}

/* beta.20 — long URLs/IDs must never cross Notes cards */
.notes-grid .note-card,.notes-grid .note-card h2,.notes-grid .note-card p,.note-body{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal}
.notes-grid .note-card{box-sizing:border-box}
/* Spiral end ring: centre evenly spaced whole rings instead of clipping background tiles. */
.notes-grid .note-card.oy-paper-spiral::before{left:12px;right:12px;background-size:34px 25px;background-position:center top;mask-image:linear-gradient(to right, transparent 0 8px, #000 15px, #000 calc(100% - 15px), transparent calc(100% - 8px));}
/* The internal Availability title already belongs to a bordered panel. */
main.form-wrap .availability-panel .form-section-heading,main.form-wrap #availability-fields .form-section-heading{border-top:0;padding-top:0}

/* beta.20 floating sticky overlays */
.oy-float-launcher{position:fixed;z-index:1100;right:16px;bottom:14px;font-size:14px}
#oy-float-open{border:1px solid var(--border,#aaa);border-radius:22px;padding:9px 14px;background:var(--surface,#fff);color:var(--text,#222);box-shadow:0 2px 10px #0002;cursor:pointer}
#oy-floating-selector{position:absolute;right:0;bottom:48px;background:var(--surface,#fff);color:var(--text,#222);padding:14px;border:1px solid var(--border,#ccc);border-radius:12px;width:240px;max-width:85vw;max-height:55vh;overflow:auto;box-shadow:0 5px 22px #0002}
#oy-floating-selector[hidden]{display:none}.oy-float-choice{display:block;width:100%;text-align:left;padding:9px;margin:5px 0;background:transparent;color:inherit;border:1px solid var(--border,#ddd);border-radius:8px;cursor:pointer}
.oy-float-note{position:fixed;width:280px;max-width:calc(100vw - 16px);max-height:min(350px,calc(100vh - 120px));background:#fff2a8;color:#302918;z-index:1090;box-shadow:2px 5px 17px #0004;display:flex;flex-direction:column;border-radius:3px;overflow:hidden}
.oy-float-pink{background:#ffcee3}.oy-float-green{background:#d6f7c8}.oy-float-blue{background:#cfeafe}.oy-float-purple{background:#ead6fc}.oy-float-orange{background:#ffe1b4}
.oy-float-handle{display:flex;gap:6px;align-items:center;padding:10px;cursor:grab;touch-action:none;background:#ffffff40}.oy-float-handle strong{flex:1;min-width:0;overflow-wrap:anywhere}.oy-float-handle button{border:1px solid #0002;background:#fff8;border-radius:5px;cursor:pointer;min-width:29px;min-height:29px}
.oy-float-handle:focus-visible{outline:3px solid #245d44;outline-offset:-3px}.oy-float-content{padding:10px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;flex:1;min-height:40px}.oy-float-edit{padding:8px 10px;text-decoration:underline;color:inherit;font-size:12px}.oy-float-minimised .oy-float-content,.oy-float-minimised .oy-float-edit{display:none}
@media(max-width:700px){.oy-float-launcher{right:8px;bottom:8px} .oy-float-note{top:auto!important;bottom:64px!important;left:8px!important;width:calc(100vw - 16px)!important;max-height:35vh;touch-action:auto}.oy-float-handle{cursor:default;touch-action:auto}.oy-float-minimised{max-height:60px}}
/* Availability is itself a panel: no inset horizontal border above its title. */
main.form-wrap #schedule-behaviour > .form-section-heading{border-top:0;padding-top:0}

/* Beta.22 — Calendar visibility (display only). */
.calendar-visibility-panel{margin:10px 0 18px;border:1px solid var(--border-color,#d8e2dc);border-radius:12px;background:var(--surface,#fff);padding:0 15px;}
.calendar-visibility-panel>summary{cursor:pointer;padding:12px 0;font-weight:650;display:flex;align-items:center;gap:8px;}
.calendar-visibility-panel>summary:focus-visible,.calendar-visibility-option:focus-within{outline:2px solid #2c7257;outline-offset:3px;}
.calendar-visibility-count{font-size:.85em;font-weight:500;color:var(--text-muted,#52645a);}
.calendar-visibility-form{padding:0 0 14px;}
.calendar-visibility-types{display:flex;flex-wrap:wrap;gap:8px 18px;margin:4px 0 14px;}
.calendar-visibility-option{display:inline-flex;align-items:center;gap:7px;padding:5px 7px;border-radius:6px;cursor:pointer;min-height:36px;}
.calendar-visibility-option input{width:17px;height:17px;accent-color:#2f6f55;}
.calendar-visibility-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;}
.calendar-visibility-hint{font-size:.85em;opacity:.8;}
@media(max-width:680px){.calendar-visibility-panel{padding:0 11px}.calendar-visibility-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.calendar-visibility-actions .secondary-button{min-width:0}}
/* beta.23.1 waiting-list administrator management */
.waiting-add-panel{margin:18px 0 22px}.waiting-add-panel>summary{display:inline-flex;cursor:pointer;list-style:none}.waiting-add-panel[open]>summary{margin-bottom:12px}.waiting-admin-form{margin:10px 0;padding:14px;border:1px solid var(--border,#dfe5e1);border-radius:12px;display:grid;gap:10px;max-width:520px}.waiting-admin-form label{font-weight:600}.waiting-admin-form input:not([type=checkbox]),.waiting-admin-form textarea{width:100%;max-width:100%;box-sizing:border-box}.waiting-consent{display:flex;align-items:flex-start;gap:10px}.waiting-consent input{margin-top:5px}.waiting-filter-nav{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}.waiting-filter-active{outline:2px solid var(--accent,#47805d);outline-offset:1px}.waiting-admin-row{align-items:flex-start;gap:16px}.waiting-applicant{min-width:0;overflow-wrap:anywhere;flex:1}.waiting-applicant-controls{display:grid;gap:10px;flex-shrink:0;min-width:200px}.waiting-entry-edit>summary,.waiting-entry-delete>summary{cursor:pointer;text-decoration:underline}.waiting-entry-delete>summary{color:#a33742}.waiting-entry-delete form p{margin:0}.waiting-admin-row .invite-row-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:700px){.waiting-admin-row{display:block}.waiting-applicant-controls{margin-top:14px;min-width:0}}

/* beta.23.2 — consistent compact actions in the administrator waiting list. */
.waiting-admin-row .waiting-applicant-controls{display:block;flex:0 1 auto;min-width:0;width:min(100%,440px)}
.waiting-admin-row .waiting-action-bar{display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;gap:6px;width:100%}
.waiting-action-bar>form{margin:0;display:block}
.waiting-action-bar .waiting-mini-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:5px 10px;margin:0;border:1px solid #cad6d0;border-radius:7px;background:#fff;color:#263d32;font:inherit;font-size:.84rem;font-weight:650;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;box-shadow:none}
.waiting-action-bar .waiting-mini-action:hover{background:#eef5f1;border-color:#8ea99b}
.waiting-action-bar .waiting-mini-action:focus-visible{outline:3px solid #2c7257;outline-offset:2px}
.waiting-action-bar .waiting-mini-approve{color:#fff;background:#20684d;border-color:#20684d}
.waiting-action-bar .waiting-mini-approve:hover{background:#17553e;border-color:#17553e}
.waiting-action-bar .waiting-mini-reject,.waiting-action-bar .waiting-mini-delete{color:#9b3039;border-color:#dcb4b9}
.waiting-action-bar .waiting-mini-reject:hover,.waiting-action-bar .waiting-mini-delete:hover{background:#fff2f2;border-color:#b86972}
.waiting-action-bar>details{display:block;min-width:0}
.waiting-action-bar>details>summary{list-style:none}
.waiting-action-bar>details>summary::-webkit-details-marker{display:none}
.waiting-action-bar>details>summary::marker{content:""}
.waiting-action-bar>details[open]{flex-basis:100%;order:10}
.waiting-action-bar>details[open]>summary{margin-bottom:8px}
.waiting-action-bar>details .waiting-admin-form{max-width:100%;margin:0}
@media(max-width:850px){.waiting-admin-row{display:block}.waiting-admin-row .waiting-applicant-controls{width:100%;margin-top:10px}}

.waiting-action-bar>details>summary.waiting-mini-action{text-decoration:none;color:#263d32}
.waiting-action-bar>details>summary.waiting-mini-delete{color:#9b3039}

/* beta.23.3 — compact invitation actions: aligned on desktop, wrapping on narrow cards. */
.admin-tool-card .admin-row > .invite-actions-compact {
  display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-end;
  gap:7px; min-width:0;
}
.admin-tool-card .invite-actions-compact form { display:inline-flex; margin:0; padding:0; }
.admin-tool-card .invite-actions-compact .compact-button {
  display:inline-flex; width:auto; min-height:34px; padding:6px 10px;
  font-size:13px; line-height:1.2; border-radius:7px; white-space:nowrap;
}
.admin-tool-card .invite-actions-compact .invite-revoke-button {
  display:inline-flex; align-items:center; justify-content:center;
  width:auto; min-height:34px; padding:6px 10px;
  border:1px solid #c77c82; border-radius:7px; background:#fff7f7;
  color:#922b35; font:inherit; font-size:13px; font-weight:700; line-height:1.2; cursor:pointer;
}
.admin-tool-card .invite-actions-compact .invite-revoke-button:hover { background:#fce7e9; }
.admin-tool-card .invite-actions-compact :is(button:focus-visible) { outline:3px solid var(--focus-ring); outline-offset:2px; }
@media(max-width:700px) {
  .admin-tool-card .admin-row > .invite-actions-compact { justify-content:flex-start; }
}


/* beta.23.4 — Users & Invitations: scoped responsive layout.
   Keep the compact desktop presentation; avoid off-screen account controls on phones. */
.admin-tool-card .admin-members-list .admin-member-row,
.admin-tool-card .admin-invitations-list .admin-invite-row{box-sizing:border-box;max-width:100%;min-width:0}
.admin-tool-card :is(.admin-member-row,.admin-invite-row) .admin-person-info{min-width:0;flex:1 1 auto}
.admin-tool-card :is(.admin-member-row,.admin-invite-row) .admin-person-info :is(strong,small){min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal}
.admin-tool-card .admin-member-row .admin-account-actions{min-width:0;flex:0 1 auto;display:flex!important;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px!important}
.admin-tool-card .admin-member-row .admin-account-actions>small{flex:0 0 auto;overflow-wrap:anywhere}
.admin-tool-card .admin-member-row .admin-account-actions .compact-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 10px;font-size:13px;line-height:1.25;white-space:normal;text-align:center}
.admin-tool-card .admin-invite-row .invite-actions-compact{max-width:100%}
@media(max-width:760px){
  .admin-tool-page,.admin-tool-card,.admin-tool-card .admin-list{min-width:0;max-width:100%;box-sizing:border-box}
  .admin-tool-card .admin-members-list .admin-member-row,
  .admin-tool-card .admin-invitations-list .admin-invite-row{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:14px;min-width:0;width:100%}
  .admin-tool-card .admin-member-row .admin-person-info,
  .admin-tool-card .admin-invite-row .admin-person-info{width:100%;flex:0 1 auto}
  .admin-tool-card .admin-member-row .admin-account-actions{width:100%;justify-content:flex-start;align-items:center;flex-direction:row;gap:8px!important}
  .admin-tool-card .admin-member-row .admin-account-actions>small{width:100%;flex-basis:100%;margin:0 0 2px}
  .admin-tool-card .admin-member-row .admin-account-actions .compact-button{flex:0 1 auto;max-width:100%;min-height:40px}
  .admin-tool-card .admin-invite-row > .invite-actions-compact{width:100%;justify-content:flex-start;align-items:center;gap:8px}
  .admin-tool-card .admin-invite-row .invite-actions-compact .compact-button,
  .admin-tool-card .admin-invite-row .invite-actions-compact .invite-revoke-button{min-height:40px;white-space:normal;text-align:center}
}
@media(max-width:360px){
  .admin-tool-card .admin-member-row .admin-account-actions .compact-button{font-size:12px;padding:7px 9px}
  .admin-tool-card .admin-invite-row .invite-actions-compact .compact-button{font-size:12px;padding:7px 8px}
}
