*,*:before,*:after{box-sizing:border-box}:root{color:#1f2937;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.6}body{background:#f7f5f2;min-height:100vh;margin:0}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}a{color:#c08457;text-decoration:none}a:hover{text-decoration:underline}.app{max-width:960px;margin:0 auto;padding:0 1rem 2rem}.header{display:flex;border-bottom:1px solid #e7e2da;justify-content:space-between;align-items: center;margin-bottom:1.5rem;padding:1rem 0}.header h1{letter-spacing:-.01em;margin:0;font-size:1.4rem}.header h1 a{color:#1f2937}.header h1 a:hover{text-decoration:none}.nav{display:flex;align-items: center;gap:1.5rem}.nav a{color:#6b7280;padding:.25rem 0;font-weight:500}.nav a:hover{color:#c08457;text-decoration:none}.nav a.active{color:#c08457;border-bottom:2px solid #c08457}.nav-user{display:flex;color:#6b7280;align-items: center;gap:.5rem;margin-left:auto;font-size:.85rem}.page-header{display:flex;justify-content:space-between;align-items: center;margin-bottom:1rem}.page-header h2{margin:0}@media (max-width:600px){.header{flex-direction:column;align-items: flex-start;gap:.5rem;margin-bottom:1rem}.nav{flex-wrap:wrap;gap:1rem;width:100%}.nav a{padding:.35rem 0}.nav-user{width:100%;margin-left:0}.page-header{flex-direction:column;align-items: flex-start;gap:.5rem}}.sr-only{position:absolute;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0}.form-error{color:#b85450;margin:.5rem 0 0;font-size:.875rem}.btn{display:inline-block;cursor:pointer;text-decoration:none;border:none;border-radius:6px;min-height:44px;padding:.625rem 1.125rem;transition:background .15s,box-shadow .15s;font-size:.9rem;font-weight:500;line-height:1.4}.btn:hover{text-decoration:none}.btn:focus-visible{outline:none;border-color:#c08457;box-shadow:0 0 0 2px #c0845726}.btn-primary{color:#fff;background:#c08457}.btn-primary:hover{background:#a87245}.btn-secondary{color:#1f2937;background:#ebe7e1}.btn-secondary:hover{background:#e0dbd4}.btn-danger{color:#fff;background:#b85450}.btn-danger:hover{background:#a04440}.btn-danger-outline{color:#b85450;background:0 0;border:1px solid #b85450}.btn-danger-outline:hover{background:#b8545014}.search-input{background:#fff;border:1px solid #d5cfc6;border-radius:6px;width:100%;margin-bottom:1rem;padding:.6rem .8rem;transition:border-color .15s,box-shadow .15s;font-size:.95rem}.search-input:focus{outline:none;border-color:#c08457;box-shadow:0 0 0 2px #c0845726}.empty-state{text-align:center;color:#9ca3af;padding:3rem 1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;color:#1f2937;margin-bottom:.3rem;font-size:.9rem;font-weight:500}.form-group input,.form-group textarea{background:#fff;border:1px solid #d5cfc6;border-radius:6px;width:100%;padding:.6rem .8rem;transition:border-color .15s,box-shadow .15s;font-family:inherit;font-size:.95rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#c08457;box-shadow:0 0 0 2px #c0845726}.form-group textarea{resize:vertical;min-height:120px}.form-actions{display:flex;gap:.5rem;margin-top:1rem}.modal-overlay{position:fixed;display:flex;z-index:100;background:#1f293766;justify-content:center;align-items: center;padding:1rem;inset:0}.modal{overflow-y:auto;background:#fff;border-radius:12px;width:100%;max-width:400px;max-height:80vh;padding:1.5rem;box-shadow:0 4px 12px #1f293714}.modal h3{color:#1f2937;margin:0 0 1rem}@media (max-width:600px){.modal{border-radius:8px;max-width:none}}.auth-container{text-align:center;max-width:380px;margin:4rem auto;padding:0 1rem}.auth-container h1{color:#1f2937;margin-bottom:2rem;font-size:1.6rem}.auth-form{text-align:left}.auth-form h2{margin:0 0 1rem;font-size:1.2rem}.auth-message{color:#6b7280;margin-bottom:1.5rem}.auth-toggle{text-align:center;color:#6b7280;margin-top:1rem;font-size:.9rem}.link-button{color:#c08457;cursor:pointer;font-size:inherit;text-decoration:underline;background:0 0;border:none;padding:0}.link-button:hover{color:#a87245}.link-button:focus-visible{outline:none;border-color:#c08457;border-radius:2px;box-shadow:0 0 0 2px #c0845726}.recipe-list{list-style:none;margin:0;padding:0}.recipe-list li{border-bottom:1px solid #e7e2da}.recipe-list li a{display:block;color:#1f2937;padding:.875rem 0}.recipe-list li a:hover{color:#c08457;text-decoration:none}.recipe-detail h2{margin-top:0;margin-bottom:.5rem}.recipe-detail .actions{display:flex;gap:.5rem;margin-top:1.5rem}.recipe-meta{display:flex;color:#6b7280;flex-wrap:wrap;align-items: center;gap:.5rem;margin-bottom:1.25rem;font-size:.85rem}.meta-item{display:inline-flex;background:#ebe7e1;border-radius:4px;align-items: center;padding:.2rem .5rem}.meta-total{color:#1f2937;font-weight:600}.meta-tags{display:inline-flex;flex-wrap:wrap;gap:.25rem}.tag-badge{display:inline-block;color:#c08457;background:#faf5f0;border-radius:3px;padding:.15rem .5rem;font-size:.8rem}.form-row{display:flex;gap:1rem}.form-group-half{flex:1}.form-group select{cursor:pointer;background:#fff;border:1px solid #d5cfc6;border-radius:6px;width:100%;padding:.6rem .8rem;font-family:inherit;font-size:.95rem}.tag-suggestions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.4rem}.form-checkboxes{display:flex;flex-direction:column;justify-content:flex-end;gap:.5rem;padding-bottom:.3rem}.checkbox-label{display:flex;cursor:pointer;align-items: center;gap:.4rem;font-size:.9rem}.checkbox-label input[type=checkbox]{cursor:pointer;width:1rem;height:1rem}.tag-chip{display:inline-block;color:#6b7280;cursor:pointer;background:0 0;border:1px dashed #d5cfc6;border-radius:3px;padding:.2rem .5rem;transition:border-color .15s,color .15s;font-size:.8rem}.tag-chip:hover{color:#c08457;border-color:#c08457}.ingredient-list{padding-left:1.2rem}.ingredient-list li{padding:.15rem 0}.instructions{white-space:pre-wrap;color:#6b7280;line-height:1.7}.page-header-actions{display:flex;gap:.5rem}.import-tabs{display:flex;border-bottom:2px solid #e7e2da;gap:.25rem;margin-bottom:1.5rem}.import-tab{cursor:pointer;color:#6b7280;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.5rem 1rem;transition:color .15s,border-color .15s;font-size:.95rem}.import-tab:hover{color:#1f2937}.import-tab.active{color:#c08457;border-bottom-color:#c08457}.import-tab:disabled{opacity:.5;cursor:not-allowed}.import-body{min-height:200px}.import-textarea{resize:vertical;min-height:200px;font-family:inherit}.import-preview{margin:1rem 0}.import-preview img{border:1px solid #e7e2da;border-radius:4px;max-width:100%;max-height:300px}.week-nav{display:flex;flex-wrap:wrap;align-items: center;gap:.75rem;margin-bottom:1rem}.week-nav h2{white-space:nowrap;margin:0;font-size:1.1rem}.planner-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.planner-grid{display:grid;grid-template-columns:5rem repeat(7,minmax(auto,1fr));background:#e7e2da;border:1px solid #e7e2da;border-radius:8px;gap:1px}@media (max-width:600px){.planner-scroll{margin:0 -1rem;padding:0 1rem}.planner-grid{grid-template-columns:3.5rem repeat(7,minmax(auto,1fr))}.grid-header{padding:.35rem .1rem;font-size:.7rem;line-height:1.3}.meal-label{padding:.35rem .2rem;font-size:.65rem}.slot{min-height:48px;padding:.25rem}.slot-filled span:first-child{font-size:.6rem}.slot-empty{min-height:34px;font-size:1rem}.slot-remove{font-size:1rem}}.grid-corner{background:#f0ede8}.grid-header{text-align:center;background:#f0ede8;padding:.5rem .25rem;font-size:.85rem;font-weight:600}.grid-header small{color:#6b7280;display:block;font-weight:400}.meal-label{text-transform:capitalize;display:flex;background:#f0ede8;align-items: center;padding:.5rem;font-size:.8rem;font-weight:500}.slot{display:flex;background:#fff;justify-content:center;align-items: center;min-height:56px;padding:.4rem}.slot-filled{display:flex;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;align-items: center;gap:.25rem;width:100%;padding:.2rem .3rem;transition:background .15s,border-color .15s}.slot-filled span:first-child{white-space:nowrap;flex:1;font-size:.75rem}.slot-filled:hover{background:#b854500f;border-color:#b8545040}.slot-filled:hover .slot-remove{color:#b85450}.slot-filled:focus-visible{outline:none;border-color:#c08457;box-shadow:0 0 0 2px #c0845726}.slot-remove{color:#d1d5db;flex-shrink:0;transition:color .15s;font-size:1.25rem;font-weight:500;line-height:1}.slot-empty{cursor:pointer;color:#d1d5db;display:flex;background:0 0;border:1px dashed #d5cfc6;border-radius:4px;justify-content:center;align-items: center;width:100%;height:100%;min-height:40px;transition:border-color .15s,color .15s;font-size:1.2rem}.slot-empty:hover{color:#c08457;border-color:#c08457}.slot-empty:focus-visible{outline:none;border-color:#c08457;box-shadow:0 0 0 2px #c0845726}.planner-context{background:#faf5f0;border:1px solid #e7e2da;border-radius:8px;margin-bottom:1rem;padding:.75rem}.context-row{display:flex;align-items: flex-end;gap:.75rem}.context-row+.context-row{margin-top:.5rem}.context-field{flex:1;min-width:0}.context-field .search-input{margin-bottom:0;padding:.4rem .6rem;font-size:.85rem}.context-field select.search-input{cursor:pointer}.context-field-wide{flex:3}.context-field-check{display:flex;align-items: center;padding-bottom:.3rem}.context-field-action{display:flex;flex-shrink:0;align-items: flex-end}.context-hint{color:#6b7280;margin:.4rem 0 0;font-size:.75rem;font-style:italic}.context-label{display:block;color:#6b7280;margin-bottom:.2rem;font-size:.75rem;font-weight:500}@media (max-width:600px){.context-row{flex-wrap:wrap}.context-field{flex-basis:calc(50% - .375rem)}.context-field-wide{flex-basis:100%}}.picker-mode-hint{color:#6b7280;margin:-.25rem 0 .75rem;font-size:.8rem}.picker-list{list-style:none;overflow-y:auto;max-height:50vh;margin:0 0 1rem;padding:0}.picker-list li button{display:flex;text-align:left;cursor:pointer;background:#fff;border:1px solid #e7e2da;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;width:100%;margin-bottom:.25rem;padding:.6rem .8rem;transition:background .15s,border-color .15s;font-size:.9rem}.picker-list li button:hover{background:#faf5f0;border-color:#c08457}.picker-list li button:focus-visible{outline:none;border-color:#c08457;box-shadow:0 0 0 2px #c0845726}.picker-recipe-name{flex-shrink:0;font-weight:500}.picker-score{border-radius:3px;flex-shrink:0;padding:.1rem .4rem;font-size:.75rem;font-weight:600}.picker-score.score-high{color:#5e7a58;background:#a8b5a233}.picker-score.score-mid{color:#a87245;background:#c0845726}.picker-score.score-low{color:#b85450;background:#b854501a}.picker-details{display:flex;flex-wrap:wrap;gap:.25rem;width:100%;font-size:.75rem;line-height:1.3}.picker-reason{color:#6b8a65}.picker-warning{color:#b85450}
