:root{--bg:#090d16;--panel:#111827;--panel2:#172033;--text:#edf2ff;--muted:#91a0ba;--line:#26334d;--accent:#8b5cf6;--accent2:#22d3ee;--ok:#34d399;--warn:#fbbf24;--danger:#fb7185;--shadow:0 18px 50px rgba(0,0,0,.28)}
:root[data-theme="light"]{--bg:#f4f6fb;--panel:#fff;--panel2:#eef2ff;--text:#182033;--muted:#64748b;--line:#d8deeb;--accent:#6d28d9;--accent2:#0891b2;--shadow:0 16px 40px rgba(31,41,55,.10)}
*{box-sizing:border-box}html{color-scheme:dark}html[data-theme="light"]{color-scheme:light}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.muted,small{color:var(--muted)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--accent2)}
.brand{font-weight:900;letter-spacing:-.04em}.brand span{color:var(--accent)}.brand.big{font-size:1.35rem}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px clamp(16px,4vw,42px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px)}.topbar nav{display:flex;align-items:center;gap:16px}.quota{font-size:.86rem;color:var(--muted)}.icon-btn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:12px;padding:8px 11px;cursor:pointer}
.chat-shell{width:min(980px,calc(100% - 28px));margin:30px auto 120px}.hero{display:flex;gap:16px;align-items:flex-start;padding:18px 2px}.hero h1{margin:0 0 6px;font-size:clamp(1.45rem,3vw,2.25rem);letter-spacing:-.035em}.hero p{margin:0;color:var(--muted)}.status-dot{width:12px;height:12px;border-radius:50%;margin-top:10px;background:var(--ok);box-shadow:0 0 0 6px color-mix(in srgb,var(--ok) 15%,transparent)}.messages{display:flex;flex-direction:column;gap:16px;margin-top:18px}.message{display:flex;gap:11px;max-width:88%}.message.user{align-self:flex-end;flex-direction:row-reverse}.avatar{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:13px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:white;font-size:.72rem;font-weight:900}.bubble{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:14px 16px;line-height:1.55;box-shadow:var(--shadow)}.message.user .bubble{background:color-mix(in srgb,var(--accent) 18%,var(--panel));border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.meta{display:block;margin-top:10px;font-size:.72rem;border-top:1px solid var(--line);padding-top:8px}.composer{position:fixed;z-index:12;left:50%;bottom:16px;transform:translateX(-50%);width:min(980px,calc(100% - 28px));background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:0 18px 60px rgba(0,0,0,.42);backdrop-filter:blur(18px)}.composer textarea{width:100%;resize:none;border:0;outline:0;background:transparent;color:var(--text);padding:6px 8px;min-height:54px}.composer-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.composer-row>div{display:flex;align-items:center;gap:12px}.turbo{font-size:.82rem;color:var(--warn)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:12px;padding:10px 14px;cursor:pointer;font-weight:700}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{border-color:transparent;background:linear-gradient(135deg,var(--accent),#5b8cff);color:#fff}.btn.danger{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}.btn.small{padding:6px 9px;font-size:.8rem}
.setup-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 36%),var(--bg)}.setup-card{width:min(780px,100%);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:clamp(22px,4vw,40px);box-shadow:var(--shadow)}.setup-card.small{width:min(480px,100%)}.setup-card h1{font-size:2rem;margin:.5em 0}.setup-card h2{grid-column:1/-1;margin:16px 0 0}.mysql-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid{display:grid;gap:14px}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{display:grid;gap:7px;color:var(--muted);font-size:.88rem}.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:11px;padding:10px 12px;outline:none}.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{border-color:var(--accent)}.span-2{grid-column:1/-1}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important}.check input{width:auto!important}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.field-label{display:block;color:var(--muted);font-size:.88rem;margin-bottom:8px}.form-actions{display:flex;align-items:end}.inline-form{margin-top:10px}
.alert,.notice{border-radius:14px;padding:12px 14px;margin:0 0 18px;border:1px solid var(--line);background:var(--panel2);line-height:1.45}.alert.success{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.alert.danger{border-color:color-mix(in srgb,var(--danger) 55%,var(--line));color:var(--danger)}.notice{border-left:4px solid var(--accent2)}
.admin-body{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}.sidebar nav{display:grid;gap:5px;margin-top:24px}.sidebar nav a,.side-bottom a{padding:9px 11px;border-radius:10px;color:var(--muted)}.sidebar nav a:hover,.sidebar nav a.active{background:var(--panel2);color:var(--text)}.sidebar nav a.active{box-shadow:inset 3px 0 var(--accent)}.side-bottom{display:grid;gap:3px;margin-top:auto}.admin-main{padding:26px clamp(18px,4vw,48px);max-width:1500px;width:100%;overflow:hidden}.admin-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.admin-head h1{margin:0;font-size:clamp(1.7rem,3vw,2.6rem);letter-spacing:-.04em}.admin-head p{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;margin:0 0 16px;box-shadow:var(--shadow)}details.panel summary{cursor:pointer;list-style:none;padding:2px}details.panel[open] summary{margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}.panel h2{margin:0 0 16px;font-size:1.1rem}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:.8rem}.stat strong{display:block;font-size:1.6rem;margin-top:5px}.status-list{display:grid;gap:12px}.status-list>div{display:grid;grid-template-columns:200px 1fr;gap:15px;padding:10px 0;border-bottom:1px solid var(--line)}.status-list>div:last-child{border-bottom:0}.pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:.72rem;color:var(--muted)}.pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}.pill.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,var(--line))}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.memory-item{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.memory-item p{margin:6px 0 0;color:var(--muted)}.danger-zone{border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}
@media(max-width:900px){.admin-body{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.side-bottom{grid-template-columns:repeat(3,auto);margin-top:16px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols-2,.mysql-fields{grid-template-columns:1fr}.span-2{grid-column:auto}.status-list>div{grid-template-columns:1fr}.admin-main{padding:20px 14px 60px}}
@media(max-width:600px){.topbar{padding:12px 14px}.topbar nav{gap:10px}.quota{display:none}.message{max-width:96%}.composer-row{align-items:flex-end}.composer-row>div{flex-direction:column;align-items:flex-end}.stat-grid{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr 1fr}.check-grid{grid-template-columns:1fr}}

/* ===== SO-AgentHub 1.4 Chat Workspace ===== */
.hub-layout{min-height:100vh}.hub-main{margin-left:280px;min-width:0}.chat-sidebar{position:fixed;inset:0 auto 0 0;width:280px;z-index:30;background:var(--panel);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:14px}.sidebar-brand-row{display:flex;align-items:center;justify-content:space-between;min-height:38px}.full{width:100%}.sidebar-section-title{margin:8px 4px 0;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.session-list{display:flex;flex-direction:column;gap:6px;overflow:auto;min-height:0;flex:1;padding-right:2px}.session-row{display:flex;gap:4px;align-items:stretch;border:1px solid transparent;border-radius:12px}.session-row:hover,.session-row.active{background:var(--panel2);border-color:var(--line)}.session-open{flex:1;min-width:0;border:0;background:transparent;color:var(--text);text-align:left;padding:9px 7px 9px 10px;cursor:pointer}.session-open strong,.session-open small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-open strong{font-size:.86rem}.session-open small{font-size:.68rem;margin-top:4px}.session-menu{width:32px;border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:9px}.session-menu:hover{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.chat-side-footer{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:12px}.chat-side-footer small{font-size:.72rem}.small-text{font-size:.8rem}.sidebar-backdrop{display:none}.mobile-only,.mobile-menu{display:none}.top-left{display:flex;align-items:center;gap:10px}.chat-shell.wide{width:min(1080px,calc(100% - 36px));margin-top:18px}.hero.compact{padding-bottom:8px}.hub-main .composer{left:calc(50% + 140px);width:min(1080px,calc(100% - 316px))}.panel-lite{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow)}.mode-bar{display:grid;grid-template-columns:minmax(150px,220px) minmax(150px,220px) 1fr;gap:12px;align-items:end}.mode-bar label{display:grid;gap:5px}.mode-bar label span{font-size:.72rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.mode-bar select{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:10px;padding:9px 10px}.mode-info{display:grid;gap:3px;align-self:center;padding-left:6px}.mode-info strong{font-size:.9rem}.mode-info small{font-size:.74rem}.quick-prompts{display:flex;gap:8px;overflow-x:auto;padding:12px 2px 2px;scrollbar-width:thin}.prompt-chip{flex:0 0 auto;min-width:145px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:13px;padding:9px 11px;cursor:pointer}.prompt-chip:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));background:var(--panel2)}.prompt-chip span,.prompt-chip small{display:block}.prompt-chip span{font-size:.82rem;font-weight:800}.prompt-chip small{font-size:.67rem;margin-top:2px}.md p{margin:.35em 0}.md h1,.md h2,.md h3{margin:.8em 0 .35em}.md h1{font-size:1.35rem}.md h2{font-size:1.15rem}.md h3{font-size:1rem}.md ul{margin:.5em 0;padding-left:1.25em}.md-gap{height:.45em}.inline-code{background:var(--bg);border:1px solid var(--line);padding:1px 5px;border-radius:6px}.md pre{overflow:auto;background:#070b13;border:1px solid var(--line);border-radius:12px;margin:.7em 0;padding:0}.md pre code{display:block;color:#dce7ff;padding:12px;white-space:pre;font-size:.84rem}.code-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #26334d;color:#91a0ba;padding:6px 10px;font-size:.7rem}.copy-code{border:0;background:transparent;color:#91a0ba;cursor:pointer}.copy-code:hover{color:#fff}
.approval-card{border-left:4px solid var(--warn)}.status-pending{color:var(--warn)}.status-executed{color:var(--ok)}.status-failed,.status-rejected{color:var(--danger)}.bar{height:9px;border-radius:999px;background:var(--panel2);overflow:hidden;border:1px solid var(--line)}.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}.split-actions{display:flex;flex-wrap:wrap;gap:8px}.badge-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--warn);color:#211600;font-size:.68rem;font-weight:900;margin-left:5px}

@media(max-width:980px){.hub-main{margin-left:0}.chat-sidebar{transform:translateX(-102%);transition:transform .2s ease;box-shadow:0 20px 70px rgba(0,0,0,.45)}.chat-sidebar.open{transform:translateX(0)}.sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:29}.mobile-only,.mobile-menu{display:inline-flex}.desktop-brand{display:none}.hub-main .composer{left:50%;width:min(1080px,calc(100% - 28px))}.mode-bar{grid-template-columns:1fr 1fr}.mode-info{grid-column:1/-1;padding:4px 0 0}.chat-shell.wide{width:min(980px,calc(100% - 28px))}}
@media(max-width:620px){.mode-bar{grid-template-columns:1fr}.mode-info{grid-column:auto}.quick-prompts{margin-right:-14px}.chat-sidebar{width:min(86vw,320px)}.topbar nav a{font-size:.82rem}.message{max-width:98%}.bubble{padding:12px 13px}.hub-main .composer{bottom:8px;border-radius:16px}.composer textarea{min-height:46px}.hero.compact h1{font-size:1.35rem}}

/* v1.4 MULTIMODAL VOICE */
.composer-tools{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;margin-bottom:.55rem}.tool-btn,.voice-toggle{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border,#30394c);background:var(--panel,#151b29);color:inherit;border-radius:12px;padding:.48rem .65rem;cursor:pointer;font:inherit}.tool-btn:hover,.tool-btn.active{border-color:var(--accent,#6ee7ff);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#6ee7ff) 18%,transparent)}.voice-toggle{cursor:pointer}.voice-toggle input{accent-color:var(--accent,#6ee7ff)}.voice-panel{margin:.2rem 0 .65rem;border:1px solid var(--border,#30394c);border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--panel,#151b29) 88%,transparent)}.voice-settings{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:.7rem;padding:.75rem;border-top:1px solid var(--border,#30394c)}.voice-settings label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem}.voice-settings select,.voice-settings input[type=text],.voice-settings input:not([type=range]){width:100%}.attachment-preview{display:flex;gap:.5rem;flex-wrap:wrap;margin:.15rem 0 .55rem}.attachment-chip{display:flex;align-items:center;gap:.45rem;border:1px solid var(--border,#30394c);border-radius:12px;padding:.35rem .45rem;background:var(--panel,#151b29);max-width:100%}.attachment-chip img{width:34px;height:34px;object-fit:cover;border-radius:8px}.attachment-chip span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip button{border:0;background:transparent;color:inherit;font-size:1.1rem;cursor:pointer}.message-attachments{display:flex;flex-wrap:wrap;gap:.55rem;margin:.65rem 0 .15rem}.message-attachments a{display:flex;flex-direction:column;gap:.25rem;text-decoration:none;color:inherit;max-width:220px}.message-attachments img{display:block;max-width:220px;max-height:180px;object-fit:cover;border-radius:12px;border:1px solid var(--border,#30394c)}.message-attachments span{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-file{display:inline-flex!important;padding:.35rem .55rem;border:1px solid var(--border,#30394c);border-radius:10px}.bubble{position:relative}.bubble-actions{position:absolute;right:.45rem;top:.35rem;display:flex;gap:.25rem}.speak-message{border:0;background:transparent;color:inherit;cursor:pointer;opacity:.55;font-size:1rem}.speak-message:hover{opacity:1}.message.assistant .md{padding-right:1.75rem}
.workflow-builder{border:1px dashed var(--border,#30394c);border-radius:14px;padding:.8rem;background:color-mix(in srgb,var(--panel,#151b29) 88%,transparent)}.workflow-add{display:flex;gap:.55rem;align-items:center;margin-bottom:.8rem}.workflow-add select{flex:1}.wf-canvas{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;min-height:60px}.wf-node{display:flex;align-items:center;gap:.4rem;border:1px solid var(--border,#30394c);background:var(--panel,#151b29);border-radius:12px;padding:.55rem .6rem;cursor:grab;user-select:none}.wf-node.dragging{opacity:.45}.wf-node .wf-index{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent,#6ee7ff);color:#071018;font-weight:700;font-size:.75rem}.wf-node button{border:0;background:transparent;color:inherit;cursor:pointer;padding:.1rem .2rem}.wf-arrow{opacity:.55;font-size:1.25rem}.wf-empty{opacity:.6;font-size:.9rem}
@media(max-width:760px){.voice-settings{grid-template-columns:1fr 1fr}.tool-btn span{display:none}.message-attachments img{max-width:160px;max-height:150px}.wf-canvas{align-items:stretch;flex-direction:column}.wf-arrow{transform:rotate(90deg);align-self:center}.wf-node{width:100%;justify-content:space-between}}

/* v1.6 reliability surfaces */
.trace-span{margin:.45rem 0;padding:.55rem .7rem;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel) 88%,transparent);font-size:.86rem}.trace-span .pill{margin-left:.35rem}.memory-item{gap:12px}.memory-item .inline-form{margin:.25rem .35rem .25rem 0}.status-list code{word-break:break-all}

/* ===== SO-AgentHub 1.6.9.4 · Desktop UI Polish =====
   Desktop-first refinement. Existing tablet/mobile breakpoints stay intact and
   can be tuned separately after device testing. */
@media (min-width:981px){
  :root{
    --chat-max:1360px;
    --sidebar-w:280px;
    --composer-gap:56px;
    --surface-soft:color-mix(in srgb,var(--panel) 92%,var(--bg));
    --surface-hover:color-mix(in srgb,var(--panel2) 78%,var(--panel));
  }

  body.hub-layout{
    min-width:0;
    background:
      radial-gradient(circle at 74% -12%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 34%),
      radial-gradient(circle at 28% 112%,color-mix(in srgb,var(--accent2) 5%,transparent),transparent 36%),
      var(--bg);
    overflow-x:hidden;
  }

  .hub-main{
    margin-left:var(--sidebar-w);
    min-height:100vh;
  }

  .chat-sidebar{
    width:var(--sidebar-w);
    padding:20px 16px 16px;
    gap:16px;
    background:color-mix(in srgb,var(--panel) 96%,var(--bg));
    border-right:1px solid color-mix(in srgb,var(--line) 82%,transparent);
    box-shadow:10px 0 38px rgba(0,0,0,.12);
  }
  .sidebar-brand-row{min-height:42px;padding:0 4px}
  .chat-sidebar .brand{font-size:1.04rem;letter-spacing:-.025em}
  .chat-sidebar .brand span{font-size:.82rem;margin-left:3px}
  .chat-sidebar .btn.primary.full{
    min-height:46px;
    border-radius:14px;
    box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 20%,transparent);
  }
  .sidebar-section-title{margin:6px 6px 0;font-size:.68rem;letter-spacing:.11em}
  .session-list{gap:7px;padding:0 3px 4px 0}
  .session-row{
    border-radius:13px;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
  }
  .session-row:hover{transform:translateX(2px)}
  .session-row:hover,.session-row.active{
    background:var(--surface-hover);
    border-color:color-mix(in srgb,var(--accent) 20%,var(--line));
  }
  .session-open{padding:10px 8px 10px 11px}
  .session-open strong{font-size:.84rem;line-height:1.25}
  .session-open small{font-size:.66rem;margin-top:5px}
  .chat-side-footer{
    gap:8px;
    padding:14px 4px 2px;
    border-top-color:color-mix(in srgb,var(--line) 78%,transparent);
  }

  .topbar{
    min-height:66px;
    padding:0 28px;
    background:color-mix(in srgb,var(--bg) 90%,transparent);
    border-bottom-color:color-mix(in srgb,var(--line) 72%,transparent);
    box-shadow:0 8px 30px rgba(0,0,0,.08);
  }
  .topbar .desktop-brand{font-size:.94rem;letter-spacing:-.02em}
  .topbar nav{gap:5px}
  .topbar nav a,
  .topbar .quota{
    display:inline-flex;
    align-items:center;
    min-height:36px;
    padding:0 11px;
    border-radius:10px;
  }
  .topbar nav a{color:var(--muted);transition:background .15s ease,color .15s ease}
  .topbar nav a:hover{background:var(--panel);color:var(--text)}
  .topbar .quota{margin:0 4px;font-size:.78rem;background:color-mix(in srgb,var(--panel) 65%,transparent)}
  .topbar .icon-btn{margin-left:4px;min-width:38px;min-height:38px;padding:7px}

  .chat-shell.wide{
    width:min(var(--chat-max),calc(100% - 56px));
    margin:20px auto 300px;
  }
  .hero.compact{
    align-items:center;
    gap:14px;
    padding:14px 4px 12px;
  }
  .hero.compact .status-dot{margin-top:0;width:10px;height:10px;box-shadow:0 0 0 5px color-mix(in srgb,var(--ok) 13%,transparent)}
  .hero.compact h1{font-size:clamp(1.7rem,2.15vw,2.35rem);line-height:1.08;margin-bottom:7px}
  .hero.compact p{font-size:.9rem;line-height:1.45}

  .panel-lite.mode-bar{
    grid-template-columns:minmax(190px,240px) minmax(190px,240px) minmax(280px,1fr);
    gap:16px;
    padding:14px 16px;
    border-radius:17px;
    background:var(--surface-soft);
    box-shadow:0 14px 36px rgba(0,0,0,.14);
  }
  .mode-bar select{min-height:42px;border-radius:11px;padding:9px 12px;background:color-mix(in srgb,var(--bg) 82%,var(--panel))}
  .mode-info{padding-left:10px;border-left:1px solid var(--line);min-height:42px;align-content:center}
  .mode-info strong{font-size:.92rem}.mode-info small{font-size:.75rem;line-height:1.35}

  .quick-prompts{gap:10px;padding:13px 2px 5px}
  .prompt-chip{
    min-width:156px;
    border-radius:14px;
    padding:10px 12px;
    background:color-mix(in srgb,var(--panel) 92%,var(--bg));
    transition:transform .15s ease,border-color .15s ease,background .15s ease;
  }
  .prompt-chip:hover{transform:translateY(-1px)}

  .messages{
    gap:19px;
    margin-top:22px;
    padding:0 4px;
  }
  .message{max-width:min(1040px,82%);gap:12px}
  .message.user{max-width:min(720px,70%)}
  .avatar{
    flex-basis:40px;
    height:40px;
    border-radius:14px;
    box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 18%,transparent);
  }
  .bubble{
    width:fit-content;
    max-width:100%;
    padding:15px 18px;
    border-radius:18px 18px 18px 7px;
    background:color-mix(in srgb,var(--panel) 96%,var(--bg));
    border-color:color-mix(in srgb,var(--line) 88%,transparent);
    box-shadow:0 12px 32px rgba(0,0,0,.14);
    line-height:1.62;
  }
  .message.user .bubble{
    border-radius:18px 18px 7px 18px;
    background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 28%,var(--panel)),color-mix(in srgb,#5b8cff 20%,var(--panel)));
    border-color:color-mix(in srgb,var(--accent) 44%,var(--line));
  }
  .message.assistant .md{max-width:82ch;padding-right:1.8rem}
  .message .meta{margin-top:12px;padding-top:9px;font-size:.69rem;line-height:1.35}
  .bubble-actions{right:.55rem;top:.48rem}
  .speak-message{border-radius:8px;padding:4px;transition:background .15s ease,opacity .15s ease}
  .speak-message:hover{background:var(--panel2)}

  .md p{margin:.42em 0}.md h1,.md h2,.md h3{line-height:1.25}
  .md pre{border-radius:14px;margin:.9em 0;box-shadow:inset 0 1px rgba(255,255,255,.02)}
  .md pre code{padding:14px 15px;font-size:.83rem;line-height:1.55}
  .code-head{padding:7px 12px}
  .inline-code{padding:2px 6px;border-radius:7px}

  .hub-main .composer{
    left:calc(50% + (var(--sidebar-w) / 2));
    bottom:18px;
    width:min(var(--chat-max),calc(100% - var(--sidebar-w) - var(--composer-gap)));
    max-height:min(47vh,440px);
    overflow:auto;
    padding:14px 15px 13px;
    border-radius:22px;
    border-color:color-mix(in srgb,var(--accent) 14%,var(--line));
    background:color-mix(in srgb,var(--panel) 95%,transparent);
    box-shadow:0 24px 72px rgba(0,0,0,.36),0 0 0 1px rgba(255,255,255,.015) inset;
    scrollbar-width:thin;
  }
  .composer-tools{gap:7px;margin-bottom:9px}
  .tool-btn,.voice-toggle{
    min-height:36px;
    padding:7px 10px;
    border-radius:10px;
    background:color-mix(in srgb,var(--panel2) 62%,var(--panel));
    font-size:.82rem;
  }
  .voice-panel{
    margin:3px 0 9px;
    border-radius:13px;
    background:color-mix(in srgb,var(--bg) 45%,var(--panel));
  }
  .voice-settings{grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;padding:10px 11px}
  .voice-settings label{font-size:.72rem}

  .composer textarea{
    min-height:66px;
    max-height:170px;
    resize:vertical;
    padding:12px 13px;
    border:1px solid var(--line);
    border-radius:14px;
    background:color-mix(in srgb,var(--bg) 62%,var(--panel));
    line-height:1.45;
    transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
  }
  .composer textarea:focus{
    border-color:color-mix(in srgb,var(--accent) 72%,var(--line));
    box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);
    background:color-mix(in srgb,var(--bg) 72%,var(--panel));
  }
  .composer-row{padding:10px 2px 0;min-height:46px}
  .composer-row #activity{font-size:.78rem}
  .composer-row>div{gap:10px}
  .composer .btn.primary#sendBtn{min-width:128px;min-height:42px;border-radius:12px;padding:10px 17px;box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 19%,transparent)}
  .turbo{font-size:.76rem}

  .attachment-preview{margin:2px 0 8px}
  .attachment-chip{background:var(--surface-hover)}

  .btn,.icon-btn,.tool-btn,.prompt-chip,.session-open,.session-menu,select,textarea{
    outline:none;
  }
  .btn:focus-visible,.icon-btn:focus-visible,.tool-btn:focus-visible,.prompt-chip:focus-visible,
  .session-open:focus-visible,.session-menu:focus-visible,select:focus-visible,textarea:focus-visible,
  .topbar a:focus-visible{
    box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent);
  }

  .session-list,.hub-main .composer,.quick-prompts{scrollbar-color:color-mix(in srgb,var(--line) 75%,transparent) transparent}
}

@media (min-width:1600px){
  .chat-shell.wide{width:min(1440px,calc(100% - 72px))}
  .hub-main .composer{width:min(1440px,calc(100% - var(--sidebar-w) - 72px))}
  .message{max-width:min(1110px,82%)}
  .message.assistant .md{max-width:88ch}
}

@media (min-width:981px) and (max-height:760px){
  .hub-main .composer{max-height:52vh;bottom:10px}
  .chat-shell.wide{margin-bottom:250px}
}


/* ===== SO-AgentHub 1.6.9.5 · Voice UX + per-user DB preferences ===== */
.composer-status{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.composer-status #activity{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-actions{flex:0 0 auto}
.voice-composer-indicator{position:relative;display:block;flex:1 1 180px;min-width:96px;max-width:250px;height:30px;border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:9px;background:color-mix(in srgb,var(--panel) 72%,transparent);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,opacity .18s ease;opacity:.72}
.voice-composer-indicator canvas{display:block;width:100%;height:100%}
.voice-top-state{position:absolute;right:7px;bottom:5px;max-width:92px;padding:2px 6px;border-radius:7px;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(5px);font-size:.62rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.voice-composer-indicator[data-mode="speaking"],.voice-composer-indicator[data-mode="listening"]{opacity:1;border-color:color-mix(in srgb,var(--accent) 62%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 8%,transparent),0 9px 28px color-mix(in srgb,var(--accent) 11%,transparent)}
.voice-composer-indicator[data-mode="processing"]{opacity:1;border-color:color-mix(in srgb,var(--accent2) 55%,var(--line))}
.voice-composer-indicator[data-mode="error"]{opacity:1;border-color:color-mix(in srgb,var(--danger) 60%,var(--line))}
.voice-settings-drawer[hidden]{display:none!important}
.voice-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid var(--line)}
.voice-panel-head>div{display:grid;gap:2px}.voice-panel-head strong{font-size:.82rem}.voice-panel-head small{font-size:.68rem}
.voice-panel-close{min-width:32px;min-height:32px;padding:4px 8px}
@media (min-width:981px){
  .topbar{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:18px}
  .topbar .top-left{min-width:0}
  .topbar .desktop-brand{white-space:nowrap}
  .voice-panel{margin:3px 0 9px;border-radius:14px;background:color-mix(in srgb,var(--bg) 42%,var(--panel));box-shadow:inset 0 1px rgba(255,255,255,.018)}
  .voice-settings-drawer{animation:soahVoiceDrawer .15s ease-out}
  .voice-settings{border-top:0;padding:11px 12px 13px}
  @keyframes soahVoiceDrawer{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
}
@media (max-width:760px){.composer-status{gap:6px}.composer-status #activity{max-width:38vw}.voice-composer-indicator{flex:1 1 110px;min-width:64px;max-width:168px;height:32px;border-radius:9px}.voice-top-state{font-size:.58rem}}


/* ===== SO-AgentHub 1.6.9.8 · One-shot Sprachfrage / privacy-first voice ===== */
.voice-question-btn.active{border-color:color-mix(in srgb,var(--accent) 76%,var(--line));background:color-mix(in srgb,var(--accent) 13%,var(--panel));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.voice-conversation-setting{grid-column:span 2;display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:16px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:11px;background:color-mix(in srgb,var(--panel) 72%,var(--bg))}
.voice-conversation-setting>span{display:grid;gap:3px}.voice-conversation-setting small{color:var(--muted);line-height:1.35}.voice-conversation-setting input{width:auto!important;min-width:18px;min-height:18px;accent-color:var(--accent)}
@media(max-width:760px){.voice-conversation-setting{grid-column:1/-1}}

/* SO-AgentHub v1.6.9.8 - microphone diagnostics / permission-safe voice */
.voice-mic-diagnostic{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px 0}.voice-mic-diagnostic small{color:var(--muted);font-size:.72rem;line-height:1.35}.voice-composer-indicator[data-mode="listening"] .voice-top-state{color:var(--text)}
@media(max-width:760px){.voice-mic-diagnostic{align-items:stretch;flex-direction:column}.voice-mic-diagnostic .tool-btn{justify-content:center}}

/* ===== SO-AgentHub 1.6.9.9 · Mobile layout + fullscreen ===== */
.mobile-brand{display:none;font-size:.92rem;letter-spacing:-.025em;white-space:nowrap}
.mobile-account-links{gap:6px;grid-template-columns:1fr 1fr;margin-bottom:5px}
.mobile-account-links a{padding:8px 9px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:.76rem;text-align:center}
.fullscreen-btn[aria-pressed="true"]{border-color:color-mix(in srgb,var(--accent) 70%,var(--line));background:color-mix(in srgb,var(--accent) 14%,var(--panel));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent)}
.soah-focus-mode{overflow:hidden}
.soah-focus-mode body{height:100dvh;overflow:auto}
.soah-focus-mode .chat-sidebar{top:0;height:100dvh}

@media(max-width:760px){
  html,body{min-height:100%;min-height:100dvh;overflow-x:hidden}
  body.hub-layout{padding-bottom:env(safe-area-inset-bottom)}
  .topbar{
    min-height:58px;
    padding:calc(8px + env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));
    gap:8px;
    background:color-mix(in srgb,var(--bg) 95%,transparent);
  }
  .top-left{min-width:0;gap:8px}
  .mobile-brand{display:block;overflow:hidden;text-overflow:ellipsis}
  .topbar nav{min-width:0;justify-content:flex-end;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
  .topbar nav::-webkit-scrollbar{display:none}
  .topbar nav a{flex:0 0 auto;padding:8px 7px;border-radius:9px;font-size:.74rem;color:var(--muted)}
  .topbar .icon-btn{flex:0 0 40px;min-width:40px;min-height:40px;padding:7px;border-radius:11px}
  .chat-shell.wide{width:calc(100% - 16px);margin:8px auto 248px}
  .hero.compact{gap:10px;padding:10px 2px 7px}
  .hero.compact h1{font-size:clamp(1.14rem,5.6vw,1.42rem);line-height:1.16}
  .hero.compact p{font-size:.78rem;line-height:1.4}
  .status-dot{width:9px;height:9px;margin-top:6px;box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 15%,transparent)}
  .panel-lite{padding:10px;border-radius:14px}
  .mode-bar{gap:9px}
  .mode-info{display:none}
  .mode-bar select{min-height:42px;padding:8px 9px}
  .quick-prompts{gap:7px;padding-top:9px;margin-right:-8px}
  .prompt-chip{min-width:132px;padding:8px 10px}
  .messages{gap:12px;margin-top:12px}
  .message{max-width:100%;gap:7px}
  .avatar{flex-basis:31px;height:31px;border-radius:10px;font-size:.63rem}
  .bubble{min-width:0;max-width:calc(100vw - 54px);padding:11px 12px;border-radius:15px;line-height:1.48;overflow-wrap:anywhere}
  .md pre{max-width:100%;border-radius:10px}
  .md pre code{font-size:.76rem;padding:10px}
  .hub-main .composer{
    left:max(8px,env(safe-area-inset-left));
    right:max(8px,env(safe-area-inset-right));
    bottom:max(8px,env(safe-area-inset-bottom));
    transform:none;
    width:auto;
    max-height:min(72dvh,620px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:9px;
    border-radius:16px;
  }
  .composer-tools{flex-wrap:nowrap;gap:6px;margin:0 0 7px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding-bottom:2px}
  .composer-tools::-webkit-scrollbar{display:none}
  .tool-btn,.voice-toggle{flex:0 0 auto;min-height:40px;padding:7px 10px;border-radius:11px}
  .voice-toggle{font-size:.78rem}
  .voice-panel{max-height:46dvh;overflow-y:auto;margin-bottom:7px}
  .voice-panel-head{position:sticky;top:0;z-index:2;background:var(--panel);padding:9px 10px}
  .voice-mic-diagnostic{gap:7px;padding:9px 10px 0}
  .voice-settings{grid-template-columns:1fr 1fr;gap:9px;padding:10px}
  .voice-settings select,.voice-settings input{min-height:39px}
  .voice-conversation-setting{padding:8px 9px}
  .composer textarea{min-height:48px;max-height:22dvh;padding:7px 6px;font-size:16px;line-height:1.4}
  .composer-row{align-items:center;gap:8px;padding-top:3px}
  .composer-row>div{flex-direction:row;align-items:center;gap:7px}
  .composer-row #activity{min-width:0;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem}
  .composer .btn.primary#sendBtn{min-height:42px;padding:9px 13px}
  .chat-sidebar{width:min(88vw,330px);padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:calc(14px + env(safe-area-inset-bottom))}
}

@media(max-width:480px){
  .topbar nav a{display:none}
  .mobile-account-links.mobile-only{display:grid}
  .mobile-brand{max-width:34vw}
  .mode-bar{grid-template-columns:1fr 1fr}
  .mode-bar label span{font-size:.64rem}
  .voice-settings{grid-template-columns:1fr}
  .voice-conversation-setting{grid-column:auto}
  .voice-panel{max-height:52dvh}
  .composer-row #activity{max-width:38vw}
  .composer-status #activity{max-width:30vw}
  .voice-top-state{display:none}
  .turbo{font-size:.68rem}
}

@media(max-width:380px){
  .mobile-brand{display:none}
  .mode-bar{grid-template-columns:1fr}
  .hero.compact p{display:none}
  .composer .btn.primary#sendBtn{min-width:auto;padding-inline:11px}
}

@media(max-width:900px) and (orientation:landscape) and (max-height:520px){
  .topbar{position:relative}
  .hero.compact,.quick-prompts{display:none}
  .chat-shell.wide{margin-top:7px;margin-bottom:190px}
  .hub-main .composer{max-height:68dvh}
  .voice-panel{max-height:43dvh}
}

/* ===== SO-AgentHub 1.6.9.12 · Desktop workspace refinement ===== */
.desktop-only{display:none}
.sidebar-head-actions{display:flex;align-items:center;gap:6px}
.provider-status{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel2) 58%,transparent);font-size:.71rem;font-weight:750;color:var(--muted)}
.provider-status i{display:block;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 12%,transparent)}
.provider-status.ok{color:var(--ok)}.provider-status.warn{color:var(--warn)}
.session-open{display:flex;align-items:flex-start;gap:9px}
.session-icon{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;margin-top:1px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--accent) 8%,var(--panel));color:var(--accent2);font-size:.75rem;font-weight:900}
.session-copy{display:block;min-width:0;flex:1}
.session-open strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;line-height:1.28;font-weight:760}
.session-open small{white-space:nowrap}
.mode-info{position:relative;display:flex;align-items:center;gap:8px}
.mode-help-btn{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--muted);cursor:help}
.mode-info>small{position:absolute;right:0;bottom:calc(100% + 10px);z-index:15;width:min(300px,70vw);padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 14px 38px rgba(0,0,0,.26);line-height:1.4;opacity:0;visibility:hidden;transform:translateY(4px);transition:.15s ease;pointer-events:none}
.mode-help-btn:hover+small,.mode-help-btn:focus-visible+small{opacity:1;visibility:visible;transform:none}
.prompt-chip{display:flex;align-items:center;gap:9px}
.prompt-icon{display:grid!important;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:9px;background:color-mix(in srgb,var(--accent) 11%,var(--panel2));color:var(--accent2)}
.prompt-copy{display:block;min-width:0}.prompt-copy strong,.prompt-copy small{display:block}.prompt-copy strong{font-size:.82rem}.prompt-copy small{font-size:.67rem;margin-top:2px}
.prompt-chip.active{border-color:color-mix(in srgb,var(--accent) 70%,var(--line));background:color-mix(in srgb,var(--accent) 13%,var(--panel));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 8%,transparent)}
.switch-control{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.78rem;cursor:pointer;white-space:nowrap}
.switch-control>input{position:absolute;opacity:0;pointer-events:none}
.switch-track{position:relative;width:36px;height:20px;border:1px solid var(--line);border-radius:999px;background:var(--bg);transition:.16s ease}
.switch-track::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:.16s ease}
.switch-control>input:checked+.switch-track{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 35%,var(--panel))}
.switch-control>input:checked+.switch-track::after{transform:translateX(16px);background:#fff}
.switch-control>input:focus-visible+.switch-track{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.mic-diagnostic-copy{display:grid;gap:2px;min-width:0}.mic-diagnostic-copy strong{font-size:.79rem}.mic-diagnostic-copy small{display:block}
.mobile-quota,.mobile-overflow,.mode-toggle,.floating-new-chat{display:none}
.desktop-nav-links{display:contents}
.mode-fields{display:contents}
.welcome-details summary{cursor:pointer;font-weight:800;list-style:none}.welcome-details summary::-webkit-details-marker{display:none}.welcome-details summary::after{content:"⌃";margin-left:8px;color:var(--muted);font-size:.75rem}.welcome-details:not([open]) summary::after{content:"⌄"}.welcome-details p{margin:.55rem 0 0}

@media(min-width:981px){
  .desktop-only{display:inline-grid}
  #collapseSidebar{place-items:center;min-width:34px;width:34px;height:34px;padding:0;font-size:1.35rem;line-height:1}
  .chat-sidebar,.hub-main,.hub-main .composer{transition:width .2s ease,margin-left .2s ease,left .2s ease}
  .chat-sidebar .btn.primary.full{transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
  .chat-sidebar .btn.primary.full:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 28%,transparent)}
  .session-list{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 38%,var(--line)) transparent}
  .session-list::-webkit-scrollbar{width:6px}.session-list::-webkit-scrollbar-thumb{border-radius:999px;background:color-mix(in srgb,var(--accent) 38%,var(--line))}
  .panel-lite.mode-bar{grid-template-columns:minmax(165px,210px) minmax(165px,210px) minmax(220px,1fr);padding:11px 13px;box-shadow:0 10px 28px rgba(0,0,0,.12)}
  .mode-fields{display:grid;grid-column:1/-1;grid-template-columns:minmax(165px,210px) minmax(165px,210px) minmax(220px,1fr);gap:16px;align-items:end}
  .mode-bar select{min-height:39px;padding-block:7px}
  .mode-info{min-height:39px;padding-left:12px}.mode-info>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .prompt-chip:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.16);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
  .prompt-chip:active{transform:translateY(-1px) scale(.99)}
  .composer textarea{min-height:92px}
  .tool-btn,.voice-toggle{min-height:39px;padding:8px 11px;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}
  .tool-btn:hover,.voice-toggle:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}
  .composer .btn.primary#sendBtn{transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
  .composer .btn.primary#sendBtn:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 14px 32px color-mix(in srgb,var(--accent) 30%,transparent)}
  .quota{border:1px solid color-mix(in srgb,var(--accent) 17%,var(--line));color:var(--text)!important;font-weight:750}

  body.sidebar-collapsed{--sidebar-w:78px}
  body.sidebar-collapsed .chat-sidebar{padding-inline:12px;align-items:center}
  body.sidebar-collapsed .sidebar-brand-row{width:100%;justify-content:center}
  body.sidebar-collapsed .sidebar-brand-row .brand{display:none}
  body.sidebar-collapsed .chat-sidebar .btn.primary.full{width:46px;min-width:46px;padding:0;font-size:0}
  body.sidebar-collapsed .chat-sidebar .btn.primary.full::before{content:"＋";font-size:1.15rem}
  body.sidebar-collapsed .sidebar-section-title,body.sidebar-collapsed .session-copy,body.sidebar-collapsed .session-menu,body.sidebar-collapsed .chat-side-footer{display:none}
  body.sidebar-collapsed .session-list{width:100%;padding:0;overflow-x:hidden}
  body.sidebar-collapsed .session-row{justify-content:center}
  body.sidebar-collapsed .session-open{justify-content:center;padding:8px;width:100%}
  body.sidebar-collapsed .session-icon{margin:0;flex-basis:32px;width:32px;height:32px}
}

@media(max-width:980px){
  .desktop-only{display:none!important}
  .session-open strong{-webkit-line-clamp:2}
  .mode-info>small{display:none}
}

@media(max-width:620px){
  .prompt-chip{gap:7px}.prompt-icon{flex-basis:26px;width:26px;height:26px}
  .switch-control>span:last-child{display:none}
  .switch-track{width:34px}
  .mic-diagnostic-copy{width:100%}
}

/* ===== SO-AgentHub 1.6.9.12 · Mobile drawer + thumb-first composer ===== */
@media(max-width:760px){
  body.hub-layout{min-height:var(--soah-viewport-height,100dvh);padding-bottom:0}
  body.drawer-open{overflow:hidden;touch-action:none}
  .hub-layout .topbar{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;min-height:58px;padding:calc(7px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 7px max(12px,env(safe-area-inset-left));gap:8px}
  .hub-layout .topbar .top-left{display:contents}
  .hub-layout .topbar #openSidebar{grid-column:1;display:grid;place-items:center}
  .hub-layout .topbar .mobile-brand{grid-column:2;display:block;max-width:none;text-align:left;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hub-layout .topbar nav{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:7px;overflow:visible}
  .desktop-nav-links,.desktop-header-action,.desktop-quota{display:none!important}
  .mobile-quota{display:inline-flex;align-items:center;min-height:34px;padding:0 9px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--panel));color:var(--text);font-size:.69rem;font-weight:800;white-space:nowrap}
  .mobile-overflow{display:block;position:relative}
  #mobileMoreBtn{display:grid;place-items:center;min-width:40px;width:40px;height:40px;padding:0;font-size:1.35rem}
  .mobile-more-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:50;display:grid;min-width:210px;padding:7px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 18px 48px rgba(0,0,0,.32)}
  .mobile-more-menu[hidden]{display:none}
  .mobile-more-menu button{min-height:45px;padding:9px 11px;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;font-size:.86rem}
  .mobile-more-menu button:hover,.mobile-more-menu button:focus-visible{background:var(--panel2)}

  .chat-sidebar{width:min(88vw,350px);max-width:350px;padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom));gap:13px;overscroll-behavior:contain;touch-action:pan-y}
  .chat-sidebar.open{transform:translateX(0)}
  .sidebar-backdrop.show{display:block;position:fixed;inset:0;z-index:29;background:rgba(3,7,18,.68);backdrop-filter:blur(2px)}
  .chat-sidebar .btn.primary.full{min-height:52px;font-size:.95rem}
  .sidebar-section-title{margin-top:5px}
  .session-list{position:relative;gap:8px;overflow-x:hidden;overscroll-behavior-y:contain}
  .session-list::before{content:"Zum Aktualisieren weiterziehen";display:block;height:0;overflow:hidden;text-align:center;color:var(--muted);font-size:.7rem;transition:height .15s ease,padding .15s ease}
  .session-list.pull-ready::before{height:32px;padding-top:8px;color:var(--accent2);content:"Loslassen zum Aktualisieren"}
  .session-list.refreshing::before{height:32px;padding-top:8px;content:"Chats werden aktualisiert …"}
  .session-row{position:relative;min-height:54px;overflow:hidden;transform:translateX(0);transition:transform .16s ease,background .16s ease,border-color .16s ease}
  .session-row.swiping{transform:translateX(var(--swipe-x,0));transition:none}
  .session-open{min-height:54px;padding:9px 8px 9px 10px;align-items:center}
  .session-icon{flex-basis:32px;width:32px;height:32px}
  .session-open strong{font-size:.88rem;line-height:1.3;-webkit-line-clamp:2}
  .session-open small{font-size:.7rem}
  .session-row.show-full{overflow:visible;z-index:4;background:var(--panel2);box-shadow:0 12px 30px rgba(0,0,0,.25)}
  .session-row.show-full .session-open strong{-webkit-line-clamp:unset}
  .session-menu{flex:0 0 48px;width:48px;min-height:52px;opacity:.45;font-size:1.2rem}
  .session-row.delete-revealed .session-menu{opacity:1;background:color-mix(in srgb,var(--danger) 18%,var(--panel));color:var(--danger)}
  .session-row.pinned{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--panel))}
  .chat-side-footer{gap:9px;padding-top:13px}
  .mobile-account-links.mobile-only{display:grid;grid-template-columns:1fr 1fr;gap:7px;order:3;margin:3px 0 0}
  .mobile-account-links a{display:grid;place-items:center;min-height:46px;font-size:.8rem}
  .provider-status{min-height:32px}

  .chat-shell.wide{width:calc(100% - 32px);margin:10px auto 282px}
  .hero.compact{padding:8px 0 7px}.hero.compact h1{font-size:1.28rem}.hero.compact p{font-size:.8rem}
  .mode-bar.panel-lite{display:block;padding:0;border-radius:14px;overflow:visible}
  .mode-toggle{display:flex;width:100%;min-height:50px;align-items:center;justify-content:space-between;padding:11px 13px;border:0;background:transparent;color:var(--text);font-size:.88rem;font-weight:800;text-align:left}
  .mode-toggle-arrow{transition:transform .16s ease}.mode-bar:not(.mobile-collapsed) .mode-toggle-arrow{transform:rotate(180deg)}
  .mode-fields{display:grid;grid-template-columns:1fr;gap:11px;padding:0 12px 12px;border-top:1px solid var(--line)}
  .mode-fields>label:first-child{padding-top:11px}
  .mode-bar.mobile-collapsed .mode-fields{display:none}
  .mode-fields .mode-info{display:flex;min-height:36px;padding:0;border:0}
  .mode-fields .mode-info>small{display:block;right:auto;left:0;bottom:calc(100% + 7px)}
  .mode-bar select{width:100%;min-height:48px;font-size:16px}

  .quick-prompts{display:flex;gap:10px;margin-right:-16px;padding:11px 0 6px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:0}
  .prompt-chip{min-width:154px;min-height:50px;padding:9px 11px;scroll-snap-align:start}
  .prompt-copy strong{font-size:.86rem}.prompt-copy small{font-size:.7rem}

  .messages{gap:14px;margin-top:14px;padding:0}
  .message,.message.user{width:100%;max-width:100%;gap:8px}
  .bubble{flex:1;width:auto;max-width:calc(100% - 39px);padding:14px 15px;font-size:16px;line-height:1.55}
  .welcome-message .bubble{max-width:calc(100% - 39px)}
  .welcome-details p{font-size:.9rem;color:var(--muted)}

  .hub-main .composer{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));width:auto;max-height:min(calc(var(--soah-viewport-height,100dvh) - 72px),620px);padding:10px;border-radius:18px;box-shadow:0 22px 65px rgba(0,0,0,.42)}
  .composer-tools{gap:8px;margin-bottom:9px;padding:1px 0 4px;scroll-snap-type:x proximity}
  .tool-btn,.voice-toggle{min-height:44px;padding:9px 12px;scroll-snap-align:start;font-size:.82rem}
  .tool-btn span,.voice-toggle span{display:inline}
  .composer textarea{min-height:84px;max-height:min(26dvh,170px);padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--bg) 60%,var(--panel));font-size:16px;line-height:1.45;resize:none}
  .composer-row{min-height:50px;padding:8px 1px 0;align-items:center}
  .composer-row>div{display:flex;flex-direction:row;align-items:center;gap:9px}
  .composer-row #activity{max-width:31vw;font-size:.71rem}
  .composer .btn.primary#sendBtn{min-width:122px;min-height:48px;padding:11px 16px;font-size:.92rem;border-radius:13px}
  .switch-control{min-height:42px}.switch-track{flex:0 0 auto}
  .floating-new-chat{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(238px + env(safe-area-inset-bottom));z-index:11;display:grid;place-items:center;width:52px;height:52px;border:0;border-radius:50%;background:linear-gradient(135deg,var(--accent),#5b8cff);color:#fff;font-size:1.45rem;box-shadow:0 14px 36px color-mix(in srgb,var(--accent) 35%,rgba(0,0,0,.3));transition:transform .16s ease,opacity .16s ease}
  .floating-new-chat:active{transform:scale(.94)}
  body.drawer-open .floating-new-chat,body.keyboard-open .floating-new-chat{opacity:0;pointer-events:none}
}

@media(max-width:430px){
  .mobile-quota{font-size:.64rem;padding-inline:7px}
  .hub-layout .topbar{grid-template-columns:40px minmax(0,1fr) auto;padding-inline:10px}
  .hub-layout .topbar .mobile-brand{font-size:.86rem}
  .chat-shell.wide{width:calc(100% - 28px)}
  .composer-row #activity{display:none}
  .composer-row{justify-content:flex-end}
  .composer-row>div{width:100%;justify-content:space-between}
  .floating-new-chat{right:14px}
}

/* ===== SO-AgentHub 1.6.9.13 · Modern Chat Experience ===== */
:root{--motion-fast:150ms;--motion-normal:240ms;--glass:color-mix(in srgb,var(--panel) 82%,transparent)}
body.hub-layout{position:relative;isolation:isolate}
body.hub-layout::before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;background:radial-gradient(circle at 20% 18%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 24%),radial-gradient(circle at 82% 76%,color-mix(in srgb,var(--accent2) 9%,transparent),transparent 25%);filter:blur(28px);animation:soahAtmosphere 24s ease-in-out infinite alternate}
@keyframes soahAtmosphere{0%{transform:translate3d(-1.5%,-1%,0) scale(1)}100%{transform:translate3d(1.5%,1%,0) scale(1.04)}}
.panel-lite,.composer,.bubble,.chat-sidebar,.mobile-more-menu{backdrop-filter:blur(20px) saturate(1.12);-webkit-backdrop-filter:blur(20px) saturate(1.12)}
.panel-lite,.bubble{background:var(--glass)}
.message{animation:soahMessageIn var(--motion-normal) cubic-bezier(.2,.8,.2,1) both;transform-origin:bottom left}
.message.user{transform-origin:bottom right}
@keyframes soahMessageIn{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
.btn,.tool-btn,.icon-btn,.prompt-chip,.agent-card,.message-actions button,.smart-suggestions button{transition:transform var(--motion-fast) ease,box-shadow var(--motion-fast) ease,border-color var(--motion-fast) ease,background var(--motion-fast) ease,opacity var(--motion-fast) ease}
.btn:active,.tool-btn:active,.icon-btn:active,.prompt-chip:active,.agent-card:active{transform:scale(.96)}

.agent-cards{grid-column:1/-1;display:flex;gap:9px;overflow-x:auto;padding:1px 1px 3px;scrollbar-width:thin;scroll-snap-type:x proximity}
.agent-card{display:flex;align-items:center;gap:9px;flex:0 0 218px;min-height:58px;padding:8px 10px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--panel) 86%,transparent);color:var(--text);text-align:left;cursor:pointer;scroll-snap-align:start}
.agent-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 12%,transparent)}
.agent-card.active{border-color:color-mix(in srgb,var(--accent) 72%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--panel));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 8%,transparent)}
.agent-avatar{display:grid;place-items:center;flex:0 0 35px;width:35px;height:35px;border-radius:11px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:.69rem;font-weight:900;box-shadow:0 7px 18px color-mix(in srgb,var(--accent) 24%,transparent)}
.agent-card-copy{display:grid;gap:2px;min-width:0}.agent-card-copy strong{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-card-copy small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.64rem;line-height:1.25}

.typing-message .bubble{display:flex;align-items:center;gap:12px;min-height:50px;color:var(--muted)}
.typing-label{font-size:.82rem}.typing-dots{display:inline-flex;align-items:center;gap:4px}.typing-dots i{display:block;width:6px;height:6px;border-radius:50%;background:var(--accent);animation:soahDot 1.05s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.14s}.typing-dots i:nth-child(3){animation-delay:.28s}
@keyframes soahDot{0%,70%,100%{transform:translateY(0);opacity:.35}35%{transform:translateY(-5px);opacity:1}}

.message-actions{display:flex;align-items:center;gap:4px;margin-top:10px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);opacity:.58}
.message:hover .message-actions,.message:focus-within .message-actions{opacity:1}
.message-actions button{display:grid;place-items:center;width:31px;height:29px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:.9rem}
.message-actions button:hover{border-color:var(--line);background:var(--panel2);color:var(--text);transform:translateY(-1px)}
.message-transparency{margin-top:8px;border:1px solid color-mix(in srgb,var(--line) 76%,transparent);border-radius:10px;background:color-mix(in srgb,var(--bg) 30%,transparent);font-size:.72rem}
.message-transparency summary{padding:7px 9px;cursor:pointer;color:var(--muted);font-weight:750}
.transparency-body{padding:0 10px 9px;color:var(--muted)}.transparency-body p{margin:.3em 0}.transparency-body ul{margin:.4em 0;padding-left:1.2rem}.source-links{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.source-links a{padding:4px 7px;border:1px solid var(--line);border-radius:999px;color:var(--accent2);background:var(--panel)}
.smart-suggestions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.smart-suggestions button{min-height:32px;padding:5px 9px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));color:var(--text);font-size:.7rem;cursor:pointer}
.smart-suggestions button:hover{transform:translateY(-1px);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--panel))}
.message.assistant+.message.assistant{margin-top:-9px}.message.assistant+.message.assistant>.avatar{visibility:hidden}

.conversation-memory{margin:12px 0 4px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent) 6%,var(--panel));box-shadow:0 10px 28px rgba(0,0,0,.1)}
.conversation-memory details{padding:0}.conversation-memory summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:43px;padding:8px 12px;cursor:pointer;font-size:.78rem;font-weight:800}.conversation-memory summary small{font-size:.64rem;font-weight:500}.conversation-memory p{margin:0;padding:0 13px 12px;color:var(--muted);font-size:.78rem;line-height:1.5;white-space:pre-wrap}

.prompt-wrap{position:relative}.slash-menu{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:35;max-height:280px;overflow:auto;padding:7px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 18px 50px rgba(0,0,0,.32);backdrop-filter:blur(20px)}
.slash-menu[hidden]{display:none}.slash-menu button{display:grid;width:100%;gap:2px;min-height:48px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.slash-menu button:hover,.slash-menu button:focus-visible{background:var(--panel2)}.slash-menu strong{color:var(--accent2);font-size:.82rem}.slash-menu small{font-size:.7rem}

.artifact-canvas,.quick-action-sheet{position:fixed;inset:0;z-index:100}.artifact-canvas[hidden],.quick-action-sheet[hidden]{display:none}.artifact-backdrop,.sheet-backdrop{position:absolute;inset:0;background:rgba(3,7,18,.72);backdrop-filter:blur(5px)}
.artifact-panel{position:absolute;inset:24px;display:grid;grid-template-rows:auto 1fr;max-width:1440px;margin:auto;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 30px 100px rgba(0,0,0,.5);overflow:hidden;animation:soahCanvasIn .22s ease-out both}
@keyframes soahCanvasIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.artifact-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 17px;border-bottom:1px solid var(--line)}.artifact-panel>header h2{margin:2px 0 0;font-size:1.08rem}.artifact-panel>header small{color:var(--accent2)}.artifact-panel>header>div:last-child{display:flex;gap:7px}.artifact-content{overflow:auto;padding:clamp(16px,3vw,38px);line-height:1.65}.artifact-content>*{max-width:1000px;margin-left:auto;margin-right:auto}.artifact-content pre{overflow:auto;padding:14px;border:1px solid var(--line);border-radius:13px;background:#070b13;color:#dce7ff;white-space:pre}
body.modal-open{overflow:hidden}

.quick-action-sheet{display:none}.sheet-panel{position:absolute;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));display:grid;gap:7px;padding:9px 12px 12px;border:1px solid var(--line);border-radius:22px;background:var(--panel);box-shadow:0 25px 80px rgba(0,0,0,.48);animation:soahSheetIn .2s ease-out both}.sheet-handle{width:42px;height:4px;margin:1px auto 4px;border-radius:99px;background:var(--line)}.sheet-panel h2{margin:3px 5px 6px;font-size:1rem}.sheet-panel button{min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--text);text-align:left;font-weight:700}@keyframes soahSheetIn{from{transform:translateY(25px);opacity:0}to{transform:none;opacity:1}}

@media(max-width:760px){
  .agent-cards{margin:0 -1px;padding:0 12px 12px}.mode-bar.mobile-collapsed .agent-cards{display:none}.agent-card{flex-basis:205px;min-height:62px}
  .message-actions{opacity:1}.message-actions button{width:38px;height:35px;border-color:color-mix(in srgb,var(--line) 62%,transparent)}
  .smart-suggestions{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.smart-suggestions::-webkit-scrollbar{display:none}.smart-suggestions button{flex:0 0 auto;min-height:38px;padding:7px 11px}
  .conversation-memory{margin-top:10px}.conversation-memory summary{min-height:48px}.conversation-memory summary small{display:none}
  .artifact-panel{inset:env(safe-area-inset-top) 0 0;border-radius:18px 18px 0 0}.artifact-panel>header{padding:11px 12px}.artifact-panel>header .tool-btn{font-size:.72rem;padding:7px 8px}.artifact-content{padding:16px 14px 80px;font-size:16px}
  .quick-action-sheet:not([hidden]){display:block}
  .message.assistant+.message.assistant{margin-top:-5px}
  #micBtn{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--panel));font-weight:800}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}body.hub-layout::before{animation:none}}

/* ===== SO-AgentHub 1.7.0 · streaming, branches, notes and editable canvas ===== */
.streaming-message .md::after{content:"";display:inline-block;width:8px;height:1.05em;margin-left:3px;vertical-align:-2px;border-radius:2px;background:var(--accent);animation:soahCursor .8s steps(1) infinite}
@keyframes soahCursor{50%{opacity:0}}
.stream-stop{margin-right:2px}.stream-stop[hidden]{display:none!important}.message-actions button.active{color:#f7c948;border-color:color-mix(in srgb,#f7c948 48%,var(--line));background:color-mix(in srgb,#f7c948 10%,var(--panel2))}
.agent-timeline{position:relative;display:grid;gap:7px;margin:9px 0;padding:0 0 0 22px;list-style:none}.agent-timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:color-mix(in srgb,var(--accent) 35%,var(--line))}.agent-timeline li{position:relative}.agent-timeline li::before{content:"";position:absolute;left:-19px;top:.48em;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.artifact-editor{display:block;width:100%;height:calc(100% - 72px);min-height:420px;padding:clamp(16px,3vw,38px);border:0;outline:0;resize:none;background:var(--bg);color:var(--text);font:500 15px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace}.artifact-editor[hidden]{display:none}.artifact-content[hidden]{display:none}
.note-dialog{position:fixed;inset:0;z-index:110}.note-dialog[hidden]{display:none}.note-panel{position:absolute;top:50%;left:50%;width:min(560px,calc(100% - 28px));transform:translate(-50%,-50%);padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 28px 90px rgba(0,0,0,.5)}.note-panel h2{margin:0 0 12px;font-size:1.05rem}.note-panel textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text);font-size:16px;resize:vertical}.note-panel>div{display:flex;justify-content:flex-end;gap:9px;margin-top:12px}
.favorites-open{min-height:38px;margin:-3px 4px 0;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);text-align:left;cursor:pointer}.favorites-panel{position:fixed;inset:0;z-index:115}.favorites-dialog{position:absolute;top:8vh;bottom:8vh;left:50%;width:min(720px,calc(100% - 28px));transform:translateX(-50%);display:flex;flex-direction:column;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:0 28px 90px rgba(0,0,0,.55)}.favorites-dialog header{display:flex;align-items:center;justify-content:space-between}.favorites-dialog h2{margin:0;font-size:1.1rem}.favorites-list{display:grid;gap:9px;margin-top:13px;overflow:auto}.favorites-list button{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--text);text-align:left;cursor:pointer}.favorites-list strong,.favorites-list small{display:block}.favorites-list small{margin-top:3px;color:var(--accent2)}.favorites-list p{margin:7px 0 0;color:var(--muted);line-height:1.45}
.project-chat-btn{grid-column:1/-1;justify-self:start;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;font-size:.74rem;font-weight:750}.project-chat-btn:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
.session-pin{flex:0 0 30px;width:30px;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.session-pin:hover,.session-row.pinned .session-pin{color:var(--accent2);background:color-mix(in srgb,var(--accent) 10%,transparent)}body.sidebar-collapsed .session-pin{display:none}
.session-pin:focus-visible,.project-chat-btn:focus-visible,.favorites-open:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 36%,transparent);outline-offset:2px}
@media(max-width:760px){.stream-stop{min-height:48px;padding:10px}.artifact-editor{min-height:0;height:calc(100% - 62px);padding:16px 14px;font-size:16px}.note-panel{top:auto;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);border-radius:20px}.project-chat-btn{margin:0 12px 12px}.mode-bar.mobile-collapsed .project-chat-btn{display:none}.session-pin{flex-basis:44px;width:44px;min-height:52px}}

/* v1.7.0.4 · External DB column access matrix */
.db-access-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin:18px 0 10px}.db-access-head h3{margin:0 0 4px}.db-access-matrix{display:grid;gap:10px;margin:10px 0 14px}.db-access-table{border:1px solid var(--border,#2b3448);border-radius:12px;background:rgba(255,255,255,.025);overflow:hidden}.db-access-table>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer}.db-access-table>summary::marker{color:var(--muted,#8d98ad)}.db-table-toggle{margin:0;min-width:0}.db-access-options{padding:0 14px 14px;border-top:1px solid var(--border,#2b3448)}.db-access-options>.check{margin:12px 0}.db-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.db-column{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid var(--border,#2b3448);border-radius:9px;background:rgba(255,255,255,.02);min-width:0}.db-column input{margin-top:3px;flex:0 0 auto}.db-column span{display:grid;min-width:0}.db-column b{overflow-wrap:anywhere}.db-column small{color:var(--muted,#8d98ad);overflow-wrap:anywhere}.db-sensitive{opacity:.58;background:rgba(255,96,96,.04)}.db-sensitive b::before{content:'🔒 ';font-size:.82em}@media(max-width:700px){.db-access-head{display:block}.db-access-head>.pill{display:inline-block;margin-top:8px}.db-columns{grid-template-columns:1fr}.db-access-table>summary{align-items:flex-start}}

/* ===== SO-AgentHub 1.7.1.1 · Phase 6A Context + Portal Actions ===== */
.context-tool-btn.active{border-color:color-mix(in srgb,var(--accent2) 55%,var(--line));background:color-mix(in srgb,var(--accent2) 12%,var(--panel2))}
.context-panel{margin:8px 0 10px;padding:13px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--panel2) 72%,var(--panel));box-shadow:inset 0 1px rgba(255,255,255,.025)}.context-panel[hidden]{display:none}.context-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}.context-panel-head strong,.context-panel-head small{display:block}.context-panel-head small{margin-top:2px;font-size:.72rem}.context-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.context-grid label{display:grid;gap:5px;color:var(--muted);font-size:.76rem}.context-grid input{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);padding:9px 10px;outline:none}.context-grid input:focus{border-color:var(--accent2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent2) 10%,transparent)}.context-location-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:9px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.context-location-row>div{min-width:0}.context-location-row strong,.context-location-row small{display:block}.context-location-row strong{font-size:.8rem}.context-location-row small{font-size:.7rem;margin-top:2px}.context-actions{display:flex;align-items:center;gap:10px;margin-top:10px}.context-actions small{font-size:.7rem;line-height:1.35}
.portal-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}.portal-action-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--accent2) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent2) 8%,var(--panel2));color:var(--text);cursor:pointer;font-weight:760;font-size:.76rem}.portal-action-chip:hover,.portal-action-chip:focus-visible{border-color:var(--accent2);background:color-mix(in srgb,var(--accent2) 15%,var(--panel2));outline:none}.portal-action-chip span{white-space:nowrap}
.portal-overlay{position:fixed;inset:0;z-index:180}.portal-overlay[hidden]{display:none}.portal-overlay-backdrop{position:absolute;inset:0;background:rgba(2,6,14,.76);backdrop-filter:blur(6px)}.portal-overlay-panel{position:absolute;inset:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0;width:min(1600px,calc(100% - 20px));margin:auto;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 30px 100px rgba(0,0,0,.58);overflow:hidden}.portal-overlay-panel.portal-maximized,.portal-overlay-panel:fullscreen{inset:0;width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}.portal-overlay-header{grid-row:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:50px;padding:7px 9px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 96%,transparent);backdrop-filter:blur(16px)}.portal-overlay-header>strong{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.portal-nav{display:flex;align-items:center;gap:5px}.portal-overlay-header .icon-btn{min-width:38px;min-height:36px;padding:6px 9px}.portal-overlay-notice{grid-row:2;padding:7px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--warn) 7%,var(--panel));color:var(--muted);font-size:.72rem;text-align:center}.portal-overlay-notice[hidden]{display:none}.portal-overlay iframe{grid-row:3;display:block;width:100%;height:100%;min-width:0;min-height:0;border:0;background:#fff}body.portal-overlay-open{overflow:hidden}
@media(max-width:760px){.context-grid{grid-template-columns:1fr}.context-location-row{grid-template-columns:1fr 1fr}.context-location-row>div{grid-column:1/-1}.context-actions{align-items:flex-start;flex-direction:column}.context-actions .btn{width:100%}.portal-actions{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}.portal-actions::-webkit-scrollbar{display:none}.portal-action-chip{flex:0 0 auto;min-height:40px}.portal-overlay-panel{inset:max(4px,env(safe-area-inset-top)) 4px max(4px,env(safe-area-inset-bottom));width:calc(100% - 8px);border-radius:14px}.portal-overlay-header{grid-template-columns:auto minmax(64px,1fr) auto;gap:5px;padding:5px}.portal-overlay-header .icon-btn{min-width:34px;min-height:34px;padding:5px 7px}.portal-nav{gap:3px}.portal-overlay-header>strong{font-size:.76rem}.portal-overlay-notice{font-size:.66rem;padding:6px 8px}}
.context-panel{max-height:min(52vh,430px);overflow:auto;overscroll-behavior:contain}


/* ===== SO-AgentHub 1.7.1.2 · Compact Desktop Composer + Knowledge Readability ===== */
@media(min-width:981px){
  .chat-shell.wide{margin-bottom:220px}
  .hub-main .composer{
    bottom:14px;
    max-height:min(38vh,330px);
    padding:10px 12px 9px;
    border-radius:18px;
  }
  .composer-tools{
    flex-wrap:nowrap;
    gap:6px;
    margin-bottom:6px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
  }
  .composer-tools::-webkit-scrollbar{display:none}
  .tool-btn,.voice-toggle{
    flex:0 0 auto;
    min-height:34px;
    padding:6px 9px;
    border-radius:9px;
    font-size:.78rem;
  }
  .composer textarea{
    min-height:54px;
    max-height:128px;
    padding:10px 12px;
    resize:vertical;
  }
  .composer-row{
    min-height:40px;
    padding:6px 1px 0;
  }
  .composer-row #activity{font-size:.74rem}
  .composer .btn.primary#sendBtn{
    min-width:116px;
    min-height:40px;
    padding:8px 14px;
  }
  .message.assistant .md{
    max-width:88ch;
  }
  .message .meta{
    font-size:.68rem;
    line-height:1.35;
  }
}
@media(min-width:981px) and (max-height:850px){
  .chat-shell.wide{margin-bottom:195px}
  .hub-main .composer{
    bottom:10px;
    max-height:min(35vh,285px);
    padding:9px 11px 8px;
  }
  .composer textarea{
    min-height:48px;
    max-height:104px;
  }
  .composer-row{
    min-height:36px;
    padding-top:5px;
  }
}

/* Chat navigation: searchable, owner-scoped sections. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.chat-search input{width:100%;min-width:0;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--bg);color:var(--text);font:inherit;font-size:.86rem}
.sidebar-short-list,.sidebar-projects,.sidebar-library{display:grid;gap:5px;min-height:0;max-height:25vh;overflow-y:auto;overscroll-behavior:contain}
.sidebar-short-list:empty,.sidebar-projects:empty{display:none}
.sidebar-short-list{max-height:23vh;color:var(--muted);font-size:.75rem}
.sidebar-short-list .session-row{min-height:44px}
.sidebar-short-list .session-open{padding-block:6px}
.sidebar-short-list .session-menu{display:none}
.sidebar-projects button,.sidebar-library button,.sidebar-more{min-height:42px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);text-align:left;font:inherit;font-size:.81rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-projects button:hover,.sidebar-projects button.active,.sidebar-library button:hover,.sidebar-more:hover{background:var(--panel2);border-color:var(--line)}
.sidebar-library .favorites-open{margin:0;min-height:42px}
.sidebar-recent-head{display:flex;align-items:center;justify-content:space-between;gap:3px}
.sidebar-recent-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-recent-head button{padding:4px 3px;border:0;background:transparent;color:var(--accent2);font-size:.68rem;cursor:pointer;white-space:nowrap}
.sidebar-more{flex:none;text-align:center;min-height:40px;border-color:var(--line)}
.sidebar-more[hidden]{display:none}
.chat-sidebar{gap:9px}
@media(max-width:980px){.chat-sidebar{height:100dvh;max-height:100dvh}.sidebar-short-list,.sidebar-projects{max-height:20dvh}}
@media(max-width:760px){.chat-sidebar{gap:8px}.chat-search input{font-size:16px}.sidebar-short-list .session-open,.sidebar-projects button,.sidebar-library button{min-height:46px}.session-list{flex:1;min-height:65px}.hub-main .composer{max-height:min(calc(var(--soah-viewport-height,100dvh) - 74px),620px)}}
@media(max-width:900px) and (orientation:landscape) and (max-height:520px){.chat-sidebar{gap:5px;overflow-y:auto}.sidebar-short-list,.sidebar-projects{max-height:18dvh}.chat-side-footer{flex:none}.hub-main .composer{max-height:58dvh}.composer textarea{min-height:46px;max-height:18dvh}.chat-shell.wide{margin-bottom:185px}}
.file-library-layer{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:env(safe-area-inset-top) 10px env(safe-area-inset-bottom);background:rgba(0,0,0,.72)}
.file-library-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;width:min(680px,100%);max-height:min(85dvh,850px);padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow)}
.file-library-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px}.file-library-panel h2{margin:0;font-size:1.1rem}
.file-library-panel button{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:var(--panel2);color:var(--text);cursor:pointer}
.file-library-list{display:grid;align-content:start;gap:7px;min-height:0;overflow:auto;overflow-wrap:anywhere}.file-library-list button{text-align:left;white-space:normal}
@media(max-height:520px) and (orientation:landscape){.file-library-panel{max-height:96dvh;padding:9px}}

/* v1.7.3.5 — Sidebar/navigation hardening. Keep this block last so a review build
   cannot fall back to the browser's native button/input appearance. */
.chat-sidebar{gap:10px;padding:16px 14px;overflow:hidden}
.chat-search-wrap{display:grid;gap:4px;min-width:0}
.chat-search{position:relative;display:flex;align-items:center;min-width:0}
.chat-search-icon{position:absolute;left:12px;z-index:1;color:var(--muted);font-size:1rem;pointer-events:none}
.chat-search input{appearance:none;-webkit-appearance:none;display:block;width:100%;height:44px;padding:9px 38px 9px 36px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:color-mix(in srgb,var(--bg) 82%,var(--panel2))!important;color:var(--text)!important;outline:none;box-shadow:none}
.chat-search input:focus{border-color:color-mix(in srgb,var(--accent) 65%,var(--line))!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)!important}
.chat-search-clear{appearance:none;-webkit-appearance:none;position:absolute;right:6px;width:32px;height:32px;border:0!important;border-radius:9px!important;background:transparent!important;color:var(--muted)!important;font:700 1.15rem/1 system-ui,sans-serif;cursor:pointer}
.chat-search-clear:hover{background:var(--panel2)!important;color:var(--text)!important}.chat-search-clear[hidden]{display:none!important}
.chat-search-status{min-height:14px;padding:0 5px;color:var(--muted);font-size:.67rem;line-height:1.2}
.sidebar-section-title{margin:7px 5px 0;font-size:.67rem;letter-spacing:.12em}
.sidebar-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.sidebar-section-heading .sidebar-section-title{margin-right:0}.sidebar-add-btn{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);font:700 1rem/1 system-ui;cursor:pointer}.sidebar-add-btn:hover{border-color:var(--accent);color:var(--accent2)}
.sidebar-short-list,.sidebar-projects{max-height:148px}.sidebar-library{max-height:none;overflow:visible;grid-template-columns:1fr 1fr;gap:7px}
.sidebar-projects button,.sidebar-library button,.sidebar-more{appearance:none;-webkit-appearance:none;border:1px solid var(--line)!important;background:color-mix(in srgb,var(--panel2) 72%,transparent)!important;color:var(--text)!important;border-radius:11px!important;box-shadow:none;font-weight:650}
.sidebar-library button{display:flex;align-items:center;justify-content:flex-start;min-width:0;min-height:44px;padding:9px 10px!important;font-size:.77rem!important}
.sidebar-projects button:hover,.sidebar-library button:hover,.sidebar-more:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))!important;background:color-mix(in srgb,var(--accent) 9%,var(--panel2))!important}
.sidebar-recent-head{margin-top:7px}.sidebar-recent-head button{appearance:none;-webkit-appearance:none;border:1px solid var(--line);border-radius:999px;padding:4px 7px;background:var(--panel2);color:var(--muted);font-size:.63rem}.sidebar-recent-head button[aria-pressed="true"]{color:var(--accent2);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.session-row{min-width:0}.session-open{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px}.session-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:8px}.session-copy{min-width:0}.session-pin,.session-menu{flex:0 0 30px;min-width:30px}
.sidebar-project-row{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px;gap:5px;align-items:center;min-width:0}.sidebar-project-row>button{min-width:0}.sidebar-project-row .project-quick,.sidebar-project-row .project-menu{display:grid;place-items:center;padding:0!important;text-align:center;font-size:1rem!important}.project-panel{width:min(560px,calc(100% - 24px));max-height:min(88dvh,760px);overflow:auto}.project-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.project-panel header h2{margin:2px 0 0}.project-panel header small{color:var(--muted)}.project-panel label{display:grid;gap:6px;color:var(--muted);font-size:.78rem}.project-panel input,.project-panel textarea,.project-panel select{width:100%;min-height:44px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font:inherit;resize:vertical}.project-panel label>small{line-height:1.4}.project-dialog-actions{display:grid!important;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px}.project-dialog-actions [hidden]{display:none!important}.btn.danger{border-color:color-mix(in srgb,#ef4444 55%,var(--line));color:#fecaca;background:color-mix(in srgb,#7f1d1d 28%,var(--panel2))}
@media(max-width:520px){.project-dialog-actions{grid-template-columns:1fr 1fr}.project-dialog-actions>span{display:none}.project-dialog-actions .danger{grid-column:1/-1}.project-panel{padding:14px}.project-panel textarea{max-height:24dvh}}
@media(max-width:620px){.chat-sidebar{width:min(92vw,350px);padding-inline:14px}.sidebar-library{grid-template-columns:1fr}.sidebar-library button{min-height:46px;font-size:.82rem!important}.sidebar-short-list,.sidebar-projects{max-height:126px}}
@media(max-width:900px) and (orientation:landscape) and (max-height:520px){.chat-sidebar{overflow-y:auto;gap:6px}.chat-search-status{display:none}.sidebar-short-list,.sidebar-projects{max-height:92px}.sidebar-library{grid-template-columns:1fr 1fr}.sidebar-section-title{margin-top:3px}.chat-side-footer{position:static}}

/* ===== SO-AgentHub 1.7.3.5 · viewport/container containment ===== */
html,body{max-width:100%;overflow-x:hidden}
.hub-main,.chat-shell,.messages,.message,.bubble,.md,.md>*{min-width:0;max-width:100%}
.md,.bubble,.file-card,.attachment-card,.image-result,.image-result-card{overflow-wrap:anywhere;word-break:break-word}
.md a,.bubble a,.attachment-name,.file-name{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.md img,.bubble img,.image-result img,.image-result-card img,video,canvas{max-width:100%;height:auto}
.md pre,.bubble pre{max-width:100%;overflow:auto}
.md table,.bubble table{display:block;max-width:100%;overflow-x:auto}

@media (min-width:981px){
  .hub-main{width:calc(100% - var(--sidebar-w));max-width:calc(100% - var(--sidebar-w));overflow-x:clip}
  .hub-main .topbar{width:100%;max-width:100%}
  .chat-shell.wide{width:min(var(--chat-max),calc(100% - 48px));max-width:calc(100% - 48px);margin-left:auto;margin-right:auto}
  .messages{width:100%}
  .message{min-width:0;max-width:min(1040px,88%)}
  .message.user{max-width:min(760px,78%)}
  .message>.bubble{min-width:0;max-width:calc(100% - 52px)}
  .message.user>.bubble{max-width:calc(100% - 52px)}
  .hub-main .composer{left:calc(50% + (var(--sidebar-w) / 2));width:min(var(--chat-max),calc(100% - var(--sidebar-w) - 48px));max-width:calc(100% - var(--sidebar-w) - 48px)}

  body.sidebar-collapsed .chat-sidebar{overflow:hidden;padding:16px 10px}
  body.sidebar-collapsed .chat-sidebar>.btn.primary.full{display:inline-flex}
  body.sidebar-collapsed .chat-search-wrap,
  body.sidebar-collapsed .sidebar-section-title,
  body.sidebar-collapsed .sidebar-section-heading,
  body.sidebar-collapsed .sidebar-short-list,
  body.sidebar-collapsed .sidebar-projects,
  body.sidebar-collapsed .sidebar-library,
  body.sidebar-collapsed .sidebar-recent-head,
  body.sidebar-collapsed .sidebar-more,
  body.sidebar-collapsed .chat-side-footer{display:none!important}
  body.sidebar-collapsed .session-list{display:flex;width:100%;overflow-y:auto;overflow-x:hidden;align-items:center}
  body.sidebar-collapsed .session-row{width:48px;min-height:46px;flex:0 0 auto;overflow:hidden}
  body.sidebar-collapsed .session-open{display:flex;width:46px;min-width:46px;padding:7px;justify-content:center}
  body.sidebar-collapsed .session-icon{display:grid;flex:0 0 30px;width:30px;height:30px}
  body.sidebar-collapsed .session-copy,
  body.sidebar-collapsed .session-pin,
  body.sidebar-collapsed .session-menu{display:none!important}
}

@media (max-width:980px){
  .hub-main{width:100%;max-width:100%;overflow-x:clip}
  .chat-shell.wide{max-width:calc(100% - 28px)}
  .message,.message.user{max-width:100%}
  .message>.bubble,.message.user>.bubble{max-width:calc(100% - 48px)}
}

@media (max-width:620px){
  .chat-shell.wide{width:calc(100% - 18px);max-width:calc(100% - 18px)}
  .messages{padding-inline:0}
  .message{gap:7px}
  .avatar{flex-basis:34px;width:34px;height:34px}
  .message>.bubble,.message.user>.bubble{max-width:calc(100% - 41px)}
}


/* ===== SO-AgentHub 1.7.3.3 · Admin workspace + Projects ===== */
.admin-body{grid-template-columns:272px minmax(0,1fr);background:radial-gradient(circle at 76% -10%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 34%),var(--bg)}
.admin-body>.sidebar{width:272px;padding:18px 14px;background:color-mix(in srgb,var(--panel) 96%,var(--bg));box-shadow:10px 0 38px rgba(0,0,0,.10);overflow:hidden}
.admin-body>.sidebar .brand.big{padding:6px 8px 14px;border-bottom:1px solid var(--line);font-size:1.18rem}.admin-body>.sidebar .brand.big span{display:block;margin-top:4px;font-size:.68rem;letter-spacing:.08em}
.admin-body>.sidebar nav{margin-top:12px;gap:3px;overflow-y:auto;padding-right:3px;scrollbar-width:thin}.admin-body>.sidebar nav a{min-height:39px;display:flex;align-items:center;justify-content:space-between;padding:8px 11px;font-size:.84rem;border:1px solid transparent}.admin-body>.sidebar nav a:hover{border-color:var(--line)}.admin-body>.sidebar nav a.active{background:color-mix(in srgb,var(--accent) 11%,var(--panel2));border-color:color-mix(in srgb,var(--accent) 28%,var(--line));box-shadow:inset 3px 0 var(--accent)}
.admin-body>.sidebar .side-bottom{padding-top:10px;border-top:1px solid var(--line)}.admin-body>.sidebar .side-bottom a{font-size:.78rem;padding:7px 10px}
.admin-main{max-width:1680px;padding:24px clamp(18px,3vw,42px) 64px;min-width:0}.admin-head{position:sticky;top:0;z-index:8;margin:-24px calc(clamp(18px,3vw,42px)*-1) 22px;padding:20px clamp(18px,3vw,42px) 16px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.admin-head h1{font-size:clamp(1.55rem,2.4vw,2.2rem)}.admin-head p{margin:7px 0 0;font-size:.82rem}.admin-main .panel{box-shadow:0 12px 36px rgba(0,0,0,.16)}.admin-main .table-wrap{max-width:100%;border-radius:12px}.admin-main table{min-width:680px}
.panel-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:800;color:var(--accent2);margin-bottom:7px}.admin-project-layout{display:grid;grid-template-columns:minmax(300px,430px) minmax(0,1fr);gap:18px;align-items:start}.admin-project-editor{position:sticky;top:112px}.admin-project-list{min-width:0}.project-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.project-summary>div{padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.project-summary span,.project-summary strong{display:block}.project-summary span{font-size:.72rem;color:var(--muted)}.project-summary strong{font-size:1.4rem;margin-top:3px}.project-card{overflow:hidden}.project-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.project-card h3{margin:8px 0 0;font-size:1.15rem}.project-card-head>strong{text-align:right;font-size:1.35rem}.project-card-head small{display:block;font-size:.65rem;font-weight:500}.project-card>p{color:var(--muted);line-height:1.5}.project-card details{border-top:1px solid var(--line);padding-top:10px}.project-card summary{cursor:pointer;color:var(--accent2);font-size:.82rem}.project-instructions{margin-top:10px;padding:12px;border-radius:11px;background:var(--bg);line-height:1.5;font-size:.84rem;overflow-wrap:anywhere}.legacy-project-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.legacy-project-row small{display:block;margin-top:3px}.empty-state{text-align:center;padding:32px 18px}.split-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.split-actions .inline-form{margin:0}
@media(max-width:1100px){.admin-project-layout{grid-template-columns:1fr}.admin-project-editor{position:static}.admin-body{grid-template-columns:230px minmax(0,1fr)}.admin-body>.sidebar{width:230px}}
@media(max-width:900px){.admin-body{display:block}.admin-body>.sidebar{position:relative;width:100%;height:auto;max-height:none;padding:14px}.admin-body>.sidebar nav{display:flex;overflow-x:auto;gap:6px;padding:3px 0 8px}.admin-body>.sidebar nav a{flex:0 0 auto;white-space:nowrap}.admin-body>.sidebar .side-bottom{display:flex;overflow-x:auto;gap:4px}.admin-head{top:0;margin:-20px -14px 18px;padding:14px}.project-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.admin-main{padding:16px 12px 48px}.admin-head{margin:-16px -12px 16px;padding:12px}.admin-head p{line-height:1.5}.project-summary{grid-template-columns:1fr}.legacy-project-row{align-items:flex-start;flex-direction:column}.admin-main .panel{padding:15px;border-radius:15px}.admin-project-layout{gap:12px}.admin-body>.sidebar .brand.big span{display:inline;margin-left:6px}.admin-body>.sidebar nav{margin-top:8px}}

/* ===== SO-AgentHub 1.7.3.5 · Rich Results / Weather Card ===== */
.message.has-rich-result{max-width:min(1160px,94%)}
.message.has-rich-result>.bubble{width:min(100%,1080px);max-width:calc(100% - 52px);padding:0;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 96%,#10213b),color-mix(in srgb,var(--panel2) 97%,#07101f));border-color:color-mix(in srgb,var(--accent2) 22%,var(--line));box-shadow:0 18px 50px rgba(0,0,0,.18)}
.message.has-rich-result .bubble-actions{position:absolute;z-index:2;right:10px;top:10px}.message.has-rich-result .md{max-width:100%}
.rich-result{min-width:0;max-width:100%;overflow:hidden}.rich-kicker{display:block;color:var(--accent2);font-size:.66rem;line-height:1.2;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.weather-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;padding:20px 22px 17px;background:radial-gradient(circle at 90% 10%,color-mix(in srgb,var(--accent2) 18%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--panel2) 88%,#13223b),var(--panel2));border-bottom:1px solid var(--line)}
.weather-symbol{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;font-size:2rem;background:color-mix(in srgb,var(--accent2) 11%,var(--bg));border:1px solid color-mix(in srgb,var(--accent2) 22%,var(--line));box-shadow:0 8px 24px rgba(0,0,0,.16)}
.weather-place{min-width:0}.weather-place h3{margin:4px 0 2px!important;font-size:clamp(1.05rem,2vw,1.35rem)!important;overflow-wrap:anywhere}.weather-place p{margin:0!important;color:var(--muted);font-size:.82rem;text-transform:capitalize}
.weather-now{text-align:right;padding-right:28px}.weather-now>strong{display:block;font-size:clamp(2rem,4vw,3.15rem);line-height:.95;letter-spacing:-.05em}.weather-now>strong span{font-size:.48em;vertical-align:top;margin-left:2px}.weather-now small{display:block;margin-top:6px;color:var(--muted);white-space:nowrap}
.weather-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.weather-metrics>div{min-width:0;padding:12px 14px;background:color-mix(in srgb,var(--panel) 98%,transparent)}.weather-metrics span,.weather-metrics strong{display:block}.weather-metrics span{font-size:.68rem;color:var(--muted);margin-bottom:4px}.weather-metrics strong{font-size:.82rem;overflow-wrap:anywhere}
.weather-forecast{display:grid;grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:9px;padding:15px 16px}.weather-day{min-width:0;padding:12px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel2) 92%,var(--bg));transition:border-color .15s ease,transform .15s ease}.weather-day:hover{border-color:color-mix(in srgb,var(--accent2) 40%,var(--line));transform:translateY(-1px)}.weather-day.is-today{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--panel2))}.weather-day-head{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.weather-day-head strong{font-size:.84rem}.weather-day-head span{font-size:.65rem;color:var(--muted)}.weather-day-icon{font-size:1.65rem;margin:10px 0 5px}.weather-day-condition{height:2.35em;font-size:.72rem;color:var(--muted);line-height:1.15;text-transform:capitalize}.weather-temps{display:flex;align-items:baseline;gap:7px;margin-top:8px}.weather-temps strong{font-size:1.18rem}.weather-temps span{font-size:.78rem;color:var(--muted)}.weather-rain,.weather-sun{margin-top:7px;font-size:.67rem}.weather-risk-high{color:#ff9b9b}.weather-risk-mid{color:#ffd28a}.weather-risk-low{color:var(--muted)}.weather-sun{color:var(--muted);white-space:nowrap}
.weather-note{display:flex;gap:9px;align-items:flex-start;margin:0 16px 14px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--muted)}.weather-note p{margin:0!important;font-size:.71rem;line-height:1.45}.weather-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:.63rem}
.message.has-weather-card .portal-actions{margin:0;padding:12px 16px 15px;border-top:1px solid var(--line)}.message.has-weather-card .portal-action-chip{min-height:40px;padding:8px 13px;background:color-mix(in srgb,var(--accent2) 10%,var(--panel2))}.message.has-weather-card .message-transparency{margin:0 16px 14px}.message.has-weather-card .quick-replies{margin-inline:16px}
@media(max-width:760px){.message.has-rich-result{max-width:100%}.message.has-rich-result>.bubble{max-width:calc(100% - 41px)}.weather-hero{grid-template-columns:auto minmax(0,1fr);padding:16px 14px;gap:11px}.weather-symbol{width:46px;height:46px;border-radius:14px;font-size:1.7rem}.weather-now{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;text-align:left;padding:4px 0 0}.weather-now>strong{font-size:2.35rem}.weather-now small{margin:0}.weather-metrics{grid-template-columns:1fr 1fr}.weather-forecast{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:12px;gap:8px;scrollbar-width:thin}.weather-day{flex:0 0 142px;scroll-snap-align:start}.weather-note{margin:0 12px 12px}.weather-meta{padding:9px 12px}.message.has-weather-card .portal-actions{padding:11px 12px 13px}}
@media(max-width:390px){.weather-metrics>div{padding:10px}.weather-now{align-items:flex-end}.weather-now small{font-size:.68rem}.weather-place h3{font-size:1rem!important}}

/* Composer clearance: measured reserve, including expanded controls and bottom gap. */
body.hub-layout .chat-shell.wide{margin-bottom:var(--soah-composer-clearance,300px)}
body.hub-layout .message{scroll-margin-bottom:var(--soah-composer-clearance,300px)}
