*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;color:#1b1d24}
body{background:linear-gradient(180deg,#eef4fb, #f8fafc 45%, #eef1f7);min-height:100vh}
:root{--theme-color:#0f4c81;--accent-color:#d4a017}
a{text-decoration:none;color:inherit}
.container{width:min(1180px,92%);margin:0 auto}
.site-header{position:sticky;top:0;z-index:50;margin:16px auto 8px;width:min(1180px,92%);border-radius:24px}
.glass{background:rgba(255,255,255,.78);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.6);box-shadow:0 10px 30px rgba(10,20,50,.08)}
.header-flex,.footer-flex,.hero-grid,.action-row,.admin-grid-2,.dashboard-grid,.stats-grid{display:grid;gap:16px}
.header-flex{grid-template-columns:1.3fr 1fr;align-items:center;padding:18px 24px}
.site-header h1{font-size:28px;margin:2px 0 4px;color:var(--theme-color)}
.tiny{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#5b6780}
.subtitle,.small{font-size:14px;color:#586273}
.nav{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.nav a,.btn{padding:11px 16px;border-radius:14px;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.nav a{background:#f1f5fb}
.nav a:hover,.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--theme-color),#245f9a);color:#fff}
.btn-outline,.btn-sm,.btn{background:#ecf2fb;color:var(--theme-color)}
.btn-danger{background:#ffe0e0;color:#a11919}
.btn-sm{padding:8px 12px;border-radius:10px;font-size:13px}
.full{width:100%}
.main-content{padding:14px 0 32px}
.hero{padding:28px;border-radius:28px}
.hero-grid{grid-template-columns:1.2fr .9fr;align-items:stretch}
.hero h2{font-size:34px;line-height:1.15;margin:10px 0 12px;color:#13233e}
.badge{display:inline-block;background:rgba(212,160,23,.12);color:#9a7100;padding:9px 14px;border-radius:999px;font-size:13px;font-weight:700}
.stats-grid{grid-template-columns:repeat(2,1fr)}
.stat-card{padding:18px 20px;border-radius:22px;background:linear-gradient(135deg,#ffffff,#f3f7fd);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 8px 24px rgba(10,30,70,.06)}
.stat-card .label{font-size:13px;color:#556177}
.stat-card .value{font-size:28px;font-weight:800;color:var(--theme-color);margin-top:8px;word-break:break-word}
.section-title{margin:24px 0 14px}
.section-title h3{margin:0;font-size:28px;color:#14243d}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.news-card{overflow:hidden;border-radius:24px}
.news-thumb{height:200px;background:linear-gradient(135deg,var(--theme-color),#89abd2);display:flex;align-items:center;justify-content:center;color:#fff}
.news-thumb img,.detail-image{width:100%;height:100%;object-fit:cover}
.placeholder{font-size:24px;font-weight:800}
.news-content{padding:18px}
.news-content h4{font-size:20px;margin:6px 0 10px;color:#13233e}
.read-more{color:var(--theme-color);font-weight:700}
.article-detail{padding:26px;border-radius:26px}
.article-body{margin-top:18px;line-height:1.8;white-space:pre-wrap}
.table-wrap{overflow:auto;border-radius:24px}
.table{width:100%;border-collapse:collapse;min-width:800px}
.table th,.table td{padding:14px 12px;border-bottom:1px solid #e5e9f2;text-align:left;font-size:14px}
.table th{background:#f5f8fd;color:#2b3b54;position:sticky;top:0}
.pill{display:inline-block;padding:6px 10px;border-radius:999px;background:#edf2f7;font-size:12px;font-weight:700}
.pill.green{background:#daf6e5;color:#087443}
.pill.red{background:#ffe1e1;color:#992323}
.pill.gold{background:#fff0c4;color:#8a6100}
.spin-panel{padding:22px;border-radius:28px;text-align:center}
.inner-panel{background:linear-gradient(135deg,#fff,#f5f8ff)}
.spin-name{font-size:36px;font-weight:800;min-height:74px;margin:18px 0;color:var(--theme-color);display:flex;align-items:center;justify-content:center;padding:10px}
.history-list{margin:0;padding-left:18px;line-height:1.9}
.site-footer{padding:24px 0;color:#51607a}
.footer-flex{grid-template-columns:1fr auto}
.center-card{width:min(520px,92%);margin:7vh auto;padding:28px;border-radius:30px}
.auth-page{display:flex;align-items:flex-start;justify-content:center;min-height:100vh}
.access-box input,.access-box textarea,.access-box select,.access-box label,
.admin-main input,.admin-main textarea,.admin-main select{display:block;width:100%}
label{font-size:14px;color:#49586f;margin:14px 0 8px;font-weight:700}
input,textarea,select{padding:12px 14px;border:1px solid #d7deea;border-radius:14px;font-size:14px;background:#fff}
.alert{padding:12px 14px;border-radius:14px;margin:12px 0}
.alert.error{background:#ffe5e5;color:#9b2020}
.alert.success{background:#dcf7e6;color:#0f6a41}
.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mb-20{margin-bottom:20px}.pad-20{padding:20px}.center{text-align:center}
.empty-box{padding:30px;border-radius:22px}
.marquee-wrap{overflow:hidden;background:linear-gradient(90deg,var(--theme-color),#2a679d);color:#fff;padding:11px 0}
.marquee{white-space:nowrap;display:inline-block;padding-left:100%;animation:marquee 28s linear infinite;font-weight:700}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}
.admin-body{background:#edf3fb}
.admin-shell{display:grid;grid-template-columns:300px 1fr;min-height:100vh}
.admin-sidebar{background:linear-gradient(180deg,#10213d,#17345c);color:#fff;padding:26px 18px;position:sticky;top:0;height:100vh}
.admin-brand h2{font-size:22px;margin:6px 0 20px}
.admin-nav{display:flex;flex-direction:column;gap:8px}
.admin-nav a{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.08)}
.admin-nav a:hover{background:rgba(255,255,255,.15)}
.admin-main{padding:20px}
.admin-topbar{padding:16px 20px;border-radius:22px}
.dashboard-grid{grid-template-columns:repeat(4,1fr);margin-top:20px}
.admin-grid-2{grid-template-columns:1fr 1.1fr;align-items:start}
.list-items{display:flex;flex-direction:column;gap:12px}
.list-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px;border:1px solid #e4eaf3;border-radius:16px;background:#fff}
.feature-list{line-height:2}
.batik-mega-mendung{background-image:
radial-gradient(circle at 20% 20%, rgba(15,76,129,.07) 0 18px, transparent 19px),
radial-gradient(circle at 30% 35%, rgba(15,76,129,.06) 0 26px, transparent 27px),
radial-gradient(circle at 45% 25%, rgba(15,76,129,.05) 0 22px, transparent 23px),
linear-gradient(180deg,#eef4fb,#f9fbff)}
.batik-kawung{background-image:
radial-gradient(circle, rgba(15,76,129,.08) 0 8px, transparent 9px),
radial-gradient(circle, rgba(212,160,23,.07) 0 8px, transparent 9px),
linear-gradient(180deg,#f7fbff,#fefefe);
background-position:0 0, 18px 18px, 0 0}
.batik-parang{background-image:
repeating-linear-gradient(135deg, rgba(15,76,129,.06) 0 12px, transparent 12px 30px),
linear-gradient(180deg,#f8fbff,#ffffff)}
.batik-ceplok{background-image:
radial-gradient(circle at center, rgba(212,160,23,.08) 0 6px, transparent 7px),
repeating-radial-gradient(circle at center, rgba(15,76,129,.05) 0 2px, transparent 2px 24px),
linear-gradient(180deg,#f8fbff,#fff)}
.size-small{background-size:90px 90px,120px 120px,140px 140px,auto}
.size-normal{background-size:140px 140px,180px 180px,220px 220px,auto}
.size-large{background-size:220px 220px,300px 300px,360px 360px,auto}
@media (max-width: 980px){
    .header-flex,.hero-grid,.admin-grid-2,.dashboard-grid,.admin-shell{grid-template-columns:1fr}
    .nav{justify-content:flex-start}
    .news-grid{grid-template-columns:1fr 1fr}
    .admin-sidebar{position:relative;height:auto}
}
@media (max-width: 640px){
    .news-grid,.stats-grid{grid-template-columns:1fr}
    .site-header h1{font-size:22px}
    .hero h2{font-size:28px}
    .spin-name{font-size:28px}
    .list-item{flex-direction:column;align-items:flex-start}
}