:root{--navy:#142c50;--blue:#2463eb;--bg:#f4f7fb;--ink:#1d2a3b;--muted:#758197}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);font-size:14px}.app-shell{min-height:100vh}.sidebar{width:258px;background:linear-gradient(180deg,#132949,#1a365e);color:#e6edf8;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:22px 14px;z-index:100;overflow:auto}.side-brand{display:flex;align-items:center;gap:12px;padding:2px 12px 27px}.side-brand b{font-size:19px;letter-spacing:.5px}.side-brand small{display:block;color:#9eb1cc;font-size:11px;margin-top:2px}.brand-mini,.brand-mark{display:grid;place-items:center;background:#fff;color:#1d56b5;font-weight:900;border-radius:13px;width:42px;height:42px;font-size:23px}.side-label{font-size:10px;letter-spacing:1.4px;color:#8fa5c5;font-weight:800;padding:12px 13px}.side-link{display:flex;align-items:center;gap:13px;text-decoration:none;color:#c8d4e6;padding:11px 13px;border-radius:10px;margin:2px 0;transition:.2s}.side-link:hover,.side-link.active{background:#2d4b76;color:#fff}.side-link.active{box-shadow:inset 3px 0 #7fb2ff}.side-icon{width:20px;text-align:center;font-size:17px}.sidebar-bottom{margin-top:auto;padding:22px 12px 3px;color:#9eb1cc;display:grid;gap:5px;font-size:11px}.main-area{margin-left:258px;min-height:100vh;display:flex;flex-direction:column}.topbar{min-height:78px;background:#fff;border-bottom:1px solid #e7edf4;display:flex;align-items:center;gap:14px;padding:15px 30px;position:sticky;top:0;z-index:50}.user-chip{display:flex;align-items:center;gap:9px}.user-chip b,.user-chip small{display:block}.user-chip b{font-size:12px}.user-chip small{font-size:11px;color:var(--muted)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e7efff;color:#2459b4;font-weight:800}.content-area{padding:27px 30px;flex:1}.page-footer{padding:17px 30px;color:#8793a5;font-size:11px;border-top:1px solid #e5ebf3;background:#fff}.welcome-panel{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(110deg,#1e4e91,#3979d4);border-radius:18px;padding:28px 32px;color:white;box-shadow:0 10px 25px #224d881c}.welcome-panel h2{font-weight:800;margin:8px 0}.welcome-panel p{margin:0;color:#dbe8ff}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:800;color:#c5dcff}.welcome-symbol{font-size:70px;opacity:.22}.stat-card,.panel{background:white;border:1px solid #e8edf4;border-radius:15px;padding:22px;box-shadow:0 3px 12px #193b6b08}.stat-card{height:100%}.stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px}.stat-number{font-size:29px;font-weight:800;margin:2px 0 5px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-heading h5{margin:0;font-weight:750}.panel-heading small{color:var(--muted)}.workflow-list{display:grid;gap:19px}.workflow-item{display:flex;gap:13px;align-items:center}.workflow-item>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#edf3ff;color:#285bb3;font-weight:800}.workflow-item b,.workflow-item small{display:block}.workflow-item small{color:var(--muted);margin-top:3px}.info-line{display:flex;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid #edf0f5}.info-line:last-child{border-bottom:0}.info-line span{color:var(--muted)}.table{font-size:13px}.table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:#66758b;background:#f7f9fc;white-space:nowrap}.form-control,.form-select{font-size:13px;padding:.62rem .75rem;border-color:#dce4ee}.btn{font-size:13px;border-radius:8px}.btn-primary{background:#245fc6;border-color:#245fc6}.login-bg{min-height:100vh;background:radial-gradient(circle at top right,#d9e8ff,transparent 35%),linear-gradient(135deg,#edf3fc,#f8faff);display:grid;place-items:center;padding:24px}.login-card{width:min(100%,410px);padding:36px;background:white;border-radius:20px;box-shadow:0 18px 55px #193b6b18}.brand-mark{margin:0 auto 15px;width:54px;height:54px;border-radius:16px;background:#eaf1ff}.login-card .form-control{padding:12px}.login-card h2{letter-spacing:1px}@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.topbar{padding:14px 17px}.content-area{padding:20px 16px}.welcome-panel{padding:22px}.welcome-symbol{display:none}.user-chip>div:nth-child(2){display:none}}@media print{.sidebar,.topbar,.page-footer,.btn,form,.welcome-panel{display:none!important}.main-area{margin:0}.content-area{padding:0}.panel{border:0;box-shadow:none}.table{font-size:10px}}
/* Cetak Raport PTS */
.report-wrap{background:#eef1f5;padding:18px;border-radius:12px}.report-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.report-paper{background:#fff;color:#111;max-width:980px;margin:0 auto;padding:36px 42px;font-family:Georgia,'Times New Roman',serif;font-size:12px;box-shadow:0 2px 12px #0001}.report-paper h2{text-align:center;font-family:Arial,sans-serif;font-size:23px;font-weight:700;margin:0 0 32px}.report-meta{display:grid;grid-template-columns:1fr 1fr;gap:36px;border-bottom:2px solid #111;padding-bottom:7px;margin-bottom:20px}.report-meta>div{display:grid;grid-template-columns:120px 12px 1fr;gap:4px 3px}.report-meta span{grid-column:1}.report-meta b{grid-column:3;font-weight:600}.report-section-title{font-weight:bold;margin:12px 0 7px}.report-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px}.report-table th,.report-table td{border:1px solid #222;padding:5px 6px}.report-table thead th{background:#ddd;text-align:center;vertical-align:middle}.report-table th:nth-child(2){width:46%}.report-table .center{text-align:center}.report-bottom{display:grid;grid-template-columns:42% 58%;margin-top:14px}.attendance{border-collapse:collapse;width:100%;font-size:11px}.attendance td{border:1px solid #222;padding:2px 5px}.note-box{border:1px solid #222;min-height:70px;padding:10px;display:flex;align-items:center}.report-date{text-align:center;margin:28px 0 10px}.signatures{display:grid;grid-template-columns:1fr 1fr;text-align:center;gap:30px;min-height:120px}.principal-sign{width:50%;margin-left:50%;text-align:center;margin-top:8px}.report-footer{text-align:center;font-size:9px;color:#555;margin-top:12px}
@media print{@page{size:A4 portrait;margin:10mm}body{background:#fff!important}.sidebar,.topbar,.content-area>.alert,.no-print{display:none!important}.app-shell,.main-area,.content-area{display:block!important;margin:0!important;padding:0!important;width:100%!important;max-width:none!important}.report-wrap{background:#fff!important;padding:0!important;border:0!important}.report-paper{max-width:none!important;margin:0!important;padding:0!important;box-shadow:none!important;font-size:10px!important}.report-paper h2{font-size:19px;margin-bottom:24px}.report-table{font-size:9px}.report-table th,.report-table td{padding:4px}.report-bottom{margin-top:10px}.report-date{margin:20px 0 6px}.signatures{min-height:100px}.principal-sign{margin-top:0}}


/* PATCH A4 RAPORT PTS 2026-10-29: aturan eksplisit dan prioritas tinggi */
.report-wrap { background:#eef1f5; padding:18px; }
.report-paper { box-sizing:border-box; width:100%; max-width:1100px; margin:0 auto; background:#fff; color:#111; }
.report-paper .report-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.report-paper .report-table th, .report-paper .report-table td { border:1px solid #222; }
@page { size:A4 portrait; margin:10mm; }
@media print {
  html, body { width:190mm !important; margin:0 !important; padding:0 !important; background:#fff !important; }
  body { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .sidebar, .topbar, .page-footer, .content-area > .alert, .no-print, .report-toolbar { display:none !important; }
  .app-shell, .main-area, .content-area { display:block !important; width:100% !important; max-width:100% !important; min-height:0 !important; margin:0 !important; padding:0 !important; }
  .report-wrap { display:block !important; width:100% !important; max-width:100% !important; margin:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important; background:#fff !important; }
  .report-paper { display:block !important; width:100% !important; max-width:100% !important; min-height:0 !important; margin:0 !important; padding:0 !important; box-shadow:none !important; border:0 !important; font-family:'Times New Roman', Times, serif !important; font-size:10.5px !important; }
  .report-paper h2 { text-align:center !important; font-size:19px !important; margin:0 0 23px !important; page-break-after:avoid; }
  .report-meta { display:grid !important; grid-template-columns:1fr 1fr !important; gap:20px !important; margin-bottom:17px !important; padding-bottom:6px !important; }
  .report-meta > div { display:grid !important; grid-template-columns:95px 10px minmax(0,1fr) !important; gap:4px 2px !important; }
  .report-table { font-size:9.5px !important; page-break-inside:auto !important; }
  .report-table thead { display:table-header-group !important; }
  .report-table tr { page-break-inside:avoid !important; }
  .report-table th, .report-table td { padding:4px 5px !important; line-height:1.12 !important; }
  .report-summary { width:50% !important; margin:12px 0 22px !important; gap:0 !important; page-break-inside:avoid !important; }
  .report-summary > div { width:100% !important; min-width:0 !important; padding:5px 7px !important; font-size:10px !important; }
  .report-bottom { display:grid !important; grid-template-columns:42% 58% !important; margin-top:10px !important; page-break-inside:avoid !important; }
  .attendance { font-size:9.5px !important; }
  .attendance td { padding:2px 4px !important; }
  .note-box { min-height:58px !important; padding:8px !important; font-size:10px !important; }
  .report-date { margin:19px 0 6px !important; font-size:10px !important; }
  .signatures { min-height:95px !important; font-size:10px !important; gap:20px !important; page-break-inside:avoid !important; }
  .principal-sign { font-size:10px !important; margin-top:0 !important; page-break-inside:avoid !important; }
  .report-footer { font-size:8px !important; margin-top:10px !important; }
}


/* FINAL RAPORT PTS LAYOUT — disesuaikan dengan contoh resmi, A4 portrait */
.report-paper{font-family:"Times New Roman",Georgia,serif!important;color:#111!important;background:#fff!important;width:100%;max-width:1100px;margin:0 auto;padding:36px 42px;box-sizing:border-box}
.report-paper h2{font-family:Arial,Helvetica,sans-serif!important;text-align:center;font-size:23px;font-weight:700;margin:0 0 32px;line-height:1.2}
.report-meta{display:grid;grid-template-columns:1fr 1fr;gap:36px;border-bottom:2px solid #111;padding-bottom:7px;margin-bottom:20px}
.report-meta>div{display:grid;grid-template-columns:120px 12px minmax(0,1fr);align-items:start;gap:4px 3px}
.report-meta span{grid-column:1;position:relative}
.report-meta span::after{content:":";position:absolute;right:-10px}
.report-meta b{grid-column:3;font-weight:700}
.report-section-title{font-weight:700;margin:12px 0 7px}
.report-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px;color:#111}
.report-table th,.report-table td{border:1px solid #222;padding:5px 6px;vertical-align:middle}
.report-table thead th{background:#ddd!important;text-align:center;vertical-align:middle;font-weight:700}
.report-table th:first-child{width:30px}
.report-table th:nth-child(2){width:46%}
.report-table .center{text-align:center}
.report-summary{width:50%;margin:12px 0 22px;display:block;border:1px solid #222;border-bottom:0;page-break-inside:avoid}
.report-summary>div{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:29px;padding:5px 7px;border-bottom:1px solid #222;font-size:11px}
.report-summary>div strong{font-weight:700;text-align:right;min-width:70px}
.report-bottom{display:grid;grid-template-columns:42% 58%;margin-top:14px;gap:0}
.attendance{border-collapse:collapse;width:100%;font-size:11px}
.attendance td{border:1px solid #222;padding:2px 5px}
.note-box{border:1px solid #222;min-height:70px;padding:10px;display:flex;align-items:center}
.report-date{text-align:center;margin:28px 0 10px}
.signatures{display:grid;grid-template-columns:1fr 1fr;text-align:center;gap:30px;min-height:120px}
.principal-sign{width:50%;margin-left:50%;text-align:center;margin-top:8px}
.report-footer{text-align:center;font-size:9px;color:#555;margin-top:12px}
@page{size:A4 portrait;margin:10mm}
@media print{
  html,body{width:190mm!important;min-width:0!important;margin:0!important;padding:0!important;background:#fff!important;color:#111!important}
  body{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;font-family:"Times New Roman",Georgia,serif!important}
  .sidebar,.topbar,.page-footer,.content-area>.alert,.no-print,.report-toolbar{display:none!important}
  .app-shell,.main-area,.content-area{display:block!important;width:100%!important;max-width:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important}
  .report-wrap{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
  .report-paper{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;font-size:10px!important;line-height:1.18!important;overflow:visible!important}
  .report-paper h2{font-size:19px!important;line-height:1.15!important;margin:0 0 21px!important;page-break-after:avoid!important}
  .report-meta{grid-template-columns:1fr 1fr!important;gap:22px!important;margin-bottom:15px!important;padding-bottom:6px!important}
  .report-meta>div{grid-template-columns:82px 10px minmax(0,1fr)!important;gap:4px 2px!important;font-size:10px!important;line-height:1.15!important}
  .report-meta span::after{right:-8px!important}
  .report-section-title{font-size:10px!important;margin:10px 0 6px!important}
  .report-table{font-size:9px!important;page-break-inside:auto!important}
  .report-table thead{display:table-header-group!important}
  .report-table tr{page-break-inside:avoid!important}
  .report-table th,.report-table td{padding:4px 5px!important;line-height:1.1!important}
  .report-summary{width:50%!important;margin:11px 0 19px!important;page-break-inside:avoid!important}
  .report-summary>div{min-height:25px!important;padding:4px 6px!important;font-size:9.5px!important;line-height:1.1!important}
  .report-bottom{grid-template-columns:42% 58%!important;margin-top:8px!important;page-break-inside:avoid!important}
  .attendance{font-size:9px!important}
  .attendance td{padding:2px 4px!important}
  .note-box{min-height:54px!important;padding:7px!important;font-size:9.5px!important;line-height:1.2!important}
  .report-date{margin:17px 0 5px!important;font-size:9.5px!important;line-height:1.2!important}
  .signatures{min-height:82px!important;gap:20px!important;font-size:9.5px!important;page-break-inside:avoid!important}
  .principal-sign{margin-top:0!important;font-size:9.5px!important;line-height:1.2!important;page-break-inside:avoid!important}
  .report-footer{font-size:8px!important;margin-top:8px!important}
}
