/*
    Doqstream app styles — Redwood pane design
*/

/* ── Default demo styles (keep for header logo) ── */
.demo-oracle-icon {
    width:137px;
    height:18px;
    content:url("images/oracle_logo.svg")
}
html:not([dir="rtl"]) .demo-oracle-icon { padding-right:4px }
html[dir="rtl"] .demo-oracle-icon { padding-left:4px }
.demo-oracle-icon:before { display:inline }
.demo-appheader-avatar { width:24px; height:24px }
.demo-appheader-avatar:before { content:url("images/avatar_24px.png") }
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi), (min-resolution: 1.5dppx) {
    .demo-appheader-avatar:before {
        content:url("images/avatar_24px_2x.png");
        transform:translate(-25%, -25%) scale(0.5)
    }
}

/* ── Sub-header bar ── */
.dq-subheader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1.25rem;
  background: #607799;
  flex-shrink: 0;
  color: #fff;
}
.dq-subheader .oj-typography-body-md {
  color: #fff;
}

/* ── Pane layout ── */
.dq-pane-layout {
  flex: 1;
  display: flex;
  overflow: hidden;
  background: rgb(var(--oj-palette-neutral-rgb-20, 245, 244, 242));
}

/* ── Individual pane ── */
.dq-pane {
  display: flex;
  flex-direction: column;
  background: rgb(var(--oj-palette-neutral-rgb-0, 255, 255, 255));
  overflow: hidden;
}

.dq-pane-pdf {
  flex: 0 0 45%;
  min-width: 0;
}

.dq-pane-details {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fbf9f8;
}

/* ── Pane toolbar ── */
.dq-pane-toolbar {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.375rem 0.75rem;
  flex-shrink: 0;
  background: #fbf9f8;
}

.dq-pane-toolbar-divider {
  width: 1px;
  height: 1.25rem;
  background: rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .12);
  margin: 0 0.375rem;
}

/* ── Pane body ── */
.dq-pane-body {
  flex: 1;
  overflow: auto;
}

/* ── PDF canvas area ── */
.dq-pdf-canvas-area {
  background: rgb(var(--oj-palette-neutral-rgb-30, 241, 239, 237));
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 0;
}
.dq-pdf-canvas-area canvas {
  display: block;
  width: 100%;
}

/* ══════════════════════════════════════════════
   TABS
   ══════════════════════════════════════════════ */

.dq-tabs {
  display: flex;
  align-items: center;
  padding: 0 1rem;
  height: 40px;
  flex-shrink: 0;
  background: #fbf9f8;
}

.dq-tab {
  padding: 0.75rem 0.875rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 150ms, border-color 150ms;
  white-space: nowrap;
}
.dq-tab:hover {
  color: rgb(var(--oj-palette-neutral-rgb-180, 32, 30, 28));
}
.dq-tab--active {
  color: #325c72;
  border-bottom-color: #325c72;
}

.dq-tab-content {
  flex: 1;
  overflow-y: auto;
}

.dq-tab-status {
  padding: 2.5rem 1.75rem;
  text-align: center;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.8125rem;
}

/* ══════════════════════════════════════════════
   TIMELINE
   ══════════════════════════════════════════════ */

.dq-timeline {
  position: relative;
  padding: 1.5rem 1.75rem 1.5rem calc(1.75rem + 20px);
}
.dq-timeline::before {
  content: '';
  position: absolute;
  left: calc(1.75rem + 4px);
  top: 1.5rem;
  bottom: 1.5rem;
  width: 1.5px;
  background: rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .12);
}

.dq-timeline-event {
  position: relative;
  padding-bottom: 1.25rem;
}
.dq-timeline-event:last-child {
  padding-bottom: 0;
}
.dq-timeline-event:last-child::after {
  content: '';
  position: absolute;
  left: -20px;
  width: 14px;
  top: 1.25rem;
  bottom: 0;
  z-index: 1;
  background: rgb(var(--oj-palette-neutral-rgb-0, 255, 255, 255));
}

.dq-timeline-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid #6b9fff;
  background: #fff;
  flex-shrink: 0;
  position: absolute;
  left: -20px;
  top: 3px;
  z-index: 2;
  box-sizing: border-box;
}

.dq-timeline-pulse {
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 1.5px solid #6b9fff;
  opacity: 0;
  pointer-events: none;
  animation: dq-pulse 2s ease-out infinite;
}

@keyframes dq-pulse {
  0% { opacity: 0.6; transform: scale(0.8); }
  100% { opacity: 0; transform: scale(1.8); }
}

.dq-timeline-body {
  min-width: 0;
}

.dq-timeline-header {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
}

.dq-timeline-label {
  font-weight: 600;
}

.dq-timeline-event--active .dq-timeline-label {
  animation: dq-label-pulse 2s ease-in-out infinite;
}
@keyframes dq-label-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

.dq-timeline-time {
  margin-left: auto;
  font-size: 0.6875rem;
  font-weight: 400;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  white-space: nowrap;
}

.dq-timeline-message {
  font-size: 0.75rem;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  margin-top: 0.25rem;
  line-height: 1.4;
}

.dq-timeline-duration {
  font-size: 0.6875rem;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  margin-top: 0.125rem;
  opacity: 0.7;
}

/* ══════════════════════════════════════════════
   EXPENSE / SCAN DATA
   ══════════════════════════════════════════════ */

.dq-expense-section {
  padding: 1.25rem 1.75rem;
}

.dq-expense-title {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  margin: 0 0 0.75rem;
}

.dq-expense-fields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.dq-expense-field {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.dq-expense-field__label {
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  flex-shrink: 0;
}

.dq-expense-field__value {
  text-align: right;
  word-break: break-word;
  color: rgb(var(--oj-palette-neutral-rgb-180, 32, 30, 28));
}

.dq-expense-lines {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.dq-expense-line {
  padding: 0.75rem;
  background: rgb(var(--oj-palette-neutral-rgb-10, 251, 249, 248));
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

/* ══════════════════════════════════════════════
   AI / CONVERSATION
   ══════════════════════════════════════════════ */

.dq-conversation {
  padding: 1.25rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.dq-conv-msg {
  border-radius: 8px;
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  line-height: 1.5;
}

.dq-conv-msg--system {
  background: rgb(var(--oj-palette-neutral-rgb-20, 245, 244, 242));
}
.dq-conv-msg--user {
  background: rgb(var(--oj-palette-brand-rgb-20, 237, 246, 249));
}
.dq-conv-msg--assistant {
  background: rgb(var(--oj-palette-neutral-rgb-0, 255, 255, 255));
}

.dq-conv-msg__role {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  margin-bottom: 0.375rem;
}

.dq-conv-msg__block pre {
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
  font-family: inherit;
  font-size: 0.8125rem;
  line-height: 1.5;
}

.dq-conv-msg__block--tool_use pre,
.dq-conv-msg__block--tool_result pre,
.dq-conv-msg__block--tool_error pre {
  font-family: 'SF Mono', 'Menlo', 'Monaco', monospace;
  font-size: 0.6875rem;
  padding: 0.625rem;
  border-radius: 6px;
  background: rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .04);
  margin-top: 0.375rem;
  line-height: 1.5;
}

.dq-conv-msg__block--tool_error pre {
  color: #c9372c;
  background: #fef2f0;
}

/* ══════════════════════════════════════════════
   TRANSACTION FORM
   ══════════════════════════════════════════════ */

.dq-tx-header {
  display: flex;
  gap: 1.5rem;
  padding: 1.5rem 1.75rem;
}

.dq-tx-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  flex: 1;
  min-width: 0;
}

.dq-tx-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.dq-tx-field--error .dq-tx-field__input {
  border-color: #c9372c;
  box-shadow: 0 0 0 1px #c9372c;
}

.dq-tx-field__label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  display: flex;
  align-items: center;
  gap: 0.125rem;
}

.dq-tx-field__required {
  color: #c9372c;
}

.dq-tx-field__input {
  padding: 0.5rem 0.625rem;
  border: 1px solid rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .2);
  border-radius: 6px;
  font-size: 0.875rem;
  background: rgb(var(--oj-palette-neutral-rgb-0, 255, 255, 255));
  color: rgb(var(--oj-palette-neutral-rgb-180, 32, 30, 28));
  outline: none;
  transition: border-color 150ms, box-shadow 150ms;
  width: 100%;
  box-sizing: border-box;
}
.dq-tx-field__input:focus {
  border-color: #325c72;
  box-shadow: 0 0 0 2px rgba(50, 92, 114, .15);
}
.dq-tx-field__input:disabled {
  background: rgb(var(--oj-palette-neutral-rgb-10, 251, 249, 248));
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  cursor: not-allowed;
}

.dq-tx-field__confidence {
  height: 2px;
  background: rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .06);
  border-radius: 1px;
  margin-top: 2px;
}

.dq-tx-field__confidence-bar {
  display: block;
  height: 100%;
  background: rgb(var(--oj-palette-brand-rgb-80, 95, 162, 186));
  border-radius: 1px;
  transition: width 200ms;
}

/* ── OJ field overrides ── */
.dq-tx-oj-field {
  width: 100%;
}

/* ── Lookup dropdown ── */
.dq-lookup-wrap {
  position: relative;
  width: 100%;
}

.dq-lookup-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 100;
  background: rgb(var(--oj-palette-neutral-rgb-0, 255, 255, 255));
  border: 1px solid rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .15);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .12);
  margin-top: 2px;
  max-height: 200px;
  overflow-y: auto;
}

.dq-lookup-item {
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  color: rgb(var(--oj-palette-neutral-rgb-180, 32, 30, 28));
}
.dq-lookup-item:hover {
  background: rgb(var(--oj-palette-neutral-rgb-10, 251, 249, 248));
}

/* ── Totals ── */
.dq-tx-totals-wrap {
  width: 220px;
  flex-shrink: 0;
  align-self: flex-start;
}

.dq-tx-totals {
  padding: 1.25rem;
  margin-top: 0.25rem;
  background: rgba(50, 92, 114, .06);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.dq-tx-totals__row {
  display: flex;
  justify-content: space-between;
  font-size: 0.9375rem;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
}
.dq-tx-totals__row span:last-child {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.dq-tx-totals__row--total {
  font-weight: 700;
  font-size: 1rem;
  color: rgb(var(--oj-palette-neutral-rgb-180, 32, 30, 28));
  padding-top: 0.625rem;
  margin-top: 0.25rem;
}

/* ── Line set tabs ── */
.dq-lineset-tabs {
  display: flex;
  gap: 0;
  padding: 0 1.75rem;
}

.dq-lineset-tab {
  padding: 0.625rem 0.75rem;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 150ms, border-color 150ms;
}
.dq-lineset-tab:hover {
  color: rgb(var(--oj-palette-neutral-rgb-180, 32, 30, 28));
}
.dq-lineset-tab--active {
  color: #325c72;
  border-bottom-color: #325c72;
}

.dq-lineset-table-wrap {
  overflow-x: auto;
  padding: 0.75rem 1.75rem 1.75rem;
}

.dq-lineset-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}

.dq-lineset-table th {
  text-align: left;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  padding: 0.5rem 0.625rem;
  white-space: nowrap;
}

.dq-lineset-table td {
  padding: 0.25rem 0.375rem;
}

.dq-lineset-input[data-amount-key],
.dq-lineset-input[data-field-key="taxCode"] {
  max-width: 110px;
}

.dq-lineset-input {
  width: 100%;
  padding: 0.3rem 0.5rem;
  border: 1px solid rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .15);
  border-radius: 4px;
  font-size: 0.75rem;
  background: rgb(var(--oj-palette-neutral-rgb-0, 255, 255, 255));
  color: rgb(var(--oj-palette-neutral-rgb-180, 32, 30, 28));
  outline: none;
  transition: border-color 150ms, box-shadow 150ms;
  box-sizing: border-box;
}
.dq-lineset-input:hover {
  border-color: rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .25);
}
.dq-lineset-input:focus {
  border-color: #325c72;
  box-shadow: 0 0 0 1.5px rgba(50, 92, 114, .15);
}
.dq-lineset-input:disabled {
  background: rgb(var(--oj-palette-neutral-rgb-10, 251, 249, 248));
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  cursor: not-allowed;
}

/* ── Line item add/remove ── */
.dq-lineset-delete-cell {
  text-align: center;
  width: 36px;
  padding: 0.125rem !important;
}

.dq-lineset-add {
  padding: 0.75rem 1.75rem;
}

.dq-btn-add-row {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #325c72;
  background: none;
  border: 1px solid rgba(50, 92, 114, .4);
  border-radius: 6px;
  cursor: pointer;
  transition: background 150ms;
}
.dq-btn-add-row:hover {
  background: rgba(50, 92, 114, .06);
}

.dq-btn-delete-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: none;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  color: rgb(var(--oj-palette-neutral-rgb-160, 58, 54, 50));
  transition: background 150ms, color 150ms;
}
.dq-btn-delete-row:hover {
  background: rgba(var(--oj-palette-neutral-rgb-190, 22, 21, 19), .08);
  color: #c9372c;
}

/* ── Transaction actions ── */
.dq-tx-actions {
  display: flex;
  gap: 0.5rem;
  padding: 1.25rem 1.75rem;
  flex-wrap: wrap;
}
