:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;--bg:#050812;--panel:#0b1020cc;--panel2:#121a2c;--line:#24304a;--text:#f5f7ff;--muted:#8d9ab7;--accent:#7c6cff;--accent2:#2fe0c0;--danger:#ff7c96}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:radial-gradient(circle at 80% -10%,#24356b55,transparent 32%),radial-gradient(circle at 10% 105%,#0d675d44,transparent 30%),var(--bg);color:var(--text);overflow:hidden}
button,input,textarea,select{font:inherit}.hidden{display:none!important}
.aurora{position:fixed;border-radius:50%;filter:blur(90px);opacity:.22;pointer-events:none}.a1{width:380px;height:380px;background:#765cff;right:-120px;top:-140px}.a2{width:330px;height:330px;background:#20d5bc;left:-120px;bottom:-160px}
.glass{background:linear-gradient(180deg,#11182be8,#0a1020e8);backdrop-filter:blur(26px)}
.login{height:100dvh;display:grid;place-items:center;padding:22px}
.login-card{width:min(430px,100%);border:1px solid #ffffff15;border-radius:30px;padding:34px;box-shadow:0 35px 120px #000a}
.logo,.hero-logo{display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:white;font-weight:950;box-shadow:0 15px 45px #6e64ff44}
.logo.big{width:62px;height:62px;border-radius:19px;font-size:19px}.logo.small{width:40px;height:40px;border-radius:13px;font-size:13px}
.eyebrow{font-size:10px;letter-spacing:.2em;color:#9da8c1;margin-top:20px}.login-card h1{font-size:34px;margin:6px 0}.login-card p{color:var(--muted);margin:0 0 20px}
.login-card input,.login-card button{width:100%;padding:14px 15px;border-radius:14px;margin-top:10px;border:1px solid var(--line)}
.login-card input{background:#11182a;color:var(--text);outline:none}.login-card input:focus{border-color:#796eff;box-shadow:0 0 0 3px #796eff1f}
.primary{background:linear-gradient(135deg,#776cff,#31d9be);color:white;border:0!important;font-weight:800}.secondary{background:#151d30;color:#e7ecff}.login-card small{display:block;color:var(--danger);margin-top:10px;min-height:18px}
.shell{display:grid;grid-template-columns:292px 1fr;height:100dvh}
aside{background:#070b14cc;border-right:1px solid #ffffff0f;backdrop-filter:blur(22px);display:flex;flex-direction:column;padding:15px}
.brand{display:flex;gap:11px;align-items:center;padding:5px}.brand>div:nth-child(2){display:flex;flex-direction:column}.brand span{font-size:11px;color:var(--muted)}#closeSide{display:none;margin-left:auto}
.new{margin:20px 0 11px;width:100%;padding:13px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#151d30,#111827);color:#f2f5ff;font-weight:700}
.history{overflow:auto;flex:1}.history button{width:100%;border:0;background:transparent;color:#cdd5e9;text-align:left;padding:11px 12px;border-radius:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history button:hover{background:#11182a}
.side-bottom{display:grid;gap:4px}.side-bottom button{background:transparent;border:0;color:#8f9ab2;text-align:left;padding:10px 11px;border-radius:10px}.side-bottom button:hover{background:#11182a;color:#fff}.side-bottom .install{background:linear-gradient(135deg,#766cff22,#2fe0c022);color:#dfe6ff;border:1px solid #776cff55}
main{display:grid;grid-template-rows:66px 1fr auto;min-width:0}
header{display:flex;align-items:center;gap:12px;padding:0 19px;border-bottom:1px solid #ffffff0f;background:#070b14a8;backdrop-filter:blur(22px)}
header>div{display:flex;flex-direction:column;min-width:0;flex:1}header span{font-size:11px;color:var(--muted)}header button{background:#11182a;border:1px solid var(--line);color:#e5eaff;border-radius:11px;padding:8px 11px}#menuBtn{display:none}
.messages{overflow:auto;padding:30px max(22px,calc((100% - 930px)/2));scroll-behavior:smooth}
.welcome{text-align:center;margin:13vh auto 0;max-width:720px;color:var(--muted)}.hero-logo{margin:auto;width:82px;height:82px;border-radius:25px;font-size:24px}.welcome h1{font-size:38px;color:#fff;margin:22px 0 8px}.welcome p{font-size:16px;line-height:1.6}
.capabilities{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:22px}.capabilities span{padding:8px 11px;border-radius:999px;background:#10182a;border:1px solid #202c45;color:#aeb9d1;font-size:11px}
.msg{display:flex;gap:12px;margin:19px 0;align-items:flex-start}.msg.user{justify-content:flex-end}.bubble{max-width:84%;white-space:pre-wrap;line-height:1.62;padding:14px 17px;border-radius:19px;background:#121a2c;border:1px solid #24304a}.assistant .bubble{background:transparent;border-color:transparent;padding-left:0}.user .bubble{background:linear-gradient(135deg,#20284a,#18203d)}
.avatar{width:31px;height:31px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;font-size:10px;font-weight:900;flex:none}
#composer{padding:12px max(18px,calc((100% - 930px)/2)) 18px;background:linear-gradient(transparent,#050812 25%)}
.composer-box{display:flex;align-items:flex-end;gap:8px;padding:9px;border-radius:22px;border:1px solid #26324a;background:#0b1020e8;box-shadow:0 25px 80px #0008;backdrop-filter:blur(20px)}
.composer-box textarea{flex:1;resize:none;max-height:190px;background:transparent;border:0;color:#fff;outline:none;padding:11px 5px}.attach,#send{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;border:0;cursor:pointer}.attach{background:#151d30;color:#dce3f6}#send{background:linear-gradient(135deg,#786dff,#29d7ba);color:#fff}
#composer>small{display:block;text-align:center;color:#5e6b84;font-size:10px;margin-top:8px}.file-chip{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#121a2c;border:1px solid #26324a;border-radius:11px;padding:8px 11px;color:#cbd5ea;font-size:12px;margin-bottom:8px}
.modal{position:fixed;inset:0;background:#0009;display:grid;place-items:center;padding:20px;z-index:40}.modal-card{width:min(540px,100%);background:#0d1424;border:1px solid #26324a;border-radius:23px;padding:20px;box-shadow:0 30px 100px #0009}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head button{background:transparent;border:0;color:#fff;font-size:24px}.gpu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.stat{background:#121a2c;border:1px solid #26324a;border-radius:14px;padding:14px}.stat span{display:block;color:var(--muted);font-size:11px}.stat b{font-size:20px}.memory{width:100%;min-height:270px;background:#121a2c;border:1px solid #26324a;border-radius:13px;color:#fff;padding:12px}.save{margin-top:10px;width:100%;padding:11px;border:0;border-radius:12px;background:#776cff;color:white}
@media(max-width:800px){.shell{grid-template-columns:1fr}aside{position:fixed;z-index:50;inset:0 auto 0 0;width:min(310px,88vw);transform:translateX(-105%);transition:.2s}.shell.side-open aside{transform:translateX(0)}#closeSide,#menuBtn{display:block}.messages{padding:22px 16px}.welcome{margin-top:10vh}.welcome h1{font-size:31px}header{padding:0 12px}}

/* === FIX SCROLL MOBILE / PWA === */

html, body {
  height: 100%;
  min-height: 100%;
  overflow: auto !important;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
}

body {
  position: relative;
}

.shell {
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
}

main {
  min-height: 0;
  overflow: hidden;
}

.messages {
  min-height: 0;
  overflow-y: auto !important;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-bottom: 30px;
}

.history {
  min-height: 0;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

.modal {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.modal-card {
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
}

@media (max-width: 800px) {
  body {
    overflow: hidden !important;
  }

  .shell {
    height: 100dvh;
  }

  main {
    height: 100dvh;
    grid-template-rows: 64px minmax(0, 1fr) auto;
  }

  .messages {
    height: auto;
    min-height: 0;
    overflow-y: auto !important;
    padding-bottom: 24px;
  }

  aside {
    overflow: hidden;
  }

  .history {
    flex: 1;
    min-height: 0;
    overflow-y: auto !important;
  }

  .side-bottom {
    flex-shrink: 0;
    padding-bottom: max(8px, env(safe-area-inset-bottom));
  }

  #composer {
    flex-shrink: 0;
    padding-bottom: max(14px, env(safe-area-inset-bottom));
  }
}


#model{display:none!important}
.messages{min-height:0;overflow-y:auto!important;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
main{min-height:0;overflow:hidden}
.shell{height:100dvh;min-height:100dvh;overflow:hidden}
.bubble{word-break:break-word}
.bubble a{color:#7ddfff;text-decoration:none;border-bottom:1px solid #7ddfff55}
@media(max-width:800px){
  html,body{height:100%;overflow:hidden!important}
  main{height:100dvh;grid-template-rows:64px minmax(0,1fr) auto}
  .messages{min-height:0;overflow-y:auto!important;padding-bottom:26px}
  #composer{padding-bottom:max(14px,env(safe-area-inset-bottom))}
}

/* IVSA GPT v5 safe */
#model{display:none!important}
.messages{
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
main{min-height:0;overflow:hidden}
.shell{height:100dvh;min-height:100dvh;overflow:hidden}
.history{
  min-height:0;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
}
@media(max-width:800px){
  html,body{height:100%;overflow:hidden!important}
  main{height:100dvh;grid-template-rows:64px minmax(0,1fr) auto}
  .messages{min-height:0;overflow-y:auto!important;padding-bottom:26px}
  #composer{padding-bottom:max(14px,env(safe-area-inset-bottom))}
}


/* IVSA image generation v6 */
.ivsa-generated-wrap{margin:14px 0;display:grid;gap:9px}
.ivsa-generated-image{display:block;width:min(100%,760px);height:auto;border-radius:18px;border:1px solid #ffffff18;box-shadow:0 20px 65px #0007;background:#0b1020}
.ivsa-image-open{width:max-content;color:#9fdfff;text-decoration:none;font-size:12px;padding:7px 10px;border-radius:9px;background:#111a2c;border:1px solid #24304a}
.ivsa-image-text{white-space:pre-wrap}
.ivsa-prompt-details{margin-top:10px;color:#96a2ba;font-size:12px;border-top:1px solid #ffffff10;padding-top:9px}
.ivsa-prompt-details summary{cursor:pointer;color:#b8c5df}
.ivsa-prompt-text{white-space:pre-wrap;line-height:1.5;margin-top:8px}


/* IVSA media picker v7 */
.ivsa-media-picker{
  display:flex;
  gap:5px;
  align-items:center;
  flex:0 0 auto;
}
.ivsa-media-btn{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:0;
  border-radius:12px;
  background:var(--panel2);
  color:var(--text);
  cursor:pointer;
  font-size:17px;
  padding:0;
}
.ivsa-media-btn:active{transform:scale(.96)}
@media(max-width:480px){
  .ivsa-media-picker{gap:3px}
  .ivsa-media-btn{width:35px;height:35px;font-size:16px}
}

/* IVSA V9 CSS START */
#model{display:none!important}

.ivsa-v9-toolbar{display:flex;gap:4px;align-items:center;flex:0 0 auto}
.ivsa-v9-tool{
  width:38px;height:38px;display:grid;place-items:center;
  border:0;border-radius:12px;background:var(--panel2);
  color:var(--text);cursor:pointer;padding:0;font-size:17px
}
.ivsa-v9-tool:active{transform:scale(.96)}

.ivsa-v9-pending{
  width:min(100%,900px);
  margin:0 auto 8px;
  display:grid;gap:8px
}
.ivsa-v9-card,.ivsa-v9-chatfile{
  display:flex;align-items:center;gap:10px;
  padding:9px;border:1px solid var(--line);
  border-radius:14px;background:var(--panel2);overflow:hidden
}
.ivsa-v9-thumb{
  width:76px;height:76px;object-fit:cover;flex:0 0 76px;
  border-radius:11px;background:#080d17
}
.ivsa-v9-meta,.ivsa-v9-chatmeta{
  min-width:0;display:flex;flex-direction:column;gap:3px;flex:1
}
.ivsa-v9-meta b,.ivsa-v9-chatmeta b{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.ivsa-v9-meta span,.ivsa-v9-chatmeta span{
  color:var(--muted);font-size:11px
}
.ivsa-v9-state{color:#a6d8bd!important}

.ivsa-v9-guide{
  display:flex;flex-direction:column;gap:5px;
  padding:10px 12px;border-radius:13px;
  border:1px solid #ffffff12;background:#0d1525
}
.ivsa-v9-guide>span{font-size:12px;color:var(--muted)}
.ivsa-v9-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.ivsa-v9-actions button{
  border:1px solid var(--line);background:var(--panel2);
  color:var(--text);border-radius:999px;padding:7px 10px;
  font-size:12px;cursor:pointer
}

.ivsa-v9-chatfile{margin-top:10px;max-width:520px}
.ivsa-v9-chatthumb{
  width:86px;height:86px;object-fit:cover;flex:0 0 86px;
  border-radius:11px;background:#080d17
}
.ivsa-v9-open{
  color:#a9d7ff;text-decoration:none;font-size:12px;
  padding:7px 9px;border-radius:9px;background:#111b30
}

@media(max-width:800px){
  html,body{width:100%;max-width:100%;height:100%;overflow:hidden!important}
  body{position:relative;margin:0}
  .shell{width:100vw;height:100dvh;min-height:100dvh;overflow:hidden}
  main{
    width:100%;min-width:0;height:100dvh;
    grid-template-rows:60px minmax(0,1fr) auto;
    overflow:hidden
  }
  header{
    width:100%;min-width:0;
    padding-left:max(10px,env(safe-area-inset-left));
    padding-right:max(10px,env(safe-area-inset-right))
  }
  .messages{
    width:100%;min-width:0;min-height:0;
    overflow-y:auto!important;overflow-x:hidden;
    padding:18px 12px 22px;
    -webkit-overflow-scrolling:touch
  }
  #composer{
    width:100%;min-width:0;
    padding:8px max(8px,env(safe-area-inset-right))
      max(10px,env(safe-area-inset-bottom))
      max(8px,env(safe-area-inset-left))
  }
  .composer-box{width:100%;min-width:0;gap:5px;padding:6px}
  .composer-box textarea{min-width:0;width:100%}
  .ivsa-v9-toolbar{gap:2px}
  .ivsa-v9-tool{width:34px;height:36px;font-size:15px}
  .bubble{max-width:92%}
  .ivsa-v9-guide{padding:9px}
  .ivsa-v9-chatfile{max-width:100%}
  .ivsa-v9-chatthumb{width:72px;height:72px;flex-basis:72px}
  .login{
    width:100vw;height:100dvh;
    padding:max(16px,env(safe-area-inset-top))
            max(16px,env(safe-area-inset-right))
            max(16px,env(safe-area-inset-bottom))
            max(16px,env(safe-area-inset-left));
    place-items:center
  }
  .login-card{width:min(100%,420px);margin:auto}
}
/* IVSA V9 CSS END */
