*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--school-primary: #8b0000;--school-primary-dark: #2a0000;--bg: #f0f2f5;--text: #1c1c1e;--text-muted: #8e8e93;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--ease-out: cubic-bezier(.22, 1, .36, 1)}html,body{height:100%;overscroll-behavior:none;-webkit-text-size-adjust:100%}body{font-family:var(--font);background:#d8d8dc;-webkit-font-smoothing:antialiased;color:var(--text)}button{font-family:var(--font)}#root{height:100%;display:flex;justify-content:center}.app{display:flex;flex-direction:column;width:100%;max-width:430px;height:100dvh;background:var(--bg);position:relative;overflow:hidden}.chat-header{flex-shrink:0;position:relative;background:linear-gradient(170deg,var(--school-primary-dark) 0%,var(--school-primary) 100%);padding-top:env(safe-area-inset-top,0px)}.header-back{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);right:14px;width:32px;height:32px;border-radius:50%;border:none;background:#ffffff29;color:#ffffffe0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .15s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1}.header-back:hover{background:#ffffff42}.header-back:active{transform:scale(.88);background:#ffffff52}.header-inner{padding:16px 24px 14px;display:flex;flex-direction:row;align-items:center;gap:10px}.header-logo-wrap{width:40px;height:40px;border-radius:12px;background:#ffffff29;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 2px 10px #0003,inset 0 1px #ffffff38}.header-logo{width:28px;height:28px;object-fit:contain}.header-logo-fallback{font-size:16px;font-weight:800;color:#fff;letter-spacing:-.5px;line-height:1}.header-text{display:flex;flex-direction:column;gap:1px;min-width:0}.header-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.2px;line-height:1.2}.header-sub{font-size:12px;color:#ffffff94;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 12px 12px;display:flex;flex-direction:column;gap:4px;-webkit-overflow-scrolling:touch}.messages::-webkit-scrollbar{display:none}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 20px;animation:fadeIn .4s var(--ease-out) both}.empty-text{font-size:15px;color:var(--text-muted);font-weight:500}.quick-questions{display:flex;flex-direction:column;gap:8px;width:100%;max-width:320px}.quick-q{padding:12px 16px;border-radius:14px;border:1.5px solid rgba(0,0,0,.07);background:#fff;color:var(--text);font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,transform .12s;box-shadow:0 1px 6px #0000000a;line-height:1.35}.quick-q:hover{background:#f6f6f8;border-color:#0000001f}.quick-q:active{transform:scale(.97);background:#efeff2}.quick-dots{display:flex;gap:6px;justify-content:center;margin-top:2px}.quick-dot{width:6px;height:6px;border-radius:50%;background:#0000001f;transition:background .2s}.quick-dot--active{background:var(--school-primary)}.msg-row{display:flex;gap:8px;align-items:flex-end;max-width:100%;animation:msgIn .28s var(--ease-spring) both}.msg-row--user{justify-content:flex-end}.msg-row--assistant{justify-content:flex-start}@keyframes msgIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.msg-avatar{flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 1px 6px #00000024;align-self:flex-end}.msg-avatar img{width:22px;height:22px;object-fit:contain}.msg-avatar-letter{font-size:12px;font-weight:700;color:#fff;line-height:1}.msg-content{display:flex;flex-direction:column;gap:3px;max-width:72%;min-width:0}.msg-row--user .msg-content{align-items:flex-end}.msg-bubble{padding:10px 14px;word-break:break-word;font-size:15px;line-height:1.45}.msg-bubble--user{background:var(--school-primary);color:#fff;border-radius:20px 20px 4px}.msg-bubble--assistant{background:#fff;color:var(--text);border-radius:20px 20px 20px 4px;box-shadow:0 1px 8px #00000012}.msg-text{margin:0;white-space:pre-wrap}.msg-sources{list-style:none;padding:0;margin-top:6px;display:flex;flex-direction:column;gap:2px}.msg-sources a{font-size:12px;color:var(--school-primary);text-decoration:none;opacity:.8}.msg-sources a:hover{opacity:1;text-decoration:underline}.msg-suggested{font-size:12px;margin-top:6px}.msg-suggested a{color:var(--school-primary)}.msg-time{font-size:11px;color:var(--text-muted);padding:0 2px}.msg-feedback{display:flex;gap:4px;margin-top:2px}.fb-btn{background:none;border:1px solid rgba(0,0,0,.1);border-radius:10px;padding:2px 8px;font-size:13px;cursor:pointer;color:var(--text-muted);transition:background .15s,border-color .15s}.fb-btn:hover:not(:disabled){background:#0000000a;border-color:#00000029}.fb-btn--active{background:#0000000d;border-color:#0003}.fb-btn:disabled{cursor:default}.msg-debug{margin-top:4px;font-size:11px;color:var(--text-muted);font-family:ui-monospace,Menlo,monospace;line-height:1.4}.msg-debug summary{cursor:pointer}.msg-debug p{margin:1px 0}.typing-bubble{display:flex!important;align-items:center;gap:5px;padding:13px 18px!important;height:42px}.typing-dot{width:7px;height:7px;border-radius:50%;background:#c4c4c8;flex-shrink:0;animation:typingBounce 1.3s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.18s}.typing-dot:nth-child(3){animation-delay:.36s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-7px);opacity:1}}.error-bar{flex-shrink:0;margin:0 12px 8px;padding:10px 14px;background:#fff1f0;border:1px solid #ffccc7;border-radius:12px;font-size:13px;color:#cf1322;animation:msgIn .25s var(--ease-out) both}.input-bar{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));background:#fffffff0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid rgba(0,0,0,.06)}.input-spark{flex-shrink:0;font-size:15px;color:var(--school-primary);opacity:.65;-webkit-user-select:none;user-select:none;line-height:1}.input-field{flex:1;border:none;background:transparent;outline:none;font-family:var(--font);font-size:16px;color:var(--text);caret-color:var(--school-primary);min-width:0}.input-field::placeholder{color:var(--text-muted)}.send-btn{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:none;background:var(--school-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s var(--ease-spring),opacity .15s;box-shadow:0 2px 10px #0003;padding:0}.send-btn:hover:not(:disabled){transform:scale(1.08)}.send-btn:active:not(:disabled){transform:scale(.9)}.send-btn:disabled{opacity:.28;cursor:default}.picker{display:flex;flex-direction:column;height:100dvh;background:#fff}.picker-header{flex-shrink:0;background:linear-gradient(170deg,var(--school-primary-dark) 0%,var(--school-primary) 100%);padding-top:env(safe-area-inset-top,0px)}.picker-header-inner{padding:52px 24px 28px;text-align:center}.picker-title{font-size:28px;font-weight:700;color:#fff;letter-spacing:-.5px}.picker-subtitle{margin-top:4px;font-size:14px;color:#ffffff94}.picker-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.picker-body::-webkit-scrollbar{display:none}.picker-search-wrap{flex-shrink:0;padding:12px 16px;background:#fff;border-bottom:1px solid rgba(0,0,0,.06);position:sticky;top:0;z-index:10}.picker-search{width:100%;background:#f0f2f5;border:none;border-radius:12px;padding:10px 14px 10px 38px;font-size:16px;font-family:var(--font);color:var(--text);outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%238e8e93' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.099zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:13px center}.picker-search::placeholder{color:var(--text-muted)}.picker-list{list-style:none;margin:0;padding:4px 0;flex:1}.picker-status{padding:28px 24px;text-align:center;color:var(--text-muted);font-size:14px}.picker-item{display:flex;align-items:center;padding:16px 20px;gap:10px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.045);transition:background .12s;animation:fadeIn .18s var(--ease-out) both}.picker-item:hover{background:#f8f8fa}.picker-item:active{background:#f0f0f4}.picker-item-name{flex:1;font-size:16px;font-weight:500;color:var(--text);min-width:0}.picker-item-badge{font-size:11px;font-weight:600;color:var(--text-muted);background:#f0f2f5;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.picker-item-arrow{color:#c4c4c8;flex-shrink:0}.picker-footer{flex-shrink:0;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));text-align:center;border-top:1px solid rgba(0,0,0,.05)}.picker-request-btn{background:none;border:none;color:var(--text-muted);font-size:14px;font-family:var(--font);cursor:pointer;text-decoration:underline;padding:8px;transition:color .15s}.picker-request-btn:hover{color:var(--text)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000006b;display:flex;flex-direction:column;justify-content:flex-end;z-index:50;animation:fadeIn .2s ease both}.sheet-body{background:#fff;border-radius:24px 24px 0 0;padding:28px 20px calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px;animation:slideUp .32s var(--ease-spring) both}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-title{font-size:18px;font-weight:700;text-align:center;color:var(--text);margin-bottom:4px}.sheet-sub{font-size:14px;text-align:center;color:var(--text-muted)}.sheet-input{width:100%;border:1.5px solid rgba(0,0,0,.1);border-radius:12px;padding:12px 14px;font-size:16px;font-family:var(--font);color:var(--text);outline:none;transition:border-color .18s}.sheet-input:focus{border-color:var(--school-primary)}.sheet-error{font-size:13px;color:#cf1322;text-align:center}.sheet-submit{width:100%;padding:14px;border:none;border-radius:14px;background:var(--school-primary);color:#fff;font-size:16px;font-weight:600;font-family:var(--font);cursor:pointer;transition:opacity .15s,transform .12s}.sheet-submit:hover:not(:disabled){opacity:.88}.sheet-submit:active:not(:disabled){transform:scale(.98)}.sheet-submit:disabled{opacity:.42;cursor:default}.sheet-cancel{background:none;border:none;color:var(--text-muted);font-size:15px;font-family:var(--font);cursor:pointer;padding:8px;text-align:center;transition:color .15s}.sheet-cancel:hover{color:var(--text)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
