:root{--ip-teal:#133B4F;--ip-teal-d:#0E2E3E;--ip-gold:#E0A82E;--ip-bg:#F4F7F9;--ip-line:#E3E9EE;--ip-text:#1D2B33;--ip-muted:#5B6B75}
body{font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--ip-bg);color:var(--ip-text)}
.pkp_structure_head{background:var(--ip-teal);border-bottom:0}
.pkp_site_name a,.pkp_site_name .is_text,.pkp_navigation_user a,.pkp_navigation_user_wrapper a{color:#fff}
.pkp_page_index .pkp_structure_main{width:100%;float:none}
.pkp_page_index .pkp_structure_sidebar{display:none}
.ip-portal{padding:24px 0 48px}
.ip-portal .ip-hero{background:var(--ip-teal) radial-gradient(circle at 88% 15%,rgba(255,255,255,.06) 0 230px,transparent 231px);color:#fff;border-radius:20px;padding:48px 40px;margin-bottom:40px}
.ip-portal .ip-brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:1.05rem}
.ip-portal .ip-brand-icon{width:44px;height:44px;border-radius:12px;background:var(--ip-gold);display:grid;place-items:center;color:var(--ip-teal);flex:none}
.ip-portal .ip-title{font-size:clamp(2rem,4.5vw,3.2rem);font-weight:800;line-height:1.1;margin:28px 0 14px;color:#fff;letter-spacing:-.02em}
.ip-portal .ip-intro{color:rgba(255,255,255,.85);max-width:760px;font-size:1.05rem;line-height:1.65}
.ip-portal .ip-intro a{color:var(--ip-gold)}
.ip-portal .ip-points{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:10px 28px}
.ip-portal .ip-points li{display:flex;align-items:center;gap:8px;font-weight:600}
.ip-portal .ip-points li::before{content:"\2713";color:var(--ip-gold);font-weight:800}
.ip-portal .ip-list-title{font-size:1.5rem;font-weight:800;color:var(--ip-teal);margin:0 0 20px}
.ip-portal .ip-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px}
.ip-portal .ip-card{background:#fff;border:1px solid var(--ip-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.ip-portal .ip-card:hover{box-shadow:0 10px 28px rgba(19,59,79,.12);transform:translateY(-2px)}
.ip-portal .ip-cover{display:flex;align-items:center;justify-content:center;background:#FFFFFF;aspect-ratio:3/4;padding:18px;border-bottom:1px solid var(--ip-line)}
.ip-portal .ip-cover img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 4px 14px rgba(0,0,0,.14)}
.ip-portal .ip-cover-empty{color:var(--ip-muted);text-align:center;font-weight:700;padding:16px}
.ip-portal .ip-body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.ip-portal .ip-badge{align-self:flex-start;background:var(--ip-gold);color:var(--ip-teal-d);font-weight:800;font-size:.75rem;padding:4px 10px;border-radius:999px}
.ip-portal .ip-name{font-size:1.05rem;line-height:1.35;margin:0}
.ip-portal .ip-name a{color:var(--ip-teal);text-decoration:none}
.ip-portal .ip-desc{color:var(--ip-muted);font-size:.9rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ip-portal .ip-desc table,.ip-portal .ip-desc img,.ip-portal .ip-desc ul,.ip-portal .ip-desc h2{display:none}
.ip-portal .ip-desc p{margin:0}
.ip-portal .ip-actions{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}
.ip-portal .ip-btn{background:var(--ip-teal);color:#fff;padding:8px 14px;border-radius:10px;font-weight:700;font-size:.85rem;text-decoration:none;border:1px solid var(--ip-teal)}
.ip-portal .ip-btn:hover{background:var(--ip-teal-d);color:#fff}
.ip-portal .ip-btn-ghost{background:transparent;color:var(--ip-teal)}
.ip-portal .ip-btn-ghost:hover{background:var(--ip-teal);color:#fff}
.pkp_structure_footer_wrapper{background:var(--ip-teal);color:rgba(255,255,255,.85)}
.pkp_structure_footer_wrapper a{color:var(--ip-gold)}
@media (max-width:600px){.ip-portal .ip-hero{padding:32px 22px;border-radius:14px}}
/* v1.1: huruf seragam, menu ganda, garis kolom */
.pkp_site_name,.pkp_site_name a,.pkp_structure_main h1,.pkp_structure_main h2,.pkp_structure_main h3,.ip-portal .ip-title,.ip-portal .ip-list-title,.ip-portal .ip-name{font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
.pkp_site_name a,.pkp_site_name .is_text{font-weight:800;letter-spacing:-.01em}
.pkp_navigation_primary_row{display:none}
.pkp_structure_main:before,.pkp_structure_main:after{display:none!important;border:0!important}
.pkp_structure_content{border:0}
.pkp_structure_head .pkp_head_wrapper{padding-bottom:14px}
.pkp_site_nav_toggle{color:#fff;border-color:rgba(255,255,255,.5)}
/* v1.3: sembunyikan header di halaman yang memuat portal */
body:has(.ip-portal) .pkp_structure_head{display:none!important}
/* v1.2: tombol akun di kotak teal, logo footer */
.ip-portal .ip-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.ip-portal .ip-auth{display:flex;gap:10px}
.ip-portal .ip-auth a{color:#fff;text-decoration:none;font-weight:700;font-size:.9rem;padding:8px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.35)}
.ip-portal .ip-auth a:hover{background:rgba(255,255,255,.1);color:#fff}
.ip-portal .ip-auth .ip-auth-cta{background:var(--ip-gold);border-color:var(--ip-gold);color:var(--ip-teal-d)}
.ip-portal .ip-auth .ip-auth-cta:hover{background:#cf9a22;color:var(--ip-teal-d)}
.pkp_brand_footer img{filter:brightness(0) invert(1);opacity:.6}
body:has(.ip-portal) .ip-portal{padding-top:8px}
/* v1.5: rapikan kotak tanpa sampul */
.ip-portal .ip-cover{text-decoration:none}
.ip-portal .ip-cover-empty{font-size:1.1rem;color:var(--ip-teal);background:#F4F7F9;border:2px dashed var(--ip-line);border-radius:10px;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
/* v1.6: sembunyikan logo OJS/PKP di footer */
.pkp_brand_footer{display:none!important}
.pkp_structure_footer{padding-top:28px;padding-bottom:28px}
.pkp_footer_content{padding:0}
