.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#f5f5f5,#e0e0e0)}.error-boundary__container{max-width:600px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;padding:40px;text-align:center}.error-boundary__icon{font-size:64px;margin-bottom:20px;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-boundary__title{font-size:28px;font-weight:700;color:#333;margin:0 0 12px}.error-boundary__message{font-size:16px;color:#666;line-height:1.6;margin:0 0 30px}.error-boundary__details{text-align:left;margin:20px 0;padding:15px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer}.error-boundary__details summary{font-weight:600;color:#d32f2f;margin-bottom:10px;-webkit-user-select:none;user-select:none}.error-boundary__details[open] summary{margin-bottom:15px}.error-boundary__stack{font-family:Courier New,monospace;font-size:12px;color:#666;background:#fff;padding:12px;border-radius:4px;overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-word}.error-boundary__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.error-boundary__actions .btn{padding:12px 24px;font-size:15px;font-weight:600;border-radius:8px;border:none;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s}.error-boundary__actions .btn-primary{background:#2c5f2d;color:#fff}.error-boundary__actions .btn-primary:hover{background:#235023;transform:translateY(-2px);box-shadow:0 4px 12px #2c5f2d4d}.error-boundary__actions .btn-outline{background:#fff;color:#2c5f2d;border:2px solid #2c5f2d}.error-boundary__actions .btn-outline:hover{background:#f5f5f5;transform:translateY(-2px)}@media (max-width: 600px){.error-boundary__container{padding:30px 20px}.error-boundary__title{font-size:24px}.error-boundary__actions{flex-direction:column}.error-boundary__actions .btn{width:100%}}.toast-container{position:fixed;bottom:var(--space-4);left:var(--space-4);right:var(--space-4);z-index:9999;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}@media (min-width: 640px){.toast-container{top:var(--space-4);bottom:auto;left:auto;right:var(--space-4);max-width:400px}}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-white);box-shadow:var(--shadow-lg);pointer-events:auto;cursor:pointer;animation:toast-slide-in .3s ease-out;min-height:56px}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 640px){@keyframes toast-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}}.toast__icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0}.toast__message{flex:1;font-size:var(--text-body-sm);color:var(--text-primary);line-height:1.4}.toast__dismiss{background:none;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;padding:var(--space-1);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.toast--success{border-left:4px solid var(--color-success)}.toast--success .toast__icon{background:var(--color-success);color:#fff}.toast--error{border-left:4px solid var(--color-error)}.toast--error .toast__icon{background:var(--color-error);color:#fff}.toast--warning{border-left:4px solid var(--color-warning)}.toast--warning .toast__icon{background:var(--color-warning);color:#fff}.toast--info{border-left:4px solid var(--color-info)}.toast--info .toast__icon{background:var(--color-info);color:#fff}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--color-white);border-top:1px solid var(--color-gray-200);display:flex;justify-content:space-around;padding:var(--space-1) 0;padding-bottom:calc(var(--space-1) + env(safe-area-inset-bottom,0));z-index:100}@media (min-width: 1024px){.bottom-nav{display:none}}.bottom-nav__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);min-width:64px;min-height:48px;text-decoration:none;color:var(--text-secondary);transition:color var(--transition-fast);position:relative}.bottom-nav__item:hover,.bottom-nav__item.active{color:var(--color-primary);text-decoration:none}.bottom-nav__icon{font-size:1.5rem;line-height:1}.bottom-nav__label{font-size:var(--text-caption);font-weight:var(--font-weight-medium)}.bottom-nav__badge{position:absolute;top:var(--space-1);right:var(--space-2);background:var(--color-accent);color:#fff;font-size:10px;font-weight:var(--font-weight-bold);min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}.bottom-nav--guest{justify-content:center;gap:var(--space-6)}.bottom-nav__item--cta{background:var(--color-primary);color:#fff!important;border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4)}.bottom-nav__item--cta:hover,.bottom-nav__item--cta.active{color:#fff!important;background:var(--color-primary-dark, #16a34a)}.token-modal{background:var(--color-white);width:100%;max-width:420px;max-height:90vh;overflow-y:auto;border-radius:var(--radius-xl);padding:var(--space-6);position:relative;animation:modal-scale .2s ease-out}.token-modal__close{position:absolute;top:var(--space-4);right:var(--space-4);background:var(--color-gray-100);border:none;width:36px;height:36px;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.token-modal__header{text-align:center;margin-bottom:var(--space-4)}.token-modal__icon{font-size:3rem;display:block;margin-bottom:var(--space-2)}.token-modal__header h2{font-size:var(--text-h3);margin-bottom:var(--space-1)}.token-modal__header p{color:var(--text-secondary);font-size:var(--text-body-sm)}.token-modal__test-badge{display:inline-block;margin-top:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--color-warning);color:var(--color-gray-900);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:var(--font-weight-semibold)}.token-modal__balance{text-align:center;padding:var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-body-sm)}.token-modal__balance strong{color:var(--color-primary)}.token-modal__bundles{display:flex;flex-direction:column;gap:var(--space-3)}.token-bundle{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-gray-50);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;text-align:left}.token-bundle:hover{border-color:var(--color-primary);background:var(--color-white)}.token-bundle--popular{background:var(--color-white);border-color:var(--color-primary);box-shadow:var(--shadow-md)}.token-bundle__badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--color-primary);color:#fff;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-weight-semibold);white-space:nowrap}.token-bundle__discount{position:absolute;top:var(--space-2);right:var(--space-2);background:var(--color-success);color:#fff;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-semibold)}.token-bundle__tokens{flex:1}.token-bundle__count{font-size:var(--text-h3);font-weight:var(--font-weight-bold);color:var(--text-primary)}.token-bundle__label{font-size:var(--text-body-sm);color:var(--text-secondary);margin-left:var(--space-1)}.token-bundle__price{font-size:var(--text-h4);font-weight:var(--font-weight-bold);color:var(--color-primary)}.token-bundle__per{font-size:var(--text-caption);color:var(--text-muted);min-width:60px;text-align:right}.token-bundle__loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;font-size:var(--text-body-sm);color:var(--text-secondary);border-radius:var(--radius-lg)}.token-modal__info{margin-top:var(--space-4);text-align:center;font-size:var(--text-caption);color:var(--text-muted)}.top-nav{display:none}@media (min-width: 1024px){.top-nav{display:block;background:var(--color-white);border-bottom:1px solid var(--color-gray-200);position:sticky;top:0;z-index:100}}.top-nav__container{max-width:1400px;margin:0 auto;padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between;height:64px}.top-nav__brand{display:flex;align-items:center}.top-nav__logo{height:36px;width:auto;cursor:pointer}.top-nav__links{display:flex;gap:var(--space-2)}.top-nav__link{padding:var(--space-2) var(--space-4);color:var(--text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-base)}.top-nav__link:hover{color:var(--text-primary);background:var(--color-gray-50);text-decoration:none}.top-nav__link.active{color:var(--color-primary);background:var(--color-gray-100)}.top-nav__actions{display:flex;align-items:center;gap:var(--space-4)}.top-nav__tokens{background:linear-gradient(135deg,var(--color-accent),var(--color-highlight));color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);font-size:var(--text-body-sm);border:none;cursor:pointer;display:flex;align-items:center;gap:var(--space-1)}.top-nav__token-icon{color:gold;font-size:.75rem}.top-nav__profile{text-decoration:none}.top-nav__avatar{width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--text-body-sm)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-body-sm);min-height:32px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-secondary-dark) 0%,var(--color-primary) 100%);padding:var(--space-4)}.auth-container{width:100%;max-width:400px}.auth-back-link{display:inline-block;color:#fff;text-decoration:none;font-weight:var(--font-weight-medium);margin-bottom:var(--space-4);opacity:.9;transition:opacity .2s}.auth-back-link:hover{opacity:1}.auth-header{text-align:center;margin-bottom:var(--space-8)}.auth-logo{width:180px;margin:0 auto}.auth-card{background:var(--color-white);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-xl)}.auth-form h2{text-align:center;color:var(--text-primary);margin-bottom:var(--space-6)}.auth-form .form-group{margin-bottom:var(--space-4)}.auth-form .btn-full{width:100%;margin-top:var(--space-4)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-body-sm)}.alert-error{background-color:#fee2e2;color:#dc2626;border:1px solid #FECACA}.alert-success{background-color:#d1fae5;color:#059669;border:1px solid #A7F3D0}.auth-switch{text-align:center;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-gray-200)}.auth-switch p{color:var(--text-secondary);font-size:var(--text-body-sm)}.btn-link{background:none;border:none;color:var(--color-highlight);cursor:pointer;font-weight:var(--font-weight-semibold);padding:0;text-decoration:none}.btn-link:hover{text-decoration:underline}.auth-footer{text-align:center;margin-top:var(--space-6)}.auth-footer p{color:var(--color-gray-300)}.confirmation-message{text-align:center;padding:var(--space-4) 0}.confirmation-icon{font-size:3rem;margin-bottom:var(--space-4)}.confirmation-message h2{color:var(--text-primary);margin-bottom:var(--space-3)}.confirmation-message p{color:var(--text-secondary);margin-bottom:var(--space-6);line-height:1.6}.confirmation-message strong{color:var(--text-primary)}.tutorial-tooltip{max-width:360px;border-radius:var(--radius-lg, 12px);padding:0;box-shadow:0 20px 60px #00000040;font-family:inherit;overflow:hidden}.tutorial-tooltip__header{background:linear-gradient(135deg,var(--color-primary, #2c5f2d),var(--color-accent, #97bc62));padding:16px 20px 12px;color:#fff}.tutorial-tooltip__step{font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.8;margin-bottom:4px}.tutorial-tooltip__title{font-size:16px;font-weight:700;margin:0}.tutorial-tooltip__body{padding:16px 20px;background:#fff;color:var(--text-primary, #1a1a2e)}.tutorial-tooltip__content{font-size:14px;line-height:1.5;color:var(--text-secondary, #555);margin:0}.tutorial-tooltip__footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 16px;background:#fff}.tutorial-tooltip__skip{background:none;border:none;color:var(--text-muted, #999);font-size:13px;cursor:pointer;padding:6px 0;transition:color .2s}.tutorial-tooltip__skip:hover{color:var(--text-primary, #1a1a2e)}.tutorial-tooltip__actions{display:flex;gap:8px}.tutorial-tooltip__btn{padding:8px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.tutorial-tooltip__btn--back{background:var(--color-gray-100, #f0f0f0);color:var(--text-secondary, #555)}.tutorial-tooltip__btn--back:hover{background:var(--color-gray-200, #e0e0e0)}.tutorial-tooltip__btn--next{background:var(--color-primary, #2c5f2d);color:#fff}.tutorial-tooltip__btn--next:hover{background:var(--color-primary-dark, #1e4420);transform:translateY(-1px);box-shadow:0 4px 12px #2c5f2d4d}.tutorial-tooltip__progress{display:flex;gap:6px;justify-content:center;padding:0 20px 12px;background:#fff}.tutorial-tooltip__dot{width:6px;height:6px;border-radius:50%;background:var(--color-gray-200, #e0e0e0);transition:all .3s}.tutorial-tooltip__dot.active{background:var(--color-primary, #2c5f2d);width:18px;border-radius:3px}.tutorial-tooltip__dot.completed{background:var(--color-accent, #97bc62)}.__floater.__floater--open{z-index:10001!important}html.tutorial-active,html.tutorial-active body{overflow-x:hidden!important}.react-joyride__spotlight{border-radius:12px!important}.react-joyride__beacon{animation:tutorialPulse 2s infinite!important}@keyframes tutorialPulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}to{transform:scale(1);opacity:1}}.admin-layout{display:flex;min-height:100vh;background:var(--color-gray-50)}.admin-sidebar{width:260px;background:var(--color-gray-900);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.admin-sidebar__header{padding:var(--space-5);border-bottom:1px solid var(--color-gray-700)}.admin-sidebar__header h2{margin:0;font-size:var(--text-h4)}.admin-sidebar__nav{flex:1;padding:var(--space-4) 0;overflow-y:auto}.admin-sidebar__link{display:block;padding:var(--space-3) var(--space-5);color:var(--color-gray-300);text-decoration:none;transition:all var(--transition-base);font-size:var(--text-body)}.admin-sidebar__link:hover{background:var(--color-gray-800);color:#fff}.admin-sidebar__link.active{background:var(--color-primary);color:#fff;font-weight:var(--font-weight-semibold)}.admin-sidebar__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-gray-700)}.admin-sidebar__back{color:var(--color-gray-400);text-decoration:none;font-size:var(--text-body-sm)}.admin-sidebar__back:hover{color:#fff}.admin-main{flex:1;margin-left:260px;display:flex;flex-direction:column}.admin-header{padding:var(--space-5) var(--space-6);background:#fff;border-bottom:1px solid var(--color-gray-200);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}.admin-header h1{margin:0;font-size:var(--text-h3);color:var(--color-gray-900)}.admin-header__user{color:var(--color-gray-500);font-size:var(--text-body-sm)}.admin-content{flex:1;padding:var(--space-6)}.admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--space-4)}.admin-loading__spinner{width:40px;height:40px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1024px){.admin-sidebar{width:200px}.admin-main{margin-left:200px}}@media (max-width: 768px){.admin-sidebar{position:relative;width:100%;height:auto}.admin-sidebar__nav{display:flex;flex-wrap:wrap;padding:var(--space-2)}.admin-sidebar__link{padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}.admin-sidebar__footer{display:none}.admin-main{margin-left:0}.admin-layout{flex-direction:column}.admin-content{padding:var(--space-4);padding-bottom:calc(100px + env(safe-area-inset-bottom,0))}}.skeleton{background:linear-gradient(90deg,var(--color-gray-200) 25%,var(--color-gray-100) 50%,var(--color-gray-200) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-card{background:var(--color-white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.skeleton-card__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-card__meta{display:flex;gap:var(--space-4);margin-top:var(--space-2)}.skeleton-recipe-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media (min-width: 640px){.skeleton-recipe-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.skeleton-recipe-grid{grid-template-columns:repeat(3,1fr)}}.admin-dashboard{display:flex;flex-direction:column;gap:var(--space-6)}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.admin-stat-card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-5);display:flex;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-100)}.admin-stat-card--primary{background:linear-gradient(135deg,#36622b,#0e4002);color:#fff;border:none}.admin-stat-card__icon{font-size:2rem}.admin-stat-card__icon--revenue{background:#fff3;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.admin-stat-card__content{display:flex;flex-direction:column}.admin-stat-card__value{font-size:var(--text-h3);font-weight:var(--font-weight-bold)}.admin-stat-card--primary .admin-stat-card__value,.admin-stat-card--primary .admin-stat-card__label{color:#fff!important;opacity:1!important}.admin-stat-card__label{font-size:var(--text-body-sm);color:var(--text-secondary)}.admin-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.admin-section{background:#fff;border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-100)}.admin-section h3{margin:0 0 var(--space-4);font-size:var(--text-body);font-weight:var(--font-weight-semibold);color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.5px}.admin-status-list{display:flex;flex-direction:column;gap:var(--space-2)}.admin-status-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0}.admin-status-badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-weight-medium);text-transform:capitalize}.admin-status-badge--pending{background:#fef3c7;color:#92400e}.admin-status-badge--paid{background:#dbeafe;color:#1e40af}.admin-status-badge--preparing{background:#ede9fe;color:#5b21b6}.admin-status-badge--ready{background:#d1fae5;color:#065f46}.admin-status-badge--delivered{background:#e5e7eb;color:#374151}.admin-status-badge--cancelled{background:#fee2e2;color:#991b1b}.admin-status-count{font-weight:var(--font-weight-semibold);color:var(--color-gray-900)}.admin-tier-list,.admin-revenue-list{display:flex;flex-direction:column;gap:var(--space-3)}.admin-tier-item,.admin-revenue-item{display:flex;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid var(--color-gray-100)}.admin-tier-item:last-child,.admin-revenue-item:last-child{border-bottom:none}.admin-tier-item span:last-child,.admin-revenue-item span:last-child{font-weight:var(--font-weight-semibold)}.admin-quick-stats{display:flex;gap:var(--space-4)}.admin-quick-stat{flex:1;text-align:center}.admin-quick-stat__value{display:block;font-size:var(--text-h4);font-weight:var(--font-weight-bold);color:var(--color-primary)}.admin-quick-stat__label{font-size:var(--text-caption);color:var(--color-gray-500)}.admin-error{padding:var(--space-6);text-align:center;color:var(--color-error);background:var(--color-error-light);border-radius:var(--radius-lg)}.admin-users{display:flex;flex-direction:column;gap:var(--space-4)}.admin-users__filters{display:flex;gap:var(--space-3);background:#fff;padding:var(--space-4);border-radius:var(--radius-lg)}.admin-users__filters input{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-md)}.admin-users__filters select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-md)}.admin-users__table-wrapper{background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.admin-users__table{width:100%;border-collapse:collapse}.admin-users__table th,.admin-users__table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-gray-100)}.admin-users__table th{background:var(--color-gray-50);font-weight:var(--font-weight-semibold);font-size:var(--text-body-sm);color:var(--color-gray-600)}.admin-users__table tbody tr:hover{background:var(--color-gray-50)}.user-info{display:flex;flex-direction:column}.user-info__name{font-weight:var(--font-weight-medium)}.user-info__email{font-size:var(--text-body-sm);color:var(--color-gray-500)}.roles-selector{display:flex;gap:8px;flex-wrap:wrap}.role-checkbox{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.role-checkbox input[type=checkbox]{cursor:pointer}.role-label{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;transition:all .2s}.role-label--admin{background:#dc26261a;color:#dc2626}.role-label--chef{background:#f973161a;color:#f97316}.role-label--user{background:#3b82f61a;color:#3b82f6}.role-checkbox input[type=checkbox]:checked+.role-label{font-weight:700;transform:scale(1.05)}.tier-select{text-transform:capitalize}.token-count{display:inline-block;padding:var(--space-1) var(--space-2);background:var(--color-gray-100);border-radius:var(--radius-md);font-size:var(--text-body-sm);font-weight:var(--font-weight-medium)}.admin-users__loading,.admin-users__empty{text-align:center;padding:var(--space-6)!important;color:var(--color-gray-500)}.admin-users__pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-4)}.admin-users__pagination button{padding:var(--space-2) var(--space-4);border:1px solid var(--color-gray-200);background:#fff;border-radius:var(--radius-md);cursor:pointer}.admin-users__pagination button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.admin-users__filters{flex-direction:column}.admin-users__table-wrapper{overflow-x:auto}.admin-users__table{min-width:600px}}.status-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-weight-medium);text-transform:capitalize}.status-badge--green{background:#dcfce7;color:#166534}.status-badge--orange{background:#ffedd5;color:#9a3412}.status-badge--red{background:#fee2e2;color:#991b1b}.status-badge--gray{background:var(--color-gray-100);color:var(--color-gray-600)}.admin-users__actions{display:flex;gap:var(--space-2)}.btn-action{padding:var(--space-1) var(--space-2);border:1px solid var(--color-gray-200);background:#fff;border-radius:var(--radius-md);font-size:var(--text-caption);cursor:pointer;white-space:nowrap}.btn-action:hover{background:var(--color-gray-50)}.btn-action--danger{border-color:#fecaca;color:#991b1b}.btn-action--danger:hover{background:#fee2e2}.btn-action:disabled{opacity:.5;cursor:not-allowed}.admin-tokens{display:flex;flex-direction:column;gap:var(--space-4)}.admin-tokens__toggle{display:flex;background:#fff;border-radius:var(--radius-lg);padding:var(--space-2);gap:var(--space-2)}.admin-tokens__toggle button{flex:1;padding:var(--space-3);border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.admin-tokens__toggle button:hover{background:var(--color-gray-100)}.admin-tokens__toggle button.active{background:var(--color-primary);color:#fff}.admin-tokens__table-wrapper{background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.admin-tokens__table{width:100%;border-collapse:collapse}.admin-tokens__table th,.admin-tokens__table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-gray-100)}.admin-tokens__table th{background:var(--color-gray-50);font-weight:var(--font-weight-semibold);font-size:var(--text-body-sm);color:var(--color-gray-600)}.token-user{display:flex;flex-direction:column}.token-user small{color:var(--color-gray-500)}.token-amount{font-weight:var(--font-weight-bold);color:var(--color-success)}.token-ref{font-family:monospace;font-size:var(--text-body-sm);color:var(--color-gray-500)}.tier-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-weight-medium);text-transform:capitalize}.tier-badge--free{background:#e5e7eb;color:#374151}.tier-badge--home_cook{background:#dbeafe;color:#1e40af}.tier-badge--master_chef{background:#fef3c7;color:#92400e}.admin-tokens__loading,.admin-tokens__empty{text-align:center;padding:var(--space-6)!important;color:var(--color-gray-500)}.admin-tokens__pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-4)}.admin-tokens__pagination button{padding:var(--space-2) var(--space-4);border:1px solid var(--color-gray-200);background:#fff;border-radius:var(--radius-md);cursor:pointer}.admin-tokens__pagination button:disabled{opacity:.5;cursor:not-allowed}.admin-recipes{display:flex;flex-direction:column;gap:var(--space-4)}.admin-recipes__info{display:flex;flex-direction:column;gap:var(--space-1, 4px);padding:var(--space-3, 12px) var(--space-4, 16px);background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border-radius:var(--radius-lg, 12px);font-size:var(--text-body-sm, .875rem)}.admin-recipes__info strong{font-size:var(--text-body-md, 1rem)}.admin-recipes__table-wrapper{background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.admin-recipes__table{width:100%;border-collapse:collapse}.admin-recipes__table th,.admin-recipes__table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-gray-100)}.admin-recipes__table th{background:var(--color-gray-50);font-weight:var(--font-weight-semibold);font-size:var(--text-body-sm);color:var(--color-gray-600)}.recipe-info{display:flex;align-items:center;gap:var(--space-2)}.recipe-info__title{font-weight:var(--font-weight-medium)}.recipe-info__draft{padding:2px 6px;background:var(--color-gray-200);border-radius:var(--radius-sm);font-size:var(--text-caption);color:var(--color-gray-600)}.price-value{font-weight:var(--font-weight-medium)}.price-total{color:var(--color-success)}.price-missing{color:var(--color-gray-400);font-style:italic}.admin-recipes__loading,.admin-recipes__empty{text-align:center;padding:var(--space-6)!important;color:var(--color-gray-500)}.admin-recipes__pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-4)}.admin-recipes__pagination button{padding:var(--space-2) var(--space-4);border:1px solid var(--color-gray-200);background:#fff;border-radius:var(--radius-md);cursor:pointer}.admin-recipes__pagination button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.admin-recipes__table-wrapper{overflow-x:auto}.admin-recipes__table{min-width:600px}}.email-logs-page{padding:30px;max-width:1400px;margin:0 auto}.page-header{margin-bottom:30px}.page-header h1{margin:0 0 8px;color:#2c5f2d;font-size:28px}.page-header p{margin:0;color:#666;font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;text-align:center;transition:all .2s}.stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.stat-value{font-size:32px;font-weight:700;color:#333;margin-bottom:8px}.stat-label{font-size:14px;color:#666;font-weight:500}.stat-success .stat-value{color:#2e7d32}.stat-danger .stat-value{color:#d32f2f}.stat-warning .stat-value{color:#f57c00}.filters{display:flex;gap:20px;align-items:center;margin-bottom:20px;padding:15px;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:14px;font-weight:500;color:#555}.filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;transition:all .2s}.filter-group select:hover{border-color:#2c5f2d}.filter-group select:focus{outline:none;border-color:#2c5f2d;box-shadow:0 0 0 3px #2c5f2d1a}.btn-refresh{margin-left:auto;padding:8px 16px;background:#2c5f2d;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-refresh:hover{background:#235023;transform:scale(1.02)}.table-container{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.email-logs-table{width:100%;border-collapse:collapse}.email-logs-table th{background:#f5f5f5;padding:12px 16px;text-align:left;font-size:13px;font-weight:600;color:#555;border-bottom:2px solid #e0e0e0;text-transform:uppercase;letter-spacing:.5px}.email-logs-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#333}.email-logs-table tbody tr{transition:background .2s}.email-logs-table tbody tr:hover{background:#f9f9f9}.row-failed{background:#ffebee!important}.row-failed:hover{background:#ffcdd2!important}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-sent{background:#e8f5e9;color:#2e7d32}.status-failed{background:#ffebee;color:#c62828}.status-retrying{background:#fff3e0;color:#e65100}.type-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.type-admin{background:#e3f2fd;color:#1565c0}.type-customer{background:#f3e5f5;color:#6a1b9a}.retry-badge{display:inline-block;padding:2px 8px;background:#fff3e0;color:#e65100;border-radius:10px;font-size:12px;font-weight:600}.date-cell{white-space:nowrap;color:#666;font-size:13px}.recipient-cell{display:flex;flex-direction:column;gap:2px}.recipient-email{font-weight:500;color:#333}.recipient-name{font-size:12px;color:#888}.subject-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.retry-cell{text-align:center}.order-cell code{background:#f5f5f5;padding:2px 6px;border-radius:4px;font-size:12px;color:#666}.loading,.no-data{text-align:center;padding:60px 20px;color:#999;font-size:16px}.failed-emails-notice{margin-top:20px;padding:15px 20px;background:#fff3e0;border-left:4px solid #f57c00;border-radius:4px}.failed-emails-notice strong{display:block;margin-bottom:5px;color:#e65100}.failed-emails-notice p{margin:0;color:#666;font-size:14px}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.filters{flex-direction:column;align-items:stretch}.btn-refresh{margin-left:0}.table-container{overflow-x:auto}.email-logs-table{min-width:800px}}:root{--color-primary: #36622B;--color-secondary-dark: #0E4002;--color-secondary: #151C14;--color-accent: #6ED156;--color-highlight: #33AB15;--color-success: #6ED156;--color-warning: #F59E0B;--color-error: #EF4444;--color-info: #3B82F6;--color-white: #FFFFFF;--color-gray-50: #F9FAFB;--color-gray-100: #F3F4F6;--color-gray-200: #E5E7EB;--color-gray-300: #D1D5DB;--color-gray-400: #9CA3AF;--color-gray-500: #6B7280;--color-gray-600: #4B5563;--color-gray-700: #374151;--color-gray-800: #1F2937;--color-gray-900: #111827;--color-black: #000000;--bg-primary: var(--color-white);--bg-secondary: var(--color-gray-50);--bg-dark: var(--color-secondary);--bg-card: var(--color-white);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-muted: var(--color-gray-400);--text-inverse: var(--color-white);--text-accent: var(--color-highlight);--font-primary: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Outfit", var(--font-primary);--font-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--text-display: 3rem;--text-h1: 2.25rem;--text-h2: 1.875rem;--text-h3: 1.5rem;--text-h4: 1.25rem;--text-body-lg: 1.125rem;--text-body: 1rem;--text-body-sm: .875rem;--text-caption: .75rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-card: 0 2px 8px rgba(0, 0, 0, .08);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-content: 10;--z-sticky: 50;--z-navigation: 100;--z-dropdown: 200;--z-modal: 1000;--z-toast: 9999;--z-payment: 10000}.emoji,[class*=icon]{font-family:var(--font-emoji),var(--font-primary)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-primary);font-size:var(--text-body);line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;padding-top:env(safe-area-inset-top,0)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:var(--text-accent);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none}h1,.h1{font-family:var(--font-display);font-size:var(--text-h1);font-weight:var(--font-weight-bold);line-height:1.2}h2,.h2{font-family:var(--font-display);font-size:var(--text-h2);font-weight:var(--font-weight-semibold);line-height:1.25}h3,.h3{font-size:var(--text-h3);font-weight:var(--font-weight-semibold);line-height:1.3}h4,.h4{font-size:var(--text-h4);font-weight:var(--font-weight-semibold);line-height:1.35}.text-display{font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--font-weight-bold);line-height:1.1}.text-lg{font-size:var(--text-body-lg)}.text-sm{font-size:var(--text-body-sm)}.text-caption{font-size:var(--text-caption)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--text-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--text-body);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary, #36622B);color:var(--color-white, #FFFFFF)}.btn-primary:hover:not(:disabled){background-color:var(--color-highlight, #33AB15)}.btn-secondary{background-color:var(--color-accent, #6ED156);color:var(--color-white, #FFFFFF)}.btn-secondary:hover:not(:disabled){background-color:var(--color-highlight, #33AB15);color:var(--color-white, #FFFFFF)}.btn-outline{background-color:transparent;border:2px solid var(--color-primary, #36622B);color:var(--color-primary, #36622B)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary, #36622B);color:var(--color-white, #FFFFFF)}.btn-ghost{background-color:transparent;color:var(--text-primary, #111827)}.btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100, #F3F4F6)}.btn-sm{padding:var(--space-2, 8px) var(--space-4, 16px);font-size:var(--text-body-sm, .875rem)}.btn-lg{padding:var(--space-4, 16px) var(--space-8, 32px);font-size:var(--text-body-lg, 1.125rem)}.card{background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.card__body{padding:var(--space-6)}.card__header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-gray-200)}.card__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-gray-200);background-color:var(--color-gray-50)}.input{width:100%;font-family:var(--font-primary);font-size:var(--text-body);padding:var(--space-3) var(--space-4);border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);background-color:var(--color-white);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #36622b1a}.input:invalid{border-color:var(--color-error)}.input::placeholder{color:var(--text-muted)}.label{display:block;font-size:var(--text-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.form-group{margin-bottom:var(--space-4)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 var(--space-4)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-8);background:linear-gradient(135deg,var(--color-secondary-dark) 0%,var(--color-primary) 100%);text-align:center}.hero__logo{width:200px;margin-bottom:var(--space-8);animation:fadeIn .6s ease-out}.hero__title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:var(--font-weight-bold);color:var(--color-white);margin-bottom:var(--space-4);animation:slideUp .6s ease-out .2s both}.hero__subtitle{font-size:var(--text-body-lg);color:var(--color-gray-200);max-width:600px;margin-bottom:var(--space-8);animation:slideUp .6s ease-out .4s both}.hero__actions{display:flex;gap:var(--space-4);flex-wrap:wrap;justify-content:center;animation:slideUp .6s ease-out .6s both}.hero__actions .btn-outline{border-color:var(--color-white);color:var(--color-white)}.hero__actions .btn-outline:hover{background-color:var(--color-white);color:var(--color-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:pulse 2s infinite}@media (max-width: 768px){.hero__logo{width:150px}.hero__actions{flex-direction:column;width:100%;max-width:300px}.hero__actions .btn{width:100%}}.yoco-popup,.yoco-popup-overlay,[class*=yoco],iframe[src*=yoco],div[id*=yoco],.payment-overlay,.payment-modal{z-index:var(--z-payment, 10000)!important}.btn:active:not(:disabled),.card:active,a:active,button:active:not(:disabled){opacity:.75;transition:opacity .1s ease}.btn-primary:active:not(:disabled){background-color:var(--color-highlight, #33AB15)!important}.btn-secondary:active:not(:disabled){background-color:var(--color-highlight, #33AB15)!important}.btn-outline:active:not(:disabled){background-color:var(--color-primary, #36622B)!important;color:var(--color-white, #FFFFFF)!important}.btn-ghost:active:not(:disabled){background-color:var(--color-gray-100, #F3F4F6)!important}@media (hover: none){a:hover{text-decoration:none}.btn-primary:hover:not(:disabled),.btn-secondary:hover:not(:disabled),.btn-outline:hover:not(:disabled),.btn-ghost:hover:not(:disabled){filter:none;transform:none}.btn-primary:hover:not(:disabled){background-color:var(--color-primary, #36622B)}.btn-secondary:hover:not(:disabled){background-color:var(--color-accent, #6ED156);color:var(--color-white, #FFFFFF)}.btn-outline:hover:not(:disabled){background-color:transparent;color:var(--color-primary, #36622B)}.btn-ghost:hover:not(:disabled){background-color:transparent}.recipe-card:hover,.feedme-card:hover,.explore-card:hover,.order-card:hover,.stat-card--clickable:hover{transform:none;box-shadow:var(--shadow-card)}.recipe-card:hover .recipe-card__image,.feedme-card:hover .feedme-card__image,.explore-card:hover img{transform:none}}
