* { box-sizing: border-box; margin: 0; padding: 0; font-family: "Inter", "Segoe UI", sans-serif; }
body { background-color: #f1f5f9; color: #1e293b; padding-bottom: 48px; }
.app-header { background: linear-gradient(135deg, #1e40af, #3730a3); color: #fff; padding: 16px; box-shadow: 0 2px 10px rgba(0,0,0,0.12); }
.header-top, .header-sync { max-width: 520px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.header-sync { margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.2); font-size: 0.78rem; }
.app-header h1 { font-size: 1.15rem; }
.app-header p { font-size: 0.78rem; opacity: 0.9; }
.btn-config { background: rgba(255,255,255,0.15); color: #fff; border: 1px solid rgba(255,255,255,0.25); padding: 6px 10px; border-radius: 8px; font-size: 0.75rem; cursor: pointer; }
.sync-buttons { display: flex; gap: 6px; }
.btn-top { padding: 6px 10px; border: none; border-radius: 8px; font-size: 0.75rem; font-weight: 700; cursor: pointer; color: #fff; }
.btn-sync { background: #10b981; }
.btn-pull { background: rgba(255,255,255,0.2); }
.container { max-width: 520px; margin: 0 auto; padding: 14px; }
.summary-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.card { background: #fff; border-radius: 12px; padding: 12px; box-shadow: 0 1px 4px rgba(0,0,0,0.06); }
.bg-green { border-left: 4px solid #10b981; }
.bg-orange { border-left: 4px solid #f59e0b; }
.bg-blue { border-left: 4px solid #3b82f6; }
.summary-cards span { font-size: 0.72rem; color: #64748b; display: block; }
.summary-cards strong { font-size: 0.92rem; color: #0f172a; margin-top: 4px; display: block; }
.form-section { margin-bottom: 14px; }
.form-section h2, .list-section h2 { font-size: 0.98rem; margin-bottom: 12px; }
.form-group { margin-bottom: 10px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
label { display: block; font-size: 0.76rem; font-weight: 600; margin-bottom: 4px; color: #475569; }
input { width: 100%; padding: 9px 11px; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 0.85rem; }
.multi-sesi-box { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 10px; margin-bottom: 12px; }
.multi-sesi-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 0.8rem; }
.btn-add-row { background: #2563eb; color: #fff; border: none; padding: 5px 10px; border-radius: 6px; font-size: 0.75rem; font-weight: 700; cursor: pointer; }
.sesi-row-form { display: grid; grid-template-columns: 1.3fr 1fr 0.7fr auto; gap: 6px; margin-bottom: 6px; align-items: center; }
.btn-remove-row { background: #fee2e2; color: #b91c1c; border: none; padding: 8px 10px; border-radius: 6px; cursor: pointer; font-weight: 700; }
.btn-submit { width: 100%; padding: 11px; background: #2563eb; color: #fff; border: none; border-radius: 10px; font-weight: 700; cursor: pointer; }
.filter-bar { display: flex; gap: 8px; margin-bottom: 14px; }
.filter-bar input { flex: 1; background: #fff; }
.btn-pdf-all { background: #4f46e5; color: #fff; border: none; border-radius: 8px; padding: 0 12px; font-size: 0.78rem; font-weight: 700; cursor: pointer; }
.jadwal-item { background: #fff; border-radius: 12px; padding: 14px; margin-bottom: 10px; box-shadow: 0 1px 4px rgba(0,0,0,0.05); border-left: 4px solid #3b82f6; }
.jadwal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.jadwal-title { font-weight: 700; font-size: 0.95rem; }
.badge { font-size: 0.7rem; padding: 3px 8px; border-radius: 99px; font-weight: 700; }
.badge-lunas { background: #d1fae5; color: #065f46; }
.badge-belum { background: #fef3c7; color: #92400e; }
.jadwal-detail { font-size: 0.82rem; color: #475569; margin-bottom: 10px; line-height: 1.5; }
.sesi-chip-list { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px; margin: 8px 0; }
.sesi-chip { display: flex; justify-content: space-between; align-items: center; padding: 5px 6px; border-bottom: 1px dashed #e2e8f0; font-size: 0.78rem; }
.sesi-chip:last-child { border-bottom: none; }
.jadwal-actions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.btn-action { padding: 8px; border: none; border-radius: 8px; font-size: 0.76rem; font-weight: 600; cursor: pointer; }
.btn-add-sesi { background: #dbeafe; color: #1e40af; grid-column: span 2; }
.btn-toggle { background: #e2e8f0; color: #1e293b; }
.btn-wa { background: #16a34a; color: #fff; }
.btn-pdf { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.btn-delete { background: #fee2e2; color: #991b1b; }
.modal-overlay { position: fixed; inset: 0; background: rgba(15,23,42,0.82); z-index: 999; overflow-y: auto; }
.modal-sticky-bar { position: sticky; top: 0; background: #0f172a; padding: 10px 14px; display: flex; justify-content: space-between; align-items: center; z-index: 10; }
.btn-close-red { background: #e11d48; color: #fff; border: none; padding: 8px 14px; border-radius: 8px; font-weight: 700; cursor: pointer; }
.btn-download-blue { background: #2563eb; color: #fff; border: none; padding: 8px 14px; border-radius: 8px; font-weight: 700; cursor: pointer; }
.modal-body-box { max-width: 500px; margin: 16px auto 60px; background: #fff; padding: 16px; border-radius: 12px; }
.btn-close-bottom { width: 100%; margin-top: 14px; background: #e11d48; color: #fff; border: none; padding: 12px; border-radius: 10px; font-weight: 800; cursor: pointer; }