:root{--ink:#26342f;--muted:#6d7b75;--paper:#fbfaf6;--leaf:#486d5d;--leaf2:#6e9380;--sand:#eadfcb;--line:#dedbd2;--white:#fff;--danger:#a14e46;--shadow:0 18px 50px rgba(39,54,48,.11)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","PingFang TC",sans-serif}button,input,select,textarea{font:inherit}a{color:inherit}.shell{max-width:1100px;margin:auto;padding:0 22px}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.08em}.mark{width:38px;height:38px;border-radius:50% 50% 46% 54%;background:var(--leaf);display:grid;place-items:center;color:white;font-family:serif}.mini-link{text-decoration:none;color:var(--muted);font-size:14px}.hero{padding:62px 0 42px;display:grid;grid-template-columns:1.1fr .9fr;gap:52px;align-items:center}.eyebrow{font-size:13px;letter-spacing:.18em;color:var(--leaf);font-weight:800}.hero h1{font-size:clamp(42px,6vw,74px);line-height:1.08;margin:15px 0 20px;letter-spacing:-.04em}.hero p{color:var(--muted);font-size:18px;line-height:1.8}.hero-art{min-height:370px;border-radius:120px 120px 26px 26px;background:linear-gradient(155deg,#dce7df,#b8cdbf);position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero-art:before,.hero-art:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.62)}.hero-art:before{width:280px;height:280px;right:-35px;top:-28px}.hero-art:after{width:210px;height:210px;left:-35px;bottom:-48px}.hero-art .seal{position:absolute;inset:0;display:grid;place-items:center;font-family:serif;font-size:62px;color:#fff;text-align:center;line-height:1.25;text-shadow:0 3px 22px rgba(38,52,47,.18)}.notice{background:#f1eadf;border:1px solid #e4d8c5;color:#725f42;padding:12px 16px;border-radius:12px;font-size:14px;margin-bottom:24px}.booking{background:#fff;border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow);margin-bottom:70px}.booking h2,.panel h2{margin:0 0 8px;font-size:26px}.sub{color:var(--muted);margin:0 0 24px}.steps{display:flex;gap:8px;margin:0 0 28px}.step{height:6px;flex:1;background:#e7e5de;border-radius:9px}.step.on{background:var(--leaf)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.service{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:left;cursor:pointer}.service.active{border:2px solid var(--leaf);background:#f3f7f4}.service strong{display:block;font-size:18px;margin-bottom:6px}.service span{color:var(--muted);font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:14px;font-weight:700}.field input,.field select,.field textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink)}.field textarea{min-height:86px;resize:vertical}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.btn{border:0;border-radius:12px;padding:13px 20px;font-weight:800;cursor:pointer}.btn.primary{background:var(--leaf);color:white}.btn.ghost{background:#eef1ef;color:var(--ink)}.btn.danger{background:#f8ebe9;color:var(--danger)}.hidden{display:none!important}.success{padding:44px 18px;text-align:center}.success .check{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e8f2ec;color:var(--leaf);font-size:34px}.footer{padding:30px 0 55px;color:var(--muted);font-size:13px;text-align:center}
/* admin */.admin-body{background:#f2f3ef}.admin-layout{min-height:100vh;display:grid;grid-template-columns:235px 1fr}.sidebar{background:#263d34;color:white;padding:28px 20px}.sidebar .brand{margin-bottom:44px}.nav{display:flex;flex-direction:column;gap:8px}.nav button{border:0;background:transparent;color:#d8e1dc;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer}.nav button.active{background:#3b594c;color:white}.admin-main{padding:30px 34px}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.admin-head h1{margin:0;font-size:30px}.admin-head p{margin:6px 0 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.stat{background:#fff;border-radius:16px;padding:18px;border:1px solid #e2e3de}.stat b{display:block;font-size:28px;margin-top:7px}.cards{display:grid;grid-template-columns:1.4fr .8fr;gap:20px}.panel{background:white;border:1px solid #e2e3de;border-radius:18px;padding:22px}.day-row{display:grid;grid-template-columns:74px 1fr auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #eeeee9}.day-row:last-child{border:0}.time{font-weight:800}.tag{display:inline-block;font-size:12px;padding:4px 8px;border-radius:99px;background:#edf3ef;color:var(--leaf);margin-top:5px}.tag.private{background:#f2ece2;color:#806844}.empty{padding:35px 8px;color:var(--muted);text-align:center}.modal{position:fixed;inset:0;background:rgba(30,43,38,.38);display:grid;place-items:center;padding:18px;z-index:4}.modal-card{width:min(560px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:24px;box-shadow:var(--shadow)}.modal-card h2{margin-top:0}.close{float:right;border:0;background:#eef0ed;width:34px;height:34px;border-radius:50%;cursor:pointer}.calendar-note{background:#f5f1e8;padding:15px;border-radius:12px;color:#6f644f;line-height:1.6}@media(max-width:800px){.hero{grid-template-columns:1fr;padding-top:25px}.hero-art{min-height:250px}.grid3,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.admin-layout{display:block}.sidebar{padding:16px 18px}.sidebar .brand{margin-bottom:15px}.nav{flex-direction:row;overflow:auto}.admin-main{padding:22px 16px}.stats{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr}.admin-head{align-items:flex-start;gap:12px}.admin-head .btn{padding:11px 13px}.day-row{grid-template-columns:64px 1fr}.day-row .btn{grid-column:2}}

.grid3{grid-template-columns:repeat(2,1fr)}
@media(max-width:800px){.grid3{grid-template-columns:1fr}}
