@font-face{font-family:Chewy;src:url(/fonts/Chewy-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Open Sans;src:url(/fonts/OpenSans-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Open Sans;src:url(/fonts/OpenSans-Semibold.ttf) format("truetype");font-weight:600;font-display:swap}:root{--color-primary: #FCA700;--color-primary-dark: #E09200;--color-primary-light: #FFF8E7;--color-green: #037F00;--color-success: #037F00;--color-danger: #CC0000;--color-surface: #ffffff;--color-surface-2: #F5F5F5;--color-text: #212121;--color-text-muted: #6E6E6E;--color-border: #E1E1E1;--color-qty-minus-bg: #fee2e2;--color-qty-minus-hover: #fca5a5;--color-qty-plus-bg: #d1fad0;--color-qty-plus-hover: #a3f4a2;--color-share-success-bg: #f0fdf4;--color-share-success-border: #bbf7d0;--font-title: "Chewy", system-ui, sans-serif;--font-body: "Open Sans", system-ui, sans-serif;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--radius-sm: 8px;--radius-md: 12px;--radius-full: 9999px;--transition: .15s ease}[data-theme=dark]{--color-primary: #FCA700;--color-primary-dark: #E09200;--color-primary-light: #2a2100;--color-green: #4caf50;--color-success: #4caf50;--color-danger: #f44336;--color-surface: #1e1e1e;--color-surface-2: #2a2a2a;--color-text: #f0f0f0;--color-text-muted: #9e9e9e;--color-border: #3a3a3a;--color-qty-minus-bg: #3d1f1f;--color-qty-minus-hover: #5c2a2a;--color-qty-plus-bg: #1a2e1a;--color-qty-plus-hover: #1f3d1f;--color-share-success-bg: #0f2b14;--color-share-success-border: #1a4a25;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-surface);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer;border:none;background:none}.container{width:100%;max-width:640px;margin:0 auto;padding:0 16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:15px;font-weight:600;min-height:44px;transition:background var(--transition),transform var(--transition),box-shadow var(--transition);white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff}[data-theme=dark] .btn-primary{color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}[data-theme=dark] .btn-ghost{color:var(--color-text-muted)}.btn-ghost:hover{background:var(--color-surface-2);color:var(--color-text)}.btn-primary--resetting{background:var(--color-danger);color:#fff}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-border)}.btn-outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-outline:hover{background:var(--color-primary-light)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:#026200}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.landing{min-height:100vh;background:var(--color-surface)}.landing__theme-toggle{position:fixed;top:12px;right:12px;z-index:200}.landing__theme-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);box-shadow:var(--shadow-sm);transition:background var(--transition),color var(--transition);cursor:pointer}.landing__theme-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.hero{background:var(--color-primary-light);padding:64px 16px 80px;text-align:center;border-bottom:1px solid var(--color-border)}.hero__logo{margin-bottom:24px}.hero__logo img{width:96px;height:96px;border-radius:var(--radius-md)}.hero__title{font-family:var(--font-title);font-size:clamp(2.8rem,8vw,5rem);letter-spacing:.02em;margin-bottom:16px;line-height:1}.hero__title .t-orange{color:var(--color-primary)}.hero__title .t-green{color:var(--color-green)}.hero__tagline{font-size:1.05rem;color:var(--color-text-muted);max-width:420px;margin:0 auto 40px;line-height:1.6}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.hero__actions .btn{min-width:180px;font-size:16px;padding:14px 28px}.features{padding:64px 16px;background:var(--color-surface)}.features__title{font-family:var(--font-title);text-align:center;font-size:2rem;color:var(--color-text);margin-bottom:40px;letter-spacing:.02em}.features__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;max-width:780px;margin:0 auto}.feature-card{background:var(--color-surface-2);border-radius:var(--radius-md);padding:24px 20px;border:1px solid var(--color-border)}.feature-card__icon{width:48px;height:48px;margin-bottom:14px;background:var(--color-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.feature-card__icon img{width:48px;height:48px;border-radius:var(--radius-sm);display:block}.feature-card__icon svg{width:26px;height:26px;fill:#fff}.feature-card__title{font-weight:700;font-size:1rem;margin-bottom:6px;color:var(--color-text)}.feature-card__desc{font-size:.875rem;color:var(--color-text-muted);line-height:1.6}.feature-card__extras{margin:10px 0 0;padding-left:18px;font-size:.875rem;color:var(--color-text-muted);line-height:1.8}.app-promo-strip{display:flex;align-items:center;background:color-mix(in srgb,var(--color-green) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--color-green) 20%,transparent);font-size:.8rem;color:var(--color-text-muted)}.app-promo-strip__link{flex:1;padding:7px 16px;text-align:center;color:var(--color-text-muted);text-decoration:none;transition:background .15s}.app-promo-strip__link:hover{background:color-mix(in srgb,var(--color-green) 14%,transparent)}.app-promo-strip strong{color:var(--color-green);font-weight:600}.app-promo-strip__close{flex-shrink:0;padding:0 10px;height:100%;background:none;border:none;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;transition:color .15s}.app-promo-strip__close:hover{color:var(--color-text)}.download-section{background:var(--color-primary);padding:64px 16px;text-align:center}.download-section__title{font-family:var(--font-title);font-size:2.2rem;color:#fff;margin-bottom:10px;letter-spacing:.02em}.download-section__subtitle{font-size:1rem;color:#ffffffd9;margin-bottom:32px}.google-play-btn{display:inline-flex;align-items:center;gap:12px;background:#000;color:#fff;padding:12px 20px;border-radius:var(--radius-sm);transition:background var(--transition);text-decoration:none;min-height:44px}.google-play-btn:hover{background:#222}.google-play-btn__icon{width:24px;height:24px;flex-shrink:0}.google-play-btn__text{text-align:left;line-height:1.2}.google-play-btn__sub{font-size:10px;opacity:.8;text-transform:uppercase;letter-spacing:.05em}.google-play-btn__name{font-size:16px;font-weight:700}.landing-footer{background:var(--color-surface-2);border-top:1px solid var(--color-border);color:var(--color-text-muted);padding:24px 16px;text-align:center;font-size:.85rem}.app-layout{display:flex;flex-direction:column;min-height:100vh;background:var(--color-surface-2)}.app-header{background:var(--color-surface);color:var(--color-text);padding:12px 16px;position:sticky;top:0;z-index:100;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.app-header__inner{max-width:640px;margin:0 auto;display:flex;align-items:center;gap:12px}.app-header__logo{flex-shrink:0}.app-header__logo img{width:36px;height:36px;border-radius:var(--radius-sm);display:block}.app-header__title{font-family:var(--font-title);font-size:1.7rem;letter-spacing:.02em}.app-header__title .t-orange{color:var(--color-primary)}.app-header__title .t-green{color:var(--color-green)}.app-header__actions{margin-left:auto;display:flex;align-items:center;gap:4px}.app-header__action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;transition:background .15s,color .15s}.app-header__action-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.app-header__action-btn--play:hover{color:var(--color-green)}.app-main{flex:1;padding:16px 16px 100px;max-width:640px;width:100%;margin:0 auto}.search-wrapper{position:relative;margin-bottom:16px}.search-input-row{display:flex;gap:8px}.search-input{flex:1;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:16px;background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition);outline:none;color:var(--color-text);min-height:44px}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #fca70033}.search-input::placeholder{color:var(--color-text-muted)}.search-add-btn{padding:12px 18px;background:var(--color-success);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:20px;font-weight:700;min-height:44px;transition:background var(--transition),transform var(--transition);flex-shrink:0;line-height:1}.search-add-btn:hover{background:#026200}.search-add-btn:active{transform:scale(.95)}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:200;overflow:hidden}.search-suggestion{padding:12px 16px;cursor:pointer;font-size:15px;transition:background var(--transition);display:flex;align-items:center;gap:8px;min-height:44px}.search-suggestion:hover,.search-suggestion--active{background:var(--color-primary-light)}.search-suggestion:not(:last-child){border-bottom:1px solid var(--color-border)}.empty-state{text-align:center;padding:48px 24px;color:var(--color-text-muted)}.empty-state__icon{width:64px;height:64px;background:var(--color-border);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.empty-state__icon svg{width:32px;height:32px;fill:var(--color-text-muted)}.empty-state__title{font-weight:700;color:var(--color-text);margin-bottom:6px}.empty-state__desc{font-size:.875rem;line-height:1.6}.drink-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface)}.drink-item{padding:14px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--color-border);animation:slideIn .2s ease;background:var(--color-surface)}.drink-item:last-child{border-bottom:none}@keyframes slideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.drink-item__name{flex:1;font-family:var(--font-title);font-size:1.2rem;color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;transition:background var(--transition),color var(--transition),opacity var(--transition)}.drink-item__name--pressing{background:#0000000f}.drink-item__name--reset{color:var(--color-danger);opacity:.5}.drink-item__controls{display:flex;align-items:center;gap:6px;flex-shrink:0}.qty-btn{width:36px;height:36px;border-radius:var(--radius-sm);font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:background var(--transition),transform var(--transition);line-height:1;min-height:36px}.qty-btn--minus{background:var(--color-qty-minus-bg);color:var(--color-danger)}.qty-btn--minus:hover{background:var(--color-qty-minus-hover)}.qty-btn--delete{background:var(--color-qty-minus-bg);color:var(--color-danger);display:flex;align-items:center;justify-content:center}.qty-btn--delete:hover{background:var(--color-qty-minus-hover)}.qty-btn--plus{background:var(--color-qty-plus-bg);color:var(--color-success)}.qty-btn--plus:hover{background:var(--color-qty-plus-hover)}.qty-btn:active{transform:scale(.9)}.qty-display{min-width:32px;text-align:center;font-family:var(--font-title);font-size:1.3rem;color:var(--color-danger)}.sticky-bar{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:12px 16px;box-shadow:0 -4px 16px #00000014;z-index:100}.sticky-bar__reset-banner{background:var(--color-danger);color:#fff;font-size:13px;font-weight:600;text-align:center;padding:8px 16px;margin:-12px -16px 10px;animation:slideDown .15s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sticky-bar__inner{max-width:640px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.sticky-bar__count{font-size:14px;color:var(--color-text-muted);font-weight:500}.sticky-bar__count strong{color:var(--color-text);font-size:18px;font-weight:700}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:300;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);width:100%;max-height:90vh;border-radius:var(--radius-md) var(--radius-md) 0 0;display:flex;flex-direction:column;animation:slideUp .25s cubic-bezier(.32,.72,0,1);overflow:hidden}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:640px){.modal-overlay{align-items:center}.modal{max-width:480px;border-radius:var(--radius-md);animation:scaleIn .2s ease;max-height:80vh}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}}.modal__handle{width:36px;height:4px;background:var(--color-border);border-radius:2px;margin:12px auto 0;flex-shrink:0}@media(min-width:640px){.modal__handle{display:none}}.modal__header{padding:20px 20px 16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal__title{font-family:var(--font-title);font-size:1.4rem;color:var(--color-text);letter-spacing:.02em}.modal__close{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;font-size:20px;transition:background var(--transition),color var(--transition)}.modal__close:hover{background:var(--color-border);color:var(--color-text)}.modal__body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.order-item{display:flex;align-items:center;padding:14px 20px;border-bottom:1px solid var(--color-border);gap:12px;min-height:48px}.order-item:last-child{border-bottom:none}.order-item__qty{font-size:1.1rem;font-weight:700;color:var(--color-primary);min-width:36px}.order-item__name{flex:1;font-size:15px;font-weight:500}.order-total{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:2px solid var(--color-border);font-weight:600;color:var(--color-text-muted);font-size:14px;flex-shrink:0;background:var(--color-surface-2)}.order-total span:last-child{font-size:16px;font-weight:700;color:var(--color-text)}.modal__footer{padding:16px 20px 20px;display:flex;flex-direction:column;gap:10px;flex-shrink:0;border-top:1px solid var(--color-border)}.modal__footer .btn{width:100%;font-size:16px;padding:14px 24px}.share-success{background:var(--color-share-success-bg);border:1px solid var(--color-share-success-border);border-radius:var(--radius-sm);padding:12px 16px;font-size:14px;color:var(--color-success);display:flex;align-items:center;gap:8px;animation:slideIn .2s ease}.session-layout{min-height:100vh;background:var(--color-surface-2);display:flex;flex-direction:column}.session-header{background:var(--color-surface);color:var(--color-text);padding:12px 16px;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.session-header__inner{max-width:640px;margin:0 auto}.session-header__back{color:var(--color-primary);font-size:14px;font-weight:600;margin-bottom:6px;display:inline-flex;align-items:center;gap:4px;transition:color var(--transition);min-height:44px}.session-header__back:hover{color:var(--color-primary-dark)}.session-header__title{font-family:var(--font-title);font-size:1.7rem;letter-spacing:.02em}.session-header__title .t-orange{color:var(--color-primary)}.session-header__title .t-green{color:var(--color-green)}.session-header__subtitle{font-size:13px;color:var(--color-text-muted);margin-top:2px}.session-main{flex:1;padding:20px 16px 32px;max-width:640px;width:100%;margin:0 auto}.session-card{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);overflow:hidden}.session-card__order-item{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--color-border);gap:12px;min-height:48px}.session-card__order-item:last-child{border-bottom:none}.session-card__qty{font-size:1.1rem;font-weight:700;color:var(--color-primary);min-width:36px}.session-card__name{font-size:15px;font-weight:600}.session-total{padding:12px 16px;background:var(--color-surface-2);font-size:14px;font-weight:600;color:var(--color-text-muted);border-top:2px solid var(--color-border)}.session-actions{margin-top:16px;display:flex;flex-direction:column;gap:10px}.session-actions .btn{width:100%;font-size:16px;padding:14px 24px}.state-loading,.state-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:12px;color:var(--color-text-muted);text-align:center;padding:32px}.state-error{color:var(--color-danger)}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-page{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 24px}.error-page__icon{font-size:4rem;line-height:1;margin-bottom:16px}.error-page__code{font-family:var(--font-title);font-size:2.4rem;color:var(--color-primary);letter-spacing:.02em;margin-bottom:8px}.error-page__title{font-size:1.1rem;font-weight:600;color:var(--color-text);margin-bottom:8px}.error-page__body{font-size:14px;color:var(--color-text-muted);max-width:280px;line-height:1.5}@media(max-width:400px){.hero__actions{flex-direction:column;align-items:center}.hero__actions .btn{width:100%;max-width:280px}}.group-cta{width:100%;margin-bottom:8px}.group-main{gap:16px}.group-page-title{font-family:var(--font-title);font-size:1.8rem;color:var(--color-text)}.group-intro,.group-muted{color:var(--color-text-muted);font-size:14px}.group-error{background:var(--color-share-success-bg);border:1px solid var(--color-danger);color:var(--color-danger);border-radius:var(--radius-sm);padding:10px 12px;font-size:14px}.group-form{display:flex;flex-direction:column;gap:10px}.group-input,.group-drink-input input,select.group-input{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);font-size:16px}.group-input:focus{outline:none;border-color:var(--color-primary)}.group-input--code{letter-spacing:4px;text-transform:uppercase;font-weight:600}.group-drink-input{position:relative}.group-btn-row{display:flex;gap:8px}.group-btn-row .btn{flex:1}.group-tabs{display:flex;gap:8px;margin-bottom:16px}.group-tab{flex:1;padding:10px;border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border);font-size:14px;font-weight:600}.group-tab--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.group-active,.group-card{display:flex;flex-direction:column;gap:14px}.group-card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px}.group-card__title{font-family:var(--font-title);font-size:1.4rem;color:var(--color-text)}.group-code-block{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.group-code-label{font-size:13px;color:var(--color-text-muted)}.group-code{font-size:2.2rem;font-weight:700;letter-spacing:6px;color:var(--color-text)}.group-share-success,.share-success-inline{color:var(--color-success);font-size:14px}.group-fetching{color:var(--color-primary-dark);font-size:15px}.group-toggle{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--color-text);cursor:pointer}.group-toggle input{width:18px;height:18px;accent-color:var(--color-primary)}.group-link-btn{align-self:flex-start;background:none;color:var(--color-primary);font-size:14px;padding:4px 0}.group-link-btn--danger{color:var(--color-danger)}.group-section-title{font-size:16px;font-weight:700;color:var(--color-text)}.group-order,.group-history,.group-balances,.group-transactions{display:flex;flex-direction:column;gap:4px}.group-order__item,.group-history__item,.group-balance{display:flex;justify-content:space-between;gap:12px;padding:4px 0}.group-order__item{justify-content:flex-start}.group-order__qty{color:var(--color-danger);font-weight:700;min-width:40px}.group-order__name{color:var(--color-text)}.group-balance--negative{color:var(--color-danger);font-weight:700}.group-balance--positive{color:var(--color-success);font-weight:700}.group-member{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid var(--color-border)}.group-member__info{display:flex;flex-direction:column;gap:2px}.group-member__name{color:var(--color-text);font-size:16px}.group-member__badge{margin-right:4px}.group-member__you,.group-member__drink{color:var(--color-text-muted);font-size:13px}.group-member__actions{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.group-admin{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--color-border);padding-top:16px;margin-top:8px}.group-admin__title{font-size:16px;font-weight:700;color:var(--color-text)}.group-transaction{color:var(--color-text);font-size:15px;padding:4px 0}.session-theme-btn{position:absolute;top:12px;right:12px}
