:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-danger: #dc2626;--color-warning: #f59e0b;--color-success: #16a34a;--color-muted: #6b7280;--color-bg: #f9fafb;--color-surface: #ffffff;--color-border: #e5e7eb;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:#111827;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--color-surface);border-right:1px solid var(--color-border);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.25rem}.sidebar h1{font-size:1.25rem;margin-bottom:1.5rem;color:var(--color-primary)}.sidebar a{display:block;padding:.5rem .75rem;border-radius:var(--radius);color:#374151;font-size:.9rem}.sidebar a:hover{background:var(--color-bg);text-decoration:none}.sidebar a.active{background:#eff6ff;color:var(--color-primary);font-weight:600}.main-content{flex:1;padding:2rem;max-width:1200px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{text-align:center;padding:1.25rem}.stat-card .stat-value{font-size:2rem;font-weight:700}.stat-card .stat-label{font-size:.85rem;color:var(--color-muted);margin-top:.25rem}.stat-card.success .stat-value{color:var(--color-success)}.stat-card.warning .stat-value{color:var(--color-warning)}.stat-card.danger .stat-value{color:var(--color-danger)}.stat-card.info .stat-value{color:var(--color-primary)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--color-border)}.data-table th{background:var(--color-bg);font-weight:600;color:#374151;position:sticky;top:0}.data-table tbody tr:hover{background:#f3f4f6}.badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600}.badge.nif{background:#dcfce7;color:#166534}.badge.nif-fecha{background:#fef9c3;color:#854d0e}.badge.nombre{background:#dbeafe;color:#1e40af}.badge.nombre-fecha{background:#fce7f3;color:#9d174d}.badge.sin{background:#fee2e2;color:#991b1b}.filtros{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}.filtros select,.filtros input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-danger{background:var(--color-danger);color:#fff}.page-header{margin-bottom:1.5rem}.page-header h2{font-size:1.5rem;font-weight:700}.page-header p{color:var(--color-muted);font-size:.9rem}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);padding:3rem 2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--color-primary);background:#eff6ff}.upload-zone p{color:var(--color-muted)}.alert{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}.alert-success{background:#dcfce7;color:#166534}.alert-error{background:#fee2e2;color:#991b1b}.alert-warning{background:#fef9c3;color:#854d0e}
