:root {
  --brand: #0d6efd;
  --sidebar-w: 250px;
}
body { background:#f4f6f9; font-family: 'Segoe UI', Arial, sans-serif; }
.app-shell { display:flex; min-height: calc(100vh - 56px); }
.app-sidebar {
  width: var(--sidebar-w); background:#1e2532; color:#cfd6e4; flex-shrink:0;
  overflow-y:auto; position:sticky; top:56px; height: calc(100vh - 56px);
}
.menu-section { font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:#7c879c; padding:14px 12px 6px; }
.menu-link { display:flex; align-items:center; gap:8px; color:#cfd6e4; padding:9px 12px; border-radius:6px; text-decoration:none; font-size:.92rem; }
.menu-link:hover { background:#2a3346; color:#fff; }
.menu-link.active { background: var(--brand); color:#fff; }
.app-content { flex:1; padding: 20px 24px 60px; min-width:0; }
.card { border:none; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.stat-card { border-radius:12px; color:#fff; padding:18px 20px; }
.stat-card h3 { margin:0; font-weight:700; }
.stat-card .label { opacity:.85; font-size:.82rem; }
.bg-grad-blue { background: linear-gradient(135deg,#0d6efd,#0a58ca); }
.bg-grad-green { background: linear-gradient(135deg,#198754,#146c43); }
.bg-grad-orange { background: linear-gradient(135deg,#fd7e14,#d96b0c); }
.bg-grad-red { background: linear-gradient(135deg,#dc3545,#b02a37); }
table.table-sm td, table.table-sm th { vertical-align: middle; }
.doc-sheet { background:#fff; max-width:900px; margin:0 auto; padding:40px 50px; box-shadow:0 1px 6px rgba(0,0,0,.1); }
.doc-sheet table { width:100%; }
.kop-surat { text-align:center; border-bottom:3px solid #000; padding-bottom:8px; margin-bottom:18px; }
.kop-surat h4, .kop-surat h5 { margin:0; }
@media print {
  .no-print { display:none !important; }
  .app-shell { display:block; }
  .app-content { padding:0; }
  body { background:#fff; }
  .doc-sheet { box-shadow:none; padding:0; max-width:100%; }
}
@media (max-width: 992px) {
  .app-sidebar { position:fixed; left:-260px; top:56px; z-index:1050; transition:left .2s; box-shadow:2px 0 8px rgba(0,0,0,.2); }
  .app-sidebar.show { left:0; }
}
