.pengunjung-page .panel{background:#fff;border:1px solid #e5ebe9;border-radius:16px;box-shadow:0 6px 24px rgba(23,79,64,.045);padding:18px}.pengunjung-page .definition-card{display:flex;gap:14px;padding:15px 16px;border:1px solid #dcebe6;border-radius:13px;background:#f8fcfb}.definition-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#e4f4ef;color:#08785e;flex:0 0 42px}.definition-title{font-weight:800;color:#174f40;font-size:14px;margin-bottom:4px}.definition-text{font-size:11px;line-height:1.6;color:#526a61}.definition-note{margin-top:7px;font-size:10px;color:#71817b}.sync-status-card{border:1px solid #e4ebe8;border-radius:14px;background:#fff;padding:18px;box-shadow:0 4px 18px rgba(23,79,64,.05)}.sync-title-row{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #edf1ef}.sync-title{color:#174f40;font-size:14px;font-weight:800;margin-bottom:3px}.sync-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sync-grid>div{min-width:0;padding:11px 12px;border:1px solid #edf1ef;border-radius:10px;background:#fbfcfc}.sync-grid span:not(.sync-badge){display:block;color:#71808a;font-size:10px;font-weight:700;margin-bottom:4px}.sync-grid strong{display:block;color:#174f40;font-size:13px;line-height:1.35;word-break:break-word}.sync-foot{margin-top:12px;padding-top:10px;border-top:1px dashed #e1e8e5;color:#71817b;font-size:10px}.sync-progress-box{display:none;margin-top:12px;padding:13px;border:1px solid #e2ebe7;border-radius:12px;background:#f9fcfb}.sync-progress-box.is-visible{display:block}.progress-layout{display:flex;gap:16px;align-items:center}.progress-circle-wrap{flex:0 0 auto}.progress-circle{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;background:conic-gradient(#007b5f var(--progress),#e4ece8 0)}.progress-circle::before{content:'';position:absolute;inset:7px;border-radius:50%;background:#fff}.progress-circle>div{position:relative;z-index:1;text-align:center}.progress-circle strong{display:block;color:#174f40;font-size:18px;line-height:1}.progress-circle span{display:block;margin-top:4px;color:#80918a;font-size:7px;font-weight:800;letter-spacing:.8px}.progress-detail{flex:1;min-width:0}.sync-stage{margin:7px 0 8px;color:#526a61;font-size:11px}.progress-track{width:100%;height:8px;overflow:hidden;border-radius:999px;background:#e4ece8}.progress-bar-inner{height:100%;width:0;border-radius:inherit;background:#007b5f;transition:width .25s ease}.sync-counts{margin-top:7px;color:#71817b;font-size:10px}.sync-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:9px;font-weight:800}.sync-badge.success{background:#e7f7ef;color:#08785e}.sync-badge.running,.sync-badge.queued{background:#fff4d8;color:#9a6b00}.sync-badge.failed{background:#fde8e8;color:#b42318}.sync-badge.never{background:#eef1f0;color:#66746e}.report-filter{padding:12px;margin-top:2px;border:1px solid #edf1ef;border-radius:10px;background:#fbfcfc}.report-filter .form-label{margin-bottom:5px;color:#60716a;font-size:10px;font-weight:700}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.mini-kpi{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #e6ecea;border-radius:13px;background:#fff}.kpi-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 36px}.kpi-icon.green{background:#e4f4ef;color:#08785e}.kpi-icon.mint{background:#e8f7f4;color:#168b83}.kpi-icon.gold{background:#fff4d8;color:#a67800}.kpi-icon.purple{background:#f0e9ff;color:#7651c9}.mini-kpi span{display:block;color:#66746e;font-size:9px;font-weight:700}.mini-kpi strong{display:block;color:#173e34;font-size:19px;line-height:1.15}.mini-kpi small{display:block;color:#8a9691;font-size:8px;margin-top:2px}.chart-grid{display:grid;grid-template-columns:2fr 1fr;gap:10px}.chart-card{border:1px solid #e6ecea;border-radius:14px;background:#fff;overflow:hidden}.chart-head{padding:14px 15px;border-bottom:1px solid #edf1ef;display:flex;justify-content:space-between;gap:10px}.chart-head h5,.table-title h5{font-size:13px;font-weight:800;color:#174f40;margin:0}.chart-head p,.table-title p{font-size:9px;color:#89958f;margin:3px 0 0}.chart-badge,.count-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#eef7f3;color:#08785e;font-size:9px;font-weight:800;height:max-content}.chart-wrap{height:300px;padding:12px 15px}.table-title{display:flex;justify-content:space-between;align-items:center;margin:12px 0 9px}.report-wrap{width:100%;overflow-x:auto;border:1px solid #e4ebe8;border-radius:10px}.report-table{width:100%;min-width:1320px;border-collapse:collapse;font-size:10px}.report-table th,.report-table td{border-bottom:1px solid #e8eeec;padding:8px 7px;white-space:nowrap}.report-table thead th{background:#f3f8f6;color:#4c625a;font-size:9px;font-weight:800;text-align:center}.report-table th.n,.report-table td.n{width:44px;text-align:center}.report-table th.poli,.report-table td.poli{text-align:left;min-width:170px}.report-table .num{text-align:right}.report-table .total-col{background:#eaf6f2;font-weight:800}.report-table tbody tr:hover{background:#fbfdfc}.report-table tr.total td{background:#eaf6f2;color:#174f40;font-weight:800}.report-table .empty{text-align:center;padding:35px;color:#83908b}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:1fr}.sync-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.page-heading{align-items:flex-start!important;gap:10px;flex-direction:column}.page-actions{flex-wrap:wrap}.kpi-grid{grid-template-columns:1fr}.sync-grid{grid-template-columns:1fr}.progress-layout{align-items:flex-start}.progress-circle{width:78px;height:78px}.definition-card{align-items:flex-start}.chart-wrap{height:260px}}@media print{.pengunjung-page .page-actions,.pengunjung-page .sync-progress-box,.pengunjung-page .report-filter{display:none!important}.pengunjung-page .panel{box-shadow:none;border:0;padding:0}.pengunjung-page .definition-card{break-inside:avoid}.report-wrap{overflow:visible}.report-table{min-width:0;font-size:8px}}
/* Format tabel sesuai baseline laporan UGD/POLI: setiap bulan = Baru | Lama | TOTAL. */
.pengunjung-page .visitor-month-table{min-width:1900px;border-collapse:collapse}.pengunjung-page .visitor-month-table th,.pengunjung-page .visitor-month-table td{border:1px solid #dce6e2}.pengunjung-page .visitor-month-table th{padding:7px 8px;white-space:nowrap}.pengunjung-page .visitor-month-table th[rowspan]{vertical-align:middle}.pengunjung-page .visitor-month-table th.sub{font-size:8px;background:#f3f6f5}.pengunjung-page .visitor-month-table th.total-head{background:#08785e;color:#fff;font-weight:800;border-color:#08785e}.pengunjung-page .visitor-month-table td{padding:7px 8px}.pengunjung-page .visitor-month-table .poli{min-width:180px;text-align:left}.pengunjung-page .visitor-month-table .month-total{background:#e2f4ef;color:#075c4a;font-weight:800;border-left:2px solid #b9ddd4;border-right:2px solid #b9ddd4}.pengunjung-page .visitor-month-table tr.total td{font-weight:800;background:#e5f2ef}.pengunjung-page .visitor-month-table tr.total td.month-total{background:#b9e2da;color:#064e40;font-weight:900;border-left:2px solid #8bc9bd;border-right:2px solid #8bc9bd}.pengunjung-page .report-wrap{overflow:auto;max-height:650px}
