:root{--navy:#06164c;--blue:#0b3d91;--gold:#f2b705;--line:#b8c3d9;--light:#f4f7fb;--text:#17203c;--muted:#64708a;--danger:#b42318;--green:#117a37;--yellow:#b7791f;--orange:#c05621}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:#eef3fa}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 28px;background:#fff;border-bottom:4px solid var(--navy);box-shadow:0 2px 10px rgba(0,0,0,.08)}.brand{display:flex;gap:12px;align-items:center;color:var(--navy)}.brand span{display:block;font-size:12px;color:var(--muted);font-weight:600}.logo{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--gold),#ffe585);border:3px solid var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--navy)}nav a{margin-left:14px;text-decoration:none;color:var(--navy);font-weight:700;font-size:14px}.container{max-width:1180px;margin:22px auto;padding:0 14px}.page-title{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:18px;text-align:center}.page-title h1{margin:0;color:var(--navy);font-size:28px;letter-spacing:.5px}.page-title p{margin:6px 0 0;color:var(--blue);font-weight:700}.card{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,.05);overflow:hidden}.card-header{padding:10px 14px;background:linear-gradient(180deg,#f6f8fd,#e9eef9);border-bottom:1px solid var(--line);font-weight:800;color:var(--navy);text-transform:uppercase}.card-body{padding:16px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-row{display:grid;grid-template-columns:190px 1fr;gap:12px;align-items:center;margin-bottom:12px}.form-row label{font-weight:700;font-size:14px}.form-row input,.form-row textarea,.form-row select{width:100%;border:1px solid var(--line);border-radius:6px;padding:9px 10px;font-size:14px;background:#fff}.form-row textarea{min-height:82px;resize:vertical}.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}.check{display:flex;gap:8px;align-items:center;font-size:13px}.btn{display:inline-block;border:0;border-radius:7px;padding:10px 15px;background:var(--navy);color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.btn.secondary{background:#edf2fc;color:var(--navy);border:1px solid var(--line)}.btn.danger{background:var(--danger)}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.notice{padding:12px;border-radius:8px;background:#fff7db;border:1px solid #f1d36b;margin-bottom:16px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{border:1px solid var(--line);padding:8px 9px;font-size:13px;vertical-align:top}.table th{background:#edf2fc;color:var(--navy);text-align:center}.table tbody tr:nth-child(even){background:#f9fbff}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700}.badge-green{background:#e3f7e8;color:var(--green)}.badge-yellow{background:#fff4d8;color:var(--yellow)}.badge-red{background:#ffe6e3;color:var(--danger)}.badge-blue{background:#e8efff;color:var(--blue)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px}.stat strong{display:block;font-size:30px;color:var(--navy)}.stat span{font-size:13px;color:var(--muted);font-weight:700}.login{max-width:460px;margin:50px auto}.footer{text-align:center;color:var(--muted);padding:18px}.rekap-title{text-align:center;color:var(--navy);margin:0}.small{font-size:12px;color:var(--muted)}.signature-box{border:1px solid var(--line);background:#fffbe8;border-radius:8px;padding:12px;min-height:110px}.verify-box{border:1px solid var(--line);border-radius:8px;padding:12px}.print-only{display:none}
@media(max-width:850px){.grid-2,.grid-3,.stats{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}.topbar{display:block}nav{margin-top:12px}nav a{display:inline-block;margin:0 10px 8px 0}}
@media print{body{background:#fff}.topbar,.footer,.no-print{display:none!important}.container{max-width:none;margin:0;padding:0}.card{box-shadow:none;border-color:#8797bd;page-break-inside:avoid}.page-title{border:none}.print-only{display:block}.table th,.table td{font-size:10px;padding:4px}.card-body{padding:8px}.btn{display:none}.form-row input,.form-row textarea,.form-row select{border-bottom:1px solid #555;border-top:0;border-left:0;border-right:0;border-radius:0}}

/* ===== UARN/UDAN header logo and doctoral module additions ===== */
.topbar .brand{display:flex!important;align-items:center!important;gap:14px!important;min-width:0}
.topbar .brand-logos{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;flex-shrink:0!important}
.topbar .brand-logos img{display:inline-block!important;object-fit:contain!important;vertical-align:middle!important;flex-shrink:0!important}
.topbar .brand-logos .logo-img{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important}
.topbar .brand-logos .logo-wcu-img{width:62px!important;height:48px!important;max-width:62px!important;max-height:48px!important}
.topbar .brand>div:last-child{display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:210px}
.topbar nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.topbar nav a{margin-left:0!important}
.udan-title h1,.udan-title p{color:var(--navy)}
.udan-title em{color:#ef7b00;font-weight:700}
.udan-hero{background:#fff;border:1px solid var(--line);border-radius:14px;padding:50px 20px;margin:16px 0;text-align:center;position:relative;overflow:hidden}
.udan-hero:before{content:"";position:absolute;left:-90px;bottom:-90px;width:260px;height:260px;border:1px solid #d6dce8;border-radius:50%;box-shadow:0 0 0 48px rgba(6,22,76,.03),0 0 0 96px rgba(6,22,76,.025)}
.udan-hero .hero-brand{font-size:34px;font-weight:900;color:var(--navy);letter-spacing:.5px;position:relative}
.udan-hero h1{font-size:38px;color:var(--navy);margin:8px 0 12px;position:relative}
.udan-hero p{color:#fff;background:var(--navy);display:inline-block;padding:8px 20px;border-radius:999px;font-weight:700;position:relative}
.principle-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.principle-flow div{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fffbe8;min-height:110px}
.principle-flow strong{display:block;color:var(--navy);text-transform:uppercase;margin-bottom:6px}
.principle-flow span{font-size:13px;color:var(--text);line-height:1.35}
.doctoral-input-table input{width:100%;min-width:120px;border:1px solid var(--line);border-radius:5px;padding:7px 8px;font-size:13px}
@media(max-width:980px){.principle-flow{grid-template-columns:1fr 1fr}.topbar{display:block}.topbar nav{justify-content:flex-start;margin-top:12px}.topbar .brand>div:last-child{min-width:0}}
@media(max-width:640px){.principle-flow{grid-template-columns:1fr}.udan-hero .hero-brand{font-size:24px}.udan-hero h1{font-size:26px}}

/* ===== UEEP employer engagement module ===== */
.ueep-title h1,.ueep-title p{color:var(--navy)}
.ueep-title em{color:#ef7b00;font-weight:700}
.ueep-hero{background:#fff;border:1px solid var(--line);border-radius:14px;padding:55px 20px;margin:16px 0;text-align:center;position:relative;overflow:hidden}
.ueep-hero:before{content:"";position:absolute;left:-80px;bottom:-90px;width:260px;height:260px;border:1px solid #d6dce8;border-radius:50%;box-shadow:0 0 0 48px rgba(6,22,76,.03),0 0 0 96px rgba(6,22,76,.025)}
.ueep-hero:after{content:"";position:absolute;right:-20px;top:0;width:280px;height:34px;background:linear-gradient(110deg,var(--navy) 0 60%,var(--gold) 60% 100%);border-bottom-left-radius:28px}
.ueep-hero .hero-brand{font-size:34px;font-weight:900;color:var(--navy);letter-spacing:.5px;position:relative}
.ueep-hero h1{font-size:40px;color:var(--navy);margin:8px 0 12px;position:relative}
.ueep-hero p{color:#fff;background:var(--navy);display:inline-block;padding:8px 20px;border-radius:999px;font-weight:700;position:relative}
.employer-input-table input{width:100%;min-width:120px;border:1px solid var(--line);border-radius:5px;padding:7px 8px;font-size:13px}
.stats-wide{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.stats-wide{grid-template-columns:1fr 1fr}.ueep-hero .hero-brand{font-size:24px}.ueep-hero h1{font-size:28px}}
@media(max-width:640px){.stats-wide{grid-template-columns:1fr}}

/* Tambahan modul UIAP dan Citation Monitoring */
.topbar nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar nav a{margin-left:0}.brand-logos{display:flex!important;align-items:center!important;gap:8px!important;flex-direction:row!important;flex-shrink:0}.brand-logos img,.topbar .brand img{display:block!important;object-fit:contain!important}.logo-img{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important}.logo-wcu-img{width:70px!important;height:48px!important;max-width:70px!important;max-height:48px!important}.uiap-title h1,.citation-title h1{color:var(--navy)}.uiap-title p{color:#0b3d91}.citation-title p{color:#0b3d91}.workflow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.workflow div{border:1px solid var(--line);background:#f8fbff;border-radius:10px;padding:14px}.workflow strong{display:block;color:var(--navy);margin-bottom:4px}.workflow span{font-size:12px;color:var(--muted);font-weight:700}.compact-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.contribution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-stats{grid-template-columns:repeat(5,1fr)}.module-grid .card-body p{min-height:54px}.table input{width:100%;border:1px solid var(--line);border-radius:4px;padding:6px}
@media(max-width:1100px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.workflow{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start}.topbar nav{margin-top:10px}}
@media(max-width:700px){.dashboard-stats,.workflow,.contribution-grid,.compact-checks{grid-template-columns:1fr}}

/* ===== Sidebar navigation layout ===== */
body.has-sidebar {
    background: #eef3fa;
}
body.has-sidebar .topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    min-height: 72px;
}
body.has-sidebar .topbar nav {
    display: none !important;
}
.topbar-user {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--navy);
    font-size: 13px;
    font-weight: 700;
}
.topbar-user a {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 999px;
    color: #fff;
    background: var(--navy);
    text-decoration: none;
}
.app-shell {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 0;
    min-height: calc(100vh - 72px);
}
.sidebar {
    position: sticky;
    top: 72px;
    align-self: start;
    height: calc(100vh - 72px);
    overflow-y: auto;
    background: #06164c;
    color: #fff;
    padding: 18px 14px;
    box-shadow: 4px 0 18px rgba(6, 22, 76, .14);
}
.sidebar-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #f2b705;
    font-weight: 900;
    margin: 0 0 14px 8px;
}
.side-group {
    margin-bottom: 18px;
}
.side-group-title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: rgba(255,255,255,.68);
    font-weight: 800;
    padding: 8px 10px 6px;
}
.side-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    margin: 3px 0;
    border-radius: 9px;
    color: rgba(255,255,255,.9);
    text-decoration: none;
    font-weight: 700;
    font-size: 13px;
    line-height: 1.2;
}
.side-link:hover {
    background: rgba(255,255,255,.12);
    color: #fff;
}
.side-link.active {
    background: #f2b705;
    color: #06164c;
}
.side-icon {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: rgba(255,255,255,.14);
    font-size: 13px;
    flex-shrink: 0;
}
.side-link.active .side-icon {
    background: rgba(6,22,76,.12);
}
.content-area {
    max-width: none !important;
    width: 100%;
    margin: 22px 0 !important;
    padding: 0 22px !important;
}
body.has-sidebar .footer {
    margin-left: 280px;
    background: #fff;
    border-top: 1px solid var(--line);
}

@media(max-width: 980px) {
    .app-shell {
        grid-template-columns: 1fr;
    }
    .sidebar {
        position: relative;
        top: auto;
        height: auto;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
    .sidebar-title {
        grid-column: 1 / -1;
    }
    .side-group {
        margin-bottom: 0;
    }
    body.has-sidebar .footer {
        margin-left: 0;
    }
    .content-area {
        padding: 0 14px !important;
    }
}
@media(max-width: 640px) {
    .sidebar {
        grid-template-columns: 1fr;
    }
    .topbar-user {
        margin-top: 10px;
    }
}
@media print {
    .sidebar, .topbar-user {
        display: none !important;
    }
    .app-shell {
        display: block;
    }
    body.has-sidebar .footer {
        margin-left: 0;
    }
    .content-area {
        padding: 0 !important;
        margin: 0 !important;
    }
}

/* Sustainability ESG and QS WUR datamart additions */
.sustainability-title h1 { color:#065f2c; }
.compact-check-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.table input, .table select { width:100%; border:1px solid var(--line); border-radius:4px; padding:6px 7px; font-size:12px; }
@media(max-width:850px){.compact-check-grid{grid-template-columns:1fr 1fr}}

/* ===== Public Landing Page: Berita WCU dan SDGs ===== */
.public-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.public-nav a{color:var(--navy);text-decoration:none;font-weight:800;font-size:14px;padding:8px 12px;border-radius:999px;background:#edf2fc;border:1px solid var(--line)}
.public-nav a:last-child{background:var(--navy);color:#fff;border-color:var(--navy)}
.landing-hero{display:grid;grid-template-columns:minmax(0,1.7fr) 360px;gap:22px;align-items:stretch;background:linear-gradient(135deg,#fff 0%,#f6f9ff 58%,#fff6d9 100%);border:1px solid var(--line);border-radius:20px;padding:34px;margin:22px 0;position:relative;overflow:hidden;box-shadow:0 8px 30px rgba(6,22,76,.08)}
.landing-hero:before{content:"";position:absolute;right:-60px;top:-70px;width:260px;height:160px;background:linear-gradient(120deg,var(--navy) 0 60%,var(--gold) 60% 100%);border-bottom-left-radius:90px;opacity:.95}
.landing-hero-content{position:relative;z-index:1}
.eyebrow{display:inline-block;color:#0b3d91;background:#eaf1ff;border:1px solid #cbd8ff;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.landing-hero h1{font-size:42px;line-height:1.08;color:var(--navy);margin:16px 0 12px;max-width:760px}
.landing-hero p{font-size:17px;line-height:1.55;color:#33415f;max-width:720px;margin:0 0 22px}
.landing-actions{display:flex;gap:10px;flex-wrap:wrap}
.landing-hero-panel{position:relative;z-index:1;display:grid;gap:12px;align-content:center}
.mini-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 4px 16px rgba(6,22,76,.07)}
.mini-stat strong{display:block;font-size:34px;color:var(--navy)}
.mini-stat span{font-size:13px;color:var(--muted);font-weight:800;text-transform:uppercase}
.featured-news{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}
.featured-card,.news-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(6,22,76,.05)}
.featured-card img,.news-card img{width:100%;height:170px;object-fit:cover;display:block;background:#eef3fa}
.featured-body,.news-card-body{padding:16px}
.category-badge{display:inline-block;background:#fff4d8;color:#8a5a00;border:1px solid #f1d36b;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.featured-body h2,.news-card-body h3{margin:10px 0 8px;color:var(--navy);line-height:1.22}
.featured-body h2 a,.news-card-body h3 a{color:var(--navy);text-decoration:none}
.featured-body h2 a:hover,.news-card-body h3 a:hover{text-decoration:underline}
.featured-body p,.news-card-body p{color:#3d4864;line-height:1.45;margin:0 0 10px;font-size:14px}
.read-more{color:#0b3d91;text-decoration:none;font-weight:900}
.read-more:hover{text-decoration:underline}
.news-placeholder{height:170px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy),#12347b);color:#fff;font-size:42px;font-weight:900;letter-spacing:.08em}
.small-placeholder{height:140px;font-size:28px}
.landing-section{margin:24px 0 34px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading h2{margin:0;color:var(--navy);font-size:28px}.section-heading p{margin:4px 0 0;color:var(--muted);font-weight:700}.category-strip{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 18px}.category-strip span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;color:var(--navy)}.category-strip strong{display:inline-block;margin-left:5px;background:var(--navy);color:#fff;border-radius:999px;min-width:20px;text-align:center;padding:1px 5px}.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.news-meta{font-size:12px;color:var(--muted);font-weight:800;margin-top:12px}.news-detail{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;max-width:980px;margin:22px auto;box-shadow:0 6px 22px rgba(6,22,76,.06)}.news-detail-head h1{font-size:36px;color:var(--navy);line-height:1.18;margin:12px 0}.news-detail-image{width:100%;max-height:460px;object-fit:cover;border-radius:14px;margin:18px 0}.news-lead{font-size:18px;line-height:1.55;color:#263858;background:#f4f7fb;border-left:5px solid var(--gold);padding:14px 16px;border-radius:10px}.news-content{font-size:16px;line-height:1.7;color:#1f2b49}.news-admin-actions{display:flex;gap:8px;flex-wrap:wrap}.badge .Published{}
@media(max-width:1050px){.landing-hero{grid-template-columns:1fr}.featured-news,.news-grid{grid-template-columns:1fr 1fr}.landing-hero h1{font-size:34px}}
@media(max-width:700px){.featured-news,.news-grid{grid-template-columns:1fr}.section-heading{display:block}.landing-hero{padding:22px}.landing-hero h1{font-size:28px}.public-nav{margin-top:12px}.topbar{display:block}}
