:root{color:#17324a;background:#f4ecdd;font-family:-apple-system,BlinkMacSystemFont,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;--color-ink: #17324a;--color-ink-2: #244967;--color-paper: #f4ecdd;--color-paper-2: #fffaf0;--color-line: #d7cbb8;--color-seal: #9d1823;--color-gold: #b9934a;--color-muted: #6f675b;--color-white: #ffffff;--color-ok: #1f7a55;--color-warning: #b76b14;--shadow-raised: 0 18px 45px rgba(23, 50, 74, .14)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(#fffaf0c7,#fffaf0c7),repeating-linear-gradient(90deg,rgba(23,50,74,.035) 0 1px,transparent 1px 80px),linear-gradient(135deg,#f8f3e8,#eadcc4)}button,input,textarea,select{font:inherit}.app-shell{min-height:100vh}.brand-header{background:var(--color-ink);color:var(--color-white);min-height:64px;padding:16px 20px;border-bottom:3px solid var(--color-gold);display:flex;justify-content:space-between;align-items:center;gap:12px}.brand-header__name{margin:0;font-size:1.125rem;font-weight:700}.brand-header__identity{display:flex;min-width:0;align-items:center;gap:10px;color:inherit;text-decoration:none;cursor:pointer;border-radius:8px;transition:opacity .12s ease}.brand-header__identity:hover{opacity:.85}.brand-header__identity:focus-visible{outline:2px solid var(--color-white);outline-offset:3px}.brand-header__logo{width:40px;height:40px;flex:0 0 auto;border:1px solid rgba(255,255,255,.35);object-fit:cover}.brand-header__title{margin:0;font-weight:900;line-height:1.35}.brand-header__subtitle{margin:4px 0 0;color:#ffffffbd;font-size:13px}.brand-header__seal{display:grid;width:36px;height:36px;place-items:center;border:2px solid var(--color-seal);background:var(--color-seal);color:var(--color-white);font-weight:900;flex:0 0 auto}.page{width:min(100%,1120px);margin:0 auto;padding:16px}.screen-section{display:grid;gap:16px}.surface{background:var(--color-paper-2);border:1px solid var(--color-line);box-shadow:var(--shadow-raised)}.card{background:var(--color-white);border:1px solid var(--color-line);padding:14px}.primary-button{min-height:44px;border:1px solid var(--color-ink);background:var(--color-ink);color:var(--color-white);padding:10px 14px;cursor:pointer}.secondary-button{min-height:44px;border:1px solid var(--color-ink);background:transparent;color:var(--color-ink);padding:10px 14px;cursor:pointer}.danger-button{min-height:44px;border:1px solid var(--color-seal);background:var(--color-seal);color:var(--color-white);padding:10px 14px;cursor:pointer}button{transition:transform .06s ease,filter .12s ease,box-shadow .12s ease,background-color .12s ease}button:hover:not(:disabled){filter:brightness(1.06)}button:active:not(:disabled){transform:translateY(1px) scale(.97);filter:brightness(.88)}button:focus-visible{outline:2px solid var(--color-seal);outline-offset:2px}a.primary-button,a.secondary-button{transition:transform .06s ease,filter .12s ease}a.primary-button:active,a.secondary-button:active{transform:translateY(1px) scale(.97);filter:brightness(.88)}.form-field{display:grid;gap:6px}.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid var(--color-line);background:var(--color-paper-2);color:var(--color-ink);padding:11px}.quantity-stepper{display:grid;grid-template-columns:36px 34px 36px;align-items:center;border:1px solid var(--color-ink)}.quantity-stepper__button{height:36px;border:0;background:var(--color-ink);color:var(--color-white);cursor:pointer}.quantity-stepper__button:disabled{cursor:not-allowed;opacity:.55}.quantity-stepper__value{text-align:center;font-weight:900}.notice{border-left:4px solid var(--color-ink);background:var(--color-white);color:var(--color-ink);padding:12px;line-height:1.6}.notice--success{border-left-color:var(--color-ok);background:#eef9f2;color:#1f513b}.notice--warning,.notice--danger{border-left-color:var(--color-seal);background:#fff3ea;color:#5f2f26}.status-badge{display:inline-flex;padding:4px 8px;background:#f2e4c6;color:var(--color-ink);border:1px solid var(--color-line);font-size:13px;font-weight:800}.status-badge--success{background:#eef9f2;color:#1f513b}.status-badge--warning{background:#fff3ea;color:#5f2f26}.status-badge--danger{background:var(--color-seal);color:var(--color-white);border-color:var(--color-seal)}.phone-gate,.customer-menu,.customer-menu__list{display:grid;gap:12px}.phone-gate__help{margin:0;color:var(--color-muted);line-height:1.6}.form-alert{margin:0;color:var(--color-seal);line-height:1.5}.customer-menu__categories{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.customer-menu__category{display:inline-flex;min-height:40px;align-items:center;border:1px solid var(--color-line);background:var(--color-paper-2);color:var(--color-ink);padding:8px 14px;white-space:nowrap;text-decoration:none;cursor:pointer;font:inherit}.customer-menu__category[aria-selected=true]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-white);font-weight:700}.customer-menu__group{display:grid;gap:12px;scroll-margin-top:12px}.customer-menu__group-heading{margin:0;font-size:18px;padding-bottom:6px;border-bottom:2px solid var(--color-ink)}.customer-menu__item{display:flex;min-height:96px;align-items:center;justify-content:space-between;gap:16px}.customer-menu__item-copy{display:grid;gap:6px}.customer-menu__line-controls{display:grid;min-width:min(100%,280px);gap:10px;justify-items:end}.customer-menu__note{display:grid;width:100%;gap:4px;color:var(--color-muted);font-size:13px;font-weight:700}.customer-menu__note input{width:100%;min-height:40px;border:1px solid var(--color-line);background:var(--color-white);color:var(--color-ink);padding:8px 10px}.customer-menu__item h2,.customer-order-status h1,.customer-order-status h2,.customer-after-hours h1,.customer-ordering-unavailable h1{margin:0}.customer-menu__item h2{font-size:18px}.customer-menu__item p{margin:0;color:var(--color-muted)}.customer-menu__add{flex:0 0 auto}.customer-menu__add:disabled,.customer-menu__cart-bar button:disabled{cursor:not-allowed;opacity:.55}.customer-menu__cart-bar{position:sticky;z-index:2;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--color-ink);color:var(--color-white);padding:14px 16px;box-shadow:0 -8px 24px #17324a29}.customer-menu__cart-bar button{min-height:40px;border:1px solid rgba(255,255,255,.45);background:var(--color-seal);color:var(--color-white);padding:8px 12px;cursor:pointer}.customer-menu__accessible-total{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.customer-order-status__summary,.customer-order-status__items,.order-confirmation__summary,.order-confirmation__details,.waiting-confirmation__summary,.customer-after-hours__steps,.customer-ordering-unavailable__details{display:grid;gap:12px}.customer-order-status__summary p,.customer-order-status__items p,.customer-ordering-unavailable__details p{margin:0}.customer-order-status__heading,.customer-order-status__item,.customer-order-status__total,.waiting-confirmation__heading,.order-confirmation__item{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-order-status__item{padding-bottom:10px;border-bottom:1px solid var(--color-line)}.customer-order-status__total{padding-top:2px}.customer-order-status__timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:14px;list-style:none}.customer-order-status__step{position:relative;display:grid;min-width:0;justify-items:center;gap:8px;color:var(--color-muted);text-align:center;font-size:13px}.customer-order-status__step:not(:last-child):after{position:absolute;z-index:0;top:15px;left:calc(50% + 16px);width:calc(100% - 32px);height:2px;background:var(--color-line);content:""}.customer-order-status__step>span{z-index:1;display:grid;width:32px;height:32px;place-items:center;border:2px solid var(--color-line);background:var(--color-white);font-weight:900}.customer-order-status__step[data-state=complete],.customer-order-status__step[data-state=current]{color:var(--color-ink)}.customer-order-status__step[data-state=complete]>span,.customer-order-status__step[data-state=current]>span{border-color:var(--color-ok);background:var(--color-ok);color:var(--color-white)}.customer-order-status__step[data-state=complete]:after{background:var(--color-ok)}.customer-order-status__timeline[data-status=cancelled] .customer-order-status__step{color:var(--color-seal)}.customer-order-status__timeline[data-status=cancelled] .customer-order-status__step>span{border-color:var(--color-seal);background:#fff3ea;color:var(--color-seal)}.order-confirmation,.waiting-confirmation,.line-login{width:min(100%,620px);margin:0 auto}.order-confirmation h1,.waiting-confirmation h1,.line-login h1{margin:0}.order-confirmation__item{align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--color-line)}.order-confirmation__item p,.order-confirmation__details p,.waiting-confirmation__summary p,.line-login__store{margin:0}.order-confirmation__item p{margin-top:5px;color:var(--color-muted)}.order-confirmation__actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px}.order-confirmation__alert{padding:10px 12px;border-left:4px solid var(--color-seal);background:#fff3ea}.waiting-confirmation>.primary-button{width:100%}.line-login__identity{display:flex;align-items:center;gap:14px}.line-login__identity img{width:72px;height:72px;flex:0 0 auto;object-fit:cover}.line-login__store{margin-bottom:4px;color:var(--color-muted);font-weight:700}.line-login>.primary-button{width:100%}.customer-after-hours__steps ol{display:grid;gap:10px;margin:0;padding-left:24px;line-height:1.6}.customer-ordering-unavailable__details a{color:var(--color-seal);font-weight:700}@media(max-width:520px){.customer-menu__item{align-items:flex-start;flex-direction:column}.customer-menu__add,.customer-menu__line-controls{width:100%;max-width:none}.customer-menu__cart-bar{align-items:stretch;flex-direction:column}.order-confirmation__actions{grid-template-columns:1fr}.customer-order-status__timeline{padding-inline:8px}.customer-order-status__step{font-size:12px}.customer-order-status__step>span{width:28px;height:28px}.customer-order-status__step:not(:last-child):after{top:13px;left:calc(50% + 14px);width:calc(100% - 28px)}}.staff-board,.staff-access,.staff-order-detail,.staff-action-panel{display:grid;gap:16px}.staff-board__header,.staff-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:2px solid var(--color-ink);padding-bottom:12px}.staff-board__header h1,.staff-board__section h2,.staff-access h1,.staff-panel-heading h1,.staff-action-panel h1,.staff-order-detail__items h2{margin:0}.staff-board__eyebrow,.staff-panel-heading__eyebrow{margin:0 0 4px;color:var(--color-seal);font-size:12px;font-weight:900;text-transform:uppercase}.staff-board__summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--color-line);background:var(--color-paper-2)}.staff-board__summary-item{display:grid;min-width:0;gap:4px;padding:10px;text-align:center;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.staff-board__summary-item[aria-selected=true]{background:var(--color-ink);color:var(--color-white)}.staff-board__summary-item[aria-selected=true] strong{color:var(--color-white)}.staff-board__summary-item+.staff-board__summary-item{border-left:1px solid var(--color-line)}.staff-board__summary-item span{color:var(--color-muted);font-size:13px}.staff-board__summary-item strong{font-size:20px}.staff-board__section{display:grid;gap:10px}.staff-board__section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.staff-board__section-heading span{display:grid;width:28px;height:28px;place-items:center;background:var(--color-ink);color:var(--color-white);font-weight:900}.staff-board__empty{margin:0;border:1px dashed var(--color-line);color:var(--color-muted);padding:12px;text-align:center}.staff-order-card{display:grid;gap:12px;border-left:4px solid var(--color-gold)}.staff-order-card__head,.staff-order-card__actions,.staff-order-detail__item,.staff-order-detail__total{display:flex;align-items:center;justify-content:space-between;gap:10px}.staff-order-card__number{font-size:18px}.staff-order-card__head p,.staff-action-panel__summary p,.staff-order-detail__summary p,.staff-order-detail__item p{margin:4px 0 0;color:var(--color-muted)}.staff-order-card__meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;padding:10px 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.staff-order-card__meta div{display:grid;gap:2px}.staff-order-card__meta dt{color:var(--color-muted);font-size:12px}.staff-order-card__meta dd{margin:0;font-weight:800}.staff-order-card__pending{display:grid;gap:10px}.staff-order-card__actions{justify-content:flex-end}.staff-order-card__actions button{min-width:112px}.staff-access,.staff-action-panel{width:min(100%,560px);margin:0 auto}.staff-access .primary-button,.staff-action-panel>button{width:100%}.staff-order-detail__summary,.staff-order-detail__items,.staff-action-panel__summary{display:grid;gap:10px}.staff-order-detail__summary p,.staff-action-panel__summary p{margin:0}.staff-order-detail__item{align-items:flex-start;border-bottom:1px solid var(--color-line);padding-bottom:10px}.staff-order-detail__total{padding-top:2px}button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:680px){.staff-board__summary{grid-template-columns:repeat(3,minmax(0,1fr))}.staff-board__summary-item+.staff-board__summary-item{border-left:0}.staff-board__summary-item{border-bottom:1px solid var(--color-line)}}@media(max-width:440px){.staff-order-card__actions{align-items:stretch;flex-direction:column}.staff-order-card__actions button{width:100%}}.admin-shell{display:grid;grid-template-columns:184px minmax(0,1fr);min-height:100vh;background:var(--color-paper-2);border:1px solid var(--color-line)}.admin-sidebar{background:var(--color-ink);color:var(--color-white);padding:20px 16px}.admin-sidebar__brand{display:flex;align-items:center;gap:10px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.2)}.admin-sidebar__brand span{display:grid;width:34px;height:34px;place-items:center;background:var(--color-seal);font-weight:900}.admin-sidebar nav{display:grid;gap:2px;margin-top:14px}.admin-sidebar a,.admin-sidebar nav button{display:block;width:100%;text-align:left;font:inherit;color:#ffffffc7;text-decoration:none;padding:11px 8px;border:0;border-left:3px solid transparent;background:transparent;cursor:pointer}.admin-sidebar a:hover,.admin-sidebar a:focus-visible,.admin-sidebar nav button:hover,.admin-sidebar nav button:focus-visible{border-left-color:var(--color-gold);color:var(--color-white);background:#ffffff14;outline:none}.admin-sidebar nav button[aria-current=page]{border-left-color:var(--color-gold);color:var(--color-white);background:#ffffff1f;font-weight:700}.admin-content,.admin-section,.admin-table{display:grid;gap:14px;align-content:start}.admin-content{min-width:0;padding:22px}.admin-content__header,.admin-section__head,.admin-table__row,.admin-toggle-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-content__header{padding-bottom:16px;border-bottom:2px solid var(--color-ink)}.admin-content__header h1,.admin-content__header p,.admin-section h2,.admin-section__eyebrow{margin:0}.admin-content__header p,.admin-section__eyebrow{color:var(--color-seal);font-size:12px;font-weight:900;text-transform:uppercase}.admin-content__header>span{color:var(--color-muted);font-weight:700}.admin-section{scroll-margin-top:16px;padding:18px;border:1px solid var(--color-line);background:var(--color-white)}.admin-section h2{font-size:20px}.admin-table__row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.admin-table__row-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.admin-table__primary{display:grid;min-width:0;gap:4px;margin-right:auto}.admin-table__primary span{color:var(--color-muted);font-size:13px}.admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-form__wide,.admin-form__actions,.admin-toggle-row,.admin-hours{grid-column:1 / -1}.admin-form__actions{display:flex;justify-content:flex-end}.admin-form__actions button{min-width:132px}.admin-toggle-row{cursor:pointer}.admin-toggle-row>span{display:grid;gap:4px}.admin-toggle-row small{color:var(--color-muted);line-height:1.45}.admin-toggle-row input{width:22px;height:22px;flex:0 0 auto;accent-color:var(--color-seal)}.admin-hours{border:1px solid var(--color-line, #d9cdb5);border-radius:10px;padding:16px 18px;display:grid;gap:14px}.admin-hours legend{font-weight:700;padding:0 6px}.admin-hours__row{display:flex;align-items:center;gap:14px;flex-wrap:nowrap;padding-bottom:12px;border-bottom:1px dashed var(--color-line, #e3d8c2)}.admin-hours__row:last-child{padding-bottom:0;border-bottom:none}.admin-hours__closed{display:flex;align-items:center;gap:8px;min-width:96px;font-weight:600}.admin-hours__closed input{width:20px;height:20px;accent-color:var(--color-seal)}.admin-hours__row input[type=time]{flex:1 1 0;min-width:0;padding:9px 10px;border:1px solid var(--color-line, #d9cdb5);border-radius:8px}@media(max-width:520px){.admin-hours__row{flex-wrap:wrap}.admin-hours__closed{flex:1 0 100%}}.admin-hours__row input[type=time]:disabled{opacity:.45}.admin-hours__badge{font-size:13px;color:var(--color-seal);font-weight:700}@media(max-width:720px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{padding:14px 16px}.admin-sidebar__brand{padding-bottom:12px}.admin-sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.admin-sidebar a,.admin-sidebar nav button{border-left:0;border-bottom:3px solid transparent;text-align:center}.admin-sidebar a:hover,.admin-sidebar a:focus-visible,.admin-sidebar nav button:hover,.admin-sidebar nav button:focus-visible,.admin-sidebar nav button[aria-current=page]{border-left-color:transparent;border-bottom-color:var(--color-gold)}.admin-content{padding:14px}.admin-table__row{grid-template-columns:1fr}.admin-table__row-meta{justify-content:flex-start}.admin-table__row-meta button{flex:1 1 auto}}@media(max-width:520px){.admin-content__header,.admin-section__head{align-items:flex-start}.admin-form{grid-template-columns:1fr}.admin-form__wide,.admin-form__actions,.admin-toggle-row{grid-column:auto}.admin-form__actions button,.admin-section__head .primary-button{width:100%}.admin-section__head{flex-direction:column}}
