:root{
  --rs-primary:#2563eb;
  --rs-primary-dark:#1d4ed8;
  --rs-secondary:#64748b;
  --rs-secondary-dark:#475569;
  --rs-bg:#f5f7fb;
  --rs-white:#ffffff;
  --rs-text:#334155;
  --rs-muted:#64748b;
  --rs-border:#e2e8f0;
  --rs-success:#10b981;
  --rs-success-dark:#059669;
  --rs-warning:#f59e0b;
  --rs-warning-dark:#d97706;
  --rs-danger:#ef4444;
  --rs-danger-dark:#dc2626;
  --rs-info:#0ea5e9;
  --rs-info-dark:#0284c7;
  --rs-dark:#0f172a;
  --rs-dark-hover:#1e293b;
  --rs-radius:8px;
  --rs-radius-sm:6px;
  --rs-shadow:0 1px 2px rgba(15,23,42,0.04);
}

/* 01. Global */
html,body{
  height:100%;
}
body{
  background:var(--rs-bg);
  color:var(--rs-text);
  font-family:Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:14px;
  line-height:1.4;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Reduce default margins for headings used in RADSystems */
h1,h2,h3,h4,h5{ margin:0 0 8px 0; color:var(--rs-text); }
h1{ font-size:20px; font-weight:600; color:var(--rs-primary); }
h2{ font-size:18px; font-weight:600; }
h3{ font-size:16px; font-weight:600; }

a{ color:var(--rs-primary); text-decoration:none; }
a:hover{ text-decoration:underline; }

/* Utilities */
.rs-hidden{ display:none !important; }
.rs-muted{ color:var(--rs-muted); font-size:12px; }
.rs-small{ font-size:12px; }
.rs-compact { padding:6px; }

/* 02. Navbar / Header */
.main-header, .navbar, header.main-header{
  background:var(--rs-white);
  border-bottom:1px solid var(--rs-border);
  min-height:58px;
  height:auto;
  padding:0 16px;
  box-shadow:none;
}
.main-header .navbar, .navbar{
  min-height:58px;
  display:flex; align-items:center;
}
.navbar-brand img{ max-height:40px; width:auto; display:block; }

.navbar .navbar-nav{ align-items:center; }
.navbar-nav > li > a{ font-size:13px; padding:8px 12px; color:var(--rs-text); }
.navbar-nav > li > a:hover{ background:#f1f5f9; border-radius:6px; color:var(--rs-primary); }
.navbar-nav > li > a.active{ background:rgba(37,99,235,0.10); color:var(--rs-primary) !important; }

/* Compact topbar utilities */
.main-header .navbar .nav-item{ margin:0 6px; }
.main-header .navbar .user-panel{ padding:6px 8px; }

/* 03. Layout / Content wrapper */
.content-wrapper, .content, .page-content, .wrapper{
  padding-top:16px; padding-bottom:16px; background:transparent;
}
.container, .container-fluid{ padding-left:16px; padding-right:16px; }

/* Keep page header compact */
.page-header, .content-header{ padding:8px 0 12px 0; margin-bottom:8px; }
.page-title{ font-size:20px; font-weight:600; color:var(--rs-primary); margin-bottom:12px; }
.breadcrumb{ font-size:12px; padding:4px 0; margin-bottom:8px; background:transparent; }

/* 04. Cards / Boxes */
.card, .box, .panel, .rs-card{
  background:var(--rs-white);
  border:1px solid var(--rs-border);
  border-radius:var(--rs-radius);
  box-shadow:var(--rs-shadow);
  padding:12px 14px;
  margin-bottom:16px;
}
.card .card-header, .box .box-header{ padding:8px 0; margin-bottom:8px; border-bottom:0; }
.card-title{ font-size:14px; font-weight:600; margin:0; color:var(--rs-text); }

/* 05. Tables */
.table{ width:100%; margin-bottom:0; font-size:13px; border-collapse:collapse; box-sizing:border-box; }
.table thead th{
  background:#f8fafc; color:#475569; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.02em;
  border-bottom:1px solid var(--rs-border); padding:9px 10px; vertical-align:middle; box-sizing:border-box;
}
.table th{ white-space:nowrap; }
.table tbody td{ color:var(--rs-text); padding:8px 10px; vertical-align:middle; border-bottom:1px solid var(--rs-border); box-sizing:border-box; }
.table tbody tr:nth-child(even){ background-color:#fbfcfd; }
.table tbody tr:hover{ background-color:#eff6ff; }
.table .text-muted{ color:var(--rs-muted); }

/* Compact rows */
.table-sm tbody td, .table-sm thead th{ padding:7px 8px; font-size:13px; }

/* Checkbox alignment */
.table td .form-check, .table td input[type="checkbox"]{ vertical-align:middle; transform:scale(0.95); width:16px; height:16px; }

/* Action buttons inside table (dikelola khusus di section 19) */
.btn-icon{ width:32px; height:32px; padding:0; display:inline-flex; align-items:center; justify-content:center; border-radius:6px; }

/* ========================================
   06. PERBAIKAN UTAMA: BUTTONS (GLOBAL)
   ======================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-weight: 500;
  font-size: 13px;
  padding: 7px 14px;
  border-radius: var(--rs-radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.15s ease-in-out;
  text-decoration: none !important;
  line-height: 1.25;
}

/* Pastikan teks & ikon di dalam tombol mewarisi warna parent-nya */
.btn i, .btn span, .btn svg {
  color: inherit !important;
}

/* --- Solid Variant --- */
.btn-primary {
  background-color: var(--rs-primary) !important;
  border-color: var(--rs-primary) !important;
  color: #ffffff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  background-color: var(--rs-primary-dark) !important;
  border-color: var(--rs-primary-dark) !important;
  color: #ffffff !important;
}

.btn-secondary {
  background-color: var(--rs-secondary) !important;
  border-color: var(--rs-secondary) !important;
  color: #ffffff !important;
}
.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active {
  background-color: var(--rs-secondary-dark) !important;
  border-color: var(--rs-secondary-dark) !important;
  color: #ffffff !important;
}

.btn-success {
  background-color: var(--rs-success) !important;
  border-color: var(--rs-success) !important;
  color: #ffffff !important;
}
.btn-success:hover, .btn-success:focus, .btn-success:active {
  background-color: var(--rs-success-dark) !important;
  border-color: var(--rs-success-dark) !important;
  color: #ffffff !important;
}

.btn-danger {
  background-color: var(--rs-danger) !important;
  border-color: var(--rs-danger) !important;
  color: #ffffff !important;
}
.btn-danger:hover, .btn-danger:focus, .btn-danger:active {
  background-color: var(--rs-danger-dark) !important;
  border-color: var(--rs-danger-dark) !important;
  color: #ffffff !important;
}

.btn-warning {
  background-color: var(--rs-warning) !important;
  border-color: var(--rs-warning) !important;
  color: #1e293b !important; /* Warna teks gelap agar terbaca jelas di background kuning */
}
.btn-warning:hover, .btn-warning:focus, .btn-warning:active {
  background-color: var(--rs-warning-dark) !important;
  border-color: var(--rs-warning-dark) !important;
  color: #ffffff !important;
}

.btn-info {
  background-color: var(--rs-info) !important;
  border-color: var(--rs-info) !important;
  color: #ffffff !important;
}
.btn-info:hover, .btn-info:focus, .btn-info:active {
  background-color: var(--rs-info-dark) !important;
  border-color: var(--rs-info-dark) !important;
  color: #ffffff !important;
}

.btn-light {
  background-color: #f8fafc !important;
  border-color: var(--rs-border) !important;
  color: var(--rs-text) !important;
}
.btn-light:hover, .btn-light:focus, .btn-light:active {
  background-color: #e2e8f0 !important;
  border-color: #cbd5e1 !important;
  color: var(--rs-dark) !important;
}

.btn-dark {
  background-color: var(--rs-dark) !important;
  border-color: var(--rs-dark) !important;
  color: #ffffff !important;
}
.btn-dark:hover, .btn-dark:focus, .btn-dark:active {
  background-color: var(--rs-dark-hover) !important;
  border-color: var(--rs-dark-hover) !important;
  color: #ffffff !important;
}

/* --- Outline Variant --- */
.btn-outline, .btn-outline-secondary {
  background-color: transparent !important;
  color: var(--rs-secondary) !important;
  border: 1px solid var(--rs-border) !important;
}
.btn-outline:hover, .btn-outline-secondary:hover {
  background-color: #f1f5f9 !important;
  color: var(--rs-dark) !important;
}

.btn-outline-primary {
  background-color: transparent !important;
  color: var(--rs-primary) !important;
  border: 1px solid var(--rs-primary) !important;
}
.btn-outline-primary:hover {
  background-color: var(--rs-primary) !important;
  color: #ffffff !important;
}

.btn-outline-success {
  background-color: transparent !important;
  color: var(--rs-success) !important;
  border: 1px solid var(--rs-success) !important;
}
.btn-outline-success:hover {
  background-color: var(--rs-success) !important;
  color: #ffffff !important;
}

.btn-outline-danger {
  background-color: transparent !important;
  color: var(--rs-danger) !important;
  border: 1px solid var(--rs-danger) !important;
}
.btn-outline-danger:hover {
  background-color: var(--rs-danger) !important;
  color: #ffffff !important;
}

/* Size Variants */
.btn-lg { padding: 9px 18px; font-size: 15px; border-radius: var(--rs-radius); }
.btn-sm { padding: 4px 8px; font-size: 12px; border-radius: 4px; }
.btn-primary.cta { border-radius: var(--rs-radius-sm); padding: 7px 12px; font-size: 13px; }

/* 07. Forms / Inputs / Search */
input.form-control, textarea.form-control, select.form-control{
  min-height:36px; height:36px; padding:7px 10px; font-size:13px; border:1px solid #dbe2ea; border-radius:6px; color:var(--rs-text);
  background:#fff;
}
textarea.form-control{ min-height:90px; padding:10px; }
label{ font-size:13px; font-weight:500; color:#475569; margin-bottom:5px; display:block; }
.form-group{ margin-bottom:12px; }

/* Compact search input group */
.input-group .form-control{ height:38px; }
.input-group .btn{ height:38px; padding:6px 10px; }

/* 08. Pagination */
.pagination{ margin:12px 0 0; display:flex; gap:6px; align-items:center; }
.pagination > li > a, .pagination > li > span{
  min-width:30px; height:30px; padding:5px 9px; display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; border:1px solid var(--rs-border); border-radius:5px; color:#475569; background:#fff;
}
.pagination > .active > a, .pagination > .active > span{ background:var(--rs-primary); border-color:var(--rs-primary); color:#fff; }
.pagination .page-info{ font-size:12px; color:var(--rs-muted); margin-right:8px; }

/* 09. Badges / Status */
.badge{ font-size:11px; font-weight:600; padding:4px 7px; border-radius:5px; display:inline-block; }
.badge-success{ background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; }
.badge-warning{ background:#fffbe2; color:#b45309; border:1px solid #fde68a; }
.badge-danger{ background:#fff1f2; color:#b91c1c; border:1px solid #fecaca; }
.badge-info{ background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }

/* 10. Dropdowns */
.dropdown-menu{ border:1px solid var(--rs-border); border-radius:7px; box-shadow:0 8px 24px rgba(15,23,42,0.10); padding:6px; background:#fff; }
.dropdown-menu li a{ padding:7px 10px; font-size:13px; border-radius:6px; color:var(--rs-text); }
.dropdown-menu li a:hover{ background:rgba(37,99,235,0.06); color:var(--rs-primary); }

/* 11. Modal */
.modal-content{ border-radius:8px; border:1px solid var(--rs-border); box-shadow:0 10px 30px rgba(2,6,23,0.06); }
.modal-header{ padding:10px 16px; border-bottom:1px solid var(--rs-border); min-height:48px; }
.modal-title{ font-size:16px; font-weight:600; }
.modal-body{ padding:16px; }
.modal-footer{ padding:12px 16px; }

/* 12. Alerts / Notifications */
.alert{ padding:9px 12px; border-radius:6px; font-size:13px; margin-bottom:12px; }
.alert-success{ background:#ecfdf5; color:#047857; border:1px solid rgba(16,185,129,0.12); }
.alert-warning{ background:#fffbe2; color:#b45309; border:1px solid rgba(245,158,11,0.12); }
.alert-danger{ background:#fff1f2; color:#b91c1c; border:1px solid rgba(239,68,68,0.12); }

/* 13. Sidebar (if present) */
.main-sidebar, .sidebar{
  width:230px; background:var(--rs-white); border-right:1px solid var(--rs-border);
  padding-top:12px; padding-bottom:12px; box-shadow:none;
}
.sidebar .nav-item{ height:36px; line-height:36px; }
.sidebar .nav-link{ font-size:13px; padding:6px 12px; color:var(--rs-text); border-radius:6px; }
.sidebar .nav-link.active{ background:rgba(37,99,235,0.10); color:var(--rs-primary); }

/* 14. Utilities and responsive */
@media (max-width:991px){
  .navbar-nav > li > a{ padding:8px 10px; }
  .main-sidebar{ width:200px; }
}
@media (max-width:767px){
  .navbar, .main-header{ padding:8px 12px; }
  .page-title{ font-size:18px; }
  .table thead th{ display:none; }
  .table tbody td{ display:block; width:100%; box-sizing:border-box; }
  .table tbody tr{ display:block; margin-bottom:8px; background:var(--rs-white); border-radius:6px; padding:10px; }
}

/* 15. Tiny refinements */
.form-control:focus{ border-color:var(--rs-primary); box-shadow:0 0 0 3px rgba(37,99,235,0.06); }
.btn:focus{ box-shadow:0 0 0 3px rgba(37,99,235,0.15) !important; }
.card + .card{ margin-top:8px; }
.no-wrap{ white-space:nowrap; }

.main-header .navbar a, .navbar .nav-link{ -webkit-touch-callout:none; }

/* 16. TOGGLE JENIS SURAT (Utama/Tembusan) PECAH PER HURUF */
tr.input-row > td:first-child{
  min-width:140px !important;
  white-space:nowrap;
}

[id^="ctrl-jenis_surat-row"]{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:120px;
}

label.form-check.form-switch{
  display:flex !important;
  flex-direction:row !important;
  align-items:center;
  gap:6px;
  margin-bottom:0 !important;
  white-space:nowrap;
  width:auto !important;
  font-size:13px;
  font-weight:400;
  color:var(--rs-text);
  cursor:pointer;
}

label.form-check.form-switch .form-check-input{
  position:static;
  margin:0;
  flex-shrink:0;
  width:2.25rem;
  height:1.25rem;
  cursor:pointer;
}

label.form-check.form-switch .form-check-label{
  white-space:nowrap !important;
  display:inline;
  font-size:13px;
  font-weight:400;
  margin:0 !important;
  color:var(--rs-text);
}

/* Tombol "+ Tambah baris" */
[id^="ctrl-jenis_surat-row"] + a,
[id^="ctrl-jenis_surat-row"] ~ .btn-add-row,
.dynamic-table-row .btn-add-row{
  width:30px;
  height:30px;
  padding:0;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--rs-success) !important;
  border:none;
  color:#fff !important;
  margin-top:4px;
}

/* 17. RESPONSIVE — tabel dinamis & form multi-field */
.dynamic-table-row,
table.input-row,
.table-responsive{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

@media (max-width:767px){
  tr.input-row > td{
    font-size:12.5px;
    padding:8px;
  }
  label.form-check.form-switch{
    font-size:12.5px;
  }
}

/* 18. SWITCH "JENIS SURAT" — Halaman Surat Kirim (list) */
.custom-control.custom-switch.custom-switch-md{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding-left:52px;
}

.custom-switch-md .custom-control-input{
  position:absolute;
  left:0;
  top:0;
  width:44px;
  height:24px;
  margin:0;
  opacity:0;
  cursor:pointer;
  z-index:2;
}

.custom-switch-md .custom-control-label{
  position:relative;
  display:inline-flex;
  align-items:center;
  height:24px;
  line-height:24px;
  margin:0 !important;
  padding:0 !important;
  cursor:pointer;
  user-select:none;
  font-size:13px;
  font-weight:600;
  letter-spacing:.2px;
  min-width:75px;
  text-align:left;
}

/* Track */
.custom-switch-md .custom-control-label::before{
  content:"";
  position:absolute;
  left:-52px;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:24px;
  border-radius:999px;
  background-color:#f59e0b;
  border:none;
  transition:background-color .2s ease, box-shadow .2s ease;
  box-shadow:0 2px 4px rgba(245,158,11,.3);
}

/* Thumb (bulatan putih) */
.custom-switch-md .custom-control-label::after{
  content:"";
  position:absolute;
  left:-49px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  border-radius:50%;
  background:#ffffff;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
  transition:left .2s ease;
}

/* Checked = Utama (hijau), thumb geser ke kanan */
.custom-switch-md .custom-control-input:checked ~ .custom-control-label::before{
  background-color:#10b981;
  box-shadow:0 2px 4px rgba(16,185,129,.3);
}
.custom-switch-md .custom-control-input:checked ~ .custom-control-label::after{
  left:-29px;
}

/* Fokus */
.custom-switch-md .custom-control-input:focus ~ .custom-control-label::before{
  box-shadow:0 0 0 3px rgba(59,130,246,.25);
}

.custom-switch-md .custom-control-input:checked ~ .custom-control-label{
  color:#047857 !important;
}
.custom-switch-md .custom-control-input:not(:checked) ~ .custom-control-label{
  color:#b45309 !important;
}

/* ========================================
   19. PERBAIKAN: TOMBOL AKSI DALAM TABEL (ACTION BUTTONS)
   ======================================== */
.table .btn {
  width: 32px;
  height: 32px;
  padding: 0 !important;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-width: 1px;
  border-style: solid;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}
.table .btn + .btn { margin-left: 4px; }

/* Soft Variant untuk Tombol Aksi Tabel */
.table .btn.btn-info,
.table .btn.btn-primary {
  background: #eff6ff !important;
  border-color: #bfdbfe !important;
  color: #1d4ed8 !important;
}
.table .btn.btn-info:hover,
.table .btn.btn-primary:hover {
  background: #2563eb !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(37,99,235,.28);
}

.table .btn.btn-success {
  background: #ecfdf5 !important;
  border-color: #a7f3d0 !important;
  color: #047857 !important;
}
.table .btn.btn-success:hover {
  background: #10b981 !important;
  border-color: #10b981 !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(16,185,129,.28);
}

.table .btn.btn-danger {
  background: #fef2f2 !important;
  border-color: #fecaca !important;
  color: #b91c1c !important;
}
.table .btn.btn-danger:hover {
  background: #ef4444 !important;
  border-color: #ef4444 !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(239,68,68,.28);
}

.table .btn.btn-warning {
  background: #fffbe2 !important;
  border-color: #fde68a !important;
  color: #b45309 !important;
}
.table .btn.btn-warning:hover {
  background: #f59e0b !important;
  border-color: #f59e0b !important;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(245,158,11,.28);
}

.table .btn:active {
  transform: translateY(0);
  box-shadow: none;
}

/* =========================================
   OVERRIDE TOMBOL (RADSYSTEMS MODERN)
   ========================================= */

/* 1. Reset & Warna Utama Tombol Primary */
.btn-primary, 
a.btn-primary,
button.btn-primary {
    background-color: #2563eb !important;
    border-color: #2563eb !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
}

/* 2. Efek Hover & Focus */
.btn-primary:hover, 
.btn-primary:focus,
.btn-primary:active,
a.btn-primary:hover {
    background-color: #1d4ed8 !important;
    border-color: #1d4ed8 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.25) !important;
}

/* 3. Tombol Ekspedisi / Neutral Style */
a.btn:not([class*="btn-primary"]):not([class*="btn-danger"]):not([class*="btn-success"]) {
    background-color: #f3f4f6 !important;
    border-color: #d1d5db !important;
    color: #374151 !important;
}

a.btn:not([class*="btn-primary"]):not([class*="btn-danger"]):not([class*="btn-success"]):hover {
    background-color: #e5e7eb !important;
    border-color: #9ca3af !important;
    color: #111827 !important;
}

/* 4. Perbaikan Padding & Radius Tombol */
.btn-sm, 
.btn-group-sm > .btn {
    padding: 6px 12px !important;
    font-size: 13px !important;
    border-radius: 6px !important;
}