*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;font-family:var(--font-family-base);font-size:var(--font-size-md);background:var(--color-bg-base);color:var(--color-text-primary);-webkit-font-smoothing:antialiased}#root{height:100%;overflow-y:auto;padding:24px 28px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-default);border-radius:3px}.login-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:var(--color-text-secondary)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--color-border-default);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer}.btn:hover{border-color:var(--color-border-strong, var(--color-border-default))}.btn-ghost{background:transparent;border-color:transparent}.btn-primary{background:var(--color-primary, #2563eb);border-color:var(--color-primary, #2563eb);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.filters select,.filters input[type=text]{padding:8px 10px;border-radius:8px;border:1px solid var(--color-border-default);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm)}.filters input[type=text]{min-width:220px;flex:1}.table-wrap{background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:10px;overflow:hidden}table.persons{width:100%;border-collapse:collapse}table.persons thead th{text-align:left;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);padding:10px 14px;border-bottom:1px solid var(--color-border-subtle)}table.persons tbody td{padding:12px 14px;font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}table.persons tbody tr{cursor:pointer}table.persons tbody tr:hover{background:var(--color-bg-base)}table.persons tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium, 500);background:var(--color-bg-base);border:1px solid var(--color-border-default);color:var(--color-text-secondary)}.badge-registro{color:var(--color-text-secondary)}.badge-contacto{color:var(--color-info, #3b82f6);border-color:var(--color-info, #3b82f6)}.badge-calificado{color:var(--color-warning, #d97706);border-color:var(--color-warning, #d97706)}.badge-activo{color:var(--color-success, #16a34a);border-color:var(--color-success, #16a34a)}.tag{display:inline-block;padding:1px 7px;border-radius:6px;background:var(--color-bg-base);font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-right:4px}.code-chip{font-family:var(--font-family-mono, monospace);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.muted{color:var(--color-text-secondary)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.state-msg{padding:40px 20px;text-align:center;color:var(--color-text-secondary)}.state-msg.error{color:var(--color-danger, #dc2626)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.detail-grid{grid-template-columns:1fr}}.section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:10px}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:10px;padding:18px;margin-bottom:16px}.card.span-2{grid-column:1 / -1}.kv-list{display:flex;flex-direction:column;gap:8px}.kv-row{display:flex;justify-content:space-between;gap:12px;font-size:var(--font-size-sm);padding:6px 0;border-bottom:1px solid var(--color-border-subtle)}.kv-row:last-child{border-bottom:none}.kv-row .k{color:var(--color-text-secondary)}.kv-row .v{text-align:right;color:var(--color-text-primary)}.contact-point{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--color-border-subtle);font-size:var(--font-size-sm)}.contact-point:last-child{border-bottom:none}.contact-point.retirado{opacity:.55}.contact-point .chan{text-transform:uppercase;font-size:var(--font-size-xs);color:var(--color-text-secondary);width:60px}.consent-site{margin-bottom:12px}.consent-site:last-child{margin-bottom:0}.consent-site h4{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em}.consent-row{display:flex;justify-content:space-between;font-size:var(--font-size-sm);padding:4px 0}.relation-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--color-border-subtle);font-size:var(--font-size-sm)}.relation-row:last-child{border-bottom:none}.relation-row a{color:var(--color-primary, #3b82f6);text-decoration:none;cursor:pointer}.relation-row a:hover{text-decoration:underline}.tramites-empty,.empty-inline{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:var(--color-bg-elevated);border:1px solid var(--color-border-default);border-radius:12px;padding:20px 24px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.form-row{margin-bottom:12px;display:flex;flex-direction:column;gap:5px}.form-row label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.form-row input[type=text],.form-row select{padding:8px 10px;border-radius:8px;border:1px solid var(--color-border-default);background:var(--color-bg-base);color:var(--color-text-primary);font-size:var(--font-size-sm)}.form-row-split{display:flex;gap:12px}.form-row-split .form-row{flex:1}.radio-group{display:flex;gap:16px}.radio-group label{display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:normal;font-size:var(--font-size-sm);color:var(--color-text-primary)}.checkbox-label{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:normal;font-size:var(--font-size-sm);color:var(--color-text-primary)}.form-error{font-size:var(--font-size-sm);color:var(--color-danger, #dc2626);margin-top:4px}.relation-form{font-size:var(--font-size-sm)}.counterpart-picker{position:relative}.counterpart-picker input{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--color-border-default);background:var(--color-bg-base);color:var(--color-text-primary);font-size:var(--font-size-sm)}.picker-results{border:1px solid var(--color-border-subtle);border-radius:8px;margin-top:4px;overflow:hidden}.picker-row{padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--color-border-subtle)}.picker-row:last-child{border-bottom:none}.picker-row:hover{background:var(--color-bg-base)}.picker-selected{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;background:var(--color-bg-base);border-radius:8px;font-size:var(--font-size-sm)}
