.nav-header{background:var(--color-card);border-bottom:2px solid var(--color-border);position:sticky;top:0;z-index:50;box-shadow:var(--shadow-soft)}.nav-inner{max-width:1200px;margin:0 auto;padding:.6rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.nav-brand{display:flex;align-items:center;gap:.65rem;background:transparent;border:none;padding:0;box-shadow:none;cursor:pointer;color:var(--color-primary);text-decoration:none}.nav-brand:hover{background:transparent;color:var(--color-primary-dark)}.nav-logo{width:44px;height:44px;border-radius:var(--radius-pill);object-fit:contain;background:#fff;flex-shrink:0;border:1.5px solid var(--color-border);box-shadow:var(--shadow-soft)}.nav-brand-text{font-family:Playfair Display,Georgia,Times New Roman,serif;font-size:1.2rem;font-weight:600;letter-spacing:.02em;color:var(--color-primary)}.nav-links{display:flex;gap:.2rem;flex-wrap:wrap}.nav-link{background:transparent;border:none;color:var(--color-text-soft);padding:.5rem .85rem;border-radius:var(--radius-sm);font-weight:500;cursor:pointer;box-shadow:none;display:inline-flex;align-items:center;gap:.4rem;transition:background .15s,color .15s;text-decoration:none}.nav-link:hover{background:var(--color-green-soft);color:var(--color-primary)}.nav-link.active{background:var(--color-primary);color:#fff}.nav-link.active:hover{background:var(--color-primary-dark)}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .4rem;background:var(--color-accent);color:var(--color-primary-dark);border-radius:var(--radius-pill);font-size:.72rem;font-weight:700;line-height:1}.nav-link.active .nav-badge{background:#ffffffe6;color:var(--color-primary-dark)}.nav-user{margin-left:auto;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.nav-user-name{font-size:.9rem;color:var(--color-text-soft);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-logout{padding:.4rem .8rem;font-size:.85rem}@media (max-width: 780px){.nav-inner{gap:.6rem;padding:.55rem .75rem}.nav-brand-text{display:none}.nav-logo{width:40px;height:40px}.nav-links{order:3;flex-basis:100%;justify-content:center}.nav-user{gap:.4rem;margin-left:auto}.nav-user-name{display:none}.nav-link{padding:.4rem .7rem;font-size:.92rem}}@media (max-width: 420px){.nav-inner{padding:.45rem .6rem}.nav-link{padding:.35rem .55rem;font-size:.88rem}}.catalog-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.catalog-banner{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-left:4px solid var(--color-primary);padding:.85rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.95rem;line-height:1.5;color:var(--color-primary-dark)}.catalog-banner.pending{background:var(--color-gold-soft);border-color:#d8c089;border-left-color:var(--color-accent);color:#6b4d12}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.product-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;display:flex;flex-direction:column;box-shadow:var(--shadow-soft)}.product-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary-light)}.product-image{width:100%;aspect-ratio:1 / 1;background:var(--color-bg-alt);overflow:hidden;display:flex;align-items:center;justify-content:center}.product-image img{width:100%;height:100%;object-fit:cover}.no-image-text{color:var(--color-muted);font-size:.85rem;font-style:italic}.product-info{padding:.85rem .95rem 1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.product-brand{font-family:Playfair Display,Georgia,serif;font-weight:600;color:var(--color-primary);font-size:1.08rem;line-height:1.25}.product-description{color:var(--color-text-soft);font-size:.92rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.product-meta{color:var(--color-muted);font-size:.82rem;display:flex;gap:.3rem;flex-wrap:wrap}.price-block{margin-top:auto;padding-top:.6rem;display:flex;flex-direction:column;gap:.2rem;border-top:1px solid var(--color-border)}.price-line{display:flex;justify-content:space-between;align-items:baseline;font-size:.92rem;gap:.5rem}.price-line .price-label{color:var(--color-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.price-line .price-value{font-weight:600;color:var(--color-text)}.price-line.member .price-value{color:var(--color-accent-dark);font-size:1.1rem;font-weight:700;font-family:Playfair Display,Georgia,serif}.price-line.muted .price-value{color:var(--color-muted);font-weight:400;text-decoration:line-through}.price-line.locked{font-size:.85rem}.price-line.locked .link-btn{color:var(--color-accent-dark);font-weight:600}.product-actions{display:flex;justify-content:flex-end;gap:.4rem;padding-top:.5rem}.add-btn{padding:.45rem .95rem;font-size:.85rem}.add-btn.accent{background:var(--color-accent);color:var(--color-primary-dark);font-weight:600}.add-btn.accent:hover:not(:disabled){background:var(--color-accent-dark);color:#fff}.link-btn{background:transparent;border:none;padding:0;margin:0;color:var(--color-primary);font:inherit;text-decoration:underline;cursor:pointer;box-shadow:none}.link-btn:hover{color:var(--color-primary-dark);background:transparent}.catalog-controls{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.catalog-category{width:auto;min-width:180px;padding:.5rem .75rem;font-size:.92rem;background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text)}.catalog-filter{max-width:280px}@media (max-width: 600px){.catalog-controls{width:100%}.catalog-category,.catalog-filter{flex:1 1 200px;max-width:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e30238c;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal-card{background:var(--color-card);border-radius:var(--radius);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.modal-close{position:absolute;top:.5rem;right:.5rem;background:transparent;color:var(--color-muted);border:none;font-size:1.8rem;line-height:1;width:36px;height:36px;border-radius:50%;padding:0;z-index:1;box-shadow:none}.modal-close:hover{background:var(--color-green-soft);color:var(--color-primary)}.modal-body{display:grid;grid-template-columns:1fr 1.2fr;gap:1.5rem;padding:1.5rem}.modal-image{background:var(--color-bg-alt);border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;border:1px solid var(--color-border)}.modal-image img{width:100%;height:100%;object-fit:cover}.modal-info{display:flex;flex-direction:column;gap:.65rem}.detail-brand{margin:0;color:var(--color-primary);font-family:Playfair Display,Georgia,serif;font-size:1.55rem;font-weight:600;line-height:1.2}.detail-description{margin:0;font-size:1rem;line-height:1.55;color:var(--color-text-soft)}.detail-meta{display:flex;gap:.4rem;flex-wrap:wrap;margin:.25rem 0}.detail-prices{background:var(--color-green-soft);padding:.85rem 1rem;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--color-green-mid)}.detail-price-line{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.95rem}.detail-price-line.member strong{font-size:1.3rem;color:var(--color-accent-dark);font-family:Playfair Display,Georgia,serif;font-weight:700}.detail-price-line.muted{color:var(--color-muted)}.detail-price-line.muted span:last-child{text-decoration:line-through}.detail-price-line.locked{color:var(--color-muted)}.detail-price-line.locked .link-btn{color:var(--color-accent-dark);font-weight:600}.detail-locked-prices{background:var(--color-green-soft);padding:.75rem 1rem;border-radius:var(--radius-sm);color:var(--color-muted);font-style:italic;border:1px solid var(--color-green-mid)}.detail-block{padding-top:.25rem}.detail-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);font-weight:600;margin-bottom:.25rem}.detail-ingredients{font-size:.9rem;line-height:1.55;color:var(--color-text-soft)}.detail-actions{margin-top:.5rem;padding-top:.85rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.5rem}.qty-row{display:flex;gap:.4rem;align-items:center;max-width:220px}.qty-row input{text-align:center}.qty-row button{padding:.4rem .7rem;min-width:40px}.add-to-cart-btn{margin-top:.5rem;padding:.7rem 1rem;font-size:1rem;font-weight:600}.add-to-cart-btn.accent{background:var(--color-accent);color:var(--color-primary-dark)}.add-to-cart-btn.accent:hover:not(:disabled){background:var(--color-accent-dark);color:#fff}@media (max-width: 700px){.modal-body{grid-template-columns:1fr;padding:1rem;gap:1rem}}.search-form{display:flex;gap:.5rem;margin:.5rem 0 .75rem}.search-form input{flex:1}.search-examples{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.example-chip{background:var(--color-green-soft);color:var(--color-primary-dark);border:1px solid var(--color-green-mid);font-size:.85rem;padding:.4rem .85rem;border-radius:var(--radius-pill);box-shadow:none;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.example-chip:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.search-meta{margin-bottom:.85rem;font-size:.9rem;color:var(--color-muted);display:flex;gap:.5rem;align-items:center}.search-mode{display:inline-block;padding:.15rem .6rem;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;background:var(--color-bg-alt);border:1px solid var(--color-border-strong)}.search-mode.ai{background:var(--color-gold-soft);border-color:var(--color-accent);color:var(--color-accent-dark)}.search-mode.keyword{background:var(--color-green-soft);border-color:var(--color-green-mid);color:var(--color-green-dark)}.search-form .search-category{width:auto;min-width:160px;padding:.5rem .7rem;font-size:.92rem;background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text)}@media (max-width: 600px){.search-form{flex-wrap:wrap}.search-form input,.search-form .search-category,.search-form button{flex:1 1 100%}}.cart-page h1{margin-bottom:.75rem}.cart-list{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.cart-row{display:grid;grid-template-columns:80px 1fr auto auto auto;gap:.85rem;align-items:center;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:.7rem .85rem;box-shadow:var(--shadow-soft);transition:border-color .12s}.cart-row:hover{border-color:var(--color-primary-light)}.cart-row.unavailable{opacity:.6}.cart-image{width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-bg-alt);display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border)}.cart-image img{width:100%;height:100%;object-fit:cover}.cart-image .no-image-text{color:var(--color-muted);font-size:.75rem;text-align:center}.cart-info{min-width:0}.cart-brand{font-family:Playfair Display,Georgia,serif;color:var(--color-primary);font-size:1.05rem;font-weight:600;line-height:1.2}.cart-size{color:var(--color-muted);font-size:.85rem;margin-top:.1rem}.cart-unit-price{color:var(--color-text-soft);font-size:.85rem;margin-top:.15rem}.cart-qty{display:flex;gap:.3rem;align-items:center}.cart-qty button{padding:.3rem .55rem;min-width:36px}.cart-qty input{width:60px;text-align:center;padding:.3rem}.cart-line-total{font-weight:700;color:var(--color-accent-dark);font-size:1.05rem;font-family:Playfair Display,Georgia,serif;min-width:70px;text-align:right}.cart-remove{padding:.35rem .7rem;font-size:.85rem}.cart-footer{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:1rem 1.2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.cart-total{display:flex;flex-direction:column;gap:.15rem}.cart-total span{font-size:.78rem;color:var(--color-primary);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.cart-total strong{font-size:1.7rem;color:var(--color-primary-dark);font-family:Playfair Display,Georgia,serif;font-weight:700}.checkout-btn{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;background:var(--color-accent);color:var(--color-primary-dark)}.checkout-btn:hover:not(:disabled){background:var(--color-accent-dark);color:#fff}.cart-blocked{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:2rem 1.5rem;max-width:560px;margin:1rem auto;text-align:center}.cart-blocked h2{color:var(--color-primary);margin:0 0 .5rem}.cart-blocked p{color:var(--color-text-soft);line-height:1.5}@media (max-width: 720px){.cart-row{grid-template-columns:60px 1fr;grid-template-areas:"img info" "img qty" "total total" "remove remove";gap:.5rem}.cart-image{grid-area:img;width:60px;height:60px}.cart-info{grid-area:info}.cart-qty{grid-area:qty}.cart-line-total{grid-area:total;text-align:left}.cart-remove{grid-area:remove;justify-self:flex-start}}.checkout-page h1{margin-bottom:1rem}.checkout-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.25rem;align-items:start}@media (max-width: 800px){.checkout-grid{grid-template-columns:1fr}}.checkout-form{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-soft)}.form-row label{font-weight:600;color:var(--color-text);font-size:.9rem;margin-bottom:.3rem;display:block}.payment-fieldset{border:1px solid var(--color-green-mid);background:var(--color-green-soft);border-radius:var(--radius-sm);padding:.7rem 1rem .85rem;margin:0}.payment-fieldset legend{padding:0 .5rem;color:var(--color-primary);font-weight:600;font-size:.92rem;background:var(--color-card);border-radius:4px}.payment-option{display:flex;align-items:center;gap:.55rem;padding:.4rem 0;cursor:pointer;font-size:.95rem;color:var(--color-text)}.payment-option input[type=radio]{width:auto;margin:0;cursor:pointer;accent-color:var(--color-primary)}.place-order-btn{margin-top:.25rem;padding:.85rem 1.2rem;font-size:1rem;font-weight:600;background:var(--color-accent);color:var(--color-primary-dark)}.place-order-btn:hover:not(:disabled){background:var(--color-accent-dark);color:#fff}.checkout-summary{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:1.1rem 1.2rem 1.3rem;box-shadow:var(--shadow-soft);position:sticky;top:80px}.checkout-summary h3{margin:0 0 .75rem;color:var(--color-primary)}.summary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--color-green-mid);font-size:.95rem}.summary-row:last-of-type{border-bottom:none}.summary-name{font-family:Playfair Display,Georgia,serif;font-weight:600;color:var(--color-primary)}.summary-total{margin-top:.6rem;padding-top:.7rem;border-top:2px solid var(--color-primary);display:flex;justify-content:space-between;align-items:baseline}.summary-total span{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--color-primary);font-weight:600}.summary-total strong{font-size:1.5rem;color:var(--color-primary-dark);font-family:Playfair Display,Georgia,serif}.checkout-success{background:var(--color-card);border:1px solid var(--color-green-mid);border-top:4px solid var(--color-primary);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;max-width:560px;margin:1rem auto;box-shadow:var(--shadow-soft)}.checkout-success h1{color:var(--color-green-dark);margin:0 0 .6rem}.checkout-success p{margin:.4rem 0;line-height:1.55;color:var(--color-text-soft)}.etransfer-block{background:var(--color-gold-soft);border:1px solid var(--color-accent);border-left:4px solid var(--color-accent);border-radius:var(--radius-sm);padding:.85rem 1rem;margin:0;line-height:1.5}.etransfer-block h3{margin:0 0 .4rem;color:var(--color-primary);font-size:1rem;font-family:Playfair Display,Georgia,serif}.etransfer-block p{margin:0 0 .5rem;font-size:.95rem;color:var(--color-text)}.etransfer-detail{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.55rem .75rem;font-size:.92rem;display:flex;flex-direction:column;gap:.25rem}.etransfer-block.success{margin-top:1rem;text-align:left}.checkout-success .etransfer-block{margin:1rem auto 0;max-width:480px}.orders-page{max-width:980px;margin:0 auto;padding:1.5rem 1rem}.orders-page h1{color:var(--color-primary);margin-bottom:1rem}.orders-empty{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:2.5rem 1.5rem;text-align:center;color:var(--color-muted)}.order-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1rem;box-shadow:0 1px 3px #00000008}.order-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.5rem;padding-bottom:.6rem;border-bottom:1px dashed var(--color-border);margin-bottom:.8rem}.order-head .order-id{font-weight:700;color:var(--color-primary)}.order-head .order-date{color:var(--color-muted);font-size:.9rem}.order-meta{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.order-items{list-style:none;padding:0;margin:0 0 .8rem}.order-items li{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.95rem;border-bottom:1px dotted var(--color-border)}.order-items li:last-child{border-bottom:none}.order-items .qty{color:var(--color-muted);margin:0 .5rem}.order-foot{display:flex;justify-content:space-between;align-items:center;padding-top:.6rem;border-top:1px dashed var(--color-border)}.order-foot .total{font-weight:700;font-size:1.1rem;color:var(--color-primary)}.order-foot .pay{color:var(--color-muted);font-size:.9rem}.order-etransfer{margin-top:.85rem;padding:.75rem .9rem;background:var(--color-gold-soft);border:1px solid var(--color-accent);border-left:4px solid var(--color-accent);border-radius:var(--radius-sm);line-height:1.45}.order-etransfer h4{margin:0 0 .3rem;color:var(--color-primary);font-size:.95rem;font-family:Playfair Display,Georgia,serif}.order-etransfer p{margin:0 0 .5rem;font-size:.9rem;color:var(--color-text)}.order-etransfer-detail{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem .7rem;font-size:.88rem;display:flex;flex-direction:column;gap:.2rem}.pill.order-paid{background:var(--color-green-soft);color:var(--color-green-dark);border-color:var(--color-green-mid)}.pill.order-packed{background:#e1ecf3;color:#2c5a78;border-color:#bcd6e7}.pill.order-delivered{background:var(--color-green-soft);color:var(--color-green-dark);border-color:var(--color-green-mid)}.pill.order-cancelled{background:#f4e3e3;color:#8c3a3a;border-color:#e3c2c2}.pill.order-pending{background:var(--color-gold-soft);color:#7a5a1a;border-color:#d8c089}.auth-page{max-width:980px;margin:0 auto;padding:1.5rem 1rem 3rem}.auth-hero{text-align:center;padding:.5rem 0 2rem}.auth-logo{width:130px;height:130px;border-radius:var(--radius-pill);object-fit:contain;background:#fff;border:2px solid var(--color-border);box-shadow:var(--shadow-md);display:block;margin:0 auto 1rem}.auth-title{font-family:Playfair Display,Georgia,Times New Roman,serif;font-size:2rem;margin:0;color:var(--color-primary);letter-spacing:.02em}.auth-subtitle{margin:.25rem 0 0;color:var(--color-muted);font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}@media (max-width: 760px){.auth-layout{grid-template-columns:1fr}.auth-logo{width:100px;height:100px}.auth-title{font-size:1.55rem}.auth-hero{padding-bottom:1.25rem}}.auth-info{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:1.5rem 1.4rem;box-shadow:var(--shadow-soft)}.auth-info h2{color:var(--color-primary);margin:0 0 .8rem;font-size:1.4rem}.auth-info .auth-message{white-space:pre-wrap;line-height:1.6;color:var(--color-text-soft);margin:0 0 1rem}.auth-fee{background:var(--color-gold-soft);border:1px dashed var(--color-accent);border-radius:var(--radius);padding:1rem;margin:.8rem 0;text-align:center}.auth-fee .fee-label{font-size:.8rem;color:var(--color-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.auth-fee .fee-amount{font-size:2rem;font-weight:700;color:var(--color-primary);margin:.15rem 0;font-family:Playfair Display,Georgia,serif}.auth-fee .fee-desc{color:var(--color-text-soft);font-size:.9rem}.auth-contact{background:#fff9;border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.35rem;font-size:.95rem;margin-top:.8rem}.auth-contact .contact-title{font-weight:700;color:var(--color-primary);margin-bottom:.25rem}.auth-contact a{color:var(--color-primary-dark)}.auth-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.6rem 1.5rem;box-shadow:var(--shadow-soft)}.auth-card-title{margin:0 0 1rem;text-align:center;font-size:1.4rem;color:var(--color-primary)}.auth-tabs{display:flex;background:var(--color-bg-alt);border-radius:var(--radius-sm);padding:4px;margin-bottom:1.2rem}.auth-tabs button{flex:1;background:transparent;border:none;padding:.55rem;border-radius:6px;cursor:pointer;font-weight:600;color:var(--color-muted);transition:all .15s;box-shadow:none}.auth-tabs button.active{background:var(--color-primary);color:#fff}.auth-tabs button:hover:not(.active){color:var(--color-primary);background:var(--color-green-soft)}.auth-form{display:flex;flex-direction:column;gap:.9rem}.auth-form label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;color:var(--color-text);font-size:.9rem}.auth-form input{padding:.65rem .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:1rem;background:#fff}.auth-error{background:#fde4e4;color:#8a1f1f;padding:.55rem .75rem;border-radius:var(--radius-sm);font-size:.9rem;border:1px solid #f3b9b9}.auth-form .btn{margin-top:.25rem;padding:.8rem;font-size:1rem}.auth-note{font-size:.85rem;color:var(--color-muted);text-align:center;margin:1rem 0 0;line-height:1.5}.auth-note code{background:var(--color-bg-alt);padding:.15rem .4rem;border-radius:4px;font-size:.85rem;color:var(--color-text);border:1px solid var(--color-border)}.agg-report h2{color:var(--color-primary);margin:0 0 .4rem;font-size:1.3rem}.agg-report .muted{color:var(--color-muted);margin:0 0 1rem;line-height:1.5}.agg-toolbar{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:.85rem 1rem;margin-bottom:1rem}.agg-toolbar label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--color-text-soft);margin:0;min-width:150px}.agg-toolbar input,.agg-toolbar select{padding:.45rem .6rem;font-size:.92rem}.agg-toolbar-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-left:auto}.agg-summary{display:flex;flex-wrap:wrap;gap:1.25rem;padding:.75rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.95rem}.agg-summary strong{color:var(--color-primary);font-family:Playfair Display,Georgia,serif;font-size:1.05rem}.agg-results{display:flex;flex-direction:column;gap:1.25rem}.agg-distributor{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft)}.agg-dist-head{background:var(--color-green-soft);padding:.75rem 1rem;border-bottom:1px solid var(--color-green-mid);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.agg-dist-head h3{margin:0;color:var(--color-primary);font-family:Playfair Display,Georgia,serif;font-size:1.1rem}.agg-dist-meta{font-size:.88rem;color:var(--color-text-soft)}@media print{.agg-toolbar,.admin-tabs,.admin-header,.nav-header,.app-footer{display:none!important}.agg-report{padding:0}.agg-distributor{break-inside:avoid;box-shadow:none}}.email-members h2{color:var(--color-primary);margin:0 0 .4rem;font-size:1.3rem}.email-members .muted{color:var(--color-muted);margin:0 0 1rem;line-height:1.5}.email-members .small{font-size:.85rem}.email-warning{background:var(--color-gold-soft);border:1px solid var(--color-accent);border-left:4px solid var(--color-accent);color:var(--color-text);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;line-height:1.5;font-size:.92rem}.email-warning code{background:var(--color-card);border:1px solid var(--color-border);padding:.05rem .35rem;border-radius:4px;font-size:.88rem}.email-form{display:flex;flex-direction:column;gap:1rem;max-width:720px}.email-row{display:flex;flex-direction:column;gap:.35rem}.email-row label{font-weight:600;color:var(--color-text);font-size:.95rem;margin:0}.email-row input[type=text],.email-row textarea{padding:.6rem .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:.95rem;background:#fff;font-family:inherit}.email-row textarea{resize:vertical;line-height:1.5}.email-footer-preview{background:var(--color-bg-alt);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);padding:.5rem .7rem;margin:.4rem 0 0;font-size:.85rem;white-space:pre-wrap;color:var(--color-text-soft)}.email-recipients{border:1px solid var(--color-green-mid);background:var(--color-green-soft);border-radius:var(--radius);padding:.6rem 1rem 1rem;margin:0}.email-recipients legend{padding:.15rem .65rem;background:var(--color-card);border:1px solid var(--color-green-mid);border-radius:var(--radius-sm);font-weight:600;color:var(--color-primary);font-family:Playfair Display,Georgia,serif}.email-recipient-row{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.6)}.email-recipient-row:last-of-type{border-bottom:none}.email-recipient-row input[type=checkbox]{width:auto;margin:0;cursor:pointer;accent-color:var(--color-primary)}.email-recipient-name{flex:1}.email-recipient-count{background:var(--color-card);border:1px solid var(--color-border-strong);padding:.1rem .6rem;border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;color:var(--color-primary);min-width:36px;text-align:center}.email-total{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--color-green-mid);font-size:1rem;color:var(--color-primary)}.email-total strong{font-family:Playfair Display,Georgia,serif;font-size:1.2rem}.email-actions{display:flex;justify-content:flex-end;padding-top:.5rem}.email-result{margin-top:1.5rem;background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:1rem 1.2rem}.email-result h3{margin:0 0 .4rem;color:var(--color-primary)}.email-result details{margin-top:.5rem}.email-result summary{cursor:pointer;font-weight:600;color:var(--color-primary)}.email-result ul{margin:.5rem 0 0 1.2rem;padding:0;max-height:240px;overflow-y:auto;font-size:.88rem}.email-result li{margin:.15rem 0;color:var(--color-text-soft)}.admin-settings h2{color:var(--color-primary);margin:0 0 .4rem;font-size:1.3rem}.admin-settings .muted{color:var(--color-muted);margin:0 0 1rem}.settings-form{display:flex;flex-direction:column;gap:1.4rem;max-width:760px}.settings-section{border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:1.1rem 1.2rem 1.2rem;margin:0;background:var(--color-green-soft);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:1rem}.settings-section legend{padding:.15rem .65rem;font-family:Playfair Display,Georgia,serif;font-size:1.1rem;font-weight:600;color:var(--color-primary);background:var(--color-card);border:1px solid var(--color-green-mid);border-radius:var(--radius-sm)}.settings-section-desc{margin:-.3rem 0 0;color:var(--color-text-soft);font-size:.88rem}.settings-field{display:flex;flex-direction:column;gap:.35rem}.settings-field label{font-weight:600;color:var(--color-text);font-size:.95rem}.settings-field input,.settings-field textarea,.settings-field select{padding:.6rem .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:.95rem;background:#fff;font-family:inherit}.settings-field textarea{min-height:90px;resize:vertical;line-height:1.5}.settings-field input:focus,.settings-field textarea:focus,.settings-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a7c592e}.settings-field .field-hint{margin:.15rem 0 0;font-size:.82rem;color:var(--color-muted);line-height:1.4}.settings-actions{display:flex;gap:.55rem;justify-content:flex-end;padding-top:.25rem}@media (max-width: 600px){.settings-actions{flex-direction:column-reverse}.settings-actions .btn{width:100%}}.admin-page{max-width:1200px;margin:0 auto;padding:1.5rem 1rem 3rem}.admin-header{margin-bottom:1rem;display:flex;align-items:center;gap:1rem}.admin-header h1{color:var(--color-primary);margin:0 0 .15rem}.admin-sub{color:var(--color-muted);margin:0;font-size:.9rem}.admin-logo{width:56px;height:56px;border-radius:var(--radius-pill);object-fit:contain;background:#fff;border:1.5px solid var(--color-border);box-shadow:var(--shadow-soft);flex-shrink:0}.admin-denied{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:2rem;text-align:center}.admin-denied h1{color:var(--color-primary)}.admin-tabs{display:flex;flex-wrap:wrap;gap:.4rem;background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:10px;padding:5px;margin-bottom:1.2rem}.admin-tabs button{background:transparent;border:none;padding:.55rem .9rem;border-radius:7px;cursor:pointer;font-weight:600;color:var(--color-text-soft);font-size:.92rem;transition:all .15s;box-shadow:none}.admin-tabs button:hover{color:var(--color-primary);background:var(--color-card)}.admin-tabs button.active{background:var(--color-primary);color:#fff}.admin-tabs button.active:hover{background:var(--color-primary-dark)}.admin-section{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.3rem 1.3rem 1.5rem;box-shadow:var(--shadow-soft)}.admin-section h2{color:var(--color-primary);margin:0 0 .8rem;font-size:1.3rem}.admin-section .muted{color:var(--color-muted);font-size:.92rem;margin:0 0 .5rem}.admin-section .muted.small{font-size:.85rem}.header-spec{background:var(--color-green-soft);border:1px dashed var(--color-primary-light);border-radius:var(--radius-sm);padding:.6rem .85rem;margin:.5rem 0 .8rem;font-family:monospace;font-size:.9rem;color:var(--color-primary-dark)}.upload-form{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin:.8rem 0 .5rem}.upload-form input[type=file]{flex:1;min-width:220px;padding:.5rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:#fff}.upload-error{background:#fde4e4;color:#8a1f1f;padding:.55rem .75rem;border-radius:var(--radius-sm);margin-top:.8rem;border:1px solid #f3b9b9}.upload-result{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:.9rem 1rem;margin-top:1rem}.upload-result h3{margin:0 0 .4rem;color:var(--color-primary)}.upload-result p{margin:.15rem 0;color:var(--color-text)}.upload-result details{margin-top:.5rem}.upload-result summary{cursor:pointer;font-weight:600;color:var(--color-primary)}.upload-result ul{margin:.5rem 0 0 1.2rem;padding:0;max-height:220px;overflow-y:auto;font-size:.88rem}.upload-result li{margin:.15rem 0;color:var(--color-text-soft)}.admin-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}.admin-toolbar input[type=text],.admin-toolbar input[type=search]{flex:1;min-width:200px;padding:.55rem .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:.95rem;background:#fff}.admin-toolbar .grow{flex:1}.admin-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff}.admin-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:600px}.admin-table th,.admin-table td{padding:.6rem .7rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.admin-table th{background:var(--color-green-soft);font-weight:700;color:var(--color-primary);position:sticky;top:0;border-bottom:1px solid var(--color-green-mid)}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--color-bg-alt)}.admin-table input[type=text],.admin-table input[type=email],.admin-table input[type=number],.admin-table textarea,.admin-table select{width:100%;padding:.35rem .5rem;border:1px solid var(--color-border-strong);border-radius:6px;font-size:.9rem;background:#fff}.admin-table textarea{min-height:50px;font-family:inherit;resize:vertical}.admin-actions{display:flex;gap:.35rem;flex-wrap:wrap}.admin-actions .btn{padding:.35rem .6rem;font-size:.82rem}.admin-empty{padding:2rem;text-align:center;color:var(--color-muted)}.admin-loading{padding:1rem;text-align:center;color:var(--color-muted)}.admin-error{background:#fde4e4;color:#8a1f1f;padding:.55rem .75rem;border-radius:var(--radius-sm);margin-bottom:.8rem;border:1px solid #f3b9b9}.bulk-bar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;padding:.5rem .8rem;background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius-sm);margin-bottom:.7rem}.bulk-bar .count{font-weight:600;color:var(--color-primary);margin-right:.3rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e30238c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal-card{background:var(--color-card);border-radius:var(--radius);max-width:580px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.modal-card header{padding:1rem 1.2rem;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;background:var(--color-green-soft);border-radius:var(--radius) var(--radius) 0 0}.modal-card header h3{margin:0;color:var(--color-primary)}.modal-card header .x{background:transparent;border:none;font-size:1.4rem;cursor:pointer;color:var(--color-muted);padding:0 .3rem;box-shadow:none}.modal-card header .x:hover{color:var(--color-primary);background:transparent}.modal-body{padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.7rem}.modal-body label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;font-weight:600}.modal-body input,.modal-body textarea,.modal-body select{padding:.55rem .7rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:.95rem;background:#fff}.modal-body textarea{min-height:70px;font-family:inherit;resize:vertical}.modal-body .row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.modal-foot{padding:.9rem 1.2rem;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:.5rem;background:var(--color-bg-alt);border-radius:0 0 var(--radius) var(--radius)}:root{--color-primary: #4a7c59;--color-primary-dark: #355a3f;--color-primary-light: #6a9e78;--color-accent: #c6a35d;--color-accent-dark: #9e8044;--color-gold: #c6a35d;--color-gold-soft: #f3ecd8;--color-green: #4a7c59;--color-green-soft: #e8f2ec;--color-green-mid: #c8dece;--color-green-dark: #2d5a3f;--color-text: #2a2926;--color-text-soft: #47443e;--color-muted: #7a7770;--color-background: #faf8f3;--color-bg-alt: #eef5f1;--color-card: #ffffff;--color-border: #cfddd4;--color-border-strong: #b8ccc0;--color-danger: #b94c4c;--color-warning: #d97757;--color-success: var(--color-green);--shadow-soft: 0 1px 3px rgba(44, 80, 55, .07), 0 1px 2px rgba(44, 80, 55, .04);--shadow-md: 0 4px 14px rgba(44, 80, 55, .11);--shadow-lg: 0 10px 28px rgba(44, 80, 55, .14);--radius: 12px;--radius-sm: 8px;--radius-pill: 999px;--color-bg: var(--color-background)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-background);color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 1rem 3rem}.app-footer{text-align:center;padding:1.25rem 1rem 1.5rem;color:var(--color-muted);border-top:1px solid var(--color-border);font-size:.85rem;background:var(--color-bg-alt)}h1,h2,h3,h4{color:var(--color-primary);font-family:Playfair Display,Georgia,Times New Roman,serif;font-weight:600;letter-spacing:.01em;margin-top:0}h1{font-size:1.75rem}h2{font-size:1.4rem}h3{font-size:1.15rem}a{color:var(--color-primary);text-decoration:underline}a:hover{color:var(--color-primary-dark)}button,.btn{font:inherit;border:none;padding:.6rem 1.1rem;border-radius:var(--radius-sm);cursor:pointer;background:var(--color-primary);color:#fff;font-weight:500;letter-spacing:.01em;transition:background .15s,transform .05s,box-shadow .15s;box-shadow:var(--shadow-soft)}button:hover:not(:disabled),.btn:hover:not(:disabled){background:var(--color-primary-dark)}button:active:not(:disabled){transform:translateY(1px)}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button.secondary,.btn.secondary{background:var(--color-bg-alt);color:var(--color-text);border:1px solid var(--color-border-strong);box-shadow:none}button.secondary:hover:not(:disabled){background:var(--color-green-soft);border-color:var(--color-primary-light)}button.danger,.btn.danger{background:var(--color-danger)}button.danger:hover:not(:disabled){background:#993b3b}button.warning,.btn.warning{background:var(--color-warning)}button.ghost,.btn.ghost{background:transparent;color:var(--color-primary);border:1px solid var(--color-border-strong);box-shadow:none}button.ghost:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}button.accent,.btn.accent{background:var(--color-accent);color:var(--color-primary-dark);font-weight:600}button.accent:hover:not(:disabled),.btn.accent:hover:not(:disabled){background:var(--color-accent-dark);color:#fff}.btn.btn-primary{background:var(--color-primary);color:#fff}.btn.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn.btn-ghost{background:transparent;color:var(--color-primary);border:1px solid var(--color-border-strong);box-shadow:none}.btn.btn-ghost:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn.btn-danger{background:var(--color-danger);color:#fff}.btn.btn-danger:hover:not(:disabled){background:#993b3b}input,select,textarea{font:inherit;padding:.55rem .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a7c592e}label{display:block;font-weight:500;margin-bottom:.3rem;font-size:.9rem;color:var(--color-text)}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-soft)}table.simple{width:100%;border-collapse:collapse}table.simple th,table.simple td{padding:.6rem .5rem;text-align:left;border-bottom:1px solid var(--color-border);font-size:.92rem}table.simple th{background:var(--color-bg-alt);font-weight:600;color:var(--color-primary)}.pill{display:inline-block;padding:.15rem .6rem;border-radius:var(--radius-pill);font-size:.78rem;font-weight:500;background:var(--color-bg-alt);color:var(--color-text);border:1px solid var(--color-border-strong)}.pill.active{background:var(--color-green-soft);color:var(--color-green-dark);border-color:var(--color-green-mid)}.pill.inactive{background:#f4e3e3;color:#8c3a3a;border-color:#e3c2c2}.pill.pending{background:var(--color-gold-soft);color:#7a5a1a;border-color:#d8c089}.pill.registered{background:var(--color-green-soft);color:var(--color-primary-dark);border-color:var(--color-green-mid)}.pill.member,.pill.pill-green{background:var(--color-green-soft);color:var(--color-green-dark);border-color:var(--color-green-mid)}.pill.pill-muted{background:var(--color-bg-alt);color:var(--color-muted);border-color:var(--color-border-strong)}.pill.pill-amber{background:var(--color-gold-soft);color:#7a5a1a;border-color:#d8c089}.pill.pill-blue{background:#e1ecf3;color:#2c5a78;border-color:#bcd6e7}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--color-primary-dark);color:#fff;padding:.7rem 1.2rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:1000;font-size:.95rem;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.empty-state{text-align:center;padding:2rem 1rem;color:var(--color-muted)}.error-text{color:var(--color-danger)}.success-text{color:var(--color-success)}.muted{color:var(--color-muted)}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.spacer{flex:1}@media (max-width: 600px){h1{font-size:1.4rem}.app-main{padding:1rem .75rem 2rem}}.membership-modal .modal-body{gap:1rem}.membership-modal .membership-fee{background:var(--color-gold-soft);border:1px dashed var(--color-accent);border-radius:var(--radius);padding:.9rem 1rem;text-align:center}.membership-modal .fee-amount{font-size:2rem;font-weight:700;color:var(--color-primary);font-family:Playfair Display,Georgia,serif;margin-bottom:.15rem}.membership-modal .fee-desc{color:var(--color-muted);font-size:.92rem}.membership-modal .membership-contact{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-radius:var(--radius);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.35rem}.membership-modal .membership-contact .contact-title{font-weight:700;color:var(--color-primary);margin-bottom:.25rem}.membership-modal .membership-contact a{color:var(--color-primary-dark)}.ordering-banner{background:var(--color-green-soft);border:1px solid var(--color-green-mid);border-left:4px solid var(--color-primary);color:var(--color-primary-dark);padding:.85rem 1.1rem;border-radius:var(--radius);margin-bottom:1rem;display:flex;align-items:flex-start;gap:.8rem}.ordering-banner .ob-icon{font-size:1.4rem;line-height:1;margin-top:.05rem}.ordering-banner .ob-body{flex:1;font-size:.95rem;line-height:1.45}.ordering-banner .ob-title{font-weight:700;margin-bottom:.15rem}.ordering-banner .ob-next{margin-top:.35rem;font-size:.88rem;color:var(--color-primary)}
