:root{color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#f5f2ee;color:#2b2420}#app{min-height:100vh}.centered-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{width:100%;max-width:360px;background:#fff;border-radius:16px;padding:32px 28px;box-shadow:0 4px 24px #00000014}h1{font-size:20px;margin:0 0 20px}label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;margin-top:16px}input,textarea{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:10px;border:1px solid #ddd6cf;font-size:14px;font-family:inherit}button{padding:11px 16px;border-radius:10px;border:none;background:#44332d;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.card button[type=submit]{width:100%;margin-top:24px}button:disabled{opacity:.5;cursor:default}button.secondary{background:transparent;color:#44332d;border:1px solid #ddd6cf}.error{margin-top:16px;font-size:13px;color:#b3261e}.hello{text-align:center}.hello p{font-size:14px;color:#6b625c}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:#2b2420;color:#f5f2ee;display:flex;flex-direction:column;padding:24px 16px}.sidebar-title{font-size:15px;font-weight:700;line-height:1.35;margin-bottom:28px;padding:0 8px}.nav-list{list-style:none;margin:0;padding:0;flex:1}.nav-link{display:block;padding:10px 12px;border-radius:8px;color:#d8cfc5;text-decoration:none;font-size:14px;font-weight:500;margin-bottom:4px}.nav-link:hover{background:#ffffff0f;color:#fff}.nav-link.active{background:#6b5648;color:#fff}.sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:16px;margin-top:16px}.sidebar-email{font-size:12px;color:#b7ac9f;margin-bottom:10px;word-break:break-all}.sidebar-footer button.secondary{width:100%;color:#f5f2ee;border-color:#ffffff40}.content{flex:1;min-width:0;padding:32px 40px}.menu-toggle{display:none;position:fixed;top:14px;left:14px;z-index:30;width:40px;height:40px;padding:0;border-radius:10px;background:#2b2420;flex-direction:column;align-items:center;justify-content:center;gap:4px}.menu-toggle span{display:block;width:18px;height:2px;background:#fff;border-radius:1px}.menu-toggle.hidden,.sidebar-backdrop{display:none}.view-header{margin-bottom:24px}.view-header h1{margin-bottom:4px}.view-subtitle{font-size:14px;color:#6b625c;margin:0}.page-section{margin-top:36px;padding-top:32px;border-top:1px solid #e8e1d8}.page-section:first-of-type{margin-top:24px;padding-top:0;border-top:none}.section-heading{margin-bottom:20px}.section-heading h2{font-size:17px;margin:0 0 4px}.empty-state-box{border:1px dashed #ddd6cf;border-radius:12px;padding:28px 16px;text-align:center;color:#8a8078;font-size:14px}.state-message{font-size:14px;color:#6b625c}.state-message.error{color:#b3261e}.state-message.success{color:#2f6b3f}.back-link{display:inline-block;margin-bottom:16px;color:#44332d;font-size:13px;font-weight:600;text-decoration:none}.back-link:hover{text-decoration:underline}.history-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.history-filters{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{background:#fff;color:#6b625c;border:1px solid #ddd6cf;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600}.filter-chip:hover{border-color:#b7ac9f}.filter-chip.active{background:#44332d;border-color:#44332d;color:#fff}.filter-chip.active[data-filter=approved]{background:#2f6b3f;border-color:#2f6b3f}.filter-chip.active[data-filter=rejected]{background:#a4362a;border-color:#a4362a}.history-search{width:100%;max-width:280px;margin:0}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}.pagination-info{font-size:13px;color:#6b625c}.table-scroll{overflow-x:auto;background:#fff;border-radius:14px;box-shadow:0 2px 12px #0000000d}.queue-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}.queue-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#8a8078;padding:14px 16px;border-bottom:1px solid #efe9e2}.queue-table td{padding:14px 16px;border-bottom:1px solid #f2ede7;vertical-align:top}.queue-row{cursor:pointer}.queue-row:hover td{background:#faf7f3}.flags-empty{color:#b7ac9f}.status-badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.status-badge.approved{background:#e4efe1;color:#2f6b3f}.status-badge.rejected{background:#f6e3e0;color:#a4362a}.status-badge.processing{background:#eee8f3;color:#5b4a80}.processing-error{margin-top:4px;font-size:12px;color:#a4362a;font-weight:400;text-transform:none;letter-spacing:normal}.flag-badge{display:inline-block;background:#f1e6d8;color:#6b5237;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;margin:0 4px 4px 0;white-space:nowrap}.detail-layout{display:flex;gap:32px;align-items:flex-start}.detail-photos{width:420px;flex-shrink:0}.photo-gallery{display:flex;flex-direction:column;gap:16px}.photo-thumb{display:block;border-radius:10px;overflow:hidden;background:#eee}.photo-thumb img{width:100%;height:auto;display:block}.dish-photos{margin-top:28px}.photo-section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#8a8078;margin:0 0 12px}.detail-content{flex:1;min-width:0;background:#fff;border-radius:14px;padding:24px 28px;box-shadow:0 2px 12px #0000000d}.detail-content h1{margin-bottom:6px}.detail-content h2{font-size:15px;margin:24px 0 10px}.detail-submitted{font-size:13px;color:#6b625c;margin:0 0 14px}.detail-description{font-size:14px;color:#443a33;line-height:1.5}.meta-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.meta-badge{font-size:12px;background:#f5f2ee;border:1px solid #ece4d9;color:#574a3f;padding:4px 10px;border-radius:999px;white-space:nowrap}.ingredient-list,.instruction-list{padding-left:20px;font-size:14px;line-height:1.6;margin:0}.ingredient-note{color:#8a8078}.instruction-list li{margin-bottom:10px}.instruction-tip{font-size:12.5px;color:#8a8078;margin-top:2px}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}.tag-chip{font-size:11.5px;background:#eef1ea;color:#47523c;padding:4px 10px;border-radius:999px}.review-actions{margin-top:28px;padding-top:20px;border-top:1px solid #f2ede7;display:flex;gap:12px}.approve-button{background:#2f6b3f}.reject-button{background:#a4362a}.reject-form{width:100%}.reject-form textarea{margin-top:6px;resize:vertical}.reject-form-buttons{display:flex;gap:10px;margin-top:12px}.reject-form-buttons button{margin-top:0}#review-feedback{margin-top:12px}.hidden{display:none}.upload-card{background:#fff;border-radius:14px;padding:24px 28px;box-shadow:0 2px 12px #0000000d;max-width:560px}.upload-dropzone{display:flex;align-items:center;justify-content:center;text-align:center;border:2px dashed #ddd6cf;border-radius:12px;padding:32px 16px;cursor:pointer;color:#6b625c;font-size:14px}.upload-dropzone:hover{border-color:#b7ac9f}.upload-dropzone.disabled{cursor:default;opacity:.5}.upload-previews{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.upload-preview{position:relative;width:96px;height:96px;border-radius:10px;overflow:hidden;background:#eee}.upload-preview img{width:100%;height:100%;object-fit:cover;display:block}.upload-preview-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;padding:0;margin:0;border-radius:50%;background:#0009;color:#fff;font-size:14px;line-height:1}#upload-feedback{margin-top:14px}#upload-submit{margin-top:18px}#pending-refresh{margin-top:20px}.bulk-card{background:#fff;border-radius:14px;padding:24px 28px;box-shadow:0 2px 12px #0000000d;max-width:760px}.bulk-card .view-subtitle code,.section-heading code{background:#f5f2ee;border:1px solid #ece4d9;border-radius:4px;padding:1px 5px;font-size:12.5px}.bulk-groups{display:flex;flex-direction:column;gap:12px;margin-top:18px}.bulk-group{display:flex;gap:14px;align-items:center;padding:12px;border:1px solid #ece4d9;border-radius:12px}.bulk-group.has-issue{border-color:#e8b4ac;background:#fdf4f2}.bulk-group-thumbs{display:flex;gap:6px;flex-shrink:0}.bulk-group-thumbs img{width:64px;height:64px;object-fit:cover;border-radius:8px;background:#eee;display:block}.bulk-group-info{flex:1;min-width:0}.bulk-group-name{font-weight:600;font-size:14px;text-transform:capitalize}.bulk-group-meta{font-size:12.5px;color:#8a8078;margin-top:2px}.bulk-group-issue{font-size:12.5px;color:#a4362a;margin-top:4px}.bulk-group-status{font-size:12.5px;font-weight:600;margin-top:4px}.bulk-group-status.uploading{color:#5b4a80}.bulk-group-status.done{color:#2f6b3f}.bulk-group-status.error{color:#a4362a}.bulk-rejected{margin-top:16px;padding:14px 16px;border:1px solid #f0d8d3;background:#fdf4f2;border-radius:12px}.bulk-rejected-title{margin:0;font-size:13px;font-weight:700;color:#a4362a}.bulk-rejected-list{margin:8px 0 0;padding-left:20px;font-size:13px;color:#6b625c}.bulk-rejected-list li{margin-bottom:4px}.bulk-rejected-list strong{color:#443a33}#bulk-feedback{margin-top:14px}#bulk-upload-button{margin-top:18px}.review-card{background:#fff;border-radius:14px;padding:24px 28px;box-shadow:0 2px 12px #0000000d;max-width:720px;flex:1;min-width:0}.review-section{padding:20px 0;border-top:1px solid #f2ede7}.review-section:first-of-type{border-top:none;padding-top:8px}.review-section h2{font-size:15px;margin:0 0 10px}.review-decision{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.decision-button{background:transparent;color:#44332d;border:1px solid #ddd6cf}.decision-button.accept.selected{background:#2f6b3f;border-color:#2f6b3f;color:#fff}.decision-button.reject.selected{background:#a4362a;border-color:#a4362a;color:#fff}.review-note-wrap{margin-top:12px}.review-note-wrap label{margin-top:0}.review-note-count{text-align:right;font-size:11px;color:#8a8078;margin-top:4px}.review-section-error{color:#b3261e;font-size:12.5px;margin-top:8px}#review-submit-error{margin-top:8px}#review-submit-button{margin-top:24px}#review-submit-feedback{margin-top:12px}.ai-usage-section{margin-top:36px;padding-top:28px;border-top:1px solid #e8e1d8}.ai-usage-section h2{font-size:15px;margin:0 0 10px}.ai-usage-table{min-width:720px}.ai-usage-table td,.ai-usage-table th{white-space:nowrap}.ai-usage-totals-row td{font-weight:700;border-top:2px solid #ddd6cf;background:#faf7f3}.ai-usage-note{font-size:12px;color:#8a8078;margin-top:8px}@media(max-width:900px){.menu-toggle{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:25;transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 24px #0003}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-backdrop.visible{opacity:1;pointer-events:auto}.content{padding:72px 20px 32px}.detail-layout{flex-direction:column}.detail-photos{width:100%}.detail-content{padding:20px}.queue-table{min-width:560px}}@media(max-width:480px){.review-actions{flex-direction:column}.review-actions button{width:100%}}
