@font-face{font-family:primeicons;font-display:block;src:url(/build/assets/primeicons-DMOk5skT.eot);src:url(/build/assets/primeicons-DMOk5skT.eot?#iefix) format("embedded-opentype"),url(/build/assets/primeicons-C6QP2o4f.woff2) format("woff2"),url(/build/assets/primeicons-WjwUDZjB.woff) format("woff"),url(/build/assets/primeicons-MpK4pl85.ttf) format("truetype"),url(/build/assets/primeicons-Dr5RGzOO.svg?#primeicons) format("svg");font-weight:400;font-style:normal}.pi{font-family:primeicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pi:before{--webkit-backface-visibility:hidden;backface-visibility:hidden}.pi-fw{width:1.28571429em;text-align:center}.pi-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@media(prefers-reduced-motion:reduce){.pi-spin{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.pi-folder-plus:before{content:""}.pi-receipt:before{content:""}.pi-asterisk:before{content:""}.pi-face-smile:before{content:""}.pi-pinterest:before{content:""}.pi-expand:before{content:""}.pi-pen-to-square:before{content:""}.pi-wave-pulse:before{content:""}.pi-turkish-lira:before{content:""}.pi-spinner-dotted:before{content:""}.pi-crown:before{content:""}.pi-pause-circle:before{content:""}.pi-warehouse:before{content:""}.pi-objects-column:before{content:""}.pi-clipboard:before{content:""}.pi-play-circle:before{content:""}.pi-venus:before{content:""}.pi-cart-minus:before{content:""}.pi-file-plus:before{content:""}.pi-microchip:before{content:""}.pi-twitch:before{content:""}.pi-building-columns:before{content:""}.pi-file-check:before{content:""}.pi-microchip-ai:before{content:""}.pi-trophy:before{content:""}.pi-barcode:before{content:""}.pi-file-arrow-up:before{content:""}.pi-mars:before{content:""}.pi-tiktok:before{content:""}.pi-arrow-up-right-and-arrow-down-left-from-center:before{content:""}.pi-ethereum:before{content:""}.pi-list-check:before{content:""}.pi-thumbtack:before{content:""}.pi-arrow-down-left-and-arrow-up-right-to-center:before{content:""}.pi-equals:before{content:""}.pi-lightbulb:before{content:""}.pi-star-half:before{content:""}.pi-address-book:before{content:""}.pi-chart-scatter:before{content:""}.pi-indian-rupee:before{content:""}.pi-star-half-fill:before{content:""}.pi-cart-arrow-down:before{content:""}.pi-calendar-clock:before{content:""}.pi-sort-up-fill:before{content:""}.pi-sparkles:before{content:""}.pi-bullseye:before{content:""}.pi-sort-down-fill:before{content:""}.pi-graduation-cap:before{content:""}.pi-hammer:before{content:""}.pi-bell-slash:before{content:""}.pi-gauge:before{content:""}.pi-shop:before{content:""}.pi-headphones:before{content:""}.pi-eraser:before{content:""}.pi-stopwatch:before{content:""}.pi-verified:before{content:""}.pi-delete-left:before{content:""}.pi-hourglass:before{content:""}.pi-truck:before{content:""}.pi-wrench:before{content:""}.pi-microphone:before{content:""}.pi-megaphone:before{content:""}.pi-arrow-right-arrow-left:before{content:""}.pi-bitcoin:before{content:""}.pi-file-edit:before{content:""}.pi-language:before{content:""}.pi-file-export:before{content:""}.pi-file-import:before{content:""}.pi-file-word:before{content:""}.pi-gift:before{content:""}.pi-cart-plus:before{content:""}.pi-thumbs-down-fill:before{content:""}.pi-thumbs-up-fill:before{content:""}.pi-arrows-alt:before{content:""}.pi-calculator:before{content:""}.pi-sort-alt-slash:before{content:""}.pi-arrows-h:before{content:""}.pi-arrows-v:before{content:""}.pi-pound:before{content:""}.pi-prime:before{content:""}.pi-chart-pie:before{content:""}.pi-reddit:before{content:""}.pi-code:before{content:""}.pi-sync:before{content:""}.pi-shopping-bag:before{content:""}.pi-server:before{content:""}.pi-database:before{content:""}.pi-hashtag:before{content:""}.pi-bookmark-fill:before{content:""}.pi-filter-fill:before{content:""}.pi-heart-fill:before{content:""}.pi-flag-fill:before{content:""}.pi-circle:before{content:""}.pi-circle-fill:before{content:""}.pi-bolt:before{content:""}.pi-history:before{content:""}.pi-box:before{content:""}.pi-at:before{content:""}.pi-arrow-up-right:before{content:""}.pi-arrow-up-left:before{content:""}.pi-arrow-down-left:before{content:""}.pi-arrow-down-right:before{content:""}.pi-telegram:before{content:""}.pi-stop-circle:before{content:""}.pi-stop:before{content:""}.pi-whatsapp:before{content:""}.pi-building:before{content:""}.pi-qrcode:before{content:""}.pi-car:before{content:""}.pi-instagram:before{content:""}.pi-linkedin:before{content:""}.pi-send:before{content:""}.pi-slack:before{content:""}.pi-sun:before{content:""}.pi-moon:before{content:""}.pi-vimeo:before{content:""}.pi-youtube:before{content:""}.pi-flag:before{content:""}.pi-wallet:before{content:""}.pi-map:before{content:""}.pi-link:before{content:""}.pi-credit-card:before{content:""}.pi-discord:before{content:""}.pi-percentage:before{content:""}.pi-euro:before{content:""}.pi-book:before{content:""}.pi-shield:before{content:""}.pi-paypal:before{content:""}.pi-amazon:before{content:""}.pi-phone:before{content:""}.pi-filter-slash:before{content:""}.pi-facebook:before{content:""}.pi-github:before{content:""}.pi-twitter:before{content:""}.pi-step-backward-alt:before{content:""}.pi-step-forward-alt:before{content:""}.pi-forward:before{content:""}.pi-backward:before{content:""}.pi-fast-backward:before{content:""}.pi-fast-forward:before{content:""}.pi-pause:before{content:""}.pi-play:before{content:""}.pi-compass:before{content:""}.pi-id-card:before{content:""}.pi-ticket:before{content:""}.pi-file-o:before{content:""}.pi-reply:before{content:""}.pi-directions-alt:before{content:""}.pi-directions:before{content:""}.pi-thumbs-up:before{content:""}.pi-thumbs-down:before{content:""}.pi-sort-numeric-down-alt:before{content:""}.pi-sort-numeric-up-alt:before{content:""}.pi-sort-alpha-down-alt:before{content:""}.pi-sort-alpha-up-alt:before{content:""}.pi-sort-numeric-down:before{content:""}.pi-sort-numeric-up:before{content:""}.pi-sort-alpha-down:before{content:""}.pi-sort-alpha-up:before{content:""}.pi-sort-alt:before{content:""}.pi-sort-amount-up:before{content:""}.pi-sort-amount-down:before{content:""}.pi-sort-amount-down-alt:before{content:""}.pi-sort-amount-up-alt:before{content:""}.pi-palette:before{content:""}.pi-undo:before{content:""}.pi-desktop:before{content:""}.pi-sliders-v:before{content:""}.pi-sliders-h:before{content:""}.pi-search-plus:before{content:""}.pi-search-minus:before{content:""}.pi-file-excel:before{content:""}.pi-file-pdf:before{content:""}.pi-check-square:before{content:""}.pi-chart-line:before{content:""}.pi-user-edit:before{content:""}.pi-exclamation-circle:before{content:""}.pi-android:before{content:""}.pi-google:before{content:""}.pi-apple:before{content:""}.pi-microsoft:before{content:""}.pi-heart:before{content:""}.pi-mobile:before{content:""}.pi-tablet:before{content:""}.pi-key:before{content:""}.pi-shopping-cart:before{content:""}.pi-comments:before{content:""}.pi-comment:before{content:""}.pi-briefcase:before{content:""}.pi-bell:before{content:""}.pi-paperclip:before{content:""}.pi-share-alt:before{content:""}.pi-envelope:before{content:""}.pi-volume-down:before{content:""}.pi-volume-up:before{content:""}.pi-volume-off:before{content:""}.pi-eject:before{content:""}.pi-money-bill:before{content:""}.pi-images:before{content:""}.pi-image:before{content:""}.pi-sign-in:before{content:""}.pi-sign-out:before{content:""}.pi-wifi:before{content:""}.pi-sitemap:before{content:""}.pi-chart-bar:before{content:""}.pi-camera:before{content:""}.pi-dollar:before{content:""}.pi-lock-open:before{content:""}.pi-table:before{content:""}.pi-map-marker:before{content:""}.pi-list:before{content:""}.pi-eye-slash:before{content:""}.pi-eye:before{content:""}.pi-folder-open:before{content:""}.pi-folder:before{content:""}.pi-video:before{content:""}.pi-inbox:before{content:""}.pi-lock:before{content:""}.pi-unlock:before{content:""}.pi-tags:before{content:""}.pi-tag:before{content:""}.pi-power-off:before{content:""}.pi-save:before{content:""}.pi-question-circle:before{content:""}.pi-question:before{content:""}.pi-copy:before{content:""}.pi-file:before{content:""}.pi-clone:before{content:""}.pi-calendar-times:before{content:""}.pi-calendar-minus:before{content:""}.pi-calendar-plus:before{content:""}.pi-ellipsis-v:before{content:""}.pi-ellipsis-h:before{content:""}.pi-bookmark:before{content:""}.pi-globe:before{content:""}.pi-replay:before{content:""}.pi-filter:before{content:""}.pi-print:before{content:""}.pi-align-right:before{content:""}.pi-align-left:before{content:""}.pi-align-center:before{content:""}.pi-align-justify:before{content:""}.pi-cog:before{content:""}.pi-cloud-download:before{content:""}.pi-cloud-upload:before{content:""}.pi-cloud:before{content:""}.pi-pencil:before{content:""}.pi-users:before{content:""}.pi-clock:before{content:""}.pi-user-minus:before{content:""}.pi-user-plus:before{content:""}.pi-trash:before{content:""}.pi-external-link:before{content:""}.pi-window-maximize:before{content:""}.pi-window-minimize:before{content:""}.pi-refresh:before{content:""}.pi-user:before{content:""}.pi-exclamation-triangle:before{content:""}.pi-calendar:before{content:""}.pi-chevron-circle-left:before{content:""}.pi-chevron-circle-down:before{content:""}.pi-chevron-circle-right:before{content:""}.pi-chevron-circle-up:before{content:""}.pi-angle-double-down:before{content:""}.pi-angle-double-left:before{content:""}.pi-angle-double-right:before{content:""}.pi-angle-double-up:before{content:""}.pi-angle-down:before{content:""}.pi-angle-left:before{content:""}.pi-angle-right:before{content:""}.pi-angle-up:before{content:""}.pi-upload:before{content:""}.pi-download:before{content:""}.pi-ban:before{content:""}.pi-star-fill:before{content:""}.pi-star:before{content:""}.pi-chevron-left:before{content:""}.pi-chevron-right:before{content:""}.pi-chevron-down:before{content:""}.pi-chevron-up:before{content:""}.pi-caret-left:before{content:""}.pi-caret-right:before{content:""}.pi-caret-down:before{content:""}.pi-caret-up:before{content:""}.pi-search:before{content:""}.pi-check:before{content:""}.pi-check-circle:before{content:""}.pi-times:before{content:""}.pi-times-circle:before{content:""}.pi-plus:before{content:""}.pi-plus-circle:before{content:""}.pi-minus:before{content:""}.pi-minus-circle:before{content:""}.pi-circle-on:before{content:""}.pi-circle-off:before{content:""}.pi-sort-down:before{content:""}.pi-sort-up:before{content:""}.pi-sort:before{content:""}.pi-step-backward:before{content:""}.pi-step-forward:before{content:""}.pi-th-large:before{content:""}.pi-arrow-down:before{content:""}.pi-arrow-left:before{content:""}.pi-arrow-right:before{content:""}.pi-arrow-up:before{content:""}.pi-bars:before{content:""}.pi-arrow-circle-down:before{content:""}.pi-arrow-circle-left:before{content:""}.pi-arrow-circle-right:before{content:""}.pi-arrow-circle-up:before{content:""}.pi-info:before{content:""}.pi-info-circle:before{content:""}.pi-home:before{content:""}.pi-spinner:before{content:""}:root{font-family:system-ui,sans-serif;color:#202b38;background:#f7f8fa;--surface:#fff;--app:#f7f8fa;--text:#202b38;--muted:#657384;--line:#e1e5e9;--primary:#3f56a5;--soft:#ecf0fa;--danger:#9d333c;--radius:10px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.02em}h1{font-size:clamp(1.5rem,2vw,1.75rem)}h2{font-size:1.2rem}h3{font-size:1rem}p{line-height:1.5}i.pi{font-size:.95em}.eyebrow{color:var(--muted);font-size:.75rem;font-weight:700}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;padding:.65rem 1rem;border:1px solid transparent;border-radius:var(--radius);font-weight:700;font-size:.9rem}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--primary);color:#fff}.button-primary:hover:not(:disabled){background:#31478f}.button-secondary{background:#fff;border-color:var(--line);color:var(--text)}.button-secondary:hover:not(:disabled){background:var(--app)}.button-full{width:100%}.text-link,.text-button{color:var(--primary);font-weight:700}.text-button{background:none;border:0;padding:.35rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem;margin-bottom:1.5rem}.surface{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.page-content{width:min(100%,1080px);margin:0 auto;padding:2rem 2rem 4rem}.narrow-page{max-width:780px}.page-heading{margin-bottom:1.7rem}.page-heading h1{margin-bottom:.35rem}.page-heading p:last-child{color:var(--muted);margin-bottom:0}.heading-row,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.heading-row .button{flex-shrink:0}.section-heading{margin:2rem 0 1rem}.section-heading h2{margin:0}.state-card{padding:1.5rem;color:var(--muted)}.form-error,.field-error{color:var(--danger)}.form-error{background:#fff4f4;border:1px solid #efd5d7;border-radius:var(--radius);padding:.75rem 1rem}.field-error{font-size:.78rem}.app-shell{min-height:100dvh}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 1.75rem;position:sticky;top:0;z-index:30}.app-body{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100dvh - 64px)}.main-area{min-width:0}.brand,.auth-brand{display:inline-flex;align-items:center;color:var(--text)}.brand-identity{display:grid;gap:.2rem;line-height:1.15}.brand-identity img{display:block;width:min(100%,160px);height:auto;object-fit:contain}.mobile-brand,.mobile-app-title{display:none}.top-profile{display:flex;align-items:center;gap:.6rem;font-size:.87rem;font-weight:600}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--primary);font-weight:700}.avatar-large{width:50px;height:50px;font-size:1.2rem}.sidebar{background:#fff;border-right:1px solid var(--line);padding:1.5rem .75rem;display:flex;flex-direction:column}.sidebar-brand{padding:.3rem .75rem .6rem}.sidebar-heading{display:grid;gap:.15rem;margin-bottom:1.5rem}.sidebar-app-title{padding-left:.75rem;color:var(--text);font-size:.9rem;font-weight:700}.sidebar nav{display:grid;gap:.15rem}.sidebar nav a,.sidebar-logout{display:flex;align-items:center;gap:.8rem;width:100%;min-height:44px;border:0;background:none;border-radius:8px;padding:.65rem .75rem;color:#526171;font-weight:600;text-align:left;font-size:.9rem}.sidebar nav a:hover,.sidebar-logout:hover{background:var(--app)}.sidebar nav a.router-link-active{background:var(--soft);color:var(--primary)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:.75rem}.sidebar-user{display:block;padding:.4rem .75rem;color:var(--text);font-size:.84rem;font-weight:700;overflow-wrap:anywhere}.icon-button{border:0;background:none;color:var(--text);padding:.55rem;border-radius:8px;min-height:44px;min-width:44px}.mobile-menu,.menu-scrim{display:none}.hero-card{padding:.4rem 0 1.3rem;border-bottom:1px solid var(--line)}.hero-card h1{margin-bottom:.4rem}.hero-card p{font-size:1rem;color:var(--muted);margin-bottom:1.1rem}.dashboard-summary{display:flex;gap:2rem;padding:1.2rem 0}.summary-card{display:flex;align-items:baseline;gap:.6rem}.summary-card strong{font-size:1.25rem}.summary-card small{color:var(--muted);font-size:.85rem}.session-list{display:grid;gap:.55rem}.session-card{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem}.session-card:hover{border-color:#aab8d5}.session-info{display:grid;gap:.2rem;min-width:0;flex:1}.session-info strong{font-size:.94rem}.session-info small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-meta{display:grid;justify-items:end;gap:.3rem;white-space:nowrap}.session-meta small{color:var(--muted);font-size:.75rem}.card-arrow{color:#8c98a7}.status-badge{display:inline-flex;align-items:center;border-radius:6px;padding:.25rem .5rem;font-size:.72rem;font-weight:700;white-space:nowrap}.status-badge.active{background:#e9f5ee;color:#22754d}.status-badge.completed{background:#eef0f2;color:#53616e}.empty-state{padding:2rem}.empty-state h2,.empty-state h3{margin-bottom:1rem}.filter-row{display:flex;gap:.35rem;flex-wrap:wrap}.filter-button{min-height:40px;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:8px;padding:.5rem .85rem;font-weight:600}.filter-button.selected{background:var(--soft);border-color:#b5c2e0;color:var(--primary)}.filter-note{color:var(--muted);font-size:.78rem;margin:.5rem 0 1.2rem}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem;color:var(--muted);font-size:.85rem}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:2rem 1rem;background:var(--app)}.auth-card{width:min(100%,440px);padding:2rem;background:#fff;border:1px solid var(--line);border-radius:12px}.auth-card-wide{width:min(100%,620px)}.auth-brand{margin-bottom:.5rem}.auth-app-title{margin-bottom:1.8rem;color:var(--text);font-size:1rem;font-weight:700}.auth-card h1{margin-bottom:.35rem}.auth-subtitle{color:var(--muted);margin-bottom:1.7rem}.form-stack{display:grid;gap:1.1rem}.field{display:grid;gap:.4rem}.field label,.subject-fieldset legend{font-weight:700;font-size:.88rem}.field input,.field select,.field textarea{width:100%;min-height:44px;padding:.65rem .8rem;border:1px solid #cbd3dc;border-radius:8px;background:#fff;color:var(--text);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #3f56a526}.field input::placeholder,.field textarea::placeholder{color:#8995a2}.field small{color:var(--muted)}.field .field-error{color:var(--danger)}.password-field{position:relative}.password-field input{padding-right:3rem}.password-field button{position:absolute;right:.2rem;top:.1rem;min-height:42px;width:42px;border:0;background:none;color:var(--muted)}.auth-switch{text-align:center;color:var(--muted);margin:1.4rem 0 0;font-size:.88rem}.auth-switch a{font-weight:700;color:var(--primary)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field-span{grid-column:1/-1}.new-session-form{padding:1.5rem;display:grid;gap:1.7rem}.subject-fieldset{border:0;padding:0;margin:0;min-width:0}.subject-fieldset legend{margin-bottom:.75rem}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.subject-choice{border:1px solid var(--line);border-radius:8px;min-height:48px;padding:.65rem .8rem;display:flex;align-items:center;gap:.5rem;position:relative;font-weight:600;cursor:pointer}.subject-choice:hover,.subject-choice.selected{border-color:var(--primary);background:var(--soft);color:var(--primary)}.subject-choice input{position:absolute;opacity:0;width:100%;height:100%;top:0;right:0;bottom:0;left:0;cursor:pointer}.subject-choice:focus-within{outline:2px solid var(--primary);outline-offset:2px}.check-mark{display:none;margin-left:auto}.subject-choice.selected .check-mark{display:block}.optional{font-weight:400;color:var(--muted)}.chat-page{max-width:1050px}.chat-shell{display:flex;flex-direction:column;height:calc(100dvh - 160px);min-height:520px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.chat-header,.chat-bottom{flex-shrink:0}.chat-header{padding:1rem 1.4rem;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem}.chat-header h1{font-size:1.1rem;margin-bottom:.2rem}.chat-header p:last-child{color:var(--muted);margin:0;font-size:.85rem}.chat-header-actions{display:flex;align-items:center;gap:.7rem}.finish-button{font-size:.82rem}.chat-history{flex:1;min-height:0;overflow-y:auto;padding:1.5rem 1.4rem;background:#fff}.older-control{text-align:center;margin-bottom:1.3rem}.chat-empty{max-width:400px;margin:3rem auto;text-align:center;color:var(--muted)}.chat-empty h2{color:var(--text)}.message-list{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.message-row{display:flex;max-width:min(80%,680px)}.message-row.student{justify-self:end}.message-row.assistant{justify-self:start}.message-inner{min-width:0}.message-inner strong{font-size:.75rem;color:var(--muted);display:block;margin:0 0 .3rem .25rem}.message-row.student .message-inner strong{text-align:right;margin-right:.25rem}.message-bubble{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;padding:.8rem 1rem;border-radius:10px;background:#f1f3f5;color:var(--text)}.message-row.student .message-bubble{background:var(--soft);color:#263b71}.thinking-row{margin-top:1rem}.thinking-dots{display:inline-flex;gap:2px}.thinking-dots i{display:block;width:4px;height:4px;background:var(--primary);border-radius:50%;animation:pulse 1s infinite alternate}.thinking-dots i:nth-child(2){animation-delay:.2s}.thinking-dots i:nth-child(3){animation-delay:.4s}@keyframes pulse{to{opacity:.25;transform:translateY(-3px)}}.chat-bottom{padding:.75rem 1.4rem 1rem;border-top:1px solid var(--line)}.chat-alert{background:#fff4f4;color:var(--danger);border-radius:8px;padding:.7rem .85rem;margin:0 0 .7rem;font-size:.85rem}.composer{border:1px solid #cbd3dc;border-radius:11px;padding:.45rem .6rem .35rem;background:#fff}.composer:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px #3f56a526}.composer-input-row{display:flex;align-items:flex-end;gap:.3rem;min-width:0}.composer-input-row textarea{flex:1;min-width:0;min-height:44px;max-height:180px;padding:.6rem .2rem;border:0;resize:vertical;outline:0;box-shadow:none;background:transparent}.composer-tool,.send-button{height:40px;width:40px;flex-shrink:0;border:0;border-radius:8px;display:grid;place-items:center}.composer-tool{background:transparent;color:#526171}.composer-tool:hover:not(:disabled){background:var(--app)}.composer-tool:disabled,.send-button:disabled{opacity:.45;cursor:not-allowed}.send-button{background:var(--primary);color:#fff}.send-button:hover:not(:disabled){background:#31478f}.composer small{display:block;color:var(--muted);font-size:.68rem;padding:.2rem .2rem 0}.image-preview{display:flex;align-items:center;gap:.6rem;padding:.3rem .2rem .6rem;min-width:0;color:var(--muted);font-size:.78rem}.image-preview img{width:48px;height:48px;object-fit:cover;border-radius:6px}.image-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.image-preview button{border:0;background:var(--app);border-radius:6px;width:36px;height:36px;font-size:1.1rem}.message-image{display:block;max-width:min(100%,320px);max-height:280px;object-fit:contain;margin-top:.65rem;border-radius:6px}.recording-status{margin:.3rem 0 .55rem;color:var(--danger);font-size:.83rem}.recording-status button{margin-left:.4rem;border:1px solid #e8c6c9;background:#fff;color:var(--danger);padding:.35rem .7rem;border-radius:7px;min-height:36px}.completed-note{padding:.75rem .9rem;background:var(--app);color:var(--muted);border-radius:8px;margin:0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17213a88;z-index:60;display:grid;place-items:center;padding:1rem}.confirm-dialog{width:min(100%,430px);padding:1.5rem;background:#fff;border-radius:12px}.confirm-dialog h2{margin-bottom:.5rem}.confirm-dialog p{color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.4rem}.profile-card{padding:1.5rem}.profile-identity{display:flex;align-items:center;gap:.9rem;border-bottom:1px solid var(--line);padding-bottom:1.3rem}.profile-identity h2{margin:0 0 .2rem}.profile-identity p{margin:0;color:var(--muted);font-size:.85rem}.profile-details{margin:0}.profile-details div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}.profile-details div:last-child{border:0}.profile-details dt{font-size:.85rem;color:var(--muted)}.profile-details dd{margin:0;font-weight:600;overflow-wrap:anywhere}@media(max-width:900px){.app-body{grid-template-columns:1fr}.topbar{justify-content:initial;padding:0 1rem;gap:.5rem}.mobile-menu{display:inline-grid;place-items:center}.mobile-brand{display:inline-flex}.mobile-app-title{display:block;margin-right:auto;font-size:.8rem;font-weight:700;white-space:nowrap}.sidebar{position:fixed;z-index:45;top:64px;bottom:0;left:0;width:min(280px,82vw);transform:translate(-101%);transition:transform .2s;box-shadow:8px 0 24px #1d29401a}.sidebar.is-open{transform:translate(0)}.sidebar-heading{display:none}.menu-scrim{display:block;position:fixed;top:64px;right:0;bottom:0;left:0;background:#17213a55;z-index:40}}@media(max-width:600px){.page-content{padding:1.35rem 1rem 3rem}.top-profile span:last-child{display:none}.dashboard-summary{gap:1rem;flex-wrap:wrap}.heading-row,.section-heading{align-items:flex-start;flex-direction:column;gap:.7rem}.heading-row .button{width:100%}.session-card{gap:.6rem;padding:.85rem}.session-meta{font-size:.75rem}.card-arrow{display:none}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.new-session-form,.profile-card{padding:1rem}.form-grid{grid-template-columns:1fr}.auth-page{padding:1rem}.auth-card{padding:1.4rem}.chat-header{align-items:flex-start;padding:.8rem 1rem;flex-direction:column;gap:.6rem}.chat-header-actions{width:100%;justify-content:space-between}.chat-shell{height:calc(100dvh - 125px);min-height:420px}.chat-history{padding:1rem}.chat-bottom{padding:.7rem}.message-row{max-width:94%}.composer small{font-size:.62rem}.pagination{gap:.4rem;font-size:.75rem}.pagination .button{padding:.5rem}.filter-row{gap:.3rem}.filter-button{padding:.45rem .7rem;font-size:.8rem}.profile-details div{grid-template-columns:1fr;gap:.2rem}.mobile-brand .brand-identity img{width:108px}}@media(max-width:390px){.mobile-brand .brand-identity img{width:88px}.mobile-app-title{font-size:.7rem}}.landing-page{--landing-navy:#25295d;--landing-red:#b94b5a;background:#fff;color:#26313f;min-height:100dvh}.landing-header,.landing-hero,.landing-intro,.landing-how,.landing-about,.landing-closing,.landing-footer{width:min(100% - 3rem,1160px);margin-inline:auto}.landing-header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid #e4e7eb}.landing-brand{display:inline-flex;flex-shrink:0;align-items:center}.landing-brand .brand-identity img{width:154px}.landing-nav{display:flex;align-items:center;gap:1.75rem;font-size:.87rem;font-weight:600}.landing-nav a:not(.button):hover,.landing-actions a:hover,.landing-footer a:hover{color:var(--landing-red);text-decoration:underline}.landing-page .button-primary{background:var(--landing-navy)}.landing-page .button-primary:hover:not(:disabled){background:#181c45}.landing-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(2.5rem,6vw,6rem);padding-block:4.5rem 5rem}.landing-overline,.landing-section-label{margin:0 0 1.1rem;font-size:.77rem;letter-spacing:.035em;font-weight:700;color:var(--landing-red)}.landing-hero h1,.landing-how h2,.landing-about h2,.landing-closing h2{font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-.035em;color:var(--landing-navy)}.landing-hero h1{font-size:clamp(2.7rem,4.2vw,4.4rem);line-height:1.08;margin:0 0 1.5rem;max-width:580px}.landing-hero-copy>p:not(.landing-overline){font-size:1.06rem;line-height:1.7;color:#53606e;max-width:510px}.landing-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:2rem}.landing-actions>a:not(.button){font-size:.89rem;font-weight:700;color:var(--landing-navy)}.landing-photo{position:relative;margin:0;overflow:hidden;background:#eff1f3}.landing-photo img{display:block;width:100%;height:100%;object-fit:cover}.landing-photo figcaption{position:absolute;right:.6rem;bottom:.6rem;padding:.2rem .45rem;background:#fffe;color:#4b5864;font-size:.63rem}.landing-hero-photo{aspect-ratio:1.16}.landing-hero-photo img{object-position:center}.landing-intro{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start;padding-block:2.1rem 2.35rem;border-top:1px solid #dfe3e8;border-bottom:1px solid #dfe3e8}.landing-intro .landing-section-label{margin:.2rem 0 0}.landing-intro>p:last-child{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.48;color:#333c49;max-width:780px;margin:0}.landing-how{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(3rem,9vw,9rem);padding-block:6rem}.landing-how h2,.landing-about h2{font-size:clamp(2rem,3vw,3rem);line-height:1.18;margin:0 0 2rem;max-width:560px}.landing-steps{list-style:none;counter-reset:landing-step;padding:0;margin:0;max-width:580px}.landing-steps li{counter-increment:landing-step;display:grid;grid-template-columns:2.2rem minmax(0,1fr);column-gap:1rem;padding:1.1rem 0;border-top:1px solid #e4e7eb}.landing-steps li:last-child{border-bottom:1px solid #e4e7eb}.landing-steps li:before{content:"0" counter(landing-step);grid-row:1/3;font-size:.78rem;font-weight:700;color:var(--landing-red);padding-top:.18rem}.landing-steps strong{display:block;font-size:1rem;margin-bottom:.3rem}.landing-steps span{display:block;color:#5c6874;font-size:.92rem;line-height:1.6}.landing-study-photo{aspect-ratio:.88;max-height:570px}.landing-study-photo img{object-position:center 40%}.landing-about{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(3rem,7vw,7rem);padding-block:4rem 6rem;border-top:1px solid #e4e7eb}.landing-about-photo{aspect-ratio:1.35}.landing-about-copy{max-width:480px}.landing-about-copy p:not(.landing-section-label){color:#53606e;font-size:1rem;line-height:1.7}.landing-about-copy .landing-caution{font-size:.87rem!important;border-left:2px solid #d9dfe6;padding-left:1rem;margin-top:1.5rem}.landing-closing{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:2.5rem 3.4rem;border-top:1px solid #dfe3e8}.landing-closing h2{font-size:clamp(1.6rem,2.3vw,2.2rem);margin:0 0 .35rem}.landing-closing p{margin:0;color:#64707c}.landing-closing .button{flex-shrink:0}.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.3rem 0 2rem;border-top:1px solid #e4e7eb;color:#677380;font-size:.78rem}@media(max-width:880px){.landing-header,.landing-hero,.landing-intro,.landing-how,.landing-about,.landing-closing,.landing-footer{width:min(100% - 2rem,1160px)}.landing-nav{gap:1rem}.landing-nav>a:not(.button):not(.landing-nav-login){display:none}.landing-hero{gap:2rem;padding-block:3rem}.landing-hero h1{font-size:clamp(2.45rem,5vw,3.5rem)}.landing-how,.landing-about{gap:2.5rem;padding-block:4rem}.landing-intro{grid-template-columns:170px 1fr}}@media(max-width:640px){.landing-header{min-height:70px}.landing-brand .brand-identity img{width:122px}.landing-nav{gap:.8rem}.landing-nav .button{padding:.5rem .7rem;font-size:.78rem}.landing-nav-login{font-size:.8rem}.landing-hero{grid-template-columns:1fr;gap:2rem;padding-block:2.7rem 3rem}.landing-hero h1{font-size:clamp(2.45rem,10vw,3.4rem)}.landing-hero-photo{aspect-ratio:1.35}.landing-intro{grid-template-columns:1fr;gap:.4rem;padding-block:1.5rem 1.8rem}.landing-intro>p:last-child{font-size:1.32rem}.landing-how,.landing-about{grid-template-columns:1fr;padding-block:3.5rem;gap:2rem}.landing-how .landing-photo{order:-1}.landing-study-photo{aspect-ratio:1.15;max-height:400px}.landing-about-photo{aspect-ratio:1.4}.landing-how h2,.landing-about h2{font-size:2.25rem;margin-bottom:1.5rem}.landing-closing{align-items:flex-start;flex-direction:column;gap:1.2rem;padding-block:2.2rem}.landing-footer{flex-wrap:wrap}.landing-footer span:nth-child(2){order:3;width:100%}}.team-intro,.team-section,.team-about{width:min(100% - 3rem,1160px);margin-inline:auto}.team-intro{padding-block:5rem 3.5rem;max-width:1160px}.team-intro h1,.team-heading h2,.team-about h2{font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-.035em;color:var(--landing-navy)}.team-intro h1{font-size:clamp(2.7rem,4.5vw,4.2rem);line-height:1.1;max-width:720px;margin-bottom:1.25rem}.team-intro>p:last-child{max-width:690px;color:#596573;font-size:1.03rem;line-height:1.7}.team-section{padding-block:2.4rem 5rem;border-top:1px solid #dfe3e8}.team-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}.team-heading h2{font-size:2rem;margin:0}.team-heading p{margin:0;color:#687482;font-size:.9rem}.team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}.team-photo{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 42%;background:#f1f2f4;border:1px solid #e5e7eb}.team-member h3{margin:.85rem 0 0;color:var(--landing-navy);font-size:1rem;font-weight:650}.team-about{display:grid;grid-template-columns:.75fr 1.25fr;column-gap:4rem;padding-block:3rem 4.5rem;border-top:1px solid #dfe3e8}.team-about h2{font-size:2rem;margin:0}.team-about p{grid-column:2;color:#53606e;line-height:1.7;max-width:630px}.team-back-link{grid-column:2;display:inline-flex;align-items:center;gap:.5rem;width:max-content;color:var(--landing-navy);font-weight:700;font-size:.9rem}.team-back-link:hover{text-decoration:underline}@media(max-width:880px){.team-intro,.team-section,.team-about{width:min(100% - 2rem,1160px)}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-about{column-gap:2rem}}@media(max-width:640px){.team-intro{padding-block:3rem 2rem}.team-intro h1{font-size:2.65rem}.team-heading{display:block}.team-heading p{margin-top:.5rem}.team-grid{gap:.8rem}.team-about{grid-template-columns:1fr;gap:1rem;padding-block:2.5rem 3.5rem}.team-about p,.team-back-link{grid-column:1}.team-about p{margin:0}}
