:root{color:#172a2d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#172a2d;--muted:#6d7e7d;--line:#dfe8e5;--surface:#fff;--soft:#edf5f2;--brand:#1c7d71;--brand-dark:#0f4f4b;--brand-deep:#123b3c;--accent:#a8dfce;--danger:#ad3b3b;--shadow:0 20px 50px #173c391a;background:#f4f7f6;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100dvh;overflow:hidden}button,textarea,select,input{font:inherit}button{color:inherit}.app-bootstrap{min-height:100dvh;color:var(--muted);background:var(--soft);place-content:center;justify-items:center;gap:16px;display:grid}.app-bootstrap__mark{width:52px;height:52px;color:var(--brand-deep);background:var(--accent);border-radius:16px 16px 16px 5px;place-items:center;font-size:1.15rem;font-weight:700;animation:1.5s ease-in-out infinite pulse;display:grid}.configuration-warning{color:#6f5415;text-align:center;background:#fff5d6;border:1px solid #f0d990;border-radius:10px;width:min(100% - 40px,760px);margin:14px auto 0;padding:10px 14px;font-size:.82rem}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(.94)}}button:focus-visible,textarea:focus-visible,select:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #31a89347}.app-shell{background:radial-gradient(circle at 90% 5%,#bee5d740,#0000 26%),#f4f7f6;grid-template-columns:284px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{z-index:30;color:#ecf7f4;background:linear-gradient(165deg, #ffffff0e, transparent 34%), var(--brand-deep);border-right:1px solid #ffffff14;flex-direction:column;min-height:100dvh;padding:24px 18px 18px;display:flex;position:relative}.sidebar__brand{align-items:center;gap:12px;padding:2px 7px 24px;display:flex}.brand-mark,.chat-empty__mark{width:38px;height:38px;color:var(--brand-deep);background:var(--accent);border-radius:12px 12px 12px 4px;flex:none;place-items:center;font-family:Manrope,sans-serif;font-weight:700;display:grid}.sidebar__brand div{flex-direction:column;min-width:0;display:flex}.sidebar__brand strong{font-family:Manrope,sans-serif;font-size:.94rem}.sidebar__brand small{color:#9dbab5;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.7rem;overflow:hidden}.sidebar__close{color:#dceae7;cursor:pointer;background:0 0;border:0;border-radius:10px;width:36px;height:36px;margin-left:auto;font-size:1.5rem;display:none}.new-conversation{color:#f6fffc;text-align:left;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:10px;width:100%;padding:12px 14px;font-weight:600;transition:background .16s,border-color .16s;display:flex}.new-conversation:hover{background:#ffffff21;border-color:#fff3}.new-conversation span{color:var(--accent);font-size:1.1rem}.sidebar__history{flex:1;margin-top:28px;overflow-y:auto}.sidebar__history h2{color:#86a7a1;letter-spacing:.12em;text-transform:uppercase;margin:0 10px 10px;font-size:.68rem;font-weight:700}.sidebar__history p{color:#789994;margin:14px 10px;font-size:.78rem;line-height:1.5}.conversation-item{color:#e1efec;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:11px 12px;display:flex}.conversation-item--active{background:#a8dfce1a}.conversation-item span:last-child{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.language-selector{color:#9dbab5;justify-content:space-between;align-items:center;gap:12px;padding:14px 10px 2px;font-size:.78rem;display:flex}.language-selector select{color:#edf7f4;background:#194849;border:1px solid #ffffff21;border-radius:8px;max-width:112px;padding:6px 8px}.sidebar__footer{border-top:1px solid #ffffff14;padding-top:8px}.account-summary{align-items:center;gap:9px;margin-top:10px;padding:10px 8px 2px;display:flex}.account-summary__avatar{width:32px;height:32px;color:var(--brand-deep);background:var(--accent);border-radius:10px;flex:none;place-items:center;font-size:.7rem;font-weight:700;display:grid}.account-summary__identity{flex-direction:column;flex:1;min-width:0;display:flex}.account-summary__identity strong,.account-summary__identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-summary__identity strong{color:#edf7f4;font-size:.76rem}.account-summary__identity small{color:#8fada8;margin-top:2px;font-size:.64rem}.account-summary button{color:#a9c1bd;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:none;width:32px;height:32px}.account-summary button:hover:not(:disabled){color:#fff;background:#ffffff17}.login-page{background:radial-gradient(circle at 15% 10%,#a8dfce61,#0000 31%),radial-gradient(circle at 85% 90%,#1c7d7126,#0000 34%),#f2f7f5;place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffed;border:1px solid #cce0dae6;border-radius:24px;width:min(100%,430px);padding:38px;box-shadow:0 28px 70px #14443e21}.login-brand{color:#fff;background:linear-gradient(145deg, var(--brand), var(--brand-dark));border-radius:16px 16px 16px 5px;place-items:center;width:52px;height:52px;font-size:1.18rem;font-weight:700;display:grid}.login-eyebrow{color:var(--brand);letter-spacing:.1em;text-transform:uppercase;margin:22px 0 5px;font-size:.72rem;font-weight:700}.login-card h1{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:clamp(1.7rem,5vw,2.15rem)}.login-description{color:var(--muted);margin:10px 0 27px;line-height:1.55}.login-form{gap:18px;display:grid}.login-form label>span{color:#405653;margin-bottom:7px;font-size:.78rem;font-weight:650;display:block}.login-form input{width:100%;height:47px;color:var(--ink);background:#fbfdfc;border:1px solid #cfddd9;border-radius:11px;padding:0 13px}.password-field{position:relative}.password-field input{padding-right:80px}.password-field button{height:35px;color:var(--brand-dark);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 9px;font-size:.72rem;position:absolute;top:6px;right:6px}.login-submit{color:#fff;background:var(--brand);cursor:pointer;border:0;border-radius:12px;height:48px;margin-top:2px;font-weight:700}.login-submit:hover:not(:disabled){background:var(--brand-dark)}.login-submit:disabled{opacity:.68;cursor:wait}.login-error{color:#853d3d;background:#fff0ef;border:1px solid #f0d1ce;border-radius:9px;margin:-4px 0 0;padding:10px 12px;font-size:.78rem}.auth-unavailable button{color:#fff;background:var(--brand);cursor:pointer;border:0;border-radius:9px;padding:9px 15px}.sidebar-overlay{display:none}.chat-main{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;height:100dvh;display:grid}.chat-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe0;align-items:center;min-height:72px;padding:13px 28px;display:flex}.chat-header>div{flex-direction:column;gap:2px;display:flex}.chat-header strong{font-family:Manrope,sans-serif;font-size:.93rem}.connection-status{color:var(--muted);align-items:center;gap:6px;font-size:.72rem;display:flex}.connection-status i{background:#36a88a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #36a88a21}.menu-button{cursor:pointer;background:0 0;border:0;border-radius:10px;width:40px;height:40px;margin-right:10px;padding:10px;display:none}.menu-button span{background:var(--ink);border-radius:2px;width:19px;height:2px;margin:4px 0;display:block}.chat-content{overscroll-behavior:contain;min-height:0;position:relative;overflow-y:auto}.chat-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(680px,100% - 40px);min-height:100%;margin:0 auto;padding:64px 0 48px;display:flex}.chat-empty__mark{color:#fff;background:linear-gradient(145deg,#2a9987,#176c63);border-radius:18px 18px 18px 6px;width:58px;height:58px;margin-bottom:20px;font-size:1.35rem;box-shadow:0 12px 30px #1c7d7133}.chat-empty h1{color:var(--ink);letter-spacing:-.04em;margin:0;font-family:Manrope,sans-serif;font-size:clamp(1.6rem,4vw,2.25rem)}.chat-empty>p{max-width:480px;color:var(--muted);margin:10px 0 28px;line-height:1.6}.chat-suggestions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,570px);display:grid}.chat-suggestions button{color:#385553;text-align:left;border:1px solid var(--line);cursor:pointer;background:#ffffffd1;border-radius:13px;padding:14px 17px;font-size:.85rem;transition:transform .16s,border-color .16s,box-shadow .16s;box-shadow:0 5px 18px #1a45400a}.chat-suggestions button:hover{border-color:#aad3c7;transform:translateY(-1px);box-shadow:0 8px 22px #1a454014}.chat-history{width:min(100%,900px);min-height:100%;margin:0 auto;padding:34px 34px 28px}.message{align-items:flex-start;gap:13px;margin-bottom:28px;animation:.18s ease-out both message-in;display:flex}.message--user{flex-direction:row-reverse}.message__avatar{color:#fff;letter-spacing:.03em;background:var(--brand);border-radius:11px 11px 11px 4px;flex:none;place-items:center;width:34px;height:34px;margin-top:20px;font-size:.63rem;font-weight:700;display:grid}.message--user .message__avatar{color:var(--brand-dark);background:#cce9e0;border-radius:11px 11px 4px}.message__body{flex-direction:column;align-items:flex-start;max-width:min(760px,100% - 52px);display:flex}.message--user .message__body{align-items:flex-end}.message__author{color:#6e807e;margin:0 4px 6px;font-size:.7rem;font-weight:600}.message__content{color:#223736;background:var(--surface);border:1px solid var(--line);border-radius:4px 16px 16px;min-width:120px;padding:14px 17px;box-shadow:0 6px 22px #153f3b0b}.message--user .message__content{color:#153b38;background:#dff1eb;border-color:#c7e6dd;border-radius:16px 4px 16px 16px}.message__content>p{white-space:pre-wrap;margin:0;line-height:1.6}.message__failed{color:var(--danger);margin-top:5px}.thinking-indicator{border:1px solid var(--line);background:#fff;border-radius:4px 16px 16px;align-items:center;gap:5px;min-width:72px;padding:15px 18px;display:flex}.thinking-indicator>span:not(.sr-only){background:#79aaa0;border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite thinking}.thinking-indicator>span:nth-child(2){animation-delay:.12s}.thinking-indicator>span:nth-child(3){animation-delay:.24s}.chat-error{color:#762e2e;background:#fff1f0;border:1px solid #f1cac6;border-radius:12px;flex-direction:column;width:min(620px,100% - 32px);margin:12px auto;padding:12px 15px;font-size:.82rem;display:flex;position:sticky;bottom:8px}.chat-error span{color:#985252;margin-top:2px}.composer-area{background:linear-gradient(#f4f7f600,#f4f7f6 30%);padding:12px 24px 18px}.chat-composer{width:min(100%,820px);margin:0 auto}.chat-composer__box{box-shadow:var(--shadow);background:#fff;border:1px solid #d7e3df;border-radius:18px;align-items:flex-end;gap:12px;padding:10px 10px 10px 17px;transition:border-color .16s,box-shadow .16s;display:flex}.chat-composer__box:focus-within{border-color:#84bdb0;box-shadow:0 18px 48px #17585021}.chat-composer textarea{min-height:26px;max-height:150px;color:var(--ink);resize:none;background:0 0;border:0;outline:0;flex:1;padding:7px 0;line-height:1.45}.chat-composer textarea::placeholder{color:#91a09f}.chat-composer__send{color:#fff;background:var(--brand);cursor:pointer;border:0;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;transition:background .16s,transform .16s;display:grid}.chat-composer__send:hover:not(:disabled){background:#12685f;transform:translateY(-1px)}.chat-composer__send:disabled{color:#aebdba;cursor:not-allowed;background:#e4ebe9}.chat-composer__send svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px}.chat-composer>small{color:#899895;text-align:center;margin-top:7px;font-size:.66rem;display:block}.ui-renderer{gap:12px;margin-top:13px;display:grid}.ui-text-block{white-space:pre-wrap;margin:0;line-height:1.6}.ui-text-block--muted{color:var(--muted)}.ui-text-block--notice{color:#235b54;background:var(--soft);border-left:3px solid var(--brand);border-radius:7px;padding:10px 12px}.ui-renderer__fallback{color:var(--muted);font-size:.85rem}.appointment-calendar{background:#fbfdfc;border:1px solid #dce7e4;border-radius:16px;width:min(760px,72vw);overflow:hidden;box-shadow:0 10px 28px #1847420f}.appointment-calendar__header{justify-content:space-between;align-items:center;gap:18px;padding:15px 16px 12px;display:flex}.appointment-calendar__header h3{color:var(--ink);margin:0 0 3px;font-family:Manrope,sans-serif;font-size:.92rem}.appointment-calendar__range{color:#526a67;text-transform:capitalize;font-size:.78rem;font-weight:600}.calendar-view-selector{background:#edf3f1;border-radius:10px;flex:none;padding:3px;display:flex}.calendar-view-selector button{color:#607572;cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:31px;padding:0 10px;font-size:.7rem;font-weight:650}.calendar-view-selector button.is-active{color:var(--brand-dark);background:#fff;box-shadow:0 2px 8px #1847421a}.appointment-calendar__navigation{justify-content:space-between;align-items:center;padding:0 16px 11px;display:flex}.calendar-navigation-buttons{gap:5px;display:flex}.calendar-navigation-buttons button,.calendar-today{color:#42605c;cursor:pointer;background:#fff;border:1px solid #d7e3df;border-radius:8px;height:31px}.calendar-navigation-buttons button{width:34px;padding:0;font-size:1.25rem;line-height:1}.calendar-today{padding:0 11px;font-size:.7rem;font-weight:650}.calendar-navigation-buttons button:hover,.calendar-today:hover{color:var(--brand-dark);border-color:#9ec9be}.calendar-grid-scroll{border-top:1px solid #e1e9e7;overflow-x:auto}.calendar-grid{background:#e3ebe9;grid-template-columns:repeat(7,minmax(88px,1fr));gap:1px;min-width:660px;display:grid}.calendar-grid__weekday{color:#70827f;text-align:center;text-transform:uppercase;background:#f4f8f6;padding:8px 5px;font-size:.62rem;font-weight:700}.calendar-grid__day{background:#fff;min-width:0;min-height:102px;padding:6px}.calendar-grid--week .calendar-grid__day{min-height:180px}.calendar-grid__day.is-outside{background:#f7f9f8}.calendar-grid__day.is-outside .calendar-grid__date,.calendar-grid__day.is-outside .calendar-event{opacity:.5}.calendar-grid__day.is-today{box-shadow:inset 0 3px 0 var(--brand)}.calendar-grid__date{color:#506562;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;width:27px;height:27px;margin:0 0 5px auto;padding:0;font-size:.7rem;display:grid}.calendar-grid__date:hover{color:var(--brand-dark);background:#e5f2ee}.calendar-grid__day.is-today .calendar-grid__date{color:#fff;background:var(--brand)}.calendar-grid__events{gap:4px;display:grid}.calendar-event{color:#245a52;border-left:3px solid var(--brand);background:#dff1eb;border-radius:6px;min-width:0;padding:5px 6px;font-size:.58rem;display:flex;overflow:hidden}.calendar-event time{flex:none;margin-right:4px;font-weight:750}.calendar-event span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-event--cancelled,.calendar-event--expired,.calendar-event--no_show{color:#875656;background:#f5e6e4;border-left-color:#c27a75}.calendar-event--completed{color:#596b69;background:#e8eeec;border-left-color:#8da19d}.calendar-grid__more{color:#5e7471;text-align:left;cursor:pointer;background:0 0;border:0;padding:2px 3px;font-size:.57rem}.calendar-grid__more:hover{color:var(--brand-dark);text-decoration:underline}.calendar-day-view{gap:8px;padding:3px 16px 16px;display:grid}.calendar-day-event{border-left:4px solid var(--brand);background:#f5f9f7;border-radius:10px;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:12px;padding:12px 13px;display:grid}.calendar-day-event>time{color:var(--brand-dark);font-size:.76rem;font-weight:750}.calendar-day-event>div{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.calendar-day-event strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.calendar-empty{color:var(--muted);text-align:center;background:#f5f8f7;border:1px dashed #d5e1de;border-radius:10px;margin:3px 16px 16px;padding:20px;font-size:.78rem}.appointment-status{color:#2b6e61;background:#dcefe8;border-radius:999px;flex:none;padding:3px 7px;font-size:.6rem;font-weight:700}.appointment-status--cancelled,.appointment-status--expired,.appointment-status--no_show{color:#875656;background:#f5e6e4}.appointment-status--completed{color:#596b69;background:#e8eeec}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@keyframes thinking{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes message-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (width<=800px){.app-shell{display:block}.sidebar{width:min(320px,86vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.sidebar--open{transform:translate(0);box-shadow:24px 0 60px #0b2b2a47}.sidebar__close,.menu-button{display:block}.sidebar-overlay{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a1f1f5c;border:0;width:100%;height:100%;padding:0;display:block;position:fixed;inset:0}.chat-header{min-height:64px;padding:10px 14px}.chat-history{padding:26px 16px 20px}.message{gap:9px;margin-bottom:22px}.message__avatar{width:30px;height:30px}.message__body{max-width:calc(100% - 40px)}.message__content{padding:12px 14px;font-size:.9rem}.appointment-calendar{width:min(100%,78vw)}.composer-area{padding:9px 12px 12px}.chat-composer>small{display:none}}@media (width<=520px){.login-page{padding:14px}.login-card{border-radius:20px;padding:28px 22px}.chat-suggestions{grid-template-columns:1fr}.chat-empty{justify-content:flex-start;padding-top:16vh}.message__avatar{display:none}.message__body{max-width:91%}.message--user .message__body{margin-left:auto}.appointment-calendar{width:100%}.appointment-calendar__header{flex-direction:column;align-items:stretch;gap:10px}.calendar-view-selector{align-self:flex-start}.calendar-day-event{grid-template-columns:1fr;gap:7px}.calendar-day-event>div{flex-direction:column;align-items:flex-start;gap:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
