/* FirstHack Assistant (home page support bot). Calm, light, site tokens. */
.fb-launch{position:fixed;right:22px;bottom:22px;z-index:900;width:60px;height:60px;border-radius:50%;border:0;cursor:pointer;padding:0;
  background:linear-gradient(135deg,#dc2733 0%,#c1121f 48%,#9c0e19 100%);color:#fff;display:inline-flex;align-items:center;justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 3px 6px rgba(141,13,21,.25),0 16px 34px -12px rgba(141,13,21,.6);transition:transform .18s ease}
.fb-launch:hover{transform:translateY(-2px) scale(1.03)}
.fb-launch svg{width:27px;height:27px}
.fb-launch::after{content:"";position:absolute;right:3px;top:3px;width:12px;height:12px;border-radius:50%;background:#22c55e;border:2px solid #fff}
body.fb-open .fb-launch{transform:scale(.9);opacity:0;pointer-events:none}
.fb-tip{position:fixed;right:22px;bottom:94px;z-index:900;max-width:270px;background:var(--surface,#fff);color:var(--text,#14161a);border:1px solid var(--border,#e4e5e9);
  border-radius:14px 14px 4px 14px;padding:12px 34px 12px 14px;font-size:14px;line-height:1.45;box-shadow:0 12px 32px -14px rgba(10,12,16,.35);cursor:pointer;
  animation:fb-in .35s cubic-bezier(.2,.8,.3,1)}
.fb-tip b{color:var(--blue,#c1121f)}
.fb-tip button{position:absolute;top:6px;right:6px;border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer;color:var(--text-faint,#9aa0ab);width:24px;height:24px;border-radius:6px}
@keyframes fb-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.fb-panel{position:fixed;right:22px;bottom:22px;z-index:950;width:min(390px,calc(100vw - 24px));height:min(640px,calc(100vh - 44px));height:min(640px,calc(100dvh - 44px));display:flex;flex-direction:column;
  background:var(--surface,#fff);border:1px solid var(--border,#e4e5e9);border-radius:20px;overflow:hidden;
  box-shadow:0 2px 6px rgba(10,12,16,.06),0 30px 70px -24px rgba(10,12,16,.4);transform:translateY(16px) scale(.98);opacity:0;pointer-events:none;
  transition:transform .26s cubic-bezier(.2,.8,.3,1),opacity .2s ease}
body.fb-open .fb-panel{transform:none;opacity:1;pointer-events:auto}

.fb-head{display:flex;align-items:center;gap:11px;padding:14px 14px 14px 16px;background:linear-gradient(160deg,#1e222a 0%,#121419 60%,#0a0b0e 100%);color:#fff}
.fb-av{position:relative;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#dc2733,#9c0e19);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.fb-av svg{width:22px;height:22px}
.fb-av::after{content:"";position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:#22c55e;border:2px solid #15171c}
.fb-ht{flex:1;min-width:0}.fb-ht b{display:block;font-size:15px}.fb-ht small{font-size:12px;color:#aab0bc}
.fb-hb{border:0;background:rgba(255,255,255,.08);color:#fff;width:32px;height:32px;border-radius:9px;cursor:pointer;font-size:15px;line-height:1}
.fb-hb:hover{background:rgba(255,255,255,.16)}

.fb-body{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:10px;background:var(--bg,#fbfbfc)}
.fb-m{max-width:86%;font-size:14.2px;line-height:1.5;padding:10px 13px;word-wrap:break-word;animation:fb-in .25s ease}
.fb-b{align-self:flex-start;background:var(--surface,#fff);border:1px solid var(--border-soft,#eceef1);border-radius:4px 14px 14px 14px;color:var(--text,#14161a)}
.fb-u{align-self:flex-end;background:var(--text,#14161a);color:#fff;border-radius:14px 14px 4px 14px;white-space:pre-wrap}
.fb-u img{display:block;max-width:160px;border-radius:9px}
.fb-err{align-self:flex-start;background:#fff4f4;border:1px solid #f3c9cc;color:#8d0d15;border-radius:12px}
.fb-typing{align-self:flex-start;display:inline-flex;gap:5px;padding:12px 14px;background:var(--surface,#fff);border:1px solid var(--border-soft,#eceef1);border-radius:4px 14px 14px 14px}
.fb-typing i{width:6px;height:6px;border-radius:50%;background:#9aa0ab;animation:fb-b 1s infinite}
.fb-typing i:nth-child(2){animation-delay:.15s}.fb-typing i:nth-child(3){animation-delay:.3s}
@keyframes fb-b{0%,80%,100%{opacity:.3}40%{opacity:1}}
.fb-chips{display:flex;flex-wrap:wrap;gap:7px;align-self:stretch;animation:fb-in .25s ease}
.fb-chip{border:1px solid var(--border,#e4e5e9);background:var(--surface,#fff);color:var(--text,#14161a);border-radius:999px;padding:8px 13px;font:600 13px/1.2 inherit;cursor:pointer}
.fb-chip:hover{border-color:var(--blue,#c1121f);color:var(--blue,#c1121f)}
.fb-chip.big{border-radius:12px;padding:11px 13px;text-align:left;width:100%;display:flex;align-items:center;gap:10px;font-weight:600}
.fb-chip.big span{flex:1}.fb-chip.big em{font-style:normal;color:var(--text-faint,#9aa0ab);font-weight:500;font-size:12px}
.fb-card{align-self:stretch;background:var(--surface,#fff);border:1px solid var(--border,#e4e5e9);border-radius:14px;padding:12px 14px;font-size:13.5px;animation:fb-in .25s ease}
.fb-card dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0 0 12px}
.fb-card dt{color:var(--text-faint,#9aa0ab)}.fb-card dd{margin:0;word-break:break-word}
.fb-row{display:flex;gap:8px;flex-wrap:wrap}
.fb-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border,#e4e5e9);background:var(--surface,#fff);color:var(--text,#14161a);
  border-radius:10px;padding:10px 14px;font:600 13.5px/1 inherit;cursor:pointer;text-decoration:none}
.fb-btn.pri{border-color:transparent;color:#fff;background:linear-gradient(135deg,#dc2733,#9c0e19)}
.fb-btn.wide{width:100%}
.fb-ctas{display:grid;gap:8px;align-self:stretch;animation:fb-in .25s ease}

.fb-foot{border-top:1px solid var(--border-soft,#eceef1);padding:10px;background:var(--surface,#fff)}
.fb-box{display:flex;align-items:flex-end;gap:8px;border:1px solid var(--border,#e4e5e9);border-radius:13px;padding:5px 5px 5px 12px}
.fb-box:focus-within{border-color:var(--blue,#c1121f);box-shadow:0 0 0 3px rgba(193,18,31,.12)}
.fb-box input,.fb-box textarea{flex:1;border:0!important;outline:0;box-shadow:none!important;background:transparent!important;font:400 14.5px/1.45 inherit;color:var(--text,#14161a);padding:7px 0!important;margin:0!important;resize:none;min-width:0;max-height:110px;border-radius:0!important;height:auto}
.fb-send{width:36px;height:36px;border-radius:10px;border:0;cursor:pointer;color:#fff;background:linear-gradient(135deg,#dc2733,#9c0e19);flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}
.fb-send:disabled{opacity:.4;cursor:default}
.fb-note{font-size:11px;color:var(--text-faint,#9aa0ab);text-align:center;margin-top:6px}
.fb-file,.fb-img{display:none}
.fb-box{padding-left:5px}
.fb-att{flex:0 0 auto;width:36px;height:36px;border:0;border-radius:10px;cursor:pointer;background:transparent;color:var(--text-dim,#5b6170);display:inline-flex;align-items:center;justify-content:center}
.fb-att:hover{background:var(--surface-2,#f2f3f5);color:var(--blue,#c1121f)}
.fb-pend{display:flex;align-items:center;gap:10px;margin:0 0 8px;padding:7px 8px;border:1px solid var(--border,#e4e5e9);border-radius:12px;background:var(--bg,#fbfbfc);font-size:12.5px;color:var(--text-dim,#5b6170)}
.fb-pend[hidden]{display:none}
.fb-pend img{width:44px;height:44px;object-fit:cover;border-radius:8px;flex:0 0 auto}
.fb-pend span{flex:1;min-width:0}
.fb-pend button{border:0;background:transparent;font-size:20px;line-height:1;cursor:pointer;color:var(--text-faint,#9aa0ab);width:28px;height:28px;border-radius:7px}
.fb-pend button:hover{background:var(--surface-2,#f2f3f5);color:var(--text,#14161a)}
.fb-u.fb-u-img{padding:5px}
.fb-u.fb-u-img img{max-width:210px;max-height:260px;object-fit:cover}
.fb-cap{padding:7px 8px 4px}

@media (max-width:640px){
  .fb-launch{right:max(12px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));width:52px;height:52px}
  .fb-launch svg{width:24px;height:24px}
  .fb-tip{right:12px;left:auto;bottom:calc(76px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);font-size:13.5px}
  /* Full screen sheet. dvh = the area actually visible between the browser bars,
     so the input and Send button are never pushed below the bottom bar. */
  .fb-panel{left:0;right:0;top:0;bottom:auto;width:auto;height:100vh;height:100dvh;max-height:none;border-radius:0;border:0}
  .fb-head{padding-top:calc(12px + env(safe-area-inset-top))}
  .fb-foot{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .fb-m{max-width:92%}
  .fb-row .fb-btn{flex:1 1 auto}
  body.fb-open{overflow:hidden}
}
@media print{.fb-launch,.fb-panel,.fb-tip{display:none!important}}
/* While the assistant is open, the hackathon popup must not cover it. */
body.fb-open .hp{display:none!important}
