body,html{height:100%;margin:0}:root{--primary:#4a6fa5;--secondary:#166088;font-size:16px}#app{min-height:100%}#app,.main-layout{display:flex;flex-direction:column}.main-layout{min-height:100vh}.main-layout>main{flex:1}header.container{align-items:center;display:flex;justify-content:space-between;padding-bottom:1rem;padding-top:1rem}header .brand{font-size:1.25rem;font-weight:700;text-decoration:none}header .user-info{align-items:center;display:flex;gap:1rem}header .username{font-weight:500}footer{border-top:1px solid var(--pico-muted-border-color);margin-top:2rem;padding:1rem 0;text-align:center}.auth-page{padding:3rem 1rem;text-align:center}.auth-page h1{margin-bottom:1rem}.auth-page p{color:var(--pico-muted-color);margin-bottom:2rem}.chat-container{border:1px solid var(--pico-muted-border-color);border-radius:var(--pico-border-radius);display:flex;flex-direction:column;height:60vh;overflow:hidden}.chat-messages{display:flex;flex:1;flex-direction:column;gap:.5rem;overflow-y:auto;padding:1rem}.chat-message{align-self:flex-start;background:#2e7d32;border-radius:var(--pico-border-radius);color:#fff;max-width:90%;padding:.5rem .75rem}.chat-message.own-message{align-self:flex-end;background:var(--pico-primary-background);color:var(--pico-primary-inverse)}.chat-message .message-header{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.25rem}.chat-message .username{font-size:.875rem;font-weight:600}.chat-message .timestamp{font-size:.75rem;opacity:.7}.chat-message .message-text{word-wrap:break-word}.chat-input-form{border-top:1px solid var(--pico-muted-border-color);margin-bottom:0;padding:1rem}.chat-input-form [role=group]{margin-bottom:0}.loading{align-items:center;display:flex;justify-content:center;padding:2rem}.loading:after{animation:spin 1s linear infinite;border:3px solid var(--pico-muted-border-color);border-radius:50%;border-top-color:var(--pico-primary);content:"";height:2rem;width:2rem}@keyframes spin{to{transform:rotate(1turn)}}.sso-callback{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;text-align:center}.sso-callback h2{margin-top:1rem}.error-message{border-left:4px solid var(--pico-del-color);color:var(--pico-del-color)}.error-message,.success-message{background:var(--pico-card-background-color);border-radius:var(--pico-border-radius);margin-bottom:1rem;padding:1rem}.success-message{border-left:4px solid var(--pico-ins-color);color:var(--pico-ins-color)}