/* MiniCRM Vivid Duo — Flat Solid (no gradients)
   — Klare, satte Farben ohne Verläufe. Duotone (Blau × Lime), wenig Weiß.
   — Paste AFTER Bootstrap. Unterstützt html[data-theme="dark"].
*/

/* =========================
   Tokens — flache, feste Farben
========================= */
:root{
  /* Brand (Duotone) */
  --brand-primary:#2563eb;   /* blue-600  */
  --brand-secondary:#84cc16; /* lime-500  */
  --brand-contrast:#ffffff;

  /* Surfaces & Text */
  --bg-page:#eff4ff;   /* soft blue tint */
  --text:#0b1220;      /* near-black slate */
  --muted:#46546a;     /* slate-600 */

  /* Feste Flächen (keine Gradients) */
  --card:#eef2ff;      /* flat tinted card */
  --accent:#e0e7ff;    /* flat accent */
  --border:#cbd5e1;    /* gray-300 */

  /* States */
  --success:#16a34a; --danger:#dc2626; --warning:#d97706; --info:#0284c7;

  /* Ramps */
  --radius-sm:12px; --radius-md:18px; --radius-lg:28px;
  --shadow-sm:0 8px 18px rgba(2,8,23,.10);
  --shadow-md:0 14px 28px rgba(2,8,23,.14);
  --shadow-lg:0 24px 56px rgba(2,8,23,.18);

  --ring:rgba(37,99,235,.35); /* blue-600 @35% */
  --ring-weak:rgba(37,99,235,.22);

  --ease:cubic-bezier(.22,1,.36,1);
  --speed-fast:.16s; --speed:.26s;
}

html[data-theme="dark"]{
  --bg-page:#0b1220;
  --text:#e6eaf2; --muted:#9aa4b2;
  --card:#0f172a;
  --accent:#13223a;
  --border:#1f2a3a;
  --ring:rgba(132,204,22,.38); /* lime-500 @38% */
  --ring-weak:rgba(132,204,22,.22);
  --shadow-sm:0 8px 18px rgba(0,0,0,.38);
  --shadow-md:0 14px 28px rgba(0,0,0,.46);
  --shadow-lg:0 24px 56px rgba(0,0,0,.58);
}

/* =========================
   Base
========================= */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; color:var(--text); background-color:var(--bg-page); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale}
:where(p,li,dd){color:var(--text)}
:where(.text-muted,.muted){color:var(--muted)!important}
:where(h1,h2,h3){letter-spacing:.2px}
.container{padding-top:84px}
@media (prefers-reduced-motion: reduce){*{transition:none!important; animation:none!important}}

/* Links */
a{color:var(--brand-primary); text-decoration:none}
.a-strong a{color:#1d4ed8} /* slightly deeper */
a:hover{opacity:.95}
a:focus-visible{outline:0; box-shadow:0 0 0 .3rem var(--ring)}

/* =========================
   Navbar — solide Flächen
========================= */
.navbar{background-color:var(--brand-primary)!important; box-shadow:var(--shadow-md); border-bottom:1px solid rgba(255,255,255,.14)}
.navbar .navbar-brand{font-weight:800; letter-spacing:.3px; color:var(--brand-contrast)}
.navbar .nav-link{color:rgba(255,255,255,.92)!important}
.navbar .nav-link:hover{color:#fff!important}
.navbar .nav-link.active,.navbar .show>.nav-link{color:#fff!important; border-bottom:3px solid var(--brand-secondary)}
.navbar .btn{border-color:rgba(255,255,255,.7)!important; color:#fff}

/* =========================
   Cards — flach & farbig
========================= */
.card{border:1px solid var(--border); background-color:var(--card); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); transition:transform var(--speed) var(--ease), box-shadow var(--speed) var(--ease), border-color var(--speed) var(--ease)}
.card:hover{transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:#94a3b8}
.card:active{transform:translateY(0)}
.card.card-plain{background-color:#ffffff}
.card .card-title{font-weight:800}
.card .card-header{background-color:var(--accent); border-bottom:1px solid var(--border); font-weight:800}
.card .list-group-item{background-color:transparent}

/* Elevated Pane */
.elevated{background-color:var(--accent); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg)}

/* =========================
   Tables — klare Blöcke
========================= */
.table{--tbl-pad:.9rem}
.table th,.table td{padding:var(--tbl-pad) 1rem; vertical-align:middle}
.table thead th{background-color:var(--brand-primary); color:var(--brand-contrast); border-bottom:1px solid var(--border); font-weight:800}
.table tbody tr{transition:background-color var(--speed-fast) var(--ease)}
.table tbody tr:hover{background-color:#e8f0ff}
.table.table-striped>tbody>tr:nth-of-type(odd)>*{background-color:#f0f6ff}
.table.sticky-header thead th{position:sticky; top:0; z-index:2}
.table.table-compact{--tbl-pad:.6rem}

/* =========================
   Badges & Pills
========================= */
.badge{border-radius:999px; padding:.45rem .8rem; font-weight:800; border:1px solid color-mix(in srgb, var(--text) 16%, transparent)}
.badge-primary{background-color:#dbeafe; color:#0b1220}
.badge-lime{background-color:#ecfccb; color:#0b1220}
.text-bg-light{background-color:var(--accent)!important; color:var(--text)!important}

/* =========================
   Buttons — ohne Verläufe
========================= */
.btn{border-radius:calc(var(--radius-sm) - 2px); font-weight:800; letter-spacing:.2px; transition:transform var(--speed-fast) var(--ease), box-shadow var(--speed-fast) var(--ease), filter var(--speed-fast) var(--ease)}
.btn:active{transform:translateY(1px)}

.btn-primary{background-color:var(--brand-primary)!important; border-color:var(--brand-primary)!important; color:var(--brand-contrast)!important; box-shadow:0 8px 18px rgba(37,99,235,.28)}
.btn-primary:hover{filter:brightness(.97)}
.btn-primary:focus-visible{box-shadow:0 0 0 .32rem var(--ring)!important}

.btn-outline-primary{color:var(--brand-primary)!important; border-color:var(--brand-primary)!important; background-color:transparent}
.btn-outline-primary:hover{background-color:#e6efff}

.btn-success{background-color:var(--success); border-color:var(--success); color:#f0fdf4}
.btn-danger{background-color:var(--danger); border-color:var(--danger); color:#fff1f2}

.btn-ghost{background-color:transparent; border-color:transparent; color:var(--text)}
.btn-ghost:hover{background-color:#edf2ff}

/* =========================
   Forms — klare Inputs
========================= */
.form-control,.form-select,.form-check-input{border:1px solid var(--border); background-color:#f7f9ff; color:var(--text); border-radius:var(--radius-sm)}
.form-control::placeholder{color:color-mix(in srgb, var(--muted) 66%, transparent)}
.form-control:focus,.form-select:focus{border-color:#94a3b8; box-shadow:0 0 0 .3rem var(--ring)}
.input-group-text{background-color:#e9efff; border-color:var(--border)}
.form-check-input:focus{box-shadow:0 0 0 .22rem var(--ring-weak)}
.form-check-input:checked{background-color:var(--brand-primary); border-color:var(--brand-primary)}

/* =========================
   Alerts — satte Blöcke
========================= */
.alert{border-radius:var(--radius-sm); border:1px solid color-mix(in srgb, var(--text) 14%, transparent); box-shadow:var(--shadow-sm)}
.alert-success{background-color:#d1fae5; border-color:#10b981; color:#065f46}
.alert-danger{background-color:#fee2e2; border-color:#ef4444; color:#7f1d1d}
.alert-warning{background-color:#fef3c7; border-color:#f59e0b; color:#78350f}
.alert-info{background-color:#dbeafe; border-color:#3b82f6; color:#0c4a6e}

/* =========================
   Breadcrumbs / Pagination
========================= */
.breadcrumb .breadcrumb-item+.breadcrumb-item::before{color:var(--muted)}
.pagination .page-link{border-radius:12px; color:var(--text)}
.pagination .page-link:focus{box-shadow:0 0 0 .22rem var(--ring)}
.pagination .page-item.active .page-link{background-color:var(--brand-primary); border-color:var(--brand-primary)}

/* =========================
   Helpers
========================= */
.shadow-token{box-shadow:var(--shadow-md)!important}
.rounded-token{border-radius:var(--radius-md)!important}
.divider{height:1px; background-color:var(--border); margin:1rem 0}
.kbd, kbd{background-color:#e7efff; border:1px solid var(--border); border-bottom-width:2px; padding:.15rem .38rem; border-radius:8px}
code{background-color:#eef2ff; border-radius:8px; padding:.15rem .4rem}

/* =========================
   Print
========================= */
@media print{
  body{background:#fff; color:#000}
  .navbar,.btn,.alert,.toast{display:none!important}
  .card{box-shadow:none; border-color:#c9c9c9; background:#fff}
  .table thead th{background:#e5e7eb!important; color:#111827!important}
}
