*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:1rem;line-height:1.5}img,video{max-width:100%;display:block}input,button,textarea,select{font:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}#root{flex-direction:column;min-height:100dvh;display:flex}:root{--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-light:#eef2ff;--color-background:#f9fafb;--color-surface:#fff;--color-surface-raised:#fff;--color-text:#111827;--color-text-muted:#6b7280;--color-text-on-primary:#fff;--color-border:#e5e7eb;--color-border-focus:#4f46e5;--color-error:#ef4444;--color-error-light:#fef2f2;--color-success:#10b981;--color-success-light:#ecfdf5;--color-warning:#f59e0b;--color-warning-light:#fffbeb;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}:root[data-theme=dark]{--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-primary-light:#1e1b4b;--color-background:#0f172a;--color-surface:#1e293b;--color-surface-raised:#334155;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-on-primary:#fff;--color-border:#334155;--color-border-focus:#818cf8;--color-error:#f87171;--color-error-light:#450a0a;--color-success:#34d399;--color-success-light:#022c22;--color-warning:#fbbf24;--color-warning-light:#451a03;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0000004d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-primary-light:#1e1b4b;--color-background:#0f172a;--color-surface:#1e293b;--color-surface-raised:#334155;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-on-primary:#fff;--color-border:#334155;--color-border-focus:#818cf8;--color-error:#f87171;--color-error-light:#450a0a;--color-success:#34d399;--color-success-light:#022c22;--color-warning:#fbbf24;--color-warning-light:#451a03;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0000004d}}.navbar{display:none}@media (width>=768px){.navbar{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);height:64px;box-shadow:var(--shadow-sm);z-index:100;display:block;position:fixed;top:0;left:0;right:0}}.navbar__inner{align-items:center;gap:24px;max-width:1280px;height:100%;margin:0 auto;padding:0 32px;display:flex}.navbar__brand{color:var(--color-primary);flex-shrink:0;align-items:center;gap:8px;font-size:1.05rem;font-weight:700;transition:opacity .15s;display:flex}.navbar__brand:hover{opacity:.85}.navbar__nav{flex:1;align-items:center;gap:4px;display:flex}.navbar__link{color:var(--color-text-muted);border-radius:10px;align-items:center;gap:4px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.navbar__link:hover,.navbar__link--active{background-color:var(--color-primary-light);color:var(--color-primary)}.navbar__actions{align-items:center;margin-left:auto;display:flex}.navbar__new-receipt{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;align-items:center;gap:4px;padding:4px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s;display:flex}.navbar__new-receipt:hover{background-color:var(--color-primary-hover)}.navbar__user{border-left:1px solid var(--color-border);align-items:center;gap:8px;padding-left:16px;display:flex}.navbar__user-link{align-items:center;gap:4px;text-decoration:none;transition:opacity .15s;display:flex}.navbar__user-link:hover{opacity:.8}.navbar__user-name{color:var(--color-text);font-size:.875rem;font-weight:500}.navbar__avatar{background-color:var(--color-primary);width:32px;height:32px;color:var(--color-text-on-primary);text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex}.navbar__logout{width:36px;height:36px;color:var(--color-text-muted);border-radius:10px;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.navbar__logout:hover{background-color:var(--color-error-light);color:var(--color-error)}.mobile-header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);height:56px;box-shadow:var(--shadow-sm);z-index:100;justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}@media (width>=768px){.mobile-header{display:none}}.mobile-header__brand{color:var(--color-primary);align-items:center;gap:4px;font-size:1rem;font-weight:700;transition:opacity .15s;display:flex}.mobile-header__brand:hover{opacity:.85}.mobile-header__user{align-items:center;gap:4px;text-decoration:none;transition:opacity .15s;display:flex}.mobile-header__user:hover{opacity:.75}.mobile-header__user-name{color:var(--color-text);font-size:.85rem;font-weight:500}.mobile-header__avatar{background-color:var(--color-primary);width:32px;height:32px;color:var(--color-text-on-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex}.footer__tab-bar{background-color:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;align-items:stretch;height:64px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #0000000f}@media (width>=768px){.footer__tab-bar{display:none}}.footer__tab-item{color:var(--color-text-muted);padding-bottom:env(safe-area-inset-bottom,0);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-width:0;font-size:.65rem;font-weight:500;transition:color .15s;display:flex}.footer__tab-item span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;line-height:1;overflow:hidden}.footer__tab-item:hover,.footer__tab-item--active{color:var(--color-primary)}.footer__tab-fab{padding-bottom:env(safe-area-inset-bottom,0);flex:1;justify-content:center;align-items:center;display:flex}.footer__tab-fab svg{background-color:var(--color-primary);width:48px;height:48px;color:var(--color-text-on-primary);box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;padding:11px;transition:background-color .15s,transform .15s;display:flex}.footer__tab-fab:hover svg{background-color:var(--color-primary-hover);transform:scale(1.05)}.footer__tab-fab:active svg{transform:scale(.97)}.footer__copyright{display:none}@media (width>=768px){.footer__copyright{border-top:1px solid var(--color-border);height:48px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.8rem;display:flex}}.app-layout{flex-direction:column;min-height:100dvh;display:flex}.app-layout__main{flex:1;padding:72px 16px 80px}@media (width>=768px){.app-layout__main{width:100%;max-width:1280px;margin:0 auto;padding:88px 32px 24px}}.auth-layout{background-color:var(--color-background);justify-content:center;align-items:center;min-height:100dvh;padding:16px;display:flex}.auth-layout__card{background-color:var(--color-surface);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border-radius:16px;padding:48px 32px}@media (width>=768px){.auth-layout__card{padding:48px}}.auth-layout__logo{color:var(--color-primary);justify-content:center;align-items:center;gap:8px;margin-bottom:32px;font-size:1.25rem;font-weight:700;display:flex}.input-field{flex-direction:column;gap:4px;display:flex}.input-field__label{color:var(--color-text);font-size:.875rem;font-weight:500}.input-field__input{border:1.5px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;padding:8px 16px;font-size:1rem;transition:border-color .15s,box-shadow .15s}.input-field__input::placeholder{color:var(--color-text-muted)}.input-field__input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.input-field__hint{color:var(--color-text-muted);font-size:.8rem}.input-field__error{color:var(--color-error);font-size:.8rem}.input-field--error .input-field__input{border-color:var(--color-error)}.input-field--error .input-field__input:focus{box-shadow:0 0 0 3px var(--color-error-light)}.btn{cursor:pointer;white-space:nowrap;border:1.5px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 24px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,opacity .15s,transform .1s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--full-width{width:100%}.btn--primary{background-color:var(--color-primary);color:var(--color-text-on-primary)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--secondary{color:var(--color-primary);border-color:var(--color-primary);background-color:#0000}.btn--secondary:hover:not(:disabled){background-color:var(--color-primary-light)}.btn--ghost{color:var(--color-text-muted);background-color:#0000;border-color:#0000}.btn--ghost:hover:not(:disabled){background-color:var(--color-background);color:var(--color-text)}.btn__spinner{flex-shrink:0;width:16px;height:16px;animation:.75s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}.form-message{border-radius:10px;padding:8px 16px;font-size:.875rem;font-weight:500}.form-message--error{background-color:var(--color-error-light);color:var(--color-error)}.form-message--success{background-color:var(--color-success-light);color:var(--color-success)}.login-page{flex-direction:column;gap:24px;display:flex}.login-page__title{color:var(--color-text);text-align:center;font-size:1.5rem;font-weight:700}.login-page__subtitle{text-align:center;color:var(--color-text-muted);margin-top:-16px;font-size:.9rem}.login-page__form{flex-direction:column;gap:16px;display:flex}.login-page__password-row{flex-direction:column;gap:4px;display:flex}.login-page__forgot{color:var(--color-primary);align-self:flex-end;font-size:.8rem;font-weight:500}.login-page__forgot:hover{text-decoration:underline}.login-page__divider{color:var(--color-text-muted);align-items:center;gap:16px;font-size:.8rem;display:flex}.login-page__divider:before,.login-page__divider:after{content:"";background-color:var(--color-border);flex:1;height:1px}.login-page__social{flex-direction:column;gap:8px;display:flex}@media (width>=768px){.login-page__social{flex-direction:row}}.login-page__social-btn{border:1.5px solid var(--color-border);color:var(--color-text);background-color:var(--color-surface);cursor:pointer;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,border-color .15s;display:flex}.login-page__social-btn svg{flex-shrink:0;width:18px;height:18px}.login-page__social-btn:hover{background-color:var(--color-background);border-color:var(--color-text-muted)}.login-page__register-link{text-align:center;color:var(--color-text-muted);font-size:.875rem}.login-page__register-link a{color:var(--color-primary);font-weight:600}.login-page__register-link a:hover{text-decoration:underline}.register-page{flex-direction:column;gap:24px;display:flex}.register-page__title{color:var(--color-text);text-align:center;font-size:1.5rem;font-weight:700}.register-page__subtitle{text-align:center;color:var(--color-text-muted);margin-top:-16px;font-size:.9rem}.register-page__form{flex-direction:column;gap:16px;display:flex}.register-page__name-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.register-page__login-link{text-align:center;color:var(--color-text-muted);font-size:.875rem}.register-page__login-link a{color:var(--color-primary);font-weight:600}.register-page__login-link a:hover{text-decoration:underline}.register-page--success{text-align:center;align-items:center;gap:16px}.register-page__success-icon{color:var(--color-success)}.register-page__success-text{color:var(--color-text-muted);font-size:.9rem;line-height:1.6}.register-page__success-text strong{color:var(--color-text)}.register-page__back-link{color:var(--color-primary);font-size:.875rem;font-weight:600}.register-page__back-link:hover{text-decoration:underline}.activate-page{flex-direction:column;gap:24px;display:flex}.activate-page__title{color:var(--color-text);text-align:center;font-size:1.5rem;font-weight:700}.activate-page__subtitle{text-align:center;color:var(--color-text-muted);margin-top:-16px;font-size:.9rem}.activate-page__form{flex-direction:column;gap:16px;display:flex}.activate-page__reissue{text-align:center;color:var(--color-text-muted);font-size:.9rem}.activate-page__reissue a{color:var(--color-primary);font-weight:600}.activate-page__reissue a:hover{text-decoration:underline}.forgot-page{flex-direction:column;gap:24px;display:flex}.forgot-page__title{color:var(--color-text);text-align:center;font-size:1.5rem;font-weight:700}.forgot-page__subtitle{text-align:center;color:var(--color-text-muted);margin-top:-16px;font-size:.9rem;line-height:1.6}.forgot-page__form{flex-direction:column;gap:16px;display:flex}.forgot-page__back-link{text-align:center;color:var(--color-primary);font-size:.875rem;font-weight:600}.forgot-page__back-link:hover{text-decoration:underline}.forgot-page--success{text-align:center;align-items:center;gap:16px}.forgot-page__success-icon{color:var(--color-success)}.forgot-page__success-text{color:var(--color-text-muted);font-size:.9rem;line-height:1.6}.month-navigator{justify-content:center;align-items:center;gap:16px;display:flex}.month-navigator__label{color:var(--color-text);text-align:center;min-width:160px;font-size:1.1rem;font-weight:700}.month-navigator__btn{width:36px;height:36px;color:var(--color-text-muted);border-radius:10px;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.month-navigator__btn:hover:not(:disabled){background-color:var(--color-primary-light);color:var(--color-primary)}.month-navigator__btn:disabled{opacity:.3;cursor:not-allowed}.spending-summary{background-color:var(--color-primary);color:var(--color-text-on-primary);text-align:center;border-radius:16px;padding:32px}.spending-summary__label{opacity:.85;margin-bottom:4px;font-size:.875rem;font-weight:500}.spending-summary__amount{letter-spacing:-.5px;margin-bottom:8px;font-size:2.25rem;font-weight:800}@media (width>=768px){.spending-summary__amount{font-size:2.75rem}}.spending-summary__meta{opacity:.8;font-size:.875rem}.category-breakdown{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:24px}.category-breakdown__title{color:var(--color-text);margin-bottom:16px;font-size:1rem;font-weight:700}.category-breakdown__list{flex-direction:column;gap:16px;display:flex}.category-breakdown__item{flex-direction:column;gap:4px;display:flex}.category-breakdown__header{align-items:center;gap:8px;display:flex}.category-breakdown__icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.category-breakdown__name{color:var(--color-text);flex:1;font-size:.9rem;font-weight:500}.category-breakdown__amount{color:var(--color-text);font-size:.9rem;font-weight:600}.category-breakdown__pct{color:var(--color-text-muted);text-align:right;min-width:36px;font-size:.8rem}.category-breakdown__bar-track{background-color:var(--color-background);border-radius:99px;height:6px;overflow:hidden}.category-breakdown__bar-fill{border-radius:99px;height:100%;transition:width .4s}.top-stores{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:24px}.top-stores__title{color:var(--color-text);margin-bottom:16px;font-size:1rem;font-weight:700}.top-stores__list{flex-direction:column;gap:8px;display:flex}.top-stores__item{align-items:center;gap:8px;padding:8px 0;display:flex}.top-stores__item+.top-stores__item{border-top:1px solid var(--color-border)}.top-stores__avatar{background-color:var(--color-primary-light);width:36px;height:36px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.top-stores__name{color:var(--color-text);flex:1;font-size:.9rem;font-weight:500}.top-stores__meta{color:var(--color-text-muted);white-space:nowrap;font-size:.8rem}.top-stores__amount{color:var(--color-text);text-align:right;min-width:72px;font-size:.9rem;font-weight:600}.recent-receipts{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:24px}.recent-receipts__title{color:var(--color-text);margin-bottom:16px;font-size:1rem;font-weight:700}.recent-receipts__list{flex-direction:column;display:flex}.recent-receipts__item{align-items:center;gap:8px;padding:8px 0;transition:opacity .15s;display:flex}.recent-receipts__item+.recent-receipts__item{border-top:1px solid var(--color-border)}.recent-receipts__item:hover{opacity:.75}.recent-receipts__icon{background-color:var(--color-background);width:32px;height:32px;color:var(--color-text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.recent-receipts__store{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;font-weight:500;overflow:hidden}.recent-receipts__date{color:var(--color-text-muted);white-space:nowrap;font-size:.8rem}.recent-receipts__amount{color:var(--color-text);text-align:right;min-width:72px;font-size:.9rem;font-weight:600}.empty-dashboard{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px 32px;display:flex}.empty-dashboard__icon{color:var(--color-border)}.empty-dashboard__title{color:var(--color-text);font-size:1.25rem;font-weight:700}.empty-dashboard__subtitle{color:var(--color-text-muted);max-width:280px;font-size:.9rem;line-height:1.6}.empty-dashboard__cta{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;align-items:center;margin-top:8px;padding:8px 32px;font-size:.9rem;font-weight:600;transition:background-color .15s;display:inline-flex}.empty-dashboard__cta:hover{background-color:var(--color-primary-hover)}.skeleton-block{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-background) 50%, var(--color-border) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite skeleton-pulse}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-dashboard{flex-direction:column;gap:24px;display:flex}.skeleton-dashboard__summary{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:32px;display:flex}.skeleton-dashboard__summary-label{width:80px;height:14px}.skeleton-dashboard__summary-amount{border-radius:10px;width:160px;height:40px}.skeleton-dashboard__summary-meta{width:120px;height:12px}.skeleton-dashboard__section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:16px;padding:24px;display:flex}.skeleton-dashboard__section-title{width:120px;height:16px}.skeleton-dashboard__category-row,.skeleton-dashboard__store-row,.skeleton-dashboard__receipt-row{align-items:center;gap:8px;display:flex}.skeleton-dashboard__category-icon{border-radius:6px;flex-shrink:0;width:28px;height:28px}.skeleton-dashboard__category-name{width:90px;height:14px}.skeleton-dashboard__category-bar{border-radius:99px;flex:1;height:6px}.skeleton-dashboard__store-avatar{border-radius:10px;flex-shrink:0;width:36px;height:36px}.skeleton-dashboard__store-name{flex:1;height:14px}.skeleton-dashboard__store-amount{width:60px;height:14px}.skeleton-dashboard__receipt-icon{border-radius:6px;flex-shrink:0;width:32px;height:32px}.skeleton-dashboard__receipt-name{flex:1;height:14px}.skeleton-dashboard__receipt-amount{width:60px;height:14px}.page-dashboard{flex-direction:column;gap:24px;width:100%;max-width:960px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-dashboard{padding:32px 24px}}.page-dashboard__error{text-align:center;color:var(--color-error);padding:32px 0;font-size:.9rem}.page-dashboard__content,.page-dashboard__grid{flex-direction:column;gap:24px;display:flex}@media (width>=1024px){.page-dashboard__grid{grid-template-columns:1fr 1fr;align-items:start;display:grid}}.page-dashboard__right-col{flex-direction:column;gap:24px;display:flex}.receipt-list-item__link{align-items:center;gap:8px;padding:8px 0;text-decoration:none;transition:opacity .15s;display:flex}.receipt-list-item__link:hover{opacity:.75}.receipt-list-item+.receipt-list-item{border-top:1px solid var(--color-border)}.receipt-list-item__icon{background-color:var(--color-background);width:36px;height:36px;color:var(--color-text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.receipt-list-item__info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.receipt-list-item__store{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.receipt-list-item__date{color:var(--color-text-muted);font-size:.78rem}.receipt-list-item__amount{color:var(--color-text);text-align:right;flex-shrink:0;min-width:72px;font-size:.9rem;font-weight:600}.receipt-list-skeleton__amount,.receipt-list-skeleton__date,.receipt-list-skeleton__store,.receipt-list-skeleton__icon{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-background) 50%, var(--color-border) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite skeleton-pulse}.receipt-list-skeleton{flex-direction:column;display:flex}.receipt-list-skeleton__row{align-items:center;gap:8px;padding:8px 0;display:flex}.receipt-list-skeleton__row+.receipt-list-skeleton__row{border-top:1px solid var(--color-border)}.receipt-list-skeleton__icon{flex-shrink:0;width:36px;height:36px}.receipt-list-skeleton__info{flex-direction:column;flex:1;gap:4px;display:flex}.receipt-list-skeleton__store{width:110px;height:14px}.receipt-list-skeleton__date{width:60px;height:11px}.receipt-list-skeleton__amount{flex-shrink:0;width:60px;height:14px}.empty-receipt-list{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px 32px;display:flex}.empty-receipt-list__icon{color:var(--color-border)}.empty-receipt-list__title{color:var(--color-text);font-size:1.25rem;font-weight:700}.empty-receipt-list__subtitle{color:var(--color-text-muted);max-width:260px;font-size:.9rem;line-height:1.6}.empty-receipt-list__cta{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;align-items:center;margin-top:8px;padding:8px 32px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .15s;display:inline-flex}.empty-receipt-list__cta:hover{background-color:var(--color-primary-hover)}.page-receipts{flex-direction:column;gap:24px;width:100%;max-width:960px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-receipts{padding:32px 24px}}.page-receipts__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:24px}.page-receipts__date-group+.page-receipts__date-group{margin-top:16px}.page-receipts__date-heading{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-border);margin-bottom:4px;padding-bottom:4px;font-size:.75rem;font-weight:700}.page-receipts__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.page-receipts__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px 32px;font-size:.9rem;display:flex}.page-receipts__retry{background-color:var(--color-primary);color:var(--color-text-on-primary);cursor:pointer;border:none;border-radius:10px;padding:8px 24px;font-size:.9rem;font-weight:600;transition:background-color .15s}.page-receipts__retry:hover{background-color:var(--color-primary-hover)}.image-uploader{flex-direction:column;gap:16px;display:flex}.image-uploader__input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.image-uploader__zone{border:2px dashed var(--color-border);background-color:var(--color-surface);cursor:pointer;text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 32px;transition:border-color .15s,background-color .15s;display:flex}.image-uploader__zone:hover,.image-uploader__zone:focus-visible{border-color:var(--color-primary);background-color:var(--color-primary-light);outline:none}.image-uploader__zone--drag-over{border-color:var(--color-primary);background-color:var(--color-primary-light)}.image-uploader__zone-icon{color:var(--color-text-muted)}.image-uploader__zone-label{color:var(--color-text);font-size:.95rem;font-weight:500}.image-uploader__zone-hint{color:var(--color-text-muted);font-size:.8rem}.image-uploader__preview{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:8px;display:flex;overflow:hidden}.image-uploader__preview-img{object-fit:contain;background-color:var(--color-background);width:100%;max-height:280px}.image-uploader__preview-info{align-items:center;gap:8px;padding:8px 16px;display:flex}.image-uploader__preview-name{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.85rem;overflow:hidden}.image-uploader__preview-remove{background-color:var(--color-background);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s;display:flex}.image-uploader__preview-remove:hover{color:var(--color-error)}.image-uploader__preview-remove:disabled{opacity:.4;cursor:not-allowed}.image-uploader__error{color:var(--color-error);text-align:center;font-size:.85rem}.image-uploader__btn{background-color:var(--color-primary);width:100%;color:var(--color-text-on-primary);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:1rem;font-weight:600;transition:background-color .15s;display:flex}.image-uploader__btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.image-uploader__btn:disabled{opacity:.5;cursor:not-allowed}.image-uploader__btn-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite uploader-spin}@keyframes uploader-spin{to{transform:rotate(360deg)}}.processing-indicator{background-color:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:16px;padding:48px 32px;display:flex}.processing-indicator__icon{color:var(--color-primary);animation:1s linear infinite processing-spin}@keyframes processing-spin{to{transform:rotate(360deg)}}.processing-indicator__message{color:var(--color-text);min-height:1.5em;font-size:1rem;font-weight:600}.processing-indicator__hint{color:var(--color-text-muted);font-size:.85rem}.processing-indicator__cancel{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:10px;margin-top:8px;padding:8px 24px;font-size:.9rem;transition:color .15s,border-color .15s}.processing-indicator__cancel:hover{color:var(--color-text);border-color:var(--color-text-muted)}.extraction-review-form{flex-direction:column;gap:24px;display:flex}.extraction-review-form__fieldset{display:contents}.extraction-review-form__fieldset:disabled{opacity:.6;pointer-events:none}.extraction-review-form__section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:8px;font-size:.85rem;font-weight:700}.extraction-review-form__fields{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;grid-template-columns:1fr 1fr;gap:8px 16px;padding:24px;display:grid}@media (width>=768px){.extraction-review-form__fields{grid-template-columns:1fr 1fr 1fr 1fr}}.extraction-review-form__field{flex-direction:column;gap:4px;display:flex}.extraction-review-form__field:first-child{grid-column:1/-1}@media (width>=768px){.extraction-review-form__field:first-child{grid-column:span 2}}.extraction-review-form__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.extraction-review-form__input{background-color:var(--color-background);border:1px solid var(--color-border);color:var(--color-text);border-radius:6px;width:100%;padding:8px;font-size:.9rem}.extraction-review-form__input:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.extraction-review-form__input::placeholder{color:var(--color-text-muted)}.extraction-review-form__alert{background-color:var(--color-warning-light,#fef9c3);border:1px solid var(--color-warning,#ca8a04);color:var(--color-warning-text,#713f12);border-radius:10px;align-items:flex-start;gap:8px;padding:8px 16px;font-size:.85rem;line-height:1.5;display:flex}.extraction-review-form__alert svg{color:var(--color-warning,#ca8a04);flex-shrink:0;margin-top:1px}.extraction-review-form__items-header{justify-content:space-between;align-items:baseline;display:flex}.extraction-review-form__items-sum{color:var(--color-text);font-size:.9rem;font-weight:600}.extraction-review-form__items{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.extraction-review-form__item{flex-direction:column;gap:4px;padding:8px 16px;display:flex}.extraction-review-form__item+.extraction-review-form__item{border-top:1px solid var(--color-border)}@media (width>=768px){.extraction-review-form__item{flex-direction:row;align-items:center;gap:8px}.extraction-review-form__item-name{flex:1;min-width:0}}.extraction-review-form__item-controls{flex-shrink:0;align-items:center;gap:4px;display:flex}.extraction-review-form__item-qty{text-align:center;width:52px}.extraction-review-form__item-sep{color:var(--color-text-muted);flex-shrink:0;font-size:.85rem}.extraction-review-form__item-price{width:72px}.extraction-review-form__item-total{text-align:right;min-width:68px;color:var(--color-text);flex-shrink:0;font-size:.85rem;font-weight:600}.extraction-review-form__item-remove{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:flex}.extraction-review-form__item-remove:hover{color:var(--color-error);background-color:var(--color-background)}.extraction-review-form__add-item{border:1px dashed var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:4px;width:100%;padding:8px 16px;font-size:.85rem;transition:color .15s,border-color .15s;display:flex}.extraction-review-form__add-item:hover{color:var(--color-primary);border-color:var(--color-primary)}.extraction-review-form__actions{gap:16px;display:flex}.extraction-review-form__btn{cursor:pointer;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:.95rem;font-weight:600;transition:background-color .15s;display:flex}.extraction-review-form__btn:disabled{opacity:.5;cursor:not-allowed}.extraction-review-form__btn--reject{background-color:var(--color-background);color:var(--color-text-muted);border:1px solid var(--color-border)}.extraction-review-form__btn--reject:hover:not(:disabled){background-color:var(--color-border);color:var(--color-text)}.extraction-review-form__btn--confirm{background-color:var(--color-primary);color:var(--color-text-on-primary)}.extraction-review-form__btn--confirm:hover:not(:disabled){background-color:var(--color-primary-hover)}.extraction-review-form__btn-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite erf-spin}@keyframes erf-spin{to{transform:rotate(360deg)}}.page-new-receipt{flex-direction:column;gap:24px;width:100%;max-width:680px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-new-receipt{padding:32px 24px}}.page-new-receipt__title{color:var(--color-text);font-size:1.25rem;font-weight:700}@keyframes detail-skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.receipt-detail-skeleton__item-total,.receipt-detail-skeleton__item-name,.receipt-detail-skeleton__store-date,.receipt-detail-skeleton__store-name,.receipt-detail-skeleton__avatar{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-background) 50%, var(--color-border) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite detail-skeleton-pulse}.receipt-detail-skeleton{flex-direction:column;gap:16px;display:flex}.receipt-detail-skeleton__store{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;align-items:center;gap:16px;padding:24px;display:flex}.receipt-detail-skeleton__avatar{border-radius:10px;flex-shrink:0;width:52px;height:52px}.receipt-detail-skeleton__store-text{flex-direction:column;gap:4px;display:flex}.receipt-detail-skeleton__store-name{width:140px;height:18px}.receipt-detail-skeleton__store-date{width:100px;height:13px}.receipt-detail-skeleton__items{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:16px;padding:24px;display:flex}.receipt-detail-skeleton__item{align-items:center;gap:8px;display:flex}.receipt-detail-skeleton__item-name{flex:1;height:14px}.receipt-detail-skeleton__item-total{width:60px;height:14px}.page-receipt-detail{flex-direction:column;gap:16px;width:100%;max-width:680px;margin:0 auto;padding:16px;display:flex}@media (width>=1024px){.page-receipt-detail{gap:24px;padding:32px 24px}}.page-receipt-detail__header{justify-content:space-between;align-items:center;display:flex}.page-receipt-detail__back{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;padding:4px 0;font-size:.9rem;font-weight:500;transition:opacity .15s;display:flex}.page-receipt-detail__back:hover{opacity:.75}.page-receipt-detail__header-date{color:var(--color-text-muted);font-size:.85rem}.page-receipt-detail__store-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;align-items:center;gap:16px;padding:24px;display:flex}.page-receipt-detail__store-avatar{background-color:var(--color-primary-light);width:52px;height:52px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;font-weight:700;display:flex}.page-receipt-detail__store-name{color:var(--color-text);font-size:1.1rem;font-weight:700}.page-receipt-detail__store-date{color:var(--color-text-muted);margin-top:2px;font-size:.85rem}.page-receipt-detail__items-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;overflow:hidden}.page-receipt-detail__category{padding:16px 24px}.page-receipt-detail__category+.page-receipt-detail__category{border-top:1px solid var(--color-border)}.page-receipt-detail__category-label{text-transform:uppercase;letter-spacing:.06em;border-radius:99px;align-items:center;margin-bottom:8px;padding:2px 10px;font-size:.7rem;font-weight:700;display:inline-flex}.page-receipt-detail__item-list{border-left:3px solid;margin:0;padding:0 0 0 8px;list-style:none}.page-receipt-detail__item{padding:4px 0}.page-receipt-detail__item+.page-receipt-detail__item{border-top:1px solid var(--color-border)}.page-receipt-detail__item-row{align-items:baseline;gap:8px;display:flex}.page-receipt-detail__item-name{color:var(--color-text);flex:1;font-size:.9rem;font-weight:500;text-decoration:none}.page-receipt-detail__item-name--link{color:var(--color-primary);transition:opacity .15s}.page-receipt-detail__item-name--link:hover{opacity:.75}.page-receipt-detail__item-total{color:var(--color-text);text-align:right;flex-shrink:0;min-width:64px;font-size:.9rem;font-weight:600}.page-receipt-detail__item-breakdown{color:var(--color-text-muted);margin-top:1px;font-size:.78rem}.page-receipt-detail__summary{border-top:2px solid var(--color-border);flex-direction:column;gap:8px;padding:16px 24px;display:flex}.page-receipt-detail__summary-row{color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.page-receipt-detail__summary-row--total{color:var(--color-text);margin-top:4px;padding-top:4px;font-size:1rem;font-weight:700}.page-receipt-detail__summary-discount{color:var(--color-success);font-weight:600}.page-receipt-detail__image-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;overflow:hidden}.page-receipt-detail__image{object-fit:contain;background-color:var(--color-background);width:100%;max-height:400px;display:block}.page-receipt-detail__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px;font-size:.9rem;display:flex}.page-receipt-detail__retry{background-color:var(--color-primary);color:var(--color-text-on-primary);cursor:pointer;border:none;border-radius:10px;padding:8px 24px;font-size:.9rem;font-weight:600;transition:background-color .15s}.page-receipt-detail__retry:hover{background-color:var(--color-primary-hover)}.product-list-item+.product-list-item{border-top:1px solid var(--color-border)}.product-list-item__link{align-items:center;gap:8px;padding:8px 0;text-decoration:none;transition:opacity .15s;display:flex}.product-list-item__link:hover{opacity:.75}.product-list-item__main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.product-list-item__badge{letter-spacing:.02em;white-space:nowrap;border-radius:99px;align-self:flex-start;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.product-list-item__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.product-list-item__meta{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.product-list-item__right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.product-list-item__price{color:var(--color-text);text-align:right;min-width:60px;font-size:.9rem;font-weight:600}.skeleton-block,.product-list-skeleton__price,.product-list-skeleton__spark,.product-list-skeleton__meta,.product-list-skeleton__name,.product-list-skeleton__badge{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-background) 50%, var(--color-border) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite skeleton-pulse}.product-list-skeleton{flex-direction:column;display:flex}.product-list-skeleton__card{align-items:center;gap:8px;padding:8px 0;display:flex}.product-list-skeleton__card+.product-list-skeleton__card{border-top:1px solid var(--color-border)}.product-list-skeleton__main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.product-list-skeleton__right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.product-list-skeleton__badge{border-radius:99px;width:72px;height:18px}.product-list-skeleton__name{width:140px;height:14px}.product-list-skeleton__meta{width:180px;height:12px}.product-list-skeleton__spark{border-radius:6px;width:80px;height:36px}.product-list-skeleton__price{width:52px;height:14px}.empty-product-list{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.empty-product-list__icon{color:var(--color-text-muted);opacity:.4;margin-bottom:8px}.empty-product-list__title{color:var(--color-text);margin:0;font-size:1rem;font-weight:600}.empty-product-list__subtitle{color:var(--color-text-muted);max-width:280px;margin:0;font-size:.85rem}.page-products{flex-direction:column;gap:16px;width:100%;max-width:960px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-products{gap:24px;padding:32px 24px}}.page-products__search-wrap{align-items:center;display:flex;position:relative}.page-products__search-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;left:8px}.page-products__search{border:1px solid var(--color-border);background-color:var(--color-surface);width:100%;color:var(--color-text);border-radius:10px;outline:none;padding:8px 8px 8px 32px;font-size:.9rem;transition:border-color .15s}.page-products__search::placeholder{color:var(--color-text-muted)}.page-products__search:focus{border-color:var(--color-primary)}.page-products__filters{scrollbar-width:none;gap:4px;padding-bottom:4px;display:flex;overflow-x:auto}.page-products__filters::-webkit-scrollbar{display:none}.page-products__filter-pill{border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-muted);white-space:nowrap;cursor:pointer;border-radius:99px;flex-shrink:0;padding:5px 8px;font-size:.8rem;font-weight:500;transition:background-color .15s,color .15s,border-color .15s}.page-products__filter-pill:hover{background-color:var(--color-background)}.page-products__filter-pill--active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.page-products__filter-pill--active:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.page-products__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:8px 24px}.page-products__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.page-products__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px 32px;font-size:.9rem;display:flex}.page-products__retry{background-color:var(--color-primary);color:var(--color-text-on-primary);cursor:pointer;border:none;border-radius:10px;padding:8px 24px;font-size:.9rem;font-weight:600;transition:background-color .15s}.page-products__retry:hover{background-color:var(--color-primary-hover)}.price-chart{width:100%}.price-chart__container{width:100%;height:220px}.price-chart__empty{height:220px;color:var(--color-text-muted);justify-content:center;align-items:center;margin:0;font-size:.85rem;display:flex}.price-chart__tooltip{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;gap:2px;padding:8px 16px;display:flex;box-shadow:0 2px 8px #00000014}.price-chart__tooltip p{color:var(--color-text-muted);margin:0;font-size:.8rem}.price-chart__tooltip-store{font-weight:600;color:var(--color-text)!important}.price-chart__tooltip-price{font-weight:700;color:var(--color-primary)!important;font-size:.875rem!important}.page-product-detail{flex-direction:column;gap:16px;width:100%;max-width:960px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-product-detail{gap:24px;padding:32px 24px}}.page-product-detail__header{align-items:center;display:flex}.page-product-detail__back{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.9rem;font-weight:500;transition:opacity .15s;display:flex}.page-product-detail__back:hover{opacity:.75}.page-product-detail__title-row{flex-direction:column;gap:4px;display:flex}.page-product-detail__category-badge{letter-spacing:.02em;border-radius:99px;align-self:flex-start;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-block}.page-product-detail__name{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:700;line-height:1.3}.page-product-detail__stats-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;display:flex;overflow:hidden}.page-product-detail__stat{flex-direction:column;flex:1;align-items:center;gap:4px;padding:16px 8px;display:flex}.page-product-detail__stat--mid{border-left:1px solid var(--color-border);border-right:1px solid var(--color-border)}.page-product-detail__stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:500}.page-product-detail__stat-value{color:var(--color-text);font-size:1rem;font-weight:700}.page-product-detail__chart-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:16px;padding:16px;display:flex}.page-product-detail__store-selector-wrap{justify-content:flex-end;display:flex}.page-product-detail__store-selector{border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-text);cursor:pointer;border-radius:10px;outline:none;padding:4px 8px;font-size:.85rem;transition:border-color .15s}.page-product-detail__store-selector:focus{border-color:var(--color-primary)}.page-product-detail__stores-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:16px;padding:24px;display:flex}.page-product-detail__stores-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.85rem;font-weight:700}.page-product-detail__stores-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.page-product-detail__store-row{align-items:center;gap:8px;padding:8px 0;display:flex}.page-product-detail__store-row+.page-product-detail__store-row{border-top:1px solid var(--color-border)}.page-product-detail__store-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;font-weight:500;overflow:hidden}.page-product-detail__store-count{color:var(--color-text-muted);flex-shrink:0;font-size:.8rem}.page-product-detail__store-price{color:var(--color-text);flex-shrink:0;font-size:.85rem;font-weight:600}.page-product-detail__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px 32px;font-size:.9rem;display:flex}.page-product-detail__retry{background-color:var(--color-primary);color:var(--color-text-on-primary);cursor:pointer;border:none;border-radius:10px;padding:8px 24px;font-size:.9rem;font-weight:600;transition:background-color .15s}.page-product-detail__retry:hover{background-color:var(--color-primary-hover)}.skeleton-block,.product-detail-skeleton__store-meta,.product-detail-skeleton__store-name,.product-detail-skeleton__chart,.product-detail-skeleton__stat-value,.product-detail-skeleton__stat-label,.product-detail-skeleton__name,.product-detail-skeleton__badge{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-background) 50%, var(--color-border) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite skeleton-pulse}.product-detail-skeleton{flex-direction:column;gap:16px;display:flex}.product-detail-skeleton__header{flex-direction:column;gap:4px;display:flex}.product-detail-skeleton__badge{border-radius:99px;width:72px;height:20px}.product-detail-skeleton__name{width:220px;height:28px}.product-detail-skeleton__stats{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;display:flex;overflow:hidden}.product-detail-skeleton__stat{flex-direction:column;flex:1;align-items:center;gap:4px;padding:16px 8px;display:flex}.product-detail-skeleton__stat-label{width:40px;height:10px}.product-detail-skeleton__stat-value{width:56px;height:20px}.product-detail-skeleton__chart{border-radius:16px;height:280px}.product-detail-skeleton__stores{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:16px;padding:24px;display:flex}.product-detail-skeleton__store-row{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.product-detail-skeleton__store-row+.product-detail-skeleton__store-row{border-top:1px solid var(--color-border)}.product-detail-skeleton__store-name{width:100px;height:14px}.product-detail-skeleton__store-meta{width:80px;height:14px}.member-avatars{align-items:center;display:flex}.member-avatars__avatar{color:#fff;border:2px solid var(--color-surface);text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-left:-6px;font-size:.65rem;font-weight:700;display:flex}.member-avatars__avatar:first-child{margin-left:0}.member-avatars__avatar--pending{opacity:.65;border-style:dashed}.member-avatars__overflow{width:26px;height:26px;color:var(--color-text-muted);background-color:var(--color-background);border:2px solid var(--color-surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:-6px;font-size:.65rem;font-weight:700;display:flex}.shopping-list-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:8px;padding:16px;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex}.shopping-list-card:hover{box-shadow:var(--shadow-sm);border-color:var(--color-primary)}.shopping-list-card--archived{opacity:.6}.shopping-list-card--archived:hover{border-color:var(--color-border)}.shopping-list-card__header{justify-content:space-between;align-items:center;gap:8px;display:flex}.shopping-list-card__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.95rem;font-weight:600;overflow:hidden}.shopping-list-card__badge{color:var(--color-text-muted);background-color:var(--color-background);border-radius:99px;flex-shrink:0;padding:2px 8px;font-size:.7rem;font-weight:600}.shopping-list-card__progress{align-items:center;gap:8px;display:flex}.shopping-list-card__bar{background-color:var(--color-border);border-radius:99px;flex:1;height:6px;overflow:hidden}.shopping-list-card__bar-fill{background-color:var(--color-primary);border-radius:99px;height:100%;transition:width .3s}.shopping-list-card__count{color:var(--color-text-muted);text-align:right;flex-shrink:0;min-width:30px;font-size:.75rem;font-weight:500}@keyframes sl-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.sl-skeleton__avatar,.sl-skeleton__bar,.sl-skeleton__name{background:linear-gradient(90deg, var(--color-background) 25%, var(--color-border) 50%, var(--color-background) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite sl-shimmer}.sl-skeleton{flex-direction:column;gap:16px;display:flex}.sl-skeleton__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:8px;padding:16px;display:flex}.sl-skeleton__name{width:55%;height:16px}.sl-skeleton__bar{border-radius:99px;height:6px}.sl-skeleton__avatars{gap:4px;display:flex}.sl-skeleton__avatar{border-radius:50%;width:26px;height:26px}.page-sl{flex-direction:column;gap:16px;width:100%;max-width:640px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-sl{gap:24px;padding:32px 24px}}.page-sl__top{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-sl__title{color:var(--color-text);font-size:1.2rem;font-weight:700}.page-sl__new-btn{background-color:var(--color-primary);color:var(--color-text-on-primary);white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:4px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s;display:flex}.page-sl__new-btn:hover{background-color:var(--color-primary-hover)}.page-sl__create-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.page-sl__create-input{border:1px solid var(--color-primary);min-width:180px;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;flex:1;padding:8px 16px;font-size:.9rem}.page-sl__create-input::placeholder{color:var(--color-text-muted)}.page-sl__create-submit{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s}.page-sl__create-submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.page-sl__create-submit:disabled{opacity:.5;cursor:not-allowed}.page-sl__create-cancel{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s}.page-sl__create-cancel:hover{background-color:var(--color-background)}.page-sl__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.page-sl__divider{align-items:center;gap:8px;margin-top:8px;display:flex}.page-sl__divider span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.8rem;font-weight:600}.page-sl__divider:before,.page-sl__divider:after{content:"";background-color:var(--color-border);flex:1;height:1px}.page-sl__empty,.page-sl__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px 32px;font-size:.9rem;display:flex}.page-sl__retry{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;padding:8px 24px;font-size:.9rem;font-weight:600;transition:background-color .15s}.page-sl__retry:hover{background-color:var(--color-primary-hover)}.sl-item{align-items:center;gap:8px;padding:8px 0;display:flex}.sl-item+.sl-item{border-top:1px solid var(--color-border)}.sl-item--checked .sl-item__name{color:var(--color-text-muted);opacity:.7;text-decoration:line-through}.sl-item__label{cursor:pointer;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.sl-item__checkbox{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.sl-item__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;transition:color .15s,opacity .15s;overflow:hidden}.sl-item__store{color:var(--color-text-muted);font-size:.8rem;font-weight:400}.sl-item__right{flex-shrink:0;align-items:center;gap:8px;display:flex}.sl-item__qty-stepper{align-items:center;gap:2px;display:flex}.sl-item__qty-btn{width:22px;height:22px;color:var(--color-text-muted);border-radius:6px;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.sl-item__qty-btn:hover{background-color:var(--color-primary-light);color:var(--color-primary)}.sl-item__qty-input{text-align:center;width:3rem;color:var(--color-text);appearance:textfield;background:0 0;border:1px solid #0000;border-radius:6px;outline:none;padding:1px 2px;font-size:.8rem;font-weight:600;transition:border-color .15s,background-color .15s}.sl-item__qty-input::-webkit-outer-spin-button{appearance:none}.sl-item__qty-input::-webkit-inner-spin-button{appearance:none}.sl-item__qty-input:focus{border-color:var(--color-primary);background-color:var(--color-surface)}.sl-item__unit{color:var(--color-text-muted);min-width:16px;font-size:.72rem;font-weight:500}.sl-item__remove{width:28px;height:28px;color:var(--color-text-muted);border-radius:6px;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.sl-item__remove:hover{background-color:var(--color-error-light);color:var(--color-error)}.add-item-form{flex-direction:column;gap:8px;display:flex}.add-item-form__name-wrap{position:relative}.add-item-form__name-field{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:10px;align-items:center;gap:4px;width:100%;padding:8px 16px;transition:border-color .15s;display:flex}.add-item-form__name-field:focus-within{border-color:var(--color-primary)}.add-item-form__name-field--selected{background-color:var(--color-background)}.add-item-form__name-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:2px 7px;font-size:.7rem;font-weight:600}.add-item-form__name-input{min-width:0;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.add-item-form__name-input::placeholder{color:var(--color-text-muted)}.add-item-form__name-clear{width:20px;height:20px;color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.add-item-form__name-clear:hover{background-color:var(--color-border);color:var(--color-text)}.add-item-form__suggestions{background-color:var(--color-surface);border:1px solid var(--color-border);z-index:100;border-radius:10px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.add-item-form__suggestion{text-align:left;cursor:pointer;align-items:center;gap:8px;width:100%;padding:8px 16px;transition:background-color .1s;display:flex}.add-item-form__suggestion:hover,.add-item-form__suggestion:focus{background-color:var(--color-primary-light);outline:none}.add-item-form__suggestion-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:2px 7px;font-size:.68rem;font-weight:600}.add-item-form__suggestion-name{min-width:0;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.875rem;overflow:hidden}.add-item-form__suggestion-store{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.75rem}.add-item-form__input{border:1px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;padding:8px 16px;font-size:.9rem;transition:border-color .15s}.add-item-form__input::placeholder{color:var(--color-text-muted)}.add-item-form__input:focus{border-color:var(--color-primary)}.add-item-form__qty-row{align-items:center;gap:8px;display:flex}.add-item-form__qty-btn{border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.add-item-form__qty-btn:hover{background-color:var(--color-primary-light);color:var(--color-primary)}.add-item-form__qty-input{text-align:center;width:40px;color:var(--color-text);border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;outline:none;padding:2px 4px;font-size:.9rem;font-weight:600}.add-item-form__qty-input:focus{border-color:var(--color-primary)}.add-item-form__qty-input::-webkit-inner-spin-button{appearance:none}.add-item-form__qty-input::-webkit-outer-spin-button{appearance:none}.add-item-form__unit-pills{flex-shrink:0;gap:4px;display:flex}.add-item-form__unit-pill{border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface);white-space:nowrap;border-radius:20px;padding:3px 7px;font-size:.72rem;font-weight:500;transition:background-color .1s,color .1s,border-color .1s}.add-item-form__unit-pill:hover{border-color:var(--color-primary);color:var(--color-primary)}.add-item-form__unit-pill--active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.add-item-form__submit{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;margin-left:auto;padding:8px 24px;font-size:.875rem;font-weight:600;transition:background-color .15s}.add-item-form__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.add-item-form__submit:disabled{opacity:.6;cursor:not-allowed}.add-item-form__error{color:var(--color-error);font-size:.8rem}.catalog-panel{flex-direction:column;gap:8px;display:flex}.catalog-panel__search-wrap{align-items:center;display:flex;position:relative}.catalog-panel__search-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;left:16px}.catalog-panel__search{border:1px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;padding:8px 16px 8px 2.2rem;font-size:.875rem;transition:border-color .15s}.catalog-panel__search::placeholder{color:var(--color-text-muted)}.catalog-panel__search:focus{border-color:var(--color-primary)}.catalog-panel__list{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:10px;max-height:272px;margin:0;padding:0;list-style:none;overflow-y:auto}.catalog-panel__item{align-items:center;gap:8px;padding:8px 16px;transition:background-color .1s;display:flex}.catalog-panel__item+.catalog-panel__item{border-top:1px solid var(--color-border)}.catalog-panel__item--in-list{background-color:var(--color-primary-light)}.catalog-panel__badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:2px 7px;font-size:.68rem;font-weight:600}.catalog-panel__name{min-width:0;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.875rem;font-weight:500;overflow:hidden}.catalog-panel__store{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.75rem}.catalog-panel__add-btn{background-color:var(--color-primary);width:26px;height:26px;color:var(--color-text-on-primary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.15rem;font-weight:700;line-height:1;transition:background-color .15s,opacity .15s;display:flex}.catalog-panel__add-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.catalog-panel__add-btn:disabled{opacity:.45;cursor:not-allowed}.catalog-panel__in-list{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:6px;flex-shrink:0;align-items:center;gap:3px;padding:2px 8px;font-size:.72rem;font-weight:600;display:flex}.catalog-panel__hint{color:var(--color-text-muted);text-align:center;padding:16px;font-size:.875rem}.invite-modal{background-color:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border-radius:16px;padding:32px}.invite-modal__overlay{z-index:200;background-color:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.invite-modal__header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.invite-modal__title{color:var(--color-text);font-size:1rem;font-weight:700}.invite-modal__close{width:32px;height:32px;color:var(--color-text-muted);border-radius:10px;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.invite-modal__close:hover{background-color:var(--color-background)}.invite-modal__form{flex-direction:column;gap:8px;display:flex}.invite-modal__input{border:1px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;padding:8px 16px;font-size:.9rem;transition:border-color .15s}.invite-modal__input::placeholder{color:var(--color-text-muted)}.invite-modal__input:focus{border-color:var(--color-primary)}.invite-modal__submit{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s}.invite-modal__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.invite-modal__submit:disabled{opacity:.6;cursor:not-allowed}.invite-modal__error{color:var(--color-error);font-size:.8rem}.invite-modal__success{color:var(--color-success);text-align:center;padding:16px 0;font-size:.9rem;font-weight:500}.page-sl-detail{flex-direction:column;gap:16px;width:100%;max-width:640px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-sl-detail{gap:24px;padding:32px 24px}}.page-sl-detail__header{justify-content:space-between;align-items:center;display:flex}.page-sl-detail__back{color:var(--color-text-muted);align-items:center;gap:4px;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.page-sl-detail__back:hover{color:var(--color-primary)}.page-sl-detail__back-link{color:var(--color-primary);font-size:.875rem;text-decoration:none}.page-sl-detail__invite-btn{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;align-items:center;gap:4px;padding:4px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s,border-color .15s;display:flex}.page-sl-detail__invite-btn:hover{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.page-sl-detail__meta{flex-direction:column;gap:8px;display:flex}.page-sl-detail__title{color:var(--color-text);font-size:1.3rem;font-weight:700}.page-sl-detail__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:8px 16px}.page-sl-detail__items{margin:0;padding:0;list-style:none}.page-sl-detail__divider{border:none;border-top:1px solid var(--color-border);margin:4px 0}.page-sl-detail__empty{color:var(--color-text-muted);text-align:center;padding:24px 0;font-size:.875rem}.page-sl-detail__add-section{flex-direction:column;gap:8px;display:flex}.page-sl-detail__add-tabs{gap:8px;display:flex}.page-sl-detail__add-tab{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);text-align:center;border-radius:10px;flex:1;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s,border-color .15s}.page-sl-detail__add-tab:hover{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.page-sl-detail__add-tab--active{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary);font-weight:600}.page-sl-detail__add-panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:16px}.page-sl-detail__archive-section{border-top:1px solid var(--color-border);margin-top:16px;padding-top:16px}.page-sl-detail__archive-btn{color:var(--color-text-muted);font-size:.875rem;font-weight:500;transition:color .15s}.page-sl-detail__archive-btn:hover{color:var(--color-error)}.page-sl-detail__confirm{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem;display:flex}.page-sl-detail__confirm-yes{background-color:var(--color-error);color:#fff;border-radius:6px;padding:4px 16px;font-size:.8rem;font-weight:600;transition:opacity .15s}.page-sl-detail__confirm-yes:disabled{opacity:.6;cursor:not-allowed}.page-sl-detail__confirm-no{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:6px;padding:4px 16px;font-size:.8rem;font-weight:500;transition:background-color .15s}.page-sl-detail__confirm-no:hover{background-color:var(--color-background)}@keyframes sl-detail-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.page-sl-detail .page-sl-detail__sk-item,.page-sl-detail .page-sl-detail__sk-avatar,.page-sl-detail .page-sl-detail__sk-title{background:linear-gradient(90deg, var(--color-background) 25%, var(--color-border) 50%, var(--color-background) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite sl-detail-shimmer}.page-sl-detail__skeleton{flex-direction:column;gap:16px;display:flex}.page-sl-detail__sk-title{width:60%;height:28px}.page-sl-detail__sk-avatars{gap:4px;display:flex}.page-sl-detail__sk-avatar{border-radius:50%;width:28px;height:28px}.page-sl-detail__sk-item{width:85%;height:18px}.page-sl-detail__sk-item:nth-child(odd){width:70%}.page-sl-detail__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px 32px;font-size:.9rem;display:flex}.invite-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}@media (width<=767px){.invite-card{flex-direction:column;align-items:flex-start}}.invite-card__info{flex-direction:column;gap:4px;min-width:0;display:flex}.invite-card__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.invite-card__meta{color:var(--color-text-muted);font-size:.8rem}.invite-card__actions{flex-shrink:0;gap:8px;display:flex}.invite-card__accept{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;padding:4px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s}.invite-card__accept:hover:not(:disabled){background-color:var(--color-primary-hover)}.invite-card__accept:disabled{opacity:.5;cursor:not-allowed}.invite-card__decline{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;padding:4px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s,border-color .15s}.invite-card__decline:hover:not(:disabled){background-color:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.invite-card__decline:disabled{opacity:.5;cursor:not-allowed}.theme-switcher{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.theme-switcher__option{color:var(--color-text-muted);border-radius:7px;align-items:center;gap:4px;padding:6px 16px;font-size:.85rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.theme-switcher__option:hover:not(.theme-switcher__option--active){color:var(--color-text);background-color:var(--color-surface)}.theme-switcher__option--active{background-color:var(--color-primary);color:var(--color-text-on-primary)}.password-form{flex-direction:column;gap:16px;display:flex}.password-form__field{flex-direction:column;gap:5px;display:flex}.password-form__label{color:var(--color-text-muted);font-size:.85rem;font-weight:500}.password-form__input{border:1px solid var(--color-border);color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;padding:8px 16px;font-size:.9rem;transition:border-color .15s}.password-form__input:focus{border-color:var(--color-primary)}.password-form__input--error,.password-form__input--error:focus{border-color:var(--color-error)}.password-form__error{color:var(--color-error);font-size:.78rem}.password-form__footer{justify-content:flex-end;align-items:center;gap:16px;margin-top:4px;display:flex}.password-form__success{color:var(--color-success);font-size:.85rem;font-weight:500}.password-form__submit{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;padding:8px 24px;font-size:.875rem;font-weight:600;transition:background-color .15s}.password-form__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.password-form__submit:disabled{opacity:.5;cursor:not-allowed}.page-account{flex-direction:column;gap:32px;width:100%;max-width:560px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-account{padding:32px 24px}}.page-account__profile{border-bottom:1px solid var(--color-border);align-items:center;gap:24px;padding-bottom:32px;display:flex}.page-account__avatar{background-color:var(--color-primary);width:64px;height:64px;color:var(--color-text-on-primary);text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;font-weight:700;display:flex}.page-account__identity{flex-direction:column;gap:4px;min-width:0;display:flex}.page-account__name{color:var(--color-text);font-size:1.1rem;font-weight:700}.page-account__email{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;overflow:hidden}.page-account__section{flex-direction:column;gap:16px;display:flex}.page-account__section-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;font-size:.875rem;font-weight:700;display:flex}.page-account__invites{flex-direction:column;gap:8px;display:flex}.recipe-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.recipe-card__link{color:inherit;text-decoration:none;display:block}.recipe-card__image-wrap{aspect-ratio:3/2;background-color:var(--color-background);width:100%;position:relative;overflow:hidden}.recipe-card__image{object-fit:cover;width:100%;height:100%;transition:transform .3s}.recipe-card:hover .recipe-card__image{transform:scale(1.04)}.recipe-card__private-badge{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#f59e0be6;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:.7rem;font-weight:600;display:flex;position:absolute;bottom:8px;left:8px}.recipe-card__body{flex-direction:column;gap:4px;padding:8px 16px 16px;display:flex}.recipe-card__title{color:var(--color-text);font-size:.95rem;font-weight:700;line-height:1.3}.recipe-card__description{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.recipe-card__meta{color:var(--color-text-muted);margin-top:2px;font-size:.75rem}.recipe-card__favorite{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:32px;height:32px;color:var(--color-text-muted);background-color:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,color .15s,transform .15s;display:flex;position:absolute;top:8px;right:8px}.recipe-card__favorite:hover{color:#ef4444;background-color:#fff;transform:scale(1.1)}.recipe-card__favorite--active{color:#ef4444}.recipe-card__favorite--active svg{fill:#ef4444}@keyframes recipe-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.recipe-card-skeleton__meta,.recipe-card-skeleton__line,.recipe-card-skeleton__title,.recipe-card-skeleton__image{background:linear-gradient(90deg, var(--color-background) 25%, var(--color-border) 50%, var(--color-background) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite recipe-skeleton-shimmer}.recipe-card-skeleton{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;overflow:hidden}.recipe-card-skeleton__image{aspect-ratio:3/2;border-radius:0;width:100%}.recipe-card-skeleton__body{flex-direction:column;gap:8px;padding:8px 16px 16px;display:flex}.recipe-card-skeleton__title{width:70%;height:16px}.recipe-card-skeleton__line{width:100%;height:12px}.recipe-card-skeleton__line--short{width:55%}.recipe-card-skeleton__meta{width:35%;height:11px;margin-top:2px}.page-recipes{flex-direction:column;gap:24px;width:100%;max-width:960px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-recipes{padding:32px 24px}}.page-recipes__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.page-recipes__title{color:var(--color-text);font-size:1.4rem;font-weight:700}.page-recipes__actions{align-items:center;gap:8px;display:flex}.page-recipes__filter-btn{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;align-items:center;gap:4px;padding:4px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s,border-color .15s;display:flex}.page-recipes__filter-btn:hover{color:#ef4444;border-color:#ef4444}.page-recipes__filter-btn--active{color:#ef4444;background-color:#ef444414;border-color:#ef4444}.page-recipes__filter-btn--active svg{fill:#ef4444}.page-recipes__new-btn{color:var(--color-text-on-primary);background-color:var(--color-primary);border-radius:10px;align-items:center;gap:4px;padding:4px 16px;font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .15s;display:flex}.page-recipes__new-btn:hover{background-color:var(--color-primary-hover)}.page-recipes__grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (width>=1024px){.page-recipes__grid{grid-template-columns:repeat(3,1fr)}}.page-recipes__empty{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px 32px;font-size:.9rem;display:flex}.page-recipes__empty-icon{opacity:.3}.page-recipes__empty-action{background-color:var(--color-primary);color:var(--color-text-on-primary);border-radius:10px;padding:8px 24px;font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .15s}.page-recipes__empty-action:hover{background-color:var(--color-primary-hover)}.page-recipes__error{text-align:center;color:var(--color-text-muted);padding:48px;font-size:.9rem}.ingredient-row{align-items:center;gap:8px;padding:8px 0;display:flex}.ingredient-row+.ingredient-row{border-top:1px solid var(--color-border)}.ingredient-row__bullet{color:var(--color-primary);flex-shrink:0;font-size:1rem;line-height:1}.ingredient-row__name{min-width:0;color:var(--color-text);flex:1;font-size:.9rem;font-weight:500}.ingredient-row__qty{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.85rem}.ingredient-row__add{color:var(--color-text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:2px;transition:color .15s,transform .15s;display:flex}.ingredient-row__add:hover{color:var(--color-primary);transform:scale(1.15)}.add-to-list-modal{background-color:var(--color-surface);border-radius:16px;flex-direction:column;width:min(420px,100vw - 48px);display:flex;box-shadow:0 8px 32px #0000002e}.add-to-list-modal__overlay{z-index:200;background-color:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.add-to-list-modal__header{justify-content:space-between;align-items:flex-start;gap:8px;padding:16px 16px 8px;display:flex}.add-to-list-modal__title{color:var(--color-text-muted);font-size:.9rem;line-height:1.4}.add-to-list-modal__close{width:28px;height:28px;color:var(--color-text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.add-to-list-modal__close:hover{background-color:var(--color-background)}.add-to-list-modal__list{flex-direction:column;gap:2px;max-height:240px;margin:0;padding:0 16px;list-style:none;display:flex;overflow-y:auto}.add-to-list-modal__option{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:8px;transition:background-color .1s;display:flex}.add-to-list-modal__option:hover{background-color:var(--color-background)}.add-to-list-modal__option input[type=radio]{accent-color:var(--color-primary);flex-shrink:0}.add-to-list-modal__option--new .add-to-list-modal__option-name{color:var(--color-primary);font-weight:500}.add-to-list-modal__option-name{color:var(--color-text);flex:1;font-size:.875rem}.add-to-list-modal__option-count{color:var(--color-text-muted);white-space:nowrap;font-size:.75rem}.add-to-list-modal__new-input{border:1px solid var(--color-primary);width:100%;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;margin:4px 8px 8px;padding:8px 16px;font-size:.875rem}.add-to-list-modal__new-input::placeholder{color:var(--color-text-muted)}.add-to-list-modal__error{color:var(--color-error);margin:0;padding:0 16px;font-size:.8rem}.add-to-list-modal__footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;margin-top:8px;padding:8px 16px 16px;display:flex}.add-to-list-modal__cancel{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;padding:8px 16px;font-size:.875rem;transition:background-color .15s}.add-to-list-modal__cancel:hover{background-color:var(--color-background)}.add-to-list-modal__submit{color:var(--color-text-on-primary);background-color:var(--color-primary);border-radius:10px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s,opacity .15s}.add-to-list-modal__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.add-to-list-modal__submit:disabled{opacity:.5;cursor:not-allowed}.recipe-share-panel{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:8px;padding:16px;display:flex}.recipe-share-panel__title{color:var(--color-text);font-size:.9rem;font-weight:700}.recipe-share-panel__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.recipe-share-panel__user{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;display:flex}.recipe-share-panel__user-info{align-items:center;gap:8px;min-width:0;display:flex}.recipe-share-panel__avatar{background-color:var(--color-primary-light);width:30px;height:30px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.recipe-share-panel__user-meta{flex-direction:column;min-width:0;display:flex}.recipe-share-panel__user-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.recipe-share-panel__user-email{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.recipe-share-panel__revoke{width:24px;height:24px;color:var(--color-text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.recipe-share-panel__revoke:hover:not(:disabled){background-color:var(--color-error-light);color:var(--color-error)}.recipe-share-panel__revoke:disabled{opacity:.4;cursor:not-allowed}.recipe-share-panel__empty{color:var(--color-text-muted);font-size:.8rem}.recipe-share-panel__form{gap:8px;margin-top:4px;display:flex}.recipe-share-panel__input{border:1px solid var(--color-border);min-width:0;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;flex:1;padding:8px 16px;font-size:.875rem;transition:border-color .15s}.recipe-share-panel__input::placeholder{color:var(--color-text-muted)}.recipe-share-panel__input:focus{border-color:var(--color-primary)}.recipe-share-panel__submit{color:var(--color-text-on-primary);background-color:var(--color-primary);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:8px 16px;font-size:.875rem;font-weight:600;transition:background-color .15s,opacity .15s}.recipe-share-panel__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.recipe-share-panel__submit:disabled{opacity:.5;cursor:not-allowed}.recipe-share-panel__error{color:var(--color-error);margin:0;font-size:.8rem}.page-recipe-detail{flex-direction:column;gap:24px;width:100%;max-width:680px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-recipe-detail{padding:32px 24px}}.page-recipe-detail__header{justify-content:space-between;align-items:center;display:flex}.page-recipe-detail__back{color:var(--color-text-muted);align-items:center;gap:4px;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.page-recipe-detail__back:hover{color:var(--color-primary)}.page-recipe-detail__back-link{color:var(--color-primary);font-size:.875rem;text-decoration:none}.page-recipe-detail__header-actions{align-items:center;gap:8px;display:flex}.page-recipe-detail__favorite{border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text-muted);background-color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex}.page-recipe-detail__favorite:hover,.page-recipe-detail__favorite--active{color:#ef4444;border-color:#ef4444}.page-recipe-detail__favorite--active svg{fill:#ef4444}.page-recipe-detail__edit-btn{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;align-items:center;gap:4px;padding:4px 16px;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:flex}.page-recipe-detail__edit-btn:hover{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.page-recipe-detail__gallery{border-radius:16px;flex-direction:column;gap:8px;display:flex;overflow:hidden}.page-recipe-detail__main-image{aspect-ratio:16/9;object-fit:cover;background-color:var(--color-background);border-radius:16px;width:100%}.page-recipe-detail__thumbnails{gap:8px;display:flex;overflow-x:auto}.page-recipe-detail__thumb{border:2px solid #0000;border-radius:6px;flex-shrink:0;width:64px;height:48px;transition:border-color .15s;overflow:hidden}.page-recipe-detail__thumb img{object-fit:cover;width:100%;height:100%}.page-recipe-detail__thumb--active{border-color:var(--color-primary)}.page-recipe-detail__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.page-recipe-detail__title{color:var(--color-text);font-size:1.5rem;font-weight:700;line-height:1.2}.page-recipe-detail__private-badge{color:#b46e00;background-color:#f59e0b26;border-radius:6px;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:600;display:flex}.page-recipe-detail__description{color:var(--color-text-muted);margin:0;font-size:.95rem;line-height:1.6}.page-recipe-detail__section{flex-direction:column;gap:8px;display:flex}.page-recipe-detail__section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.page-recipe-detail__section-title{color:var(--color-text);font-size:1.05rem;font-weight:700}.page-recipe-detail__add-all-btn{color:var(--color-primary);font-size:.8rem;font-weight:600;transition:opacity .15s}.page-recipe-detail__add-all-btn:hover:not(:disabled){opacity:.75}.page-recipe-detail__add-all-btn:disabled{opacity:.5;cursor:not-allowed}.page-recipe-detail__ingredients{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;margin:0;padding:4px 16px;list-style:none}.page-recipe-detail__steps{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:16px;padding:16px;display:flex}.page-recipe-detail__steps p{color:var(--color-text);margin:0;font-size:.9rem;line-height:1.7}.page-recipe-detail__delete-section{border-top:1px solid var(--color-border);padding-top:16px}.page-recipe-detail__delete-btn{color:var(--color-text-muted);align-items:center;gap:4px;font-size:.875rem;font-weight:500;transition:color .15s;display:flex}.page-recipe-detail__delete-btn:hover{color:var(--color-error)}.page-recipe-detail__confirm{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem;display:flex}.page-recipe-detail__confirm-yes{background-color:var(--color-error);color:#fff;border-radius:6px;padding:4px 16px;font-size:.8rem;font-weight:600;transition:opacity .15s}.page-recipe-detail__confirm-yes:disabled{opacity:.6;cursor:not-allowed}.page-recipe-detail__confirm-no{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:6px;padding:4px 16px;font-size:.8rem;font-weight:500;transition:background-color .15s}.page-recipe-detail__confirm-no:hover{background-color:var(--color-background)}@keyframes rd-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.page-recipe-detail .page-recipe-detail__sk-line,.page-recipe-detail .page-recipe-detail__sk-title,.page-recipe-detail .page-recipe-detail__sk-image{background:linear-gradient(90deg, var(--color-background) 25%, var(--color-border) 50%, var(--color-background) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s infinite rd-shimmer}.page-recipe-detail__skeleton{flex-direction:column;gap:16px;display:flex}.page-recipe-detail__sk-image{aspect-ratio:16/9;border-radius:16px;width:100%}.page-recipe-detail__sk-title{width:55%;height:28px}.page-recipe-detail__sk-line{width:100%;height:14px}.page-recipe-detail__sk-line--short{width:70%}.page-recipe-detail__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px;font-size:.9rem;display:flex}.recipe-form{flex-direction:column;gap:24px;display:flex}.recipe-form__field{flex-direction:column;gap:8px;display:flex}.recipe-form__label{color:var(--color-text);font-size:.875rem;font-weight:600}.recipe-form__select{border:1px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);cursor:pointer;border-radius:10px;outline:none;padding:8px 16px;font-size:.9rem;transition:border-color .15s}.recipe-form__select:focus{border-color:var(--color-primary)}.recipe-form__input{border:1px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;padding:8px 16px;font-size:.9rem;transition:border-color .15s}.recipe-form__input::placeholder{color:var(--color-text-muted)}.recipe-form__input:focus{border-color:var(--color-primary)}.recipe-form__textarea{border:1px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);resize:vertical;border-radius:10px;outline:none;padding:8px 16px;font-family:inherit;font-size:.9rem;line-height:1.6;transition:border-color .15s}.recipe-form__textarea::placeholder{color:var(--color-text-muted)}.recipe-form__textarea:focus{border-color:var(--color-primary)}.recipe-form__textarea--short{resize:none}.recipe-form__visibility{gap:8px;display:flex}.recipe-form__vis-btn{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;align-items:center;gap:4px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s,border-color .15s;display:flex}.recipe-form__vis-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.recipe-form__vis-btn--active{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-light);font-weight:600}.recipe-form__image-previews{flex-wrap:wrap;gap:8px;display:flex}.recipe-form__image-preview{border:1px solid var(--color-border);border-radius:6px;width:80px;height:60px;position:relative;overflow:hidden}.recipe-form__image-preview img{object-fit:cover;width:100%;height:100%}.recipe-form__image-remove{color:#fff;background-color:#0009;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;transition:background-color .15s;display:flex;position:absolute;top:2px;right:2px}.recipe-form__image-remove:hover{background-color:#ef4444d9}.recipe-form__image-add{gap:8px;display:flex}.recipe-form__image-add-btn{color:var(--color-primary);border:1px solid var(--color-primary);background-color:var(--color-primary-light);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,opacity .15s}.recipe-form__image-add-btn:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-text-on-primary)}.recipe-form__image-add-btn:disabled{opacity:.4;cursor:not-allowed}.recipe-form__ingredients{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:4px;padding:8px 16px;display:flex}.recipe-form__ing-header{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);grid-template-columns:1fr 90px 80px 28px;gap:8px;padding:0 2px 4px;font-size:.75rem;font-weight:600;display:grid}@media (width<=767px){.recipe-form__ing-header{display:none}}.recipe-form__ing-row{grid-template-columns:1fr 90px 80px 28px;align-items:center;gap:8px;display:grid}@media (width<=767px){.recipe-form__ing-row{grid-template-rows:auto auto;grid-template-columns:1fr 1fr}.recipe-form__ing-row .recipe-form__ing-name-wrap{grid-column:1/-1}.recipe-form__ing-row .recipe-form__ing-qty{grid-column:1}.recipe-form__ing-row .recipe-form__ing-unit{grid-column:2}.recipe-form__ing-row .recipe-form__ing-remove{grid-column:1/-1;justify-self:end;margin-top:-4px}}.recipe-form__ing-name-wrap{position:relative}.recipe-form__ing-suggestions{background-color:var(--color-surface);border:1px solid var(--color-border);z-index:50;border-radius:10px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.recipe-form__ing-suggestion{width:100%;color:var(--color-text);text-align:left;justify-content:space-between;align-items:center;padding:8px 16px;font-size:.875rem;transition:background-color .1s;display:flex}.recipe-form__ing-suggestion:hover{background-color:var(--color-primary-light)}.recipe-form__ing-suggestion-cat{color:var(--color-text-muted);font-size:.72rem}.recipe-form__ing-qty{align-items:center;gap:2px;display:flex}.recipe-form__qty-btn{width:22px;height:22px;color:var(--color-text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.recipe-form__qty-btn:hover{background-color:var(--color-primary-light);color:var(--color-primary)}.recipe-form__qty-input{text-align:center;width:40px;color:var(--color-text);appearance:textfield;background:0 0;border:1px solid #0000;border-radius:6px;outline:none;padding:1px 2px;font-size:.85rem;font-weight:600;transition:border-color .15s}.recipe-form__qty-input::-webkit-outer-spin-button{appearance:none}.recipe-form__qty-input::-webkit-inner-spin-button{appearance:none}.recipe-form__qty-input:focus{border-color:var(--color-primary)}.recipe-form__ing-unit .recipe-form__input{padding:4px 8px}.recipe-form__ing-remove{width:28px;height:28px;color:var(--color-text-muted);border-radius:6px;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.recipe-form__ing-remove:hover:not(:disabled){background-color:var(--color-error-light);color:var(--color-error)}.recipe-form__ing-remove:disabled{opacity:.3;cursor:not-allowed}.recipe-form__ing-add{color:var(--color-primary);align-self:flex-start;padding:4px 0;font-size:.875rem;font-weight:500;transition:opacity .15s}.recipe-form__ing-add:hover{opacity:.75}.recipe-form__actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.recipe-form__cancel{border:1px solid var(--color-border);color:var(--color-text-muted);background-color:var(--color-surface);border-radius:10px;padding:8px 24px;font-size:.875rem;font-weight:500;transition:background-color .15s}.recipe-form__cancel:hover{background-color:var(--color-background)}.recipe-form__submit{color:var(--color-text-on-primary);background-color:var(--color-primary);border-radius:10px;padding:8px 24px;font-size:.875rem;font-weight:600;transition:background-color .15s,opacity .15s}.recipe-form__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.recipe-form__submit:disabled{opacity:.5;cursor:not-allowed}.url-import-panel{flex-direction:column;gap:16px;display:flex}.url-import-panel__hint{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.url-import-panel__form{flex-direction:column;gap:8px;display:flex}@media (width>=768px){.url-import-panel__form{flex-direction:row}}.url-import-panel__input-wrap{flex:1;align-items:center;display:flex;position:relative}.url-import-panel__icon{color:var(--color-text-muted);pointer-events:none;position:absolute;left:16px}.url-import-panel__input{border:1px solid var(--color-border);width:100%;color:var(--color-text);background-color:var(--color-surface);border-radius:10px;outline:none;padding:8px 16px 8px 2.4rem;font-size:.9rem;transition:border-color .15s,opacity .15s}.url-import-panel__input::placeholder{color:var(--color-text-muted)}.url-import-panel__input:focus{border-color:var(--color-primary)}.url-import-panel__input:disabled{opacity:.6}.url-import-panel__submit{color:var(--color-text-on-primary);background-color:var(--color-primary);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:8px 24px;font-size:.875rem;font-weight:600;transition:background-color .15s,opacity .15s}.url-import-panel__submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.url-import-panel__submit:disabled{opacity:.5;cursor:not-allowed}.url-import-panel__loading{color:var(--color-text-muted);align-items:center;gap:8px;font-size:.875rem;display:flex}.url-import-panel__spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite url-import-spin}@keyframes url-import-spin{to{transform:rotate(360deg)}}.url-import-panel__error{color:var(--color-error);background-color:var(--color-error-light);border-radius:10px;margin:0;padding:8px 16px;font-size:.85rem}.page-recipe-new{flex-direction:column;gap:24px;width:100%;max-width:680px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-recipe-new{padding:32px 24px}}.page-recipe-new__header{flex-direction:column;gap:8px;display:flex}.page-recipe-new__back{color:var(--color-text-muted);align-self:flex-start;align-items:center;gap:4px;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.page-recipe-new__back:hover{color:var(--color-primary)}.page-recipe-new__title{color:var(--color-text);font-size:1.4rem;font-weight:700}.page-recipe-new__tabs{border:1px solid var(--color-border);border-radius:10px;align-self:flex-start;gap:0;display:flex;overflow:hidden}.page-recipe-new__tab{color:var(--color-text-muted);background-color:var(--color-surface);padding:8px 24px;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s}.page-recipe-new__tab+.page-recipe-new__tab{border-left:1px solid var(--color-border)}.page-recipe-new__tab:hover{background-color:var(--color-background);color:var(--color-text)}.page-recipe-new__tab--active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600}.page-recipe-new__content{flex-direction:column;gap:16px;display:flex}.page-recipe-new__import-notice{background-color:var(--color-primary-light);border:1px solid var(--color-primary);color:var(--color-primary);border-radius:10px;padding:8px 16px;font-size:.875rem;font-weight:500}.page-recipe-edit{flex-direction:column;gap:24px;width:100%;max-width:680px;margin:0 auto;padding:24px 16px;display:flex}@media (width>=1024px){.page-recipe-edit{padding:32px 24px}}.page-recipe-edit__header{flex-direction:column;gap:8px;display:flex}.page-recipe-edit__back{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;align-self:flex-start;align-items:center;gap:4px;max-width:100%;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex;overflow:hidden}.page-recipe-edit__back:hover{color:var(--color-primary)}.page-recipe-edit__back-link{color:var(--color-primary);font-size:.875rem;text-decoration:none}.page-recipe-edit__title{color:var(--color-text);font-size:1.4rem;font-weight:700}.page-recipe-edit__loading,.page-recipe-edit__error{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px;font-size:.9rem;display:flex}
