.ingredients-container{padding:24px;max-width:1600px;margin:0 auto}.ingredients-container h1{font-size:28px;font-weight:600;margin:0 0 24px;color:#1a1a1a}.ingredients-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;margin-bottom:24px}.search-section{display:flex;flex-wrap:wrap;gap:10px;flex:1 1 320px;min-width:260px;max-width:600px}.ingredients-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.search-input-wrapper{position:relative;flex:1;min-width:140px}.category-filter{padding:10px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;font-family:inherit;background:#fff;cursor:pointer;transition:all .2s ease;min-width:160px}.category-filter:hover{border-color:#999}.category-filter:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.supplier-filter{padding:10px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;font-family:inherit;background:#fff;cursor:pointer;transition:all .2s ease;min-width:160px}.supplier-filter:hover{border-color:#999}.supplier-filter:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.new-ingredient-btn{padding:10px 20px;background:#06c;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.new-ingredient-btn.compact{padding:7px 12px;font-size:13px}.new-ingredient-btn:hover{background:#0052a3;transform:translateY(-1px);box-shadow:0 2px 8px #06c3}.new-ingredient-btn:active{transform:translateY(0)}.ingredients-table-wrapper{border:1px solid #e0e0e0;border-radius:8px;background:#fff;overflow-y:scroll;max-height:600px;box-sizing:border-box}.ingredients-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.ingredients-table thead{background:#f8f8f8;position:sticky;top:0;z-index:10}.ingredients-table th{padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0;box-sizing:border-box}.sortable-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;margin:0;border:none;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer;transition:opacity .15s ease}.sortable-header:hover{opacity:.75}.sortable-header span{margin-left:6px;font-size:11px;opacity:.65;flex-shrink:0}.ingredients-table tbody tr{border-bottom:1px solid #f0f0f0}.ingredients-table tbody tr:hover{background:#fafafa}.ingredients-table td{padding:10px 12px;box-sizing:border-box;cursor:pointer;transition:background .1s ease;word-wrap:break-word;overflow-wrap:break-word}.ingredients-table td:hover{background:#f5f5f5}.ingredients-table input,.ingredients-table select{width:100%;padding:6px;border:1px solid #0066cc;border-radius:3px;font-size:13px;font-family:inherit;box-sizing:border-box}.ingredients-table input:focus,.ingredients-table select:focus{outline:none;box-shadow:0 0 0 2px #06c3}.save-btn,.cancel-btn{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.back-to-recipe-float{position:fixed;bottom:28px;right:28px;z-index:200;padding:12px 22px;background:#3c3489;color:#fff;border:none;border-radius:30px;font-size:13.5px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px #3c348959;transition:all .15s ease;white-space:nowrap}.back-to-recipe-float:hover{background:#26215c;transform:translateY(-2px);box-shadow:0 6px 20px #3c348966}.ingredient-row-highlighted{background:#f5f4fe!important;box-shadow:inset 3px 0 #7f77dd}.delete-cell{text-align:center;cursor:default}.delete-ingredient-btn{background:none;border:none;font-size:15px;cursor:pointer;padding:4px 8px;border-radius:6px;opacity:.5;transition:all .15s ease}.delete-ingredient-btn:hover{opacity:1;background:#fee2e2}.bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 4px}.bulk-delete-btn{padding:7px 12px;background:#dc2626;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.checkbox-cell{text-align:center;cursor:default}.checkbox-cell input[type=checkbox],.select-all-checkbox{width:15px;height:15px;cursor:pointer;accent-color:#3C3489}.invoice-import-container{padding:24px;max-width:1200px;margin:0 auto}.invoice-import-subtitle{color:#666;margin-bottom:20px}.invoice-import-upload{display:flex;flex-direction:column;gap:16px;align-items:stretch}.invoice-dropzone{border:2px dashed #c7c7c7;border-radius:8px;padding:2rem;text-align:center;background-color:#fafafa;cursor:pointer;transition:all .2s}.invoice-dropzone-active{background-color:#eef5ff;border-color:#1a73e8}.invoice-dropzone-label{cursor:pointer;display:block}.invoice-dropzone-title{font-size:16px;font-weight:500;margin-bottom:.5rem}.invoice-dropzone-subtitle{font-size:13px;color:#666}.invoice-file-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.invoice-file-list li{display:flex;justify-content:space-between;align-items:center;background:#f1f3f4;border-radius:4px;padding:6px 10px;font-size:13px}.invoice-file-remove{background:none;border:none;color:#b3261e;cursor:pointer;font-size:13px;padding:0 0 0 8px}.invoice-import-error{background:#fdecea;color:#b3261e;padding:10px 14px;border-radius:6px;margin:10px 0}.invoice-import-processing{padding:40px;text-align:center;color:#666;font-size:16px}.invoice-card{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-bottom:20px}.invoice-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.invoice-items-table{width:100%;border-collapse:collapse;font-size:13px}.invoice-items-table th,.invoice-items-table td{border:1px solid #eee;padding:6px 8px;text-align:left}.invoice-items-table select,.invoice-items-table input{width:100%;box-sizing:border-box;font-size:13px}.row-needs-review{background:#fff8e1}.needs-review-label{color:#b3261e;font-weight:600}.computed-cost-cell{display:flex;flex-direction:column;gap:4px;min-width:130px}.cost-override-input{font-size:12px!important;color:#555;border-color:#ddd!important}.cost-override-input::placeholder{color:#aaa}.cost-manual{color:#1a73e8;font-weight:600}.invoice-import-actions{display:flex;gap:12px;margin-top:16px}.invoice-import-complete{padding:20px}.invoice-import-needs-review{background:#fff8e1;padding:12px 16px;border-radius:6px;margin:16px 0}.btn-primary{background:#1a73e8;color:#fff;border:none;padding:10px 18px;border-radius:6px;cursor:pointer;font-size:14px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#f1f3f4;color:#333;border:none;padding:10px 18px;border-radius:6px;cursor:pointer;font-size:14px}.suppliers-container{padding:24px;max-width:1600px;margin:0 auto}.suppliers-container h1{font-size:28px;font-weight:600;margin:0 0 24px;color:#1a1a1a}.suppliers-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.search-input-wrapper{position:relative;flex:1;max-width:600px}.new-supplier-btn{padding:10px 20px;background:#06c;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.new-supplier-btn:hover{background:#0052a3;transform:translateY(-1px);box-shadow:0 2px 8px #06c3}.suppliers-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.supplier-card{background:#fff;border:1px solid #e5e5ea;border-radius:10px;padding:12px 14px;transition:all .15s ease}.supplier-card:hover{box-shadow:0 2px 8px #0000000f}.supplier-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.supplier-card-name{font-size:14px;font-weight:700;color:#1a1a1a;cursor:pointer;min-height:18px;flex:1;line-height:1.3}.supplier-card-name:hover{color:#3c3489}.supplier-card-expand-btn{background:none;border:none;color:#8e8e93;font-size:10px;cursor:pointer;padding:2px 6px;border-radius:4px;flex-shrink:0;transition:all .15s ease}.supplier-card-expand-btn:hover{background:#f5f4fe;color:#3c3489}.supplier-card-field{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:4px 0;font-size:11.5px}.supplier-card-notes{flex-direction:column;align-items:flex-start;gap:3px}.scf-label{color:#8e8e93;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0}.scf-value{color:#1a1a1a;text-align:right;cursor:pointer;border-radius:4px;padding:1px 5px;transition:background .1s ease;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scf-value:hover{background:#f5f4fe}.supplier-card-notes .scf-value{text-align:left;width:100%;white-space:normal}.actions-cell{display:flex;gap:6px;padding:8px 10px!important;white-space:nowrap}.save-btn,.cancel-btn{padding:4px 10px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:10px 12px;border-radius:6px;font-size:13px}.bulk-actions{display:flex;align-items:center;gap:12px;padding:0 4px}.selected-count{font-size:13px;color:#3c3489;font-weight:600;white-space:nowrap}.bulk-delete-btn{padding:9px 16px;background:#dc2626;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.bulk-delete-btn:hover{background:#b91c1c}.supplier-card-checkbox{width:14px;height:14px;cursor:pointer;accent-color:#3C3489;flex-shrink:0}.supplier-card-delete-btn{background:none;border:none;font-size:13px;cursor:pointer;padding:2px 6px;border-radius:4px;opacity:.4;transition:all .15s ease;flex-shrink:0}.supplier-card-delete-btn:hover{opacity:1;background:#fee2e2}.trash-container{max-width:1200px;margin:0 auto;padding:20px}.trash-container h1{font-size:28px;font-weight:700;color:#2d3748;margin-bottom:24px}.trash-error{background-color:#ffebee;border:1px solid #ef5350;color:#c62828;padding:12px 16px;border-radius:6px;margin-bottom:16px;font-size:14px}.trash-success{background-color:#e8f5e9;border:1px solid #66bb6a;color:#2e7d32;padding:12px 16px;border-radius:6px;margin-bottom:16px;font-size:14px;font-weight:500}.trash-filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:1px solid #cbd5e0;background-color:#f7fafc;color:#4a5568;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.filter-btn:hover{background-color:#edf2f7;border-color:#a0aec0}.filter-btn.active{background-color:#2196f3;border-color:#2196f3;color:#fff}.trash-list{display:flex;flex-direction:column;gap:12px}.no-data{text-align:center;color:#a0aec0;padding:40px 20px;font-size:15px}.trash-item{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px;transition:all .2s}.trash-item:hover{box-shadow:0 2px 8px #0000001a;border-color:#cbd5e0}.item-info{display:flex;flex-direction:column;gap:4px;flex:1}.item-type{font-size:11px;font-weight:700;text-transform:uppercase;color:#718096;letter-spacing:.5px}.item-name{font-size:16px;font-weight:600;color:#2d3748}.item-date{font-size:12px;color:#a0aec0}.item-actions{display:flex;gap:8px;margin-left:16px;flex-shrink:0}.btn-restore,.btn-delete{padding:8px 14px;border-radius:6px;border:none;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-restore{background-color:#e8f5e9;color:#2e7d32;border:1px solid #81c784}.btn-restore:hover{background-color:#c8e6c9;border-color:#66bb6a}.btn-restore:disabled{opacity:.6;cursor:default}.btn-delete{background-color:#ffebee;color:#c62828;border:1px solid #ef5350}.btn-delete:hover{background-color:#ffcdd2;border-color:#e53935}.btn-delete:disabled{opacity:.6;cursor:default}@media (max-width: 768px){.trash-item{flex-direction:column;align-items:flex-start}.item-actions{width:100%;margin-left:0;margin-top:12px}.filter-btn{font-size:12px;padding:6px 12px}}.recipes-container{padding:24px;max-width:1600px;margin:0 auto}.recipes-container h1{font-size:28px;font-weight:600;margin:0 0 24px;color:#1a1a1a}.recipes-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;flex-wrap:wrap}.recipes-filters{display:flex;gap:10px;flex:1;min-width:280px}.category-filter-select{padding:10px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;font-family:inherit;background:#fff;cursor:pointer;min-width:150px}.category-filter-select:focus{outline:none;border-color:#7f77dd;box-shadow:0 0 0 3px #7f77dd1f}.search-input-wrapper{position:relative;flex:1;max-width:320px}.search-input:focus{outline:none;border-color:#7f77dd;box-shadow:0 0 0 3px #7f77dd1f}.search-clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px 6px;cursor:pointer;color:#999;font-size:16px;transition:color .2s ease}.new-recipe-btn{padding:10px 20px;background:#3c3489;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.new-recipe-btn:hover{background:#26215c;transform:translateY(-1px);box-shadow:0 2px 8px #3c348933}.archive-selected-btn{padding:10px 16px;background:#d85a30;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.archive-selected-btn:hover{background:#b84a26}.archive-selected-btn:disabled{opacity:.6;cursor:default}.archive-selected-btn--restore{background:#1d9e75}.archive-selected-btn--restore:hover{background:#167f5d}.recipe-card-select-row{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#8e8e93;margin:-4px -6px 8px;padding:4px 6px;cursor:pointer}.recipe-card-select-row input{cursor:pointer}.recipe-card-badge--archived{background:#efeae3;color:#6b5c47}.recipe-card-restore-btn{flex:1;padding:7px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid #D85A30;background:#fff;color:#d85a30}.recipe-card-restore-btn:hover{background:#d85a30;color:#fff}.recipe-card-delete-btn{flex:1;padding:7px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid #B3261E;background:#fff;color:#b3261e}.recipe-card-delete-btn:hover{background:#b3261e;color:#fff}.recipes-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.recipe-card{background:#ededf0;border:1px solid #dcdce1;border-radius:10px;padding:12px 14px;transition:all .15s ease;display:flex;flex-direction:column}.recipe-card:hover{box-shadow:0 2px 8px #0000000f}.recipe-card-image-wrap{margin:-12px -14px 10px;border-radius:10px 10px 0 0;overflow:hidden}.recipe-card-image{width:100%;height:120px;object-fit:cover;display:block}.recipe-card-name{font-size:14.5px;font-weight:700;color:#1a1a1a;cursor:pointer;line-height:1.3;margin-bottom:4px}.recipe-card-name:hover{color:#3c3489;text-decoration:underline}.recipe-card-category{font-size:11.5px;color:#8e8e93;margin-bottom:10px}.recipe-card-status-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.recipe-card-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:3px 7px;border-radius:20px;white-space:nowrap}.recipe-card-badge--approved{background:#e6f4ea;color:#1d7a45}.recipe-card-badge-date{font-weight:500;opacity:.85}.recipe-card-badge--unreviewed{background:#f1f1f3;color:#8e8e93}.recipe-card-badge--flagged{background:#fdecea;color:#c4341c}.recipe-card-field{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:4px 0;font-size:11.5px}.recipe-card-description{flex-direction:column;align-items:flex-start;gap:3px}.rcf-label{color:#8e8e93;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0}.rcf-value-static{color:#1a1a1a;font-weight:600;text-align:right;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-card-description .rcf-value-static{text-align:left;width:100%;white-space:normal;font-weight:400}.recipe-card-actions{display:flex;gap:6px;margin-top:10px}.recipe-card-view-btn,.recipe-card-edit-btn{flex:1;padding:7px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid #e5e5ea}.recipe-card-view-btn{background:#f5f4fe;color:#3c3489;border-color:#cecbf6}.recipe-card-view-btn:hover{background:#eeedfe}.recipe-card-edit-btn{background:#fff;color:#1a1a1a}.recipe-card-edit-btn:hover{background:#f5f5f5}.recipe-card-duplicate-btn{flex:1;padding:7px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid #CECBF6;background:#fff;color:#3c3489}.recipe-card-duplicate-btn:hover{background:#f5f4fe}.recipe-card-duplicate-btn:disabled{opacity:.6;cursor:default}.recipe-card-expand-btn{background:none;border:none;color:#8e8e93;font-size:11px;cursor:pointer;padding:8px 0 0;text-align:center;transition:color .15s ease}.recipe-card-expand-btn:hover{color:#3c3489}.recipe-card-expanded{margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0}.recipe-card-icons{display:inline-flex;gap:2px;margin-left:8px;font-size:15px;vertical-align:middle;white-space:nowrap}.recipe-card-icons-more{font-size:11px;color:#6b7280;margin-left:2px;align-self:center}.recipe-icon-bar{display:flex;flex-direction:column;gap:8px;margin:-8px 0 20px}.recipe-icon-row{display:flex;align-items:center;gap:10px;min-width:0}.recipe-icon-row-title{flex:0 0 auto;width:84px;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.recipe-icon-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;min-width:0}.recipe-icon-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;font-size:13px;color:#1f2937;cursor:pointer;white-space:nowrap}.recipe-icon-chip:hover{border-color:#a5b4fc;background:#f5f4fe}.recipe-icon-chip--active{background:#3c3489;border-color:#3c3489;color:#fff}.recipe-icon-chip--active:hover{background:#2f2970}.recipe-icon-chip-emoji{font-size:16px;line-height:1}.recipe-icon-chip-count{font-size:11px;color:#6b7280;background:#f3f4f6;border-radius:999px;padding:1px 6px}.recipe-icon-chip--active .recipe-icon-chip-count{background:#fff3;color:#fff}.recipe-icon-clear{align-self:flex-start;margin-left:94px;background:none;border:none;color:#3c3489;font-size:13px;cursor:pointer;padding:2px 0;text-decoration:underline}@media (max-width: 640px){.recipe-icon-row{flex-direction:column;align-items:flex-start;gap:4px}.recipe-icon-row-title{width:auto}.recipe-icon-chips{width:100%}.recipe-icon-clear{margin-left:0}}.recipe-form-container{position:fixed;top:0;left:0;right:0;bottom:0;background:#1118278c;display:flex;align-items:flex-start;justify-content:center;padding:40px 24px;overflow-y:auto;z-index:100;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.recipe-form{background:#fff;border-radius:14px;width:100%;max-width:820px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;max-height:calc(100vh - 80px)}.recipe-form-header{display:flex;justify-content:space-between;align-items:center;padding:22px 30px;border-bottom:1px solid #eef0f2;flex-shrink:0}.recipe-form-header h2{margin:0;font-size:19px;font-weight:700;color:#1f2937}.close-btn{background:#f3f4f6;border:none;width:32px;height:32px;border-radius:8px;font-size:15px;color:#6b7280;cursor:pointer}.close-btn:hover{background:#e5e7eb;color:#1f2937}.recipe-form-body{padding:24px 30px;overflow-y:auto;flex:1}.form-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin:26px 0 14px;padding-top:18px;border-top:1px solid #eef0f2}.form-section-title:first-child{margin-top:0;padding-top:0;border-top:none}.form-error{background:#fef2f2;color:#991b1b;padding:12px 16px;border-radius:8px;font-size:13px;font-weight:600;margin-bottom:18px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;box-sizing:border-box;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6}.field-hint{display:block;font-size:12px;color:#9ca3af;margin-top:5px}.form-image-preview{max-width:160px;margin-top:10px;border-radius:8px;display:block}.error-text{display:block;color:#dc2626;font-size:12px;font-weight:600;margin-top:6px}.live-summary{display:flex;gap:24px;background:#f9fafb;border-radius:10px;padding:14px 20px;margin:16px 0 8px}.live-summary>div{display:flex;flex-direction:column;gap:4px}.live-summary span{font-size:11px;font-weight:700;text-transform:uppercase;color:#9ca3af}.live-summary strong{font-size:17px;font-weight:800;color:#1f2937}.live-summary strong.over-target{color:#dc2626}.live-summary strong.on-target{color:#16a34a}.ingredient-search-row{display:grid;grid-template-columns:2fr 80px 90px 1.4fr auto;gap:10px;align-items:start;margin-bottom:6px}.ingredient-search-box{position:relative}.ingredient-search-box input{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;box-sizing:border-box}.ingredient-search-box input:focus{outline:none;border-color:#3b82f6}.ingredient-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 8px 24px #0000001f;max-height:220px;overflow-y:auto;z-index:20}.ingredient-suggestion-item{padding:10px 14px;font-size:14px;color:#1f2937;cursor:pointer}.ingredient-suggestion-item:hover{background:#eff6ff;color:#1d4ed8}.ingredient-qty-input,.ingredient-unit-input,.ingredient-notes-input{padding:9px 10px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;box-sizing:border-box;width:100%}.ingredient-qty-input:focus,.ingredient-unit-input:focus,.ingredient-notes-input:focus{outline:none;border-color:#3b82f6}.btn-add{background:#16a34a;color:#fff;border:none;padding:9px 18px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-add:hover{background:#15803d}.ingredients-list{margin-top:18px}.ingredients-table{width:100%;border-collapse:collapse}.ingredients-table th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;color:#9ca3af;padding:0 10px 8px 0;border-bottom:1.5px solid #eef0f2}.ingredients-table td{padding:10px 10px 10px 0;font-size:13px;color:#374151;border-bottom:1px solid #f4f5f7}.no-data{color:#9ca3af;font-style:italic;font-size:13px;padding:10px 0}.btn-delete{background:#fef2f2;color:#dc2626;border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.btn-delete:hover{background:#fee2e2}.recipe-form-footer{display:flex;justify-content:flex-end;gap:12px;padding:18px 30px;border-top:1px solid #eef0f2;flex-shrink:0;background:#fff;border-radius:0 0 14px 14px}.btn-cancel-footer{background:#f3f4f6;color:#374151;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}.btn-cancel-footer:hover{background:#e5e7eb}.btn-save-close{background:#3b82f6;color:#fff;border:none;padding:12px 28px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}.btn-save-close:hover{background:#2563eb}.btn-save-close:disabled{opacity:.6;cursor:default}@media (max-width: 700px){.form-row,.live-summary{grid-template-columns:1fr;flex-direction:column}.ingredient-search-row{grid-template-columns:1fr}.recipe-form-container{padding:0}.recipe-form{border-radius:0;max-width:100%;max-height:100vh}}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#2c3e50,#34495e);padding:1rem}.auth-box{background-color:#fff;border-radius:8px;box-shadow:0 8px 32px #0003;padding:2.5rem;width:100%;max-width:400px}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{font-size:2rem;color:#2c3e50;margin-bottom:.5rem;font-weight:700}.auth-header p{font-size:.95rem;color:#7f8c8d;font-weight:400}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.9rem;font-weight:600;color:#2c3e50;margin-bottom:.5rem}.form-group input{padding:.75rem;font-size:1rem;border:1px solid #bdc3c7;border-radius:4px;transition:border-color .3s ease}.form-group input:focus{outline:none;border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1a}.form-group input::placeholder{color:#bdc3c7}.error-message{background-color:#fadbd8;color:#c0392b;padding:.75rem;border-radius:4px;font-size:.9rem;border-left:4px solid #c0392b}.success-message{background-color:#d5f4e6;color:#27ae60;padding:1rem;border-radius:4px;font-size:.95rem;border-left:4px solid #27ae60;text-align:center}.success-message p{margin-bottom:1rem}.success-message .btn-primary{margin-top:1rem;width:100%}.auth-form .btn-primary{background-color:#e74c3c;color:#fff;border:none;padding:.85rem;font-size:1rem;font-weight:600;border-radius:4px;cursor:pointer;transition:background-color .3s ease;margin-top:.5rem}.auth-form .btn-primary:hover:not(:disabled){background-color:#c0392b}.auth-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #ecf0f1}.auth-footer p{font-size:.9rem;color:#7f8c8d}.link-button{background:none;border:none;color:#e74c3c;cursor:pointer;font-weight:600;text-decoration:underline;transition:color .3s ease;font-size:.9rem}.link-button:hover{color:#c0392b}@media (max-width: 480px){.auth-box{padding:1.5rem}.auth-header h1{font-size:1.5rem}.form-group input{font-size:16px}}.auth-button{width:100%;padding:12px 16px;background-color:#e74c3c;color:#fff;border:none;border-radius:4px;font-weight:600;cursor:pointer;font-size:1rem;transition:background-color .3s ease;margin-top:12px}.auth-button:hover{background-color:#c0392b}.auth-button:disabled{opacity:.6;cursor:not-allowed}.categories-container{padding:24px;max-width:1600px;margin:0 auto}.categories-container h1{font-size:28px;font-weight:600;margin:0 0 24px;color:#1a1a1a}.categories-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.search-section{display:flex;gap:12px;flex:1;max-width:600px}.search-input-wrapper{position:relative;flex:1}.search-input{width:100%;padding:10px 36px 10px 14px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;font-family:inherit;transition:all .2s ease;background:#fff}.search-input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.search-input::placeholder{color:#999}.search-clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px 6px;cursor:pointer;color:#999;font-size:16px;transition:color .2s ease;display:flex;align-items:center;justify-content:center}.search-clear-btn:hover{color:#333}.category-type-filter{padding:10px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;font-family:inherit;background:#fff;cursor:pointer;transition:all .2s ease;min-width:160px}.category-type-filter:hover{border-color:#999}.category-type-filter:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.new-category-btn{padding:10px 20px;background:#06c;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.new-category-btn:hover{background:#0052a3;transform:translateY(-1px);box-shadow:0 2px 8px #06c3}.new-category-btn:active{transform:translateY(0)}.categories-table-wrapper{border:1px solid #e0e0e0;border-radius:8px;background:#fff;overflow-y:scroll;max-height:600px;box-sizing:border-box}.categories-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.categories-table thead{background:#f8f8f8;position:sticky;top:0;z-index:10}.categories-table th{padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0;box-sizing:border-box}.categories-table tbody tr{border-bottom:1px solid #f0f0f0}.categories-table tbody tr:hover{background:#fafafa}.categories-table td{padding:10px 12px;box-sizing:border-box;cursor:pointer;transition:background .1s ease;word-wrap:break-word;overflow-wrap:break-word}.categories-table td:hover{background:#f5f5f5}.categories-table td:nth-child(1),.categories-table th:nth-child(1){width:200px}.categories-table td:nth-child(2),.categories-table th:nth-child(2){width:300px}.categories-table td:nth-child(3),.categories-table th:nth-child(3){width:140px}.categories-table input,.categories-table select{width:100%;padding:6px;border:1px solid #0066cc;border-radius:3px;font-size:13px;font-family:inherit;box-sizing:border-box}.categories-table input:focus,.categories-table select:focus{outline:none;box-shadow:0 0 0 2px #06c3}.actions-cell{display:flex;gap:8px;padding:10px 12px!important;white-space:nowrap}.save-btn,.cancel-btn,.delete-btn{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.save-btn{background:#28a745;color:#fff}.save-btn:hover{background:#218838}.cancel-btn{background:#e0e0e0;color:#333}.cancel-btn:hover{background:#d0d0d0}.delete-btn{background:#dc3545;color:#fff}.delete-btn:hover{background:#c82333}.loading{padding:40px;text-align:center;color:#666;font-size:14px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1a1a1a}.modal-close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#999;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.modal-close-btn:hover{color:#333}.modal-body{padding:24px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:#333}.form-input{padding:10px;border:1px solid #d0d0d0;border-radius:6px;font-size:13px;font-family:inherit;transition:all .2s ease}.form-input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:10px 12px;border-radius:6px;font-size:13px;margin:-8px 24px 0}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:24px;border-top:1px solid #e0e0e0;background:#fafafa}.modal-cancel-btn,.modal-save-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-cancel-btn{background:#e0e0e0;color:#333}.modal-cancel-btn:hover{background:#d0d0d0}.modal-save-btn{background:#06c;color:#fff}.modal-save-btn:hover{background:#0052a3;transform:translateY(-1px);box-shadow:0 2px 8px #06c3}.modal-save-btn:active{transform:translateY(0)}.menus-back-btn{background:none;border:none;color:#06c;cursor:pointer;font-size:13.5px;font-weight:600;padding:0;margin-bottom:12px}.menus-back-btn:hover{text-decoration:underline}.menus-detail-description{color:#666;font-size:14px;margin:-8px 0 20px}.menus-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.menus-card{border:1px solid #e0e0e0;border-radius:10px;padding:16px 18px;cursor:pointer;background-color:#fff;transition:box-shadow .15s ease,transform .15s ease}.menus-card:hover{box-shadow:0 4px 14px #00000014;transform:translateY(-1px)}.menus-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.menus-card-name{font-size:16px;font-weight:700;color:#1a1a1a}.menus-status-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:20px;background-color:#eee;color:#777;white-space:nowrap}.menus-status-badge.active{background-color:#e6f4ea;color:#1d7a45}.menus-card-description{font-size:13px;color:#666;margin-bottom:8px}.menus-card-meta{font-size:12.5px;color:#888;font-weight:600}.menus-card-actions{display:flex;gap:8px;margin-top:12px;border-top:1px solid #f0f0f0;padding-top:10px}.menus-card-action-btn{background:none;border:1px solid #d0d0d0;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:600;color:#444;cursor:pointer}.menus-card-action-btn:hover{background-color:#f5f5f5}.menus-card-action-btn.danger{color:#c0392b;border-color:#f0c0ba}.menus-card-action-btn.danger:hover{background-color:#fdecea}.menus-sections-list{display:flex;flex-direction:column;gap:14px}.menus-section-card{border:1px solid #e0e0e0;border-radius:10px;padding:14px 16px;background-color:#fafafa}.menus-section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.menus-drag-handle{cursor:grab;color:#999;font-size:15px;flex-shrink:0;-webkit-user-select:none;user-select:none;padding:4px 2px}.menus-section-name-input{font-size:15px;font-weight:700;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:6px;flex:1;min-width:0;font-family:inherit;color:#1a1a1a}.menus-section-name-input:hover,.menus-section-name-input:focus{border-color:#d0d0d0;background-color:#fff}.menus-section-meta{font-size:12px;color:#888;white-space:nowrap}.menus-icon-btn{background:none;border:none;cursor:pointer;font-size:13px;color:#999;padding:4px 6px;border-radius:5px;flex-shrink:0}.menus-icon-btn:hover{background-color:#f0f0f0;color:#c0392b}.menus-items-list{display:flex;flex-direction:column;gap:2px}.menus-item-row{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:6px;background-color:#fff;border:1px solid #eee;margin-bottom:4px}.menus-item-name{flex:1;font-size:14px;color:#1a1a1a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menus-item-price{font-size:13px;font-weight:700;color:#1a1a1a;white-space:nowrap}.menus-item-cost{font-size:12px;color:#888;white-space:nowrap;min-width:90px;text-align:right}.menus-empty-items{font-size:13px;color:#999;padding:8px 6px;font-style:italic}.menus-add-item-btn,.menus-add-section-btn{margin-top:8px;background:none;border:1px dashed #bbb;border-radius:6px;padding:7px 12px;font-size:13px;font-weight:600;color:#555;cursor:pointer}.menus-add-item-btn:hover,.menus-add-section-btn:hover{background-color:#f0f0f0;border-color:#999}.menus-add-section-btn{align-self:flex-start}.menus-add-section-row{display:flex;gap:8px;align-items:center}.menus-add-section-row .form-input{flex:1}.menus-recipe-picker{margin-top:8px;border:1px solid #d0d0d0;border-radius:8px;padding:10px;background-color:#fff}.menus-picker-results{max-height:220px;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:2px}.menus-picker-result{text-align:left;background:none;border:none;padding:7px 8px;border-radius:5px;font-size:13.5px;cursor:pointer;color:#1a1a1a}.menus-picker-result:hover:not(:disabled){background-color:#f0f0f0}.menus-picker-result:disabled{color:#aaa;cursor:default}.menus-picker-already{font-size:11.5px;color:#aaa}.menus-picker-empty{font-size:13px;color:#999;padding:8px}.menus-picker-cancel{margin-top:8px;background:none;border:none;color:#888;font-size:12.5px;cursor:pointer;text-decoration:underline}.events-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid #e0e0e0}.events-tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 16px;font-size:14px;font-weight:600;color:#888;cursor:pointer}.events-tab.active{color:#06c;border-bottom-color:#06c}.events-tab:hover:not(.active){color:#333}.events-picker{width:100%;max-width:480px;padding:9px 12px;border:1px solid #d5d5d5;border-radius:8px;background:#fff;font-size:14px;margin-bottom:18px}.events-card{border:1px solid #e0e0e0;border-radius:10px;padding:18px 20px;background:#fff;margin-bottom:16px}.events-card h3{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#666;margin:0 0 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.events-card h3 .events-title-main{font-size:17px;text-transform:none;letter-spacing:0;color:#1a1a1a;font-weight:700;display:flex;align-items:center;gap:10px}.events-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.events-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 800px){.events-grid4,.events-grid2{grid-template-columns:1fr 1fr}}.events-field .events-k{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#999;margin-bottom:3px}.events-field .events-v{font-size:14.5px;color:#1a1a1a}.events-pill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:20px;border:1px solid currentColor}.events-pill.st-draft{color:#999}.events-pill.st-confirmed{color:#06c}.events-pill.st-prep_in_progress{color:#b8860b}.events-pill.st-ready,.events-pill.st-completed{color:#1a9e5c}.events-pill.st-cancelled,.events-pill.rv-needs_chef_review{color:#d1453b}.events-pill.rv-reviewed_safe{color:#1a9e5c}.events-pill.rv-reviewed_unsafe{color:#d1453b}.events-pill.rv-dish_modified{color:#b8860b}.events-pill.committed{color:#1a9e5c}.events-pill.planned,.events-pill.st-planned{color:#999}.events-pill.st-in_progress{color:#b8860b}.events-pill.st-complete{color:#1a9e5c}.events-pill.st-sent{color:#06c}.events-pill.st-partially_received{color:#b8860b}.events-pill.st-received{color:#1a9e5c}.events-pill.pr-low{color:#999}.events-pill.pr-normal{color:#06c}.events-pill.pr-high{color:#b8860b}.events-pill.pr-critical{color:#d1453b}.events-pill.st-processing{color:#999}.events-pill.st-pending_review{color:#b8860b}.events-pill.st-confirmed{color:#1a9e5c}.events-pill.st-discarded{color:#d1453b}.events-inlineselect{padding:4px 8px;border:1px solid #d5d5d5;border-radius:6px;font-size:12.5px;background:#fff}.events-guestrow{display:flex;align-items:center;gap:10px}.events-guestrow input{width:90px;padding:7px 10px;border:1px solid #d5d5d5;border-radius:6px;font-size:14px}.events-guestrow input[type=date],.events-guestrow input[type=time]{width:155px}.events-btn{padding:7px 14px;border-radius:6px;border:1px solid #d5d5d5;background:#fff;color:#333;font-weight:600;font-size:12.5px;cursor:pointer}.events-btn:hover{border-color:#06c;color:#06c}.events-btn.primary{background:#06c;border-color:#06c;color:#fff}.events-btn.primary:hover{background:#0052a3;color:#fff}.events-btn.danger{color:#d1453b;border-color:#f0c9c6}.events-btn.danger:hover{background:#fbeeed}.events-btn:disabled{opacity:.4;cursor:not-allowed}.events-btn.small{padding:5px 10px;font-size:11px}.events-readi{display:flex;align-items:center;gap:18px;margin-bottom:12px}.events-readi .events-score{font-size:38px;font-weight:800;color:#06c;line-height:1}.events-readi .events-score.full{color:#1a9e5c}.events-barlist{flex:1;display:flex;flex-direction:column;gap:6px}.events-barrow{display:flex;align-items:center;gap:10px;font-size:12px}.events-barrow .events-lbl{width:140px;color:#666;flex-shrink:0}.events-barwrap{flex:1;height:6px;background:#eee;border-radius:3px;overflow:hidden}.events-barfill{height:100%;background:#06c}.events-barfill.full{background:#1a9e5c}.events-blocking{list-style:none;padding:0;margin:8px 0 0;font-size:13px;color:#d1453b}.events-blocking li{padding:2px 0}.events-blocking li:before{content:"— "}.events-flagcard{border:1px solid #eee;border-radius:8px;padding:12px 14px;margin-bottom:8px;background:#fafafa}.events-flagcard .events-flagtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.events-flagcard .events-note{font-size:13px;color:#666;margin-bottom:8px}.events-flagcard .events-actions{display:flex;gap:6px}.events-table{width:100%;border-collapse:collapse;font-size:14px}.events-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#999;padding:8px 10px;border-bottom:1px solid #e0e0e0}.events-table td{padding:9px 10px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.events-reqrow{cursor:pointer}.events-reqrow:hover{background:#fafafa}.events-subtable{background:#fafafa;padding:10px 14px}.events-subtable table{font-size:13px}.events-muted{color:#999;font-size:13px}.events-loading{padding:32px;text-align:center;color:#999}.events-error{padding:14px 16px;background:#fbeeed;border:1px solid #f0c9c6;border-radius:8px;color:#d1453b;font-size:14px;margin-bottom:16px}.events-modalbg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.events-modal{background:#fff;border-radius:10px;padding:22px 24px;max-width:620px;width:92%;max-height:88vh;overflow-y:auto;box-shadow:0 12px 40px #0003}.events-modal h3{margin:0 0 12px;font-size:16px;color:#1a1a1a}.events-modal .events-row{display:flex;justify-content:space-between;padding:5px 0;font-size:14px;border-bottom:1px solid #f0f0f0}.events-modal .events-row strong{color:#1a1a1a}.events-modal .events-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.events-modal textarea,.events-modal input,.events-modal select{width:100%;padding:8px 11px;border:1px solid #d5d5d5;border-radius:6px;margin-bottom:10px;font-size:14px}.events-modal label{font-size:12px;color:#666}.events-toast{position:fixed;bottom:24px;right:24px;background:#1a1a1a;color:#fff;padding:12px 18px;border-radius:8px;font-size:13px;max-width:340px;z-index:210;box-shadow:0 8px 24px #0003}.events-toast.err{background:#d1453b}.recipe-book-header{background:linear-gradient(135deg,var(--surface-2) 0%,var(--surface-0) 100%);border-bottom:1px solid var(--border);padding:1.25rem 1.5rem}.recipe-book-header-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.recipe-book-content{max-width:1200px;margin:0 auto;padding:1.5rem}.recipe-search{width:100%;padding:14px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:16px;background-color:var(--surface-2);color:var(--text-primary);margin-bottom:1.5rem;box-shadow:0 1px 2px #0000000a;transition:border-color .15s ease}.recipe-search::placeholder{color:var(--text-muted)}.recipe-search:focus{outline:none;border-color:var(--fill-accent)}.filter-section{margin-bottom:1.5rem}.filter-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:8px}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-button{padding:10px 16px;border:1px solid var(--border);border-radius:10px;background-color:var(--surface-2);color:var(--text-primary);cursor:pointer;font-size:13.5px;font-weight:600;transition:all .15s ease;min-height:40px}.filter-button:hover{background-color:var(--surface-1)}.filter-button.active{background-color:var(--fill-accent);color:var(--on-accent);border-color:var(--fill-accent);box-shadow:0 2px 6px #0000001f}.category-button{padding:8px 14px;border:1px solid var(--border);border-radius:16px;background-color:var(--surface-2);color:var(--text-primary);cursor:pointer;font-size:12.5px;font-weight:600;transition:all .15s ease;min-height:34px}.category-button:hover{background-color:var(--surface-1)}.category-button.active{background-color:var(--fill-accent);color:var(--on-accent);border-color:var(--fill-accent)}.recipe-list{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 640px){.recipe-list{grid-template-columns:repeat(2,1fr);gap:12px}}@media (min-width: 1000px){.recipe-list{grid-template-columns:repeat(3,1fr);gap:14px}}.recipe-list-item{display:flex;flex-direction:column;gap:6px;padding:1.1rem 1.25rem;border:1px solid var(--border);border-top:3px solid var(--card-accent, var(--border));border-radius:12px;background-color:var(--surface-1);cursor:pointer;text-align:left;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;box-shadow:0 1px 2px #0000000a;min-height:88px}.recipe-list-item:hover{background-color:var(--surface-2);transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.recipe-list-item-name{font-size:15.5px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.3}.recipe-list-item-meta{font-size:13px;color:var(--text-secondary)}.recipe-list-item-station{font-size:11.5px;font-weight:700;color:var(--card-accent, var(--text-accent));text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center;gap:5px}.recipe-list-item-top-row{display:flex;align-items:center;gap:8px;min-height:18px}.recipe-kind-badge{font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:20px;white-space:nowrap;flex-shrink:0;margin-left:auto}.recipe-kind-badge.menu-item{background-color:#e6f4ea;color:#1d7a45}.recipe-kind-badge.prep{background-color:#efeae3;color:#6b5c47}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary);font-size:14px;grid-column:1 / -1}.recipe-detail-header{background-color:var(--surface-2);border-bottom:1px solid var(--border);padding:1rem}.recipe-detail-content{max-width:680px;margin:0 auto;padding:1.5rem}.back-button{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-accent);cursor:pointer;font-size:13px;font-weight:500;padding:8px 0;transition:all .2s ease}.back-button:hover{opacity:.8}.recipe-badges{display:flex;gap:8px;margin-bottom:8px}.recipe-badge{display:inline-block;padding:4px 10px;background-color:var(--bg-accent);color:var(--text-accent);border-radius:4px;font-size:12px}.recipe-section{margin-bottom:2rem}.recipe-section-title{font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;color:var(--text-primary)}.ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.ingredient-item{padding:8px;background-color:var(--surface-1);border-radius:var(--radius);font-size:14px}.method-steps{font-size:14px;line-height:1.6;color:var(--text-primary)}.method-step{margin-bottom:12px;padding-left:24px;position:relative}.safety-section{padding:1rem;background-color:var(--bg-warning);border-left:3px solid var(--fill-warning);border-radius:var(--radius);font-size:14px;color:var(--text-warning)}.loading-container,.error-container{padding:2rem;text-align:center;min-height:100vh}.loading-spinner{font-size:32px;animation:spin 1s linear infinite;margin-top:1rem}.error-title{font-size:18px;font-weight:500;color:var(--text-danger);margin-bottom:1rem}@media (max-width: 600px){.recipe-book-content,.recipe-detail-content{padding:1rem}.filter-buttons,.recipe-badges{gap:4px}}.crv-container{max-width:1200px;margin:0 auto;padding:1rem 1.5rem 2rem}.crv-back-row{margin-bottom:.75rem}.crv-title{font-size:22px;font-weight:700;margin:0 0 2px}.crv-meta{font-size:13px;color:var(--text-secondary);margin-bottom:1rem}.crv-grid{display:grid;grid-template-columns:1fr;gap:0}@media (min-width: 700px){.crv-grid{grid-template-columns:1fr 1fr;gap:0 40px}}.crv-section{margin-bottom:1.25rem}.rd-page-wrapper{background:#f7f7f8;min-height:100%;padding:24px 0 60px}.rd-page{max-width:1200px;margin:0 auto;padding:32px 48px;background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014}.rd-loading{padding:60px;text-align:center;color:#666}.rd-back-link{background:none;border:none;color:#3c3489;font-size:14px;font-weight:600;cursor:pointer;padding:0;margin-bottom:24px}.rd-back-link:hover{text-decoration:underline}.rd-header{text-align:center;margin-bottom:24px}.rd-name{font-size:30px;font-weight:800;color:#1a1a1a;margin:0 0 4px;line-height:1.2}.rd-category{font-size:12px;color:#8e8e93;margin-bottom:4px}.rd-category-link{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.rd-category-link:hover{color:#3c3489}.rd-header-image{border-radius:12px;overflow:hidden;max-width:360px;max-height:260px;margin:18px auto 0}.rd-image{width:100%;height:100%;object-fit:cover;display:block}.rd-summary-rows{display:grid;grid-template-columns:1fr 1fr;gap:0px 18px}.rd-summary-rows--standalone{max-width:480px;margin:12px auto 0;text-align:left}.rd-summary-row{display:flex;flex-direction:column;gap:0px;padding:3px 0}.rd-summary-row:last-child{border-bottom:none}.rd-summary-label{font-size:10.5px;color:#9a9aa0;font-weight:500}.rd-summary-value{font-size:13px;font-weight:700;color:#1a1a1a}.rd-action-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px}.rd-nav-slot{flex:0 0 auto;min-width:90px}.rd-nav-slot--right{display:flex;justify-content:flex-end}.rd-action-row-center{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;flex:1 1 auto}@media (max-width: 700px){.rd-action-row{flex-direction:column}.rd-nav-slot{min-width:0;width:100%;display:flex;justify-content:center}.rd-nav-slot--right{justify-content:center}}.rd-review-status{margin-top:6px}.rd-review-badge{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:20px}.rd-review-badge--approved{background:#e6f4ea;color:#1d7a45}.rd-review-badge--unreviewed{background:#f1f1f3;color:#8e8e93}.rd-flags-panel{background:#fdecea;border-left:3px solid #D85A30;border-radius:8px;padding:14px 18px;margin-bottom:24px}.rd-flags-panel-title{font-size:13px;font-weight:700;color:#822c15;margin:0 0 10px;text-transform:uppercase;letter-spacing:.03em}.rd-flag-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0;border-top:1px solid rgba(0,0,0,.06)}.rd-flag-row:first-of-type{border-top:none;padding-top:0}.rd-flag-note{font-size:14px;color:#4a1b0c;margin:0 0 3px;line-height:1.5}.rd-flag-meta{font-size:11.5px;color:#8e5c4b;margin:0}.rd-flag-resolve-btn{flex-shrink:0;background:#fff;border:1px solid #D85A30;color:#d85a30;font-size:12px;font-weight:600;padding:6px 12px;border-radius:6px;cursor:pointer}.rd-flag-resolve-btn:hover{background:#d85a30;color:#fff}.rd-edit-btn,.rd-print-btn,.rd-pdf-btn{padding:8px 14px;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease;border:none;white-space:nowrap}.rd-edit-btn{background:#3c3489;color:#fff}.rd-edit-btn:hover{background:#26215c}.rd-print-btn,.rd-pdf-btn{background:#fff;color:#3c3489;border:1px solid #CECBF6}.rd-print-btn:hover,.rd-pdf-btn:hover{background:#f5f4fe}.rd-nav-btn:disabled{opacity:.4;cursor:default;background:#fff}.rd-accordion{margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:16px}.rd-accordion-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;padding:0;font-size:16px;font-weight:700;color:#1a1a1a;cursor:pointer}.rd-accordion-arrow{font-size:12px;color:#8e8e93}.rd-accordion-content{margin:12px 0 0;font-size:15px;line-height:1.7;color:#333;white-space:pre-wrap}.print-only-description{display:none}.rd-food-safety{background:#faece7;border-left:3px solid #D85A30;padding:16px 20px;border-radius:8px;margin-bottom:28px}.rd-food-safety h2{font-size:15px;font-weight:700;color:#712b13;margin:0 0 8px}.rd-food-safety .rd-text{color:#4a1b0c;margin:0}.rd-section{margin-bottom:24px;padding-top:16px;border-top:1px solid #eee}.rd-section h2{font-size:17px;font-weight:700;color:#1a1a1a;margin:0 0 10px}.rd-im-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid #eee;padding-top:16px;margin-bottom:24px}.rd-im-grid .rd-section{border-top:none;padding-top:0;margin-bottom:0}@media (min-width: 700px){.rd-im-grid{grid-template-columns:1fr 1fr;gap:0 40px}}.rd-text{font-size:15px;line-height:1.7;color:#333;white-space:pre-wrap;word-wrap:break-word;margin:0}.rd-ingredients{display:flex;flex-direction:column;gap:2px}.rd-ingredient-row{display:flex;align-items:baseline;gap:12px;padding:4px 0;border-bottom:1px solid #f5f5f5}.rd-component-row{background:#f2effa;border:1px solid #e0d9f5;border-radius:6px;padding:6px 10px;margin-bottom:4px}.rd-component-row:last-child{margin-bottom:0}.rd-ingredient-header{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b6b6b;padding:12px 0 4px;border-bottom:none}.rd-ingredient-header:first-child{padding-top:0}.rd-ing-qty{font-weight:700;color:#3c3489;min-width:70px;font-size:14px}.rd-ing-name{flex:1;color:#1a1a1a;font-size:14.5px}.rd-ing-name-link{color:#3c3489;cursor:pointer;text-decoration:underline;text-decoration-color:#cecbf6}.rd-ing-name-link:hover{color:#26215c;text-decoration-color:#3c3489}.print-only{display:none}.rd-ing-notes{color:#8e8e93;font-size:13px;font-style:italic}.rd-ing-cost{font-weight:600;color:#1d9e75;min-width:55px;text-align:right;font-size:13.5px}@page{margin:10mm}@media print{.no-print,.app-top-nav{display:none!important}.app-shell-root,.app-main-scroll{height:auto!important;overflow:visible!important}.app-main-scroll{padding:0!important}.print-only,.print-only-description{display:block!important}.print-only.rd-summary-rows{display:grid!important}.rd-page-wrapper{background:#fff;padding:0}.rd-page{max-width:100%;padding:0;box-shadow:none;border-radius:0;font-size:12px;line-height:1.35}.rd-header{text-align:left}.rd-name{font-size:22px}.rd-header-image{max-width:100%;max-height:90px;object-fit:cover;margin:6px 0 0}.rd-ing-name-link{color:#1a1a1a;text-decoration:none}.rd-im-grid{grid-template-columns:1fr!important;gap:0!important}.rd-section{margin-bottom:10px;padding-top:8px}.rd-section h2{font-size:13px;margin:0 0 4px}.rd-ingredient-row{padding:2px 0;gap:8px}.rd-ingredient-header{padding:6px 0 2px;font-size:10px}.rd-ing-qty{min-width:46px;font-size:11px}.rd-ing-name{font-size:11px}.rd-ing-notes{font-size:10px}.rd-ing-cost{min-width:40px;font-size:11px}.rd-component-row{padding:3px 6px;margin-bottom:2px}.rd-text{font-size:11px;line-height:1.4}}@media (max-width: 700px){.rd-page{padding:20px 20px 48px}.rd-name{font-size:22px}}.inventory-container{padding:20px;max-width:1200px;margin:0 auto}.inventory-container h1{margin-bottom:20px;font-size:28px;font-weight:600}.inventory-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;padding:12px;margin-bottom:16px}.inventory-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.season-toggle{display:flex;gap:8px;align-items:center}.season-toggle span{font-weight:600;font-size:14px}.season-toggle button{padding:6px 16px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.season-toggle button.active{background:#06c;color:#fff;border-color:#06c}.season-toggle button:hover{border-color:#06c}.inventory-empty{text-align:center;padding:40px 20px;background:#f9f9f9;border-radius:8px;border:1px dashed #ddd}.inventory-empty p{color:#666;margin-bottom:16px;font-size:14px}.btn-add-location{background:#06c;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500}.btn-add-location:hover{background:#0052a3}.new-location-form{display:flex;gap:8px;margin-top:16px;justify-content:center}.new-location-form input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;flex:1;max-width:300px}.new-location-form button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.new-location-form button:first-of-type{background:#06c;color:#fff}.new-location-form button:first-of-type:hover{background:#0052a3}.new-location-form button:last-of-type{background:#f0f0f0;color:#333;border:1px solid #ddd}.new-location-form button:last-of-type:hover{background:#e0e0e0}.locations-nav{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;align-items:center}.locations-nav button{padding:8px 16px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.locations-nav button:hover{border-color:#06c;color:#06c}.locations-nav button.active{background:#06c;color:#fff;border-color:#06c}.storage-nav{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;align-items:center}.storage-nav button{padding:8px 16px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.storage-nav button:hover{border-color:#06c;color:#06c}.storage-nav button.active{background:#06c;color:#fff;border-color:#06c}.step-section{margin-bottom:30px;padding-bottom:24px;border-bottom:1px solid #eee}.step-section:last-child{border-bottom:none}.step-section h3{font-size:16px;font-weight:600;margin-bottom:12px;color:#333}.location-inventory{background:#fff;border:1px solid #ddd;border-radius:8px;padding:20px}.location-inventory h2{margin-bottom:16px;font-size:20px;font-weight:600}.no-ingredients{color:#999;text-align:center;padding:30px;font-size:14px}.inventory-table{width:100%;border-collapse:collapse;font-size:14px}.inventory-table thead{background:#f9f9f9;border-bottom:2px solid #ddd}.inventory-table th{padding:12px;text-align:left;font-weight:600;color:#333}.inventory-table td{padding:12px;border-bottom:1px solid #eee}.inventory-table tbody tr:hover{background:#f9f9f9}.btn-log{background:#06c;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500}.btn-log:hover{background:#0052a3}*{box-sizing:border-box}.admin-main{flex:1;padding:32px 40px;background:#f7f7f8;min-height:100vh;overflow-y:auto}.admin-sidebar{width:260px;min-width:260px;background:#1c1c28;display:flex;flex-direction:column;color:#e5e5ea}.admin-sidebar-header{padding:24px 20px 16px}.admin-sidebar-header h1{font-size:17px;font-weight:700;margin:0 0 2px;color:#fff;letter-spacing:-.2px}.admin-sidebar-header p{font-size:12px;color:#8e8e93;margin:0}.admin-group-switcher{display:flex;gap:4px;padding:8px 16px 16px}.admin-group-tab{flex:1;padding:9px 12px;background:transparent;border:none;border-radius:8px;color:#a0a0ab;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.admin-group-tab:hover{background:#ffffff0f;color:#fff}.admin-group-tab.active{background:#6366f1;color:#fff;box-shadow:0 2px 10px #6366f173}.admin-nav{display:flex;flex-direction:column;gap:2px;padding:0 12px}.admin-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:transparent;border:none;border-radius:8px;color:#c7c7cc;font-size:13.5px;font-weight:500;cursor:pointer;text-align:left;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.admin-nav-item:hover{background:#ffffff0f;color:#fff}.admin-nav-item.active{background:#6366f12e;color:#a5b4fc;font-weight:600}.admin-sidebar-metrics{margin-top:auto;padding:20px 20px 24px;border-top:1px solid rgba(255,255,255,.08)}.asm-heading{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#6b6b76;margin-bottom:14px}.asm-loading{font-size:12px;color:#6b6b76;padding:8px 0}.asm-metric{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06)}.asm-metric:last-child{border-bottom:none}.asm-label{font-size:12.5px;color:#9797a3}.asm-value{font-size:16px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.asm-value-active{color:#4ade80}.admin-placeholder{background:#fff;border-radius:16px;padding:60px 40px;text-align:center;box-shadow:0 1px 3px #0000000f}.admin-placeholder h2{font-size:20px;font-weight:700;color:#1c1c28;margin:0 0 8px}.admin-placeholder p{font-size:14px;color:#6b6b76;margin:0}.admin-header{margin-bottom:28px}.admin-header h1{font-size:30px;font-weight:700;color:#1c1c28;margin:0 0 6px;letter-spacing:-.5px}.admin-header p{font-size:14.5px;color:#6b6b76;margin:0}.admin-filters{background:#fff;border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000000f}.admin-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;align-items:end}.admin-filter-group{display:flex;flex-direction:column;gap:6px}.admin-filter-group label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#8e8e93}.admin-filter-group input,.admin-filter-group select{padding:10px 12px;border:1px solid #e5e5ea;border-radius:10px;font-size:13.5px;font-family:inherit;background:#fafafa;transition:all .15s ease}.admin-filter-group input:focus,.admin-filter-group select:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11f}.admin-filter-group button{padding:10px 16px;border:1px solid #e5e5ea;border-radius:10px;background:#fafafa;color:#1c1c28;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.admin-filter-group button:hover{background:#f0f0f2}.admin-results-summary{font-size:13.5px;color:#6b6b76;margin-bottom:14px}.admin-table-container{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000f}.admin-table{width:100%;border-collapse:collapse;table-layout:fixed}.admin-table thead{background:#fafafa}.admin-table th{padding:14px 20px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8e8e93;border-bottom:1px solid #eeeeef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-table td{padding:16px 20px;font-size:13.5px;color:#1c1c28;border-bottom:1px solid #f2f2f4;vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#fafafa}.admin-table th:nth-child(1),.admin-table td:nth-child(1){width:21%}.admin-table th:nth-child(2),.admin-table td:nth-child(2){width:10%}.admin-table th:nth-child(3),.admin-table td:nth-child(3){width:9%}.admin-table th:nth-child(4),.admin-table td:nth-child(4){width:9%}.admin-table th:nth-child(5),.admin-table td:nth-child(5){width:16%}.admin-table th:nth-child(6),.admin-table td:nth-child(6){width:10%}.admin-table th:nth-child(7),.admin-table td:nth-child(7){width:9%}.admin-table th:nth-child(8),.admin-table td:nth-child(8){width:16%}.admin-org-name{font-weight:600;font-size:13px;line-height:1.35;word-wrap:break-word;overflow-wrap:break-word}.admin-row-mirroring{background:#f5f4fe!important}.admin-mirroring-tag{display:inline-block;margin-left:10px;padding:3px 10px;background:#7f77dd;color:#fff;border-radius:20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;vertical-align:middle}.admin-badge{display:inline-block;padding:4px 11px;border-radius:20px;font-size:11.5px;font-weight:600;text-transform:capitalize}.status-active,.sub-active{background:#dcfce7;color:#166534}.status-trial{background:#fef3c7;color:#92400e}.status-lead{background:#e0e7ff;color:#3730a3}.status-suspended,.sub-canceled,.sub-past_due{background:#fee2e2;color:#991b1b}.admin-actions-cell{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-btn-mirror,.admin-btn-exit-mirror,.admin-btn-manage{padding:8px 16px;border:none;border-radius:20px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;white-space:nowrap}.admin-btn-mirror{background:#eeedfe;color:#3c3489;border:1px solid #CECBF6}.admin-btn-mirror:hover{background:#dedcfb;transform:translateY(-1px)}.admin-btn-exit-mirror{background:#fef2f2;color:#b91c1c}.admin-btn-exit-mirror:hover{background:#fee2e2;transform:translateY(-1px)}.admin-btn-manage{background:#1c1c28;color:#fff}.admin-btn-manage:hover{background:#33333f;transform:translateY(-1px)}.admin-empty{padding:60px 40px;text-align:center;color:#8e8e93;font-size:14px}@media screen and (min-width: 768px) and (max-width: 1024px){.admin-main{padding:20px}.admin-sidebar{width:210px;min-width:210px}.admin-filters-grid{grid-template-columns:repeat(3,1fr);gap:12px}.admin-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{min-width:850px;table-layout:auto}.admin-table th,.admin-table td{padding:12px 10px;font-size:12.5px}.admin-actions-cell{flex-direction:column;align-items:stretch;gap:6px}.admin-btn-mirror,.admin-btn-exit-mirror,.admin-btn-manage{padding:6px 12px;font-size:11.5px;text-align:center}}@media screen and (max-width: 1199px){.admin-main{padding:20px!important}.admin-sidebar{width:200px!important;min-width:200px!important}.admin-filters-grid{grid-template-columns:repeat(3,1fr)!important;gap:12px!important}.admin-table-container{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;width:100%!important}.admin-table{min-width:900px!important;table-layout:auto!important}.admin-table th,.admin-table td{padding:10px 8px!important;font-size:12px!important;white-space:nowrap!important}.admin-actions-cell{flex-direction:column!important;align-items:stretch!important;gap:4px!important}.admin-btn-mirror,.admin-btn-exit-mirror,.admin-btn-manage{padding:6px 10px!important;font-size:11px!important;text-align:center!important}}| @media screen and (max-width: 1199px){.admin-main{padding:20px!important}.admin-sidebar{width:200px!important;min-width:200px!important}.admin-filters-grid{grid-template-columns:repeat(3,1fr)!important;gap:12px!important}.admin-table-container{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;width:100%!important}.admin-table{min-width:900px!important;table-layout:auto!important}.admin-table th,.admin-table td{padding:10px 8px!important;font-size:12px!important;white-space:nowrap!important}.admin-actions-cell{flex-direction:column!important;align-items:stretch!important;gap:4px!important}.admin-btn-mirror,.admin-btn-exit-mirror,.admin-btn-manage{padding:6px 10px!important;font-size:11px!important;text-align:center!important}}.platform-view-banner{position:sticky;top:0;z-index:500;display:flex;align-items:center;gap:10px;padding:8px 24px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#495057;font-size:13px}.pv-dot{width:8px;height:8px;border-radius:50%;background:#28a745;flex-shrink:0}.pv-text strong{color:#212529;font-weight:700}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.recipe-import-container{max-width:800px;margin:0 auto}.file-upload-area{border:2px dashed var(--border-strong);border-radius:8px;background:var(--surface-2);padding:2rem;text-align:center;cursor:pointer;transition:all .2s ease}.file-upload-area:hover{background:var(--surface-1);border-color:var(--fill-accent)}.file-list{display:flex;flex-direction:column;gap:8px;margin:1.5rem 0}.file-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--surface-1);border-radius:var(--radius);font-size:13px}.validation-alert{padding:8px 12px;border-radius:var(--radius);font-size:12px;margin-bottom:8px}.validation-success{background:var(--bg-success);color:var(--text-success)}.validation-warning{background:var(--bg-warning);color:var(--text-warning)}.validation-error{background:var(--bg-danger);color:var(--text-danger)}.validation-info{background:var(--surface-1);color:var(--text-secondary)}.btn{padding:10px 16px;border-radius:var(--radius);cursor:pointer;font-weight:500;font-size:13px;border:none;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:var(--fill-accent);color:var(--on-accent)}.btn-secondary{background:var(--surface-1);color:var(--text-primary);border:.5px solid var(--border)}.public-link-section{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.processing-indicator{text-align:center;padding:2rem}.processing-indicator>div:last-child{font-size:32px;animation:spin 1s linear infinite;margin-top:1rem}.labor-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid #e0e0e0;flex-wrap:wrap}.labor-tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 16px;font-size:14px;font-weight:600;color:#888;cursor:pointer}.labor-tab.active{color:#06c;border-bottom-color:#06c}.labor-tab:hover:not(.active){color:#333}.labor-card{border:1px solid #e0e0e0;border-radius:10px;padding:18px 20px;background:#fff;margin-bottom:16px}.labor-card h3{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#666;margin:0 0 14px}.labor-week-nav{display:flex;align-items:center;gap:12px;margin-bottom:16px}.labor-week-nav button{background:#f4f4f4;border:1px solid #ddd;border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}.labor-week-nav button:hover{background:#ebebeb}.labor-week-label{font-size:15px;font-weight:700;color:#1a1a1a}.labor-week-status{font-size:11px;font-weight:700;text-transform:uppercase;padding:3px 8px;border-radius:12px;letter-spacing:.03em}.labor-week-status.draft{background:#edf2f7;color:#4a5568}.labor-week-status.published{background:#c6f6d5;color:#22543d}.labor-week-status.actuals_entered{background:#e9d8fd;color:#44337a}.labor-grid-wrap{overflow-x:auto}table.labor-grid{width:100%;border-collapse:collapse;font-size:12.5px}table.labor-grid th,table.labor-grid td{border:1px solid #e5e5e5;padding:6px 8px;text-align:left;vertical-align:top;white-space:nowrap}table.labor-grid th{background:#f7f7f7;font-weight:700;color:#444}table.labor-grid td.labor-station-row{background:#f0f4f8;font-weight:700;color:#2d3748}table.labor-grid td.labor-employee-name{font-weight:600;color:#1a1a1a;white-space:normal;min-width:140px}table.labor-grid td.labor-shift-cell{cursor:pointer;min-width:110px}table.labor-grid td.labor-shift-cell:hover{background:#f5faff}table.labor-grid td.labor-shift-cell.off{color:#aaa;font-style:italic}table.labor-grid td.labor-shift-cell.uncovered{background:#fed7d7}table.labor-grid td.labor-total-col{font-weight:700;text-align:right}.labor-coverage-flag{display:inline-block;font-size:11px;font-weight:700;color:#822727;background:#fed7d7;border-radius:4px;padding:2px 6px;margin-left:6px}.labor-status-pill{display:inline-block;font-weight:700;border-radius:6px;padding:3px 10px;font-size:12.5px;border:1px solid transparent}.labor-toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:8px;font-size:13px;font-weight:600;color:#fff;background:#2d3748;z-index:500}.labor-toast.err{background:#c53030}.labor-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:400}.labor-modal{background:#fff;border-radius:12px;padding:24px;width:100%;max-width:460px;max-height:85vh;overflow-y:auto}.labor-modal h3{margin-top:0}.labor-field{margin-bottom:14px}.labor-field label{display:block;font-size:12.5px;font-weight:700;color:#555;margin-bottom:4px}.labor-field input,.labor-field select,.labor-field textarea{width:100%;padding:8px 10px;border:1px solid #d5d5d5;border-radius:6px;font-size:14px;box-sizing:border-box}.labor-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.labor-btn{padding:8px 16px;border-radius:6px;border:1px solid #ddd;background:#f4f4f4;cursor:pointer;font-size:13.5px;font-weight:600}.labor-btn.primary{background:#06c;border-color:#06c;color:#fff}.labor-btn.danger{background:#c53030;border-color:#c53030;color:#fff}.labor-roster-list{list-style:none;margin:0;padding:0}.labor-roster-row{display:flex;align-items:center;justify-content:space-between;padding:10px 4px;border-bottom:1px solid #eee;font-size:13.5px}.labor-roster-row:last-child{border-bottom:none}.labor-roster-stations{color:#888;font-size:12px}.labor-print-only{display:none}@media print{.labor-no-print{display:none!important}.labor-print-only{display:block}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2c3e50;--secondary: #e74c3c;--accent: #f39c12;--success: #27ae60;--danger: #c0392b;--text-dark: #2c3e50;--text-light: #7f8c8d;--bg-light: #ecf0f1;--bg-white: #ffffff;--border: #bdc3c7;--shadow: 0 2px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .15);--surface-0: #FBF7F2;--surface-1: #FFFFFF;--surface-2: #F3EBE0;--text-primary: #2C1E14;--text-secondary: #8A7565;--text-accent: #B8560F;--fill-accent: #D85A30;--on-accent: #FFFFFF;--radius: 10px;--bg-warning: #FFF4E5;--fill-warning: #D85A30;--text-warning: #822C15}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color:var(--text-dark);background-color:var(--bg-light);line-height:1.6}.app{display:flex;flex-direction:column;min-height:100vh}.app-container{display:flex;flex:1}.navbar{display:flex;justify-content:space-between;align-items:center;background-color:var(--primary);color:#fff;padding:1rem 2rem;box-shadow:var(--shadow)}.nav-left h1{font-size:1.8rem;font-weight:700;margin-bottom:.25rem}.nav-left .subtitle{font-size:.85rem;opacity:.8;font-weight:400}.nav-right{display:flex;align-items:center;gap:1.5rem}.user-email{font-size:.95rem}.btn-logout{background-color:var(--secondary);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:600;transition:background-color .3s ease}.btn-logout:hover{background-color:#c0392b}.sidebar{width:240px;background-color:#fff;border-right:1px solid var(--border);padding:1rem 0;box-shadow:var(--shadow)}.menu{list-style:none}.menu-item{width:100%;padding:1rem 1.5rem;border:none;background:none;cursor:pointer;font-size:1rem;color:var(--text-dark);text-align:left;transition:all .3s ease;border-left:4px solid transparent}.menu-item:hover{background-color:var(--bg-light);color:var(--secondary)}.menu-item.active{background-color:var(--bg-light);color:var(--secondary);border-left-color:var(--secondary);font-weight:600}.content{flex:1;padding:2rem;overflow-y:auto}.content h2{color:var(--primary);margin-bottom:1rem;font-size:1.5rem}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;gap:1rem}.spinner{width:40px;height:40px;border:4px solid var(--bg-light);border-top-color:var(--secondary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-primary{background-color:var(--secondary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;transition:background-color .3s ease}.btn-primary:hover:not(:disabled){background-color:#c0392b}.btn-primary:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){html,body{overflow-x:hidden!important;width:100%!important}.app-container{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border);padding:.5rem 0}.menu-item{padding:.75rem 1rem;font-size:.9rem}.navbar{flex-direction:column;gap:1rem;padding:1rem}.nav-left,.nav-right{width:100%;flex-direction:column;align-items:flex-start}.nav-right{gap:.5rem}.content{padding:1rem}div[role=dialog],.modal,.modal-content,div[class*=modal],div[class*=dialog]{width:94vw!important;max-width:94vw!important;max-height:88vh!important;margin:10px auto!important;overflow-y:auto!important;padding:1rem!important;box-sizing:border-box!important}input,select,textarea{width:100%!important;max-width:100%!important;box-sizing:border-box!important;font-size:16px!important}table{display:block!important;width:100%!important;overflow-x:auto!important;white-space:nowrap!important;-webkit-overflow-scrolling:touch}}@media (min-width: 769px) and (max-width: 1024px){.sidebar{width:200px}.content{padding:1.5rem}div[role=dialog],.modal,.modal-content{width:85vw!important;max-width:680px!important}}@media (max-width: 1440px){.app-top-nav{padding-left:14px!important;padding-right:14px!important}.app-nav-links{gap:2px!important}.app-nav-btn{padding:8px 9px!important;font-size:13.5px!important;gap:6px!important}}@media (max-width: 1180px){.app-nav-btn{padding:8px 7px!important;font-size:13px!important}}
