/* ===== 侧栏 ===== */
.sidebar{
  width:240px;flex-shrink:0;background:var(--sidebar);
  border-radius:0;border:none;border-right:1px solid var(--border);
  display:flex;flex-direction:column;overflow:hidden;
  transition:width .2s,opacity .2s,margin .2s;
}
.sidebar.collapsed{width:0;opacity:0;border:none;pointer-events:none;margin-right:0}

.sidebar-header{
  padding:12px 14px;font-weight:600;font-size:13px;color:var(--text);
  border-bottom:1px solid var(--border);display:flex;
  justify-content:space-between;align-items:center;flex-shrink:0;
}

.sidebar-header button{
  background:#f5f5f5;
  color:#1f1f1f;
  border:1px solid var(--border);
  border-radius:50%;
  width:30px;height:30px;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  padding:0;
  transition:background .15s,color .15s,border-color .15s;
  box-sizing:border-box;
  flex-shrink:0;
}
.sidebar-header button svg{
  width:18px;height:18px;
  display:block;
  pointer-events:none;
}

.conv-list{flex:1;overflow-y:auto;padding:6px}

.conv-group{margin-bottom:6px}
.conv-group-title{
  font-size:11px;font-weight:600;color:var(--text-muted);
  padding:8px 12px 4px;letter-spacing:.02em;
  user-select:none;
}

.conv-item{
  padding:8px 10px;border-radius:8px;cursor:pointer;
  font-size:13px;color:var(--text);
  display:flex;align-items:center;gap:6px;
  transition:background .12s;position:relative;
  -webkit-touch-callout:none;
  user-select:none;
}
.conv-item.active{background:var(--conv-active);color:#1f1f1f;font-weight:600}

.conv-pin{font-size:11px;flex-shrink:0;width:14px;text-align:center}
.conv-title{
  flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  min-width:0;
}

.conv-more{
  background:transparent;
  border:none;
  color:#8b8b8b;
  cursor:pointer;
  font-size:20px;padding:0;
  border-radius:6px;flex-shrink:0;line-height:1;font-family:inherit;
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .12s,background .12s,color .12s;
}

/* ===== 顶栏 ===== */
.header{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;background:var(--panel);
  border-bottom:1px solid var(--border);
  flex-shrink:0;gap:8px;
  flex-wrap:nowrap;
  min-width:0;
}
.header-left{
  display:flex;align-items:center;gap:10px;
  min-width:0;flex:1 1 auto;
  overflow:hidden;
}
.header-right{
  display:flex;align-items:center;gap:6px;
  flex-shrink:0;position:relative;
}
.sidebar-toggle{
  background:var(--panel);border:1px solid var(--border);border-radius:8px;
  padding:6px 10px;cursor:pointer;font-size:14px;color:var(--text-secondary);
  display:flex;align-items:center;justify-content:center;
  transition:background .15s;flex-shrink:0;
}
.brand{
  font-family:var(--font-title);font-size:16px;font-weight:600;color:var(--text);
  flex-shrink:0;
}
.brand span{color:var(--text-muted);font-weight:400;margin-left:6px;font-size:13px}

.made-by{
  display:inline-flex;align-items:center;font-family:var(--font-body);
  font-size:11px;font-weight:600;letter-spacing:.04em;color:#fff;
  background:linear-gradient(135deg,#a78bfa 0%,#f472b6 100%);
  padding:3px 10px;border-radius:10px;white-space:nowrap;flex-shrink:0;
  box-shadow:0 2px 8px rgba(167,139,250,.28);user-select:none;
}

.model-trigger{
  font-family:var(--font-body);font-size:13px;color:var(--text-secondary);
  background:var(--panel);border:1px solid var(--border);border-radius:8px;
  padding:5px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  max-width:220px;white-space:nowrap;
}
.model-trigger .mt-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-trigger .mt-arrow{width:10px;height:10px;display:inline-flex;color:var(--text-muted);flex-shrink:0}
.model-trigger .mt-arrow svg{width:100%;height:100%;display:block}

.toggle-btn{
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  background:var(--panel);border:1px solid var(--border);border-radius:8px;
  color:var(--text-secondary);cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;
  padding:0;flex-shrink:0;
}
.toggle-btn.active{background:#1f1f1f;border-color:#1f1f1f;color:#fff}
.toggle-btn.copied{color:var(--success);border-color:#bbf7d0;background:#f0fdf4}

/* ===== 标题栏：去下划线 + 渐变白底 + 可点击编辑 ===== */
.conv-titlebar{
  padding:8px 20px;
  flex-shrink:0;
  font-family:var(--font-title);font-size:14px;font-weight:600;
  color:var(--text);min-height:38px;display:none;align-items:center;
  background:linear-gradient(to bottom, var(--panel) 0%, var(--panel) 60%, rgba(255,255,255,0) 100%);
  position:relative;
  z-index:1;
}
.conv-titlebar.show{display:flex}
.conv-title-text{
  position:relative;
  padding:2px 8px;
  flex:0 1 auto;              /* ← 按内容宽度，不撑满 */
  max-width:100%;
  min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  cursor:text;
  user-select:text;
  border-radius:5px;
  transition:background .15s;
  border:1px solid transparent;
  box-sizing:border-box;
  min-height:28px;
  line-height:22px;
  display:inline-block;
  vertical-align:middle;
}

.conv-title-text.editing{
  border-color:var(--border-strong);
  background:#fff;
}
.conv-title-text .hidden-text{
  visibility:hidden;
  font-family:var(--font-title);
  font-size:14px;
  font-weight:600;
  white-space:pre;
}

/* 输入框：绝对定位铺满 .conv-title-text */
.conv-title-input{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  box-sizing:border-box;
  border:0;
  border-radius:5px;
  padding:2px 8px;
  outline:none;
  background:transparent;
  font-family:var(--font-title);
  font-size:14px;
  font-weight:600;
  color:var(--text);
  line-height:22px;
}

/* ===== 右键菜单 ===== */
.ctx-menu{
  position:fixed;min-width:220px;background:#fff;
  border:1px solid var(--border);border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.1);
  padding:4px;z-index:9999;display:none;font-size:13px;color:var(--text);
}
.ctx-menu.open{display:block}
.menu-item{
  position:relative;display:flex;align-items:center;gap:10px;
  padding:6px 30px 6px 12px;border-radius:6px;cursor:pointer;
  user-select:none;white-space:nowrap;transition:background .1s;color:var(--text);
}
.menu-item.disabled{color:var(--text-muted);cursor:default;pointer-events:none}
.menu-item .mi-icon{
  width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--text-secondary);
}
.menu-item .mi-icon svg{width:14px;height:14px;display:block}
.menu-item .mi-label{flex:1}
.menu-item .mi-check{
  width:14px;height:14px;flex-shrink:0;display:inline-flex;
  align-items:center;justify-content:center;color:var(--text);visibility:hidden;
}
.menu-item.checked .mi-check{visibility:visible}
.menu-divider{height:1px;background:var(--border);margin:4px 8px}

/* ============================================================= */
/* ===== 所有 :hover 规则，只在有鼠标的设备上生效 ===== */
/* ============================================================= */
@media (hover:hover) and (pointer:fine){
  .sidebar-header button:hover{
    background:#1f1f1f;
    color:#fff;
    border-color:#1f1f1f;
  }
  .conv-item:hover{background:var(--hover)}
  .conv-item:hover .conv-more{
    opacity:1;pointer-events:auto;
    background:#ececec;
    color:#4a4a4a;
  }
  .conv-more:hover{
    background:#dcdcdc;
    color:#1f1f1f;
  }
  .sidebar-toggle:hover{background:var(--hover);color:var(--text)}
  .model-trigger:hover{background:var(--hover)}
  .toggle-btn:hover{background:var(--hover);color:var(--text)}
  .menu-item:hover{background:var(--hover)}
  .menu-item:hover .mi-icon{color:var(--text)}
  .conv-title-text:hover{background:rgba(0,0,0,.04)}
}