:root{--bg-primary:#f8fafc;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-input:#fff;--bg-muted:#f1f5f9;--border-subtle:#e2e8f0;--border-medium:#cbd5e1;--border-focus:#0284c7;--border-glow:#0284c72e;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-cyan:#0891b2;--accent-sky:#0284c7;--accent-indigo:#4f46e5;--accent-emerald:#10b981;--accent-amber:#d97706;--accent-rose:#e11d48;--gradient-accent:linear-gradient(135deg, #0284c7 0%, #0ea5e9 50%, #2563eb 100%);--gradient-card:linear-gradient(180deg, #fff 0%, #f8fafc 100%);--gradient-subtle:linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);--shadow-sm:0 1px 3px #0f172a0d, 0 1px 2px #0f172a08;--shadow-md:0 4px 16px -2px #0f172a0f;--shadow-lg:0 12px 32px -4px #0f172a17;--shadow-glow:0 0 20px #0284c71f;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.16s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 10% 10%,#0284c70a 0%,#0000 40%),radial-gradient(circle at 90% 90%,#4f46e508 0%,#0000 45%);background-attachment:fixed;min-height:100vh;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all var(--transition-smooth)}.glass-panel:hover{border-color:var(--border-medium)}h1,h2,h3,h4,h5,h6{color:var(--text-primary);letter-spacing:-.02em;font-weight:700}.gradient-text{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.form-group{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.form-label{color:var(--text-secondary);font-size:.875rem;font-weight:600}.form-input{background:var(--bg-input);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:11px 16px;font-size:.94rem}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--border-glow);background:#fff}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;outline:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.915rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--gradient-accent);color:#fff;box-shadow:0 4px 14px #0284c747}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0284c761}.btn-primary:active{transform:translateY(0)}.btn-outline{color:var(--text-primary);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:#fff}.btn-outline:hover{border-color:var(--border-medium);color:var(--text-primary);background:#f8fafc}.badge{border-radius:var(--radius-full);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:5px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-draft{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.badge-diajukan{color:#0284c7;background:#e0f2fe;border:1px solid #bae6fd}.badge-disetujui{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.badge-ditolak{color:#be123c;background:#ffe4e6;border:1px solid #fecdd3}.badge-dicetak{color:#7e22ce;background:#f3e8ff;border:1px solid #e9d5ff}.badge-menunggu_verifikasi{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.badge-perlu_dilengkapi{color:#c2410c;background:#ffedd5;border:1px solid #fed7aa}.badge-selesai{color:#166534;background:#dcfce7;border:1px solid #86efac}.badge-overdue{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5;animation:2s ease-in-out infinite pulse-badge}@keyframes pulse-badge{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 6px #ef444400}to{box-shadow:0 0 #ef444400}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.spinner{animation:.9s linear infinite spin}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all var(--transition-smooth)}.input-field{background:var(--bg-input);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:10px 14px;font-family:inherit;font-size:.91rem}.input-field:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--border-glow);background:#fff}select.input-field option{color:#0f172a;background:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-layout{background-color:var(--bg-primary);min-height:100vh;display:flex}.app-main-wrapper{flex-direction:column;flex:1;min-width:0;min-height:100vh;margin-left:260px;transition:margin-left .25s cubic-bezier(.16,1,.3,1);display:flex}.top-header-bar{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);z-index:40;background:#ffffffe0;justify-content:space-between;align-items:center;height:68px;padding:0 32px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0f172a08}.mobile-menu-btn{display:none}@media (width<=1023px){.app-sidebar{transform:translate(-100%)}.app-sidebar.sidebar-open{transform:translate(0)!important}.app-main-wrapper{margin-left:0!important}.mobile-menu-btn{display:flex!important}.mobile-close-btn{display:block!important}.top-header-bar{padding:0 16px}}@media print{body{color:#000!important;background:#fff!important;margin:0!important;padding:0!important}body *{visibility:hidden}.printable-visum-sheet,.printable-visum-sheet *{visibility:visible!important}.printable-visum-sheet{width:100%!important;max-width:100%!important;box-shadow:none!important;color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important;border:none!important;margin:0!important;padding:1.2cm 1.5cm!important;position:absolute!important;top:0!important;left:0!important}.no-print{display:none!important}@page{size:A4 portrait;margin:0}}
