.brand-mark,.welcome-mark,.onboarding-mark{border-radius:var(--radius-md);width:2.55rem;height:2.55rem;color:var(--text-primary);background:var(--psu-blue);box-shadow:inset 0 0 0 1px var(--border-subtle);flex:none;place-items:center;font-family:Inter,Segoe UI,sans-serif;font-size:1.3rem;font-weight:700;display:grid}.brand-logo{object-fit:contain;border-radius:var(--radius-sm);flex:none;width:3.1rem;height:3.1rem;display:block}.brand-logo--lg{width:6.5rem;height:6.5rem}.brand-logo--header{width:2.65rem;height:2.65rem;display:none}.eyebrow{color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.primary-button{border-radius:var(--radius-md);width:100%;min-height:3rem;color:var(--text-primary);background:var(--psu-blue);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:0;font-weight:650}.primary-button:hover:not(:disabled){background:var(--psu-blue-hover);transform:translateY(-1px);box-shadow:0 .45rem 1.1rem #041e4247}.primary-button:disabled{cursor:wait;opacity:.65}.text-button{color:#9cbcf0;cursor:pointer;background:0 0;border:0;padding:0;font-size:.78rem;font-weight:650}.text-button:hover{text-decoration:underline}.icon-button{border-radius:var(--radius-sm);width:2.35rem;height:2.35rem;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:0;flex:none;place-items:center;display:grid}.icon-button:hover{color:var(--text-primary);background:var(--surface-subtle)}.icon-button svg,.new-chat-button svg,.mobile-menu-button svg,.send-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.25rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.global-alert{z-index:100;border-radius:var(--radius-sm);color:#f3e2c0;background:var(--surface-elevated);border:1px solid #e6bd7859;max-width:min(90vw,36rem);padding:.8rem 1rem;font-size:.88rem;position:fixed;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 .6rem 1.8rem #041e4259}.app-loader{background:var(--psu-navy);place-content:center;justify-items:center;gap:1.4rem;min-height:100dvh;display:grid}.auth-page{background:radial-gradient(circle at 18% 18%, #1e407c59, transparent 32rem), var(--psu-navy);grid-template-columns:minmax(0,1.08fr) minmax(25rem,.92fr);min-height:100dvh;display:grid}.auth-intro{flex-direction:column;justify-content:center;max-width:50rem;min-height:100dvh;padding:clamp(3rem,7vw,7rem);display:flex}.brand-lockup{color:var(--text-primary);letter-spacing:.12em;align-items:center;gap:.8rem;margin-bottom:clamp(4rem,10vh,7rem);font-size:.88rem;font-weight:850;display:flex}.brand-lockup .brand-logo{width:3rem;height:3rem}.auth-intro>.eyebrow{margin-bottom:1.1rem}.auth-intro h1{max-width:43rem;color:var(--text-primary);letter-spacing:-.04em;margin:0;font-size:clamp(2.5rem,5.2vw,4.75rem);font-weight:600;line-height:1.02}.auth-intro-copy{max-width:37rem;color:var(--text-secondary);margin:1.7rem 0 0;font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.75}.scope-note{align-items:flex-start;gap:.75rem;max-width:34rem;margin-top:2.3rem;display:flex}.scope-note p{color:var(--text-muted);margin:.05rem 0 0;font-size:.88rem;line-height:1.55}.scope-icon{width:1.45rem;height:1.45rem;color:var(--text-primary);background:var(--psu-blue);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:900;display:grid}.auth-panel{border-left:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a26478c;place-items:center;min-height:100dvh;padding:clamp(1.5rem,5vw,5rem);display:grid}.auth-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,27rem);padding:2rem;box-shadow:0 1.5rem 4.5rem #00000047}.auth-tabs{border-radius:var(--radius-sm);background:#ffffff0d;grid-template-columns:1fr 1fr;padding:.28rem;display:grid}.auth-tabs button{border-radius:calc(var(--radius-sm) - .1rem);min-height:2.45rem;color:var(--text-muted);cursor:pointer;background:0 0;border:0;font-size:.83rem;font-weight:750}.auth-tabs button.active{color:var(--text-primary);background:var(--psu-blue);box-shadow:0 .15rem .55rem #0003}.auth-card-heading{margin:2rem 0 1.6rem}.auth-card-heading h2{color:var(--text-primary);letter-spacing:-.025em;margin:0;font-size:1.7rem;font-weight:600}.auth-card-heading p{color:var(--text-muted);margin:.45rem 0 0;font-size:.88rem}.auth-form{flex-direction:column;display:flex}.auth-form label,.password-label{color:var(--text-secondary);font-size:.8rem;font-weight:750}.password-label{justify-content:space-between;align-items:center;margin-top:1.05rem;display:flex}.auth-form>label:not(:first-child){margin-top:1.05rem}.auth-form input{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;height:3rem;color:var(--text-primary);background:var(--surface-elevated);transition:border var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);outline:none;margin-top:.45rem;padding:0 .85rem}.auth-form input::placeholder{color:var(--text-muted)}.auth-form input:focus{border-color:var(--border-strong);background:var(--surface-elevated);box-shadow:0 0 0 3px var(--focus-ring)}.auth-form .primary-button{margin-top:1.3rem}.form-message{border-radius:var(--radius-sm);margin:.85rem 0 -.35rem;padding:.7rem .8rem;font-size:.8rem;line-height:1.45}.form-message.error{color:var(--danger);background:#f09a9a1a;border:1px solid #f09a9a59}.form-message.success{color:var(--success);background:#77c7a01a;border:1px solid #77c7a059}.privacy-copy{color:var(--text-muted);text-align:center;margin:1.25rem 0 0;font-size:.72rem;line-height:1.5}.chat-app{background:var(--psu-navy);grid-template-columns:18.5rem minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.chat-sidebar{z-index:20;border-right:1px solid var(--border-subtle);background:var(--surface);flex-direction:column;min-height:0;padding:1.2rem .9rem .85rem;display:flex;position:relative}.sidebar-brand{align-items:center;gap:.75rem;padding:.25rem .35rem 1.35rem;display:flex}.sidebar-brand .brand-logo{width:3rem;height:3rem}.sidebar-brand div{flex-direction:column;gap:.12rem;min-width:0;display:flex}.sidebar-brand strong{color:var(--text-primary);letter-spacing:.1em;font-size:.78rem}.sidebar-brand span:not(.brand-mark){color:var(--text-muted);font-size:.72rem}.new-chat-button{border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;min-height:2.75rem;color:var(--text-primary);cursor:pointer;transition:border var(--transition-fast), background var(--transition-fast);background:#ffffff0a;align-items:center;gap:.65rem;padding:0 .85rem;font-size:.82rem;font-weight:650;display:flex}.new-chat-button:hover{border-color:var(--border-strong);background:#ffffff14}.conversation-section{flex:1;min-height:0;margin-top:1.5rem}.sidebar-label{color:var(--text-muted);letter-spacing:.09em;text-transform:uppercase;margin:0 0 .6rem;padding:0 .55rem;font-size:.66rem;font-weight:700}.conversation-list{flex-direction:column;gap:.16rem;max-height:100%;display:flex;overflow-y:auto}.conversation-list button{border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.7rem .6rem;display:grid}.conversation-list button:hover:not(:disabled),.conversation-list button.active{color:var(--text-primary);background:#1e407c59}.conversation-list button:disabled{cursor:default}.conversation-list button>span{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:550;overflow:hidden}.conversation-list time{color:var(--text-muted);font-size:.63rem}.empty-history{color:var(--text-muted);margin:.8rem .55rem;font-size:.76rem;line-height:1.5}.sidebar-account{border-top:1px solid var(--border-subtle);align-items:center;gap:.65rem;padding:.85rem .25rem 0;display:flex}.account-avatar{width:2.1rem;height:2.1rem;color:var(--text-primary);background:var(--psu-blue);border-radius:50%;flex:none;place-items:center;font-size:.78rem;font-weight:700;display:grid}.account-copy{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.account-copy strong{color:var(--text-secondary);font-size:.72rem}.account-copy span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;overflow:hidden}.delete-data-button{color:var(--danger);text-align:left;margin-top:.25rem;font-size:.62rem}.load-older-button{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-height:2.2rem;color:var(--text-secondary);background:var(--surface);cursor:pointer;align-self:center;padding:0 .9rem;font-size:.72rem;font-weight:650}.load-older-button:disabled{opacity:.65;cursor:default}.auth-page--single{grid-template-columns:1fr}.auth-page--single .auth-panel{border-left:0}.verification-resend{text-align:center;width:100%;margin-top:.85rem;display:block}.verification-polling{min-height:2.5rem;margin:.5rem 0 1rem}a.primary-button.auth-action-link{place-items:center;margin-top:1.2rem;text-decoration:none;display:grid}.onboarding-privacy{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-elevated);margin:0 0 1.4rem;padding:1rem}.onboarding-privacy h3{color:var(--text-primary);margin:0;font-size:.76rem}.onboarding-privacy ul{color:var(--text-secondary);margin:.7rem 0 0;padding-left:1rem;font-size:.72rem;line-height:1.6}.chat-workspace{background:radial-gradient(circle at 50% 0%, #1e407c38, transparent 28rem), var(--psu-navy);grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.chat-header{border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a2647b8;align-items:center;gap:.85rem;min-height:4.65rem;padding:.75rem clamp(1rem,3vw,2rem);display:flex}.chat-header>div{flex:1;min-width:0}.chat-header-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .2rem;font-size:.63rem;font-weight:700}.chat-header h1{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.93rem;font-weight:650;overflow:hidden}.course-grounded-badge{border:1px solid var(--border-subtle);color:var(--text-secondary);background:#ffffff0a;border-radius:999px;align-items:center;gap:.42rem;padding:.38rem .65rem;font-size:.65rem;font-weight:650;display:flex}.course-grounded-badge i{background:#6ea8ff;border-radius:50%;width:.42rem;height:.42rem;box-shadow:0 0 0 3px #6ea8ff29}.mobile-menu-button{border-radius:var(--radius-sm);width:2.4rem;height:2.4rem;color:var(--text-secondary);background:0 0;border:0;flex:none;place-items:center;display:none}.messages-region{scroll-behavior:smooth;min-height:0;overflow-y:auto}.messages-inner{width:min(100%,52rem);min-height:100%;margin:0 auto;padding:clamp(1.5rem,4vw,3.2rem) clamp(1rem,4vw,2.4rem)}.chat-welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:1rem 0 3rem;display:flex}.welcome-mark{border-radius:var(--radius-md);width:4.25rem;height:4.25rem;box-shadow:inset 0 0 0 1px var(--border-subtle);margin-bottom:1.4rem;font-size:1.8rem}.welcome-logo{object-fit:contain;width:4.25rem;height:4.25rem;margin-bottom:1.4rem;display:block}.chat-welcome h2{color:var(--text-primary);letter-spacing:-.03em;margin:.75rem 0 0;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:600}.chat-welcome>p:not(.eyebrow,.welcome-limit){max-width:35rem;color:var(--text-secondary);margin:.8rem 0 0;font-size:.9rem;line-height:1.65}.suggestion-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;width:100%;margin-top:2.1rem;display:grid}.suggestion-grid button{border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-height:6.3rem;color:var(--text-secondary);background:var(--surface);text-align:left;cursor:pointer;transition:border var(--transition-fast), transform var(--transition-fast), background var(--transition-fast);justify-content:space-between;align-items:flex-start;gap:.65rem;padding:.95rem;font-size:.77rem;line-height:1.45;display:flex}.suggestion-grid button:hover{border-color:var(--border-strong);background:var(--surface-elevated);transform:translateY(-2px)}.suggestion-grid button span:last-child{color:#8fb4e8;font-size:.9rem}.welcome-limit{color:var(--text-muted);margin:1.15rem 0 0;font-size:.7rem}.message-list{flex-direction:column;gap:1.45rem;display:flex}.message-row{align-items:flex-start;gap:.75rem;display:flex}.message-row.user{justify-content:flex-end;padding-left:min(14vw,8rem)}.message-row.assistant{padding-right:min(9vw,5rem)}.message-avatar{border-radius:var(--radius-sm);width:2rem;height:2rem;color:var(--text-primary);background:var(--psu-blue);flex:none;place-items:center;font-size:.92rem;font-weight:700;display:grid;overflow:hidden}.message-avatar img{object-fit:contain;width:100%;height:100%}.message-content{min-width:0}.message-bubble{color:var(--text-secondary);white-space:pre-wrap;font-size:.9rem;line-height:1.7}.message-row.user .message-content{max-width:39rem}.message-row.user .message-bubble{color:var(--text-primary);background:var(--psu-blue);border-radius:1rem 1rem .25rem;padding:.7rem .95rem;line-height:1.55}.message-row.assistant .message-bubble{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.25rem 1rem 1rem;padding:.7rem .95rem}.message-row.guardrail .message-bubble{border-radius:var(--radius-sm);color:#f3e2c0;background:#e6bd781a;border:1px solid #e6bd7859;padding:.85rem 1rem}.message-row.message-error .message-bubble{color:var(--danger);background:#f09a9a1a;border-color:#f09a9a59}.message-status{color:var(--text-muted);text-align:right;margin-top:.35rem;font-size:.65rem;display:block}.source-list{flex-wrap:wrap;gap:.35rem;margin-top:.7rem;display:flex}.source-list span{border:1px solid var(--border-subtle);color:var(--text-secondary);background:#ffffff0a;border-radius:999px;padding:.3rem .55rem;font-size:.62rem;font-weight:750}.typing-indicator{border:1px solid var(--border-subtle);background:var(--surface);border-radius:.25rem 1rem 1rem;align-items:center;gap:.25rem;padding:.75rem .9rem;display:flex}.typing-indicator span,.history-loader>span:not(.sr-only){background:#8fb4e8;border-radius:50%;width:.34rem;height:.34rem;animation:1.15s ease-in-out infinite typing}.typing-indicator span:nth-child(2),.history-loader>span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3),.history-loader>span:nth-child(3){animation-delay:.3s}.history-loader{justify-content:center;align-items:center;gap:.3rem;min-height:8rem;display:flex}.history-error{border-radius:var(--radius-sm);color:var(--danger);background:#f09a9a1a;border:1px solid #f09a9a59;margin:0 0 1rem;padding:.75rem .9rem;font-size:.8rem}@keyframes typing{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.composer-region{border-top:1px solid var(--border-subtle);background:#041e42e0;padding:.8rem clamp(1rem,4vw,2.4rem) .7rem}.composer{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface);width:min(100%,47rem);min-height:3.35rem;transition:border var(--transition-fast), box-shadow var(--transition-fast);align-items:flex-end;gap:.55rem;margin:0 auto;padding:.45rem .45rem .45rem .85rem;display:flex;box-shadow:0 .4rem 1.4rem #00000038}.composer:focus-within{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--focus-ring), 0 .4rem 1.4rem #00000038}.composer textarea{resize:none;width:100%;min-height:2.35rem;max-height:8rem;color:var(--text-primary);background:0 0;border:0;outline:0;flex:1;padding:.52rem 0;font-size:.88rem;line-height:1.35}.composer textarea::placeholder{color:var(--text-muted)}.send-button{border-radius:var(--radius-sm);width:2.45rem;height:2.45rem;color:var(--text-primary);background:var(--psu-blue);cursor:pointer;border:0;flex:none;place-items:center;display:grid}.send-button:hover:not(:disabled){background:var(--psu-blue-hover)}.send-button:disabled{color:var(--text-muted);background:var(--surface-subtle);cursor:default}.composer-note{color:var(--text-muted);text-align:center;margin:.48rem auto 0;font-size:.61rem}.modal-backdrop{z-index:90;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#041e42b8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.onboarding-dialog{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,38rem);max-height:calc(100dvh - 2rem);padding:clamp(1.6rem,5vw,2.5rem);overflow-y:auto;box-shadow:0 2rem 6rem #0006}.onboarding-mark{margin-bottom:1.4rem}.onboarding-logo{object-fit:contain;width:3.5rem;height:3.5rem;margin-bottom:1.4rem;display:block}.onboarding-dialog>.eyebrow{margin-bottom:.7rem}.onboarding-dialog h2{color:var(--text-primary);letter-spacing:-.03em;margin:0;font-size:clamp(1.65rem,4vw,2.2rem);font-weight:600}.onboarding-intro{color:var(--text-secondary);margin:.9rem 0 0;font-size:.88rem;line-height:1.65}.onboarding-columns{grid-template-columns:1fr 1fr;gap:.8rem;margin:1.6rem 0;display:grid}.onboarding-columns>div{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-elevated);padding:1rem}.onboarding-columns>.limits-column{background:#e6bd7814;border-color:#e6bd784d}.onboarding-columns h3{color:var(--success);align-items:center;gap:.45rem;margin:0;font-size:.76rem;display:flex}.limits-column h3{color:var(--warning)}.onboarding-columns ul{color:var(--text-secondary);margin:.7rem 0 0;padding-left:1rem;font-size:.72rem;line-height:1.6}.onboarding-dialog>.primary-button{width:auto;min-width:15rem;padding:0 1.25rem}.sidebar-scrim{display:none}@media (width<=860px){.auth-page{grid-template-columns:1fr}.auth-intro{min-height:auto;padding:3rem 1.5rem 2.5rem}.brand-lockup{margin-bottom:3.5rem}.auth-panel{border-top:1px solid var(--border-subtle);background:#0a26478c;border-left:0;min-height:auto;padding:1.5rem 1rem 3rem}.chat-app{grid-template-columns:1fr}.chat-sidebar{width:min(88vw,19rem);height:100dvh;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:1rem 0 3rem #041e4273}.chat-sidebar.open{transform:translate(0)}.sidebar-scrim{z-index:15;background:#041e428c;border:0;padding:0;display:block;position:fixed;inset:0}.mobile-menu-button{display:grid}.brand-logo--header{display:block}.suggestion-grid{grid-template-columns:1fr}.suggestion-grid button{min-height:auto}}@media (width<=540px){.auth-intro h1{font-size:2.65rem}.auth-card{padding:1.35rem}.chat-header{min-height:4.2rem;padding:.65rem .8rem}.course-grounded-badge{padding:.35rem;font-size:0}.messages-inner{padding:1.4rem .85rem}.chat-welcome{justify-content:flex-start;padding-top:1rem}.message-row.user{padding-left:2rem}.message-row.assistant{padding-right:0}.message-bubble{font-size:.85rem}.composer-region{padding:.6rem .7rem}.composer-note{display:none}.onboarding-columns{grid-template-columns:1fr}.onboarding-dialog>.primary-button{width:100%;min-width:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--psu-navy:#041e42;--psu-blue:#1e407c;--psu-blue-hover:#28579d;--surface-deep:#031733;--surface:#0a2647;--surface-elevated:#102f55;--surface-subtle:#ffffff0f;--text-primary:#f5f5f5;--text-secondary:#c5d0df;--text-muted:#8fa2bb;--border-subtle:#f5f5f51f;--border-strong:#f5f5f533;--focus-ring:#5b91d359;--success:#77c7a0;--warning:#e6bd78;--danger:#f09a9a;--radius-sm:.625rem;--radius-md:.875rem;--radius-lg:1.125rem;--transition-fast:.16s ease;color:var(--text-primary);background:var(--psu-navy);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,Aptos,Segoe UI,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--text-primary);background:var(--psu-navy);margin:0}button,input,textarea{font:inherit}h1,h2,h3,p{text-wrap:pretty}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}button{-webkit-tap-highlight-color:transparent}::selection{color:var(--text-primary);background:var(--psu-blue)}
