.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:500;justify-content:center;text-decoration:none;transition:all .2s ease;-webkit-user-select:none;user-select:none}.btn:hover{opacity:.9}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-small{font-size:14px;padding:8px 16px}.btn-medium{font-size:16px;padding:12px 24px}.btn-large{font-size:18px;padding:16px 32px}.btn.action-button{border-radius:50%;font-size:16px;height:36px;min-width:36px;padding:0}.btn.action-button:hover{box-shadow:0 4px 8px #00000026}.btn-primary{color:#fff}.btn-secondary{background:#fff;border:1px solid var(--border);color:var(--hint-color)}.btn-danger{background:#e03838;color:#fff}.date-selector{display:inline-block;position:relative;-webkit-user-select:none;user-select:none}.date-selector__button{align-items:center;background:none;border:none;border-radius:8px;color:var(--text-color);cursor:pointer;display:flex;font-family:inherit;gap:8px;text-align:left;transition:all .2s;width:100%}.date-selector__button:hover:not(.date-selector__button--disabled){background-color:var(--theme-secondary-bg-color,#f8f9fa)}.date-selector__button--disabled{cursor:not-allowed;opacity:.6}.date-selector--header .date-selector__button{font-size:inherit;justify-content:flex-start;padding:8px 12px}.date-selector__label,.date-selector__value{font-size:20px;font-weight:600}.date-selector__value{color:var(--main-green)}.date-selector--input{width:100%}.date-selector--input .date-selector__button{background:var(--main-background);border:1px solid var(--border);border-radius:8px;justify-content:space-between;min-height:48px;padding:12px 16px}.date-selector--input .date-selector__button:focus{outline:2px solid var(--main-green);outline-offset:-2px}.date-selector__form-label{color:var(--text-color);display:block;font-size:14px;font-weight:500;margin-bottom:8px}.date-selector__form-label--required:after{color:#dc3545;content:" *"}.date-selector__input-value{flex:1 1;font-size:16px;font-weight:400}.date-selector--small .date-selector__button{min-height:36px;padding:6px 10px}.date-selector--small .date-selector__input-value,.date-selector--small .date-selector__label,.date-selector--small .date-selector__value{font-size:14px}.date-selector--large .date-selector__button{min-height:56px;padding:16px 20px}.date-selector--large .date-selector__input-value{font-size:18px}.date-selector--large .date-selector__label,.date-selector--large .date-selector__value{font-size:22px}.date-selector__icon{color:var(--theme-hint-color,#999);transition:transform .2s}.date-selector__icon--rotated{transform:rotate(180deg)}.date-selector__calendar{animation:fadeIn .2s ease-out;background:var(--main-background);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 12px #0000001a;left:0;min-width:280px;padding:16px;position:absolute;right:0;top:100%;z-index:1000}.date-selector__calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.date-selector__nav-button{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-color);cursor:pointer;display:flex;justify-content:center;padding:8px;transition:background-color .2s}.date-selector__nav-button:hover{background-color:var(--theme-secondary-bg-color,#f8f9fa)}.date-selector__month-title{color:var(--text-color);font-size:16px;font-weight:600;margin:0;text-transform:capitalize}.date-selector__weekdays{display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.date-selector__weekday{color:var(--theme-hint-color,#999);font-size:12px;font-weight:600;padding:8px 4px;text-align:center}.date-selector__days{display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.date-selector__day{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-color);cursor:pointer;display:flex;font-size:14px;font-weight:500;justify-content:center;min-height:36px;padding:8px;transition:all .2s}.date-selector__day:hover{background-color:var(--theme-secondary-bg-color,#f8f9fa)}.date-selector__day--other-month{color:var(--theme-hint-color,#ccc)}.date-selector__day--selected{background-color:var(--main-green);color:var(--main-background)}.date-selector__day--selected:hover{background-color:var(--theme-button-color,#28a559);opacity:1}.date-selector__day--today{color:var(--main-green);font-weight:700}.date-selector__day--today.date-selector__day--selected{color:var(--main-background)}.date-selector--fullscreen .date-selector__button{font-size:18px;padding:12px 16px}.date-selector__fullscreen-header{display:none}.date-selector__fullscreen-title{color:var(--text-color);font-size:20px;font-weight:600;margin:0}.date-selector__close-button{align-items:center;background:none;border:none;border-radius:8px;color:var(--text-color);cursor:pointer;display:flex;justify-content:center;padding:8px;transition:background-color .2s}.date-selector__close-button:hover{background-color:var(--theme-secondary-bg-color,#f8f9fa)}@media (max-width:768px){.date-selector__fullscreen-header{align-items:center;background:var(--main-background);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px;position:sticky;top:0;z-index:1}.date-selector__calendar{animation:slideUp .3s ease-out!important;background:var(--main-background)!important;border:none!important;border-radius:0!important;display:flex!important;flex-direction:column!important;height:100vh!important;inset:0!important;max-width:none!important;min-width:auto!important;padding:0!important;position:fixed!important;width:100vw!important;z-index:9999!important}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.date-selector__calendar-header{margin-bottom:0!important;padding:20px!important}.date-selector__month-title{font-size:20px!important}.date-selector__nav-button{padding:12px!important}.date-selector__weekdays{margin-bottom:16px!important;padding:0 20px!important}.date-selector__weekday{font-size:14px!important;padding:12px 4px!important}.date-selector__days{flex:1 1!important;gap:4px!important;padding:0 20px 20px!important}.date-selector__day{border-radius:8px!important;font-size:16px!important;min-height:48px!important}.date-selector__button{padding:12px 16px}.date-selector__label,.date-selector__value{font-size:18px}body:has(.date-selector__calendar){overflow:hidden!important}}.loading-spinner{align-items:center;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}.spinner{animation:spin 1s linear infinite;border-top:2px solid var(--border);border:2px solid var(--border);border-radius:50%;border-top-color:var(--main-green)}.loading-spinner-small .spinner{height:16px;width:16px}.loading-spinner-medium .spinner{height:24px;width:24px}.loading-spinner-large .spinner{height:32px;width:32px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.phone-request-notification{align-items:center;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;padding:16px;text-align:center;width:100%}.phone-request-notification h3{color:var(--text-color);font-size:20px;font-weight:600}.phone-request-notification p{color:var(--hint-color);font-size:14px;line-height:1.5;margin:0 0 12px;max-width:400px}@media (max-width:632px){.notification-icon{font-size:40px}.phone-request-notification h3{font-size:18px}.phone-request-notification p{font-size:13px}}.kbju-notification{align-items:center;display:flex;flex-direction:column;text-align:center;width:100%}.notification-icon{font-size:48px;margin-bottom:16px;opacity:.8}.kbju-notification h3{color:var(--text-color);font-size:20px;font-weight:600}.kbju-notification p{color:var(--hint-color);font-size:14px;line-height:1.5;margin:0 0 12px;max-width:400px}.notification-actions{display:flex;gap:12px}.btn-primary{background:var(--main-green);border:none;border-radius:8px;color:var(--main-background);cursor:pointer;font-size:14px;font-weight:500;min-width:140px;padding:12px 24px;transition:all .2s ease}.btn-primary:hover{background:var(--main-green);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}@media (max-width:632px){.notification-icon{font-size:40px}.kbju-notification h3{font-size:18px}.kbju-notification p{font-size:13px}}.meal-type-options{display:grid;gap:8px;grid-template-columns:repeat(4,1fr)}.meal-type-option{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;flex-direction:row;font-size:.875rem;gap:4px;justify-content:center;padding:12px;transition:all .2s}.meal-type-option:hover{background-color:#2dbe6507;border-color:var(--main-green)}.meal-type-option.selected{background-color:#2dbe6525;border-color:var(--main-green)}.meal-emoji{font-size:20px;margin-top:-4px}@media (max-width:768px){.meal-type-options{grid-template-columns:repeat(2,1fr)}}.nutrition-edit-toggle{align-items:center;background:#0000;border:none;border-radius:50%;color:#047857;cursor:pointer;display:inline-flex;font-size:18px;height:28px;justify-content:center;position:absolute;right:12px;top:12px;width:28px}.nutrition-item{align-items:baseline;display:flex;padding:8px 0}.editing-nutrition-item{padding:6px 0}.nutrition-label{color:#6b7280;font-size:14px;white-space:nowrap}.nutrition-dots{border-bottom:1px dotted #6b728099;flex:1 1 auto;height:0;margin:0 12px}.nutrition-preview{background-color:#dcfae798;border-radius:12px;padding:16px;position:relative}.nutrition-preview h4{color:#374151;font-size:16px;font-weight:600;margin:0 0 12px}.nutrition-grid{display:grid;gap:12px 32px;grid-template-columns:repeat(2,1fr)}.nutrition-value{color:#374151;font-weight:600;white-space:nowrap}.nutrition-input-wrapper{align-items:center;display:flex;flex-direction:row;gap:4px;.input-wrapper{background:#0000;border:none;border-bottom:2px solid var(--light-green);border-radius:0;color:var(--theme-text-color,#111827);max-width:58px;padding:1px 8px;&:focus,&:focus-within,&:hover{box-shadow:none}input{padding:0;text-align:center}}}.scroll-fix{flex:0 0 12px;height:12px}@media (max-width:768px){.nutrition-grid{gap:0;grid-template-columns:1fr}}.form-actions{display:flex;gap:14px;justify-content:flex-end;margin-top:auto;padding-top:12px;width:100%}.submit-button{min-width:120px;width:100%}@media (max-width:768px){.form-actions{flex-direction:row}.submit-button{width:100%}}.add-to-diary-form{display:flex;flex-direction:column;gap:12px;height:100%}.modal-backdrop{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;-webkit-user-select:none;user-select:none;z-index:1001}body:has(.modal-backdrop){overflow:hidden}@media (max-width:768px){.modal-backdrop{align-items:stretch;justify-content:stretch;padding:0}}.modal-container{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;position:relative}@media (max-width:768px){.modal-container{animation:slideInMobile .3s ease-out;border-radius:0;box-shadow:none;height:100vh;max-height:100vh;width:100vw}}.modal-small{max-width:400px;width:100%}.modal-medium{max-width:600px;width:100%}.modal-large{max-width:800px;width:100%}.modal-fullscreen{animation:slideInMobile .3s ease-out;border-radius:0;box-shadow:none;height:100vh;max-width:none;width:100vw}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;padding:0 12px}.modal-footer,.modal-header{display:flex;justify-content:space-between}.modal-footer{background:var(--main-background);border-top:1px solid #e5e7eb;bottom:0;gap:12px;padding:8px 12px;position:sticky}.modal-title{color:#1f2937;font-size:20px;font-weight:600;margin-bottom:12px;margin-top:12px}.modal-close-button{align-items:center;background:none;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close-button:hover{background-color:#e038380f;color:#374151}.modal-content{overflow-y:auto;padding:16px}@media (max-width:768px){.modal-content{flex:1 1 auto;height:auto;max-height:100vh;overflow-y:auto;padding:20px}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideInMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.confirm-modal{display:flex;flex-direction:column;gap:24px;-webkit-user-select:none;user-select:none}.confirm-message{color:#374151;font-size:16px;line-height:1.5;padding-left:16px;text-align:left}.confirm-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-cancel-button{min-width:80px}.confirm-button{min-width:100px}@media (max-width:768px){.confirm-actions{flex-direction:column-reverse}.confirm-button,.confirm-cancel-button{width:100%}}.input-container{display:flex;flex-direction:column;gap:6px}.input-container.full-width{width:100%}.input-label{color:#374151;font-size:.875rem;font-weight:600;line-height:1.25rem}.input-wrapper{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;display:flex;position:relative;transition:all .2s ease}.input-wrapper:focus-within,.input-wrapper:hover{border-color:var(--main-green)}.input-wrapper:focus-within{box-shadow:0 0 0 3px #2dbe641a}.input-small .input-field{font-size:.875rem;padding:8px 12px}.input-medium .input-field{font-size:1rem;padding:12px 16px}.input-large .input-field{font-size:1.125rem;padding:16px 20px}.input-default{border-color:#e5e7eb}.input-success{border-color:var(--main-green)}.input-error{border-color:#ef4444;color:#ef4444}.input-error:focus-within{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.input-field{background:#0000;border:none;color:#374151;font-family:inherit;outline:none;width:100%}.input-field::placeholder{color:#9ca3af}.input-field[type=number]::-webkit-inner-spin-button,.input-field[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.input-field[type=number]{-webkit-appearance:textfield;appearance:textfield}.input-field[type=date]::-webkit-calendar-picker-indicator{background-color:initial;border-radius:6px;cursor:pointer;filter:invert(.5) sepia(1) saturate(5) hue-rotate(120deg);padding:5px;-webkit-transition:all .2s ease;transition:all .2s ease}.input-field[type=date]::-webkit-calendar-picker-indicator:hover{background-color:#2dbe641a;transform:scale(1.05)}.input-field[type=date]::-webkit-calendar-picker-indicator:focus{background-color:#2dbe6433;outline:none}.input-field[type=date]::-moz-calendar-picker-indicator{background-color:initial;border-radius:6px;cursor:pointer;padding:5px;-moz-transition:all .2s ease;transition:all .2s ease}.input-field[type=date]::-moz-calendar-picker-indicator:hover{background-color:#2dbe641a}.input-field[type=date]::-webkit-datetime-edit{color:#374151;font-weight:500}.input-field[type=date]::-webkit-datetime-edit-fields-wrapper{padding:0}.input-field[type=date]::-webkit-datetime-edit-text{color:#6b7280;padding:0 2px}.input-field[type=date]::-webkit-datetime-edit-day-field,.input-field[type=date]::-webkit-datetime-edit-month-field,.input-field[type=date]::-webkit-datetime-edit-year-field{color:#374151;font-weight:500}.input-icon{align-items:center;color:#6b7280;display:flex;font-size:1.125rem;justify-content:center}.input-icon-left{padding-left:12px}.input-icon-right{padding-right:12px}.input-field.with-left-icon{padding-left:8px}.input-field.with-right-icon{padding-right:8px}.input-message{font-size:.75rem;line-height:1rem;margin-top:2px}.input-helper{color:#6b7280}@media (max-width:768px){.input-medium .input-field{padding:14px 16px}.input-large .input-field{padding:18px 20px}.input-field[type=date]::-webkit-calendar-picker-indicator{padding:8px}.input-field[type=date]::-moz-calendar-picker-indicator{padding:8px}}.input-field:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed}.input-wrapper:has(.input-field:disabled){background-color:#f9fafb;border-color:#e5e7eb}.input-wrapper:has(.input-field:disabled):hover{border-color:#e5e7eb}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem 2rem;-webkit-user-select:none;user-select:none}.empty-icon{color:var(--hint-color);font-size:3rem;margin-bottom:1rem}.empty-message{color:var(--text-secondary);font-size:1rem;line-height:1.5;margin-bottom:1.5rem}.empty-action{margin-top:1rem}.error-state{align-items:center;display:flex;justify-content:center;padding:2rem;text-align:center;-webkit-user-select:none;user-select:none}.error-content{max-width:400px}.error-title{color:var(--error-color,#e74c3c);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.error-message{color:var(--text-secondary);font-size:1rem;line-height:1.5;margin-bottom:1.5rem}.retry-button{background-color:var(--primary-color,#007bff);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s ease}.retry-button:hover{background-color:var(--primary-hover,#0056b3)}.retry-button:active{transform:translateY(1px)}.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:2rem;text-align:center;-webkit-user-select:none;user-select:none}.loading-message{color:var(--text-secondary);font-size:1rem;margin-top:1rem}.notification-container{align-items:center;bottom:56px;display:flex;flex-direction:column;gap:8px;left:0;padding:8px;pointer-events:none;position:fixed;right:0;-webkit-user-select:none;user-select:none;z-index:1000}.notification-item{background:var(--main-background);border:1px solid #02061714;border-radius:6px;box-shadow:0 8px 24px #0000001f;color:#6b7280;display:grid;gap:6px 12px;grid-template-columns:1fr auto;max-width:520px;opacity:.9;padding:12px 44px 12px 14px;pointer-events:auto;position:relative;width:calc(100% - 24px);will-change:opacity,transform}.notification-item.success{border-left:4px solid #16a34a}.notification-item.error{border-left:4px solid #dc2626}.notification-item.info{border-left:4px solid #2563eb}.notification-title{font-weight:600}.notification-message{grid-column:1/-1}.notification-close{align-items:center;background:#0000;border:0;color:#6b7280;cursor:pointer;display:inline-flex;font-size:22px;height:32px;justify-content:center;line-height:1;position:absolute;right:10px;top:8px;width:32px}@media (prefers-reduced-motion:no-preference){.notification-item{animation:notification-enter .22s cubic-bezier(.2,.8,.2,1) both,notification-life 2s linear both}}@keyframes notification-enter{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes notification-life{0%,90%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(6px) scale(.98)}}.fab-actions{bottom:136px;display:flex;flex-direction:column;gap:8px;opacity:0;pointer-events:none;position:fixed;right:16px;transform:translateY(20px);transition:transform .3s ease,opacity .18s ease;z-index:1099;button{border:1px solid var(--main-green)}}.fab-actions-open{opacity:1;pointer-events:auto;transform:translateY(0)}.fab-action-title{color:var(--main-green);font-size:14px;font-weight:600}.fab-button{background:var(--light-green,#2dbe64);border:none;border-radius:50%;bottom:72px;box-shadow:0 6px 18px #179c4959;color:#fff;cursor:pointer;height:56px;outline:none;position:fixed;right:16px;transform:translateY(0);transition:transform .3s ease,opacity .3s ease;-webkit-user-select:none;user-select:none;width:56px;z-index:100}.fab-button:active{transform:translateY(0) scale(.98)}.fab-plus{display:block;font-size:28px;line-height:56px;pointer-events:none;text-align:center}.fab-show{opacity:1;transform:translateY(0)}.fab-hide{opacity:0;pointer-events:none;transform:translateY(120%)}@media (hover:hover) and (pointer:fine){.fab-button:hover{filter:brightness(.95)}}.fab-backdrop{animation:fabBackDropIn .16s ease both;background:#00000059;inset:0;position:fixed;z-index:1090}@keyframes fabBackDropIn{0%{opacity:0}to{opacity:1}}.App-footer{border-top:1px solid var(--border);bottom:0;position:sticky;width:100%;z-index:1000}.App-footer,.footer-nav{background:var(--theme-secondary-bg-color,#f8f9fa)}.footer-nav{display:flex}.footer-nav-button{background:none;border:none;color:var(--hint-color);cursor:pointer;flex:1 1;font-size:20px;padding:10px 0;transition:all .2s ease;-webkit-user-select:none;user-select:none}.footer-nav-button.active,.footer-nav-button:hover{background:var(--main-background)}.dropdown-icon{align-items:center;color:var(--hint-color);display:flex;flex-shrink:0;height:28px;justify-content:center;margin-left:8px;transition:transform .3s ease;width:28px}.dropdown-icon.expanded{transform:rotate(180deg)}.group-summary{align-items:flex-end;flex-direction:column;gap:4px}.summary-calories{color:var(--text-color);font-size:18px;margin-right:6px}.summary-macros{color:var(--hint-color);font-size:14px;font-weight:500}.product-info-container{align-items:center;display:flex;flex-direction:row;gap:8px;justify-content:flex-start}.product-image{border-radius:12px;height:50px;width:50px}.product-info h3{color:#333;font-size:16px;font-weight:600;margin:0}.product-calories{color:var(--hint-color);font-size:14px}.product-card{align-items:center;display:flex;flex-direction:row;gap:4px;justify-content:space-between;padding:8px 8px 8px 0;transition:transform .2s ease,box-shadow .2s ease}.product-actions{display:flex;gap:8px;justify-content:flex-end}@media (max-width:768px){.product-actions{justify-content:center}}.product-group{background-color:var(--main-background);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden}.group-header{align-items:center;background:var(--theme-secondary-bg-color,#dcfae7);border-radius:12px 12px 0 0;cursor:pointer;display:flex;justify-content:space-between;padding:12px;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.group-header:hover{background:var(--theme-secondary-bg-color,#c8f5d4)}.fridge-header{cursor:default}.fridge-header:hover{background:var(--theme-secondary-bg-color,#dcfae7)}.fridge-header:focus{outline:none}.header-content{align-items:flex-start;display:flex;flex:1 1;flex-wrap:wrap;gap:6px;justify-content:space-between}.group-date{color:var(--theme-text-color,#000);font-size:18px;margin:0;text-transform:capitalize}.group-products{display:flex;flex-direction:column;overflow:visible;padding:16px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.group-products.expanded{max-height:2000px;opacity:1}.group-products.collapsed{max-height:0;opacity:0;padding-bottom:0;padding-top:0}.group-products .product-card:not(:last-child){border-bottom:1px solid var(--border)}@media (max-width:768px){.header-content{flex-direction:column}.group-products,.group-products.expanded{padding:12px}}.tab-layout{display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;margin:0 auto;max-width:600px;min-width:600px;overflow:auto;position:relative;text-align:left;-webkit-user-select:none;user-select:none}.tab-title{color:var(--text-color);font-size:20px;font-weight:600;margin-bottom:8px;padding:4px 16px}.empty-state{align-self:center;color:var(--hint-color);max-width:600px;min-width:600px;padding:32px;text-align:center}.error-message{background:#f8d7da;border-radius:8px;color:#721c24;margin:16px 0;padding:16px}.products-groups{display:flex;flex-direction:column;gap:16px}@media (max-width:768px){.tab-title{font-size:20px;margin-bottom:16px}}@media (max-width:632px){.empty-state,.tab-layout{max-width:unset;min-width:unset;width:100%}}.user-product-container{background-color:var(--main-background);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden;padding:12px 4px}.user-product-container .product-card:not(:last-child){border-bottom:1px solid var(--border)}.fridge-tab{display:flex;flex-direction:column;height:100%}.fridge-tab-header{display:flex;flex-direction:row;justify-content:space-between}.fridge-tab-title{color:var(--text-color);font-size:20px;font-weight:600;padding:4px 16px}.fridge-tab-actions{align-items:center;display:flex;flex-direction:row;justify-content:space-between;max-width:204px;width:100%}.fridge-button{border:none;color:var(--hint-color);cursor:pointer;font-size:16px;outline:none}.fridge-button,.fridge-button:hover{background:none}.fridge-button.active{border-bottom:1px solid var(--main-green);color:var(--main-green)}.fridge-actions-divider{background-color:var(--hint-color);height:20px;opacity:.3;width:1px}.search-bar{margin-bottom:12px}.CircularProgressbar{vertical-align:middle;width:100%}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;transition:stroke-dashoffset .5s ease 0s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;dominant-baseline:middle;text-anchor:middle;font-size:20px}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:#0000}.calories-container{align-items:center;display:flex;flex-direction:column;gap:8px;justify-content:center;-webkit-user-select:none;user-select:none}.calories-circle{height:auto;max-height:300px;max-width:300px}.calories-circle,.progress-wrapper{align-items:center;display:flex;justify-content:center;width:100%}.progress-wrapper{height:100%;position:relative}.progress-wrapper .CircularProgressbar{height:auto;max-height:250px;max-width:250px;width:100%}.circle-text-overlay{align-items:center;display:flex;flex-direction:column;justify-content:center;left:50%;max-height:200px;max-width:200px;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.circle-text-overlay .calories-number{color:#000;font-size:2.5rem;font-weight:700;line-height:1;margin-bottom:.25rem}.circle-text-overlay .calories-label{color:#969;font-size:.9rem;font-weight:500;line-height:1.2}.checkmark-container{align-items:center;display:flex;flex-direction:column;justify-content:center;text-align:center}.checkmark{animation:checkmarkPulse 2s ease-in-out infinite;color:var(--main-green);font-size:3rem;font-weight:700;line-height:1;margin-bottom:.5rem}.checkmark-label{color:var(--main-green);font-size:.9rem;font-weight:600;line-height:1.2}@keyframes checkmarkPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.CircularProgressbar .CircularProgressbar-path{stroke-linecap:round;transition:stroke-dasharray .5s ease-in-out}.CircularProgressbar .CircularProgressbar-trail{stroke-linecap:round}.daily-goal{align-items:center;display:flex;flex-direction:column}.goal-label{color:#969;font-size:16px;font-weight:500}.goal-value{color:#000;font-size:20px;font-weight:600}.loading{align-items:center;color:var(--hint-color);display:flex;font-size:1rem;height:200px;justify-content:center}@media (max-width:480px){.calories-circle{max-height:250px;max-width:250px}.progress-wrapper .CircularProgressbar{max-height:200px;max-width:200px}.circle-text-overlay{max-height:150px;max-width:150px}.circle-text-overlay .calories-number{font-size:2rem}.circle-text-overlay .calories-label{font-size:.8rem}.checkmark{font-size:2.5rem}.checkmark-label{font-size:.8rem}}@media (max-width:320px){.calories-circle{max-height:200px;max-width:200px}.progress-wrapper .CircularProgressbar{max-height:180px;max-width:180px}.circle-text-overlay{max-height:120px;max-width:120px}.circle-text-overlay .calories-number{font-size:1.5rem}.circle-text-overlay .calories-label{font-size:.7rem}.checkmark{font-size:2rem}.checkmark-label{font-size:.7rem}}.nutrition-stats{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));-webkit-user-select:none;user-select:none}.stat{border-radius:8px;height:57px;padding:8px;text-align:center;width:112px}.totalFat{background-color:#fef2f2}.totalCarbs{background-color:#fffbeb}.totalProtein{background-color:#eff6ff}.stat-label{color:var(--theme-hint-color,#999);font-size:14px;margin-bottom:0}.stat-value{color:var(--theme-text-color,#000);font-size:16px}.stat-percent{color:var(--main-green);display:block;font-size:.9rem;font-weight:500}.meals-list{display:flex;flex-direction:column;gap:16px;width:100%;.meal-card:not(:last-child){border-bottom:1px solid var(--border)}}.meal-card{background-color:var(--main-background);justify-content:space-between;padding-bottom:16px}.meal-card,.meal-info{align-items:center;display:flex}.meal-info{flex:1 1;gap:16px}.meal-icon{align-items:center;border-radius:50%;color:#333;display:flex;height:40px;justify-content:center;min-width:40px;-webkit-user-select:none;user-select:none;width:40px}.meal-icon svg{height:24px;width:24px}.meal-details{display:flex;flex-direction:column;gap:4px}.meal-name{color:#333;font-size:16px;font-weight:600;margin:0}.meal-description{color:#969;font-size:14px;font-weight:400;line-height:1.4;margin:0;max-width:280px;overflow-wrap:anywhere;white-space:pre-line}.meal-calories{align-items:flex-end;display:flex;flex-direction:column;justify-content:center}.calories-text{color:#333;font-size:16px;font-weight:600}.error-message{color:#dc2626;padding:20px}.error-message h3{margin-bottom:8px}.error-message p{font-size:14px;margin:0}.summary-tab{align-self:center;display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;max-width:600px;min-width:600px;text-align:center;text-align:left}.summary-header{color:var(--text-color);font-size:20px;font-weight:600;margin-bottom:8px;padding-left:4px;-webkit-user-select:none;user-select:none}.summary-content{margin-bottom:8px}.meals-content,.summary-content{background-color:var(--main-background);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:row;gap:24px;justify-content:space-between;padding:16px}.meals-content{-webkit-user-select:none;user-select:none}.error-message{color:#dc3545;text-align:center}.error-message h3{margin-bottom:.5rem}.meal-empty-state{background-color:var(--main-background);border:1px solid var(--border);border-radius:12px;color:#6b7280;padding:40px 20px;text-align:center;-webkit-user-select:none;user-select:none}.meal-empty-state p{font-size:14px;margin:0}@media (max-width:632px){.summary-tab{max-width:unset;min-width:unset;width:100%}}*{-webkit-tap-highlight-color:rgba(0,0,0,0);box-sizing:border-box;margin:0;padding:0}body{background:var(--main-background);color:var(--theme-text-color,#000);min-height:100vh}a,button{-webkit-tap-highlight-color:rgba(0,0,0,0)}a:focus,button:focus{outline:none}a:focus-visible,button:focus-visible{outline:2px solid var(--main-green);outline-offset:2px}.App{background:var(--theme-bg-color,#f9fafb);display:flex;flex-direction:column;height:100vh;min-height:100vh;overflow:hidden}.App-main{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:auto;padding:1rem;touch-action:pan-y}.slider-section{padding:16px 0}.error,.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:50vh;text-align:center}.error h2,.loading h2{color:var(--theme-text-color,#000);font-size:1.5rem;margin-bottom:1rem}.error p{color:#dc3545;font-size:1rem}@media (max-width:768px){.App-main{padding:.5rem}.slider-section{padding:.75rem 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tg-app{--theme-bg-color:#fff;--theme-text-color:#000;--theme-hint-color:#999;--theme-link-color:var(--main-green);--theme-button-color:var(--main-green);--theme-button-text-color:#fff;--theme-secondary-bg-color:#f1f1f1}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:normal;font-weight:400;src:url(/static/media/Euclid%20Circular%20B%20Regular.4a3055af2b5d3eb95690.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:italic;font-weight:400;src:url(/static/media/Euclid%20Circular%20B%20Italic.e67cf188f9c6508e237e.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:normal;font-weight:300;src:url(/static/media/Euclid%20Circular%20B%20Light.de6ac5224afb2bd0d0c2.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:italic;font-weight:300;src:url(/static/media/Euclid%20Circular%20B%20Light%20Italic.01ccd4c83139ce3f1ba7.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:normal;font-weight:500;src:url(/static/media/Euclid%20Circular%20B%20Medium.da9107f189000fddc6e7.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:italic;font-weight:500;src:url(/static/media/Euclid%20Circular%20B%20Medium%20Italic.dcfcd0e94ab24d2a4ef0.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:normal;font-weight:600;src:url(/static/media/Euclid%20Circular%20B%20SemiBold.b55694b69b1287ed0f66.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:italic;font-weight:600;src:url(/static/media/Euclid%20Circular%20B%20SemiBold%20Italic.4d6c05464ad001027245.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:normal;font-weight:700;src:url(/static/media/Euclid%20Circular%20B%20Bold.f9b0ae2872dea44f65c3.ttf) format("truetype")}@font-face{font-display:swap;font-family:Euclid Circular B;font-style:italic;font-weight:700;src:url(/static/media/Euclid%20Circular%20B%20Bold%20Italic.3a29cb1f773b6259cc7c.ttf) format("truetype")}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Euclid Circular B,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.light-text{font-weight:300}.regular-text{font-weight:400}.medium-text{font-weight:500}.semibold-text{font-weight:600}.bold-text{font-weight:700}:root{--main-green:#179c49;--light-green:#2dbe64;--border:#e9ecef;--main-background:#fff;--hint-color:#6c757d;--text-color:#212121}