@import"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,600;1,400&family=DM+Sans:wght@400;500&display=swap";:root{color-scheme:light;--cream: #FBF7F1;--cream-dark: #F3ECE2;--ink: #1C1A17;--ink-soft: #4A453E;--ink-muted: #8A847A;--terracotta: #B85C38;--terra-light: #F2E8E2;--terra-dark: #8C3E22;--green: #3A6B4A;--green-light: #E8F0EA;--danger: #B23B3B;--danger-light:#F6E4E2;--danger-dark: #8F2E2E;--border: rgba(28, 26, 23, .12);--border-strong: rgba(28, 26, 23, .22);--shadow-sm: 0 1px 3px rgba(28, 26, 23, .08);--shadow-md: 0 4px 16px rgba(28, 26, 23, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--font-serif: "Lora", Georgia, serif;--font-sans: "DM Sans", system-ui, sans-serif;--page-pad: 1rem;--max-width: 540px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--cream);color:var(--ink);line-height:1.6;min-height:100dvh}a{color:inherit;text-decoration:none}button{font-family:var(--font-sans);cursor:pointer}ul,ol{list-style:none}img{display:block;max-width:100%}.list-page,.detail-page,.form-page{max-width:var(--max-width);margin:0 auto;padding:var(--page-pad);padding-bottom:4rem}.loading-screen,.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:40dvh;color:var(--ink-muted);font-size:.9rem}.list-header{margin-bottom:1.25rem}.list-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.list-title{font-family:var(--font-serif);font-size:2rem;font-weight:600;color:var(--ink)}.list-subtitle{font-size:.85rem;color:var(--ink-muted)}.search-bar{position:relative;margin-top:.9rem}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:flex;color:var(--ink-muted);pointer-events:none}.search-input{width:100%;min-height:44px;background:var(--cream-dark);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:0 44px 0 38px;font-family:var(--font-sans);font-size:.9rem;color:var(--ink);outline:none;transition:border-color .15s;-webkit-appearance:none}.search-input::placeholder{color:var(--ink-muted)}.search-input:focus{border-color:var(--terracotta)}.search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:50%;color:var(--ink-muted);transition:color .15s,background .15s;-webkit-tap-highlight-color:transparent}.search-clear:hover{color:var(--ink);background:var(--cream)}.search-clear:focus-visible{outline:2px solid var(--terracotta);outline-offset:1px}.btn-add{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--terracotta);color:#fff;border-radius:50%;transition:background .2s;flex-shrink:0}.btn-add:hover{background:var(--terra-dark)}.recipe-grid{display:grid;gap:12px}.recipe-card{display:block;background:var(--cream-dark);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.2rem;transition:border-color .2s,transform .15s;-webkit-tap-highlight-color:transparent}.recipe-card:hover{border-color:var(--border-strong)}.recipe-card:active{transform:scale(.99)}.card-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;color:var(--ink);margin-bottom:.35rem;line-height:1.35}.card-description{font-size:.85rem;color:var(--ink-soft);margin-bottom:.75rem;line-height:1.5}.card-footer{display:flex;gap:1rem;font-size:.78rem;color:var(--ink-muted)}.card-meta{display:flex;align-items:center;gap:4px}.empty-state{text-align:center;color:var(--ink-muted);font-size:.9rem;padding:2rem 0}.detail-nav{margin-bottom:1.25rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.btn-edit-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--terracotta);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 14px;min-height:44px;transition:background .15s,color .15s,border-color .15s}.btn-edit-link:hover{background:var(--terra-light);border-color:var(--terracotta);color:var(--terra-dark)}.detail-actions{display:flex;align-items:center;gap:.5rem}.btn-delete-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--danger);background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 14px;min-height:44px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.btn-delete-link:hover{background:var(--danger-light);border-color:var(--danger);color:var(--danger-dark)}.delete-confirm{display:inline-flex;align-items:center;gap:.4rem}.btn-delete-confirm,.btn-delete-cancel{font-size:.85rem;border-radius:var(--radius-sm);padding:8px 14px;min-height:44px;cursor:pointer;transition:background .15s,opacity .15s}.btn-delete-confirm{background:var(--danger);color:#fff;border:1px solid var(--danger)}.btn-delete-confirm:hover:not(:disabled){background:var(--danger-dark);border-color:var(--danger-dark)}.btn-delete-cancel{background:none;color:var(--ink-soft);border:1px solid var(--border-strong)}.btn-delete-cancel:hover:not(:disabled){background:var(--cream-dark)}.btn-delete-confirm:disabled,.btn-delete-cancel:disabled{opacity:.6;cursor:not-allowed}.btn-back-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--ink-muted);padding:6px 0;transition:color .15s}.btn-back-link:hover{color:var(--terracotta)}.btn-back{background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:6px 16px;font-size:.85rem;color:var(--ink-soft)}.recipe-header{margin-bottom:2rem}.recipe-title{font-family:var(--font-serif);font-size:1.7rem;font-weight:600;line-height:1.25;margin-bottom:.6rem;color:var(--ink)}.recipe-description{font-size:.9rem;color:var(--ink-soft);margin-bottom:1.25rem;line-height:1.6}.recipe-meta{display:flex;gap:1.5rem;flex-wrap:wrap}.meta-item{display:flex;align-items:center;gap:8px;color:var(--ink-muted)}.meta-item>div{display:flex;flex-direction:column}.meta-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:.95rem;font-weight:500;color:var(--ink)}.prereqs-section{background:var(--cream-dark);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.2rem;margin-bottom:2rem}.section-heading{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;color:var(--ink);margin-bottom:1rem;display:flex;align-items:center;gap:10px}.steps-count{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--terra-light);color:var(--terracotta);border-radius:50%;font-family:var(--font-sans);font-size:.72rem;font-weight:500}.prereq-block{margin-bottom:1rem}.prereq-block:last-child{margin-bottom:0}.prereq-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-bottom:.5rem}.servings-note{font-family:var(--font-sans);font-size:.78rem;font-weight:400;color:var(--ink-muted);text-transform:none;letter-spacing:0}.equipment-list{display:flex;flex-direction:column;gap:4px}.equipment-item{font-size:.9rem;color:var(--ink-soft);padding:4px 0 4px 14px;position:relative}.equipment-item:before{content:"—";position:absolute;left:0;color:var(--ink-muted);font-size:.75rem}.ingredient-list{display:flex;flex-direction:column;gap:2px}.ingredient-item{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:.9rem}.ingredient-item:last-child{border-bottom:none}.ingredient-qty{min-width:72px;font-weight:500;color:var(--terracotta);font-size:.85rem;flex-shrink:0}.ingredient-name{color:var(--ink-soft)}.steps-section{margin-bottom:2rem}.steps-list{display:flex;flex-direction:column;gap:0}.step-item{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden;transition:border-color .2s;background:var(--cream-dark)}.step-item.step-active{border-color:var(--terracotta);border-width:1.5px}.step-header{width:100%;display:flex;align-items:center;gap:12px;padding:.9rem 1rem;background:none;border:none;text-align:left;-webkit-tap-highlight-color:transparent;transition:background .15s;min-height:56px}.step-header:hover{background:#1c1a1708}.step-header:active{background:#1c1a170f}.step-number{font-family:var(--font-serif);font-size:.85rem;font-weight:600;color:var(--ink-muted);min-width:24px;flex-shrink:0;transition:color .2s}.step-active .step-number{color:var(--terracotta)}.step-title-text{flex:1;font-size:.95rem;font-weight:500;color:var(--ink);line-height:1.35}.step-active .step-title-text{color:var(--ink)}.step-chevron{flex-shrink:0;color:var(--ink-muted);display:flex;align-items:center}.step-active .step-chevron{color:var(--terracotta)}.step-item.step-active.step-open{border-left:3px solid var(--terracotta)}.step-body{padding:0 1rem 1rem;padding-left:calc(1rem + 36px)}.step-item.step-active.step-open .step-body{padding-left:calc(1rem + 34px)}.step-instruction{font-size:.9rem;color:var(--ink-soft);line-height:1.7}.form-header{margin-bottom:1.5rem}.form-title{font-family:var(--font-serif);font-size:1.6rem;font-weight:600;color:var(--ink)}.recipe-form{display:flex;flex-direction:column;gap:1.5rem}.form-section{border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.2rem;background:var(--cream-dark);display:flex;flex-direction:column;gap:1rem}.form-legend{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);padding:0 4px;margin-bottom:.5rem}.field{display:flex;flex-direction:column;gap:5px}.field-label{font-size:.82rem;font-weight:500;color:var(--ink-soft)}.field-hint{font-weight:400;color:var(--ink-muted);font-size:.78rem}.field-input,.field-textarea{width:100%;background:var(--cream);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 12px;font-family:var(--font-sans);font-size:.9rem;color:var(--ink);outline:none;transition:border-color .15s;-webkit-appearance:none}.field-input:focus,.field-textarea:focus{border-color:var(--terracotta)}.field-textarea{resize:vertical;min-height:70px}.field-short{max-width:88px}.field-row{display:flex;gap:12px;flex-wrap:wrap}.field-row .field{flex:1;min-width:0}.dynamic-row,.ingredient-row{display:flex;align-items:center;gap:8px}.ing-qty{max-width:64px;flex-shrink:0}.ing-unit{max-width:72px;flex-shrink:0}.ing-name{flex:1}.step-form-block{display:flex;flex-direction:column;gap:8px;padding:1rem;background:var(--cream);border:1px solid var(--border);border-radius:var(--radius-md)}.step-form-header{display:flex;align-items:center;justify-content:space-between}.step-form-number{font-size:.8rem;font-weight:500;color:var(--terracotta);text-transform:uppercase;letter-spacing:.05em}.btn-add-row{display:inline-flex;align-items:center;gap:6px;background:none;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:7px 14px;font-size:.82rem;color:var(--ink-muted);transition:all .15s;width:100%;justify-content:center}.btn-add-row:hover{border-color:var(--terracotta);color:var(--terracotta)}.btn-remove{background:none;border:none;color:var(--ink-muted);padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;flex-shrink:0;transition:color .15s}.btn-remove:hover{color:#c0392b}.form-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;padding-top:.5rem}.btn-cancel{padding:10px 18px;border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:.9rem;color:var(--ink-soft);transition:all .15s}.btn-cancel:hover{background:var(--cream-dark)}.btn-submit{padding:10px 22px;background:var(--terracotta);color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;transition:background .2s;min-height:44px}.btn-submit:hover:not(:disabled){background:var(--terra-dark)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.form-error{color:#c0392b;font-size:.85rem;background:#fdecea;border-radius:var(--radius-sm);padding:8px 12px}.list-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.btn-icon-ghost{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:1px solid var(--border-strong);border-radius:50%;color:var(--ink-muted);transition:color .15s,border-color .15s,background .15s}.btn-icon-ghost:hover{color:var(--terracotta);border-color:var(--terracotta);background:var(--terra-light)}.login-page{max-width:var(--max-width);margin:0 auto;padding:var(--page-pad);padding-bottom:4rem}.login-card{margin-top:1.5rem;background:var(--cream-dark);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem 1.5rem;box-shadow:var(--shadow-sm)}.login-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--terra-light);color:var(--terracotta);margin-bottom:.75rem}.login-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:.4rem}.login-subtitle{font-size:.88rem;color:var(--ink-muted);margin-bottom:1.25rem}.login-form{display:flex;flex-direction:column;gap:1rem}.login-username-hidden{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}.login-submit{width:100%;justify-content:center}
