:root{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;color:#243d37;background:#f7f8f4;font-synthesis:none;line-height:1.7}*{box-sizing:border-box}body{margin:0}header{max-width:1160px;margin:auto;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dee6dc}a{color:#236b60;text-underline-offset:4px}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;font-size:30px;font-weight:700}.brand span{font-size:19px}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:2px;color:#74857a}.staff{font-size:13px}main{max-width:1100px;margin:auto;padding:24px 32px 70px;min-height:75vh}.hero{padding:32px 0 26px;position:relative}.eyebrow{color:#55786b;font-size:12px;letter-spacing:2px;font-weight:bold}h1{font-size:clamp(28px,4vw,40px);font-weight:600;letter-spacing:2px;margin:10px 0}p{color:#6c7e73;font-size:14px}h2{font-size:20px;margin:0 0 10px}h3{font-size:16px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #d9e3d7;border-radius:9px;background:white;color:#315448;padding:10px 17px;min-height:44px}button:hover{background:#edf4eb}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:#236b60;color:white;border-color:#236b60}.primary:hover{background:#19554c}.danger{color:#ae453b}.layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px}.card{background:white;border:1px solid #e1e7dd;border-radius:16px;padding:26px;box-shadow:0 8px 28px #2c513308}.steps{display:flex;gap:22px;font-size:12px;color:#8c998e;margin:0 0 26px}.steps strong{color:#236b60}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0}.toolbar h2{margin:0}.nav{display:flex;gap:8px}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.day{padding:12px 3px;border-radius:12px;min-width:0}.day small{display:block;font-size:11px;color:#778c7c}.day b{display:block;font-size:23px}.day.selected,.slot.selected{background:#236b60;color:white;border-color:#236b60}.day.selected small{color:#d3e5df}.times{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.slot{padding:14px 5px}.slot small{display:block;font-size:11px}.muted{color:#7f8c82;font-size:12px}.note{border-top:1px solid #e4eadd;margin-top:22px;padding-top:16px}.aside{background:#eaf0e5;border:none;align-self:start}.aside p{font-size:13px}.aside .icon{font-size:30px}.bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #e8ede3;padding-top:20px;margin-top:24px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:13px;font-weight:600}input,select{display:block;width:100%;border:1px solid #ccd8cb;background:#fff;border-radius:8px;padding:11px;margin-top:6px;color:#243d37}input:focus,button:focus-visible,select:focus{outline:3px solid #94bdb0;outline-offset:2px}label small{font-weight:400;color:#7e8c80}.full{grid-column:1/-1}dl{display:grid;grid-template-columns:120px 1fr;gap:14px;font-size:14px}dt{color:#778678}dd{margin:0;overflow-wrap:anywhere}.success{text-align:center;padding:20px}.success .check{font-size:38px;color:#236b60}.receipt{background:#f3f6ef;text-align:left;padding:20px;border-radius:10px;margin:20px 0}.receipt code{display:block;overflow-wrap:anywhere;font-size:12px}.notice{background:#fff4d7;color:#795d20;padding:12px 18px;border-radius:9px;font-size:13px}.error{background:#fce9e4;border:1px solid #f0c6bd;color:#8b3025;padding:12px 18px;border-radius:9px;margin-bottom:16px}.ok{background:#e5f2e9;padding:12px;border-radius:9px;margin-bottom:16px}.tabs{display:flex;gap:10px;margin-bottom:22px}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:13px 9px;border-bottom:1px solid #e5eadf;white-space:nowrap}th{color:#71816f;font-size:11px}.pill{background:#e7f1e6;border-radius:30px;padding:3px 9px;color:#367254;font-size:11px}.empty{padding:30px 10px;text-align:center;color:#7b887e}.admin-grid{display:grid;grid-template-columns:1fr 320px;gap:22px}footer{max-width:1100px;margin:auto;border-top:1px solid #dfe7dc;padding:24px 32px;font-size:12px;color:#889484;display:flex;justify-content:space-between}.linkbutton{background:none;border:0;text-decoration:underline;font-size:13px;padding:5px}.checklabel{display:flex;gap:10px;align-items:flex-start;font-weight:400}.checklabel input{width:18px;margin-top:5px}body.busy button{pointer-events:none;opacity:.6}@media(max-width:800px){.layout,.admin-grid{grid-template-columns:1fr}.aside{order:2}.formgrid{grid-template-columns:1fr}header,main{padding-left:18px;padding-right:18px}.card{padding:19px}.steps{gap:12px}.brand span{font-size:16px}.staff{font-size:11px}.week{gap:4px}.day b{font-size:19px}.times{gap:8px}.hero{padding-top:24px}footer{display:block;padding:20px}footer span{display:block}.bottom{flex-wrap:wrap}dl{grid-template-columns:95px 1fr}.toolbar{flex-wrap:wrap}}
.calendar-scroll{overflow:auto;max-height:620px;border:1px solid #dce4d8;border-radius:10px}.calendar{display:grid;grid-template-columns:60px repeat(7,minmax(90px,1fr));min-width:750px;position:relative;user-select:none}.cal-day,.cal-corner{position:sticky;top:0;background:#f0f5ec;z-index:2;text-align:center;padding:12px 3px;font-size:12px;border-bottom:1px solid #d6dfd1}.cal-today{color:#176458;font-weight:bold;background:#dfede1}.cal-time{font-size:11px;text-align:center;padding-top:8px;background:#f8faf5;border-bottom:1px solid #e7ece2}.cal-cell{border:0;border-right:1px solid #e2e9dd;border-bottom:1px solid #e2e9dd;border-radius:0;min-height:38px;height:38px;padding:3px;font-size:11px;background:white;touch-action:pan-x pan-y}.cal-cell:hover{background:#eef6ed}.cal-cell.cal-booked{background:#e4f0e8;color:#245f4c}.cal-cell.cal-closed{background:#f2ebe6;color:#86685a}.cal-cell.cal-selected{background:#368574;color:white;box-shadow:inset 0 0 0 1px #1c6658}.cal-cell:disabled{background:#f0f1ed;opacity:.6}.cal-dialog{border:1px solid #d5e1d1;border-radius:16px;max-width:490px;width:calc(100% - 32px);padding:26px;color:#243d37}.cal-dialog::backdrop{background:#183e3360}.cal-dialog [hidden]{display:none!important}
