:root{--color-primary: #0d9488;--color-primary-hover: #0f766e;--color-primary-light: #ccfbf1;--color-accent: #f59e0b;--color-accent-light: #fef3c7;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-light: #fee2e2;--color-bg: #f1f5f9;--color-bg-elevated: #ffffff;--color-surface: #ffffff;--color-border: #e2e8f0;--color-border-focus: #0d9488;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-inverse: #ffffff;--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .07), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .05);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .08), 0 8px 10px -6px rgba(15, 23, 42, .04);--transition-fast: .15s ease;--transition-base: .2s ease;--bp-sm: 480px;--bp-md: 768px;--bp-lg: 1024px;--touch-min: 44px}*{box-sizing:border-box}html{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;min-height:100vh;min-height:100dvh}a{color:var(--color-primary);text-decoration:none;font-weight:var(--font-medium);transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}input,button,select{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none}.container{max-width:960px;margin:0 auto;padding:var(--space-4) var(--space-4)}@media (min-width: 768px){.container{padding:var(--space-6) var(--space-6)}}.page-header{margin-bottom:var(--space-6)}.page-header h1{font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:-.02em;margin:0 0 var(--space-1) 0;color:var(--color-text)}.page-header p{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.page-header--with-actions{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.page-header--with-actions>div:first-child{flex:1;min-width:0}@media (max-width: 767px){.page-header h1{font-size:var(--text-xl)}.page-header--with-actions{flex-direction:column;align-items:stretch;gap:var(--space-3)}.page-header--with-actions .default-badge,.page-header--with-actions .btn{align-self:flex-start}}.default-badge{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary);background:var(--color-primary-light);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);flex-shrink:0}.app-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.app-nav__brand{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-bold);font-size:var(--text-lg);color:var(--color-text);text-decoration:none}.app-nav__brand:hover{color:var(--color-primary)}.app-nav__brand-icon{width:28px;height:28px;background:linear-gradient(135deg,var(--color-primary),#14b8a6);border-radius:var(--radius-md)}.app-nav__link{color:var(--color-text-muted);font-weight:var(--font-medium);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:color var(--transition-fast),background var(--transition-fast)}.app-nav__link:hover{color:var(--color-primary);background:var(--color-primary-light)}.app-nav__spacer{flex:1}.app-nav__user{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--font-medium)}.app-nav__logout{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);background:transparent;border-radius:var(--radius-md);transition:color var(--transition-fast),background var(--transition-fast)}.app-nav__logout:hover{color:var(--color-danger);background:var(--color-danger-light)}@media (max-width: 767px){.app-nav{padding:var(--space-2) var(--space-4);gap:var(--space-2);flex-wrap:wrap}.app-nav__brand{font-size:var(--text-base)}.app-nav__brand-icon{width:24px;height:24px}.app-nav__link{padding:var(--space-2) var(--space-3);min-height:var(--touch-min);display:inline-flex;align-items:center}.app-nav__user{font-size:var(--text-xs);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav__logout{min-height:var(--touch-min);padding:var(--space-2) var(--space-3)}}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.card--highlight{background:linear-gradient(135deg,var(--color-accent-light) 0%,#fffbeb 100%);border-color:#fcd34d}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password],.form-group input[type=number],.form-group input[type=date]{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group input::placeholder{color:var(--color-text-muted)}.form-group input:hover{border-color:var(--color-text-muted)}.form-group input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.input-with-toggle{display:flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input-with-toggle:focus-within{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.input-with-toggle input{flex:1;min-width:0;border:none;background:transparent;box-shadow:none}.input-with-toggle input:focus{box-shadow:none}.input-with-toggle .password-toggle{flex-shrink:0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary);background:transparent;border:none;border-left:1px solid var(--color-border);border-radius:0 var(--radius-md) var(--radius-md) 0;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.input-with-toggle .password-toggle:hover{color:var(--color-primary-hover);background:var(--color-primary-light)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.search-input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-input::placeholder{color:var(--color-text-muted)}.search-input:hover{border-color:var(--color-text-muted)}.search-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}@media (max-width: 767px){.form-group input[type=text],.form-group input[type=email],.form-group input[type=password],.form-group input[type=number],.form-group input[type=date]{min-height:var(--touch-min);padding:var(--space-3) var(--space-4)}.input-with-toggle{min-height:var(--touch-min)}.input-with-toggle .password-toggle{min-height:var(--touch-min);padding:var(--space-2) var(--space-4)}.search-input{min-height:var(--touch-min);padding:var(--space-3) var(--space-4)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-semibold);border-radius:var(--radius-md, 10px);transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}button.btn,a.btn{border-radius:var(--radius-md, 10px)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border);border-color:var(--color-text-muted)}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-md, 10px)}@media (max-width: 767px){.btn{min-height:var(--touch-min);padding:var(--space-3) var(--space-4)}.btn-sm{min-height:36px}.btn-icon{min-width:var(--touch-min);min-height:var(--touch-min)}}.error-msg{color:var(--color-danger);font-size:var(--text-sm);margin-top:var(--space-2);font-weight:var(--font-medium)}.success-msg{color:#059669;font-size:var(--text-sm);margin-top:var(--space-2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:max(var(--space-4),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-4),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left));animation:modalOverlayIn .2s ease}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}.modal{position:relative;background:var(--color-surface);border-radius:20px;max-width:440px;width:100%;max-height:90vh;max-height:calc(90dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;padding:var(--space-8);box-shadow:0 25px 50px -12px #0f172a33,0 0 0 1px #0f172a0d;border:1px solid var(--color-border);animation:modalIn .3s cubic-bezier(.16,1,.3,1)}@media (max-width: 479px){.modal{max-width:none;border-radius:16px 16px 0 0;margin-top:auto;max-height:92dvh;padding:var(--space-6)}.modal__close{min-width:var(--touch-min);min-height:var(--touch-min);top:var(--space-2);right:var(--space-2)}}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal__close{position:absolute;top:var(--space-4);right:var(--space-4);width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.5rem;line-height:1;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.modal__close:hover{color:var(--color-text);background:var(--color-bg)}.modal h2,.modal__title{margin:0 0 var(--space-4) 0;padding-right:40px;font-size:var(--text-xl);font-weight:var(--font-bold);letter-spacing:-.02em;color:var(--color-text)}.modal__message{margin:0 0 var(--space-6) 0;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-muted)}.modal--confirm .modal__title{padding-right:0}.modal-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap}.modal-actions .btn{flex:1;min-width:120px;min-height:var(--touch-min)}@media (max-width: 479px){.modal-actions{flex-direction:column}.modal-actions .btn{width:100%;min-width:0}}.modal-actions--end{justify-content:flex-end}.modal-actions--end .btn{flex:0 1 auto}.confirm-modal__checkbox{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-5) 0;padding:var(--space-3) var(--space-4);background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.confirm-modal__checkbox input{width:20px;height:20px;accent-color:var(--color-primary);flex-shrink:0}.confirm-modal__checkbox:hover{border-color:var(--color-primary)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:linear-gradient(160deg,var(--color-bg) 0%,#e2e8f0 100%)}.auth-card{width:100%;max-width:400px;background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-xl);border:1px solid var(--color-border)}.auth-card h1{margin:0 0 var(--space-6) 0;font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:-.02em;color:var(--color-text)}.auth-card .form-group:last-of-type{margin-bottom:var(--space-5)}.auth-card .btn-primary{width:100%;padding:var(--space-4);font-size:var(--text-base);margin-bottom:var(--space-4);min-height:var(--touch-min)}@media (max-width: 479px){.auth-page{padding:var(--space-3);align-items:flex-start;padding-top:max(var(--space-6),env(safe-area-inset-top))}.auth-card{padding:var(--space-6)}.auth-card h1{font-size:var(--text-xl)}}.auth-footer{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted)}.auth-footer a{font-weight:var(--font-semibold)}.password-conditions{list-style:none;padding:0;margin:var(--space-2) 0 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.password-conditions li{margin-bottom:var(--space-1)}.password-conditions li.valid{color:#059669}.houses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.house-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.house-card:hover{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light);transform:translateY(-2px)}.house-card h3{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.house-card__code{font-size:var(--text-xs);color:var(--color-text-muted);margin:0 0 var(--space-4) 0;font-family:ui-monospace,monospace;letter-spacing:.05em}.house-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.house-card__default-badge{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-primary);background:var(--color-primary-light);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.house-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}@media (max-width: 767px){.houses-grid{grid-template-columns:1fr;gap:var(--space-3)}.house-card{padding:var(--space-4)}.house-card__actions{flex-direction:column;align-items:stretch}.house-card__actions .btn{width:100%}}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-4)}.breadcrumb a{color:var(--color-text-muted);font-weight:var(--font-medium)}.breadcrumb a:hover{color:var(--color-primary)}.breadcrumb span{color:var(--color-text);font-weight:var(--font-medium)}@media (max-width: 767px){.breadcrumb{font-size:var(--text-xs);flex-wrap:wrap;gap:var(--space-1)}}.house-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.house-tabs__tab{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:color var(--transition-fast),background var(--transition-fast);background:transparent;border:none;cursor:pointer;font-family:inherit}.house-tabs__tab:hover{color:var(--color-primary);background:var(--color-primary-light)}.house-tabs__tab--active{color:var(--color-primary);background:var(--color-primary-light);border-bottom:2px solid var(--color-primary);margin-bottom:-1px}@media (max-width: 767px){.house-tabs{margin-left:calc(-1 * var(--space-4));margin-right:calc(-1 * var(--space-4));padding-left:var(--space-4);padding-right:var(--space-4);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0}.house-tabs::-webkit-scrollbar{display:none}.house-tabs__tab{flex-shrink:0;min-height:var(--touch-min);padding:var(--space-3) var(--space-4)}}.recipes-section{margin-bottom:var(--space-6)}.recipes-section__title{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--font-semibold)}.recipes-section__hint{margin:0 0 var(--space-4) 0;font-size:var(--text-sm);color:var(--color-text-muted)}.recipes-product-list{list-style:none;padding:0;margin:0 0 var(--space-4) 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-2)}.recipes-product-item{margin:0}.recipes-product-item__label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast)}.recipes-product-item__label:hover{background:var(--color-bg)}.recipes-product-item__label input{width:18px;height:18px;accent-color:var(--color-primary)}.recipes-product-item__name{font-weight:var(--font-medium);color:var(--color-text)}.recipes-product-item__brand{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto}.recipes-results__title{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);font-weight:var(--font-semibold)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-4)}@media (max-width: 767px){.recipes-product-list{grid-template-columns:1fr 1fr}.recipes-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.recipe-card__name{font-size:var(--text-xs);padding:var(--space-2)}}.recipe-card{display:flex;flex-direction:column;align-items:stretch;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);text-align:left}.recipe-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.recipe-card__img{width:100%;aspect-ratio:1;object-fit:cover}.recipe-card__name{padding:var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.modal--recipe{max-width:560px;max-height:90vh;max-height:calc(90dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto}@media (max-width: 479px){.modal--recipe{max-width:none;border-radius:16px 16px 0 0}.recipe-detail__img{max-height:180px}}.modal--recipe .modal__title{padding-right:40px}.recipe-detail-header{margin-bottom:var(--space-4)}.recipe-detail-header h2{margin:0 0 var(--space-2) 0;font-size:var(--text-xl)}.recipe-detail__meta{display:inline-block;margin-right:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);background:var(--color-bg);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.recipe-detail__img{width:100%;max-height:240px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--space-4)}.recipe-detail-ingredients,.recipe-detail-instructions{margin-bottom:var(--space-4)}.recipe-detail-ingredients h3,.recipe-detail-instructions h3{margin:0 0 var(--space-2) 0;font-size:var(--text-base);font-weight:var(--font-semibold)}.recipe-detail-ingredients ul{margin:0;padding-left:var(--space-5)}.recipe-detail-ingredients li{margin-bottom:var(--space-1);font-size:var(--text-sm)}.recipe-detail-instructions__text{margin:0;font-size:var(--text-sm);line-height:1.6;white-space:pre-line}.recipe-detail-video{margin:0 0 var(--space-4) 0}.suggest-add-to-list{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4);background:var(--color-primary-light);border:1px solid var(--color-primary)}.suggest-add-to-list strong{margin-right:var(--space-2)}.suggest-add-to-list__actions{display:flex;gap:var(--space-2)}.shopping-list-section{margin-bottom:var(--space-6)}.shopping-list-add{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--space-4)}.shopping-list-add .form-group{margin-bottom:0}.shopping-list-add__name{flex:1;min-width:180px}.shopping-list-add__qty{width:80px}.shopping-list-add__qty input{width:100%}@media (max-width: 767px){.shopping-list-add{flex-direction:column;align-items:stretch}.shopping-list-add__name{min-width:0}.shopping-list-add__qty{width:100%}.shopping-list-item{padding:var(--space-3) 0;gap:var(--space-2)}.shopping-list-item__label input{min-width:22px;min-height:22px}}.shopping-list-items{list-style:none;padding:0;margin:0}.shopping-list-empty{padding:var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.shopping-list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);transition:opacity var(--transition-fast)}.shopping-list-item:last-child{border-bottom:none}.shopping-list-item--checked .shopping-list-item__name{text-decoration:line-through;color:var(--color-text-muted)}.shopping-list-item__label{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0;cursor:pointer}.shopping-list-item__label input{width:20px;height:20px;accent-color:var(--color-primary);flex-shrink:0}.shopping-list-item__name{font-weight:var(--font-medium);color:var(--color-text)}.shopping-list-item__qty{font-size:var(--text-sm);color:var(--color-text-muted)}.shopping-list-item__delete{flex-shrink:0}.menus-actions,.menus-known-actions{margin-bottom:var(--space-4)}.menus-known-section{margin-bottom:var(--space-6)}.menus-known-section__title{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.menus-known-section__hint{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-4) 0}.menus-known-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.menus-known-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);border:1px solid var(--color-border)}.menus-known-chip__img{width:24px;height:24px;object-fit:cover;border-radius:var(--radius-sm)}.menus-known-chip__name{font-weight:var(--font-medium)}.menus-known-chip__rating{font-size:var(--text-xs);color:var(--color-text-muted)}.menus-list-section h2{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.menus-list-empty{color:var(--color-text-muted);margin:0}.menus-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.menus-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.menus-list-item__content{flex:1;text-align:left;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;color:inherit;display:block}.menus-list-item__week{font-weight:var(--font-medium);color:var(--color-text);display:block}.menus-list-item__days{font-size:var(--text-sm);color:var(--color-text-muted)}.menus-list-item__actions{display:flex;gap:var(--space-2);flex-shrink:0}.menus-form-card h2{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.menus-form__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.menus-form__row .form-group{margin-bottom:0}.menus-form__weekend{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer}.menus-form__weekend input{width:auto}.menus-form__grid{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}.menus-form__day{display:grid;grid-template-columns:100px 1fr;gap:var(--space-3);align-items:start}.menus-form__day-label{font-weight:var(--font-medium);color:var(--color-text);padding-top:var(--space-2)}.menus-form__day--past{opacity:.65;color:var(--color-text-muted)}.menus-form__day--past .menus-form__day-label,.menus-form__day--past .menus-form__input-name{color:var(--color-text-muted)}.menus-form__day--today{background:#0d948814;border-radius:var(--radius-md);padding:var(--space-2);margin:0 calc(-1 * var(--space-2))}.menus-form__day--today .menus-form__day-label{color:var(--color-primary);font-weight:var(--font-semibold)}.menus-form__day-fields{display:flex;flex-direction:column;gap:var(--space-2)}.menus-form__day-fields--row{flex-direction:row;align-items:center;gap:var(--space-2)}.menus-form__day-fields--row .menus-form__input-name{flex:1;min-width:0}.menus-form__input-name,.menus-form__input-url{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base)}.menus-form__known-quick{grid-column:2;display:flex;flex-wrap:wrap;gap:var(--space-1)}.menus-form__known-btn{font-size:var(--text-xs)}.menus-detail-card h2{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.menus-detail-days{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-4) 0}.menus-detail-list{list-style:none;padding:0;margin:0 0 var(--space-6) 0;display:flex;flex-direction:column;gap:var(--space-3)}.menus-detail-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.menus-detail-item__main{display:flex;align-items:center;gap:var(--space-3);min-width:0}.menus-detail-item__img{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.menus-detail-item__name{font-weight:var(--font-medium);color:var(--color-text);display:block}.menus-detail-item__rating{font-size:var(--text-sm);color:var(--color-text-muted);display:block;margin-top:var(--space-1)}.menus-detail-item__rate{flex-shrink:0}.menus-detail-item__rated{font-size:var(--text-sm);color:var(--color-primary);font-weight:var(--font-medium)}.menus-detail-item__stars{display:flex;flex-wrap:wrap;gap:var(--space-1)}.menus-detail-item__star{min-width:32px;padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.menus-known-modal-hint{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-4) 0}.menus-known-modal-empty{color:var(--color-text-muted);margin:0 0 var(--space-4) 0}.menus-known-modal-list{list-style:none;padding:0;margin:0 0 var(--space-4) 0;max-height:60vh;overflow-y:auto}.menus-known-modal-item{border-bottom:1px solid var(--color-border)}.menus-known-modal-item:last-child{border-bottom:none}.menus-known-modal-item__main{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0}.menus-known-modal-item__name-btn{flex:1;text-align:left;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit}.menus-known-modal-item__name-btn--choose:hover{color:var(--color-primary)}.menus-known-modal-item__name{display:block;font-weight:var(--font-medium);color:var(--color-text)}.menus-known-modal-item__rating{display:block;font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.menus-known-modal-item__rate{flex-shrink:0}.menus-known-modal-item__rated{font-size:var(--text-sm);color:var(--color-primary);font-weight:var(--font-medium)}.menus-known-modal-item__stars{display:flex;flex-wrap:wrap;gap:var(--space-1)}.menus-known-modal-item__stars .btn{min-width:28px;padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}@media (max-width: 767px){.menus-form__day{grid-template-columns:1fr}.menus-form__day-fields--row,.menus-detail-item,.menus-known-modal-item__main{flex-direction:column;align-items:stretch}}.expiring-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-4);background:linear-gradient(135deg,var(--color-accent-light) 0%,#fffbeb 100%);border:1px solid #fcd34d;border-radius:var(--radius-lg);font-weight:var(--font-medium);color:#92400e}.expiring-banner .btn{flex-shrink:0}@media (max-width: 767px){.expiring-banner{flex-direction:column;align-items:stretch;padding:var(--space-3)}.suggest-add-to-list{flex-direction:column;align-items:stretch;gap:var(--space-3);padding:var(--space-3)}.suggest-add-to-list__actions{flex-wrap:wrap}}.stock-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.stock-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.stock-item:hover{border-color:var(--color-border);box-shadow:var(--shadow-md)}.stock-item__image{width:56px;height:56px;object-fit:contain;border-radius:var(--radius-md);background:var(--color-bg);flex-shrink:0}.stock-item__image-placeholder{width:56px;height:56px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-border) 0%,#cbd5e1 100%);flex-shrink:0}.stock-item__body{flex:1;min-width:0}.stock-item__name{font-weight:var(--font-semibold);color:var(--color-text);margin:0 0 var(--space-1) 0}.stock-item__brand{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-1) 0}.stock-item__meta{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.stock-item__meta .expiry{color:var(--color-accent);font-weight:var(--font-medium)}.stock-item__actions{display:flex;gap:var(--space-2);flex-shrink:0}@media (max-width: 767px){.stock-item{flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3)}.stock-item__image,.stock-item__image-placeholder{width:48px;height:48px}.stock-item__body{flex:1 1 calc(100% - 48px - var(--space-3));min-width:0}.stock-item__actions{width:100%;justify-content:flex-end;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.stock-item__actions .btn{min-height:36px}}.empty-state{text-align:center;padding:var(--space-10) var(--space-6);background:var(--color-surface);border-radius:var(--radius-lg);border:1px dashed var(--color-border)}.empty-state__icon{width:64px;height:64px;margin:0 auto var(--space-4);background:var(--color-bg);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--color-text-muted)}.empty-state p{color:var(--color-text-muted);font-size:var(--text-sm);max-width:320px;margin:0 auto}.scanner-card h3{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.scanner-form{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end}.scanner-form .form-group{flex:1;min-width:200px;margin-bottom:0}.scanner-camera{width:100%;max-width:400px;margin-top:var(--space-4);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border)}@media (max-width: 767px){.scanner-form{flex-direction:column;align-items:stretch}.scanner-form .form-group{min-width:0}.scanner-card h3{font-size:var(--text-base)}}.modal-product{display:flex;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-4);background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.modal-product img{width:80px;height:80px;object-fit:contain;border-radius:var(--radius-md);background:var(--color-surface);flex-shrink:0;box-shadow:var(--shadow-sm)}.modal-product__info{flex:1;min-width:0}.modal-product__info strong{display:block;margin-bottom:var(--space-1);color:var(--color-text)}.modal-product__info p{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}@media (max-width: 479px){.modal-product{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.modal-product img{width:64px;height:64px}}.action-choice{display:flex;gap:var(--space-2);flex-wrap:wrap}.action-choice label{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.action-choice input{width:18px;height:18px;accent-color:var(--color-primary)}.action-choice label:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary-hover)}.loading-page{display:flex;align-items:center;justify-content:center;min-height:40vh;color:var(--color-text-muted);font-weight:var(--font-medium)}.loading-dots:after{content:"";animation:dots 1.5s steps(4,end) infinite}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}
