/* CK Analyzer — small layer on top of Tabler: brand color, numeric type, severity accents. */
:root, [data-bs-theme="light"] {
  /* palette taken from the app icon: deep navy tile, bright blue glow, gold accents */
  --cka-navy-900: #021336; --cka-navy-800: #031a45; --cka-navy-700: #06275e; --cka-blue: #2d7dff; --cka-gold: #f5c242;
  --tblr-primary: #1d5bd8; --tblr-primary-rgb: 29, 91, 216; --tblr-primary-text: #1a50bd;
  --tblr-primary-fg: #fff; --tblr-primary-darken: #174bb3; --tblr-primary-lt: #e7eefc;
  --tblr-font-monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
[data-bs-theme="dark"] { --tblr-primary: #5b8ff0; --tblr-primary-rgb: 91, 143, 240; --tblr-primary-text: #8db1f5; --tblr-primary-lt: #18284a; }

/* ---- sidebar in the icon's colours (dark in both themes) ---- */
.navbar-vertical {
  background: linear-gradient(180deg, var(--cka-navy-700) 0%, var(--cka-navy-800) 55%, var(--cka-navy-900) 100%) !important;
  border-right: 1px solid rgba(255, 255, 255, .06);
  --tblr-navbar-color: rgba(214, 226, 255, .72); --tblr-navbar-hover-color: #fff; --tblr-navbar-active-color: #fff;
}
.navbar-vertical .nav-link { color: rgba(214, 226, 255, .72); border-radius: 8px; margin: 1px .5rem; transition: background .15s, color .15s; }
.navbar-vertical .nav-link:hover { color: #fff; background: rgba(255, 255, 255, .06); }
.navbar-vertical .nav-item.active > .nav-link { color: #fff !important; background: rgba(45, 125, 255, .18) !important; box-shadow: inset 3px 0 0 var(--cka-gold); }
.navbar-vertical .nav-item.active > .nav-link .nav-link-icon { color: var(--cka-gold); }
.navbar-vertical .navbar-brand { color: #fff; }
.navbar-vertical .dropdown a.text-reset { color: rgba(214, 226, 255, .85) !important; }
.navbar-vertical .avatar { background: rgba(245, 194, 66, .16); color: var(--cka-gold); }
@media (max-width: 991.98px) { .navbar-vertical { background: var(--cka-navy-800) !important; } }

/* ---- hide / show sidebar (desktop) ---- */
.sidebar-toggle { position: absolute; top: .9rem; right: .6rem; z-index: 2; border: 0; background: transparent; color: rgba(214, 226, 255, .55); width: 2rem; height: 2rem; border-radius: 8px; align-items: center; justify-content: center; font-size: 1.15rem; }
.sidebar-toggle:hover, .sidebar-toggle:focus-visible { color: #fff; background: rgba(255, 255, 255, .08); }
.sidebar-show { display: none; }
@media (min-width: 992px) {
  .navbar-vertical { transition: transform .2s ease, visibility .2s; }
  .page-wrapper { transition: margin .2s ease; }
  html.sidebar-hidden { --tblr-sidebar-width: 0px; }
  html.sidebar-hidden .navbar-vertical { transform: translateX(-100%); visibility: hidden; }
  html.sidebar-hidden .sidebar-show { display: inline-flex; position: fixed; top: .75rem; left: .75rem; z-index: 1031; align-items: center; gap: .35rem; padding: .3rem .55rem .3rem .3rem; border: 0; border-radius: 12px;
    background: linear-gradient(180deg, var(--cka-navy-700), var(--cka-navy-900)); color: #fff; box-shadow: 0 4px 14px rgba(2, 19, 54, .35); }
  html.sidebar-hidden .sidebar-show img { border-radius: 7px; }
  html.sidebar-hidden .sidebar-show:hover { box-shadow: 0 0 0 2px var(--cka-gold), 0 4px 14px rgba(2, 19, 54, .35); }
  html.sidebar-hidden .page-header .container-xl { padding-left: 5rem; }
}
@media (prefers-reduced-motion: reduce) { .navbar-vertical, .page-wrapper { transition: none !important; } }

.brand-mark { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 6px; background: var(--tblr-primary); color: #fff; font: 800 .8rem/1 var(--tblr-font-sans-serif); letter-spacing: .04em; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; font-weight: 700; font-size: .95rem; }
.brand-text small { font-weight: 500; font-size: .68rem; opacity: .65; letter-spacing: .06em; }
.navbar-vertical .navbar-collapse { display: flex; flex-direction: column; }
@media (max-width: 991.98px) { .navbar-vertical .navbar-collapse:not(.show) { display: none; } }

.num, .table td.num, .table th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mono { font-family: var(--tblr-font-monospace); font-size: .85em; }
.merek { font-family: var(--tblr-font-monospace); font-size: .8rem; overflow-wrap: anywhere; min-width: 12rem; }
.text-minus { color: var(--tblr-red) !important; font-weight: 600; }
.sev-row-tinggi { box-shadow: inset 3px 0 0 var(--tblr-red); }
.sev-row-sedang { box-shadow: inset 3px 0 0 var(--tblr-yellow); }
.sev-row-info { box-shadow: inset 3px 0 0 var(--tblr-azure); }
tr.row-bad td { background: rgba(var(--tblr-red-rgb), .07); }
.table-sticky thead th { position: sticky; top: 0; z-index: 1; background: var(--tblr-bg-surface); }
.table-responsive.tall { max-height: 70vh; }
.finding-detail { color: var(--tblr-secondary); max-width: 80ch; }
.kpi .h1 { font-variant-numeric: tabular-nums; }
.filters .form-control, .filters .form-select { min-width: 0; }
th.sortable { cursor: pointer; user-select: none; }
th.sortable:hover { color: var(--tblr-body-color); }

.dropzone-box { border: 2px dashed var(--tblr-border-color); border-radius: var(--tblr-border-radius-lg); padding: 2.5rem 1rem; text-align: center; background: var(--tblr-bg-surface-secondary); transition: border-color .15s, background .15s; cursor: pointer; }
.dropzone-box.over { border-color: var(--tblr-primary); background: var(--tblr-primary-lt); }
.dropzone-box .ti { font-size: 2.5rem; color: var(--tblr-primary); }
.upload-list { max-height: 55vh; overflow: auto; }
.empty-state { padding: 3rem 1rem; text-align: center; color: var(--tblr-secondary); }
.inline-edit { width: 7.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.login-bg { background: radial-gradient(1200px 500px at 50% -10%, rgba(45, 125, 255, .18), transparent 60%), linear-gradient(180deg, var(--tblr-primary-lt), var(--tblr-bg-surface-secondary) 55%); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
@media print { .navbar-vertical, .page-header .btn-list, .filters { display: none !important; } .page-wrapper { margin: 0 !important; } }
.card-header { flex-wrap: wrap; gap: .5rem; }
.card-header .card-actions { margin-left: auto; }
.list-group-item .flex-fill, .finding-detail, .table td .fw-medium { min-width: 0; overflow-wrap: anywhere; }
td.ket { min-width: 12rem; white-space: normal; }
@media (max-width: 575.98px) { .page-title { font-size: 1.1rem; overflow-wrap: anywhere; } .card-header .card-actions { width: 100%; margin-left: 0; } .card-header .card-actions .input-icon { flex: 1; } }
[hidden] { display: none !important; }
.brand-logo { flex: none; width: 36px; height: 36px; border-radius: 9px; box-shadow: 0 1px 3px rgba(0,0,0,.35); }
.brand-logo-lg { width: 56px; height: 56px; border-radius: 13px; }
@media (max-width: 991.98px) { .navbar-vertical .brand-logo { width: 30px; height: 30px; border-radius: 7px; } }
@media (min-width: 992px) { .navbar-vertical .navbar-brand { justify-content: flex-start !important; width: 100%; padding-inline: .25rem; } }
