:root{
  color-scheme:light;
  --bg:#faf9f8;
  --surface:#fff;
  --surface-2:#f2f0ec;
  --border:rgba(0,0,0,.09);
  --text:#1c1b19;
  --text-dim:#6b6864;
  --accent:#3a53c9;
  --accent-text:#fff;
  --accent-hover:#2f45ad;
  --danger:#b3261e;
  --danger-bg:rgba(179,38,30,.08);
}

  html,body{margin:0;padding:0;height:100%}
  body{background:var(--bg);color:var(--text);font-family:'IBM Plex Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
  *{box-sizing:border-box}
  @keyframes dotpulse{0%,60%,100%{opacity:.25}30%{opacity:1}}
  .app{display:flex;height:100vh;overflow:hidden}

  /* sidebar */
  .sidebar{flex:none;width:266px;display:flex;flex-direction:column;background:var(--surface-2);border-right:1px solid rgba(0,0,0,.07);overflow:hidden;transition:width .16s ease}
  .sidebar.collapsed{width:56px}
  .sidebar.collapsed .sb-hideable,
  .sidebar.collapsed .sb-name,
  .sidebar.collapsed .nc-label{display:none}
  .sidebar.collapsed .sb-top,
  .sidebar.collapsed .sb-actions{padding-left:8px;padding-right:8px}
  .sb-top{display:flex;align-items:center;gap:9px;padding:14px 12px 10px}
  .sb-logo{flex:none;width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--accent)}
  .sb-logo i{width:8px;height:8px;border-radius:2px;background:var(--surface)}
  .sb-name{flex:1;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden}
  .icon-btn{flex:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--text-dim)}
  .icon-btn:hover{background:rgba(0,0,0,.06)}
  .sb-actions{padding:2px 10px 8px;display:flex;flex-direction:column;gap:8px}
  .new-chat,.sb-nav{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:500;text-align:left;cursor:pointer;text-decoration:none}
  .new-chat{background:var(--surface);border:1px solid rgba(0,0,0,.1);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.04)}
  .new-chat:hover{background:#fffdfa;border-color:rgba(0,0,0,.2)}
  .sb-nav{background:var(--accent);border:1px solid var(--accent);color:var(--surface)}
  .sb-nav:hover{background:var(--accent-hover)}
  .sidebar.collapsed .new-chat,.sidebar.collapsed .sb-nav{justify-content:center;padding:8px 0}
  .search{display:flex;align-items:center;gap:7px;padding:7px 9px;background:rgba(0,0,0,.045);border-radius:8px}
  .search input{flex:1;min-width:0;border:none;background:transparent;outline:none;font-size:12.5px;color:var(--text);font-family:inherit}
  .sb-list{flex:1;overflow-y:auto;padding:6px 8px 8px}
  .sb-section{padding:6px 8px 4px;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#9a968f}
  .chat-row{display:flex;align-items:center;border-radius:8px;position:relative;margin-bottom:1px}
  .chat-row:hover{background:rgba(0,0,0,.05)}
  .chat-row.active{background:rgba(0,0,0,.065)}
  .chat-row .sel{flex:1;min-width:0;text-align:left;padding:7px 9px;border:none;background:transparent;cursor:pointer;font-size:13px;color:#2c2a27;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .chat-row.active .sel{font-weight:600}
  .chat-row .menu-btn{opacity:0;flex:none;width:24px;height:24px;margin-right:4px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--text-dim)}
  .chat-row:hover .menu-btn,.chat-row .menu-btn.open{opacity:1}
  .chat-row .menu-btn:hover{background:rgba(0,0,0,.08)}
  .chat-row .rename{flex:1;min-width:0;margin:3px 6px;padding:5px 7px;border:1px solid rgba(0,0,0,.2);border-radius:6px;font-size:13px;font-family:inherit;outline:none}
  .menu-pop{position:absolute;right:6px;top:32px;z-index:40;width:154px;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:9px;box-shadow:0 8px 26px rgba(0,0,0,.14)}
  .menu-pop button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:none;background:transparent;border-radius:6px;font-size:12.5px;color:#2c2a27;cursor:pointer;text-align:left}
  .menu-pop button:hover{background:rgba(0,0,0,.05)}
  .menu-pop button.danger{color:var(--danger)}
  .menu-pop button.danger:hover{background:var(--danger-bg)}
  .sb-note{flex:none;padding:8px 14px 4px;font-size:11px;color:#9a968f;white-space:nowrap;overflow:hidden}
  .sb-user{flex:none;position:relative;padding:8px 10px 10px;border-top:1px solid rgba(0,0,0,.07)}
  .sb-user-row{display:flex;align-items:center;gap:9px;width:100%;padding:6px;border:none;background:transparent;border-radius:9px;cursor:pointer;font-family:inherit;text-align:left}
  .sb-user-row:hover{background:rgba(0,0,0,.05)}
  .sb-avatar{flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--surface);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
  .sb-user-name{flex:1;min-width:0;font-size:12.5px;color:#2c2a27;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-user-chev{flex:none;color:#9a968f;transition:transform .15s}
  .sb-user.open .sb-user-chev{transform:rotate(180deg)}
  .sidebar.collapsed .sb-note{display:none}
  .sidebar.collapsed .sb-user{padding:8px}
  .sidebar.collapsed .sb-user-row{justify-content:center;padding:6px 0}
  .sidebar.collapsed .sb-user-name,.sidebar.collapsed .sb-user-chev{display:none}
  .sb-user-pop{position:absolute;left:10px;right:10px;bottom:56px;z-index:40;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 26px rgba(0,0,0,.16)}
  .sidebar.collapsed .sb-user-pop{left:8px;right:auto;bottom:8px;width:190px}
  .sb-user-pop .head{padding:8px 9px 9px;border-bottom:1px solid rgba(0,0,0,.07);margin-bottom:4px}
  .sb-user-pop .head b{display:block;font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-user-pop .head span{display:block;font-size:11px;color:#8b8781;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
  .sb-user-pop button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 9px;border:none;background:transparent;border-radius:7px;font-size:12.5px;color:var(--danger);cursor:pointer;font-family:inherit;text-align:left}
  .sb-user-pop button:hover{background:var(--danger-bg)}

  /* main */
  main{flex:1;min-width:0;display:flex;flex-direction:column}
  header{display:flex;align-items:center;gap:10px;padding:0 18px;height:52px;border-bottom:1px solid rgba(0,0,0,.06)}
  .title{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .badge{flex:none;display:flex;align-items:center;gap:5px;padding:3px 7px;background:rgba(0,0,0,.045);border-radius:6px;font-size:11px;color:var(--text-dim)}
  .badge span{width:5px;height:5px;border-radius:50%;background:#2f8f7a}
  .grow{flex:1}
  .engine{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#8b8781}
  .theme-sel{font-family:inherit;font-size:11.5px;color:#4a4740;background:var(--surface);border:1px solid rgba(0,0,0,.12);border-radius:7px;padding:4px 6px;cursor:pointer;outline:none}
  .thread{flex:1;overflow-y:auto;overflow-x:hidden}
  .thread-inner{max-width:760px;margin:0 auto;padding:26px 24px 40px;display:flex;flex-direction:column;gap:26px}
  .user{align-self:flex-end;max-width:78%;padding:10px 14px;background:#ebe8e3;border-radius:14px 14px 4px 14px;font-size:14px;line-height:1.55}
  .agent{display:flex;gap:12px}
  .avatar{flex:none;width:24px;height:24px;border-radius:7px;margin-top:2px;background:var(--accent)}
  .agent-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
  .trace{border:1px solid rgba(0,0,0,.08);border-radius:9px;background:var(--surface);overflow:hidden}
  .trace summary{padding:8px 10px;font-size:12px;color:var(--text-dim);cursor:pointer}
  .trace .steps{border-top:1px solid rgba(0,0,0,.06);padding:9px 12px;display:flex;flex-direction:column;gap:8px;background:#fcfbf9}
  .step-label{font-size:12px;font-weight:500;color:#3a3835}
  .step-detail{margin-top:3px;font-family:'IBM Plex Mono',monospace;font-size:11px;line-height:1.5;color:#7b776f;white-space:pre-wrap;word-break:break-word}
  .para{font-size:14.5px;line-height:1.65;color:#26241f}
  .para p{margin:0 0 8px}
  .para p:last-child{margin-bottom:0}
  .para ul{margin:0 0 8px;padding-left:20px}
  .para li{margin:2px 0}
  .para code{font-family:'IBM Plex Mono',monospace;font-size:13px;background:rgba(0,0,0,.05);padding:1px 5px;border-radius:4px}
  .thinking{display:flex;align-items:center;gap:8px;font-size:13px;color:#8b8781}
  .thinking i{width:5px;height:5px;border-radius:50%;background:#a09b93;animation:dotpulse 1.2s infinite}
  .thinking i:nth-child(2){animation-delay:.2s}.thinking i:nth-child(3){animation-delay:.4s}
  .card{border:1px solid var(--border);border-radius:11px;background:var(--surface);overflow:hidden}
  .card-head{display:flex;align-items:center;gap:10px;padding:9px 13px;border-bottom:1px solid rgba(0,0,0,.06)}
  .card-title{flex:1;font-size:12.5px;font-weight:600}
  .card-meta{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:#a09b93}
  .tabs{display:flex;gap:2px;padding:2px;background:rgba(0,0,0,.045);border-radius:7px}
  .tabs button{padding:4px 9px;border:none;border-radius:5px;font-size:11.5px;cursor:pointer;background:transparent;color:#7b776f}
  .tabs button.on{background:var(--surface);color:var(--text);font-weight:600}
  .card-body{padding:14px 12px}
  .spec-view{max-height:320px;overflow:auto;font-family:'IBM Plex Mono',monospace;font-size:11.5px;white-space:pre;background:#fbfaf8;padding:12px}
  .err{padding:16px 14px;background:#fdf8f6}
  .err-title{font-size:13px;font-weight:600;color:#8f2018}
  .err-text{margin-top:4px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#8a6560;white-space:pre-wrap}
  table{border-collapse:collapse;font-size:11.5px;font-family:'IBM Plex Mono',monospace}
  th,td{padding:6px 10px;border-bottom:1px solid rgba(0,0,0,.05);text-align:left}
  th{background:#f6f4f1;color:#7b776f;text-transform:uppercase;letter-spacing:.05em}
  .composer{flex:none;padding:0 24px 20px}
  .composer-inner{max-width:760px;margin:0 auto;display:flex;align-items:flex-end;gap:8px;padding:9px 9px 9px 14px;background:var(--surface);border:1px solid rgba(0,0,0,.1);border-radius:14px}
  textarea{flex:1;border:none;outline:none;resize:none;font-size:14px;line-height:1.5;font-family:inherit;background:transparent;max-height:140px;padding:5px 0}
  .send{flex:none;width:32px;height:32px;border:none;border-radius:9px;cursor:pointer;color:var(--surface);background:var(--accent);font-size:15px}
  .send:disabled{background:#c9c4bb}
  .hint{max-width:760px;margin:7px auto 0;text-align:center;font-size:11px;color:#a09b93}
  .empty{margin:14vh auto 0;text-align:center;color:var(--text-dim);max-width:440px;display:flex;flex-direction:column;align-items:center;gap:18px}
  .empty h1{font-size:24px;color:var(--text);margin:0}
  .empty p{margin:0;line-height:1.55}
  .chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
  .chips button{padding:8px 12px;background:var(--surface);border:1px solid rgba(0,0,0,.1);border-radius:999px;font-size:12.5px;color:#2c2a27;cursor:pointer}
  .chips button:hover{border-color:rgba(0,0,0,.28);background:#fffdfa}

  /* views */
  .ck-view{flex:1;min-height:0;display:flex;flex-direction:column}
  .ck-view[hidden]{display:none}
  .sb-tabs{display:flex;flex-direction:column;gap:8px}
  .sb-tabs:empty{display:none}
  .sb-nav.active{background:var(--accent-hover);border-color:var(--accent-hover)}

  /* reports view */
  .rp-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:12px 22px;border-bottom:1px solid rgba(0,0,0,.06);background:var(--surface)}
  .rp-filters label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#7b776f}
  .rp-filters select,.rp-filters input{font-family:inherit;font-size:12.5px;padding:5px 7px;border:1px solid rgba(0,0,0,.14);border-radius:7px;background:var(--surface);color:var(--text);outline:none}
  .rp-back{font-family:inherit;font-size:12px;color:var(--accent);background:transparent;border:none;cursor:pointer;padding:6px 4px;margin-right:6px}
  .rp-back:hover{text-decoration:underline}
  .rp-scroll{flex:1;overflow-y:auto;padding:20px 22px}
  .rp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:1100px;margin:0 auto}
  .rp-card{grid-column:span 2;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
  @media(min-width:900px){.rp-card.half{grid-column:span 1}}
  .rp-card-head{padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.06)}
  .rp-card-title{font-size:13px;font-weight:600}
  .rp-kpis{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  .rp-kpi{font-size:11.5px;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.05);color:#4a4740}
  .rp-kpi.positive{background:rgba(47,143,122,.14);color:#1f6b5a}
  .rp-kpi.negative{background:rgba(201,79,109,.14);color:#a13350}
  .rp-chart{width:100%;height:300px}
  .rp-meta{padding:8px 14px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:#a09b93}
  .rp-err{padding:16px;color:#8f2018;font-size:12.5px}

  .overlay{position:fixed;inset:0;z-index:60;background:rgba(28,27,25,.32);display:flex;align-items:center;justify-content:center;padding:24px}
  .dialog{width:100%;max-width:360px;background:var(--surface);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.24);padding:20px}
  .dialog h3{margin:0;font-size:15px;font-weight:600}
  .dialog p{margin:8px 0 0;font-size:13px;line-height:1.55;color:var(--text-dim)}
  .dialog .row{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
  .dialog button{padding:8px 13px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit}
  .dialog .cancel{border:1px solid rgba(0,0,0,.12);background:var(--surface);color:var(--text)}
  .dialog .confirm{border:none;background:var(--danger);color:var(--surface)}
  .toast{position:fixed;left:50%;transform:translateX(-50%);bottom:26px;z-index:70;display:flex;align-items:center;gap:12px;padding:9px 10px 9px 14px;background:var(--text);color:var(--surface);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.22);font-size:12.5px}
  .toast button{border:none;background:rgba(255,255,255,.14);color:var(--surface);border-radius:6px;padding:4px 9px;font-size:12px;font-weight:500;cursor:pointer}
