:root {
    --sim-blue: #0a4f8a;
    --sim-blue-dark: #063b69;
    --sim-blue-soft: #eaf3fb;
    --sim-bg: #f4f7fb;
    --sim-text: #23364d;
    --sim-muted: #7a8ca3;
    --sim-border: #e5ecf4;
    --sim-yellow: #ffca28;
}

* {
    box-sizing: border-box
}

body {
    font-family: 'Inter',sans-serif;
    color: var(--sim-text);
    background: var(--sim-bg)
}

a {
    text-decoration: none
}

.text-sim-blue {
    color: var(--sim-blue)!important
}

.btn-primary {
    --bs-btn-bg: var(--sim-blue);
    --bs-btn-border-color: var(--sim-blue);
    --bs-btn-hover-bg: var(--sim-blue-dark);
    --bs-btn-hover-border-color: var(--sim-blue-dark)
}

.login-body {
    min-height: 100vh;
    background: radial-gradient(circle at 18% 20%,#dbeeff 0,transparent 35%),linear-gradient(135deg,#f6f9fd 0,#edf4fb 100%)
}

.login-shell {
    max-width: 920px;
    border-radius: 28px;
    box-shadow: 0 24px 70px rgba(27,67,108,.14);
    background: #fff
}

.login-brand-panel {
    min-height: 560px;
    background: linear-gradient(145deg,rgba(6,59,105,.97),rgba(10,79,138,.90)),url('../img/logo.png') center/260px no-repeat;
    color: #fff;
    padding: 64px;
    align-items: flex-end
}

.login-logo {
    height: 86px;
    background: #fff;
    border-radius: 18px;
    padding: 8px
}

.role-card {
    width: min(560px,100%)
}

.role-choice {
    display: flex;
    align-items: center;
    gap: 16px;
    border-color: #dce6f0;
    padding: 16px;
    border-radius: 16px
}

.role-choice:hover {
    background: var(--sim-blue-soft)
}

.role-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--sim-blue-soft);
    color: var(--sim-blue);
    font-size: 1.25rem
}

.sim-shell {
    min-height: 100vh
}

.sim-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 252px;
    background: linear-gradient(180deg,#07487f 0%,#073f70 65%,#06345d 100%);
    color: #fff;
    z-index: 1040;
    display: flex;
    flex-direction: column;
    box-shadow: 6px 0 20px rgba(5,55,99,.08)
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 22px 18px;
    border-bottom: 1px solid rgba(255,255,255,.12)
}

.sidebar-brand img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    background: #fff;
    border-radius: 10px;
    padding: 4px
}

.brand-title {
    font-size: .98rem;
    font-weight: 800;
    letter-spacing: .4px
}

.brand-subtitle {
    font-size: .68rem;
    opacity: .78
}

.sidebar-role {
    margin: 16px 16px 8px;
    padding: 9px 11px;
    border-radius: 12px;
    background: rgba(255,255,255,.09);
    font-size: .75rem;
    display: flex;
    align-items: center;
    gap: 8px
}

.role-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #52d273;
    box-shadow: 0 0 0 4px rgba(82,210,115,.12)
}

.sidebar-nav {
    padding: 6px 10px 90px;
    overflow-y: auto
}

.sidebar-menu-label {
    font-size: .64rem;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: rgba(255,255,255,.52);
    padding: 18px 12px 7px
}

.side-link {
    display: flex;
    align-items: center;
    gap: 11px;
    color: rgba(255,255,255,.87);
    font-size: .82rem;
    font-weight: 500;
    padding: 10px 12px;
    border-radius: 10px;
    margin: 2px 0;
    transition: .2s
}

.side-link i {
    font-size: 1.05rem;
    width: 20px;
    text-align: center
}

.side-link:hover,.side-link.active {
    color: #fff;
    background: rgba(255,255,255,.14)
}

.side-link.active {
    box-shadow: inset 3px 0 0 #fff
}

.side-link .badge {
    margin-left: auto
}

.side-sub {
    padding-left: 18px
}

.side-sub .side-link {
    font-size: .78rem;
    padding: 8px 10px
}

.side-collapse-toggle::after {
    content: '\F282';
    font-family: 'bootstrap-icons';
    margin-left: auto;
    font-size: .72rem
}

.side-collapse-toggle[aria-expanded='true']::after {
    content: '\F286'
}

.sidebar-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 18px 22px;
    background: linear-gradient(transparent,rgba(1,30,55,.45));
    font-size: .74rem
}

.sim-main {
    margin-left: 252px;
    min-height: 100vh;
    display: flex;
    flex-direction: column
}

.sim-topbar {
    height: 74px;
    background: #fff;
    display: flex;
    align-items: center;
    padding: 0 28px;
    border-bottom: 1px solid var(--sim-border);
    position: sticky;
    top: 0;
    z-index: 1020
}

.top-search {
    display: flex;
    height: 42px;
    min-width: 360px;
    max-width: 560px;
    flex: 1;
    align-items: center;
    gap: 10px;
    background: #f7f9fc;
    border: 1px solid #edf1f6;
    border-radius: 12px;
    padding: 0 14px;
    color: #91a0b2
}

.top-search input {
    border: 0;
    outline: 0;
    background: transparent;
    width: 100%;
    font-size: .82rem;
    color: var(--sim-text)
}

.notif-dot {
    position: absolute;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ef476f;
    right: 8px;
    top: 8px;
    border: 1px solid #fff
}

.account-btn {
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 3px 4px
}

.account-btn::after {
    display: none
}

.account-btn small {
    display: block;
    color: var(--sim-muted);
    font-size: .68rem
}

.account-btn strong {
    display: block;
    font-size: .78rem
}

.avatar-circle {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--sim-blue-soft);
    color: var(--sim-blue);
    display: grid;
    place-items: center;
    font-size: 1.15rem
}

.sim-content {
    padding: 28px;
    flex: 1
}

.sim-footer {
    padding: 18px 28px;
    color: #93a2b3;
    font-size: .75rem;
    text-align: center
}

.sim-card {
    border-radius: 16px!important;
    box-shadow: 0 5px 18px rgba(29,65,104,.06)
}

.stat-card {
    background: #fff;
    border: 1px solid #eef2f7;
    border-radius: 16px;
    padding: 17px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    height: 100%;
    box-shadow: 0 4px 14px rgba(29,65,104,.04)
}

.stat-icon {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    font-size: 1.15rem
}

.stat-label {
    font-size: .70rem;
    color: #71849a;
    margin-bottom: 3px
}

.stat-value {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1
}

.stat-note {
    font-size: .64rem;
    color: #9aabba
}

.icon-blue {
    background: #e8f3ff;
    color: #1877c9
}

.icon-purple {
    background: #f0e9ff;
    color: #7b4ce2
}

.icon-green {
    background: #e5f8ef;
    color: #24a26a
}

.icon-orange {
    background: #fff1dc;
    color: #e89527
}

.icon-red {
    background: #ffe8ec;
    color: #e75569
}

.dashboard-card {
    background: #fff;
    border: 1px solid #eef2f7;
    border-radius: 16px;
    box-shadow: 0 4px 14px rgba(29,65,104,.04)
}

.dashboard-card .card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 17px 19px;
    border-bottom: 1px solid #f0f3f7
}

.dashboard-card .card-head h6 {
    font-size: .82rem;
    font-weight: 700;
    margin: 0
}

.dashboard-card .card-body {
    padding: 18px
}

.mini-link {
    font-size: .68rem;
    color: var(--sim-blue)
}

.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 30px;
    font-size: .62rem;
    font-weight: 700
}

.status-draft {
    background: #f3f4f6;
    color: #7c8795
}

.status-wait {
    background: #fff1d6;
    color: #be7c11
}

.status-info {
    background: #e8f3ff;
    color: #2874b5
}

.status-success {
    background: #e5f8ef;
    color: #23885d
}

.status-danger {
    background: #ffe8ec;
    color: #c84d60
}

.table-sim {
    font-size: .74rem
}

.table-sim thead th {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #7f90a5;
    background: #f8fafc;
    border-bottom: 1px solid #edf1f5;
    white-space: nowrap
}

.table-sim tbody td {
    vertical-align: middle;
    border-color: #f0f3f6
}

.table-sim tbody tr:hover {
    background: #fbfdff
}

.table>:not(caption)>*>* {
    padding: .75rem .7rem
}

.task-item,.schedule-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px solid #f1f4f7
}

.task-item:last-child,.schedule-item:last-child {
    border-bottom: 0
}

.task-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    font-size: .75rem;
    flex: 0 0 auto
}

.task-title {
    font-size: .72rem;
    font-weight: 600
}

.task-sub {
    font-size: .62rem;
    color: #8b9bae
}

.date-box {
    width: 40px;
    border-radius: 10px;
    background: #eef5fc;
    color: var(--sim-blue);
    text-align: center;
    padding: 5px 3px;
    line-height: 1
}

.date-box strong {
    display: block;
    font-size: .8rem
}

.date-box span {
    font-size: .55rem;
    text-transform: uppercase
}

.form-control,.form-select {
    border-color: #dce5ee;
    border-radius: 10px;
    font-size: .82rem;
    padding: .65rem .75rem
}

.form-control:focus,.form-select:focus {
    border-color: #8fc0e9;
    box-shadow: 0 0 0 .2rem rgba(10,79,138,.08)
}

.form-label {
    font-size: .74rem;
    color: #52667d
}

.btn {
    border-radius: 10px;
    font-size: .78rem;
    font-weight: 600
}

.btn-sm {
    border-radius: 8px;
    font-size: .7rem
}

.page-card {
    background: #fff;
    border: 1px solid #edf2f7;
    border-radius: 16px;
    box-shadow: 0 4px 14px rgba(29,65,104,.04);
    padding: 20px
}

.page-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px
}

.dataTables_wrapper {
    font-size: .74rem
}

.dataTables_filter input,.dataTables_length select {
    border: 1px solid #dce5ee!important;
    border-radius: 8px!important
}

.pagination .page-link {
    font-size: .7rem;
    color: var(--sim-blue)
}

.sidebar-backdrop {
    display: none
}

.empty-state {
    padding: 40px 20px;
    text-align: center;
    color: #8a9bae
}

.empty-state i {
    font-size: 2rem;
    color: #b9c5d2
}

.wizard-steps {
    display: flex;
    gap: 6px;
    overflow: auto;
    padding-bottom: 4px
}

.wizard-step {
    min-width: 112px;
    text-align: center;
    font-size: .64rem;
    color: #95a5b7;
    position: relative
}

.wizard-step .dot {
    width: 24px;
    height: 24px;
    margin: 0 auto 5px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #edf2f7;
    color: #7b8da2;
    font-weight: 700
}

.wizard-step.active {
    color: var(--sim-blue);
    font-weight: 700
}

.wizard-step.active .dot {
    background: var(--sim-blue);
    color: #fff
}

.progress-thin {
    height: 7px
}

.kpi-progress {
    height: 8px;
    border-radius: 20px;
    background: #eef2f6;
    overflow: hidden
}

.kpi-progress>span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg,#4a9ee9,#70b7f3);
    border-radius: 20px
}

@media(max-width:1199.98px) {
    .sim-sidebar {
        transform: translateX(-100%);
        transition: .25s
    }

    .sim-sidebar.show {
        transform: translateX(0)
    }

    .sim-main {
        margin-left: 0
    }

    .sidebar-backdrop.show {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(22,43,66,.35);
        z-index: 1030
    }

    .sim-content {
        padding: 20px
    }

    .sim-topbar {
        padding: 0 18px
    }

}

@media(max-width:575.98px) {
    .sim-content {
        padding: 16px
    }

    .sim-topbar {
        height: 64px
    }

    .stat-card {
        padding: 14px
    }

    .login-brand-panel {
        padding: 30px
    }

    .page-card {
        padding: 14px
    }

}

/* Extended SIMLITABMAS components */
.role-check-card {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--sim-border);
    border-radius: 12px;
    padding: 12px;
    background: #fff
}

.log-json {
    background: #0f172a;
    color: #dbeafe;
    border-radius: 12px;
    padding: 14px;
    white-space: pre-wrap;
    max-height: 340px;
    overflow: auto;
    font-size: .72rem
}

.scheme-card,.report-card {
    border: 1px solid var(--sim-border);
    border-radius: 14px;
    padding: 18px;
    height: 100%;
    background: #fff
}

.scheme-card:hover,.report-card:hover {
    box-shadow: 0 8px 24px rgba(29,65,104,.08)
}

.report-card>i {
    font-size: 1.6rem;
    color: var(--sim-blue);
    display: block;
    margin-bottom: 12px
}

.report-card p {
    font-size: .75rem;
    color: var(--sim-muted);
    min-height: 42px
}

.proposal-wizard-head {
    background: linear-gradient(135deg,#f8fbff,#edf6fd);
    border: 1px solid #e4edf6;
    border-radius: 16px;
    padding: 18px;
    margin-bottom: 16px
}

.proposal-wizard-nav {
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 6px
}

.wizard-step {
    background: #f5f8fb;
    border: 1px solid #e8eef5;
    border-radius: 12px;
    padding: 10px 6px;
    min-width: 0
}

.wizard-step.active {
    background: #eaf4fd;
    border-color: #a8d0ef
}

.proposal-wizard-content,.inner-card {
    background: #fff;
    border: 1px solid #edf1f6;
    border-radius: 16px;
    padding: 20px
}

.completion-box {
    background: #f7fbff;
    border: 1px solid #dfeefb;
    border-radius: 14px;
    padding: 16px
}

.wizard-actions {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 20px
}

.requirement-item,.review-check {
    border: 1px solid #edf1f5;
    border-radius: 12px;
    padding: 13px;
    margin-bottom: 10px
}

.check-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #e8f7ef;
    color: #239060
}

.mini-kpi {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid var(--sim-border);
    border-radius: 12px;
    padding: 10px 14px;
    font-size: .72rem
}

.mini-kpi strong {
    font-size: 1rem;
    color: var(--sim-blue)
}

.schedule-date {
    width: 48px;
    min-width: 48px;
    text-align: center;
    border-radius: 10px;
    background: var(--sim-blue-soft);
    color: var(--sim-blue);
    font-weight: 700;
    padding: 8px 4px;
    font-size: .72rem
}

.doc-icon,.notification-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 11px;
    background: var(--sim-blue-soft);
    color: var(--sim-blue);
    display: grid;
    place-items: center
}

.profile-avatar-lg {
    width: 88px;
    height: 88px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: var(--sim-blue-soft);
    color: var(--sim-blue);
    display: grid;
    place-items: center;
    font-size: 2rem
}

.info-label {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--sim-muted);
    margin-bottom: 3px
}

.message-body {
    font-size: .85rem;
    line-height: 1.7
}

.kpi-line {
    padding: 11px 0;
    border-bottom: 1px solid #f0f3f7;
    font-size: .74rem
}

.kpi-line:last-child {
    border-bottom: 0
}

.notification-item {
    display: flex;
    gap: 12px;
    padding: 13px;
    border-bottom: 1px solid #edf1f5
}

.notification-item.unread {
    background: #f7fbff
}

.notification-item:last-child {
    border-bottom: 0
}

@media(max-width:991.98px) {
    .proposal-wizard-nav {
        grid-template-columns: repeat(3,1fr)
    }

}

@media(max-width:575.98px) {
    .proposal-wizard-nav {
        grid-template-columns: repeat(2,1fr)
    }

    .wizard-actions {
        flex-direction: column
    }

    .wizard-actions .btn {
        width: 100%
    }

}

@media print {
    #simSidebar,.sim-topbar,.btn,.sidebar-backdrop {
        display: none!important
    }

    .sim-main {
        margin-left: 0!important
    }

    .page-card {
        box-shadow: none!important;
        border: 1px solid #ddd!important
    }

}

.avatar-xl {
    width: 76px;
    height: 76px;
    border-radius: 22px;
    background: #eef4ff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #2f68d8
}

/* SIMLITABMAS LOGIN V1.1 START */
/* ========================================================================== */
/* SIMLITABMAS Login v1.1                                                     */
/* Ditambahkan tanpa mengubah style dashboard yang sudah ada.                  */
/* ========================================================================== */
.login-v2-body {
    margin: 0;
    min-height: 100vh;
    background: #eef4f9;
    font-family: 'Inter',sans-serif;
    color: #21374d;
    overflow-x: hidden
}

.login-v2-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(0,1.12fr) minmax(420px,.88fr);
    background: #fff
}

.login-v2-showcase {
    position: relative;
    overflow: hidden;
    min-height: 100vh;
    padding: 42px 56px 34px;
    color: #fff;
    background: linear-gradient(138deg,#063b69 0%,#07528f 53%,#0b6cac 100%);
    display: flex;
    flex-direction: column
}

.login-v2-showcase:after {
    content: "";
    position: absolute;
    inset: auto -12% -28% 34%;
    height: 58%;
    background: linear-gradient(115deg,rgba(255,202,40,.18),rgba(255,255,255,.03));
    transform: skewY(-8deg);
    border-radius: 90px
}

.login-v2-grid {
    position: absolute;
    inset: 0;
    opacity: .07;
    background-image: linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom right,#000,transparent 74%)
}

.login-v2-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(1px);
    pointer-events: none
}

.login-v2-orb-a {
    width: 330px;
    height: 330px;
    background: rgba(255,202,40,.12);
    right: -100px;
    top: -95px
}

.login-v2-orb-b {
    width: 230px;
    height: 230px;
    background: rgba(255,255,255,.08);
    left: -95px;
    bottom: 12%
}

.login-v2-brand {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 14px
}

.login-v2-logo-wrap {
    width: 60px;
    height: 60px;
    border-radius: 18px;
    background: #fff;
    display: grid;
    place-items: center;
    box-shadow: 0 12px 30px rgba(0,0,0,.16)
}

.login-v2-logo-wrap img {
    width: 49px;
    height: 49px;
    object-fit: contain
}

.login-v2-brand-title {
    font-size: 1.04rem;
    font-weight: 800;
    letter-spacing: .12em
}

.login-v2-brand-subtitle {
    font-size: .7rem;
    color: rgba(255,255,255,.72);
    margin-top: 2px
}

.login-v2-copy {
    position: relative;
    z-index: 2;
    margin: auto 0 26px;
    max-width: 680px
}

.login-v2-eyebrow {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.08);
    border-radius: 999px;
    padding: 8px 12px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
    margin-bottom: 22px
}

.login-v2-copy h1 {
    font-size: clamp(2rem,3.4vw,3.6rem);
    line-height: 1.07;
    font-weight: 800;
    letter-spacing: -.045em;
    margin: 0 0 18px;
    max-width: 720px
}

.login-v2-copy>p {
    font-size: .94rem;
    line-height: 1.75;
    color: rgba(255,255,255,.75);
    max-width: 610px;
    margin: 0 0 28px
}

.login-v2-features {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 11px;
    max-width: 690px
}

.login-v2-feature {
    min-width: 0;
    padding: 13px 12px;
    border-radius: 15px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.075);
    backdrop-filter: blur(8px);
    display: flex;
    gap: 10px;
    align-items: flex-start
}

.login-v2-feature>span {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: rgba(255,202,40,.14);
    color: #ffd95f;
    font-size: .94rem
}

.login-v2-feature strong {
    display: block;
    font-size: .71rem;
    margin: 1px 0 3px
}

.login-v2-feature small {
    display: block;
    font-size: .59rem;
    line-height: 1.4;
    color: rgba(255,255,255,.62)
}

.login-v2-mini-dashboard {
    position: relative;
    z-index: 2;
    width: min(570px,85%);
    margin: 12px auto 22px;
    background: rgba(255,255,255,.96);
    border-radius: 17px;
    padding: 14px 14px 17px;
    color: #263b51;
    box-shadow: 0 24px 60px rgba(0,24,48,.26);
    transform: perspective(900px) rotateX(1deg) rotateY(-4deg);
    transform-origin: center
}

.login-v2-mini-head {
    display: flex;
    align-items: center;
    gap: 5px;
    border-bottom: 1px solid #eef2f5;
    padding-bottom: 9px
}

.login-v2-mini-head>span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #d7e1e9
}

.login-v2-mini-head>span:first-child {
    background: #ffbe55
}

.login-v2-mini-head b {
    font-size: .54rem;
    color: #7d91a4;
    margin-left: auto;
    letter-spacing: .07em
}

.login-v2-mini-stats {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 8px;
    margin-top: 12px
}

.login-v2-mini-stats>div {
    background: #f7fafd;
    border: 1px solid #eef3f7;
    border-radius: 10px;
    padding: 8px;
    display: flex;
    align-items: center;
    gap: 7px
}

.login-v2-mini-stats i {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #e8f3ff;
    color: #176fb4;
    font-size: .72rem
}

.login-v2-mini-stats strong {
    display: block;
    font-size: .57rem
}

.login-v2-mini-stats small {
    display: block;
    color: #92a1b0;
    font-size: .48rem
}

.login-v2-mini-chart {
    height: 72px;
    margin-top: 10px;
    padding: 10px 12px 0;
    background: linear-gradient(180deg,#fbfdff,#f5f9fc);
    border-radius: 10px;
    display: flex;
    align-items: end;
    gap: 7px
}

.login-v2-mini-chart span {
    flex: 1;
    background: linear-gradient(#5ca7e2,#2074b9);
    border-radius: 4px 4px 2px 2px;
    opacity: .78
}

.login-v2-showcase-footer {
    position: relative;
    z-index: 2;
    margin-top: auto;
    color: rgba(255,255,255,.58);
    font-size: .61rem
}

.login-v2-showcase-footer span {
    color: #ffcf3f;
    margin: 0 6px
}

.login-v2-form-side {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg,#fff 0%,#fbfdff 62%,#f6f9fc 100%);
    padding: 42px 56px
}

.login-v2-form-wrap {
    width: 100%;
    max-width: 430px
}

.login-v2-back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #75889d;
    text-decoration: none;
    font-size: .72rem;
    font-weight: 600;
    margin-bottom: 42px
}

.login-v2-back:hover {
    color: #0a4f8a
}

.login-v2-mobile-brand {
    display: none
}

.login-v2-heading {
    margin-bottom: 28px
}

.login-v2-lock {
    width: 45px;
    height: 45px;
    border-radius: 14px;
    background: #eaf3fb;
    color: #0a4f8a;
    display: grid;
    place-items: center;
    font-size: 1.18rem;
    margin-bottom: 18px
}

.login-v2-heading h2 {
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: -.035em;
    margin: 0 0 8px;
    color: #18334c
}

.login-v2-heading p {
    font-size: .8rem;
    line-height: 1.65;
    color: #7d8fa3;
    margin: 0;
    max-width: 360px
}

.login-v2-field .form-label {
    font-size: .73rem;
    font-weight: 700;
    color: #435b72;
    margin-bottom: 7px
}

.login-v2-input {
    position: relative;
    display: flex;
    align-items: center
}

.login-v2-input>span {
    position: absolute;
    left: 14px;
    z-index: 2;
    color: #7f94a9;
    font-size: .95rem
}

.login-v2-input .form-control {
    height: 49px;
    padding: 0 44px 0 42px;
    border: 1px solid #dce6ee;
    border-radius: 12px;
    background: #fff;
    font-size: .8rem;
    color: #253f56;
    box-shadow: 0 4px 13px rgba(31,64,96,.025)
}

.login-v2-input .form-control::placeholder {
    color: #a3b0bd
}

.login-v2-input .form-control:focus {
    border-color: #82b7e0;
    box-shadow: 0 0 0 .2rem rgba(10,79,138,.08)
}

.login-v2-password-toggle {
    position: absolute;
    right: 8px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #8295a8;
    display: grid;
    place-items: center
}

.login-v2-password-toggle:hover {
    background: #f1f5f8;
    color: #0a4f8a
}

.login-v2-helper {
    color: #8798aa;
    font-size: .62rem;
    line-height: 1.45
}

.login-v2-helper i {
    color: #4c91c6
}

.login-v2-submit {
    height: 50px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(100deg,#084a80,#0a65a6);
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-size: .8rem;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(8,83,140,.18);
    transition: .2s
}

.login-v2-submit:hover {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 13px 28px rgba(8,83,140,.24)
}

.login-v2-submit:disabled {
    opacity: .72;
    transform: none
}

.login-v2-alert {
    font-size: .69rem;
    border-radius: 10px
}

.login-v2-support {
    margin-top: 27px;
    padding-top: 20px;
    border-top: 1px solid #edf1f4;
    color: #768a9f
}

.login-v2-support>div {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .68rem;
    font-weight: 700
}

.login-v2-support small {
    display: block;
    margin-top: 4px;
    font-size: .61rem;
    color: #99a7b5
}

.login-v2-copyright {
    text-align: center;
    margin-top: 33px;
    font-size: .57rem;
    color: #acb8c3
}

.role-v2-body {
    background: linear-gradient(145deg,#eef5fb,#f8fbfe)
}

.role-v2-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 18px;
    position: relative;
    overflow: hidden
}

.role-v2-shell:before {
    content: "";
    position: absolute;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: rgba(10,79,138,.07);
    left: -220px;
    top: -220px
}

.role-v2-brand {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px
}

.role-v2-brand img {
    width: 48px;
    height: 48px;
    object-fit: contain
}

.role-v2-brand strong {
    display: block;
    font-size: .88rem;
    color: #0a4f8a;
    letter-spacing: .07em
}

.role-v2-brand small {
    display: block;
    font-size: .6rem;
    color: #8a9bab
}

.role-v2-card {
    position: relative;
    width: min(560px,100%);
    background: #fff;
    border: 1px solid #e8eef3;
    border-radius: 23px;
    padding: 33px;
    box-shadow: 0 24px 60px rgba(36,75,113,.12);
    text-align: center
}

.role-v2-icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #eaf3fb;
    color: #0a4f8a;
    display: grid;
    place-items: center;
    font-size: 1.25rem;
    margin: 0 auto 14px
}

.role-v2-card h2 {
    font-size: 1.42rem;
    font-weight: 800;
    color: #193a56;
    margin-bottom: 8px
}

.role-v2-card>p {
    font-size: .73rem;
    line-height: 1.6;
    color: #7c8fa2;
    margin: 0 auto 23px;
    max-width: 430px
}

.role-v2-list {
    text-align: left
}

.role-v2-list .role-choice {
    border-color: #e1e9f0!important;
    background: #fbfdff!important;
    color: #29465f!important
}

.role-v2-list .role-choice:hover {
    border-color: #8db8dc!important;
    background: #edf6fd!important;
    transform: translateY(-1px)
}

.role-v2-note {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 18px;
    padding: 11px 13px;
    border-radius: 11px;
    background: #f7fafc;
    color: #8092a4;
    font-size: .61rem;
    text-align: left
}

.role-v2-note i {
    color: #0a6aab
}

.role-v2-logout {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    margin-top: 22px;
    font-size: .67rem;
    color: #9a6b72;
    text-decoration: none
}

@media(max-width:1050px) {
    .login-v2-shell {
        grid-template-columns: 1fr 440px
    }

    .login-v2-showcase {
        padding-left: 38px;
        padding-right: 38px
    }

    .login-v2-feature:nth-child(3) {
        display: none
    }

    .login-v2-features {
        grid-template-columns: repeat(2,1fr)
    }

}

@media(max-width:860px) {
    .login-v2-shell {
        display: block
    }

    .login-v2-showcase {
        display: none
    }

    .login-v2-form-side {
        min-height: 100vh;
        padding: 32px 22px
    }

    .login-v2-form-wrap {
        max-width: 470px
    }

    .login-v2-back {
        margin-bottom: 30px
    }

    .login-v2-mobile-brand {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 35px
    }

    .login-v2-mobile-brand img {
        width: 52px;
        height: 52px;
        object-fit: contain
    }

    .login-v2-mobile-brand strong {
        display: block;
        color: #0a4f8a;
        font-size: .9rem;
        letter-spacing: .07em
    }

    .login-v2-mobile-brand small {
        display: block;
        color: #8b9bab;
        font-size: .59rem
    }

    .login-v2-heading h2 {
        font-size: 1.58rem
    }

}

@media(max-width:480px) {
    .login-v2-form-side {
        padding: 25px 18px
    }

    .login-v2-heading {
        margin-bottom: 23px
    }

    .login-v2-back span {
        display: none
    }

    .role-v2-card {
        padding: 27px 20px
    }

}

/* SIMLITABMAS LOGIN V1.1 END */
/* Pengguna / sumber Master Dosen */
.akun-source-card {
    border: 1px solid #d8e8f6;
    background: linear-gradient(135deg,#f8fcff,#eef7ff);
    border-radius: 16px;
    padding: 18px
}

.akun-source-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 14px;
    background: #0a4f8a;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 1.15rem;
    box-shadow: 0 8px 18px rgba(10,79,138,.16)
}

.dosen-selected-info {
    border-top: 1px dashed #cbdceb;
    padding-top: 12px
}

.dosen-info-item {
    background: #fff;
    border: 1px solid #e5edf5;
    border-radius: 11px;
    padding: 10px 12px;
    height: 100%
}

.dosen-info-item span {
    display: block;
    font-size: .61rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #8a9aac;
    margin-bottom: 3px
}

.dosen-info-item strong {
    display: block;
    font-size: .73rem;
    color: #2a435b;
    word-break: break-word
}

.role-check-card {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e2e9f0;
    background: #fff;
    border-radius: 12px;
    padding: 11px 12px;
    cursor: pointer;
    transition: .18s;
    height: 100%
}

.role-check-card:hover {
    border-color: #9fc3df;
    background: #f8fbfe
}

.role-check-card input {
    width: 17px;
    height: 17px;
    accent-color: #0a4f8a
}

.role-check-card:has(input:checked) {
    border-color: #78acd4;
    background: #eef7fd;
    box-shadow: 0 0 0 2px rgba(10,79,138,.04)
}

/* Pengguna v1.3 - password & validasi */
.password-section-card {
    border: 1px solid #e1e9f1;
    background: linear-gradient(135deg,#fbfdff,#f5f9fd);
    border-radius: 16px;
    padding: 17px 18px
}

.password-section-icon {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: #eaf3fb;
    color: #0a4f8a;
    display: grid;
    place-items: center;
    flex: 0 0 38px
}

.password-toggle {
    min-width: 44px
}

#usernameUniqueInfo.text-success,#emailUniqueInfo.text-success,#dosenEmailUniqueInfo.text-success,#passwordMatchInfo.text-success {
    color: #198754!important
}

#usernameUniqueInfo.text-danger,#emailUniqueInfo.text-danger,#dosenEmailUniqueInfo.text-danger,#passwordMatchInfo.text-danger {
    color: #dc3545!important
}

.login-v2-forgot {
    font-size: .74rem;
    font-weight: 700;
    color: var(--sim-blue);
    text-decoration: none
}

.login-v2-forgot:hover {
    text-decoration: underline
}

.modal-content .login-v2-lock {
    width: 42px;
    height: 42px;
    font-size: 1rem
}

.modal-content .login-v2-input {
    background: #f8fafc
}

/* SIMLITABMAS v1.5 - table selection & reload */
.sim-table-toolbar {
    background: #f8fafc;
    border: 1px solid var(--sim-border);
    border-radius: 12px;
    padding: 10px 12px
}

.sim-row-check,.sim-check-all {
    cursor: pointer;
    vertical-align: middle
}

.table-sim thead th:first-child {
    white-space: nowrap
}

.sim-bulk-delete:disabled {
    opacity: .55
}

/* SIMLITABMAS v1.6 - pesan */
.top-message-badge {
    position: absolute;
    top: -3px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 10px;
    background: #dc3545;
    color: #fff;
    font-size: .58rem;
    font-weight: 800;
    line-height: 18px;
    text-align: center;
    border: 2px solid #fff
}

.message-body {
    font-size: .82rem;
    line-height: 1.8;
    color: #334d65;
    white-space: normal;
    background: #fbfdff;
    border: 1px solid #edf2f6;
    border-radius: 14px;
    padding: 18px
}

.message-parent {
    background: #f5f8fb;
    border-left: 3px solid #8db8dc;
    border-radius: 10px;
    padding: 12px 14px
}

/* =============================================================
   SIMLITABMAS v1.7 - Mockup alignment & anti-overlap design system
   ============================================================= */
html,body {
    max-width: 100%;
    overflow-x: hidden
}

.sim-shell,.sim-main,.sim-content,#contentPage {
    min-width: 0
}

.sim-content {
    overflow-x: hidden
}

.row>* {
    min-width: 0
}

.sim-sidebar {
    width: 242px
}

.sim-main {
    margin-left: 242px
}

.sim-topbar {
    padding-left: 24px;
    padding-right: 24px
}

.sim-content {
    padding: 23px 24px 28px;
    background: #f5f8fc
}

.content-head {
    margin-bottom: 16px!important
}

.content-head h4 {
    font-size: 1.12rem;
    color: #183b59
}

.top-search {
    min-width: 260px;
    max-width: 480px
}

.sidebar-brand {
    padding: 18px 16px
}

.sidebar-brand img {
    width: 48px;
    height: 48px
}

.sidebar-nav {
    padding-bottom: 110px
}

.side-link {
    font-size: .75rem;
    padding: 9px 11px
}

.sidebar-menu-label {
    padding-top: 15px
}

.page-card,.dashboard-card,.stat-card,.inner-card {
    min-width: 0
}

.page-card,.dashboard-card {
    border-radius: 14px
}

.page-card {
    padding: 18px
}

.page-toolbar {
    gap: 10px
}

.page-toolbar>*,.page-intro>* {
    min-width: 0
}

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

.table-wide {
    min-width: 720px
}

.table-sim {
    width: 100%;
    margin-bottom: 0
}

.table-sim th,.table-sim td {
    vertical-align: middle
}

.table-sim td {
    word-break: normal
}

.dataTables_wrapper {
    width: 100%;
    overflow: visible
}

.dataTables_wrapper .row {
    margin-left: 0;
    margin-right: 0
}

.sim-table-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: space-between
}

.dropdown-menu {
    max-width: min(420px,calc(100vw - 30px));
}

.dropdown-item {
    text-wrap: wrap
}

.form-control,.form-select {
    max-width: 100%
}

.stat-card {
    padding: 15px;
    overflow: hidden
}

.stat-card>div:last-child {
    min-width: 0
}

.stat-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.stat-value {
    white-space: nowrap
}

.dashboard-card {
    overflow: hidden
}

.dashboard-card .card-head {
    padding: 15px 17px
}

.dashboard-card .card-body {
    padding: 16px
}

.page-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    min-width: 0
}

.page-intro h5 {
    font-size: 1.08rem;
    font-weight: 800;
    margin: 0 0 4px;
    color: #1b3b58
}

.page-intro p {
    font-size: .69rem;
    color: #8193a5;
    margin: 0;
    line-height: 1.5
}

.page-intro-control {
    width: min(390px,100%)
}

.page-intro-control label {
    display: block;
    font-size: .61rem;
    color: #8596a7;
    margin-bottom: 4px
}

.eyebrow {
    font-size: .57rem;
    letter-spacing: .09em;
    font-weight: 800;
    color: #8b9dae;
    margin-bottom: 3px
}

.content-with-rail {
    display: grid;
    grid-template-columns: minmax(0,1fr) 285px;
    gap: 14px;
    align-items: start
}

.content-two-column {
    display: grid;
    grid-template-columns: minmax(0,1.65fr) minmax(250px,.75fr);
    gap: 14px;
    align-items: start
}

.content-with-rail main,.content-with-rail aside,.content-two-column main,.content-two-column aside {
    min-width: 0
}

.inner-card {
    border: 1px solid #e8eef5;
    background: #fff;
    border-radius: 13px;
    padding: 15px
}

.segmented-tabs {
    display: flex;
    align-items: center;
    gap: 3px;
    background: #f0f4f8;
    padding: 3px;
    border-radius: 9px;
    max-width: 100%;
    overflow-x: auto
}

.segmented-tabs button {
    border: 0;
    background: transparent;
    color: #72859a;
    padding: 7px 12px;
    border-radius: 7px;
    font-size: .68rem;
    font-weight: 700;
    white-space: nowrap
}

.segmented-tabs button.active {
    background: #0a5a98;
    color: #fff;
    box-shadow: 0 3px 8px rgba(10,79,138,.14)
}

.donut-static {
    --value: 0;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    margin: 4px auto 14px;
    background: conic-gradient(#0e75bd calc(var(--value)*1%),#e8eef4 0);
    display: grid;
    place-items: center;
    position: relative
}

.donut-static:after {
    content: "";
    position: absolute;
    width: 105px;
    height: 105px;
    border-radius: 50%;
    background: #fff
}

.donut-static>div {
    z-index: 1;
    text-align: center
}

.donut-static strong {
    display: block;
    font-size: 1.15rem
}

.donut-static span {
    font-size: .58rem;
    color: #8a9bab
}

.donut-static.compact {
    width: 118px;
    height: 118px
}

.donut-static.compact:after {
    width: 82px;
    height: 82px
}

.legend-list {
    display: grid;
    gap: 7px
}

.legend-row {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: .62rem
}

.legend-row span {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.legend-row i {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #318dcc;
    margin-right: 6px
}

.legend-row:nth-child(2) i {
    background: #27a46a
}

.legend-row:nth-child(3) i {
    background: #f0a52b
}

.legend-row:nth-child(4) i {
    background: #8b63d9
}

.legend-row:nth-child(5) i {
    background: #e96878
}

.legend-row small {
    font-size: .54rem;
    color: #8da0b1
}

.finance-top-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 285px;
    gap: 14px;
    align-items: stretch
}

.finance-stats {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px
}

.finance-value {
    font-size: .86rem!important
}

.finance-realization {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 6px;
    padding: 14px
}

.finance-realization h6 {
    grid-column: 1/-1;
    font-size: .75rem;
    font-weight: 800;
    margin: 0
}

.finance-summary {
    display: grid;
    gap: 5px
}

.finance-summary span {
    display: grid;
    grid-template-columns: 8px minmax(0,1fr);
    font-size: .54rem;
    color: #7c8fa2;
    align-items: center
}

.finance-summary strong {
    grid-column: 2;
    color: #334f67;
    font-size: .56rem
}

.dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%
}

.tips-card {
    display: flex;
    gap: 10px;
    background: #fff8dc;
    border: 1px solid #f6e8a9;
    border-radius: 13px;
    padding: 14px;
    color: #735f1f;
    min-width: 0
}

.tips-card>i {
    font-size: 1.05rem;
    color: #d39c13
}

.tips-card strong {
    font-size: .67rem
}

.tips-card p,.tips-card ol {
    font-size: .59rem;
    line-height: 1.55;
    margin-top: 4px;
    padding-left: 17px
}

.proposal-page {
    min-width: 0
}

.proposal-header {
    margin-bottom: 14px
}

.proposal-header h5 {
    font-size: 1.05rem
}

.proposal-workspace {
    display: grid;
    grid-template-columns: minmax(0,1fr) 278px;
    gap: 14px;
    align-items: start
}

.proposal-main {
    padding: 0;
    overflow: hidden
}

.proposal-wizard-head {
    padding: 16px 18px;
    border-bottom: 1px solid #eef2f6
}

.proposal-wizard-content {
    padding: 18px
}

.proposal-wizard-nav {
    display: grid;
    grid-template-columns: repeat(6,minmax(105px,1fr));
    gap: 0;
    overflow-x: auto;
    border-bottom: 1px solid #eef2f6;
    padding: 13px 12px 12px
}

.wizard-tab {
    min-width: 105px
}

.proposal-aside {
    display: grid;
    gap: 12px;
    min-width: 0
}

.completion-ring {
    --value: 0;
    width: 122px;
    height: 122px;
    border-radius: 50%;
    margin: 2px auto 12px;
    background: conic-gradient(#176fb4 calc(var(--value)*1%),#edf2f6 0);
    display: grid;
    place-items: center;
    position: relative
}

.completion-ring:after {
    content: "";
    position: absolute;
    width: 88px;
    height: 88px;
    background: #fff;
    border-radius: 50%
}

.completion-ring>div {
    position: relative;
    z-index: 1;
    text-align: center
}

.completion-ring strong {
    display: block;
    font-size: 1.02rem
}

.completion-ring span {
    display: block;
    font-size: .58rem;
    color: #8ea0b2
}

.doc-check-list {
    display: grid;
    gap: 9px
}

.doc-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: .62rem;
    color: #7f91a3
}

.doc-check i {
    color: #b8c4cf
}

.doc-check.done {
    color: #36536b
}

.doc-check.done i {
    color: #2aa16b
}

.wizard-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap
}

.review-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 285px;
    gap: 14px;
    align-items: start
}

.review-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 15px;
    padding-top: 14px;
    border-top: 1px solid #eef2f6
}

.review-score-box {
    height: 42px;
    border: 1px solid #dce5ee;
    border-radius: 10px;
    padding: 6px 10px;
    display: flex;
    align-items: center;
    gap: 8px
}

.review-score-box strong {
    font-size: .95rem
}

.review-score-box span {
    font-size: .56rem;
    color: #8da0b1
}

.review-feedback {
    border: 1px solid #e6edf4;
    border-radius: 12px;
    padding: 13px;
    margin-bottom: 10px;
    background: #fbfdff
}

.review-feedback:last-child {
    margin-bottom: 0
}

.review-feedback p {
    font-size: .65rem;
    line-height: 1.65;
    margin: 8px 0 0
}

.help-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
    margin-top: 18px
}

.help-step {
    display: flex;
    gap: 12px;
    border: 1px solid #e7edf4;
    border-radius: 13px;
    padding: 15px;
    background: #fbfdff
}

.help-step>span {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: #0a5a98;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: .7rem;
    font-weight: 800;
    flex: 0 0 30px
}

.help-step strong {
    font-size: .7rem
}

.help-step p {
    font-size: .61rem;
    line-height: 1.55;
    color: #8294a7;
    margin: 4px 0 0
}

.top-message-badge {
    z-index: 2
}

@media(max-width:1399.98px) {
    .finance-stats {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .proposal-workspace {
        grid-template-columns: minmax(0,1fr) 260px
    }

    .content-with-rail {
        grid-template-columns: minmax(0,1fr) 265px
    }

}

@media(max-width:1199.98px) {
    .sim-main {
        margin-left: 0
    }

    .sim-content {
        padding: 20px
    }

    .content-with-rail,.content-two-column,.proposal-workspace,.review-layout,.finance-top-grid {
        grid-template-columns: 1fr
    }

    .proposal-aside {
        grid-template-columns: repeat(3,minmax(0,1fr))
    }

    .finance-realization {
        grid-template-columns: 130px minmax(0,1fr)
    }

    .top-search {
        min-width: 220px
    }

}

@media(max-width:767.98px) {
    .sim-content {
        padding: 14px
    }

    .content-head {
        align-items: flex-start!important
    }

    .stat-card {
        padding: 12px
    }

    .stat-value {
        font-size: 1.12rem
    }

    .page-card {
        padding: 14px
    }

    .page-intro {
        align-items: stretch;
        flex-direction: column
    }

    .page-intro-control {
        width: 100%
    }

    .proposal-aside {
        grid-template-columns: 1fr
    }

    .proposal-wizard-head {
        padding: 14px
    }

    .proposal-wizard-content {
        padding: 14px
    }

    .finance-stats {
        grid-template-columns: 1fr 1fr
    }

    .finance-realization {
        grid-template-columns: 1fr 1fr
    }

    .help-grid {
        grid-template-columns: 1fr
    }

    .review-actions .btn {
        flex: 1
    }

    .page-toolbar {
        align-items: stretch
    }

    .page-toolbar>.btn,.page-toolbar>.dropdown {
        margin-left: auto
    }

    .sim-table-toolbar {
        align-items: stretch
    }

    .sim-table-toolbar .btn {
        min-height: 34px
    }

}

@media(max-width:479.98px) {
    .finance-stats {
        grid-template-columns: 1fr
    }

    .finance-realization {
        grid-template-columns: 1fr
    }

    .finance-realization .donut-static {
        margin-left: auto;
        margin-right: auto
    }

    .segmented-tabs {
        width: 100%
    }

    .page-toolbar>.dropdown {
        width: 100%
    }

    .page-toolbar>.dropdown>.btn {
        width: 100%
    }

    .review-actions {
        flex-direction: column
    }

    .review-actions .btn {
        width: 100%
    }

    .proposal-wizard-nav {
        padding-left: 8px;
        padding-right: 8px
    }

}

/* SIMLITABMAS v1.7 dashboard mockup alignment */
.dashboard-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px
}

.dashboard-heading h5 {
    font-size: 1.08rem;
    font-weight: 800;
    color: #183b59;
    margin: 0 0 3px
}

.dashboard-heading p {
    font-size: .67rem;
    color: #8596a7;
    margin: 0;
    line-height: 1.5
}

.admin-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0,1.75fr) minmax(260px,.75fr);
    gap: 14px;
    align-items: start
}

.admin-dashboard-grid > main {
    min-width: 0;
}

.admin-proposal-trend {
    position: relative;
    height: 260px;
    min-width: 0;
}

.admin-chart-caption {
    margin: 0 0 12px;
    color: #8596a7;
    font-size: .7rem;
}

.admin-chart-message {
    margin: 0;
    padding: 24px 0;
    color: #8596a7;
    font-size: .75rem;
}

.admin-trend-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin-top: 12px;
    font-size: .7rem;
    color: #586d80;
}

.workflow-summary-scroll {
    overflow-x: auto;
    padding: 2px 1px 6px;
}

.workflow-summary-grid {
    display: grid;
    grid-template-columns: repeat(var(--workflow-summary-columns), minmax(156px, 210px));
    justify-content: start;
    gap: 8px;
}

.workflow-summary-card.stat-card {
    min-height: 0;
    margin: 0;
    padding: 8px 10px;
    border-radius: 9px;
    box-shadow: none;
    align-items: center;
    gap: 8px;
    background: var(--summary-surface);
    border-color: var(--summary-border);
    border-left: 3px solid var(--summary-accent);
}

.workflow-summary-icon {
    display: grid;
    place-items: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--summary-icon-bg);
    color: var(--summary-accent);
    font-size: 15px;
}

.workflow-summary-body {
    min-width: 0;
    flex: 1;
}

.workflow-summary-slate {
    --summary-accent: #56677b;
    --summary-surface: #f7f9fc;
    --summary-border: #dce3ed;
    --summary-icon-bg: #e8edf4;
}

.workflow-summary-blue {
    --summary-accent: #2563b7;
    --summary-surface: #f3f8ff;
    --summary-border: #d4e4fa;
    --summary-icon-bg: #e0edff;
}

.workflow-summary-amber {
    --summary-accent: #996000;
    --summary-surface: #fffaf0;
    --summary-border: #f1e1bc;
    --summary-icon-bg: #fff0cb;
}

.workflow-summary-teal {
    --summary-accent: #087c70;
    --summary-surface: #f0faf8;
    --summary-border: #cce9e3;
    --summary-icon-bg: #d8f1eb;
}

.workflow-summary-rose {
    --summary-accent: #bc3657;
    --summary-surface: #fff4f6;
    --summary-border: #f0d4dc;
    --summary-icon-bg: #fce1e8;
}

.workflow-summary-violet {
    --summary-accent: #8050b3;
    --summary-surface: #f9f5ff;
    --summary-border: #e5d9f5;
    --summary-icon-bg: #eee2fc;
}

.workflow-summary-orange {
    --summary-accent: #b85b19;
    --summary-surface: #fff7f0;
    --summary-border: #f3dcc8;
    --summary-icon-bg: #ffe9d5;
}

.workflow-summary-indigo {
    --summary-accent: #4d5aba;
    --summary-surface: #f5f6ff;
    --summary-border: #dcdff6;
    --summary-icon-bg: #e5e8ff;
}

.workflow-summary-cyan {
    --summary-accent: #137b98;
    --summary-surface: #f0faff;
    --summary-border: #cde8f1;
    --summary-icon-bg: #d9f2fa;
}

.workflow-summary-green {
    --summary-accent: #217b46;
    --summary-surface: #f1faf4;
    --summary-border: #d0e9d9;
    --summary-icon-bg: #def2e5;
}

.workflow-summary-card .stat-label {
    margin: 0 0 3px;
    min-height: 28px;
    font-size: 11px;
    line-height: 14px;
    white-space: normal;
    overflow-wrap: anywhere;
}

.workflow-summary-card .stat-value {
    font-size: 20px;
    line-height: 24px;
    margin: 0;
    color: var(--summary-accent);
}

.workflow-summary-note {
    margin-top: 3px;
    color: #8596a7;
    font-size: 11px;
}

.admin-dashboard-bottom {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 14px;
    margin-top: 14px
}

.priority-item {
    display: grid;
    grid-template-columns: 34px minmax(0,1fr) 14px;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #eef2f6;
    cursor: pointer
}

.priority-item:last-child {
    border-bottom: 0
}

.priority-item:hover strong {
    color: #0a5a98
}

.priority-icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    font-size: .77rem
}

.priority-item strong {
    display: block;
    font-size: .65rem
}

.priority-item small {
    display: block;
    font-size: .56rem;
    color: #8b9cad;
    margin-top: 2px
}

.priority-item>i {
    font-size: .62rem;
    color: #b3c0cc
}

.dashboard-chart-flex {
    display: grid;
    grid-template-columns: 160px minmax(0,1fr);
    gap: 16px;
    align-items: center;
    min-height: 190px
}

.chart-donut-wrap {
    height: 150px;
    min-width: 0
}

.chart-legend {
    display: grid;
    gap: 7px
}

.chart-legend>div {
    display: grid;
    grid-template-columns: 9px minmax(0,1fr) 30px;
    gap: 7px;
    align-items: center;
    font-size: .6rem
}

.chart-legend b {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.chart-legend strong {
    text-align: right
}

.legend-swatch {
    width: 8px;
    height: 8px;
    border-radius: 50%
}

.chart-color-0 {
    background: #3a8dcc
}

.chart-color-1 {
    background: #f0ac35
}

.chart-color-2 {
    background: #44aa76
}

.chart-color-3 {
    background: #8b65d9
}

.chart-color-4 {
    background: #e86b7a
}

.chart-color-5 {
    background: #60b9b4
}

.dosen-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0,1.55fr) minmax(270px,.65fr);
    gap: 14px
}

.compact-steps {
    grid-template-columns: repeat(6,minmax(90px,1fr));
    overflow-x: auto
}

.dashboard-callout {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid #dbeaf6;
    background: #f6fbff;
    border-radius: 12px;
    padding: 13px
}

.dashboard-callout>i {
    color: #1773b5
}

.dashboard-callout strong {
    display: block;
    font-size: .66rem
}

.dashboard-callout small {
    display: block;
    font-size: .57rem;
    color: #8395a7;
    margin-top: 2px
}

.activity-row {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 9px 0;
    border-bottom: 1px solid #eef2f6
}

.activity-row:last-child {
    border-bottom: 0
}

.activity-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2b8bc9;
    margin-top: 5px;
    flex: 0 0 8px
}

.activity-row strong {
    display: block;
    font-size: .62rem;
    line-height: 1.35
}

.activity-row small {
    display: block;
    font-size: .54rem;
    color: #8ea0b1;
    margin-top: 3px
}

.reviewer-heading {
    align-items: center
}

.deadline-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff5d7;
    border: 1px solid #f3e1a2;
    border-radius: 12px;
    padding: 11px 14px;
    color: #7b6422;
    min-width: 180px
}

.deadline-alert i {
    font-size: 1.05rem
}

.deadline-alert strong {
    display: block;
    font-size: .85rem
}

.deadline-alert span {
    display: block;
    font-size: .55rem
}

.reviewer-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0,1.7fr) minmax(255px,.65fr);
    gap: 14px;
    align-items: start
}

.review-progress {
    height: 9px;
    border-radius: 999px;
    background: #edf2f6;
    overflow: hidden;
    display: flex
}

.review-progress span {
    display: block;
    height: 100%
}

.rp-blue {
    background: #3b8fce
}

.rp-yellow {
    background: #eeb646
}

.rp-green {
    background: #3aa971
}

.review-progress-legend {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 10px;
    margin-top: 12px
}

.review-progress-legend div {
    text-align: center
}

.review-progress-legend strong {
    display: block;
    font-size: .85rem
}

.review-progress-legend span {
    display: block;
    font-size: .55rem;
    color: #8798a9
}

.reviewer-guide {
    background: #fff8de;
    border: 1px solid #f0e0a8;
    border-radius: 14px;
    padding: 15px;
    color: #6e5b22
}

.reviewer-guide h6 {
    font-size: .7rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 7px
}

.reviewer-guide h6 i {
    color: #d59c13
}

.reviewer-guide ol {
    font-size: .57rem;
    line-height: 1.55;
    padding-left: 18px;
    margin: 10px 0 12px
}

.leadership-top-grid {
    display: grid;
    grid-template-columns: minmax(0,1.6fr) minmax(270px,.75fr) minmax(230px,.55fr);
    gap: 14px;
    align-items: stretch
}

.leadership-bottom-grid {
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(220px,.6fr) minmax(230px,.65fr);
    gap: 14px;
    margin-top: 14px
}

.chart-area {
    height: 255px
}

.compact-chart {
    height: 255px
}

.executive-card {
    border-radius: 14px;
    background: linear-gradient(145deg,#f8fbff,#eef6fc);
    border: 1px solid #dceaf5;
    padding: 16px;
    min-width: 0
}

.executive-card h6 {
    font-size: .72rem;
    font-weight: 800
}

.executive-card p {
    font-size: .6rem;
    line-height: 1.65;
    color: #6e8398
}

.kpi-row {
    margin-bottom: 13px
}

.kpi-row:last-child {
    margin-bottom: 0
}

.kpi-row>div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: .58rem;
    margin-bottom: 5px
}

.kpi-row strong {
    font-size: .58rem
}

.kpi-progress {
    height: 7px
}

.kpi-progress>span {
    background: linear-gradient(90deg,#347fc0,#66a9df)
}

@media(max-width:1399.98px) {
    .leadership-top-grid {
        grid-template-columns: minmax(0,1.4fr) minmax(250px,.75fr)
    }

    .executive-card {
        grid-column: 1/-1
    }

    .leadership-bottom-grid {
        grid-template-columns: minmax(0,1.2fr) minmax(220px,.8fr)
    }

    .leadership-bottom-grid>.dashboard-card:last-child {
        grid-column: 1/-1
    }

}

@media(max-width:1199.98px) {
    .admin-dashboard-grid,.dosen-dashboard-grid,.reviewer-dashboard-grid,.leadership-top-grid,.leadership-bottom-grid {
        grid-template-columns: 1fr
    }

    .admin-dashboard-bottom {
        grid-template-columns: 1fr 1fr
    }

    .executive-card,.leadership-bottom-grid>.dashboard-card:last-child {
        grid-column: auto
    }

    .reviewer-dashboard-grid>aside {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px
    }

    .reviewer-dashboard-grid>aside>.dashboard-card {
        margin-bottom: 0!important
    }

}

@media(max-width:767.98px) {
    .dashboard-heading {
        flex-direction: column
    }

    .deadline-alert {
        width: 100%
    }

    .admin-dashboard-bottom {
        grid-template-columns: 1fr
    }

    .dashboard-chart-flex {
        grid-template-columns: 1fr
    }

    .chart-donut-wrap {
        height: 170px
    }

    .reviewer-dashboard-grid>aside {
        grid-template-columns: 1fr
    }

    .review-progress-legend {
        grid-template-columns: 1fr 1fr 1fr
    }

    .compact-steps {
        display: flex
    }

    .compact-steps .wizard-step {
        min-width: 95px
    }

    .leadership-top-grid,.leadership-bottom-grid {
        grid-template-columns: 1fr
    }

    .chart-area,.compact-chart {
        height: 230px
    }

}

/* v1.7 final responsive/overlap guard -------------------------------------- */
.sim-shell,.sim-main,.sim-content,#contentPage,.content-head,.dashboard-card,.page-card,.stat-card {
    min-width: 0
}

#contentPage {
    width: 100%;
    max-width: 100%
}

#contentPage img,#contentPage svg,#contentPage canvas {
    max-width: 100%
}

#contentPage canvas {
    width: 100%!important
}

.page-card,.dashboard-card,.stat-card,.inner-card {
    overflow-wrap: anywhere
}

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

.table-responsive>.table {
    margin-bottom: 0;
    min-width: 720px
}

.table-responsive>.table.table-compact {
    min-width: 560px
}

.dataTables_wrapper {
    width: 100%;
    max-width: 100%;
    overflow: visible
}

.dataTables_wrapper>.row {
    margin-left: 0;
    margin-right: 0;
    row-gap: 8px
}

.dataTables_wrapper>.row>* {
    min-width: 0;
    padding-left: 0;
    padding-right: 0
}

.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length {
    max-width: 100%
}

.dataTables_wrapper .dataTables_filter label,.dataTables_wrapper .dataTables_length label {
    display: flex;
    align-items: center;
    gap: 7px;
    max-width: 100%;
    font-size: .68rem
}

.dataTables_wrapper .dataTables_filter input {
    min-width: 120px;
    max-width: 220px;
    width: min(220px,52vw)!important;
    margin-left: 0!important
}

.sim-table-toolbar {
    width: 100%;
    max-width: 100%
}

.content-head>div:first-child {
    min-width: 0
}

.content-head h4,.dashboard-heading h5,.page-intro h5 {
    overflow-wrap: anywhere
}

.top-search {
    min-width: 0;
    width: min(440px,38vw);
    max-width: 440px
}

.top-search input {
    min-width: 0
}

.account-btn {
    max-width: 260px
}

.account-btn>span:last-child {
    min-width: 0
}

.account-btn strong {
    max-width: 170px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.dropdown-menu {
    max-width: min(360px,calc(100vw - 24px))
}

.modal-dialog {
    max-width: min(800px,calc(100vw - 24px));
    margin-left: auto;
    margin-right: auto
}

.modal-dialog.modal-xl {
    max-width: min(1140px,calc(100vw - 24px))
}

.form-control,.form-select,.input-group {
    max-width: 100%
}

.badge,.status-badge {
    max-width: 100%;
    white-space: normal;
    text-align: left
}

@media(max-width:991.98px) {
    .top-search {
        width: min(360px,42vw)
    }

    .sim-topbar {
        gap: 6px
    }

    .account-btn {
        max-width: 170px
    }

}

@media(max-width:767.98px) {
    .table-responsive>.table {
        min-width: 660px
    }

    .sim-topbar {
        padding-left: 12px;
        padding-right: 12px
    }

    .sim-topbar>.ms-auto {
        gap: 5px!important
    }

    .sim-topbar .btn.rounded-circle {
        width: 38px;
        height: 38px;
        padding: 0
    }

    .content-head {
        margin-bottom: 14px!important
    }

    .dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length {
        text-align: left!important
    }

    .sim-table-toolbar {
        flex-direction: column;
        align-items: stretch!important
    }

    .sim-table-toolbar>div,.sim-table-toolbar>.btn {
        width: 100%
    }

    .sim-table-toolbar .btn {
        width: 100%
    }

    .page-toolbar>.d-flex {
        flex-wrap: wrap
    }

}

@media(max-width:479.98px) {
    .table-responsive>.table {
        min-width: 620px
    }

    .sidebar-brand {
        padding-left: 14px;
        padding-right: 14px
    }

    .sim-sidebar {
        width: min(270px,86vw)
    }

    .content-head h4 {
        font-size: 1.05rem
    }

    .page-card,.dashboard-card .card-body {
        padding: 12px
    }

    .modal-dialog {
        max-width: calc(100vw - 12px);
        margin: .5rem auto
    }

}

/* SIMLITABMAS FINAL v1.8 -------------------------------------------------- */
.top-search-wrap {
    position: relative;
    min-width: 0;
    flex: 1;
    max-width: 520px
}

.top-search-wrap .top-search {
    min-width: 0;
    max-width: none;
    width: 100%
}

.top-search kbd {
    margin-left: auto;
    border: 1px solid #dce5ee;
    background: #fff;
    color: #7b8ea1;
    border-radius: 6px;
    font-size: .55rem;
    font-weight: 600;
    padding: 3px 6px;
    box-shadow: none
}

.global-search-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 9px);
    display: none;
    background: #fff;
    border: 1px solid #dfe8f1;
    border-radius: 14px;
    box-shadow: 0 18px 46px rgba(24,59,89,.16);
    max-height: min(62vh,520px);
    overflow: auto;
    z-index: 1080;
    padding: 7px
}

.global-search-panel.show {
    display: block
}

.global-search-group {
    padding: 4px
}

.global-search-group+.global-search-group {
    border-top: 1px solid #eef2f6;
    margin-top: 4px;
    padding-top: 8px
}

.global-search-group-title {
    font-size: .55rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    color: #93a3b3;
    padding: 5px 8px
}

.global-search-item {
    width: 100%;
    display: grid;
    grid-template-columns: 36px minmax(0,1fr) 14px;
    gap: 9px;
    align-items: center;
    text-align: left;
    border: 0;
    background: #fff;
    border-radius: 10px;
    padding: 8px 9px;
    color: #314b63
}

.global-search-item:hover,.global-search-item:focus {
    background: #f2f7fb;
    outline: 0
}

.global-search-icon {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: #eaf3fb;
    color: #0a5a98;
    display: grid;
    place-items: center
}

.global-search-copy {
    min-width: 0
}

.global-search-copy strong {
    display: block;
    font-size: .66rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.global-search-copy small {
    display: block;
    font-size: .54rem;
    color: #8799aa;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.global-search-item>i {
    font-size: .6rem;
    color: #b5c1cd
}

.global-search-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 20px;
    color: #7f91a3;
    font-size: .64rem
}

.global-search-empty {
    display: grid;
    place-items: center;
    text-align: center;
    padding: 24px 12px;
    color: #8799aa
}

.global-search-empty i {
    font-size: 1.35rem;
    color: #a8b7c4;
    margin-bottom: 6px
}

.global-search-empty strong {
    font-size: .68rem;
    color: #4c647a
}

.global-search-empty span {
    font-size: .57rem;
    margin-top: 3px;
    max-width: 320px
}

.top-notification-badge,.top-message-badge {
    position: absolute;
    right: -2px;
    top: -3px;
    min-width: 17px;
    height: 17px;
    border-radius: 999px;
    background: #e65063;
    color: #fff;
    border: 2px solid #fff;
    font-size: .5rem;
    font-weight: 800;
    line-height: 13px;
    text-align: center;
    padding: 0 3px;
    box-shadow: 0 2px 7px rgba(192,55,73,.24)
}

/* Luaran: activity & target status */
.output-activity-card {
    margin-top: 14px
}

.output-activity-list {
    display: grid
}

.output-activity-item {
    display: grid;
    grid-template-columns: 9px minmax(0,1fr) auto;
    gap: 9px;
    align-items: start;
    padding: 9px 0;
    border-bottom: 1px solid #eef2f6
}

.output-activity-item:last-child {
    border-bottom: 0
}

.output-activity-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2c8ccd;
    margin-top: 4px
}

.output-activity-item:nth-child(2n) .output-activity-dot {
    background: #2ca36a
}

.output-activity-item:nth-child(3n) .output-activity-dot {
    background: #e3a133
}

.output-activity-item strong {
    display: block;
    font-size: .61rem;
    line-height: 1.4
}

.output-activity-item span {
    display: block;
    font-size: .54rem;
    color: #8a9cad;
    margin-top: 2px
}

.output-activity-item time {
    font-size: .53rem;
    color: #94a5b5;
    white-space: nowrap
}

.target-progress-list {
    display: grid;
    gap: 11px;
    margin-top: 14px
}

.target-progress-item>div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
    font-size: .58rem;
    margin-bottom: 5px
}

.target-progress-item span {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.target-progress-item strong {
    font-size: .58rem
}

.target-progress-bar {
    height: 6px;
    background: #edf2f6;
    border-radius: 999px;
    overflow: hidden
}

.target-progress-bar i {
    display: block;
    height: 100%;
    background: linear-gradient(90deg,#318dcc,#66addf);
    border-radius: 999px
}

/* Keuangan: inline add form */
.finance-entry-card {
    margin-top: 14px
}

.finance-entry-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px
}

.finance-entry-head h6 {
    font-size: .72rem;
    font-weight: 800;
    margin: 0 0 3px
}

.finance-entry-head p {
    font-size: .57rem;
    color: #8a9bac;
    margin: 0
}

.finance-inline-form .form-label {
    font-size: .6rem;
    margin-bottom: 4px
}

.finance-inline-form .form-control,.finance-inline-form .form-select {
    font-size: .69rem;
    min-height: 38px
}

.finance-inline-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #eef2f6
}

.finance-summary-card .summary-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 0;
    border-bottom: 1px solid #eef2f6;
    font-size: .59rem
}

.finance-summary-card .summary-line:last-child {
    border-bottom: 0
}

.finance-summary-card .summary-line span {
    color: #8193a5
}

.finance-summary-card .summary-line strong {
    font-size: .61rem;
    text-align: right
}

.finance-summary-card .summary-line.emphasis strong {
    color: #0b6cab
}

/* Wizard draft actions */
.wizard-action-left {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap
}

.btn-save-draft {
    border-color: #c9d9e7;
    color: #48657e;
    background: #fff
}

.btn-save-draft:hover {
    background: #f3f7fa;
    color: #234d70;
    border-color: #afc7da
}

.draft-hint {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: .55rem;
    color: #8a9cad
}

.draft-hint i {
    color: #2b9b68
}

@media(max-width:1199.98px) {
    .top-search-wrap {
        max-width: 430px
    }

    .global-search-panel {
        position: fixed;
        left: 18px;
        right: 18px;
        top: 70px;
        max-height: 65vh
    }

}

@media(max-width:767.98px) {
    .finance-inline-actions {
        flex-direction: column
    }

    .finance-inline-actions .btn {
        width: 100%
    }

    .output-activity-item {
        grid-template-columns: 9px minmax(0,1fr)
    }

    .output-activity-item time {
        grid-column: 2
    }

    .top-search kbd {
        display: none
    }

}

@media(max-width:575.98px) {
    .global-search-panel {
        left: 10px;
        right: 10px;
        top: 64px
    }

    .global-search-copy strong,.global-search-copy small {
        white-space: normal
    }

    .wizard-action-left {
        width: 100%
    }

    .wizard-actions>.btn,.wizard-actions>.wizard-action-left,.wizard-actions>form {
        flex: 1 1 100%
    }

    .wizard-action-left .btn,.wizard-actions>form .btn {
        width: 100%
    }

}

/* End FINAL v1.8 ---------------------------------------------------------- */
.quick-draft-row {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #eef2f6
}

.quick-draft-row span {
    font-size: .55rem;
    color: #8799aa
}

.quick-draft-row .btn {
    flex: 0 0 auto
}

@media(max-width:575.98px) {
    .quick-draft-row {
        align-items: stretch;
        flex-direction: column
    }

    .quick-draft-row .btn {
        width: 100%
    }

}

/* ========================================================================== */
/* SIMLITABMAS v1.9 - TYPOGRAPHY SCALE                                       */
/* Tujuan: meningkatkan keterbacaan tanpa mengubah komposisi mockup.          */
/* ========================================================================== */
body {
    font-size: 15px;
    line-height: 1.5
}

/* Login & pemilihan role */
.login-v2-body,.role-v2-body {
    font-size: 15px
}

.login-v2-heading p,.login-v2-description,.role-v2-card>p {
    font-size: 12.5px!important;
    line-height: 1.65
}

.login-v2-field label,.login-v2-helper,.login-v2-forgot,.login-v2-back,.login-v2-note,.role-v2-note,.role-v2-logout {
    font-size: 12px!important
}

.login-v2-field input {
    font-size: 14px!important
}

.login-v2-feature strong {
    font-size: 12.5px!important
}

.login-v2-feature span {
    font-size: 11px!important;
    line-height: 1.45
}

.login-v2-copyright,.login-v2-mobile-brand small,.role-v2-brand small {
    font-size: 10.5px!important
}

.role-v2-brand strong {
    font-size: 14px!important
}

.role-choice small {
    font-size: 11.5px!important
}

.role-choice strong {
    font-size: 13.5px!important
}

/* Sidebar & topbar */
.brand-title {
    font-size: 15.5px
}

.brand-subtitle {
    font-size: 11px
}

.sidebar-role {
    font-size: 12px
}

.sidebar-menu-label {
    font-size: 10.5px
}

.side-link {
    font-size: 13px;
    line-height: 1.35
}

.side-sub .side-link {
    font-size: 12.2px
}

.sidebar-footer {
    font-size: 11.5px;
    line-height: 1.45
}

.top-search input {
    font-size: 13px
}

.top-search kbd {
    font-size: 10px!important
}

.account-btn strong {
    font-size: 13px
}

.account-btn small {
    font-size: 11px
}

.sim-footer {
    font-size: 11.5px
}

/* Dashboard cards */
.stat-label {
    font-size: 12px
}

.stat-value {
    font-size: 22px
}

.stat-note {
    font-size: 10.8px;
    line-height: 1.35
}

.dashboard-card .card-head h6 {
    font-size: 13.5px
}

.mini-link {
    font-size: 11.5px
}

.status-badge {
    font-size: 10.8px
}

.task-title {
    font-size: 12px;
    line-height: 1.4
}

.task-sub {
    font-size: 10.8px;
    line-height: 1.4
}

.date-box strong {
    font-size: 13px
}

.date-box span {
    font-size: 9.5px
}

/* Tables & DataTables */
.table-sim {
    font-size: 12.3px
}

.table-sim thead th {
    font-size: 10.8px;
    line-height: 1.35
}

.table-sim tbody td {
    line-height: 1.45
}

.dataTables_wrapper {
    font-size: 12px
}

.dataTables_wrapper .dataTables_filter label,.dataTables_wrapper .dataTables_length label {
    font-size: 11.5px!important
}

.dataTables_info {
    font-size: 11.5px!important
}

.pagination .page-link {
    font-size: 11.5px
}

/* Form & controls */
.form-control,.form-select {
    font-size: 13px
}

.form-label {
    font-size: 12px;
    line-height: 1.4
}

.btn {
    font-size: 12.5px
}

.btn-sm {
    font-size: 11.5px
}

.form-text,.invalid-feedback,.valid-feedback {
    font-size: 11px
}

/* Wizard, cards, labels */
.wizard-step {
    font-size: 11px;
    line-height: 1.35
}

.report-card p {
    font-size: 12px;
    line-height: 1.5
}

.log-json {
    font-size: 12px
}

.mini-kpi {
    font-size: 12px
}

.info-label {
    font-size: 10.5px
}

.message-body {
    font-size: 13.5px
}

.kpi-line {
    font-size: 12px
}

.schedule-date {
    font-size: 11.5px
}

.dosen-info-item span {
    font-size: 10.5px
}

.dosen-info-item strong {
    font-size: 12.5px
}

/* Global search & badges */
.global-search-group-title {
    font-size: 10px!important
}

.global-search-copy strong {
    font-size: 12px!important
}

.global-search-copy small {
    font-size: 10.5px!important
}

.global-search-loading {
    font-size: 11.5px!important
}

.global-search-empty strong {
    font-size: 12px!important
}

.global-search-empty span {
    font-size: 10.5px!important
}

.top-notification-badge,.top-message-badge {
    font-size: 9px!important
}

/* Dashboard detail blocks */
.chart-legend>div {
    font-size: 10.5px!important
}

.dashboard-callout strong {
    font-size: 12px!important
}

.dashboard-callout small {
    font-size: 10.5px!important
}

.activity-row strong {
    font-size: 11.5px!important
}

.activity-row small {
    font-size: 10px!important
}

.deadline-alert strong {
    font-size: 13.5px!important
}

.deadline-alert span {
    font-size: 10.5px!important
}

.review-progress-legend strong {
    font-size: 13px!important
}

.review-progress-legend span {
    font-size: 10.5px!important
}

.reviewer-guide h6 {
    font-size: 12.5px!important
}

.reviewer-guide ol {
    font-size: 11px!important
}

.executive-card h6 {
    font-size: 13px!important
}

.executive-card p {
    font-size: 11.5px!important
}

.kpi-row>div:first-child,.kpi-row strong {
    font-size: 11px!important
}

.output-activity-item strong {
    font-size: 11.5px!important
}

.output-activity-item span {
    font-size: 10px!important
}

.output-activity-item time {
    font-size: 10px!important
}

.target-progress-item>div:first-child,.target-progress-item strong {
    font-size: 11px!important
}

.finance-entry-head h6 {
    font-size: 13px!important
}

.finance-entry-head p {
    font-size: 11px!important
}

.finance-inline-form .form-label {
    font-size: 11.5px!important
}

.finance-inline-form .form-control,.finance-inline-form .form-select {
    font-size: 12.5px!important
}

.finance-summary-card .summary-line {
    font-size: 11.5px!important
}

.finance-summary-card .summary-line strong {
    font-size: 12px!important
}

.draft-hint,.quick-draft-row span {
    font-size: 10.5px!important
}

/* Bootstrap helper text in application content */
.sim-content .small {
    font-size: 12px!important;
    line-height: 1.45
}

.sim-content .text-muted.small {
    font-size: 11.5px!important
}

/* Desktop: sedikit tambah ruang sidebar agar label yang lebih besar tetap rapi */
@media(min-width:1200px) {
    .sim-sidebar {
        width: 264px
    }

    .sim-main {
        margin-left: 264px
    }

}

@media(max-width:575.98px) {
    body {
        font-size: 14.5px
    }

    .side-link {
        font-size: 13px
    }

    .table-sim {
        font-size: 12px
    }

    .form-control,.form-select {
        font-size: 13px
    }

    .sim-content .small {
        font-size: 11.5px!important
    }

}

/* SIMLITABMAS v1.9 TYPOGRAPHY SCALE END */
/* v1.9 readability floor for secondary information */
.login-v2-feature small {
    font-size: 11px!important
}

.login-v2-mini-head b {
    font-size: 10.5px!important
}

.login-v2-mini-stats strong {
    font-size: 11.5px!important
}

.login-v2-mini-stats small {
    font-size: 10px!important
}

.login-v2-showcase-footer {
    font-size: 11px!important
}

.login-v2-support small {
    font-size: 11px!important
}

.page-intro-control label {
    font-size: 11px!important
}

.eyebrow {
    font-size: 10.5px!important
}

.donut-static span {
    font-size: 10.5px!important
}

.legend-row {
    font-size: 11.5px!important
}

.legend-row small {
    font-size: 10.5px!important
}

.finance-summary span {
    font-size: 10.8px!important
}

.finance-summary strong {
    font-size: 11.5px!important
}

.tips-card p,.tips-card ol {
    font-size: 11px!important;
    line-height: 1.55
}

.completion-ring span {
    font-size: 10.5px!important
}

.doc-check {
    font-size: 11.5px!important
}

.review-score-box span {
    font-size: 10.5px!important
}

.help-step p {
    font-size: 11px!important;
    line-height: 1.5
}

.priority-item small {
    font-size: 10.5px!important
}

.priority-item>i {
    font-size: 12px!important
}

/* end v1.9 readability floor */
/* v1.10 UI refinement */
.top-search-wrap {
    display: flex;
    justify-content: flex-start
}

.top-search {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px
}

.top-search i {
    flex: 0 0 auto
}

.top-search input {
    flex: 1 1 auto
}

.top-search kbd {
    flex: 0 0 auto;
    white-space: nowrap
}

.dataTables_wrapper .row:first-child {
    align-items: center
}

.dataTables_wrapper .dataTables_length {
    display: flex;
    align-items: center;
    justify-content: flex-start
}

.dataTables_wrapper .dataTables_filter {
    display: flex;
    justify-content: flex-end;
    text-align: right!important;
    margin-left: auto
}

.dataTables_wrapper .dataTables_filter label {
    justify-content: flex-end;
    width: 100%
}

.dataTables_wrapper .dataTables_length label {
    white-space: nowrap
}

.dataTables_wrapper .dataTables_length select {
    min-width: 74px!important;
    width: auto!important;
    padding-right: 2rem!important
}

.dataTables_wrapper .dataTables_filter input {
    min-width: 180px;
    max-width: 260px;
    width: 260px!important
}

.table-meta {
    line-height: 1.35
}

.table-meta .small {
    display: block;
    margin-top: 2px
}

.sim-form .sim-field {
    max-width: none
}

.sim-form .sim-field.sim-field-compact {
    max-width: 240px
}

.sim-form .sim-field.sim-field-wide {
    max-width: none
}

.sim-form .sim-field > .form-control,.sim-form .sim-field > .form-select {
    width: 100%
}

@media (max-width: 991.98px) {
    .sim-form .sim-field,.sim-form .sim-field.sim-field-compact {
        max-width: none
    }

    .top-search-wrap {
        max-width: 420px
    }

}

@media (max-width: 767.98px) {
    .dataTables_wrapper .dataTables_filter {
        justify-content: flex-start;
        text-align: left!important;
        margin-left: 0
    }

    .dataTables_wrapper .dataTables_filter input {
        width: 100%!important;
        max-width: none
    }

    .dataTables_wrapper .dataTables_length {
        margin-bottom: 8px
    }

}

/* v1.11: form layout kembali rapat; hanya field pendek yang compact */
@media(min-width:992px) {
    .sim-form .sim-field-compact {
        max-width: 240px
    }

    .sim-form .sim-field-compact > .form-select,.sim-form .sim-field-compact > .form-control {
        min-width: 0
    }

}

/* v1.17 report export center */
.report-export-card {
    display: flex;
    flex-direction: column;
    min-height: 190px
}

.report-export-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #edf5fc;
    color: var(--sim-blue);
    display: grid;
    place-items: center;
    font-size: 1.15rem;
    margin-bottom: 12px
}

.report-filter-row .form-control,.report-filter-row .form-select {
    max-width: 260px
}

/* v1.18 typography + simple login */
.sim-content {
    font-size: 13.5px
}

.sim-content h4 {
    font-size: 18px
}

.sim-content h5 {
    font-size: 16px
}

.sim-content h6 {
    font-size: 13px
}

.form-label {
    font-size: 12px!important;
    font-weight: 600!important;
    color: #476078!important;
    margin-bottom: 6px
}

.form-control,.form-select {
    font-size: 13px!important;
    min-height: 40px
}

.form-text,.sim-field-help {
    font-size: 10.8px!important;
    line-height: 1.45;
    color: #8494a5;
    margin-top: 5px
}

.table-sim {
    font-size: 12.5px!important
}

.table-sim thead th {
    font-size: 11px!important
}

.small,.sim-content .small {
    font-size: 11.5px!important
}

.btn {
    font-size: 12px!important
}

.btn-sm {
    font-size: 11px!important
}

.sim-numeric-input {
    text-align: right;
    font-variant-numeric: tabular-nums
}

.sim-money-input {
    font-weight: 600
}

.sim-form .sim-field-compact {
    max-width: 260px!important
}

.login-simple-body {
    margin: 0;
    min-height: 100vh;
    background: #f4f7fb;
    font-family: Inter,sans-serif;
    color: #243b53
}

.login-simple-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(0,1.05fr) minmax(420px,.95fr);
    background: #fff
}

.login-simple-image {
    position: relative;
    min-height: 100vh;
    background-image: url('../../../assets/img/campus-public-banner.png');
    background-position: center;
    background-size: cover;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 38px 44px
}

.login-simple-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(4,38,68,.48),rgba(4,38,68,.2) 46%,rgba(4,38,68,.76))
}

.login-simple-brand,.login-simple-caption {
    position: relative;
    z-index: 1
}

.login-simple-brand {
    display: flex;
    align-items: center;
    gap: 12px
}

.login-simple-brand img {
    width: 58px;
    height: 58px;
    object-fit: contain;
    background: #fff;
    border-radius: 14px;
    padding: 5px
}

.login-simple-brand strong {
    display: block;
    font-size: 15px;
    letter-spacing: .08em
}

.login-simple-brand span {
    display: block;
    font-size: 11px;
    opacity: .82
}

.login-simple-caption {
    max-width: 570px
}

.login-simple-caption h1 {
    font-size: clamp(28px,3vw,44px);
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -.03em;
    margin: 0 0 12px
}

.login-simple-caption p {
    font-size: 14px;
    line-height: 1.65;
    color: rgba(255,255,255,.84)
}

.login-simple-form-side {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 42px 54px
}

.login-simple-form-wrap {
    width: 100%;
    max-width: 410px
}

.login-simple-back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #7890a5;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 44px
}

.login-simple-heading {
    margin-bottom: 26px
}

.login-simple-heading h2 {
    font-size: 26px;
    font-weight: 800;
    color: #173a57;
    margin: 0 0 8px
}

.login-simple-heading p {
    font-size: 12.5px;
    color: #8092a5
}

.login-simple-input {
    position: relative
}

.login-simple-input>i {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    color: #8295a8
}

.login-simple-input .form-control {
    padding-left: 38px;
    padding-right: 42px;
    min-height: 44px
}

.login-simple-toggle {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: #8093a6
}

.login-simple-forgot {
    font-size: 11.5px
}

.login-simple-submit {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px
}

.login-simple-help {
    display: flex;
    gap: 8px;
    margin-top: 18px;
    padding: 11px 12px;
    border-radius: 10px;
    background: #f4f8fb;
    color: #70869b;
    font-size: 11px
}

.login-simple-footer {
    margin-top: 28px;
    text-align: center;
    font-size: 10.5px;
    color: #9aa8b6
}

.login-simple-mobile-brand {
    display: none
}

@media(max-width:900px) {
    .login-simple-shell {
        display: block
    }

    .login-simple-image {
        display: none
    }

    .login-simple-form-side {
        min-height: 100vh;
        padding: 30px 22px
    }

    .login-simple-mobile-brand {
        display: flex;
        gap: 10px;
        align-items: center;
        margin-bottom: 30px
    }

    .login-simple-mobile-brand img {
        width: 50px;
        height: 50px;
        object-fit: contain
    }

    .login-simple-mobile-brand strong {
        display: block;
        color: #0a4f8a
    }

    .login-simple-mobile-brand span {
        display: block;
        color: #8597aa;
        font-size: 10.5px
    }

}

/* ==========================================================================
   SIMLITABMAS v1.23 - form consistency & input-group fix
   ========================================================================== */
.page-card {
    overflow: visible
}

.page-card>.sim-form {
    width: 100%
}

.sim-form .row {
    --bs-gutter-x: 1.15rem;
    --bs-gutter-y: .25rem
}

.sim-form .sim-field {
    margin-bottom: 14px!important
}

.sim-form .form-label {
    display: block;
    margin-bottom: 6px!important
}

.sim-form .form-control, .sim-form .form-select {
    width: 100%;
    min-height: 42px;
    border-radius: 9px!important;
    background-color: #fff
}

.sim-form textarea.form-control {
    min-height: auto
}

.sim-form .form-control[type="file"] {
    padding-top: .55rem;
    padding-bottom: .55rem
}

.sim-form .form-text {
    max-width: 760px
}

/* Jangan paksa width:100% pada input yang berada di dalam .input-group.
   Bootstrap membutuhkan width:1% + flex-grow agar tombol tetap satu baris. */
.sim-form .input-group {
    display: flex!important;
    flex-wrap: nowrap!important;
    align-items: stretch;
    width: 100%;
}

.sim-form .input-group>.form-control, .sim-form .input-group>.form-select {
    position: relative;
    flex: 1 1 auto!important;
    width: 1%!important;
    min-width: 0!important;
    margin-bottom: 0;
    border-top-right-radius: 0!important;
    border-bottom-right-radius: 0!important;
}

.sim-form .input-group>.btn {
    position: relative;
    flex: 0 0 auto;
    width: auto;
    min-width: 44px;
    margin: 0!important;
    border-top-left-radius: 0!important;
    border-bottom-left-radius: 0!important;
    border-top-right-radius: 9px!important;
    border-bottom-right-radius: 9px!important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sim-form .input-group>.btn.password-toggle {
    min-width: 46px;
    padding-left: 12px;
    padding-right: 12px
}

/* Standard section used by long admin forms */
.form-section-card, .password-section-card {
    border: 1px solid #e3ebf3;
    background: #fbfdff;
    border-radius: 14px;
    padding: 16px 17px;
}

.form-section-head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid #edf2f7;
}

.form-section-icon, .password-section-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #eaf3fb;
    color: var(--sim-blue);
}

.form-section-head strong {
    display: block;
    font-size: 12.8px;
    color: #263f57;
    line-height: 1.35
}

.form-section-head span {
    display: block;
    font-size: 10.8px;
    color: #8192a4;
    line-height: 1.45;
    margin-top: 2px
}

.form-section-body {
    min-width: 0
}

.password-section-card>.d-flex:first-child {
    padding-bottom: 12px;
    margin-bottom: 14px!important;
    border-bottom: 1px solid #edf2f7;
}

.password-section-card>.d-flex:first-child strong {
    font-size: 12.8px;
    color: #263f57
}

.password-section-card>.d-flex:first-child .small {
    font-size: 10.8px!important;
    color: #8192a4!important
}

.password-section-card .row>.col-lg-6 .sim-field {
    margin-bottom: 0!important
}

.password-section-card #passwordMatchInfo {
    min-height: 16px
}

.role-check-card {
    min-height: 46px;
    padding: 10px 12px;
    transition: border-color .15s,background .15s
}

.role-check-card:hover {
    border-color: #b8d2e7;
    background: #f8fbfe
}

.role-check-card input {
    flex: 0 0 auto
}

.role-check-card span {
    min-width: 0
}

.role-check-card strong {
    font-size: 12px
}

.akun-source-card {
    border: 1px dashed #cdddeb;
    border-radius: 12px;
    background: #f7fbff;
    padding: 14px
}

.dosen-selected-info {
    border-radius: 10px
}

.dosen-info-item {
    height: 100%
}

/* Table actions stay compact and aligned */
.table-sim td .text-center {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap
}

.table-sim td .text-center .btn {
    margin-right: 0!important;
    white-space: nowrap
}

@media(max-width:991.98px) {
    .form-section-card,.password-section-card {
        padding: 14px
    }

    .password-section-card .row>.col-lg-6 .sim-field {
        margin-bottom: 12px!important
    }

}

@media(max-width:575.98px) {
    .form-section-card,.password-section-card {
        padding: 12px;
        border-radius: 12px
    }

    .sim-form .row {
        --bs-gutter-x: .8rem
    }

}

/* ==========================================================================
   SIMLITABMAS v1.24 - self account settings
   ========================================================================== */
.account-self-card {
    max-width: 1080px;
    margin: 0 auto
}

.account-self-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid #eaf0f6;
}

.account-self-kicker {
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .09em;
    color: #7590a8;
    margin-bottom: 3px;
}

.account-self-head h6 {
    font-size: 15px
}

.account-self-head p {
    font-size: 11.5px;
    color: #7d91a4
}

.account-self-role {
    text-align: right;
    max-width: 360px
}

.account-self-role .badge {
    font-size: 10.5px;
    font-weight: 650;
    padding: 6px 9px
}

.account-btn+.dropdown-menu .dropdown-item {
    display: flex;
    align-items: center;
    min-height: 38px;
    font-size: 12px;
}

.account-btn+.dropdown-menu .dropdown-item i {
    width: 18px;
    text-align: center
}

@media(max-width:767.98px) {
    .account-self-card {
        max-width: none
    }

    .account-self-head {
        flex-direction: column
    }

    .account-self-role {
        text-align: left;
        max-width: none
    }

}

/* v1.32 - Proposal wizard: substansi, target luaran, RAB, status kelengkapan */
.check-icon.ok {
    background: #e8f7ef;
    color: #239060
}

.check-icon.not {
    background: #fdecec;
    color: #c0392b
}

.review-check {
    display: flex;
    align-items: center;
    gap: 10px
}

.review-check .status-badge {
    margin-left: auto;
    white-space: nowrap
}

.substance-guide {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid #cfe1ef;
    background: #f5faff;
    border-radius: 13px;
    padding: 14px 16px
}

.substance-guide>div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0
}

.substance-guide>div>i {
    font-size: 1.35rem;
    color: #176fb4
}

.substance-guide strong {
    font-size: .74rem;
    color: #24455f
}

.substance-guide p,.proposal-section-head p {
    font-size: .63rem;
    color: #7a8d9f;
    line-height: 1.5
}

.proposal-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 15px
}

.substance-upload-box {
    background: #fcfdff
}

.rab-entry-form {
    border: 1px solid #e7eef5;
    background: #f9fbfd;
    border-radius: 12px;
    padding: 15px
}

.rab-total-box {
    text-align: right;
    min-width: 145px;
    background: #edf7ff;
    border: 1px solid #d6eafa;
    border-radius: 10px;
    padding: 8px 11px
}

.rab-total-box span {
    display: block;
    font-size: .58rem;
    color: #7890a3
}

.rab-total-box strong {
    font-size: .78rem;
    color: #0a5a98
}

@media(max-width:767.98px) {
    .substance-guide,.proposal-section-head {
        flex-direction: column;
        align-items: stretch
    }

    .substance-guide .btn {
        width: 100%
    }

    .rab-total-box {
        text-align: left;
        width: 100%
    }

    .review-check {
        align-items: flex-start
    }

    .review-check .status-badge {
        margin-left: auto
    }

}

/* SIMLITABMAS v1.36 - modal ganti peran */
.role-switch-list {
    display: grid;
    gap: 10px
}

.role-switch-item {
    width: 100%;
    border: 1px solid #dfe8f0;
    border-radius: 14px;
    background: #fff;
    padding: 13px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #29465f;
    transition: .15s ease;
}

.role-switch-item:not(:disabled):hover {
    border-color: #8db8dc;
    background: #f2f8fd;
    transform: translateY(-1px);
}

.role-switch-item.active {
    border-color: #b7d7c4;
    background: #f3fbf6;
}

.role-switch-item:disabled {
    opacity: 1;
    cursor: default
}

.role-switch-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #eaf3fb;
    color: #0a4f8a;
    font-size: 1.1rem;
    flex: 0 0 auto;
}

.role-switch-item.active .role-switch-icon {
    background: #e7f6ec;
    color: #198754;
}

.role-switch-item strong {
    font-size: 13.5px
}

.role-switch-item small {
    font-size: 11.5px;
    color: #7b8e9f
}

.role-switch-action {
    font-size: 11.5px;
    font-weight: 700;
    color: #0a6aab;
    white-space: nowrap;
}

@media(max-width:575.98px) {
    .role-switch-action {
        display: none
    }

    .role-switch-item {
        padding: 12px
    }

}

/* SIMLITABMAS v1.39 - Dashboard Dosen proporsional & compact */
.dosen-dashboard-v138 {
    max-width: 100%;
    overflow: hidden;
}

.dosen-dashboard-heading {
    margin-bottom: 16px;
    padding-bottom: 2px;
}

.dosen-dashboard-heading h5 {
    font-size: 18px;
    margin-bottom: 3px;
}

.dosen-dashboard-heading p {
    max-width: 720px;
    font-size: 11.5px;
}

/* Ringkasan utama */
.dosen-summary-card {
    height: 100%;
    min-height: 84px;
    background: #fff;
    border: 1px solid #e4ebf1;
    border-radius: 13px;
    padding: 12px 13px;
    display: flex;
    align-items: center;
    gap: 11px;
    box-shadow: 0 3px 11px rgba(31,67,93,.03);
}

.dosen-summary-icon {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    font-size: 17px;
}

.bg-soft-blue {
    background: #eaf4fd;
    color: #2b78b8
}

.bg-soft-green {
    background: #eaf8f1;
    color: #2f8a62
}

.bg-soft-purple {
    background: #f1edfc;
    color: #7559b9
}

.bg-soft-orange {
    background: #fff2df;
    color: #c98228
}

.dosen-summary-card span {
    display: block;
    font-size: 10.3px;
    color: #7c8e9d;
}

.dosen-summary-card strong {
    display: block;
    font-size: 19px;
    line-height: 1.12;
    color: #1c405b;
    margin: 2px 0;
}

.dosen-summary-card small {
    display: block;
    font-size: 9.5px;
    color: #99a8b5;
}

/* Perlu perhatian */
.dosen-attention-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    border-radius: 13px;
    padding: 10px 12px;
    border: 1px solid #dce8e2;
    background: #f6fbf8;
    color: #355d4a;
}

.dosen-attention-card.is-warning {
    border-color: #f0d4a5;
    background: #fff9ef;
    color: #72531c;
}

.dosen-attention-card .attention-icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: rgba(255,255,255,.8);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.dosen-attention-card strong {
    font-size: 12px
}

.dosen-attention-card .small {
    font-size: 9.8px;
    color: inherit;
    opacity: .78;
}

/* Judul bagian */
.dosen-section-head {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 9px;
    padding: 0 2px 7px;
    border-bottom: 1px solid #edf2f6;
}

.dosen-section-head h6 {
    font-size: 13px;
    font-weight: 800;
    color: #1e435f;
    margin: 0 0 2px;
}

.dosen-section-head p {
    font-size: 10px;
    color: #8999a7;
    margin: 0;
}

/* Kartu grafik */
.dosen-chart-card {
    height: 100%;
    background: #fff;
    border: 1px solid #e4ebf1;
    border-radius: 13px;
    box-shadow: 0 3px 11px rgba(31,67,93,.03);
    overflow: hidden;
}

.dosen-chart-head {
    min-height: 55px;
    padding: 10px 12px 7px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    border-bottom: 1px solid #eef3f6;
}

.dosen-chart-head span {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: #23465f;
}

.dosen-chart-head small {
    display: block;
    font-size: 9.4px;
    color: #8999a7;
    margin-top: 2px;
    line-height: 1.3;
}

.dosen-chart-head>i {
    font-size: 15px;
    color: #8ea4b6;
}

.dosen-chart-body {
    position: relative;
    padding: 9px 11px 6px;
}

.dosen-chart-body.chart-wide {
    height: 188px
}

.dosen-chart-body.chart-medium {
    height: 184px
}

.dosen-chart-body.chart-donut {
    height: 184px;
    padding-left: 18px;
    padding-right: 18px;
}

.dosen-chart-footer {
    min-height: 39px;
    padding: 6px 11px 8px;
    border-top: 1px solid #f0f4f7;
    text-align: right;
}

.dosen-chart-footer .btn {
    font-size: 10px;
    padding: 3px 8px;
}

/* Keuangan */
.finance-head {
    margin-top: 0
}

.dosen-finance-kpi {
    height: 100%;
    min-height: 66px;
    background: #fff;
    border: 1px solid #e4ebf1;
    border-radius: 11px;
    padding: 10px 11px;
}

.dosen-finance-kpi span {
    display: block;
    font-size: 9.7px;
    color: #8293a2;
    margin-bottom: 3px;
}

.dosen-finance-kpi strong {
    display: block;
    font-size: 13.5px;
    color: #21445f;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Aktivitas terbaru - menggantikan Alur Pengajuan Proposal */
.dosen-recent-card {
    margin-top: 2px
}

.dosen-recent-card .card-head {
    align-items: flex-start;
}

.dosen-recent-card .card-head .small {
    font-size: 9.7px;
    margin-top: 2px;
}

.dosen-recent-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px 10px;
}

.dosen-recent-grid .activity-row {
    margin: 0;
    padding: 9px 10px;
    border: 1px solid #edf2f6;
    border-radius: 10px;
    background: #fbfdfe;
    min-width: 0;
}

.dosen-recent-grid .activity-row strong {
    font-size: 10.8px;
    line-height: 1.35;
}

.dosen-recent-grid .activity-row small {
    font-size: 9.3px;
    margin-top: 2px;
}

/* Tablet */
@media(max-width:991.98px) {
    .dosen-chart-body.chart-wide, .dosen-chart-body.chart-medium, .dosen-chart-body.chart-donut {
        height: 184px
    }

    .dosen-recent-grid {
        grid-template-columns: 1fr
    }

}

/* Mobile */
@media(max-width:767.98px) {
    .dosen-dashboard-heading {
        align-items: flex-start;
    }

    .dosen-attention-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .dosen-chart-body.chart-wide, .dosen-chart-body.chart-medium, .dosen-chart-body.chart-donut {
        height: 178px;
    }

}

@media(max-width:575.98px) {
    .dosen-summary-card {
        padding: 10px;
        min-height: 78px;
    }

    .dosen-summary-icon {
        width: 35px;
        height: 35px;
        font-size: 14px;
    }

    .dosen-summary-card strong {
        font-size: 16px
    }

    .dosen-chart-head {
        min-height: 52px;
        padding: 9px 10px 6px;
    }

    .dosen-chart-body.chart-wide, .dosen-chart-body.chart-medium, .dosen-chart-body.chart-donut {
        height: 170px;
        padding: 7px 9px 5px;
    }

}

.import-prodi-table.table-responsive {
    max-height: none;
    overflow-y: visible;
}

.import-prodi-table .dataTables_wrapper {
    padding-bottom: 8px;
}

.sim-search-select {
    position: relative;
    min-width: 0;
}
.sim-select-original {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
}
.sim-select-toggle {
    text-align: left;
    white-space: normal;
    min-height: 38px;
}
.sim-select-popup {
    position: fixed;
    top: 100%;
    left: 0;
    width: 100%;
    min-width: 200px;
    z-index: 1080;
    padding: 8px;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .16);
}
.sim-select-popup[hidden] {
    display: none;
}
.sim-select-options {
    max-height: 240px;
    overflow-y: auto;
    margin-top: 6px;
}
.sim-select-option {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 8px;
    text-align: left;
    white-space: normal;
    border-radius: 4px;
}
.sim-select-option:hover,
.sim-select-option:focus,
.sim-select-option.is-selected {
    background: #e7f1ff;
    color: #084298;
}
.sim-select-option:disabled,
.sim-select-empty {
    color: #64748b;
    padding: 8px;
}

/* Select asli tetap menyimpan nilai, tanpa menampilkan kontrol kedua. */
.sim-search-select > select.sim-select-original {
    min-width: 0 !important;
    max-width: 1px !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    clip-path: inset(50%) !important;
    background-image: none !important;
    appearance: none !important;
}
.sim-search-select > .sim-select-toggle:disabled,
fieldset:disabled .sim-search-select > .sim-select-toggle {
    width: 100%;
    background-color: #e9ecef !important;
    background-image: none !important;
    color: #495057 !important;
    border-color: #dee2e6 !important;
    opacity: 1 !important;
    box-shadow: none !important;
    cursor: not-allowed;
    padding-right: .75rem;
}

.dataTables_length select, .dt-length select {
    width: auto !important;
    min-width: 70px;
    min-height: 34px;
    display: inline-block;
    padding: .25rem 1.8rem .25rem .5rem;
    margin: 0 .35rem;
}

/* Tanda koreksi mengikuti catatan pemeriksa pada tahap perbaikan. */
.sim-correction-section {
    border: 1px solid #dc3545 !important;
    border-radius: .75rem;
    padding: 1rem;
    margin-bottom: 1rem;
    background-color: #fff8f8;
}

.sim-correction-section .form-control,
.sim-correction-section .form-select,
.sim-correction-section .form-check-input,
.sim-correction-section .sim-select-toggle {
    border-color: #dc3545 !important;
}

.sim-correction-section .form-label,
.sim-correction-section .form-check-label {
    color: #b02a37;
}

.wizard-step.sim-correction-step {
    border-color: #dc3545;
    color: #b02a37;
}

.wizard-step.sim-correction-step span {
    background-color: #f8d7da;
    color: #b02a37;
}

.sim-correction-note {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Rincian proposal: tab utama dan pelaksanaan dalam satu konteks kegiatan. */
.proposal-detail-tabs .nav {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
    gap: 6px;
    padding-bottom: 16px;
    margin-bottom: 20px;
    border-bottom: 1px solid #e2e8f0;
}
.proposal-detail-tabs .nav-link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    color: #52647a;
    text-align: left;
    font-size: .8rem;
    font-weight: 600;
    min-height: 46px;
}
.proposal-detail-tabs .nav-link:hover {
    background: #eef6ff;
    border-color: #93bce6;
}
.proposal-detail-tabs .nav-link.active {
    background: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
}
.proposal-detail-tabs .nav-link i {
    font-size: 1rem;
    flex-shrink: 0;
}
.proposal-detail-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}
.proposal-detail-panel-head h6 {
    font-weight: 700;
    margin: 0;
}
.proposal-detail-text {
    font-size: .9rem;
    line-height: 1.75;
    overflow-wrap: anywhere;
}
.proposal-detail .tab-pane table td {
    max-width: 440px;
    white-space: normal;
    overflow-wrap: anywhere;
}
.proposal-detail .tab-pane .page-card {
    box-shadow: none;
}
.proposal-detail-fields {
    font-size: .87rem;
}
@media (max-width: 575.98px) {
    .proposal-detail-tabs .nav {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 12px;
    }
    .proposal-detail-tabs .nav-link {
        flex-shrink: 0;
        white-space: nowrap;
    }
}

.funding-selection-scroll {
    max-height: 65vh;
}
.funding-selection-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8fafc;
}
.funding-selection-scroll tr[hidden] {
    display: none;
}
.funding-selection-scroll [data-funding-amount] {
    min-width: 160px;
}

/* SIMLITABMAS 2026-10-16: Ikon konsisten pada semua kartu ringkasan. */
.mini-kpi .sim-kpi-icon {
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
    background: #eaf2ff;
    color: #2766aa;
}
.mini-kpi .sim-kpi-blue { background: #eaf2ff; color: #2864ad; }
.mini-kpi .sim-kpi-green { background: #e7f7ed; color: #218554; }
.mini-kpi .sim-kpi-amber { background: #fff3df; color: #a76b17; }
.mini-kpi .sim-kpi-orange { background: #fff0e6; color: #b96621; }
.mini-kpi .sim-kpi-rose { background: #ffe9ed; color: #b83b55; }
.mini-kpi .sim-kpi-purple { background: #f2eaff; color: #7750a8; }
.mini-kpi > strong { min-width: 0; overflow-wrap: anywhere; }
@media(max-width: 575.98px) {
    .mini-kpi { flex-wrap: wrap; }
    .mini-kpi > .sim-kpi-icon { width: 30px; min-width: 30px; height: 30px; }
}
