body {
    background: #f4f6fb;
}

.app-wrapper {
    padding-top: 80px;
    padding-bottom: 40px;
}

.app-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 20px 22px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
    margin-bottom: 24px;
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.page-title {
    font-size: 1.25rem;
    font-weight: 600;
}

.page-subtitle {
    font-size: 0.9rem;
    color: #6b7280;
    margin-bottom: 0;
}

.login-wrapper {
    background: radial-gradient(circle at top, #1e293b 0, #020617 45%, #020617 100%);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 12px;
}

.login-card {
    max-width: 420px;
    width: 100%;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.75);
    border: 1px solid rgba(148, 163, 184, 0.3);
    backdrop-filter: blur(12px);
}

.table-card {
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.05);
}

.table thead {
    background-color: #0f172a;
    color: #e5e7eb;
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.table tbody tr:hover {
    background-color: #f9fafb;
}

.badge-status {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.75rem;
}
.badge-status.draft { background:#e5e7eb; color:#111827; }
.badge-status.menunggu_validasi { background:#fef3c7; color:#92400e; }
.badge-status.disetujui { background:#dcfce7; color:#166534; }
.badge-status.ditolak { background:#fee2e2; color:#b91c1c; }

.signature-pad {
    border: 1px dashed #9ca3af;
    border-radius: 8px;
    background-color: #f9fafb;
}
.signature-label {
    font-size: 0.8rem;
    color: #6b7280;
}
