.access-shell{min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) 22px 40px;display:grid;align-content:start;justify-items:center}.access-page{width:min(420px,100%);display:grid;gap:16px}.access-page h1{font-size:2.4rem;line-height:1}.access-form{display:grid;gap:14px;margin-top:8px}.access-clerk-actions{display:grid;gap:10px;margin-top:8px}.access-clerk-actions .btn{width:100%}.clerk-user-slot{display:flex;justify-content:center}.access-check{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--ink-soft)}.access-profiles{display:grid;gap:12px}.access-profile{display:grid;justify-items:center;gap:12px;padding:28px 20px;border:0;background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow);font-family:var(--font-display);font-size:1.6rem}.access-avatar{display:grid;place-items:center;color:var(--cream);font-family:var(--font-ui);font-size:1.8rem;font-weight:700}.access-tools{display:flex;justify-content:space-between;margin-top:12px}.access-tool{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--lime);color:var(--olive)}.access-pin{justify-items:center;text-align:center}.access-back{justify-self:start;display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:var(--olive);font-weight:700}.pin-dots{display:flex;gap:14px;margin:8px 0 4px}.pin-dots span{width:12px;height:12px;border-radius:50%;border:2px solid var(--olive)}.pin-dots span.is-on{background:var(--olive)}.pin-dots.is-error span{border-color:var(--accent)}.access-error{color:var(--accent);font-weight:700}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:min(280px,100%);margin-top:8px}.pin-key{aspect-ratio:1;border:0;border-radius:50%;background:var(--lime);color:var(--olive);font-size:1.45rem;font-weight:700}.access-in-app{max-width:560px;display:grid;gap:16px}.access-hub{display:grid;justify-items:center;gap:14px;text-align:center}.access-edit-list{display:grid;gap:14px}.access-edit-card{display:grid;gap:12px;justify-items:start}.access-edit-card .orb{justify-self:center}.form-grid h2{font-size:1.05rem;margin-top:8px}.module-douce-moitie{color-scheme:light;--bg: var(--cream);--bg-deep: var(--lime);--paper: #fffef4;--ink: var(--olive);--ink-soft: #6b6d4a;--line: #d5dbb8;--jacob: var(--olive);--jacob-soft: var(--lime);--laetitia: var(--orange);--laetitia-soft: var(--accent-soft);--tout: #8a243c;--tout-bg: #f7e1e6;--half: #5b6848;--half-bg: var(--lime);--gold: var(--sage);--shadow: 0 14px 40px color-mix(in srgb, var(--olive) 10%, transparent);--radius: 24px;--font-ui: "Manrope", system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif;min-height:100%;color:var(--ink);font-family:var(--font-ui)}.module-douce-moitie *,.module-douce-moitie *:before,.module-douce-moitie *:after{box-sizing:border-box}.module-douce-moitie button,.module-douce-moitie input,.module-douce-moitie textarea{font:inherit;color:inherit}.module-douce-moitie button{cursor:pointer}.module-douce-moitie h1,.module-douce-moitie h2,.module-douce-moitie h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;margin:0}.module-douce-moitie p{margin:0}.module-douce-moitie ul{margin:0;padding:0;list-style:none}.module-douce-moitie .page{width:min(920px,100%);margin:0 auto;padding:20px 16px 120px}.module-douce-moitie .app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.module-douce-moitie .brand{display:flex;align-items:center;gap:12px}.module-douce-moitie .brand__mark{width:38px;height:38px;border-radius:50%;background:linear-gradient(90deg,var(--jacob) 50%,var(--laetitia) 50%);box-shadow:0 8px 18px #2c241629}.module-douce-moitie .brand__name{font-family:var(--font-display);font-size:1.2rem;font-weight:600}.module-douce-moitie .brand__tag{color:var(--ink-soft);font-size:.82rem}.module-douce-moitie .text-link{border:0;background:transparent;color:var(--ink-soft);font-weight:600;padding:8px 0}.module-douce-moitie .month-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:18px}.module-douce-moitie .month-nav__current{font-size:clamp(1.15rem,4vw,1.55rem);text-align:center;line-height:1.2}.module-douce-moitie .month-nav__side{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--ink-soft);font-size:.86rem;padding:8px 0}.module-douce-moitie .month-nav__side--next{justify-content:flex-end}.module-douce-moitie .summary-card{position:relative;overflow:hidden;background:linear-gradient(165deg,#fff8f2,#fde6d8 52%,#f7efe4);color:var(--ink);border-radius:28px;padding:22px 22px 16px;box-shadow:0 16px 36px #c24b321a;margin-bottom:18px;border:1px solid rgba(194,75,50,.12)}.module-douce-moitie .summary-card:before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,var(--jacob),var(--laetitia))}.module-douce-moitie .summary-card.owes-jacob{background:linear-gradient(165deg,#f3faf8,#dceeea 55%,#f7efe4);box-shadow:0 16px 36px #2f6a681a;border-color:#2f6a6824}.module-douce-moitie .summary-card.is-settled{background:linear-gradient(165deg,#f4f8ef,#e4eedc);box-shadow:0 16px 36px #5b68481a;border-color:#5b684829}.module-douce-moitie .summary-card__kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;color:var(--laetitia);margin:6px 0 8px}.module-douce-moitie .summary-card.owes-jacob .summary-card__kicker,.module-douce-moitie .summary-card.owes-jacob .summary-card__amount{color:var(--jacob)}.module-douce-moitie .summary-card.is-settled .summary-card__kicker{color:var(--half)}.module-douce-moitie .summary-card__result{font-size:clamp(1.55rem,6vw,2.15rem);line-height:1.15}.module-douce-moitie .summary-card__amount{color:var(--laetitia)}.module-douce-moitie .summary-card__toggle{margin-top:16px;border:0;background:transparent;color:var(--ink-soft);padding:0;font-weight:500;text-decoration:underline;text-underline-offset:3px}.module-douce-moitie .summary-detail{display:grid;gap:12px;margin-top:16px}.module-douce-moitie .breakdown{background:#fffdf8b8;border-radius:18px;padding:14px 16px}.module-douce-moitie .breakdown h3{font-size:1rem;margin-bottom:10px}.module-douce-moitie .breakdown dl{margin:0;display:grid;gap:8px}.module-douce-moitie .breakdown div{display:flex;justify-content:space-between;gap:12px;font-size:.92rem}.module-douce-moitie .breakdown dt{color:var(--ink-soft)}.module-douce-moitie .breakdown dd{margin:0;font-weight:600}.module-douce-moitie .breakdown__owe{margin-top:12px;font-weight:600}.module-douce-moitie .summary-detail__final{padding:4px 4px 8px;font-weight:700}.module-douce-moitie .recurring-prompt,.module-douce-moitie .expense-column,.module-douce-moitie .recurring-card,.module-douce-moitie .page-title{background:var(--paper);border:1px solid rgba(227,214,194,.9);box-shadow:0 10px 28px #2c24160a}.module-douce-moitie .recurring-prompt{border-radius:var(--radius);padding:16px;margin-bottom:18px}.module-douce-moitie .recurring-prompt__header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.module-douce-moitie .recurring-prompt h2,.module-douce-moitie .expense-column h2,.module-douce-moitie .page-title h1{font-size:1.15rem}.module-douce-moitie .recurring-prompt p,.module-douce-moitie .page-title p,.module-douce-moitie .empty-note,.module-douce-moitie .expense-column__empty{color:var(--ink-soft);font-size:.9rem;line-height:1.4}.module-douce-moitie .recurring-prompt__list{display:grid;gap:8px;margin-bottom:12px}.module-douce-moitie .recurring-prompt__list li{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px 12px;border-radius:16px;background:#f8f3ea}.module-douce-moitie .recurring-prompt__list li.is-added{opacity:.58}.module-douce-moitie .recurring-prompt__list label{display:flex;gap:10px;align-items:center}.module-douce-moitie .recurring-prompt__copy{display:grid}.module-douce-moitie .recurring-prompt__copy small,.module-douce-moitie .recurring-card small{color:var(--ink-soft);font-size:.78rem}.module-douce-moitie .recurring-prompt__amount{width:7.2rem;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;text-align:right}.module-douce-moitie .expense-columns{display:grid;gap:16px}.module-douce-moitie .expense-column{border-radius:var(--radius);padding:16px}.module-douce-moitie .expense-column--jacob{border-top:4px solid var(--jacob)}.module-douce-moitie .expense-column--laetitia{border-top:4px solid var(--laetitia)}.module-douce-moitie .expense-column__header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.module-douce-moitie .expense-column__header p{font-weight:700}.module-douce-moitie .expense-list{display:grid;gap:8px}.module-douce-moitie .expense-item{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:left;border:1px solid transparent;background:#f8f3ea;border-radius:16px;padding:12px}.module-douce-moitie .expense-item.is-tout{background:var(--tout-bg);border-color:#8a243c29}.module-douce-moitie .expense-item__main,.module-douce-moitie .expense-item__meta{display:grid;gap:4px}.module-douce-moitie .expense-item__meta{justify-items:end}.module-douce-moitie .expense-item__desc{display:flex;align-items:center;gap:8px;font-weight:600}.module-douce-moitie .expense-item__thumb{width:34px;height:34px;object-fit:cover;border-radius:8px;flex-shrink:0}.module-douce-moitie .expense-item__date{color:var(--ink-soft);font-size:.78rem}.module-douce-moitie .expense-item__amount{font-weight:700}.module-douce-moitie .split-badge{display:inline-flex;align-items:center;justify-content:center;min-width:3.4rem;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;letter-spacing:.04em}.module-douce-moitie .split-badge--half{background:var(--half-bg);color:var(--half)}.module-douce-moitie .split-badge--full{background:var(--tout);color:#fff7f2}.module-douce-moitie .fab-row,.module-douce-moitie .page>.fab{position:fixed;right:18px;left:auto;bottom:24px;transform:none;width:auto;z-index:46}.module-douce-moitie .fab-row{display:flex;align-items:center;gap:10px}.module-douce-moitie .fab{flex:none;display:grid;place-items:center;width:58px;height:58px;padding:0;border:0;border-radius:50%;background:var(--laetitia);color:#fff7f2;font-weight:700;font-size:2rem;line-height:1;box-shadow:0 12px 28px #c45c3e59}.module-douce-moitie .fab--photo{width:48px;height:48px;background:var(--paper);color:var(--laetitia);box-shadow:var(--shadow)}.module-douce-moitie .fab--photo svg{width:22px;height:22px}@media(max-width:860px){.module-douce-moitie .fab-row,.module-douce-moitie .page>.fab{bottom:calc(var(--mobile-nav) + 16px)}}.module-douce-moitie .sheet-backdrop{position:fixed;inset:0;background:#2c241661;display:flex;align-items:flex-end;justify-content:center;z-index:50;padding:12px}.module-douce-moitie .sheet{width:min(560px,100%);background:var(--paper);border-radius:28px 28px 22px 22px;padding:10px 18px 20px;display:grid;gap:12px;max-height:min(92dvh,820px);overflow:auto}.module-douce-moitie .sheet__handle{width:46px;height:5px;border-radius:99px;background:var(--line);margin:6px auto 2px}.module-douce-moitie .sheet__header{display:flex;justify-content:space-between;align-items:center}.module-douce-moitie .icon-btn{width:36px;height:36px;border:0;border-radius:50%;background:var(--cream);font-size:1.4rem;line-height:1}.module-douce-moitie .field{display:grid;gap:6px;border:0;padding:0;margin:0}.module-douce-moitie .field span,.module-douce-moitie .field legend{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.module-douce-moitie .field input[type=text],.module-douce-moitie .field input:not([type=checkbox]):not([type=date]),.module-douce-moitie .field input[type=date]{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px}.module-douce-moitie .segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}.module-douce-moitie .segmented__btn{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 10px;font-weight:700}.module-douce-moitie .segmented__btn[aria-pressed=true]{background:var(--half);color:#fff7f2;border-color:var(--half)}.module-douce-moitie .segmented__btn.is-jacob[aria-pressed=true]{background:var(--jacob);border-color:var(--jacob)}.module-douce-moitie .segmented__btn.is-laetitia[aria-pressed=true]{background:var(--laetitia);border-color:var(--laetitia)}.module-douce-moitie .segmented__btn.is-tout[aria-pressed=true]{background:var(--tout);border-color:var(--tout)}.module-douce-moitie .form-error{color:var(--tout);font-weight:600;font-size:.9rem}.module-douce-moitie .btn{border:0;border-radius:16px;padding:14px 16px;font-weight:700}.module-douce-moitie .btn:disabled{opacity:.45}.module-douce-moitie .btn--primary{background:var(--laetitia);color:#fff7f2}.module-douce-moitie .btn--secondary{width:100%;background:var(--jacob-soft);color:var(--jacob)}.module-douce-moitie .btn--ghost{background:transparent;color:var(--ink-soft)}.module-douce-moitie .btn--danger{background:var(--tout);color:#fff}.module-douce-moitie .page-title{border-radius:var(--radius);padding:18px;margin-bottom:16px}.module-douce-moitie .page-title p{margin-top:6px}.module-douce-moitie .recurring-list{display:grid;gap:10px}.module-douce-moitie .recurring-card{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;padding:14px 16px;border-radius:18px}.module-douce-moitie .recurring-card span{display:grid;gap:3px}.module-douce-moitie .is-inactive .recurring-card{opacity:.62}.module-douce-moitie .status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:700;background:#efe6d8;color:var(--ink-soft)}.module-douce-moitie .status-pill.is-on{background:var(--half-bg);color:var(--half)}.module-douce-moitie .toggle-row{display:flex;justify-content:space-between;align-items:center;background:#f8f3ea;border-radius:14px;padding:12px 14px;font-weight:600}.module-douce-moitie .toggle-row input{width:18px;height:18px}.module-douce-moitie .btn--photo{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:var(--ink);border:1px solid var(--line);font-size:.9rem}.module-douce-moitie .photo-field{background:#fff6ef;border:1px dashed rgba(194,75,50,.28);border-radius:18px;padding:12px}.module-douce-moitie .photo-field__input{display:none}.module-douce-moitie .photo-empty{display:grid;gap:8px}.module-douce-moitie .photo-empty__title{font-weight:700}.module-douce-moitie .photo-empty__hint{color:var(--ink-soft);font-size:.82rem;line-height:1.35}.module-douce-moitie .photo-empty__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.module-douce-moitie .photo-preview{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center}.module-douce-moitie .photo-preview img{width:72px;height:72px;object-fit:cover;border-radius:14px}.module-douce-moitie .photo-preview__copy{display:grid;gap:4px}.module-douce-moitie .photo-preview__copy p{color:var(--ink-soft);font-size:.82rem;line-height:1.35}@media(min-width:760px){.module-douce-moitie .expense-columns,.module-douce-moitie .summary-detail{grid-template-columns:1fr 1fr}.module-douce-moitie .summary-detail__final{grid-column:1 / -1}.module-douce-moitie .page{padding-top:28px}}.module-cuisine{--cook: var(--accent);--cook-soft: var(--accent-soft);max-width:860px;padding-bottom:88px}.cuisine-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.cuisine-title{font-size:2.2rem}.cuisine-tabs{display:flex;gap:6px;padding:4px;background:color-mix(in srgb,var(--paper) 70%,transparent);border:1px solid var(--line);border-radius:999px}.cuisine-tabs a{padding:10px 16px;border-radius:999px;color:var(--ink-soft);font-weight:600}.cuisine-tabs a.is-active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}@media(max-width:860px){.cuisine-tabs{display:none}}.cuisine-week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.cuisine-week-nav h2{font-size:1.05rem;text-align:center;flex:1}.ghost-btn,.primary-btn,.danger-btn{border:0;border-radius:999px;padding:12px 16px;font-weight:650;min-height:44px}.ghost-btn{background:transparent;color:var(--teal)}.primary-btn{background:var(--cook);color:#fff7f2}.danger-btn{background:transparent;color:#8a243c}.day-block{margin-bottom:18px}.day-block.is-today .day-heading{color:var(--cook)}.day-heading{font-family:var(--font-display);font-size:1.15rem;margin-bottom:8px;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer}.meal-row{display:grid;grid-template-columns:6.5rem 1fr;gap:10px;align-items:start;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:12px 14px;margin-bottom:8px;min-height:52px}.meal-row.is-note{grid-template-columns:1fr}.meal-kind{color:var(--ink-soft);font-size:.92rem;padding-top:2px}.meal-title,.meal-meta{display:block}a.ghost-btn,a.primary-btn{display:inline-flex;align-items:center}.meal-meta{color:var(--ink-soft);font-size:.88rem;margin-top:2px}.recipe-toolbar{display:grid;gap:10px;margin-bottom:16px}.recipe-catalog{margin-bottom:18px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--line);background:var(--lime)}.recipe-catalog.is-open{background:var(--paper)}.recipe-cat-tabs{display:flex;overflow-x:auto}.recipe-cat-tab{flex:1 1 0;min-width:0;border:0;border-radius:0;padding:12px 8px;background:var(--lime);color:var(--ink-soft);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:normal;line-height:1.2}.recipe-cat-tab.is-on{background:var(--paper);color:var(--ink)}.recipe-cat-panel{column-count:3;column-gap:0;background:var(--paper)}.recipe-cat-item{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;margin:0;padding:10px 14px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);text-align:left;font-weight:500;break-inside:avoid}.recipe-cat-item:nth-child(2n){background:color-mix(in srgb,var(--lime) 45%,var(--paper))}.recipe-cat-item.is-on{color:var(--cook);font-weight:700}.recipe-cat-count{color:var(--ink-soft);font-size:.78rem;font-weight:600}.recipe-cat-heading{font-size:1.2rem;margin-bottom:12px}.category-picker{display:grid;gap:16px;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;background:var(--paper)}.category-picker legend{font-family:var(--font-display);font-weight:600;padding:0 6px}.category-picker-section{display:grid;gap:8px}@media(max-width:720px){.recipe-cat-panel{column-count:1}}.recipe-search{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:14px 16px;font-size:1.05rem}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.chip{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 12px;min-height:40px}.chip.is-on{background:var(--cook-soft);border-color:transparent;color:var(--cook);font-weight:650}.recipe-list{display:grid;gap:12px}.recipe-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:22px;color:inherit;text-align:left;align-items:center}.recipe-card-main{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;color:inherit}.recipe-card-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;background:var(--lime)}.recipe-card-photo.is-placeholder{display:grid;place-items:center;color:var(--olive);font-family:var(--font-display);font-size:1.4rem}.recipe-card h2{font-size:1.25rem}.fav-btn{border:0;background:transparent;color:var(--ink-soft);font-size:1.3rem;min-width:44px;min-height:44px}.fav-btn.is-on{color:var(--cook)}.recipe-fab-backdrop{position:fixed;inset:0;background:#2c241647;z-index:45}.recipe-fab-stack{position:fixed;right:18px;bottom:24px;z-index:46;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.recipe-fab-menu{display:grid;gap:8px;justify-items:end}.recipe-fab-menu button{border:0;background:var(--paper);color:var(--ink);border-radius:999px;min-height:48px;padding:12px 18px;font-weight:650;font-size:1rem;box-shadow:var(--shadow)}.recipe-fab-menu button.is-danger{color:#8a243c}.recipe-fab{width:58px;height:58px;border:0;border-radius:50%;background:var(--cook);color:#fff7f2;font-size:2rem;line-height:1;box-shadow:0 12px 28px #c45c3e59}.recipe-hero{display:grid;gap:12px;margin-bottom:20px;padding-bottom:88px}@media(max-width:860px){.recipe-fab-stack{bottom:calc(var(--mobile-nav) + 16px)}}.recipe-hero h1{font-size:2rem;line-height:1.15}.recipe-photo{width:100%;border-radius:22px;max-height:220px;object-fit:cover;background:var(--cook-soft)}.stats-row{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--ink-soft)}.servings-stepper{display:inline-flex;align-items:center;gap:10px;margin:8px 0 20px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px}.servings-stepper button{width:44px;height:44px;border:0;border-radius:50%;background:var(--cook-soft);color:var(--cook);font-size:1.3rem}.recipe-section{margin-bottom:28px}.recipe-section h2{font-size:1.1rem;margin-bottom:12px}.recipe-section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.recipe-section-head h2{margin-bottom:0}.cook-checks{display:grid;gap:4px;margin:0;padding:0;list-style:none}.cook-checks label{display:grid;grid-template-columns:1.4rem 1fr;align-items:start;gap:12px;padding:10px 4px;cursor:pointer;font-size:1.08rem;line-height:1.5}.cook-checks input{appearance:none;width:22px;height:22px;margin-top:2px;border:1.5px solid var(--line);border-radius:6px;background:var(--paper);cursor:pointer}.cook-checks input:checked{border-color:var(--cook);background:var(--cook);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff7f2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E");background-size:14px;background-position:center;background-repeat:no-repeat}.cook-checks label.is-done span{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--olive) 35%,transparent)}.recipe-checks label{padding:10px 0;border-bottom:1px solid var(--line)}.cook-mode{position:fixed;inset:0;z-index:80;overflow:auto;background:var(--cream);color:var(--olive)}.cook-mode-bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:center;min-height:52px;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:color-mix(in srgb,var(--cream) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.cook-mode-kicker{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.cook-mode-close{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--olive)}.cook-mode-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.cook-mode-body{width:min(1100px,100%);margin:0 auto;padding:8px 24px 48px}.cook-mode-body h1{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.15;margin:8px 0 6px}.cook-mode-servings{margin:0 0 28px;color:var(--ink-soft)}.cook-mode-grid{display:grid;grid-template-columns:minmax(16rem,.85fr) minmax(0,1.15fr);gap:40px 48px;align-items:start}.cook-mode h2{font-size:1.15rem;margin:0 0 8px}.cook-mode .cook-checks label{font-size:1.12rem;padding:12px 0}@media(max-width:760px){.cook-mode-body{padding:4px 18px calc(28px + env(safe-area-inset-bottom))}.cook-mode-grid{grid-template-columns:1fr;gap:28px}}.ingredient-line{display:grid;grid-template-columns:7.5rem 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:1.08rem}.ingredient-qty{color:var(--ink-soft)}.step-item{display:grid;grid-template-columns:2rem 1fr;gap:10px;margin-bottom:16px;font-size:1.12rem;line-height:1.45}.step-num{font-family:var(--font-display);color:var(--cook)}.source-link{color:var(--teal);font-weight:600}.form-grid{display:grid;gap:14px}.form-grid label,.sheet-form label{display:grid;gap:6px;font-weight:600}.form-grid input,.form-grid textarea,.sheet-form input,.sheet-form select,.sheet-form textarea{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:12px 14px;font-size:1.05rem}.ing-row,.step-row{display:grid;gap:8px;grid-template-columns:4.5rem 5rem 1fr 1fr auto;align-items:center}.step-row{grid-template-columns:1fr auto}.import-grid{display:grid;gap:10px}.import-url-form{display:grid;gap:12px;margin-top:18px}.import-error{color:var(--cook);font-weight:700}.import-card{display:grid;gap:4px;padding:18px;border-radius:20px;border:1px solid var(--line);background:var(--paper);text-align:left;min-height:76px}.import-card strong{font-size:1.1rem}.import-card.is-soon{opacity:.62}.sheet{width:min(560px,100%);background:var(--paper);border-radius:28px 28px 22px 22px;padding:12px 18px 20px;display:grid;gap:12px;max-height:min(90dvh,820px);overflow:auto}.sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.actions-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}@media(max-width:860px){.ing-row{grid-template-columns:1fr 1fr}.ing-row input:nth-child(3),.ing-row .name-field{grid-column:1 / -1}}.module-lists{max-width:720px;padding-bottom:88px}.lists-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.lists-title{font-size:2.2rem;margin-bottom:6px}.lists-back{display:inline-block;color:var(--teal);font-weight:600;margin-bottom:8px}.lists-filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px}.lists-store-link{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;border:1px solid var(--line);background:var(--paper);border-radius:18px;box-shadow:var(--shadow);color:inherit}.lists-store-icon{width:28px;height:28px;border-radius:9px}.lists-store-name{font-weight:650}.lists-store-count{color:var(--ink-soft);font-variant-numeric:tabular-nums}.quick-add{display:flex;gap:8px;margin:18px 0 22px}.quick-add button,.lists-primary,.lists-ghost,.lists-danger{border:0;border-radius:999px;min-height:48px;padding:12px 16px;font-weight:650}.lists-primary,.quick-add button{background:var(--accent);color:#fff7f2}.lists-primary:disabled{opacity:.45}.lists-ghost{background:transparent;color:var(--teal)}.lists-danger{background:transparent;color:#8a243c}.lists-chip{border:1px solid var(--line);background:var(--paper);border-radius:999px;min-height:40px;padding:8px 14px;font-weight:600;font-size:.88rem}.lists-chip.is-on{background:var(--teal-soft);border-color:var(--teal);color:var(--teal)}.grocery-group{margin-bottom:22px}.grocery-group h2{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}.grocery-row{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:4px;width:100%;min-height:56px;padding:8px 4px;border-bottom:1px solid var(--line);background:transparent;text-align:left}.grocery-row.is-checked .grocery-text{opacity:.45;text-decoration:line-through}.grocery-check{width:48px;height:48px;border:0;background:transparent;display:grid;place-items:center}.grocery-check span{width:26px;height:26px;border:2px solid var(--ink-soft);border-radius:8px}.grocery-check.is-on span{background:var(--teal);border-color:var(--teal)}.grocery-text{border:0;background:transparent;text-align:left;width:100%;min-height:48px}.grocery-source{display:block;color:var(--ink-soft);font-size:.85rem;margin-top:2px}.grocery-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.pick-row{display:grid;grid-template-columns:48px 1fr;align-items:start;gap:4px;width:100%;min-height:52px;padding:8px 0;border:0;background:transparent;text-align:left;font-size:1.08rem}.sheet-actions,.chip-row{display:flex;flex-wrap:wrap;gap:8px}.lists-store-editor{display:grid;gap:14px}.lists-store-row{display:grid;gap:8px}.lists-store-row input{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;font-size:1.05rem}.lists-color-picks{display:flex;gap:8px}.lists-color-dot{width:22px;height:22px;border:2px solid transparent;border-radius:50%;padding:0}.lists-color-dot.is-on{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--ink)}.module-on-bouge{--sport: var(--sage);--sport-deep: var(--olive);--surface: var(--paper);--surface-solid: var(--paper);--accent-deep: var(--olive);--ok: #5b6848;--warn: var(--orange);max-width:960px;padding-bottom:88px;position:relative;min-height:100%;color:var(--ink);font-family:var(--font-ui)}.module-on-bouge *,.module-on-bouge *:before,.module-on-bouge *:after{box-sizing:border-box}.module-on-bouge button,.module-on-bouge input{font:inherit}.module-on-bouge button{cursor:pointer}.app{position:relative;min-height:100%;max-width:none;margin:0;padding:0 0 32px}.bg-glow,.bg-grid{display:none}.onbouge-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.onbouge-title{font-size:2.2rem}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{display:none}.brand-name{margin:0;font-family:var(--font-display);font-size:2.2rem;font-weight:600;letter-spacing:-.03em;line-height:1}.brand-tag{margin:6px 0 0;color:var(--ink-soft);font-size:.92rem}.week-stat{display:flex;flex-direction:column;align-items:flex-end;padding:10px 16px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper)}.stat-value{font-family:var(--font-display);font-size:1.6rem;font-weight:600;line-height:1;color:var(--accent)}.stat-label{color:var(--ink-soft);font-size:.78rem}.tabs,.onbouge-tabs{display:flex;gap:6px;margin-bottom:22px;padding:4px;border-radius:999px;background:color-mix(in srgb,var(--paper) 70%,transparent);border:1px solid var(--line);width:fit-content}.tab{border:0;background:transparent;color:var(--ink-soft);padding:10px 16px;border-radius:999px;font-weight:600}.tab:hover{color:var(--ink)}.tab.is-active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.main{animation:rise .55s ease .14s both}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;font-weight:600;color:var(--ink-soft)}.panel-header h2,.modal-header h2{margin:0;font-family:var(--font-display);font-size:clamp(1.45rem,3vw,1.9rem);letter-spacing:-.03em;text-transform:capitalize}.muted{color:var(--ink-soft)}.month-nav{display:flex;align-items:center;gap:8px}.icon-btn,.ghost-btn,.primary-btn,.danger-btn,.check-btn{border-radius:var(--radius-pill);border:0;min-height:44px;font-weight:650}.icon-btn{width:40px;height:40px;min-height:40px;background:var(--paper);font-size:1.2rem;border:1px solid var(--line)}.ghost-btn{background:transparent;color:var(--olive);padding:10px 16px}.ghost-btn.full{width:100%;margin-top:8px}.ghost-btn.compact,.primary-btn.compact{padding:8px 12px;font-size:.9rem;min-height:40px}.primary-btn{background:var(--accent);color:#fff7f2;padding:11px 16px}.primary-btn:hover{filter:brightness(.97)}.danger-btn{background:transparent;color:#8a243c;padding:11px 14px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.cal-weekday{text-align:center;font-size:.78rem;font-weight:700;color:var(--ink-soft);padding-bottom:4px}.cal-day{min-height:72px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:10px;text-align:left;transition:border-color .15s,background .15s,transform .15s}.cal-day:hover{transform:translateY(-1px);border-color:#1a1c1a38}.cal-day.is-outside{opacity:.38}.cal-day.is-today .cal-day-num{color:var(--accent)}.cal-day.is-selected{background:var(--olive);border-color:var(--olive);color:var(--cream)}.cal-day.is-selected .cal-day-num{color:var(--cream)}.cal-day-num{font-family:var(--font-display);font-weight:700;font-size:1.05rem}.cal-dots{display:flex;gap:4px;flex-wrap:wrap}.dot{width:9px;height:9px;border-radius:50%;border:2px solid var(--dot, var(--accent));background:transparent}.dot.kind-full{background:var(--dot, var(--accent))}.dot.kind-short{background:conic-gradient(var(--dot, var(--accent)) 0 180deg,transparent 180deg 360deg)}.dot.kind-planned{background:transparent}.dot.kind-skipped{opacity:.35;border-style:dashed}.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin:-6px 0 14px;font-size:.78rem;color:var(--ink-soft)}.cal-legend span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:50%;border:2px solid var(--accent);display:inline-block}.legend-dot.full{background:var(--accent)}.legend-dot.short{background:conic-gradient(var(--accent) 0 180deg,transparent 180deg 360deg)}.legend-dot.planned{background:transparent}.calendar-layout{display:grid;grid-template-columns:1.35fr .9fr;gap:18px;align-items:start}.day-side .panel{position:sticky;top:18px}.empty-state{padding:18px 4px 8px}.empty-state p{margin:0 0 6px}.template-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--paper);border-radius:var(--radius-pill);padding:8px 14px;min-height:40px;color:var(--ink-soft);font-weight:600}.chip-dot{width:10px;height:10px;border-radius:50%;background:var(--chip)}.session-list{display:flex;flex-direction:column;gap:14px}.session-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper)}.session-card-main{width:100%;display:flex;gap:0;border:0;background:transparent;text-align:left;padding:0}.session-card-main.static{cursor:default}.session-accent{width:8px;flex-shrink:0}.session-body{flex:1;padding:16px 16px 8px}.session-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.session-top h3{margin:0;font-family:var(--font-display);font-size:1.25rem}.badge{font-size:.75rem;font-weight:700;padding:4px 8px;border-radius:999px;background:var(--bg-deep);color:var(--ink-soft)}.badge.status-done{background:var(--lime);color:var(--olive)}.badge.status-skipped{background:#1a1c1a0f}.exercise-preview{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:12px 0 0;padding:0}.exercise-preview li{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;padding:4px 9px 4px 4px;border-radius:999px;background:var(--bg);color:var(--ink-soft)}.exercise-preview li.more-chip{padding:5px 9px}.exercise-img-wrap{position:relative;flex-shrink:0}.exercise-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;background:var(--lime)}.exercise-img.fallback{display:grid;place-items:center;font-family:var(--font-display);font-weight:700;color:var(--ink-soft);background:var(--lime);width:100%;height:100%}.exercise-img-label{position:absolute;left:6px;bottom:6px;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--olive) 78%,transparent);color:var(--cream);font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.thumb-xs .exercise-img,.thumb-xs .exercise-img.fallback{width:28px;height:28px;border-radius:50%}.thumb-sm .exercise-img,.thumb-sm .exercise-img.fallback{width:44px;height:44px;border-radius:10px}.exercise-demo{display:grid;gap:8px;flex-shrink:0}.exercise-demo[data-count="1"]{grid-template-columns:1fr}.exercise-demo[data-count="2"],.exercise-demo[data-count="3"],.exercise-demo[data-count="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-lg .exercise-img-wrap{aspect-ratio:3 / 4;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--lime);min-width:110px}.demo-md .exercise-img-wrap{width:72px;height:96px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.physio-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.physio-card-head h3{margin:0;font-family:var(--font-display);font-size:1.15rem;letter-spacing:-.02em}.ex-num{color:var(--accent)}.physio-card-body{display:grid;grid-template-columns:minmax(200px,.9fr) 1.1fr;gap:14px;margin-bottom:14px;align-items:start}.physio-instructions{margin:0 0 12px;color:var(--ink-soft);font-size:.92rem;line-height:1.45}.physio-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;border-radius:12px;background:var(--bg);border:1px solid var(--line)}.physio-metrics>div{display:flex;flex-direction:column;gap:2px}.metric-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.physio-metrics strong{font-family:var(--font-display);font-size:1.15rem}.program-exercises{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}.program-exercises li{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:.92rem}.picker-meta{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1}.session-actions{display:flex;gap:8px;padding:0 16px 14px 24px}.program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.program-card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:var(--paper);display:flex;flex-direction:column;gap:12px}.program-top{display:flex;align-items:center;gap:10px}.program-swatch{width:14px;height:14px;border-radius:4px}.program-card h3{margin:0;font-family:var(--font-display);font-size:1.3rem}.program-source{margin:2px 0 0;font-size:.8rem}.program-swatch-darebee{background:var(--accent)}.program-external-desc{margin:0;font-size:.85rem;line-height:1.4}.external-import-block{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}.compact-header h3{margin:0;font-family:var(--font-display);font-size:1.25rem}.programs-filters{margin:14px 0 8px}.programs-filter-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.programs-filter-row select{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;background:var(--surface-solid);width:100%}.programs-count{margin:0 0 12px;font-size:.85rem}.programs-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.panel-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.catalog-layout{display:flex;flex-direction:column;gap:16px}.catalog-filters{padding:0;border:0;background:transparent;max-height:none;position:static;overflow:visible}.catalog-filters-panel{padding:10px 14px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.catalog-filters-panel>summary,.catalog-filter-group>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px}.catalog-filters-panel>summary::-webkit-details-marker,.catalog-filter-group>summary::-webkit-details-marker{display:none}.catalog-filters-panel>summary:after,.catalog-filter-group>summary:after{content:"";width:.45em;height:.45em;border-right:2px solid var(--olive);border-bottom:2px solid var(--olive);transform:rotate(45deg);transition:transform .15s ease;flex-shrink:0}.catalog-filters-panel[open]>summary:after,.catalog-filter-group[open]>summary:after{transform:rotate(-135deg);margin-top:6px}.catalog-filters-title{margin:0;font-size:.85rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--olive)}.catalog-filter-group{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line)}.catalog-filter-group summary{margin:0;font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.catalog-filter-group ul{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.catalog-filter-group label{display:flex;align-items:center;gap:8px;font-size:.92rem;text-transform:lowercase;cursor:pointer}.catalog-filter-group input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);flex-shrink:0}.catalog-main{min-width:0}.equipment-fieldset{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}.equipment-fieldset legend{padding:0 4px;font-size:.78rem;font-weight:700;color:var(--ink-soft)}.equipment-checks{display:flex;flex-wrap:wrap;gap:8px 12px}.equipment-checks label{display:flex;align-items:center;gap:6px;font-size:.85rem;text-transform:lowercase}@media(max-width:860px){.modal-backdrop:not(.workout-backdrop),.sheet-overlay{padding-bottom:calc(var(--mobile-nav) + 20px + env(safe-area-inset-bottom))}.modal:not(.workout-modal){max-height:calc(100dvh - var(--mobile-nav) - 36px - env(safe-area-inset-bottom))}}.exercise-form{margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-solid);display:flex;flex-direction:column;gap:10px}.exercise-form h3{margin:0;font-family:var(--font-display);font-size:1.15rem}.image-drop{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px dashed var(--sage);border-radius:16px;background:var(--cream);cursor:pointer}.image-drop.is-dragging{border-color:var(--orange);background:var(--lime)}.image-drop-hint{margin:0;font-size:.85rem}.image-drop-slot{display:flex;flex-direction:column;align-items:stretch;gap:4px}.exercise-form select,.program-picker input[type=search]{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;background:var(--surface-solid);width:100%}.exercise-desc{margin:0;font-size:.88rem;line-height:1.4;white-space:pre-wrap}.exercise-keywords{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.exercise-keywords li{padding:4px 10px;border-radius:var(--radius-pill);background:var(--lime);color:var(--olive);font-size:.78rem;font-weight:650}.program-picker{margin:12px 0 16px;display:flex;flex-direction:column;gap:8px}.program-picker h3,.program-editor-modal h3{margin:0;font-family:var(--font-display);font-size:1.1rem}.program-picker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:200px;overflow:auto}.program-picker-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px}.program-picker-list li p{margin:2px 0 0;font-size:.8rem}.color-picker{margin:8px 0 12px}.color-picker-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.color-dot{width:28px;height:28px;border-radius:999px;border:2px solid transparent;padding:0}.color-dot.is-active{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface-solid)}.editor-row-actions{display:flex;gap:6px;flex-wrap:wrap}.exercise-library{margin:0 0 22px}.exercise-library-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.exercise-catalog-list{max-height:none}.exercise-library-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface-solid);display:flex;flex-direction:column;gap:10px}button.exercise-library-item{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.exercise-library-item.is-just-added{border-color:var(--orange);background:var(--lime)}.exercise-library-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.exercise-library-head p{margin:2px 0 0;font-size:.8rem}.exercise-library-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px}.exercise-library-slot{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.exercise-library-slot-actions{display:flex;flex-wrap:wrap;gap:6px}.thumb-md .exercise-img,.thumb-md .exercise-img.fallback{width:100%;max-width:160px;aspect-ratio:1;object-fit:cover;border-radius:12px}.exercise-row{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:14px;align-items:start}.exercise-row:has(.has-pair){grid-template-columns:minmax(200px,280px) 1fr}.exercise-thumbs{display:grid;grid-template-columns:1fr;gap:8px}.exercise-thumbs.has-pair{grid-template-columns:1fr 1fr}.exercise-row-body{display:flex;flex-direction:column;gap:8px;min-width:0}.thumb-movement .exercise-img,.thumb-movement .exercise-img.fallback{width:100%;aspect-ratio:4 / 3;object-fit:contain;border-radius:12px;background:var(--paper);border:1px solid var(--line)}@media(max-width:640px){.exercise-row,.exercise-row:has(.has-pair){grid-template-columns:1fr}}.modal-backdrop{--surface: var(--paper);--surface-solid: var(--paper);position:fixed;inset:0;background:color-mix(in srgb,var(--olive) 48%,transparent);display:grid;place-items:center;padding:20px;z-index:80;animation:fade .2s ease}.modal{width:min(720px,100%);max-height:min(90vh,900px);overflow:auto;background:var(--surface-solid);border-radius:22px;border:1px solid var(--line);box-shadow:var(--shadow);padding:22px;animation:pop .25s ease}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.progress-bar{height:8px;border-radius:999px;background:var(--bg-deep);overflow:hidden}.progress-fill{height:100%;border-radius:inherit;transition:width .25s ease}.progress-label{margin:8px 0 16px;font-size:.88rem}.exercise-editor-list{display:flex;flex-direction:column;gap:16px}.exercise-block{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--paper)}.session-modal{width:min(960px,100%)}.program-editor-modal{display:flex;flex-direction:column;max-height:min(90dvh,900px)}.program-editor-layout{display:flex;flex-direction:column-reverse;gap:16px;min-height:0;flex:1}.program-canvas-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.program-canvas-actions h3{margin:0}.circuit-card{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px dashed var(--sage);border-radius:18px;background:color-mix(in srgb,var(--lime) 45%,var(--paper))}.circuit-card.is-drop,.circuit-drop-end.is-drop{border-color:var(--orange);background:var(--lime)}.circuit-head{display:grid;grid-template-columns:1fr 5.5rem 6.5rem;gap:8px;align-items:end}.circuit-head label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;font-weight:700;color:var(--ink-soft)}.circuit-head input{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-weight:650;background:var(--paper)}.circuit-slot{flex:none;min-width:2rem;font-weight:800;color:var(--orange)}.circuit-drop-hint,.circuit-drop-end{margin:0;padding:12px;border-radius:14px;border:1px dashed var(--line);text-align:center;font-size:.85rem;color:var(--ink-soft)}.program-picker-list li{cursor:grab}.program-drag-hint{margin:0 0 8px;font-size:.82rem}@media(max-width:640px){.circuit-head{grid-template-columns:1fr 1fr}.circuit-head>input:first-child{grid-column:1 / -1}}@media(min-width:860px){.program-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);align-items:start;overflow:hidden}.program-editor-canvas,.program-editor-layout .program-picker{min-height:0;max-height:min(58dvh,560px);overflow:auto}}.program-editor-modal .modal-footer{position:sticky;bottom:0;z-index:2;margin-top:12px;padding-top:12px;background:var(--surface-solid)}.sets-table{display:flex;flex-direction:column;gap:6px}.sets-row{display:grid;grid-template-columns:48px 1fr 1fr 44px;gap:8px;align-items:center}.sets-row.head{font-size:.75rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.sets-row input{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:var(--bg)}.sets-row.done input{opacity:.7}.check-btn{width:40px;height:40px;background:var(--bg);font-weight:700}.check-btn.is-done{background:var(--olive);border-color:var(--olive);color:var(--cream)}.add-exercise-picker{margin-top:12px;display:grid;gap:8px;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:14px;padding:10px}.picker-item{display:flex;align-items:center;justify-content:flex-start;gap:12px;border:0;background:var(--bg);border-radius:10px;padding:8px 10px;text-align:left}.modal-footer{display:flex;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap}.footer-right{display:flex;gap:8px;flex-wrap:wrap}.app-footer{margin-top:28px;display:flex;justify-content:space-between;color:var(--ink-soft);font-size:.82rem}.week-goal-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:.82rem;font-weight:600;color:var(--ink-soft)}.goal-check{color:var(--ok);font-weight:800}.dot.kind-rescheduled{opacity:.3;border-style:dashed}.checkin-block{margin:0 16px 12px 24px;padding:14px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--sage) 22%,var(--lime));border:1px solid color-mix(in srgb,var(--sage) 45%,transparent)}.time-q{margin-top:12px}.version-preview{margin:12px 0 0;font-size:.9rem;font-weight:600;color:var(--ink)}.adapt-warn{color:#8a243c;font-weight:600;font-size:.88rem}.date-pick{display:flex;flex-direction:column;gap:6px;margin-top:10px}.date-pick input{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.week-plan-grid{display:flex;flex-direction:column;gap:8px}.week-plan-row{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center}.week-plan-day{font-weight:700;font-size:.92rem}.week-plan-row select{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-solid);font:inherit}.calendar-with-plan{grid-template-columns:1fr}.plan-column{display:flex;flex-direction:column;gap:18px}@media(min-width:960px){.calendar-with-plan{grid-template-columns:.95fr 1.05fr .9fr}}.ext-add{display:grid;gap:8px;margin-bottom:10px}.ext-add input,.ext-field input,.ext-field textarea,.ext-filter-row input{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;background:var(--surface-solid);width:100%}.ext-label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:700;color:var(--ink-soft)}.ext-preview{margin:12px 0 16px;padding:14px;border:1px solid color-mix(in srgb,var(--sage) 40%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--sage) 12%,var(--paper));display:flex;flex-direction:column;gap:10px}.ext-preview h3{margin:0;font-family:var(--font-display)}.ext-url{word-break:break-all;font-size:.8rem}.ext-field{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:700;color:var(--ink-soft)}.ext-preview-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.ext-filters{margin:8px 0 12px}.ext-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ext-meta{margin:4px 0 0;font-size:.82rem}.ext-import{margin-bottom:12px}.ext-batch{margin:12px 0 16px;padding:14px;border:1px solid color-mix(in srgb,var(--sage) 40%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--sage) 12%,var(--paper));display:flex;flex-direction:column;gap:12px}.ext-batch-head h3{margin:0 0 4px;font-family:var(--font-display);font-size:1.1rem}.ext-batch-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto}.ext-batch-row{display:grid;grid-template-columns:1.5rem 1fr;gap:8px;align-items:start;font-size:.9rem}.ext-batch-mark{font-weight:700;line-height:1.4}.ext-batch-row.status-done .ext-batch-mark{color:var(--ok)}.ext-batch-row.status-error .ext-batch-mark{color:#a33}.ext-batch-row.status-running .ext-batch-mark{color:var(--accent-deep)}.ext-batch-error{margin:2px 0 0;font-size:.8rem;color:#a33}.ext-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ext-list li{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}.ext-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.link-btn{display:inline-flex;align-items:center;text-decoration:none}.program-actions{display:flex;gap:8px;flex-wrap:wrap}.editor-list{display:flex;flex-direction:column;gap:12px;margin-top:14px;max-height:55vh;overflow:auto}.editor-row{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.editor-fields{flex:1;display:flex;flex-direction:column;gap:8px}.editor-fields label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:700;color:var(--ink-soft)}.editor-fields select,.editor-fields input{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;color:var(--ink);font-weight:600}.editor-nums{display:grid;grid-template-columns:1fr 1fr;gap:8px}.capitalize-day{text-transform:capitalize}.energy-card{display:none}.energy-question{margin:0 0 10px;font-family:var(--font-display);font-size:1.15rem}.energy-options{display:flex;flex-wrap:wrap;gap:8px}.energy-btn{border:1px solid var(--line);background:var(--surface-solid);border-radius:999px;padding:9px 14px;font-weight:600;color:var(--ink-soft)}.energy-btn.is-active{background:var(--paper);border-color:var(--accent);color:var(--accent)}.energy-hint{margin:10px 0 0;font-size:.88rem}.text-btn{border:0;background:transparent;color:var(--ink-soft);font-weight:600;padding:8px 4px;text-decoration:underline;text-underline-offset:3px}.text-btn.compact{font-size:.9rem}.min-reached{margin:6px 0 0;color:var(--ok);font-weight:700;font-size:.9rem}.express-now-btn{margin-top:4px}.programs-intro{margin:-6px 0 16px}.catalog-transfer{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}.sheet-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--olive) 45%,transparent);display:flex;align-items:flex-end;justify-content:center;z-index:80;padding:16px;animation:fade .2s ease}.sheet{width:min(480px,100%);background:var(--surface-solid);border-radius:22px 22px 18px 18px;padding:20px;box-shadow:var(--shadow);animation:pop .22s ease}.sheet h3{margin:0 0 8px;font-family:var(--font-display)}.exercise-edit-sheet{width:min(520px,100%);max-height:min(88vh,740px);overflow:auto}.exercises-panel{display:flex;flex-direction:column;gap:12px}.exercises-panel.is-detail{padding-bottom:88px}.exercises-panel .exercise-desc{white-space:pre-wrap}.exercise-detail-notice{margin:0;padding:10px 12px;border-radius:14px;background:var(--lime);font-weight:650}.exercise-pick{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.exercise-fab-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--olive) 28%,transparent);z-index:81}.app-fab-stack{display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:82}.exercise-fab-menu{display:grid;gap:8px;justify-items:end}.exercise-fab-menu button{border:0;background:var(--paper);color:var(--olive);border-radius:999px;min-height:48px;padding:12px 18px;font-weight:650;font-size:1rem;box-shadow:var(--shadow)}.sheet-option{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:14px;margin-top:8px;text-align:left;font-weight:600}.sheet-option.danger{color:#8a243c}.intensity-option strong{font-family:var(--font-display);font-size:1.05rem}.full-btn{width:100%;margin-top:10px}.workout-backdrop{align-items:stretch;padding:0}.workout-modal{width:min(560px,100%);max-height:100dvh;margin:0 auto;border-radius:0;min-height:100dvh;display:flex;flex-direction:column;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));overflow:auto}.workout-demo{width:100%;gap:10px}.workout-demo .exercise-img-wrap{min-width:0;width:100%;height:clamp(180px,42vw,280px);aspect-ratio:auto;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--paper)}.workout-demo[data-count="1"] .exercise-img-wrap{height:clamp(220px,58vw,360px)}.workout-demo .exercise-img,.workout-demo .exercise-img.fallback{width:100%;height:100%;object-fit:contain;object-position:center;background:var(--paper)}.workout-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.workout-progress-mini{display:flex;flex-direction:column;align-items:center;font-size:.8rem;font-weight:700;color:var(--ok)}.workout-step{margin:4px 0 0;color:var(--ink-soft);font-size:.88rem;font-weight:600}.workout-title{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,5vw,2rem);letter-spacing:-.03em}.workout-hint{font-size:.86rem}.current-set-card{padding:14px;border-radius:16px;background:var(--bg);border:1px solid var(--line)}.current-set-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.current-set-inputs label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}.current-set-inputs input{border:1px solid var(--line);border-radius:12px;padding:12px;font-size:1.25rem;font-weight:700;font-family:var(--font-display)}.last-perf{margin:10px 0 0;font-size:.88rem;color:var(--accent-deep);font-weight:600}.set-done-btn{width:100%;padding:18px;font-size:1.15rem;border-radius:16px}.roadmap{margin-top:auto;padding-top:12px;font-size:.78rem;color:var(--ink-soft);line-height:1.5}.roadmap .is-current{color:var(--ink);font-weight:700}.rest-modal,.done-modal{align-items:center;text-align:center;justify-content:center}.rest-timer{margin:8px 0 0;font-family:var(--font-display);font-size:5rem;line-height:1;color:var(--accent)}.done-banner{margin:8px 0;font-family:var(--font-display);font-size:1.4rem;color:var(--ok)}.replace-list{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}@keyframes rise{0%{opacity:0}to{opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:860px){.calendar-layout{grid-template-columns:1fr}.day-side .panel{position:static}.week-stat{display:none}.tabs{width:100%}.tab{flex:1;padding:10px 8px;font-size:.9rem}.cal-day{min-height:58px;padding:8px}}@media(max-width:720px){.physio-card-body{grid-template-columns:1fr}.demo-lg .exercise-img-wrap{min-width:0}}@media(max-width:520px){.app{padding:0 0 24px}.sets-row{grid-template-columns:36px 1fr 1fr 40px}.modal-footer{flex-direction:column}.footer-right{width:100%}.footer-right .primary-btn,.footer-right .ghost-btn{flex:1}}.ghost-btn.is-selected{background:var(--lime);color:var(--olive)}.wger-overlay{align-items:stretch;padding:12px;z-index:90}.wger-sheet{width:min(760px,100%);max-height:100%;margin:auto;display:flex;flex-direction:column;gap:10px;overflow:hidden;background:var(--cream)}.wger-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wger-head h3,.wger-intro{margin:0}.wger-chips{display:flex;flex-wrap:wrap;gap:6px}.wger-toggles{display:flex;flex-wrap:wrap;gap:14px;font-size:.9rem}.wger-toggles label{display:flex;align-items:center;gap:6px}.wger-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.9fr);gap:12px;min-height:0;flex:1;overflow:hidden}.wger-list{list-style:none;margin:0;padding:0;overflow:auto;display:flex;flex-direction:column;gap:8px}.wger-card{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:8px 10px}.wger-card.is-open{border-color:var(--orange);background:var(--lime)}.wger-thumb{width:56px;height:56px;border-radius:50%;object-fit:cover;background:var(--sage);flex-shrink:0}.wger-thumb.is-empty{display:grid;place-items:center;font-family:var(--font-display);color:var(--olive)}.wger-card-body{display:flex;flex-direction:column;gap:2px;min-width:0}.wger-card-body strong{font-size:.95rem}.wger-detail{overflow:auto;padding:12px;border-radius:18px;background:var(--paper);border:1px solid var(--line)}.wger-detail h4{margin:0 0 4px;font-family:var(--font-display)}.wger-hero{width:96px;height:96px;border-radius:50%;object-fit:cover;display:block;margin-bottom:10px}.wger-muscle{width:120px;height:auto;display:block;margin:8px 0}.wger-instructions{white-space:pre-wrap;font-size:.92rem;line-height:1.45}.wger-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}@media(max-width:720px){.wger-body{grid-template-columns:1fr}.wger-detail{max-height:38vh}}} .module-tasks{max-width:720px;padding-bottom:88px}.tasks-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.tasks-title{font-size:2.2rem;margin-bottom:6px}.quick-add{display:flex;gap:8px;margin:18px 0 16px}.quick-add input{flex:1;min-height:48px;border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:12px 16px;font-size:1.1rem}.tasks-primary,.tasks-ghost,.tasks-danger,.quick-add button{border:0;border-radius:999px;min-height:48px;padding:12px 16px;font-weight:650}.tasks-primary,.quick-add button{background:var(--accent);color:#fff7f2}.tasks-ghost{background:transparent;color:var(--teal)}.tasks-danger{background:transparent;color:#8a243c}.tasks-back{display:inline-block;color:var(--teal);font-weight:600;margin-bottom:8px}.tasks-filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px}.tasks-catalog{display:grid;gap:8px;margin:18px 0 8px}.tasks-list-link{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;border:1px solid var(--line);background:var(--paper);border-radius:18px;box-shadow:var(--shadow);color:inherit}.tasks-list-icon{width:28px;height:28px;border-radius:9px}.tasks-list-name{font-weight:650}.tasks-list-count{color:var(--ink-soft);font-variant-numeric:tabular-nums}.tasks-choice-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.tasks-chip{flex:none;border:1px solid var(--line);background:var(--paper);border-radius:999px;min-height:40px;padding:8px 14px;font-weight:600;font-size:.88rem}.tasks-chip.is-on{background:var(--teal-soft);border-color:var(--teal);color:var(--teal)}.tasks-group{margin-bottom:22px}.tasks-group h2{display:flex;align-items:center;gap:8px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}.tasks-group-dot{width:8px;height:8px;border-radius:50%}.tasks-row{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:4px;width:100%;min-height:56px;padding:8px 4px;border-bottom:1px solid var(--line)}.tasks-row.is-done .tasks-text{opacity:.45;text-decoration:line-through}.tasks-check{width:48px;height:48px;border:0;background:transparent;display:grid;place-items:center}.tasks-check span{width:26px;height:26px;border:2px solid var(--ink-soft);border-radius:8px}.tasks-check.is-on span{background:var(--teal);border-color:var(--teal)}.tasks-row.is-doing .tasks-check span{border-style:dashed;border-color:var(--gold)}.tasks-text{border:0;background:transparent;text-align:left;width:100%;min-height:48px}.tasks-name{display:block}.tasks-priority{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-decoration:none}.tasks-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;color:var(--ink-soft);font-size:.85rem}.tasks-meta .is-late{color:#8a243c;font-weight:650}.tasks-assignee{margin-right:6px}.tasks-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.sheet-backdrop{position:fixed;inset:0;background:#2c241661;display:flex;align-items:flex-end;justify-content:center;z-index:50;padding:12px}.sheet{width:min(560px,100%);background:var(--paper);border-radius:28px 28px 22px 22px;padding:14px 18px 20px;display:grid;gap:12px;max-height:min(90dvh,840px);overflow:auto}.sheet-form{display:grid;gap:12px}.sheet-form label{display:grid;gap:6px;font-weight:600}.sheet-form input,.sheet-form select,.sheet-form textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;font-size:1.05rem}.sheet-actions{display:flex;flex-wrap:wrap;gap:8px}.tasks-fieldset{border:0;padding:0;margin:0;display:grid;gap:8px}.tasks-fieldset legend{font-weight:600;margin-bottom:4px}.tasks-category-list{display:grid;gap:14px}.tasks-category-row{display:grid;gap:8px}.tasks-category-row input{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;font-size:1.05rem}.tasks-color-picks{display:flex;gap:8px}.tasks-color-dot{width:22px;height:22px;border:2px solid transparent;border-radius:50%;padding:0}.tasks-color-dot.is-on{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--ink)}:root{color-scheme:light;--cream: #fdfae7;--lime: #eaecca;--sage: #acbd8f;--olive: #454724;--orange: #f36f33;--ink-strong: #1c1d14;--bg: var(--cream);--bg-deep: var(--lime);--paper: #fffef4;--ink: var(--olive);--ink-soft: #6b6d4a;--line: #d5dbb8;--accent: var(--orange);--accent-soft: #fde4d4;--teal: var(--olive);--teal-soft: var(--lime);--gold: var(--sage);--shadow: 0 14px 40px color-mix(in srgb, var(--olive) 10%, transparent);--radius: 24px;--radius-sm: 14px;--radius-md: 20px;--radius-lg: 28px;--radius-pill: 999px;--font-ui: "Manrope", system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif;--sidebar: 248px;--mobile-nav: 88px;--text-xs: .75rem;--text-sm: .82rem;--text-md: 1rem;--text-lg: 1.15rem;--text-xl: 1.45rem;--text-title: 2.1rem;--text-hero: 2.75rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}html{background:var(--bg)}body{min-height:100dvh;color:var(--ink);font-family:var(--font-ui);background:radial-gradient(circle at top left,color-mix(in srgb,var(--sage) 32%,transparent),transparent 28rem),radial-gradient(circle at 100% 0,color-mix(in srgb,var(--orange) 12%,transparent),transparent 22rem),var(--bg);-webkit-font-smoothing:antialiased}@media(display-mode:standalone){html,body,#root{min-height:100dvh;min-height:-webkit-fill-available}}button,input,textarea,a{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;margin:0}p{margin:0}ul{margin:0;padding:0;list-style:none}a{text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:12px 20px;border:0;border-radius:var(--radius-pill);font-weight:700;letter-spacing:-.01em}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff7f2}.btn-olive{background:var(--olive);color:var(--cream)}.btn-secondary{background:var(--lime);color:var(--olive)}.btn-ghost{background:transparent;color:var(--olive);box-shadow:inset 0 0 0 1.5px var(--line)}.btn-danger{background:transparent;color:#8a243c}.app-fab-stack{position:fixed;right:18px;bottom:24px;z-index:46}.app-fab{width:58px;height:58px;border:0;border-radius:50%;background:var(--accent);color:#fff7f2;font-size:2rem;line-height:1;box-shadow:0 12px 28px #c45c3e59}@media(max-width:860px){.app-fab-stack{bottom:calc(var(--mobile-nav) + 16px)}}.quick-capture{width:min(560px,100%);background:var(--paper);border-radius:28px 28px 22px 22px;padding:16px 18px calc(16px + env(safe-area-inset-bottom));box-shadow:var(--shadow)}.quick-capture input{width:100%;min-height:52px;margin-top:10px;border:1px solid var(--line);background:var(--cream);border-radius:16px;padding:14px 16px;font-size:1.15rem}.quick-capture-hint{margin-top:10px;color:var(--ink-soft);font-size:.82rem}.chip{border:1.5px solid var(--line);background:var(--paper);border-radius:var(--radius-pill);padding:8px 14px;min-height:40px;color:var(--ink-soft);font-weight:600}.chip.is-on{background:var(--paper);border-color:var(--accent);color:var(--accent)}.field{display:grid;gap:6px;font-weight:600}.field-label{font-size:var(--text-sm);color:var(--ink-soft)}.field-input{width:100%;min-height:48px;border:1.5px solid var(--line);background:var(--lime);border-radius:var(--radius-sm);padding:12px 14px;font-size:1.05rem;color:var(--ink)}.field-input:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px;border-color:var(--accent)}.orb{width:112px;height:112px;border-radius:50%;object-fit:cover;background:var(--lime);flex:none}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--cream);font-size:.85rem;font-weight:700;background:var(--sage);flex:none}.shell{min-height:100dvh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;padding:28px 18px;display:flex;flex-direction:column;gap:28px;background:color-mix(in srgb,var(--lime) 70%,transparent)}.brand-block{display:flex;align-items:center;gap:12px;padding:4px 8px}.brand-mark{width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 62% 38%,var(--accent) 0 28%,transparent 29%),var(--sage)}.brand-title{font-family:var(--font-display);font-size:1.35rem}.brand-subtitle{color:var(--ink-soft);font-size:.85rem}.sidebar-nav{display:grid;gap:4px;flex:1}.sidebar-account{display:grid;gap:12px;justify-items:start}.shell-profile-mobile{display:none}.profile-switch{display:grid;gap:4px}.profile-chip{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:16px;background:transparent;color:var(--ink-soft);text-align:left}.profile-chip.is-selected{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.profile-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:.78rem;font-weight:600;flex:none}.profile-name{font-size:.92rem}.profile-switch.is-compact{display:flex;justify-content:flex-end;gap:6px}.profile-switch.is-compact .profile-chip{width:auto;padding:2px;border-radius:50%}.profile-switch.is-compact .profile-chip.is-selected{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--ink)}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;color:var(--ink-soft)}.nav-item.is-active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.nav-item.is-soon{opacity:.78}.nav-soon{margin-left:auto;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--gold)}.nav-icon{width:20px;height:20px;flex:none;fill:none}.shell-main{min-width:0;min-height:100dvh;padding:28px 32px 40px;overflow:auto}.mobile-nav{display:none}.page-header{display:flex;justify-content:space-between;gap:16px;margin-bottom:24px}.page-kicker{color:var(--ink-soft);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.page-title{font-size:2.1rem}.page-copy,.muted,.empty-line,.placeholder-note{color:var(--ink-soft);line-height:1.5}.page-copy{margin-top:8px;max-width:36rem}.card,.placeholder-panel,.day-panel,.home-hero{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card,.placeholder-panel,.day-panel{padding:20px 22px}.card-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}.card-heading a,.text-button,.calendar-page a{color:var(--teal);font-weight:600}.text-button{background:none;border:0;padding:8px 0}.home{display:grid;gap:18px;max-width:760px}.home-hero{display:grid;grid-template-columns:1fr auto;gap:16px 24px;align-items:start;padding:28px 28px 24px}.home-hero-copy{grid-column:1;grid-row:1;min-width:0}.home-hello{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.85rem;font-weight:600;letter-spacing:-.03em}.home-hello-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--lime);color:var(--olive);flex:none}.home-hello-icon .nav-icon{width:20px;height:20px}.home-title{font-size:3rem;line-height:1}.home-date{margin-top:10px;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.86rem}.home-weather{display:contents}.home-weather-now,.home-weather-status,.home-weather-picker{grid-column:2;grid-row:1;justify-self:end}.home-weather-now{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;color:var(--teal)}.home-weather-now .weather-icon{width:38px;height:38px;grid-column:1;grid-row:1 / span 2}.home-weather-temp{grid-column:2;grid-row:1;font-family:var(--font-display);font-size:2.2rem;line-height:1;color:var(--ink)}.home-weather-copy{grid-column:2;grid-row:2;color:var(--ink)}.home-weather-copy p:first-child{font-size:.92rem}.home-weather-place{margin-top:2px;padding:0;border:0;background:none;color:var(--teal);font-size:.82rem;font-weight:600}.home-weather-days{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding-top:6px;border-top:1px solid var(--line)}.home-weather-days li{display:grid;justify-items:center;gap:4px;color:var(--ink-soft);font-size:.75rem}.home-weather-days .weather-icon{width:22px;height:22px;color:var(--teal)}.home-weather-days strong{color:var(--ink);font-size:.92rem}.home-weather-picker{display:grid;gap:8px;width:min(18rem,100%)}.home-weather-picker-title{font-size:.9rem}.home-weather-picker input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.home-weather-results{display:grid;gap:2px;max-height:10rem;overflow:auto}.home-weather-results button{width:100%;padding:8px 10px;border:0;border-radius:12px;background:transparent;text-align:left}.home-weather-results button:hover,.home-weather-results button:focus-visible{background:var(--teal-soft)}.home-weather-picker-actions{display:flex;flex-wrap:wrap;gap:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.finance-summary{font-family:var(--font-display);font-size:1.45rem;margin-bottom:6px}.timeline{display:grid;gap:12px}.timeline li{display:grid;grid-template-columns:12px 1fr;gap:12px;align-items:start}.time{font-size:.8rem;color:var(--ink-soft)}.dot{width:10px;height:10px;margin-top:6px;border-radius:50%;background:var(--gold);display:inline-block}.dot-session{background:var(--teal)}.dot-meal{background:var(--accent)}.dot-task{background:#8a243c}.week-board h2,.day-panel h3,.calendar-toolbar h2{margin-bottom:12px}.week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.week-stat{display:grid;gap:4px;padding:18px;border-radius:20px;background:var(--paper);border:1px solid var(--line)}.week-stat strong{font-family:var(--font-display);font-size:1.8rem}.week-stat.is-soon{opacity:.72}.placeholder-page,.calendar-page{max-width:860px}.placeholder-panel{display:grid;gap:10px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.calendar-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:18px}.weekday,.month-day{text-align:center}.weekday{color:var(--ink-soft);font-size:.78rem;padding-bottom:4px}.month-day{border:1px solid transparent;background:color-mix(in srgb,var(--paper) 70%,transparent);border-radius:16px;min-height:64px;padding:8px 4px 6px;display:grid;align-content:space-between;justify-items:center}.month-day.is-outside{opacity:.38}.month-day.is-today{border-color:var(--gold)}.month-day.is-selected{background:var(--paper);box-shadow:var(--shadow)}.day-dots{display:flex;gap:3px;min-height:8px}.day-dots .dot{width:6px;height:6px;margin:0}.module-douce-moitie,.module-on-bouge{min-height:calc(100dvh - 56px)}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar,.shell-profile-mobile{display:none}.shell-main{min-height:auto;padding:calc(18px + env(safe-area-inset-top)) 16px calc(var(--mobile-nav) + 22px + env(safe-area-inset-bottom))}.mobile-nav{display:flex;position:fixed;left:18px;right:18px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;justify-content:space-around;align-items:center;gap:4px;overflow:visible;padding:8px 10px;background:color-mix(in srgb,var(--lime) 78%,white);border:1px solid color-mix(in srgb,var(--sage) 55%,transparent);border-radius:32px;box-shadow:0 12px 32px color-mix(in srgb,var(--olive) 12%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-nav-item{flex:none;width:48px;height:48px;display:grid;place-items:center;color:var(--olive);padding:0;border-radius:50%}.mobile-nav-item .nav-icon{width:22px;height:22px}.mobile-nav-item.is-active{background:var(--sage);color:var(--olive)}.mobile-nav-item.is-active .nav-icon{color:var(--olive)}.home-title{font-size:2.4rem}.home-hero{grid-template-columns:1fr}.home-hero .home-weather-now,.home-hero .home-weather-status,.home-hero .home-weather-picker{grid-column:1;grid-row:2;justify-self:stretch}.home-hero .home-weather-days{grid-row:3}.week-grid{grid-template-columns:1fr 1fr}.module-douce-moitie .fab-row,.module-douce-moitie .page>.fab{bottom:calc(var(--mobile-nav) + 12px + env(safe-area-inset-bottom))}.module-douce-moitie .page{padding-bottom:160px}}.ds-page{max-width:820px;padding-bottom:48px}.ds-hero{display:grid;gap:8px;margin-bottom:var(--space-6)}.ds-hero h1{font-size:var(--text-hero);line-height:1}.ds-section{margin-bottom:var(--space-6)}.ds-section h2{font-size:1.05rem;margin-bottom:14px}.ds-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px}.ds-swatch{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--line);background:var(--paper)}.ds-swatch-chip{height:72px}.ds-swatch figcaption{padding:10px 12px 12px;font-size:var(--text-sm)}.ds-swatch code{display:block;color:var(--ink-soft);font-size:.72rem}.ds-type-list{display:grid;gap:16px}.ds-type-hero{font-family:var(--font-display);font-size:var(--text-hero);line-height:1}.ds-type-title{font-family:var(--font-display);font-size:var(--text-title)}.ds-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.ds-recipe-row{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px}.ds-recipe-card{width:148px;flex:none;display:grid;justify-items:center;gap:8px;text-align:center}.ds-recipe-card h3{font-family:var(--font-ui);font-size:.95rem;font-weight:700}.ds-recipe-card p{color:var(--ink-soft);font-size:var(--text-sm)}.ds-banner{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:22px 24px;background:var(--olive);color:var(--cream);border-radius:var(--radius)}.ds-banner h3{font-family:var(--font-display);font-size:1.45rem;margin-bottom:6px}.ds-banner p{color:color-mix(in srgb,var(--cream) 78%,transparent)}.ds-nav-demo{display:flex;justify-content:center;padding:18px;background:var(--lime);border-radius:var(--radius)}.ds-nav-pill{display:flex;gap:4px;padding:8px;background:var(--olive);border-radius:var(--radius-pill);color:var(--cream)}.ds-nav-pill span{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;opacity:.7}.ds-nav-pill span.is-on{opacity:1;background:color-mix(in srgb,var(--cream) 14%,transparent);color:var(--accent)}
