/* NTNStok Licensing — Metronic Bootstrap integration.
   Load AFTER plugins.bundle.css and style.bundle.css from NTNStok.web.
   No Bootstrap, jQuery or application business rules are redefined here. */
.licensing-app { font-family: Inter, "Segoe UI", Arial, sans-serif; }
.licensing-app [hidden] { display: none !important; }
.licensing-app .app-main,
.licensing-app .app-wrapper,
.lic-main { min-width: 0; }
.lic-main { padding-top: .5rem; padding-bottom: 1.5rem; }
.lic-main > section[id] { scroll-margin-top: 110px; }
.lic-main:focus { outline: none; }
.lic-break { overflow-wrap: anywhere; word-break: normal; }
.licensing-app textarea { resize: vertical; }
.licensing-app button:disabled { cursor: not-allowed; }
.licensing-app :focus-visible { outline: 3px solid var(--bs-primary, #3e97ff); outline-offset: 3px; }
.lic-skip-link { position: fixed; left: 1rem; top: -100px; z-index: 2000; }
.lic-skip-link:focus { top: 1rem; }
.lic-brand-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--bs-primary, #3e97ff); color: #fff; font-size: 1.9rem; font-weight: 800; line-height: 1; }
.lic-brand-label { white-space: nowrap; }
.lic-user-name { max-width: 240px; }
.lic-sidebar-info { line-height: 1.6; }
.lic-page-heading > div:first-child { min-width: 0; flex: 1 1 320px; }
.lic-page-heading h1 { overflow-wrap: anywhere; }
.lic-page-heading p { color: var(--bs-gray-600, #78829d); line-height: 1.65; margin-bottom: 0; max-width: 950px; }
.lic-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; margin-bottom: 2rem; }
.lic-stats-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lic-stat { padding: 1.8rem 2rem; min-width: 0; border: 1px solid var(--bs-gray-200, #f1f1f4); }
.lic-stat > span { color: var(--bs-gray-600, #78829d); font-size: .95rem; font-weight: 500; margin-bottom: 1rem; }
.lic-stat > strong { font-size: 2.6rem; letter-spacing: -.07rem; font-weight: 700; line-height: 1.2; color: var(--bs-gray-900, #071437); }
.lic-stat strong em { font-size: 1.25rem; font-style: normal; font-weight: 500; letter-spacing: normal; color: var(--bs-gray-500, #99a1b7); }
.lic-stat > small { display: block; color: var(--bs-gray-500, #99a1b7); margin-top: .75rem; font-size: .85rem; line-height: 1.6; }
.lic-stat-accent { border-color: var(--bs-primary-light, #eef6ff); }
.lic-stat-accent > strong { color: var(--bs-primary, #3e97ff); }
.lic-table-card { overflow: hidden; }
.lic-table-card > .card-header h2 { margin-bottom: 0 !important; }
.lic-table-card > .card-header p { font-size: .95rem; color: var(--bs-gray-600, #78829d); margin: .6rem 0 0; max-width: 960px; line-height: 1.6; }
.licensing-app .table thead th { color: var(--bs-gray-500, #99a1b7); font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .025rem; white-space: nowrap; }
.licensing-app .table td { color: var(--bs-gray-700, #4b5675); vertical-align: middle; }
.licensing-app .table td > small { display: block; font-size: .85rem; color: var(--bs-gray-500, #99a1b7); margin-top: .45rem; max-width: 340px; overflow-wrap: anywhere; }
.licensing-app .table td strong { font-weight: 600; color: var(--bs-gray-900, #071437); }
.licensing-app .table tbody tr:hover { background: var(--bs-gray-100, #f9f9f9); }
.licensing-app .table td .btn { white-space: nowrap; }
.lic-table-card > .card-footer { line-height: 1.7; }
/* PortalDisplay.StatusClass still supplies these status tokens. */
.lic-badge.success { background: var(--bs-success-light, #e8fff3); color: var(--bs-success, #50cd89); }
.lic-badge.warning { background: var(--bs-warning-light, #fff8dd); color: var(--bs-warning, #ffc700); }
.lic-badge.muted { background: var(--bs-gray-100, #f9f9f9); color: var(--bs-gray-600, #78829d); }
.lic-padded-card { min-width: 0; }
.lic-padded-card > .card-header { padding: 0 !important; border: 0; min-height: 0; margin-bottom: 1.75rem; }
.lic-padded-card > p { color: var(--bs-gray-600, #78829d); line-height: 1.7; }
.lic-padded-card > :last-child { margin-bottom: 0; }
.lic-narrow { max-width: 720px; }
.lic-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem; align-items: start; }
.lic-field { display: flex; flex-direction: column; gap: .65rem; min-width: 0; }
.lic-field > label,
.lic-field > span:first-child { font-weight: 600; color: var(--bs-gray-800, #252f4a); }
.lic-field small { color: var(--bs-gray-500, #99a1b7); font-size: .85rem; line-height: 1.65; }
.lic-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.lic-span-all { grid-column: 1 / -1; }
.lic-check { gap: .8rem; color: var(--bs-gray-700, #4b5675); font-size: 1rem; line-height: 1.5; }
.lic-check .form-check-input { flex-shrink: 0; }
.lic-checkbox-field { justify-content: center; padding-top: 1.5rem; }
.lic-inline-form { margin-bottom: .5rem; }
.lic-inline-form select { width: auto; min-width: 150px; max-width: 330px; }
.lic-search-form { min-width: 240px; max-width: 440px; }
.lic-search-form input { min-width: 0; }
.lic-pagination > div { display: flex; flex-wrap: wrap; gap: .5rem; }
.lic-hint { line-height: 1.65; }
.lic-callout { color: var(--bs-gray-800, #252f4a); border: 1px dashed var(--bs-primary, #3e97ff); }
.lic-callout p { margin: .5rem 0 0; color: var(--bs-gray-600, #78829d); font-size: .9rem; line-height: 1.7; }
.lic-callout button { margin-top: 1rem; }
.lic-notice-link { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border: 1px dashed var(--bs-primary, #3e97ff); }
.lic-empty { padding: 4rem 2rem; text-align: center; color: var(--bs-gray-600, #78829d); }
.lic-empty p { max-width: 600px; margin: 0 auto; line-height: 1.7; }
.lic-empty-compact { padding: 2rem; }
.lic-section-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 12px; font-size: 2rem; margin-bottom: 1.5rem; }
.lic-empty .lic-section-icon { margin-left: auto; margin-right: auto; }
.lic-branch-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.lic-branch-tile { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.5rem; transition: border-color .15s ease; }
.lic-branch-tile:hover { border-color: var(--bs-primary, #3e97ff) !important; }
.lic-branch-tile > strong { font-size: 1.1rem; overflow-wrap: anywhere; }
.lic-branch-tile > small { grid-column: 2 / -1; color: var(--bs-gray-500, #99a1b7); }
.lic-tile-icon { display: grid; place-items: center; border-radius: 8px; width: 38px; height: 38px; font-size: 1.8rem; }
.lic-section-nav { column-gap: 2rem; row-gap: .25rem; border-bottom: 1px solid var(--bs-gray-200, #f1f1f4); }
.lic-section-nav > a { padding: 1rem 0; color: var(--bs-gray-600, #78829d); border-bottom: 2px solid transparent; }
.lic-section-nav > a:hover,
.lic-section-nav > a.active { color: var(--bs-primary, #3e97ff); border-bottom-color: var(--bs-primary, #3e97ff); }
.lic-details > summary { cursor: pointer; color: var(--bs-gray-800, #252f4a); font-weight: 600; padding-right: 1rem; }
.lic-details[open] > summary { margin-bottom: 1.5rem; }
.lic-info-grid { display: grid; grid-template-columns: minmax(150px, .6fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.lic-info-grid dt { color: var(--bs-gray-600, #78829d); font-weight: 500; }
.lic-info-grid dd { margin: 0; overflow-wrap: anywhere; }
.lic-technical { border: 1px dashed var(--bs-gray-300, #dbdfe9); box-shadow: none; }
.lic-dialog-close { font-size: 1.9rem; line-height: 1; margin-left: auto; flex-shrink: 0; }
.modal-dialog-scrollable .lic-modal-form { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow: hidden; }
.lic-modal-form > .modal-body { min-height: 0; }
.lic-modal-form > .modal-footer { flex-shrink: 0; }
.licensing-app .modal-header h2 { margin-bottom: 0 !important; }
.licensing-app .modal-footer { gap: .5rem; }
.lic-validation:empty,
.licensing-app .validation-summary-valid,
.licensing-app .field-validation-valid { display: none; }
.lic-validation.validation-summary-errors,
.licensing-app .field-validation-error { color: var(--bs-danger, #f1416c); font-size: .95rem; }
.lic-validation.validation-summary-errors { padding: 1.25rem; border-radius: .65rem; background: var(--bs-danger-light, #fff5f8); }
.lic-validation ul { padding-left: 1.5rem; margin: 0; }
.licensing-app .input-validation-error { border-color: var(--bs-danger, #f1416c); }
.lic-password-field input { padding-right: 6rem; }
.lic-password-field > button { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); }
.lic-activation-card { max-width: 960px; margin-left: auto; margin-right: auto; text-align: center; }
.lic-activation-card > .lic-badge { margin-bottom: 1.5rem; align-self: center; }
.lic-activation-card > .lic-field { margin: 1.5rem 0; text-align: left; }
.lic-steps { list-style: none; counter-reset: activation; padding: 0; margin: 2rem auto; max-width: 620px; text-align: left; }
.lic-steps > li { counter-increment: activation; display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.2rem; color: var(--bs-gray-600, #78829d); line-height: 1.65; }
.lic-steps > li::before { content: counter(activation); flex-shrink: 0; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--bs-primary-light, #eef6ff); color: var(--bs-primary, #3e97ff); font-weight: 700; }
.lic-steps > li > span { display: block; min-width: 0; }
.lic-toast { position: fixed; right: 1.5rem; top: 1.5rem; z-index: 2500; pointer-events: none; max-width: min(440px, calc(100vw - 3rem)); padding: 1rem 1.5rem; background: var(--bs-gray-900, #071437); color: var(--bs-body-bg, #fff); border-radius: .65rem; box-shadow: 0 6px 24px #0002; overflow-wrap: anywhere; }
.licensing-app [aria-busy="true"] { cursor: progress; opacity: .75; }
/* Authentication pages use the same bundle; no separate admin/login framework. */
.licensing-auth { background: var(--bs-body-bg, #fff); }
.lic-auth-grid { width: 100%; max-width: 1500px; margin: auto; }
.lic-auth-aside { flex: 1 1 46%; max-width: 660px; }
.lic-auth-aside > p { max-width: 480px; line-height: 1.75; }
.lic-auth-feature { display: grid; place-items: center; width: 48px; height: 48px; flex-shrink: 0; border-radius: 12px; }
.lic-auth-main { flex: 1 1 54%; min-width: 0; }
.lic-auth-card { width: 100%; max-width: 540px; margin: 0 auto; border: 1px solid var(--bs-gray-200, #f1f1f4); box-shadow: 0 6px 28px #00000005; }
.lic-auth-card .lic-back-link { margin-top: 1.5rem; margin-bottom: 0 !important; }
.lic-auth-main > .alert { max-width: 540px; width: 100%; margin-left: auto; margin-right: auto; }
.lic-main > .lic-auth-card { margin-top: 2rem; }
@media (min-width: 992px) {
    [data-kt-app-sidebar-minimize="on"] #kt_app_sidebar:not(:hover) .lic-brand-label,
    [data-kt-app-sidebar-minimize="on"] #kt_app_sidebar:not(:hover) .lic-sidebar-info { display: none !important; }
}
@media (max-width: 1199px) {
    .lic-stats { gap: 1rem; }
    .lic-stat { padding: 1.5rem; }
    .lic-branch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
    .lic-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lic-auth-grid { max-width: 660px; }
    .lic-section-nav { column-gap: 1.4rem; }
}
@media (max-width: 767px) {
    .lic-two-columns { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .lic-branch-grid { grid-template-columns: minmax(0, 1fr); }
    .lic-search-form { width: 100%; max-width: none; min-width: 0; }
    .lic-page-heading > div:first-child { flex-basis: 100%; }
}
@media (max-width: 575px) {
    .lic-form-grid { grid-template-columns: minmax(0, 1fr); }
    .lic-checkbox-field { padding-top: 0; }
    .lic-stats { gap: .8rem; }
    .lic-stat { padding: 1.25rem; }
    .lic-stat > strong { font-size: 2.1rem; }
    .lic-stat > span { font-size: .85rem; }
    .lic-info-grid { grid-template-columns: minmax(0, 1fr); gap: .4rem; }
    .lic-info-grid dd { margin-bottom: 1rem; }
    .lic-branch-tile { grid-template-columns: 38px minmax(0, 1fr); }
    .lic-branch-tile > .badge { grid-column: 2; justify-self: start; }
    .lic-inline-form select { width: 100%; max-width: none; }
    .lic-notice-link { flex-wrap: wrap; }
    .lic-section-nav { font-size: .9rem !important; }
}
@media (prefers-reduced-motion: reduce) {
    .lic-branch-tile { transition: none; }
}
