@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;700;900&display=swap";:root{--color-bg: #ffffff;--color-bg-secondary: #f7f7f5;--color-surface: #ffffff;--color-surface-alt: #f7f7f5;--color-text: #222222;--color-text-secondary: #555555;--color-text-muted: #999999;--color-primary: #C41E2A;--color-primary-hover: #a8121d;--color-primary-light: rgba(196, 30, 42, .08);--color-primary-glow: rgba(196, 30, 42, .25);--color-border: #e6e6e3;--color-border-strong: #d4d4d0;--color-success: #1f9d55;--color-success-light: rgba(31, 157, 85, .12);--color-error: #C41E2A;--color-error-light: rgba(196, 30, 42, .08);--font-en: "Inter", sans-serif;--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;--shadow-sm: 0 1px 2px rgba(17, 17, 17, .04);--shadow-card: 0 4px 24px rgba(17, 17, 17, .06);--shadow-card-hover: 0 8px 32px rgba(17, 17, 17, .1);--shadow-primary: 0 6px 20px rgba(196, 30, 42, .25);--transition: .3s cubic-bezier(.25, .8, .25, 1);--transition-fast: .18s 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-secondary);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;right:0;height:4px;background:var(--color-primary);z-index:100;pointer-events:none}.app{position:relative;z-index:1;max-width:540px;margin:0 auto;padding:var(--spacing-lg);min-height:100vh}.header{text-align:center;padding:var(--spacing-xl) 0 var(--spacing-lg)}.header__brand{display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-lg);text-decoration:none}.header__logo{height:40px;width:auto;display:block}.header__title{font-family:var(--font-jp);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:.02em;color:var(--color-text);margin-bottom:var(--spacing-xs)}.header__subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);position:relative;box-shadow:var(--shadow-card)}.card__title{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm);position:relative;z-index:1;color:var(--color-text)}.card__title:before{content:"";width:4px;height:18px;border-radius:var(--border-radius-full);background:var(--color-primary);flex-shrink:0}.progress{display:flex;justify-content: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-family:var(--font-en);font-size:var(--font-size-sm);font-weight:700;background:var(--color-surface);border:1px solid var(--color-border-strong);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:var(--shadow-primary);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(--color-border-strong);align-self:center}.progress__line--completed{background:var(--color-primary)}.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-sm) var(--spacing-md);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-md)}.calendar__nav-btn{background:var(--color-surface);border:1px solid var(--color-border-strong);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:.35;cursor:not-allowed}.calendar__month{font-family:var(--font-en);font-size:var(--font-size-lg);font-weight:700;letter-spacing:.02em;color:var(--color-text)}.calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-sm)}.calendar__weekday{text-align:center;font-family:var(--font-en);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-muted);padding:var(--spacing-xs)}.calendar__weekday--weekend{color:var(--color-text-secondary)}.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-surface-alt);border-color:var(--color-border)}.calendar__day--empty{cursor:default}.calendar__day--today{font-weight:700;border:2px solid var(--color-border-strong)!important}.calendar__day--available{background:var(--color-primary-light);border-color:#c41e2a40;color:var(--color-primary);font-weight:700}.calendar__day--available:hover{border-color:var(--color-primary);background:#c41e2a1f;color:var(--color-primary);transform:translateY(-2px)}.calendar__day--selected{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important;box-shadow:var(--shadow-primary)}.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:700;margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text)}.time-slots__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.time-slot{padding:var(--spacing-md);border:1px solid var(--color-border-strong);border-radius:var(--border-radius-md);background:var(--color-surface);cursor:pointer;text-align:center;font-family:var(--font-en);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:var(--shadow-primary)}.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:600;color:var(--color-text-secondary)}.form__label--required:after{content:" *";color:var(--color-primary)}.form__input,.form__textarea{padding:var(--spacing-md);border:1px solid var(--color-border-strong);border-radius:var(--border-radius-md);background:var(--color-surface);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);background:var(--color-surface);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:1px solid rgba(196,30,42,.2);padding:var(--spacing-md);border-radius:var(--border-radius-md);font-weight:600;color:var(--color-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);border:1px solid transparent;border-radius:var(--border-radius-md);font-family:inherit;font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:all var(--transition);text-decoration:none;position:relative;overflow:hidden}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-primary)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-alt);border-color:var(--color-text-muted)}.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,.4);border-top-color:#fff;border-radius:var(--border-radius-full);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.confirmation{text-align:center;padding:var(--spacing-xl)}.confirmation__icon{width:88px;height:88px;background:var(--color-success-light);border:1px solid rgba(31,157,85,.3);border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg)}.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-surface-alt);border:1px solid var(--color-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(--color-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:600;color:var(--color-text);word-break:break-word;overflow-wrap:break-word;flex:1;min-width:0}.confirmation__meet-link{background:var(--color-primary-light);border:1px solid rgba(196,30,42,.2);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:700;word-break:break-all}.confirmation__meet-link a:hover{text-decoration:underline}.error-message{background:var(--color-error-light);border:1px solid rgba(196,30,42,.3);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(--color-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)}.app-footer{text-align:center;padding:var(--spacing-xl) 0 var(--spacing-lg);color:var(--color-text-muted);font-size:var(--font-size-xs)}.app-footer a{color:var(--color-text-secondary);text-decoration:none}.app-footer a:hover{color:var(--color-primary)}@media (max-width: 540px){.app{padding:var(--spacing-md)}.time-slots__grid{grid-template-columns:repeat(2,1fr)}.header__title{font-size:var(--font-size-xl)}.header__logo{height:34px}.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}
