/* =========================================================
   DASHBOARD PPID / USER DASHBOARD
   File: dashboard-ppid.css
========================================================= */

/* =========================================================
   GLOBAL
========================================================= */

.dashboard-user-page{
    background:#f8fafc;
}

.dashboard-user-page .container{
    max-width:1200px;
}

.dashboard-user-page .section-spacing{
    margin-top:28px;
}

/* =========================================================
   HERO
========================================================= */

.dashboard-hero{
    background:#ffffff;
    border-radius:32px;
    padding:38px;
    border:1px solid #edf2f7;

    box-shadow:
        0 10px 30px rgba(0,0,0,.04);
}

.dashboard-hero-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:8px 16px;

    border-radius:999px;

    background:#dcfce7;

    color:#166534;

    font-size:.82rem;
    font-weight:700;

    margin-bottom:18px;
}

.dashboard-hero-title{
    font-size:2.3rem;
    font-weight:800;
    line-height:1.2;

    margin-bottom:12px;
}

.dashboard-hero-subtitle{
    color:#6b7280;
    line-height:1.8;
    font-size:1rem;

    max-width:700px;
}

.dashboard-hero-actions{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
}

.dashboard-btn-primary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    min-height:52px;

    padding:0 24px;

    border-radius:999px;

    background:#16a34a;

    color:#fff !important;

    font-weight:700;

    text-decoration:none;

    transition:.25s ease;
}

.dashboard-btn-primary:hover{
    transform:translateY(-2px);

    background:#15803d;
}

.dashboard-btn-outline{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    min-height:52px;

    padding:0 24px;

    border-radius:999px;

    border:1px solid #cbd5e1;

    color:#334155 !important;

    font-weight:700;

    text-decoration:none;

    background:#fff;

    transition:.25s ease;
}

.dashboard-btn-outline:hover{
    background:#f8fafc;
    transform:translateY(-2px);
}

/* =========================================================
   STATS CARD
========================================================= */

.stats-card{
    background:#fff;

    border-radius:28px;

    padding:26px;

    border:1px solid #edf2f7;

    display:flex;
    align-items:center;

    gap:18px;

    height:100%;

    box-shadow:
        0 4px 20px rgba(0,0,0,.03);

    transition:.25s ease;
}

.stats-card:hover{
    transform:translateY(-4px);

    box-shadow:
        0 12px 30px rgba(0,0,0,.06);
}

.stats-icon{
    width:68px;
    height:68px;

    border-radius:22px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:1.5rem;

    flex-shrink:0;
}

.stats-icon.primary{
    background:#dbeafe;
    color:#1d4ed8;
}

.stats-icon.warning{
    background:#fef3c7;
    color:#d97706;
}

.stats-icon.success{
    background:#dcfce7;
    color:#15803d;
}

.stats-number{
    font-size:2rem;
    font-weight:800;
    line-height:1;
}

.stats-label{
    color:#6b7280;
    margin-top:6px;
}

/* =========================================================
   TABLE CARD
========================================================= */

.dashboard-card{
    background:#fff;

    border-radius:30px;

    border:1px solid #edf2f7;

    overflow:hidden;

    box-shadow:
        0 4px 20px rgba(0,0,0,.03);
}

.dashboard-card-header{
    padding:22px 26px;

    border-bottom:1px solid #edf2f7;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:16px;
}

.dashboard-card-title{
    font-size:1.1rem;
    font-weight:700;

    margin:0;
}

.dashboard-table{
    margin:0;
}

.dashboard-table thead th{
    background:#f8fafc;

    color:#64748b;

    font-size:.78rem;

    text-transform:uppercase;

    letter-spacing:.04em;

    font-weight:700;

    padding:16px 20px;

    border-bottom:1px solid #edf2f7;
}

.dashboard-table tbody td{
    padding:18px 20px;

    vertical-align:middle;

    border-bottom:1px solid #f1f5f9;
}

.dashboard-table tbody tr{
    transition:.2s ease;
}

.dashboard-table tbody tr:hover{
    background:#f8fafc;
}

/* =========================================================
   STATUS
========================================================= */

.status-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:.55rem 1rem;

    border-radius:999px;

    font-size:.78rem;
    font-weight:700;
}

.status-success{
    background:#dcfce7;
    color:#166534;
}

.status-primary{
    background:#dbeafe;
    color:#1d4ed8;
}

.status-danger{
    background:#fee2e2;
    color:#991b1b;
}

.status-warning{
    background:#fef3c7;
    color:#92400e;
}

/* =========================================================
   EMPTY STATE
========================================================= */

.empty-state{
    padding:50px 20px;

    text-align:center;
}

.empty-state i{
    font-size:3rem;
    color:#cbd5e1;

    margin-bottom:14px;
}

.empty-state h5{
    font-weight:700;
    margin-bottom:10px;
}

.empty-state p{
    color:#6b7280;
    margin:0;
}

/* =========================================================
   PERMOHONAN / KEBERATAN SHOW
========================================================= */

.permohonan-hero{
    background:#fff;

    border-radius:34px;

    padding:38px;

    border:1px solid #edf2f7;

    box-shadow:
        0 10px 30px rgba(0,0,0,.04);
}

.hero-icon{
    width:72px;
    height:72px;

    border-radius:24px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:1.8rem;

    flex-shrink:0;
}

.hero-icon.primary{
    background:#dbeafe;
    color:#2563eb;
}

.hero-icon.warning{
    background:#fef3c7;
    color:#ca8a04;
}

.hero-title{
    font-size:2rem;
    font-weight:800;

    margin:0;
}

.hero-subtitle{
    margin-top:8px;

    color:#6b7280;

    line-height:1.7;
}

.status-chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:.7rem 1.2rem;

    border-radius:999px;

    font-size:.82rem;
    font-weight:700;
}

/* =========================================================
   TIMELINE
========================================================= */

.timeline-card{
    background:#fff;

    border-radius:30px;

    padding:30px;

    border:1px solid #edf2f7;

    box-shadow:
        0 4px 20px rgba(0,0,0,.03);
}

.timeline-grid{
    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(240px,1fr));

    gap:20px;
}

.timeline-item{
    background:#f8fafc;

    border:1px solid #e2e8f0;

    border-radius:24px;

    padding:22px;

    display:flex;
    gap:16px;

    min-height:120px;
}

.timeline-icon{
    width:54px;
    height:54px;

    border-radius:18px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:1.2rem;

    flex-shrink:0;
}

.timeline-icon.primary{
    background:#dbeafe;
    color:#2563eb;
}

.timeline-icon.success{
    background:#dcfce7;
    color:#16a34a;
}

.timeline-icon.danger{
    background:#fee2e2;
    color:#dc2626;
}

.timeline-label{
    font-size:.78rem;

    text-transform:uppercase;

    letter-spacing:.03em;

    color:#64748b;

    font-weight:700;

    margin-bottom:8px;
}

.timeline-date{
    font-size:1.2rem;
    font-weight:800;

    line-height:1.3;
}

.timeline-time{
    color:#64748b;
    margin-top:4px;
}

/* =========================================================
   MODERN CARD
========================================================= */

.modern-card{
    background:#fff;

    border-radius:30px;

    padding:30px;

    border:1px solid #edf2f7;

    box-shadow:
        0 4px 20px rgba(0,0,0,.03);

    height:100%;
}

.section-title{
    font-size:1.2rem;
    font-weight:800;

    margin-bottom:22px;
}

.info-list{
    display:flex;
    flex-direction:column;

    gap:20px;
}

.info-item{
    display:flex;
    justify-content:space-between;

    gap:16px;

    padding-bottom:14px;

    border-bottom:1px solid #f1f5f9;
}

.info-item:last-child{
    border-bottom:none;
    padding-bottom:0;
}

.info-item small{
    color:#64748b;
}

.info-item strong{
    font-weight:700;
}

.detail-box{
    background:#f8fafc;

    border:1px solid #e2e8f0;

    border-radius:22px;

    padding:22px;

    line-height:1.9;

    color:#334155;
}

.detail-box-scroll{
    max-height:450px;
    overflow-y:auto;
}

/* =========================================================
   ADMIN NOTE
========================================================= */

.admin-note{
    background:#eff6ff;

    border:1px solid #bfdbfe;

    border-radius:24px;

    padding: 20px 24px;
}

.admin-note-header{
    display:flex;
    align-items:center;

    gap:14px;

    margin-bottom:14px;
}

.admin-note-icon{
    width:48px;
    height:48px;

    border-radius:16px;

    background:#dbeafe;

    display:flex;
    align-items:center;
    justify-content:center;

    color:#2563eb;

    flex-shrink:0;
}

.admin-note-title{
    font-weight:700;
    margin:0;
}

.admin-note-content{
    color:#1e3a8a;

    line-height:1.8;
}

/* =========================================================
   CTA CARD
========================================================= */

.cta-card{
    background:#fff;

    border-radius:30px;

    border:1px solid #edf2f7;

    padding:28px 32px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    box-shadow:
        0 4px 20px rgba(0,0,0,.03);
}

/* =========================================================
   MOBILE
========================================================= */

@media(max-width:768px){

    .dashboard-hero,
    .permohonan-hero,
    .timeline-card,
    .modern-card,
    .dashboard-card,
    .cta-card{
        border-radius:24px;
    }

    .dashboard-hero,
    .permohonan-hero{
        padding:24px;
    }

    .dashboard-hero-title{
        font-size:1.8rem;
    }

    .hero-title{
        font-size:1.6rem;
    }

    .dashboard-hero-actions{
        width:100%;
    }

    .dashboard-btn-primary,
    .dashboard-btn-outline{
        width:100%;
    }

    .stats-card{
        padding:22px;
    }

    .stats-number{
        font-size:1.7rem;
    }

    .timeline-grid{
        grid-template-columns:1fr;
    }

    .timeline-item{
        min-height:auto;
    }

    .dashboard-card-header{
        flex-direction:column;
        align-items:flex-start;
    }

    .dashboard-table{
        min-width:700px;
    }

    .dashboard-table-wrapper{
        overflow-x:auto;
    }

    .info-item{
        flex-direction:column;
        gap:6px;
    }

    .cta-card{
        flex-direction:column;
        align-items:flex-start;
    }

}

/* =========================================
   PROFILE PAGE FIX
========================================= */

.profile-grid {
    align-items: flex-start !important;
}

.profile-card {
    height: auto !important;
}

.profile-sidebar {
    position: sticky;
    top: 110px;
}

.password-card {
    margin-top: 24px;
}

@media (max-width: 991px) {

    .profile-sidebar {
        position: relative;
        top: 0;
    }

}

/* =========================================
   DETAIL PAGE LAYOUT FIX
========================================= */

.detail-page-wrapper{
    max-width:1180px;
    margin:0 auto;
}

.hero-top-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
}

.hero-left{
    display:flex;
    align-items:center;
    gap:24px;
}

@media(max-width:768px){

    .hero-top-row{
        flex-direction:column;
        align-items:flex-start;
    }

    .hero-left{
        flex-direction:column;
        align-items:flex-start;
    }

}