@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@700;800&display=swap";:root{--gi-white:#fff;--gi-canvas:#f4f5f7;--gi-weave:#e9ebef;--gi-line:#dcdfe6;--gi-line-soft:#e7e9ee;--belt-blue:#1f4ed8;--belt-blue-soft:#eaf0ff;--belt-purple:#6b3fa0;--belt-purple-soft:#f3edfb;--belt-brown:#7a4a28;--belt-brown-soft:#f6efe8;--belt-black:#16181d;--belt-red:#b3261e;--ink:#16181d;--ink-soft:#4a5059;--ink-faint:#767d87;color:var(--ink);background:var(--gi-canvas);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 4%, #1f4ed812, transparent 26rem), radial-gradient(circle at 92% 12%, #6b3fa00f, transparent 24rem), linear-gradient(180deg, var(--gi-white) 0%, var(--gi-canvas) 60%);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{grid-template-rows:auto minmax(0,1fr) auto;width:min(920px,100% - 2rem);min-height:100vh;margin:0 auto;padding:2rem 0 1.25rem;display:grid}.app-header{justify-content:space-between;align-items:end;gap:2rem;padding:0 .25rem 1.5rem;display:flex}.eyebrow{color:var(--belt-blue);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.5rem;margin:0 0 .4rem;font-size:.72rem;font-weight:700;display:flex}.eyebrow:before{content:"";background:linear-gradient(90deg, var(--gi-white) 0 22%, var(--belt-blue) 22% 46%, var(--belt-purple) 46% 66%, var(--belt-brown) 66% 84%, var(--belt-black) 84% 100%);border-radius:999px;width:2.25rem;height:.5rem;box-shadow:inset 0 0 0 1px #16181d29}h1,h2{font-family:Manrope,system-ui,sans-serif}h1{letter-spacing:-.045em;margin:0;font-size:clamp(1.8rem,5vw,3.2rem);line-height:1}.subtitle{color:var(--ink-soft);margin:.65rem 0 0}.secondary-button{border:1px solid var(--gi-line);color:var(--ink);background:var(--gi-white);border-radius:999px;flex:none;padding:.65rem 1rem;transition:border-color .12s,color .12s,background .12s;box-shadow:0 1px 2px #16181d0d}.secondary-button:hover{border-color:var(--belt-blue);color:var(--belt-blue);background:var(--belt-blue-soft)}.chat-panel{border:1px solid var(--gi-line);background:var(--gi-white);border-radius:1.25rem;grid-template-rows:auto minmax(20rem,1fr) auto auto;min-height:0;display:grid;overflow:hidden;box-shadow:0 1.25rem 3rem #16181d12}.chat-status{border-bottom:1px solid var(--gi-line-soft);color:var(--ink-faint);background:linear-gradient(180deg, var(--gi-weave), var(--gi-white));align-items:center;gap:.45rem;padding:.75rem 1rem;font-size:.78rem;display:flex}.status-dot{background:var(--ink-faint);border-radius:50%;width:.45rem;height:.45rem}.status-dot.idle{background:var(--belt-blue);box-shadow:0 0 0 3px #1f4ed824}.status-dot.connecting,.status-dot.submitted,.status-dot.streaming{background:var(--belt-purple);box-shadow:0 0 0 3px #6b3fa024}.status-dot.error{background:var(--belt-red);box-shadow:0 0 0 3px #b3261e21}.messages{scrollbar-color:var(--gi-line) transparent;flex-direction:column;gap:1rem;padding:clamp(1rem,3vw,2rem);display:flex;overflow-y:auto}.welcome{text-align:center;place-items:center;max-width:620px;margin:auto;padding:2rem 0;display:grid}.mark{border:1px solid var(--gi-line);width:3.5rem;height:3.5rem;color:var(--ink);background:var(--gi-white);box-shadow:inset 0 -.75rem 0 -.35rem var(--belt-black), 0 .5rem 1.25rem #16181d1a;border-radius:1rem;place-items:center;margin-bottom:1rem;font-family:Manrope,sans-serif;font-weight:800;display:grid;transform:rotate(-4deg)}.welcome h2{letter-spacing:-.035em;margin:0;font-size:clamp(1.35rem,4vw,2rem)}.welcome>p{color:var(--ink-soft);margin:.55rem 0 1.5rem}.quick-prompts{flex-wrap:wrap;justify-content:center;gap:.55rem;display:flex}.quick-prompts button{border:1px solid var(--gi-line);color:var(--ink-soft);background:var(--gi-white);border-radius:999px;padding:.6rem .85rem;transition:border-color .12s,color .12s,background .12s}.quick-prompts button:hover:not(:disabled){border-color:var(--belt-purple);color:var(--belt-purple);background:var(--belt-purple-soft)}.loading{color:var(--ink-faint);margin:auto}.message{border:1px solid var(--gi-line);background:var(--gi-white);border-radius:.35rem 1rem 1rem;width:fit-content;max-width:min(78%,42rem);padding:.9rem 1rem;box-shadow:0 .35rem 1rem #16181d0d}.message.user{background:var(--belt-blue-soft);border-color:#1f4ed847;border-radius:1rem .35rem 1rem 1rem;align-self:flex-end}.schedule-response{width:min(100%,46rem)}.schedule-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem;display:flex}.schedule-heading strong{font-family:Manrope,system-ui,sans-serif;font-size:1.05rem}.schedule-heading span{color:var(--ink-faint);font-size:.78rem}.schedule-notice,.empty-schedule{border:1px solid var(--gi-line);color:var(--ink-soft);background:var(--gi-white);border-radius:.9rem;margin:0;padding:1rem}.schedule-notice{font-style:italic}.error-notice{color:#7d1a14;background:#fdf0ef;border-color:#b3261e4d;font-style:normal}.class-card{border:1px solid var(--gi-line);background:var(--gi-white);border-radius:.9rem;grid-template-columns:7rem minmax(0,1fr);transition:border-color .12s,box-shadow .12s,transform .12s;display:grid;overflow:hidden;box-shadow:0 .4rem 1rem #16181d0d}.class-card:hover{border-color:#1f4ed84d;transform:translateY(-1px);box-shadow:0 .6rem 1.4rem #1f4ed81a}.class-grid{gap:.65rem;display:grid}.class-time{border-right:1px solid var(--gi-line-soft);background:linear-gradient(140deg, var(--gi-weave), var(--gi-white));box-shadow:inset .25rem 0 0 -.05rem var(--belt-blue);flex-direction:column;justify-content:center;padding:1rem;display:flex}.class-card:has(.class-type.no-gi) .class-time{box-shadow:inset .25rem 0 0 -.05rem var(--belt-purple)}.class-time strong{color:var(--ink);letter-spacing:-.025em;font-family:Manrope,system-ui,sans-serif;font-size:1.1rem}.class-time span{color:var(--belt-brown);letter-spacing:.06em;text-transform:uppercase;margin-top:.15rem;font-size:.7rem;font-weight:700}.class-details{min-width:0;padding:.9rem 1rem}.class-type{color:var(--belt-blue);background:var(--belt-blue-soft);letter-spacing:.045em;text-transform:uppercase;border:1px solid #1f4ed84d;border-radius:999px;margin-bottom:.45rem;padding:.2rem .48rem;font-size:.68rem;font-weight:700;display:inline-block}.class-type.no-gi{color:var(--belt-purple);background:var(--belt-purple-soft);border-color:#6b3fa04d}.class-details p{margin:0;font-weight:600}.class-details .class-meta{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:.25rem;font-size:.83rem;font-weight:400;overflow:hidden}.message-label{color:var(--belt-brown);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .35rem;font-size:.7rem;font-weight:700}.message.user .message-label{color:var(--belt-blue)}.message-text{overflow-wrap:anywhere;line-height:1.55}.message-text>:first-child{margin-top:0}.message-text>:last-child{margin-bottom:0}.message-text p,.message-text ul,.message-text ol,.message-text blockquote,.message-text pre{margin:0 0 .7rem}.message-text ul,.message-text ol{padding-left:1.35rem}.message-text a{color:var(--belt-blue)}.message-text code{background:var(--gi-weave);border-radius:.25rem;padding:.08rem .25rem;font-size:.9em}.message-text pre{background:var(--gi-weave);border-radius:.5rem;padding:.7rem;overflow-x:auto}.message-text pre code{background:0 0;padding:0}.message-text blockquote{border-left:.2rem solid var(--gi-line);color:var(--ink-soft);padding-left:.75rem}.thinking{border:1px solid var(--gi-line);background:var(--gi-white);border-radius:.35rem 1rem 1rem;gap:.28rem;width:fit-content;padding:.9rem 1rem;display:flex;box-shadow:0 .35rem 1rem #16181d0d}.thinking i{background:var(--belt-blue);border-radius:50%;width:.38rem;height:.38rem;animation:1.2s ease-in-out infinite pulse}.thinking i:nth-child(2){background:var(--belt-purple);animation-delay:.15s}.thinking i:nth-child(3){background:var(--belt-brown);animation-delay:.3s}@keyframes pulse{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-.2rem)}}.error{color:#7d1a14;background:#fdf0ef;border:1px solid #b3261e40;border-radius:.6rem;margin:0 1rem .75rem;padding:.65rem .8rem;font-size:.85rem}.composer{border-top:1px solid var(--gi-line-soft);background:var(--gi-weave);gap:.65rem;padding:1rem;display:flex}.composer input{border:1px solid var(--gi-line);min-width:0;color:var(--ink);background:var(--gi-white);border-radius:.85rem;outline:none;flex:1;padding:.85rem 1rem}.composer input:focus{border-color:var(--belt-blue);box-shadow:0 0 0 3px #1f4ed824}.composer input::placeholder{color:var(--ink-faint)}.composer button{color:var(--gi-white);background:var(--belt-black);border:0;border-radius:.85rem;padding:.75rem 1.25rem;font-weight:700;transition:background .12s;position:relative}.composer button:after{content:"";background:var(--belt-red);opacity:.85;border-radius:999px;width:.65rem;height:.16rem;position:absolute;bottom:.55rem;right:.6rem}.composer button:hover:not(:disabled){background:#2a2e37}.composer button:focus-visible,.secondary-button:focus-visible,.quick-prompts button:focus-visible{outline:2px solid var(--belt-blue);outline-offset:2px}footer{color:var(--ink-faint);text-align:center;padding:.8rem .25rem 0;font-size:.75rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=640px){.app-shell{width:100%;padding:0}.app-header{align-items:start;padding:1.15rem}.subtitle{display:none}.secondary-button{padding:.55rem .75rem;font-size:.78rem}.chat-panel{border-bottom:0;border-left:0;border-right:0;border-radius:0}.message{max-width:90%}.class-card{grid-template-columns:6.2rem minmax(0,1fr)}.class-time,.class-details{padding:.8rem}.class-time strong{font-size:.95rem}footer{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
