/*!
 * app-overrides.css - small NUTEAIW-specific fixes on top of nuteaiw-theme.css (loaded last).
 * Brand colours are NOT defined here: see section 1 "Tokens" of nuteaiw-theme.css.
 */

/* page loader (template/loader.blade.php) in the brand colour */
.loading_new:before { background: radial-gradient(rgba(var(--c-primary-dark), .75), rgba(var(--c-shadow), .85)) !important; }

/* DataTables: "Show N entries" select is a native select under Materialize 2 */
body.nt-app .dataTables_wrapper .dataTables_length select { display: inline-block; }

/* select2 (pages with select.selectpicker) sits on the same underline as the other inputs */
body.nt-app .select2-container { width: 100% !important; }

/* ---------- auth pages ---------- */
.nt-auth .mt-2 { margin-top: 10px !important; }
.nt-auth-row.nt-auth-row-center { justify-content: center; margin: 18px 0 0; }
.nt-auth-link i.tiny { font-size: 16px; vertical-align: -3px; margin-right: 2px; }
body.nt-auth a.nt-btn-primary { text-decoration: none; }
body.nt-auth .nt-auth-card h2 + p.nt-auth-sub:last-child { margin-bottom: 0; }
@media (max-width: 480px) {
  .nt-auth-page { padding: 64px 12px 20px; }
  .nt-auth-row { justify-content: center; }
}

/* ---------- dashboard: secondary figures + 12-month joins chart ---------- */
.nt-mini-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
body.nt-app a.nt-mini {
  display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; background: #fff; color: var(--heading);
  box-shadow: var(--sh-card); transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
body.nt-app a.nt-mini:hover { transform: translateY(-3px); box-shadow: var(--sh-card-hover); color: var(--heading); }
.nt-mini-icon { flex: 0 0 48px; width: 48px; height: 48px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.nt-mini-icon i { font-size: 24px; }
.nt-mini-icon.m-indigo { background: var(--g-primary); box-shadow: 0 8px 18px -8px rgba(var(--c-primary), .8); }
.nt-mini-icon.m-amber { background: var(--g-warning); box-shadow: 0 8px 18px -8px rgba(var(--c-warning), .8); }
.nt-mini-icon.m-red { background: var(--g-hl); box-shadow: 0 8px 18px -8px rgba(var(--c-hl), .8); }
.nt-mini-icon.m-slate { background: var(--g-navy); box-shadow: 0 8px 18px -8px rgba(var(--c-navy), .8); }
.nt-mini-text { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.nt-mini-text b { font-family: var(--head-font); font-size: 24px; font-weight: 900; }
.nt-mini-text small { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nt-joins-card { margin-top: 18px; }
.nt-bars.nt-bars-months { height: 200px; gap: 6px; }
.nt-bars-months .nt-bar-track { max-width: 44px; }
.nt-bars-months .nt-bar-name { font-size: 10px !important; letter-spacing: .02em !important; }
@media (max-width: 1280px) { .nt-mini-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .nt-mini-grid { grid-template-columns: 1fr; }
  .nt-bars.nt-bars-months { overflow-x: auto; justify-content: flex-start; }
  .nt-bars-months .nt-bar { flex: 0 0 38px; }
}
@media (max-width: 600px) {
  .nt-bars, .nt-bars.nt-bars-months { overflow-x: auto; overflow-y: hidden; justify-content: flex-start; height: 260px; padding-bottom: 52px; margin-bottom: 0; border-bottom: 0; }
  .nt-bars .nt-bar, .nt-bars-months .nt-bar { flex: 0 0 48px; }
}

/* race chart (9+ bars): labels stay inside their own bar slot - wrap on word boundaries, max 2 lines,
   ellipsis + title tooltip for anything longer; never overlap the neighbouring label */
.nt-bars .nt-bar { min-width: 0; }
.nt-bars .nt-bar-name { left: 1px !important; right: 1px !important; font-size: 9.5px !important; letter-spacing: 0 !important; flex-wrap: nowrap !important; align-items: flex-start !important; gap: 4px !important; }
.nt-bars .nt-bar-name > i { flex: 0 0 8px; margin-top: 2px; }
.nt-bars .nt-bar-name > span { min-width: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; text-overflow: ellipsis; word-break: normal; overflow-wrap: normal; white-space: normal; hyphens: none; }
/* the sidebar always covers the full viewport height, whatever the page length */
@media (min-width: 993px) {
  body.nt-app .nt-sidebar { top: 0 !important; bottom: 0 !important; height: 100vh !important; min-height: 100%; }
}
@media (max-width: 992px) {
  body.nt-app .nt-sidebar { top: 0 !important; bottom: 0 !important; height: 100vh !important; height: 100dvh !important; }
}
/* crowded charts (set by app-init.js when a label does not fit its slot): labels rotate -40deg */
.nt-bars.nt-bars-rotate { margin-bottom: 92px; }
.nt-bars.nt-bars-rotate .nt-bar-name { left: auto !important; right: 50% !important; width: max-content; max-width: 160px; justify-content: flex-end !important; transform-origin: 100% 0; transform: rotate(-40deg); top: calc(100% + 10px); text-align: right; }
.nt-bars.nt-bars-rotate .nt-bar-name > span { display: inline; white-space: nowrap; -webkit-line-clamp: unset; line-clamp: unset; overflow: hidden; text-overflow: ellipsis; max-width: 140px; }
@media (max-width: 600px) { .nt-bars.nt-bars-rotate { height: 300px; padding-bottom: 96px; margin-bottom: 0; } }

/* =====================================================================
   NUTEAIW variations on the AMCO look (red + royal blue). Colours come from the
   tokens in nuteaiw-theme.css section 1 ("Brand").
   ===================================================================== */

/* ---------- Lucide line icons rendered as <svg class="material-icons ico"> ---------- */
svg.material-icons, svg.ico {
  width: 1em; height: 1em; font-size: 22px; flex-shrink: 0; display: inline-block; vertical-align: middle;
  fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; overflow: visible;
}
.nt-kpi-foot svg.material-icons, .nt-ring-foot svg.material-icons { padding: 6px; box-sizing: border-box; font-size: 28px !important; }
.nt-kpi-icon svg.material-icons { font-size: 30px; }
svg.nt-kpi-watermark { stroke-width: 1.4; }
body.nt-app .nt-topbar .nt-icon-btn svg.material-icons { font-size: 22px; }
.nt-user-caret { font-size: 18px !important; }
body.nt-app .nt-profile-dropdown li > a > svg.material-icons { font-size: 19px !important; }
body.nt-app .card-alert .card-content svg.material-icons { font-size: 20px; }

/* ---------- sidebar: no black, rounded top-right corner, curved inner edge shadow ---------- */
body.nt-app .nt-sidebar {
  border-top-right-radius: 28px !important;
  box-shadow: inset -14px 0 26px -18px rgba(255, 255, 255, .35), 12px 0 40px -14px rgba(143, 18, 48, .45) !important;
}
body.nt-app .nt-sidebar::after {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 1px; pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, .35), rgba(255, 255, 255, .08) 60%, rgba(191, 219, 254, .25));
}
body.nt-app .nt-sidebar .nt-brand {
  background: radial-gradient(200px 120px at 85% 0%, rgba(255, 255, 255, .18), transparent 70%), transparent !important;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.nt-brand-logo { box-shadow: 0 0 0 3px rgba(255, 255, 255, .9), 0 0 0 6px rgba(191, 219, 254, .35), 0 6px 18px rgba(143, 18, 48, .5) !important; }
.nt-brand-logo img { border-radius: 50%; }
/* menu items: hover slide + tint; icons */
body.nt-app .nt-sidebar .sidenav li > a > svg.material-icons { flex: 0 0 22px; width: 22px; height: 22px; font-size: 22px !important; color: rgba(255, 255, 255, .88) !important; }
body.nt-app .nt-sidebar .sidenav li > a:hover { background-color: rgba(255, 255, 255, .12) !important; transform: translateX(3px); }
body.nt-app .nt-sidebar .collapsible-body li > a:hover { transform: translateX(3px); }
/* active pill: white 16% with a BLUE glow and a blue left accent bar */
body.nt-app .nt-sidebar .sidenav li > a.active,
body.nt-app .nt-sidebar .sidenav .collapsible-body li > a.active {
  background: rgba(255, 255, 255, .16) !important; color: #fff !important;
  box-shadow: 0 0 18px rgba(59, 130, 246, .55), inset 0 0 0 1px rgba(255, 255, 255, .22) !important;
}
body.nt-app .nt-sidebar .sidenav li > a.active:hover { box-shadow: 0 0 24px rgba(59, 130, 246, .7), inset 0 0 0 1px rgba(255, 255, 255, .3) !important; transform: translateX(3px); }
body.nt-app .nt-sidebar .sidenav li > a.active::after { background: linear-gradient(180deg, #93c5fd, #3b82f6) !important; box-shadow: 0 0 10px rgba(59, 130, 246, .9) !important; }
body.nt-app .nt-sidebar .sidenav li > a.active > svg.material-icons { color: #bfdbfe !important; }
body.nt-app .nt-sidebar .sidenav li.navigation-header > a.navigation-header-text { color: rgba(219, 234, 254, .78) !important; }
/* submenu chevrons (svg) instead of the font chevron */
body.nt-app .nt-sidebar .sidenav li > a.collapsible-header::after { display: none !important; }
body.nt-app .nt-sidebar .nt-chev { margin-left: auto; font-size: 18px !important; width: 18px !important; flex: 0 0 18px !important; color: rgba(255, 255, 255, .7) !important; transition: transform .3s var(--ease); }
body.nt-app .nt-sidebar li.nt-group.active > a.collapsible-header .nt-chev { transform: rotate(180deg); color: #bfdbfe !important; }
body.nt-app .nt-sidebar li.active > a.collapsible-header > svg.material-icons:first-child { color: #bfdbfe !important; }
/* sub-items: thin guide line */
body.nt-app .nt-sidebar #slide-out .collapsible-sub { position: relative; }
body.nt-app .nt-sidebar #slide-out .collapsible-sub::before { content: ""; position: absolute; left: 25px; top: 6px; bottom: 6px; width: 1px; background: rgba(255, 255, 255, .22); }
/* user card at the bottom */
.nt-sb-user { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; margin: 8px 12px 14px; padding: 10px; border-radius: 16px; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); color: #fff; }
.nt-sb-user .nt-avatar-bubble { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--g-hl); color: #fff; font-weight: 800; font-size: 13px; box-shadow: 0 0 12px rgba(59, 130, 246, .55); }
.nt-sb-user-meta { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; flex: 1 1 auto; }
.nt-sb-user-meta b { font-size: 13.5px; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nt-sb-user-meta small { font-size: 11.5px; color: rgba(219, 234, 254, .85); text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.nt-sb-user .nt-sb-logout { width: 36px; height: 36px; color: #fff; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }
.nt-sb-user .nt-sb-logout:hover { background: rgba(255, 255, 255, .26); color: #fff; }
.nt-sb-user .nt-sb-logout svg.material-icons { font-size: 18px; }
@media (min-width: 993px) {
  body.nt-sb-mini .nt-sidebar:not(:hover) .nt-sb-user { flex-direction: column; padding: 8px 0; margin: 8px 10px 14px; }
  body.nt-sb-mini .nt-sidebar:not(:hover) .nt-sb-user-meta, body.nt-sb-mini .nt-sidebar:not(:hover) .nt-chev { display: none; }
}

/* ---------- header: blue initial badge + blue status dot ---------- */
.nt-initials { background: var(--g-hl) !important; color: #fff !important; box-shadow: 0 4px 14px rgba(59, 130, 246, .5) !important; }
body.nt-app .nt-user-chip .nt-user-role { color: #dbeafe; }
.nt-user-chip .nt-avatar i { background: #3b82f6 !important; }
.nt-dd-role { background: var(--g-hl) !important; color: #fff !important; }
body.nt-app .nt-topbar { box-shadow: inset 0 -2px 0 rgba(191, 219, 254, .6), 0 8px 30px -12px rgba(227, 6, 19, .55) !important; }

/* ---------- section headings: small red underline accent ---------- */
.nt-widget h3, body.nt-app .card .card-content > h5:not(.nt-card-head):not(.nt-filter-oldhead), body.nt-app .card h4.card-title:not(.nt-card-head):not(:empty) { position: relative; padding-bottom: 8px; }
.nt-widget h3::after, body.nt-app .card .card-content > h5:not(.nt-card-head):not(.nt-filter-oldhead)::after, body.nt-app .card h4.card-title:not(.nt-card-head):not(:empty)::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--primary), #f43f5e);
}
body.nt-app .card .nt-card-head h4.card-title::after, body.nt-app .nt-card-head .card-title::after { display: none; }

/* ---------- KPI cards: footer strip with a subtle diagonal pattern ---------- */
.nt-kpi-foot {
  background-color: rgba(30, 41, 59, .14) !important;
  background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, .09) 0 6px, transparent 6px 14px) !important;
}
.nt-kpi-foot svg.material-icons { box-shadow: inset 0 0 0 1px rgba(191, 219, 254, .55); }
/* dashboard soft buttons in blue */
body.nt-app a.nt-soft-btn { background: #dbeafe !important; color: #1d4ed8 !important; box-shadow: 0 4px 14px -6px rgba(29, 78, 216, .5) !important; }
body.nt-app a.nt-soft-btn:hover { color: #1e3a8a !important; }

/* ---------- buttons: red primary pill, blue secondary ---------- */
body.nt-app .btn.blue, body.nt-app .btn.indigo, body.nt-app .btn.light-blue, body.nt-app .btn.purple, body.nt-app .btn.deep-purple, body.nt-app .btn.btn-info { background: var(--g-navy) !important; --c: var(--c-navy); }
body.nt-app #breadcrumbs-wrapper .btn.nt-ic-add { background: var(--g-hl) !important; color: #fff !important; box-shadow: 0 6px 22px 0 rgba(59, 130, 246, .55) !important; }

/* ---------- split guest layout (login / password / error pages) ---------- */
body.nt-auth.nt-auth-split { background: var(--page) !important; }
.nt-split { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.nt-split-brand {
  position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 48px 44px; color: #fff;
  background: radial-gradient(520px 380px at 12% 8%, rgba(255, 255, 255, .16), transparent 70%), var(--auth-bg);
}
.nt-split-circle { position: absolute; border-radius: 50%; pointer-events: none; }
.nt-split-circle.c1 { width: 420px; height: 420px; right: -140px; top: -120px; background: radial-gradient(circle, rgba(255, 255, 255, .20), rgba(255, 255, 255, 0) 70%); }
.nt-split-circle.c2 { width: 300px; height: 300px; left: -90px; bottom: -90px; border: 34px solid rgba(255, 255, 255, .07); }
.nt-split-circle.c3 { width: 160px; height: 160px; right: 14%; bottom: 12%; background: rgba(59, 130, 246, .35); filter: blur(10px); }
.nt-split-brand-inner { position: relative; max-width: 440px; }
.nt-split-brand .nt-auth-logo { width: 92px; height: 92px; margin: 0 0 22px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 6px rgba(255, 255, 255, .22), 0 14px 36px rgba(143, 18, 48, .45); }
.nt-split-brand .nt-auth-logo img { width: 78px; height: 78px; border-radius: 50%; object-fit: contain; }
.nt-split-brand h1 { font-family: var(--head-font); font-size: clamp(26px, 3vw, 36px) !important; font-weight: 900; line-height: 1.15; margin: 0 0 10px; color: #fff !important; letter-spacing: .01em; }
.nt-split-brand p { margin: 0 0 26px; font-size: 15px; line-height: 1.55; color: rgba(255, 255, 255, .88); max-width: 380px; }
.nt-split-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nt-split-points li { display: flex; align-items: center; gap: 12px; font-size: 14.5px; font-weight: 600; color: #fff; }
.nt-split-points li svg.material-icons { font-size: 20px; width: 36px; height: 36px; padding: 8px; box-sizing: border-box; border-radius: 12px; background: rgba(255, 255, 255, .16); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); }
.nt-split-main { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 24px; background: radial-gradient(600px 400px at 100% 0%, rgba(59, 130, 246, .08), transparent 70%), radial-gradient(600px 400px at 0% 100%, rgba(227, 6, 19, .06), transparent 70%); }
.nt-auth-card.nt-split-card {
  max-width: 440px; width: 100%; padding: 34px 34px 26px; border-radius: 24px; background: #fff;
  box-shadow: 0 2px 6px rgba(143, 18, 48, .05), 0 18px 40px -12px rgba(143, 18, 48, .18), 0 30px 60px -20px rgba(29, 78, 216, .16) !important;
  animation: nt-enter .6s var(--ease-out) backwards;
}
.nt-split-card h2 { text-align: left !important; font-size: 26px !important; font-weight: 800 !important; font-family: var(--head-font); color: var(--heading); margin: 0 0 6px !important; }
.nt-split-card .nt-auth-sub { text-align: left !important; margin: 0 0 22px !important; }
.nt-split-card .nt-error-code { text-align: left; }
.nt-split-mlogo { display: none; align-items: center; gap: 10px; margin: 0 0 18px; font-weight: 800; color: var(--heading); font-family: var(--head-font); }
.nt-split-mlogo img { width: 44px; height: 44px; border-radius: 50%; box-shadow: 0 0 0 3px #fde8ea; }
.nt-split-main .nt-auth-foot { margin-top: 22px; color: var(--text-muted); }
.nt-split-main .nt-auth-foot strong { color: var(--heading); }
/* inputs with icons */
body.nt-auth .nt-field-box > svg.nt-lead { position: absolute; left: 0; top: 24px; font-size: 20px; color: var(--text-muted); pointer-events: none; z-index: 1; }
.nt-field-box:focus-within > svg.nt-lead { color: var(--blue) !important; }
body.nt-auth .nt-field-box input.nt-input:focus + label.nt-float { color: var(--blue) !important; }
body.nt-auth .nt-field-box input.nt-input, body.nt-auth .nt-field-box input.nt-input:focus:not([readonly]) { background-image: linear-gradient(90deg, var(--primary), var(--blue)) !important; }
.nt-pw-toggle svg.material-icons { font-size: 20px; }
.nt-pw-toggle .nt-eye-off, .nt-pw-toggle.is-on .nt-eye-on { display: none; }
.nt-pw-toggle.is-on .nt-eye-off { display: inline-block; }
body.nt-auth .nt-auth-row [type=checkbox].filled-in:checked + span:not(.lever)::after { border-color: var(--blue) !important; background: var(--g-hl) !important; box-shadow: 0 2px 8px rgba(59, 130, 246, .45) !important; }
.nt-auth-link { color: var(--blue) !important; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.nt-auth-link:hover { color: var(--blue-deep) !important; }
.nt-auth-link svg.material-icons { font-size: 16px; }
/* red -> blue gradient pill button with lift + press */
body.nt-auth .nt-btn-primary {
  border-radius: 999px !important; height: 50px !important;
  background: linear-gradient(100deg, #e30613 0%, #c40510 35%, #1d4ed8 100%) !important;
  box-shadow: 0 8px 22px -6px rgba(227, 6, 19, .45), 0 10px 26px -8px rgba(29, 78, 216, .45) !important;
}
body.nt-auth .nt-btn-primary:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 12px 28px -6px rgba(227, 6, 19, .5), 0 14px 32px -8px rgba(29, 78, 216, .55) !important; }
body.nt-auth .nt-btn-primary:active { transform: translateY(1px) scale(.99); }
body.nt-auth .nt-btn-primary::after { background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%) !important; }
body.nt-auth .nt-btn-primary svg.material-icons { font-size: 19px; color: #fff; }
.nt-auth-alert svg.material-icons, .nt-auth-note svg.material-icons { font-size: 18px; }
.nt-auth-note svg.material-icons { color: var(--primary); }
.nt-error-card .nt-error-code { background: linear-gradient(100deg, #e30613, #1d4ed8); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (max-width: 900px) {
  .nt-split { grid-template-columns: 1fr; min-height: 0; }
  .nt-split-brand { padding: 30px 22px 64px; justify-content: flex-start; }
  .nt-split-brand .nt-auth-logo { width: 64px; height: 64px; margin: 0 0 14px; }
  .nt-split-brand .nt-auth-logo img { width: 54px; height: 54px; }
  .nt-split-brand h1 { font-size: 24px !important; }
  .nt-split-brand p { margin: 0; font-size: 13.5px; }
  .nt-split-points { display: none; }
  .nt-split-circle.c1 { width: 260px; height: 260px; right: -90px; top: -90px; }
  .nt-split-main { padding: 0 14px 28px; margin-top: -40px; background: none; }
  .nt-auth-card.nt-split-card { padding: 24px 20px 22px; border-radius: 22px; }
}
body.nt-app svg.nt-filter-chev { padding: 4px; box-sizing: border-box; }
body.nt-app svg.nt-filter-ic { font-size: 19px; }

/* sidebar label grows so the submenu chevron sits at the right edge */
body.nt-app .nt-sidebar .sidenav li > a .menu-title { flex: 1 1 auto; min-width: 0; }
/* dashboard secondary tiles in the red / blue palette */
.nt-mini-icon.m-indigo { background: var(--g-navy) !important; box-shadow: 0 8px 18px -8px rgba(29, 78, 216, .8) !important; }
.nt-mini-icon.m-red { background: var(--g-primary) !important; box-shadow: 0 8px 18px -8px rgba(227, 6, 19, .8) !important; }
.nt-mini-icon.m-slate { background: var(--g-dark) !important; box-shadow: 0 8px 18px -8px rgba(51, 65, 85, .7) !important; }
.nt-mini-icon svg.material-icons { font-size: 23px; color: #fff; }
body.nt-app .card.nt-has-filter:not(:has(table)) > .card-content { padding: 16px !important; }
body.nt-app .card.nt-has-filter:not(:has(table)) .nt-filter-host { margin-bottom: 0 !important; }

/* ---------- brand seal: tightly cropped img/logo-seal-256.png, filling ~94% of its white ring ---------- */
body.nt-app .nt-sidebar .nt-brand { padding: 0 10px 0 12px !important; }
.nt-brand-link { gap: 12px !important; }
.nt-brand-logo { flex: 0 0 64px !important; width: 64px !important; height: 64px !important; padding: 2px; box-sizing: border-box; background: #fff !important;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .95), 0 0 0 5px rgba(191, 219, 254, .35), 0 8px 20px rgba(143, 18, 48, .45) !important; }
.nt-brand-logo img { width: 100% !important; height: 100% !important; object-fit: contain; border-radius: 50%; }
.nt-brand-text strong { font-size: 22px !important; letter-spacing: .06em !important; }
.nt-brand-text small { font-size: 13px !important; margin-top: 4px !important; }
@media (min-width: 993px) {
  body.nt-sb-mini .nt-sidebar:not(:hover) .nt-brand-logo { flex-basis: 48px !important; width: 48px !important; height: 48px !important; }
}
@media (max-width: 992px) {
  .nt-brand-logo { flex-basis: 56px !important; width: 56px !important; height: 56px !important; }
}
/* top bar (mobile brand) + user chip avatar */
.nt-topbar-logo { width: 44px !important; height: 44px !important; padding: 2px; box-sizing: border-box; }
.nt-topbar-logo img { width: 100% !important; height: 100% !important; object-fit: contain; border-radius: 50%; }
.nt-user-chip .nt-avatar img { padding: 1px; box-sizing: border-box; object-fit: contain; }
/* login brand panel */
.nt-split-brand .nt-auth-logo { width: 120px !important; height: 120px !important; padding: 3px; box-sizing: border-box; }
.nt-split-brand .nt-auth-logo img { width: 100% !important; height: 100% !important; object-fit: contain; }
.nt-split-mlogo img { object-fit: contain; }
@media (max-width: 900px) {
  .nt-split-brand .nt-auth-logo { width: 84px !important; height: 84px !important; }
}
/* taller brand row / header so the 64px seal and its ring have breathing room (brand block = header height) */
:root { --top-h: 80px; }
@media (max-width: 600px) { :root { --top-h: 68px; } }
/* svg icons inside buttons: inline, never floated (Materialize .left/.right float them) */
body.nt-app .btn svg.material-icons, body.nt-app .btn-large svg.material-icons, body.nt-app .btn-small svg.material-icons { float: none !important; display: inline-block; vertical-align: -3px; font-size: 17px !important; margin: 0 0 0 6px !important; }
body.nt-app .btn svg.material-icons.left { margin: 0 6px 0 0 !important; }
body.nt-app .btn.btn-floating svg.material-icons { margin: 0 !important; vertical-align: middle; }

/* ---------- global icon size guard: every Lucide <svg> is 1em square unless a component sizes it on purpose ---------- */
svg.nt-icon, svg.material-icons.ico { width: 1em !important; height: 1em !important; max-width: none; flex: none; }
.dropdown-content svg.nt-icon, .collapsible svg.nt-icon, .modal svg.nt-icon, .toast svg.nt-icon, .chip svg.nt-icon, .tabs svg.nt-icon,
.select2-container svg.nt-icon, .swal-modal svg.nt-icon, .dataTables_paginate svg.nt-icon, .input-field svg.nt-icon { font-size: 18px; }
.nt-split-points li svg.material-icons { font-size: 20px !important; padding: 0 !important; width: 20px !important; height: 20px !important; }
.nt-split-points li .nt-icon { box-shadow: none !important; background: none !important; }
.nt-split-points li { position: relative; padding-left: 0; }
.nt-split-points li::before { content: none; }
body.nt-app svg.nt-filter-chev { font-size: 26px; }
.nt-kpi-foot svg.material-icons, .nt-ring-foot svg.material-icons { font-size: 28px !important; }
/* table action buttons: 17px icon centred in the 32px tinted button */
body.nt-app .nt-actions .nt-act > svg.material-icons, body.nt-app .nt-actions .nt-act > svg.nt-icon { font-size: 17px !important; width: 17px !important; height: 17px !important; padding: 0 !important; margin: 0 !important; }

/* ---------- header user chip: name + role fully visible ---------- */
body.nt-app .nt-user-chip { height: 50px !important; }
.nt-user-meta { line-height: 1.25 !important; padding: 2px 0; }
.nt-user-name, .nt-user-role { display: block; line-height: 1.3 !important; }

/* ---------- profile dropdown (AMCO-style menu) ---------- */
body.nt-app .nt-profile-dropdown {
  width: 240px !important; min-width: 240px !important; max-width: calc(100vw - 16px); padding: 8px !important; border-radius: 16px !important;
  background: #fff !important; overflow: visible !important; translate: 0 10px;
  box-shadow: 0 2px 6px rgba(143, 18, 48, .06), 0 18px 40px -12px rgba(143, 18, 48, .22), 0 24px 50px -20px rgba(29, 78, 216, .18) !important;
}
body.nt-app .nt-profile-dropdown:popover-open { animation: nt-dd-in .18s var(--ease-out) both; }
@keyframes nt-dd-in { from { opacity: 0; scale: .96; } to { opacity: 1; scale: 1; } }
body.nt-app .nt-profile-dropdown { transform-origin: 90% 0; }
body.nt-app .nt-profile-dropdown::before {
  content: ""; position: absolute; top: -6px; right: 26px; width: 12px; height: 12px; background: #fff; transform: rotate(45deg);
  border-radius: 3px 0 0 0; box-shadow: -2px -2px 4px rgba(143, 18, 48, .05);
}
body.nt-app .nt-profile-dropdown li { min-height: 0 !important; border-radius: 12px; background: transparent !important; }
body.nt-app .nt-profile-dropdown li.nt-dd-head { pointer-events: none; margin: 0 0 6px !important; padding: 4px 4px 10px; background: transparent !important; box-shadow: none !important; border-bottom: 1px solid var(--line); border-radius: 0; }
body.nt-app .nt-profile-dropdown li.nt-dd-head > a { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 10px !important; padding: 4px !important; }
.nt-dd-avatar { flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--g-hl); color: #fff; font-weight: 800; font-size: 13px; box-shadow: 0 4px 12px rgba(59, 130, 246, .45); }
.nt-dd-meta { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
body.nt-app .nt-profile-dropdown .nt-dd-name { color: var(--heading) !important; font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; }
body.nt-app .nt-profile-dropdown .nt-dd-role { font-size: 10.5px; padding: 2px 9px; border-radius: 999px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: var(--g-hl) !important; color: #fff !important; }
body.nt-app .nt-profile-dropdown li.nt-dd-item > a {
  display: flex !important; align-items: center !important; gap: 12px !important; height: 44px; padding: 0 10px !important; border-radius: 12px;
  color: var(--text) !important; font-size: 14px !important; font-weight: 600; transition: background-color .18s var(--ease), transform .18s var(--ease), color .18s var(--ease);
}
body.nt-app .nt-profile-dropdown li.nt-dd-item > a:hover { background: var(--tint-2) !important; transform: translateX(3px); color: var(--heading) !important; }
.nt-dd-ic { flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #dbeafe; color: #1d4ed8; }
.nt-dd-ic svg.nt-icon { font-size: 18px !important; margin: 0 !important; color: inherit !important; }
body.nt-app .nt-profile-dropdown li.nt-dd-logout > a { color: var(--primary) !important; }
body.nt-app .nt-profile-dropdown li.nt-dd-logout .nt-dd-ic { background: var(--primary-tint); color: var(--primary); }
body.nt-app .nt-profile-dropdown li.nt-dd-logout > a:hover { background: #fde8ea !important; color: var(--primary-dark) !important; }

/* Form submit row (e.g. Borang N "Generate Borang"): right-aligned theme button with breathing room */
body.nt-app .nt-form-actions { display: flex; justify-content: flex-end; gap: 12px; clear: both; padding: 24px 0 8px; }
body.nt-app .nt-form-actions .btn-large { height: 50px; line-height: 50px; padding: 0 28px; font-size: 14px; }
body.nt-app .nt-form-actions .btn svg.material-icons, body.nt-app .nt-form-actions .btn i.material-icons { margin-right: 8px; }
@media print { .nt-form-actions { display: none !important; } }
