:root{color:#101828;font-synthesis:none;text-rendering:optimizelegibility;--brand:#7cb342;--brand-hover:#6da337;--brand-dark:#4d7b22;--brand-strong:#355f16;--brand-soft:#edf6e4;--brand-subtle:#f6faf2;--gray-25:#fcfcfd;--gray-50:#f9fafb;--gray-100:#f2f4f7;--gray-200:#eaecf0;--gray-400:#98a2b3;--gray-500:#667085;--gray-600:#475467;--gray-700:#344054;--gray-900:#101828;--danger:#d92d20;--danger-soft:#fef3f2;--warning:#b54708;--warning-soft:#fffaeb;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 2px 8px #1018280f;--shadow-nav:0 -8px 24px #10182814;background:#f7f9f5;font-family:Inter,Noto Sans JP,Hiragino Sans,Yu Gothic UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{background:#f7f9f5;min-width:320px}html,body,#root{min-height:100%}body{color:var(--gray-900);-webkit-font-smoothing:antialiased;background:#f7f9f5;margin:0}button,input,select,textarea{min-width:0;font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #7cb34247}a{color:inherit}.app-shell{width:min(100%,1040px);min-height:100vh;padding-bottom:calc(92px + env(safe-area-inset-bottom));background:#fff;margin:0 auto}.topbar{z-index:10;-webkit-backdrop-filter:blur(18px);background:#fffffff0;justify-content:space-between;align-items:center;gap:20px;min-height:76px;padding:14px 32px;display:flex;position:sticky;top:0;box-shadow:0 1px #1018280d}.topbar-brand{align-items:center;gap:12px;min-width:0;display:flex}.topbar-brand>div{min-width:0}.topbar-logo{object-fit:contain;flex:none;width:44px;height:38px}.topbar h1{max-width:520px;color:var(--gray-900);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden}.eyebrow{color:var(--brand-dark);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700;line-height:1.4}.sync-state{color:var(--gray-500);white-space:nowrap;flex:none;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.sync-state>span{align-items:center;gap:6px;display:inline-flex}.sync-state>span:before{background:var(--brand);content:"";border-radius:50%;width:7px;height:7px}.sync-state.pending{color:var(--warning)}.sync-state.pending>span:before{background:#f79009}.sync-button{color:#fff;background:var(--brand);min-height:40px;box-shadow:var(--shadow-xs);border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:700;transition:background .18s,transform .18s;display:inline-flex}.sync-button:hover:not(:disabled){background:var(--brand-hover)}.sync-button:active:not(:disabled){transform:translateY(1px)}main{width:100%}.stack{gap:0;width:100%;padding:0 32px 36px;display:grid}.section-head{justify-content:space-between;align-items:flex-end;gap:18px;min-width:0;padding:38px 0 20px;display:flex}.section-head>div{min-width:0}.section-head h2,.hero-card h2{color:var(--gray-900);letter-spacing:-.035em;margin:5px 0 0;font-size:clamp(25px,4vw,32px);font-weight:700;line-height:1.2}.hero-card{isolation:isolate;color:#fff;background:linear-gradient(135deg,#7cb342 0%,#6aa238 62%,#568925 100%);border:0;border-radius:24px;margin-top:24px;padding:clamp(28px,6vw,52px);position:relative;overflow:hidden;box-shadow:0 18px 40px #4d7b2233}.hero-card:before,.hero-card:after{z-index:-1;content:"";background:#ffffff1a;border-radius:50%;position:absolute}.hero-card:before{width:250px;height:250px;top:-100px;right:-55px}.hero-card:after{width:190px;height:190px;bottom:-115px;right:130px}.hero-card .eyebrow{color:#fffc}.hero-card h2{color:#fff}.hero-card p{color:#ffffffdb;max-width:620px;margin:12px 0 24px;font-size:15px;line-height:1.7}.primary,.secondary,.ghost,.danger{white-space:nowrap;border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;font-size:14px;font-weight:700;line-height:1.4;transition:background .18s,color .18s,transform .18s;display:inline-flex}.primary{color:#fff;background:var(--brand);box-shadow:var(--shadow-xs)}.primary:hover:not(:disabled){background:var(--brand-hover)}.secondary{color:var(--brand-strong);box-shadow:var(--shadow-xs);background:#fff}.secondary:hover{color:var(--brand-dark);background:var(--brand-soft)}.ghost{color:var(--gray-700);background:var(--gray-100)}.ghost:hover{background:var(--gray-200)}.danger{color:var(--danger);background:var(--danger-soft)}.danger:hover{background:#fee4e2}.primary:active:not(:disabled),.secondary:active,.ghost:active,.danger:active{transform:translateY(1px)}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0;padding:20px 0 2px;display:grid}.stat-card{min-width:0;min-height:118px;color:var(--brand-dark);background:var(--brand-subtle);text-align:left;border:0;border-radius:16px;align-content:center;justify-items:start;gap:4px;padding:20px;transition:background .18s,transform .18s;display:grid}.stat-card:hover{background:var(--brand-soft);transform:translateY(-1px)}.stat-card svg{width:20px;height:20px;margin-bottom:5px}.stat-card b{color:var(--gray-900);letter-spacing:-.03em;font-size:25px;font-weight:700;line-height:1}.stat-card span{max-width:100%;color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.week-preview,.card-list,.calendar-list,.shopping-list{gap:10px;min-width:0;display:grid}.day-row,.recipe-card,.calendar-day,.shopping-row{background:var(--gray-50);border:0;border-radius:14px;min-width:0;padding:16px 18px}.day-row{grid-template-columns:70px minmax(0,1fr);align-items:center;gap:14px;display:grid}.day-row>div{gap:2px;min-width:0;display:grid}.day-row b{color:var(--brand-dark);font-size:13px}.day-row span,.shopping-row span,.members span{color:var(--gray-500);font-size:12px}.day-row p{overflow-wrap:anywhere;min-width:0;color:var(--gray-600);margin:0;font-size:14px;line-height:1.6}.editor-card{background:var(--gray-50);border:0;border-radius:20px;min-width:0;margin:0 0 24px;padding:clamp(20px,4vw,28px)}.editor-card h3{color:var(--gray-900);letter-spacing:-.02em;margin:0 0 22px;font-size:18px;font-weight:700}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:0;display:grid}.form-grid .wide{grid-column:1/-1}label{min-width:0;color:var(--gray-700);gap:7px;font-size:13px;font-weight:600;display:grid}input,select,textarea{width:100%;color:var(--gray-900);box-shadow:var(--shadow-xs);background:#fff;border:0;border-radius:9px;outline:none;transition:box-shadow .18s,background .18s}input,select{min-height:44px;padding:10px 12px}textarea{resize:vertical;min-height:106px;padding:12px;line-height:1.6}input::placeholder,textarea::placeholder{color:var(--gray-400)}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #7cb34233, var(--shadow-xs);background:#fff}.actions{flex-wrap:wrap;gap:9px;min-width:0;margin-top:22px;display:flex}.field-error,.form-error{font-size:12px;font-weight:600;color:var(--danger)!important}.recipe-card{box-shadow:var(--shadow-xs);background:#fff;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;display:grid}.recipe-card>div:first-child{min-width:0}.recipe-card h3{overflow-wrap:anywhere;color:var(--gray-900);letter-spacing:-.015em;margin:7px 0 5px;font-size:17px;font-weight:700}.recipe-card p{overflow-wrap:anywhere;color:var(--gray-500);margin:0;font-size:13px;line-height:1.6}.recipe-card small{overflow-wrap:anywhere;white-space:pre-wrap;color:var(--gray-500);margin-top:8px;font-size:12px;line-height:1.6;display:block}.recipe-link{color:var(--brand-dark);align-items:center;gap:5px;margin-top:10px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.recipe-link:hover{text-decoration:underline}.pill{color:var(--brand-dark);background:var(--brand-soft);border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;line-height:1.4;display:inline-flex}.icon-actions{flex:none;align-items:center;gap:4px;display:flex}.icon-actions button,.week-controls button,.range-calendar-head button{min-width:38px;min-height:38px;color:var(--gray-600);background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600}.icon-actions button:hover,.week-controls button:hover,.range-calendar-head button:hover{color:var(--brand-dark);background:var(--brand-soft)}.icon-actions button[aria-label=削除]:hover{color:var(--danger);background:var(--danger-soft)}.week-controls{background:var(--gray-100);border-radius:10px;flex:none;align-items:center;gap:3px;padding:3px;display:flex}.week-controls button{background:#fff}.week-controls button:first-child,.week-controls button:last-child{font-size:22px;font-weight:500;line-height:1}.calendar-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendar-day{grid-template-columns:48px minmax(0,1fr);gap:15px;padding:18px;display:grid}.calendar-date{color:var(--brand-dark);align-content:start;justify-items:center;padding-top:5px;display:grid}.calendar-date b{letter-spacing:-.04em;font-size:26px;font-weight:700;line-height:1}.calendar-date span{color:var(--gray-500);margin-top:5px;font-size:11px;font-weight:600}.slot-list{gap:9px;min-width:0;display:grid}.meal-slot{grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.meal-slot>span{color:var(--gray-500);text-align:center;font-size:12px}.meal-picker-trigger{min-width:0;min-height:40px;color:var(--gray-500);box-shadow:var(--shadow-xs);text-align:left;background:#fff;border:0;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:7px 11px;font-size:13px;display:flex}.meal-picker-trigger>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.meal-picker-trigger svg{color:var(--gray-400);flex:none}.meal-picker-trigger.selected{color:var(--gray-900);font-weight:600}.meal-picker-trigger:hover{background:var(--brand-soft)}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);background:#1018287a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.recipe-picker-modal{background:#fff;border-radius:20px;grid-template-rows:auto auto minmax(0,1fr);width:min(100%,560px);max-height:min(720px,100dvh - 48px);display:grid;overflow:hidden;box-shadow:0 24px 64px #1018283d}.modal-head{justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 22px 16px;display:flex}.modal-head h3{color:var(--gray-900);letter-spacing:-.025em;margin:4px 0 0;font-size:22px}.modal-close{width:38px;height:38px;color:var(--gray-500);background:var(--gray-50);border:0;border-radius:9px;flex:none;place-items:center;padding:0;display:grid}.modal-close:hover{color:var(--gray-700);background:var(--gray-100)}.recipe-search{background:var(--gray-50);min-width:0;box-shadow:inset 0 0 0 1px var(--gray-200);border-radius:10px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;margin:0 22px 14px;padding:0 12px;display:grid}.recipe-search>svg{color:var(--gray-400)}.recipe-search input{min-height:46px;box-shadow:none;background:0 0;padding:10px 0}.recipe-search input:focus{box-shadow:none;background:0 0}.recipe-search:focus-within{box-shadow:0 0 0 3px #7cb34233, inset 0 0 0 1px var(--brand);background:#fff}.recipe-search button{width:32px;height:32px;color:var(--gray-500);background:0 0;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.recipe-search button:hover{background:var(--gray-100)}.recipe-options{overscroll-behavior:contain;align-content:start;gap:6px;min-height:0;padding:0 14px 18px;display:grid;overflow-y:auto}.recipe-option{width:100%;min-width:0;color:var(--gray-700);text-align:left;background:0 0;border:0;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:13px 12px;display:flex}.recipe-option:hover{background:var(--gray-50)}.recipe-option.selected{color:var(--brand-strong);background:var(--brand-soft)}.recipe-option>div{gap:4px;min-width:0;display:grid}.recipe-option strong{overflow-wrap:anywhere;font-size:14px}.recipe-option span{color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;line-height:1.5;overflow:hidden}.recipe-option svg{color:var(--brand-dark);flex:none}.recipe-search-empty{color:var(--gray-400);text-align:center;justify-items:center;gap:9px;padding:38px 18px;display:grid}.recipe-search-empty p{color:var(--gray-500);margin:0;font-size:13px;line-height:1.6}.range-picker{min-width:0;margin-bottom:20px}.range-summary{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;min-width:0;margin-bottom:10px;display:grid}.range-summary>div{min-width:0;box-shadow:var(--shadow-xs);background:#fff;border-radius:10px;gap:4px;padding:13px 14px;display:grid}.range-summary span{color:var(--gray-500);font-size:11px;font-weight:600}.range-summary strong{color:var(--gray-900);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.range-arrow{color:var(--brand)!important;font-size:18px!important}.range-guide{color:var(--gray-500);margin:0 0 12px;font-size:12px;line-height:1.6}.range-calendar{min-width:0;box-shadow:var(--shadow-xs);background:#fff;border:0;border-radius:16px;padding:12px}.range-calendar-head{text-align:center;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;margin-bottom:8px;display:grid}.range-calendar-head strong{color:var(--gray-900);font-size:14px;font-weight:700}.range-calendar-head button{font-size:24px;line-height:1}.range-weekdays,.range-days{grid-template-columns:repeat(7,minmax(0,1fr));min-width:0;display:grid}.range-weekdays span{min-width:0;color:var(--gray-500);text-align:center;padding:5px 0 8px;font-size:10px;font-weight:600}.range-weekdays span:first-child{color:#d92d20}.range-weekdays span:last-child{color:#175cd3}.range-day{aspect-ratio:1;min-width:0;color:var(--gray-700);background:0 0;border:0;border-radius:9px;padding:0;font-size:12px;font-weight:600;position:relative}.range-day:hover{color:var(--brand-dark);background:var(--brand-soft)}.range-day.outside{color:#c5cad3}.range-day.in-range{color:var(--brand-dark);background:var(--brand-soft);border-radius:0}.range-day.range-start,.range-day.range-end{color:#fff;background:var(--brand);border-radius:9px;font-weight:700}.range-day.today:not(.range-start):not(.range-end):after{background:var(--brand);content:"";border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.manual-add{grid-template-columns:minmax(0,1fr) 44px;gap:8px;min-width:0;margin-bottom:16px;display:grid}.manual-add button{color:#fff;background:var(--brand);border:0;border-radius:9px;place-items:center;display:grid}.manual-add button:hover{background:var(--brand-hover)}.shopping-row{box-shadow:var(--shadow-xs);background:#fff;grid-template-columns:44px 26px minmax(0,1fr) 36px;align-items:center;gap:8px;display:grid}.shopping-row>div{gap:2px;min-width:0;display:grid}.shopping-row b{color:var(--gray-700);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.check-button{color:#fff;background:var(--gray-100);border:0;border-radius:7px;place-items:center;width:24px;height:24px;padding:0;display:grid}.shopping-row.done b{color:var(--gray-400);text-decoration:line-through}.shopping-row.done .check-button{background:var(--brand)}.trash{width:36px;height:36px;color:var(--gray-400);background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.trash:hover{color:var(--danger);background:var(--danger-soft)}.invite-card{text-align:center;color:#fff;background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);border:0;border-radius:20px;margin:0 0 24px;padding:34px 24px;position:relative;overflow:hidden;box-shadow:0 16px 34px #4d7b222b}.invite-card span{color:#ffffffc2;font-size:12px;font-weight:600;display:block}.invite-card strong{letter-spacing:.16em;margin:10px 0 18px;font-size:clamp(28px,8vw,42px);font-weight:700;line-height:1.2;display:block}.invite-card button{min-height:40px;color:var(--brand-strong);box-shadow:var(--shadow-xs);background:#fff;border:0;border-radius:9px;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:700;display:inline-flex}.members{gap:8px;min-width:0;display:grid}.members>div{align-items:center;gap:12px;min-width:0;padding:10px 0;display:flex}.members p{gap:2px;min-width:0;margin:0;display:grid}.members b{color:var(--gray-700);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.avatar{width:42px;height:42px;color:var(--brand-dark);background:var(--brand-soft);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.bottom-nav{z-index:20;width:min(1040px,100%);padding:8px 12px max(8px, env(safe-area-inset-bottom));box-shadow:var(--shadow-nav);-webkit-backdrop-filter:blur(18px);background:#fffffff5;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{min-width:0;min-height:56px;color:var(--gray-500);background:0 0;border:0;border-radius:11px;align-content:center;justify-items:center;gap:3px;padding:6px 4px;font-size:10px;font-weight:600;transition:color .18s,background .18s;display:grid}.bottom-nav button svg{stroke-width:2px;width:20px;height:20px}.bottom-nav button:hover{color:var(--gray-700);background:var(--gray-50)}.bottom-nav button.active{color:var(--brand-dark);background:var(--brand-soft)}.bottom-nav button.active svg{stroke-width:2.5px}.error-banner{color:#b42318;background:var(--danger-soft);border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin:12px 32px 0;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.error-banner button{color:#b42318;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;width:30px;height:30px;padding:0;display:grid}.error-banner button:hover{background:#fee4e2}.welcome{isolation:isolate;background:#f7f9f5;place-items:center;min-height:100vh;padding:40px 20px;display:grid;position:relative;overflow:hidden}.welcome:before,.welcome:after{z-index:-1;filter:blur(2px);content:"";border-radius:50%;position:absolute}.welcome:before{background:#7cb3422e;width:420px;height:420px;top:-180px;right:-110px}.welcome:after{background:#7cb3421a;width:520px;height:520px;bottom:-230px;left:-180px}.welcome-card{background:#fffffff5;border:0;border-radius:24px;width:min(100%,520px);padding:clamp(28px,6vw,48px);box-shadow:0 24px 64px #1018281a}.welcome-card h1{color:var(--gray-900);letter-spacing:-.045em;margin:14px 0 10px;font-size:clamp(27px,6vw,36px);font-weight:700;line-height:1.3}.welcome-card>p{color:var(--gray-500);margin:0;font-size:14px;line-height:1.75}.welcome-card label{margin-top:16px}.welcome-card .primary{width:100%;margin-top:24px}.brand-mark{place-items:center;width:96px;height:66px;margin-bottom:18px;display:grid}.brand-mark img{object-fit:contain;width:100%;height:100%}.loading-card{text-align:center}.loading-card .brand-mark{margin-inline:auto}.loading-line{background:var(--brand-soft);border-radius:999px;height:4px;margin-top:26px;overflow:hidden}.loading-line:after{background:var(--brand);border-radius:inherit;content:"";width:42%;height:100%;animation:1.1s ease-in-out infinite alternate loading-slide;display:block}@keyframes loading-slide{0%{transform:translate(-10%)}to{transform:translate(150%)}}.room-home{width:min(100%,620px)}.profile-head{align-items:center;gap:14px;min-width:0;margin-bottom:12px;display:flex}.profile-head>div:last-child{min-width:0}.profile-head h1{overflow-wrap:anywhere;margin-top:3px;font-size:clamp(24px,5vw,32px)}.user-avatar{width:50px;height:50px;color:var(--brand-dark);background:var(--brand-soft);border-radius:15px;flex:none;place-items:center;display:grid}.room-history{gap:8px;min-width:0;margin-top:24px;display:grid}.room-entry{width:100%;min-width:0;color:var(--gray-700);background:var(--gray-50);text-align:left;border:0;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:16px;transition:background .18s,transform .18s;display:flex}.room-entry:hover:not(:disabled){background:var(--brand-soft);transform:translateY(-1px)}.room-entry>div{gap:4px;min-width:0;display:grid}.room-entry strong{overflow-wrap:anywhere;color:var(--gray-900);font-size:15px}.room-entry span{color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.room-entry svg{color:var(--brand-dark);flex:none}.room-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px;display:grid}.room-actions .primary,.room-actions .ghost{width:100%;margin-top:0}.back-button{color:var(--gray-500);background:0 0;border:0;align-items:center;gap:7px;margin:16px 0 22px;padding:7px 0;font-size:13px;font-weight:600;display:inline-flex}.back-button:hover{color:var(--brand-dark)}.room-form{background:var(--gray-50);border-radius:16px;padding:22px}.room-form h2{color:var(--gray-900);letter-spacing:-.025em;margin:0 0 18px;font-size:20px}.room-form label{margin-top:0}.room-form .primary{margin-top:18px}.segmented{background:var(--gray-100);border-radius:11px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:28px 0 20px;padding:4px;display:grid}.segmented button{min-height:40px;color:var(--gray-500);background:0 0;border:0;border-radius:8px;padding:8px;font-size:13px;font-weight:600}.segmented button.active{color:var(--brand-strong);box-shadow:var(--shadow-xs);background:#fff}.empty{color:var(--gray-500);background:var(--gray-50);text-align:center;border:0;border-radius:14px;padding:40px 20px;font-size:13px}@media (width<=720px){.app-shell{width:100%}.topbar{gap:12px;min-height:68px;padding:12px 18px}.topbar-logo{width:39px;height:34px}.topbar h1{max-width:42vw;font-size:17px}.sync-state>span{display:none}.sync-button{min-width:42px;min-height:40px;padding:9px 11px}.sync-button svg{width:18px}.stack{padding:0 18px 30px}.section-head{align-items:center;padding:30px 0 18px}.hero-card{border-radius:20px;margin-top:18px}.stats-grid{gap:8px;padding-top:14px}.stat-card{min-height:104px;padding:14px 10px}.calendar-list{grid-template-columns:1fr}.error-banner{margin:10px 18px 0}}@media (width<=520px){.section-head{flex-wrap:wrap}.week-controls{margin-left:auto}.form-grid{grid-template-columns:1fr;gap:15px}.form-grid .wide{grid-column:auto}.editor-card{border-radius:16px;padding:20px 16px}.recipe-card{align-items:start;gap:10px;padding:15px}.icon-actions{align-self:start}.icon-actions button{min-width:34px;min-height:34px;padding:6px 8px}.week-controls{gap:1px}.week-controls button{min-width:34px;min-height:34px;padding:6px 8px}.calendar-day{grid-template-columns:42px minmax(0,1fr);padding:15px 13px}.modal-backdrop{align-items:end;padding:0}.recipe-picker-modal{width:100%;max-height:min(78dvh,680px);padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0}.modal-head{padding:20px 18px 14px}.recipe-search{margin-inline:18px}.range-summary{gap:7px}.range-summary>div{padding:11px 9px}.range-summary strong{font-size:12px}.range-calendar{padding:8px}.range-day{font-size:11px}.invite-card{padding:30px 16px}.room-actions{grid-template-columns:1fr}}@media (width<=380px){.topbar{padding-inline:14px}.topbar-brand{gap:7px}.topbar-logo{width:34px}.topbar .eyebrow{display:none}.topbar h1{max-width:44vw;margin:0;font-size:16px}.sync-button{color:#fff;gap:0;width:40px;min-width:40px;font-size:0;overflow:hidden}.sync-button svg{color:#fff;flex:none}.stack{padding-inline:14px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{min-height:94px;padding:12px 6px}.stat-card b{font-size:22px}.stat-card span{font-size:10px}.day-row{grid-template-columns:58px minmax(0,1fr);padding-inline:14px}.bottom-nav{padding-inline:6px}.bottom-nav button{font-size:9px}.welcome{padding-inline:12px}.welcome-card{border-radius:20px;padding:26px 20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shopping-order-hint{color:var(--gray-500);margin:0;font-size:13px}.shopping-drag-handle{width:44px;height:44px;color:var(--gray-500);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.shopping-drag-handle:hover{background:var(--gray-100)}.shopping-drag-handle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.shopping-row.dragging{z-index:10;outline:2px solid var(--brand);position:relative;box-shadow:0 8px 24px #00000029}.shopping-row.dragging .shopping-drag-handle{cursor:grabbing;color:var(--brand-dark)}.app-shell main .eyebrow{display:none}.app-shell main .section-head h2{color:var(--brand-dark);margin-top:0;font-size:clamp(24px,4vw,30px);line-height:1.3}.app-shell main .hero-card{margin-top:32px;padding:clamp(32px,7vw,56px)}.app-shell main .hero-card h2{margin-top:0;font-size:clamp(27px,5vw,36px);line-height:1.25}.app-shell main .hero-card p{margin:16px 0 28px;font-size:16px;line-height:1.8}.app-shell main .stats-grid{gap:16px;padding:28px 0 8px}.app-shell main .stat-card{gap:7px;min-height:128px;padding:22px}.app-shell main .stat-card b{color:var(--brand-strong);font-size:28px}.app-shell main .stat-card span{color:var(--brand-dark);font-size:13px;font-weight:700}.app-shell main .section-head{padding:44px 0 22px}.app-shell main .week-preview,.app-shell main .card-list,.app-shell main .calendar-list,.app-shell main .shopping-list{gap:14px}.app-shell main .day-row,.app-shell main .recipe-card,.app-shell main .calendar-day,.app-shell main .shopping-row{padding:18px 20px}@media (width<=640px){.app-shell main .hero-card{margin-top:24px;padding:30px 24px}.app-shell main .stats-grid{gap:10px;padding-top:20px}.app-shell main .stat-card{min-height:112px;padding:16px}.app-shell main .stat-card b{font-size:24px}.app-shell main .stat-card span{font-size:12px}.app-shell main .section-head{padding-top:36px}}.recipe-list-head{align-items:center}.recipe-list-head p{color:var(--gray-500);margin:8px 0 0;font-size:14px}.recipe-add-button{flex:none}.recipe-toolbar{grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:12px;margin-bottom:18px;display:grid}.recipe-list-search{background:var(--gray-50);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex;position:relative}.recipe-list-search svg{color:var(--gray-500);flex:none}.recipe-list-search input{min-height:46px;box-shadow:none;background:0 0;padding:10px 0}.recipe-list-search input:focus{box-shadow:none}.recipe-sort{color:var(--gray-500);background:var(--gray-50);white-space:nowrap;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding-left:12px;display:grid}.recipe-sort select{min-height:46px;box-shadow:none;background:0 0}.recipe-editor-page .section-head{align-items:flex-start}.recipe-editor-page .section-head h2{margin-top:18px}.recipe-editor-card{width:100%;max-width:760px;margin-inline:auto}.room-settings-grid{grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr);align-items:start;gap:16px;display:grid}.invite-card.compact{min-height:auto;padding:22px}.invite-card.compact strong{letter-spacing:.08em;font-size:clamp(27px,6vw,38px)}.meal-slot-settings{margin:0}.meal-slot-settings>p{color:var(--gray-500);margin:-10px 0 18px;font-size:13px;line-height:1.6}.setting-toggle{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;gap:18px;padding:14px 0;display:flex}.setting-toggle:last-of-type{border-bottom:0}.setting-toggle>span{gap:3px;display:grid}.setting-toggle b{color:var(--gray-900);font-size:14px}.setting-toggle small,.setting-note{color:var(--gray-500);font-size:12px}.setting-toggle input{width:46px;min-height:26px;accent-color:var(--brand);box-shadow:none}.setting-note{margin-top:12px;display:block}.members>div{grid-template-columns:auto minmax(0,1fr) auto}.member-remove{min-height:36px;color:var(--danger);background:var(--danger-soft);border:0;border-radius:8px;align-items:center;gap:5px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex}.member-remove:hover{background:#fee4e2}@media (width<=720px){.recipe-list-head{align-items:stretch}.recipe-list-head,.recipe-toolbar,.room-settings-grid{grid-template-columns:1fr}.recipe-list-head{display:grid}.recipe-add-button{width:100%}.recipe-toolbar{gap:10px}.recipe-sort{grid-template-columns:auto minmax(0,1fr)}}.manual-add[data-issue20-enhanced=true]{border:1px solid var(--line,#e5e7eb);background:var(--surface,#fff);border-radius:18px;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:18px;display:grid;box-shadow:0 8px 24px #0f172a0f}.manual-add-header{grid-column:1/-1;gap:4px;display:grid}.manual-add-header strong{font-size:1rem}.manual-add-header span{color:var(--muted,#64748b);font-size:.86rem;line-height:1.5}.manual-add[data-issue20-enhanced=true] input{border-radius:12px;min-width:0;min-height:48px;padding:0 14px}.manual-add[data-issue20-enhanced=true] button{border-radius:12px;justify-content:center;align-items:center;gap:6px;min-width:92px;min-height:48px;padding:0 16px;font-weight:700;display:inline-flex}.manual-add-button-label{display:inline}@media (width<=520px){.manual-add[data-issue20-enhanced=true]{grid-template-columns:1fr;padding:16px}.manual-add[data-issue20-enhanced=true] button{width:100%}}.sidebar-brand{display:none}@media (width>=1024px){.app-shell{--sidebar-width:224px;width:100%;padding:0 0 0 var(--sidebar-width);background:#fff;margin:0}.bottom-nav{width:var(--sidebar-width);background:var(--gray-50);border-right:1px solid var(--gray-200);height:100dvh;box-shadow:none;grid-template-columns:minmax(0,1fr);align-content:start;gap:8px;padding:24px 16px;inset:0 auto 0 0;overflow-y:auto;transform:none}.sidebar-brand{min-height:44px;color:var(--brand-strong);align-items:center;gap:10px;margin-bottom:32px;padding:0 10px;font-size:20px;font-weight:700;display:flex}.sidebar-brand img{object-fit:contain;width:36px;height:36px}.bottom-nav button{text-align:left;justify-content:flex-start;align-items:center;gap:14px;min-height:48px;padding:12px 16px;font-size:14px;display:flex}.bottom-nav button svg{flex:none}.bottom-nav button.active{box-shadow:inset 3px 0 var(--brand)}.topbar{padding-inline:40px}.topbar h1{max-width:min(520px,36vw)}.app-shell>main{max-width:1440px;margin-inline:auto}.app-shell main .stack{padding:0 40px 48px}.app-shell>.error-banner{margin-inline:40px}.app-shell main .section-head{padding-top:32px}.app-shell main[data-page=home] .week-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell main[data-page=recipes] .card-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.card-list>.empty{grid-column:1/-1}.app-shell main[data-page=recipes] .recipe-card{align-items:start;height:100%}.app-shell main[data-page=shopping]>.stack{grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);align-items:start;column-gap:28px}main[data-page=shopping] .section-head{grid-column:1/-1}main[data-page=shopping] .editor-card{grid-area:2/1/4;margin:0}main[data-page=shopping] .manual-add{grid-area:2/2}main[data-page=shopping] .shopping-list{grid-area:3/2;align-self:start}main[data-page=shopping] .range-picker{max-width:420px;margin-inline:auto}main[data-page=room] .stack>.ghost{justify-self:start}.app-shell main .section-head h2{overflow-wrap:anywhere}}@media (width>=1440px){.app-shell{--sidebar-width:248px}.app-shell main .calendar-list{grid-template-columns:repeat(3,minmax(0,1fr))}}.meal-plan-recipe-item{min-width:0}.meal-plan-recipe-item.calendar{grid-column:2;gap:4px;display:grid}.meal-plan-recipe-item.calendar .recipe-link{white-space:nowrap;justify-self:start;margin-top:0;padding-inline:2px}.week-preview-recipes{gap:8px;min-width:0;display:grid}.meal-plan-recipe-item.preview{justify-items:start;gap:2px;display:grid}.meal-plan-recipe-name{overflow-wrap:anywhere;min-width:0;color:var(--gray-600);font-size:14px;line-height:1.6}.meal-plan-recipe-item.preview .recipe-link{margin-top:0}.recipe-wallet-page{padding-bottom:52px}.recipe-wallet-page .recipe-list-head{align-items:center}.recipe-wallet-page .recipe-list-head p{color:var(--gray-500);margin:8px 0 0;font-size:13px;line-height:1.6}.recipe-wallet-search{background:color-mix(in srgb, var(--brand) 3%, white);border:1px solid color-mix(in srgb, var(--brand) 12%, white);border-radius:12px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;margin-bottom:22px;padding:0 14px;display:grid;box-shadow:0 1px 2px #10182809}.recipe-wallet-search>svg{color:color-mix(in srgb, var(--brand-dark) 62%, #667085)}.recipe-wallet-search input{min-height:46px;box-shadow:none;background:0 0;padding-inline:0}.recipe-wallet-search input:focus{box-shadow:none;background:0 0}.recipe-wallet-search:focus-within{border-color:color-mix(in srgb, var(--brand) 44%, white);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent)}.recipe-wallet-search button{color:#667085;background:0 0;border:0;border-radius:8px;place-items:center;width:30px;height:30px;padding:0;display:grid}.recipe-wallet-search button:hover{background:color-mix(in srgb, var(--brand) 7%, white)}.recipe-credit-cards{scrollbar-width:thin;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:24px;padding:2px 2px 10px;display:grid;overflow-x:auto}.recipe-credit-card{aspect-ratio:1.58;min-width:0;color:color-mix(in srgb, var(--brand-dark) 70%, #344054);background:linear-gradient(145deg, color-mix(in srgb, var(--brand) 5%, white) 0%, color-mix(in srgb, var(--brand) 10%, white) 100%);border:1px solid color-mix(in srgb, var(--brand) 14%, white);text-align:left;border-radius:18px;flex-direction:column;justify-content:space-between;padding:16px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #10182809,0 4px 10px #10182806}.recipe-credit-card:before{content:"";pointer-events:none;border:22px solid #fff6;border-radius:50%;width:120px;height:120px;position:absolute;top:-48px;right:-42px}.recipe-credit-card:first-child{background:linear-gradient(145deg, color-mix(in srgb, var(--brand) 6%, white) 0%, color-mix(in srgb, var(--brand) 11%, white) 100%)}.recipe-credit-card:nth-child(2){background:linear-gradient(145deg, color-mix(in srgb, var(--brand) 8%, white) 0%, color-mix(in srgb, var(--brand) 13%, white) 100%)}.recipe-credit-card:nth-child(3){background:linear-gradient(145deg, color-mix(in srgb, var(--brand) 10%, white) 0%, color-mix(in srgb, var(--brand) 15%, white) 100%)}.recipe-credit-card:nth-child(4){background:linear-gradient(145deg, color-mix(in srgb, var(--brand) 12%, white) 0%, color-mix(in srgb, var(--brand) 17%, white) 100%)}.recipe-credit-card:nth-child(5){background:linear-gradient(145deg, color-mix(in srgb, var(--brand) 14%, white) 0%, color-mix(in srgb, var(--brand) 19%, white) 100%)}.recipe-credit-card:hover{border-color:color-mix(in srgb, var(--brand) 28%, white);transform:translateY(-2px);box-shadow:0 8px 20px #10182811}.recipe-credit-card.active{color:color-mix(in srgb, var(--brand-dark) 82%, #344054);background:linear-gradient(145deg, color-mix(in srgb, var(--brand) 16%, white) 0%, color-mix(in srgb, var(--brand) 23%, white) 100%);border-color:color-mix(in srgb, var(--brand) 38%, white);box-shadow:0 0 0 2px #fff, 0 0 0 4px color-mix(in srgb, var(--brand) 32%, white), 0 10px 24px #10182817;transform:translateY(-2px)}.recipe-credit-card-top,.recipe-credit-card-bottom{z-index:1;justify-content:space-between;align-items:center;gap:10px;display:flex;position:relative}.recipe-credit-brand{letter-spacing:.13em;opacity:.72;font-size:9px;font-weight:800}.recipe-credit-index{opacity:.58;font-size:11px;font-weight:700}.recipe-credit-card-center{z-index:1;gap:2px;display:grid;position:relative}.recipe-credit-card-center small{opacity:.68;font-size:10px;font-weight:600}.recipe-credit-card-center strong{letter-spacing:-.035em;font-size:clamp(20px,2.2vw,27px);font-weight:700}.recipe-credit-card-bottom{letter-spacing:.06em;opacity:.68;font-size:9px;font-weight:700}.recipe-category-panel{background:color-mix(in srgb, var(--brand) 2.5%, white);border:1px solid color-mix(in srgb, var(--brand) 10%, white);border-radius:18px;padding:20px;box-shadow:0 1px 2px #10182809,0 8px 24px #10182809}.recipe-category-panel-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.recipe-category-panel-head>div{gap:3px;display:grid}.recipe-category-code{width:fit-content;min-height:22px;color:var(--brand-dark);background:color-mix(in srgb, var(--brand) 10%, white);letter-spacing:.08em;border-radius:999px;align-items:center;padding:3px 8px;font-size:9px;font-weight:800;display:inline-flex}.recipe-category-panel-head h3{color:#101828;letter-spacing:-.025em;margin:2px 0 0;font-size:22px;font-weight:700}.recipe-category-panel-head p{color:#667085;margin:0;font-size:12px}.recipe-category-total{min-height:30px;color:var(--brand-dark);background:color-mix(in srgb, var(--brand) 7%, white);border:1px solid color-mix(in srgb, var(--brand) 12%, white);border-radius:999px;flex:none;align-items:center;padding:6px 10px;font-size:11px;font-weight:700;display:inline-flex}.wallet-recipe-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.wallet-recipe{background:color-mix(in srgb, var(--brand) 2%, white);border:1px solid color-mix(in srgb, var(--brand) 9%, white);border-radius:14px;min-width:0;padding:15px;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;box-shadow:0 1px 2px #10182806}.wallet-recipe:hover{background:color-mix(in srgb, var(--brand) 4%, white);border-color:color-mix(in srgb, var(--brand) 18%, white);transform:translateY(-1px);box-shadow:0 6px 14px #1018280b}.wallet-recipe-main{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0;display:grid}.wallet-recipe-main>div:first-child{min-width:0}.wallet-recipe h3{overflow-wrap:anywhere;color:#101828;letter-spacing:-.015em;margin:0 0 10px;font-size:15px;font-weight:700}.wallet-ingredient-chips{flex-wrap:wrap;gap:5px;display:flex}.wallet-ingredient-chips span{min-height:24px;color:color-mix(in srgb, var(--brand-dark) 55%, #475467);background:color-mix(in srgb, var(--brand) 6%, white);border:1px solid color-mix(in srgb, var(--brand) 10%, white);border-radius:999px;align-items:center;padding:4px 8px;font-size:10px;line-height:1;display:inline-flex}.wallet-recipe small{overflow-wrap:anywhere;color:#667085;margin-top:9px;font-size:11px;line-height:1.55;display:block}.wallet-recipe-actions{flex:none;align-items:center;gap:2px;display:flex}.wallet-recipe-actions button{min-height:32px;color:color-mix(in srgb, var(--brand-dark) 55%, #475467);background:0 0;border:0;border-radius:8px;padding:6px 8px;font-size:11px;font-weight:700}.wallet-recipe-actions button:hover{color:var(--brand-dark);background:color-mix(in srgb, var(--brand) 8%, white)}.wallet-recipe-actions .wallet-delete{color:#98a2b3;place-items:center;width:32px;padding:0;display:grid}.wallet-recipe-actions .wallet-delete:hover{color:var(--danger);background:var(--danger-soft)}.wallet-recipe-footer{border-top:1px solid color-mix(in srgb, var(--brand) 7%, white);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:11px;display:flex}.wallet-recipe-footer>span{color:#98a2b3;font-size:10px;font-weight:600}.wallet-recipe-link{color:var(--brand-dark);margin-top:0}.wallet-empty{color:#667085;background:color-mix(in srgb, var(--brand) 3%, white);border:1px dashed color-mix(in srgb, var(--brand) 16%, white);text-align:center;border-radius:12px;padding:32px 16px;font-size:12px}.wallet-add-in-category{width:100%;min-height:42px;color:var(--brand-dark);background:color-mix(in srgb, var(--brand) 7%, white);border:1px solid color-mix(in srgb, var(--brand) 14%, white);border-radius:10px;justify-content:center;align-items:center;gap:7px;margin-top:14px;padding:9px 12px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #10182809}.wallet-add-in-category:hover{background:color-mix(in srgb, var(--brand) 11%, white)}@media (width<=1100px){.recipe-credit-cards{grid-template-columns:repeat(5,minmax(170px,1fr))}}@media (width<=760px){.recipe-wallet-page .recipe-list-head{align-items:flex-start}.recipe-credit-cards{scroll-snap-type:x proximity;grid-template-columns:repeat(5,190px)}.recipe-credit-card{scroll-snap-align:start}.wallet-recipe-list{grid-template-columns:1fr}}@media (width<=520px){.recipe-wallet-page .recipe-add-button{width:100%}.recipe-credit-cards{margin-inline:-4px;padding-inline:4px}.recipe-credit-card{border-radius:16px}.recipe-category-panel{border-radius:16px;padding:16px}.recipe-category-panel-head{gap:12px}.wallet-recipe-main{grid-template-columns:1fr;gap:8px}.wallet-recipe-actions{justify-content:flex-end}}
