@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap";:root{--color-bg: #f8f9fa;--color-bg-secondary: #ffffff;--color-surface: #ffffff;--color-text: #333333;--color-text-secondary: rgba(51, 51, 51, .7);--color-text-muted: rgba(51, 51, 51, .4);--color-primary: #e85e15;--color-primary-hover: #d4530f;--color-primary-light: rgba(232, 94, 21, .1);--color-primary-glow: rgba(232, 94, 21, .2);--card-bg: #ffffff;--card-border: rgba(0, 0, 0, .08);--card-shadow: 0 4px 24px rgba(0, 0, 0, .08);--color-success: #22c55e;--color-success-light: rgba(34, 197, 94, .15);--color-error: #ef4444;--color-error-light: rgba(239, 68, 68, .15);--font-jp: "Noto Sans JP", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-xl: 20px;--border-radius-full: 9999px;--transition: .3s cubic-bezier(.25, .8, .25, 1);--transition-fast: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-jp);font-size:var(--font-size-base);line-height:1.8;color:var(--color-text);background:var(--color-bg);min-height:100vh;overflow-x:hidden}.app{max-width:520px;margin:0 auto;padding:var(--spacing-lg);min-height:100vh}.header{text-align:center;padding:var(--spacing-xl) 0}.header__logo{width:80px;height:80px;border-radius:var(--border-radius-full);object-fit:cover;margin-bottom:var(--spacing-md);box-shadow:0 4px 16px #e85e1533}.header__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-sm)}.header__subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius-xl);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--card-shadow)}.card__title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text)}.progress{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.progress__step{width:36px;height:36px;border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:600;background:var(--color-bg);border:2px solid var(--card-border);color:var(--color-text-muted);transition:all var(--transition)}.progress__step--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 0 0 4px var(--color-primary-light);transform:scale(1.1)}.progress__step--completed{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.progress__line{width:48px;height:2px;background:var(--card-border)}.progress__line--completed{background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light))}.calendar{background:transparent;border-radius:var(--border-radius-lg);overflow:hidden}.calendar__header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-primary-light);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-md)}.calendar__nav-btn{background:var(--card-bg);border:1px solid var(--card-border);color:var(--color-text);width:40px;height:40px;border-radius:var(--border-radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.calendar__nav-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:scale(1.05)}.calendar__nav-btn:disabled{opacity:.3;cursor:not-allowed}.calendar__month{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--card-border);margin-bottom:var(--spacing-sm)}.calendar__weekday{text-align:center;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-muted);padding:var(--spacing-xs)}.calendar__weekday--weekend{color:var(--color-primary)}.calendar__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;background:transparent;color:var(--color-text)}.calendar__day:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.calendar__day--empty{cursor:default}.calendar__day--today{font-weight:700;border:2px solid var(--color-primary)!important}.calendar__day--available{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.calendar__day--available:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px var(--color-primary-glow)}.calendar__day--selected{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important;box-shadow:0 4px 16px var(--color-primary-glow)}.calendar__day--unavailable,.calendar__day--past{color:var(--color-text-muted);opacity:.4;cursor:not-allowed}.time-slots{margin-top:var(--spacing-md)}.time-slots__date{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-primary)}.time-slots__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.time-slot{padding:var(--spacing-md);border:2px solid var(--card-border);border-radius:var(--border-radius-md);background:var(--card-bg);cursor:pointer;text-align:center;font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition-fast);color:var(--color-text)}.time-slot:hover{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary);transform:translateY(-2px)}.time-slot--selected{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:0 4px 16px var(--color-primary-glow)}.time-slots__empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form__group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form__label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary)}.form__label--required:after{content:" *";color:var(--color-primary)}.form__input,.form__textarea{padding:var(--spacing-md);border:2px solid var(--card-border);border-radius:var(--border-radius-md);background:var(--card-bg);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);transition:all var(--transition-fast);width:100%}.form__input:focus,.form__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form__input::placeholder,.form__textarea::placeholder{color:var(--color-text-muted)}.form__textarea{min-height:100px;resize:vertical}.form__error{font-size:var(--font-size-xs);color:var(--color-error)}.form__selected-time{background:var(--color-primary-light);border:2px solid var(--color-primary);padding:var(--spacing-md);border-radius:var(--border-radius-md);font-weight:600;color:var(--color-primary);text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);border:2px solid transparent;border-radius:var(--border-radius-md);font-family:inherit;font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition);text-decoration:none}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 8px 24px var(--color-primary-glow)}.btn--secondary{background:var(--card-bg);border-color:var(--card-border);color:var(--color-text)}.btn--secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn--full{width:100%}.btn--lg{padding:var(--spacing-lg) var(--spacing-xl);font-size:var(--font-size-lg)}.btn:disabled{opacity:.5;cursor:not-allowed}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:var(--border-radius-full);animation:spin 1s linear infinite}.confirmation{text-align:center;padding:var(--spacing-xl)}.confirmation__icon{width:88px;height:88px;background:var(--color-success-light);border:2px solid var(--color-success);border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg);box-shadow:0 0 40px #22c55e33}.confirmation__icon svg{width:44px;height:44px;color:var(--color-success)}.confirmation__title{font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-sm);color:var(--color-text)}.confirmation__message{color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);line-height:1.8}.confirmation__details{background:var(--color-bg);border:1px solid var(--card-border);padding:var(--spacing-lg);border-radius:var(--border-radius-lg);text-align:left;margin-bottom:var(--spacing-xl)}.confirmation__detail{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--card-border)}.confirmation__detail:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.confirmation__detail-label{color:var(--color-text-muted);min-width:80px;flex-shrink:0;font-size:var(--font-size-sm)}.confirmation__detail-value{font-weight:500;color:var(--color-text);word-break:break-word;flex:1;min-width:0}.confirmation__meet-link{background:var(--color-primary-light);border:2px solid var(--color-primary);padding:var(--spacing-md);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-lg)}.confirmation__meet-link a{color:var(--color-primary);text-decoration:none;font-weight:600;word-break:break-all}.confirmation__meet-link a:hover{text-decoration:underline}.error-message{background:var(--color-error-light);border:2px solid var(--color-error);color:var(--color-error);padding:var(--spacing-md);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.loading__spinner{width:48px;height:48px;border:3px solid var(--card-border);border-top-color:var(--color-primary);border-radius:var(--border-radius-full);animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.back-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;background:none;border:none;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);transition:color var(--transition-fast)}.back-btn:hover{color:var(--color-primary)}@media (max-width: 520px){.app{padding:var(--spacing-md)}.time-slots__grid{grid-template-columns:repeat(2,1fr)}.header__title{font-size:var(--font-size-xl)}.header__logo{width:64px;height:64px}.calendar__nav-btn{width:36px;height:36px}.progress__step{width:32px;height:32px}.progress__line{width:32px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s cubic-bezier(.25,.8,.25,1) forwards}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-overlay__content{text-align:center}.loading-overlay__spinner{width:48px;height:48px;border:4px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--spacing-md)}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay__text{font-size:var(--font-size-lg);font-weight:500;color:var(--color-text)}.loading-overlay__text .loading-dots{display:inline-block}.loading-overlay__text .loading-dots span{animation:loadingDot 1.4s infinite;opacity:0}.loading-overlay__text .loading-dots span:nth-child(1){animation-delay:0s}.loading-overlay__text .loading-dots span:nth-child(2){animation-delay:.2s}.loading-overlay__text .loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loadingDot{0%,60%,to{opacity:0}30%{opacity:1}}.confirmation__countdown{margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}
