/* ===== 다크 테마 (ChatGPT 스타일 · 기본) =====
   배경 #212121, 카드 #2F2F2F — ChatGPT의 정확한 그레이 톤. */
:root, .app[data-theme="dark"]{
  --bg:#212121;
  --bg-soft:#2F2F2F;
  --bg-card:#383838;
  --bg-hover:#404040;
  --ink:#ECECEC;
  --ink-soft:#AFAFAF;
  --ink-mute:#7D7D7D;
  --line:#3D3D3D;
  --line-soft:#2A2A2A;
  --accent:#C9A765;
  --accent-soft:#3D3527;
  --warm:#D4956B;
  --warm-soft:#3A2D24;
  --purple:#A89AC9;
  --purple-soft:#2E2A3A;
  --green:#8FB89E;
  --green-soft:#283330;
  --red:#D4796B;
  --red-soft:#3A2823;
  --highlight:#3D3520;
  --scroll-thumb:rgba(255,255,255,.18);
  --scroll-thumb-hover:rgba(255,255,255,.28);
}
/* ===== 라이트 테마 =====
   다크의 반전이 아니라 독립 디자인: 순백 캔버스 + 미세한 회색 카드 + 진한 글자. */
.app[data-theme="light"]{
  --bg:#FFFFFF;
  --bg-soft:#F7F7F8;
  --bg-card:#FFFFFF;
  --bg-hover:#ECECEC;
  --ink:#1A1A1A;
  --ink-soft:#4D4D4D;
  --ink-mute:#8A8A8A;
  --line:#E3E3E3;
  --line-soft:#EFEFEF;
  --accent:#8C7340;
  --accent-soft:#F5EFE0;
  --warm:#9A6843;
  --warm-soft:#F5EAE0;
  --purple:#5C5179;
  --purple-soft:#EEEBF2;
  --green:#3D7050;
  --green-soft:#E8F0EA;
  --red:#9A4537;
  --red-soft:#F5E7E4;
  --highlight:#FFF5D6;
  --scroll-thumb:rgba(0,0,0,.16);
  --scroll-thumb-hover:rgba(0,0,0,.26);
}
/* 라이트 모드 — scene 루트에 명시적 배경 (qa/law 패턴과 동일하게) */
.app[data-theme="light"] .home-page,
.app[data-theme="light"] .projects-page,
.app[data-theme="light"] .project-detail,
.app[data-theme="light"] .chat-page,
.app[data-theme="light"] .main,
.app[data-theme="light"] .scene{background:var(--bg)}
/* 라이트 모드 — composer 그라데이션이 흰 배경 위에서 자연스럽게 */
.app[data-theme="light"] .composer-sticky{
  background:linear-gradient(to top, #FFFFFF 70%, rgba(255,255,255,0));
}
*{box-sizing:border-box;margin:0;padding:0}
*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{
  background:var(--scroll-thumb);
  border:2px solid transparent;border-radius:999px;
  background-clip:content-box;
}
*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:content-box}
*::-webkit-scrollbar-corner{background:transparent}
html,body{height:100%;overflow:hidden}
body{
  font-family:'Pretendard',-apple-system,sans-serif;
  font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
/* 테마 변수가 .app에 스코프되어 있으므로 배경/글자색은 .app에 직접 적용 */
.app{background:var(--bg);color:var(--ink)}

/* ===== Grid: 사이드바 / 메인 / 미리보기(옵션) ===== */
.app{
  display:grid;
  grid-template-columns:272px 1fr;
  height:100vh;transition:grid-template-columns .2s ease;
}
.app.left-collapsed{grid-template-columns:64px 1fr}
.app.preview-open{grid-template-columns:272px 1fr 440px}
.app.left-collapsed.preview-open{grid-template-columns:64px 1fr 440px}

/* ===== 사이드바 ===== */
.sidebar{
  background:var(--bg-soft);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;overflow:hidden;
  position:relative;
}

/* 상단 — 브랜드 + 닫기 */
.sidebar-top{
  padding:14px 14px 14px 20px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--line);
  flex-shrink:0;gap:6px;
}
.app.left-collapsed .sidebar-top{padding:14px 8px;justify-content:center}
.brand{
  display:flex;align-items:center;gap:8px;
  cursor:pointer;white-space:nowrap;overflow:visible;
  min-width:0;flex:1;
}
.brand-logo{
  display:block;
  height:23px;
  width:auto;
  max-width:154px;
  object-fit:contain;
}
.brand-mini{
  display:none;
  width:32px;height:32px;border-radius:7px;
  background:transparent;color:var(--ink-mute);
  place-items:center;cursor:pointer;
  transition:all .15s;
  border:none;
}
.brand-mini:hover{background:var(--bg-hover);color:var(--ink)}
.app.left-collapsed .brand{display:none}
.app.left-collapsed .brand-mini{display:grid}

.sidebar-close{
  width:32px;height:32px;border-radius:7px;
  background:transparent;border:none;cursor:pointer;
  color:var(--ink-mute);display:grid;place-items:center;
  transition:all .15s;flex-shrink:0;
  position:relative;
}
.sidebar-close:hover{background:var(--bg-hover);color:var(--ink)}
.app.left-collapsed .sidebar-close{display:none}

.sidebar-scroll{
  flex:1;overflow:hidden;padding:14px 12px 8px;
  display:flex;flex-direction:column;min-height:0;
}
.sidebar-scroll::-webkit-scrollbar{width:5px}
.sidebar-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.app.left-collapsed .sidebar-scroll{padding:10px 6px 8px;overflow-x:hidden}

.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 11px;border-radius:7px;
  font-size:16px;color:var(--ink-soft);
  cursor:pointer;transition:background .15s;
  margin-bottom:2px;white-space:nowrap;overflow:hidden;
  position:relative;
}
.nav-item:hover{background:var(--bg-hover)}
.nav-item.active{background:var(--bg-hover);color:var(--ink)}
.nav-item[aria-disabled="true"]{cursor:default}
.nav-item[aria-disabled="true"]:hover{background:transparent;color:var(--ink-soft)}
.nav-icon{width:16px;height:16px;opacity:.75;flex-shrink:0}
.nav-item.active .nav-icon{opacity:1}
.nav-shortcut{margin-left:auto;font-size:13px;color:var(--ink-mute)}

.app.left-collapsed .nav-item{
  padding:9px;justify-content:center;
}
.app.left-collapsed .nav-item .nav-label,
.app.left-collapsed .nav-item .nav-shortcut{display:none}
.app.left-collapsed .nav-item::after{
  content:attr(data-tooltip);
  position:absolute;left:calc(100% + 10px);top:50%;
  transform:translateY(-50%);
  background:var(--bg-card);color:var(--ink);
  font-size:14px;padding:5px 9px;border-radius:6px;
  white-space:nowrap;
  opacity:0;pointer-events:none;
  transition:opacity .15s;
  border:1px solid var(--line);z-index:30;
}
.app.left-collapsed .nav-item:hover::after{opacity:1}

.section-title{
  font-size:13px;font-weight:600;
  color:var(--ink);
  padding:0 11px;margin-bottom:6px;
  display:flex;align-items:center;gap:5px;
  white-space:nowrap;overflow:hidden;
  position:relative;
}
#side-chats .section-title{overflow:visible}
#side-chats .section-toggle{
  display:grid;
  opacity:1;
  margin-left:0;
}
.section-label{
  /* ChatGPT 스타일: 굵은 sans-serif, uppercase 없음 */
  font-size:13px;font-weight:600;
  color:var(--ink);
}
.section-toggle{
  width:14px;height:14px;
  background:transparent;border:none;cursor:pointer;
  color:var(--ink-mute);padding:0;
  display:grid;place-items:center;
  opacity:0;transition:opacity .15s;
  flex-shrink:0;
}
.section-filter-btn{
  width:22px;height:22px;border:none;border-radius:6px;
  background:transparent;color:var(--ink-mute);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;margin-left:auto;flex-shrink:0;
}
.section-filter-btn:hover{background:var(--bg-hover);color:var(--ink)}
.section-filter-btn svg{width:15px;height:15px}
.recent-filter-menu{
  position:absolute;right:28px;top:24px;z-index:50;
  min-width:120px;background:var(--bg-card);border:1px solid var(--line);
  border-radius:8px;padding:6px;display:none;
  box-shadow:0 12px 28px rgba(0,0,0,.35);
}
.recent-filter-menu.show{display:flex;flex-direction:column;gap:2px}
.recent-filter-menu button{
  width:100%;border:none;background:transparent;color:var(--ink-soft);
  font-family:inherit;font-size:13px;text-align:left;
  padding:8px 10px;border-radius:6px;cursor:pointer;
}
.recent-filter-menu button:hover,.recent-filter-menu button.active{
  background:var(--bg-hover);color:var(--ink);
}
.section-toggle svg{
  width:11px;height:11px;
  transition:transform .15s;
}
.section.collapsed .section-toggle svg{transform:rotate(-90deg)}
.section-title .more{
  font-size:13px;color:var(--ink-mute);cursor:pointer;
  text-transform:none;letter-spacing:normal;
  margin-left:auto;
  opacity:0;transition:opacity .15s;
}
.section-title .more:hover{color:var(--ink)}
/* hover 시에만 chevron + view all 표시 */
.section-title:hover .section-toggle,
.section-title:hover .more{opacity:1}
/* 접힘 상태 — 본문(빈 상태 / 채워진 상태 모두) 숨김 */
.section.collapsed > *:not(.section-title){display:none !important}

.app.left-collapsed .section-title{display:none}

.section{margin-top:14px}
#side-chats{
  flex:1;display:flex;flex-direction:column;min-height:0;
}
#side-chats.collapsed{
  flex:0 0 auto;min-height:auto;
}
#side-chats-body.side-recent-scroll{
  flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;
  padding-right:3px;
  scrollbar-width:thin;
  scrollbar-color:transparent transparent;
}
#side-chats:hover #side-chats-body.side-recent-scroll{
  scrollbar-color:#3a3a3a transparent;
}
#side-chats-body.side-recent-scroll::-webkit-scrollbar{width:6px}
#side-chats-body.side-recent-scroll::-webkit-scrollbar-track{background:transparent}
#side-chats-body.side-recent-scroll::-webkit-scrollbar-thumb{
  background:transparent;border-radius:6px;
}
#side-chats:hover #side-chats-body.side-recent-scroll::-webkit-scrollbar-thumb{
  background:#3a3a3a;
}
#side-chats-body.side-recent-scroll::-webkit-scrollbar-thumb:hover{background:#4a4a4a}
#side-chats-body.side-recent-scroll::-webkit-scrollbar-button{
  display:none;width:0;height:0;
}
.app.left-collapsed .section{
  margin-top:8px;padding-top:8px;
  border-top:1px solid var(--line-soft);
}

/* ===== 프로젝트 단일 행 (펼침 없음, 클릭 시 이동) ===== */
.proj-row{
  display:flex;align-items:center;gap:8px;
  padding:6px 11px;border-radius:6px;
  font-size:15px;color:var(--ink-soft);cursor:pointer;
  white-space:nowrap;overflow:hidden;
  transition:background .15s;
  margin-bottom:2px;
}
.proj-row:hover{background:var(--bg-hover);color:var(--ink)}
.proj-row.active{background:var(--bg-hover);color:var(--ink)}
.app.left-collapsed .proj-row{display:none}
.proj-caret{
  color:var(--ink-mute);font-size:12.5px;flex-shrink:0;
  transition:transform .2s;width:10px;text-align:center;
}
.proj-folder.open > .proj-folder-head .proj-caret{transform:rotate(90deg)}
.pi-icon{
  width:20px;height:20px;border-radius:5px;
  background:var(--warm);color:var(--bg);
  display:grid;place-items:center;
  font-size:13px;font-weight:600;flex-shrink:0;
  font-family:'Fraunces',serif;
}
.proj-name{
  flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;
}
.proj-folder-chats{
  display:none;
  padding:2px 0 4px 26px;
  flex-direction:column;gap:1px;
}
.proj-folder.open > .proj-folder-chats{display:flex}

.proj-chat-item{
  display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:4px;
  height:34px;min-height:34px;
  padding:0 5px 0 10px;border-radius:10px;
  font-size:15px;color:var(--ink-soft);cursor:pointer;
  white-space:nowrap;overflow:hidden;
  transition:background-color .15s,color .15s;
  position:relative;margin-top:6px;
}
.proj-chat-item::before{
  content:'';position:absolute;left:0;top:8px;bottom:8px;
  width:2px;border-radius:999px;background:transparent;
}
.proj-chat-item:hover,.proj-chat-item.active{background:var(--bg-hover);color:var(--ink)}
.proj-chat-title{
  display:block;min-width:0;
  overflow:hidden;text-overflow:ellipsis;
  font-size:15px;line-height:34px;
}
.proj-chat-time{display:none}
.chat-menu-btn{
  width:26px;height:26px;border:none;border-radius:6px;
  background:transparent;color:var(--ink-mute);
  display:none;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;
}
.proj-chat-item:hover .chat-menu-btn,
.proj-chat-item:focus-within .chat-menu-btn,
.pd-chat-row:hover .chat-menu-btn,
.pd-chat-row:focus-within .chat-menu-btn{display:inline-flex}
.proj-chat-item .chat-menu-btn{
  display:inline-flex;
  width:28px;height:28px;border-radius:8px;
  opacity:0;visibility:hidden;pointer-events:none;
}
.proj-chat-item:hover .chat-menu-btn,
.proj-chat-item:focus-within .chat-menu-btn,
.proj-chat-item .chat-menu-btn.open{
  opacity:1;visibility:visible;pointer-events:auto;
}
.chat-menu-btn:hover{background:var(--bg-hover);color:var(--ink)}
.chat-row-menu{
  position:absolute;right:6px;top:30px;z-index:60;
  min-width:126px;background:var(--bg-card);border:1px solid var(--line);
  border-radius:8px;padding:6px;display:none;
  box-shadow:0 12px 28px rgba(0,0,0,.35);
}
.chat-row-menu.show{display:flex;flex-direction:column;gap:2px}
.chat-row-menu button{
  width:100%;border:none;background:transparent;color:var(--ink-soft);
  font-family:inherit;font-size:13px;text-align:left;
  padding:8px 10px;border-radius:6px;cursor:pointer;
}
.chat-row-menu button:hover{background:var(--bg-hover);color:var(--ink)}
.chat-row-menu button.danger{color:var(--red)}
.floating-chat-menu{
  position:fixed;right:auto;top:auto;z-index:1000;
}
.sidebar-recent-loading{
  display:flex;flex-direction:column;gap:10px;padding:10px 10px 12px;
}
.sidebar-recent-loading span{
  height:14px;border-radius:4px;background:var(--bg-hover);
  animation:sidebarSkeleton 1.15s ease-in-out infinite;
}
.sidebar-recent-loading span:nth-child(2){animation-delay:.12s}
.sidebar-recent-loading span:nth-child(3){animation-delay:.24s}
@keyframes sidebarSkeleton{
  0%,100%{opacity:.45}
  50%{opacity:1}
}

.app.left-collapsed .proj-folder-head,
.app.left-collapsed .proj-folder-chats,
.app.left-collapsed .proj-chat-item,
.app.left-collapsed .section .more,
.app.left-collapsed .chat-empty-row{display:none}

.chat-empty-row{
  font-size:14px;color:var(--ink-mute);
  padding:8px 11px;font-style:italic;
}

.kbd{
  font-family:'JetBrains Mono',monospace;font-size:12.5px;
  background:var(--bg);border:1px solid var(--line);
  border-radius:3px;padding:1px 5px;color:var(--ink-mute);
}

/* 사이드바 하단 — 사용자 */
.sidebar-bottom{
  flex-shrink:0;
  border-top:1px solid var(--line);
  padding:8px 12px 10px;
}
.app.left-collapsed .sidebar-bottom{padding:8px 6px 10px}

.user-pill{
  padding:8px 11px;
  display:flex;align-items:center;gap:10px;
  border-radius:7px;
  position:relative;
}
.user-info{cursor:pointer;min-width:0;overflow:hidden}
.user-pill:hover{background:var(--bg-hover)}
.user-menu-btn{
  background:transparent;border:none;cursor:pointer;
  width:26px;height:26px;border-radius:6px;
  display:grid;place-items:center;
  color:var(--ink-mute);flex-shrink:0;
}
.user-menu-btn:hover{background:var(--bg-card);color:var(--ink)}

/* 사용자 팝업 메뉴 */
.user-menu{
  position:absolute;bottom:calc(100% + 6px);right:0;left:0;
  background:var(--bg-card);border:1px solid var(--line);
  border-radius:9px;padding:5px;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
  display:none;flex-direction:column;gap:2px;
  z-index:50;
}
.user-menu.show{display:flex}
.user-menu-item{
  background:transparent;border:none;cursor:pointer;
  padding:8px 10px;border-radius:6px;
  font-family:inherit;font-size:13.5px;color:var(--ink-soft);
  display:flex;align-items:center;gap:9px;
  text-align:left;
}
.user-menu-item:hover{background:var(--bg-hover);color:var(--ink)}
.user-menu-item svg{flex-shrink:0;opacity:.85}
.user-menu-item .ut-label{flex:1}
.user-menu-item .ut-state{
  font-size:11.5px;color:var(--ink-mute);
  font-family:'JetBrains Mono',monospace;
}
.app.left-collapsed .user-menu{
  left:auto;right:-4px;width:160px;
}
.app.left-collapsed .user-pill{
  padding:6px;justify-content:center;
}
.app.left-collapsed .user-info,
.app.left-collapsed .user-pill svg{display:none}
.avatar{
  width:28px;height:28px;border-radius:50%;
  background:var(--accent);color:var(--bg);
  display:grid;place-items:center;flex-shrink:0;
  font-family:'Fraunces',serif;font-size:16px;font-weight:500;
}
.user-name{font-size:15px;color:var(--ink)}
.user-plan{font-size:13px;color:var(--ink-mute)}

/* ===== 중앙 ===== */
.main{display:flex;flex-direction:column;overflow:hidden;min-width:0}
.main-header{
  padding:14px 32px;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  background:var(--bg);min-height:55px;
  transition:padding-left .2s ease;
}
.breadcrumb{font-size:15px;color:var(--ink-mute);display:flex;align-items:center;gap:8px}
.breadcrumb span.crumb{cursor:pointer}
.breadcrumb span.crumb:hover{color:var(--ink)}
.breadcrumb .sep{color:var(--line);cursor:default}
.breadcrumb strong{color:var(--ink);font-weight:500}
.header-actions{display:flex;gap:6px;align-items:center}
.text-btn{
  border:1px solid var(--line);background:transparent;
  border-radius:7px;padding:7px 13px;
  font-family:inherit;font-size:15px;color:var(--ink-soft);
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  transition:all .15s;
}
.text-btn:hover{background:var(--bg-hover);color:var(--ink);border-color:var(--ink-mute)}
.text-btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.text-btn.primary:hover{background:var(--ink);opacity:.9}
.text-btn.danger{color:#f0b7b7;border-color:rgba(190,74,74,.35);background:rgba(190,74,74,.08)}
.text-btn.danger:hover{background:rgba(190,74,74,.14);border-color:rgba(190,74,74,.55);color:#ffd1d1}

.scene{display:none;flex:1;flex-direction:column;overflow:hidden}
.scene.active{display:flex}

/* ============================================ */
/* 공통 유틸 (빈/채움 상태는 데이터로 자동 분기 — 토글 없음) */
/* ============================================ */
.scene-root{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}

/* 점수 배지 */
.score-badge{
  font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;
  color:var(--accent);background:var(--accent-soft);
  padding:2px 7px;border-radius:999px;flex-shrink:0;
}
/* 결과 카드 rank */
.sim-case-rank{
  font-family:'Fraunces',serif;font-size:13px;font-weight:600;
  color:var(--bg);background:var(--purple);
  width:20px;height:20px;border-radius:5px;
  display:inline-grid;place-items:center;flex-shrink:0;
}
.sim-case-meta-row{
  display:flex;align-items:center;gap:8px;margin-top:8px;
  font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--ink-mute);
}
.sim-case-date{margin-left:auto}

/* 어시스턴트 로딩 표시 */
.typing{display:inline-flex;gap:4px;align-items:center;padding:6px 0}
.typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-mute);animation:typing 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}
.typing span:nth-child(3){animation-delay:.4s}
@keyframes typing{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

/* 판례 상세 패널 섹션 */
.detail-block{margin-bottom:16px}
.detail-label{
  font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-mute);margin-bottom:6px;font-weight:600;
}
.detail-text{font-size:14px;line-height:1.7;color:var(--ink-soft)}
.detail-link{
  display:inline-flex;align-items:center;gap:6px;margin-top:4px;
  font-size:13.5px;color:var(--accent);text-decoration:none;
}
.detail-link:hover{text-decoration:underline}

/* 토스트 */
.toast{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  background:var(--bg-card);border:1px solid var(--line);
  color:var(--ink);padding:10px 18px;border-radius:10px;
  box-shadow:0 8px 28px rgba(0,0,0,.4);z-index:200;font-size:14px;
  opacity:0;transition:opacity .2s, transform .2s;pointer-events:none;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-4px)}

/* 사이드바 채팅 타입 표시 (좌측 보더) */
.proj-chat-item.t-precedent::before{background:var(--purple)}
.proj-chat-item.t-project::before{background:var(--accent)}

/* ============================================ */
/* 홈 (메인 페이지 — LawCham 로고 클릭 시)        */
/* ============================================ */
.home-page{flex:1;overflow-y:auto;padding:60px 50px 80px}
.home-inner{max-width:1080px;margin:0 auto}

.home-hero{margin-bottom:32px}
.home-hero h1{
  font-size:30px;font-weight:600;
  letter-spacing:-.01em;color:var(--ink);margin-bottom:4px;
  line-height:1.25;
}
.home-hero h1 em{font-style:normal;color:var(--ink)}
.home-hero p{font-size:15px;color:var(--ink-mute);line-height:1.55}

.home-section-title{
  font-size:14px;font-weight:600;
  color:var(--ink);margin:28px 0 12px;
  display:flex;justify-content:space-between;align-items:center;
}
.home-section-title:first-of-type{margin-top:0}
.home-section-title .more{
  font-size:13px;color:var(--ink-mute);cursor:pointer;
  font-weight:400;
}
.home-section-title .more:hover{color:var(--ink)}

/* (제거됨) 바로 시작 quick-start — Day 0 빈 카드 내부 액션으로 통합 */

.home-recent-projects{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:12px;
}
.home-recent-chats{
  display:flex;flex-direction:column;gap:6px;
}
.home-recent-chat-row{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;border-radius:9px;
  background:var(--bg-soft);border:1px solid var(--line);
  cursor:pointer;transition:all .15s;
}
.home-recent-chat-row:hover{border-color:var(--ink-mute);background:var(--bg-card)}
.hrc-tag{
  font-family:'JetBrains Mono',monospace;font-size:12.5px;
  padding:2px 7px;border-radius:4px;flex-shrink:0;
  background:var(--accent-soft);color:var(--accent);font-weight:500;
}
.hrc-tag.qa{background:var(--green-soft);color:var(--green)}
.hrc-tag.sim{background:var(--purple-soft);color:var(--purple)}
.hrc-tag.law{background:var(--warm-soft);color:var(--warm)}
.hrc-title{
  flex:1;font-size:16px;color:var(--ink-soft);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.hrc-time{
  font-size:13.5px;color:var(--ink-mute);
  font-family:'JetBrains Mono',monospace;flex-shrink:0;
}

/* 빈 상태 공통 (홈 / 프로젝트 목록 / 검색 등) */
.empty-block{
  background:var(--bg-soft);border:1px dashed var(--line);
  border-radius:14px;padding:40px 32px;
  text-align:center;
}
.empty-block .em-icon{
  font-size:40px;margin-bottom:12px;opacity:.6;
}
.empty-block h3{
  font-size:20px;font-weight:600;
  color:var(--ink);margin-bottom:6px;letter-spacing:-.01em;
}
.empty-block p{
  font-size:14px;color:var(--ink-mute);line-height:1.65;
  margin-bottom:20px;
}

/* 빈 카드 내부 액션 — 카드 아닌 minimal 디자인 */
.empty-actions{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--bg);border:1px solid var(--line);
  border-radius:14px;padding:6px;
  margin-top:6px;
}
.empty-action{
  background:transparent;border:none;cursor:pointer;
  font-family:inherit;
  display:inline-flex;align-items:center;gap:9px;
  padding:11px 18px;border-radius:10px;
  transition:all .15s;
}
.empty-action:hover{background:var(--bg-soft)}
.empty-action .ea-icon{
  font-size:18px;line-height:1;
}
.empty-action .ea-label{
  font-size:14px;font-weight:500;color:var(--ink);
}
.empty-actions-sep{
  width:1px;height:22px;background:var(--line);flex-shrink:0;
}
.empty-block .empty-cta{
  background:var(--ink);color:var(--bg);
  border:none;padding:9px 18px;border-radius:8px;
  font-family:inherit;font-size:15px;font-weight:500;
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;
}
.empty-block .empty-cta:hover{opacity:.9}

/* 빈 사이드바 (프로젝트/채팅 섹션) — 회색 텍스트만 */
.sidebar-empty-row{
  font-size:14px;color:var(--ink-mute);
  padding:6px 11px;line-height:1.55;
  margin:0 0 4px;
}
.app.left-collapsed .sidebar-empty-row{display:none}

/* 검색/QA 빈 화면 */
.search-empty{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:40px 20px;
}
.search-empty-inner{max-width:560px;width:100%;text-align:center}
.search-empty h2{
  font-size:24px;font-weight:600;
  color:var(--ink);margin-bottom:10px;letter-spacing:-.01em;
}
.qa-main .search-empty h2{color:#d6ece5}
.search-empty h2 em{font-style:italic;color:#72c4b3}
.search-empty > .search-empty-inner > p{
  font-size:16px;color:var(--ink-mute);margin-bottom:28px;line-height:1.6;
}
.example-list{
  display:flex;flex-direction:column;gap:8px;
  margin-bottom:18px;text-align:left;
}
.example-row{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:10px;padding:12px 14px;cursor:pointer;
  font-size:15px;color:var(--ink-soft);line-height:1.5;
  transition:all .15s;
}
.example-row:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.example-row .ex-tag{
  font-family:'JetBrains Mono',monospace;font-size:12.5px;
  color:#72c4b3;margin-right:8px;
}

/* ============================================ */
/* 프로젝트 목록                                  */
/* ============================================ */
.projects-page{flex:1;overflow-y:auto;background:var(--bg);padding:48px 56px 72px}
.projects-inner{max-width:920px;margin:0 auto}

.projects-head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:22px;flex-wrap:wrap;gap:14px;
}
.projects-title{
  font-size:28px;font-weight:600;
  letter-spacing:-.01em;
}
.new-project-btn{
  background:var(--bg-soft);color:var(--ink-soft);
  border:1px solid var(--line);padding:9px 15px;border-radius:8px;
  font-family:inherit;font-size:15px;font-weight:500;
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  transition:background .15s,color .15s,border-color .15s;
}
.new-project-btn:hover{background:var(--bg-hover);color:var(--ink);border-color:var(--ink-mute)}
.projects-head-actions,
.project-select-actions{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;
}
.project-select-actions span{
  color:var(--ink-mute);font-size:14px;margin-right:6px;
}
.project-select-actions button{
  border:1px solid transparent;background:transparent;color:var(--ink-soft);
  border-radius:999px;padding:8px 12px;font-family:inherit;font-size:13px;cursor:pointer;
}
.project-select-actions button:hover{background:var(--bg-hover);border-color:var(--line-soft);color:var(--ink)}
.project-select-actions button:disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--ink-mute)}
.project-select-actions button.danger{color:#f0b7b7}

.project-grid{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:14px;
}
.project-card{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:14px;padding:20px 22px;cursor:pointer;
  transition:all .2s;display:flex;flex-direction:column;
  min-height:160px;
}
.project-card:hover{
  border-color:var(--ink-mute);background:var(--bg-card);
  transform:translateY(-1px);
}
.project-card-icon{
  width:28px;height:28px;border-radius:10px;
  background:var(--warm);color:var(--bg);
  display:grid;place-items:center;
  font-size:22px;font-weight:600;margin-bottom:14px;
  font-family:'Fraunces',serif;
}
.project-card-icon.blue{background:#6E8FB5}
.project-card-icon.green{background:var(--green)}
.project-card-icon.purple{background:var(--purple)}
.project-card-title{
  font-size:18px;font-weight:500;color:var(--ink);
  margin-bottom:5px;line-height:1.3;
}
.project-card-desc{
  font-size:14px;color:var(--ink-mute);
  line-height:1.5;flex:1;
  overflow:hidden;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.project-card-meta{
  display:flex;align-items:center;gap:12px;
  margin-top:14px;padding-top:12px;
  border-top:1px solid var(--line-soft);
  font-size:13.5px;color:var(--ink-mute);
  font-family:'JetBrains Mono',monospace;
}

/* ============================================ */
/* 프로젝트 상세                                  */
/* ============================================ */
.project-detail{flex:1;overflow-y:auto;padding:36px 48px 60px}
.project-detail-inner{max-width:1280px;margin:0 auto}

.pd-back{
  font-size:15px;color:var(--ink-mute);cursor:pointer;
  margin-bottom:24px;display:inline-flex;align-items:center;gap:5px;
}
.pd-back:hover{color:var(--ink)}

.pd-layout{
  display:grid;grid-template-columns:1fr 360px;gap:36px;
}
.pd-main{display:flex;flex-direction:column;min-width:0}

.pd-head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;margin-bottom:6px;position:relative;
}
.pd-head-side{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}
.pd-updated{color:var(--ink-mute);font-size:13px;white-space:nowrap}
.pd-detail-menu{right:0;top:36px}
.pd-title-row{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.pd-title{
  font-size:28px;font-weight:600;
  letter-spacing:-.01em;
}
.pd-badge{
  font-size:13px;letter-spacing:.05em;
  background:var(--bg-soft);color:var(--ink-mute);
  padding:3px 9px;border-radius:999px;
  border:1px solid var(--line);
}
.pd-actions{display:flex;gap:6px}
.icon-btn{
  width:34px;height:34px;border-radius:8px;
  background:transparent;border:1px solid var(--line);
  display:grid;place-items:center;cursor:pointer;
  color:var(--ink-soft);
}
.icon-btn:hover{background:var(--bg-hover);color:var(--ink)}

.pd-desc{
  font-size:17px;color:var(--ink-soft);line-height:1.5;
  margin-bottom:24px;max-width:680px;
}
.pd-meta{
  font-size:14px;color:var(--ink-mute);
  margin-bottom:24px;
  display:flex;align-items:center;gap:10px;
}
.pd-meta-sep{color:var(--line)}

/* 프로젝트 컴포저 */
.pd-composer{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:14px;padding:12px 16px 10px;margin-bottom:14px;
}
.pd-composer textarea{
  width:100%;border:none;outline:none;resize:none;
  font-family:inherit;font-size:16px;background:transparent;
  color:var(--ink);min-height:38px;line-height:1.45;
}
.pd-composer textarea::placeholder{color:var(--ink-mute)}
.pd-composer-actions{
  display:flex;justify-content:flex-end;align-items:center;margin-top:2px;
}
.send-btn{
  background:var(--ink);color:var(--bg);
  border:none;padding:8px 16px;border-radius:8px;
  font-family:inherit;font-size:15px;cursor:pointer;font-weight:500;
  display:inline-flex;align-items:center;gap:6px;
}
.mic-btn{
  width:40px;height:40px;border-radius:10px;
  border:1px solid var(--line);
  background:var(--bg-hover);color:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s;
}
.mic-btn:hover{background:var(--bg-card);border-color:var(--ink-mute)}
.mic-btn:active{transform:translateY(1px)}
.mic-btn:disabled{opacity:.45;cursor:not-allowed}
.mic-btn.listening{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* 탭 (단일 탭 유지) */
.pd-tabs{
  display:flex;gap:0;border-bottom:1px solid var(--line);
  margin-bottom:18px;
}
.pd-tab{
  padding:10px 16px;cursor:pointer;
  font-size:16px;color:var(--ink-mute);
  border-bottom:2px solid transparent;font-weight:500;
  border-left:none;border-right:none;border-top:none;background:transparent;
  font-family:inherit;
}
.pd-tab.active{color:var(--ink);border-bottom-color:var(--ink)}
.pd-tab .badge{
  background:var(--accent-soft);color:var(--accent);
  padding:1px 7px;border-radius:999px;font-size:13px;
  font-family:'JetBrains Mono',monospace;margin-left:6px;
}
.pd-tab-pane{display:none}
.pd-tab-pane.active{display:block}

/* 채팅 목록 */
.pd-chat-list{display:flex;flex-direction:column;gap:6px}
.pd-chat-row{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:10px;padding:14px 18px;cursor:pointer;
  display:flex;align-items:center;gap:14px;transition:all .15s;
  position:relative;
}
.pd-chat-row:hover{border-color:var(--ink-mute);background:var(--bg-card)}
.pd-chat-info{flex:1;min-width:0}
.pd-chat-title{font-size:16px;font-weight:500;margin-bottom:3px}
.pd-chat-preview{
  font-size:14px;color:var(--ink-mute);
  overflow:hidden;display:-webkit-box;
  -webkit-line-clamp:1;-webkit-box-orient:vertical;
}
.pd-chat-time{display:none}
.pd-chat-menu-btn{margin-left:auto}

/* 오른쪽 사이드: 프로젝트 지식 */
.pd-knowledge{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:14px;padding:20px 22px;
  align-self:flex-start;position:sticky;top:24px;
}
.pk-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.pk-icon{
  width:36px;height:36px;border-radius:9px;
  background:var(--accent-soft);color:var(--accent);
  display:grid;place-items:center;font-size:19px;flex-shrink:0;
}
.pk-icon svg{width:20px;height:20px}
.pk-title{font-size:17px;font-weight:500}
.pk-desc{font-size:14px;color:var(--ink-mute);line-height:1.55;margin-bottom:16px}
.pk-desc span{display:block}

.pk-section-title{
  font-size:13px;font-weight:600;
  color:var(--ink);margin-bottom:8px;
  display:flex;justify-content:space-between;align-items:center;
}
.pk-size{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--ink-mute)}

.pk-files{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.pk-file{
  background:var(--bg);border:1px solid var(--line);
  border-radius:8px;padding:10px 12px;
  display:flex;align-items:center;gap:10px;
  cursor:pointer;transition:all .15s;
}
.pk-file:hover{border-color:var(--ink-mute);background:var(--bg-card)}
.pk-file-icon{
  width:26px;height:30px;border-radius:4px;
  background:var(--warm);color:var(--bg);
  display:grid;place-items:center;
  font-size:11.5px;font-weight:600;font-family:'JetBrains Mono',monospace;
  flex-shrink:0;
}
.pk-file-icon.docx{background:#6E8FB5}
.pk-file-icon.hwp{background:var(--purple)}
.pk-file-icon.txt{background:var(--green)}
.pk-file-info{flex:1;min-width:0}
.pk-file-name{
  font-size:15px;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px;
}
.pk-file-meta{
  font-size:13px;color:var(--ink-mute);font-family:'JetBrains Mono',monospace;
  display:flex;align-items:center;gap:6px;
}
.pk-file-status{
  width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;
}
.pk-file-status.processing{background:var(--accent);animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* 텍스트 추가 */
.pk-text-item{
  background:var(--bg);border:1px solid var(--line);
  border-radius:8px;padding:10px 12px;
  cursor:pointer;transition:all .15s;
}
.pk-text-item:hover{border-color:var(--ink-mute);background:var(--bg-card)}
.pk-text-head{
  display:flex;align-items:center;gap:8px;margin-bottom:5px;
}
.pk-text-icon{
  width:18px;height:18px;border-radius:4px;
  background:var(--accent-soft);color:var(--accent);
  display:grid;place-items:center;font-size:13px;font-weight:600;flex-shrink:0;
}
.pk-text-name{
  font-size:15px;color:var(--ink);font-weight:500;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;
}
.pk-text-len{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--ink-mute)}
.pk-text-preview{
  font-size:13.5px;color:var(--ink-mute);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}

.pk-empty{
  background:var(--bg);border:1px dashed var(--line);
  border-radius:8px;padding:18px 14px;
  text-align:center;font-size:14px;color:var(--ink-mute);
  line-height:1.6;margin-bottom:6px;
}
.pk-empty strong{color:var(--ink-soft);font-weight:500}
.pd-empty{
  background:var(--bg-soft);border:1px dashed var(--line);
  border-radius:10px;padding:36px 22px;
  text-align:center;font-size:15px;color:var(--ink-mute);
  line-height:1.6;
}
.pd-composer textarea:disabled{cursor:not-allowed;opacity:.6}
.send-btn:disabled{cursor:not-allowed}

.pk-add-row{display:flex;gap:6px;margin-top:6px}
.pk-add-btn{
  flex:1;background:transparent;border:1px dashed var(--line);
  border-radius:8px;padding:10px;
  color:var(--ink-soft);font-family:inherit;font-size:14px;
  cursor:pointer;transition:all .15s;
  display:flex;align-items:center;justify-content:center;gap:5px;
}
.pk-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}

.pk-allowed{
  margin-top:10px;font-size:12.5px;color:var(--ink-mute);
  text-align:center;font-family:inherit;
}
.pk-allowed span{display:block;line-height:1.55}
.pk-empty.compact{padding:12px 0;color:var(--ink-mute);font-size:13px}
.pk-quota{margin-bottom:16px}
.pk-quota-bar{
  height:8px;border-radius:999px;background:var(--bg);
  border:1px solid var(--line);overflow:hidden;
}
.pk-quota-bar span{display:block;height:100%;background:var(--accent);border-radius:999px}
.pk-quota-meta{margin-top:6px;color:var(--ink-mute);font-size:12.5px;text-align:right}
.pk-quota-bar.compact{height:7px;margin-top:9px}
.pk-panel-section{
  border-top:1px solid var(--line);
  padding:14px 0;
}
.pk-panel-section:first-of-type{border-top:none}
.pk-panel-section.file{padding-bottom:0}
.pk-panel-section.local-folder{border-top:none}
.pk-panel-row{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
}
.pk-panel-title{
  color:var(--ink);font-size:14px;font-weight:650;
}
.pk-panel-desc{
  margin-top:3px;color:var(--ink-mute);font-size:13px;line-height:1.45;
}
.pk-plus-btn{
  width:26px;height:26px;border:none;border-radius:7px;
  background:transparent;color:var(--ink);font-size:22px;line-height:1;
  cursor:pointer;display:grid;place-items:center;flex-shrink:0;
}
.pk-plus-btn:hover{background:var(--bg-hover)}
.pk-file-mode-row{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:7px;margin-bottom:14px;padding-bottom:14px;
  border-bottom:1px solid var(--line);
  color:var(--ink-mute);font-size:12.5px;
}
.pk-mode-dot{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--ink-soft);
}
.pk-mode-dot i{
  width:6px;height:6px;border-radius:50%;background:var(--ink);display:inline-block;
}
.pk-upload-result-title{
  margin:12px 0 6px;color:var(--ink);font-size:13px;font-weight:650;
}
.pk-panel-section.upload-result .pk-upload-result-title{margin-top:0}
.pk-clear-failures{
  width:100%;border:1px solid rgba(190,74,74,.35);background:rgba(190,74,74,.08);
  color:#f0b7b7;border-radius:8px;padding:8px 10px;margin:8px 0 12px;
  font-family:inherit;cursor:pointer;
}
.upload-result-list{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}
.upload-result-row{
  border:1px solid var(--line);border-radius:8px;background:var(--bg);
  padding:9px 10px;
}
.upload-result-row.failed{border-color:rgba(190,74,74,.35);background:rgba(190,74,74,.08)}
.upload-result-row.processing{border-color:rgba(116,166,166,.28)}
.upload-result-name{
  font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.upload-result-meta{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:3px;
  font-size:12.5px;color:var(--ink-mute);font-family:'JetBrains Mono',monospace;
}
.upload-result-dot{
  width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0;
  background:var(--ink-mute);
}
.upload-result-dot.ready{background:#72c4b3}
.upload-result-dot.failed{background:#d66b6b}
.upload-result-dot.processing{background:#d9bd77}
.pd-mode-chip{display:none}
.pd-disclaimer{margin:0 0 22px;color:var(--ink-mute);font-size:12.5px;text-align:center}
.icon-btn.text-icon{width:auto;padding:0 12px;font-size:13px}
.project-files-pane{display:flex;flex-direction:column;gap:18px}
.pf-toolbar{display:flex;align-items:center;gap:8px}
.pf-search{
  flex:1;min-width:220px;height:40px;border:1px solid var(--line);
  border-radius:8px;background:var(--bg-soft);display:flex;align-items:center;gap:8px;
  padding:0 11px;color:var(--ink-mute);
}
.pf-search input{
  flex:1;border:none;outline:none;background:transparent;color:var(--ink);
  font-family:inherit;font-size:14px;
}
.pf-btn,.pf-action{
  border:1px solid var(--line);background:var(--bg-soft);color:var(--ink-soft);
  border-radius:8px;padding:9px 12px;font-family:inherit;font-size:13px;cursor:pointer;
}
.pf-btn:hover,.pf-action:hover{background:var(--bg-card);color:var(--ink)}
.pf-btn:disabled{opacity:.45;cursor:not-allowed}
.pf-btn.danger,.pf-action.danger{color:#f0b7b7;border-color:rgba(190,74,74,.25)}
.pf-action-chip{
  border:1px solid transparent;
  background:transparent;
  color:var(--ink-soft);
  border-radius:999px;
  padding:7px 10px;
  min-height:30px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:inherit;
  font-size:12.5px;
  cursor:pointer;
}
.pf-action-chip:hover{background:var(--bg-hover);border-color:var(--line-soft);color:var(--ink)}
.pf-action-chip:disabled{opacity:.35;cursor:not-allowed;background:transparent;color:var(--ink-mute);border-color:transparent}
.pf-action-chip.danger{color:#f0b7b7}
.pf-action-chip.danger:hover{background:rgba(190,74,74,.12);border-color:rgba(190,74,74,.24)}
.pf-action-chip svg{width:14px;height:14px}
.pf-breadcrumb{display:flex;align-items:center;gap:7px;color:var(--ink-mute);font-size:13px}
.pf-breadcrumb button{border:none;background:transparent;color:var(--ink);font-family:inherit;cursor:pointer;padding:0}
.pf-breadcrumb-inline{flex:1;min-width:0;overflow:hidden;white-space:nowrap}
.pf-section{display:flex;flex-direction:column;gap:0}
.pf-section-title{font-size:14px;font-weight:650;color:var(--ink)}
.pf-selection-label{margin-top:1px;color:var(--ink-soft);font-size:14px}
.pf-list-actions{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding-top:2px;
}
.pf-action-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pf-selection-count{color:var(--ink-mute);font-size:14px;margin-right:4px;white-space:nowrap}
.pf-list-head{
  display:grid;grid-template-columns:minmax(0,1fr) 110px 88px 34px;
  gap:12px;align-items:center;
  color:var(--ink-mute);font-size:12.5px;
  border-bottom:1px solid var(--line-soft);
  padding:0 8px 8px 54px;
}
.pf-file-list{display:flex;flex-direction:column}
.pf-file-row{
  display:grid;grid-template-columns:38px minmax(0,1fr) 110px 88px 34px;
  align-items:center;gap:12px;padding:11px 8px;
  border-bottom:1px solid var(--line-soft);
  border-radius:8px;position:relative;cursor:pointer;
  transition:background .15s,border-color .15s,box-shadow .15s;
}
.pf-file-row:hover{background:var(--bg-soft)}
.pf-file-row.selected{
  background:var(--bg-soft);
  box-shadow:inset 3px 0 0 var(--accent);
}
.pf-file-row.drop-target{
  background:var(--accent-soft);
  box-shadow:inset 0 0 0 1px var(--accent);
}
.pf-file-icon{
  width:34px;height:38px;border-radius:7px;background:rgba(220,168,104,.16);color:var(--warm);
  display:grid;place-items:center;
}
.pf-file-icon svg{width:18px;height:18px}
.pf-file-icon.folder{background:rgba(114,196,179,.12);color:var(--accent)}
.pf-file-icon.up{background:var(--bg-soft);color:var(--ink-mute);border:1px solid var(--line-soft)}
.pf-file-row.up-row{color:var(--ink-mute)}
.pf-file-row.up-row .pf-file-name{color:var(--ink-soft)}
.pf-file-main{flex:1;min-width:0}
.pf-file-name{font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-file-meta{display:flex;gap:10px;margin-top:4px;color:var(--ink-mute);font-size:12.5px}
.pf-file-date,.pf-file-size{
  color:var(--ink-mute);font-size:13px;white-space:nowrap;
}
.pf-empty{color:var(--ink-mute);font-size:14px;padding:10px 0}
.pf-row-menu-btn{
  width:30px;height:30px;border:none;border-radius:7px;
  background:transparent;color:var(--ink-mute);
  display:grid;place-items:center;cursor:pointer;
}
.pf-row-menu-btn:hover{background:var(--bg-hover);color:var(--ink)}
.pf-row-menu{
  position:absolute;right:8px;top:38px;z-index:30;
  min-width:116px;background:var(--bg-card);border:1px solid var(--line);
  border-radius:8px;padding:5px;display:none;
  box-shadow:0 12px 28px rgba(0,0,0,.35);
}
.pf-row-menu.show{display:flex;flex-direction:column;gap:2px}
.pf-row-menu button{
  width:100%;border:none;background:transparent;color:var(--ink-soft);
  font-family:inherit;font-size:13px;text-align:left;
  padding:8px 10px;border-radius:6px;cursor:pointer;
}
.pf-row-menu button:hover{background:var(--bg-hover);color:var(--ink)}
.pf-row-menu button.danger{color:var(--red)}
.local-folders-pane .pf-file-row{cursor:default}
.local-folders-pane .pf-file-row.folder,
.local-folders-pane .pf-file-row.up-row{cursor:pointer}
.local-folder-error{color:#f0b7b7}
.pk-local-folder-list{
  display:flex;flex-direction:column;gap:6px;margin-top:10px;
}
.pk-local-folder-item{
  width:100%;border:1px solid var(--line-soft);background:var(--bg-soft);
  color:var(--ink);border-radius:8px;padding:9px 10px;
  display:flex;flex-direction:column;align-items:flex-start;gap:5px;
  font-family:inherit;text-align:left;cursor:pointer;
}
.pk-local-folder-item:hover{background:var(--bg-hover);border-color:var(--line)}
.pk-local-folder-name{
  font-size:13px;font-weight:650;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pk-local-folder-stats{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  color:var(--ink-mute);font-size:12px;
}
.pk-local-folder-stats b{
  font-weight:500;color:var(--ink-soft);white-space:nowrap;
}
.pk-local-folder-item em{
  display:flex;align-items:center;gap:6px;
  font-style:normal;color:var(--ink-mute);font-size:12px;
}
.pk-local-progress{
  width:100%;height:4px;border-radius:999px;background:var(--line-soft);
  overflow:hidden;display:block;margin:2px 0;
}
.pk-local-progress b{
  display:block;height:100%;border-radius:999px;background:var(--accent);
}
.pk-local-folder-empty{margin-top:10px;color:var(--ink-mute);font-size:13px}
.pd-composer .mic-btn{width:34px;height:34px}

/* ============================================ */
/* 채팅 (단일 컬럼)                                */
/* ============================================ */
.chat-page{flex:1;display:flex;flex-direction:column;overflow:hidden}
.chat-stream{
  flex:1;overflow-y:auto;padding:30px 0 0;
  display:flex;flex-direction:column;
}
.msg-wrap{
  max-width:760px;width:100%;margin:0 auto;padding:0 32px;
  flex:1;
}

.chat-empty{text-align:center;padding:60px 0 36px}
.chat-empty h2{
  font-size:24px;font-weight:600;
  letter-spacing:-.01em;margin-bottom:8px;
}
.chat-empty h2 em{font-style:italic;color:var(--accent)}
.chat-empty p{font-size:16px;color:var(--ink-mute)}

.msg{margin-bottom:28px}
.msg.user{
  display:flex;flex-direction:column;align-items:flex-end;
}
.msg-role{
  font-size:13px;letter-spacing:0;text-transform:none;
  color:var(--ink-mute);margin-bottom:9px;
  display:flex;align-items:center;gap:8px;
}
.msg-role .dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.msg.user .msg-role .dot{background:var(--warm)}
.msg-body{font-size:17px;line-height:1.75;color:var(--ink)}
.msg.user .msg-role{
  align-self:flex-end;justify-content:flex-end;
}
.msg.user .msg-role .dot{order:2}
.msg.user .msg-body{
  max-width:min(78%, 620px);
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:14px 14px 4px 14px;
  padding:12px 16px;text-align:left;
}
.msg.user .msg-body p:last-child{margin-bottom:0}
.msg-body p{margin-bottom:10px}
.msg-body strong{font-weight:600;color:var(--ink)}
.msg-body a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.msg-divider{border:0;border-top:1px solid rgba(255,255,255,.72);opacity:.7;margin:22px 0}
.msg-body h2,.msg-body h3,.msg-body h4{
  font-size:18px;font-weight:600;color:var(--ink);
  margin:18px 0 8px;line-height:1.45;
}
.msg-body h2:first-child,.msg-body h3:first-child,.msg-body h4:first-child{margin-top:0}
.msg-body ol,.msg-body ul{
  margin:8px 0 12px 22px;padding:0;
}
.msg-body li{
  padding-left:3px;margin:5px 0;line-height:1.75;
}
.msg-body code{
  font-family:'JetBrains Mono',monospace;font-size:.9em;
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:4px;padding:1px 4px;color:var(--ink);
}

/* 인용 — 표시 전용 (클릭 비활성) */
sup.cite{
  color:var(--accent);font-weight:500;
  margin:0 1px;font-family:'JetBrains Mono',monospace;font-size:13px;
  padding:1px 3px;border-radius:3px;
  background:var(--accent-soft);
  user-select:none;
}
sup.cite.law{color:var(--warm);background:var(--warm-soft)}
sup.cite.case{color:var(--purple);background:var(--purple-soft)}

/* 출처 패널 */
.sources-panel{
  margin-top:14px;
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:10px;padding:12px 14px;
}
.sources-head{
  font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-mute);margin-bottom:10px;
  display:flex;justify-content:space-between;align-items:center;
}
.sources-head .toggle{
  cursor:pointer;font-size:13.5px;color:var(--ink-mute);
  text-transform:none;letter-spacing:normal;
}
.sources-head .toggle:hover{color:var(--ink)}

.sources-group{margin-bottom:6px}
.sources-group:last-child{margin-bottom:0}
.sources-group-label{
  font-size:13px;color:var(--ink-mute);
  margin-bottom:4px;padding-left:2px;
  font-family:'JetBrains Mono',monospace;
}
.source-chip{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--bg);border:1px solid var(--line);
  padding:5px 10px;border-radius:7px;
  font-size:14px;color:var(--ink-soft);
  cursor:pointer;transition:all .15s;
  margin:2px 4px 2px 0;
}
.source-chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.source-chip .src-num{
  font-family:'JetBrains Mono',monospace;font-size:12.5px;
  color:var(--accent);font-weight:500;
}
.source-chip.law .src-num{color:var(--warm)}
.source-chip.case .src-num{color:var(--purple)}

/* 답변 액션 */
.msg-actions{
  margin-top:14px;padding-top:12px;
  border-top:1px solid var(--line-soft);
  display:flex;align-items:center;gap:4px;
}
.msg-actions.compact{
  margin-top:10px;padding-top:4px;border-top:none;gap:2px;
}
.user-msg-actions{
  align-self:flex-end;margin-top:6px;opacity:.82;
}
.msg.user:hover .user-msg-actions{opacity:1}
.msg-action-btn{
  background:transparent;border:none;cursor:pointer;
  padding:5px 10px;border-radius:6px;
  font-family:inherit;font-size:14px;color:var(--ink-mute);
  display:inline-flex;align-items:center;gap:4px;
}
.msg-action-btn:hover{background:var(--bg-hover);color:var(--ink-soft)}
.msg-action-btn.up.active{background:var(--green-soft);color:var(--green)}
.msg-action-btn.down.active{background:var(--red-soft);color:var(--red)}
.msg-icon-btn{
  width:30px;height:30px;border-radius:7px;
  border:none;background:transparent;color:var(--ink-mute);
  display:inline-flex;align-items:center;justify-content:center;gap:3px;
  cursor:pointer;transition:background .15s,color .15s,transform .15s;
  font-family:inherit;font-size:12px;
}
.msg-icon-btn:hover{background:var(--bg-hover);color:var(--ink)}
.msg-icon-btn:active{transform:translateY(1px)}
.msg-icon-btn.source{width:auto;padding:0 8px}
.msg-icon-btn.source span{
  font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--ink-mute);
}
.msg-icon-btn.up.active,.msg-icon-btn.down.active{
  background:var(--bg-hover);color:var(--ink);
}
.thinking-status{
  position:relative;min-height:28px;color:var(--ink-mute);
  font-size:16px;line-height:1.7;
}
.thinking-status span{
  position:absolute;inset:0 auto auto 0;
  opacity:0;animation:thinking-cycle 4.8s infinite;
}
.thinking-status span:nth-child(2){animation-delay:1.6s}
.thinking-status span:nth-child(3){animation-delay:3.2s}
.thinking-status span::after{
  content:'';display:inline-block;width:1.2em;text-align:left;
  animation:thinking-dots 1.2s steps(4,end) infinite;
}
@keyframes thinking-cycle{
  0%,8%{opacity:0;transform:translateY(3px)}
  12%,30%{opacity:1;transform:translateY(0)}
  38%,100%{opacity:0;transform:translateY(-3px)}
}
@keyframes thinking-dots{
  0%{content:''}
  25%{content:'.'}
  50%{content:'..'}
  75%,100%{content:'...'}
}
.precedent-thinking-status{
  display:inline-flex;align-items:center;min-height:28px;
  color:var(--ink-mute);font-size:16px;line-height:1.7;font-weight:500;
}
.precedent-thinking-status span::after{
  content:'.';display:inline-block;width:1.8em;text-align:left;
  animation:precedent-thinking-dots 1.15s steps(4,end) infinite;
}
@keyframes precedent-thinking-dots{
  0%{content:'.'}
  25%{content:'..'}
  50%{content:'...'}
  75%,100%{content:'....'}
}

.composer-sticky{
  position:sticky;bottom:0;
  padding:18px 32px 22px;
  background:linear-gradient(to top, var(--bg) 60%, transparent);
  max-width:760px;width:100%;margin:0 auto;
  flex-shrink:0;
}
.composer{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:14px;padding:14px 16px;
}
.composer textarea{
  width:100%;border:none;outline:none;resize:none;
  font-family:inherit;font-size:17px;background:transparent;
  color:var(--ink);min-height:50px;line-height:1.5;
}
.composer textarea::placeholder{color:var(--ink-mute)}
.composer-actions{
  display:flex;justify-content:flex-end;align-items:center;margin-top:8px;
}
.composer-disclaimer{
  margin-top:8px;
  color:var(--ink-mute);
  font-size:12px;
  line-height:1.45;
  text-align:center;
}

/* ============================================ */
/* 유사판례 — 채팅 내 판례 카드 목록                 */
/* ============================================ */
.sim-case-list{
  display:flex;flex-direction:column;gap:8px;
  margin:14px 0 6px;
}
.sim-case{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:10px;padding:14px 16px;
  transition:all .15s;
}
.sim-case[onclick]{cursor:pointer}
.sim-case[onclick]:hover{border-color:var(--ink-mute);background:var(--bg-card)}
.sim-case-head{
  display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap;
}
.sim-case-court{
  font-family:'JetBrains Mono',monospace;font-size:13px;
  color:var(--purple);letter-spacing:.04em;
  background:var(--purple-soft);padding:2px 7px;border-radius:4px;font-weight:500;
}
.sim-case-court.law{
  color:var(--warm);background:var(--warm-soft);
}
.sim-case-num{
  font-family:'JetBrains Mono',monospace;font-size:13.5px;color:var(--ink-mute);
}
.sim-case-title{
  font-size:16px;font-weight:500;color:var(--ink);
  margin-bottom:5px;line-height:1.4;
}
.sim-case-snippet{
  font-size:15px;color:var(--ink-soft);line-height:1.6;
}
.sim-case-snippet em{background:var(--highlight);font-style:normal;padding:0 3px;color:var(--ink)}

/* ============================================ */
/* QA / 유사판례 (공통 채팅형)                     */
/* ============================================ */
.qa-page{flex:1;display:flex;overflow:hidden;background:var(--bg);position:relative}
.qa-side{
  width:260px;border-right:1px solid var(--line);
  background:var(--bg-soft);padding:18px 12px;
  overflow-y:auto;overflow-x:hidden; /* 하단 가로 스크롤바 숨김 */
  flex-shrink:0;display:flex;flex-direction:column;
  transition:width .2s ease, padding .2s ease;
  position:relative;
}
/* 왼쪽 사이드바(.sidebar-scroll)와 동일한 얇은 세로 스크롤바 */
.qa-side::-webkit-scrollbar{width:5px}
.qa-side::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.qa-side{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.qa-page.side-collapsed .qa-side{
  width:0;padding:18px 0;border-right:none;overflow:hidden;
}
/* 접을 때 내용이 좁아지면서 압축되어 보이는 현상 방지 — 자식 폭을 고정 */
.qa-side > .qa-side-head,
.qa-side > .qa-history,
.qa-side > .sidebar-empty-row,
.qa-side > .show-when-empty,
.qa-side > .show-when-filled{
  width:236px;flex-shrink:0;
}
.qa-side > .show-when-filled > *{width:auto}
.qa-side-toggle{
  position:absolute;top:18px;
  width:26px;height:26px;border-radius:50%;
  background:var(--bg-soft);border:1px solid var(--line);
  display:grid;place-items:center;cursor:pointer;
  color:var(--ink-mute);z-index:5;
  left:247px;transition:left .2s ease;
}
.qa-side-toggle:hover{color:var(--ink);background:var(--bg-card)}
.qa-side-toggle svg{transition:transform .2s}
.qa-page.side-collapsed .qa-side-toggle{left:13px;background:var(--bg);border-color:var(--line)}
.qa-page.side-collapsed .qa-side-toggle svg{transform:rotate(180deg)}
.qa-side-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:0 11px 12px;
}
.qa-side-title{
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);
}
.qa-new-btn{
  background:var(--bg-card);color:var(--ink-soft);
  border:1px solid var(--line);border-radius:6px;padding:4px 10px;
  font-size:14px;cursor:pointer;font-family:inherit;font-weight:500;
  display:inline-flex;align-items:center;gap:4px;
  transition:background .15s,color .15s,border-color .15s;
}
.qa-new-btn:hover{background:var(--bg-hover);color:var(--ink);border-color:var(--ink-mute)}
.qa-history{
  padding:9px 11px;border-radius:7px;cursor:pointer;margin-bottom:3px;
}
.qa-history:hover{background:var(--bg-hover)}
.qa-history.active{background:var(--bg-hover)}
.qa-h-title{
  font-size:15px;font-weight:500;color:var(--ink-soft);margin-bottom:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.qa-history.active .qa-h-title{color:var(--ink)}
.qa-h-meta{font-size:13px;color:var(--ink-mute);font-family:'JetBrains Mono',monospace}
.qa-main{flex:1;display:flex;flex-direction:column;overflow:hidden}

/* ============================================ */
/* 우측 미리보기 패널                              */
/* ============================================ */
.preview-panel{
  background:var(--bg-soft);border-left:1px solid var(--line);
  display:none;flex-direction:column;overflow:hidden;
}
.app.preview-open .preview-panel{display:flex}
.preview-head{
  height:55px;min-height:55px;box-sizing:border-box;
  padding:0 18px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:10px;
}
.preview-title-block{flex:1;min-width:0}
.preview-title-row{
  display:flex;align-items:center;gap:8px;margin-bottom:3px;flex-wrap:wrap;
}
.preview-num{
  font-family:'JetBrains Mono',monospace;font-size:13px;
  color:var(--accent);background:var(--accent-soft);
  padding:2px 7px;border-radius:4px;font-weight:500;
}
.preview-num.law{color:var(--warm);background:var(--warm-soft)}
.preview-num.case{color:var(--purple);background:var(--purple-soft)}
.preview-title{font-size:16px;font-weight:500;color:var(--ink)}
.preview-meta{
  font-size:13.5px;color:var(--ink-mute);
  font-family:'JetBrains Mono',monospace;
}
.preview-close{
  width:28px;height:28px;border-radius:6px;
  background:transparent;border:none;cursor:pointer;
  color:var(--ink-mute);font-size:22px;
  display:grid;place-items:center;
}
.preview-close:hover{background:var(--bg-hover);color:var(--ink)}

.preview-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:18px}

.related-panel-body{padding:18px 20px}
.related-section-title{
  font-size:14px;font-weight:650;color:var(--ink);
  margin:2px 0 10px;
}
.related-separator{
  height:1px;background:rgba(255,255,255,.72);
  opacity:.6;margin:18px 0;
}
.related-case-list{display:flex;flex-direction:column;gap:4px}
.related-case-row{
  padding:10px 0;border-bottom:1px solid var(--line-soft);
  cursor:pointer;color:var(--ink-soft);
}
.related-case-row:hover .related-case-overlap{color:var(--ink)}
.related-case-meta{
  display:flex;align-items:center;gap:8px;min-width:0;
  font-size:13px;color:var(--ink-mute);line-height:1.45;
}
.related-case-meta span{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.related-case-number{
  color:var(--ink);font-weight:650;text-decoration:none;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px;
  display:inline-block;vertical-align:bottom;
}
.related-case-number:hover{text-decoration:underline}
.related-case-summary{
  margin-top:5px;font-size:14px;line-height:1.55;color:var(--ink-soft);
  overflow-wrap:anywhere;word-break:break-word;
}
.related-case-overlap{
  margin-top:6px;font-size:13.5px;line-height:1.5;color:var(--ink-soft);
  overflow-wrap:anywhere;word-break:break-word;
}
.related-case-overlap p{margin:0 0 6px}
.related-case-overlap p:last-child{margin-bottom:0}
.related-case-points{
  display:flex;flex-direction:column;gap:4px;margin-top:7px;
}
.related-evidence-line{
  display:grid;grid-template-columns:58px minmax(0,1fr);
  gap:8px;align-items:start;font-size:12.5px;line-height:1.45;
}
.related-evidence-line span{color:var(--ink-mute)}
.related-evidence-line strong{
  color:var(--ink-soft);font-weight:400;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.related-case-expand{
  display:none;margin-top:10px;padding:10px 12px;border-left:2px solid var(--warm);
  background:var(--bg);border-radius:6px;
}
.related-case-row.open .related-case-expand{display:block}
.related-snippet{
  font-size:13px;line-height:1.6;color:var(--ink-soft);
  padding:6px 0;border-bottom:1px solid var(--line-soft);
  overflow-wrap:anywhere;word-break:break-word;
}
.related-snippet:last-of-type{border-bottom:none}
.related-snippet.muted{color:var(--ink-mute)}
.related-search-link{
  display:inline-flex;margin-top:9px;font-size:13px;
  color:var(--ink-mute);text-decoration:none;
}
.related-search-link:hover{color:var(--ink);text-decoration:underline}

/* 출처 청크 카드 (벡터 RAG 결과 표시 — 어떤 청크에서 찾았는지) */
.src-chunk-list{display:flex;flex-direction:column;gap:14px}
.src-chunk-card{
  background:var(--bg);border:1px solid var(--line);
  border-radius:10px;padding:12px 14px;
  min-width:0;overflow:hidden;
}
.src-chunk-head{
  display:flex;align-items:flex-start;gap:10px;
  padding-bottom:10px;margin-bottom:10px;
  border-bottom:1px solid var(--line-soft);
}
.src-chunk-head .src-tag{
  font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;
  color:var(--accent);background:var(--accent-soft);
  padding:2px 7px;border-radius:4px;flex-shrink:0;
  line-height:1.4;
}
.src-chunk-meta{flex:1;min-width:0}
.src-chunk-file{
  font-size:13px;color:var(--ink);font-weight:500;
  margin-bottom:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  max-width:100%;
}
.src-chunk-loc{
  font-size:12px;color:var(--ink-mute);
  font-family:inherit;
}
.src-chunk-loc strong{color:var(--accent);font-weight:500}
.src-chunk-caption{
  font-size:12px;color:var(--ink-mute);
  margin:0 0 6px 2px;
}
.src-chunk-body{
  font-size:13px;color:var(--ink-soft);line-height:1.65;
  background:var(--bg-soft);border-radius:6px;
  padding:10px 12px;
  border-left:2px solid var(--accent);
  white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;
  max-width:100%;
}
.source-highlight{
  background:var(--highlight);color:var(--ink);
  border-radius:3px;padding:0 2px;
}

.reference-panel-body{padding:18px 20px}
.reference-list{display:flex;flex-direction:column;gap:14px}
.reference-row{
  display:grid;grid-template-columns:26px minmax(0,1fr);
  gap:8px;align-items:start;color:var(--ink-soft);
}
.reference-index{color:var(--ink-mute);font-family:'JetBrains Mono',monospace;font-size:13px}
.reference-main{min-width:0}
.reference-file{
  color:var(--ink);font-size:14px;font-weight:550;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.reference-loc{
  margin-top:3px;color:var(--ink-mute);font-size:13px;line-height:1.45;
}

.preview-chunk{
  background:var(--bg);border:1px solid var(--accent);
  border-radius:9px;padding:14px 16px;
  margin-bottom:14px;position:relative;
}
.preview-chunk::before{
  content:'인용된 부분';position:absolute;top:-9px;left:14px;
  background:var(--accent);color:var(--bg);
  font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:2px 7px;border-radius:3px;font-weight:600;
}
.preview-chunk-body{
  font-size:16px;line-height:1.7;color:var(--ink);
}
.preview-context{
  padding:0 4px;font-size:15px;line-height:1.7;
  color:var(--ink-mute);
}
.preview-context-label{
  font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-mute);margin-bottom:7px;font-weight:500;
}
.preview-context.above{margin-bottom:14px}
.preview-context.below{margin-top:14px}

.preview-foot{
  padding:12px 18px;border-top:1px solid var(--line);
  display:flex;gap:6px;background:var(--bg);
}
.preview-foot .text-btn{flex:1;justify-content:center}

/* ============================================ */
/* 모달                                          */
/* ============================================ */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,.6);
  display:none;align-items:center;justify-content:center;
  z-index:100;backdrop-filter:blur(4px);
}
.modal-overlay.show{display:flex}
.modal{
  background:var(--bg-card);border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 24px 64px rgba(0,0,0,.5);
  width:90%;max-width:560px;max-height:90vh;
  display:flex;flex-direction:column;overflow:hidden;
}
.modal-head{
  padding:18px 22px;border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
}
.modal-title{font-family:'Fraunces',serif;font-size:24px;font-weight:500;color:var(--ink)}
.modal-close{
  background:transparent;border:none;cursor:pointer;
  font-size:22px;color:var(--ink-mute);
  width:28px;height:28px;border-radius:6px;display:grid;place-items:center;
}
.modal-close:hover{background:var(--bg-hover);color:var(--ink)}
.modal-body{padding:22px;overflow-y:auto;flex:1}
.action-modal{max-width:560px}
.action-textarea{min-height:180px}
.modal-note{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.55}
.upload-panel{display:flex;flex-direction:column;gap:14px}
.unified-upload-panel{
  min-height:236px;
  justify-content:center;
}
.unified-upload-panel.has-files{
  min-height:236px;
}
.upload-drop{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  border:1px dashed var(--line);border-radius:8px;
  padding:16px;background:var(--bg-soft);
  text-align:center;
  cursor:pointer;transition:border-color .15s,background .15s;
}
.upload-drop:hover,.upload-drop.drag-over{border-color:var(--accent);background:var(--accent-soft)}
.upload-drop-title{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
}
.upload-drop-main{
  font-size:15px;font-weight:600;color:var(--ink);
}
.upload-drop-sub{
  margin-left:0;font-size:12.5px;color:var(--ink-mute);
  text-align:center;line-height:1.55;
}
.upload-file-list{
  min-height:176px;border:1px solid var(--line);
  border-radius:8px;background:var(--bg);
  padding:12px;color:var(--ink-soft);
}
.upload-file-list-unified{
  width:100%;
  transition:border-color .15s,background .15s;
}
.upload-file-list-unified.is-empty{
  min-height:236px;
  margin:0;
}
.upload-file-list-unified.has-files{
  min-height:176px;
  cursor:pointer;
}
.upload-file-list-unified.has-files.drag-over{
  border-color:var(--accent);
  background:var(--accent-soft);
}
.upload-file-list-unified.has-files:hover{
  border-color:rgba(255,255,255,.18);
}
.upload-empty{
  min-height:150px;display:grid;place-items:center;
  color:var(--ink-mute);font-size:14px;
}
.upload-list-head{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:13px;font-weight:600;color:var(--ink-mute);
  margin-bottom:10px;
}
.upload-list-head em{
  font-style:normal;
  font-size:12px;
  font-weight:400;
  color:var(--ink-soft);
}
.upload-list{display:flex;flex-direction:column;gap:7px;max-height:260px;overflow:auto}
.upload-file-row{
  display:grid;grid-template-columns:28px minmax(0,1fr) auto 32px;
  align-items:center;gap:10px;
  padding:9px 10px;border:1px solid var(--line-soft);
  border-radius:8px;background:var(--bg-soft);
}
.upload-file-row.rejected{border-color:rgba(190,74,74,.35);background:rgba(190,74,74,.08)}
.upload-file-index{
  width:24px;height:24px;border-radius:6px;display:grid;place-items:center;
  font-family:'JetBrains Mono',monospace;font-size:12px;
  background:var(--bg-card);color:var(--ink-mute);
}
.upload-file-name{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--ink);font-size:14px;
}
.upload-file-size{
  font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink-mute);
  white-space:nowrap;
}
.upload-file-remove,
.upload-file-remove-spacer{
  width:28px;height:28px;
}
.upload-file-remove{
  border:1px solid var(--line-soft);background:var(--bg-card);color:var(--ink);
  border-radius:6px;display:grid;place-items:center;
  cursor:pointer;font-size:18px;line-height:1;font-weight:600;
}
.upload-file-remove:hover{border-color:rgba(190,74,74,.55);background:rgba(190,74,74,.14);color:#f0b7b7}
.modal-foot{
  padding:14px 22px;border-top:1px solid var(--line);
  display:flex;justify-content:flex-end;gap:8px;background:var(--bg-soft);
}

.logout-modal{
  width:min(400px, calc(100vw - 24px));
  background:#222;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  box-shadow:0 24px 70px rgba(0,0,0,.68);
  padding:34px 40px 40px;
  color:#f4f4f4;
  text-align:center;
}
.logout-modal h2{
  margin:0 0 16px;
  font-size:25px;
  line-height:1.25;
  font-weight:800;
  letter-spacing:0;
}
.logout-modal p{
  margin:0 0 28px;
  color:#d5d5d5;
  font-size:17px;
  line-height:1.45;
}
.logout-modal button{
  width:100%;
  height:43px;
  border-radius:999px;
  font-family:inherit;
  font-size:14px;
  cursor:pointer;
}
.logout-primary{
  border:0;
  background:#f4f4f4;
  color:#111;
  margin-bottom:14px;
}
.logout-primary:hover{background:#fff}
.logout-secondary{
  border:1px solid rgba(255,255,255,.16);
  background:transparent;
  color:#f4f4f4;
}
.logout-secondary:hover{background:rgba(255,255,255,.06)}

.form-group{margin-bottom:18px}
.form-label{
  display:block;font-size:14px;font-weight:500;
  color:var(--ink-soft);margin-bottom:7px;
}
.form-input,.form-select,.form-textarea{
  width:100%;padding:10px 13px;
  border:1px solid var(--line);border-radius:8px;
  font-family:inherit;font-size:16px;outline:none;
  background:var(--bg-soft);color:var(--ink);
}
.form-textarea{min-height:140px;resize:vertical;line-height:1.6}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--ink-mute)}

.case-modal{max-width:820px}
.case-modal-meta{
  display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;
  padding-bottom:14px;border-bottom:1px solid var(--line-soft);
}
.case-meta-chip{
  font-family:'JetBrains Mono',monospace;font-size:14px;
  background:var(--bg-soft);padding:4px 10px;border-radius:5px;color:var(--ink-soft);
}
.case-meta-chip.court{background:var(--purple-soft);color:var(--purple)}
.case-section{margin-bottom:18px}
.case-section-title{
  font-family:'Fraunces',serif;font-size:17px;font-weight:500;
  color:var(--accent);margin-bottom:8px;
}
.case-section-body{font-size:16px;line-height:1.75;color:var(--ink)}
.case-section-body p{margin-bottom:8px}

/* 프로젝트 인용 모달 */
.cite-project-list{display:flex;flex-direction:column;gap:6px}
.cite-project-row{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:10px;padding:12px 14px;cursor:pointer;
  display:flex;align-items:center;gap:12px;transition:all .15s;
}
.cite-project-row:hover{border-color:var(--ink-mute);background:var(--bg-hover)}
.cite-project-row.selected{border-color:var(--accent);background:var(--accent-soft)}
.cite-check{
  width:22px;height:22px;border-radius:50%;
  background:var(--line);color:transparent;
  display:grid;place-items:center;flex-shrink:0;
  font-size:15px;font-weight:600;transition:all .15s;
}
.cite-project-row.selected .cite-check{background:var(--accent);color:var(--bg)}

/* ===== Requested refinements: home chat, search pages, and compact controls ===== */
.sidebar-top{
  height:55px;
  padding:0 14px 0 20px;
}
.app.left-collapsed .sidebar-top{
  height:55px;
  padding:0 8px;
}
.main-header{
  height:55px;
  min-height:55px;
  padding:0 32px;
}
.mic-btn{
  width:32px;height:32px;border:none;border-radius:6px;
  background:transparent;color:var(--ink);
  padding:0;box-shadow:none;
}
.mic-btn:hover{background:transparent;color:var(--ink)}
.mic-btn:active{transform:none}
.mic-btn.listening{background:transparent;color:var(--accent);border-color:transparent}
.composer-actions{margin-top:4px}
.composer-sticky{
  max-width:760px;
  padding:18px 32px 14px;
}
.composer{
  border-radius:18px;
  padding:16px 18px 12px;
}
.composer textarea{
  min-height:58px;
}

.composer,
.pd-composer{
  position:relative;
}

.project-mention-box{
  position:absolute;
  left:12px;
  right:12px;
  bottom:calc(100% + 8px);
  z-index:30;
  display:none;
  background:var(--bg-soft);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 14px 34px rgba(0,0,0,.12);
  padding:8px;
}
.project-mention-box.open{display:block}
.project-mention-selected{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:2px 2px 8px;
  border-bottom:1px solid var(--line);
  margin-bottom:6px;
}
.project-mention-chip{
  border:1px solid var(--line);
  background:var(--bg);
  color:var(--ink);
  border-radius:999px;
  padding:5px 8px;
  font-size:12px;
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.project-mention-list{
  display:flex;
  flex-direction:column;
  max-height:260px;
  overflow:auto;
}
.project-mention-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  border:0;
  background:transparent;
  color:var(--ink);
  border-radius:6px;
  padding:8px 9px;
  text-align:left;
  cursor:pointer;
}
.project-mention-item span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.project-mention-item small{
  color:var(--ink-mute);
  font-size:11px;
  text-transform:uppercase;
}
.project-mention-item:hover,
.project-mention-item.active{
  background:var(--bg-hover);
}
.project-mention-empty{
  padding:12px;
  color:var(--ink-mute);
  font-size:13px;
}

.home-chat-page{
  flex:1;display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg);
}
.home-chat-center{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px 32px 150px;
}
.home-chat-title{
  font-size:38px;font-weight:400;line-height:1.25;
  margin-bottom:28px;color:var(--ink);letter-spacing:0;
}
.home-main-composer{
  width:min(676px, calc(100% - 48px));
  min-width:0;
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:999px;padding:7px 14px 7px 20px;
  min-height:48px;
  display:flex;align-items:center;gap:12px;
}
.home-main-composer-wrap{
  width:min(676px, calc(100% - 48px));
  min-width:0;
}
.home-main-composer-wrap .home-main-composer{
  width:100%;min-width:0;
}
.home-main-composer textarea{
  width:100%;height:30px;min-height:30px;resize:none;border:none;outline:none;
  background:transparent;color:var(--ink);font-family:inherit;font-size:16px;line-height:30px;
  padding:0;overflow:hidden;
}
.home-main-composer .composer-actions{margin-top:0;align-items:center}
.home-main-composer textarea::placeholder{color:var(--ink-mute)}
.home-chat-stream{padding-top:38px}
.home-composer-sticky .composer{border-radius:18px}

.project-searchbar{
  display:flex;align-items:center;gap:8px;margin:-18px 0 28px;
  max-width:560px;
}
.project-searchbar input{
  flex:1;min-width:0;height:42px;border:1px solid var(--line);
  border-radius:9px;background:var(--bg-soft);color:var(--ink);
  font-family:inherit;font-size:15px;padding:0 13px;outline:none;
}
.project-searchbar input:focus{border-color:var(--ink-mute)}
.project-searchbar button{
  height:42px;border:1px solid var(--line);border-radius:9px;
  background:var(--bg-soft);color:var(--ink-soft);
  font-family:inherit;font-size:14px;padding:0 14px;cursor:pointer;
}
.project-searchbar button:hover{background:var(--bg-hover);color:var(--ink)}
.project-searchbar button.ghost{background:transparent;color:var(--ink-mute)}
.project-list{display:flex;flex-direction:column}
.project-list-row{
  display:flex;align-items:center;gap:18px;
  padding:16px 12px;border-bottom:1px solid var(--line-soft);
  cursor:pointer;
  position:relative;
}
.project-list-row:hover{background:var(--bg-soft)}
.project-list-row.selected{background:var(--bg-soft);box-shadow:inset 3px 0 0 var(--accent)}
.project-list-row.selectable{gap:14px}
.project-select-check{
  width:16px;height:16px;border:1px solid var(--line);border-radius:4px;
  display:inline-grid;place-items:center;flex-shrink:0;background:transparent;
}
.project-select-check.checked{
  background:rgba(114,196,179,.18);border-color:var(--accent);
}
.project-select-check.checked::after{
  content:"";width:8px;height:5px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(-45deg);margin-top:-2px;
}
.project-list-status-cell{
  width:72px;display:flex;align-items:center;justify-content:center;
  align-self:stretch;flex-shrink:0;
}
.project-list-main{
  flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;
}
.project-list-title-row{
  display:flex;align-items:center;gap:12px;min-width:0;
}
.project-list-title{
  font-size:17px;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.project-list-desc{
  margin-top:3px;font-size:14px;color:var(--ink-mute);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.project-list-meta{
  display:flex;align-items:center;gap:12px;flex-shrink:0;
  color:var(--ink-mute);font-family:'JetBrains Mono',monospace;font-size:12.5px;
}
.project-search-input-wrap{margin-bottom:22px}
.project-status-tabs{
  display:flex;align-items:center;gap:8px;margin:-2px 0 32px;
}
.project-status-tabs button{
  border:none;background:transparent;color:var(--ink-mute);
  font-family:inherit;font-size:14px;padding:7px 13px;
  border-radius:999px;cursor:pointer;
}
.project-status-tabs button:hover{color:var(--ink);background:var(--bg-soft)}
.project-status-tabs button.active{
  color:var(--ink);background:var(--bg-soft);font-weight:600;
}
.project-section{margin-top:0}
.project-section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;margin:0 0 15px;padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.project-section-head h2{
  margin:0;color:var(--ink);font-size:20px;font-weight:600;
}
.project-section-head span{
  color:var(--ink-mute);font-size:13px;
}
.project-favorite-section{margin-bottom:36px}
.project-list-section{margin-top:0}
.project-list-section .project-section-head{
  padding-left:12px;
  padding-right:48px;
}
.project-section-empty{
  color:var(--ink-mute);font-size:14px;
  padding:16px 0 18px;
}
.project-favorites{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;margin:0;
}
.project-favorites.empty{display:none}
.project-fav-card{
  border:1px solid var(--line);border-radius:8px;
  padding:13px 15px;background:var(--bg);
  cursor:pointer;transition:background .15s,border-color .15s;
}
.project-fav-card:hover{background:var(--bg-soft);border-color:var(--ink-mute)}
.project-fav-title-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.project-fav-title{
  font-size:15px;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.project-fav-desc{
  margin-top:6px;font-size:13px;color:var(--ink-mute);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.project-fav-meta{margin-top:12px;font-size:12px;color:var(--ink-mute)}
.project-list-side{display:flex;align-items:center;gap:6px;flex-shrink:0}
.project-menu-btn,.project-star-btn{
  width:30px;height:30px;border:none;border-radius:7px;background:transparent;
  color:var(--ink-mute);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s,color .15s;
}
.project-menu-btn:hover,.project-star-btn:hover{background:var(--bg-hover);color:var(--ink)}
.project-star-btn svg{width:16px;height:16px}
.project-star-btn.active{color:var(--accent)}
.project-star-btn.active svg{fill:currentColor}
.project-star-btn.compact{width:28px;height:28px}
.project-row-menu{
  position:absolute;right:8px;top:46px;z-index:20;
  min-width:132px;background:var(--bg-card);border:1px solid var(--line);
  border-radius:8px;padding:5px;display:none;
  box-shadow:0 10px 28px rgba(0,0,0,.32);
}
.project-row-menu.show{display:flex;flex-direction:column;gap:2px}
.project-row-menu button{
  width:100%;border:none;background:transparent;color:var(--ink-soft);
  font-family:inherit;font-size:13px;text-align:left;
  padding:8px 10px;border-radius:6px;cursor:pointer;
}
.project-row-menu button:hover,.project-row-menu button.active{background:var(--bg-hover);color:var(--ink)}
.project-row-menu button.danger{color:var(--red)}
.project-row-menu button.danger:hover{background:rgba(190,74,74,.12);color:#f0b7b7}
.project-status-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:24px;padding:3px 9px;border-radius:999px;
  border:1px solid var(--line);font-size:13px;font-weight:500;
}
.project-status-badge.project-list-status{
  width:66px;
  flex-shrink:0;
  padding-left:0;
  padding-right:0;
}
.project-status-badge.in-progress{
  color:var(--green);background:var(--green-soft);border-color:rgba(143,184,158,.25);
}
.project-status-badge.completed{
  color:var(--ink-mute);background:var(--bg-soft);border-color:var(--line);
}
.project-list-empty{display:none}

/* ============================================ */
/* 법령 조회                                      */
/* ============================================ */
.statutes-page{
  flex:1;overflow-y:auto;background:var(--bg);
  padding:48px 56px 72px;
}
.statutes-inner{max-width:1180px;margin:0 auto}
.statutes-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:18px;margin-bottom:18px;
}
.statutes-title{color:var(--ink);font-size:28px;font-weight:600;letter-spacing:0}
.statute-searchbar{
  display:flex;align-items:center;gap:11px;height:44px;
  border:1px solid var(--line);border-radius:8px;background:var(--bg-soft);
  padding:0 12px;margin-bottom:18px;
}
.statute-searchbar svg{color:var(--ink-mute);flex-shrink:0}
.statute-searchbar input{
  flex:1;min-width:0;border:none;outline:none;background:transparent;
  color:var(--ink);font-family:inherit;font-size:15px;
}
.statute-searchbar input::placeholder{color:var(--ink-mute)}
.statute-searchbar button{
  height:32px;border:1px solid var(--line);border-radius:7px;
  background:var(--bg-card);color:var(--ink-soft);
  padding:0 12px;font-family:inherit;font-size:14px;cursor:pointer;
}
.statute-searchbar button:hover{background:var(--bg-hover);color:var(--ink)}
.statute-dashboard{
  display:grid;grid-template-columns:minmax(0,2fr) 1px minmax(240px,1fr);
  gap:28px;margin-top:34px;min-height:360px;
}
.statute-dashboard-divider{background:var(--line-soft);min-height:100%}
.statute-dashboard-col{min-width:0}
.statute-dashboard-head{
  color:var(--ink);font-size:17px;font-weight:650;
  margin:0 0 6px;display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.statute-history-clear{
  border:1px solid var(--line);background:var(--bg-soft);color:var(--ink-mute);
  border-radius:999px;padding:5px 9px;font-family:inherit;font-size:12px;cursor:pointer;
}
.statute-history-clear:hover{background:var(--bg-hover);color:var(--ink)}
.statute-dashboard-sub{color:var(--ink-mute);font-size:13px;margin-bottom:10px}
.statute-dashboard-list{display:flex;flex-direction:column;gap:2px}
.statute-list-row{
  width:100%;display:flex;align-items:flex-start;gap:12px;
  padding:10px 0;border:none;background:transparent;color:var(--ink-soft);
  text-align:left;font-family:inherit;
}
.statute-history-delete{
  width:24px;height:24px;border:none;border-radius:7px;background:transparent;color:var(--ink-mute);
  display:grid;place-items:center;cursor:pointer;flex-shrink:0;margin-left:auto;
}
.statute-history-delete:hover{background:rgba(190,74,74,.12);color:var(--red)}
.statute-list-row.history{cursor:pointer}
.statute-list-row.history:hover .statute-list-title,
.statute-list-row.history.active .statute-list-title{color:var(--ink)}
.statute-list-row.rank{cursor:default;height:44px;box-sizing:border-box}
.statute-list-rank{
  width:24px;flex-shrink:0;color:var(--ink-mute);
  font-family:'JetBrains Mono',monospace;font-size:13px;line-height:1.55;
}
.statute-list-main{min-width:0;display:flex;flex-direction:column}
.statute-list-title{
  color:var(--ink-soft);font-size:15px;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.statute-list-sub{margin-top:2px;color:var(--ink-mute);font-size:12.5px}
.statute-dashboard-empty{color:var(--ink-mute);font-size:14px;padding:10px 0}
.statute-rank-viewport{
  height:220px;overflow:hidden;position:relative;
}
.statute-rank-track{display:flex;flex-direction:column}
.statute-rank-track.rolling{animation:statute-rank-roll 18s linear infinite}
.statute-rank-viewport:hover .statute-rank-track.rolling{animation-play-state:paused}
@keyframes statute-rank-roll{
  from{transform:translateY(0)}
  to{transform:translateY(-50%)}
}
.statute-tabs{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 24px;
}
.statute-tabs button{
  border:1px solid var(--line);border-radius:999px;
  background:transparent;color:var(--ink-mute);
  font-family:inherit;font-size:14px;padding:7px 13px;
  cursor:pointer;transition:background .15s,color .15s,border-color .15s;
}
.statute-tabs button:hover{color:var(--ink);background:var(--bg-soft)}
.statute-tabs button.active{
  color:#72c4b3;background:rgba(114,196,179,.11);
  border-color:rgba(114,196,179,.45);font-weight:600;
}
.statute-workspace{
  display:grid;grid-template-columns:360px minmax(0,1fr);
  gap:18px;align-items:stretch;
  height:calc(100vh - 276px);
  min-height:600px;
}
.statute-workspace.history-detail{
  grid-template-columns:360px minmax(0,1fr);
}
.statute-results-panel{
  border:none;border-radius:8px;background:transparent;
  min-height:0;height:100%;overflow:hidden;
}
.statute-panel-head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:12px;min-height:114px;box-sizing:border-box;
  padding:24px 28px 18px;border-bottom:1px solid var(--line-soft);
}
.statute-panel-head h2{margin:0;color:var(--ink);font-size:17px;font-weight:600}
.statute-panel-head p{margin:5px 0 0;color:var(--ink-mute);font-size:13px;line-height:1.45}
.statute-panel-head span{
  color:var(--ink-mute);font-family:'JetBrains Mono',monospace;
  font-size:12px;white-space:nowrap;margin-top:2px;
}
.statute-results-list{
  display:flex;flex-direction:column;gap:8px;
  padding:12px;height:calc(100% - 114px);
  min-height:0;overflow-y:auto;
}
.statute-results-list.history-list{gap:2px;padding:14px 28px}
.statute-result-card{
  width:100%;text-align:left;border:1px solid var(--line);
  border-radius:8px;background:var(--bg-soft);color:var(--ink-soft);
  padding:13px 14px;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.statute-result-card:hover{background:var(--bg-card);border-color:rgba(114,196,179,.34)}
.statute-result-card.active{
  background:rgba(214,236,229,.1);border-color:#d6ece5;color:var(--ink);
}
.statute-result-top{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-bottom:8px;
}
.statute-result-law{
  color:#72c4b3;background:rgba(114,196,179,.12);
  border:1px solid rgba(114,196,179,.22);
  border-radius:5px;padding:2px 7px;font-size:12px;font-weight:600;
}
.statute-result-score{color:var(--ink-mute);font-family:'JetBrains Mono',monospace;font-size:11px}
.statute-result-title{
  color:var(--ink);font-size:15px;font-weight:600;line-height:1.45;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.statute-result-snippet{
  margin-top:6px;color:var(--ink-mute);font-size:13px;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.statute-result-matches{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.statute-result-matches span{
  color:var(--ink-mute);background:var(--bg-card);
  border:1px solid var(--line-soft);border-radius:5px;
  padding:2px 6px;font-size:11.5px;
}
.statute-empty-note{color:var(--ink-mute);font-size:14px;line-height:1.55;padding:12px 4px}
.statute-result-loading{display:flex;flex-direction:column;gap:10px;padding:4px}
.statute-result-loading span{
  height:58px;border-radius:8px;
  background:linear-gradient(90deg,var(--bg-soft),var(--bg-card),var(--bg-soft));
  background-size:220% 100%;animation:statute-loading 1.1s linear infinite;
}
@keyframes statute-loading{to{background-position:-220% 0}}
.statute-reader{
  border:none;border-radius:8px;
  background:transparent;min-height:0;height:100%;overflow:hidden;
}
.statute-reader-head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:18px;min-height:114px;box-sizing:border-box;
  padding:24px 28px 18px;border-bottom:1px solid var(--line-soft);
  background:transparent;
}
.statute-reader-title{color:var(--ink);font-size:27px;font-weight:700;letter-spacing:0}
.statute-reader-meta{margin-top:7px;color:var(--ink-mute);font-size:13px;line-height:1.45}
.statute-reader-actions a{
  display:inline-flex;align-items:center;height:32px;
  border:1px solid var(--line);border-radius:7px;
  color:var(--ink-soft);text-decoration:none;padding:0 10px;font-size:13px;
}
.statute-reader-actions a:hover{background:var(--bg-hover);color:var(--ink)}
.statute-reader-empty{color:var(--ink-mute);font-size:15px;padding:28px}
.law-document-body{
  height:calc(100% - 114px);min-height:0;
  overflow:auto;padding:26px 32px 60px;
  color:var(--ink-soft);font-size:15px;line-height:1.75;
  scroll-behavior:auto;
}
.law-heading{color:var(--ink);font-weight:700;letter-spacing:0;margin:28px 0 12px}
.law-heading-2{font-size:24px}
.law-heading-3{font-size:20px}
.law-heading-4{font-size:18px}
.law-text{margin:8px 0;color:var(--ink-soft)}
.law-article{
  position:relative;border-radius:6px;
  padding:8px 10px;margin:7px -10px 11px;
  transition:background .2s,box-shadow .2s;
}
.law-article.is-target{
  background:rgba(114,196,179,.08);
  box-shadow:inset 3px 0 0 #72c4b3;
}
.art-head{margin:0 0 7px;color:var(--ink);font-size:17px;font-weight:700;line-height:1.5}
.art-title{margin-left:4px}
.law-para,.law-clause,.law-item{border-radius:5px;padding:2px 4px;margin:3px 0}
.law-para.is-target,.law-clause.is-target,.law-item.is-target{background:rgba(214,236,229,.12)}
.law-num{color:var(--ink);font-weight:600;margin-right:7px}
.law-mark{
  background:rgba(214,236,229,.24);
  color:#d6ece5;border-radius:3px;padding:0 2px;
}

.chat-search-page{
  flex:1;overflow-y:auto;background:var(--bg);padding:48px 56px 72px;
}
.chat-search-inner{max-width:920px;margin:0 auto}
.chat-search-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px;
}
.chat-search-head h1{
  font-size:28px;font-weight:600;letter-spacing:0;color:var(--ink);
}
.chat-search-head-actions,
.chat-search-select-actions{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;
}
.chat-search-select-actions span{
  color:var(--ink-mute);font-size:14px;margin-right:6px;
}
.chat-search-select-actions button{
  border:1px solid transparent;background:transparent;color:var(--ink-soft);
  border-radius:999px;padding:8px 12px;font-family:inherit;font-size:13px;cursor:pointer;
}
.chat-search-select-actions button:hover{background:var(--bg-hover);border-color:var(--line-soft);color:var(--ink)}
.chat-search-select-actions button:disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--ink-mute)}
.chat-search-select-actions button.danger{color:#f0b7b7}
.new-project-btn.subtle{
  background:var(--bg-card);color:var(--ink-soft);border-color:var(--line);
}
.chat-search-input-wrap{
  height:42px;border-radius:10px;background:var(--bg-soft);border:1px solid var(--line);
  display:flex;align-items:center;gap:10px;padding:0 14px;margin-bottom:22px;color:var(--ink-mute);
}
.chat-search-input-wrap input{
  flex:1;border:none;outline:none;background:transparent;color:var(--ink);
  font-family:inherit;font-size:15px;
}
.chat-search-input-wrap input::placeholder{color:var(--ink-mute)}
.chat-search-list{display:flex;flex-direction:column}
.chat-search-row{
  display:flex;align-items:center;gap:18px;padding:15px 12px;
  border-bottom:1px solid var(--line-soft);cursor:pointer;
}
.chat-search-row:hover{background:var(--bg-soft)}
.chat-search-row.selected{background:var(--bg-soft);box-shadow:inset 3px 0 0 var(--accent)}
.chat-search-check{
  width:16px;height:16px;border:1px solid var(--line);border-radius:4px;
  display:inline-grid;place-items:center;flex-shrink:0;background:transparent;
}
.chat-search-check.checked{
  background:rgba(114,196,179,.18);border-color:var(--accent);
}
.chat-search-check.checked::after{
  content:"";width:8px;height:5px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(-45deg);margin-top:-2px;
}
.chat-search-main{flex:1;min-width:0}
.chat-search-title{
  font-size:16px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.chat-search-preview{
  margin-top:3px;font-size:14px;color:var(--ink-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.chat-search-meta{
  display:flex;align-items:center;gap:12px;color:var(--ink-mute);
  font-family:'JetBrains Mono',monospace;font-size:12.5px;flex-shrink:0;
}
.chat-search-empty{
  color:var(--ink-mute);font-size:15px;padding:34px 12px;text-align:center;
}

.qa-new-btn{
  background:transparent;border:none;border-radius:0;padding:0;
  color:var(--ink-mute);font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
}
.qa-new-btn:hover{background:transparent;border-color:transparent;color:var(--ink)}
.qa-side-head{justify-content:flex-start}

.app.left-collapsed .sidebar-bottom{
  padding:8px 0 10px;display:flex;justify-content:center;
}
.app.left-collapsed .user-pill{
  width:52px;padding:6px 0;justify-content:center;gap:0;
}
.app.left-collapsed .avatar{
  margin:0 auto;
}
.app.left-collapsed .user-menu-btn{display:none}

@media (max-width:900px){
  .home-main-composer,
  .home-main-composer-wrap{width:min(676px, calc(100% - 32px));min-width:0}
  .home-chat-title{font-size:30px}
  .project-searchbar{max-width:none}
  .projects-page{padding:32px 24px 56px}
  .project-favorites{grid-template-columns:repeat(2,minmax(0,1fr))}
  .statutes-page{padding:32px 24px 56px}
  .statute-workspace{grid-template-columns:1fr}
  .statute-dashboard{grid-template-columns:1fr;gap:24px}
  .statute-dashboard-divider{height:1px;min-height:1px}
  .statute-results-list{max-height:none;min-height:auto}
  .statute-reader-head{padding:20px 20px 16px}
  .law-document-body{max-height:none;padding:22px 20px 46px}
  .project-list-row{align-items:flex-start}
  .project-list-side{align-self:flex-start}
  .chat-search-page{padding:32px 24px 56px}
}

.proj-chat-item.t-general::before{background:var(--green)}
