.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}.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.mobile-fullscreen{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.mobile-fullscreen{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:9999}.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)}}.barcode-scanner-overlay{background-color:#000000e6;height:100%;left:0;overflow-y:auto;position:fixed;top:0;width:100%;z-index:9999}.barcode-scanner-container{align-items:center;display:flex;flex-direction:column;gap:16px;min-height:100%;padding:20px;position:relative}.barcode-scanner-container *{box-sizing:border-box}.barcode-scanner-header{align-items:center;display:flex;flex-shrink:0;justify-content:space-between;width:100%}.barcode-scanner-title{color:#fff;flex:1 1;font-size:20px;font-weight:600;margin:0;padding:0 8px;text-align:center}.barcode-scanner-close-button{align-items:center;background:#0000;border:none;color:#fff;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:opacity .2s;width:32px}.barcode-scanner-video-container{background-color:#000;border-radius:12px;max-height:60vh;overflow:hidden;position:relative;width:100%}.barcode-scanner-video,.barcode-scanner-video canvas,.barcode-scanner-video video{display:block;max-height:60vh!important;object-fit:cover;width:100%!important}.barcode-scanner-video canvas,.barcode-scanner-video video{height:100%!important;max-width:100%!important}.barcode-scanner-overlay-line{border:3px solid #4caf50;border-radius:8px;box-shadow:0 0 0 9999px #00000080;height:120px;left:22%;position:absolute;top:50%;transform:translateY(-50%);width:56%}.barcode-scanner-scan-line{animation:scan 2s ease-in-out infinite;background:linear-gradient(90deg,#0000,#4caf50,#4caf50,#0000);box-shadow:0 0 10px #4caf50;height:2px;left:-3px;position:absolute;right:-3px;top:0}@keyframes scan{0%,to{top:0}50%{top:calc(100% - 2px)}}.barcode-scanner-info{color:#fff;font-size:14px;padding:0 8px;text-align:center;width:100%}.barcode-scanner-progress-container{padding:0 20px;width:100%}.barcode-scanner-progress-bar{background-color:#fff3;border-radius:4px;height:8px;overflow:hidden;width:100%}.barcode-scanner-progress-fill{background:linear-gradient(90deg,#4caf50,#66bb6a);border-radius:4px;box-shadow:0 0 10px #4caf5080;height:100%;transition:width .3s ease-out}.barcode-scanner-error{background-color:#f44336;border-radius:8px;color:#fff;font-size:14px;margin-top:-8px;padding:16px;text-align:center;width:100%}.barcode-scanner-loading{color:#fff;font-size:16px;padding:40px;text-align:center}@media (min-width:640px){.barcode-scanner-container{margin:0 auto;max-width:640px}}.image-preview{background:#fff;display:flex;flex-direction:column;gap:8px;height:100%}.image-preview-container{align-items:center;display:flex;flex:1 1;justify-content:center;overflow:hidden}.image-preview-img{border-radius:8px;height:100%;image-rendering:auto;max-height:80vh;object-fit:contain;width:100%}.image-preview-actions{display:flex;gap:12px;justify-content:space-between;padding:0 16px 16px}.image-preview-actions button{flex:1 1;max-width:200px}.photo-capture{flex-direction:column;height:100%;min-height:400px}.photo-capture,.photo-capture-camera{display:flex;overflow:hidden;position:relative}.photo-capture-camera{background:#000;flex:1 1;flex-direction:column}.photo-capture-video{height:100%;image-rendering:auto;object-fit:cover;width:100%}.photo-capture-error{background:#f44336e6;border-radius:8px;color:#fff;font-size:14px;left:20px;padding:12px;position:absolute;right:20px;text-align:center;top:20px;z-index:5}.photo-capture-controls{align-items:center;background:linear-gradient(0deg,#0009 0,#0006 50%,#0000);bottom:0;display:flex;gap:20px;justify-content:space-between;left:0;padding:24px 32px 40px;position:absolute;right:0;z-index:3}.photo-capture-gallery-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;border-radius:12px;cursor:pointer;display:flex;font-size:24px;height:50px;justify-content:center;padding:0;transition:all .2s ease;width:50px}.photo-capture-gallery-btn:hover:not(:disabled){background:#ffffff4d;border-color:#ffffff80;transform:scale(1.05)}.photo-capture-gallery-btn:active:not(:disabled){transform:scale(.95)}.photo-capture-gallery-btn:disabled{cursor:not-allowed;opacity:.5}.photo-capture-shutter-btn{align-items:center;background:#fff;border:4px solid #fff;border-radius:50%;box-shadow:0 4px 12px #0006;cursor:pointer;display:flex;height:80px;justify-content:center;padding:0;transition:all .2s ease;width:80px}.photo-capture-shutter-btn:hover:not(:disabled){box-shadow:0 6px 16px #00000080;transform:scale(1.05)}.photo-capture-shutter-btn:active:not(:disabled){transform:scale(.95)}.photo-capture-shutter-btn:disabled{cursor:not-allowed;opacity:.7}.photo-capture-shutter-inner{background:#fff;border:3px solid #000;border-radius:50%;height:60px;width:60px}.photo-capture-shutter-spinner{animation:spin 1s linear infinite;border:3px solid #0003;border-radius:50%;border-top-color:#000;height:40px;width:40px}.photo-capture-placeholder{height:50px;width:50px}.photo-capture-recognizing{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;display:flex;flex-direction:column;gap:16px;inset:0;justify-content:center;position:absolute;z-index:10}.photo-capture-recognizing-spinner{animation:spin 1s linear infinite;border:4px solid #fff3;border-radius:50%;border-top:4px solid var(--light-green,#007aff);height:48px;width:48px}.photo-capture-recognizing-text{color:#fff;font-size:16px;font-weight:500;padding:0 24px;text-align:center}@keyframes spin{to{transform:rotate(1turn)}}.photo-capture-modal{background:#0000;padding:0;.modal-header{border-bottom:none;left:0;position:absolute;right:0;z-index:1;.modal-title{color:#fff}}}.photo-capture-modal-content{padding:0}.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;object-fit:cover;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:4px 12px}.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:8px}.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:rgb(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,input,select,textarea{font-family:inherit}a,button{-webkit-tap-highlight-color:rgb(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:16px;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:24px;margin-bottom:16px}.error p{color:#dc3545;font-size:16px}@media (max-width:768px){.App-main{padding:8px 8px 0}.slider-section{padding:12px 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;--text-secondary-color:#656565}