:root{--bg: #f7f4ec;--surface: #ffffff;--surface-alt: #efeae0;--ink: #2b2a27;--ink-muted: #6b675e;--primary: #2f5d50;--primary-strong: #254a40;--accent: #b98a3e;--border: #e3dccb;--success: #2f7d4f;--warning: #9c6a1b;--error: #b3261e;--line-brand: #06c755;--radius: 8px;--radius-sm: 4px;--shadow: 0 1px 2px rgba(43, 42, 39, .06), 0 4px 16px rgba(43, 42, 39, .08)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Noto Sans JP,sans-serif;font-weight:400;line-height:1.8;-webkit-text-size-adjust:100%}h1,h2,h3{font-family:"Noto Serif JP",Yu Mincho,serif;line-height:1.3;margin:0 0 8px;color:var(--ink)}h1{font-size:1.375rem;font-weight:600}h2{font-size:1.125rem;font-weight:600}h3{font-size:1rem;font-weight:500}p{margin:0 0 8px}.container{max-width:480px;margin:0 auto;padding:16px}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:16px;text-align:center;position:sticky;top:0;z-index:10}.app-header .eyebrow{font-family:"Noto Serif JP",serif;font-size:.75rem;letter-spacing:.18em;color:var(--accent);text-transform:uppercase}.tabs{display:flex;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:65px;z-index:9}.tab-btn{flex:1;padding:12px 8px;text-align:center;background:none;border:none;border-bottom:2px solid transparent;font-family:Noto Sans JP,sans-serif;font-size:.875rem;font-weight:500;color:var(--ink-muted);cursor:pointer;min-height:44px}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-btn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}.section-label{font-family:"Noto Serif JP",serif;font-size:.75rem;letter-spacing:.1em;color:var(--accent);margin-bottom:8px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 24px;border-radius:var(--radius);border:none;font-family:Noto Sans JP,sans-serif;font-size:.9375rem;font-weight:500;cursor:pointer;width:100%}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-strong)}.btn-primary:disabled{background:var(--border);color:var(--ink-muted);cursor:not-allowed}.btn-outline{background:var(--surface);color:var(--primary);border:1px solid var(--primary)}.btn-line{background:var(--line-brand);color:#fff}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.week-nav{display:flex;align-items:center;justify-content:space-between;background:var(--primary);color:#fff;border-radius:var(--radius);padding:8px 4px;margin-bottom:8px}.week-nav__label{font-size:.9375rem;font-weight:500;letter-spacing:.02em}.week-nav__btn{min-width:44px;min-height:40px;border:none;background:none;color:#fff;font-size:1.125rem;line-height:1;cursor:pointer;border-radius:var(--radius-sm)}.week-nav__btn:disabled{opacity:.35;cursor:not-allowed}.week-nav__btn:focus-visible{outline:2px solid #fff;outline-offset:-2px}.cal-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.cal{width:100%;border-collapse:collapse;background:var(--surface);font-size:.8125rem}.cal th,.cal td{border:1px solid var(--border);text-align:center;padding:0}.cal thead th{background:var(--surface-alt);font-weight:500;padding:6px 2px;line-height:1.35;white-space:nowrap;font-size:.75rem}.cal thead th .wd{display:block;font-size:.6875rem;color:var(--ink-muted)}.cal thead th.is-sat,.cal thead th.is-sat .wd{color:#2f6d9c}.cal thead th.is-sun,.cal thead th.is-sun .wd{color:var(--error)}.cal th.cal-time{background:var(--surface-alt);font-weight:400;color:var(--ink-muted);width:3.5rem;white-space:nowrap;padding:0 6px}.cal-cell{width:100%;min-height:40px;height:40px;border:none;background:none;font-size:1rem;color:var(--primary);cursor:pointer}.cal-cell:hover{background:var(--surface-alt)}.cal-cell:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.cal-cell[disabled]{color:var(--border);cursor:default}.cal-cell[disabled]:hover{background:none}.cal-legend{font-size:.75rem;color:var(--ink-muted);margin-top:8px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:6px}.form-group .required{color:var(--error);font-size:.75rem;margin-left:4px}.form-control{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:Noto Sans JP,sans-serif;font-size:.9375rem;background:var(--surface);color:var(--ink)}.form-control:focus-visible{outline:2px solid var(--primary);outline-offset:1px}textarea.form-control{min-height:88px;resize:vertical}.policy-note{font-size:.8125rem;color:var(--ink-muted);background:var(--surface-alt);border-radius:var(--radius-sm);padding:12px;margin-bottom:16px}.complete-screen{text-align:center;padding:48px 16px}.complete-icon{font-size:2.5rem;margin-bottom:12px;color:var(--primary)}.booking-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.booking-item__head{display:flex;align-items:center;gap:8px;background:var(--surface-alt);border-bottom:1px solid var(--border);padding:10px 16px}.booking-notice{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;font-size:.8125rem;color:var(--ink-muted);line-height:1.7}.booking-item__body{padding:4px 16px 16px}.booking-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px dotted var(--border);font-size:.875rem}.booking-row:last-of-type{border-bottom:none}.booking-row__label{flex:0 0 5.5rem;color:var(--ink-muted)}.booking-row__value{flex:1 1 auto;word-break:break-word}.booking-row__value.is-strong{font-weight:500}.booking-item .booking-status{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:999px}.booking-item__actions{padding:0 16px 16px}.cancel-deadline-note{font-size:.8125rem;color:var(--warning);background:#9c6a1b14;border-radius:var(--radius-sm);padding:10px 12px;margin:0 0 10px;line-height:1.6}a.btn{text-decoration:none}.btn-lg{min-height:56px;font-size:1rem;font-weight:500}.status-confirmed{background:#2f5d501f;color:var(--primary)}.status-cancelled{background:#6b675e1f;color:var(--ink-muted)}.error-text{color:var(--error);font-size:.8125rem;margin-top:4px;display:none}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 20px;border-radius:var(--radius);font-size:.875rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:24px;text-align:center}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--ink-muted);padding:32px 16px;font-size:.875rem}.page{display:none}.page.active{display:block}a{color:var(--primary)}
