:root { --surface-radius: 10px; }
.conversation-item[data-view='pengaturan-bot'] .avatar { background: #7162b0; }
.conversation-item[data-view='bot-father'] .avatar { background: #3d8bb5; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-card { max-width: 1200px; margin: 0 auto 20px; padding: 24px; background: var(--content-bg); border: 0; border-radius: var(--surface-radius); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 32px; align-items: start; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-controls { min-width: 0; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-controls > .settings-field:first-child { margin-top: 0; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-card-head { gap: 12px; margin-bottom: 20px; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-card-head > div { min-width: 0; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-card-head h2 { font-size: 15px; line-height: 1.5; font-weight: 600; margin-bottom: 6px; }
:is(#view-pengaturan-bot, #view-bot-father) .form-note { max-width: 78ch; line-height: 1.6; overflow-wrap: anywhere; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-field { max-width: none; gap: 6px; margin-top: 16px; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-label { font-weight: 500; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-field input, :is(#view-pengaturan-bot, #view-bot-father) .settings-field select { max-width: none; min-height: 40px; }
:is(#view-pengaturan-bot, #view-bot-father) .secret-input { max-width: none; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-field-row { padding-bottom: 16px; border-bottom: 1px solid var(--border); }
:is(#view-pengaturan-bot, #view-bot-father) .settings-card .btn-row { margin-top: 20px; flex-wrap: wrap; gap: 10px; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-card button[type='submit'], :is(#view-pengaturan-bot, #view-bot-father) .secondary-btn { min-height: 40px; border-radius: 7px; }
:is(#view-pengaturan-bot, #view-bot-father) .settings-card button[type='submit'] { color: var(--on-primary); }
:is(#view-pengaturan-bot, #view-bot-father) .settings-advanced { padding-top: 16px; border-top: 1px solid var(--border); }
@media (max-width: 1100px) {
  :is(#view-pengaturan-bot, #view-bot-father) .settings-card { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
@media (max-width: 720px) {
  :is(#view-pengaturan-bot, #view-bot-father) .settings-card { padding: 16px 12px; margin-bottom: 14px; }
  :is(#view-pengaturan-bot, #view-bot-father) .settings-card-head { flex-direction: column; }
  :is(#view-pengaturan-bot, #view-bot-father) .settings-field { max-width: 100%; }
  :is(#view-pengaturan-bot, #view-bot-father) .settings-card .btn-row > button { flex: 1 1 auto; min-height: 44px; white-space: normal; }
}
.stat-section, .kelola-block, .detail-panel, .view-body > .toolbar, .summary-filter { border-radius: var(--surface-radius); }
.kelola-block, .view-body > .toolbar, .summary-filter { box-shadow: none; }
.view-body { scrollbar-gutter: stable; }
.kelola-block-head h2, .stat-section h2 { font-size: 15px; line-height: 1.5; }
.data-table td { line-height: 1.55; }
.data-table td[data-mobile-cell='title'] { font-weight: 600; }
.data-table td[data-mobile-cell='time'] { color: var(--secondary); font-size: 13px; }
.data-table td.num { font-variant-numeric: tabular-nums; }
.data-table thead th { padding-top: 13px; padding-bottom: 13px; }
.primary-btn, .summary-btn, .inline-form button[type='submit'] { min-height: 40px; border-radius: 7px; }
.filter-top, .filter-panel, .filter-field { display: contents; }
.filter-toggle, .filter-chips, .filter-reset, .row-details { display: none; }
.filter-toolbar { justify-content: flex-start; align-items: flex-end; gap: 16px; }
.filter-toolbar .filter-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.filter-toolbar .filter-field:not(:has(input:not([hidden]), select:not([hidden]))) { display: none; }
.filter-toolbar label + select, .filter-toolbar label + input { margin-left: 0; }
.filter-toolbar .date-range { display: flex; flex-wrap: wrap; gap: 16px; min-width: 0; }
.filter-toolbar input:not([type='radio']):not([type='checkbox']), .filter-toolbar select { min-height: 40px; max-width: 100%; }
.filter-toolbar .summary-field { min-width: 0; gap: 6px; }
.filter-toolbar .summary-range { gap: 10px; }
@media (min-width: 721px) {
  .filter-toolbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
  .filter-toolbar .date-range { display: contents; }
  .filter-toolbar input:not([type='radio']):not([type='checkbox']), .filter-toolbar select { width: 100%; min-width: 0; }
  .filter-toolbar .export-btn { margin-left: 0; justify-self: start; }
  #chatSummaryToolbar { display: flex; align-items: flex-end; }
  #chatSummaryToolbar .filter-panel > .summary-field:first-child { order: -2; }
  #chatSummaryToolbar .summary-scope { order: -1; }
  #chatSummaryToolbar .summary-field-grow { flex: 1 1 240px; }
  #chatSummaryToolbar .summary-export { flex-basis: 100%; margin-left: 0; justify-content: flex-end; }
}
.empty-reset { display: block; margin: 10px auto 0; min-height: 40px; }
.table-wrap { position: relative; min-height: 120px; }
.list-state { position: absolute; top: 0; right: 0; z-index: 2; padding: 8px 12px; background: var(--content-bg); color: var(--secondary); font-size: 13px; }
.list-state[hidden] { display: none; }
.first-loading .data-table { visibility: hidden; }
.first-loading .list-state { inset: 0; display: grid; place-content: center; min-height: 120px; }
.list-state.is-error { position: relative; color: var(--danger); background: var(--danger-soft); }
.initial-error .data-table { display: none; }
@media (max-width: 720px) {
  .view-body { padding: 12px 10px 24px; }
  .view-body > .toolbar, .summary-filter { padding: 12px; }
  .filter-toolbar .filter-top { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; align-items: center; }
  .filter-top > input[type='search'], .filter-top > .summary-field { width: 100%; min-width: 0; flex: 1 1 160px; }
  .filter-top .summary-field-label { display: none; }
  .filter-top input[type='search'] { width: 100%; }
  .filter-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 12px; border: 1px solid var(--control-border); border-radius: 7px; background: var(--content-bg); color: var(--text); cursor: pointer; }
  .filter-toggle[aria-expanded='true'] { background: var(--primary-soft); border-color: var(--primary); color: var(--primary-ink); }
  .filter-toolbar .filter-panel { display: none; }
  .filter-toolbar.filters-open .filter-panel { display: flex; flex-direction: column; gap: 12px; width: 100%; padding-top: 12px; margin-top: 4px; border-top: 1px solid var(--border); }
  .filter-panel .filter-field { display: flex; flex-direction: column; gap: 5px; }
  .filter-panel .filter-field:not(:has(input, select)) { display: none; }
  .filter-panel input:not([type='radio']):not([type='checkbox']), .filter-panel select { width: 100%; min-width: 0; }
  .filter-panel .summary-range { flex-wrap: wrap; }
  .filter-panel .summary-field-grow, .filter-panel .summary-field { flex: none; }
  .filter-panel .export-btn { align-self: flex-start; margin-left: 0; }
  .filter-chips:not([hidden]) { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; }
  .filter-chip { max-width: 100%; min-height: 32px; text-align: left; overflow-wrap: anywhere; padding: 6px 9px; border: 0; border-radius: 5px; background: var(--primary-soft); color: var(--primary-ink); cursor: pointer; font-size: 12px; }
  .filter-reset:not([hidden]) { display: inline-block; padding: 4px 0; min-height: 36px; }
  .stat-section .stat-label { min-height: 0; align-items: center; }
  .stat-section .stat-card { gap: 10px; }
  .stat-section { padding: 14px 12px; }
  .form-note, .summary-text { overflow-wrap: anywhere; }
  .responsive-data, .responsive-data tbody { display: block; width: 100%; min-width: 0; }
  .responsive-data thead { display: none; }
  .responsive-data tbody tr { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 12px; padding: 16px 12px; border-bottom: 1px solid var(--border); }
  .responsive-data tbody tr:last-child { border-bottom: 0; }
  .responsive-data tbody tr:hover td, .responsive-data tbody tr.is-selected td { background: transparent; }
  .responsive-data tbody tr.is-selected { background: var(--primary-soft); }
  .data-card .responsive-data td, .responsive-data td { display: block; border: 0; padding: 0; min-width: 0; text-align: left; overflow-wrap: anywhere; max-width: 100%; }
  .responsive-data td[data-mobile-cell='title'] { order: 0; flex: 1 1 100%; font-size: 15px; line-height: 1.5; }
  .responsive-data td[data-mobile-cell='metric'] { order: 1; flex: 1 1 70px; font-size: 16px; font-weight: 600; white-space: normal; }
  .responsive-data td[data-mobile-cell='time'], .responsive-data td[data-mobile-cell='action'] { flex: 1 1 100%; white-space: normal; }
  .responsive-data td[data-mobile-cell='time'] { order: 2; font-size: 12px; }
  .responsive-data td[data-mobile-cell='action'] { order: 4; }
  .responsive-data td[data-mobile-cell='detail'] { display: none; }
  .responsive-data .details-open td[data-mobile-cell='detail'] { order: 3; display: block; flex: 1 1 100%; font-size: 13px; white-space: normal; }
  .responsive-data td:not([data-mobile-cell='title']):not([data-mobile-cell='action'])::before { content: attr(data-label); display: block; color: var(--secondary); font-size: 12px; font-weight: 400; margin-bottom: 3px; }
  .responsive-data .row-details { display: block; min-height: 36px; margin-top: 4px; padding: 4px 0; border: 0; background: transparent; color: var(--primary-ink); font-size: 12px; cursor: pointer; }
  .responsive-data .empty-row { display: block; padding: 0; }
  .data-card .responsive-data .empty-row td, .responsive-data .empty-row td { display: grid; align-content: center; width: 100%; min-height: 140px; height: auto; padding: 24px 16px; text-align: center; }
  .responsive-data .action-row { flex-wrap: wrap; }
  .responsive-data .pending-actions .link-btn { margin-left: 0; }
  .table-wrap:has(.responsive-data) { overflow: visible; }
}

/* ---------- Ringkasan: visual interaktif (js/summary-viz.js) ---------- */
/* Dua warna seri (masuk/keluar) divalidasi CVD untuk kedua tema. */
:root { --series-in: #2a78d6; --series-out: #eb6834; --series-agent: #1a9b7b; --series-bot: #8a5cd6; --chart-grid: #e9ebed; --chart-axis: #c4cad0; }
html[data-theme='dark'] { --series-in: #3987e5; --series-out: #d95926; --series-agent: #27b08e; --series-bot: #9d74e3; --chart-grid: #263342; --chart-axis: #3a4b5d; }

.swatch { display: inline-block; width: 10px; height: 10px; border-radius: 3px; flex: none; }
.swatch-in { background: var(--series-in); }
.swatch-out { background: var(--series-out); }
.swatch-agent { background: var(--series-agent); }
.swatch-bot { background: var(--series-bot); }

.stat-value.is-bumped { animation: stat-bump 0.7s ease-out; }
@keyframes stat-bump { 0% { color: var(--primary); } 100% { color: inherit; } }

/* Kartu yang terhubung ke grafik: bisa diklik, dengan sparkline 30 hari. */
.stat-card.is-linked { cursor: pointer; border-radius: 8px; transition: background-color 0.15s; }
.stat-card.is-linked:hover { background: var(--hover); box-shadow: 0 0 0 8px var(--hover); }
.stat-card.is-linked:focus-visible { outline: 2px solid var(--primary); outline-offset: 6px; }
.stat-spark { display: block; width: 100%; height: 28px; margin-top: 6px; overflow: visible; }
.stat-spark .spark-line { fill: none; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.stat-spark .spark-area { stroke: none; opacity: 0.14; }
.stat-spark.tone-in .spark-line { stroke: var(--series-in); }
.stat-spark.tone-in .spark-area { fill: var(--series-in); }
.stat-spark.tone-out .spark-line { stroke: var(--series-out); }
.stat-spark.tone-out .spark-area { fill: var(--series-out); }

/* Bar komposisi masuk vs keluar di bawah tiap section. */
.split-bar { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.split-bar[hidden] { display: none; }
.split-track { display: flex; gap: 2px; height: 8px; border-radius: 4px; overflow: hidden; background: var(--secondary-bg); }
.split-track span { flex: 1 1 0; min-width: 2px; transition: flex-grow 0.6s ease; }
.split-in { background: var(--series-in); border-radius: 4px 0 0 4px; }
.split-out { background: var(--series-out); border-radius: 0 4px 4px 0; }
.split-agent { background: var(--series-agent); border-radius: 4px 0 0 4px; }
.split-bot { background: var(--series-bot); border-radius: 0 4px 4px 0; }
.split-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: 13px; color: var(--secondary-strong); }
.split-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.split-legend b { color: var(--text); font-weight: 600; font-variant-numeric: tabular-nums; }
.split-legend .split-ratio { margin-left: auto; }

/* Grafik tren harian. */
.trend-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; }
.trend-head h2 { margin-bottom: 2px; }
.trend-sub { margin: 0; font-size: 13px; color: var(--secondary); }
.seg { display: inline-flex; padding: 3px; gap: 2px; border-radius: 8px; background: var(--secondary-bg); }
.seg-btn { border: 0; background: transparent; color: var(--secondary-strong); font: 500 13px/1 var(--font); padding: 8px 12px; border-radius: 6px; cursor: pointer; }
.seg-btn:hover { color: var(--text); }
.seg-btn.is-active { background: var(--content-bg); color: var(--primary-ink); box-shadow: 0 1px 2px #0002; }
.seg-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }

.trend-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0 12px; }
.trend-kpi { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 8px; background: var(--secondary-bg); min-width: 0; }
.trend-kpi span { font-size: 12px; color: var(--secondary-strong); }
.trend-kpi strong { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.trend-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; }
.legend-chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border: 1px solid var(--border); border-radius: 999px; background: transparent; color: var(--text); font: 13px/1.2 var(--font); cursor: pointer; transition: opacity 0.15s; }
.legend-chip:hover { background: var(--hover); }
.legend-chip.is-off { opacity: 0.45; }
.legend-chip.is-off .swatch { background: transparent; box-shadow: inset 0 0 0 1.5px var(--secondary); }
.legend-chip:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
.trend-hint { margin-left: auto; font-size: 12px; color: var(--secondary); }

.trend-chart { position: relative; width: 100%; touch-action: pan-y; border-radius: 6px; }
.trend-chart:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; }
.trend-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.trend-grid line { stroke: var(--chart-grid); stroke-width: 1; }
.trend-grid line.baseline { stroke: var(--chart-axis); }
.trend-grid text { fill: var(--secondary); font: 11px var(--font); font-variant-numeric: tabular-nums; }
.trend-line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.trend-line.is-drawing { transition: stroke-dashoffset 0.9s ease-out; }
.trend-area { stroke: none; opacity: 0.1; }
.series-in .trend-line, .cross-dot.series-in { stroke: var(--series-in); }
.series-in .trend-area, .series-in .trend-dot { fill: var(--series-in); }
.series-out .trend-line, .cross-dot.series-out { stroke: var(--series-out); }
.series-out .trend-area, .series-out .trend-dot { fill: var(--series-out); }
.cross-line { stroke: var(--secondary); stroke-width: 1; stroke-dasharray: 3 3; }
.cross-dot { fill: var(--content-bg); stroke-width: 2.5; }

.trend-tip { position: absolute; z-index: 5; min-width: 170px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--content-bg); color: var(--text); box-shadow: 0 4px 14px #0002; font-size: 13px; pointer-events: none; }
.trend-tip[hidden] { display: none; }
.tip-date { margin-bottom: 6px; font-weight: 600; }
.tip-row { display: flex; align-items: center; gap: 7px; padding: 2px 0; color: var(--secondary-strong); }
.tip-row b { margin-left: auto; padding-left: 14px; color: var(--text); font-variant-numeric: tabular-nums; }
.tip-muted { margin-top: 4px; padding-top: 6px; border-top: 1px solid var(--border); }

.trend-table { margin-top: 10px; font-size: 13px; }
.trend-table summary { cursor: pointer; color: var(--primary-ink); width: fit-content; }
.trend-table .table-wrap { max-height: 280px; overflow: auto; margin-top: 8px; }

@media (max-width: 900px) {
  .trend-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trend-hint { display: none; }
}
@media (max-width: 720px) {
  .trend-head { flex-direction: column; }
  .seg { width: 100%; }
  .seg-btn { flex: 1; min-height: 36px; }
  .stat-section .stat-card.is-linked { flex-wrap: wrap; }
  .stat-section .stat-card.is-linked .stat-spark { flex-basis: 100%; margin-top: 0; }
  .split-legend .split-ratio { margin-left: 0; flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .stat-value.is-bumped { animation: none; }
  .split-track span, .trend-line.is-drawing { transition: none; }
}

/* ---------- Bot BotFather (admin) ---------- */
#view-bot-father .settings-field textarea, #view-pengaturan-bot .settings-field textarea { width: 100%; box-sizing: border-box; min-height: 72px; padding: 8px 10px; font-size: 14px; color: var(--text); background: var(--app-bg); border: 1px solid var(--border); border-radius: var(--radius-sm); resize: vertical; }
#view-bot-father .bf-test-answer { margin-top: 12px; padding: 10px 12px; white-space: pre-wrap; background: var(--app-bg); border-radius: var(--radius-sm); }
#view-bot-father .bf-status-error { display: block; margin-top: 4px; font-size: 12px; color: var(--danger); max-width: 36ch; }
#view-bot-father .bf-actions { white-space: nowrap; text-align: right; }
#view-bot-father .bf-actions .link-btn + .link-btn { margin-left: 10px; }
#view-bot-father .bf-actions .bf-delete { color: var(--danger); }
#view-bot-father .settings-warn { margin: 0 0 12px; }

/* Tab di menu Auto-Reply. */
.ar-tabs { margin-bottom: 16px; width: fit-content; max-width: 100%; }
.ar-tabs button { font: 500 14px/1.2 var(--font); padding: 8px 14px; }
.ar-tabs button:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
[data-ar-pane][hidden] { display: none; }
@media (max-width: 720px) {
  .ar-tabs { width: 100%; flex-wrap: nowrap; }
  .ar-tabs button { flex: 1; min-height: 36px; padding: 8px 6px; white-space: nowrap; }
}
