/* Theme surfaces and requested navigation. Module arrangement remains original. */
@media screen {
  html[data-ui-theme] .nl-app #top_header,
  html[data-ui-theme] .nl-portal-app #top_header.nl-portal-header {
    background: var(--ui-nav) !important; border-bottom: 1px solid var(--ui-border);
    box-shadow: none; backdrop-filter: none; padding: 10px 0;
  }
  html[data-ui-theme] .nl-app #top_header .logo_main__text { font-size: 15px; font-weight: 650; line-height: 1.25; }
  html[data-ui-theme] .nl-app #top_header .nl-admin-user .user_info { background: var(--ui-input); border-color: var(--ui-border); box-shadow: none; }
  html[data-ui-theme] .nl-app .nl-clockbar { color: var(--ui-muted); padding-top: 7px; }
  html[data-ui-theme] .nl-app #sidebar { background: var(--ui-nav); border: 1px solid var(--ui-border); border-radius: 10px; gap: 0; }
  html[data-ui-theme] .nl-app .nl-sidebar-head { background: transparent; border: 0; border-bottom: 1px solid var(--ui-border); border-radius: 0; box-shadow: none; padding: 14px 10px; justify-content: center; }
  html[data-ui-theme] .nl-app .nl-sidebar-head > div:first-child { text-align: center !important; }
  html[data-ui-theme] .nl-app .nl-sidebar-title { font-size: 11px; font-weight: 700; letter-spacing: .06em; }
  html[data-ui-theme] .nl-app .nl-sidebar-subtitle { font-weight: 400; margin-top: 5px; color: var(--ui-muted); }
  html[data-ui-theme] .nl-app #sidebar .sepH_b { padding: 9px 10px 3px; gap: 6px; }
  html[data-ui-theme] .nl-app #sidebar .sepH_b .btn { border-radius: 6px; background: transparent; color: var(--ui-muted); font-weight: 500; padding: 6px; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 8px 8px 12px; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav > li > a { border-radius: 7px; font-weight: 600; color: var(--ui-muted); padding: 10px 30px 10px 10px; min-height: 38px; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav > li > a:hover { background: var(--ui-row); border-color: transparent; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav > li.active > a,
  html[data-ui-theme] .nl-app #sidebar .side_text_nav > li.open > a,
  html[data-ui-theme] .nl-app #sidebar .side_text_nav > li.parent_active > a,
  html[data-ui-theme] .nl-app #sidebar .side_text_nav > li.nl-current-parent > a,
  html[data-ui-theme] .nl-app #sidebar .side_text_nav > li > a.current { background: var(--ui-active); border-color: transparent; color: var(--ui-link); font-weight: 650; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li li > a { font-weight: 500; font-size: 12px; color: var(--ui-muted); border-radius: 6px; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li li > a.current,
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li li.active > a { background: var(--ui-active); color: var(--ui-link); }
  /* A branch for every submenu item; the last branch ends at its own label. */
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li > ul {
    border-left: 0; padding-left: 17px; margin-left: 10px;
  }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li > ul > li {
    position: relative; margin: 0; padding: 0 0 3px;
  }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li > ul > li::before {
    content: ""; position: absolute; left: -12px; top: 0; bottom: 0;
    width: 1px; background: var(--ui-control); opacity: .65; pointer-events: none;
  }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li > ul > li::after {
    content: ""; position: absolute; left: -12px; top: 18px;
    width: 12px; height: 1px; background: var(--ui-control); opacity: .65; pointer-events: none;
  }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li > ul > li:last-child::before { bottom: auto; height: 18px; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li li > a { min-height: 36px; padding-left: 14px; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li li.active > a,
  html[data-ui-theme] .nl-app #sidebar .side_text_nav li li > a:is(.active, .nl-active, .current) {
    font-weight: 600; border-color: var(--ui-border); padding-left: 14px;
  }
  /* Draw navigation carets without font glyphs, which can show fallback frames on phones. */
  html[data-ui-theme] .nl-app #sidebar .side_text_nav i:is(.nav-caret-down, .nav-caret-up) {
    width: 10px; min-width: 10px; height: 6px; margin: 0;
    background: none !important; border: 0 !important; outline: none !important;
    box-shadow: none !important; font-family: inherit !important; font-size: 0;
    line-height: 0; pointer-events: none; transform: translateY(-50%) !important;
  }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav i:is(.nav-caret-down, .nav-caret-up)::before {
    content: "" !important; display: block; width: 0; height: 0;
    background: none; border: 0; border-left: 5px solid transparent; border-right: 5px solid transparent;
  }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav i.nav-caret-down::before { border-top: 5px solid currentColor; }
  html[data-ui-theme] .nl-app #sidebar .side_text_nav i.nav-caret-up::before { border-bottom: 5px solid currentColor; }

  /* Preserve module widths, margins, headers, badges, forms and pagination. */
  html[data-ui-theme] .nl-app #main_content.nl-wrap,
  html[data-ui-theme] .nl-app :is(.nl-wrap, .nr-wrap, .lr-wrap, .la-wrap) {
    background: var(--ui-surface) !important;
  }
  html[data-ui-theme] .nl-app #main_content.nl-home {
    border: 1px solid var(--ui-border);
    border-radius: 16px;
    box-shadow: var(--ui-shadow);
  }
  /* Report card surfaces: round the painted corners without clipping dropdowns.
     Keep the original widths, spacing and screen-only presentation. */
  html[data-ui-theme] .nl-app #main_content.nl-report-rounded {
    border-radius: 16px;
    box-shadow: var(--ui-shadow);
  }
  html[data-ui-theme] .nl-app .nl-report-rounded .nl-card > .nl-card-hd:first-child {
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
  }
  html[data-ui-theme] .nl-app .nl-report-rounded .nl-card > .nl-card-bd:last-child {
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
  }
  html[data-ui-theme] .nl-app :is(.nl-card, .nl-panel, .nr-card, .lr-card, .la-card, .panel, .well, .nl-table-wrap) {
    background: var(--ui-surface); border-color: var(--ui-border);
  }
  html[data-ui-theme] .nl-app :is(.nl-card-hd, .nl-panel-hd, .nr-card-hd, .lr-card-hd, .la-card-hd, .panel-heading, .nl-detail-hd) {
    background: var(--ui-heading); border-color: var(--ui-border);
  }
  html[data-ui-theme] .nl-app :is(.nl-card-bd, .nl-detail-bd) { background: var(--ui-surface); }
  html[data-ui-theme] .nl-app table thead th:not(.th-debit):not(.th-kredit):not(.saldo-debit):not(.saldo-kredit),
  html[data-ui-theme] .nl-app table thead td {
    background: var(--ui-heading) !important; color: var(--ui-muted) !important;
    border-color: var(--ui-border) !important;
  }
  html[data-ui-theme] .nl-app table thead :is(.th-debit, .saldo-debit) { background: #f8d7da !important; color: #721c24 !important; }
  html[data-ui-theme] .nl-app table thead :is(.th-kredit, .saldo-kredit) { background: #d4edda !important; color: #155724 !important; }
  /* Dashboard school labels previously used white text on a dark header. */
  html[data-ui-theme] .nl-app #main_content.nl-home .nl-mini-table thead :is(.nl-th-title, .nl-th-sub) {
    color: var(--ui-muted) !important;
  }
  html[data-ui-theme] .nl-app table.dataTable tbody tr.odd > td,
  html[data-ui-theme] .nl-app .table-striped > tbody > tr:nth-of-type(odd) > td { background-color: var(--ui-surface); }
  html[data-ui-theme] .nl-app table.dataTable tbody tr.even > td,
  html[data-ui-theme] .nl-app .table-striped > tbody > tr:nth-of-type(even) > td { background-color: var(--ui-row); }
  html[data-ui-theme] .nl-app .dataTables_wrapper table tbody td { border-color: var(--ui-border); }
  html[data-ui-theme] .nl-app .nl-portal-nav { background: var(--ui-nav); border-color: var(--ui-border); }
  @media (min-width: 768px) {
    html[data-ui-theme] .nl-app { --nl-sidebar-w: 300px; }
    html[data-ui-theme] .nl-app #sidebar { padding: 0; }
  }
  @media (max-width: 1050px) and (min-width: 768px) {
    html[data-ui-theme] .nl-app { --nl-sidebar-w: 280px; }
  }
  @media (max-width: 768px) {
    html[data-ui-theme] .nl-app #top_header .nl-header-actions {
      display: none !important;
    }
    html[data-ui-theme] .nl-app #top_header .nl-header-row { gap: 8px; }
    html[data-ui-theme] .nl-app #top_header .nl-header-brand { flex: 1 1 0; gap: 8px; }
    html[data-ui-theme] .nl-app #top_header .logo_main { flex: 1 1 0; min-width: 0; height: auto; padding: 2px 0; gap: 7px; }
    html[data-ui-theme] .nl-app #top_header .logo_main__img { width: 28px; height: 28px; }
    html[data-ui-theme] .nl-app #top_header .logo_main__text {
      min-width: 0; font-size: clamp(12px, 3.5vw, 15px); line-height: 1.3;
      overflow: visible; text-overflow: clip; white-space: normal;
    }
    html[data-ui-theme] .nl-app #top_header :is(.logo_main__name, .logo_main__organization) { display: block; }
    html[data-ui-theme] .nl-app #top_header :is(.logo_main__subtitle-break, .logo_main__text medium) { display: none; }
    html[data-ui-theme] .nl-app #top_header .nl-admin-user .user_info {
      width: 44px !important; min-height: 44px !important; padding: 3px !important;
      gap: 0 !important; justify-content: center;
    }
    html[data-ui-theme] .nl-app #top_header .nl-admin-user .user_info img { width: 32px !important; height: 32px !important; }
    html[data-ui-theme] .nl-app #top_header .nl-admin-user :is(.nl-admin-user__text, .caret) { display: none !important; }
  }
}

/* Configurable names must stay inside the existing header space. */
html[data-ui-theme] .nl-app #top_header .logo_main__text.is-custom-identity{min-width:0;max-width:100%;overflow:hidden}
html[data-ui-theme] .nl-app #top_header .logo_main__text.is-custom-identity .logo_main__name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;white-space:normal;max-height:2.6em}
