/* EvidenceBox 앱 — 디자인 토큰(§02 Ink Scale). 강조는 색이 아니라 무게·반전.
   테마: 시스템(prefers-color-scheme) 기본, data-theme 이 양방향 강제 오버라이드. */
:root{
  --paper:#ffffff; --ink:#0a0a0a; --ink-700:#404040; --ink-500:#737373;
  --ink-300:#d4d4d4; --ink-150:#e9e9e9; --ink-075:#f5f5f5;
  --acc:#3a63e8; --ok:#188f4b; --err:#d2403f;
  --mono:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
  --sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,
         "Apple SD Gothic Neo","Noto Sans KR",sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{--paper:#0d0d0d;--ink:#f5f5f5;--ink-700:#c9c9c9;--ink-500:#8f8f8f;
        --ink-300:#3d3d3d;--ink-150:#242424;--ink-075:#171717;
        --acc:#7d9bff;--ok:#4cc47e;--err:#ff7a76;}
}
:root[data-theme="dark"]{--paper:#0d0d0d;--ink:#f5f5f5;--ink-700:#c9c9c9;
  --ink-500:#8f8f8f;--ink-300:#3d3d3d;--ink-150:#242424;--ink-075:#171717;
  --acc:#7d9bff;--ok:#4cc47e;--err:#ff7a76;}
:root[data-theme="light"]{--paper:#ffffff;--ink:#0a0a0a;--ink-700:#404040;
  --ink-500:#737373;--ink-300:#d4d4d4;--ink-150:#e9e9e9;--ink-075:#f5f5f5;
  --acc:#3a63e8;--ok:#188f4b;--err:#d2403f;}

*{margin:0;padding:0;box-sizing:border-box;}
html{color-scheme:light dark;}
:root[data-theme="light"]{color-scheme:light;}
:root[data-theme="dark"]{color-scheme:dark;}
html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
button{font-family:var(--sans);cursor:pointer;}
[hidden]{display:none !important;}
@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important;}}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size:13.5px;font-weight:700;padding:10px 20px;border:1.5px solid var(--ink);
  background:var(--paper);color:var(--ink);text-decoration:none;}
.btn.fill{background:var(--ink);color:var(--paper);}
.btn.ghost{border-color:transparent;color:var(--ink-500);}
.btn:hover{opacity:.82;}
.btn:disabled{opacity:.4;cursor:default;}
.btn.full{width:100%;}
.btn .spin{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;
  border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-500);}

/* ── 테마 세그먼트 ─────────────────────────────────────── */
.theme-seg{display:inline-flex;border:1px solid var(--ink-300);}
.theme-seg button{font-size:11px;font-weight:600;padding:4px 10px;border:none;
  background:var(--paper);color:var(--ink-500);}
.theme-seg button.on{background:var(--ink);color:var(--paper);}
/* 로그인 화면에는 사이드바가 없어 우상단 테마 토글이 필요하지만,
   앱에 들어오면 사이드바 하단 토글과 중복이므로 숨긴다. */
.auth-theme{position:fixed;top:16px;right:16px;z-index:5;}
body:has(#view-app:not([hidden])) .auth-theme{display:none;}

/* ── 인증 화면(§13) ───────────────────────────────────── */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:var(--ink-075);padding:24px;}
.auth-card{border:1.5px solid var(--ink);max-width:400px;width:100%;
  padding:36px 32px 28px;background:var(--paper);}
.auth-card .logo-row{display:flex;align-items:center;gap:10px;margin-bottom:26px;}
.wordmark{font-weight:900;letter-spacing:-.03em;font-size:17px;}
.wordmark .box{font-weight:300;color:var(--ink-500);}
.auth-card h1{font-size:20px;font-weight:900;letter-spacing:-.02em;margin-bottom:4px;}
.auth-card .sub{font-size:13px;color:var(--ink-500);margin-bottom:22px;}
.auth-div{display:flex;align-items:center;gap:12px;margin:18px 0;
  font-family:var(--mono);font-size:10.5px;color:var(--ink-500);letter-spacing:.1em;}
.auth-div::before,.auth-div::after{content:"";flex:1;height:1px;background:var(--ink-150);}
.fld{margin-bottom:14px;}
.fld label{display:block;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.1em;color:var(--ink-500);margin-bottom:6px;text-transform:uppercase;}
.fld input{width:100%;padding:10px 12px;border:1px solid var(--ink-300);
  background:var(--paper);color:var(--ink);font-size:14px;font-family:var(--sans);}
.fld input:focus{outline:none;border-color:var(--ink);}
.pw-meter{display:flex;gap:4px;margin-top:8px;}
.pw-meter i{height:3px;flex:1;background:var(--ink-150);}
.pw-meter i.on{background:var(--ink);}
.pw-hint{font-size:11.5px;color:var(--ink-500);margin-top:6px;line-height:1.5;}
.auth-links{display:flex;justify-content:space-between;font-size:12.5px;
  color:var(--ink-500);margin-top:16px;}
.auth-links a,.auth-links button{color:var(--ink-700);text-decoration:underline;
  text-underline-offset:3px;background:none;border:none;font-size:12.5px;
  cursor:pointer;padding:0;font-family:var(--sans);}
.auth-msg{font-size:13px;padding:10px 12px;border:1px solid var(--ink);
  margin-bottom:14px;line-height:1.55;}
.auth-msg.err{background:var(--ink);color:var(--paper);}

/* ── 앱 레이아웃 ──────────────────────────────────────── */
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh;}
aside{border-right:1px solid var(--ink-150);padding:20px 16px;display:flex;
  flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow-y:auto;}
aside .logo-row{display:flex;align-items:center;gap:8px;padding:4px 8px 18px;}
aside .nav-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  color:var(--ink-500);text-transform:uppercase;padding:14px 8px 6px;}
.case-item{display:block;width:100%;text-align:left;padding:8px 10px;font-size:13.5px;
  font-weight:600;border:none;background:none;color:var(--ink-700);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.case-item:hover{background:var(--ink-075);}
.case-item.on{background:var(--ink);color:var(--paper);}
.case-item.pending{opacity:.5;}
main{padding:28px 36px;max-width:1100px;width:100%;}
.topbar{display:flex;align-items:center;gap:14px;margin-bottom:26px;flex-wrap:wrap;}
.topbar h1{font-size:22px;font-weight:900;letter-spacing:-.02em;margin-right:auto;}
.search-bar{display:flex;gap:0;flex:1;max-width:520px;}
.search-bar input{flex:1;padding:10px 14px;border:1.5px solid var(--ink);
  border-right:none;background:var(--paper);color:var(--ink);font-size:14px;min-width:0;}
.search-bar input:focus{outline:none;}
.search-bar .btn{border-left:none;}

/* 빈 상태 */
.empty{border:1.5px dashed var(--ink-300);padding:60px 24px;text-align:center;
  color:var(--ink-500);}
.empty h2{font-size:17px;font-weight:800;color:var(--ink);margin-bottom:8px;}
.empty p{font-size:13.5px;margin-bottom:20px;}

/* 드롭존 + 파일 그리드 */
.dropzone{border:1.5px dashed var(--ink-300);padding:22px;text-align:center;
  color:var(--ink-500);font-size:13.5px;margin-bottom:24px;transition:border-color .15s;}
.dropzone.over{border-color:var(--ink);color:var(--ink);background:var(--ink-075);}
.dz-head{font-weight:700;color:var(--ink);font-size:13.5px;}
.dz-kinds{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-top:8px;
  font-size:11.5px;color:var(--ink-500);}
.dz-kind i{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--ink-300);}
/* 드래그 중 인식된 유형만 강조 — 놓기 전에 확인할 수 있게 */
.dz-kind.hit,.dz-kind.hit i{color:var(--acc);}
.dz-plan{margin-top:10px;font-size:12px;color:var(--ink);font-weight:600;}
.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.ev-card{border:1px solid var(--ink-300);background:var(--paper);text-align:left;
  padding:0;cursor:pointer;font-family:var(--sans);position:relative;overflow:hidden;}
.ev-card:hover{border-color:var(--ink);}
.ev-card .top{padding:14px 16px 10px;}
.ev-card .kind{font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  color:var(--ink-500);display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;}
.ev-card .title{font-weight:800;font-size:14.5px;line-height:1.4;color:var(--ink);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.ev-card .desc{font-size:12.5px;color:var(--ink-500);margin-top:4px;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.ev-card .bot{border-top:1px solid var(--ink-150);padding:8px 16px;display:flex;
  gap:12px;font-family:var(--mono);font-size:10.5px;color:var(--ink-500);}
.ev-card .upbar{position:absolute;left:0;bottom:0;height:3px;
  width:0%;transition:width .2s;}
.badge{font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  padding:2px 8px;border:1px solid var(--ink);white-space:nowrap;
  display:inline-flex;align-items:center;gap:5px;}
.badge.dim{border-color:var(--ink-300);color:var(--ink-500);}
.badge.ok{background:var(--ok);border-color:var(--ok);color:#fff;}
.badge.err{border-color:var(--err);color:var(--err);}
.badge.acc{border-color:var(--acc);color:var(--acc);}
.badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor;
  animation:eb-pulse 1.2s ease-in-out infinite;}
@keyframes eb-pulse{0%,100%{opacity:.25;}50%{opacity:1;}}
.ev-card .desc.err{color:var(--err);}
.ev-card .del{position:absolute;top:6px;right:6px;border:none;background:none;
  color:var(--ink-500);font-size:14px;padding:4px 7px;line-height:1;cursor:pointer;}
.ev-card .del:hover{color:var(--err);}
.ev-card .upbar{background:var(--acc);}

/* 스켈레톤 */
.skel{border:1px solid var(--ink-150);height:118px;position:relative;overflow:hidden;}
.skel::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,var(--ink-075),transparent);
  animation:shimmer 1.2s infinite;}
@keyframes shimmer{from{transform:translateX(-100%);}to{transform:translateX(100%);}}

/* 녹취록 · 검색 결과 */
.seg{display:grid;grid-template-columns:64px 90px 1fr;gap:12px;padding:8px 10px;
  border-bottom:1px solid var(--ink-150);align-items:baseline;font-size:14px;cursor:pointer;}
.seg:hover{background:var(--ink-075);}
.seg .tc{font-family:var(--mono);font-size:11px;color:var(--ink-500);
  font-variant-numeric:tabular-nums;}
.seg .sp{font-weight:700;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;}
.seg .tx{color:var(--ink-700);}
.result-file{font-weight:800;font-size:14px;margin:18px 0 6px;display:flex;
  align-items:baseline;gap:10px;}
.result-file .kicker{font-size:10px;}

/* 하단 플레이어 */
.player{position:fixed;bottom:0;left:240px;right:0;border-top:1.5px solid var(--ink);
  background:var(--paper);display:flex;align-items:center;gap:14px;padding:10px 24px;z-index:20;}
.player audio{flex:1;height:34px;}
.player .close{border:none;background:none;color:var(--ink-500);font-size:16px;padding:4px;}

.toast{position:fixed;bottom:20px;right:20px;background:var(--ink);color:var(--paper);
  padding:12px 18px;font-size:13.5px;max-width:340px;z-index:99;}

/* ── 모달 (alert/prompt 미사용 — §02) ─────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:90;
  display:flex;align-items:center;justify-content:center;padding:24px;}
.modal{border:1.5px solid var(--ink);background:var(--paper);max-width:420px;
  width:100%;padding:28px 28px 22px;}
.modal h2{font-size:17px;font-weight:900;letter-spacing:-.02em;margin-bottom:6px;}
.modal .m-sub{font-size:12.5px;color:var(--ink-500);margin-bottom:18px;line-height:1.6;}
.modal .m-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;}

@media (max-width:820px){.shell{grid-template-columns:1fr;}aside{display:none;}
  .player{left:0;}main{padding:20px;}}

/* ── 라이브러리 툴바 ─────────────────────────────────── */
.lib-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.chips-row{display:flex;gap:8px;flex-wrap:wrap;}
.chip{font-size:12px;font-weight:600;border:1px solid var(--ink-300);padding:4px 12px;
  border-radius:999px;color:var(--ink-700);background:none;cursor:pointer;font-family:var(--sans);}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.chip .cnt{color:inherit;opacity:.55;margin-left:4px;font-family:var(--mono);font-size:10.5px;}
.sort-sel{margin-left:auto;border:1px solid var(--ink-300);background:var(--paper);
  color:var(--ink);font-size:12.5px;padding:6px 10px;font-family:var(--sans);}
.view-seg button{font-size:12.5px;padding:6px 14px;}
.ev-card .retry{border:1px solid var(--err);color:var(--err);background:none;
  font-size:11px;font-weight:700;padding:3px 10px;cursor:pointer;font-family:var(--sans);}

/* ── 파일 상세 ───────────────────────────────────────── */
.detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px;
  margin-bottom:14px;flex-wrap:wrap;}
.detail-actions{display:flex;gap:8px;}
#detail h2{font-size:20px;font-weight:900;letter-spacing:-.02em;margin-bottom:6px;}
.detail-meta{font-family:var(--mono);font-size:11.5px;color:var(--ink-500);margin-bottom:12px;}
.summary-box{border:1px solid var(--ink-300);border-left:4px solid var(--ink);
  padding:16px 18px;margin:14px 0 22px;font-size:14px;color:var(--ink-700);
  white-space:pre-wrap;line-height:1.75;}
#detail-tags{margin-bottom:6px;}
#detail-tags .chip{cursor:default;}

/* ── AI 채팅 ─────────────────────────────────────────── */
.chat-hint{font-size:12.5px;color:var(--ink-500);border:1px dashed var(--ink-300);
  padding:10px 14px;margin-bottom:16px;}
.chat-log{display:flex;flex-direction:column;gap:14px;margin-bottom:90px;}
.msg{max-width:72ch;font-size:14.5px;line-height:1.75;}
.msg.user{align-self:flex-end;background:var(--ink);color:var(--paper);
  padding:10px 16px;max-width:56ch;}
.msg.ai{white-space:pre-wrap;color:var(--ink);}
.msg .prog{font-family:var(--mono);font-size:11px;color:var(--acc);}
.src-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0;}
.src-chip{font-family:var(--mono);font-size:10.5px;border:1px solid var(--acc);
  color:var(--acc);background:none;padding:2px 8px;cursor:pointer;}
.src-chip:hover{background:var(--acc);color:#fff;}
/* 하단 고정 입력줄. 배경선은 화면 끝까지 가되, 입력칸은 main 과 같은 폭·같은 좌우선에
   맞춘다(main: max-width 1100px + 좌우 36px 패딩). 안 맞추면 본문보다 넓게 튀어나온다. */
.chat-bar{position:fixed;bottom:0;left:240px;right:0;display:block;
  padding:14px 36px;background:var(--paper);border-top:1px solid var(--ink-150);z-index:15;}
.chat-bar-inner{display:flex;gap:0;max-width:calc(1100px - 72px);width:100%;}
.chat-bar input{flex:1;padding:12px 14px;border:1.5px solid var(--ink);border-right:none;
  background:var(--paper);color:var(--ink);font-size:14px;min-width:0;}
.chat-bar input:focus{outline:none;}
@media (max-width:820px){.chat-bar{left:0;}}

/* ── 유형별 상세뷰 ───────────────────────────────────── */
/* 화자 지정 칩(통화) */
.cast-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 16px;}
.cast-chip{font-size:12.5px;font-weight:700;border:1px solid var(--ink);background:none;
  color:var(--ink);padding:4px 12px;cursor:pointer;font-family:var(--sans);}
.cast-chip:hover{background:var(--ink);color:var(--paper);}

/* 대화 말풍선 */
.chat-thread{display:flex;flex-direction:column;gap:8px;max-width:680px;}
.bubble{max-width:78%;align-self:flex-start;border:1px solid var(--ink-300);
  padding:9px 13px;background:var(--paper);}
.bubble.mine{align-self:flex-end;background:var(--ink);color:var(--paper);border-color:var(--ink);}
.bubble .who{font-size:11px;font-weight:700;color:var(--ink-500);margin-bottom:3px;}
.bubble.mine .who{color:var(--paper);opacity:.6;}
.bubble .txt{font-size:14px;line-height:1.55;white-space:pre-wrap;}

/* 이메일 헤더 + 문서 본문 */
.email-head{border:1px solid var(--ink-300);border-left:4px solid var(--ink);
  padding:14px 16px;margin-bottom:18px;font-family:var(--mono);font-size:12.5px;
  color:var(--ink-700);white-space:pre-wrap;line-height:1.7;}
.doc-body{max-width:70ch;}
.doc-body p{font-size:14.5px;line-height:1.85;color:var(--ink-700);margin-bottom:14px;
  white-space:pre-wrap;}

/* 사진 미리보기 */
.photo-view{border:1px solid var(--ink-300);padding:8px;display:inline-block;max-width:100%;}
.photo-view img{max-width:100%;max-height:70vh;display:block;}

/* ── 검토 대기 큐 ────────────────────────────────────── */
.rv-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;
  height:16px;padding:0 4px;background:var(--err);color:#fff;border-radius:999px;
  font-size:10px;font-family:var(--mono);margin-left:4px;}
.review-item{border:1px solid var(--ink-300);border-left:4px solid var(--err);
  padding:14px 18px;margin-bottom:12px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.review-item .ri-body{flex:1;min-width:200px;}
.review-item .ri-type{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  color:var(--err);text-transform:uppercase;}
.review-item .ri-name{font-weight:700;font-size:14px;margin-top:3px;}
.review-item .ri-desc{font-size:12.5px;color:var(--ink-500);margin-top:2px;}
.review-item .ri-actions{display:flex;gap:8px;}
.review-empty{text-align:center;color:var(--ink-500);padding:50px 20px;font-size:14px;}

/* ── 교정 모드 ───────────────────────────────────────── */
#detail.correcting .seg{grid-template-columns:64px 90px 1fr auto;}
.seg-tools{display:none;gap:6px;}
#detail.correcting .seg:hover .seg-tools{display:inline-flex;}
.seg-tools button{border:1px solid var(--ink-300);background:var(--paper);color:var(--ink-700);
  font-size:11px;padding:2px 7px;cursor:pointer;font-family:var(--sans);}
.seg-tools button:hover{border-color:var(--ink);color:var(--ink);}
.correcting-note{font-size:12.5px;color:var(--acc);border:1px dashed var(--acc);
  padding:8px 12px;margin-bottom:12px;}
.seg-edit{display:grid;grid-template-columns:64px 90px 1fr;gap:12px;padding:8px 10px;
  border-bottom:1px solid var(--ink-150);align-items:start;}
.seg-edit input,.seg-edit textarea{border:1px solid var(--ink-300);background:var(--paper);
  color:var(--ink);font-size:14px;font-family:var(--sans);padding:6px 8px;width:100%;box-sizing:border-box;}
.seg-edit textarea{min-height:52px;resize:vertical;}
.seg-edit .se-actions{grid-column:3;display:flex;gap:8px;margin-top:6px;}
.btn.on{background:var(--acc);color:#fff;border-color:var(--acc);}

/* ── 타임라인 / 묶음 ─────────────────────────────────── */
.timeline{border-left:2px solid var(--ink-150);padding-left:20px;margin-left:8px;}
.tl-date{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-500);
  margin:22px 0 10px;position:relative;}
.tl-date::before{content:"";position:absolute;left:-27px;top:4px;width:9px;height:9px;
  background:var(--ink);border-radius:50%;}
.tl-item{display:flex;align-items:baseline;gap:12px;padding:7px 10px;cursor:pointer;
  border-bottom:1px solid var(--ink-150);}
.tl-item:hover{background:var(--ink-075);}
.tl-item .t{font-family:var(--mono);font-size:11px;color:var(--ink-500);min-width:42px;}
.tl-item .k{font-family:var(--mono);font-size:10px;color:var(--ink-500);min-width:34px;}
.tl-item .n{font-weight:600;font-size:13.5px;flex:1;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.tl-item .d{font-family:var(--mono);font-size:10.5px;color:var(--ink-500);}

.thread-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.thread-card{border:1px solid var(--ink-300);border-left:4px solid var(--acc);
  padding:16px 18px;text-align:left;background:var(--paper);cursor:pointer;font-family:var(--sans);}
.thread-card:hover{border-color:var(--ink);}
.thread-card .tt{font-weight:800;font-size:14.5px;line-height:1.4;margin-bottom:6px;}
.thread-card .tp{font-size:12px;color:var(--ink-500);}
.thread-card .tm{font-family:var(--mono);font-size:10.5px;color:var(--ink-500);margin-top:8px;
  display:flex;gap:10px;flex-wrap:wrap;}
.thread-card .unbind{border:none;background:none;color:var(--ink-500);font-size:11px;
  text-decoration:underline;cursor:pointer;padding:0;margin-top:8px;font-family:var(--sans);}
.thread-filter{display:flex;align-items:center;gap:10px;border:1px solid var(--acc);
  padding:8px 14px;margin-bottom:16px;font-size:13px;color:var(--acc);}
.thread-filter button{border:none;background:none;color:var(--acc);cursor:pointer;
  font-size:12px;text-decoration:underline;font-family:var(--sans);}

/* ── 채팅 분석 블록 ──────────────────────────────────── */
.analysis{border:1px solid var(--ink-300);border-left:4px solid var(--acc);
  margin:10px 0;background:var(--paper);}
.analysis summary{cursor:pointer;padding:10px 14px;font-weight:700;font-size:13px;
  list-style:none;display:flex;justify-content:space-between;gap:10px;color:var(--acc);}
.analysis summary::-webkit-details-marker{display:none;}
.analysis summary::after{content:"▾";font-size:11px;}
.analysis[open] summary::after{content:"▴";}
.analysis .a-body{padding:0 14px 14px;font-size:13.5px;line-height:1.75;
  color:var(--ink-700);white-space:pre-wrap;}
.chat-scope{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--acc);
  border:1px solid var(--acc);padding:3px 10px;margin-left:8px;}
.chat-scope button{border:none;background:none;color:var(--acc);cursor:pointer;
  font-size:11px;text-decoration:underline;font-family:var(--sans);padding:0;}

.lang-seg button{font-size:11px;padding:4px 9px;}

/* ── 설정 · 팀 ───────────────────────────────────────── */
.set-tabs{margin-bottom:24px;}
.set-tabs button{font-size:12.5px;padding:6px 16px;}
.set-h{font-size:14px;font-weight:800;margin:26px 0 10px;letter-spacing:-.01em;}
.set-h:first-child{margin-top:0;}
.set-list{border:1px solid var(--ink-300);max-width:720px;}
.set-row{display:flex;align-items:center;gap:14px;padding:11px 16px;
  border-bottom:1px solid var(--ink-150);font-size:13.5px;}
.set-row:last-child{border-bottom:none;}
.set-row .em{flex:1;overflow:hidden;text-overflow:ellipsis;}
.set-row .ro{font-family:var(--mono);font-size:10.5px;color:var(--ink-500);
  border:1px solid var(--ink-300);padding:2px 8px;}
.set-row .off{color:var(--err);font-size:11px;}
.set-row button{border:1px solid var(--ink-300);background:none;color:var(--ink-700);
  font-size:11.5px;padding:3px 10px;cursor:pointer;font-family:var(--sans);}
.set-row button:hover{border-color:var(--err);color:var(--err);}
.set-row .num{font-family:var(--mono);font-variant-numeric:tabular-nums;margin-left:auto;}
.invite-form{display:flex;gap:0;max-width:560px;}
.invite-form input{flex:1;padding:10px 12px;border:1.5px solid var(--ink);border-right:none;
  background:var(--paper);color:var(--ink);font-size:14px;min-width:0;}
.invite-form select{border:1.5px solid var(--ink);border-right:none;background:var(--paper);
  color:var(--ink);font-size:13px;padding:0 8px;font-family:var(--sans);}
.invite-form input:focus,.invite-form select:focus{outline:none;}
.set-note{font-size:12px;color:var(--ink-500);margin-top:10px;max-width:70ch;line-height:1.6;}
.access-actions{margin:12px 0;}
.usage-bar{height:6px;background:var(--acc);margin-top:5px;}

/* ── 처리 진행률 ─────────────────────────────────────── */
.prog-wrap{padding:0 16px 12px;}
.prog-bar{height:4px;background:var(--ink-150);position:relative;overflow:hidden;}
.prog-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--acc);
  transition:width .4s ease;}
.prog-bar.indet i{width:35%!important;animation:prog-slide 1.4s ease-in-out infinite;}
@keyframes prog-slide{0%{left:-35%;}100%{left:100%;}}
.prog-text{display:flex;justify-content:space-between;gap:8px;margin-top:6px;
  font-size:11.5px;color:var(--ink-500);}
.prog-text .st{font-weight:700;color:var(--acc);}
.prog-text .pc{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.prog-detail{font-size:11px;color:var(--ink-500);margin-top:3px;line-height:1.5;}
#detail-prog{padding:12px 0 0;max-width:520px;}
