:root{--navy: #10107D;--bg-top: #1a2340;--bg-mid: #131a30;--bg-deep: #0d1120;--accent: #1466B4;--accent-soft: rgba(20,102,180,.24);--accent-deep: #0f4f8f;--ink: #eef2f8;--ink-dim: #9aa7bd;--alert: #d98a5f}*{margin:0;padding:0;box-sizing:border-box;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}input,textarea,.answerText{-webkit-user-select:text;user-select:text}body{font-family:Segoe UI,system-ui,sans-serif;background:radial-gradient(circle at 50% 8%,var(--bg-top) 0%,var(--bg-mid) 50%,var(--bg-deep) 100%);color:var(--ink);min-height:100vh}.kiosk{display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:100vh;max-height:100vh;width:100vw;overflow:hidden;gap:clamp(4px,1.2vh,14px);padding-top:max(env(safe-area-inset-top),clamp(8px,1.8vh,20px));padding-bottom:max(env(safe-area-inset-bottom),clamp(6px,1.2vh,14px));padding-left:max(env(safe-area-inset-left),12px);padding-right:max(env(safe-area-inset-right),12px);text-align:center}.brandBar{display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,18px);width:min(720px,94vw);padding:clamp(6px,1.2vh,10px) 16px;margin:0;background:linear-gradient(135deg,#ffffff14,#ffffff05);border:1px solid rgba(255,255,255,.12);border-radius:18px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}.brandLogo{height:clamp(30px,4.5vh,50px);width:auto;object-fit:contain}.brandText{display:flex;flex-direction:column;align-items:center;gap:1px;padding:0 clamp(8px,1.5vw,16px);line-height:1.25;border-left:1px solid rgba(255,255,255,.15);border-right:1px solid rgba(255,255,255,.15)}.brandUni{font-size:clamp(12px,1.6vh,15px);font-weight:700;letter-spacing:.2px;color:var(--ink)}.brandFac{font-size:clamp(10px,1.3vh,12.5px);font-weight:500;color:var(--ink-dim);opacity:.9}.langBar{display:flex;gap:clamp(4px,1vw,8px);width:min(720px,94vw);justify-content:space-between;align-items:center;flex-shrink:0;padding:2px 0}.langBar::-webkit-scrollbar{display:none}.langBtn{flex:1 1 0%;min-width:0;text-align:center;padding:clamp(6px,1.1vh,9px) clamp(4px,1vw,12px);border-radius:18px;border:1px solid rgba(240,236,228,.14);background:#ffffff0a;color:var(--ink);font-size:clamp(11px,1.4vh,13.5px);cursor:pointer;transition:all .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.langBtn:hover{border-color:var(--accent)}.langBtn.active{background:linear-gradient(135deg,var(--accent),#1f85e6);border-color:var(--accent);color:#fff;font-weight:700;box-shadow:0 4px 12px #1466b459}.voiceAvatarOverlay{position:absolute;top:clamp(8px,1.2vh,12px);left:clamp(8px,1.2vw,12px);z-index:10;display:flex;gap:clamp(6px,1vw,10px);align-items:center}.voiceAvatarBtn{width:clamp(34px,4.2vh,42px);height:clamp(34px,4.2vh,42px);border-radius:50%;padding:2px;border:2px solid rgba(255,255,255,.25);background:#0d112080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0006;overflow:hidden}.voiceAvatarBtn:hover{transform:scale(1.08);border-color:#fff9}.voiceAvatarBtn.active{border-color:#3b82f6;background:#3b82f666;box-shadow:0 0 14px #3b82f6cc;transform:scale(1.1)}.voiceAvatarBtn.active.female{border-color:#ec4899;background:#ec489966;box-shadow:0 0 14px #ec4899cc}.voiceAvatarImg{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.heroRow{position:relative;display:flex;align-items:flex-end;justify-content:center;width:min(720px,94vw);height:clamp(130px,20vh,185px);flex-shrink:0;margin:10px 0 2px;z-index:5}.facultyCard{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:24px;overflow:hidden;border:none;box-shadow:none;background:transparent;z-index:1}.facultyPhoto{width:100%;height:100%;object-fit:cover;display:block}.facultyPhotoOverlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:24px;background:radial-gradient(ellipse at center,#0000 20%,#10201c 90%),linear-gradient(180deg,#10201c,#0000 20%,#0000 80%,#10201c),linear-gradient(90deg,#10201c,#0000 15%,#0000 85%,#10201c)}.heroRow .avatar3d,.avatar3d{position:relative;width:clamp(300px,52vw,420px);height:clamp(200px,30vh,270px);flex-shrink:0;border-radius:0;background:transparent!important;box-shadow:none!important;border:none!important;overflow:visible!important;z-index:5;margin:0 auto -60px;pointer-events:none}.avatar3d canvas{display:block;position:relative;z-index:1;overflow:visible!important}.answerBox{position:relative;z-index:10;width:min(720px,94vw);max-height:clamp(220px,38vh,380px);background:#121c2ab8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:16px 20px;display:flex;flex-direction:column;box-shadow:0 16px 40px #00000059;margin-bottom:8px}.clearBoxBtn{position:absolute;top:12px;left:14px;z-index:25;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:12px;color:#e0f2fe;font-size:11.5px;font-weight:600;padding:4px 11px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s ease;display:inline-flex;align-items:center;gap:5px}.clearBoxBtn:hover{background:#ef444447;border-color:#ef44448c;color:#fff;transform:translateY(-1px)}.answerBox.centered{align-items:center;justify-content:center;text-align:center}.answerScrollContainer{flex:1;overflow-y:auto;overflow-x:hidden;width:100%;-webkit-overflow-scrolling:touch;white-space:pre-line;text-align:left;padding-top:38px;padding-bottom:8px;box-sizing:border-box}.answerScrollContainer::-webkit-scrollbar{width:6px}.answerScrollContainer::-webkit-scrollbar-track{background:#ffffff08;border-radius:10px}.answerScrollContainer::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:10px}.answerScrollContainer::-webkit-scrollbar-thumb:hover{background:#ffffff40}.answerContainer{display:flex;gap:24px;align-items:flex-start;width:100%}.answerAvatar{width:120px;height:150px;border-radius:12px;object-fit:cover;border:1px solid rgba(255,255,255,.12);flex-shrink:0;box-shadow:0 8px 24px #0000004d}.answerText{flex:1;color:#fffffff2}.sourceBadge{position:absolute;top:10px;right:14px;font-size:11px;padding:3px 10px;border-radius:12px;background:var(--accent);color:#fff;letter-spacing:.3px;font-weight:600;z-index:10;box-shadow:0 4px 10px #0000004d}.qrBox{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border-radius:16px;background:#fff;box-shadow:0 12px 34px #0006;margin:20px auto 0;max-width:max-content}.qrBox img{width:150px;height:150px;display:block}.qrBox span{font-size:13px;color:#1b2124;max-width:180px;text-align:center;line-height:1.3}.transcript{font-size:17px;color:var(--ink-dim);font-style:italic}.suggestions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;max-width:720px}.chip{padding:10px 18px;border-radius:20px;border:1px solid rgba(240,236,228,.16);background:#f0ece40a;color:var(--ink-dim);font-size:15px;cursor:pointer;transition:all .2s}.chip:hover:not(:disabled){background:var(--accent-soft);color:var(--ink);border-color:var(--accent)}.chip:disabled{opacity:.45;cursor:default}.askForm{display:flex;gap:10px;width:min(640px,92vw)}.askInput{flex:1;padding:15px 20px;border-radius:30px;font-size:17px;border:1px solid rgba(240,236,228,.2);background:#f0ece40f;color:var(--ink);outline:none}.askInput:focus{border-color:var(--accent);background:#f0ece41a}.askInput::placeholder{color:var(--ink-dim)}.sendBtn{padding:0 26px;border-radius:30px;border:none;font-size:16px;font-weight:600;background:var(--accent);color:#10201c;cursor:pointer;transition:all .2s}.sendBtn:hover:not(:disabled){background:var(--accent-deep)}.sendBtn:disabled{opacity:.45;cursor:default}.controlRow{display:flex;align-items:center;gap:12px}.muteBtn{width:56px;height:56px;border-radius:50%;border:1px solid rgba(240,236,228,.2);background:#f0ece40f;color:var(--ink);font-size:24px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.muteBtn:hover{background:#f0ece41f;border-color:var(--accent)}.micBtn{font-size:21px;padding:19px 46px;border-radius:46px;border:none;background:var(--accent);color:#10201c;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 10px 32px #4fb8a047}.micBtn:hover:not(:disabled){transform:scale(1.03);background:var(--accent-deep)}.micBtn.active{background:var(--alert);color:#2a1409;animation:micPulse 1.3s infinite}.micBtn:disabled{opacity:.7;cursor:wait}@keyframes micPulse{0%,to{box-shadow:0 0 #d98a5f73}50%{box-shadow:0 0 0 18px #d98a5f00}}.dots:after{content:"...";animation:dotBlink 1.2s infinite}@keyframes dotBlink{0%{content:"."}33%{content:".."}66%{content:"..."}}.suggestionTargets{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px;justify-content:flex-start}.suggestionTargetBtn{background:var(--navy)!important;color:#fff!important;border:1px solid var(--accent)!important;font-weight:700;padding:8px 14px!important;font-size:13px!important;border-radius:15px!important;cursor:pointer;transition:all .2s ease-in-out}.suggestionTargetBtn:hover{background:var(--accent)!important;color:#10201c!important;transform:translateY(-1px)}.scheduleWidget{display:flex;flex-direction:column;gap:12px;margin-top:15px;width:100%}.scheduleControls{display:flex;justify-content:flex-start;align-items:center}.classFilters{display:flex;gap:6px;background:#ffffff0a;padding:3px;border-radius:20px;border:1px solid rgba(255,255,255,.06)}.filterBtn{background:transparent;border:none;color:var(--ink-dim);padding:4px 12px;font-size:12px;font-weight:500;border-radius:16px;cursor:pointer;transition:all .2s ease}.filterBtn:hover{color:var(--ink)}.filterBtn.active{background:var(--accent);color:#10201c;font-weight:600}.dayTabs{display:flex;gap:4px;width:100%;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:4px}.dayTab{flex:1;background:transparent;border:none;color:var(--ink-dim);padding:6px 4px;font-size:13px;font-weight:500;cursor:pointer;position:relative;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:3px}.dayTab:hover{color:var(--ink)}.dayTab.active{color:var(--accent);font-weight:600}.dayTab.active:after{content:"";position:absolute;bottom:-5px;left:0;right:0;height:2px;background:var(--accent);border-radius:2px}.dayIndicator{width:4px;height:4px;background:var(--accent);border-radius:50%;box-shadow:0 0 4px var(--accent)}.courseList{display:flex;flex-direction:column;gap:8px;margin-top:4px}.courseCard{display:flex;gap:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:10px 14px;transition:all .2s ease;text-align:left}.courseCard:hover{background:#ffffff0d;border-color:#ffffff14}.courseTime{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-right:10px;border-right:1px solid rgba(255,255,255,.08);font-size:12px;font-weight:600;color:var(--accent);min-width:54px;line-height:1.3}.courseTime .end{color:var(--ink-dim);font-weight:400;font-size:11px}.courseDetails{flex:1;display:flex;flex-direction:column;gap:3px}.courseHeader{display:flex;justify-content:space-between;align-items:center}.courseCode{font-size:11px;font-weight:700;background:#ffffff14;padding:1px 6px;border-radius:4px;color:var(--ink)}.classBadge{font-size:10px;font-weight:600;color:var(--ink-dim);background:var(--accent-soft);border:1px solid rgba(20,102,180,.3);padding:1px 6px;border-radius:10px}.courseName{font-size:14px;font-weight:600;color:#fff}.courseMeta{display:flex;gap:12px;font-size:11px;color:var(--ink-dim);flex-wrap:wrap}.courseNotes{font-size:11px;color:var(--alert);margin-top:2px;font-style:italic}.noCourses{text-align:center;padding:20px;color:var(--ink-dim);font-size:14px}.scheduleFooter{display:flex;align-items:center;gap:12px;background:#ffffff08;border-top:1px solid rgba(255,255,255,.08);padding:12px;margin-top:10px;border-radius:0 0 16px 16px}.pdfQrContainer{background:#fff;padding:4px;border-radius:8px;display:flex;align-items:center;justify-content:center;width:72px;height:72px;flex-shrink:0;box-shadow:0 4px 10px #0000004d}.pdfQrCode{width:100%;height:100%;object-fit:contain}.pdfLinkContainer{display:flex;flex-direction:column;gap:4px;text-align:left}.pdfTitle{color:var(--accent);font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}.pdfIcon{font-size:14px}.pdfHint{font-size:10px;color:var(--ink-dim)}@media(max-width:600px),(max-height:820px){.kiosk{padding-top:max(env(safe-area-inset-top),24px);padding-bottom:max(env(safe-area-inset-bottom),16px);padding-left:max(env(safe-area-inset-left),16px);padding-right:max(env(safe-area-inset-right),16px);gap:14px;height:100vh;max-height:100vh;overflow-y:auto;overflow-x:hidden;justify-content:flex-start;align-items:center}.brandBar{width:100%;padding:10px 16px;gap:12px;margin-top:4px;margin-bottom:0;background:linear-gradient(135deg,#ffffff17,#ffffff08);border:1px solid rgba(255,255,255,.14);border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px #00000040}.brandLogo{height:42px}.brandText{padding:0 12px}.brandUni{font-size:14px;font-weight:700;letter-spacing:.2px}.brandFac{font-size:11.5px;opacity:.85}.langBar{gap:6px;width:100%;justify-content:space-between;padding:2px 0}.langBar::-webkit-scrollbar{display:none}.langBtn{flex:1 1 0%;min-width:0;text-align:center;padding:7px 4px;font-size:12px;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.langBtn.active{background:linear-gradient(135deg,var(--accent),#1f85e6);border-color:var(--accent);color:#fff;font-weight:700;box-shadow:0 4px 14px #1466b466}.avatar3d{width:min(150px,22vh);height:min(150px,22vh);flex-shrink:0;margin:2px 0;border:3px solid rgba(255,255,255,.18);box-shadow:0 0 35px #1466b440,inset 0 0 30px #0009}.answerBox{width:100%;flex:1 1 0%;min-height:80px;max-height:none;font-size:14.5px;line-height:1.5;padding:14px 16px;border-radius:20px;background:linear-gradient(135deg,#ffffff14,#ffffff08);border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 28px #0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.answerContainer{flex-direction:column;align-items:center;gap:10px;width:100%}.answerAvatar{width:86px;height:106px;margin:0 auto;border-radius:10px;flex-shrink:0}.answerText{width:100%;text-align:left;font-size:13.5px}.sourceBadge{top:10px;right:14px;font-size:11px;padding:3px 10px;box-shadow:0 4px 10px #0000004d;z-index:10}.suggestions{display:flex;gap:8px;width:100%;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:2px;-webkit-overflow-scrolling:touch}.suggestions::-webkit-scrollbar{display:none}.chip{white-space:nowrap;flex-shrink:0;padding:8px 15px;font-size:12.5px;border-radius:20px;background:#ffffff0f;border:1px solid rgba(255,255,255,.14)}.suggestionTargets{gap:6px;margin-top:8px}.suggestionTargetBtn{padding:6px 12px!important;font-size:11.5px!important}.askForm{width:100%;gap:8px}.askInput{padding:12px 18px;font-size:14px;border-radius:25px;background:#ffffff12;border:1px solid rgba(255,255,255,.18)}.askInput:focus{border-color:var(--accent);background:#ffffff1f}.sendBtn{padding:0 20px;font-size:14px;border-radius:25px;background:linear-gradient(135deg,var(--accent),#1f85e6);color:#fff;font-weight:600}.controlRow{gap:12px;margin-bottom:max(env(safe-area-inset-bottom),8px)}.muteBtn{width:52px;height:52px;font-size:20px;border-radius:50%}.micBtn{font-size:16px;padding:16px 36px;min-height:58px;min-width:240px;border-radius:40px;background:linear-gradient(135deg,var(--accent),#1f85e6);color:#fff;font-weight:700;box-shadow:0 10px 28px #1466b473;touch-action:manipulation}.qrBox img{width:85px;height:85px}}.transcriptPanel{width:min(520px,90vw);min-height:40px;max-height:72px;margin-top:4px;margin-bottom:max(env(safe-area-inset-bottom),4px);padding:6px 14px;border-radius:16px;background:#00000040;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;text-align:center;flex-shrink:0}.transcriptText{font-size:13px;color:var(--accent);font-style:italic;font-weight:500;line-height:1.35;white-space:pre-wrap;overflow-y:auto;max-height:60px}.transcriptPlaceholder{font-size:12px;color:var(--ink-dim);opacity:.6}
