
:root{
  --cream:#FBF8F2;--paper:#FFFDF9;--ink:#27313A;--muted:#7D746D;--line:#E9E1D7;
  --gold:#C8A96B;--rose:#8D5666;--rose-soft:#F5E5E9;--sage:#5E7D63;--sage-soft:#EEF5EC;
  --amber:#8A6815;--amber-soft:#FFF5D9;--danger:#A55757;--shadow:0 10px 30px rgba(75,60,50,.08)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft JhengHei UI","Microsoft JhengHei","Noto Sans TC",system-ui,sans-serif;color:var(--ink);background:#ECE8E1}
button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}
.stage{min-height:100dvh;display:flex;justify-content:center;align-items:flex-start}
.app{width:min(100%,900px);min-height:100dvh;background:
 radial-gradient(240px 150px at 4% 2%,rgba(244,221,199,.6),transparent 72%),
 radial-gradient(220px 150px at 96% 4%,rgba(220,231,216,.55),transparent 72%),var(--cream)}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid rgba(229,219,209,.88);background:rgba(251,248,242,.94);backdrop-filter:blur(12px)}
.ti-logo{width:62px;height:52px;object-fit:contain;flex:0 0 auto}.brand{min-width:0;flex:1}.kicker{font-size:10px;letter-spacing:.15em;color:#8D6A58;font-weight:800}.brandname{font-family:Georgia,"Times New Roman",serif;font-size:20px;font-weight:700;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lang{margin-left:auto;flex:0 0 auto;border:1px solid rgba(200,169,107,.62);background:#FFFDF9;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:800;min-width:66px}
.flower{width:72px;height:42px;flex:0 0 auto}
main{padding:24px 18px 110px}
.hero{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end;margin-bottom:18px}
.eyebrow{font-size:11px;letter-spacing:.12em;color:#8D6A58;font-weight:850}.hero h1{font-family:Georgia,"Noto Serif TC","PMingLiU",serif;font-size:clamp(28px,5vw,38px);line-height:1.2;margin:5px 0 8px;color:#433A35}.hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}
.preview-badge{align-self:start;border:1px solid #E6C98D;background:#FFF5DF;color:#7A5A17;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:850;white-space:nowrap}
.fee-card{border:1px solid #E3D4BC;background:#FFF9EE;border-radius:16px;margin:0 0 16px;overflow:hidden;box-shadow:0 2px 0 rgba(100,80,65,.02)}
.fee-card summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px 15px;cursor:pointer;font-weight:850;font-size:13px}
.fee-card summary::-webkit-details-marker{display:none}.fee-summary-hint{font-size:10px;color:#8A817A;font-weight:650}.fee-card summary:after{content:"⌄";margin-left:auto;color:#8A6A39}.fee-card[open] summary:after{transform:rotate(180deg)}
.fee-body{border-top:1px solid #E8D9C2;padding:14px 15px 16px;font-size:12px;line-height:1.75;color:#665B53}
.fee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 10px}.fee-box{background:#FFFDF9;border:1px solid #E8DED2;border-radius:12px;padding:11px}.fee-box b{display:block;font-size:13px;color:#4F463F}.fee-box span{display:block;color:#7D746D;margin-top:3px}
.form-section{background:rgba(255,253,249,.94);border:1px solid #E7DDD3;border-radius:17px;margin:13px 0;box-shadow:var(--shadow);overflow:hidden}
.section-head{display:flex;align-items:center;gap:11px;padding:14px 15px;border-bottom:1px solid var(--line)}
.section-no{width:29px;height:29px;border-radius:9px;background:var(--rose-soft);color:#7C5260;display:grid;place-items:center;font-size:12px;font-weight:900;flex:0 0 auto}
.section-head h2{font-size:16px;margin:0}.section-head p{font-size:10px;color:var(--muted);margin:3px 0 0}.section-body{padding:3px 15px 13px}
.field{padding:13px 0;border-bottom:1px solid #EEE7DF}.field:last-child{border-bottom:0}
.labelrow{display:flex;gap:7px;align-items:baseline}.label{font-size:13px;font-weight:850}.req{color:#9B5B6D;font-size:11px}.opt{color:#8C847E;font-size:10px}
.help{font-size:10px;color:var(--muted);line-height:1.55;margin:4px 0 8px}
.text,.textarea,.select{width:100%;border:1px solid #D8CEC5;background:#fff;border-radius:10px;min-height:44px;padding:10px 11px;font-size:14px;outline:none}.textarea{min-height:96px;resize:vertical}.select:disabled{background:#F3F0EC;color:#9A918A}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.location-preview{font-size:10px;color:#6F655E;margin-top:7px;min-height:15px}
.text:focus,.textarea:focus,.select:focus{border-color:#B78996;box-shadow:0 0 0 3px #F3E5E9}
.choices{display:grid;gap:7px;margin-top:8px}.choices.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice{position:relative;display:flex;gap:9px;align-items:flex-start;border:1px solid #E2D9D1;background:#FFFDF9;border-radius:11px;padding:10px 11px;min-height:45px;cursor:pointer}
.choice input{margin-top:2px;width:18px;height:18px;accent-color:var(--rose);flex:0 0 auto}.choice span{font-size:12px;font-weight:750;line-height:1.45}
.choice:has(input:checked){border-color:#C89CAA;background:#FCF3F5;box-shadow:inset 3px 0 #9B5B6D}
.inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.birthday-grid,.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.layout-badge{font-size:9px;color:#8A817A;margin-top:4px}.mode-desktop .section-body{padding-inline:16px}.mode-desktop .choice{min-height:48px}.mode-mobile .primary,.mode-mobile .secondary{min-height:48px}
.bank-card{margin:10px 0 2px;border:1px solid #D7E2D3;background:#F3F7F1;border-radius:12px;padding:11px 12px;font-size:11px;line-height:1.65}.bank-card b{color:#4E6C55}.bank-card.unavailable{background:#FFF5E9;border-color:#E7CFA8;color:#7B5C30}.bank-card.unavailable b{color:#8A5E28}.bank-hint{margin-top:5px;font-size:9px;color:#7C746C}
.consent{border:1px solid #E5DCD4;background:#FFFCF8;border-radius:12px;padding:11px;margin-top:9px}.consent label{display:flex;gap:9px;align-items:flex-start;font-size:12px;line-height:1.55;font-weight:750}.consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--rose);flex:0 0 auto}
.privacy-copy{font-size:10px;color:var(--muted);line-height:1.7;margin-top:9px;padding-top:9px;border-top:1px dashed #DDD3CB}
.error{font-size:10px;color:var(--danger);font-weight:750;margin-top:6px}
.reviewbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,900px);z-index:40;background:rgba(255,253,249,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:10px max(18px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));display:flex;align-items:center;gap:10px}
.reviewbar .note{font-size:10px;color:var(--muted);line-height:1.4;flex:1}.primary,.secondary{border-radius:11px;min-height:44px;padding:10px 15px;font-size:12px;font-weight:850}.primary{border:1px solid #7B4A58;background:var(--rose);color:white}.secondary{border:1px solid #DCCFD2;background:#FFFDF9;color:#76515C}
.review-page{display:none}.review-page.open{display:block}.form-page.hidden{display:none}
.review-card{background:#FFFDF9;border:1px solid #E7DDD3;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.review-row{padding:11px 13px;border-bottom:1px solid #EEE7DF}.review-row:last-child{border-bottom:0}.review-key{font-size:9px;color:#8A817A;font-weight:850}.review-val{font-size:12px;font-weight:750;margin-top:3px;white-space:pre-line}
.review-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.done-card{text-align:center;background:#FFFDF9;border:1px solid #E7DDD3;border-radius:17px;padding:30px 18px}.done-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#E4EFE2;color:#4E7255;font-size:22px;font-weight:900;margin:0 auto 12px}.done-card h2{margin:0;font-size:19px}.done-card p{font-size:12px;color:var(--muted);line-height:1.7}
@media(max-width:640px){
 .topbar{padding:10px 12px;gap:8px}.flower{display:none}.ti-logo{width:48px;height:42px}.brandname{font-size:16px}main{padding:18px 12px 104px}.hero{display:block}.preview-badge{display:inline-block;margin-top:10px}
 .fee-grid,.inline-grid,.choices.two,.location-grid,.birthday-grid,.payment-grid{grid-template-columns:1fr}.form-section{border-radius:15px}.section-head{padding:13px}.section-body{padding-inline:13px}
 .reviewbar{padding-inline:12px}.reviewbar .note{display:none}.reviewbar .primary{width:100%}.review-actions{display:grid;grid-template-columns:1fr 1fr}.review-actions button{width:100%}
}
