
:root{--bg:#f4f6fb;--ink:#162033;--muted:#6b7280;--line:#e5e7eb;--primary:#4c1d95;--secondary:#7c3aed;--gold:#f5c542;--card:#fff;--danger:#dc2626;--success:#16a34a;--info:#2563eb}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:286px;background:#160f2f;color:#fff;position:fixed;inset:0 auto 0 0;overflow:auto;box-shadow:8px 0 30px rgba(0,0,0,.13)}.brand{padding:22px 18px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,#2e1065,#581c87)}.brand h1{font-size:18px;line-height:1.25;margin:0 0 8px}.brand p{margin:0;color:#d8b4fe;font-size:12px}.nav{padding:12px}.nav a{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;color:#ede9fe;font-size:14px}.nav a:hover,.nav a.active{background:rgba(255,255,255,.12)}.main{margin-left:286px;width:calc(100% - 286px)}.topbar{height:72px;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.topbar .title{font-size:20px;font-weight:800}.content{padding:26px}.hero{border-radius:28px;overflow:hidden;background:#111;position:relative;color:white;margin-bottom:22px;box-shadow:0 20px 45px rgba(76,29,149,.20)}.hero img{width:100%;height:240px;object-fit:cover;display:block;opacity:.72}.hero .overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,15,47,.88),rgba(76,29,149,.45),rgba(22,15,47,.08));padding:34px;display:flex;flex-direction:column;justify-content:end}.hero h2{font-size:34px;margin:0 0 6px}.hero p{max-width:780px;margin:0;color:#f3e8ff}.grid{display:grid;gap:18px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 12px 28px rgba(15,23,42,.06)}.stat-num{font-size:30px;font-weight:900;color:var(--primary);margin:10px 0}.muted{color:var(--muted)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}.btn,button{border:0;border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer;background:#ede9fe;color:#3b0764;display:inline-flex;align-items:center;gap:8px}.btn.primary,button.primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}.btn.danger{background:#fee2e2;color:#991b1b}.btn.success{background:#dcfce7;color:#166534}.btn.gold{background:#fff7cc;color:#713f12}.btn.gray{background:#f3f4f6;color:#374151}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field label{font-size:13px;font-weight:800;color:#374151;margin-bottom:6px;display:block}input,select,textarea{width:100%;border:1px solid #d1d5db;border-radius:12px;padding:10px 12px;font:inherit;background:#fff}textarea{min-height:84px;resize:vertical}.table-wrap{overflow:auto;border-radius:16px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}th{background:#f8fafc;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.badge.success{background:#dcfce7;color:#166534}.badge.info{background:#dbeafe;color:#1d4ed8}.badge.danger{background:#fee2e2;color:#991b1b}.badge.muted{background:#f3f4f6;color:#374151}.chart{display:flex;align-items:end;gap:12px;height:220px;padding:18px;border-bottom:1px solid var(--line)}.bar{flex:1;min-width:32px;background:linear-gradient(180deg,#7c3aed,#4c1d95);border-radius:12px 12px 0 0;position:relative}.bar span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:12px;font-weight:800;color:#4c1d95}.bar-labels{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px;font-size:11px;color:#6b7280;padding-top:8px}.notice{padding:12px 14px;border-radius:14px;background:#fffbeb;border:1px solid #fde68a;color:#713f12}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#160f2f,#4c1d95)}.login-card{width:min(440px,94vw);background:#fff;border-radius:26px;padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.login-card img{width:100%;height:120px;object-fit:cover;border-radius:18px;margin-bottom:16px}.print-header{display:none}.signature{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:50px;text-align:center}.signature .space{height:76px}.footer-note{font-size:12px;color:#6b7280;margin-top:24px}@media(max-width:1050px){.sidebar{position:relative;width:100%;height:auto}.layout{display:block}.main{margin:0;width:100%}.grid.cards{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}}@media(max-width:650px){.grid.cards{grid-template-columns:1fr}.hero h2{font-size:24px}.topbar{height:auto;gap:10px;align-items:flex-start;flex-direction:column;padding:14px}.content{padding:14px}}
@media print{body{background:#fff}.sidebar,.topbar,.no-print,.toolbar{display:none!important}.main{margin:0;width:100%}.content{padding:0}.card{box-shadow:none;border:0}.print-header{display:block;text-align:center;border-bottom:2px solid #111;margin-bottom:20px;padding-bottom:12px}.report-card{font-size:12px}.hero{display:none}table{font-size:11px}th,td{padding:7px}.signature{break-inside:avoid}.btn{display:none}}
.total-row td{background:#fffbeb;font-weight:700;border-top:2px solid #f5c542}
.total-row .muted{font-weight:600}
.summary-print{margin:14px 0 18px 0}
.summary-print table{width:100%;border-collapse:collapse}
.summary-print th,.summary-print td{text-align:center;border:1px solid #333;padding:8px}
@media print{.summary-print{display:block!important;margin-bottom:14px}.total-row td{font-weight:700!important}}

/* Tambahan Prompt 10 - Statistik Program Pelayanan */
.analytics-grid{grid-template-columns:1.35fr 1fr}
.chart-card h3{margin-top:0;margin-bottom:10px}.chart-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.small-text{font-size:13px;margin-top:2px}.mini-badge{white-space:nowrap;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:999px;padding:7px 11px;font-weight:900;font-size:13px}.budget-list{display:grid;gap:11px;margin-top:12px}.budget-row{display:grid;gap:6px}.budget-info{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.budget-info span{color:#6b7280;font-weight:700}.progress-track{height:13px;background:#eef2ff;border-radius:999px;overflow:hidden;border:1px solid #e0e7ff}.progress-fill{height:100%;border-radius:999px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}.chart-legend{display:flex;flex-direction:column;gap:8px;margin-top:12px;font-size:12px;color:#374151}.chart-legend.horizontal{flex-direction:row;flex-wrap:wrap}.chart-legend span{display:inline-flex;align-items:center;gap:7px}.chart-legend i{width:12px;height:12px;border-radius:4px;display:inline-block}.panca-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.panca-card{background:#f8fafc;border:1px solid #e5e7eb;border-left:6px solid #7c3aed;border-radius:16px;padding:12px;display:grid;gap:4px}.panca-card span{font-weight:900;color:#334155}.panca-card strong{font-size:18px;color:#111827}.panca-card small{color:#6b7280;font-weight:700}.stacked-list{display:grid;gap:12px}.stacked-row{display:grid;grid-template-columns:230px 1fr;gap:14px;align-items:center}.stacked-label{display:grid;gap:3px}.stacked-label span{color:#6b7280;font-size:12px;font-weight:700}.stacked-bar{height:30px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;overflow:hidden;display:flex}.stacked-segment{height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:900;min-width:2px}.stacked-empty{width:100%;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:12px;font-weight:800}@media(max-width:1050px){.analytics-grid{grid-template-columns:1fr}.stacked-row{grid-template-columns:1fr}.panca-summary{grid-template-columns:1fr}}@media print{.analytics-grid{grid-template-columns:1fr}.chart-card{break-inside:avoid}.progress-track,.stacked-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}.chart-legend{font-size:10px}.stacked-row{grid-template-columns:180px 1fr}.budget-info{font-size:11px}}

/* Prompt 10 Fix - Merapikan Dashboard Statistik agar tidak berantakan */
.content{max-width:1440px;margin:0 auto;width:100%}
.card{min-width:0}
.grid{min-width:0}
.analytics-grid{
    grid-template-columns:minmax(0,1fr) minmax(360px,.82fr) !important;
    align-items:stretch;
}
.chart-card{
    overflow:hidden;
    position:relative;
}
.chart-card h3{
    font-size:17px;
    line-height:1.35;
    letter-spacing:-.01em;
}
.chart-title-row{
    margin-bottom:8px;
}
.chart-title-row > div{min-width:0}
.mini-badge{
    flex:0 0 auto;
    box-shadow:0 6px 14px rgba(245,158,11,.16);
}
.budget-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:18px;
    row-gap:12px;
}
.budget-row{
    background:#fafafa;
    border:1px solid #eef2f7;
    border-radius:14px;
    padding:10px 12px;
}
.budget-info{
    align-items:flex-start;
}
.budget-info strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    max-width:58%;
}
.budget-info span{
    white-space:nowrap;
    font-size:12px;
}
.progress-track{
    height:11px;
    background:#f1f5f9;
}
.chart-card canvas{
    display:block;
    width:100% !important;
    max-width:360px;
    height:250px !important;
    margin:0 auto;
}
#pancaOverallDonut{height:260px !important}
.chart-legend{
    max-height:170px;
    overflow:auto;
    padding:8px;
    background:#f8fafc;
    border:1px solid #eef2f7;
    border-radius:14px;
}
.chart-legend.horizontal{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
    max-height:none;
    overflow:visible;
}
.chart-legend span{
    min-width:0;
    line-height:1.25;
}
.chart-legend span b{font-weight:900;color:#111827}
.panca-summary{
    grid-template-columns:repeat(5,minmax(0,1fr));
}
.panca-card{
    min-height:94px;
    align-content:center;
    box-shadow:0 8px 18px rgba(15,23,42,.035);
}
.panca-card span,
.panca-card strong,
.panca-card small{
    overflow-wrap:anywhere;
}
.stacked-list{
    gap:10px;
    margin-top:8px;
}
.stacked-row{
    grid-template-columns:260px minmax(0,1fr);
    padding:9px 10px;
    border:1px solid #eef2f7;
    border-radius:14px;
    background:#fbfdff;
}
.stacked-label strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.stacked-bar{
    height:32px;
    min-width:0;
}
.stacked-segment{
    text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.table-wrap{max-width:100%}
@media(max-width:1280px){
    .analytics-grid{grid-template-columns:1fr !important}
    .budget-list{grid-template-columns:repeat(2,minmax(0,1fr))}
    .panca-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:860px){
    .budget-list{grid-template-columns:1fr}
    .panca-summary{grid-template-columns:1fr}
    .stacked-row{grid-template-columns:1fr;gap:8px}
    .chart-title-row{display:block}
    .mini-badge{display:inline-flex;margin-top:8px}
    .chart-card canvas{max-width:300px;height:230px !important}
}
@media print{
    .content{max-width:none}
    .analytics-grid{grid-template-columns:1fr !important}
    .budget-list{grid-template-columns:repeat(2,minmax(0,1fr))}
    .chart-legend{max-height:none;overflow:visible}
    .panca-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
    .stacked-row{grid-template-columns:210px minmax(0,1fr);break-inside:avoid}
}
