@import "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Ubuntu:wght@300;400;500;700&display=swap";
:root{--primary:#20263f;--accent:#009a7a;--accent-hover:#00805f;--bg:#f5f7fa;--surface:#fff;--surface-glass:#ffffffb8;--text-primary:#20263f;--text-secondary:#5a6278;--text-accent:#009a7a;--border:#20263f14;--border-strong:#20263f1f;--shadow-sm:0 1px 3px #20263f0f;--shadow-md:0 4px 16px #20263f14;--shadow-lg:0 8px 32px #20263f1a;--shadow-glow:0 0 24px #009a7a1f;--font-heading:"Roboto",sans-serif;--font-body:"Ubuntu",-apple-system,"Roboto",Helvetica,Arial,sans-serif;--radius:5px;--radius-lg:10px;--radius-pill:24px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;justify-content:center;height:100vh;font-size:14px;display:flex;overflow:hidden}.app-container{background:var(--surface);width:100%;max-width:1280px;height:100%;box-shadow:var(--shadow-lg);border-left:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;margin:0 auto;display:flex;position:relative}.header-top-bar{background:var(--primary);flex-shrink:0;align-items:center;gap:14px;padding:12px 20px;display:flex}.header-logo{filter:brightness(0)invert();height:28px;transition:opacity .2s}.header-logo:hover{opacity:.85}.header-title{font-family:var(--font-heading);color:#fff;letter-spacing:.02em;font-size:15px;font-weight:700}.registration-section{background:radial-gradient(ellipse at 50% 0%,#009a7a0a 0%,transparent 60%),var(--bg);flex:1;justify-content:center;align-items:flex-start;padding:24px 16px 40px;display:flex;overflow-y:auto}.registration-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border-strong);width:100%;max-width:100%;box-shadow:var(--shadow-md),inset 0 1px 0 #ffffffe6;padding:32px 28px}.registration-grid{flex-direction:column;gap:32px;display:flex}@media (min-width:1024px){.registration-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}}.registration-heading{font-family:var(--font-heading);color:var(--primary);margin-bottom:6px;font-size:22px;font-weight:700}.registration-subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:14px;line-height:1.5}.register-form{flex-direction:column;gap:18px;display:flex}.form-row{gap:14px;display:flex}.form-row .form-group{flex:1}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-primary);font-size:13px;font-weight:500;font-family:var(--font-heading)}.required{color:#e05252}.form-group input,.form-group select{border-radius:var(--radius);border:1px solid var(--border-strong);font-size:14px;font-family:var(--font-body);color:var(--text-primary);background:var(--surface);outline:none;width:100%;padding:10px 14px;transition:all .2s}.form-group input:focus,.form-group select:focus{border-color:var(--accent);box-shadow:var(--shadow-glow)}.form-group input::placeholder{color:var(--text-secondary);opacity:.6}.form-group select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%235A6278' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-error{border-radius:var(--radius);color:#c0392b;text-align:center;background:#e052520f;border:1px solid #e0525233;padding:10px 14px;font-size:13px}.register-submit-btn{background:linear-gradient(135deg,var(--accent),#00b88d);color:#fff;font-size:15px;font-weight:600;font-family:var(--font-heading);cursor:pointer;letter-spacing:.02em;border:none;border-radius:0;margin-top:8px;padding:14px 28px;transition:all .25s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 2px 12px #009a7a40,inset 0 1px #ffffff26}.register-submit-btn:hover{background:linear-gradient(135deg,var(--accent-hover),var(--accent));transform:translateY(-1px);box-shadow:0 4px 18px #009a7a59,inset 0 1px #ffffff26}.register-submit-btn:active{transform:translateY(0)}.register-submit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.chat-section{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.chat-header{background:var(--surface-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--border-strong);z-index:10;box-shadow:var(--shadow-sm);flex-shrink:0;padding:0;position:sticky;top:0}.header-content{flex-direction:column;gap:6px;padding:12px 20px 14px;display:flex}.current-task{color:var(--text-secondary);background:var(--bg);border-radius:var(--radius-pill);border:1px solid var(--border-strong);align-items:center;gap:4px;width:fit-content;padding:6px 12px;font-size:13px;display:inline-flex}.current-task .value{color:var(--text-primary);margin-left:4px;font-weight:500}.record-detail{border-radius:var(--radius);background:linear-gradient(135deg,#009a7a0a,#009a7a05);border:1px solid #009a7a1f;flex-direction:column;gap:3px;width:100%;margin-top:4px;padding:10px 14px;font-size:15px;transition:all .3s;display:flex}.record-detail.hidden{display:none}.detail-label{color:var(--accent);text-transform:uppercase;letter-spacing:.8px;font-size:12px;font-weight:700;font-family:var(--font-heading)}.detail-text{color:var(--text-secondary);white-space:pre-wrap;line-height:1.45}.chat-area{scroll-behavior:smooth;background:radial-gradient(ellipse at 50% 0%,#009a7a08 0%,transparent 50%),var(--bg);flex-direction:column;flex:1;gap:18px;min-height:0;padding:20px;display:flex;overflow-y:auto}.message{opacity:0;margin-bottom:4px;animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn;display:flex}.message.user{justify-content:flex-end}.message.ai{justify-content:flex-start}.message.system{justify-content:center;margin-top:16px;margin-bottom:16px}.bubble{border-radius:var(--radius-lg);word-wrap:break-word;letter-spacing:.01em;max-width:82%;padding:14px 18px;font-size:14px;line-height:1.6}.message.user .bubble{background:linear-gradient(135deg,var(--accent),#00b88d);color:#fff;border-bottom-right-radius:2px;font-weight:500;box-shadow:0 2px 8px #009a7a33,inset 0 1px #ffffff26}.message.ai .bubble{background:var(--surface);color:var(--text-primary);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm),inset 0 1px 0 #fffc;border-bottom-left-radius:2px}.message.system .bubble{color:var(--text-secondary);box-shadow:none;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-pill);background:0 0;font-size:13px}.input-area{background:linear-gradient(to top,var(--surface)65%,transparent);flex-shrink:0;padding:16px 20px;position:relative}.suggestion-container{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:10px;display:flex}.suggestion-btn{color:var(--accent);border-radius:var(--radius-pill);font-size:13px;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);background:#009a7a14;border:1px solid #009a7a33;padding:8px 16px;font-weight:500;transition:all .2s}.suggestion-btn:hover{background:#009a7a26;border-color:#009a7a4d;transform:translateY(-1px);box-shadow:0 2px 8px #009a7a26}.suggestion-btn:active{transform:translateY(0)}.suggestion-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.input-container{background:var(--surface);border-radius:var(--radius-pill);border:1px solid var(--border-strong);box-shadow:var(--shadow-md),inset 0 1px 0 #ffffffe6;align-items:center;gap:10px;padding:6px 6px 6px 18px;transition:all .25s;display:flex}.input-container:focus-within{border-color:var(--accent);box-shadow:var(--shadow-glow),inset 0 1px 0 #ffffffe6}.input-container input{color:var(--text-primary);font-size:14px;font-family:var(--font-body);background:0 0;border:none;outline:none;flex:1}.input-container input::placeholder{color:var(--text-secondary);opacity:.7}#send-btn{background:linear-gradient(135deg,var(--accent),#00b88d);cursor:pointer;color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .25s cubic-bezier(.175,.885,.32,1.275);display:flex;box-shadow:0 2px 8px #009a7a40,inset 0 1px #fff3}#send-btn svg path{stroke:#fff}#send-btn:hover{background:linear-gradient(135deg,var(--accent-hover),var(--accent));transform:scale(1.08);box-shadow:0 4px 14px #009a7a59,inset 0 1px #fff3}#send-btn:active{transform:scale(.95)}#send-btn:disabled{background:var(--bg);cursor:not-allowed;box-shadow:none;transform:none}#send-btn:disabled svg path{stroke:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;opacity:0;pointer-events:none;background:#20263f66;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.modal.visible{opacity:1;pointer-events:auto}.modal-content{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border-strong);flex-direction:column;width:90%;max-width:420px;max-height:80vh;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden;transform:translateY(20px);box-shadow:0 20px 60px #20263f2e,inset 0 1px #ffffffe6}.modal.visible .modal-content{transform:translateY(0)}.modal-header{border-bottom:1px solid var(--border);background:linear-gradient(#009a7a08,#0000);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{font-family:var(--font-heading);color:var(--primary);font-size:16px;font-weight:700}#close-modal-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;transition:all .2s;display:flex}#close-modal-btn:hover{color:var(--text-primary);background:var(--bg);transform:none}.record-list{flex-direction:column;gap:4px;padding:8px;display:flex;overflow-y:auto}.record-item{border-radius:var(--radius);cursor:pointer;color:var(--text-secondary);border:1px solid #0000;padding:10px 14px;font-size:14px;transition:all .2s}.record-item:hover{background:var(--bg);color:var(--text-primary);border-color:var(--border)}.record-item.active{color:var(--accent);background:#009a7a0f;border-color:#009a7a33;font-weight:500}.value-btn{color:var(--accent);cursor:pointer;text-align:left;text-underline-offset:3px;width:auto;height:auto;font-size:14px;font-weight:600;font-family:var(--font-body);background:0 0;border:none;border-radius:2px;margin:0;padding:0 4px;-webkit-text-decoration:underline #009a7a59;text-decoration:underline #009a7a59;transition:all .2s;display:inline-block}.value-btn:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);background:#009a7a0f;transform:none}.loading-records{text-align:center;color:var(--text-secondary);padding:24px;font-size:13px}.typing-bubble{align-items:center;gap:5px;padding:12px 18px;display:flex}.typing-bubble .dot{background:var(--accent);opacity:.4;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite typingDot}.typing-bubble .dot:nth-child(2){animation-delay:.2s}.typing-bubble .dot:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.new-project-btn{color:var(--accent);border-radius:var(--radius);cursor:pointer;font-size:12px;font-family:var(--font-body);background:0 0;border:1px solid #009a7a33;align-self:flex-start;margin-top:6px;padding:5px 12px;transition:all .2s}.new-project-btn:hover{border-color:var(--accent);background:#009a7a14}.record-status-icon{margin-right:4px;font-size:14px}@media (max-width:600px){.header-top-bar{gap:8px;padding:10px 12px}.header-title{font-size:13px}.header-logo{height:24px}.chat-header{padding:10px 12px}.chat-area{padding:12px 12px 90px}.bubble{max-width:92%;font-size:14px}.input-container{margin:0 8px 8px}.input-container input{padding:12px 14px;font-size:15px}.registration-card{margin:12px;padding:24px 18px}.form-row{flex-direction:column}.record-detail{font-size:14px}}
html,body{min-height:100%}body{height:auto;min-height:100dvh;display:block;overflow:hidden auto}.app-container{height:auto;min-height:100dvh}.landing-shell,.dashboard-page{width:100%;min-height:100dvh}.registration-section{width:100%;overflow-x:clip}.registration-section .container{justify-content:center;display:flex}.registration-stage-auth{width:100%;max-width:1100px}.registration-form-col,.registration-info-col{align-content:start;gap:1rem;min-width:0;display:grid}.registration-info-col .registration-support-grid{grid-template-columns:1fr;margin-top:0}.registration-info-col .reference-examples-card{margin-top:0}.form-control{width:100%}.student-reference-sidebar,.chat-reference-shell,.teacher-review-board,.teacher-review-grid>*,.teacher-transcript-card{min-width:0}.chat-reference-shell{height:clamp(32rem,100dvh - 220px,65rem)}.teacher-review-board{height:clamp(38rem,100dvh - 220px,70rem)}.chat-reference-shell .chat-area,.teacher-review-board .teacher-chat-area{flex:auto}.chat-surface-header{flex-wrap:wrap}.chat-surface-header>div{flex:22rem;min-width:0}.record-detail,.detail-text,.bubble,.current-thread-label,.value-btn{overflow-wrap:anywhere}.current-task{flex-wrap:wrap;row-gap:.2rem;max-width:100%}.current-thread-label,.value-btn{min-width:0;max-width:100%}.teacher-review-grid{flex:auto;grid-template-columns:minmax(220px,.9fr) minmax(280px,1.05fr) minmax(0,1.75fr);min-height:0}.teacher-review-column,.teacher-transcript-card{height:100%;min-height:0}.teacher-review-column{flex-direction:column;gap:1rem;display:flex}.review-panel-header{margin-bottom:0}.review-list{flex:auto;min-height:0;max-height:none;padding-right:.2rem}.dashboard-content-shell{gap:1rem;padding-bottom:3rem;display:grid}.dashboard-footer-links{margin-top:1.25rem}.footer-text-link{align-items:center;min-height:40px;display:inline-flex}@media (max-width:1279px){.teacher-review-board{height:auto}.teacher-review-grid{grid-template-columns:1fr}.teacher-review-column{border-right:0;border-bottom:1px solid var(--brand-line)}.teacher-review-column:last-of-type{border-bottom:0}.review-list{max-height:18rem}}@media (max-width:991px){.site-context-card,.registration-card-header,.chat-surface-header{flex-direction:column;align-items:stretch}.student-reference-layout,.student-reference-sidebar .reference-status-stack,.teacher-metrics-strip{grid-template-columns:1fr}.chat-reference-shell{height:auto;min-height:32rem}}@media (max-width:767px){.registration-card{padding:20px 18px}.chat-reference-shell,.teacher-review-board{border-radius:var(--radius-sm)}.chat-area,.teacher-chat-area,.input-area,.chat-surface-header,.teacher-review-column{padding:16px}.teacher-review-column{gap:.85rem}.dashboard-footer-links{justify-content:center}}
