/* Core helpers shared by every module (loaded after app.css). */
.ct-stack { display: grid; gap: 10px; align-content: start; min-width: 0; }
.ct-codes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ct-qr { background: #fff; border: 1px solid var(--line2); border-radius: 4px; padding: 8px; width: max-content; margin: 8px 0 12px; }
.ct-qr svg { display: block; width: 180px; height: 180px; }
.ct-ol { margin: 0 0 10px; padding-left: 20px; display: grid; gap: 4px; }
.inline-form { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.inline-form .ct-field { flex: 1 1 200px; margin: 0; }
.ct-link { background: none; border: 0; padding: 0; color: var(--blue); cursor: pointer; font: inherit; }
.ct-link:hover { text-decoration: underline; }
.ct-amount { font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.ct-amount.in { color: var(--okFg); } .ct-amount.out { color: var(--text); }
.ct-captcha { display: flex; gap: 10px; align-items: flex-end; }
.ct-captcha img { border: 1px solid var(--line2); border-radius: 4px; height: 40px; }
@media (max-width: 900px) { .ct-g12 > [class*="ct-s"] { grid-column: span 12; } }

/* Narrow phones: keep the top bar inside the viewport. */
@media (max-width: 560px) {
    .ct-top-actions { gap: 4px; min-width: 0; }
    .ct-top-actions .ct-session { display: none; }
    .ct-top-actions .ct-topbtn .lbl { display: none; }
    .ct-top-actions .ct-topbtn { padding-left: 8px; padding-right: 8px; }
}

.ct-pill.neutral { background: #eaf2f9; color: #2f5f88; }

/* Screen-reader-only text; pages that hide the toolbar keep their h1 this way. */
.ct-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* A second line under the top-bar title (the dashboard's date and currency). */
.ct-top-title.has-note { line-height: 1.25; }
.ct-top-note { display: block; margin-top: 3px; font-size: 12px; color: #111111; overflow: hidden; text-overflow: ellipsis; }
.ct-top-note i { color: #f2c14e; margin-right: 4px; }
.ct-main > .ct-sr + .ct-content { padding-top: 12px; }

/* Shared lists (App\Support\Grid, shared/grid). */
.gd-bulk { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 12px; border-bottom: 1px solid #e0e7ed; }
.gd-bulk select { max-width: 280px; }
.gd-tick { width: 28px; }
.ct-tbl td.nw, .ct-tbl th.nw { white-space: nowrap; }
.gd-saved { flex-wrap: wrap; gap: 6px; }

/* Shared kanban boards (shared/kanban). */
.kb-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 1fr); gap: 12px; overflow-x: auto; position: relative; padding-bottom: 6px; }
.kb-col { background: #eef3f8; border: 1px solid #d6e0e9; border-radius: 8px; min-width: 0; display: flex; flex-direction: column; }
.kb-col header { display: flex; justify-content: space-between; align-items: center; padding: 9px 11px; border-bottom: 3px solid #111111; font-size: 12.5px; }
.kb-col.ok header { border-bottom-color: #18ae73; } .kb-col.warn header { border-bottom-color: #f5a524; } .kb-col.bad header { border-bottom-color: #df4152; } .kb-col.info header { border-bottom-color: var(--brand-primary); }
.kb-n { background: #fff; border-radius: 10px; padding: 1px 8px; font-weight: 700; }
.kb-cards { display: grid; gap: 8px; padding: 9px; }
.kb-card { display: block; background: #fff; border: 1px solid #d6e0e9; border-radius: 6px; padding: 8px 10px; color: inherit; font-size: 12.5px; }
.kb-card:hover { border-color: var(--brand-primary); text-decoration: none; }
.kb-card b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kb-card span { display: block; color: var(--muted); overflow-wrap: anywhere; }
.kb-card small { display: block; margin-top: 4px; color: var(--muted); }
.kb-card.bad { box-shadow: inset 3px 0 0 #df4152; } .kb-card.warn { box-shadow: inset 3px 0 0 #f5a524; }
.kb-none { margin: 0; color: var(--muted); font-size: 12px; }
@media (max-width: 760px) { .kb-board { grid-auto-flow: row; grid-auto-columns: auto; overflow-x: visible; } }


/* Pinnacle Premier Bank: black navigation with restrained gold selection accents. */
.ct-top,header.top,.ct-modbar,.topnav,.ct-navtitle,.navtitle,.navbar.bg-primary,.nav-menu.bg-primary,.sidebar.bg-primary{background:#000!important;background-image:none!important;border-color:#252525!important;color:#fff!important}
.ct-top-title,.ct-top-title b,.ct-session,.ct-modbar a,.topnav a,.topnav button,.ct-navtitle span,.navtitle span{color:#fff!important}
.ct-modbar a:hover,.ct-modbar a.on,.topnav a:hover,.topnav a.on,.topnav button:hover,.topnav button.on{background:#242424!important;color:#fff!important}
.ct-sidebar,.shell>.sidebar{background:#f2f2f2!important;border-color:#d3d3d3!important}
.ct-navitem,.navitem{color:#171717!important;background:linear-gradient(#fff,#f3f3f3)!important;border-color:#d0d0d0!important}
.ct-navitem i,.navitem svg{color:#171717!important}
.ct-navitem:hover,.ct-navitem.on,.navitem:hover,.navitem.on,.nav-link.active,.sidebar .nav-link.active{color:#fff!important;background:#111!important;box-shadow:inset 3px 0 0 #c8a34a!important}
.ct-navitem:hover i,.ct-navitem.on i,.navitem:hover svg,.navitem.on svg{color:#e3c375!important}
.ct-navtitle span,.navtitle span{background:#292929!important}
.ct-topbtn,.ct-command,.ct-command input,.ct-top .ct-avatar{background:#171717!important;border-color:#454545!important;color:#fff!important}
.ct-menu .drop a:hover,.ct-menu .drop button:hover{background:#111!important;color:#fff!important}
