:root{--font-main: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--primary-50: #eff6ff;--primary-100: #dbeafe;--primary-200: #bfdbfe;--primary-500: #3b82f6;--primary-600: #2563eb;--primary-700: #1d4ed8;--bg-app: #f8fafc;--bg-card: #ffffff;--text-main: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border-light: #e2e8f0;--border-subtle: #f1f5f9;--status-safe-bg: #ecfdf5;--status-safe-text: #047857;--status-safe-border: #a7f3d0;--status-safe-badge: #10b981;--status-upcoming-bg: #fefce8;--status-upcoming-text: #a16207;--status-upcoming-border: #fef08a;--status-upcoming-badge: #eab308;--status-near-bg: #fff7ed;--status-near-text: #c2410c;--status-near-border: #fed7aa;--status-near-badge: #f97316;--status-expired-bg: #fef2f2;--status-expired-text: #b91c1c;--status-expired-border: #fecaca;--status-expired-badge: #ef4444;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-card: 0 1px 3px 0 rgba(0, 0, 0, .06), 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-main);background-color:var(--bg-app);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;outline:none}input,select,textarea{font-family:inherit;font-size:14px;outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14px;padding:9px 16px;border-radius:var(--radius-md);transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary-600);color:#fff;box-shadow:0 1px 2px #2563eb33}.btn-primary:hover{background:var(--primary-700);box-shadow:0 4px 10px #2563eb4d}.btn-secondary{background:#fff;color:var(--text-main);border:1px solid var(--border-light)}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626;box-shadow:0 4px 10px #ef44444d}.btn-sm{padding:6px 12px;font-size:12px}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);border:1px solid var(--border-light);background:#fff}.btn-icon:hover{background:#f1f5f9;color:var(--text-main)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;letter-spacing:.02em}.badge-dot{width:7px;height:7px;border-radius:50%}.badge-safe{background-color:var(--status-safe-bg);color:var(--status-safe-text);border:1px solid var(--status-safe-border)}.badge-safe .badge-dot{background-color:var(--status-safe-badge)}.badge-upcoming{background-color:var(--status-upcoming-bg);color:var(--status-upcoming-text);border:1px solid var(--status-upcoming-border)}.badge-upcoming .badge-dot{background-color:var(--status-upcoming-badge)}.badge-near{background-color:var(--status-near-bg);color:var(--status-near-text);border:1px solid var(--status-near-border)}.badge-near .badge-dot{background-color:var(--status-near-badge)}.badge-expired{background-color:var(--status-expired-bg);color:var(--status-expired-text);border:1px solid var(--status-expired-border)}.badge-expired .badge-dot{background-color:var(--status-expired-badge)}.badge-secondary{background-color:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px;transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.form-group{margin-bottom:18px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.form-control{width:100%;padding:10px 14px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:#fff;color:var(--text-main);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-control:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f626}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.status-pill{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;padding:3px 9px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;line-height:1.2}.pill-red{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.pill-green{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.pill-blue{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.pill-orange{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.pill-yellow{background:#fefce8;color:#a16207;border:1px solid #fef08a}.pill-gray{background:#f8fafc;color:#64748b;border:1px solid #cbd5e1}.pill-purple{background:#f5f3ff;color:#7c3aed;border:1px solid #ddd6fe}.doc-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;border-radius:6px;text-decoration:none;cursor:pointer;transition:all .2s ease}.doc-badge.pdf{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}.doc-badge.pdf:hover{background:#fecaca;color:#991b1b;transform:translateY(-1px)}.doc-badge.img{background:#e0f2fe;color:#0369a1;border:1px solid #7dd3fc}.doc-badge.img:hover{background:#bae6fd;color:#075985;transform:translateY(-1px)}.doc-empty{color:#94a3b8;font-size:12px}
