:root{--fg:#1a1a1a;--muted:#666;--border:#ddd;--bg-soft:#f6f6f4;--accent:#1a1a1a;--danger:#b00020}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.8;color:var(--fg);background:#fff}main{max-width:640px;margin:0 auto;padding:40px 20px 80px}h1{font-size:1.35rem;font-weight:700;letter-spacing:.02em;margin:24px 0 20px}.title-line{display:inline-block;white-space:nowrap}a{color:inherit}h2{font-size:1rem;font-weight:700;margin:24px 0 8px}p{white-space:pre-wrap}p,ul{margin:0 0 12px}ul{padding-left:1.4em}.list-line,.logo{display:block}.logo{height:24px;width:auto;color:var(--fg)}.user-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;margin:24px 0;background:var(--bg-soft);border-radius:8px;font-size:.95rem}.user-bar strong{font-weight:600}.link-button{background:none;border:none;padding:0;color:var(--muted);text-decoration:underline;cursor:pointer;font-size:.85rem}.pref{border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:12px}.pref-title{font-weight:700;margin-bottom:8px}.pref-title small{font-weight:400;color:var(--muted);margin-left:8px}.pref-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:480px){.pref-fields{grid-template-columns:1fr}}.field label{display:block;margin-bottom:4px}.field label,.stay-summary{font-size:.85rem;color:var(--muted)}.stay-summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:12px 0}.stay-summary .link-button{flex:none;white-space:nowrap}.stay-summary .pref-nights{margin:0 0 0 8px;display:inline}.calendar .rdp-root{--rdp-accent-color:var(--fg);--rdp-accent-background-color:#ececea;--rdp-today-color:var(--fg);--rdp-selected-border:1px solid var(--fg);--rdp-range_start-color:#fff;--rdp-range_end-color:#fff;--rdp-range_middle-color:var(--fg);--rdp-day-height:40px;--rdp-day-width:40px;--rdp-day_button-height:38px;--rdp-day_button-width:38px;font-size:.95rem}.calendar .rdp-months{max-width:none}.calendar .rdp-month{width:100%}.calendar .rdp-month_grid{width:100%;table-layout:fixed}.calendar .rdp-day{width:auto}.calendar .rdp-day_button{width:min(100%,var(--rdp-day_button-width));margin-inline:auto}.calendar .rdp-selected{font-weight:600;font-size:inherit}.calendar .rdp-month_caption{font-weight:400;font-size:.9rem;color:var(--fg)}.rdp-day_button{position:relative}.calendar-legend .dot,.rdp-high-season .rdp-day_button:before{width:4px;height:4px;border-radius:50%;background:currentColor}.rdp-high-season .rdp-day_button:before{content:"";position:absolute;top:5px;left:50%;transform:translateX(-50%)}.calendar-legend .dot{color:var(--fg)}.calendar-legend{display:flex;justify-content:flex-end;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);margin-top:4px}.guests,.house-groups{margin-top:16px;padding-top:12px;border-top:1px dashed var(--border)}.field-note{font-size:.85rem;line-height:1.6;color:var(--muted);margin:0 0 10px;white-space:normal}ul.field-note{padding-left:1.2em}ul.field-note li{margin-bottom:2px}.house-group-options{display:flex;flex-direction:column}.house-group{display:flex;align-items:center;gap:14px;padding:12px 4px;cursor:pointer}.house-group-image{flex:none;width:72px;height:72px;object-fit:cover;border-radius:6px;background:var(--bg-soft)}.house-group-body{flex:1 1;min-width:0}.house-group-name{display:flex;align-items:center;gap:6px;line-height:1.4}.house-group-icon{flex:none;width:1.05em;height:1.05em}.house-group-capacity{display:block;font-size:.85rem;color:var(--muted);line-height:1.6}.house-group input{flex:none;width:22px;height:22px;accent-color:var(--accent);margin:0}.guests-undecided{display:flex;align-items:center;gap:6px;margin-bottom:12px;cursor:pointer}.guests-undecided input{width:22px;height:22px;accent-color:var(--accent);margin:0}.guests-fields{border:none;padding:0;margin:0;min-width:0}.guests-fields:disabled{opacity:.5}.guests-group+.guests-group{margin-top:12px}.guests-group-title{font-size:.9rem;font-weight:700;margin-bottom:6px}.child-ages{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:12px;gap:12px;margin-top:12px}.field input,.field select{width:100%;font-size:16px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--fg)}.pref-nights{font-size:.85rem;color:var(--muted);margin-top:8px}.actions{display:flex;gap:12px;margin-top:24px}.btn{flex:1 1;padding:12px 20px;font-size:1rem;border-radius:8px;border:1px solid var(--accent);cursor:pointer}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:#fff;color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.error{color:var(--danger);margin:12px 0}.summary{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin:16px 0}.previous-application{background:var(--bg-soft);border-radius:8px;padding:16px;margin:20px 0}.previous-application h2{margin-top:0}.previous-application .summary{background:#fff}.previous-application-note{font-size:.85rem;line-height:1.6;color:var(--muted);margin:0}.summary-row{display:grid;grid-template-columns:6em 1fr;grid-gap:12px;gap:12px;padding:12px 16px;border-top:1px solid var(--border)}.summary-row:first-child{border-top:none}.summary-row dt{color:var(--muted);font-size:.85rem}.summary-row dd{margin:0}.confirm-note{font-size:.85rem;color:var(--muted);white-space:normal}.signin{border:1px solid var(--border);border-radius:8px;padding:16px;margin-top:24px}.signin-buttons{display:flex;flex-direction:column;gap:12px;margin-top:16px}.signin-buttons .btn{flex:none;width:100%}.spinner-area{display:flex;justify-content:center;padding:48px 0;animation:fade-in .2s ease-in-out}.spinner-area.is-out{animation:fade-out .2s ease-in-out forwards}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.spinner{display:block;width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--muted);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner,.spinner-area,.spinner-area.is-out{animation:none}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.notice-contact{margin-top:20px}.acceptance-period{line-height:1.6}.acceptance-period,.page-footer{font-size:.85rem;color:var(--muted)}.page-footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--border);text-align:center}.page-footer p{margin:0;line-height:1.6}