/* ===========================================================
   PT LEN REKAPRIMA SEMESTA
   Enterprise Portal Design System
=========================================================== */

:root{

    --primary:#005BAC;
    --primary-dark:#00437E;
    --secondary:#00A4E4;

    --success:#16A34A;
    --warning:#F59E0B;
    --danger:#DC2626;

    --bg:#F4F7FA;

    --card:#FFFFFF;

    --border:#E5E7EB;

    --text:#1F2937;

    --text-light:#6B7280;

    --shadow:

        0 8px 25px rgba(0,0,0,.05);

    --shadow-hover:

        0 18px 40px rgba(0,0,0,.12);

    --radius:18px;

    --transition:.25s ease;
}

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Inter',sans-serif;

    background:var(--bg);

    color:var(--text);

    line-height:1.6;

    overflow-x:hidden;

}

h1,h2,h3,h4,h5{

    font-weight:700;

}

a{

    text-decoration:none;

    transition:var(--transition);

}

img{

    max-width:100%;

}

.container{

    max-width:1400px;

}

.section{

    padding:70px 0;

}

.portal-card{

    background:#fff;

    border-radius:18px;

    box-shadow:var(--shadow);

    border:1px solid var(--border);

    transition:.25s;

}

.portal-card:hover{

    transform:translateY(-6px);

    box-shadow:var(--shadow-hover);

}

.btn-primary-custom{

    background:var(--primary);

    color:#fff;

    border:none;

    border-radius:10px;

    padding:10px 22px;

}

.btn-primary-custom:hover{

    background:var(--primary-dark);

}

.portal-badge{

    display:inline-block;

    padding:4px 12px;

    border-radius:30px;

    font-size:12px;

    font-weight:600;

    background:#EEF6FF;

    color:var(--primary);

}

.portal-search{

    width:100%;

    height:58px;

    border-radius:15px;

    border:1px solid var(--border);

    padding:0 22px;

    font-size:16px;

    transition:.2s;

}

.portal-search:focus{

    border-color:var(--primary);

    outline:none;

    box-shadow:0 0 0 4px rgba(0,91,172,.15);

}

@media(max-width:992px){

.section{

padding:50px 0;

}

}

@media(max-width:768px){

.container{

padding:0 20px;

}

}

.portal-header{

    position:relative;

    overflow:hidden;

    background:

    linear-gradient(
        135deg,
        #ffffff 0%,
        #F8FBFF 40%,
        #EEF6FF 100%
    );

}

.portal-header::before{

content:"";

position:absolute;

right:-180px;

top:-180px;

width:450px;

height:450px;

background:

rgba(0,91,172,.05);

border-radius:50%;

}

.portal-navbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:28px;

}

.company-brand{

    display:flex;

    align-items:center;

    gap:18px;

}

.company-logo{

    height:62px;

}

.company-brand h5{

    margin:0;

    color:var(--primary);

    font-size:24px;

}

.company-brand span{

    color:var(--text-light);

    font-size:15px;

}

.portal-clock{

    text-align:right;

}

.portal-clock strong{

    font-size:28px;

    color:var(--primary);

    display:block;

}

.portal-clock div{

    color:var(--text-light);

}

.portal-hero{

    display:grid;

    grid-template-columns:

        1.4fr

        .8fr;

    gap:24px;

    align-items:center;

}

.hero-badge{

    display:inline-block;

    padding:8px 18px;

    border-radius:50px;

    background:#EAF4FF;

    color:var(--primary);

    font-weight:600;

    margin-bottom:16px;

}

.hero-left h1{

    font-size:54px;

    font-weight:800;

    line-height:1.15;

    letter-spacing:-1px;

    color:#1D2939;

    max-width:700px;

}

.hero-left p{

    font-size:18px;

    line-height:32px;

    color:#667085;

    max-width:650px;

    margin-bottom:16px;

}

.hero-card{

    background:#fff;

    border-radius:20px;

    padding:35px;

    box-shadow:var(--shadow);

}

.hero-card-title{

    font-size:20px;

    font-weight:700;

    margin-bottom:20px;

}

@media(max-width:992px){

.portal-navbar{

flex-direction:column;

gap:25px;

}

.portal-clock{

text-align:center;

}

.portal-hero{

grid-template-columns:1fr;

}

.hero-left{

text-align:center;

}

.hero-left h1{

font-size:36px;

}

}


.summary-content{

margin-top:10px;

}

.summary-content h3{

font-size:38px;

margin-bottom:5px;

}

.summary-content span{

font-size:14px;

color:#667085;

}

.summary-card:hover{

    transform:translateY(-8px);

    border-color:#dbeafe;

    box-shadow:var(--shadow-hover);

}

.hero-image{

    width:100%;

    max-width:430px;

    display:block;

    margin:auto;

}

.portal-workspace{

padding-top:0;

padding-bottom:36px;

}

.workspace-header{

display:flex;

justify-content:space-between;

align-items:end;

margin-bottom:18px;

}

.workspace-header::after{

content:"";

display:block;

width:80px;

height:4px;

background:var(--primary);

border-radius:5px;

margin-top:18px;

}

.workspace-header h2{

    font-size:34px;

    margin-bottom:10px;

}

.workspace-header p{

    color:var(--text-light);

    margin:0;

}

.workspace-tools{

    margin-bottom:18px;

}

.search-box{

max-width:540px;

}

.search-box i{

left:16px;

font-size:15px;

}

.search-box input{

height:48px;

padding-left:46px;

border-radius:12px;

}

.search-box input::placeholder{

color:#98A2B3;

}

.search-box input:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(0,91,172,.12);

}

.category-filter{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin-bottom:28px;

}

.filter-btn{

    border:none;

    background:white;

    border-radius:50px;

    padding:10px 22px;

    border:1px solid var(--border);

    transition:.25s;

    font-weight:600;

}

.filter-btn:hover{

    background:#eef6ff;

}

.filter-btn.active{

    background:var(--primary);

    color:white;

}

.apps-grid{

display:grid;

grid-template-columns:

repeat(4,1fr);

gap:18px;

}

.app-card{

background:#fff;

border-radius:20px;

padding:20px;

display:flex;

flex-direction:column;

justify-content:space-between;

border:1px solid var(--border);

box-shadow:var(--shadow);

transition:.25s;

min-height:240px;

}

.app-card:hover{

transform:translateY(-8px);

box-shadow:var(--shadow-hover);

border-color:#dbeafe;

}

.app-logo{

height:70px;

display:flex;

align-items:center;

justify-content:center;

margin-bottom:18px;

}

.app-logo img{

max-height:70px;

max-width:170px;

object-fit:contain;

}

.app-content h3{

font-size:22px;

margin-bottom:8px;

}

.app-content p{

font-size:14px;

line-height:24px;

min-height:44px;

}

.app-body h3{

margin-top:18px;

font-size:22px;

margin-bottom:12px;

}

.app-body p{

color:var(--text-light);

font-size:15px;

min-height:55px;

}

.app-footer{

margin-top:25px;

padding-top:20px;

border-top:1px solid #eee;

display:flex;

justify-content:space-between;

align-items:center;

font-weight:600;

color:var(--primary);

}

@media(max-width:1200px){

.apps-grid{

grid-template-columns:

repeat(3,1fr);

}

}

@media(max-width:992px){

.apps-grid{

grid-template-columns:

repeat(2,1fr);

}

}

@media(max-width:576px){

.apps-grid{

grid-template-columns:

1fr;

}

}

.filter-btn{

height:46px;

padding:0 24px;

}

.filter-btn:hover{

transform:translateY(-2px);
}

.portal-header{

    padding:36px 0 72px;

    border-bottom:1px solid rgba(0,91,172,.08);

}

.portal-navbar{

    margin-bottom:50px;

}

.portal-hero{

    padding-top:18px;

    align-items:flex-start;

}

.hero-left{

    max-width:820px;

}

.hero-left h1{

    font-size:clamp(2.2rem, 4vw, 3.6rem);

    margin-bottom:16px;

}

.hero-left p{

    margin-bottom:16px;

    max-width:680px;

}

.hero-strapline{

    font-size:1.05rem;

    font-weight:700;

    letter-spacing:.04em;

    text-transform:uppercase;

    color:var(--primary);

    margin-bottom:10px;

}

.hero-button{

    display:inline-flex;

    align-items:center;

    gap:10px;

    background:var(--primary);

    color:#fff;

    border-radius:999px;

    padding:14px 24px;

    font-weight:600;

    box-shadow:0 10px 25px rgba(0,91,172,.2);

}

.hero-button:hover{

    background:var(--primary-dark);

    transform:translateY(-2px);

    color:#fff;

}

.portal-workspace{

    padding:0 0 70px;

}

.workspace-header{

    margin-bottom:24px;

}

.workspace-header h2{

    font-size:30px;

}

.workspace-tools{

    margin-bottom:20px;

}

.search-box{

    position:relative;

    max-width:560px;

}

.search-box i{

    position:absolute;

    top:50%;

    left:16px;

    transform:translateY(-50%);

    color:var(--text-light);

}

.search-box input{

    width:100%;

    height:50px;

    border:1px solid var(--border);

    border-radius:999px;

    padding:0 18px 0 46px;

}

.category-filter{

    margin-bottom:32px;

    gap:12px;

}

.filter-btn{

    cursor:pointer;

    font-family:inherit;

}

.filter-btn.active{

    background:var(--primary);

    color:#fff;

    box-shadow:0 10px 20px rgba(0,91,172,.15);

}

.apps-grid{

    gap:22px;

}

.app-card{

    text-decoration:none;

    color:inherit;

    min-height:270px;

}

.app-card:hover{

    text-decoration:none;

    color:inherit;

}

.app-content h3{

    color:#111827;

}

.app-content p{

    color:#667085;

}

.card-bottom{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-top:auto;

}

.launch-link{

    font-weight:600;

    color:var(--primary);

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:36px;

    height:36px;

    background:rgba(0,91,172,.08);

    border-radius:12px;

    transition:background .2s ease, transform .2s ease;

}

.launch-link svg{

    display:block;

    width:18px;

    height:18px;

}

.launch-link:hover{

    background:rgba(0,91,172,.16);

    transform:translateY(-1px);

}

.empty-state{

    display:none;

    justify-content:center;

    align-items:center;

    min-height:180px;

    border:1px dashed var(--border);

    color:var(--text-light);

    border-radius:20px;

    background:#fcfdff;

    margin-top:18px;

}

.portal-footer{

    background:#fff;

    border-top:1px solid var(--border);

    padding:26px 0 40px;

    margin-top:10px;

}

.portal-footer .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

}

.helpdesk-overlay{

    position:fixed;

    inset:0;

    background:rgba(15,23,42,.55);

    display:none;

    z-index:1200;

}

.helpdesk-modal{

    position:fixed;

    top:50%;

    left:50%;

    transform:translate(-50%,-50%);

    width:min(420px,calc(100% - 32px));

    background:#fff;

    border-radius:24px;

    box-shadow:0 26px 60px rgba(15,23,42,.18);

    padding:24px;

    display:none;

    z-index:1210;

}

.helpdesk-modal .modal-header{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:18px;

    margin-bottom:20px;

}

.helpdesk-modal h3{

    margin:0 0 6px;

    font-size:22px;

    color:#111827;

}

.helpdesk-modal p{

    margin:0;

    color:#667085;

    line-height:1.6;

}

.helpdesk-close{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:38px;

    height:38px;

    border:none;

    border-radius:50%;

    background:#eef2f8;

    color:#102a43;

    font-size:20px;

    line-height:1;

    cursor:pointer;

    box-shadow:0 10px 18px rgba(15,23,42,.08);

    transition:transform .2s ease, background .2s ease, color .2s ease;

}

.helpdesk-close:hover{

    transform:scale(1.05);

    background:#dbeafe;

    color:#0f172a;

}

.helpdesk-actions{

    display:grid;

    gap:14px;

}

.helpdesk-option{

    width:100%;

    border:none;

    border-radius:16px;

    padding:16px 20px;

    background:#f8fbff;

    color:#0f172a;

    font-size:16px;

    text-align:left;

    font-weight:700;

    cursor:pointer;

    transition:transform .2s ease, background .2s ease;

}

.helpdesk-option:hover{

    transform:translateY(-2px);

    background:#eef6ff;

}

.helpdesk-option.helpdesk-legal{

    background:#eef2ff;

}

.portal-footer .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

}

.footer-brand{

    display:flex;

    align-items:center;

    gap:14px;

}

.footer-brand img{

    height:52px;

}

.footer-brand h4{

    margin:0;

    font-size:18px;

    color:#111827;

}

.footer-brand p{

    margin:0;

    color:var(--text-light);

}

.footer-meta span{

    font-weight:600;

    color:var(--primary);

}

@media(max-width:768px){

.portal-header{

    padding-bottom:56px;

}

.portal-navbar{

    margin-bottom:32px;

}

.workspace-header{

    flex-direction:column;

    align-items:flex-start;

    gap:8px;

}

.portal-footer .container{

    flex-direction:column;

    align-items:flex-start;

}

}

box-shadow:0 8px 20px rgba(0,0,0,.08);

}

.filter-btn.active{

box-shadow:

0 10px 30px rgba(0,91,172,.30);

}

.hero-highlight{

    background:#fff;

    border-radius:20px;

    padding:40px;

    box-shadow:var(--shadow);

    border:1px solid #EEF2F6;

}

.highlight-number{

    font-size:64px;

    font-weight:800;

    color:var(--primary);

    line-height:1;

    margin-bottom:20px;

}

.card-bottom{

padding-top:18px;

}

.app-card:hover{

transform:translateY(-6px);

}

.app-card:hover .launch-link{

transform:translateX(4px);

transition:.25s;

}