:root{--primary: #4CAF50;--primary-dark: #388E3C;--secondary: #2196F3;--danger: #f44336;--warning: #ff9800;--success: #4CAF50;--gray-100: #f5f5f5;--gray-200: #eeeeee;--gray-300: #e0e0e0;--gray-500: #9e9e9e;--gray-700: #616161;--gray-900: #212121;--white: #ffffff;--shadow: 0 2px 4px rgba(0,0,0,.1);--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--gray-100);color:var(--gray-900);line-height:1.5}.app{min-height:100vh}.main-content{padding:70px 16px 80px;max-width:1200px;margin:0 auto}.navbar{position:fixed;top:0;left:0;right:0;height:56px;background:var(--white);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:100}.navbar-brand a{font-size:1.25rem;font-weight:700;color:var(--primary);text-decoration:none}.navbar-menu{display:flex;align-items:center;gap:16px}.navbar-greeting{color:var(--gray-700);font-size:.875rem}.navbar-link{color:var(--gray-700);text-decoration:none;font-size:.875rem}.navbar-link:hover{color:var(--primary)}.admin-link{color:var(--secondary);font-weight:500}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--white);box-shadow:0 -2px 4px #0000001a;display:flex;justify-content:space-around;align-items:center;z-index:100}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--gray-500);padding:8px;transition:color .2s}.bottom-nav-item.active{color:var(--primary)}.nav-icon{font-size:1.5rem}.nav-label{font-size:.75rem;margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--secondary);color:var(--white)}.btn-outline{background:transparent;border:1px solid var(--gray-300);color:var(--gray-700)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-danger{background:var(--danger);color:var(--white)}.btn-sm{padding:6px 12px;font-size:.75rem}.btn-block{width:100%}.btn-large{padding:14px 28px;font-size:1rem}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--gray-700);font-size:.875rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.input-disabled{background:var(--gray-200);color:var(--gray-500)}.form-hint{display:block;margin-top:4px;font-size:.75rem;color:var(--gray-500)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%)}.auth-card{background:var(--white);border-radius:16px;padding:32px;width:100%;max-width:400px;box-shadow:0 4px 20px #00000026}.auth-card-wide{max-width:600px}.auth-header{text-align:center;margin-bottom:24px}.auth-header h1{color:var(--primary);margin-bottom:4px}.auth-header p{color:var(--gray-500)}.auth-footer{text-align:center;margin-top:20px;font-size:.875rem;color:var(--gray-500)}.auth-footer a{color:var(--primary)}.food-preferences-grid{display:flex;flex-wrap:wrap;gap:8px}.preference-chip{padding:8px 16px;border:1px solid var(--gray-300);border-radius:20px;background:var(--white);cursor:pointer;font-size:.875rem;transition:all .2s}.preference-chip.selected{background:var(--primary);color:var(--white);border-color:var(--primary)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header h1{font-size:1.5rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.dashboard-card{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.dashboard-card h3{margin-bottom:12px;font-size:1rem;color:var(--gray-700)}.warning-card{border-left:4px solid var(--warning)}.ai-card{border-left:4px solid var(--secondary)}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-action-btn{padding:8px 16px;background:var(--gray-100);border-radius:var(--radius);text-decoration:none;color:var(--gray-700);font-size:.875rem}.quick-action-btn:hover{background:var(--primary);color:var(--white)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-item{text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--primary)}.stat-label{font-size:.75rem;color:var(--gray-500)}.card-link{display:block;margin-top:12px;color:var(--primary);text-decoration:none;font-size:.875rem}.filter-bar{margin-bottom:16px}.filter-bar select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.inventory-grid{display:grid;gap:16px}.inventory-category{background:var(--white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.inventory-category h3{text-transform:capitalize;margin-bottom:12px;color:var(--gray-700)}.ingredient-list{list-style:none}.ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--gray-200)}.ingredient-item:last-child{border-bottom:none}.quantity-controls{display:flex;gap:4px}.qty-btn{padding:4px 8px;border:1px solid var(--gray-300);background:var(--white);border-radius:4px;font-size:.75rem;cursor:pointer;text-transform:capitalize}.qty-btn.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.btn-delete{padding:4px 8px;border:none;background:var(--danger);color:var(--white);border-radius:4px;cursor:pointer;margin-left:8px}.staple-badge{font-size:.625rem;background:var(--warning);color:var(--white);padding:2px 6px;border-radius:10px;margin-left:8px}.search-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.search-bar input{flex:1;min-width:200px;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.search-bar select{padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.recipe-card{background:var(--white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);position:relative}.recipe-link{text-decoration:none;color:inherit}.recipe-card h3{margin-bottom:8px;color:var(--gray-900)}.recipe-description{color:var(--gray-500);font-size:.875rem;margin-bottom:8px}.recipe-meta{display:flex;gap:12px;font-size:.75rem;color:var(--gray-500)}.complexity-badge{text-transform:capitalize;padding:2px 8px;border-radius:10px;font-size:.75rem}.complexity-badge.easy{background:#e8f5e9;color:#2e7d32}.complexity-badge.medium{background:#fff3e0;color:#ef6c00}.complexity-badge.hard{background:#ffebee;color:#c62828}.recipe-tags{display:flex;gap:6px;margin-top:8px}.tag{font-size:.75rem;padding:2px 8px;background:var(--gray-100);border-radius:10px}.btn-delete-recipe{position:absolute;top:8px;right:8px;padding:4px 8px;font-size:.75rem;background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:4px;cursor:pointer}.recipe-content{background:var(--white);border-radius:var(--radius);padding:20px}.recipe-meta-row{display:flex;gap:16px;margin-bottom:16px;color:var(--gray-500);font-size:.875rem}.servings-control{display:flex;align-items:center;gap:12px;margin:16px 0;padding:12px;background:var(--gray-100);border-radius:var(--radius)}.servings-control button{width:32px;height:32px;border:1px solid var(--gray-300);background:var(--white);border-radius:50%;cursor:pointer;font-size:1.25rem}.ingredients-section,.instructions-section{margin:24px 0}.ingredients-list,.instructions-list{padding-left:20px}.ingredients-list li,.instructions-list li{margin-bottom:8px}.prep-note{color:var(--gray-500);font-style:italic}.recipe-actions{margin-top:24px;text-align:center}.feedback-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.feedback-content{background:var(--white);padding:24px;border-radius:var(--radius);text-align:center}.rating-buttons{display:flex;gap:8px;justify-content:center;margin:16px 0}.rating-btn{padding:8px 12px;border:1px solid var(--gray-300);background:var(--white);border-radius:var(--radius);cursor:pointer}.rating-btn:hover{background:var(--gray-100)}.mode-toggle{display:flex;gap:8px;margin-bottom:20px}.mode-btn{flex:1;padding:12px;border:1px solid var(--gray-300);background:var(--white);cursor:pointer;border-radius:var(--radius)}.mode-btn.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.upload-box{border:2px dashed var(--gray-300);padding:40px;text-align:center;border-radius:var(--radius)}.recipe-form{background:var(--white);padding:20px;border-radius:var(--radius)}.form-section{margin:24px 0}.form-section h3{margin-bottom:12px}.ingredient-row,.instruction-row{display:flex;gap:8px;margin-bottom:8px}.ingredient-row input{flex:1}.instruction-row{align-items:flex-start}.step-number{font-weight:700;margin-top:10px}.instruction-row textarea{flex:1}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.calendar-day{background:var(--white);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.calendar-day h3{font-size:.875rem;margin-bottom:8px;color:var(--gray-700)}.meal-slot{margin:8px 0;padding:8px;background:var(--gray-100);border-radius:4px}.meal-type{text-transform:capitalize;font-size:.75rem;color:var(--gray-500);display:block;margin-bottom:4px}.planned-meal{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.875rem}.btn-remove{background:none;border:none;color:var(--danger);cursor:pointer}.meal-slot select{width:100%;margin-top:4px;padding:4px;font-size:.75rem}.view-toggle{display:flex;gap:4px}.view-toggle button{padding:6px 12px;border:1px solid var(--gray-300);background:var(--white);cursor:pointer;font-size:.75rem}.view-toggle button.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.shopping-group{background:var(--white);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.shopping-group h3{text-transform:capitalize;margin-bottom:12px}.shopping-items{list-style:none}.shopping-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--gray-200);cursor:pointer}.shopping-item.purchased{opacity:.5;text-decoration:line-through}.item-checkbox{font-size:1.25rem}.item-quantity{color:var(--gray-500);font-size:.875rem;margin-left:auto}.list-stats{text-align:center;padding:16px;color:var(--gray-500)}.tab-bar{display:flex;gap:8px;margin-bottom:16px}.tab-bar button{flex:1;padding:12px;border:1px solid var(--gray-300);background:var(--white);cursor:pointer;border-radius:var(--radius)}.tab-bar button.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.history-list,.favorites-list{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.history-item,.favorite-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--gray-200)}.history-title,.favorite-title{color:var(--gray-900);text-decoration:none;font-weight:500}.history-date{font-size:.75rem;color:var(--gray-500)}.favorite-stats{display:flex;gap:16px;font-size:.75rem;color:var(--gray-500)}.enjoyment-badge{font-size:.75rem;padding:2px 8px;border-radius:10px}.enjoyment-badge.loved_it{background:#e8f5e9;color:#2e7d32}.enjoyment-badge.liked_it{background:#e3f2fd;color:#1565c0}.enjoyment-badge.okay{background:#fff3e0;color:#ef6c00}.enjoyment-badge.not_great{background:#fce4ec;color:#c2185b}.enjoyment-badge.didnt_like{background:#ffebee;color:#c62828}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.admin-card{background:var(--white);border-radius:var(--radius);padding:20px;text-align:center;box-shadow:var(--shadow)}.stat-big{font-size:2.5rem;font-weight:700;color:var(--primary)}.admin-table{width:100%;background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border-collapse:collapse}.admin-table th,.admin-table td{padding:12px;text-align:left;border-bottom:1px solid var(--gray-200)}.admin-table th{background:var(--gray-100);font-weight:500}.role-badge{padding:2px 8px;border-radius:10px;font-size:.75rem}.role-badge.admin{background:#e3f2fd;color:#1565c0}.role-badge.user{background:var(--gray-200)}.status-badge{padding:2px 8px;border-radius:10px;font-size:.75rem}.status-badge.active{background:#e8f5e9;color:#2e7d32}.status-badge.inactive{background:#ffebee;color:#c62828}.status-badge.pending{background:#fff3e0;color:#ef6c00}.status-badge.accepted{background:#e8f5e9;color:#2e7d32}.invite-form{margin-bottom:20px}.invite-form .form-row{display:flex;gap:8px}.invite-form input{flex:1;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--gray-500)}.loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:70px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:var(--radius);background:var(--gray-900);color:var(--white);font-size:.875rem;cursor:pointer;animation:slideIn .3s ease}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}.toast-warning{background:var(--warning)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.empty-state{text-align:center;padding:40px 20px;color:var(--gray-500)}.empty-message{text-align:center;padding:20px;color:var(--gray-500)}.parse-prompt{background:var(--gray-100);padding:16px;border-radius:var(--radius);margin:16px 0}@media (max-width: 768px){.form-row{flex-direction:column}.navbar-greeting{display:none}.search-bar{flex-direction:column}.search-bar input{min-width:100%}.admin-table{font-size:.875rem}.admin-table th,.admin-table td{padding:8px}}
