* { box-sizing: border-box; }
body { margin: 0; font-family: 'Pretendard Variable', 'Pretendard', -apple-system, system-ui, sans-serif; -webkit-font-smoothing: antialiased; color:#222; }
.font-mono, .num { font-family: 'JetBrains Mono', ui-monospace, monospace; }

/* ===== airpass 톤 공통 셸/사이드바 ===== */
:root {
  --ink:#222; --muted:#6b7178; --line:#dee1e6; --line2:#eef0f3;
  --soft:#f7f7f7; --brand:#0052ff; --brandDark:#003ecc; --up:#05b169; --down:#cf202f;
}
/* 사이드바: 화이트 미니멀 */
.side { background:#fff; border-right:1px solid var(--line); }
.side-brand { display:flex; align-items:center; gap:10px; }
.side-logo { width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px; background:linear-gradient(135deg,#0052ff,#003ecc); box-shadow:0 8px 18px -8px rgba(0,82,255,.5); }
.side-group { padding:14px 18px 5px; font-size:11px; font-weight:700; letter-spacing:.02em; color:#9aa0a8; text-transform:none; }
.sidebar-link { display:block; margin:1px 10px; padding:9px 12px; border-radius:11px; color:#4b5058; font-weight:600; font-size:13.5px; cursor:pointer; transition:all .13s; letter-spacing:-.2px; }
.sidebar-link:hover { background:var(--soft); color:#222; }
.sidebar-link.active { background:#eef3ff; color:var(--brand); }
.sidebar-link.active i { color:var(--brand); }
.side-sub { padding-left:34px; font-weight:500; }

/* 사이드바 하단 카드 (아래 공백 채우기) */
.side-usercard {
  display:flex; align-items:center; gap:10px; padding:10px 11px; margin-bottom:8px;
  border:1px solid var(--line); border-radius:14px; background:var(--soft);
}
.side-avatar {
  width:34px; height:34px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:800; font-size:14px;
  background:linear-gradient(135deg,#0052ff,#003ecc);
}
.side-stat {
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:10px 12px; margin-bottom:8px; border-radius:12px; cursor:pointer;
  border:1px solid var(--line); background:#fff; color:#4b5058;
  font-size:12.5px; font-weight:700; transition:all .15s;
}
.side-stat:hover { border-color:#c7ccd3; background:var(--soft); }
.side-stat i { color:var(--muted); }
.side-stat-num {
  min-width:26px; height:22px; padding:0 8px; border-radius:100px;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono',ui-monospace,monospace; font-size:12px; font-weight:800;
  background:var(--line2); color:var(--muted);
}
/* 검토 필요가 1건 이상이면 빨간 강조 */
.side-stat.has-alert { border-color:#f5c2c7; background:#fff5f5; color:var(--down); }
.side-stat.has-alert i { color:var(--down); }
.side-stat.has-alert .side-stat-num { background:var(--down); color:#fff; }
.side-quick {
  display:flex; align-items:center; justify-content:center; gap:7px; width:100%;
  padding:10px 12px; border-radius:12px; cursor:pointer; border:1px solid var(--brand);
  color:var(--brand); background:#fff; font-size:12.5px; font-weight:700; transition:all .15s;
}
.side-quick:hover { background:var(--brand); color:#fff; }

/* 상단 헤더 */
.topbar { background:rgba(255,255,255,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }

/* ===== airpass KPI / 카드 ===== */
/* 다크 히어로 (대표 지표) */
.hero {
  border-radius:24px; background:#222; color:#fff; padding:28px 32px;
  display:grid; grid-template-columns:1.1fr 1fr; gap:28px; align-items:center;
  animation:v3rise .4s cubic-bezier(.23,1,.32,1) both;
}
@keyframes v3rise { from { opacity:0; transform:translateY(8px);} to { opacity:1; transform:none; } }
.hero-tag { align-self:flex-start; display:inline-block; font-size:12px; font-weight:700; padding:5px 12px; border-radius:100px; background:rgba(122,162,255,.16); color:#7aa2ff; }
.hero-big { font-family:'JetBrains Mono', monospace; font-size:52px; font-weight:500; letter-spacing:-2px; line-height:1; }
.hero-mini { border-radius:16px; background:#333; border:1px solid rgba(255,255,255,.07); padding:16px; }
.hero-mini .v { font-family:'JetBrains Mono', monospace; font-size:22px; font-weight:500; letter-spacing:-.6px; }

/* 미니멀 흰 KPI 카드 */
.kpi {
  position:relative; border:1px solid var(--line); border-radius:18px; background:#fff;
  padding:18px 20px; transition:box-shadow .16s, transform .16s, border-color .16s;
}
.kpi:hover { box-shadow:0 12px 28px -18px rgba(15,23,42,.28); transform:translateY(-2px); }
.kpi .kpi-ico { width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:15px; }
.kpi .kpi-val { font-family:'JetBrains Mono', monospace; font-size:30px; font-weight:500; letter-spacing:-1px; line-height:1.05; color:#222; margin-top:12px; }
.kpi .kpi-label { font-size:12.5px; color:var(--muted); margin-top:4px; font-weight:600; }
.kpi .kpi-sub { font-size:11.5px; color:#9aa0a8; margin-top:8px; }
.ico-blue{background:#eef3ff;color:#0052ff;} .ico-cyan{background:#e6f9fb;color:#0891b2;}
.ico-amber{background:#fff5e6;color:#d97706;} .ico-green{background:#e8f8f0;color:#05b169;}
.ico-rose{background:#fdecee;color:#cf202f;} .ico-violet{background:#f1ecfe;color:#7c3aed;}

/* ===== airpass 스타일 로그인/인증 ===== */
.auth-bg {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  padding: 24px; background: #f7f7f7; position: relative; overflow: hidden;
}
.auth-bg::before {
  content: ''; position: absolute; top: -160px; right: -120px; width: 420px; height: 420px;
  border-radius: 50%; background: radial-gradient(circle, rgba(0,82,255,.10), transparent 70%);
  pointer-events: none;
}
.auth-bg::after {
  content: ''; position: absolute; bottom: -180px; left: -140px; width: 460px; height: 460px;
  border-radius: 50%; background: radial-gradient(circle, rgba(122,162,255,.14), transparent 70%);
  pointer-events: none;
}
.auth-card {
  position: relative; z-index: 1; width: 100%; max-width: 420px;
  background: #fff; border: 1px solid #eef0f3; border-radius: 24px;
  box-shadow: 0 24px 60px -28px rgba(15,23,42,.20);
  padding: 40px 36px;
}
.auth-logo {
  width: 56px; height: 56px; margin: 0 auto 18px; border-radius: 18px;
  display: flex; align-items: center; justify-content: center; font-size: 24px;
  color: #fff; background: linear-gradient(135deg, #0052ff, #003ecc);
  box-shadow: 0 10px 24px -10px rgba(0,82,255,.55);
}
.auth-title { font-size: 22px; font-weight: 700; letter-spacing: -0.4px; color: #222; margin: 0; }
.auth-sub { font-size: 13px; color: #6b7178; margin-top: 6px; }
.auth-label { display:block; font-size: 12.5px; font-weight: 600; color: #6b7178; margin-bottom: 7px; letter-spacing: -0.2px; }
.auth-input {
  width: 100%; height: 48px; padding: 0 16px; font-size: 14px; color: #222;
  border: 1px solid #dee1e6; border-radius: 14px; background: #fff; outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.auth-input:focus { border-color: #0052ff; box-shadow: 0 0 0 3px rgba(0,82,255,.12); }
.auth-input::placeholder { color: #a8acb3; }
.auth-btn {
  width: 100%; height: 50px; border: none; border-radius: 14px; cursor: pointer;
  font-size: 15px; font-weight: 700; letter-spacing: -0.2px; color: #fff;
  background: #222; transition: transform .15s, background .2s, box-shadow .2s;
}
.auth-btn:hover { background: #000; transform: translateY(-1px); box-shadow: 0 10px 24px -12px rgba(0,0,0,.5); }
.auth-btn:active { transform: translateY(0); }
.auth-otp {
  width: 100%; height: 60px; text-align: center; font-family: 'JetBrains Mono', monospace;
  font-size: 28px; letter-spacing: 0.5em; color: #222; text-indent: 0.5em;
  border: 1px solid #dee1e6; border-radius: 16px; outline: none; transition: border-color .15s, box-shadow .15s;
}
.auth-otp:focus { border-color: #0052ff; box-shadow: 0 0 0 3px rgba(0,82,255,.12); }
.auth-link { color: #0052ff; font-weight: 600; cursor: pointer; }
.auth-link:hover { color: #003ecc; text-decoration: underline; }
.sidebar-link { transition: all .15s; }
.sidebar-link:hover { background: rgba(255,255,255,.08); }
.sidebar-link.active { background: rgba(255,255,255,.15); border-left: 3px solid #60a5fa; }
.stt-line { cursor: pointer; transition: background .1s; }
.stt-line:hover { background: #eff6ff; }
.stt-line.playing { background: #dbeafe; }
table.data { border-collapse: collapse; }
table.data th { background: #fafbfc; font-weight: 600; color:#8c9198; font-size:11.5px; letter-spacing:-.1px; border-bottom:1px solid var(--line); }
table.data td { border-bottom:1px solid var(--line2); }
table.data tbody tr:hover { background:#fafbfc; }
.badge { display:inline-block; padding:3px 10px; border-radius:9999px; font-size:11px; font-weight:600; letter-spacing:-.1px; }
.modal-backdrop { background: rgba(0,0,0,.45); }
.spinner { border:3px solid #e2e8f0; border-top-color:#1e40af; border-radius:50%; width:20px; height:20px; animation:spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.fade-in { animation: fadeIn .2s ease; }
@keyframes fadeIn { from { opacity:0; transform: translateY(4px);} to {opacity:1; transform:none;} }

/* ===== AI 평가: 화려한 실행/등장 애니메이션 ===== */

/* 평가 시작 카드 (그라디언트 + 은은한 펄스) */
.ai-cta {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #1e3a8a 0%, #4338ca 45%, #7c3aed 100%);
  border-radius: 16px; color: #fff;
}
.ai-cta::after {
  content:''; position:absolute; inset:0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.25), transparent 45%);
  pointer-events:none;
}
.ai-cta-btn {
  position: relative; display:inline-flex; align-items:center; gap:.5rem;
  background: rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35);
  color:#fff; padding:.7rem 1.6rem; border-radius:9999px; font-weight:700;
  cursor:pointer; transition: transform .15s, background .2s, box-shadow .2s;
  backdrop-filter: blur(4px);
}
.ai-cta-btn:hover { background: rgba(255,255,255,.28); transform: translateY(-2px); box-shadow:0 10px 30px -8px rgba(124,58,237,.7); }
.ai-cta-btn:active { transform: translateY(0); }
.ai-robot { animation: floaty 2.4s ease-in-out infinite; }
@keyframes floaty { 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-8px);} }

/* 분석 중 오버레이 */
.ai-analyzing { text-align:center; padding: 2.2rem 1rem; }
.ai-orb {
  width:88px; height:88px; margin:0 auto 1rem; border-radius:50%;
  background: conic-gradient(from 0deg, #60a5fa, #a78bfa, #f472b6, #60a5fa);
  animation: spin 1.1s linear infinite;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 10px), #000 0);
          mask: radial-gradient(farthest-side, transparent calc(100% - 10px), #000 0);
  position: relative;
}
.ai-orb-core {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:#6d28d9; font-size:26px; animation: pulseGlow 1.4s ease-in-out infinite;
}
@keyframes pulseGlow { 0%,100%{ transform:scale(1); opacity:.75;} 50%{ transform:scale(1.15); opacity:1;} }
.ai-progress-track { height:8px; border-radius:9999px; background:#e9d5ff; overflow:hidden; margin:1rem auto 0; max-width:340px; }
.ai-progress-bar {
  height:100%; width:0%; border-radius:9999px;
  background: linear-gradient(90deg,#6366f1,#a855f7,#ec4899);
  background-size:200% 100%; animation: shimmer 1.2s linear infinite;
  transition: width .4s ease;
}
@keyframes shimmer { to { background-position:-200% 0; } }
.ai-step { color:#7c3aed; font-weight:600; font-size:.9rem; min-height:1.2em; }
.ai-scan-dots span { display:inline-block; width:6px; height:6px; margin:0 2px; border-radius:50%; background:#a855f7; animation: bounce 1s infinite; }
.ai-scan-dots span:nth-child(2){ animation-delay:.15s; } .ai-scan-dots span:nth-child(3){ animation-delay:.3s; }
@keyframes bounce { 0%,100%{ transform:translateY(0); opacity:.5;} 50%{ transform:translateY(-6px); opacity:1;} }

/* 결과 등장 (팝인 + 스태거) — 아주 천천히 부드럽게 */
.ai-reveal { animation: popIn 1.5s cubic-bezier(.16,.84,.34,1) both; }
@keyframes popIn { from{ opacity:0; transform: translateY(22px) scale(.97);} to{ opacity:1; transform:none;} }
/* 카드가 하나씩 여유 있게 떠오르도록 지속시간·간격을 크게 늘림 */
.ai-stagger > * { opacity:0; animation: riseUp 1.3s cubic-bezier(.16,.84,.34,1) forwards; }
.ai-stagger > *:nth-child(1){ animation-delay:.3s; }
.ai-stagger > *:nth-child(2){ animation-delay:.7s; }
.ai-stagger > *:nth-child(3){ animation-delay:1.1s; }
.ai-stagger > *:nth-child(4){ animation-delay:1.5s; }
.ai-stagger > *:nth-child(5){ animation-delay:1.9s; }
.ai-stagger > *:nth-child(6){ animation-delay:2.3s; }
.ai-stagger > *:nth-child(7){ animation-delay:2.7s; }
.ai-stagger > *:nth-child(8){ animation-delay:3.1s; }
.ai-stagger > *:nth-child(9){ animation-delay:3.5s; }
.ai-stagger > *:nth-child(10){ animation-delay:3.9s; }
@keyframes riseUp { from{ opacity:0; transform: translateY(20px);} to{ opacity:1; transform:none;} }

/* 총점 카운트업 강조 — 더 천천히, 마지막 스태거 뒤에 등장 */
.ai-score-pop { animation: scorePop 1.5s cubic-bezier(.2,.7,.3,1.25) .5s both; }
@keyframes scorePop { 0%{ transform:scale(.55); opacity:0;} 55%{ transform:scale(1.12); opacity:1;} 100%{ transform:scale(1); opacity:1;} }

/* ===== AI 평가 시작 카드/버튼 (미평가 녹취) ===== */
.ai-launch-card {
  position:relative; overflow:hidden; border-radius:14px; text-align:center;
  padding:1.5rem 1.2rem; color:#fff;
  background: linear-gradient(135deg,#4f46e5 0%,#7c3aed 45%,#db2777 100%);
  box-shadow: 0 12px 28px -16px rgba(79,70,229,.7);
}
/* 은은하게 흐르는 배경 광채 */
.ai-launch-card::before {
  content:""; position:absolute; inset:-40%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.22), transparent 45%),
              radial-gradient(circle at 70% 70%, rgba(255,255,255,.16), transparent 45%);
  animation: aiGlow 6s ease-in-out infinite;
}
@keyframes aiGlow { 0%,100%{ transform:rotate(0) scale(1);} 50%{ transform:rotate(180deg) scale(1.15);} }
.ai-launch-card > * { position:relative; z-index:1; }
.ai-launch-icon {
  width:52px; height:52px; margin:0 auto .7rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:22px;
  background: rgba(255,255,255,.16); backdrop-filter: blur(4px);
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.25);
  animation: floaty 3.5s ease-in-out infinite;
}
.ai-launch-btn {
  margin-top:.9rem; display:inline-flex; align-items:center; gap:.45rem;
  padding:.6rem 1.5rem; border:none; border-radius:9999px; cursor:pointer;
  font-weight:700; font-size:.9rem; color:#4c1d95; background:#fff;
  box-shadow: 0 6px 16px -8px rgba(0,0,0,.35);
  transition: transform .18s ease, box-shadow .18s ease;
}
.ai-launch-btn:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 16px 30px -10px rgba(0,0,0,.45); }
.ai-launch-btn:active { transform: translateY(-1px) scale(.99); }
.ai-launch-btn i { animation: pulseGlow 1.6s ease-in-out infinite; }
/* 로켓 발사 트랜지션 */
.ai-launching { animation: aiLaunchOff .5s ease forwards; }
@keyframes aiLaunchOff { to{ opacity:0; transform: translateY(-24px) scale(.94);} }

/* ===== Dashboard 리뉴얼 ===== */
.dash-kpi {
  position: relative; overflow: hidden; border-radius: 16px; color: #fff;
  padding: 1.25rem 1.35rem; box-shadow: 0 8px 24px -12px rgba(30,58,138,.5);
  transition: transform .18s, box-shadow .18s;
}
.dash-kpi:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -14px rgba(30,58,138,.6); }
.dash-kpi::after {
  content:''; position:absolute; right:-18px; bottom:-18px;
  width:110px; height:110px; border-radius:50%;
  background: rgba(255,255,255,.12); pointer-events:none;
}
.dash-kpi .kpi-icon {
  position:absolute; right:1rem; top:1rem; font-size:1.6rem; opacity:.35;
}
.dash-kpi .kpi-val { font-size:2rem; font-weight:800; line-height:1.1; letter-spacing:-.5px; }
.dash-kpi .kpi-label { font-size:.78rem; opacity:.92; margin-top:.15rem; }
.dash-kpi .kpi-sub { font-size:.7rem; opacity:.8; margin-top:.4rem; }
.grad-blue   { background:linear-gradient(135deg,#2563eb,#1e3a8a); }
.grad-cyan   { background:linear-gradient(135deg,#06b6d4,#0e7490); }
.grad-amber  { background:linear-gradient(135deg,#f59e0b,#b45309); }
.grad-green  { background:linear-gradient(135deg,#22c55e,#15803d); }
.grad-rose   { background:linear-gradient(135deg,#f43f5e,#be123c); }
.grad-violet { background:linear-gradient(135deg,#8b5cf6,#6d28d9); }

.dash-card { background:#fff; border-radius:18px; border:1px solid var(--line); box-shadow:none; transition: box-shadow .18s; }
.dash-card:hover { box-shadow:0 10px 28px -18px rgba(15,23,42,.18); }
/* 차트 컨테이너: 고정 높이 + 절대배치 canvas로 Chart.js 무한 리사이즈(세로 늘어남) 방지 */
.chart-box { position:relative; width:100%; }
.chart-box > canvas { position:absolute; inset:0; width:100% !important; height:100% !important; }
.pipeline-step { position:relative; flex:1; text-align:center; padding:.5rem .25rem; }
.pipeline-step:not(:last-child)::after {
  content:'\f105'; font-family:'Font Awesome 6 Free'; font-weight:900;
  position:absolute; right:-.35rem; top:50%; transform:translateY(-50%); color:#cbd5e1;
}
.rank-row { display:flex; align-items:center; gap:.6rem; padding:.5rem .25rem; border-bottom:1px solid #f1f5f9; }
.rank-row:last-child { border-bottom:none; }
.rank-badge { width:26px; height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.8rem; color:#fff; flex-shrink:0; }
.rank-1 { background:#f59e0b; } .rank-2 { background:#94a3b8; } .rank-3 { background:#b45309; } .rank-n { background:#cbd5e1; color:#475569; }
.score-pill { font-weight:800; font-size:.95rem; }
.mini-bar-track { height:6px; border-radius:9999px; background:#eef2ff; overflow:hidden; }
.mini-bar { height:100%; border-radius:9999px; background:linear-gradient(90deg,#6366f1,#3b82f6); }

/* ===== 상담사 관리 (airpass) ===== */
.pill-dark {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  height:40px; padding:0 18px; border-radius:100px; border:1px solid #222;
  background:#222; color:#fff; font-size:13px; font-weight:600; letter-spacing:-.2px;
  cursor:pointer; transition:background .15s, border-color .15s, transform .05s; white-space:nowrap;
}
.pill-dark:hover { background:#000; border-color:#000; }
.pill-dark:active { transform:translateY(1px); }

.pill-ghost {
  display:inline-flex; align-items:center; justify-content:center;
  height:40px; width:40px; padding:0; border-radius:100px; border:1px solid var(--line);
  background:#fff; color:var(--muted); font-size:14px; cursor:pointer;
  transition:border-color .15s, color .15s, background .15s; flex-shrink:0;
}
.pill-ghost:hover { border-color:#c7ccd3; color:var(--ink); background:var(--soft); }

.flt-label {
  display:block; font-size:12px; font-weight:600; color:var(--muted);
  margin-bottom:6px; letter-spacing:-.2px;
}
.flt-input {
  width:100%; height:40px; padding:0 12px; font-size:13px; color:var(--ink);
  border:1px solid var(--line); border-radius:12px; background:#fff; outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.flt-input::placeholder { color:#b6bcc4; }
.flt-input:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(0,82,255,.12); }
select.flt-input { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7178' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 10px center; padding-right:32px; }

.name-link {
  color:var(--brand); font-weight:600; cursor:pointer; text-decoration:none;
  transition:color .15s;
}
.name-link:hover { color:var(--brandDark); text-decoration:underline; }

.ext-chip {
  display:inline-block; padding:2px 9px; border-radius:8px; font-size:12px; font-weight:600;
  font-family:'JetBrains Mono',ui-monospace,monospace; color:#475569; background:#f1f5f9;
  letter-spacing:.2px;
}

.pg-btn {
  min-width:34px; height:34px; padding:0 10px; border-radius:10px; border:1px solid var(--line);
  background:#fff; color:var(--muted); font-size:13px; font-weight:600; cursor:pointer;
  transition:border-color .15s, color .15s, background .15s;
}
.pg-btn:hover:not(:disabled) { border-color:#c7ccd3; color:var(--ink); background:var(--soft); }
.pg-btn:disabled { opacity:.4; cursor:not-allowed; }
.pg-active { background:#222; border-color:#222; color:#fff; }
.pg-active:hover { background:#000; border-color:#000; color:#fff; }

/* 담당 업무별 통계 카드 (업무별 평가현황) */
.duty-card {
  border:1px solid var(--line); border-radius:16px; background:#fafbfc;
  padding:16px 16px 14px; transition:border-color .15s, box-shadow .15s, background .15s;
}
.duty-card:hover { border-color:#c7ccd3; background:#fff; box-shadow:0 6px 18px -12px rgba(0,0,0,.18); }
.duty-card-active { background:#eef3ff; border-color:#9dbcff; box-shadow:0 0 0 1px #9dbcff inset; }
.duty-name { font-size:12.5px; font-weight:700; color:var(--ink); margin-bottom:8px; letter-spacing:-.2px; }
.duty-score {
  font-family:'JetBrains Mono',ui-monospace,monospace; font-weight:800;
  font-size:26px; line-height:1; color:var(--ink); letter-spacing:-.5px;
}
.duty-meta { font-size:11px; color:var(--muted); margin-top:8px; letter-spacing:-.1px; }

/* 평가 조회·검토 빠른 필터 칩 */
.qf-chip {
  display:inline-flex; align-items:center; height:34px; padding:0 14px; border-radius:100px;
  border:1px solid var(--line); background:#fff; color:var(--muted); font-size:12.5px; font-weight:600;
  cursor:pointer; transition:border-color .15s, color .15s, background .15s; white-space:nowrap;
}
.qf-chip:hover { border-color:#c7ccd3; color:var(--ink); background:var(--soft); }
.qf-num {
  display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; margin-left:6px;
  padding:0 6px; border-radius:100px; background:var(--line2); color:var(--muted);
  font-family:'JetBrains Mono',ui-monospace,monospace; font-size:11px; font-weight:700;
}
/* 검토 필요가 1건 이상이면 강조(빨간 뱃지) */
.qf-chip-alert { border-color:#f5c2c7; color:var(--down); background:#fff5f5; }
.qf-chip-alert .qf-num { background:var(--down); color:#fff; }

/* ===== 녹취 업로드 화면 ===== */
/* textarea는 flt-input 고정 높이 대신 자연 높이 */
textarea.flt-input { height:auto; min-height:64px; padding:9px 12px; line-height:1.5; }

/* 파일 드롭존 */
.upl-drop {
  display:block; cursor:pointer; border:2px dashed var(--line); border-radius:16px;
  background:var(--soft); padding:26px 20px; text-align:center;
  transition:border-color .15s, background .15s;
}
.upl-drop:hover { border-color:var(--brand); background:#f5f8ff; }
.upl-drag { border-color:var(--brand); background:#eef3ff; }
.upl-drop-inner { pointer-events:none; }

/* 자동배정 힌트 라인 */
.upl-hint {
  display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:10px;
  font-size:12px; font-weight:500; line-height:1.4;
}
.upl-hint i { font-size:12px; }
.upl-hint-ok      { color:var(--up);     background:#e9f9f1; }
.upl-hint-warn    { color:#b26a00;       background:#fff6e6; }
.upl-hint-err     { color:var(--down);   background:#fdecec; }
.upl-hint-neutral { color:var(--muted);  background:var(--line2); }

/* 안내 배너 강조 하이라이트 칩 */
.hl-chip {
  display:inline-flex; align-items:center; padding:1px 8px; border-radius:7px;
  font-weight:800; font-size:12.5px; letter-spacing:.2px; white-space:nowrap;
  font-family:'JetBrains Mono',ui-monospace,monospace;
}
.hl-blue  { color:#fff; background:var(--brand); font-family:inherit; }
.hl-amber { color:#fff; background:#f59e0b; font-family:inherit; }

/* 상담사 직접 지정 토글 (강조) */
.upl-manual-toggle {
  display:flex; align-items:center; gap:9px; width:100%; padding:11px 14px;
  border:1px solid var(--line); border-radius:12px; background:var(--soft);
  color:var(--ink); font-size:13px; cursor:pointer;
  transition:border-color .15s, background .15s, box-shadow .15s;
}
.upl-manual-toggle:hover { border-color:var(--brand); background:#f5f8ff; box-shadow:0 0 0 3px rgba(0,82,255,.08); }
.upl-manual-toggle > .fa-user-pen { color:var(--brand); font-size:13px; }
.upl-manual-title { font-weight:700; }
.upl-manual-badge {
  margin-left:auto; display:inline-flex; align-items:center; padding:3px 10px;
  border-radius:100px; font-size:11.5px; font-weight:700; white-space:nowrap;
  color:#b26a00; background:#fff3dd; border:1px solid #ffe0a8;
}
