:root{--color-paper:#f8f1e6;--color-page:#fffaf1;--color-ink:#2f2a24;--color-muted:#786f63;--color-line:#e7d9c7;--color-coral:#d9664b;--color-coral-dark:#a6402f;--color-sage:#7f9478;--color-cream:#fbf6ec;--color-review:#c78a2a;--color-good:#5f8b69;--color-error:#b95143;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--shadow-soft:0 14px 40px rgb(74 51 30/12%);--shadow-subtle:0 6px 18px rgb(74 51 30/8%);--space-page:18px;--nav-height:68px}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body,html{min-height:100%;margin:0}body{background:radial-gradient(circle at 50% -10%,#fff7e9 0,var(--color-paper) 48%,#eadfcf 100%);color:var(--color-ink);font-family:Geist,ui-sans-serif,system-ui,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.app-shell{display:grid;min-height:100svh;place-items:center;padding:24px}.phone-frame{position:relative;width:min(100%,430px);min-height:min(860px,calc(100svh - 48px));overflow:hidden;border:1px solid rgb(92 73 55/12%);border-radius:34px;background:linear-gradient(180deg,#fffaf1,#f5ebdd);box-shadow:var(--shadow-soft)}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:26px var(--space-page) 14px}.eyebrow{margin:0 0 4px;color:var(--color-coral-dark);font-size:.74rem;font-weight:780;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin-top:0}h1{max-width:280px;margin-bottom:0;font-size:clamp(2.1rem,12vw,3rem);line-height:.95;letter-spacing:0}h2{margin-bottom:4px;font-size:1rem;line-height:1.2}.server-pill{border:1px solid var(--color-line);border-radius:999px;padding:5px 8px;background:rgb(255 250 241/70%);color:var(--color-muted);font-size:.7rem}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.account-menu,.header-actions{position:relative}.account-button{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--color-line);border-radius:999px;padding:4px 6px 4px 4px;background:rgb(255 255 255/62%);color:var(--color-ink)}.account-initial{display:grid;width:24px;aspect-ratio:1;place-items:center;border-radius:999px;background:var(--color-coral);color:white;font-size:.72rem;font-weight:780}.account-popover{position:absolute;z-index:8;top:calc(100% + 8px);right:0;width:min(260px,calc(100vw - 56px));border:1px solid rgb(231 217 199/82%);border-radius:var(--radius-md);padding:12px;background:rgb(255 250 241/96%);box-shadow:var(--shadow-subtle)}.account-label{margin-bottom:3px;color:var(--color-muted);font-size:.72rem}.account-email{overflow:hidden;margin-bottom:10px;color:var(--color-ink);font-size:.82rem;font-weight:690;text-overflow:ellipsis;white-space:nowrap}.account-menu-action,.account-signout{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;border:0;border-radius:var(--radius-sm);padding:9px 11px;font-weight:760;text-decoration:none}.account-menu-action{margin-bottom:6px;background:#f0e3d4;color:var(--color-ink)}.account-signout{background:#f7dfd3;color:var(--color-coral-dark)}.content-stack,.search-panel{padding-inline:var(--space-page)}.search-box{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--color-line);border-radius:var(--radius-md);padding:12px 13px;background:rgb(255 255 255/58%)}.search-box input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--color-ink)}.chip-row,.label-row{display:flex;gap:8px;overflow-x:auto;padding-block:12px;scrollbar-width:none}.chip-row::-webkit-scrollbar,.label-row::-webkit-scrollbar{display:none}.time-chip-row{padding-top:0}.chip{border:1px solid var(--color-line);border-radius:999px;padding:8px 13px;background:rgb(255 250 241/70%);color:var(--color-muted);white-space:nowrap}.chip.is-active{border-color:rgb(217 102 75/28%);background:#f7dfd3;color:var(--color-coral-dark)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin:6px 0 12px}.section-heading p{margin-bottom:0;font-weight:760}.section-heading span{color:var(--color-muted);font-size:.86rem}.notice-text{position:relative;z-index:2;border:1px solid rgb(217 102 75/18%);border-radius:var(--radius-md);margin-bottom:10px;padding:10px 12px;background:#fae8df;color:var(--color-coral-dark);font-size:.86rem;line-height:1.35;overflow-wrap:anywhere}.inbox-notice{box-shadow:0 3px 10px rgb(74 51 30/7%)}.auth-panel{display:grid;grid-gap:12px;gap:12px;margin:0 var(--space-page) 14px;border:1px solid rgb(231 217 199/72%);border-radius:var(--radius-md);padding:14px;background:rgb(255 250 241/72%)}.auth-panel-heading{display:grid;grid-gap:9px;gap:9px}.auth-title{margin-bottom:0;font-size:.9rem;font-weight:780}.auth-message{margin-bottom:0;border-radius:var(--radius-sm);padding:9px 10px;background:#f7e5dc;color:var(--color-coral-dark);font-size:.8rem;line-height:1.35}.auth-mode-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:3px;gap:3px;border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:3px;background:rgb(239 227 212/58%)}.auth-mode-control button{min-height:34px;border:0;border-radius:9px;background:transparent;color:var(--color-muted);font-size:.78rem;font-weight:730}.auth-mode-control button.is-active{background:#fffaf1;color:var(--color-ink);box-shadow:0 1px 3px rgb(74 51 30/8%)}.auth-form{display:grid;grid-gap:10px;gap:10px}.auth-form label,.password-form label{display:grid;grid-gap:5px;gap:5px;color:var(--color-muted);font-size:.74rem;font-weight:720}.auth-form input,.password-form input{width:100%;min-height:42px;min-width:0;border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:9px 11px;outline:0;background:rgb(255 255 255/62%);color:var(--color-ink);font:inherit}.auth-form input:focus,.password-form input:focus{border-color:rgb(217 102 75/42%);box-shadow:0 0 0 3px rgb(217 102 75/9%)}.auth-password-field{position:relative;display:block}.auth-password-field input{padding-right:44px}.auth-password-field button{position:absolute;top:50%;right:4px;display:grid;width:34px;aspect-ratio:1;place-items:center;border:0;border-radius:9px;padding:0;transform:translateY(-50%);background:transparent;color:var(--color-muted)}.auth-form .auth-submit,.password-primary-link,.password-submit{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius-sm);padding:9px 13px;background:var(--color-coral);color:white;font-weight:750;text-decoration:none}.auth-reset:disabled,.auth-submit:disabled,.password-submit:disabled{opacity:.56}.auth-reset{justify-self:start;border:0;padding:0;background:transparent;color:var(--color-coral-dark);font-size:.76rem;font-weight:720}.password-page{min-height:100dvh;padding:20px;background:var(--color-page)}.password-shell{width:min(100%,480px);min-height:calc(100dvh - 40px);margin:0 auto;border:1px solid rgb(231 217 199/82%);border-radius:30px;padding:clamp(28px,8vw,44px) var(--space-page);background:linear-gradient(180deg,#fffaf1,#f5ebdd);box-shadow:var(--shadow-soft)}.password-header{margin-bottom:28px}.password-header h1{max-width:340px}.password-form,.password-panel{display:grid;grid-gap:13px;gap:13px}.password-panel{border-top:1px solid var(--color-line);padding-top:20px}.password-message{margin:0;border-radius:var(--radius-sm);padding:10px 11px;background:#f7e5dc;color:var(--color-coral-dark);font-size:.84rem;line-height:1.35}.password-success-icon{display:grid;width:48px;aspect-ratio:1;place-items:center;border-radius:999px;background:#f0e3d4;color:var(--color-coral-dark)}.auth-confirm-spinner{animation:auth-confirm-spin .9s linear infinite}@keyframes auth-confirm-spin{to{transform:rotate(1turn)}}.password-back-link{justify-self:center;color:var(--color-muted);font-size:.8rem;font-weight:700;text-decoration:none}.detail-stack,.import-list,.recipe-list,.review-stack{display:grid;grid-gap:10px;gap:10px;padding-bottom:calc(var(--nav-height) + 28px)}.empty-card,.import-card,.recipe-card{display:grid;align-items:center;border:1px solid rgb(231 217 199/80%);border-radius:var(--radius-md);background:rgb(255 250 241/76%);box-shadow:var(--shadow-subtle)}.recipe-card{grid-template-columns:58px minmax(0,1fr) auto;gap:12px;padding:11px;width:100%;text-align:left;color:inherit}.empty-card{align-items:start;padding:16px}.empty-card p,.import-card p,.recipe-card p{margin-bottom:0;color:var(--color-muted);font-size:.88rem;line-height:1.35}.recipe-thumb{display:grid;width:58px;aspect-ratio:1;place-items:center;border-radius:16px;background:#f0dfc6;color:#8b614b;overflow:hidden}.detail-hero img,.recipe-thumb img{width:100%;height:100%;object-fit:cover}.recipe-meta{display:grid;grid-gap:3px;gap:3px;justify-items:center;color:var(--color-muted);font-size:.78rem;white-space:nowrap}.flat-label{border-radius:999px;padding:5px 8px;background:#f0e3d4;color:#725f4e;font-size:.75rem;white-space:nowrap}.import-card{grid-template-columns:minmax(0,1fr) auto;min-height:78px;padding:14px}.import-card.status-needs_review{border-color:rgb(95 139 105/35%)}.import-card.status-processing,.import-card.status-uploaded{border-color:rgb(199 138 42/32%)}.import-card.status-failed{border-color:rgb(185 81 67/35%)}.status-icon{color:var(--color-good)}.inline-actions{display:flex;gap:8px}.icon-button,.inline-actions button{display:grid;width:38px;aspect-ratio:1;place-items:center;border:1px solid var(--color-line);border-radius:999px;background:var(--color-page);color:var(--color-ink)}.danger-button{color:var(--color-error)!important}.detail-section,.recipe-detail-card{border:1px solid rgb(231 217 199/72%);border-radius:var(--radius-md);background:rgb(255 250 241/68%);box-shadow:var(--shadow-subtle)}.recipe-detail-card{display:grid;grid-gap:10px;gap:10px;padding:14px}.recipe-detail-card h2{margin-bottom:0;font-size:1.45rem;line-height:1.08}.detail-section p,.recipe-detail-card p{margin-bottom:0;color:var(--color-muted);font-size:.92rem;line-height:1.45}.detail-hero{display:grid;width:100%;aspect-ratio:4/3;place-items:center;border-radius:16px;background:#f0dfc6;color:#8b614b;overflow:hidden}.edit-cover-panel{display:grid;grid-gap:10px;gap:10px}.edit-cover-preview{display:grid;width:100%;aspect-ratio:4/3;place-items:center;border:1px solid rgb(231 217 199/72%);border-radius:var(--radius-md);background:#f0dfc6;color:#8b614b;overflow:hidden}.edit-cover-preview img{width:100%;height:100%;object-fit:cover}.edit-cover-actions{display:flex;flex-wrap:wrap;gap:8px}.secondary-file-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;border:1px solid rgb(186 146 116/36%);border-radius:999px;padding:0 14px;background:rgb(255 250 241/78%);color:var(--color-ink);font-weight:760}.secondary-file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.muted-action{color:var(--color-muted)}.detail-meta-row{display:flex;flex-wrap:wrap;gap:8px}.detail-meta-row span{border-radius:999px;padding:6px 9px;background:#f0e3d4;color:#725f4e;font-size:.78rem}.detail-section{padding:14px}.detail-section h2{margin-bottom:10px}.recipe-photo-section{display:grid;grid-gap:13px;gap:13px;border-top:1px solid rgb(231 217 199/72%);border-bottom:1px solid rgb(231 217 199/72%);padding:15px 2px}.photo-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.photo-section-header h2{margin:0 0 2px;font-size:1.04rem}.photo-section-header p{margin:0;color:var(--color-muted);font-size:.78rem}.photo-add-actions,.photo-draft-actions,.photo-item-actions{display:flex;align-items:center;gap:8px}.photo-icon-button{position:relative;display:grid;width:40px;aspect-ratio:1;place-items:center;border:1px solid rgb(186 146 116/32%);border-radius:999px;background:rgb(255 250 241/80%);color:var(--color-coral-dark);cursor:pointer}.photo-icon-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-icon-button:focus-within{outline:2px solid rgb(217 102 75/35%);outline-offset:2px}.photo-draft-panel{display:grid;grid-gap:11px;gap:11px;border:1px solid rgb(231 217 199/78%);border-radius:var(--radius-md);padding:11px;background:rgb(255 250 241/62%)}.photo-draft-panel>img{width:100%;aspect-ratio:4/3;border-radius:14px;object-fit:cover}.photo-draft-actions{justify-content:space-between}.compact-primary-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;border:0;border-radius:14px;padding:0 13px;background:var(--color-coral);color:white;font-weight:760}.compact-primary-button:disabled{opacity:.58}.recipe-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.recipe-photo-item{display:grid;grid-template-rows:auto minmax(0,auto) auto;grid-gap:8px;gap:8px;min-width:0;border:1px solid rgb(231 217 199/76%);border-radius:14px;padding:7px;background:rgb(255 250 241/66%)}.recipe-photo-item>img{width:100%;aspect-ratio:4/3;border-radius:9px;object-fit:cover}.recipe-photo-item>p{display:-webkit-box;min-height:2.5em;margin:0 2px;overflow:hidden;color:var(--color-muted);font-size:.74rem;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.photo-item-actions{justify-content:space-between}.photo-item-actions button{display:inline-flex;min-height:32px;align-items:center;justify-content:center;gap:5px;border:0;border-radius:10px;padding:0 8px;background:transparent;color:var(--color-muted);font-size:.7rem;font-weight:730}.photo-item-actions button.is-cover{background:#f0e3d4;color:var(--color-coral-dark)}.photo-item-actions button:disabled{cursor:default;opacity:.66}.photo-item-actions .photo-delete-button{width:32px;padding:0;color:var(--color-error)}.photo-empty-state{display:flex;min-height:76px;align-items:center;justify-content:center;gap:9px;border:1px dashed rgb(186 146 116/40%);border-radius:14px;color:var(--color-muted)}.photo-empty-state p{margin:0;font-size:.82rem}.ingredient-list,.step-list{display:grid;grid-gap:8px;gap:8px;margin:0;padding-left:20px;color:var(--color-ink);font-size:.92rem;line-height:1.45}.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.cover-picker{display:grid;grid-gap:10px;gap:10px;border:1px solid rgb(231 217 199/72%);border-radius:var(--radius-md);padding:12px;background:rgb(255 250 241/56%)}.compact-heading{margin:0}.cover-frame{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-md);background:#efe0cc}.cover-frame img{width:100%;height:100%;object-fit:cover;will-change:transform}.cover-empty{display:grid;min-height:140px;place-items:center;border-radius:var(--radius-md);background:#f0e3d4;color:var(--color-muted);font-size:.86rem}.crop-controls{display:grid;grid-gap:8px;gap:8px}.crop-controls label{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;color:var(--color-muted);font-size:.78rem;font-weight:760}.crop-controls input{width:100%;accent-color:var(--color-coral)}.text-button{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:999px;padding:7px 10px 7px 7px;background:transparent;color:var(--color-muted);font-size:.86rem;font-weight:700}.review-confidence{border-radius:999px;padding:6px 9px;background:#f0e3d4;color:#725f4e;font-size:.78rem;white-space:nowrap}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.field-group{display:grid;grid-gap:6px;gap:6px}.field-group span{color:var(--color-muted);font-size:.78rem;font-weight:760}.field-group input,.field-group textarea{width:100%;border:1px solid rgb(231 217 199/86%);border-radius:var(--radius-md);padding:11px 12px;outline:0;background:rgb(255 250 241/70%);color:var(--color-ink);line-height:1.35;box-shadow:inset 0 1px 0 rgb(255 255 255/70%)}.field-group textarea{resize:vertical}.field-group input:focus,.field-group textarea:focus{border-color:rgb(217 102 75/45%);background:rgb(255 250 241/92%)}.tag-editor{display:grid;grid-gap:10px;gap:10px}.tag-editor-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.tag-editor-header span{color:var(--color-muted);font-size:.82rem;font-weight:760}.tag-editor-header small{color:var(--color-muted);font-size:.75rem}.selected-tag-row,.tag-suggestion-row{display:flex;flex-wrap:wrap;gap:8px}.selected-tag-chip,.tag-chip{display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:5px;border:1px solid rgb(210 188 160/78%);border-radius:999px;padding:0 10px;background:rgb(255 250 241/74%);color:#725f4e;font-size:.82rem;font-weight:720}.selected-tag-chip,.tag-chip.is-selected{border-color:rgb(177 75 55/34%);background:#f5d9cb;color:var(--color-coral-strong)}.tag-add-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;grid-gap:8px;gap:8px;align-items:end}.tag-add-row label{display:grid;grid-gap:5px;gap:5px}.tag-add-row label span{color:var(--color-muted);font-size:.78rem;font-weight:720}.tag-add-row input{min-height:42px;border:1px solid var(--color-line);border-radius:14px;padding:0 12px;background:rgb(255 252 247/88%);color:var(--color-ink);font:inherit}.tag-add-row input:focus{border-color:rgb(217 102 75/45%);outline:none;background:rgb(255 250 241/92%)}.tag-add-row button{display:grid;width:42px;aspect-ratio:1;place-items:center;border:1px solid rgb(177 75 55/28%);border-radius:999px;background:#f5d9cb;color:var(--color-coral-strong)}.tag-add-row button:disabled{border-color:var(--color-line);background:rgb(255 250 241/68%);color:rgb(126 113 99/48%)}.ai-note{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;grid-gap:10px;gap:10px;border:1px solid rgb(231 217 199/72%);border-radius:var(--radius-md);padding:11px 12px;background:rgb(255 250 241/56%)}.ai-note p{margin-bottom:2px;color:var(--color-ink);font-size:.86rem;font-weight:760}.ai-note span{color:var(--color-muted);font-size:.78rem;line-height:1.35}.ai-note>span{color:var(--color-coral-dark);white-space:nowrap}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;border:0;border-radius:var(--radius-md);padding:13px;background:var(--color-coral);color:white;font-weight:780}.bottom-nav{position:absolute;right:10px;bottom:10px;left:10px;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);min-height:var(--nav-height);border:1px solid rgb(231 217 199/88%);border-radius:22px;padding:6px;background:rgb(255 250 241/88%);box-shadow:0 6px 18px rgb(74 51 30/10%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav button{display:grid;place-items:center;grid-gap:3px;gap:3px;border:0;border-radius:17px;background:transparent;color:var(--color-muted);font-size:.74rem}.bottom-nav button.is-active{background:#f4dfd2;color:var(--color-coral-dark)}.sheet-scrim{position:absolute;inset:0;z-index:30;border:0;background:rgb(47 42 36/36%)}.create-sheet{position:absolute;right:10px;bottom:calc(var(--nav-height) + 18px);left:10px;z-index:40;border:1px solid rgb(231 217 199/85%);border-radius:26px;padding:18px;background:#fffaf1;box-shadow:var(--shadow-soft)}.sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sheet-header h2{margin-bottom:0;font-size:1.45rem}.sheet-copy{margin:10px 0 0;color:var(--color-muted);font-size:.84rem;line-height:1.35}.sheet-options{display:grid;grid-gap:10px;gap:10px;margin-top:16px}.sheet-options button{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:var(--radius-md);padding:14px;background:var(--color-coral);color:white;font-weight:750}.sheet-link-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;margin-top:12px}.sheet-link-form label{display:grid;grid-gap:5px;gap:5px;min-width:0}.sheet-link-form label span{color:var(--color-muted);font-size:.76rem;font-weight:700}.sheet-link-form input{min-width:0;border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:10px 11px;outline:0;background:rgb(255 255 255/70%);color:var(--color-ink)}.sheet-link-form input:focus{border-color:rgb(217 102 75/42%)}.sheet-link-form button{align-self:end;display:flex;align-items:center;gap:7px;border:0;border-radius:var(--radius-sm);padding:10px 12px;background:#f7dfd3;color:var(--color-coral-dark);font-weight:760}.share-shell{display:grid;min-height:100svh;place-items:center;padding:24px;background:radial-gradient(circle at 50% -10%,#fff7e9 0,var(--color-paper) 48%,#eadfcf 100%)}.share-card{width:min(100%,390px);border:1px solid rgb(231 217 199/84%);border-radius:28px;padding:26px;background:rgb(255 250 241/90%);box-shadow:var(--shadow-soft)}.share-card h1{max-width:none;margin-bottom:10px;font-size:2rem;line-height:1}.share-card p:not(.eyebrow){margin-bottom:0;color:var(--color-muted);line-height:1.45}.share-icon{display:grid;width:52px;height:52px;margin-bottom:18px;place-items:center;border-radius:50%;background:#f7dfd3;color:var(--color-coral-dark)}.share-icon.status-success{background:#e8f0df;color:var(--color-good)}.share-icon.status-error{background:#f8dfd7;color:var(--color-error)}.share-icon.status-importing svg,.share-icon.status-loading svg{animation:share-spin 1.1s linear infinite}.share-actions{margin-top:20px}.share-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;border-radius:var(--radius-md);padding:12px 14px;background:var(--color-coral);color:white;font-weight:780;text-decoration:none}@keyframes share-spin{to{transform:rotate(1turn)}}@media (max-width:520px){.app-shell{display:block;padding:0}.phone-frame{width:100%;min-height:100svh;border:0;border-radius:0}}@media (max-width:380px){.sheet-link-form{grid-template-columns:1fr}.sheet-link-form button{justify-content:center}}