:root{--ink:#262338;--muted:#777287;--purple:#7453b4;--purple-dark:#64429c;--line:#e9e5ee;--paper:#fbf9fd;--card:#fff;--pink:#f8e7f2;--soft:#f3eefa;--alert:#fff6dd;--red:#ab3c56}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.25}h2{font-size:1.26rem}h3{font-size:1.02rem}.container{max-width:1160px;padding:0 23px;margin:0 auto}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:70px;gap:15px}.brand{font-weight:850;font-size:1.09rem;letter-spacing:.01em}.brand-mark{color:var(--purple);font-size:1.5rem}.site-header nav{display:flex;align-items:center;gap:22px;font-size:.93rem;font-weight:650}.pill{background:var(--soft);padding:3px 8px;border-radius:20px;color:var(--purple)}main.container{padding-top:30px;padding-bottom:65px;min-height:73vh}.site-footer{background:#fff;border-top:1px solid var(--line);font-size:.81rem;color:var(--muted);padding:22px 0}.site-footer a{margin-left:12px;text-decoration:underline}
.hero{padding:54px clamp(22px,5vw,64px);background:linear-gradient(105deg,#8669c0 0%,#b48ccf 64%,#d3a3cb 100%);border-radius:24px;color:#fff;margin-bottom:42px}.eyebrow{font-size:.7rem;letter-spacing:.18em;font-weight:900;color:var(--purple);display:block;margin-bottom:12px}.hero .eyebrow{color:#f7ecff}.hero h1{max-width:650px;font-size:clamp(1.7rem,3.2vw,2.6rem);margin-bottom:13px}.hero p{max-width:650px;color:#fcf8ff}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;min-height:43px;border-radius:11px;font-size:.89rem;font-weight:750;border:1px solid transparent;transition:filter .15s;white-space:nowrap}.btn:hover{filter:brightness(.96)}.btn-primary{background:var(--purple);color:white}.btn-secondary{background:white;border-color:#ded5e9;color:var(--purple-dark)}.btn-light{background:#fff;color:var(--purple-dark)}.btn-block{display:flex;width:100%}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.section-head h2{margin-bottom:0}.muted{color:var(--muted)}.section-head p{font-size:.86rem;margin:4px 0}.count{font-size:.84rem;color:var(--muted)}.filters{display:flex;gap:9px;overflow-x:auto;margin:0 0 22px;padding-bottom:4px}.filter{border:1px solid var(--line);border-radius:18px;padding:6px 15px;background:#fff;font-size:.81rem;white-space:nowrap}.filter.selected{background:var(--purple);color:white;border-color:var(--purple)}
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.product-card{background:white;border-radius:16px;overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;box-shadow:0 4px 17px #352b4b08}.product-image{height:195px;width:100%;object-fit:cover;display:block;background:#eee9f5}.product-image.placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(135deg,#f0e8f9,#fff0f6);color:#b4a1c9}.product-image.placeholder span{font-size:3.5rem}.product-image.placeholder small{letter-spacing:.18em;font-size:.67rem}.product-body{padding:16px;display:flex;flex-direction:column;flex:1}.tiny-tag{font-size:.71rem;font-weight:700;color:var(--purple);margin-bottom:7px}.product-card h3{line-height:1.45;margin-bottom:8px}.product-description{color:var(--muted);font-size:.78rem;flex:1;white-space:pre-wrap;overflow-wrap:anywhere}.deadline{color:#9f758a;font-size:.72rem;margin:0 0 10px}.product-bottom{display:flex;align-items:center;justify-content:space-between;gap:5px}.price{color:#3b2755;font-size:1.05rem}.add-form{display:flex;gap:6px}.add-form input{width:48px;padding:7px;border:1px solid var(--line);border-radius:8px;text-align:center}.add-form .btn{padding:7px 12px;min-height:36px}.sold-out{font-size:.77rem;color:var(--red);font-weight:700}
.page-title{margin:5px 0 27px}.page-title p{color:var(--muted);margin-bottom:0}.two-col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,1fr);gap:23px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:25px;box-shadow:0 4px 14px #352b4b04}.panel h2{margin-bottom:17px}.cart-item{display:grid;grid-template-columns:1fr 94px auto;gap:15px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.cart-item:first-of-type{padding-top:0}.cart-item:last-of-type{margin-bottom:22px}.cart-item h3{margin-bottom:2px}.cart-item p{margin-bottom:0;font-size:.82rem}.cart-item label{font-size:.72rem;color:var(--muted)}.cart-item input{width:90px;max-width:100%;border:1px solid var(--line);border-radius:8px;padding:6px}.cart-item small{display:block;font-size:.7rem;color:var(--muted)}.summary-panel{position:sticky;top:92px}.summary-line{display:flex;align-items:start;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.87rem}.summary-line strong{text-align:right}.summary-total{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 0;margin-top:3px}.summary-total strong{font-size:1.25rem;color:var(--purple-dark)}.sub-link{display:inline-block;margin-top:20px;font-size:.84rem;color:var(--purple);text-decoration:underline}.empty-state{text-align:center;background:#fff;border:1px dashed #d7cce4;border-radius:16px;padding:60px 20px}.empty-state p{color:var(--muted)}.warning-text{color:var(--red)!important;font-size:.79rem}
.form-stack{display:flex;flex-direction:column;gap:17px}.form-stack>label,.edit-order>label{display:flex;flex-direction:column;gap:7px;font-weight:680;font-size:.85rem}input:not([type=hidden]):not([type=file]),select,textarea{border:1px solid #ded8e7;padding:11px 12px;min-height:42px;width:100%;border-radius:9px;background:#fff;color:var(--ink)}textarea{resize:vertical}.required{color:var(--red)}.notice{background:#f5f0fc;border-radius:12px;padding:14px 16px;color:#604d7e;font-size:.82rem;line-height:1.7;margin:10px 0}.emphatic{font-weight:650}.divider{height:1px;background:var(--line);margin:25px 0}.bank-info,.simple-info{display:grid;grid-template-columns:100px minmax(0,1fr);gap:11px 15px;margin:17px 0}.bank-info span,.simple-info span{color:var(--muted);font-size:.84rem}.bank-info strong,.simple-info strong{overflow-wrap:anywhere;font-size:.86rem}.account{font-size:1rem!important;color:var(--purple-dark)}.top-spacing{margin-top:21px}.smaller{font-size:.77rem}.status{display:inline-block;font-size:.77rem;padding:4px 11px;border-radius:14px;background:#eae4f5;color:#5d4097;white-space:nowrap}.status.paid{background:#ddf3e7;color:#176743}.status.reported{background:#fff1ce;color:#946308}.status.canceled{background:#f6e0e5;color:#923951}.alert{padding:13px 17px;border:1px solid #e4dbf1;border-radius:10px;margin-bottom:21px;background:#f6f0fc}.alert.error{background:#fff0f1;border-color:#f3cdd5;color:#9a334b}.alert.success{background:#eaf7ef;border-color:#c8e6d5;color:#1f7449}.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}
.auth-panel{max-width:450px;margin:50px auto}.auth-panel p{font-size:.84rem}.narrow{max-width:740px}.narrow h2:not(:first-child){margin-top:30px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:0 0 37px}.stats>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px}.stats span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:8px}.stats strong{font-size:1.6rem;color:#503879}.admin-heading{display:flex;justify-content:space-between;align-items:start}.admin-section{margin-top:32px}.actions{display:flex;gap:9px;flex-wrap:wrap}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{border-collapse:collapse;width:100%;font-size:.83rem;min-width:670px}td,th{text-align:left;padding:12px 14px;border-bottom:1px solid #eeeaf2}th{background:#faf7fc;color:#6f6380}tr:last-child td{border-bottom:0}.table-link{font-weight:700;color:var(--purple);text-decoration:underline}.search-form{display:flex;gap:10px;margin:12px 0 16px}.search-form input{flex:1;min-width:180px}.search-form select{width:190px}.order-list{display:flex;flex-direction:column;gap:9px}.order-row{background:white;border:1px solid var(--line);border-radius:12px}.order-row>summary{list-style:none;cursor:pointer;padding:15px 18px;display:grid;grid-template-columns:minmax(175px,1.4fr) minmax(80px,.9fr) minmax(90px,.7fr) minmax(100px,.7fr) 62px;align-items:center;gap:10px;font-size:.85rem}.order-row>summary::-webkit-details-marker{display:none}.order-row small{display:block;color:var(--muted);font-weight:400;font-size:.73rem}.order-content{border-top:1px solid var(--line);padding:18px}.edit-order{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.edit-order button{justify-self:start}.empty-orders{padding:25px;background:white;border-radius:12px;color:var(--muted)}.product-card:focus-within,.btn:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
@media(max-width:960px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.summary-panel{position:static}}@media(max-width:680px){.container{padding:0 15px}.site-header .brand{font-size:.85rem}.site-header nav{gap:11px;font-size:.78rem}.header-inner{min-height:59px}.hero{border-radius:16px;padding:35px 23px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product-image{height:158px}.product-body{padding:12px}.product-card h3{font-size:.87rem}.product-description{font-size:.74rem}.product-bottom{flex-wrap:wrap;gap:8px}.panel{padding:17px}.cart-item{grid-template-columns:1fr 65px;gap:9px}.cart-item>strong{grid-column:1/-1;text-align:right}.cart-item input{width:65px}.stats{gap:8px}.stats>div{padding:10px}.stats strong{font-size:1.03rem}.stats span{font-size:.68rem}.section-head{align-items:start;flex-direction:column}.search-form{flex-wrap:wrap}.search-form select{width:auto;flex:1}.order-row>summary{grid-template-columns:1fr 1fr;gap:7px}.order-row>summary>span:last-child{display:none}.edit-order{grid-template-columns:1fr}.bank-info,.simple-info{grid-template-columns:78px 1fr}}

.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px}.group-card{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;color:var(--ink);text-decoration:none}.group-card:hover,.group-card:focus-visible{outline:2px solid var(--purple);outline-offset:3px}.group-cover{width:100%;height:210px;object-fit:cover}.group-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#eee4fa,#fce8ef);color:var(--purple);font-size:64px}.group-body{padding:24px}.group-body h3{font-size:1.3rem;margin:12px 0}.group-body p{font-size:.85rem;line-height:1.7}.group-link{display:block;margin-top:22px;font-weight:700;color:var(--purple)}

.options-dialog{border:0;border-radius:18px;padding:28px;width:min(92vw,480px);max-height:85vh;overflow:auto;color:var(--ink)}.options-dialog::backdrop{background:rgba(25,15,40,.55)}.options-dialog .add-form{display:flex;flex-direction:column;gap:16px;align-items:stretch}.options-dialog select{width:100%}.cart-feedback{font-size:.82rem;min-height:1.5em;color:var(--purple-dark)}.btn:disabled{opacity:.6;cursor:wait}

.closed-groups{margin-top:56px;padding-top:28px;border-top:1px solid var(--line)}

.auto-cart [data-manual-cart-update]{display:none}#cart-save-status{min-height:1.5em}

.quantity-controls{display:flex;align-items:center;gap:5px}.quantity-controls input[type=number]{width:60px;min-width:0;text-align:center;padding:8px 3px}.qty-step{border:1px solid var(--line);background:#f5f0fc;color:var(--purple-dark);border-radius:8px;min-width:32px;min-height:42px;font-size:1.15rem;cursor:pointer}.remove-item{border:0;background:none;color:var(--muted);text-decoration:underline;font-size:.75rem;cursor:pointer;padding:8px 0}.cart-item{grid-template-columns:minmax(0,1fr) 140px 100px}.gift-summary{border:1px solid var(--line);background:#faf7fc;padding:12px;border-radius:12px;margin:14px 0}.gift-summary .summary-line{gap:12px}@media(max-width:680px){.cart-item{grid-template-columns:minmax(0,1fr) 140px}}

.group-introduction{margin:20px 0}.group-introduction p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}

/* Admin product groups: independent from order disclosure panels. */
.admin-product-controls{margin:0 0 14px;flex-wrap:wrap}
.admin-product-groups{display:flex;flex-direction:column;gap:12px}
.admin-product-group{border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden;min-width:0}
.admin-product-group>summary{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none}
.admin-product-group>summary::-webkit-details-marker{display:none}
.admin-product-group>summary>strong{flex:1;min-width:0;overflow-wrap:anywhere}
.admin-product-group>summary>.muted{white-space:nowrap;font-size:.85rem}
.admin-product-toggle::before{content:'＋'}
.admin-product-group[open]>.admin-product-toggle::before,.admin-product-group[open]>summary>.admin-product-toggle::before{content:'−'}
.admin-product-group>summary:focus-visible{outline:2px solid var(--purple);outline-offset:-3px}
.admin-product-group>.table-wrap{border:0;border-top:1px solid var(--line);border-radius:0;margin:0}

/* Keep the cart’s separate minus/plus buttons; hide native number spinners. */
.quantity-controls input[type=number]{-moz-appearance:textfield;appearance:textfield}
.quantity-controls input[type=number]::-webkit-inner-spin-button,.quantity-controls input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

.floating-cart{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));z-index:50;display:flex;align-items:center;gap:10px;background:var(--purple-dark);color:#fff;border-radius:999px;padding:14px 20px;box-shadow:0 4px 18px #0003;text-decoration:none;font-weight:700}.floating-cart:focus-visible{outline:3px solid #ad83ed;outline-offset:4px}body:has(.floating-cart) .site-footer{padding-bottom:100px}

.adjusted-badge{color:#75500c;background:#fff3d6;border-radius:6px;padding:5px 9px}.audit-value{white-space:pre-wrap;overflow-wrap:anywhere}.order-edit-item{border-bottom:1px solid var(--line);padding:15px 0}.order-edit-item input{max-width:180px}

.order-summary-id{min-width:0}.order-group-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.order-group-tags .tiny-tag{white-space:normal;overflow-wrap:anywhere;line-height:1.5;max-width:100%}.search-form{flex-wrap:wrap}.order-group-filter{min-width:180px;max-width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.order-group-filter summary{cursor:pointer}.order-group-options{display:flex;flex-direction:column;gap:10px;padding-top:12px;max-height:280px;overflow:auto}.order-group-options label{display:flex;align-items:start;gap:8px;overflow-wrap:anywhere}.order-group-options input[type=checkbox]{width:auto;flex:none;margin-top:4px}.order-group-options small{max-width:300px}

.bulk-product-actions{flex-wrap:wrap}.product-selection{width:20px;height:20px;cursor:pointer}

.product-image-button{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in;line-height:0}.product-image-button:focus-visible{outline:3px solid var(--purple);outline-offset:-3px}.product-image-button .product-image{display:block}
.product-image-dialog{box-sizing:border-box;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:20px;background:transparent;overflow:hidden}.product-image-dialog[open]{display:flex;align-items:center;justify-content:center}.product-image-dialog::backdrop{background:rgba(0,0,0,.82)}.product-image-dialog [data-expanded-product-image]{display:block;width:auto;height:auto;max-width:92vw;max-height:82vh;max-height:82dvh;object-fit:contain;border-radius:6px}.image-dialog-close{position:absolute;top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));width:44px;height:44px;border:1px solid #fff8;border-radius:50%;background:#222;color:#fff;font-size:30px;cursor:pointer}.image-dialog-open{overflow:hidden}.image-dialog-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.group-share{margin:16px 0 24px}.group-share .actions{flex-wrap:wrap}.group-share [data-share-feedback]{min-height:1.4em}.share-url{width:100%}

.payment-reminder{display:block;color:var(--purple-dark);font-size:.7em;margin-top:8px}.order-number-link{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;background:#eee4fa;color:var(--purple-dark);border:1px solid #cfb5eb;border-radius:10px;font-weight:700;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.order-number-link:hover{background:#e0cdf3}.order-number-link:focus-visible{outline:3px solid var(--purple);outline-offset:3px}.order-link-hint{font-size:.8rem;white-space:nowrap}

.form-stack .storage-consent{display:flex;align-items:flex-start;gap:10px;line-height:1.7}.form-stack .storage-consent input[type=checkbox]{width:20px;height:20px;flex:none;margin:4px 0 0;accent-color:var(--purple)}

.remittance-note{margin:16px 0;padding:20px;border:2px solid #a34016;border-left:8px solid #a34016;border-radius:12px;background:#fff2dc;color:#63280d}.remittance-note>strong{font-size:1.2rem}.remittance-note p{margin:10px 0}.remittance-note-name{font-size:1.4rem;font-weight:800;overflow-wrap:anywhere;margin:12px 0}.remittance-note .btn{background:white;color:#63280d;border:1px solid #a34016}
