:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-shadow: rgba(37, 99, 235, .18);--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-muted: #475569;--text-faint: #94a3b8;--next-bg: #f1f5f9;--note-bg: #fef3c7;--note-fg: #78350f}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}#root{min-height:100dvh}.app{max-width:640px;margin:0 auto;padding:16px 16px 96px}.state{padding:32px 16px;text-align:center;color:var(--text-muted)}.state-error{color:#dc2626}.event-header{position:relative;display:flex;align-items:center;gap:14px;padding:16px 18px;margin:4px 0 8px;background:linear-gradient(135deg,#1e3a8a,#312e81 60%,#4c1d95);color:#fff;border-radius:16px;box-shadow:0 10px 24px #1e3a8a40;overflow:hidden}.event-header:after{content:"";position:absolute;top:-30px;right:-30px;width:120px;height:120px;background:radial-gradient(circle,#ffffff2e,#fff0 70%);pointer-events:none}.event-icon{flex:0 0 auto;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:28px;background:#ffffff24;border:1px solid rgba(255,255,255,.18);border-radius:12px;filter:drop-shadow(0 0 8px rgba(255,255,255,.15))}.event-header-text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.event-title{font-size:20px;font-weight:700;color:#fff;letter-spacing:.01em;line-height:1.3}.event-sub{display:flex;align-items:center;gap:6px;font-size:13px;opacity:.78;margin-top:4px;color:#e0e7ff;font-variant-numeric:tabular-nums}.event-dot{opacity:.6}.event-clock{font-weight:600}.team-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px;padding-bottom:4px}.team-tab{background:var(--next-bg);color:var(--text);border:none;border-radius:9999px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,transform .05s ease}.team-tab:hover{background:#e2e8f0}.team-tab:active{transform:scale(.97)}.team-tab.active{background:#0f172a;color:#fff}.section{margin-top:16px}.section-title{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--text-muted);margin:12px 0 8px;text-transform:uppercase}.program-sub{display:block;font-size:.92em;opacity:.85;margin-top:1px}.schedule-list-container{height:360px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:y mandatory;padding:0 4px;margin-top:8px}.schedule-list-container::-webkit-scrollbar{display:none}.schedule-spacer{height:20px;flex-shrink:0;pointer-events:none}.schedule-item{scroll-snap-align:center;display:flex;justify-content:center;padding:6px 0}.schedule-item .schedule-card{transition:transform .2s ease}.schedule-item.is-centered .schedule-card{transform:scale(1.04)}.schedule-card{position:relative;border-radius:12px;padding:12px 16px;box-sizing:border-box;background:var(--schedule-card-bg);border:var(--schedule-card-border);width:var(--schedule-card-width)}.schedule-card-past{--schedule-card-bg: #f1efe8;--schedule-card-border: .5px solid #d3d1c7;--schedule-card-width: 88%;--schedule-card-time-color: var(--text-muted);--schedule-card-title-color: var(--text-muted)}.schedule-card-upcoming{--schedule-card-bg: #ffffff;--schedule-card-border: .5px solid var(--border);--schedule-card-width: 88%;--schedule-card-time-color: var(--text-muted);--schedule-card-title-color: var(--text-muted)}.schedule-card-now{--schedule-card-bg: #eeedfe;--schedule-card-border: 1.5px solid #7f77dd;--schedule-card-width: 90%;--schedule-card-time-color: #534ab7;--schedule-card-title-color: #3c3489}.schedule-card-time{font-size:13px;color:var(--schedule-card-time-color);font-variant-numeric:tabular-nums}.schedule-card-now .schedule-card-time{font-size:14px}.schedule-card-title{font-size:15px;color:var(--schedule-card-title-color);margin-top:4px;line-height:1.4}.schedule-card-now .schedule-card-title{font-size:18px;font-weight:500}.schedule-card-sub{font-size:13px;color:var(--text-faint);margin-top:4px}.schedule-card-now .schedule-card-sub{color:#7f77dd}.schedule-card-note{font-size:12px;color:var(--text-muted);margin-top:6px;font-style:italic}.schedule-card-badge{position:absolute;top:8px;right:10px;background:#7f77dd;color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:9999px;letter-spacing:.04em}@media (prefers-color-scheme: dark){.schedule-card-past{--schedule-card-bg: #2c2c2a;--schedule-card-border: .5px solid #444441}.schedule-card-now{--schedule-card-bg: #26215c;--schedule-card-border: 1.5px solid #afa9ec;--schedule-card-time-color: #afa9ec;--schedule-card-title-color: #cecbf6}.schedule-card-now .schedule-card-sub{color:#afa9ec}.schedule-card-badge{background:#534ab7}}@media (min-width: 768px){.schedule-list-container{height:auto;overflow-y:visible;scroll-snap-type:none}.schedule-spacer{display:none}.schedule-item .schedule-card,.schedule-item .schedule-card.schedule-card-now{transform:none}}.no-current-banner{background:var(--note-bg);color:var(--note-fg);border:1px solid #fcd34d;border-radius:10px;padding:12px 14px;margin-bottom:12px;font-size:14px;text-align:center;font-weight:600}.main-timeline{background:var(--surface);border-radius:10px;border:1px solid var(--border);overflow:hidden}.main-row{display:flex;align-items:baseline;gap:12px;padding:18px 16px;font-size:14px;line-height:1.55}.main-row+.main-row{border-top:1px solid #f1f5f9}.main-row-marker{flex:0 0 auto;width:16px;text-align:center;font-size:14px;font-weight:700}.main-row-time{flex:0 0 auto;min-width:108px;font-variant-numeric:tabular-nums;font-weight:600}.main-row-program{flex:1 1 auto;min-width:0}.main-row-past{background:#fafafa;color:var(--text-faint)}.main-row-past .main-row-marker{color:#10b981}.main-row-past .main-row-time{color:#94a3b8}.main-row-upcoming{color:var(--text)}.main-row-upcoming .main-row-marker{color:var(--primary);opacity:.5}.main-row-upcoming .main-row-time{color:var(--text-muted)}.chat-fab{position:fixed;right:18px;bottom:max(22px,env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;border:none;font-size:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #2563eb59;cursor:pointer;z-index:1000;transition:transform .15s ease,background .15s ease}.chat-fab:hover{background:var(--primary-dark);transform:scale(1.05)}.chat-fab:active{transform:scale(.96)}.chat-panel{position:fixed;right:18px;bottom:calc(92px + var(--kbd-offset, 0px));width:520px;height:600px;max-width:calc(100vw - 36px);max-height:calc(100dvh - 120px - var(--kbd-offset, 0px));background:#fff;border-radius:14px;box-shadow:0 18px 40px #00000038;border:1px solid var(--border);z-index:999;display:flex;flex-direction:column;overflow:hidden;animation:chat-pop .18s ease-out;transition:bottom .2s ease,max-height .2s ease}@keyframes chat-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-header{background:var(--primary);color:#fff;padding:14px 18px;font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px}.chat-header-icon{font-size:18px}.chat-messages{flex:1 1 auto;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fafafa}.chat-message-group{display:flex;flex-direction:column;gap:4px;max-width:100%}.chat-message-group:has(.chat-bubble-user){align-self:flex-end;align-items:flex-end}.chat-message-group:has(.chat-bubble-assistant){align-self:flex-start;align-items:flex-start}.chat-bubble{width:fit-content;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.55;word-wrap:break-word}.chat-bubble-user{white-space:pre-wrap}.chat-bubble-assistant>:first-child{margin-top:0}.chat-bubble-assistant>:last-child{margin-bottom:0}.chat-bubble-assistant p{margin:6px 0}.chat-bubble-assistant ul,.chat-bubble-assistant ol{margin:6px 0;padding-left:20px}.chat-bubble-assistant li{margin:2px 0}.chat-bubble-assistant code{background:#0000000f;padding:1px 5px;border-radius:4px;font-size:.92em}.chat-bubble-assistant pre{background:#0000000f;padding:8px 10px;border-radius:6px;overflow-x:auto;margin:6px 0}.chat-bubble-assistant pre code{background:transparent;padding:0}.chat-bubble-assistant strong{font-weight:700}.chat-bubble-assistant a{color:var(--primary-dark);text-decoration:underline}.chat-bubble-assistant h1,.chat-bubble-assistant h2,.chat-bubble-assistant h3{margin:8px 0 4px;font-size:1em;font-weight:700}.chat-sources{display:flex;flex-wrap:wrap;gap:4px;max-width:95%}.chat-source-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;background:#fff;border:1px solid var(--border);border-radius:9999px;color:var(--text-muted);white-space:nowrap}.chat-source-title{font-weight:600;color:var(--text);max-width:160px;overflow:hidden;text-overflow:ellipsis}.chat-source-date,.chat-source-team{color:var(--text-faint);font-variant-numeric:tabular-nums}.chat-source-team:before{content:"· ";color:var(--text-faint)}.chat-bubble-assistant{background:var(--note-bg);color:var(--note-fg);align-self:flex-start;border-bottom-left-radius:4px}.chat-bubble-user{background:var(--primary);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.chat-typing{display:inline-flex;gap:4px;padding:10px 12px}.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--note-fg);opacity:.4;animation:chat-dot 1.2s infinite ease-in-out}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chat-input-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);background:#fff}.chat-input-form input{flex:1;padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;outline:none;min-width:0}.chat-input-form input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb26}.chat-input-form button{padding:10px 16px;background:#fff;color:var(--text);border:1px solid #cbd5e1;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.chat-input-form button:hover:not(:disabled){background:#f8fafc}.chat-input-form button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.chat-panel{right:12px;left:12px;width:auto;bottom:calc(86px + var(--kbd-offset, 0px));height:auto;max-height:calc(100dvh - 110px - var(--kbd-offset, 0px))}}
