:root {
  color-scheme: light;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Helvetica Neue", sans-serif;
  background: #f7f8fa;
  color: #18202b;
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 80% 0%, #e7f0ff 0, transparent 32rem), #f7f8fa; }
button, textarea, input { font: inherit; }
button { cursor: pointer; }
.app-shell { width: min(100% - 32px, 880px); min-height: 100vh; margin: 0 auto; padding: 28px 0 44px; }
.topbar { display: flex; align-items: center; gap: 12px; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: white; background: #2d6cdf; font-size: 27px; line-height: 1; box-shadow: 0 7px 18px #2d6cdf33; }
.eyebrow { margin: 0 0 4px; color: #7c8795; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
h1, h2, p { margin: 0; }
h1 { font-size: 17px; letter-spacing: -.01em; }
.icon-button, .close-button { margin-left: auto; border: 0; background: transparent; color: #748092; font-size: 20px; }
.hero-intro { padding: clamp(62px, 10vw, 100px) 3px 42px; }
.date-label { color: #738092; font-size: 13px; font-weight: 650; }
.hero-intro h2 { margin-top: 14px; font-size: clamp(38px, 7vw, 66px); line-height: 1.06; letter-spacing: -.04em; }
.hero-intro h2 span { color: #2d6cdf; }
.intro-copy { max-width: 460px; margin-top: 18px; color: #718092; font-size: 15px; line-height: 1.7; }
.chat-panel { overflow: hidden; min-height: 470px; display: flex; flex-direction: column; border: 1px solid #e3e8ef; border-radius: 24px; background: #ffffffaa; box-shadow: 0 18px 60px #24395b0d; backdrop-filter: blur(18px); }
.messages { flex: 1; padding: 22px 18px 8px; }
.message { display: flex; margin: 0 0 14px; animation: rise .28s ease both; }
.message.user { justify-content: flex-end; }
.bubble { max-width: min(78%, 540px); padding: 12px 15px; border-radius: 17px; color: #283241; background: #f0f3f7; font-size: 15px; line-height: 1.55; }
.user .bubble { color: white; background: #2d6cdf; border-bottom-right-radius: 5px; }
.assistant .bubble { border-bottom-left-radius: 5px; }
.typing { padding: 0 18px 12px; color: #8090a0; font-size: 12px; }
.typing span { display: inline-block; width: 5px; height: 5px; margin-right: 3px; border-radius: 50%; background: #2d6cdf; animation: pulse 1s infinite; }
.typing span:nth-child(2) { animation-delay: .15s; }.typing span:nth-child(3) { animation-delay: .3s; }
.composer-wrap { padding: 10px 14px 14px; border-top: 1px solid #edf0f4; background: #ffffff8c; }
.suggestions { display: flex; gap: 8px; overflow-x: auto; padding: 0 2px 10px; scrollbar-width: none; }
.suggestions button { flex: 0 0 auto; padding: 7px 11px; border: 1px solid #e0e6ed; border-radius: 20px; color: #5d6d7f; background: white; font-size: 12px; }
.suggestions button:active, .send-button:active, .primary:active { transform: scale(.97); }
.composer { display: flex; align-items: end; gap: 9px; }
#input { width: 100%; resize: none; min-height: 44px; max-height: 120px; padding: 12px 14px; border: 1px solid #dfe5ec; border-radius: 15px; outline: none; color: #1d2734; background: #f8fafc; line-height: 1.4; }
#input:focus { border-color: #7da5ee; box-shadow: 0 0 0 3px #2d6cdf17; }
.attach-button { flex: 0 0 40px; width: 40px; height: 40px; margin-bottom: 2px; border: 1px solid #dfe5ec; border-radius: 12px; color: #607083; background: white; font-size: 23px; line-height: 1; }.attach-button:active { transform: scale(.97); }.send-button { flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 14px; color: white; background: #2d6cdf; font-size: 25px; line-height: 1; box-shadow: 0 7px 16px #2d6cdf33; }
.upload-status { margin-top: 8px; color: #708096; font-size: 11px; text-align: center; }
.event-card { margin-top: 10px; padding: 17px; border: 1px solid #dbe5f5; border-radius: 18px; background: #f8fbff; box-shadow: 0 8px 20px #2d6cdf0c; }
.event-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.event-title { margin-bottom: 13px; font-size: 17px; font-weight: 700; }.edit-hint { margin-bottom: 13px; color: #7d9bd0; font-size: 11px; }
.event-field { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid #e6edf6; font-size: 13px; }.event-field > span { color: #8492a2; font-weight: 600; }.event-field input, .event-field textarea, .event-field select { min-width: 0; width: 100%; padding: 8px 9px; border: 1px solid #dbe4ef; border-radius: 9px; outline: 0; color: #303d4d; background: white; font-size: 13px; }.event-field textarea { min-height: 54px; resize: vertical; line-height: 1.45; }.event-field input:focus, .event-field textarea:focus, .event-field select:focus { border-color: #7da5ee; box-shadow: 0 0 0 3px #2d6cdf14; }.custom-calendar-input { grid-column: 2; }.event-field input[type="datetime-local"] { color-scheme: light; }
.toggle-control { display: flex; align-items: center; gap: 8px; color: #52657b; font-weight: 500 !important; }.toggle-control input { width: 17px; height: 17px; accent-color: #2d6cdf; }.toggle-control em { color: #52657b; font-size: 13px; font-style: normal; }
.event-row { display: flex; gap: 12px; padding: 7px 0; border-top: 1px solid #e6edf6; font-size: 13px; line-height: 1.45; }
.event-row strong { flex: 0 0 38px; color: #8492a2; font-weight: 600; }.event-row span { color: #303d4d; }
.event-actions { display: flex; gap: 8px; margin-top: 14px; }.event-actions button, .dialog-actions button { padding: 9px 14px; border-radius: 11px; font-weight: 650; }
.event-stack { display: grid; gap: 10px; margin-top: 10px; }.event-stack .event-card { margin-top: 0; }
.batch-card { margin-top: 10px; padding: 12px; border: 1px solid #dbe5f5; border-radius: 16px; background: #f8fbff; }.batch-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 3px 2px 10px; }.batch-heading strong { display: block; font-size: 14px; }.batch-heading span { display: block; margin-top: 3px; color: #7c8da5; font-size: 11px; }.batch-selection { display: flex; flex: 0 0 auto; gap: 5px; }.batch-selection button { padding: 6px 8px; border-radius: 8px; font-size: 11px; }.batch-list { display: grid; gap: 6px; }.compact-event { margin: 0; padding: 10px 11px; border-color: #e3ebf5; border-radius: 12px; background: white; box-shadow: none; }.compact-event .event-heading { cursor: default; }.compact-event .event-title { margin-bottom: 8px; font-size: 14px; }.compact-event .edit-hint { margin-bottom: 8px; }.compact-event .event-field { padding: 5px 0; font-size: 12px; }.compact-event .event-field input, .compact-event .event-field textarea, .compact-event .event-field select { padding: 6px 7px; font-size: 12px; }.batch-item-select { flex: 0 0 17px; width: 17px !important; height: 17px; accent-color: #2d6cdf; }.batch-actions { display: flex; justify-content: flex-end; margin-top: 10px; }.batch-actions button { width: 100%; }.batch-actions button:disabled { cursor: not-allowed; opacity: .45; }
.secondary { border: 1px solid #d9e0e8; color: #617083; background: white; }.primary { border: 0; color: white; background: #2d6cdf; }
dialog { width: min(calc(100% - 32px), 430px); padding: 0; border: 0; border-radius: 22px; box-shadow: 0 25px 80px #1e304233; }.settings-card { padding: 23px; }.dialog-heading { display: flex; align-items: start; margin-bottom: 22px; }.dialog-heading h2 { font-size: 22px; }.close-button { font-size: 27px; line-height: .8; }.settings-card label { display: block; margin-bottom: 8px; color: #607083; font-size: 13px; font-weight: 650; }.settings-card input { width: 100%; padding: 12px; border: 1px solid #dfe5ec; border-radius: 11px; outline: 0; }.form-note { margin-top: 10px; color: #84909d; font-size: 12px; line-height: 1.55; }.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }dialog::backdrop { background: #17243855; backdrop-filter: blur(4px); }
@keyframes rise { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } } @keyframes pulse { 0%, 100% { opacity: .35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } }
@media (max-width: 560px) { .app-shell { width: min(100% - 20px, 880px); padding-top: 18px; }.hero-intro { padding-top: 48px; padding-bottom: 30px; }.chat-panel { min-height: calc(100vh - 300px); border-radius: 20px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
