:root {
    --ink: #13232b;
    --muted: #68747a;
    --green: #357b4a;
    --green-dark: #245e3b;
    --mint: #eaf3e8;
    --line: #e2e7e3;
    --paper: #fbfcfa;
    --white: #fff;
}

body { background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 14px; }
.shell { grid-template-columns: 250px 1fr; }
.shell > aside { padding: 34px 20px 24px; background: rgba(255,255,255,.9); border-right: 1px solid var(--line); }
.brand { margin: 0 10px 42px; gap: 13px; font: 700 19px/1.2 Inter, ui-sans-serif, system-ui, sans-serif; }
.brand img { width: 58px; height: 58px; object-fit: contain; border-radius: 50%; }
.login-brand img { width: 46px; height: 46px; }
.remember-login{display:flex!important;align-items:center;gap:9px;font-weight:600!important;color:var(--ink)!important;cursor:pointer}.remember-login input{width:18px!important;height:18px;margin:0;accent-color:var(--green)}.pwa-install{width:100%;text-align:center}.pwa-login-note{display:block;color:var(--muted);line-height:1.45;text-align:center}
.account-menu-popover .account-install{width:100%;padding:9px 11px;border:0;border-radius:8px;background:#edf5ef;color:var(--green-dark);font:inherit;font-weight:700;text-align:left;cursor:pointer}

/* Anschaffungen */
.acquisition-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(125deg,#eff7f1,#fff 72%)}.acquisition-intro h2{margin:5px 0 7px}.acquisition-intro p{margin:0;color:var(--muted)}.acquisition-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.acquisition-filters button{padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);cursor:pointer}.acquisition-filters button.active{border-color:var(--green);background:var(--green);color:#fff}.acquisition-list{display:grid;gap:12px}.acquisition-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;padding:20px 22px;border-left:5px solid #a9b9b0}.acquisition-item.priority-high{border-left-color:#d87955}.acquisition-item.priority-medium{border-left-color:#d8b251}.acquisition-item.priority-low{border-left-color:#83aa91}.acquisition-item h2{margin:8px 0 6px;font:700 19px Georgia,serif}.acquisition-item p{margin:0;color:var(--muted);line-height:1.5}.acquisition-badges,.acquisition-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.acquisition-badges span{padding:5px 8px;border-radius:999px;background:#edf3ef;color:var(--green-dark);font-size:9px;font-weight:800}.acquisition-badges .priority.high{background:#f9e7df;color:#a24d30}.acquisition-badges .priority.medium{background:#fbf0cf;color:#8a6718}.acquisition-badges .priority.low{background:#e8f2eb;color:#477158}.acquisition-badges .status-planned{background:#e9e7f8;color:#60508b}.acquisition-meta{margin-top:12px;font-size:11px;color:var(--muted)}.acquisition-meta span+span{padding-left:8px;border-left:1px solid var(--line)}.acquisition-meta a,.acquisition-archive a{color:var(--green);font-weight:700;text-decoration:none}.acquisition-note{margin-top:10px}.acquisition-note summary{color:var(--green);font-size:11px;font-weight:700;cursor:pointer}.acquisition-note p{margin-top:8px}.acquisition-actions{display:flex;align-items:center;gap:7px}.acquisition-actions form{margin:0}.acquisition-actions button{white-space:nowrap;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--green-dark);font-weight:700;cursor:pointer}.acquisition-actions .primary{border-color:var(--green);background:var(--green);color:#fff}.acquisition-more{position:relative}.acquisition-more>summary{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:9px;cursor:pointer;list-style:none}.acquisition-more>summary::-webkit-details-marker{display:none}.acquisition-more>div{z-index:5;position:absolute;top:42px;right:0;min-width:165px;padding:7px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 13px 35px rgba(31,58,45,.14)}.acquisition-more button{width:100%;border:0;text-align:left}.acquisition-more .danger-link{color:#ad5142}.acquisition-dialog{width:min(620px,calc(100% - 28px))}.acquisition-empty p{color:var(--muted)}.acquisition-archive{margin-top:22px;padding:0;overflow:visible}.acquisition-archive>summary{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;cursor:pointer;list-style:none}.acquisition-archive>summary::-webkit-details-marker{display:none}.acquisition-archive>summary span{display:grid;gap:3px}.acquisition-archive>summary small{color:var(--muted)}.acquisition-archive>div{padding:0 22px 12px}.acquisition-archive article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid var(--line)}.acquisition-archive article>div{display:flex;align-items:center;gap:10px}.acquisition-archive article small{color:var(--muted)}.acquisition-archive form{margin:0}
@media(max-width:850px){.acquisition-intro{align-items:stretch;flex-direction:column}.acquisition-item{grid-template-columns:1fr}.acquisition-actions{flex-wrap:wrap}.acquisition-actions .primary{flex:1}.acquisition-archive article,.acquisition-archive article>div{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.acquisition-item{padding:17px 15px}.acquisition-actions{display:grid;grid-template-columns:1fr 1fr}.acquisition-actions>*{width:100%}.acquisition-actions button{width:100%}.acquisition-more>div{right:0}.acquisition-meta{align-items:flex-start;flex-direction:column}.acquisition-meta span+span{padding-left:0;border-left:0}}

/* Abweichende Einkommenseingänge & Schuldenstatus */
.entry-actions .receive-income{width:auto;padding:8px 10px;border:1px solid #9bbba7;border-radius:8px;background:#edf6ef;color:var(--green-dark);font-size:10px;font-weight:800;cursor:pointer}.income-receive-dialog{width:min(600px,calc(100% - 28px))}.period-basis-choice{display:grid;gap:8px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px}.period-basis-choice legend{padding:0 5px;color:var(--ink);font-weight:800}.period-basis-choice label{display:flex!important;align-items:flex-start;gap:10px;padding:11px;border-radius:9px;background:#f6f9f7;cursor:pointer}.period-basis-choice input{width:auto!important;margin-top:3px;accent-color:var(--green)}.period-basis-choice span,.period-basis-choice b,.period-basis-choice small{display:block}.period-basis-choice small{margin-top:4px;color:var(--muted);font-weight:400;line-height:1.4}.debt-document-open{width:max-content;margin-top:5px;padding:4px 7px;border-radius:999px;background:#fff1cf;color:#8b6518!important;font-weight:800}.debt-status-dialog{width:min(570px,calc(100% - 28px))}.document-return-checks{display:grid;gap:8px;margin:0;padding:14px;border:1px solid #ead8aa;border-radius:12px;background:#fffaf0}.document-return-checks legend{padding:0 5px;font-weight:800}.document-return-checks label{display:flex!important;align-items:center;gap:9px}.document-return-checks input{width:auto!important;accent-color:var(--green)}.document-return-checks p{margin:3px 0 0;color:var(--muted);font-size:11px}.debt-status-history{padding:4px 28px 25px}.debt-status-history h3{margin:10px 0}.debt-status-history article{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.debt-status-history article>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--mint);color:var(--green);font-weight:900}.debt-status-history small,.debt-status-history p{display:block;margin:3px 0 0;color:var(--muted)}
@media(max-width:700px){.entry-actions .receive-income{grid-column:1/-1;width:100%}.period-basis-choice label{padding:9px}.debt-status-history{padding-inline:18px}}
.shell nav { gap: 8px; }
.shell nav > a, .nav-group summary { min-height: 48px; padding: 14px 16px; border-radius: 12px; color: #33464d; }
.shell nav > a.active, .shell nav > a:hover, .nav-group[open] > summary, .nav-group summary:hover { background: linear-gradient(90deg,#e7f1e5,#f1f6ee); color: var(--green-dark); }
.nav-children { margin: 4px 0 6px 16px; padding: 4px 0 4px 10px; border-left: 1px solid #dce8dc; }
.shell nav .nav-children a { border-radius: 9px; }
.aside-note { margin-top: auto; padding: 20px 12px; border: 1px solid var(--line); border-radius: 15px; text-align: center; color: var(--ink); background: #fdfefd; }
.aside-note span { display: block; color: var(--green); font-size: 28px; transform: rotate(180deg); }
.aside-note p { margin: 8px 0 0; line-height: 1.55; }
.aside-foot { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.mobile-logout,.mobile-create-menu { display: none; }

main { max-width: 1480px; padding: 44px clamp(30px,5vw,76px) 64px; }
main > header { align-items: center; margin-bottom: 34px; }
header h1 { margin: 0 0 7px; font: 750 clamp(29px,3vw,40px)/1.15 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.035em; }
.dashboard-main > header h1 { font-size: clamp(24px,2vw,30px); }
header p { color: #59666d; font-size: 15px; }
.header-tools { display: flex; align-items: center; gap: 12px; }
.global-quick-actions { display: flex; gap: 8px; }.global-quick-actions button { min-height: 42px; padding: 0 14px; border: 1px solid #aec8b6; border-radius: 11px; background: white; color: var(--green-dark); cursor: pointer; font-weight: 700; }.global-quick-actions .quick-task { border-color: var(--green); background: var(--green); color: white; }.global-quick-actions button:hover { transform: translateY(-1px); box-shadow: 0 5px 16px rgba(43,84,61,.1); }
.date-chip { padding: 12px 16px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: 0 3px 12px rgba(27,57,38,.03); color: #33454c; }
.avatar { width: 44px; height: 44px; background: var(--mint); border: 1px solid #d6e5d4; color: var(--green-dark); }
.account-menu { position: relative; }.account-menu summary { list-style: none; cursor: pointer; user-select: none; }.account-menu summary::-webkit-details-marker { display: none; }.account-menu[open] .avatar { box-shadow: 0 0 0 4px rgba(74,126,92,.12); }.account-menu-popover { z-index: 50; position: absolute; top: 54px; right: 0; width: 225px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: 0 16px 42px rgba(31,58,45,.16); }.account-menu-popover > div { padding: 15px 16px; border-bottom: 1px solid var(--line); }.account-menu-popover b,.account-menu-popover small { display: block; }.account-menu-popover small { margin-top: 3px; color: var(--muted); }.account-menu-popover a { display: block; padding: 12px 16px; color: var(--ink); text-decoration: none; }.account-menu-popover a:hover { background: #f2f7f3; color: var(--green-dark); }.account-menu-popover .logout { border-top: 1px solid var(--line); color: #ae5946; }

.grid { gap: 22px; margin-bottom: 22px; }
.grid.two { grid-template-columns: minmax(0,1fr) minmax(360px,.85fr); }
.finance-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }.finance-metrics > .metric:last-child { grid-column: 2; width: 100%; }
.card { border: 1px solid var(--line); border-radius: 20px; padding: 25px; box-shadow: 0 8px 28px rgba(31,55,39,.025); }
.card h2, .actions h2 { font: 700 20px/1.3 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.02em; }
.card-head { align-items: center; }
.primary, .secondary { border-radius: 10px; padding: 11px 15px; }
.primary { background: var(--mint); color: var(--green-dark); }
.primary:hover { background: #dcebd9; }
.secondary { border-color: var(--line); color: var(--green-dark); }
.task-line, .task-item, .transaction { padding: 16px 0; border-color: #e8ece9; }
.check { border-radius: 50%; width: 27px; height: 27px; }
.check.done { border-color: var(--green); background: var(--green); }
.metric { min-height: 140px; justify-content: center; padding: 24px; }
.metric strong { color: var(--green); font: 700 30px/1.15 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.03em; }
.metric.green { background: linear-gradient(135deg,#326f45,#3f8754); border-color: transparent; }
.metric.green strong { color: white; }
.progress > strong { color: var(--green); font: 750 46px/1 Inter, ui-sans-serif, system-ui, sans-serif; }
.meter { height: 7px; }
.meter span { background: linear-gradient(90deg,#3b8a50,#6baa73); }
.actions { margin: 28px 0 16px; }
.chips span, .chips button, .badge { border-radius: 10px; }
dialog { border-radius: 20px; }
.form input, .form select, .form textarea, .filter-bar select { border-color: var(--line); background: white; }
.recurrence { margin: 4px 0; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fbfdfb; }
.recurrence legend { padding: 0 8px; color: var(--green-dark); font-weight: 750; }
.recurrence > label, .recurrence [data-recurring] > label, .recurrence [data-month-options] > label { display: grid; gap: 6px; margin-bottom: 13px; font-size: 12px; font-weight: 700; color: #54675e; }
.field-label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 700; color: #54675e; }
.weekday-picker { display: grid; grid-template-columns: repeat(7,1fr); gap: 6px; margin-bottom: 14px; }
.weekday-picker label { position: relative; cursor: pointer; }
.weekday-picker input { position: absolute; opacity: 0; pointer-events: none; }
.weekday-picker span { display: grid; place-items: center; min-height: 38px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--muted); }
.weekday-picker input:checked + span { border-color: #8db99a; background: var(--mint); color: var(--green-dark); font-weight: 750; }
.recurring-finance { padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #fbfdfb; }
.recurring-finance > label { margin-top: 12px; }
.finance-filters { flex-wrap: wrap; }
.finance-filters input { width: 82px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; }
.regular-list { display: grid; gap: 13px; }
.regular-item { display: grid; grid-template-columns: minmax(240px,1.5fr) repeat(3,minmax(110px,.55fr)) auto; gap: 22px; align-items: center; }
.regular-item.is-inactive { opacity: .62; }
.regular-main { display: flex; align-items: center; gap: 13px; }
.regular-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--mint); color: var(--green); font-size: 20px; }
.regular-title { display: flex; align-items: center; gap: 9px; margin-bottom: 5px; }
.regular-item small { color: var(--muted); }
.regular-item strong { display: block; margin-top: 5px; }
@media(max-width:1000px){.regular-item{grid-template-columns:1fr 1fr}.regular-main,.regular-item .entry-actions{grid-column:1/-1}}
.account-form { padding: 0; }
.admin-users { display: grid; gap: 12px; }
.admin-user { display: grid; grid-template-columns: 46px minmax(220px,1fr) auto; gap: 14px; align-items: center; }
.admin-user.is-inactive { opacity: .6; }
.admin-checks { grid-template-columns: repeat(3,1fr); }
.password-reset { border-top: 1px solid var(--line); }
.password-reset h3 { margin: 0; }
.audit-list { padding-top: 8px; }
.audit-row { display: grid; grid-template-columns: 90px minmax(240px,1.3fr) minmax(220px,1fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--line); }
.audit-row:first-child { border-top: 0; }
.audit-row small { display: block; margin-top: 4px; color: var(--muted); }
.audit-action { display: inline-block; width: fit-content; padding: 5px 8px; border-radius: 8px; background: var(--mint); color: var(--green-dark); font-size: 11px; text-transform: uppercase; }
.audit-row time { color: var(--muted); font-size: 12px; }
@media(max-width:900px){.audit-row{grid-template-columns:80px 1fr}.audit-row>div:nth-of-type(2),.audit-row time{grid-column:2}.admin-user{grid-template-columns:42px 1fr}.admin-user .entry-actions{grid-column:1/-1}}
.section-label { margin: 18px 0 4px; padding-bottom: 9px; border-bottom: 1px solid var(--line); color: var(--green); font-weight: 700; }
.period-select { padding: 10px 34px 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); }
.success-number p { margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.bar-chart { display: grid; grid-template-columns: repeat(var(--columns),minmax(25px,1fr)); align-items: end; gap: 8px; height: 155px; margin-top: 18px; padding: 14px 5px 0; border-bottom: 1px solid #ccd5cf; background: repeating-linear-gradient(to top,transparent 0,transparent 38px,#edf1ee 39px); overflow-x: auto; }
.bar-column { display: grid; grid-template-rows: 16px 1fr 22px; align-items: end; justify-items: center; height: 140px; min-width: 24px; }
.bar-column i { display: block; width: min(30px,75%); min-height: 2px; border-radius: 5px 5px 0 0; background: linear-gradient(#438f56,#347648); }
.bar-column small,.bar-value { font-size: 10px; color: var(--muted); }
.meal-placeholder { margin: 22px 0; }
.meal-week { display: grid; grid-template-columns: repeat(7,1fr); margin-top: 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.meal-week>div { display: grid; justify-items: center; gap: 5px; min-height: 145px; padding: 15px 8px; border-right: 1px solid var(--line); text-align: center; }
.meal-week>div:last-child { border-right: 0; }
.meal-week small,.meal-week p { color: var(--muted); }
.meal-week span { display: grid; place-items: center; width: 48px; height: 48px; margin-top: 4px; border: 1px dashed #b9c8bd; border-radius: 50%; color: var(--green); font-size: 20px; }
.meal-week p { margin: 2px 0 0; font-size: 11px; }
.meal-tip { margin-top: 16px; padding: 13px 16px; border-radius: 11px; background: #f4f7f3; color: var(--green-dark); }
.dashboard-bottom { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 22px; }
.finance-visual h3 { margin-top: 26px; font-size: 14px; }
.finance-totals strong.expense { color: #c45b42; }
.finance-chart { display: grid; grid-template-columns: 180px 1fr; gap: 25px; align-items: center; margin-top: 18px; }
.donut { position: relative; width: 165px; aspect-ratio: 1; border-radius: 50%; }
.donut::after { content: ''; position: absolute; inset: 35px; border-radius: 50%; background: white; }
.donut span { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; color: var(--ink); font-weight: 750; font-size: 13px; }
.finance-legend { display: grid; gap: 11px; }
.finance-legend>div { display: grid; grid-template-columns: 10px 1fr auto; gap: 9px; align-items: center; font-size: 12px; }
.finance-legend i { width: 9px; height: 9px; border-radius: 50%; }
.quick-overview>h2 { margin-top: 0; }
.quick-overview-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; }.quick-overview-heading h2 { margin: 0; }.quick-overview-heading small { color: var(--muted); }
.quick-overview-top { margin-bottom: 22px; }
.quick-next-step { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: center; margin: 18px 0 4px; padding: 17px 18px; border: 1px solid #d6e6da; border-radius: 14px; background: linear-gradient(100deg,#edf6ef,#f9fcf9); }.quick-next-step .primary { min-width: 145px; }
.quick-overview-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 12px; }
.quick-card { width: 100%; display: grid; grid-template-columns: 46px 1fr auto; gap: 12px; align-items: center; margin-top: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fcfdfc; text-align: left; color: var(--ink); }
.quick-overview-row .quick-card { margin-top: 0; min-width: 0; }
.quick-card.quick-link { text-decoration: none; }.quick-card.quick-link:hover { border-color: #bfd4c5; background: #f6faf7; }.quick-card.quick-link>strong { white-space: nowrap; color: var(--green-dark); font-size: 15px; }.quick-icon.money { position: relative; background: #e8f1eb; color: #47745d; }.quick-icon.money::before { content: ''; width: 20px; height: 14px; border: 2px solid currentColor; border-radius: 4px; }.quick-icon.money::after { content: ''; position: absolute; right: 10px; width: 8px; height: 6px; border: 2px solid currentColor; border-radius: 3px; background: #e8f1eb; }.quick-icon.meal { position: relative; background: #fff2df; color: #aa742c; font-size: 0; }.quick-icon.meal::before { content: ''; width: 18px; height: 18px; border: 2px solid currentColor; border-radius: 50%; }.quick-icon.meal::after { content: ''; position: absolute; width: 28px; height: 19px; border-left: 2px solid currentColor; border-right: 2px solid currentColor; border-radius: 1px; }
.quick-card small { display: block; margin: 4px 0 7px; color: var(--muted); }
.quick-card .meter { height: 5px; }
.quick-icon { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 50%; font-size: 24px; }
.quick-icon.target { color: #269ab1; background: #e8f7fa; }.quick-icon.water { position: relative; color: #288cba; background: #e7f5fb; font-size: 0; }.quick-icon.water::before { content: ''; width: 12px; height: 21px; border: 2px solid currentColor; border-radius: 3px 3px 5px 5px; }.quick-icon.water::after { content: ''; position: absolute; top: 6px; width: 7px; height: 4px; border: 2px solid currentColor; border-bottom: 0; border-radius: 2px 2px 0 0; }.quick-icon.mood { color: #d69a16; background: #fff6dd; }.quick-icon.reflection { color: #7788c5; background: #eef0fb; }
.quick-button { cursor: pointer; font: inherit; }
.quick-button:hover { background: #f5f8f4; }
.water-actions { display: flex; gap: 5px; }
.water-actions button { width: 29px; height: 29px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--green); cursor: pointer; }
.mood-picker { display: grid; grid-template-columns: repeat(5,1fr); gap: 7px; }
.mood-picker label { cursor: pointer; }
.mood-picker input { position: absolute; opacity: 0; }
.mood-picker span { display: grid; justify-items: center; gap: 5px; padding: 12px 5px; border: 1px solid var(--line); border-radius: 11px; font-size: 24px; }
.mood-picker small { font-size: 9px; color: var(--muted); }
.mood-picker input:checked+span { border-color: #80ae8c; background: var(--mint); }
@media(max-width:1050px){.dashboard-bottom{grid-template-columns:1fr}.meal-week{overflow-x:auto}.meal-week>div{min-width:115px}}
@media(max-width:1250px){.quick-overview-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.quick-overview-row{grid-template-columns:1fr}.quick-next-step{grid-template-columns:1fr}.quick-next-step .primary{width:100%}.quick-overview-heading{display:block}.quick-overview-heading small{display:block;margin-top:4px}}
@media(max-width:600px){.finance-chart{grid-template-columns:1fr}.donut{margin:auto}.mood-picker{grid-template-columns:repeat(3,1fr)}.bar-chart{grid-template-columns:repeat(var(--columns),32px)}}
.debt { border-radius: 18px; }
.debt-grid { background: #fcfdfc; }
.settings-tabs a.active { background: var(--mint); }
.category-row.is-child { background: linear-gradient(90deg,#f0f6ef,transparent 48%); }
.flash { margin-bottom: 18px; padding: 12px 15px; border-radius: 10px; background: var(--mint); color: var(--green-dark); }
.finance-period { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }.finance-period h2 { margin: 4px 0 0; }.finance-period .filter-bar { margin: 0; }
.no-agreement { display: grid; gap: 4px; margin: 12px 0; padding: 12px; border: 1px solid #e4cf98; border-radius: 10px; background: #fff9e8; color: #765a16; }.no-agreement small { color: #8a7340; }
.import-guide ol { line-height: 1.8; }.import-preview table { width: 100%; border-collapse: collapse; }.import-preview th,.import-preview td { padding: 11px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }.import-preview tr.has-error { background: #fff3f0; }.import-error { display: block; color: #b54b36; font-size: 11px; }.import-ok { color: var(--green); font-weight: 700; }.import-preview form { margin-top: 18px; }
.import-columns { margin: 18px 0; }.import-columns>summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }.import-columns>summary::-webkit-details-marker { display: none; }.import-columns>summary span,.import-columns>summary small { display: block; }.import-columns>summary small { margin-top: 4px; color: var(--muted); }.import-columns>summary strong { transition: transform .2s; }.import-columns[open]>summary strong { transform: rotate(180deg); }.import-columns .table-wrap { margin-top: 20px; max-height: 620px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; }.import-columns table { width: 100%; border-collapse: collapse; font-size: 12px; }.import-columns th { position: sticky; top: 0; z-index: 1; background: #f3f7f3; }.import-columns th,.import-columns td { padding: 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }.import-columns code { padding: 2px 5px; border-radius: 4px; background: #edf3ee; color: var(--green-dark); }.import-examples { display: grid; gap: 8px; margin-top: 16px; }.import-examples code { display: block; padding: 9px 11px; }
@media(max-width:800px){.finance-period{align-items:stretch;flex-direction:column}}
.task-area-heading { display: flex; align-items: center; gap: 9px; margin: 24px 0 6px; padding: 0 2px 9px; border-bottom: 1px solid var(--line); font-size: 16px; color: var(--green-dark); }
.task-area-heading:first-child { margin-top: 2px; }
.task-area-heading span { width: 10px; height: 10px; border-radius: 50%; }
.task-tabs { display: inline-flex; gap: 4px; margin: 0 0 18px; padding: 4px; border: 1px solid var(--line); border-radius: 11px; background: white; }.task-tabs a { padding: 8px 13px; border-radius: 8px; color: var(--muted); text-decoration: none; font-weight: 650; }.task-tabs a.active { background: var(--mint); color: var(--green-dark); }
.routine-planning-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 14px; margin-bottom: 24px; }.routine-plan { display: grid; grid-template-columns: 44px 1fr; gap: 13px; border-top: 3px solid var(--routine-color); }.routine-plan h3,.routine-plan p { margin: 0 0 5px; }.routine-plan p,.routine-plan small { color: var(--muted); }.routine-plan.is-inactive { opacity: .6; }
.planning-list article,.history-list article { display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }.planning-list article:last-child,.history-list article:last-child { border-bottom: 0; }.planning-list small,.planning-list span,.history-list small { display: block; color: var(--muted); }.planning-icon,.history-status { display: grid!important; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #eef4ef; color: var(--green)!important; font-size: 18px; }.history-status { background: #fff1e9; color: #bc6a45!important; }.history-status.done { background: var(--mint); color: var(--green)!important; }
.routine-chip { display: inline-flex; padding: 2px 7px; border: 1px solid color-mix(in srgb,var(--routine-color),white 45%); border-radius: 999px; background: color-mix(in srgb,var(--routine-color),white 88%); color: var(--green-dark); font-size: 10px; font-weight: 700; }

.dashboard-lead { min-height: 390px; }
.dashboard-lead .task-line:last-child { border-bottom: 1px solid #e8ece9; }
.dashboard-lead form { margin: 0; }
.dashboard-routines { display: grid; gap: 10px; margin: 8px 0 14px; }
.routine-progress { overflow: hidden; border: 1px solid color-mix(in srgb,var(--routine-color),white 55%); border-radius: 14px; background: color-mix(in srgb,var(--routine-color),white 94%); }
.routine-progress summary { display: grid; grid-template-columns: 38px 1fr auto 20px; gap: 11px; align-items: center; padding: 13px 14px; cursor: pointer; list-style: none; }
.routine-progress summary::-webkit-details-marker { display: none; }
.routine-symbol { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: color-mix(in srgb,var(--routine-color),white 80%); color: var(--routine-color); font-size: 20px; font-weight: 750; }
.routine-summary { min-width: 0; }
.routine-summary b,.routine-summary small { display: block; }
.routine-summary small { margin: 3px 0 7px; color: var(--muted); font-size: 11px; }
.routine-summary small em { color: var(--green-dark); font-style: normal; font-weight: 650; }
.dashboard-saving-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 20px; }
.reserve-dashboard { display: grid; grid-template-columns: 38px 1fr auto; gap: 11px; align-items: center; padding: 13px 15px; border: 1px solid #cdded3; border-radius: 13px; background: #f3f8f4; color: var(--ink); text-decoration: none; }
.reserve-dashboard>span { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 50%; background: #deede3; color: var(--green); font-size: 20px; }
.reserve-dashboard:not(.goal)>span { font-size:0; }
.reserve-dashboard:not(.goal)>span::before { width:19px;height:19px;background:currentColor;content:'';mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M6 4.5h12a2.5 2.5 0 0 1 2.5 2.5v10a2.5 2.5 0 0 1-2.5 2.5H6A2.5 2.5 0 0 1 3.5 17V7A2.5 2.5 0 0 1 6 4.5Zm6 4.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm0 0v2.5l1.8 1M6.5 8v8M20.5 9H22v6h-1.5'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M6 4.5h12a2.5 2.5 0 0 1 2.5 2.5v10a2.5 2.5 0 0 1-2.5 2.5H6A2.5 2.5 0 0 1 3.5 17V7A2.5 2.5 0 0 1 6 4.5Zm6 4.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm0 0v2.5l1.8 1M6.5 8v8M20.5 9H22v6h-1.5'/%3E%3C/svg%3E") center/contain no-repeat; }
.reserve-dashboard small { display: block; margin-top: 3px; color: var(--muted); }
.reserve-dashboard.goal { border-color: #eadcaf; background: #fffbef; }.reserve-dashboard.goal>span { background: #f8edc9; color: #b98212; }
.reserve-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(330px,1fr)); gap: 18px; }
.reserve-account { border-top: 4px solid var(--reserve-color); }.reserve-account.is-inactive { opacity: .65; }
.reserve-balance { margin: 20px 0; }.reserve-balance>strong { display: block; color: var(--reserve-color); font-size: 34px; }.reserve-balance>span,.reserve-balance>small { color: var(--muted); }.reserve-balance .meter { height: 8px; margin: 10px 0 6px; }.reserve-balance .meter i { display: block; height: 100%; border-radius: inherit; background: var(--reserve-color); }
.reserve-recurring { margin-bottom: 14px; padding: 10px 12px; border-radius: 9px; background: #f4f7f4; color: var(--green-dark); font-size: 12px; }
.reserve-history { margin-top: 16px; }.reserve-history summary { cursor: pointer; color: var(--green-dark); font-weight: 700; }.reserve-history>div { display: grid; grid-template-columns: 1fr auto 30px; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }.reserve-history small { display: block; color: var(--muted); }.reserve-history strong.expense { color: #c45b42; }
.reserve-movement-dialog { width:min(620px,calc(100vw - 28px)); }
.reserve-movement-dialog form>small:first-of-type { color:var(--muted); letter-spacing:.05em; }
.reserve-finance-entry { background:#f5f9f6; }
.reserve-manage-link { display:grid;place-items:center;text-decoration:none;line-height:1; }
.reserve-manage-link svg { width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.balance-reconciliation{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;background:linear-gradient(120deg,#f3f8f4,#fff)}
.balance-reconciliation h2{margin:4px 0 6px}.balance-reconciliation p{margin:0 0 5px;color:var(--muted);line-height:1.5}.balance-reconciliation>button{flex:0 0 auto}.balance-reconciliation-dialog{width:min(560px,calc(100% - 28px))}.balance-comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px}.balance-comparison>div{padding:13px;border-radius:11px;background:#f3f7f4}.balance-comparison small,.balance-comparison strong{display:block}.balance-comparison strong{margin-top:4px;font-size:19px}.balance-adjustment-entry{background:#f8f7f2}
@media(max-width:700px){.balance-reconciliation{align-items:stretch;flex-direction:column}.balance-reconciliation>button{width:100%}.balance-comparison{grid-template-columns:1fr}}
@media(max-width:700px){.dashboard-saving-row{grid-template-columns:1fr}.reserve-grid{grid-template-columns:1fr}}
.routine-meter { display: block; overflow: hidden; height: 5px; border-radius: 999px; background: #e3e9e4; }
.routine-meter i { display: block; height: 100%; border-radius: inherit; background: var(--routine-color); }
.routine-progress summary>strong { color: var(--routine-color); font-size: 13px; }
.routine-chevron { color: var(--muted); font-style: normal; transition: transform .2s ease; }
.routine-progress[open] .routine-chevron { transform: rotate(180deg); }
.routine-tasks { padding: 0 14px 5px 62px; border-top: 1px solid color-mix(in srgb,var(--routine-color),white 72%); background: white; }
.routine-tasks .task-line:last-child { border-bottom: 0; }
.routine-progress.is-complete { background: color-mix(in srgb,var(--routine-color),white 88%); }
.standalone-task:first-of-type { border-top: 1px solid var(--line); }
.task-done { text-decoration: line-through; color: var(--muted); }
.task-skipped { opacity: .72; }.dashboard-task-status { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #edf1ef; color: #758079; font-weight: 800; }
.form-hint { margin: -4px 0 4px; padding: 11px 13px; border-radius: 10px; background: #f3f7f3; color: var(--muted); font-size: 13px; }
.budget-block { margin: 18px 0; }.budget-block > .quiet { margin: 2px 0 18px; }.budget-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 12px; }.budget-item { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfb; }.budget-item div { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; }.budget-item strong { color: var(--green); font-size: 20px; }.budget-item small { grid-column: 1/-1; color: var(--muted); }.budget-item.over strong { color: #bd6049; }.budget-meter { display: block; height: 7px; margin-top: 11px; overflow: hidden; border-radius: 99px; background: #e7ece8; }.budget-meter i { display: block; height: 100%; border-radius: inherit; }.budget-empty { grid-column: 1/-1; padding: 18px; border: 1px dashed #cfd9d1; border-radius: 13px; background: #f8faf8; }.budget-empty p { margin: 5px 0; }.budget-empty small { color: var(--muted); }
.dashboard-more { display: inline-flex; margin-top: 20px; color: var(--green-dark); text-decoration: none; font-weight: 650; }
.success-card { min-height: 390px; }
.success-summary { display: grid; grid-template-columns: 1fr 128px; align-items: center; gap: 20px; margin: 28px 0; }
.success-number strong { display: block; color: var(--green); font-size: 54px; line-height: 1; }
.success-ring { --value: 0; width: 118px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) calc(var(--value)*1%),#eaf0e9 0); }
.success-ring::before { content: ""; grid-area: 1/1; width: 84px; aspect-ratio: 1; border-radius: 50%; background: white; }
.success-ring b { z-index: 1; grid-area: 1/1; color: var(--green); font-size: 24px; }
.encouragement { margin-top: 24px; padding: 18px; border-radius: 13px; background: linear-gradient(90deg,#f1f6ef,#f8faf7); color: var(--green-dark); }
.dashboard-finances .card-head { margin-bottom: 18px; }
.finance-totals { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.finance-totals > div { padding-right: 16px; border-right: 1px solid var(--line); }
.finance-totals > div:last-child { border-right: 0; }
.finance-totals span { display: block; color: var(--muted); font-size: 12px; }
.finance-totals strong { display: block; margin-top: 7px; font-size: 24px; color: var(--green); }
.finance-totals > div:last-child { grid-column: 2; padding: 16px; border: 0; border-radius: 12px; background: var(--mint); text-align: center; }
.finance-totals .budget-total small { display: block; margin-top: 5px; line-height: 1.4; }.budget-metric { background: #f4f8f4; }.budget-metric strong { color: var(--green); }
.stability-note { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 22px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(90deg,#f8faf7,#fff); color: var(--green-dark); }
.stability-note b { font-size: 26px; }
.focus-strip { display: grid; grid-template-columns: minmax(260px,1fr) auto auto; gap: 18px; align-items: center; margin: -5px 0 22px; padding: 16px 18px; border: 1px solid #d9e7dc; border-radius: 16px; background: linear-gradient(100deg,#f0f7f1,#fff); box-shadow: 0 6px 22px rgba(35,75,51,.04); }.focus-copy { display: grid; gap: 3px; }.focus-copy>span { color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .08em; }.focus-copy>b { font-size: 16px; }.focus-copy small { color: var(--muted); }.focus-actions { display: flex; gap: 7px; }.focus-actions button { padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--green-dark); cursor: pointer; font-weight: 700; }
.success-insights { display: grid; gap: 8px; margin-top: 16px; }.success-insights>div { display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 11px; background: #f5f8f5; }.success-insights>div>span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: var(--mint); color: var(--green); font-weight: 800; }.success-insights p,.success-insights small { margin: 0; }.success-insights small { display: block; margin-top: 2px; color: var(--muted); }
.finance-insights { margin-bottom: 22px; }.estimate-badge { padding: 7px 10px; border-radius: 999px; background: #edf4ee; color: var(--green-dark); font-size: 11px; font-weight: 700; }.insight-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 16px; }.insight-grid article { display: grid; grid-template-columns: 40px 1fr; gap: 11px; min-height: 145px; padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: #fcfdfc; }.insight-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: #edf2ef; color: var(--green-dark); font-size: 20px; }.insight-icon.good { background: #e6f2e9; color: #3f7b50; }.insight-icon.watch { background: #fff0eb; color: #bb5b43; }.insight-grid small { color: var(--muted); font-size: 9px; letter-spacing: .04em; }.insight-grid b { display: block; margin-top: 8px; font-size: 18px; }.insight-grid p { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }.forecast-note { margin-top: 12px; color: var(--muted); font-size: 11px; }
.transfer-center { margin-bottom: 22px; border-color: #dce9df; background: linear-gradient(145deg,#fff,#f7fbf8); }.planned-transfer-list { display: grid; gap: 10px; margin-top: 15px; }.planned-transfer-list article { display: grid; grid-template-columns: minmax(180px,1fr) minmax(420px,1.6fr); gap: 18px; align-items: end; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.planned-transfer-list article small { display: block; margin-top: 5px; color: var(--muted); }.transfer-action { display: grid; grid-template-columns: 120px 155px auto; gap: 10px; align-items: end; }.transfer-action label { margin: 0; font-size: 11px; }.transfer-action input { margin-top: 4px; }
.giro-button { margin-top: 10px; }.giro-dialog { text-align: center; }.giro-dialog img { display: block; width: min(280px,80vw); height: auto; margin: 12px auto; border: 10px solid #fff; border-radius: 12px; }.giro-dialog b,.giro-dialog small { display: block; margin-top: 8px; }
.debt-history-dialog { width: min(720px,calc(100vw - 28px)); padding: 28px; }.debt-history-dialog > .close { top: 18px; right: 18px; }.debt-history-dialog > header { padding: 2px 52px 20px; text-align: center; }.debt-history-dialog > header small { color: var(--green-dark); font-size: 10px; font-weight: 800; letter-spacing: .09em; }.debt-history-dialog > header h2 { margin: 7px 0 0; }.debt-payment-history { margin-top: 2px; border: 1px solid var(--line); border-radius: 14px; }.debt-payment-history table { width: 100%; border-collapse: collapse; background: #fff; }.debt-payment-history th { padding: 12px 16px; border-bottom: 1px solid var(--line); background: #f4f8f5; color: var(--muted); font-size: 11px; font-weight: 800; text-align: left; white-space: nowrap; }.debt-payment-history td { padding: 15px 16px; border-bottom: 1px solid var(--line); white-space: nowrap; }.debt-payment-history tr:last-child td { border-bottom: 0; }.debt-payment-history td:first-child b { color: var(--green-dark); }.debt-payment-history td small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }.debt-payment-history .empty { margin: 0; padding: 24px; text-align: center; }
.debt-table { display: grid; gap: 9px; }
.debt-view-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }.debt-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: min(100%,310px); margin: 0; }.debt-tabs a { display: inline-flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap; }.debt-tabs a span { display: grid; min-width: 21px; height: 21px; place-items: center; padding: 0 6px; border-radius: 999px; background: #edf1ee; color: var(--muted); font-size: 10px; }.debt-tabs a.active span { background: white; color: var(--green-dark); }.debt-payment-filter { display: flex; align-items: center; gap: 9px; }.debt-payment-filter label { color: var(--muted); font-size: 11px; font-weight: 700; }.debt-payment-filter select { min-width: 245px; padding: 9px 34px 9px 11px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--ink); }
.debt-table-head,.debt-row > summary { display: grid; grid-template-columns: 82px minmax(175px,1.45fr) minmax(120px,1fr) 110px 105px minmax(130px,.9fr) 20px; gap: 14px; align-items: center; }
.debt-table-head { padding: 0 15px 5px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.debt-row { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 3px 12px rgba(46,78,62,.025); }
.debt-row > summary { min-height: 58px; padding: 10px 15px; cursor: pointer; list-style: none; }
.debt-row.has-progress > summary { background: linear-gradient(90deg,rgba(92,157,108,.13) 0,var(--debt-progress),transparent var(--debt-progress),transparent 100%); }
.debt-row.has-progress > summary:hover { background: linear-gradient(90deg,rgba(92,157,108,.18) 0,var(--debt-progress),#f8fbf9 var(--debt-progress),#f8fbf9 100%); }
.debt-row > summary::-webkit-details-marker { display: none; }
.debt-row > summary:hover { background: #f8fbf9; }
.debt-row[open] > summary { border-bottom: 1px solid var(--line); background: #f4f8f5; }
.debt-row.has-progress[open] > summary { background: linear-gradient(90deg,rgba(92,157,108,.16) 0,var(--debt-progress),#f4f8f5 var(--debt-progress),#f4f8f5 100%); }
.debt-party,.debt-next { min-width: 0; }.debt-party b,.debt-party small,.debt-next small { display: block; }.debt-party small,.debt-next small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.debt-reference { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.debt-original,.debt-open,.debt-next { font-size: 12px; }.debt-open { color: var(--ink); }.debt-chevron { color: var(--green); font-size: 18px; transition: transform .2s; }.debt-row[open] .debt-chevron { transform: rotate(180deg); }
.debt-row .debt-grid { margin: 0; padding: 20px; border: 0; border-radius: 0; }
.plan-note.plan-complete { background: #f2f5f3; color: var(--muted); }
@media (max-width: 1050px) { .debt-table-head,.debt-row > summary { grid-template-columns: 75px minmax(160px,1.4fr) minmax(110px,1fr) 95px 95px 125px 18px; gap: 10px; } }
@media (max-width: 760px) { .debt-table-head { display: none; }.debt-table { gap: 8px; }.debt-row > summary { grid-template-columns: auto minmax(0,1fr) auto; gap: 8px 11px; min-height: 0; padding: 12px; }.debt-row > summary .badge { grid-row: 1 / 3; }.debt-party { grid-column: 2; }.debt-open { grid-column: 2; color: var(--green-dark); }.debt-open::before { content: 'Offen: '; color: var(--muted); font-weight: 400; }.debt-chevron { grid-column: 3; grid-row: 1 / 3; }.debt-reference,.debt-original,.debt-next { display: none; }.debt-row .debt-grid { padding: 15px; } }
@media (max-width: 700px) { .debt-view-controls { align-items: stretch; flex-direction: column; }.debt-tabs { width: 100%; }.debt-payment-filter { display: grid; gap: 5px; }.debt-payment-filter select { width: 100%; min-width: 0; } }
@media (max-width: 600px) { .debt-history-dialog { padding: 22px 16px; }.debt-history-dialog > header { padding-inline: 40px; }.debt-payment-history th,.debt-payment-history td { padding: 11px 12px; } }
@media (max-width: 760px) { .planned-transfer-list article { grid-template-columns: 1fr; }.transfer-action { grid-template-columns: 1fr 1fr; }.transfer-action button { grid-column: 1 / -1; width: 100%; } }
.budget-forecast { display: grid; grid-template-columns: 240px 1fr; gap: 22px; margin-bottom: 22px; }.budget-forecast h2 { margin-bottom: 0; }.budget-forecast>div:last-child { display: grid; gap: 4px; }.budget-forecast article { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; gap: 11px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }.budget-forecast article>span { width: 8px; height: 34px; border-radius: 6px; background: var(--forecast-color); }.budget-forecast p,.budget-forecast small { margin: 0; }.budget-forecast small { display: block; margin-top: 3px; color: var(--muted); }.budget-forecast strong.expense { color: #c45b42; }

@media (max-width: 900px) {
    .shell { grid-template-columns: 84px 1fr; }
    .brand { margin-inline: 0; justify-content: center; }
    .brand span, .aside-note { display: none; }
    .grid.two,.finance-metrics { grid-template-columns: 1fr; }
    .finance-metrics > .metric:last-child { grid-column: 1; }
    .nav-children { margin-left: 0; border-left: 0; }
    .global-quick-actions { display: none; }
    .focus-strip { grid-template-columns: 1fr auto; }.focus-actions { grid-column: 1/-1; }.insight-grid { grid-template-columns: 1fr; }.budget-forecast { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    main { padding: 24px 15px calc(136px + env(safe-area-inset-bottom, 0px)); }
    main > header { align-items: flex-start; gap: 16px; }
    .header-tools { flex-direction: column-reverse; align-items: flex-end; }
    .date-chip { padding: 8px 10px; font-size: 11px; }
    .shell nav > a, .nav-group summary { min-height: 44px; }
    .card { padding: 19px; border-radius: 17px; }
    .success-summary { grid-template-columns: 1fr 105px; }
    .success-ring { width: 100px; }
    .success-ring::before { width: 72px; }
    .finance-totals { grid-template-columns: 1fr; }
    .finance-totals > div { padding: 0 0 12px; border-right: 0; border-bottom: 1px solid var(--line); }
    .finance-totals > div:last-child { grid-column: 1; }
    .shell nav { grid-template-columns: repeat(5,minmax(0,1fr)); }
    .shell nav .mobile-logout { display: block; color: #ae5946; }
    .shell nav .mobile-logout:first-letter { font-size: 18px; }
    .mobile-create-menu { display: block; position: fixed; z-index: 30; right: 18px; bottom: 77px; }.mobile-create-menu>summary { display: flex; align-items: center; justify-content: center; gap: 5px; min-width: 76px; height: 48px; padding: 0 16px; border-radius: 24px; background: var(--green); box-shadow: 0 9px 26px rgba(32,70,49,.28); color: white; cursor: pointer; list-style: none; font-weight: 800; }.mobile-create-menu>summary::-webkit-details-marker { display: none; }.mobile-create-menu[open]>summary { background: var(--green-dark); }.mobile-create-menu>div { position: absolute; right: 0; bottom: 58px; width: 210px; overflow: hidden; padding: 7px; border: 1px solid var(--line); border-radius: 15px; background: white; box-shadow: 0 14px 38px rgba(31,58,45,.2); }.mobile-create-menu button { display: block; width: 100%; padding: 13px 12px; border: 0; border-radius: 10px; background: white; color: var(--ink); cursor: pointer; text-align: left; font-weight: 700; }.mobile-create-menu button:hover { background: var(--mint); color: var(--green-dark); }
}

/* Keep the end of every page above the fixed mobile navigation. */
.shopping-item{grid-template-columns:30px minmax(180px,1fr) auto}.shopping-item>form{margin:0}.shopping-amount-button{display:grid;justify-items:end;min-width:90px;padding:7px 5px;border:0;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;text-align:right}.shopping-amount-button:hover,.shopping-amount-button:focus{outline:0;background:#edf5ef;color:var(--green-dark)}.shopping-amount-button strong{white-space:nowrap}.shopping-amount-button small{min-height:12px;margin-top:2px;color:#a26822;font-size:9px}.shopping-quantity-dialog{width:min(440px,calc(100% - 24px))}.shopping-quantity-input{display:flex;align-items:center;gap:8px}.shopping-quantity-input input{width:110px}.shopping-quantity-input i{color:var(--muted);font-style:normal}.shopping-quantity-remaining{margin:0;padding:10px 12px;border-radius:9px;background:#f2f7f3;color:var(--green-dark);font-size:11px}
@media (max-width: 600px) {
    html {
        scroll-padding-bottom: calc(136px + env(safe-area-inset-bottom, 0px));
    }

    .shell > aside {
        padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    }

    .shell nav .nav-children {
        bottom: calc(62px + env(safe-area-inset-bottom, 0px));
        max-height: calc(100vh - 128px);
        max-height: calc(100dvh - 128px - env(safe-area-inset-bottom, 0px));
        overflow-y: auto;
        overscroll-behavior: contain;
    }

}

/* Shared finance KPI layout for dashboard and finance overview. */
.finance-kpi-grid { display: grid; grid-template-columns: 1fr 1fr 1fr!important; gap: 18px; }
.finance-kpi-grid > * { grid-column: auto!important; }
.finance-kpi-dummy { display: block; visibility: hidden; pointer-events: none; }
.finance-kpi-grid > .finance-available { grid-column: auto!important; padding: 18px; border: 0; border-radius: 14px; background: #315d4b; color: white; text-align: center; }
.finance-kpi-grid > .finance-available small,.finance-kpi-grid > .finance-available span { color: #c9ded2; }
.finance-kpi-grid > .finance-available strong { color: white; }
.finance-totals.finance-kpi-grid > div:not(.finance-kpi-dummy) { display: grid; min-height: 140px; align-content: center; gap: 8px; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 5px 20px rgba(46,78,62,.04); }
.finance-totals.finance-kpi-grid > .budget-total { background: #f4f8f4!important; border-color: #dfe9e1!important; }
.finance-totals.finance-kpi-grid > .finance-available { background: #315d4b!important; border-color: transparent!important; color: white!important; }
.finance-totals.finance-kpi-grid > .finance-available span { color: #c9ded2!important; }
.finance-totals.finance-kpi-grid > .finance-available strong { color: white!important; }
.finance-quick-booking { display: grid; min-height: 140px; place-content: center; justify-items: center; gap: 7px; padding: 20px; border: 1px dashed #9fbea9; border-radius: 18px; background: #f5f9f5; color: var(--green); cursor: pointer; text-align: center; box-shadow: 0 5px 20px rgba(46,78,62,.03); }
.finance-quick-booking:hover { background: #eaf3ec; border-style: solid; }
.finance-quick-booking span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--mint); color: var(--green); font-size: 24px; }
.finance-quick-booking b { font-size: 16px; }.finance-quick-booking small { color: var(--muted); font-weight: 400; }
.finance-kpi-grid > :nth-child(2) { background: #fff6f3!important; border-color: #efd8d1!important; }
.finance-kpi-grid > :nth-child(2) strong { color: #c45b42!important; }

@media (max-width: 700px) {
    .finance-kpi-grid { grid-template-columns: 1fr!important; }
    .finance-kpi-dummy { display: none; }
    .finance-kpi-grid > *,.finance-kpi-grid > .finance-available { grid-column: 1!important; }
}

/* Meal planner, recipe library and shopping list. */
.meal-actions,.meal-section>.actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }.meal-tabs{margin:0}.meal-tabs span{margin-left:5px;color:var(--muted);font-size:10px}.meal-planner-week{margin-bottom:30px}.meal-calendar{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));margin-top:18px;overflow-x:auto;border:1px solid var(--line);border-radius:15px}.meal-calendar>article{min-height:190px;padding:12px;border-right:1px solid var(--line);background:#fff}.meal-calendar>article:last-of-type{border-right:0}.meal-calendar>article.today{background:#f2f8f3}.meal-calendar article>header{display:flex;justify-content:space-between;margin-bottom:12px}.meal-calendar article>header small{color:var(--muted)}.meal-empty{width:100%;min-height:120px;border:1px dashed #bdd0c1;border-radius:12px;background:#fafcfa;color:var(--green);cursor:pointer}.planned-meal{position:relative;display:grid;gap:5px}.planned-meal img,.planned-meal>span{width:100%;height:78px;object-fit:cover;border-radius:10px}.planned-meal>span{display:grid;place-items:center;background:var(--mint);font-size:28px}.planned-meal small{color:var(--muted)}.planned-meal form{position:absolute;top:5px;right:5px}.planned-meal form button{width:25px;height:25px;border:0;border-radius:50%;background:rgba(255,255,255,.9);cursor:pointer}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:18px}.recipe-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 6px 22px rgba(38,70,51,.04)}.recipe-image{position:relative;height:175px;background:#edf4ee}.recipe-image img{width:100%;height:100%;object-fit:cover}.recipe-image>span{display:grid;height:100%;place-items:center;font-size:50px}.recipe-image em{position:absolute;right:12px;bottom:12px;padding:6px 9px;border-radius:999px;background:#fff7e7;color:#986b19;font-size:10px;font-style:normal;font-weight:700}.recipe-image em.complete{background:#e8f4e9;color:var(--green-dark)}.recipe-body{padding:19px}.recipe-body>small,.recipe-body>p{color:var(--muted)}.recipe-body h3{margin:5px 0 8px;font-size:19px}.recipe-body>p{min-height:38px}.recipe-meta{display:flex;flex-wrap:wrap;gap:6px;margin:13px 0}.recipe-meta span{padding:5px 8px;border-radius:8px;background:#f2f5f2;color:var(--muted);font-size:10px}.recipe-details{margin:14px 0}.recipe-details summary{cursor:pointer;color:var(--green-dark);font-weight:700}.recipe-details>div{max-height:330px;overflow:auto;padding:8px 4px}.recipe-details li{margin-bottom:7px}.recipe-buttons{display:flex;gap:8px;margin-top:15px}.recipe-buttons form{margin:0}.recipe-form small{color:var(--muted);font-weight:400}.shopping-list{margin-top:32px}.shopping-add{display:grid;grid-template-columns:minmax(180px,1.5fr) 100px 100px minmax(160px,1fr) auto;gap:9px;margin:18px 0 24px}.shopping-add input,.shopping-add select{min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:white}.shopping-category{margin-top:18px}.shopping-category h3{padding-bottom:8px;border-bottom:1px solid var(--line);color:var(--green-dark);font-size:14px}.shopping-item{display:grid;grid-template-columns:30px 1fr auto;gap:11px;align-items:center;padding:10px 3px;border-bottom:1px solid #edf0ee}.shopping-item span small{display:block;margin-top:2px;color:var(--muted)}.shopping-item.checked{opacity:.55}.shopping-item.checked b{text-decoration:line-through}.dashboard-meal-image{width:48px!important;height:48px!important;margin-top:4px;border-radius:50%;object-fit:cover}.import-steps{display:flex;gap:8px;margin:18px 0}.import-steps span{flex:1;padding:11px;border-radius:10px;background:#edf1ee;color:var(--muted);text-align:center;font-size:11px;font-weight:700}.import-steps span.active{background:var(--mint);color:var(--green-dark)}.recipe-import-source{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(350px,1fr);gap:28px}.import-notice,.import-warning{margin:16px 0;padding:15px;border:1px solid #ead9aa;border-radius:12px;background:#fff9e9;color:#775d20}.caption-selector,.import-review{margin-top:20px}.caption-legend{display:flex;gap:6px}.caption-legend span{padding:6px 9px;border-radius:8px;background:#f0f2f1;font-size:10px}.caption-legend .ingredient{background:#e3f2e6;color:#2f7545}.caption-legend .instruction{background:#e7eff8;color:#416c97}#caption-lines{display:grid;gap:6px;margin:16px 0}#caption-lines button{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f7f8f7;color:var(--muted);cursor:pointer;text-align:left}#caption-lines button[data-kind="ingredient"]{border-color:#afd0b7;background:#e7f4e9;color:#285f39}#caption-lines button[data-kind="instruction"]{border-color:#b7cce1;background:#eaf2fa;color:#355f87}.import-preview-head{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:center}.import-preview-head img,.import-preview-head>span{width:130px;height:110px;border-radius:12px;object-fit:cover}.import-preview-head>span{display:grid;place-items:center;background:var(--mint);font-size:38px}
@media(max-width:900px){.recipe-import-source{grid-template-columns:1fr}.shopping-add{grid-template-columns:1fr 1fr}.shopping-add input:first-of-type,.shopping-add button{grid-column:1/-1}.meal-calendar>article{min-width:145px}}
@media(max-width:600px){.meal-actions,.meal-section>.actions{align-items:stretch;flex-direction:column}.meal-actions>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:7px}.meal-actions a,.meal-actions button{text-align:center}.meal-tabs{display:grid;width:100%;grid-template-columns:repeat(3,1fr)}.meal-tabs a{padding-inline:7px;text-align:center}.shopping-add{grid-template-columns:1fr}.shopping-add>*{grid-column:1!important}.import-steps span{padding:9px 4px;font-size:9px}.caption-legend{display:none}.import-preview-head{grid-template-columns:1fr}.import-preview-head img,.import-preview-head>span{width:100%;height:160px}}
.recipe-card[data-recipe-context]{position:relative}.recipe-context-trigger{position:absolute;z-index:3;top:12px;right:12px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(38,70,51,.12);border-radius:50%;background:rgba(255,255,255,.94);color:var(--green-dark);font-size:21px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(38,70,51,.13);backdrop-filter:blur(5px)}.recipe-context-trigger:hover,.recipe-context-trigger:focus{outline:0;background:#fff;box-shadow:0 6px 18px rgba(38,70,51,.2)}.recipe-context-menu{position:fixed;z-index:1000;display:grid;width:220px;padding:6px;border:1px solid #dbe6de;border-radius:13px;background:#fff;box-shadow:0 14px 38px rgba(28,52,40,.2);overflow:hidden}.recipe-context-menu[hidden]{display:none!important}.recipe-context-menu form{margin:0;border-top:1px solid #edf1ee}.recipe-context-menu button{display:flex;align-items:center;width:100%;min-height:42px;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:12px;font-weight:700;text-align:left;cursor:pointer}.recipe-context-menu button:hover,.recipe-context-menu button:focus{outline:0;background:#edf5ef;color:var(--green-dark)}
.recipe-category-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.recipe-category-filters button,.recipe-category-tags span{padding:7px 10px;border:1px solid #dce7df;border-radius:999px;background:#fff;color:var(--muted);font-size:11px;cursor:pointer}.recipe-category-filters button.active,.recipe-category-filters button:hover{border-color:#a9c8b4;background:var(--mint);color:var(--green-dark);font-weight:700}.recipe-category-tags{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 13px}.recipe-category-tags span{padding:4px 8px;background:#f2f7f3;color:var(--green-dark);cursor:default}
.recipe-card[data-recipe-context]{overflow:visible}.recipe-card[data-recipe-context] .recipe-image{overflow:hidden;border-radius:18px 18px 0 0}.recipe-action-popup{position:absolute;z-index:6;top:12px;right:12px}.recipe-action-popup>summary{position:static;list-style:none}.recipe-action-popup>summary::-webkit-details-marker{display:none}.recipe-action-popup>.recipe-context-menu{position:absolute;top:42px;right:0;left:auto;width:225px}.recipe-action-popup:not([open])>.recipe-context-menu{display:none!important}
.meal-calendar>article{min-height:430px;padding:12px 10px}.day-meal-slots{display:grid;gap:10px}.meal-slot{display:grid;gap:6px;padding-top:9px;border-top:1px solid #e8eee9}.meal-slot:first-child{padding-top:0;border-top:0}.meal-slot-label{color:var(--green-dark)!important;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.meal-slot .planned-meal{gap:3px}.meal-slot .planned-meal img,.meal-slot .planned-meal>span{height:68px}.meal-slot-add{min-height:54px;padding:8px;font-size:11px}.meal-plan-dialog{width:min(650px,calc(100% - 24px))}.meal-plan-dialog>.form{gap:17px}.meal-plan-dialog h2{margin:4px 0 0}.recipe-picker{min-width:0;margin:0;padding:0;border:0}.recipe-picker legend{margin-bottom:8px;color:#54675e;font-size:12px;font-weight:700}.recipe-picker-list{display:grid;gap:7px;max-height:360px;padding:4px;overflow:auto;border:1px solid var(--line);border-radius:13px;background:#f8faf8}.recipe-picker-option{position:relative;display:grid!important;grid-template-columns:auto 64px 1fr auto;gap:11px!important;align-items:center;padding:8px!important;border:1px solid transparent;border-radius:10px;background:#fff!important;color:var(--ink)!important;cursor:pointer}.recipe-picker-option>input{width:17px!important;margin:0}.recipe-picker-option>img,.recipe-picker-placeholder{width:64px!important;height:54px!important;border-radius:8px;object-fit:cover}.recipe-picker-placeholder{display:grid;place-items:center;background:var(--mint);font-size:24px}.recipe-picker-option span b,.recipe-picker-option span small{display:block}.recipe-picker-option span small{margin-top:4px;color:var(--muted);font-size:10px}.recipe-picker-option>i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#eef2ef;color:transparent;font-style:normal}.recipe-picker-option:has(input:checked){border-color:#91b69e;background:#edf6ef!important}.recipe-picker-option:has(input:checked)>i{background:var(--green);color:#fff}.recipe-picker-option.recommended::after{content:'Passend';position:absolute;top:5px;right:38px;padding:3px 6px;border-radius:999px;background:#e4f1e7;color:var(--green-dark);font-size:8px;font-weight:800}.recipe-picker-option.recommended{order:-1}
@media(max-width:600px){.meal-calendar>article{min-height:390px}.meal-plan-dialog>.form{padding:22px 17px}.recipe-picker-list{max-height:330px}.recipe-picker-option{grid-template-columns:auto 55px 1fr auto}.recipe-picker-option>img,.recipe-picker-placeholder{width:55px!important;height:48px!important}.recipe-picker-option.recommended::after{display:none}}
.meal-calendar{align-items:start}.meal-calendar>article{min-height:0;padding:13px 10px 15px}.day-meal-slots{gap:8px}.meal-slot{gap:5px;padding:8px;border:1px solid #e3ebe5;border-radius:10px;background:#fbfcfb}.meal-slot:first-child{padding-top:8px;border-top:1px solid #e3ebe5}.meal-slot-label{padding:0 2px}.meal-slot-add{min-height:45px;border:1px dashed #b9cfbf;border-radius:8px;background:#fff}.meal-slot .planned-meal{display:grid;grid-template-columns:54px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:0}.meal-slot .planned-meal img,.meal-slot .planned-meal>span{grid-row:1/3;width:54px!important;height:48px!important;border-radius:7px}.meal-slot .planned-meal b{align-self:end;overflow:hidden;font-size:11px;line-height:1.25;text-overflow:ellipsis}.meal-slot .planned-meal small{align-self:start;font-size:9px}.meal-slot .planned-meal form{top:-5px;right:-5px}.meal-slot .planned-meal form button{width:21px;height:21px;font-size:11px}.meal-plan-dialog{width:min(590px,calc(100% - 24px))}.recipe-picker-list{gap:6px;max-height:310px;padding:6px}.recipe-picker-option{grid-template-columns:auto 76px minmax(0,1fr) auto;min-height:66px;padding:6px!important}.recipe-picker-option>img,.recipe-picker-placeholder{width:76px!important;min-width:76px!important;max-width:76px!important;height:54px!important;min-height:54px!important;max-height:54px!important;object-fit:cover!important}.recipe-picker-option span{min-width:0}.recipe-picker-option span b{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.recipe-picker-option.recommended::after{top:4px;right:36px}.meal-plan-dialog .form>label:first-of-type{margin-bottom:0}
@media(max-width:600px){.meal-calendar>article{min-height:0}.meal-slot .planned-meal{grid-template-columns:48px minmax(0,1fr)}.meal-slot .planned-meal img,.meal-slot .planned-meal>span{width:48px!important;height:44px!important}.recipe-picker-option{grid-template-columns:auto 58px minmax(0,1fr) auto}.recipe-picker-option>img,.recipe-picker-placeholder{width:58px!important;min-width:58px!important;max-width:58px!important;height:48px!important;min-height:48px!important;max-height:48px!important}}
.recipe-library-actions{display:flex;flex-wrap:wrap;gap:8px}.recipe-category-dialog{width:min(650px,calc(100% - 24px))}.category-create{display:grid;grid-template-columns:1fr auto;gap:8px}.category-create input,.recipe-category-list input{min-width:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fbfcfb}.recipe-category-list{display:grid;gap:7px;max-height:390px;overflow:auto}.recipe-category-list article{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;padding:8px;border:1px solid #e4ebe6;border-radius:11px;background:#fafcfa}.recipe-category-list article>form:first-child{display:grid;grid-template-columns:minmax(120px,1fr) auto auto;gap:8px;align-items:center}.recipe-category-list article form{margin:0}.recipe-category-list article small{white-space:nowrap}.category-autocomplete{position:relative;display:block}.category-suggestions{position:absolute;z-index:20;top:calc(100% + 5px);right:0;left:0;display:grid;padding:5px;border:1px solid #dce7df;border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(28,52,40,.18)}.category-suggestions[hidden]{display:none!important}.category-suggestions button{padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.category-suggestions button:hover,.category-suggestions button.active{background:var(--mint);color:var(--green-dark)}.category-suggestions .create-category-suggestion{border-top:1px solid #edf1ee;color:var(--green);font-weight:700}
@media(max-width:600px){.recipe-library-actions{display:grid;grid-template-columns:1fr}.category-create,.recipe-category-list article>form:first-child{grid-template-columns:1fr}.recipe-category-list article{grid-template-columns:1fr auto}.recipe-category-list article>form:first-child .secondary{width:100%}}
.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(280px,320px));justify-content:start;align-items:start}.recipe-card-compact{width:100%;min-width:0;align-self:start}.recipe-card-compact .recipe-image{height:158px}.recipe-image-categories{position:absolute;z-index:2;top:11px;right:56px;left:11px;display:flex;flex-wrap:wrap;gap:5px;pointer-events:none}.recipe-image-categories span{max-width:120px;overflow:hidden;padding:4px 7px;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(255,255,255,.9);color:var(--green-dark);font-size:9px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 2px 8px rgba(30,55,42,.1);backdrop-filter:blur(4px)}.recipe-body-compact{padding:15px 17px 13px}.recipe-body-compact>small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.recipe-body-compact>h3{display:-webkit-box;min-height:44px;max-height:44px;margin:5px 0 10px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:18px;line-height:1.2}.recipe-card-details{border-top:1px solid #edf1ee}.recipe-card-details>summary{display:flex;align-items:center;justify-content:space-between;padding:10px 0 2px;list-style:none;color:var(--green-dark);font-size:11px;font-weight:800;cursor:pointer}.recipe-card-details>summary::-webkit-details-marker{display:none}.recipe-card-details>summary i{font-style:normal;transition:transform .2s}.recipe-card-details[open]>summary i{transform:rotate(180deg)}.recipe-expanded{padding:10px 0 3px}.recipe-expanded>p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.55}.recipe-content{max-height:330px;margin-top:14px;padding-right:4px;overflow:auto}.recipe-content h4{margin:12px 0 7px}.recipe-content ul,.recipe-content ol{margin:0;padding-left:20px}.recipe-content li{margin-bottom:6px;font-size:12px;line-height:1.45}.recipe-expanded .recipe-buttons{display:grid;grid-template-columns:1fr 1fr;margin-top:15px}.recipe-expanded .recipe-buttons button{width:100%;height:100%}
@media(max-width:600px){.recipe-grid{grid-template-columns:minmax(0,1fr)}.recipe-card-compact{max-width:none}.recipe-card-compact .recipe-image{height:150px}}
.meal-week-scroll{margin-top:18px;overflow-x:auto;border:1px solid var(--line);border-radius:14px}.meal-week-table{width:100%;min-width:1120px;border-spacing:0;border-collapse:separate;table-layout:fixed;background:#fff}.meal-week-table th,.meal-week-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.meal-week-table tr:last-child>*{border-bottom:0}.meal-week-table tr>*:last-child{border-right:0}.meal-week-table thead th{height:48px;padding:8px;background:#fafcfa;text-align:center}.meal-week-table thead th b,.meal-week-table thead th small{display:block}.meal-week-table thead th small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:400}.meal-week-table .meal-row-corner,.meal-week-table .meal-row-label{width:94px;min-width:94px}.meal-week-table .meal-row-label{position:sticky;z-index:4;padding:10px 8px;background:#f4f8f5;color:var(--green-dark);font-size:10px;text-align:center;text-transform:uppercase;letter-spacing:.04em;writing-mode:horizontal-tb}.meal-week-table tr>.meal-row-label:first-child{left:0}.meal-week-table tr>.meal-row-label:last-child{right:0}.meal-week-table td{height:130px;padding:7px;vertical-align:top;background:#fff}.meal-week-table .today{background:#f1f7f2}.meal-cell-plans{display:grid;gap:6px}.meal-week-table .planned-meal{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;gap:1px 7px;align-items:center;padding:5px;border:1px solid #e2ebe4;border-radius:9px;background:#fff}.meal-week-table .planned-meal img,.meal-week-table .planned-meal>span{grid-row:1/3;width:48px!important;height:43px!important;border-radius:7px;object-fit:cover}.meal-week-table .planned-meal b{align-self:end;overflow:hidden;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.meal-week-table .planned-meal small{align-self:start;font-size:8px}.meal-week-table .planned-meal form{top:1px;right:1px}.meal-week-table .planned-meal form button{width:18px;height:18px;font-size:10px}.meal-table-empty,.meal-add-more{width:100%;border-radius:8px;color:var(--green);cursor:pointer}.meal-table-empty{min-height:82px;margin:14px 0 0;border:1px dashed #b9cfbf;background:#fbfdfb;font-size:10px}.meal-add-more{margin-top:6px;padding:6px;border:0;background:#edf5ef;font-size:9px;font-weight:800}.meal-add-more:hover,.meal-table-empty:hover{background:#e5f1e8}.meal-week-table td:has(.planned-meal) .meal-add-more{display:block}
@media(max-width:700px){.meal-planner-week{padding:18px 12px}.meal-week-table{min-width:1000px}.meal-week-table .meal-row-corner,.meal-week-table .meal-row-label{width:78px;min-width:78px}.meal-week-table td{height:120px}}
.shopping-head>div:last-child{display:flex;align-items:center;gap:12px}.shopping-head>div:last-child>form{margin:0}.shopping-head button:disabled{opacity:.45;cursor:not-allowed}.shopping-hint{margin:12px 0 4px;padding:11px 13px;border-radius:10px;background:#f2f7f3;color:var(--muted);font-size:12px}.shopping-complete-dialog{width:min(570px,calc(100% - 24px))}.shopping-complete-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.shopping-category-warning{margin:0;padding:10px;border-radius:9px;background:#fff7e7;color:#85631d;font-size:11px}.quick-icon.shopping{background:#edf5ef;color:var(--green-dark)}
@media(max-width:600px){.shopping-head{align-items:flex-start}.shopping-head>div:last-child{align-items:flex-end;flex-direction:column}.shopping-head .primary{padding:9px 11px;font-size:10px}.shopping-complete-fields{grid-template-columns:1fr}}
.recipe-yield-fields{display:grid;grid-template-columns:90px 1fr;gap:7px}.recipe-yield-fields input,.recipe-yield-fields select{min-width:0}.recipe-scale{display:flex;align-items:center;gap:7px;margin:14px 0 4px;padding:9px 10px;border-radius:10px;background:#f2f7f3;color:var(--green-dark);font-size:11px}.recipe-scale>span{margin-right:auto;font-weight:700}.recipe-scale button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid #bdd2c2;border-radius:8px;background:white;color:var(--green-dark);font-weight:800;cursor:pointer}.recipe-scale input{width:54px;padding:6px;border:1px solid #bdd2c2;border-radius:8px;background:white;text-align:center}.recipe-scale>b{min-width:55px}.recipe-content [data-scaled-ingredient]>small{display:block;margin:3px 0 7px;color:#658273;font-size:9px}.package-shopping-tip{color:var(--green)!important;font-weight:700}
.ai-import-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:20px;align-items:start}.ai-prompt-card pre{max-height:520px;margin:18px 0 0;padding:18px;overflow:auto;border:1px solid #dce7df;border-radius:13px;background:#f7faf8;color:#294337;font:11px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.ai-json-card{position:sticky;top:20px}.ai-import-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px}.ai-import-divider::before,.ai-import-divider::after{content:'';height:1px;flex:1;background:var(--line)}.ai-import-error{display:grid;gap:4px;margin-top:14px}.ai-import-review{margin-top:24px}.ai-import-review>.recipe-form{max-width:900px}.ai-import-review>.recipe-form>h2{display:none}
@media(max-width:900px){.ai-import-grid{grid-template-columns:1fr}.ai-json-card{position:static}}@media(max-width:600px){.ai-prompt-card .card-head{align-items:flex-start;flex-direction:column}.ai-prompt-card pre{max-height:390px;padding:13px;font-size:9px}}
.ai-image-attribution{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;margin:15px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8faf8}.ai-image-attribution img{width:110px;height:74px;border-radius:9px;object-fit:cover}.ai-image-attribution span,.recipe-image-credit{color:var(--muted);font-size:10px}.ai-batch-preview{display:grid;gap:8px;margin-top:18px}.ai-batch-preview article{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:13px;align-items:center;padding:9px;border:1px solid #dfe8e1;border-radius:12px;background:#fbfdfb}.ai-batch-preview article.duplicate{opacity:.62;background:#f3f4f3}.ai-batch-preview article>img,.ai-batch-placeholder{width:82px;height:64px;border-radius:9px;object-fit:cover}.ai-batch-placeholder{display:grid;place-items:center;background:var(--mint);font-size:25px}.ai-batch-preview h3{margin:0 0 4px;font-size:14px}.ai-batch-preview p{margin:5px 0;color:var(--green-dark);font-size:10px}.ai-batch-preview article>b{padding:5px 8px;border-radius:999px;background:var(--mint);color:var(--green-dark);font-size:9px}.ai-batch-preview .duplicate>b{background:#eceeed;color:var(--muted)}.ai-batch-submit{display:flex;justify-content:flex-end;margin-top:16px}.ai-batch-submit textarea{display:none}.recipe-image-credit{padding:7px 9px!important;border-radius:8px;background:#f4f7f5}.recipe-image-credit a{font-weight:700}
.ai-prompt-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:16px 0 10px;padding:5px;border-radius:12px;background:#f0f4f1}.ai-prompt-tabs button{padding:9px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.ai-prompt-tabs button.active{background:#fff;color:var(--green-dark);box-shadow:0 2px 8px rgba(35,66,48,.1)}.ai-prompt-card pre[hidden]{display:none}.ai-format-details{margin-top:10px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.ai-format-details>summary{padding:12px 14px;color:var(--green-dark);font-size:11px;font-weight:800;cursor:pointer}.ai-format-details>pre{max-height:430px;margin:0;border:0;border-top:1px solid var(--line);border-radius:0}
.recipe-filter-area{display:grid;gap:8px;margin:0 0 20px}.recipe-filter-reset{justify-self:start;padding:7px 12px;border:1px solid #dce7df;border-radius:999px;background:#fff;color:var(--muted);font-size:11px;cursor:pointer}.recipe-filter-reset.active,.recipe-filter-reset:hover{border-color:#91b69e;background:var(--green-dark);color:#fff}.recipe-filter-area .recipe-category-filters{margin:0;padding:9px 10px;border-radius:12px}.recipe-category-filters-primary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#eef5f0}.recipe-category-filters-primary button{text-align:center}.recipe-category-filters-secondary{background:#f8faf8}.recipe-category-manager{max-width:1180px}.recipe-category-manager>.category-create{max-width:650px;margin:20px 0}.category-manager-list{display:grid;gap:10px}.category-manager-item{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.category-manager-item>summary{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;list-style:none;cursor:pointer}.category-manager-item>summary::-webkit-details-marker{display:none}.category-manager-item>summary span b,.category-manager-item>summary span small{display:block}.category-manager-item>summary span small{margin-top:4px;color:var(--muted);font-size:10px}.category-manager-item>summary i{font-style:normal;transition:transform .2s}.category-manager-item[open]>summary{background:#f3f8f4}.category-manager-item[open]>summary i{transform:rotate(180deg)}.category-manager-body{padding:14px 18px 18px;border-top:1px solid var(--line)}.category-manager-actions{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:9px;align-items:center}.category-manager-actions form{margin:0}.category-manager-actions form:first-child{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:8px}.category-manager-actions input{min-width:0;padding:10px;border:1px solid var(--line);border-radius:9px}.category-linked-recipes{display:grid;gap:7px;margin-top:15px}.category-linked-recipes article{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:11px;align-items:center;padding:7px;border:1px solid #e4ebe6;border-radius:10px;background:#fbfcfb}.category-linked-recipes article>img,.category-linked-recipes article>span{width:58px;height:44px;border-radius:7px;object-fit:cover}.category-linked-recipes article>span{display:grid;place-items:center;background:var(--mint)}.category-linked-recipes article form{margin:0}.category-recipe-dialog{width:min(660px,calc(100% - 24px))}.category-recipe-dialog .recipe-picker-list{max-height:420px}.recipe-picker-option.already-linked{opacity:.5;cursor:default}.recipe-picker-option.already-linked>i{background:#e4eee7;color:var(--green-dark)}
@media(max-width:700px){.recipe-category-filters-primary{grid-template-columns:1fr 1fr}.category-manager-actions{grid-template-columns:1fr}.category-manager-actions form:first-child{grid-template-columns:1fr}.category-manager-actions button{width:100%}.category-linked-recipes article{grid-template-columns:48px minmax(0,1fr) auto}.category-linked-recipes article>img,.category-linked-recipes article>span{width:48px;height:40px}}
.recipe-create-menu{position:relative;z-index:12}.recipe-create-menu>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer}.recipe-create-menu>summary::-webkit-details-marker{display:none}.recipe-create-menu>summary span{font-size:10px;transition:transform .2s}.recipe-create-menu[open]>summary span{transform:rotate(180deg)}.recipe-create-menu>div{position:absolute;top:calc(100% + 7px);right:0;display:grid;width:285px;padding:7px;border:1px solid #dbe6de;border-radius:13px;background:#fff;box-shadow:0 15px 38px rgba(28,52,40,.2)}.recipe-create-menu>div>a,.recipe-create-menu>div>button{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;min-height:45px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.recipe-create-menu>div>a:hover,.recipe-create-menu>div>button:hover{background:var(--mint);color:var(--green-dark)}.recipe-create-menu>div b{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#edf5ef;color:var(--green-dark)}.recipe-create-menu>div span{font-size:11px;font-weight:750}
.recipe-shopping-dialog{width:min(590px,calc(100% - 24px))}.shopping-ingredient-picker{min-width:0;margin:0;padding:0;border:0}.shopping-ingredient-picker legend{margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:800}.shopping-ingredient-picker>div{display:grid;gap:6px;max-height:380px;padding:6px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#f8faf8}.shopping-ingredient-picker label{display:grid;grid-template-columns:20px 28px minmax(0,1fr);gap:9px;align-items:center;padding:9px;border:1px solid transparent;border-radius:9px;background:#fff;cursor:pointer}.shopping-ingredient-picker label>input{width:17px;height:17px;margin:0}.shopping-ingredient-picker label>i{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#edf1ee;color:transparent;font-style:normal}.shopping-ingredient-picker label:has(input:checked){border-color:#a9c8b4;background:#edf6ef}.shopping-ingredient-picker label:has(input:checked)>i{background:var(--green);color:#fff}.shopping-ingredient-picker b,.shopping-ingredient-picker small{display:block}.shopping-ingredient-picker small{margin-top:3px;color:var(--muted);font-size:10px}
@media(max-width:600px){.recipe-library-actions .recipe-create-menu{width:100%}.recipe-create-menu>summary{justify-content:center}.recipe-create-menu>div{right:0;left:0;width:auto}.meal-actions>div:last-child{display:block}}
@media(max-width:600px){.ai-batch-preview article{grid-template-columns:64px minmax(0,1fr)}.ai-batch-preview article>img,.ai-batch-placeholder{width:64px;height:54px}.ai-batch-preview article>b{grid-column:2;justify-self:start}.ai-batch-submit .primary{width:100%}.ai-image-attribution{grid-template-columns:80px 1fr}.ai-image-attribution img{width:80px;height:60px}}
.community-intro,.admin-community-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.community-intro h2,.admin-community-head h2{margin:4px 0}.community-intro p,.admin-community-head p{margin-bottom:0}.community-recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,320px));gap:18px;align-items:start}.community-recipe-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 7px 24px rgba(31,57,42,.05)}.community-recipe-image{position:relative;height:160px;background:var(--mint)}.community-recipe-image>img{width:100%;height:100%;object-fit:cover}.community-recipe-image>span{display:grid;height:100%;place-items:center;font-size:42px}.community-recipe-image>div{position:absolute;right:10px;bottom:10px;left:10px;display:flex;flex-wrap:wrap;gap:4px}.community-recipe-image i{padding:4px 7px;border-radius:99px;background:rgba(255,255,255,.92);color:var(--green-dark);font-size:9px;font-style:normal;font-weight:800}.community-recipe-body{padding:15px}.community-recipe-body>small{color:var(--muted);font-size:10px}.community-recipe-body>h2{min-height:43px;margin:4px 0 7px;font-size:18px}.community-recipe-body>p{display:-webkit-box;min-height:37px;margin:0 0 12px;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.community-meta{display:flex;flex-wrap:wrap;gap:5px}.community-meta span{padding:4px 7px;border-radius:99px;background:#f1f5f2;color:var(--muted);font-size:9px}.community-details{margin-top:12px;border-top:1px solid var(--line)}.community-details>summary{display:flex;justify-content:space-between;padding:11px 0;list-style:none;color:var(--green-dark);font-size:11px;font-weight:800;cursor:pointer}.community-details>summary::-webkit-details-marker{display:none}.community-details>div{max-height:300px;overflow:auto;font-size:11px;line-height:1.5}.community-details h3{margin:7px 0}.community-details ul,.community-details ol{padding-left:19px}.community-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px}.community-actions form{margin:0}.community-actions .primary{padding:9px 11px;font-size:10px}.report-link{padding:5px;border:0;background:none;color:var(--muted);font-size:9px;text-decoration:underline;cursor:pointer}.community-own,.community-saved{color:var(--green-dark);font-size:10px;font-weight:800}.community-report-dialog,.community-publish-dialog{width:min(570px,calc(100% - 24px))}.recipe-context-menu form{margin:0}.recipe-context-menu form button{width:100%}.admin-community-list{display:grid;gap:16px}.admin-community-recipe{display:grid;grid-template-columns:110px 1fr;gap:15px;align-items:center}.admin-community-recipe>img,.admin-community-recipe>span{width:110px;height:78px;border-radius:10px;object-fit:cover}.admin-community-recipe>span{display:grid;place-items:center;background:var(--mint);font-size:28px}.admin-community-recipe h2{margin:3px 0}.admin-community-recipe p,.admin-community-recipe small{margin:0;color:var(--muted)}.admin-report-list{display:grid;gap:7px;margin:17px 0}.admin-report-list>div{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fafcfa}.admin-report-list small{display:block;margin-top:3px;color:var(--muted)}.admin-report-list p{margin:7px 0 0}.admin-report-list form,.admin-community-actions form{margin:0}.admin-community-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-community-actions .danger{width:auto}.account-community{margin-top:20px}.account-community .form{max-width:650px}.account-community .error{display:grid;gap:4px}
@media(max-width:600px){.community-intro,.admin-community-head{align-items:flex-start;flex-direction:column}.community-recipe-grid{grid-template-columns:1fr}.admin-community-recipe{grid-template-columns:76px 1fr}.admin-community-recipe>img,.admin-community-recipe>span{width:76px;height:62px}.admin-report-list>div{grid-template-columns:1fr}.admin-report-list button,.admin-community-actions form,.admin-community-actions button{width:100%!important}}
.recipe-context-note{display:block;padding:10px;color:var(--muted);font-size:10px;font-weight:700;line-height:1.35}
.recipe-image-rights{padding:0;border:1px solid var(--line);border-radius:12px;background:#fafcfa}.recipe-image-rights>summary{display:flex;justify-content:space-between;padding:12px 14px;list-style:none;color:var(--green-dark);font-size:11px;font-weight:800;cursor:pointer}.recipe-image-rights>summary::-webkit-details-marker{display:none}.recipe-image-rights>summary span{color:var(--muted);font-size:9px;font-weight:600}.recipe-image-rights>div,.recipe-image-rights>label,.recipe-image-rights>.form-hint{margin-right:13px;margin-left:13px}.recipe-image-rights>div{padding-top:4px}.recipe-image-rights>.form-hint{margin-bottom:13px}.community-image-credit{min-height:0!important;margin:8px 0!important;padding:7px 8px;border-radius:8px;background:#f5f8f5;color:var(--muted)!important;font-size:9px!important}.community-image-credit a{color:var(--green-dark);font-weight:700}

/* Weekly meal workflow: view, shop and cook without leaving the planner. */
.meal-week-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.planned-meal-open{display:grid;grid-column:1/-1;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;gap:1px 7px;align-items:center;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.meal-week-table .planned-meal-open img,.meal-week-table .planned-meal-open>span{grid-row:1/3;width:48px;height:43px;border-radius:7px;object-fit:cover}.planned-meal-open:hover b{color:var(--green)}.week-shopping-dialog{width:min(760px,calc(100% - 24px))}.week-shopping-shortcuts{display:flex;gap:7px;flex-wrap:wrap}.week-shopping-days{display:grid;gap:10px;max-height:55vh;padding:3px;overflow:auto}.week-shopping-days>h3{position:sticky;top:0;z-index:2;margin:8px 0 0;padding:8px 4px;background:#fff;color:var(--green-dark);font-size:13px}.week-shopping-recipe{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fbfcfb}.week-shopping-recipe[hidden]{display:none}.week-shopping-recipe-head{display:block!important;padding:9px 11px!important;background:#f2f7f3!important;cursor:pointer}.week-shopping-recipe-head>input{position:absolute;opacity:0}.week-shopping-recipe-head>span{display:grid;grid-template-columns:54px 1fr;grid-template-rows:auto auto;gap:2px 10px;align-items:center}.week-shopping-recipe-head img{grid-row:1/3;width:54px;height:44px;border-radius:8px;object-fit:cover}.week-shopping-recipe-head small{color:var(--muted)}.week-shopping-recipe-head:has(input:not(:checked)){opacity:.55}.week-shopping-ingredients{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:8px;background:#edf1ee}.week-shopping-ingredients label{display:grid!important;grid-template-columns:23px 1fr auto;gap:8px!important;align-items:center;padding:8px!important;background:#fff!important;cursor:pointer}.week-shopping-ingredients input{position:absolute;opacity:0}.week-shopping-ingredients i{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--green);color:#fff;font-style:normal}.week-shopping-ingredients input:not(:checked)+i{background:#e5eae6;color:transparent}.week-shopping-ingredients small{color:var(--muted)}.planned-recipe-dialog{width:min(850px,calc(100% - 24px))}.planned-recipe-head{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:center}.planned-recipe-head>img{width:180px;height:135px;border-radius:14px;object-fit:cover}.planned-recipe-head h2{margin:5px 0}.planned-recipe-head p{color:var(--muted)}.planned-recipe-columns{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(300px,1.25fr);gap:24px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.planned-recipe-columns li{margin-bottom:8px;line-height:1.45}.planned-recipe-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:20px}.cook-mode-dialog{width:min(980px,calc(100% - 20px));max-height:94vh}.cook-mode-title{text-align:center}.cook-mode-title h2{margin:5px 0}.cook-mode-title p{color:var(--muted)}.cook-mode-recipes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:22px}.cook-mode-recipes>article{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fafcfa}.cook-mode-recipes header{display:grid;grid-template-columns:76px 1fr;gap:12px;align-items:center}.cook-mode-recipes header img{width:76px;height:62px;border-radius:9px;object-fit:cover}.cook-mode-recipes h3{margin:0 0 5px}.cook-mode-recipes details{margin:15px 0}.cook-mode-recipes details summary{color:var(--green-dark);font-weight:800;cursor:pointer}.cook-steps{display:grid;gap:9px}.cook-steps label{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start;padding:11px;border:1px solid #e2e9e4;border-radius:10px;background:#fff;cursor:pointer}.cook-steps input{position:absolute;opacity:0}.cook-steps i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--mint);color:var(--green-dark);font-style:normal;font-weight:800}.cook-steps label:has(input:checked){opacity:.55}.cook-steps label:has(input:checked) span{text-decoration:line-through}.cook-steps label:has(input:checked) i{background:var(--green);color:#fff}
@media(max-width:700px){.meal-planner-week>.card-head{align-items:flex-start}.meal-week-actions .primary{flex-basis:100%}.week-shopping-ingredients{grid-template-columns:1fr}.planned-recipe-head{grid-template-columns:1fr}.planned-recipe-head>img{width:100%;height:180px}.planned-recipe-columns{grid-template-columns:1fr}.planned-recipe-actions{flex-direction:column}.planned-recipe-actions>*{width:100%}.cook-mode-recipes{grid-template-columns:1fr}}

.week-shopping-recipe-head.without-image>span{grid-template-columns:1fr;padding:3px 2px}.week-shopping-recipe-head b{min-width:0;overflow-wrap:anywhere;line-height:1.35}.week-shopping-recipe-head.without-image b{font-size:12px}.week-shopping-recipe-head.without-image small{margin-top:3px}.planned-recipe-dialog{padding:0;overflow:hidden}.planned-recipe-dialog>.close{z-index:4;top:18px;right:18px}.planned-recipe-head{min-height:190px;padding:28px 32px;background:linear-gradient(125deg,#eef6f0 0%,#f8fbf8 70%,#fff 100%)}.planned-recipe-head.without-image{grid-template-columns:1fr;padding-right:80px}.planned-recipe-head>img{box-shadow:0 10px 26px rgba(34,67,47,.13)}.planned-recipe-date{display:inline-block;padding:5px 9px;border-radius:999px;background:#fff;color:var(--green-dark);font-size:10px;font-weight:800}.planned-recipe-head h2{max-width:650px;margin:10px 0 9px;font-size:27px;line-height:1.15}.planned-recipe-head p{max-width:650px;margin:12px 0 0;line-height:1.55}.planned-recipe-meta{display:flex;flex-wrap:wrap;gap:6px}.planned-recipe-meta span{padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.8);color:var(--muted);font-size:9px;font-weight:700}.planned-recipe-columns{margin:0;padding:26px 32px;border:0;background:#fff}.planned-recipe-columns>section{min-width:0;padding:18px;border:1px solid #e1e9e3;border-radius:15px;background:#fbfcfb}.planned-recipe-columns section>header{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #e3e9e5}.planned-recipe-columns section>header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--mint);color:var(--green-dark);font-size:11px;font-weight:900}.planned-recipe-columns section>header small{display:block;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em}.planned-recipe-columns section>header h3{margin:2px 0 0}.planned-recipe-columns ul,.planned-recipe-columns ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.planned-recipe-columns ul li{display:grid;grid-template-columns:minmax(68px,auto) 1fr;gap:9px;align-items:baseline;margin:0;padding:7px 8px;border-radius:8px;background:#fff}.planned-recipe-columns ul li b{color:var(--green-dark);font-size:11px}.planned-recipe-columns ol li{display:grid;grid-template-columns:27px 1fr;gap:10px;align-items:start;margin:0;padding:8px;border-radius:9px;background:#fff;line-height:1.45}.planned-recipe-columns ol li i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#edf5ef;color:var(--green-dark);font-size:10px;font-style:normal;font-weight:800}.planned-recipe-actions{margin:0;padding:0 32px 26px;background:#fff}
@media(max-width:700px){.planned-recipe-dialog{max-height:94vh}.planned-recipe-head,.planned-recipe-head.without-image{min-height:0;padding:24px 20px}.planned-recipe-head.without-image{padding-right:58px}.planned-recipe-head h2{font-size:22px}.planned-recipe-columns{padding:18px 20px}.planned-recipe-columns>section{padding:14px}.planned-recipe-actions{padding:0 20px 22px}}

.planned-recipe-dialog[open]{display:flex;flex-direction:column;width:min(850px,calc(100% - 24px));max-height:min(92vh,900px);overflow:hidden}.planned-recipe-toolbar{z-index:5;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #dce7df;background:#fff;box-shadow:0 4px 14px rgba(31,61,43,.07)}.planned-recipe-toolbar .primary{min-width:190px}.planned-recipe-toolbar .close{position:static;flex:0 0 auto;margin:0}.planned-recipe-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.planned-recipe-scroll .planned-recipe-head{border-radius:0}.planned-recipe-scroll .planned-recipe-actions{justify-content:flex-start}
@media(max-width:700px){.planned-recipe-dialog[open]{width:calc(100% - 16px);max-height:94vh}.planned-recipe-toolbar{padding:10px 12px}.planned-recipe-toolbar .primary{flex:1;min-width:0}.planned-recipe-scroll{scrollbar-gutter:auto}}

.finance-breakdown-card{margin-top:22px}.finance-hover-hint{color:var(--muted);font-size:10px}.finance-category-breakdown{overflow:visible}.finance-category-detail{position:relative;z-index:1}.finance-category-detail:hover,.finance-category-detail[open]{z-index:20}.finance-category-detail>summary{display:grid;grid-template-columns:10px 1fr auto;gap:9px;align-items:center;padding:7px 9px;border-radius:8px;font-size:12px;list-style:none;cursor:pointer;transition:background .15s}.finance-category-detail>summary::-webkit-details-marker{display:none}.finance-category-detail>summary:hover,.finance-category-detail[open]>summary{background:#f0f6f2}.finance-category-detail>summary i{width:9px;height:9px;border-radius:50%}.finance-category-popover{position:absolute;right:0;bottom:calc(100% + 7px);display:none;width:min(470px,calc(100vw - 40px));overflow:hidden;border:1px solid #d8e4dc;border-radius:14px;background:#fff;box-shadow:0 18px 45px rgba(25,53,37,.2)}.finance-category-detail:hover>.finance-category-popover,.finance-category-detail[open]>.finance-category-popover{display:block}.finance-category-popover>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;background:#f1f7f3}.finance-category-popover header span small,.finance-category-popover header span b{display:block}.finance-category-popover header small{color:var(--muted);font-size:8px;letter-spacing:.08em}.finance-category-popover header b{margin-top:3px}.finance-category-popover header strong{color:var(--green-dark);white-space:nowrap}.finance-category-transactions{max-height:285px;overflow-y:auto}.finance-category-transactions>div{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 15px;border-bottom:1px solid #edf1ee}.finance-category-transactions time{color:var(--muted);font-size:10px}.finance-category-transactions span{min-width:0}.finance-category-transactions span b,.finance-category-transactions span small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-category-transactions span small{margin-top:3px;color:var(--muted);font-size:9px}.finance-category-transactions>div>strong{font-size:11px;white-space:nowrap}.finance-category-popover>footer{padding:9px 15px;background:#fafcfa;color:var(--muted);font-size:9px}.finance-category-detail:nth-last-child(-n+2) .finance-category-popover{top:calc(100% + 7px);bottom:auto}
@media(max-width:600px){.finance-hover-hint{display:none}.finance-category-detail{position:static}.finance-category-detail>summary{padding:10px 8px}.finance-category-popover{position:fixed;z-index:50;top:50%!important;right:auto;bottom:auto!important;left:50%;width:calc(100vw - 28px);max-height:78vh;transform:translate(-50%,-50%)}.finance-category-detail[open]::after{position:fixed;z-index:49;inset:0;background:rgba(22,38,29,.38);content:''}.finance-category-transactions{max-height:52vh}}

.finance-category-popover>header{display:grid;grid-template-columns:1fr auto auto;justify-content:normal;gap:14px}.finance-category-popover header button{display:grid;place-items:center;width:27px;height:27px;padding:0;border:0;border-radius:8px;background:#fff;color:var(--muted);cursor:pointer}
@media(min-width:601px) and (hover:hover) and (pointer:fine){.finance-category-popover,.finance-category-detail:nth-last-child(-n+2) .finance-category-popover{position:fixed;z-index:100;top:var(--finance-popover-y,50%);right:auto;bottom:auto;left:var(--finance-popover-x,50%);transform:translate(-50%,-100%);pointer-events:none}}

/* Finance future planning */
.forecast-intro{display:flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(135deg,#f4f9f5,#fff)}.forecast-intro h2{margin:5px 0 7px}.forecast-intro p{max-width:720px;margin:0;color:var(--muted);line-height:1.55}.forecast-intro small,.forecast-chart-card small,.forecast-period small,.forecast-kpis small{color:var(--muted);font-size:10px;letter-spacing:.05em}.forecast-controls{display:flex;align-items:end;gap:12px;flex:0 0 auto}.forecast-controls>label:not(.forecast-switch){display:grid;gap:5px;color:var(--muted);font-size:11px}.forecast-controls select{min-width:130px}.forecast-switch{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 13px;border:1px solid var(--line);border-radius:11px;font-size:12px;font-weight:700;white-space:nowrap}.forecast-switch input{accent-color:var(--green)}.forecast-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.forecast-kpis article{display:grid;gap:7px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.forecast-kpis strong{color:var(--green);font-size:25px}.forecast-kpis .expense,.forecast-period .expense,.forecast-detail-list .expense{color:#c45b42}.forecast-kpis span{color:var(--muted);font-size:11px}.forecast-chart-card{overflow:hidden}.forecast-chart-card>header{display:flex;align-items:end;justify-content:space-between;gap:20px}.forecast-chart-card h2{margin:4px 0 0}.forecast-chart-card header>span{color:var(--muted);font-size:11px}.forecast-chart-bars{display:grid;grid-template-columns:repeat(var(--forecast-columns),minmax(34px,1fr));align-items:end;gap:9px;height:240px;margin-top:25px;padding-top:25px;border-bottom:1px solid var(--line);overflow-x:auto}.forecast-bar-column{display:grid;grid-template-rows:24px 1fr 24px;align-items:end;justify-items:center;height:100%;min-width:38px}.forecast-bar-column b{font-size:9px;white-space:nowrap}.forecast-bar-column i{display:block;width:min(32px,75%);min-height:5px;border-radius:7px 7px 0 0;background:#4f9169}.forecast-bar-column i.negative{background:#cf684e}.forecast-bar-column small{padding-top:6px}.forecast-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.forecast-insights article{display:flex;gap:12px;padding:16px;border:1px solid #d8e6dc;border-radius:14px;background:#f6faf7}.forecast-insights article.warning{border-color:#efd7cf;background:#fff5f2}.forecast-insights article>span{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:50%;background:#e2f0e6;color:var(--green);font-weight:800}.forecast-insights p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.forecast-period-list{display:grid;gap:11px}.forecast-period{padding:0!important;overflow:hidden}.forecast-period>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:20px;padding:18px 20px;list-style:none;cursor:pointer}.forecast-period>summary::-webkit-details-marker{display:none}.forecast-period>summary b{display:block;margin-top:4px}.forecast-period>summary>i{font-style:normal}.forecast-period[open]>summary>i{transform:rotate(180deg)}.forecast-period-totals{display:grid;grid-template-columns:repeat(2,100px) repeat(2,145px);gap:10px;text-align:right;font-size:11px}.forecast-period-totals>span,.forecast-period-totals>strong{display:grid;align-content:center}.forecast-period-totals>span:first-child{color:#438a58}.forecast-period-totals strong{font-size:14px}.forecast-period-totals small{display:block;margin-bottom:4px;color:var(--muted);font-size:8px;font-weight:500;letter-spacing:.04em;white-space:nowrap}.forecast-period-totals .forecast-running-total{padding-left:14px;border-left:1px solid var(--line);color:var(--green-dark)}.forecast-detail-list{display:grid;padding:0 20px 16px}.forecast-detail-list>div{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #edf1ee;font-size:12px}.forecast-kind{width:8px;height:28px;border-radius:5px;background:#9ba8a0}.forecast-kind.income{background:#60a274}.forecast-kind.expense{background:#d88068}.forecast-kind.debt{background:#86649e}.forecast-kind.reserve{background:#d3a64a}.forecast-footnote{margin:18px 0 0;color:var(--muted);font-size:10px;text-align:center}
@media(max-width:900px){.forecast-period>summary{grid-template-columns:1fr 18px}.forecast-period-totals{grid-column:1/-1;grid-template-columns:repeat(4,1fr);grid-row:2}.forecast-period>summary>i{grid-column:2;grid-row:1}}
@media(max-width:800px){.forecast-intro{align-items:stretch;flex-direction:column}.forecast-controls{justify-content:space-between}.forecast-kpis,.forecast-insights{grid-template-columns:1fr}.forecast-chart-bars{height:210px}.forecast-bar-column b{display:none}}
@media(max-width:600px){.forecast-period-totals{grid-template-columns:repeat(2,1fr);gap:12px 6px;text-align:left}.forecast-period-totals .forecast-running-total{padding-left:0;border-left:0}.forecast-period-totals>span:nth-child(even),.forecast-period-totals>strong:nth-child(even){text-align:right}}
@media(max-width:480px){.forecast-controls{align-items:stretch;flex-direction:column}.forecast-controls select{width:100%}.forecast-period-totals>span,.forecast-period-totals>strong{font-size:10px}.forecast-detail-list>div{grid-template-columns:7px minmax(0,1fr);}.forecast-detail-list>div>strong{grid-column:2;text-align:left}}
.forecast-detail-list h3{margin:14px 0 0;padding:9px 0 5px;border-top:1px solid var(--line);color:var(--green-dark);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.forecast-detail-list h3:first-child{margin-top:0}.forecast-detail-list h3+div{border-top:0}

/* A supportive minimum pantry, focused on food security rather than inventory. */
.quick-icon.pantry{background:#fff3d8;color:#aa791c}.pantry-setup{display:grid;gap:18px}.pantry-intro{display:grid;grid-template-columns:70px 1fr;gap:20px;align-items:center;background:linear-gradient(120deg,#edf6ef,#fff)}.pantry-intro>span{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:#dfeee3;color:var(--green);font-size:30px}.pantry-intro h2{margin:4px 0 7px}.pantry-intro p{max-width:780px;margin:0;color:var(--muted);line-height:1.55}.pantry-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.pantry-profile-grid label{display:grid;gap:7px;font-size:11px;font-weight:800}.pantry-profile-grid input,.pantry-profile-grid select{min-width:0;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff}.pantry-suggestion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pantry-suggestion{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border:1px solid #e0e9e2;border-radius:12px;background:#fbfcfb;cursor:pointer}.pantry-suggestion>input{position:absolute;opacity:0}.pantry-suggestion>i,.pantry-select>i{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#e5eae6;color:transparent;font-style:normal}.pantry-suggestion:has(input:checked){border-color:#a9c8b4;background:#eff7f1}.pantry-suggestion:has(input:checked)>i,.pantry-select:has(input:checked)>i{background:var(--green);color:#fff}.pantry-suggestion b,.pantry-suggestion small{display:block}.pantry-suggestion small{margin-top:3px;color:var(--muted);font-size:9px}.pantry-suggestion em{color:var(--green-dark);font-size:10px;font-style:normal;font-weight:800}.pantry-setup-submit{position:sticky;z-index:5;bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 18px;border:1px solid #d8e5dc;border-radius:14px;background:rgba(255,255,255,.95);box-shadow:0 10px 35px rgba(30,57,41,.12);backdrop-filter:blur(8px)}.pantry-setup-submit b,.pantry-setup-submit small{display:block}.pantry-setup-submit small{margin-top:3px;color:var(--muted)}.pantry-overview{display:grid;grid-template-columns:130px 1fr auto;gap:24px;align-items:center;background:linear-gradient(125deg,#eff7f1,#fff 70%)}.pantry-readiness{display:grid;place-items:center;width:118px;height:118px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--pantry-value)*1%),#dfe9e2 0);position:relative}.pantry-readiness::after{position:absolute;width:88px;height:88px;border-radius:50%;background:#fff;content:''}.pantry-readiness strong,.pantry-readiness small{z-index:1}.pantry-readiness strong{align-self:end;font-size:23px}.pantry-readiness small{align-self:start;color:var(--muted);font-size:9px}.pantry-overview h2{margin:4px 0 6px}.pantry-overview p{color:var(--muted)}.pantry-status-summary{display:flex;flex-wrap:wrap;gap:7px}.pantry-status-summary span{padding:6px 9px;border-radius:999px;font-size:9px;font-weight:800}.pantry-status-summary .good{background:#e4f2e7;color:#347448}.pantry-status-summary .low{background:#fff2d9;color:#976b19}.pantry-status-summary .missing{background:#fae8e5;color:#a04d43}.pantry-overview-actions{display:grid;gap:8px}.pantry-list-form{margin-top:24px}.pantry-list-actions{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:14px}.pantry-list-actions h2{margin:0 0 3px}.pantry-list-actions small{color:var(--muted)}.pantry-list-actions form{margin:0}.pantry-group{margin-bottom:14px;padding:18px}.pantry-group>.card-head{margin-bottom:8px}.pantry-group>.card-head h3{margin:0}.pantry-group>.card-head span{color:var(--muted);font-size:10px}.pantry-items{display:grid;gap:7px}.pantry-item{display:grid;grid-template-columns:28px minmax(240px,1fr) auto 34px;gap:13px;align-items:center;padding:11px;border:1px solid #e3eae5;border-left:4px solid #72a082;border-radius:11px;background:#fff}.pantry-item.low{border-left-color:#d9a937;background:#fffcf5}.pantry-item.missing{border-left-color:#d87669;background:#fff9f8}.pantry-select{cursor:pointer}.pantry-select input{position:absolute;opacity:0}.pantry-item-copy>b,.pantry-item-copy>small{display:block}.pantry-item-copy>small{margin-top:3px;color:var(--muted);font-size:9px}.pantry-state{display:inline-block;margin-bottom:4px;color:#347448;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.pantry-item.low .pantry-state{color:#976b19}.pantry-item.missing .pantry-state{color:#a04d43}.pantry-meter{height:4px;margin-top:8px;overflow:hidden;border-radius:99px;background:#e9eeea}.pantry-meter i{display:block;height:100%;border-radius:inherit;background:#5c966f;transition:width .2s}.pantry-item.low .pantry-meter i{background:#d9a937}.pantry-item.missing .pantry-meter i{background:#d87669}.pantry-counter{display:flex;align-items:center;gap:8px}.pantry-counter form{margin:0}.pantry-counter button{display:grid;place-items:center;width:31px;height:31px;padding:0;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--green-dark);font-weight:900;cursor:pointer}.pantry-counter>strong{min-width:125px;text-align:center}.pantry-counter strong small{color:var(--muted);font-size:9px}.pantry-item>.edit{width:32px;height:32px}.pantry-list-form+dialog form:last-child{margin-top:10px}
@media(max-width:950px){.pantry-profile-grid{grid-template-columns:1fr 1fr}.pantry-overview{grid-template-columns:105px 1fr}.pantry-readiness{width:96px;height:96px}.pantry-readiness::after{width:72px;height:72px}.pantry-overview-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}.pantry-item{grid-template-columns:28px 1fr 34px}.pantry-counter{grid-column:2;justify-self:start}.pantry-item>.edit{grid-column:3;grid-row:1}}
@media(max-width:600px){.pantry-intro{grid-template-columns:1fr}.pantry-profile-grid,.pantry-suggestion-grid{grid-template-columns:1fr}.pantry-setup-submit{align-items:stretch;flex-direction:column}.pantry-setup-submit button{width:100%}.pantry-overview{grid-template-columns:78px 1fr;padding:18px 14px}.pantry-readiness{width:72px;height:72px}.pantry-readiness::after{width:54px;height:54px}.pantry-readiness strong{font-size:16px}.pantry-readiness small{font-size:7px}.pantry-overview-actions{grid-template-columns:1fr}.pantry-list-actions{align-items:stretch;flex-direction:column}.pantry-list-actions form,.pantry-list-actions button{width:100%}.pantry-item{grid-template-columns:25px minmax(0,1fr) 30px;padding:10px 8px;gap:8px}.pantry-counter{gap:5px}.pantry-counter>strong{min-width:100px;font-size:11px}}

/* Low-effort recipes based on the user's safe pantry. */
.pantry-recipes{margin-top:24px;padding:24px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#f1f7f2 0%,#fff 58%);box-shadow:0 7px 28px rgba(37,67,48,.05)}
.pantry-recipe-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.pantry-recipe-heading small{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em}.pantry-recipe-heading h2{margin:5px 0 6px}.pantry-recipe-heading p{margin:0;color:var(--muted)}.pantry-recipe-heading>span{padding:7px 11px;border-radius:999px;background:#e3f1e7;color:var(--green-dark);font-size:10px;font-weight:800;white-space:nowrap}
.pantry-own-recipes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:16px}.pantry-own-recipes a{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:11px 13px;border:1px solid #dce7df;border-radius:11px;background:#fff;color:var(--ink);text-decoration:none}.pantry-own-recipes a:hover{border-color:#a8c6b1;background:#f7fbf8}.pantry-own-recipes small{grid-column:1;color:var(--muted)}
.pantry-recipe-score{display:grid;grid-row:1/3;grid-column:2;place-items:center;min-width:42px;height:28px;padding:0 7px;border-radius:999px;background:#fff1d5;color:#926516;font-size:10px;font-weight:900}.pantry-recipe-score.complete{background:#e2f1e6;color:#2f7043}
.pantry-basis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:12px}.pantry-basis-recipe{display:flex;min-height:265px;flex-direction:column;padding:17px;border:1px solid #dce7df;border-radius:15px;background:#fff}.pantry-basis-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:9px}.pantry-basis-recipe h3{margin:13px 0 7px;font-size:17px}.pantry-basis-recipe>p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.pantry-availability{display:grid;gap:7px;margin-top:16px}.pantry-availability>b{font-size:10px}.pantry-availability>span{height:6px;overflow:hidden;border-radius:99px;background:#e8ede9}.pantry-availability>span i{display:block;height:100%;border-radius:inherit;background:#5b966f}.pantry-availability small{color:#a05b3f;font-size:9px;line-height:1.35}.pantry-availability small.complete{color:#347448}.pantry-basis-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:auto;padding-top:17px}.pantry-basis-actions form{margin:0}.pantry-basis-actions button{width:100%;height:100%}
.pantry-cook-dialog{width:min(850px,calc(100% - 24px));max-height:92vh;padding:0;overflow:hidden}.pantry-cook-dialog>.close{z-index:4;top:15px;right:15px}.pantry-cook-scroll{max-height:92vh;padding:28px;overflow-y:auto;overscroll-behavior:contain}.pantry-cook-scroll>header{padding-right:45px}.pantry-cook-scroll>header small{color:var(--green-dark);font-size:9px;font-weight:800;letter-spacing:.07em}.pantry-cook-scroll>header h2{margin:6px 0}.pantry-cook-scroll>header p{color:var(--muted)}.pantry-cook-scroll .planned-recipe-columns{padding:20px 0 0}.pantry-cook-scroll .cook-steps label{background:#fff}
@media(max-width:700px){.pantry-recipes{padding:18px 14px}.pantry-recipe-heading{flex-direction:column}.pantry-basis-grid{grid-template-columns:1fr}.pantry-basis-actions{grid-template-columns:1fr}.pantry-cook-scroll{padding:22px 17px}.pantry-cook-scroll .planned-recipe-columns{grid-template-columns:1fr}}
.nav-subchildren{display:grid;gap:2px;margin:-2px 0 3px 14px;padding-left:9px;border-left:1px dashed #cbdccf}.shell nav .nav-subchildren a{padding:7px 9px;color:var(--muted);font-size:11px}.shell nav .nav-subchildren a:hover{background:#f1f6f2;color:var(--green-dark)}.pantry-section-nav{position:sticky;z-index:8;top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;padding:8px;border:1px solid #dce7df;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 7px 24px rgba(34,66,47,.07);backdrop-filter:blur(9px)}.pantry-section-nav a{padding:10px;border-radius:9px;color:var(--green-dark);font-size:11px;font-weight:800;text-align:center;text-decoration:none}.pantry-section-nav a:hover{background:var(--mint)}#pantry-stock,#pantry-recipe-suggestions,#pantry-what-can-cook{scroll-margin-top:90px}.pantry-basis-heading{margin:22px 0 12px;padding-top:18px;border-top:1px solid #dfe8e1}.pantry-basis-heading small{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em}.pantry-basis-heading h3{margin:5px 0}.pantry-basis-heading p,.pantry-own-recipes-empty p{margin:0;color:var(--muted);font-size:11px}.pantry-basis-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.pantry-basis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.nav-subchildren{display:none}.pantry-section-nav{position:static;grid-template-columns:1fr}.pantry-section-nav a{text-align:left}.pantry-basis-grid{grid-template-columns:1fr}}
.pantry-own-recipes{display:block}.pantry-own-recipes>.card-head+div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pantry-own-recipes article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;min-width:0;padding:13px;border:1px solid #dce7df;border-radius:12px;background:#fff}.pantry-own-recipes article .pantry-recipe-score{grid-column:1;grid-row:1;margin:0}.pantry-own-recipes article>div{min-width:0}.pantry-own-recipes article b,.pantry-own-recipes article small{display:block}.pantry-own-recipes article small{margin-top:5px;line-height:1.4}.pantry-own-recipes-empty{padding:15px;border:1px solid #dce7df;border-radius:12px;background:#fff}
@media(max-width:1050px){.pantry-own-recipes>.card-head+div{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.pantry-own-recipes>.card-head{align-items:flex-start;flex-direction:column}.pantry-own-recipes>.card-head+div{grid-template-columns:1fr}}
.pantry-collapse-button{display:flex;align-items:center;gap:7px;margin-left:auto;padding:8px 10px;border:1px solid #dce7df;border-radius:9px;background:#fff;color:var(--green-dark);font-size:9px;font-weight:800;cursor:pointer}.pantry-collapse-button:hover{background:var(--mint)}.pantry-collapse-button i{font-size:13px;font-style:normal}.pantry-list-form.is-collapsed>.pantry-group,.pantry-list-form.is-collapsed>.empty,.pantry-own-recipes.is-collapsed>.card-head+div,.pantry-own-recipes.is-collapsed>p,#pantry-what-can-cook.is-collapsed+.pantry-basis-grid{display:none}.pantry-list-form.is-collapsed,.pantry-own-recipes.is-collapsed{margin-bottom:12px}.pantry-basis-heading{display:grid;grid-template-columns:1fr auto;column-gap:14px}.pantry-basis-heading>small,.pantry-basis-heading>h3,.pantry-basis-heading>p{grid-column:1}.pantry-basis-heading>.pantry-collapse-button{grid-column:2;grid-row:1/4;align-self:center}.pantry-own-recipes>.card-head>.pantry-collapse-button{margin-left:0}
@media(max-width:700px){.pantry-collapse-button span{display:none}.pantry-list-actions>.pantry-collapse-button{width:auto}.pantry-own-recipes>.card-head>.pantry-collapse-button{position:absolute;right:0;top:0}.pantry-own-recipes>.card-head{position:relative;padding-right:42px}.pantry-basis-heading{grid-template-columns:1fr auto}}
.pantry-recipe-open{display:inline-flex!important;margin-top:9px;padding:0!important;border:0!important;background:transparent!important;color:var(--green-dark)!important;font-size:10px!important;font-weight:800;text-decoration:none}.pantry-recipe-open:hover{text-decoration:underline}.recipe-card.recipe-direct-open{border-color:#75a385;box-shadow:0 0 0 3px rgba(86,144,105,.13),0 12px 30px rgba(35,70,48,.1)}
.pantry-recipes{padding:0;border:0;background:transparent;box-shadow:none}.pantry-recipe-heading{display:none}.pantry-list-form,.pantry-own-recipes{margin-top:16px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 7px 28px rgba(37,67,48,.05)}.pantry-list-form .pantry-list-actions,.pantry-own-recipes>.card-head{min-height:64px;margin-bottom:16px}.pantry-own-recipes>.card-head h3{margin:4px 0 5px}.pantry-own-recipes>.card-head p{margin:0 0 5px;color:var(--muted);font-size:11px}.pantry-own-recipes>.card-head>div>small:first-child{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em}.pantry-basis-heading{margin:16px 0 0;padding:22px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;background:#fff;box-shadow:0 7px 28px rgba(37,67,48,.05)}.pantry-basis-grid{gap:12px;margin:0;padding:0 22px 22px;border:1px solid var(--line);border-top:0;border-radius:0 0 18px 18px;background:#fff;box-shadow:0 12px 28px rgba(37,67,48,.05)}.pantry-basis-heading.is-collapsed{border-bottom:1px solid var(--line);border-radius:18px}.pantry-list-form.is-collapsed,.pantry-own-recipes.is-collapsed{padding-bottom:6px}.pantry-list-form.is-collapsed .pantry-list-actions,.pantry-own-recipes.is-collapsed>.card-head{margin-bottom:0}
@media(max-width:700px){.pantry-list-form,.pantry-own-recipes,.pantry-basis-heading{padding:17px 14px}.pantry-basis-grid{padding:0 14px 14px}.pantry-list-form .pantry-list-actions,.pantry-own-recipes>.card-head{min-height:0}}

/* Keep all nutrition shortcuts together as one clear dashboard row. */
@media(min-width:701px){.quick-overview-row{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-overview-row>:nth-child(6){grid-column:1;grid-row:3}.quick-overview-row>:nth-child(7){grid-column:2;grid-row:3}.quick-overview-row>:nth-child(8){grid-column:3;grid-row:3}}
@media(max-width:700px){.quick-overview-row>*{grid-column:auto!important;grid-row:auto!important}}

/* Compact task visibility inside settings and planning. */
.settings-page-actions{justify-content:flex-end}.managed-task-group{margin:-1px 12px 10px 42px;border:1px solid #e1e9e3;border-radius:0 0 12px 12px;background:#fafcfa}.managed-task-group>summary{display:grid;grid-template-columns:1fr auto 18px;gap:10px;align-items:center;padding:10px 13px;color:var(--green-dark);font-size:11px;font-weight:800;list-style:none;cursor:pointer}.managed-task-group>summary::-webkit-details-marker{display:none}.managed-task-group>summary b{display:grid;place-items:center;min-width:23px;height:23px;border-radius:999px;background:var(--mint);font-size:9px}.managed-task-group>summary i{font-style:normal;transition:transform .2s}.managed-task-group[open]>summary i{transform:rotate(180deg)}.managed-task-group>div{padding:0 12px 10px}.managed-task-group article{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 2px;border-top:1px solid #e7ede8}.managed-task-group article small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.managed-task-group .planning-icon{width:28px;height:28px;font-size:13px}.managed-task-group .empty{margin:0;padding:12px}.routine-plan{display:block;padding:0;overflow:hidden}.routine-plan>summary{display:grid;grid-template-columns:44px minmax(0,1fr) 20px;gap:13px;align-items:center;padding:18px;list-style:none;cursor:pointer}.routine-plan>summary::-webkit-details-marker{display:none}.routine-plan>summary>i{font-style:normal;transition:transform .2s}.routine-plan[open]>summary>i{transform:rotate(180deg)}.routine-plan-tasks{display:grid;gap:1px;padding:0 18px 15px;background:#f8faf8}.routine-plan-tasks>span{padding:9px 10px;border-top:1px solid #e1e8e3}.routine-plan-tasks b,.routine-plan-tasks small{display:block}.routine-plan-tasks small{margin-top:3px;font-size:9px}.quick-next-step:has(.quick-skip-action){grid-template-columns:minmax(0,1fr) auto auto}.quick-skip-action{margin:0}.quick-skip-action button{white-space:nowrap}
@media(max-width:700px){.managed-task-group{margin-right:4px;margin-left:4px}.managed-task-group article{grid-template-columns:28px minmax(0,1fr) auto}.quick-next-step:has(.quick-skip-action){grid-template-columns:1fr}.quick-skip-action,.quick-skip-action button{width:100%}}
.planned-transfer-list article.final-installment{border-color:#e7d39a;background:#fffdf6}.final-installment-badge{display:inline-flex;margin-left:8px;padding:4px 8px;border-radius:999px;background:#fff0c7;color:#8b6414;font-size:9px;font-weight:800;vertical-align:middle}.final-installment-note{display:grid;gap:3px;margin:10px 0;padding:10px 12px;border:1px solid #ead7a5;border-radius:10px;background:#fff8e7;color:#76581b;font-size:10px;line-height:1.45}.final-installment-note b,.final-installment-note span{display:block}.final-installment-dialog .final-installment-note{width:100%;margin:0 0 12px;text-align:left}.final-installment-dialog{width:min(470px,calc(100% - 30px))}
.pantry-all-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;background:linear-gradient(125deg,#eff7f1,#fff 70%)}.pantry-all-intro h2{margin:5px 0}.pantry-all-intro p{margin:0;color:var(--muted)}.pantry-all-group{margin-bottom:14px}.pantry-all-item{grid-template-columns:minmax(240px,1fr) auto 34px}.pantry-all-item .pantry-state{padding:4px 7px;border-radius:999px;background:#edf5ef}.pantry-all-item .pantry-counter>strong{min-width:110px;text-align:right}.shopping-add datalist{display:none}.pantry-all-recipes{margin-top:20px}.pantry-all-recipes>.card-head p{margin:5px 0 0;color:var(--muted)}.pantry-all-recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pantry-all-recipe-grid>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafcfa;color:var(--ink);text-decoration:none}.pantry-all-recipe-grid>a:hover{border-color:#9cbea7}.pantry-all-recipe-grid>a>b{grid-column:1;grid-row:1}.pantry-all-recipe-grid>a>small{grid-column:1/-1;color:var(--muted)}
@media(max-width:1050px){.pantry-all-recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.pantry-all-intro{align-items:stretch;flex-direction:column}.pantry-all-intro button{width:100%}.pantry-all-item{grid-template-columns:minmax(0,1fr) auto 30px}.pantry-all-item .pantry-counter{grid-column:auto}.pantry-all-item .pantry-counter>strong{min-width:auto}.pantry-all-recipe-grid{grid-template-columns:1fr}}
.pantry-all-head-actions{display:grid;gap:8px}.pantry-all-head-actions form{margin:0}.pantry-all-head-actions button{width:100%}.pantry-all-item{grid-template-columns:28px minmax(220px,1fr) auto 34px}.pantry-all-item .pantry-select.is-hidden{visibility:hidden;pointer-events:none}.pantry-all-item.good{border-left-color:#72a082;background:#fff}.pantry-all-item.low{border-left-color:#d9a937;background:#fffcf5}.pantry-all-item.missing{border-left-color:#d87669;background:#fff9f8}.pantry-all-intro .pantry-status-summary{margin-top:12px}
@media(max-width:700px){.pantry-all-item{grid-template-columns:25px minmax(0,1fr) 30px}.pantry-all-item .pantry-counter{grid-column:2;justify-self:start}.pantry-all-item>.edit{grid-column:3;grid-row:1}.pantry-all-head-actions{width:100%}}
.pantry-search{margin:0 0 18px;padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:#fff}.pantry-search>label{display:block;margin-bottom:7px;color:var(--green-dark);font-size:11px;font-weight:800}.pantry-search>div{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;border:1px solid #cfdcd2;border-radius:11px;background:#fafcfa}.pantry-search>div>span{color:var(--muted);text-align:center}.pantry-search input{min-width:0;padding:11px 5px;border:0;background:transparent;outline:0}.pantry-search>div>button{margin:4px;padding:7px 10px}.pantry-search>p{margin:7px 2px 0;color:var(--muted);font-size:10px}.pantry-search-create{display:grid;width:100%;margin-top:10px;padding:11px 13px;border:1px dashed #9cbea7;border-radius:10px;background:#f1f8f3;color:var(--green-dark);cursor:pointer;text-align:left}.pantry-search-create:hover{background:#e7f3ea}.pantry-search-create small{margin-top:3px;color:var(--muted)}
@media(max-width:600px){.pantry-search>div{grid-template-columns:25px minmax(0,1fr)}.pantry-search>div>button{grid-column:1/-1;margin:0 5px 5px}}
.pantry-search [hidden],.pantry-search-create[hidden]{display:none!important}.pantry-search-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;margin-top:10px}.pantry-search-results>button{display:grid;gap:3px;padding:10px 12px;border:1px solid #d7e4da;border-radius:10px;background:#f8fbf9;color:var(--ink);cursor:pointer;text-align:left}.pantry-search-results>button:hover{border-color:#8fb59b;background:#edf6ef}.pantry-search-results small{color:var(--muted);font-size:9px}
.pantry-all-item[hidden],.pantry-all-group[hidden]{display:none!important}

/* Match the recipe library grid to the four primary category columns. */
@media(min-width:1200px){.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:601px) and (max-width:1199px){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Let every planned recipe grow to the full height of its ingredient list. */
.week-shopping-days{display:block}.week-shopping-days>h3{margin:8px 0}.week-shopping-recipe{margin-bottom:10px}.week-shopping-recipe:last-child{margin-bottom:0}.week-shopping-ingredients{height:auto;max-height:none;overflow:visible}

/* Standalone, touch-friendly shopping list. */
.shopping-page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(125deg,#eff7f1,#fff 72%)}.shopping-page-head h2{margin:5px 0}.shopping-page-head p{max-width:720px;margin:0;color:var(--muted)}.shopping-page-actions{display:flex;align-items:center;gap:8px}.shopping-page-actions form{margin:0}.shopping-page-actions button{white-space:nowrap}.shopping-page-add{margin-top:18px;padding-top:7px;padding-bottom:7px}.shopping-page-add .shopping-add{margin:0}.shopping-tile-categories{display:grid;gap:22px;margin-top:24px}.shopping-tile-category{min-width:0}.shopping-tile-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;padding:0 4px}.shopping-tile-heading h2{margin:0;color:var(--green-dark);font-size:14px}.shopping-tile-heading span{display:grid;place-items:center;min-width:25px;height:25px;border-radius:999px;background:var(--mint);color:var(--green-dark);font-size:10px;font-weight:800}.shopping-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shopping-tile{position:relative;display:flex;min-width:0;min-height:150px;flex-direction:column;padding:14px;border:1px solid #dce6df;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(34,64,45,.04);cursor:pointer;transition:border-color .16s,background .16s,transform .16s}.shopping-tile:hover{border-color:#9dbca7;transform:translateY(-1px)}.shopping-tile.checked{border-color:#75a386;background:#edf6ef}.shopping-tile>form{position:absolute;top:11px;right:11px;margin:0}.shopping-tile-check{display:grid;place-items:center;width:29px;height:29px;padding:0;border:1px solid #b9ccc0;border-radius:50%;background:#fff;color:#fff;font-weight:900;cursor:pointer}.shopping-tile.checked .shopping-tile-check{border-color:var(--green);background:var(--green)}.shopping-tile>b{display:-webkit-box;margin:3px 38px 5px 0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.28}.shopping-tile>small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:9px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.shopping-tile>em{margin-top:7px;color:#477158;font-size:9px;font-style:normal;font-weight:700}.shopping-tile-amount{display:grid;justify-items:start;margin-top:auto;padding:9px 0 0;border:0;background:transparent;color:var(--green-dark);cursor:pointer;text-align:left}.shopping-tile-amount strong{font-size:13px}.shopping-tile-amount small{min-height:12px;margin-top:2px;color:#a26822;font-size:8px}.shopping-tile-amount:hover strong{text-decoration:underline}.shopping-tile.checked>b{text-decoration:line-through}.shopping-tile.checked>small,.shopping-tile.checked>em{opacity:.65}
@media(max-width:700px){.shopping-page-head{align-items:stretch;flex-direction:column}.shopping-page-actions{position:sticky;z-index:6;bottom:calc(76px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:1fr 1.35fr}.shopping-page-actions button{width:100%;height:100%;padding:10px 7px;font-size:10px}.shopping-page-add{padding:12px}.shopping-tile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.shopping-tile{min-height:135px;padding:10px;border-radius:12px}.shopping-tile>form{top:8px;right:8px}.shopping-tile-check{width:25px;height:25px}.shopping-tile>b{margin-right:27px;font-size:11px;overflow-wrap:anywhere}.shopping-tile>small,.shopping-tile>em{font-size:8px}.shopping-tile-amount{padding-top:7px}.shopping-tile-amount strong{font-size:10px;overflow-wrap:anywhere}}

/* Shopping catalogue and category management. */
.shopping-settings-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);gap:24px;align-items:center;background:linear-gradient(125deg,#eff7f1,#fff 72%)}.shopping-settings-intro h2{margin:5px 0}.shopping-settings-intro p{margin:0;color:var(--muted)}.shopping-settings-intro input{padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fff}.shopping-settings-categories{display:grid;gap:11px;margin-top:20px}.shopping-settings-category{padding:0;overflow:hidden}.shopping-settings-category>summary{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;list-style:none;cursor:pointer}.shopping-settings-category>summary::-webkit-details-marker{display:none}..shopping-settings-category>summary span b,.shopping-settings-category>summary span small{display:block}.shopping-settings-category>summary span small{margin-top:4px;color:var(--muted);font-size:9px}.shopping-settings-category>summary i{font-style:normal;transition:transform .2s}.shopping-settings-category[open]>summary{background:#f3f8f4}.shopping-settings-category[open]>summary i{transform:rotate(180deg)}.shopping-settings-category-body{padding:13px 18px 18px;border-top:1px solid var(--line)}.shopping-settings-category-actions{display:flex;justify-content:flex-end;gap:6px;margin-bottom:10px}.shopping-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.shopping-product-grid>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid #e2e9e4;border-radius:10px;background:#fbfcfb}.shopping-product-grid article b,.shopping-product-grid article small{display:block}.shopping-product-grid article small{margin-top:4px;color:var(--muted);font-size:9px}.shopping-product-grid article form{margin:0}.shopping-product-grid [hidden],.shopping-settings-category[hidden]{display:none!important}
@media(max-width:700px){.shopping-settings-intro{grid-template-columns:1fr}.shopping-product-grid{grid-template-columns:1fr}.shopping-settings-category-body{padding:10px}.shopping-settings-category>summary{padding:14px}}
.ingredient-cleanup{margin:18px 0}.ingredient-cleanup>div h2{margin-bottom:5px}.ingredient-cleanup form{display:grid;gap:14px;margin-top:16px}.ingredient-cleanup-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ingredient-cleanup-list label{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fbfcfb;cursor:pointer}.ingredient-cleanup-list input{width:18px;height:18px;accent-color:var(--green)}.ingredient-cleanup-list span{display:flex;gap:8px;min-width:0;align-items:center}.ingredient-cleanup-list s{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.ingredient-cleanup-list b{color:var(--green)}@media(max-width:700px){.ingredient-cleanup-list{grid-template-columns:1fr}.ingredient-cleanup-list span{display:grid;gap:2px}}
.expense-import-start{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,440px);gap:30px;align-items:center;background:linear-gradient(125deg,#eff7f1,#fff 72%)}.expense-import-start h2,.expense-import-summary h2{margin:5px 0}.expense-import-start p,.expense-import-summary p{margin:0;color:var(--muted);line-height:1.55}.expense-import-start .form{padding:0}.expense-import-help{margin-top:18px}.expense-import-help>div{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.expense-import-help span{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:11px}.expense-import-help b{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:var(--mint);color:var(--green)}.expense-import-summary{display:flex;justify-content:space-between;gap:20px;align-items:center}.expense-import-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:18px 0;padding:13px 16px;border-radius:12px;background:#eff6f1}.expense-import-toolbar label{font-weight:700}.expense-import-toolbar span{color:var(--muted);font-size:11px}.expense-import-list{display:grid;gap:9px}.expense-import-row{display:grid;grid-template-columns:28px 85px minmax(190px,1.3fr) minmax(180px,1fr) 100px;gap:12px;align-items:center;padding:15px 17px}.expense-import-row.possible{border-color:#efdca8;background:#fffdf7}.expense-import-row.likely{border-color:#efc9c1;background:#fff9f7}.expense-import-check input{display:none}.expense-import-check span{display:block;width:23px;height:23px;border:1px solid #b7c8bd;border-radius:7px;background:#fff}.expense-import-check input:checked+span{display:grid;place-items:center;background:var(--green);border-color:var(--green)}.expense-import-check input:checked+span:after{content:'✓';color:#fff;font-weight:700}.expense-import-date small,.expense-import-date b{display:block}.expense-import-date small{font-size:8px}.expense-import-row label:not(.expense-import-check){display:grid;gap:4px;color:var(--muted);font-size:9px}.expense-import-row input,.expense-import-row select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}.expense-import-amount{color:#c45b42;text-align:right;white-space:nowrap}.expense-import-status{grid-column:3/-1;display:flex;gap:10px;align-items:flex-start}.expense-import-status>span{padding:5px 8px;border-radius:999px;background:#e8f3eb;color:var(--green);font-size:9px;font-weight:700}.expense-import-status>span.possible{background:#fff1c9;color:#916d16}.expense-import-status>span.likely{background:#fde5df;color:#a34e3d}.expense-import-status details{font-size:10px}.expense-import-status details p{display:inline-grid;margin:5px 10px 0 0}.expense-import-status details small{display:block}.expense-import-submit{position:sticky;z-index:8;bottom:12px;display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:16px;padding:13px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.95);box-shadow:0 10px 30px rgba(30,55,42,.12);backdrop-filter:blur(8px)}.expense-import-submit span{color:var(--muted);font-size:11px}@media(max-width:900px){.expense-import-start{grid-template-columns:1fr}.expense-import-help>div{grid-template-columns:1fr 1fr}.expense-import-row{grid-template-columns:28px 75px minmax(0,1fr) 90px}.expense-import-category{grid-column:3/-1}.expense-import-status{grid-column:3/-1}}@media(max-width:600px){.expense-import-summary,.expense-import-toolbar,.expense-import-submit{align-items:stretch;flex-direction:column}.expense-import-help>div{grid-template-columns:1fr}.expense-import-row{grid-template-columns:28px minmax(0,1fr) 88px;padding:13px 10px}.expense-import-date{grid-column:2}.expense-import-description,.expense-import-category,.expense-import-status{grid-column:2/-1}.expense-import-amount{grid-column:3;grid-row:1/3}.expense-import-submit{bottom:76px}.expense-import-submit .primary{width:100%}}
.shopping-settings-category>summary span b,.shopping-settings-category>summary span small{display:block}
.expense-column-mapping{margin-top:18px}.expense-mapping-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.expense-mapping-fields label{display:grid;align-content:start;gap:6px;color:var(--muted);font-size:10px;font-weight:700}.expense-mapping-fields label small{font-size:8px;font-weight:400}.expense-mapping-fields select{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.expense-csv-preview{margin-top:20px;overflow-x:auto;border:1px solid var(--line);border-radius:12px}.expense-csv-preview table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:10px}.expense-csv-preview th,.expense-csv-preview td{max-width:230px;padding:10px 12px;overflow:hidden;border-right:1px solid #edf1ee;border-bottom:1px solid #edf1ee;text-align:left;text-overflow:ellipsis}.expense-csv-preview th{position:sticky;top:0;background:#eff6f1;color:var(--green-dark)}.expense-csv-preview tr:last-child td{border-bottom:0}.expense-mapping-submit{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:15px}.expense-mapping-submit span{color:var(--muted);font-size:10px}@media(max-width:1000px){.expense-mapping-fields{grid-template-columns:1fr 1fr}}@media(max-width:600px){.expense-mapping-fields{grid-template-columns:1fr}.expense-mapping-submit{align-items:stretch;flex-direction:column}.expense-mapping-submit .primary{width:100%}}
