*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--bg2:#f4fafa;--bg3:#e8f6f5;--text:#2d2d2d;--text2:#5a5a5a;--text3:#9e9e9e;--border:rgba(11,79,94,.08);--border2:rgba(11,79,94,.18);--accent:#0b4f5e;--accent-mid:#177a74;--accent-light:#2eb8ae;--accent-t:#fff;--gold:#c4a265;--gold-light:#d4b87a;--danger:#c0392b;--danger-bg:#fdf2f1;--warn:#b45309;--warn-bg:#fffbeb;--warn-border:rgba(180,83,9,.25);--ok:#166534;--ok-bg:#f0fdf4;--ok-border:rgba(22,101,52,.25);--r-md:10px;--r-lg:16px;--shadow-sm:0 2px 8px rgba(11,79,94,.06);--shadow:0 4px 20px rgba(11,79,94,.08);--shadow-lg:0 8px 32px rgba(11,79,94,.12)}html{scroll-behavior:smooth}body{font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Hiragino Sans,sans-serif;background:var(--bg2);color:var(--text);font-size:15px;line-height:1.7;min-height:100vh;-webkit-font-smoothing:antialiased}.header{background:var(--bg);padding:0 20px;height:60px;display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:hsla(0,0%,100%,.92)}.header-logo{font-family:Shippori Mincho,serif;font-size:19px;font-weight:700;letter-spacing:.06em;color:var(--accent)}.header-sub{font-size:11px;color:var(--text2);margin-left:10px;letter-spacing:.04em}.container{max-width:520px}.container,.container-wide{margin:0 auto;padding:32px 16px 80px}.container-wide{max-width:920px}.card{border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow .3s}.btn,.card{background:var(--bg)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;border:1px solid var(--border2);color:var(--text);border-radius:var(--r-md);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;letter-spacing:.02em}.btn:hover:not(:disabled){background:var(--bg3);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent)!important;color:var(--accent-t)!important;border-color:transparent!important;box-shadow:0 2px 8px rgba(11,79,94,.2)!important}.btn-primary:hover:not(:disabled){background:var(--accent-mid)!important;box-shadow:0 4px 16px rgba(11,79,94,.25)!important}.btn-danger{color:var(--danger)!important;border-color:rgba(192,57,43,.3)!important}.btn-danger:hover:not(:disabled){background:var(--danger-bg)!important}.btn-ok{color:var(--ok)!important;border-color:var(--ok-border)!important}.btn-ok:hover:not(:disabled){background:var(--ok-bg)!important}.input{width:100%;padding:12px 14px;border:1px solid var(--border2);border-radius:var(--r-md);font-size:15px;font-family:inherit;color:var(--text);background:var(--bg);outline:none;transition:all .2s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(11,79,94,.08)}.input::placeholder{color:var(--text3)}label{font-size:12px;color:var(--text2);display:block;margin-bottom:6px;font-weight:500;letter-spacing:.02em}.required{color:var(--danger);margin-left:2px}.stepper{margin-bottom:28px}.step-dot,.stepper{display:flex;align-items:center}.step-dot{width:28px;height:28px;border-radius:50%;justify-content:center;font-size:12px;flex-shrink:0;font-weight:600;transition:all .3s}.step-dot.active{box-shadow:0 2px 8px rgba(11,79,94,.3)}.step-dot.active,.step-dot.done{background:var(--accent);color:var(--accent-t)}.step-dot.idle{background:transparent;border:1.5px solid var(--border2);color:var(--text3)}.step-line{flex:1 1;height:1px;background:linear-gradient(90deg,var(--border2),var(--border))}.step-label{font-size:11px;color:var(--text3);margin-top:4px;letter-spacing:.02em}.step-label.active{color:var(--accent);font-weight:600}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.cal-dname{text-align:center;font-size:11px;color:var(--text2);padding:4px 0 10px;font-weight:500}.cal-dname.sun{color:#c0392b}.cal-dname.sat{color:#2980b9}.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;border-radius:50%;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .15s;font-weight:400}.cal-day:hover:not(.past):not(.selected){background:var(--bg3);color:var(--accent)}.cal-day.past{color:var(--text3);cursor:default;pointer-events:none;opacity:.5}.cal-day.selected{background:var(--accent);color:var(--accent-t);font-weight:600;box-shadow:0 2px 8px rgba(11,79,94,.25)}.cal-day.today:not(.selected){border:1.5px solid var(--accent);color:var(--accent);font-weight:600}.cal-day.has-booking:after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--gold)}.cal-day.sun:not(.past):not(.selected){color:#c0392b}.cal-day.sat:not(.past):not(.selected){color:#2980b9}.slots-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:8px;gap:8px}.time-slot{border:1px solid var(--border2);background:var(--bg);padding:10px 4px;border-radius:var(--r-md);font-size:13px;text-align:center;cursor:pointer;transition:all .15s;font-family:inherit;color:var(--text);line-height:1.4}.time-slot:hover:not(:disabled):not(.selected){border-color:var(--accent);background:var(--bg3)}.time-slot.selected{background:var(--accent);color:var(--accent-t);border-color:transparent}.time-slot:disabled{cursor:not-allowed}.time-slot.blocked,.time-slot:disabled{color:var(--text3);background:var(--bg3);opacity:.6}.time-slot.blocked{border-style:dashed}.metric{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;text-align:center;box-shadow:var(--shadow-sm)}.metric-label{font-size:11px;color:var(--text2);margin-bottom:6px;letter-spacing:.03em}.metric-value{font-family:Shippori Mincho,serif;font-size:26px;font-weight:700;color:var(--accent)}.info-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.info-row:last-child{border-bottom:none}.info-label{font-size:12px;color:var(--text2);width:80px;flex-shrink:0;padding-top:2px;font-weight:500}.info-value{font-size:14px}.booking-item{padding:12px 0;border-bottom:1px solid var(--border)}.booking-item:last-child{border-bottom:none}.status-pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 10px;border-radius:100px;letter-spacing:.02em}.status-pending{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border)}.status-confirmed{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-border)}.slider-track{position:relative;height:8px;background:var(--bg3);border-radius:8px;margin-bottom:-4px;border:1px solid var(--border)}.slider-blocked{position:absolute;top:0;height:100%;background:rgba(192,57,43,.18);border-radius:8px}.time-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;background:transparent;outline:none;position:relative;z-index:2;cursor:pointer;margin:0}.time-slider::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 2px 8px rgba(11,79,94,.25);cursor:-webkit-grab;cursor:grab;margin-top:-10px;-webkit-transition:transform .15s,box-shadow .15s;transition:transform .15s,box-shadow .15s}.time-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(11,79,94,.3)}.time-slider::-webkit-slider-thumb:active{cursor:-webkit-grabbing;cursor:grabbing;transform:scale(1.15)}.time-slider::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 2px 8px rgba(11,79,94,.25);cursor:grab}.time-slider::-webkit-slider-runnable-track{height:8px;background:transparent;border-radius:8px}.time-slider::-moz-range-track{height:8px;background:transparent;border-radius:8px}.range-container{position:relative;height:40px;display:flex;align-items:center}.range-track{position:absolute;width:100%;height:8px;background:var(--bg3);border-radius:8px;border:1px solid var(--border);pointer-events:none;z-index:1}.range-selected{background:rgba(192,57,43,.25)}.range-existing,.range-selected{position:absolute;height:100%;border-radius:8px}.range-existing{background:rgba(192,57,43,.12);border:1px dashed rgba(192,57,43,.35)}.range-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;background:transparent;outline:none;position:absolute;z-index:3;cursor:pointer;margin:0;pointer-events:none}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 2px 6px rgba(11,79,94,.2);cursor:-webkit-grab;cursor:grab;pointer-events:auto;margin-top:-8px;-webkit-transition:transform .15s;transition:transform .15s}.range-slider::-webkit-slider-thumb:active{cursor:-webkit-grabbing;cursor:grabbing;transform:scale(1.1)}.range-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 2px 6px rgba(11,79,94,.2);cursor:grab;pointer-events:auto}.range-slider::-webkit-slider-runnable-track{height:8px;background:transparent}.range-slider::-moz-range-track{height:8px;background:transparent}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s cubic-bezier(.4,0,.2,1)}