/* Dutanarasi Premium UI
 * Shared visual system for public news pages and admin dashboard.
 * Designed to remain compatible with existing Laravel routes, Blade markup,
 * Atlantis components and Bootstrap utilities.
 */
:root {
    --dn-font: 'Manrope', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --dn-bg: #f6f8fb;
    --dn-surface: #ffffff;
    --dn-surface-soft: #fff9f1;
    --dn-ink: #10233f;
    --dn-ink-2: #31435d;
    --dn-muted: #7b8799;
    --dn-line: #e7ebf1;
    --dn-orange: #f28a1a;
    --dn-orange-dark: #d97108;
    --dn-blue: #2778f0;
    --dn-cyan: #35a7e8;
    --dn-green: #25b26b;
    --dn-purple: #7659d8;
    --dn-red: #e45050;
    --dn-shadow-sm: 0 6px 18px rgba(20, 42, 70, .06);
    --dn-shadow: 0 14px 36px rgba(20, 42, 70, .09);
    --dn-radius-sm: 12px;
    --dn-radius: 18px;
    --dn-radius-lg: 24px;
}

html {
    scroll-behavior: smooth;
}

body,
button,
input,
select,
textarea,
.tooltip,
.popover {
    font-family: var(--dn-font) !important;
}

body {
    color: var(--dn-ink-2);
    background: var(--dn-bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a {
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

/* ---------- Shared primitives ---------- */
.card,
.modal-content,
.dropdown-menu,
.list-group-item,
.accordion-item {
    border-color: var(--dn-line);
}

.card {
    border: 1px solid var(--dn-line) !important;
    border-radius: var(--dn-radius) !important;
    box-shadow: var(--dn-shadow-sm);
    background: var(--dn-surface);
    overflow: hidden;
}

.card-header,
.card-footer {
    background: transparent !important;
    border-color: var(--dn-line) !important;
}

.card-header {
    padding: 1rem 1.25rem !important;
}

.card-body {
    padding: 1.25rem;
}

.card-title,
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--dn-ink);
    letter-spacing: -.025em;
}

.form-control,
.form-select,
.custom-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    min-height: 44px;
    border: 1px solid #dfe5ed !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--dn-ink) !important;
    box-shadow: none !important;
}

textarea.form-control {
    min-height: 120px;
}

.form-control:focus,
.form-select:focus,
.custom-select:focus,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default .select2-selection--single:focus {
    border-color: rgba(242, 138, 26, .7) !important;
    box-shadow: 0 0 0 .22rem rgba(242, 138, 26, .12) !important;
}

.form-label,
label {
    color: var(--dn-ink-2);
    font-weight: 700;
}

.btn {
    border-radius: 11px !important;
    font-weight: 750;
    letter-spacing: -.01em;
    min-height: 38px;
}

.btn-primary,
.btn-danger.dn-primary,
.btn-warning.dn-primary {
    background: #438b08 !important;
    border-color: #67d10d !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-danger.dn-primary:hover,
.btn-warning.dn-primary:hover {
    background: var(--dn-orange-dark) !important;
    border-color: var(--dn-orange-dark) !important;
    box-shadow: 0 8px 18px rgba(242, 138, 26, .2) !important;
}

.btn-outline-primary {
    border-color: #dbe2eb !important;
    color: var(--dn-ink) !important;
    background: #fff !important;
}

.btn-outline-primary:hover,
.btn-outline-primary.active {
    border-color: rgba(242, 138, 26, .35) !important;
    background: #fff7ec !important;
    color: var(--dn-orange-dark) !important;
}

.badge,
.badge-primary,
.badge-secondary,
.badge-success,
.badge-info,
.badge-warning,
.badge-danger {
    border-radius: 999px;
    padding: .42rem .7rem;
    font-weight: 750;
}

.badge-primary {
    background: #fff1df !important;
    color: #c96800 !important;
}

.table {
    --bs-table-bg: transparent;
    color: var(--dn-ink-2);
    margin-bottom: 0;
}

.table thead th {
    background: #f8fafc !important;
    color: #526176 !important;
    border-bottom: 1px solid var(--dn-line) !important;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .055em;
    font-weight: 800;
    white-space: nowrap;
}

.table tbody td {
    border-color: #edf0f4 !important;
    vertical-align: middle;
}

.table tbody tr:hover {
    background: #fffaf3;
}

.table-responsive {
    border-radius: 14px;
}

.alert {
    border: 0;
    border-radius: 14px;
}

.modal-content {
    border: 0 !important;
    border-radius: 22px !important;
    box-shadow: 0 24px 70px rgba(14, 31, 52, .2);
}

.modal-header,
.modal-footer {
    border-color: var(--dn-line) !important;
}

.dropdown-menu {
    border-radius: 14px !important;
    padding: .55rem;
    box-shadow: var(--dn-shadow);
}

.dropdown-item {
    border-radius: 9px;
    padding: .55rem .7rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: #fff5e8;
    color: var(--dn-orange-dark);
}

.pagination .page-link {
    border: 1px solid var(--dn-line);
    color: var(--dn-ink-2);
    border-radius: 10px !important;
    margin: 0 .16rem;
}

.pagination .active .page-link,
.pagination .page-item.active .page-link {
    background: var(--dn-orange) !important;
    border-color: var(--dn-orange) !important;
}

/* ---------- Admin dashboard ---------- */
body.dn-admin {
    background: #f5f7fb !important;
}

.dn-admin .wrapper {
    background: #f5f7fb;
}

.dn-admin .main-header {
    box-shadow: 0 1px 0 var(--dn-line) !important;
}

.dn-admin .logo-header {
    max-width: 250px !important;
    background: #14233b !important;
    border-right: 1px solid rgba(255, 255, 255, .06);
    box-shadow: none !important;
}

.dn-admin .logo-header .logo {
    width: 178px;
}

.dn-admin .logo-header .navbar-brand {
    max-height: 42px;
    background: #fff !important;
    border-radius: 10px !important;
    padding: 5px 8px !important;
}

.dn-admin .navbar.navbar-header {
    /* min-height: 70px; */
    /* background: rgba(255, 255, 255, .98) !important; */
    color: var(--dn-ink) !important;
    border: 0 !important;
}

.dn-admin .navbar-header .nav-link,
.dn-admin .navbar-header i,
.dn-admin .navbar-header .profile-pic {
    color: var(--dn-ink-2) !important;
}

.dn-admin .dn-topbar-search {
    max-width: 520px;
    width: min(46vw, 520px);
    margin-left: 20px;
}

.dn-admin .dn-topbar-search .input-group {
    background: #f7f9fc;
    border: 1px solid #e6eaf0;
    border-radius: 13px;
    overflow: hidden;
}

.dn-admin .dn-topbar-search .input-group-text,
.dn-admin .dn-topbar-search .form-control {
    background: transparent !important;
    border: 0 !important;
    min-height: 42px;
}

.dn-admin .dn-admin-user {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding-left: .65rem;
    border-left: 1px solid var(--dn-line);
}

.dn-admin .dn-admin-user-copy {
    line-height: 1.15;
}

.dn-admin .dn-admin-user-copy strong {
    color: var(--dn-ink);
    display: block;
    font-size: .82rem;
}

.dn-admin .dn-admin-user-copy span {
    color: var(--dn-muted);
    font-size: .68rem;
}

.dn-admin .sidebar {
    max-width: 250px !important;
    /* background: #14233b !important; */
    box-shadow: 10px 0 30px rgba(16, 35, 63, .06) !important;
}

.dn-admin .sidebar .sidebar-wrapper {
    padding-top: 12px;
}

.dn-admin .sidebar .nav>.nav-item>a,
.dn-admin .sidebar .nav-collapse>li>a {
    color: #c7d0dd !important;
    border-radius: 11px;
    margin: 2px 12px;
    min-height: 43px;
}

.dn-admin .sidebar .nav>.nav-item>a i,
.dn-admin .sidebar .nav>.nav-item>a p,
.dn-admin .sidebar .nav-collapse>li>a .sub-item,
.dn-admin .sidebar .nav-item .caret {
    color: inherit !important;
}

.dn-admin .sidebar .nav>.nav-item>a:hover,
.dn-admin .sidebar .nav-collapse>li>a:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, .07) !important;
}

.dn-admin .sidebar .nav>.nav-item.active>a,
.dn-admin .sidebar .nav-collapse>li.active>a {
    color: #fff !important;
    background: var(--dn-orange) !important;
    box-shadow: 0 8px 20px rgba(242, 138, 26, .22);
}

.dn-admin .sidebar .nav-section .text-section {
    color: #75849a !important;
    font-size: .68rem;
    letter-spacing: .09em;
    margin-left: 8px;
}

.dn-admin .main-panel {
    max-width: calc(100% - 250px) !important;
    background: #f5f7fb !important;
}

.dn-admin .main-panel>.content {
    padding-top: 70px !important;
    min-height: calc(100vh - 70px);
}

.dn-admin .panel-header.dn-admin-hero {
    min-height: auto !important;
    padding: 22px 0 2px !important;
    background: transparent !important;
    border: 0 !important;
}

.dn-admin .dn-admin-hero .page-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.dn-admin .dn-welcome-card {
    position: relative;
    overflow: hidden;
    min-height: 136px;
    background: #fff8ee;
    border: 1px solid #f6e8d6;
    border-radius: 22px;
    padding: 24px 26px;
    box-shadow: 0 10px 30px rgba(66, 43, 15, .05);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}

.dn-admin .dn-welcome-card::after {
    content: '';
    position: absolute;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    right: -60px;
    top: -90px;
    background: rgba(242, 138, 26, .10);
}

.dn-admin .dn-eyebrow {
    color: var(--dn-orange-dark);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 800;
    font-size: .67rem;
    margin-bottom: 6px;
}

.dn-admin .dn-welcome-title {
    color: #11233e !important;
    font-size: clamp(1.55rem, 2.3vw, 2.4rem);
    font-weight: 800;
    margin: 0;
    letter-spacing: -.04em;
}

.dn-admin .dn-welcome-copy {
    color: #68758a;
    margin: .35rem 0 0;
    max-width: 680px;
    font-size: .88rem;
}

.dn-admin .dn-welcome-meta {
    position: relative;
    z-index: 1;
    min-width: 210px;
    text-align: right;
}

.dn-admin .dn-welcome-meta small {
    color: #8792a4;
    display: block;
    font-weight: 650;
    margin-bottom: 4px;
}

.dn-admin .dn-welcome-meta strong {
    color: var(--dn-ink);
    font-size: .9rem;
}

.dn-admin .page-inner {
    max-width: 1560px;
    margin-inline: auto;
}

.dn-admin .card {
    margin-bottom: 1rem;
}

.dn-admin .card .card-title {
    font-weight: 800;
}

.dn-admin .card-stats {
    min-height: 122px;
    color: var(--dn-ink) !important;
    border: 1px solid var(--dn-line) !important;
    box-shadow: var(--dn-shadow-sm) !important;
}

.dn-admin .card-stats.card-primary {
    background: #fff7ee !important;
}

.dn-admin .card-stats.card-info {
    background: #eff7ff !important;
}

.dn-admin .card-stats.card-success {
    background: #effbf4 !important;
}

.dn-admin .card-stats.card-secondary {
    background: #f5f2ff !important;
}

.dn-admin .card-stats .card-body {
    padding: 1.1rem 1.2rem !important;
}

.dn-admin .card-stats .icon-big {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .75);
    font-size: 1.7rem;
}

.dn-admin .card-stats.card-primary .icon-big {
    color: var(--dn-orange) !important;
}

.dn-admin .card-stats.card-info .icon-big {
    color: var(--dn-blue) !important;
}

.dn-admin .card-stats.card-success .icon-big {
    color: var(--dn-green) !important;
}

.dn-admin .card-stats.card-secondary .icon-big {
    color: var(--dn-purple) !important;
}

.dn-admin .card-stats .card-category {
    color: #66758a !important;
    font-size: .78rem;
    font-weight: 700;
    margin-bottom: .15rem;
}

.dn-admin .card-stats .card-title {
    color: var(--dn-ink) !important;
    font-size: 1.55rem;
    font-weight: 850;
    line-height: 1.15;
}

.dn-admin .card-header {
    min-height: 60px;
    display: flex;
    align-items: center;
}

.dn-admin .card-header .card-title {
    font-size: 1rem;
}

.dn-admin .nav-tabs .nav-link {
    border: 0 !important;
    color: var(--dn-muted);
    font-weight: 700;
}

.dn-admin .nav-tabs .nav-link.active {
    color: var(--dn-orange-dark) !important;
    border-bottom: 2px solid var(--dn-orange) !important;
    background: transparent !important;
}

.dn-admin .selectgroup-button {
    border-radius: 10px !important;
}

.dn-admin .selectgroup-input:checked+.selectgroup-button {
    background: #fff5e9 !important;
    border-color: rgba(242, 138, 26, .35) !important;
    color: var(--dn-orange-dark) !important;
}

.dn-admin .cke_chrome {
    border: 1px solid var(--dn-line) !important;
    border-radius: 14px !important;
    overflow: hidden;
    box-shadow: none !important;
}

.dn-admin .footer {
    background: transparent !important;
    border-top: 1px solid var(--dn-line);
    color: var(--dn-muted);
}

/* ---------- Public news website ---------- */
body.dn-public {
    background: #fff !important;
    color: #33445a;
}

.dn-public>.main-header,
.dn-public nav.main-header {
    background: rgba(255, 255, 255, .98) !important;
    color: var(--dn-ink) !important;
    border-bottom: 1px solid #edf0f4;
    box-shadow: 0 8px 28px rgba(21, 39, 63, .05) !important;
}

.dn-public nav.main-header.d-none.d-sm-block {
    min-height: 102px !important;
}

.dn-public nav.main-header .navbar-brand img,
.dn-public .logo-header .navbar-brand,
.dn-public .logo-header .logo img {
    background: #fff !important;
}

.dn-public nav.main-header .navbar-nav>.nav-item>a,
.dn-public nav.main-header .btn-link,
.dn-public nav.main-header .dropbtn {
    color: var(--dn-ink-2) !important;
}

.dn-public nav.main-header .navbar-nav>.nav-item>a:hover,
.dn-public nav.main-header .btn-link:hover,
.dn-public nav.main-header .dropbtn:hover {
    color: var(--dn-orange-dark) !important;
}

.dn-public #headerFix {
    background: rgba(255, 255, 255, .98) !important;
    border: 1px solid #ebeff4;
    border-radius: 14px !important;
    box-shadow: 0 12px 30px rgba(21, 39, 63, .06);
}

.dn-public #headerFix.fixed {
    border-radius: 0 0 14px 14px !important;
}

.dn-public .dropdown,
.dn-public .dropdown-content {
    background: #fff !important;
}

.dn-public .dropdown-content {
    border: 1px solid var(--dn-line);
    border-radius: 12px;
    padding: .4rem;
    box-shadow: var(--dn-shadow);
}

.dn-public .dropdown-content a {
    border-radius: 8px;
}

.dn-public .dropdown-content a:hover {
    background: #fff5e7;
    color: var(--dn-orange-dark);
}

.dn-public .dn-public-shell {
    max-width: 1220px !important;
    margin-inline: auto;
    padding-inline: 16px !important;
}

.dn-public .card {
    box-shadow: 0 8px 28px rgba(24, 43, 67, .055);
}

.dn-public .card img,
.dn-public .img-fluid,
.dn-public .card-img,
.dn-public .card-img-top {
    object-fit: cover;
}

.dn-public .card-img-top,
.dn-public .card>a:first-child img,
.dn-public .article-cover {
    border-radius: 14px;
}

.dn-public .section-header,
.dn-public header.section-header {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin: 1.2rem 0 .9rem;
}

.dn-public .section-header::before,
.dn-public header.section-header::before {
    content: '';
    width: 28px;
    height: 3px;
    border-radius: 99px;
    background: #42870a;
}

.dn-public .section-header .card-title,
.dn-public header.section-header .card-title {
    margin: 0 !important;
    font-weight: 850 !important;
}

.dn-public .article-container,
.dn-public .ukuranText-artikel {
    color: #2f4056 !important;
    background: #fff !important;
    line-height: 1.85;
    font-size: 1rem !important;
}

.dn-public .article-container p,
.dn-public .ukuranText-artikel p {
    text-align: justify;
    text-justify: inter-word;
    margin-bottom: 1.15em;
}

.dn-public .article-container h1,
.dn-public .article-container h2,
.dn-public .article-container h3,
.dn-public .ukuranText-artikel h1,
.dn-public .ukuranText-artikel h2,
.dn-public .ukuranText-artikel h3 {
    color: var(--dn-ink) !important;
    font-weight: 800;
    margin-top: 1.35em;
}

.dn-public .article-container img,
.dn-public .ukuranText-artikel img {
    max-width: 100%;
    height: auto;
    border-radius: 14px;
}

.dn-public .breadcrumb {
    background: transparent !important;
    padding-left: 0;
}

.dn-public .breadcrumb-item a {
    color: var(--dn-orange-dark);
}

.dn-public .list-group-item {
    background: #fff;
}

.dn-public .modal .btn-primary {
    background: var(--dn-orange) !important;
}

.dn-public .divider::before,
.dn-public .divider::after {
    border-color: var(--dn-line) !important;
}

.dn-public footer,
.dn-public footer+nav,
.dn-public nav.navbar.mt-5 {
    background: #12213a !important;
}

.dn-public nav.navbar.mt-5>.container {
    background: #12213a !important;
    border-radius: 24px 24px 0 0;
}

.dn-public nav.navbar.mt-5 a,
.dn-public nav.navbar.mt-5 p,
.dn-public nav.navbar.mt-5 .card-title {
    color: #e9eef6 !important;
}

.dn-public nav.navbar.mt-5 a:hover {
    color: #ffb154 !important;
}

.dn-public .dn-content-page {
    background: #fff;
    border: 1px solid var(--dn-line);
    border-radius: 20px;
    padding: clamp(1.15rem, 3vw, 2rem);
    box-shadow: var(--dn-shadow-sm);
    color: #33445a;
}

.dn-public .dn-content-page p {
    text-align: justify;
    line-height: 1.85;
}

/* Auth pages */
.dn-public .form-signin,
.dn-public .dn-auth-card {
    max-width: 520px;
    margin-inline: auto;
}

.dn-public .form-signin .card,
.dn-public .dn-auth-card .card {
    border-radius: 22px !important;
}

/* Dark mode remains available but is intentionally quiet and readable. */
body.dn-public[data-background-color='dark'],
body.dn-admin[data-background-color='dark'] {
    --dn-bg: #101722;
    --dn-surface: #172131;
    --dn-surface-soft: #1d2532;
    --dn-ink: #f4f7fb;
    --dn-ink-2: #d6deea;
    --dn-muted: #94a1b3;
    --dn-line: #273346;
    background: #101722 !important;
    color: #d6deea;
}

body.dn-public[data-background-color='dark'] .card,
body.dn-admin[data-background-color='dark'] .card,
body.dn-public[data-background-color='dark'] .modal-content,
body.dn-admin[data-background-color='dark'] .modal-content,
body.dn-public[data-background-color='dark'] .dropdown-menu,
body.dn-admin[data-background-color='dark'] .dropdown-menu,
body.dn-public[data-background-color='dark'] .form-control,
body.dn-admin[data-background-color='dark'] .form-control,
body.dn-public[data-background-color='dark'] .form-select,
body.dn-admin[data-background-color='dark'] .form-select {
    background: #172131 !important;
    color: #e8edf5 !important;
    border-color: #2b394e !important;
}

body.dn-public[data-background-color='dark'] h1,
body.dn-public[data-background-color='dark'] h2,
body.dn-public[data-background-color='dark'] h3,
body.dn-public[data-background-color='dark'] h4,
body.dn-public[data-background-color='dark'] h5,
body.dn-admin[data-background-color='dark'] h1,
body.dn-admin[data-background-color='dark'] h2,
body.dn-admin[data-background-color='dark'] h3,
body.dn-admin[data-background-color='dark'] h4,
body.dn-admin[data-background-color='dark'] h5 {
    color: #f4f7fb !important;
}

/* ---------- Responsive ---------- */
@media (max-width: 1199.98px) {
    .dn-admin .dn-topbar-search {
        display: none;
    }
}

@media (max-width: 991.98px) {

    .dn-admin .logo-header,
    .dn-admin .sidebar {
        width: 240px !important;
    }

    .dn-admin .main-panel {
        width: 100% !important;
    }

    .dn-admin .dn-welcome-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .dn-admin .dn-welcome-meta {
        text-align: left;
        min-width: 0;
    }

    .dn-public .dn-public-shell {
        padding-inline: 12px !important;
    }
}

@media (max-width: 767.98px) {
    :root {
        --dn-radius: 15px;
        --dn-radius-lg: 19px;
    }

    .card-body {
        padding: 1rem;
    }

    .dn-admin .main-panel>.content {
        padding-top: 62px !important;
    }

    .dn-admin .panel-header.dn-admin-hero {
        padding-top: 14px !important;
    }

    .dn-admin .dn-welcome-card {
        padding: 18px;
        min-height: 0;
        border-radius: 18px;
    }

    .dn-admin .dn-welcome-title {
        font-size: 1.55rem;
    }

    .dn-public .main-header.d-block.d-sm-none .logo-header {
        background: #fff !important;
        border-bottom: 1px solid var(--dn-line);
    }

    .dn-public .main-header.d-block.d-sm-none .logo-header i {
        color: var(--dn-ink) !important;
    }

    .dn-public .article-container,
    .dn-public .ukuranText-artikel {
        font-size: .96rem !important;
        line-height: 1.78;
    }
}

@media print {

    .dn-public nav,
    .dn-public footer,
    .dn-admin .main-header,
    .dn-admin .sidebar,
    .dn-admin .footer {
        display: none !important;
    }

    body,
    .dn-public,
    .dn-admin,
    .card {
        background: #fff !important;
        color: #111 !important;
        box-shadow: none !important;
    }
}

/* Public header v2 */
.dn-public .dn-site-header {
    z-index: 1040;
    border-bottom: 1px solid #edf0f4;
    box-shadow: 0 8px 28px rgba(21, 39, 63, .045);
}

.dn-public .dn-site-header .navbar-brand img {
    display: block;
}

.dn-public .dn-site-header .nav-link {
    color: var(--dn-ink-2) !important;
    border-radius: 10px;
}

.dn-public .dn-site-header .nav-link:hover,
.dn-public .dn-site-header .nav-link.active {
    color: var(--dn-orange-dark) !important;
    background: #fff7ec;
}

.dn-public .dn-site-header .dropdown {
    margin: 0;
    background: transparent !important;
}

.dn-public .dn-site-header .dropdown-menu {
    min-width: 210px;
}

.dn-public .dn-site-header .btn-sm {
    min-height: 34px;
    padding-inline: .78rem;
}

.dn-public .dn-public-shell {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.dn-public .dn-public-shell [style*="background:black"],
.dn-public .dn-public-shell [style*="background: black"],
.dn-public .dn-public-shell [style*="background-color:black"],
.dn-public .dn-public-shell [style*="background-color: black"] {
    background: #ffffff !important;
    color: #33445a !important;
}

.dn-public .dn-public-shell [style*="color:white"],
.dn-public .dn-public-shell [style*="color: white"] {
    color: var(--dn-ink-2) !important;
}

@media (max-width: 991.98px) {
    .dn-public .dn-site-header .navbar-collapse {
        margin-top: .5rem;
        border-top: 1px solid var(--dn-line);
    }
}

/* Normalize legacy page spacing to fit the new compact header. */
.dn-public .dn-public-shell [style*="padding-top:70px"],
.dn-public .dn-public-shell [style*="padding-top: 70px"] {
    padding-top: 1rem !important;
}

.dn-public .dn-public-shell [style*="margin-top:100px"],
.dn-public .dn-public-shell [style*="margin-top: 100px"],
.dn-public .dn-public-shell [style*="margin-top:130px"],
.dn-public .dn-public-shell [style*="margin-top: 130px"],
.dn-public .dn-public-shell [style*="margin-top:150px"],
.dn-public .dn-public-shell [style*="margin-top: 150px"],
.dn-public .dn-public-shell [style*="margin-top:200px"],
.dn-public .dn-public-shell [style*="margin-top: 200px"],
.dn-public .dn-public-shell [style*="margin-top:250px"],
.dn-public .dn-public-shell [style*="margin-top: 250px"] {
    margin-top: 2rem !important;
}

.dn-public .dn-public-shell [style*="margin-bottom:200px"],
.dn-public .dn-public-shell [style*="margin-bottom: 200px"] {
    margin-bottom: 3rem !important;
}

.dn-public .dn-public-shell>.row.justify-content-center.p-5 {
    padding: 1rem !important;
}

/* Unified theme tokens and responsive shell. Keep after the legacy theme rules. */
:root {
    --dn-bg: #f5f7fb;
    --dn-muted: #66758a;
    --dn-field: #ffffff;
    --dn-hover: #fff4e5;
    --dn-sidebar: #14233b;
    --dn-sidebar-ink: #dce5f2;
    --dn-stat-orange: #fff5e8;
    --dn-stat-blue: #edf5ff;
    --dn-stat-green: #ecf9f1;
    --dn-stat-purple: #f4efff;
}

html[data-dn-theme='dark'],
body[data-background-color='dark'] {
    --dn-bg: #101722;
    --dn-surface: #172131;
    --dn-surface-soft: #202c3c;
    --dn-field: #1b283a;
    --dn-ink: #f4f7fb;
    --dn-ink-2: #d6deea;
    --dn-muted: #a5b3c6;
    --dn-line: #344258;
    --dn-hover: #2d3542;
    --dn-sidebar: #111c2d;
    --dn-orange-dark: #ffb45f;
    --dn-stat-orange: #34291f;
    --dn-stat-blue: #192f48;
    --dn-stat-green: #18372f;
    --dn-stat-purple: #2e2546;
}

html[data-dn-theme] body.dn-admin,
html[data-dn-theme] body.dn-public,
.dn-admin .wrapper,
.dn-admin .main-panel {
    background: var(--dn-bg) !important;
    color: var(--dn-ink-2);
}

.dn-admin .dn-shell {
    --dn-sidebar-width: 250px;
    min-height: 100vh;
}

.dn-admin .dn-shell.dn-sidebar-collapsed {
    --dn-sidebar-width: 80px;
}

.dn-admin .main-header {
    position: fixed;
    inset: 0 0 auto;
    width: 100%;
    height: 72px;
    display: flex;
    z-index: 1030;
    background: var(--dn-surface) !important;
}

.dn-admin .logo-header {
    width: var(--dn-sidebar-width) !important;
    max-width: none !important;
    flex: 0 0 var(--dn-sidebar-width);
    height: 72px !important;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    float: none;
    background: var(--dn-sidebar) !important;
}

.dn-admin .logo-header .logo {
    width: auto;
    min-width: 0;
    float: none;
    line-height: 1;
}

.dn-admin .logo-header .navbar-brand {
    width: 174px;
    max-width: 100%;
    margin: 0;
    height: auto;
}

.dn-admin .dn-sidebar-toggle {
    color: #fff !important;
    padding: 0;
    width: 38px;
    flex: 0 0 38px;
    font-size: 24px;
    background: transparent;
}

.dn-admin .navbar.navbar-header {
    flex: 1;
    min-width: 0;
    width: auto !important;
    float: none;
    margin: 0 !important;
    position: static !important;
    height: 72px;
    padding: 0 20px;
    background: var(--dn-surface) !important;
    box-shadow: none;
    transform: none !important;
    display: flex !important;
}

.dn-admin .navbar-header .container-fluid {
    padding: 0;
    flex-wrap: nowrap;
    gap: 12px;
}

.dn-admin .navbar-header .topbar-nav {
    margin-left: auto !important;
    flex-shrink: 0;
}

.dn-admin .dn-topbar-search {
    width: min(38vw, 520px);
    margin: 0;
}

.dn-admin .dn-topbar-search .input-group {
    background: var(--dn-field);
    border-color: var(--dn-line);
}

.dn-admin .sidebar {
    position: fixed;
    top: 72px;
    bottom: 0;
    left: 0;
    margin: 0 !important;
    width: var(--dn-sidebar-width) !important;
    max-width: none !important;
    height: calc(100dvh - 72px);
    background: var(--dn-sidebar) !important;
    transform: none;
    z-index: 1025;
}

.dn-admin .sidebar .sidebar-wrapper {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow-y: auto;
}

.dn-admin .sidebar .user .info a,
.dn-admin .sidebar .user .info span {
    color: var(--dn-sidebar-ink) !important;
    overflow-wrap: anywhere;
}

.dn-admin .sidebar .nav-section .text-section {
    color: #a4b3c7 !important;
}

.dn-admin .main-panel {
    float: none !important;
    position: relative;
    width: calc(100% - var(--dn-sidebar-width)) !important;
    max-width: none !important;
    margin-left: var(--dn-sidebar-width) !important;
    min-height: 100vh;
}

.dn-admin .main-panel>.content {
    margin-top: 0 !important;
    padding-top: 72px !important;
}

.dn-admin .page-inner {
    width: 100%;
    padding: 24px;
}

.dn-admin .dn-admin-hero {
    margin: 0 !important;
}

.dn-admin .dn-welcome-card {
    background: var(--dn-surface-soft);
    border-color: var(--dn-line);
    gap: 24px;
}

.dn-admin .dn-welcome-card>div {
    min-width: 0;
}

.dn-admin .dn-welcome-title {
    color: var(--dn-ink) !important;
    overflow-wrap: anywhere;
}

.dn-admin .dn-welcome-copy,
.dn-admin .dn-welcome-meta small {
    color: var(--dn-muted);
}

.dn-admin .dn-sidebar-collapsed .logo-header .logo,
.dn-admin .dn-sidebar-collapsed .sidebar .user,
.dn-admin .dn-sidebar-collapsed .sidebar .nav-item>a p,
.dn-admin .dn-sidebar-collapsed .sidebar .nav-item>a .caret,
.dn-admin .dn-sidebar-collapsed .sidebar .nav-section,
.dn-admin .dn-sidebar-collapsed .sidebar .nav-collapse {
    display: none;
}

.dn-admin .dn-sidebar-collapsed .sidebar .nav-item>a {
    margin-inline: 10px;
    justify-content: center;
    padding: 12px;
}

.dn-admin .dn-sidebar-collapsed .sidebar .nav-item>a i {
    margin-right: 0;
}

.dn-sidebar-backdrop {
    display: none;
}

.dn-admin .card {
    overflow: visible;
}

.dn-admin .card-header {
    flex-wrap: wrap;
    gap: 12px;
}

.dn-admin .card-header>.d-flex {
    width: 100%;
    flex-wrap: wrap;
    gap: 12px;
}

.dn-admin .row>[class*='col-'] {
    min-width: 0;
}

.dn-admin .card-stats.card-primary {
    background: var(--dn-stat-orange) !important;
}

.dn-admin .card-stats.card-info {
    background: var(--dn-stat-blue) !important;
}

.dn-admin .card-stats.card-success {
    background: var(--dn-stat-green) !important;
}

.dn-admin .card-stats.card-secondary {
    background: var(--dn-stat-purple) !important;
}

.dn-admin .card-stats .icon-big {
    background: var(--dn-surface);
    width: 52px;
    height: 52px;
}

.dn-admin .card-stats .icon-big i {
    color: inherit !important;
}

.dn-admin .card-stats .card-category {
    color: var(--dn-muted) !important;
}

.dn-admin .card-stats .row {
    align-items: center;
}

.dn-admin .card-stats .col-5 {
    flex: 0 0 70px;
    max-width: 70px;
}

.dn-admin .card-stats .col-7 {
    flex: 1;
    max-width: none;
    padding-left: 8px;
}

.dn-chart-body {
    height: 380px;
    position: relative;
}

.dn-chart-donut {
    height: 300px;
    position: relative;
}

#tagsLegend .legend-item {
    padding: 8px 0;
    border-bottom: 1px solid var(--dn-line);
}

.legend-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.legend-dot {
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.legend-label {
    overflow-wrap: anywhere;
}

.legend-val {
    display: block;
    margin-left: 17px;
    color: var(--dn-ink);
}

/* Components shared by lists, forms, account pages, articles, and dialogs. */
html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.card, .modal-content, .dropdown-menu, .list-group-item, .accordion-item, .popover, .dn-content-page) {
    background-color: var(--dn-surface) !important;
    color: var(--dn-ink-2);
    border-color: var(--dn-line) !important;
}

html[data-dn-theme] .dn-admin .card-stats.card-primary {
    background: var(--dn-stat-orange) !important;
}

html[data-dn-theme] .dn-admin .card-stats.card-info {
    background: var(--dn-stat-blue) !important;
}

html[data-dn-theme] .dn-admin .card-stats.card-success {
    background: var(--dn-stat-green) !important;
}

html[data-dn-theme] .dn-admin .card-stats.card-secondary {
    background: var(--dn-stat-purple) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.form-control, .form-select, .custom-select, .input-group-text, .select2-selection, .select2-dropdown, .select2-search__field, .selectgroup-button) {
    background: var(--dn-field) !important;
    color: var(--dn-ink) !important;
    border-color: var(--dn-line) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.select2-selection__rendered, .select2-results__option, .dropdown-item, .form-check-label, .dataTables_info, .dataTables_length, .dataTables_filter) {
    color: var(--dn-ink-2) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.text-muted, .text-secondary, .card-category, small.text-muted) {
    color: var(--dn-muted) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.text-dark, .text-black, .card-title) {
    color: var(--dn-ink) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.bg-white, .bg-light, .bg-body, .bg-body-tertiary, .article-container, .ukuranText-artikel) {
    background-color: var(--dn-surface) !important;
    color: var(--dn-ink-2) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.btn-outline-primary, .btn-light, .page-link) {
    background: var(--dn-field) !important;
    color: var(--dn-ink-2) !important;
    border-color: var(--dn-line) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.dropdown-item:hover, .page-link:hover, .btn-outline-primary:hover, .btn-outline-primary.active) {
    background: var(--dn-hover) !important;
    color: #94fb68 !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) .table {
    color: var(--dn-ink-2);
    --bs-table-color: var(--dn-ink-2);
    --bs-table-striped-color: var(--dn-ink-2);
    --bs-table-hover-color: var(--dn-ink);
    --bs-table-hover-bg: var(--dn-hover);
    --bs-table-striped-bg: var(--dn-surface-soft);
}

html[data-dn-theme] :is(.dn-admin, .dn-public) .table thead th {
    background: var(--dn-surface-soft) !important;
    color: var(--dn-muted) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) .table :is(td, th) {
    border-color: var(--dn-line) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) .table tbody tr:hover {
    background: var(--dn-hover) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) .table-striped tbody tr:nth-of-type(odd) {
    background: var(--dn-surface-soft);
}

html[data-dn-theme] .dn-admin .selectgroup-input:checked+.selectgroup-button {
    background: var(--dn-hover) !important;
    color: var(--dn-orange-dark) !important;
    border-color: var(--dn-orange) !important;
}

html[data-dn-theme] .dn-admin .selectgroup-input:checked+.selectgroup-button i {
    color: inherit !important;
}

:is(.dn-admin, .dn-public) :is(input, textarea)::placeholder {
    color: var(--dn-muted) !important;
    opacity: 1;
}

:is(.dn-admin, .dn-public) :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--dn-orange);
    outline-offset: 3px;
}

.selectgroup-input:focus-visible+.selectgroup-button {
    outline: 3px solid var(--dn-orange);
    outline-offset: 2px;
}

.select2-container {
    max-width: 100%;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--dn-blue);
    color: #fff !important;
}

html[data-dn-theme='dark'] .select2-selection__choice {
    background: var(--dn-surface-soft) !important;
    border-color: var(--dn-line) !important;
    color: var(--dn-ink) !important;
}

html[data-dn-theme='dark'] :is(.cke_top, .cke_bottom, .cke_contents, .cke_chrome, .cke_toolbar, .cke_combo_button) {
    background: var(--dn-surface-soft) !important;
    border-color: var(--dn-line) !important;
}

html[data-dn-theme='dark'] :is(.cke_button_icon, .cke_combo_arrow) {
    filter: invert(1);
}

html[data-dn-theme='dark'] :is(.cke_combo_text, .cke_path_item, .cke_button_label, .close) {
    color: var(--dn-ink) !important;
    text-shadow: none;
}

html[data-dn-theme='dark'] .cke_button:hover {
    background: #43516a !important;
}

html[data-dn-theme] .dn-public :is(.dn-site-header, .dn-site-header nav, #headerFix, .dropdown-content) {
    background: var(--dn-surface) !important;
    border-color: var(--dn-line) !important;
}

html[data-dn-theme] .dn-public .dn-public-shell :is([style*='background:black'], [style*='background: black'], [style*='background-color:black'], [style*='background-color: black']) {
    background: var(--dn-surface) !important;
    color: var(--dn-ink-2) !important;
}

html[data-dn-theme='dark'] .dn-public .article-container :is(p, span),
html[data-dn-theme='dark'] .dn-public .ukuranText-artikel :is(p, span) {
    color: inherit !important;
}

html[data-dn-theme='dark'] :is(.dn-admin, .dn-public) .alert-info {
    background: #183449;
    color: #c2e8ff;
}

html[data-dn-theme='dark'] :is(.dn-admin, .dn-public) .alert-success {
    background: #193c30;
    color: #bdedd3;
}

html[data-dn-theme='dark'] :is(.dn-admin, .dn-public) .alert-warning {
    background: #44351b;
    color: #ffe0a0;
}

html[data-dn-theme='dark'] :is(.dn-admin, .dn-public) .alert-danger {
    background: #44242a;
    color: #ffcbd1;
}

.dn-public .dn-site-header .navbar {
    float: none;
    width: 100%;
}

.dn-public .dn-site-header .navbar-brand {
    max-width: calc(100% - 120px);
}

.dn-public .dn-site-header .navbar-brand img {
    max-width: 100%;
    height: auto;
}

.table-responsive {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.dn-admin .dataTables_wrapper {
    min-width: 0;
    width: 100%;
}

.dn-admin .dataTables_wrapper .row {
    flex-wrap: wrap;
}

.dn-admin .pagination {
    flex-wrap: wrap;
    gap: 4px;
}

.dn-admin .footer {
    padding: 16px 24px;
}

@media (min-width: 992px) {
    .dn-admin .dn-sidebar-collapsed .logo-header {
        justify-content: center;
    }
}

@media (max-width: 991.98px) {

    .dn-admin .dn-shell,
    .dn-admin .dn-shell.dn-sidebar-collapsed {
        --dn-sidebar-width: 260px;
    }

    .dn-admin .main-panel {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        transform: none !important;
    }

    .dn-admin .main-header {
        height: 64px;
    }

    .dn-admin .logo-header {
        width: auto !important;
        max-width: 230px !important;
        flex: 0 1 230px;
        height: 64px !important;
        gap: 8px;
        padding: 0 12px;
    }

    .dn-admin .logo-header .navbar-brand {
        width: 150px;
    }

    .dn-admin .navbar.navbar-header {
        height: 64px;
        padding: 0 12px;
    }

    .dn-admin .main-panel>.content {
        padding-top: 64px !important;
    }

    .dn-admin .sidebar {
        top: 64px;
        height: calc(100dvh - 64px);
        transform: translateX(-100%) !important;
        visibility: hidden;
        transition: transform .2s ease, visibility .2s;
    }

    .dn-admin .dn-sidebar-open .sidebar {
        transform: translateX(0) !important;
        visibility: visible;
    }

    .dn-admin .dn-sidebar-open .dn-sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 64px 0 0;
        z-index: 1020;
        background: #07101c88;
        border: 0;
        width: 100%;
    }

    body.dn-menu-open {
        overflow: hidden;
    }

    .dn-admin .dn-admin-user-copy {
        display: none !important;
    }

    .dn-admin .page-inner {
        padding: 18px;
    }

    .dn-admin .dn-welcome-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .dn-admin .dn-welcome-meta {
        text-align: left;
        min-width: 0;
    }

    .dn-admin .dn-sidebar-collapsed .logo-header .logo {
        display: block;
    }

    .dn-admin .dn-topbar-search {
        display: none !important;
    }
}

@media (max-width: 575.98px) {
    .dn-admin .logo-header {
        flex: 1 1 165px;
        min-width: 0;
        padding: 0 8px;
    }

    .dn-admin .logo-header .navbar-brand {
        width: 118px;
        padding: 4px !important;
    }

    .dn-admin .navbar.navbar-header {
        flex: 0 0 auto;
        padding: 0 6px;
    }

    .dn-admin .navbar-header .nav-link {
        padding: 8px !important;
    }

    .dn-admin .navbar-header .selectgroup-button {
        padding: 8px !important;
        min-width: 32px;
    }

    .dn-admin .navbar-header .btn-group {
        margin-right: 3px !important;
    }

    .dn-admin .dn-admin-user {
        padding-left: 5px;
    }

    .dn-admin .dn-admin-user .avatar-sm {
        width: 30px;
        height: 30px;
    }

    .dn-admin .page-inner {
        padding: 12px;
    }

    .dn-admin .dn-welcome-card {
        padding: 18px;
    }

    .dn-admin .dn-welcome-title {
        font-size: 1.6rem;
    }

    .dn-admin .card-header,
    .dn-admin .card-body {
        padding: 16px !important;
    }

    .dn-admin .card-stats {
        min-height: 100px;
    }

    .dn-admin .dropdown-user {
        position: absolute !important;
        left: auto !important;
        right: 0 !important;
        width: min(300px, calc(100vw - 24px));
    }

    .dn-chart-body {
        height: 300px;
    }

    .dn-chart-donut {
        height: 260px;
        margin-top: 16px;
    }

    .dn-admin .footer .container-fluid {
        flex-wrap: wrap;
        gap: 8px;
    }

    .dn-public .dn-public-shell>.row.justify-content-center.p-5 {
        padding: 0 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}

@media print {
    .dn-admin .main-panel {
        width: 100% !important;
        margin: 0 !important;
    }

    .dn-admin .main-panel>.content {
        padding: 0 !important;
    }

    .dn-admin .dn-sidebar-backdrop {
        display: none !important;
    }
}

html[data-dn-theme] body.dn-admin :is(.wrapper, .main-panel, .main-panel > .content) {
    background: var(--dn-bg) !important;
    color: var(--dn-ink-2) !important;
}

html[data-dn-theme] body.dn-admin :is(.main-header, .navbar.navbar-header) {
    background: var(--dn-surface) !important;
}

.dn-admin .main-header .logo-header .logo {
    position: static !important;
    height: auto !important;
    display: flex;
    align-items: center;
}

.dn-admin .dn-sidebar-collapsed .main-header .logo-header .logo {
    display: none;
}

.dn-admin .sidebar.sidebar-style-sisiKota .nav.nav-primary>.nav-item.active>a {
    background: var(--dn-orange) !important;
    background-image: none !important;
    border-radius: 11px;
}

@media(max-width:991.98px) {
    .dn-admin .main-header .logo-header .logo {
        order: 0;
    }

    .dn-admin .dn-sidebar-toggle {
        order: 1;
    }
}

.dn-admin .main-header .logo-header .logo {
    transform: none !important;
    left: auto !important;
    top: auto !important;
    margin: 0 !important;
}

html[data-dn-theme='dark'] .dn-admin :is(.cke_toolgroup, .cke_button, .cke_combo_button) {
    background: var(--dn-surface-soft) !important;
    background-image: none !important;
    border-color: var(--dn-line) !important;
    box-shadow: none !important;
}

html[data-dn-theme] body.dn-admin .main-panel :is(.form-control, .form-select, .custom-select) {
    border-color: var(--dn-line) !important;
}

.dn-admin hr {
    border-color: var(--dn-line);
}

.dn-admin .sidebar .user {
    border-color: #ffffff18;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) .card.bg-dark,
html[data-dn-theme] :is(.dn-admin, .dn-public) .card.bg-dark .text-white {
    color: var(--dn-ink) !important;
}

html[data-dn-theme] :is(.dn-admin, .dn-public) :is(.form-control:disabled, .form-control[readonly]) {
    background: var(--dn-surface-soft) !important;
    color: var(--dn-muted) !important;
}

@media(max-width:575.98px) {
    .dn-admin .page-inner {
        padding-inline: 16px;
    }
}