/* Hipp: launcher + chat panel. Purple accent to match the app; dark mode follows [data-theme=dark]. */
#hipp-root{--hp-bg:#fff;--hp-fg:#1d1d1b;--hp-mute:#6d6d66;--hp-line:#e3e3de;--hp-soft:#f4f2fd;--hp-acc:#6a4bd8;--hp-acc-fg:#fff;--hp-user:#6a4bd8;--hp-bot:#f4f4f1;--hp-err:#fdecec;--hp-err-fg:#8c1d1d;font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--hp-fg)}
[data-theme=dark] #hipp-root{--hp-bg:#0f2347;--hp-fg:#ececE8;--hp-mute:#9fb3de;--hp-line:#1f3768;--hp-soft:#14295c;--hp-acc:#9b82ff;--hp-acc-fg:#14102b;--hp-user:#5b41c4;--hp-bot:#173063;--hp-err:#3a1f22;--hp-err-fg:#ffb4b4}
.hp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#hipp-root [hidden]{display:none!important}

.hp-launch{position:fixed;right:20px;bottom:20px;z-index:40;width:60px;height:66px;padding:0;border:1px solid var(--hp-line);border-radius:50%;background:var(--hp-bg);box-shadow:0 4px 16px #0000002b;cursor:pointer;display:grid;place-items:center;transition:transform .15s}
.hp-launch.hp-up{bottom:84px}
.hp-launch:hover{transform:translateY(-2px)}
.hp-launch:focus-visible,.hp-btn:focus-visible,.hp-chip:focus-visible,.hp-send:focus-visible,.hp-note button:focus-visible,.hp-err button:focus-visible,.hp-log:focus-visible{outline:3px solid var(--hp-acc);outline-offset:2px}
.hp-art svg{display:block;width:40px;height:auto}
.hp-tip{position:absolute;right:68px;top:50%;transform:translateY(-50%);background:#1d1d1b;color:#fff;font-size:13px;font-weight:600;padding:5px 10px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}
.hp-launch:hover .hp-tip,.hp-launch:focus-visible .hp-tip{opacity:1}
.hp-launch.hp-open .hp-tip{display:none}
body.hipp-on main.guide,body.hipp-on .quiz,body.hipp-on .mcat-page{padding-bottom:96px}

.hp-panel{position:fixed;right:20px;bottom:96px;z-index:41;width:min(400px,calc(100vw - 24px));height:min(600px,calc(100dvh - 120px));display:flex;flex-direction:column;background:var(--hp-bg);border:1px solid var(--hp-line);border-radius:16px;box-shadow:0 12px 40px #00000038;overflow:hidden}
body.motion .hp-panel{animation:hp-in .18s ease-out}
body.motion .hp-launch:hover .hp-art svg{animation:hp-bob 1.2s ease-in-out infinite}
body.motion .hp-dots i{animation:hp-dot 1.1s infinite ease-in-out}
body.motion .hp-caret{animation:hp-blink 1s steps(2) infinite}
@keyframes hp-in{from{opacity:0;transform:translateY(8px)}}
@keyframes hp-bob{50%{transform:translateY(-3px)}}
@keyframes hp-dot{0%,80%,100%{opacity:.3}40%{opacity:1}}
@keyframes hp-blink{50%{opacity:0}}

.hp-head{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-bottom:1px solid var(--hp-line);background:var(--hp-soft)}
.hp-head-art svg{display:block;width:30px;height:auto}
.hp-title{flex:1;min-width:0;display:flex;flex-direction:column}
.hp-title b{font-size:16px;line-height:1.2}
.hp-title small{color:var(--hp-mute);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hp-btn{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--hp-fg);cursor:pointer;display:grid;place-items:center}
.hp-btn:hover{background:#00000012}[data-theme=dark] .hp-btn:hover{background:#ffffff1a}

.hp-note{padding:10px 14px;background:var(--hp-err);color:var(--hp-err-fg);font-size:14px}
.hp-note button,.hp-err button{display:block;margin-top:8px;padding:6px 12px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}

.hp-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.hp-hello{text-align:center;color:var(--hp-mute);padding:8px 10px}.hp-hello svg{width:64px;height:auto}.hp-hello p{margin:6px 0 0}.hp-hello b{color:var(--hp-fg)}
.hp-m{max-width:88%;padding:9px 12px;border-radius:14px;overflow-wrap:anywhere}
.hp-u{align-self:flex-end;background:var(--hp-user);color:#fff;border-bottom-right-radius:4px}
.hp-a{align-self:flex-start;background:var(--hp-bot);border-bottom-left-radius:4px}
.hp-a p{margin:0 0 8px}.hp-a p:last-child,.hp-a ul:last-child,.hp-a ol:last-child{margin-bottom:0}
.hp-a ul,.hp-a ol{margin:0 0 8px;padding-left:20px}
.hp-a a{color:var(--hp-acc);font-weight:600}
.hp-a code{background:#0000001a;padding:1px 5px;border-radius:5px;font-size:.92em}[data-theme=dark] .hp-a code{background:#ffffff1f}
.hp-stopped{color:var(--hp-mute);font-size:13px}
.hp-caret{display:inline-block;width:7px;height:15px;margin-left:2px;vertical-align:-2px;background:var(--hp-acc);border-radius:2px}
.hp-dots i{display:inline-block;width:7px;height:7px;margin:0 2px;border-radius:50%;background:var(--hp-mute)}
.hp-dots i:nth-child(2){animation-delay:.15s}.hp-dots i:nth-child(3){animation-delay:.3s}
.hp-err{align-self:stretch;padding:10px 12px;border-radius:12px;background:var(--hp-err);color:var(--hp-err-fg);font-size:14px}

.hp-chips{display:flex;gap:6px;padding:0 14px 8px;overflow-x:auto;scrollbar-width:none}
.hp-chips:empty{display:none}
.hp-chip{flex:none;padding:6px 12px;border-radius:999px;border:1px solid var(--hp-line);background:var(--hp-bg);color:var(--hp-fg);font:inherit;font-size:13.5px;cursor:pointer}
.hp-chip:hover{border-color:var(--hp-acc);color:var(--hp-acc)}

.hp-form{display:flex;align-items:flex-end;gap:8px;padding:8px 12px 6px;border-top:1px solid var(--hp-line)}
.hp-form textarea{box-sizing:border-box;overflow-y:auto;scrollbar-width:thin;flex:1;resize:none;max-height:120px;padding:9px 12px;border:1px solid var(--hp-line);border-radius:12px;background:var(--hp-bg);color:var(--hp-fg);font:inherit;font-size:16px;line-height:1.4}
.hp-form textarea:focus-visible{outline:2px solid var(--hp-acc);outline-offset:0}
.hp-form textarea:disabled{opacity:.6}
.hp-send{flex:none;width:40px;height:40px;border:0;border-radius:12px;background:var(--hp-acc);color:var(--hp-acc-fg);cursor:pointer;display:grid;place-items:center}
.hp-send:disabled{opacity:.45;cursor:not-allowed}
.hp-foot{margin:0;padding:0 14px 8px;color:var(--hp-mute);font-size:12px;text-align:center}

@media (max-width:560px){
  .hp-panel{left:8px;right:8px;width:auto;bottom:calc(8px + var(--hp-bo,0px));height:calc(var(--hp-vh,100dvh) - 16px);border-radius:14px}
  .hp-launch{right:12px;bottom:12px}.hp-launch.hp-up{bottom:76px}
  .hp-launch.hp-open{display:none}
  .hp-tip{display:none}
}
@media (forced-colors:active){.hp-launch,.hp-panel{border:2px solid CanvasText}}

/* Hipp "coming soon" card and launcher badge */
.hp-soon{text-align:center;padding:18px 10px 8px}
.hp-soon svg{display:block;margin:0 auto;animation:hpBob 2.6s ease-in-out infinite}@keyframes hpBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.hp-is-soon [data-act=new]{display:none}.hp-soon-tag{display:inline-block;margin:8px 0 6px;padding:3px 12px;border-radius:999px;background:linear-gradient(90deg,#ffcd1f,#ffb020);color:#3a2600;font-size:12px;font-weight:800;letter-spacing:.3px}
.hp-soon h3{margin:4px 0 8px;font-size:18px}.hp-soon p{margin:0 0 12px;line-height:1.55;font-size:14.5px}.hp-soon ul{text-align:left;margin:0 auto 12px;padding-left:20px;max-width:300px;font-size:14px;line-height:1.7}.hp-soon-sm{opacity:.75;font-size:13px!important}
.hp-soon-dot{position:absolute;top:-6px;right:-10px;padding:1px 7px;border-radius:999px;background:#ffcd1f;color:#3a2600;font-size:10.5px;font-weight:800;box-shadow:0 2px 6px #0003;pointer-events:none}
@media(prefers-reduced-motion:reduce){.hp-soon svg{animation:none}}
