:root{
    --ilms-primary:#243B73;
    --ilms-primary-dark:#162852;
    --ilms-secondary:#ED1C24;
    --ilms-secondary-dark:#B9151B;
    --ilms-bg:#F5F7FB;
    --ilms-surface:#FFFFFF;
    --ilms-text:#101828;
    --ilms-muted:#667085;
    --ilms-border:#E6EAF2;
    --ilms-shadow:0 18px 45px rgba(16,24,40,.08);
}

html,
body{
    min-height:100%;
}

body{
    margin:0;
    background:var(--ilms-bg);
    color:var(--ilms-text);
    font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif;
    font-size:15px;
    line-height:1.6;
    letter-spacing:-.01em;
    min-height:100vh;
    display:flex;
    flex-direction:column;
}

.ilms-page{
    flex:1;
}

.ilms-navbar{
    background:rgba(255,255,255,.94);
    border-bottom:1px solid var(--ilms-border);
    padding:18px 0;
    box-shadow:0 10px 30px rgba(16,24,40,.05);
    position:sticky;
    top:0;
    z-index:50;
    backdrop-filter:blur(14px);
}

.ilms-nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.ilms-brand{
    display:flex;
    align-items:center;
    gap:15px;
    color:var(--ilms-primary);
    text-decoration:none;
    outline:none;
    box-shadow:none;
}

.ilms-brand:hover{
    text-decoration:none;
    color:var(--ilms-primary);
}

.ilms-brand-logo{
    background:#fff;
    border:1px solid var(--ilms-border);
    border-radius:18px;
    padding:10px 14px;
    box-shadow:0 12px 30px rgba(36,59,115,.10);
}

.ilms-brand-logo img{
    height:42px;
    display:block;
}

.ilms-brand-text{
    display:flex;
    flex-direction:column;
    line-height:1.15;
}

.ilms-brand-text strong{
    font-size:24px;
    font-weight:900;
    letter-spacing:.03em;
}

.ilms-brand-text small{
    margin-top:4px;
    color:var(--ilms-muted);
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.ilms-nav-links{
    display:flex;
    align-items:center;
    gap:10px;
}

.ilms-nav-icon{
    width:42px;
    height:42px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#475569;
    background:transparent;
    border:0;
    text-decoration:none;
    position:relative;
    transition:.2s ease;
    font-size:16px;
}

.ilms-nav-icon:hover,
.ilms-nav-icon.active{
    background:#eef6ff;
    color:var(--ilms-primary);
    text-decoration:none;
}

.ilms-nav-icon:after{
    content:attr(data-label);
    position:absolute;
    top:52px;
    left:50%;
    transform:translateX(-50%);
    background:#0f172a;
    color:#fff;
    font-size:12px;
    font-weight:700;
    padding:7px 10px;
    border-radius:10px;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    transition:.15s ease;
    z-index:9999;
    box-shadow:0 10px 24px rgba(15,23,42,.18);
}

.ilms-nav-icon:hover:after{
    opacity:1;
}

.btn-logout-icon{
    padding:0;
}

.btn-logout-icon:hover{
    background:#feecec;
    color:var(--ilms-secondary);
}

.btn-logout{
    background:#fff;
    border:1px solid transparent;
}

.btn-logout:hover{
    background:rgba(237,28,36,.08);
    color:var(--ilms-secondary);
    border-color:rgba(237,28,36,.15);
}

.ilms-page{
    flex:1;
    padding:38px 0 56px;
}

.ilms-hero{
    background:
        radial-gradient(circle at 92% 8%,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 120px,transparent 121px),
        radial-gradient(circle at 88% 100%,rgba(237,28,36,.26) 0,rgba(237,28,36,.26) 180px,transparent 181px),
        linear-gradient(135deg,var(--ilms-primary) 0%,#1E4F9A 50%,var(--ilms-secondary) 130%);
    color:#fff;
    border-radius:30px;
    padding:42px;
    margin-bottom:28px;
    box-shadow:0 24px 55px rgba(36,59,115,.24);
    overflow:hidden;
    position:relative;
}

.ilms-hero:before{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:6px;
    background:linear-gradient(90deg,var(--ilms-secondary),rgba(255,255,255,.65),var(--ilms-primary));
}

.ilms-hero h1{
    margin:0 0 10px;
    font-size:40px;
    font-weight:900;
    letter-spacing:-.035em;
}

.ilms-hero p{
    margin:0;
    opacity:.94;
    font-size:17px;
    max-width:780px;
    line-height:1.55;
}

.ilms-card{
    background:var(--ilms-surface);
    border:1px solid var(--ilms-border);
    border-radius:24px;
    padding:26px;
    margin-bottom:24px;
    box-shadow:var(--ilms-shadow);
    overflow:visible;
}

.stat-card{
    min-height:150px;
    transition:.18s ease;
}

.stat-card:hover{
    transform:translateY(-3px);
    box-shadow:0 22px 50px rgba(16,24,40,.10);
}

.stat-card .stat-icon{
    width:52px;
    height:52px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:16px;
    font-size:21px;
}

.stat-card h3{
    margin:0;
    font-size:38px;
    font-weight:900;
    color:var(--ilms-text);
    letter-spacing:-.035em;
}

.stat-card p{
    margin:6px 0 0;
    color:#52637A;
    font-size:15px;
    font-weight:700;
}

.module-title{
    font-size:26px;
    font-weight:900;
    letter-spacing:-.03em;
    margin:18px 0 22px;
    color:var(--ilms-text);
}

.module-card{
    display:block;
    color:var(--ilms-text);
    text-decoration:none;
    transition:.2s ease;
    min-height:200px;
    position:relative;
    overflow:hidden;
}

.module-card:hover{
    transform:translateY(-5px);
    box-shadow:0 24px 55px rgba(16,24,40,.12);
    text-decoration:none;
    color:var(--ilms-text);
}

.module-card:after{
    content:"";
    position:absolute;
    right:-40px;
    top:-40px;
    width:120px;
    height:120px;
    background:rgba(36,59,115,.04);
    border-radius:999px;
}

.module-icon{
    width:60px;
    height:60px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:25px;
    margin-bottom:20px;
}

.module-card h4{
    font-size:19px;
    font-weight:900;
    margin:0 0 8px;
    letter-spacing:-.02em;
}

.module-card p{
    color:var(--ilms-muted);
    line-height:1.6;
    margin:0;
    font-size:14.5px;
}

.bg-blue-soft{
    background:rgba(36,59,115,.10);
    color:var(--ilms-primary);
}

.bg-green-soft{
    background:rgba(16,185,129,.11);
    color:#079455;
}

.bg-orange-soft{
    background:rgba(245,158,11,.12);
    color:#B54708;
}

.bg-cyan-soft{
    background:rgba(6,182,212,.12);
    color:#0891b2;
}

.bg-purple-soft{
    background:rgba(124,58,237,.11);
    color:#7C3AED;
}

.bg-red-soft{
    background:rgba(237,28,36,.10);
    color:var(--ilms-secondary);
}

.bg-yellow-soft{
    background:rgba(255,245,157,.22);
    color:#ca8a04;
}

.bg-teal-soft{
    background:rgba(20,184,166,.12);
    color:#0f766e;
}

.bg-indigo-soft{
    background:rgba(99,102,241,.12);
    color:#4338ca;
}

.ilms-footer{
    margin-top:42px;
}

.ilms-footer-line{
    height:90px;
    background:url('/images/marii_line.jpg') center center/cover no-repeat;
    position:relative;
    overflow:hidden;
}

.ilms-footer-line:before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(9,18,38,.38);
    backdrop-filter:blur(1px);
}

.ilms-footer-overlay{
    position:relative;
    z-index:2;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#ffffff;
    font-size:13px;
    font-weight:700;
    letter-spacing:.03em;
    text-shadow:0 2px 12px rgba(0,0,0,.35);
    padding:0 20px;
}

.form-control{
    border-radius:14px;
    border-color:var(--ilms-border);
    box-shadow:none;
}

.btn-primary{
    background:var(--ilms-primary);
    border-color:var(--ilms-primary);
    border-radius:14px;
    font-weight:800;
}

.btn-primary:hover,
.btn-primary:focus{
    background:var(--ilms-primary-dark);
    border-color:var(--ilms-primary-dark);
}

.btn-default{
    border-radius:14px;
    font-weight:800;
    border-color:var(--ilms-border);
}

.password-wrapper{
    position:relative;
}

.password-wrapper .form-control{
    padding-right:52px;
}

.password-toggle{
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    border:0;
    background:none;
    color:#667085;
    font-size:16px;
    cursor:pointer;
    padding:0;
}

.password-toggle:focus{
    outline:none;
}

.ilms-btn-danger{
    background:rgba(237,28,36,.10);
    color:var(--ilms-secondary);
    border:1px solid rgba(237,28,36,.14);
    border-radius:12px;
    font-weight:700;
    padding:7px 14px;
    transition:.18s ease;
}

.ilms-btn-danger:hover{
    background:var(--ilms-secondary);
    color:#ffffff;
    border-color:var(--ilms-secondary);
}

.ilms-btn-primary{
    background:var(--ilms-primary);
    color:#ffffff;
    border:1px solid var(--ilms-primary);
    border-radius:12px;
    font-weight:700;
    padding:10px 16px;
    transition:.18s ease;
    box-shadow:0 10px 24px rgba(36,59,115,.14);
}

.ilms-btn-primary:hover{
    background:var(--ilms-primary-dark);
    border-color:var(--ilms-primary-dark);
    color:#ffffff;
    transform:translateY(-1px);
}

.ilms-btn-secondary{
    background:#ffffff;
    color:var(--ilms-primary);
    border:1px solid rgba(36,59,115,.14);
    border-radius:12px;
    font-weight:700;
    padding:7px 14px;
    transition:.18s ease;
}

.ilms-btn-secondary:hover{
    background:rgba(36,59,115,.08);
    color:var(--ilms-primary);
}

.auth-wrapper{
    min-height:calc(100vh - 210px);
    display:flex;
    align-items:center;
    justify-content:center;
}

.auth-card{
    width:100%;
    max-width:520px;
}

.auth-title{
    font-size:32px;
    font-weight:800;
    margin:0 0 10px;
    color:#0f172a;
    letter-spacing:-0.03em;
}

.auth-subtitle{
    color:var(--ilms-muted);
    margin-bottom:28px;
    line-height:1.7;
    font-size:15px;
}

.auth-footer-link{
    margin-top:20px;
    text-align:center;
}

.auth-footer-link a{
    color:var(--ilms-primary);
    font-weight:600;
    text-decoration:none;
}

.auth-footer-link a:hover{
    text-decoration:none;
    opacity:.88;
}

a:focus,
a:active,
button:focus,
button:active,
input:focus,
select:focus,
textarea:focus,
.btn:focus,
.btn:active,
.form-control:focus{
    outline:none !important;
    box-shadow:none !important;
}

.form-control:focus{
    border-color:var(--ilms-primary) !important;
    box-shadow:0 0 0 4px rgba(36,59,115,.10) !important;
}

.ilms-filter{
    display:flex;
    gap:12px;
    align-items:end;
    flex-wrap:wrap;
    margin-bottom:22px;
    padding:18px;
    background:#f8fafc;
    border:1px solid var(--ilms-border);
    border-radius:20px;
}

.ilms-filter .form-group{
    margin-bottom:0;
}

.ilms-badge{
    display:inline-flex;
    align-items:center;
    padding:6px 11px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.01em;
}

.ilms-badge-superadmin{
    background:rgba(36,59,115,.11);
    color:var(--ilms-primary);
}

.ilms-badge-service-provider{
    background:rgba(237,28,36,.10);
    color:var(--ilms-secondary);
}

.ilms-badge-student{
    background:rgba(16,185,129,.11);
    color:#079455;
}

.ilms-badge-industry{
    background:rgba(245,158,11,.13);
    color:#b54708;
}

.ilms-badge-active{
    background:rgba(16,185,129,.11);
    color:#079455;
}

.ilms-badge-inactive{
    background:rgba(100,116,139,.13);
    color:#475569;
}

.ilms-badge-completed{
    background:rgba(36,59,115,.11);
    color:var(--ilms-primary);
}

.ilms-mini-link{
    border:0;
    background:transparent;
    color:var(--ilms-primary);
    font-weight:800;
    padding:0;
}

.ilms-mini-link:hover{
    color:var(--ilms-primary-dark);
}

.ilms-member-list{
    max-height:330px;
    overflow:auto;
    padding-right:4px;
}

.ilms-member-item{
    padding:12px 14px;
    border:1px solid var(--ilms-border);
    border-radius:14px;
    margin-bottom:10px;
    background:#fff;
}

.ilms-member-item strong{
    display:block;
    color:var(--ilms-text);
}

.ilms-member-item span{
    color:var(--ilms-muted);
    font-size:13px;
}

.select2-container{
    width:100% !important;
}

.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple{
    min-height:46px !important;
    border:1px solid var(--ilms-border) !important;
    border-radius:14px !important;
    background:#ffffff !important;
}

.select2-container--default .select2-selection--single{
    height:46px !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered{
    height:46px !important;
    line-height:46px !important;
    padding-left:14px !important;
    padding-right:34px !important;
    color:#111827 !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow{
    height:46px !important;
    right:8px !important;
}

.select2-container--default .select2-selection--multiple{
    padding:6px 10px !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice{
    margin-top:4px !important;
    background:#f1f5f9 !important;
    border:1px solid #e5e7eb !important;
    border-radius:10px !important;
    color:#111827 !important;
    font-weight:600 !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple{
    border-color:var(--ilms-primary) !important;
    box-shadow:0 0 0 4px rgba(36,59,115,.10) !important;
}

.select2-dropdown{
    border:1px solid var(--ilms-border) !important;
    border-radius:14px !important;
    overflow:hidden !important;
}

.select2-search__field{
    border:1px solid var(--ilms-border) !important;
    border-radius:10px !important;
    padding:8px 10px !important;
}

.select2-container--default .select2-search--inline .select2-search__field{
    border:none !important;
    box-shadow:none !important;
    background:transparent !important;
    padding:0 !important;
    margin:4px 0 0 0 !important;
    height:28px !important;
}

.select2-container--default .select2-search--inline .select2-search__field::placeholder{
    color:#9ca3af !important;
}

.ilms-action-dropdown{
    padding:10px;
    border:1px solid var(--ilms-border);
    border-radius:18px;
    box-shadow:0 22px 55px rgba(15,23,42,.16);
    min-width:max-content;
    width:max-content;
    max-width:min(320px, calc(100vw - 28px));
    background:#fff;
}

.ilms-nav-links .dropdown{
    display:inline-block;
    position:relative;
}

.ilms-nav-links .dropdown-menu{
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    left:auto;
}

.ilms-action-dropdown li a i,
.ilms-dropdown-btn i{
    width:20px;
    min-width:20px;
    text-align:center;
    color:var(--ilms-primary);
}

.ilms-action-dropdown li a{
    display:flex;
    align-items:center;
    gap:12px;
    padding:11px 14px;
    border-radius:13px;
    color:var(--ilms-primary);
    font-weight:800;
    font-size:14px;
    text-decoration:none;
    white-space:nowrap;
}

.ilms-action-dropdown li a:hover{
    background:rgba(36,59,115,.08);
    color:var(--ilms-primary-dark);
}

.ilms-action-dropdown li form{
    margin:0;
}

.ilms-dropdown-btn{
    width:100%;
    border:0;
    background:transparent;
    display:flex;
    align-items:center;
    gap:12px;
    padding:11px 14px;
    border-radius:13px;
    color:var(--ilms-primary);
    font-weight:800;
    font-size:14px;
    text-align:left;
    white-space:nowrap;
}

.ilms-dropdown-btn:hover{
    background:rgba(36,59,115,.08);
    color:var(--ilms-primary-dark);
}

.ilms-table-wrapper{
    width:100%;
    overflow:visible;
    scrollbar-width:thin;
}

.ilms-table-wrapper table{
    margin-bottom:0;
}

.ilms-table-wrapper .dropdown-menu{
    z-index:9999;
}

.ilms-table-wrapper::-webkit-scrollbar{
    height:8px;
}

.ilms-table-wrapper::-webkit-scrollbar-thumb{
    background:rgba(36,59,115,.25);
    border-radius:999px;
}

.ilms-calendar-tooltip{
    position:absolute;
    z-index:99999;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:14px;
    padding:10px 12px;
    box-shadow:0 12px 30px rgba(15,23,42,.12);
    min-width:180px;
    pointer-events:none;
}

.ilms-calendar-tooltip .tooltip-title{
    font-weight:800;
    color:#0f172a;
    margin-bottom:4px;
}

.ilms-calendar-tooltip .tooltip-time{
    color:#64748b;
    font-size:12px;
}

.ilms-calendar-tooltip .tooltip-type{
    margin-top:6px;
    font-size:11px;
    font-weight:700;
    color:#94a3b8;
    text-transform:uppercase;
    letter-spacing:.4px;
}

.ilms-notification-nav{
    position:relative;
    display:inline-block;
}

.ilms-notification-badge{
    position:absolute;
    top:-5px;
    right:-5px;
    min-width:18px;
    height:18px;
    padding:0 5px;
    border-radius:999px;
    background:#dc2626;
    color:#fff;
    font-size:10px;
    font-weight:900;
    line-height:18px;
    text-align:center;
}

.ilms-notification-dropdown{
    min-width:320px !important;
    max-width:380px !important;
    width:360px !important;
}

.ilms-notification-header{
    padding:10px 12px;
    font-weight:900;
    color:var(--ilms-primary);
    border-bottom:1px solid var(--ilms-border);
    margin-bottom:6px;
}

.ilms-notification-dropdown li a{
    white-space:normal;
}

.ilms-notification-dropdown li a strong{
    display:block;
    font-size:13px;
}

.ilms-notification-dropdown li a small{
    display:block;
    color:#64748b;
    margin-top:3px;
    line-height:1.35;
}

.ilms-notification-dropdown li a.is-unread{
    background:rgba(99,102,241,.08);
}

.ilms-notification-empty{
    padding:14px 12px;
    color:#94a3b8;
    font-weight:700;
}

.ilms-notification-footer{
    border-top:1px solid var(--ilms-border);
    margin-top:6px;
    padding-top:6px;
}

.ilms-module-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:24px;
}

.ilms-module-grid .module-card{
    height:100%;
    margin-bottom:0;
}

.ilms-stat-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:24px;
    margin-bottom:24px;
}

.ilms-stat-grid .stat-card{
    height:100%;
    margin-bottom:0;
}

details.ilms-card[open]{
    background:#ffffff !important;
}

details.ilms-card summary::-webkit-details-marker{
    display:none;
}

details.ilms-card summary{
    outline:none;
}

@media(max-width:991px){
    .ilms-stat-grid,
    .ilms-module-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:767px){
    .container{
        width:100% !important;
        max-width:100% !important;
        padding-left:14px !important;
        padding-right:14px !important;
    }

    .ilms-nav{
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:12px;
    }

    .ilms-nav-links{
        width:100%;
        display:flex;
        flex-wrap:wrap;
        gap:8px;
    }

    .ilms-nav-icon:after{
        display:none;
    }

    .ilms-brand-logo img{
        height:34px;
    }

    .ilms-brand-text strong{
        font-size:20px;
    }

    .ilms-brand-text small{
        display:none;
    }

    .ilms-page{
        padding:20px 0 36px;
    }

    .ilms-hero{
        padding:24px 20px;
        border-radius:20px;
        margin-bottom:20px;
    }

    .ilms-hero h1{
        font-size:26px;
    }

    .ilms-hero p{
        font-size:14px;
    }

    .ilms-card{
        width:100%;
        max-width:100%;
        padding:16px;
        border-radius:20px;
        overflow:visible;
    }

    .ilms-table-wrapper{
        display:block;
        width:100%;
        max-width:100%;
        overflow-x:scroll !important;
        overflow-y:visible !important;
        -webkit-overflow-scrolling:touch;
        border-radius:14px;
    }

    .ilms-table-wrapper table{
        width:1200px !important;
        max-width:none !important;
        table-layout:auto !important;
        margin-bottom:0;
    }

    .ilms-table-wrapper th,
    .ilms-table-wrapper td{
        white-space:nowrap;
    }

    .ilms-table-wrapper .dropdown-menu{
        z-index:9999;
    }

    .ilms-filter{
        display:block;
        padding:14px;
    }

    .ilms-filter .form-group{
        width:100%;
        min-width:0 !important;
        margin-bottom:12px;
    }

    .ilms-filter .btn{
        width:100%;
        margin-bottom:8px;
    }

    .auth-wrapper{
        min-height:auto;
        padding:20px 0;
    }

    .auth-card{
        max-width:100%;
    }

    .ilms-stat-grid,
    .ilms-module-grid{
        grid-template-columns:1fr;
        gap:16px;
    }
}