*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#333;-webkit-tap-highlight-color:transparent;background:#f5f5f5;font-family:Meiryo,Hiragino Kaku Gothic ProN,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}:root{--brand:#6acedc;--brand-hover:#55bfd0;--brand-gradient:linear-gradient(to bottom, #5bc0de, #3aa8c9);--bg-page:#f5f5f5;--bg-login:#6acedc;--text-main:#333;--text-sub:#888;--text-link:#2c5ea0;--red:#e55;--red-gradient:linear-gradient(to bottom, #f77, #e55);--blue-sat:#39f;--pink:#e8a;--radius-btn:6px;--radius-card:12px;--radius-step:16px;--radius-input:6px;--teal:#6acedc;--teal-d:#46b3c4;--teal-dd:#3aa8c9;--coral:#ee8496;--grayx:#c4ccd0;--ink:#3a4348;--muted:#9aa3a8;--line:#e7ecee}.btn{border-radius:var(--radius-btn);cursor:pointer;text-align:center;border:none;width:100%;padding:14px;font-size:16px;font-weight:700;display:block}.btn-primary{background:var(--brand);color:#fff}.btn-primary:active{background:var(--brand-hover)}.btn-outline{color:var(--brand);border:2px solid var(--brand);background:#fff}.btn-outline:active{background:#f0f8fa}.btn-danger{background:var(--red-gradient);color:#fff;box-shadow:0 2px 4px #00000026}.btn-disabled{opacity:.4;pointer-events:none}.card{border-radius:var(--radius-card);text-align:center;background:#fff;margin-bottom:16px;padding:28px 20px;box-shadow:0 4px 20px #0000001f}.input-field{border-radius:var(--radius-input);border:2px solid #ddd;outline:none;width:100%;padding:12px;font-family:inherit;font-size:16px;transition:border-color .2s}.input-field:focus{border-color:var(--brand);box-shadow:0 0 0 3px #6acedc33}.reservation-page{background:#fff;flex-direction:column;min-height:100vh;display:flex}.reservation-content{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:30px 24px 48px}.sec-title{color:var(--ink);align-items:center;gap:10px;margin:6px 0 16px;font-size:18px;font-weight:700;display:flex}.sec-title .sec-num{background:var(--teal);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;font-weight:700;display:inline-flex}.actions{justify-content:center;gap:16px;margin-top:34px;display:flex}.reservation-page .btn-back,.reservation-page .btn-next{cursor:pointer;letter-spacing:.1em;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:auto;min-width:200px;padding:15px 0;font-size:16px;font-weight:700;transition:all .25s;display:inline-flex}.reservation-page .btn-back{color:var(--teal-d);border:2px solid var(--teal);background:#fff}.reservation-page .btn-back:hover{background:#f2fbfc}.reservation-page .btn-next{color:#fff;background:linear-gradient(135deg,#6acedc,#3aa8c9);border:none;box-shadow:0 10px 22px #3aa8c959}.reservation-page .btn-next:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 28px #3aa8c96b}.reservation-page .btn-next:disabled{box-shadow:none;cursor:not-allowed;background:#cfeaef;transform:none}@media (width<=720px){.reservation-content{padding:22px 14px 40px}.actions{flex-direction:column-reverse}.reservation-page .btn-back,.reservation-page .btn-next{width:100%;min-width:0}}.flow-links{text-align:center;max-width:520px;margin:22px auto 0}.flow-links a{color:var(--teal-d);margin:14px 0;font-size:13.5px;font-weight:700;text-decoration:none;display:block}.flow-links a:hover{text-decoration:underline}.flow-link-disabled{color:var(--text-sub,#888);cursor:not-allowed;opacity:.55;margin:14px 0;font-size:13.5px;font-weight:700;display:block}.footer{text-align:center;color:#fff;letter-spacing:.1em;background:#bfe7ec;margin-top:0;padding:16px;font-size:12px;font-weight:700}@media (width>=600px){.btn-primary:hover{background:var(--brand-hover)}.btn-outline:hover{background:#f0f8fa}.footer{margin-top:0;padding:16px;font-size:12px}}.header{background:linear-gradient(#5cc4d4,#6acedc);align-items:center;min-height:60px;padding:14px 24px;display:flex;position:relative}.header-logo-link{align-items:center;display:inline-flex}.header-logo{width:auto;height:36px}.header-clinic{color:#fff;letter-spacing:.08em;white-space:nowrap;font-size:16px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.header-account{margin-left:auto;position:relative}.header-login-badge{color:#fff;white-space:nowrap;cursor:pointer;background:#f0708f;border:1px solid #ffffff73;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:700;display:inline-flex;box-shadow:0 4px 12px #f0708f80}.header-login-badge svg{fill:#fff;width:14px;height:14px}.header-badge-caret{transition:transform .15s}.header-login-badge[aria-expanded=true] .header-badge-caret{transform:rotate(180deg)}.header-menu{z-index:30;background:#fff;border-radius:12px;flex-direction:column;min-width:160px;display:flex;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000002e}.header-menu-item{text-align:left;width:100%;color:var(--text-main,#333);cursor:pointer;background:#fff;border:none;padding:12px 16px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:block}.header-menu-item:hover{background:#f5f7f9}.header-menu-item+.header-menu-item{border-top:1px solid #eee}.header-menu-logout{color:var(--red,#e55)}@media (width<=720px){.header{flex-direction:column;gap:8px;padding:14px}.header-clinic{position:static;transform:none}.header-account{margin-left:0}}.contact-bar{color:#fff;text-align:center;letter-spacing:.04em;background:#83d6df;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding:9px 16px;font-size:13px;font-weight:700;display:flex}.contact-bar-tel{color:#fff;letter-spacing:.08em;background:#ffffff29;border:1px solid #ffffff80;border-radius:999px;align-items:center;gap:7px;padding:5px 14px;text-decoration:none;transition:all .2s;display:inline-flex}.contact-bar-tel svg{fill:#fff;width:15px;height:15px}.contact-bar-tel:hover{background:#ffffff47}.contact-bar-tel:active{background:#ffffff57}.steps{border:1px solid var(--line);background:#fff;border-radius:16px;justify-content:center;gap:0;max-width:720px;margin:0 auto 30px;padding:24px 18px 18px;display:flex;box-shadow:0 10px 30px -22px #28505a80}.step{text-align:center;flex-direction:column;align-items:center;width:120px;display:flex;position:relative}.step-circle{background:#f1f4f5;border:none;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:10px;display:flex}.step-circle svg{stroke:#b9c2c7;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.step-label{color:var(--muted);font-size:12px;font-weight:500;line-height:1.3}.step:not(:last-child) .step-circle:after{content:"";border-top:2px dotted #cfd7da;width:56px;height:0;position:absolute;top:27px;left:calc(50% + 32px)}.step.active .step-circle{background:var(--teal);box-shadow:0 8px 16px #6acedc66}.step.active .step-circle svg{stroke:#fff}.step.active .step-label{color:var(--ink);font-weight:700}.step.active:after{content:"";background:var(--teal);border-radius:2px;width:42px;height:3px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.step.completed .step-circle{background:var(--teal)}.step.completed .step-circle svg{stroke:#fff}.step.completed .step-label{color:var(--ink);font-weight:500}.step.completed:not(:last-child) .step-circle:after{border-top-style:solid;border-top-color:var(--teal)}.steps-6{overflow-x:auto}.steps-6 .step{width:108px;min-width:84px}.steps-6 .step-circle{border-radius:50%;width:50px;height:50px}.steps-6 .step-circle svg{width:22px;height:22px}.steps-6 .step-label{font-size:11.5px}.steps-6 .step.active .step-label{color:var(--teal-d)}.steps-6 .step.active:after{display:none}.steps-6 .step:not(:last-child) .step-circle:after{width:48px;top:25px;left:calc(50% + 30px)}@media (width<=720px){.steps{flex-wrap:wrap;gap:6px 0;padding:18px 10px 14px}.step{width:25%}.step-circle{width:46px;height:46px}.step:not(:last-child) .step-circle:after,.step.active:after{display:none}.step-label{font-size:11px}.steps-6{flex-wrap:nowrap;justify-content:flex-start}.steps-6 .step{width:78px;min-width:74px}.steps-6 .step-circle{width:44px;height:44px}.steps-6 .step-label{font-size:10.5px}}.cal-layout{align-items:flex-start;gap:26px;display:flex}.cal-main{flex:1;min-width:0}.cal-side{flex-shrink:0;width:210px;padding-top:40px}.cal-head{justify-content:center;align-items:center;gap:16px;margin-bottom:14px;display:flex}.cal-month{letter-spacing:.04em;font-size:17px;font-weight:700}.cal-nav{border:1px solid var(--line);width:34px;height:34px;color:var(--teal-d);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:15px;transition:all .2s;display:flex}.cal-nav:hover{background:#f2fbfc}.cal-nav.disabled{color:#d5dadd;pointer-events:none;border-color:#eef1f2}table.cal{border-collapse:collapse;table-layout:fixed;width:100%}table.cal th{color:#7d8589;border-bottom:1px solid var(--line);padding:10px 0;font-size:13px;font-weight:700}table.cal th.cal-sun{color:#e57b86}table.cal th.cal-sat{color:#5b9bd6}table.cal td{border:1px solid var(--line);vertical-align:top;text-align:center;height:64px;padding:8px 6px 4px}table.cal td .cal-date{font-size:14px;font-weight:700;line-height:1}table.cal td.cal-sun .cal-date{color:#e57b86}table.cal td.cal-sat .cal-date{color:#5b9bd6}table.cal td .cal-status{justify-content:center;align-items:center;height:24px;margin-top:8px;display:flex}table.cal td.cal-empty{background:#fafbfb;border-color:#f0f3f3}table.cal td.cal-dim{background:#f3f4f5}td.cal-selectable{cursor:pointer;transition:background .15s}td.cal-selectable:hover{background:#e7f6f9}td.cal-selected{outline:2px solid var(--teal);outline-offset:-2px;background:#d7f0f5}.mark-ok{background:var(--teal);border-radius:50%;width:22px;height:22px;display:inline-block}.mark-end{background:var(--coral);border-radius:50%;width:22px;height:22px;display:inline-block;position:relative}.mark-end:after{content:"";background:#fff;border-radius:2px;width:11px;height:2.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mark-ng{background:var(--grayx);border-radius:50%;width:22px;height:22px;display:inline-block;position:relative}.mark-ng:before,.mark-ng:after{content:"";background:#fff;border-radius:2px;width:12px;height:2.5px;position:absolute;top:50%;left:50%}.mark-ng:before{transform:translate(-50%,-50%)rotate(45deg)}.mark-ng:after{transform:translate(-50%,-50%)rotate(-45deg)}.mark-rest{color:#aab2b6;font-size:13px;font-weight:700}.cal-legend-item{color:var(--ink);align-items:center;gap:12px;margin-bottom:16px;font-size:13px;font-weight:500;display:flex}.cal-legend-ic{flex-shrink:0;justify-content:center;width:22px;display:flex}.cal-notice{color:#4a6066;background:#e4f4f7;border-radius:14px;align-items:flex-start;gap:12px;margin-top:14px;padding:16px;font-size:13px;font-weight:500;line-height:1.6;display:flex}.cal-notice svg{width:22px;height:22px;stroke:var(--teal-d);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:1px}@media (width<=720px){.cal-layout{flex-direction:column;gap:18px}.cal-side{flex-wrap:wrap;gap:18px;width:100%;padding-top:0;display:flex}.cal-legend{flex:1;min-width:200px}.cal-notice{flex:1;min-width:200px;margin-top:0}table.cal td{height:54px}}.rc-booked-notice{text-align:center;padding:24px 16px 8px}.rc-booked-title{color:var(--text-main,#333);margin-bottom:12px;font-size:18px;font-weight:700}.rc-booked-text{color:var(--text-sub,#888);max-width:420px;margin:0 auto 24px;font-size:14px;line-height:1.8}.rc-booked-btn{text-decoration:none;display:inline-block}.btn-social{color:#3c4043;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #dadce0;border-radius:10px;justify-content:center;align-items:center;gap:12px;width:100%;padding:15px 0;font-family:inherit;font-size:15px;font-weight:700;transition:all .2s;display:flex}.btn-social:hover{background:#f7f9fa;box-shadow:0 2px 8px #00000014}.btn-social .g-icon{flex-shrink:0;width:20px;height:20px}.social-divider{align-items:center;gap:12px;margin:22px 0;display:flex}.social-divider:before,.social-divider:after{content:"";background:var(--line);flex:1;height:1px}.social-divider span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.login-content{flex:1;width:100%;max-width:620px;margin:0 auto;padding:34px 24px 40px}.login-card{border:1px solid var(--line);background:#fff;border-radius:20px;max-width:520px;margin:0 auto;padding:40px 32px 36px;box-shadow:0 16px 40px -24px #28505a8c}.login-title{text-align:center;letter-spacing:.04em;color:var(--ink);margin-bottom:12px;font-size:22px;font-weight:700}.login-lead{text-align:center;color:var(--muted);margin-bottom:26px;font-size:13px;line-height:1.9}.login-field{margin-bottom:24px}.login-field label{color:var(--ink);margin-bottom:8px;font-size:13px;font-weight:700;display:block}.login-field input{border:1px solid var(--line);width:100%;color:var(--ink);border-radius:10px;padding:15px 16px;font-family:inherit;font-size:15px;transition:all .2s}.login-field input::placeholder{color:#c2cace}.login-field input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #6acedc33}.login-error{color:var(--red);margin:-8px 0 16px;font-size:13px;font-weight:700}.login-submit{color:#fff;letter-spacing:.06em;cursor:pointer;background:linear-gradient(135deg,#6acedc,#3aa8c9);border:none;border-radius:10px;justify-content:center;align-items:center;width:100%;padding:16px 0;font-family:inherit;font-size:16px;font-weight:700;transition:all .25s;display:flex;box-shadow:0 10px 22px #3aa8c959}.login-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 28px #3aa8c96b}.login-submit:disabled{box-shadow:none;cursor:not-allowed;background:#cfeaef}.login-success{text-align:center;padding:8px 0}.login-success-icon{background:#e4f4f7;border-radius:50%;justify-content:center;align-items:center;width:66px;height:66px;margin:0 auto 16px;display:flex}.login-success-icon svg{width:32px;height:32px;stroke:var(--teal-d);fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.login-success-text{color:var(--ink);font-size:14px;font-weight:500;line-height:1.9}@media (width<=720px){.login-card{padding:34px 22px 30px}}.error-fallback{background:var(--bg-login);justify-content:center;align-items:center;min-height:100vh;padding:24px 12px;display:flex}.error-fallback-card{border-radius:var(--radius-card);text-align:center;background:#fff;width:100%;max-width:420px;padding:32px 28px;box-shadow:0 4px 24px #00000026}.error-fallback-title{color:var(--text-main);margin-bottom:16px;font-size:18px;font-weight:700}.error-fallback-msg{color:var(--text-sub);margin-bottom:24px;font-size:14px;line-height:1.6}.error-fallback-btn{background:var(--brand);color:#fff;border-radius:var(--radius-btn);cursor:pointer;border:none;padding:12px 32px;font-family:inherit;font-size:14px;font-weight:700;transition:background .2s;display:inline-block}.error-fallback-btn:hover{background:var(--brand-hover)}.ud-content{background:#f9fafb;justify-content:center;align-items:center;min-height:100vh;padding:24px;font-family:sans-serif;display:flex}.ud-card{text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-width:480px;padding:32px}.ud-title{color:var(--red,#e55);margin:0 0 16px;font-size:18px}.ud-message{color:var(--text-main,#333);margin:8px 0;font-size:14px;line-height:1.6}.ud-host{background:#f3f4f6;border-radius:4px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.ud-footer{color:var(--text-sub,#888);margin:24px 0 0;font-size:12px}
