:root{--ink:#18302d;--muted:#6d7d79;--sea:#0f7f78;--line:#d9e2df;--paper:#fffdf8}
*{box-sizing:border-box} body{margin:0;color:var(--ink);background:linear-gradient(145deg,#e6f4f0,#f8f2e8);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif}
.account-shell{width:min(820px,calc(100% - 28px));margin:0 auto;padding:56px 0 80px}.account-shell.narrow{width:min(520px,calc(100% - 28px))}
.back,.profile-nav a,.switch a{color:var(--sea);text-decoration:none;font-weight:700}.eyebrow{margin:28px 0 6px;color:var(--sea);font-size:11px;font-weight:850;letter-spacing:.18em}
h1{margin:0;font-size:clamp(38px,7vw,58px);letter-spacing:-.04em}.lead,.muted{color:var(--muted)}
.account-form,.profile-card{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:28px;padding:28px;border:1px solid rgba(255,255,255,.8);border-radius:20px;background:rgba(255,253,248,.95);box-shadow:0 18px 50px rgba(20,50,46,.1)}
.account-form.single{grid-template-columns:1fr}.account-form label span{display:block;margin-bottom:7px;font-size:12px;font-weight:750}
input,select,textarea{width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:white;font:inherit}
.wide{grid-column:1/-1}.account-form button,.profile-nav button{min-height:48px;padding:11px 18px;color:white;border:0;border-radius:10px;background:var(--sea);font-weight:800;cursor:pointer}
.remember{display:flex;align-items:center;gap:8px}.remember input{width:18px;min-height:18px}.remember span{margin:0!important}.switch{text-align:center;color:var(--muted)}
.errors,.success{margin-top:18px;padding:13px 16px;border-radius:10px}.errors{color:#973e2d;background:#fee8e3}.success{color:#08655d;background:#def3ed}
.profile-nav{display:flex;justify-content:flex-end;align-items:center;gap:14px}.profile-nav form{margin:0}.profile-nav button{min-height:auto;padding:7px 11px}
.count-card{display:inline-flex;align-items:baseline;gap:8px;margin-top:20px;padding:17px 22px;border-radius:14px;background:#153f3b;color:white}.count-card strong{font-size:34px}.count-card span,.count-card small{color:#c7dcd8}
.reservation-count{margin:10px 0 0;color:var(--muted);font-size:13px}.reservation-count strong{color:var(--ink);font-size:14px}
.section-kicker{margin:28px 0 -18px;color:var(--sea);font-size:11px;font-weight:850;letter-spacing:.18em}.account-kicker{margin-top:38px}.profile-card-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.profile-card-heading .reservation-count{margin:0}
.profile-card{display:block}.profile-card .account-form{margin:0;padding:0;border:0;box-shadow:none}.profile-card h2{margin:0 0 18px}.reservation-history{display:grid;grid-template-columns:1fr 1.35fr auto auto;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:13px;text-decoration:none}.reservation-history span{color:var(--muted)}.reservation-history b{color:var(--sea)}
.reservation-history.payment-required-row{margin:9px -12px;padding:16px 12px;border:2px solid #e58b00;border-radius:13px;background:#fff2c9;box-shadow:0 8px 20px rgba(190,108,0,.15)}.reservation-history.payment-required-row b{color:#9a4f00;font-size:14px}.payment-required-label{display:table;margin-top:7px;padding:5px 9px;border-radius:999px;background:#b85c00;color:#fff;font-size:11px;font-weight:900}
.reservation-history.checkin-ready-row{margin:9px -12px;padding:16px 12px;border:2px solid #07887d;border-radius:13px;background:#dff7f1;box-shadow:0 8px 20px rgba(7,136,125,.16)}.reservation-history.checkin-ready-row b{color:#056d65;font-size:14px}.checkin-ready-label{display:table;margin-top:7px;padding:5px 9px;border-radius:999px;background:#07887d;color:#fff;font-size:11px;font-weight:900}
.urgent-reservation-panel{border:3px solid #d98700;background:linear-gradient(145deg,#fff2c9,#fff)}.urgent-reservation-panel>h2{font-size:24px}.urgent-reservation-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:5px 12px;margin-top:10px;padding:16px;border:2px solid;border-radius:14px;color:var(--ink);text-decoration:none}.urgent-reservation-card>span{grid-row:1/3;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.75);font-size:11px;font-weight:900}.urgent-reservation-card>strong{font-size:17px}.urgent-reservation-card>small{grid-column:2;color:#536d68}.urgent-reservation-card>b{grid-column:3;grid-row:1/3}.urgent-reservation-card.needs-payment{border-color:#db8000;background:#fff0bd}.urgent-reservation-card.needs-payment b{color:#914900}.urgent-reservation-card.can-checkin{border-color:#07887d;background:#ddf7f1}.urgent-reservation-card.can-checkin b{color:#056d65}
.past-reservations-more{margin-top:14px}.past-reservations-more>summary{padding:13px 16px;border:1px solid #add2cc;border-radius:10px;background:#edf8f5;color:var(--sea);font-size:13px;font-weight:850;text-align:center;cursor:pointer;list-style:none}.past-reservations-more>summary::-webkit-details-marker{display:none}.past-reservations-more>summary:after{content:' ↓'}.past-reservations-more[open]>summary:after{content:' ↑'}.past-reservations-more[open]>summary{margin-bottom:4px;background:#dff3ef}
.reservation-detail{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-row{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}.detail-row span{display:block;margin-bottom:5px;color:var(--muted);font-size:12px}.night-detail{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.status-pill{display:inline-flex;padding:7px 11px;border-radius:999px;background:#e7f1ee;color:var(--sea);font-size:13px;font-weight:800}.payment-action{display:inline-flex;margin-top:18px;padding:13px 18px;border-radius:10px;background:var(--sea);color:white;text-decoration:none;font-weight:800}
.list-status{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid transparent;border-radius:999px;font-size:12px;line-height:1.2;font-style:normal;font-weight:900;white-space:nowrap}.status-hero{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin:24px 0 8px;padding:22px 26px;border:2px solid;border-radius:18px;box-shadow:0 12px 30px rgba(20,50,46,.12)}.status-hero span{font-size:13px;font-weight:800}.status-hero strong{font-size:clamp(30px,6vw,44px);line-height:1.1}.status-hero small{font-size:15px;font-weight:700}
.change-action{margin-left:8px;background:#365f5b}
.access-code-card{margin:24px 0;padding:28px;border:3px solid #08786f;border-radius:22px;background:linear-gradient(145deg,#d9f6ee,#fffdf8);box-shadow:0 16px 38px rgba(8,120,111,.2)}.access-code-heading span{color:#08786f;font-size:11px;font-weight:900;letter-spacing:.15em}.access-code-heading h2{margin:6px 0;font-size:clamp(28px,5vw,38px)}.access-code-heading p{margin:0 0 20px;color:#3f625d;font-weight:800}.access-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.access-code-grid article{display:flex;flex-direction:column;align-items:center;padding:20px 14px;border:2px solid #9bcfc6;border-radius:16px;background:#fff;text-align:center}.access-code-grid article span{color:#53716c;font-size:13px;font-weight:900}.access-code-grid article strong{margin:5px 0;color:#075f58;font-size:clamp(32px,7vw,48px);letter-spacing:.08em}.access-code-grid article small{color:#6d7d79;font-weight:700}.access-code-save{display:block;width:100%;min-height:58px;margin-top:18px;padding:13px 18px;border:0;border-radius:13px;background:#08786f;color:#fff;font:inherit;font-size:18px;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(8,120,111,.24)}.access-code-save:hover{background:#06685f}.access-code-save-note{margin:9px 0 0;color:#54716c;text-align:center;font-size:12px;font-weight:700}
.cancellation-card,.cancellation-result{border-color:#efc9bf;background:#fff8f5}.cancellation-card p{color:var(--muted)}.cancellation-rules{padding-left:20px;line-height:1.8}.cancellation-quote{display:flex;flex-direction:column;gap:5px;margin:16px 0;padding:17px;border-radius:13px;background:#fff0eb}.cancellation-quote span,.cancellation-quote small{color:#8c4a3b}.cancellation-quote strong{font-size:22px;color:#9b392b}.cancellation-card form{display:grid;gap:12px}.cancellation-card label span{display:block;margin-bottom:6px;font-size:12px;font-weight:750}.cancel-confirm{display:flex;align-items:center;gap:8px}.cancel-confirm input{width:18px;min-height:18px}.cancel-confirm span{margin:0!important}.cancel-reservation-button{min-height:48px;padding:11px 18px;color:white;border:0;border-radius:10px;background:#a13e2c;font-weight:850;cursor:pointer}.cancellation-payment-action{background:#a13e2c}.rental-cancellation-guide{display:flex;flex-direction:column;gap:4px;margin:4px 0;padding:14px 16px;border-radius:11px;background:#fff0c9!important;color:#704500!important}.rental-cancellation-guide strong{font-size:16px}.rental-cancellation-guide span{font-size:13px;font-weight:750}.rental-cancel-confirm{padding:14px 16px;border:2px solid #d98d72;border-radius:11px;background:#fff}.cancel-reservation-button:disabled{background:#aeb9b6;color:#f7f9f8;cursor:not-allowed;box-shadow:none}.cancel-reservation-button:not(:disabled){box-shadow:0 8px 18px rgba(161,62,44,.22)}
.checkin-guidance-intro{margin:0 0 24px;padding:18px 20px;border:2px solid #158b80;border-radius:14px;background:#e7f7f3}.checkin-guidance-intro strong{display:block;color:var(--sea);font-size:18px}.checkin-guidance-intro p{margin:8px 0 0;color:var(--ink);line-height:1.7}.checkin-notice-text{white-space:pre-wrap;line-height:1.9}.lodging-checkin-form{display:grid;justify-items:center;gap:18px;margin-top:24px}.lodging-checkin-submit{justify-content:center;min-width:min(100%,380px);min-height:58px;margin:0;padding:16px 28px;border:0;font-size:17px;cursor:pointer}.online-checkin-cancellation{margin-top:40px}.online-checkin-cancellation details{margin:12px 0 18px}.online-checkin-cancellation summary{color:#8c4a3b;font-weight:800;cursor:pointer}
.status-pending_approval{border-color:#d68a00;background:#fff3cf;color:#8a5200}.status-change_request_pending{border-color:#dc8500;background:#fff0c2;color:#834d00}.status-change_payment_pending{border-color:#7554ba;background:#eee7ff;color:#51358d}.status-approved{border-color:#2485b5;background:#e2f3fb;color:#135f85}.status-payment_pending{border-color:#7554ba;background:#eee7ff;color:#51358d}.status-confirmed,.status-checked_in{border-color:#11836f;background:#dff6ef;color:#086555}.status-rejected,.status-cancelled,.status-expired{border-color:#c54b3d;background:#fde7e2;color:#963427}.status-checked_out{border-color:#64736f;background:#edf1f0;color:#44514e}
.status-in_use{border-color:#11836f;background:#dff6ef;color:#086555}.status-returned,.status-cancelled_refunded{border-color:#64736f;background:#edf1f0;color:#44514e}.status-cancelled_refund_pending,.status-cancellation_fee_payment_pending{border-color:#d68a00;background:#fff3cf;color:#8a5200}
.change-history-item{margin-top:12px;border:1px solid #d8e3e0;border-radius:14px;overflow:hidden;background:#fff}.change-history-item summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none}.change-history-item summary::-webkit-details-marker{display:none}.change-history-item summary span{display:flex;flex-direction:column;gap:2px}.change-history-item summary small{color:#6a7f7b}.change-history-status{padding:7px 11px;border-radius:999px;font-size:12px}.change-history-toggle{color:#12887f;font-size:13px}.change-history-item[open] .change-history-toggle{font-size:0}.change-history-item[open] .change-history-toggle:after{content:'閉じる';font-size:13px}.change-history-body{padding:0 16px 18px;border-top:1px solid #e4ecea}.change-history-body h3{margin:16px 0 10px}.change-stay-list{display:grid;gap:8px}.change-stay-list>div{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:10px;padding:12px;border-radius:10px;background:#f3f8f6}.change-history-meta{margin:14px 0 0}.change-history-meta>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid #e4ecea}.change-history-meta dt{color:#6a7f7b;font-weight:700}.change-history-meta dd{margin:0;font-weight:700}@media(max-width:640px){.change-history-item summary{grid-template-columns:1fr auto}.change-history-toggle{grid-column:1/-1}.change-stay-list>div,.change-history-meta>div{grid-template-columns:1fr;gap:4px}}
.restriction{display:flex;gap:16px;padding:16px;border:1px solid var(--line);border-radius:12px}.restriction legend{font-size:12px;font-weight:750}.restriction label{display:flex;align-items:center;gap:7px}.restriction input{width:18px;min-height:18px}.restriction span{margin:0!important}
.change-form{display:block}.change-row{display:grid;grid-template-columns:1.1fr 1.4fr .8fr .8fr auto;gap:10px;align-items:end;margin-bottom:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fafcfb}.change-row label span,.change-message span{display:block;margin-bottom:6px;font-size:11px;font-weight:800}.remove-change-row,.secondary-action{min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:white;color:#9a4636;font-weight:800;cursor:pointer}.secondary-action{margin:4px 0 18px;color:var(--sea)}.change-message{display:block;margin:6px 0 18px}
@media(max-width:650px){.account-form{grid-template-columns:1fr}.wide{grid-column:auto}.reservation-history,.night-detail,.reservation-detail,.change-row{grid-template-columns:1fr;gap:4px}.profile-card-heading{display:block}.profile-card-heading .reservation-count{margin:-10px 0 18px}.access-code-card{padding:20px 15px}.access-code-grid{grid-template-columns:1fr}}

/* Smartphone layout */
@media(max-width:650px){body{overflow-x:hidden}.account-shell,.account-shell.narrow{width:100%;padding:max(20px,env(safe-area-inset-top)) 12px calc(56px + env(safe-area-inset-bottom))}.profile-nav{justify-content:flex-start;gap:8px;margin:0 -2px 18px;padding:0 2px 8px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.profile-nav::-webkit-scrollbar{display:none}.profile-nav a,.profile-nav button{display:inline-flex;align-items:center;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.78);font-size:13px}.profile-nav button{color:var(--sea)}h1{font-size:clamp(34px,12vw,48px);overflow-wrap:anywhere}.eyebrow{margin-top:20px}.account-form,.profile-card{grid-template-columns:1fr;margin-top:18px;padding:20px 15px;border-radius:17px}.wide{grid-column:auto}.reservation-history,.night-detail,.reservation-detail,.change-row{grid-template-columns:1fr;gap:7px}.reservation-history{position:relative;margin:0!important;padding:16px 4px 18px!important;border-width:0 0 1px!important;border-radius:0!important;box-shadow:none!important}.reservation-history>strong{padding-right:4px;font-size:15px}.reservation-history>span{line-height:1.55}.reservation-history>.list-status{justify-self:start}.reservation-history>b{display:block;min-height:44px;margin-top:4px;padding:12px 14px;border-radius:9px;background:#e6f4f1;text-align:center}.reservation-history.payment-required-row,.reservation-history.checkin-ready-row{margin:10px 0!important;padding:17px 14px!important;border-width:2px!important;border-radius:13px!important}.profile-card-heading{display:block}.profile-card-heading .reservation-count{margin:-10px 0 18px}.profile-card-heading>a{display:block;min-height:44px;margin-bottom:14px;padding:11px;border-radius:9px;background:#e7f4f1;text-align:center}.payment-action,.change-action{display:flex;justify-content:center;width:100%;min-height:50px;margin:10px 0 0;padding:14px;text-align:center}.change-action{margin-left:0}.status-hero{padding:18px}.status-hero strong{font-size:clamp(28px,10vw,40px)}.detail-row{padding:14px}.access-code-card{padding:20px 15px}.access-code-grid{grid-template-columns:1fr}.account-form button,.cancel-reservation-button,.access-code-save{width:100%;min-height:52px}input,select,textarea{font-size:16px}.restriction{align-items:flex-start;flex-direction:column}.cancellation-quote strong{font-size:20px;overflow-wrap:anywhere}}
@media(max-width:650px){.urgent-reservation-panel{margin-top:12px;padding:17px 13px}.urgent-reservation-card{grid-template-columns:1fr;padding:14px}.urgent-reservation-card>span,.urgent-reservation-card>strong,.urgent-reservation-card>small,.urgent-reservation-card>b{grid-column:1;grid-row:auto}.urgent-reservation-card>b{display:flex;justify-content:center;min-height:44px;padding:12px;border-radius:9px;background:rgba(255,255,255,.8)}.past-reservations-more>summary{min-height:48px;padding:14px;border-radius:10px;background:#edf5f2;font-weight:900;cursor:pointer}.access-code-card,.access-code-grid,.access-code-grid article{max-width:100%;overflow:hidden}.access-code-grid article strong{max-width:100%;overflow-wrap:anywhere}}
@media(max-width:650px){.profile-card .reservation-history{margin:10px 0!important;padding:15px 14px!important;border:1px solid var(--line)!important;border-radius:13px!important;background:#fff!important;box-shadow:0 7px 18px rgba(20,50,46,.07)!important}.profile-card .reservation-history.payment-required-row{border-width:2px!important;border-color:#d98700!important;background:#fff5d9!important}.profile-card .reservation-history.checkin-ready-row{border-width:2px!important;border-color:#158b80!important;background:#e4f8f3!important}}
