/* =========================================================
   CdM Campus Portal - Global Theme
   ========================================================= */

:root{
    --green:#006b3f;
    --green-dark:#047857;
    --dark:#111827;
    --dark-soft:#172033;
    --muted:#6b7280;
    --line:#e5e7eb;
    --bg:#f4f6f9;
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    background:var(--bg);
    color:#111827;
}

a{
    color:inherit;
}

/* =========================================================
   Forms / Buttons
   ========================================================= */

.form-control,
select,
input,
textarea{
    width:100%;
    padding:10px;
    border:1px solid #d1d5db;
    border-radius:8px;
    margin:5px 0 12px;
    background:#fff;
}

textarea{
    min-height:80px;
}

.btn{
    display:inline-block;
    border:0;
    border-radius:8px;
    padding:10px 14px;
    background:var(--green);
    color:white;
    text-decoration:none;
    cursor:pointer;
    font-size:14px;
}

.btn:hover{
    background:#065f46;
}

.btn.secondary{
    background:#374151;
}

.btn.danger{
    background:#dc2626;
}

.btn.light{
    background:#e5e7eb;
    color:#111827;
}

.btn.small{
    padding:6px 10px;
    font-size:12px;
}


/* =========================================================
   Topbar
   ========================================================= */

.topbar{
    height:58px;
    background:var(--green);
    color:white;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 20px;
    position:fixed;
    left:0;
    right:0;
    top:0;
    z-index:20;
}

.brand{
    font-weight:700;
    font-size:18px;
}

.topbar a{
    color:white;
    text-decoration:none;
}

/* =========================================================
   Sidebar
   ========================================================= */

.sidebar{
    position:fixed;
    top:58px;
    bottom:0;
    left:0;
    width:280px;
    background:var(--dark);
    color:white;
    overflow-y:auto;
    padding:12px;
    z-index:15;
}

.sidebar-brand{
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 8px 16px;
    margin-bottom:8px;
    border-bottom:1px solid rgba(255,255,255,0.12);
}

.sidebar-brand img{
    width:38px;
    height:38px;
    object-fit:contain;
}

.sidebar-brand strong{
    display:block;
    font-size:15px;
    line-height:1.1;
}

.sidebar-brand span{
    display:block;
    font-size:11px;
    color:#9ca3af;
    margin-top:3px;
}

.sidebar-title{
    margin:18px 8px 7px;
    font-size:11px;
    letter-spacing:1.4px;
    color:#9ca3af;
    font-weight:700;
}

.sidebar a{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    color:#e5e7eb;
    text-decoration:none;
    border-radius:9px;
    font-size:14px;
    margin-bottom:4px;
    transition:0.15s ease;
}

.sidebar a span{
    width:20px;
    text-align:center;
    opacity:0.9;
    flex:0 0 20px;
}

.sidebar a:hover{
    background:rgba(255,255,255,0.08);
    color:#fff;
}

.sidebar a.active{
    background:var(--green-dark);
    color:#fff;
    font-weight:700;
}

.sidebar-group{
    margin-bottom:6px;
}

.sidebar-toggle{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:#e5e7eb;
    padding:10px 12px;
    margin-bottom:4px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    cursor:pointer;
    font:inherit;
    font-size:14px;
    text-align:left;
    border-radius:9px;
    appearance:none;
    -webkit-appearance:none;
    transition:0.15s ease;
}

.sidebar-toggle span{
    display:flex;
    align-items:center;
    gap:10px;
}

.sidebar-toggle i{
    width:20px;
    text-align:center;
    font-style:normal;
    opacity:0.9;
    flex:0 0 20px;
}

.sidebar-toggle b{
    font-size:11px;
    font-weight:700;
    transition:0.2s ease;
}

.sidebar-toggle:hover,
.sidebar-group.open > .sidebar-toggle{
    background:rgba(255,255,255,0.08);
    color:#fff;
}

.sidebar-group.open > .sidebar-toggle b{
    transform:rotate(180deg);
}

.sidebar-submenu{
    display:none;
    padding:2px 0 8px 14px;
}

.sidebar-group.open > .sidebar-submenu{
    display:block;
}

.submenu-title{
    padding:10px 12px 6px;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    color:#9ca3af;
    letter-spacing:.7px;
}

.sidebar-submenu a{
    display:flex;
    align-items:center;
    gap:9px;
    padding:9px 12px;
    margin-bottom:3px;
    color:#e5e7eb;
    text-decoration:none;
    border-radius:8px;
    font-size:13px;
    font-weight:400;
}

.sidebar-submenu a:hover{
    background:rgba(255,255,255,0.08);
    color:#fff;
}

.sidebar-submenu a.active{
    background:var(--green-dark);
    color:#fff;
    font-weight:700;
}


/* =========================================================
   Main Content
   ========================================================= */

.content{
    margin-left:280px;
    padding:82px 24px 30px;
}

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

.card{
    background:white;
    border-radius:12px;
    padding:18px;
    box-shadow:0 2px 10px rgba(0,0,0,.06);
    margin-bottom:18px;
}

/* =========================================================
   Dashboard
   ========================================================= */

.grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}

.stat{
    background:white;
    border-radius:12px;
    padding:18px;
    box-shadow:0 2px 10px rgba(0,0,0,.06);
    border-left:5px solid var(--green);
}

.stat .label{
    color:var(--muted);
    font-size:13px;
}

.stat .value{
    font-size:28px;
    font-weight:700;
    margin-top:8px;
}

/* =========================================================
   Tables
   ========================================================= */

.table-wrap{
    overflow:auto;
}

table{
    width:100%;
    border-collapse:collapse;
    background:white;
}

th,
td{
    padding:10px;
    border-bottom:1px solid var(--line);
    text-align:left;
    font-size:14px;
    vertical-align:top;
}

th{
    background:#f3f4f6;
    font-weight:700;
}

/* =========================================================
   Badges / Alerts
   ========================================================= */

.badge{
    display:inline-block;
    padding:4px 8px;
    border-radius:999px;
    font-size:12px;
    background:#e5e7eb;
}

.badge.green{
    background:#dcfce7;
    color:#166534;
}

.badge.red{
    background:#fee2e2;
    color:#991b1b;
}

.badge.yellow{
    background:#fef3c7;
    color:#92400e;
}

.alert{
    padding:12px;
    border-radius:10px;
    margin-bottom:16px;
    background:#dcfce7;
    color:#166534;
}

.alert.error{
    background:#fee2e2;
    color:#991b1b;
}

/* =========================================================
   Layout Helpers
   ========================================================= */

.row{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
}

.row3{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}

/* =========================================================
   Login Page Fallback
   Note: login.php can override this with its own inline style.
   ========================================================= */

.login-page{
    height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#006b3f,#0f766e);
}

.login-card{
    width:380px;
    background:white;
    padding:28px;
    border-radius:14px;
    box-shadow:0 15px 35px rgba(0,0,0,.22);
}

.login-card h2{
    margin-top:0;
    color:var(--green);
}

/* =========================================================
   Responsive
   ========================================================= */

@media(max-width:900px){
    .topbar{
        position:static;
    }

    .sidebar{
        position:static;
        width:auto;
        min-height:auto;
        border-radius:0;
    }

    .content{
        margin-left:0;
        padding:20px;
    }

    .grid,
    .row,
    .row3{
        grid-template-columns:1fr;
    }
}
/* =========================================================
   Server-side DataTables polish
   ========================================================= */

.dataTables_wrapper{
    width:100%;
}

.dataTables_wrapper::after{
    content:"";
    display:block;
    clear:both;
}

/* Top controls */

.dataTables_wrapper .dataTables_length{
    float:left;
    margin-bottom:14px;
}

.dataTables_wrapper .dataTables_filter{
    float:right;
    margin-bottom:14px;
    text-align:right;
}

/* Fix Show xx entries */

.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label{
    display:inline-flex !important;
    align-items:center;
    white-space:nowrap;
    gap:8px;
    margin:0;
    font-weight:normal;
}

/* Prevent global select styling */

.dataTables_wrapper .dataTables_length select{
    width:80px !important;
    min-width:80px;
    margin:0 !important;
    padding:6px 10px;
    height:38px;
}

.dataTables_wrapper .dataTables_filter input{
    width:260px;
    margin-left:8px;
    height:38px;
}

/* Table */

table.dataTable{
    width:100% !important;
}

table.dataTable thead th{
    background:#f3f4f6;
    color:#111827;
    white-space:nowrap;
}

table.dataTable tbody td{
    vertical-align:middle;
}

.academic-setup-page .page-head > div:first-child{
    min-width:0;
    text-align:left;
}

.academic-setup-page .page-head h1{
    text-align:left;
}

.academic-setup-page .page-head p{
    color:#6b7280;
}

.academic-setup-page .academic-actions-column{
    text-align:right !important;
}

.academic-setup-page .academic-actions-column .dt-actions{
    justify-content:flex-end;
}

.academic-setup-page .academic-filter-card,
.cdm-filter-card{
    padding:20px;
}

.academic-setup-page .academic-filter-grid,
.cdm-filter-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(170px,1fr));
    gap:16px;
    align-items:end;
}

.academic-setup-page .academic-filter-field label,
.cdm-filter-field label{
    display:block;
    margin:0 0 7px;
    color:#334155;
    font-size:12px;
    font-weight:700;
    line-height:1.25;
    letter-spacing:0;
}

.academic-setup-page .academic-filter-field select,
.academic-setup-page .academic-filter-field input,
.cdm-filter-field select,
.cdm-filter-field input{
    width:100%;
    height:var(--cdm-control-height) !important;
    min-height:var(--cdm-control-height) !important;
    margin:0 !important;
    background:#fff;
    color:#0f172a;
}

.academic-setup-page .academic-filter-actions,
.cdm-filter-actions{
    grid-column:1/-1;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:10px;
    padding-top:16px;
    border-top:1px solid #e5e7eb;
}

.academic-setup-page .academic-filter-actions .btn,
.cdm-filter-actions .btn{
    min-width:92px;
    height:var(--cdm-control-height) !important;
    min-height:var(--cdm-control-height) !important;
}

@media(max-width:900px){
    .academic-setup-page .academic-filter-grid,
    .cdm-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:560px){
    .academic-setup-page .academic-filter-grid,
    .cdm-filter-grid{
        grid-template-columns:1fr;
    }
    .academic-setup-page .academic-filter-actions,
    .cdm-filter-actions{
        justify-content:stretch;
    }
    .academic-setup-page .academic-filter-actions .btn,
    .cdm-filter-actions .btn{
        flex:1;
    }
}

.dt-actions{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    align-items:center;
}

/* Footer */

.dataTables_wrapper .dataTables_info{
    margin-top:14px;
    color:#6b7280;
}

.dataTables_wrapper .dataTables_paginate{
    margin-top:14px;
}

.table-wrap{
    overflow-x:auto;
}

@media print{
    .sidebar,
    .topbar,
    .dataTables_length,
    .dataTables_filter,
    .dataTables_paginate,
    .page-head .btn{
        display:none !important;
    }

    .content{
        margin:0;
        padding:20px;
    }

    .card{
        box-shadow:none;
        border:0;
    }
}
/* =========================================================
   Unified DataTable action buttons
   White background + distinct bordered action identity
   ========================================================= */

.cdm-action-btn{
    --cdm-action-color:#475569;
    --cdm-action-hover-text:#ffffff;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:.3rem;
    min-height:30px;
    padding:.25rem .65rem !important;
    background:#ffffff !important;
    border:1px solid var(--cdm-action-color) !important;
    border-radius:6px !important;
    color:var(--cdm-action-color) !important;
    font-size:.78rem;
    font-weight:600;
    line-height:1.2;
    text-decoration:none !important;
    white-space:nowrap;
    box-shadow:none !important;
    transition:background-color .14s ease, color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.cdm-action-btn:hover,
.cdm-action-btn:focus{
    background:var(--cdm-action-color) !important;
    border-color:var(--cdm-action-color) !important;
    color:var(--cdm-action-hover-text) !important;
    box-shadow:0 2px 5px rgba(15,23,42,.16) !important;
    transform:translateY(-1px);
}

.cdm-action-btn:focus-visible{
    outline:2px solid color-mix(in srgb, var(--cdm-action-color) 35%, transparent);
    outline-offset:2px;
}

.cdm-action-btn:disabled,
.cdm-action-btn.disabled{
    background:#f8fafc !important;
    border-color:#cbd5e1 !important;
    color:#94a3b8 !important;
    box-shadow:none !important;
    opacity:.72;
    transform:none;
    pointer-events:none;
}

/* One clearly separated palette family per common action. */
.cdm-action-view       { --cdm-action-color:#2563eb; } /* Blue */
.cdm-action-edit       { --cdm-action-color:#b7791f; } /* Yellow/amber */
.cdm-action-preview    { --cdm-action-color:#7c3aed; } /* Violet */
.cdm-action-generate   { --cdm-action-color:#15803d; } /* Green */
.cdm-action-print      { --cdm-action-color:#111827; } /* Black */
.cdm-action-payment    { --cdm-action-color:#c2410c; } /* Orange */
.cdm-action-history    { --cdm-action-color:#854d0e; } /* Brown */
.cdm-action-reevaluate { --cdm-action-color:#be185d; } /* Pink */
.cdm-action-copy       { --cdm-action-color:#64748b; } /* Gray */
.cdm-action-approve    { --cdm-action-color:#0f766e; } /* Teal */
.cdm-action-cancel     { --cdm-action-color:#dc2626; } /* Red */
.cdm-action-delete     { --cdm-action-color:#881337; } /* Burgundy */
.cdm-action-add        { --cdm-action-color:#15803d; }
.cdm-action-download   { --cdm-action-color:#0369a1; } /* Azure */
.cdm-action-release    { --cdm-action-color:#4338ca; } /* Indigo */
.cdm-action-reset      { --cdm-action-color:#52525b; } /* Graphite */
.cdm-action-assign     { --cdm-action-color:#a21caf; } /* Fuchsia */
.cdm-action-encode     { --cdm-action-color:#0e7490; } /* Ocean */
.cdm-action-open       { --cdm-action-color:#2563eb; }
.cdm-action-default    { --cdm-action-color:#475569; }

/* Keep multiple row actions tidy and compact. */
table.dataTable tbody td .cdm-action-btn,
.table tbody td .cdm-action-btn{
    margin:2px 2px 2px 0;
}

.dt-actions,
.table-actions,
.action-buttons,
td.actions{
    gap:5px;
}

/* =========================================================
   CDM Unified global action buttons
   Applies to page, form, modal, toolbar and DataTable actions.
   ========================================================= */
.cdm-action-btn{
    --cdm-action-color:#475569;
    --cdm-action-hover-text:#ffffff;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:.3rem;
    min-height:34px;
    padding:.38rem .78rem !important;
    background:#ffffff !important;
    border:1px solid var(--cdm-action-color) !important;
    border-radius:6px !important;
    color:var(--cdm-action-color) !important;
    font-weight:600 !important;
    line-height:1.2 !important;
    text-decoration:none !important;
    white-space:nowrap;
    box-shadow:none !important;
    cursor:pointer;
    transition:background-color .14s ease, color .14s ease, border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.cdm-action-btn:hover,
.cdm-action-btn:focus{
    background:var(--cdm-action-color) !important;
    border-color:var(--cdm-action-color) !important;
    color:var(--cdm-action-hover-text) !important;
    box-shadow:0 2px 5px rgba(15,23,42,.16) !important;
    transform:translateY(-1px);
}

.cdm-action-btn:focus-visible{
    outline:2px solid color-mix(in srgb, var(--cdm-action-color) 35%, transparent);
    outline-offset:2px;
}

.cdm-action-btn:disabled,
.cdm-action-btn.disabled,
.cdm-action-btn[aria-disabled="true"]{
    background:#f8fafc !important;
    border-color:#cbd5e1 !important;
    color:#94a3b8 !important;
    box-shadow:none !important;
    opacity:.72;
    transform:none;
    pointer-events:none;
}

/* Distinct action identities. Avoid neighboring palette families. */
.cdm-action-view       { --cdm-action-color:#2563eb; } /* Blue */
.cdm-action-edit       { --cdm-action-color:#b7791f; } /* Yellow / amber */
.cdm-action-preview    { --cdm-action-color:#7c3aed; } /* Violet */
.cdm-action-create     { --cdm-action-color:#15803d; } /* Green */
.cdm-action-save       { --cdm-action-color:#0f766e; } /* Teal */
.cdm-action-print      { --cdm-action-color:#111827; } /* Black */
.cdm-action-payment    { --cdm-action-color:#c2410c; } /* Orange */
.cdm-action-history    { --cdm-action-color:#854d0e; } /* Brown */
.cdm-action-reevaluate { --cdm-action-color:#be185d; } /* Pink */
.cdm-action-copy       { --cdm-action-color:#64748b; } /* Gray */
.cdm-action-approve    { --cdm-action-color:#4d7c0f; } /* Olive */
.cdm-action-cancel     { --cdm-action-color:#dc2626; } /* Red */
.cdm-action-delete     { --cdm-action-color:#881337; } /* Burgundy */
.cdm-action-download   { --cdm-action-color:#0369a1; } /* Azure */
.cdm-action-release    { --cdm-action-color:#4338ca; } /* Indigo */
.cdm-action-reset      { --cdm-action-color:#52525b; } /* Graphite */
.cdm-action-clear      { --cdm-action-color:#475569; } /* Slate */
.cdm-action-filter     { --cdm-action-color:#047857; } /* Deep emerald */
.cdm-action-search     { --cdm-action-color:#0e7490; } /* Ocean */
.cdm-action-assign     { --cdm-action-color:#a21caf; } /* Fuchsia */
.cdm-action-encode     { --cdm-action-color:#9a3412; } /* Rust */
.cdm-action-upload     { --cdm-action-color:#6d28d9; } /* Purple */
.cdm-action-import     { --cdm-action-color:#166534; } /* Forest */
.cdm-action-export     { --cdm-action-color:#075985; } /* Steel blue */
.cdm-action-back       { --cdm-action-color:#475569; } /* Slate */
.cdm-action-close      { --cdm-action-color:#71717a; } /* Zinc */
.cdm-action-default    { --cdm-action-color:#475569; }

/* Compact row actions, regular sizing everywhere else. */
table .cdm-action-btn,
.dataTable .cdm-action-btn{
    min-height:30px;
    padding:.25rem .62rem !important;
    font-size:.78rem !important;
    margin:2px 2px 2px 0;
}

.dt-actions,
.table-actions,
.action-buttons,
td.actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:5px;
}

/* =========================================================
   CDM Unified status badge icons
   Keeps all recognized status badges uniform and adds a
   compact leading symbol without changing existing status text.
   ========================================================= */
.cdm-status-badge{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    min-height:27px !important;
    padding:4px 11px !important;
    border-radius:999px !important;
    font-size:11px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
    vertical-align:middle !important;
    box-sizing:border-box !important;
    border:1px solid color-mix(in srgb, currentColor 24%, transparent) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 1px 2px rgba(15,23,42,.12);
}

.cdm-badge-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:14px;
    min-width:14px;
    height:14px;
    font-size:12px;
    font-weight:800;
    line-height:1;
}

/* =========================================================
   Admission clearance and binary value badges
   ========================================================= */
.badge.badge-not-cleared{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    min-height:27px !important;
    padding:4px 11px !important;
    border-radius:999px !important;
    background:#f1f5f9 !important;
    color:#475569 !important;
    border:1px solid #cbd5e1 !important;
    font-size:11px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 1px 2px rgba(15,23,42,.10) !important;
}

.badge.badge-not-cleared .cdm-badge-icon{
    width:14px;
    min-width:14px;
    height:14px;
    font-size:11px;
}

.badge.badge-binary{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
    min-height:22px !important;
    padding:3px 8px !important;
    border-radius:999px !important;
    font-size:10px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
    box-shadow:none !important;
}

.badge.badge-binary .cdm-badge-icon{
    width:11px;
    min-width:11px;
    height:11px;
    font-size:10px;
}

.badge.badge-yes{
    background:#dbeafe !important;
    color:#1d4ed8 !important;
    border:1px solid #93c5fd !important;
}

.badge.badge-no{
    background:#f3f4f6 !important;
    color:#6b7280 !important;
    border:1px solid #d1d5db !important;
}



/* =========================================================
   Explicit status badge palette
   Restores semantic colors for status-badge markup used by
   Admission Review and other server-side DataTables.
   ========================================================= */
.status-badge{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    min-height:27px !important;
    padding:4px 11px !important;
    border-radius:999px !important;
    font-size:11px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
    vertical-align:middle !important;
    box-sizing:border-box !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 1px 2px rgba(15,23,42,.12) !important;
}

.status-badge.success{
    background:#dcfce7 !important;
    color:#166534 !important;
    border:1px solid #86efac !important;
}

.status-badge.danger{
    background:#fee2e2 !important;
    color:#b91c1c !important;
    border:1px solid #fca5a5 !important;
}

.status-badge.warning{
    background:#fef3c7 !important;
    color:#92400e !important;
    border:1px solid #fcd34d !important;
}

.status-badge.info{
    background:#dbeafe !important;
    color:#1d4ed8 !important;
    border:1px solid #93c5fd !important;
}

.status-badge.primary{
    background:#e0e7ff !important;
    color:#4338ca !important;
    border:1px solid #a5b4fc !important;
}

.status-badge.secondary{
    background:#f1f5f9 !important;
    color:#475569 !important;
    border:1px solid #cbd5e1 !important;
}

.status-badge.purple{
    background:#f3e8ff !important;
    color:#7e22ce !important;
    border:1px solid #d8b4fe !important;
}


/* Compact informational tags used beside status badges. */
.badge.badge-tag{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:22px !important;
    padding:3px 9px !important;
    border-radius:999px !important;
    background:#f8fafc !important;
    color:#475569 !important;
    border:1px solid #cbd5e1 !important;
    font-size:10px !important;
    font-weight:700 !important;
    line-height:1 !important;
    box-shadow:none !important;
    white-space:nowrap !important;
}


/* =========================================================
   Enrollment Add / Drop badge refinements
   ========================================================= */
.badge.badge-standing-regular{
    background:#eff6ff !important;
    color:#1d4ed8 !important;
    border-color:#bfdbfe !important;
}

.badge.badge-standing-irregular{
    background:#fff7ed !important;
    color:#c2410c !important;
    border-color:#fed7aa !important;
}

.status-badge.transaction-add{
    background:#dcfce7 !important;
    color:#166534 !important;
    border-color:#86efac !important;
}

.status-badge.transaction-drop{
    background:#fee2e2 !important;
    color:#b91c1c !important;
    border-color:#fca5a5 !important;
}

.status-badge.transaction-change-section{
    background:#f3e8ff !important;
    color:#7e22ce !important;
    border-color:#d8b4fe !important;
}

/* =========================================================
   Control sizing normalization
   ========================================================= */
:root{
    --cdm-control-height:42px;
    --cdm-action-height:34px;
    --cdm-control-radius:8px;
}

.form-control,
.form-select,
select,
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
button,
.btn{
    min-height:var(--cdm-control-height) !important;
    height:var(--cdm-control-height) !important;
    box-sizing:border-box !important;
}

.form-control,
.form-select,
select,
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]){
    padding:0 12px !important;
    border-radius:var(--cdm-control-radius) !important;
    line-height:1.2 !important;
}

input[type="file"]{
    min-height:var(--cdm-control-height) !important;
    height:var(--cdm-control-height) !important;
    box-sizing:border-box !important;
    border:1px solid #cbd5e1 !important;
    border-radius:var(--cdm-control-radius) !important;
    padding:5px 8px !important;
    background:#fff !important;
    line-height:30px !important;
    width:100% !important;
}

input[type="file"]::file-selector-button{
    height:30px;
    margin:0 10px 0 0;
    padding:0 12px;
    border:1px solid #cbd5e1;
    border-radius:7px;
    background:#f8fafc;
    color:#0f172a;
    font-weight:600;
    cursor:pointer;
}

input[type="checkbox"],
input[type="radio"]{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
    min-height:16px !important;
    flex:0 0 16px !important;
    margin:0 !important;
    padding:0 !important;
    accent-color:#087443;
    vertical-align:middle;
}

.check-control,
.radio-control,
label:has(> input[type="checkbox"]),
label:has(> input[type="radio"]){
    display:inline-flex !important;
    align-items:center !important;
    gap:8px !important;
    min-height:var(--cdm-control-height);
    margin:0 !important;
    font-weight:600;
    line-height:1.25;
}

.check-stack,
.radio-stack{
    display:flex;
    flex-direction:column;
    gap:8px;
    align-items:flex-start;
}

textarea,
textarea.form-control{
    height:auto !important;
    min-height:84px !important;
    padding:10px 12px !important;
    line-height:1.35 !important;
}

.btn,
button.btn,
a.btn,
input.btn,
.btn.btn-success,
.btn.btn-primary,
.btn.btn-secondary,
.btn.btn-light,
.btn.btn-danger,
.btn.btn-warning{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:var(--cdm-control-height) !important;
    height:var(--cdm-control-height) !important;
    padding:0 16px !important;
    margin:0 !important;
    border-radius:var(--cdm-control-radius) !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
    width:auto !important;
    max-width:100% !important;
    vertical-align:middle !important;
}

.btn.w-100,
button.w-100,
a.w-100,
input.w-100,
.btn[style*="width:100%"],
.btn[style*="width: 100%"]{
    width:100% !important;
}

.form-actions,
.user-form-actions,
.release-actions,
.hd-actions,
.coe-actions,
.pc-footer,
.fin-manual-actions,
.sr-filter-actions,
.pet-filter-actions,
.filter-actions,
.subject-students-page .filter-actions,
.form-actions-right,
.card-actions,
.page-actions,
.print-actions{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    align-items:center !important;
}

.form-actions,
.user-form-actions,
.release-actions,
.hd-actions,
.coe-actions,
.pc-footer,
.fin-manual-actions,
.sr-filter-actions,
.pet-filter-actions,
.filter-actions,
.subject-students-page .filter-actions,
.form-actions-right,
.card-actions,
.page-actions,
.print-actions{
    justify-content:flex-end !important;
}

.form-actions .btn,
.user-form-actions .btn,
.release-actions .btn,
.hd-actions .btn,
.coe-actions .btn,
.pc-footer .btn,
.fin-manual-actions .btn,
.sr-filter-actions .btn,
.pet-filter-actions .btn,
.filter-actions .btn,
.subject-students-page .filter-actions .btn{
    flex:0 0 auto !important;
}

.card > .btn:last-child,
.card > button.btn:last-child,
.card > a.btn:last-child{
    margin-left:auto !important;
}

form.card > .btn:last-child,
form.card > button.btn:last-child,
form.card > a.btn:last-child,
form.card > .btn[style*="width:100%"],
form.card > .btn[style*="width: 100%"],
.card .form-actions-right .btn,
.card .card-actions .btn,
.card .page-actions .btn{
    width:auto !important;
    flex:0 0 auto !important;
}

.page-head > .btn,
.page-head > div:not(:first-child):last-child,
.source-card .btn{
    margin-left:auto !important;
}

.source-card{
    display:flex;
    flex-direction:column;
}

.source-card .btn{
    align-self:flex-end;
}

table.display,
table.dataTable,
.table.dataTable,
.dataTables_wrapper,
.table-responsive,
.table-wrap{
    width:100% !important;
    max-width:100% !important;
}

.form-actions .btn.w-100,
.user-form-actions .btn.w-100,
.release-actions .btn.w-100,
.hd-actions .btn.w-100,
.coe-actions .btn.w-100,
.pc-footer .btn.w-100,
.fin-manual-actions .btn.w-100,
.sr-filter-actions .btn.w-100,
.pet-filter-actions .btn.w-100,
.filter-actions .btn.w-100,
.subject-students-page .filter-actions .btn.w-100,
.ep-actions .btn,
.ep-head-actions .btn,
.ep-head .btn{
    width:auto !important;
}

.sr-filter-actions .btn,
.pet-filter-actions .btn,
.filter-actions .btn,
.subject-students-page .filter-actions .btn,
.ep-actions .btn,
.ep-head-actions .btn{
    flex:0 0 auto !important;
}

@media(max-width:680px){
    .form-actions .btn,
    .user-form-actions .btn,
    .release-actions .btn,
    .hd-actions .btn,
    .coe-actions .btn,
    .pc-footer .btn,
    .fin-manual-actions .btn,
    .sr-filter-actions .btn,
    .pet-filter-actions .btn,
    .filter-actions .btn,
    .subject-students-page .filter-actions .btn{
        flex:1 1 0;
        min-width:min(100%, 140px);
    }
}

.select2-container .select2-selection--single{
    min-height:var(--cdm-control-height) !important;
    height:var(--cdm-control-height) !important;
    border-radius:var(--cdm-control-radius) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered{
    line-height:calc(var(--cdm-control-height) - 2px) !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow{
    height:calc(var(--cdm-control-height) - 2px) !important;
}

.btn-print,
.print-toolbar button,
.toolbar button[onclick*="print"],
button[onclick*="print"],
.tor-btn-print,
.tor-btn-primary[onclick*="print"]{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:var(--cdm-control-height) !important;
    height:var(--cdm-control-height) !important;
    min-width:128px !important;
    padding:0 16px !important;
    border-radius:var(--cdm-control-radius) !important;
    line-height:1.2 !important;
    font-weight:700 !important;
}

.print-toolbar,
.toolbar:has(button[onclick*="print"]),
.no-print:has(button[onclick*="print"]){
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:10px !important;
}

.dt-actions form,
.table-actions form,
.action-buttons form,
td.actions form{
    display:inline-flex !important;
    margin:0 !important;
    width:auto !important;
}

.dt-actions .btn,
.table-actions .btn,
.action-buttons .btn,
td.actions .btn,
table .btn.small,
table .btn-sm,
.dataTable .btn.small,
.dataTable .btn-sm,
.faculty-content .btn.btn-sm,
.finance-content .btn.btn-sm,
.fin-fee-edit-actions .btn,
.dp-table-actions .dp-action-btn,
.hd-table-actions .hd-action-btn,
.sog-action-btn,
.cdm-action-btn{
    min-height:var(--cdm-action-height) !important;
    height:var(--cdm-action-height) !important;
    padding:0 12px !important;
    border-radius:7px !important;
    font-size:12px !important;
    line-height:1.2 !important;
    width:auto !important;
    min-width:0;
}

table .cdm-action-btn,
.dataTable .cdm-action-btn{
    min-height:var(--cdm-action-height) !important;
    height:var(--cdm-action-height) !important;
    padding:0 12px !important;
}

.badge,
.status-badge,
.cdm-status-badge,
.badge.badge-not-cleared,
.permission-badge,
.fin-badge,
.fin-fee-status,
.fin-fee-category-badge,
.fac-badge,
.inst-badge,
.pet-badge,
.nstp-badge,
.sog-payment-badge,
.sog-status,
.hd-payment-badge,
.dp-payment-badge,
.hd-status,
[class*="-status-badge"],
[class*="-badge"]{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:5px !important;
    min-height:26px !important;
    height:26px !important;
    padding:0 10px !important;
    border-radius:999px !important;
    font-size:11px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
    vertical-align:middle !important;
}

.badge.badge-binary,
.badge.badge-tag{
    min-height:22px !important;
    height:22px !important;
    padding:0 8px !important;
    font-size:10px !important;
}

/* =========================================================
   Standard generic list / DataTable pages
   ========================================================= */
.cdm-list-page .page-head > div:first-child{
    min-width:0;
    text-align:left;
}

.cdm-list-page .page-head h1{
    text-align:left;
}

.cdm-list-page .page-head p{
    color:#6b7280;
}

.cdm-list-page .cdm-table-card{
    overflow:hidden;
}

.cdm-list-page .cdm-actions-column{
    text-align:right !important;
}

.cdm-list-page .cdm-actions-column .dt-actions{
    justify-content:flex-end;
}
