:root{--ink:#142332;--muted:#687a88;--bg:#f5f7f7;--line:#e1e7e9;--teal:#145b61;--teal-light:#e9f3f2;--gold:#dcb980;--white:#fff}
*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;color:var(--ink);line-height:1.65}button,input{font:inherit}button{cursor:pointer}a{color:var(--teal)}.booking-body{background:var(--bg);min-height:100vh}.layout{width:min(1100px,100%);margin:50px auto;display:grid;grid-template-columns:380px 1fr;box-shadow:0 20px 65px rgba(24,54,69,.08);border-radius:18px;overflow:hidden;min-height:790px}.sidebar{background:linear-gradient(155deg,#123e4b,#0d2d3b 75%);color:white;padding:45px 42px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:750;letter-spacing:.06em}.brand-mark{background:#d4af77;color:#122e3a;border-radius:10px;font-family:Georgia,serif;font-size:20px;font-weight:bold;display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center}.hero-tag{color:#d8bc8a;font-size:11px;letter-spacing:.25em;margin-top:95px;font-weight:700}.sidebar h1{font-size:32px;line-height:1.52;letter-spacing:-.055em;margin:15px 0 15px;font-weight:720}.subtitle{color:#c3d6db;line-height:2;font-size:14px;margin:0}.profile{display:flex;align-items:center;gap:13px;margin-top:55px;border-top:1px solid #45616b;padding-top:30px}.avatar{border-radius:50%;width:52px;height:52px;background:#c8dbe0;color:#23424f;display:grid;place-items:center;font-size:19px;font-weight:650}.profile small{display:block;letter-spacing:.13em;color:#9eb8c3;font-size:10px}.profile strong{display:block;font-size:16px;margin-top:2px}.sidebar-note{border-top:1px solid #45616b;margin-top:auto;padding-top:25px;color:#d2dfe3;font-size:12px;line-height:2.5}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:10px}.dot.green{background:#8bd8a9}.dot.blue{background:#a0d6df}.main-content{background:white;padding:42px 55px 28px}.top-row{display:flex;align-items:center;justify-content:space-between}.eyebrow{color:#8497a2;letter-spacing:.2em;font-size:11px;font-weight:800}.step-label{font-size:12px;color:#80919e}.section-heading{display:flex;align-items:center;gap:12px;margin:25px 0 15px}.section-heading h2{font-size:16px;margin:0;font-weight:740}.num{width:29px;height:29px;display:grid;place-items:center;background:var(--teal-light);border-radius:50%;color:var(--teal);font-size:12px;font-weight:800}.gap-top{margin-top:31px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{border:1px solid var(--line);border-radius:12px;background:white;padding:15px;text-align:left;display:flex;align-items:center;gap:10px;min-height:86px}.choice.selected{border:2px solid var(--teal);background:#f7fcfb;padding:14px}.choice-icon{display:grid;place-items:center;background:#eff5f6;border-radius:9px;width:38px;height:38px;font-size:25px;color:#385e66;flex:none}.choice-content{flex:1;line-height:1.5}.choice-content b{display:block;font-size:13px}.choice-content small{font-size:10px;color:var(--muted)}.radio-dot{border:1px solid #b7c4ca;width:14px;height:14px;border-radius:50%;flex:none}.choice.selected .radio-dot{border:4px solid var(--teal)}.pill-choices{display:flex;gap:9px}.pill{background:#fff;color:#566c78;padding:9px 35px;border:1px solid var(--line);border-radius:10px;font-weight:750;font-size:14px}.pill.selected{background:var(--teal);border-color:var(--teal);color:#fff}.date-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.date-controls label{font-size:13px;font-weight:600;color:#526570}.date-controls input{padding:10px 16px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:white;min-width:180px}.notice{background:#f4f8f8;border-radius:8px;color:#667d87;font-size:12px;margin:18px 0;padding:10px 14px}.notice span{font-size:15px;margin-right:6px}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;min-height:74px;align-content:start}.time-slot{border:1px solid #d9e5e7;background:white;color:#175660;border-radius:8px;font-weight:680;padding:11px 0}.time-slot:hover,.time-slot.chosen{background:var(--teal);border-color:var(--teal);color:#fff}.muted{color:var(--muted);font-size:13px}.empty{grid-column:1/-1;color:var(--muted);font-size:13px;background:#f7f9f9;padding:17px;border-radius:9px}.details{margin-top:22px}.details h2{font-size:17px}.divider{height:1px;background:var(--line)}label{display:block;font-weight:650;font-size:13px;margin:13px 0 6px}input:not([type="hidden"]){outline-color:#78b8b9}#booking-form input:not(.honeypot),.admin-body input{width:100%;padding:11px 14px;border-radius:9px;border:1px solid #d4dfe3;background:#fff}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;opacity:0}.submit,.link-button{display:block;background:var(--teal);color:white;border:0;border-radius:9px;padding:13px 20px;font-size:14px;font-weight:750;text-align:center;text-decoration:none}.submit{width:100%;margin-top:24px}.submit:disabled{opacity:.55;cursor:wait}.fine-print{font-size:11px;color:#8b999f;text-align:center}.hidden{display:none!important}.success{background:#f1f9f4;border:1px solid #cce8d7;padding:23px;border-radius:12px;margin-top:24px}.success h2{font-size:20px;margin:6px 0}.success-icon{width:36px;height:36px;border-radius:50%;background:#2a9361;color:#fff;display:grid;place-items:center;font-size:20px}.success p{font-size:13px}.error{background:#fff2f2;color:#b13240;padding:10px 14px;border:1px solid #f2ccd0;border-radius:9px;font-size:13px;margin-top:12px}.main-content footer,.admin-wrap footer{font-size:11px;color:#99a6aa;border-top:1px solid var(--line);margin-top:35px;padding-top:17px}.admin-body{background:#f3f6f7;min-height:100vh;padding:35px}.admin-login{max-width:430px;margin:90px auto}.card{padding:28px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px rgba(20,35,50,.025)}.card h1{font-size:24px;margin-top:25px}.card h2{font-size:17px;margin:0 0 13px}.admin-wrap{max-width:1080px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px}.quiet{border:1px solid var(--line);padding:8px 14px;background:#fff;border-radius:8px}.admin-wrap>h1{font-size:29px;margin-bottom:5px}.admin-wrap>p{color:var(--muted);margin:0 0 24px}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-wrap>.card{margin-top:16px}.card p{font-size:13px}.card code{overflow-wrap:anywhere}.status{font-size:12px;padding:5px 10px;border-radius:15px;font-weight:700}.status.ok{background:#e5f5eb;color:#236b4b}.status.not{background:#fff0e2;color:#a55c10}.help{color:var(--muted);font-size:12px!important}.url-box{background:#f4f6f7;padding:11px;border-radius:7px;word-break:break-all;margin:14px 0}.form-card input{margin-bottom:12px}.form-card .submit{max-width:210px}.rules-list{font-size:13px;line-height:2}.table-scroll{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);padding:10px}.admin-table th{color:var(--muted)}
@media(max-width:900px){.layout{grid-template-columns:290px 1fr;margin:0;border-radius:0;min-height:100vh}.sidebar{padding:35px 24px}.sidebar h1{font-size:26px}.main-content{padding:33px 28px}}@media(max-width:650px){.layout{display:block}.sidebar{padding:22px 24px}.hero-tag,.subtitle,.sidebar h1,.sidebar-note{display:none}.profile{margin-top:15px;padding-top:13px}.main-content{padding:27px 22px}.choice-grid{gap:8px}.choice{padding:10px;gap:7px}.choice.selected{padding:9px}.choice-content small{font-size:9px}.time-grid{grid-template-columns:repeat(3,1fr)}.admin-body{padding:14px}.admin-columns{grid-template-columns:1fr}.card{padding:18px}}

textarea{width:100%;font:14px/1.6 monospace;border:1px solid #ccdadd;border-radius:8px;padding:12px} .month-heading{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.calendar-day{border:1px solid #d9e5e7;border-radius:6px;background:#edf7f5;color:#145b61;min-height:40px}.calendar-day:disabled{background:#f5f6f6;color:#b4bcbc;cursor:default}#confirmation{padding:16px;background:#f2f7f7;border-radius:9px;margin-top:12px;overflow-wrap:anywhere}button:focus-visible,a:focus-visible{outline:3px solid #dcb980;outline-offset:2px}
