/*
  Cooper AI Console – Dark Theme (Red Accent)
  Consistent styling on top of Bootstrap 5.
*/

:root{
  /* Dark base with a subtle red tint (avoid blue cast). */
  --bg:#060507;
  --surface: rgba(24,10,12,.70);
  --surface-2: rgba(14,6,7,.78);
  --border: rgba(255,255,255,.10);
  --text:#e5e7eb;
  --muted: rgba(229,231,235,.70);

  /* Bright red accent */
  --accent:#ef4444;
  --accent-2:#dc2626;
  --accent-soft: rgba(239,68,68,.18);
}

body{
  background:
    radial-gradient(1100px circle at 18% -12%, rgba(239,68,68,.14), transparent 60%),
    radial-gradient(900px circle at 82% -18%, rgba(220,38,38,.10), transparent 55%),
    var(--bg) !important;
  color:var(--text) !important;
  font-size:0.92rem;
}

a{ color:rgba(252,165,165,.95); }

a:hover{ color:#fecaca; }

.navbar{
  backdrop-filter: blur(10px);
  background: rgba(0,0,0,.55) !important;
  border-bottom:1px solid rgba(239,68,68,.14) !important;
}

.navbar-brand{ font-weight:600; letter-spacing:.2px; }

.navbar .nav-link{ color:rgba(229,231,235,.78) !important; }
.navbar .nav-link:hover{ color:var(--text) !important; }
.navbar .nav-link.active{ color:var(--text) !important; position:relative; }
.navbar .nav-link.active::after{
  content:"";
  position:absolute;
  left:0.75rem;
  right:0.75rem;
  bottom:0.15rem;
  height:2px;
  border-radius:999px;
  background:var(--accent);
  opacity:.9;
}

.card{
  background:linear-gradient(180deg, rgba(239,68,68,.06), transparent 28%), var(--surface) !important;
  border:1px solid rgba(239,68,68,.16) !important;
  border-radius:16px !important;
  box-shadow:0 10px 25px rgba(0,0,0,.25);
}

.card-header{
  background:transparent !important;
  border-bottom:1px solid var(--border) !important;
}

.bg-secondary{ background:var(--surface) !important; }
.bg-dark{ background:var(--bg) !important; }
.border-secondary{ border-color: rgba(255,255,255,.14) !important; }

.form-control,
.form-select{
  background:var(--surface-2) !important;
  color:var(--text) !important;
  border:1px solid var(--border) !important;
  border-radius:12px !important;
}

.form-control::placeholder{ color: rgba(229,231,235,.45) !important; }

.form-control:focus,
.form-select:focus{
  border-color:rgba(239,68,68,.65) !important;
  box-shadow:0 0 0 .2rem var(--accent-soft) !important;
}

.btn{ border-radius:12px !important; }

.btn-primary{
  background-color:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
}

.btn-primary:hover,
.btn-primary:focus{
  background-color:var(--accent-2) !important;
  border-color:var(--accent-2) !important;
}

/* Map Bootstrap "info/primary" outline buttons to the accent color (red) */
.btn-outline-info,
.btn-outline-primary{
  color:var(--accent) !important;
  border-color:rgba(239,68,68,.70) !important;
}

.btn-outline-info:hover,
.btn-outline-primary:hover{
  background-color:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
}

.btn-outline-light{
  color:var(--text) !important;
  border-color:rgba(255,255,255,.28) !important;
}

.btn-outline-light:hover{
  background-color:rgba(255,255,255,.10) !important;
  border-color:rgba(255,255,255,.38) !important;
  color:var(--text) !important;
}

.btn-danger{
  background-color:var(--accent-2) !important;
  border-color:var(--accent-2) !important;
}

.btn-danger:hover{
  background-color:#b91c1c !important;
  border-color:#b91c1c !important;
}

.nav-tabs{ border-bottom:1px solid var(--border) !important; }

.nav-tabs .nav-link{
  color:rgba(229,231,235,.70) !important;
  border:none !important;
  border-radius:12px 12px 0 0 !important;
}

.nav-tabs .nav-link:hover{
  color:var(--text) !important;
  background:rgba(255,255,255,.06) !important;
}

.nav-tabs .nav-link.active{
  background:var(--accent-soft) !important;
  color:var(--text) !important;
  box-shadow: inset 0 -2px 0 var(--accent);
}

.table{ color:var(--text) !important; }

.table.table-dark{
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--border);
  color: var(--text);
}

.table thead th{
  color:var(--muted) !important;
  border-bottom:1px solid var(--border) !important;
}

.table td,
.table th{ border-top:1px solid var(--border) !important; }

.table-striped > tbody > tr:nth-of-type(odd) > *{
  --bs-table-accent-bg: rgba(255,255,255,.03);
}

.table-responsive{
  border-radius:14px;
  /* Allow horizontal scrolling on mobile; keep smooth scrolling. */
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling: touch;
  border:1px solid rgba(239,68,68,.14);
}

.table thead.sticky-top{
  position:sticky;
  top:0;
  z-index:5;
}

pre{
  font-size:0.78rem;
  white-space:pre-wrap;
  word-break:break-word;
}

.text-muted{ color:var(--muted) !important; }
.text-secondary{ color:rgba(229,231,235,.70) !important; }

/* Utility alias used in some templates */
.muted{ color:var(--muted) !important; }

.alert-success{
  background:rgba(20,83,45,.55) !important;
  border-color:rgba(34,197,94,.35) !important;
  color:#a7f3d0 !important;
}

.alert-danger{
  background:rgba(127,29,29,.55) !important;
  border-color:rgba(239,68,68,.35) !important;
  color:#fecaca !important;
}

.alert-warning{
  background:rgba(146,64,14,.40) !important;
  border-color:rgba(245,158,11,.35) !important;
  color:#fde68a !important;
}

details > summary{ cursor:pointer; color:rgba(229,231,235,.80); }

details > summary:hover{ color:var(--text); }

/* Letterhead (shareable ledgers) */
.letterhead{
  border:1px solid rgba(255,255,255,.12) !important;
  background:rgba(18,8,10,.55) !important;
  backdrop-filter: blur(6px);
  border-radius:14px;
  position:relative;
  overflow:hidden;
}

.letterhead::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:4px;
  background:linear-gradient(90deg, var(--accent), rgba(239,68,68,.15));
}

.letterhead .lh-title{
  font-size:1.25rem;
  font-weight:700;
  letter-spacing:.35px;
}

.letterhead .lh-tagline{
  color:var(--muted);
  font-size:0.85rem;
  margin-top:.1rem;
}

.letterhead .lh-rule{
  height:1px;
  background:var(--border);
  margin:.75rem 0 .65rem 0;
}

.letterhead .lh-label{
  color:var(--muted);
  font-weight:600;
  margin-right:.35rem;
}

.letterhead .lh-kv{
  color:rgba(229,231,235,.88);
}

.letterhead .lh-line{
  color:rgba(229,231,235,.88);
  line-height:1.35;
  margin-bottom:.25rem;
}

/* Share / portal ledger lock notice */
.ledger-lock-banner{
  border:1px solid rgba(239,68,68,.45);
  background:rgba(239,68,68,.12);
  border-radius:14px;
  padding:.85rem 1rem;
  margin:1rem;
}

/* -------------------------------------------------------------------------
   Share pages should look clean and light (professional for customers) even
   if the main application uses a dark theme.
---------------------------------------------------------------------------*/
body.share-page{
  background:#f8fafc !important;
  color:#111827 !important;
}

body.share-page a{ color:#b91c1c; }
body.share-page a:hover{ color:#7f1d1d; }

body.share-page .card{
  background:#fff !important;
  border:1px solid #e5e7eb !important;
  box-shadow:0 10px 25px rgba(0,0,0,.08);
}

body.share-page .card-header{
  border-bottom:1px solid #e5e7eb !important;
}

body.share-page .muted,
body.share-page .text-muted{ color:rgba(17,24,39,.70) !important; }

body.share-page .bg-secondary{
  background:#f3f4f6 !important;
  color:#111827 !important;
}

body.share-page .letterhead{
  background:#fff !important;
  border:1px solid #e5e7eb !important;
}

body.share-page .letterhead::before{
  height:3px;
  background:linear-gradient(90deg, var(--accent), rgba(239,68,68,.25));
}

body.share-page .letterhead .lh-tagline,
body.share-page .letterhead .lh-label{ color:rgba(17,24,39,.65) !important; }

body.share-page .letterhead .lh-line,
body.share-page .letterhead .lh-kv{ color:rgba(17,24,39,.90) !important; }

body.share-page .letterhead .lh-rule{ background:#e5e7eb; }

body.share-page .share-table{
  margin:0;
  color:#111827 !important;
}

body.share-page .share-table thead th{
  background:#f3f4f6;
  color:#374151 !important;
  border-bottom:1px solid #e5e7eb !important;
}

body.share-page .share-table td,
body.share-page .share-table th{
  border-color:#e5e7eb !important;
}

body.share-page .table-striped > tbody > tr:nth-of-type(odd) > *{
  --bs-table-accent-bg: rgba(17,24,39,.03);
}

.dropdown-menu{
  background:rgba(10,5,6,.98) !important;
  border:1px solid var(--border) !important;
  border-radius:14px !important;
  box-shadow:0 16px 30px rgba(0,0,0,.35);
}

.dropdown-item{ color:rgba(229,231,235,.86) !important; }
.dropdown-item:hover,
.dropdown-item:focus{ background:rgba(239,68,68,.12) !important; color:var(--text) !important; }

@media print{
  .navbar,.btn,.no-print{ display:none !important; }
  body{ background:#fff !important; color:#000 !important; }
  .card{ box-shadow:none !important; }
  .letterhead{ border:1px solid #999 !important; background:#fff !important; }

  /* Force legible, professional print output (avoid dark table themes). */
  .table, .table *{ color:#000 !important; }
  .table-dark{
    --bs-table-color: #000 !important;
    --bs-table-bg: transparent !important;
    --bs-table-border-color: #999 !important;
    --bs-table-striped-bg: rgba(0,0,0,.04) !important;
    --bs-table-striped-color: #000 !important;
    --bs-table-active-bg: rgba(0,0,0,.06) !important;
    --bs-table-active-color: #000 !important;
    --bs-table-hover-bg: rgba(0,0,0,.03) !important;
    --bs-table-hover-color: #000 !important;
  }
  .table-dark th, .table-dark td{ background: transparent !important; }
  .table-dark thead th{ border-bottom:1px solid #999 !important; }
  .table-dark td, .table-dark th{ border-color:#999 !important; }

  .badge{ background:#fff !important; color:#000 !important; border:1px solid #999 !important; }

  .ledger-lock-banner, .alert{ background:#fff !important; color:#000 !important; border:1px solid #999 !important; }

  a, a:visited{ color:#000 !important; text-decoration:none !important; }
}
