:root{
  --bg:#f5f7fb;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --surface-muted:#f1f5f9;
  --text:#111827;
  --muted:#64748b;
  --muted-2:#94a3b8;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-soft:#eff6ff;
  --success:#16a34a;
  --success-soft:#dcfce7;
  --warning:#d97706;
  --warning-soft:#fef3c7;
  --danger:#dc2626;
  --danger-soft:#fee2e2;
  --line:#e2e8f0;
  --line-strong:#cbd5e1;
  --shadow-sm:0 1px 2px rgba(15,23,42,.05);
  --shadow:0 12px 30px rgba(15,23,42,.08);
  --radius:14px;
  --radius-lg:18px;
}

*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-size:14px;
  line-height:1.5;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(37,99,235,.06),transparent 280px);
  z-index:-1;
}

a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}

.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:252px;
  padding:22px 16px;
  background:var(--surface);
  border-right:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
  z-index:10;
}

.brand{
  font-size:20px;
  font-weight:800;
  letter-spacing:-.03em;
  color:#0f172a;
  padding:4px 10px 0;
}

.subtitle{
  color:var(--muted);
  font-size:12px;
  font-weight:600;
  margin:2px 10px 22px;
}

nav{display:grid;gap:4px}
nav a{
  color:#334155;
  text-decoration:none;
  padding:10px 12px;
  border-radius:10px;
  font-weight:650;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid transparent;
  transition:background .16s ease,color .16s ease,border-color .16s ease;
}
nav a::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:#cbd5e1;
  flex:0 0 auto;
}
nav a:hover{background:var(--surface-soft);text-decoration:none;color:#0f172a}
nav a.active{
  background:var(--primary-soft);
  color:var(--primary-dark);
  border-color:#bfdbfe;
}
nav a.active::before{background:var(--primary)}

main{
  margin-left:252px;
  padding:28px;
  max-width:1540px;
}

.hero,.panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:24px;
  margin-bottom:20px;
  box-shadow:var(--shadow-sm);
}

.hero{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) 390px;
  gap:18px;
  align-items:stretch;
}

.page-hero{min-height:300px}
.page-panel{min-height:calc(100vh - 56px)}

.eyebrow{
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:11px;
  color:var(--primary);
  font-weight:800;
  margin:0 0 8px;
}

h1{
  font-size:34px;
  line-height:1.12;
  letter-spacing:-.045em;
  margin:0 0 12px;
  color:#0f172a;
}
h2{
  font-size:20px;
  letter-spacing:-.025em;
  margin:0;
  color:#0f172a;
}
h3{
  margin:0 0 8px;
  font-size:16px;
  letter-spacing:-.015em;
  color:#0f172a;
}

.lead{font-size:16px;color:var(--muted);max-width:760px;margin:0}
.note,.meta{color:var(--muted)}
.note{margin:8px 0 0;max-width:980px}
.meta{margin:12px 0 18px;font-size:13px}

.panel-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:18px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}

button{
  border:1px solid var(--primary);
  border-radius:10px;
  background:var(--primary);
  color:#fff;
  padding:10px 14px;
  font-weight:750;
  cursor:pointer;
  box-shadow:0 8px 16px rgba(37,99,235,.16);
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
  white-space:nowrap;
}
button:hover{background:var(--primary-dark);border-color:var(--primary-dark);transform:translateY(-1px);text-decoration:none}
button.secondary{
  background:#fff;
  color:#334155;
  border-color:var(--line-strong);
  box-shadow:none;
}
button.secondary:hover{background:var(--surface-soft);border-color:#94a3b8;color:#0f172a}
button:disabled,button.secondary:disabled{cursor:not-allowed;opacity:.62;transform:none;box-shadow:none;background:var(--surface-muted);border-color:var(--line);color:var(--muted)}
button:disabled:hover,button.secondary:disabled:hover{background:var(--surface-muted);border-color:var(--line);color:var(--muted);transform:none;text-decoration:none}

.status-card,.setup-status{
  background:var(--surface-soft);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
}
.setup-status{margin-top:22px}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid>div{
  background:var(--surface);
  border:1px solid var(--line);
  padding:12px;
  border-radius:12px;
}
.grid strong,.grid small{display:block}
.grid small{color:var(--muted);margin-top:4px;font-size:12px}

.badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border-radius:999px;
  padding:4px 9px;
  background:var(--surface-muted);
  border:1px solid var(--line);
  color:#475569;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  margin-top:6px;
}
.badge.ok{background:var(--success-soft);border-color:#bbf7d0;color:#15803d}
.badge.warn{background:var(--warning-soft);border-color:#fde68a;color:#92400e}

.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px;margin-top:16px}
.tool-card{
  display:grid;
  gap:8px;
  color:var(--text);
  text-decoration:none;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  min-height:120px;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.tool-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#bfdbfe;text-decoration:none}
.tool-card strong{font-size:16px;color:#0f172a}
.tool-card span{color:var(--muted);line-height:1.45}

.keyword-list,.product-grid,.recommendation-grid{display:grid;gap:14px}
.keyword-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.product-grid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr))}
.recommendation-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:14px}

.keyword-card,.product-card,.draft-card,.insight-card,.recommendation-card,.ticket-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
}
.keyword-card{padding:15px}
.keyword-row{display:flex;justify-content:space-between;gap:12px}
.bar{height:7px;background:var(--surface-muted);border-radius:999px;margin:12px 0;overflow:hidden}
.bar i{display:block;height:100%;background:var(--primary);border-radius:999px}

.product-card{overflow:hidden}
.product-card img{width:100%;height:230px;object-fit:cover;background:#fff;border-bottom:1px solid var(--line)}
.product-card div{padding:15px}
.product-card h3{font-size:15px;line-height:1.35}
.product-card p{color:var(--muted);margin:6px 0}
.price{font-weight:900;color:var(--success)!important}

.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:20px 0}
.kpi-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px;
  display:grid;
  gap:7px;
  box-shadow:var(--shadow-sm);
}
.kpi-card span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.kpi-card strong{font-size:26px;letter-spacing:-.03em;color:#0f172a}
.kpi-card small{color:var(--primary);font-weight:700}

.insights-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px;margin:20px 0}
.insight-column,.cs-ticket-list,.cs-detail-panel{
  background:var(--surface-soft);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:16px;
}
.insight-list{display:grid;gap:11px;margin-top:12px}
.insight-card{padding:15px}
.insight-card p{color:#334155;line-height:1.55;margin:8px 0}
.insight-card small{color:var(--muted);line-height:1.45}
.insight-title{font-weight:800;margin-bottom:8px;color:#0f172a}
.priority-high{border-color:#fecaca!important;background:#fff7f7}
.priority-medium{border-color:#bfdbfe!important;background:#f8fbff}
.priority-low{border-color:#bbf7d0!important;background:#f8fff9}

.rank-list{display:grid;gap:0;margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.rank-row{display:grid;gap:4px;border-bottom:1px solid var(--line);padding:12px}
.rank-row:last-child{border-bottom:none}
.rank-row span,.rank-row small{color:var(--muted)}

.recommendation-card{display:grid;grid-template-columns:80px 1fr;gap:13px;padding:12px}
.recommendation-card img{width:80px;height:80px;object-fit:cover;border-radius:10px;background:var(--surface-muted)}
.recommendation-card h3{font-size:14px;margin:0 0 5px}
.recommendation-card p,.recommendation-card small{color:var(--muted);line-height:1.4;margin:0}
.recommendation-card a{font-weight:750;margin-top:8px;display:inline-block}

.draft-list{display:grid;gap:14px}
.draft-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;padding:14px;overflow:hidden}
.draft-card img{width:140px;height:140px;object-fit:cover;background:#fff;border-radius:12px;border:1px solid var(--line)}
.draft-title{font-weight:850;margin-bottom:10px;color:#0f172a}

textarea{
  width:100%;
  min-height:116px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  padding:12px;
  resize:vertical;
  font:inherit;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
}
textarea:focus{outline:3px solid #dbeafe;border-color:#93c5fd}
.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:10px}

.cs-layout{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:16px;margin-top:22px}
.cs-status-grid{margin-top:14px}
.ticket-list{display:grid;gap:10px;margin-top:14px;padding-right:4px}
.ticket-card{padding:13px;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}
.ticket-card:hover,.ticket-card.active{background:var(--primary-soft);border-color:#93c5fd;box-shadow:0 8px 18px rgba(37,99,235,.08)}
.ticket-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.ticket-subject{font-weight:850;margin:9px 0;line-height:1.35;color:#0f172a}
.ticket-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.ticket-tags span{font-size:11px;color:#475569;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-weight:700}
.badge.priority-high{background:var(--danger-soft);border-color:#fecaca;color:#991b1b}
.badge.priority-medium{background:var(--primary-soft);border-color:#bfdbfe;color:#1d4ed8}
.badge.priority-low{background:var(--success-soft);border-color:#bbf7d0;color:#166534}
.badge.status-needs_review{background:var(--primary-soft);border-color:#bfdbfe;color:#1d4ed8}
.badge.status-no_action_needed{background:var(--success-soft);border-color:#bbf7d0;color:#166534}
.badge.status-not_customer_support{background:var(--surface-muted);border-color:var(--line);color:#475569}
.ticket-detail-card{display:grid;gap:16px}
.ticket-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.context-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.context-grid>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}
.context-grid p,.message-preview{color:var(--muted);line-height:1.5;margin:7px 0 0}
.context-grid ul{margin:8px 0 0 18px;color:var(--muted);padding:0}
.draft-label{font-weight:850;color:#0f172a}
.reply-editor{min-height:230px}

.cs-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.cs-summary-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px}
.cs-summary-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;display:grid;gap:4px;box-shadow:var(--shadow-sm)}
.cs-summary-card.primary{background:linear-gradient(135deg,#eff6ff,#fff);border-color:#bfdbfe}
.cs-summary-card.wide{grid-column:span 2}
.cs-summary-card span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}
.cs-summary-card strong{font-size:26px;color:#0f172a;line-height:1}
.cs-summary-card small{color:var(--muted);line-height:1.4}
.queue-section{display:grid;gap:10px;border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--surface-soft)}
.queue-section+.queue-section{margin-top:12px}
.queue-head{display:flex;justify-content:space-between;align-items:center;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.queue-head span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-weight:850}
.suppressed-queue{background:#f8fafc}
.ticket-card.non-actionable{opacity:.82;background:#f8fafc;border-style:dashed}
.ticket-card.non-actionable:hover,.ticket-card.non-actionable.active{opacity:1;background:#f1f5f9;border-color:#cbd5e1;box-shadow:none}
.ticket-governance,.pipeline-strip,.detail-badges{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.ticket-governance{font-size:11px;color:var(--muted);margin:6px 0}
.governance-badge,.confidence{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:850;background:#fff;color:#334155}
.governance-badge.human_review_required{background:var(--primary-soft);border-color:#bfdbfe;color:#1d4ed8}
.governance-badge.low_confidence_review{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.governance-badge.suppressed_non_cs{background:var(--surface-muted);border-color:#cbd5e1;color:#475569}
.governance-badge.non_actionable_acknowledgement{background:var(--success-soft);border-color:#bbf7d0;color:#166534}
.confidence-high{background:var(--success-soft);border-color:#bbf7d0;color:#166534}
.confidence-medium{background:var(--primary-soft);border-color:#bfdbfe;color:#1d4ed8}
.confidence-low{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.badge.status-send_tested,.badge.status-replacement_tested{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.badge.status-replacement_review{background:#fef3c7;border-color:#fde68a;color:#92400e}
.badge.status-replied,.badge.status-sent{background:var(--success-soft);border-color:#bbf7d0;color:#166534}
.badge.status-archived{background:var(--surface-muted);border-color:var(--line);color:#64748b}
.ticket-detail-card.non-actionable{background:#f8fafc;border-color:#cbd5e1}
.ticket-detail-card.non-actionable .reply-editor{background:#f1f5f9;color:#64748b}
.pipeline-log{display:grid;gap:8px;margin-top:10px}
.pipeline-log>div{display:grid;grid-template-columns:110px 120px minmax(0,1fr);gap:8px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px}
.pipeline-log strong{color:#0f172a}
.pipeline-log span{font-size:12px;font-weight:850;color:#334155}
.pipeline-log small{color:var(--muted);line-height:1.45}
button:disabled{cursor:not-allowed;opacity:.55}


summary{cursor:pointer;font-weight:750;color:#334155}

.table-wrap{overflow:auto}
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{color:#334155;background:var(--surface-soft);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
tr:last-child td{border-bottom:none}
code{background:var(--surface-muted);border:1px solid var(--line);padding:2px 6px;border-radius:7px;color:#334155}

@media(max-width:1100px){
  .hero{grid-template-columns:1fr}
  .cs-layout{grid-template-columns:1fr}
}

@media(max-width:900px){
  .sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--line)}
  nav{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  main{margin-left:0;padding:18px}
  h1{font-size:28px}
  .panel-head{align-items:stretch;flex-direction:column}
  .draft-card{grid-template-columns:1fr}
  .draft-card img{width:100%;height:230px}
  .grid{grid-template-columns:1fr}
}

.settings-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
  gap:16px;
  margin-top:18px;
}
.settings-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:18px;
  box-shadow:var(--shadow-sm);
}
.settings-card-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
  margin-bottom:14px;
}
.settings-card-head p{
  color:var(--muted);
  margin:6px 0 0;
  line-height:1.45;
}
.settings-form{
  display:grid;
  gap:11px;
}
.setting-field{
  display:grid;
  gap:6px;
  color:#334155;
  font-weight:750;
}
.setting-field span,
.toggle-row span{
  font-size:12px;
  letter-spacing:.01em;
}
.setting-field input{
  width:100%;
  border:1px solid var(--line-strong);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  padding:10px 11px;
  font:inherit;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
}
.setting-field input:focus{
  outline:3px solid #dbeafe;
  border-color:#93c5fd;
}
.toggle-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface-soft);
  color:#334155;
  font-weight:750;
}
.toggle-row input{
  width:18px;
  height:18px;
  accent-color:var(--primary);
  order:2;
}
.settings-actions{
  padding-top:4px;
  border-top:1px solid var(--line);
}
.secret-present,.secret-empty{
  display:inline-flex;
  margin-left:6px;
  border-radius:999px;
  padding:2px 7px;
  font-size:10px!important;
  font-weight:850;
}
.secret-present{background:var(--success-soft);color:#15803d;border:1px solid #bbf7d0}
.secret-empty{background:var(--surface-muted);color:var(--muted);border:1px solid var(--line)}
.settings-message{
  min-height:0;
  margin-top:14px;
  padding:0;
  color:var(--muted);
}
.settings-message.ok,.settings-message.warn{
  padding:11px 13px;
  border-radius:12px;
  border:1px solid var(--line);
  font-weight:750;
}
.settings-message.ok{background:var(--success-soft);border-color:#bbf7d0;color:#166534}
.settings-message.warn{background:var(--warning-soft);border-color:#fde68a;color:#92400e}
.settings-result{
  color:var(--muted);
  font-size:12px;
  font-weight:750;
  line-height:1.35;
  white-space:normal;
}
.settings-result.ok{color:#15803d}
.settings-result.warn{color:#92400e}
.compact-status{margin-top:0}

@media(max-width:900px){
  .settings-grid{grid-template-columns:1fr}
  .settings-card-head{flex-direction:column}
}

.setting-field select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #64748b 50%), linear-gradient(135deg, #64748b 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 2.4rem;
}

.oauth-panel {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid #dbeafe;
  background: #eff6ff;
  border-radius: 16px;
  margin-top: 4px;
}

.oauth-panel strong {
  display: block;
  color: #1e3a8a;
  margin-bottom: 4px;
}

.oauth-panel p {
  color: #475569;
  font-size: 0.9rem;
  margin: 0 0 12px;
}

.setting-field.compact {
  margin: 0;
}

.setting-field.compact input[readonly] {
  background: #ffffff;
  color: #334155;
  cursor: copy;
}

.connect-button {
  white-space: nowrap;
  background: #2563eb;
}

@media (max-width: 760px) {
  .oauth-panel {
    grid-template-columns: 1fr;
  }
}


.thread-indicators {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.35rem 0;
}
.thread-pill {
  border-radius: 999px;
  font-size: 0.75rem;
  padding: 0.18rem 0.55rem;
  border: 1px solid var(--border, #d9dee8);
}
.thread-pill.muted,
.thread-pill.waiting-customer {
  color: var(--muted, #697386);
  background: #f4f6fa;
}
.thread-pill.needs-reply {
  color: #8a5a00;
  background: #fff4cf;
  border-color: #f4d779;
}
.resolved-verify,
.resolved-confirmed {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.75rem;
  border: 1px solid #f4d779;
  background: #fff8df;
  color: #7a5300;
}
.resolved-confirmed {
  border-color: #b9e4c9;
  background: #ebfff2;
  color: #146c36;
}
.yellow-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: #f4b400;
  display: inline-block;
}
.resolved-review-banner {
  border: 1px solid #f4d779;
  background: #fff8df;
  border-radius: 1rem;
  padding: 0.9rem;
  display: grid;
  gap: 0.45rem;
  margin-bottom: 1rem;
}
.actions.compact {
  margin-top: 0.35rem;
}
.thread-message-log {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.thread-message-log > div {
  border: 1px solid var(--border, #d9dee8);
  border-radius: 0.75rem;
  padding: 0.75rem;
  background: #fff;
}
.thread-message-log p {
  white-space: pre-wrap;
  margin-bottom: 0;
}
.queue-section.resolved-queue summary.queue-head {
  cursor: pointer;
  list-style: none;
}
.queue-section.resolved-queue summary.queue-head::-webkit-details-marker {
  display: none;
}
