:root{--black:#0d0d0d;--white:#fff;--surface-900:#111318;--surface-800:#181c24;--surface-700:#1f242f;--surface-600:#272d3a;--bg-app:#f2f1ed;--bg-card:#fff;--bg-subtle:#f8f7f4;--bg-input:#fafaf8;--border-light:#e8e6e0;--border-mid:#d4d0c8;--border-dark:#b8b4aa;--text-primary:#111318;--text-secondary:#4a4a52;--text-tertiary:#8a8a94;--text-disabled:#c0bfbc;--gold:#b8923a;--gold-light:#c8a84e;--gold-pale:#f7f2e8;--gold-border:#b8923a4d;--success:#2d6e4e;--success-bg:#eef6f1;--success-border:#c0ddd0;--warning:#8a6020;--warning-bg:#fdf6e8;--warning-border:#e8d4a0;--danger:#8a2020;--danger-bg:#fdf0f0;--danger-border:#e8c0c0;--info:#1a3a6e;--info-bg:#f0f4fb;--info-border:#c0d0e8;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001a;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--transition:all .18s ease;--bg:var(--bg-app);--surface:var(--bg-card);--border:var(--border-light);--border-strong:var(--border-mid);--sidebar:var(--surface-900);--sidebar-soft:var(--surface-800);--sidebar-text:#ffffff73;--sidebar-text-dim:#ffffff40;--text:var(--text-primary);--text-soft:var(--text-secondary);--text-dim:var(--text-tertiary);--gold-soft:var(--gold-pale);--paper:#fff;--paper-edge:var(--border-light);--shadow:var(--shadow-sm);--radius:var(--radius-md)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;line-height:1.5}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}code,.mono{font-family:DM Mono,monospace;font-size:12px}h1,h2,h3,h4,h5,h6{color:var(--text-primary);margin:0;font-family:Libre Baskerville,Georgia,serif;font-weight:400}.app-shell{grid-template-columns:220px 1fr;height:100vh;display:grid}.app-main{flex-direction:column;display:flex;overflow:hidden}.app-content{flex:1;padding:28px 32px;overflow-y:auto}@media (width<=1280px){.app-shell{grid-template-columns:56px 1fr}.sidebar-brand .name{font-size:0;line-height:0}.sidebar-brand .name:first-letter{font-size:18px;line-height:1}.sidebar-brand .name small,.tenant-brand .nombre,.tenant-brand .meta{display:none}.tenant-brand .tipo{text-align:center;padding:0;font-size:8px}.sidebar-section{text-align:center;padding:8px 0;font-size:0}.sidebar-section:first-letter{letter-spacing:0;font-size:9px}.sidebar-link{justify-content:center;padding:10px 0;font-size:0}.sidebar-link .count{display:none}.sidebar-link:first-letter{font-size:11px;font-weight:500}.sidebar-sublink{display:none}.sidebar-back{text-align:center;padding:12px 0;font-size:0}.sidebar-back:first-letter{font-size:11px}.app-content{padding:22px 24px}}@media (width<=1024px){.row-3{grid-template-columns:1fr 1fr}.grid-stats{grid-template-columns:repeat(2,1fr)}.wizard{grid-template-columns:1fr}}.sidebar{background:var(--surface-900);color:#ffffff73;border-right:1px solid #ffffff0f;flex-direction:column;padding:22px 0 8px;display:flex;overflow-y:auto}.sidebar-brand{border-bottom:1px solid #ffffff0d;margin-bottom:16px;padding:0 22px 22px}.sidebar-brand .name{color:var(--gold);letter-spacing:.01em;font-family:Libre Baskerville,serif;font-size:20px;font-weight:400;line-height:1}.sidebar-brand .name small{color:#ffffff4d;letter-spacing:.2em;text-transform:uppercase;margin-top:8px;font-family:DM Sans,sans-serif;font-size:9px;font-weight:400;display:block}.tenant-brand{border-bottom:1px solid #ffffff0d;flex-direction:column;gap:4px;margin-bottom:14px;padding:0 22px 18px;display:flex}.tenant-brand .tipo{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-family:DM Sans,sans-serif;font-size:9px;font-weight:500}.tenant-brand .nombre{color:#fff;margin-top:2px;font-family:Libre Baskerville,serif;font-size:15px;font-weight:400;line-height:1.25}.tenant-brand .meta{color:#ffffff4d;letter-spacing:.04em;margin-top:4px;font-family:DM Mono,monospace;font-size:10px}.sidebar-section{letter-spacing:.18em;text-transform:uppercase;color:#ffffff40;padding:16px 22px 8px;font-family:DM Sans,sans-serif;font-size:9px;font-weight:500}.sidebar-link{color:#ffffff73;cursor:pointer;transition:var(--transition);border-left:2px solid #0000;align-items:center;gap:10px;padding:9px 22px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:400;display:flex}.sidebar-link:hover{color:#ffffffd9}.sidebar-link.active{color:var(--gold);border-left-color:var(--gold);background:#b8923a1a}.sidebar-link .count{color:#ffffff4d;margin-left:auto;font-family:DM Mono,monospace;font-size:10px}.sidebar-link .ico{text-align:center;color:#ffffff4d;width:10px;font-size:10px;font-weight:400;display:inline-block}.sidebar-link.active .ico{color:var(--gold)}.sidebar-sublink{color:#ffffff4d;padding-left:40px;font-size:11.5px}.sidebar-sublink.active{color:var(--gold)}.sidebar-back{color:#ffffff59;cursor:pointer;letter-spacing:.04em;transition:var(--transition);border-top:1px solid #ffffff0d;margin-top:auto;padding:14px 22px;font-family:DM Sans,sans-serif;font-size:11px}.sidebar-back:hover{color:#ffffffd9;background:var(--surface-800)}.topbar{background:var(--bg-card);border-bottom:1px solid var(--border-light);align-items:center;gap:16px;height:52px;padding:0 28px;display:flex}.topbar h1{color:var(--text-primary);margin:0;font-family:Libre Baskerville,serif;font-size:15px;font-weight:400}.topbar .crumbs{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-top:2px;font-family:DM Sans,sans-serif;font-size:10px}.topbar .crumbs a{color:var(--text-tertiary);transition:var(--transition)}.topbar .crumbs a:hover{color:var(--text-primary)}.topbar .crumbs .sep{color:var(--border-mid);margin:0 8px}.topbar .crumbs .current{color:var(--text-primary)}.topbar-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.topbar-user{background:var(--bg-subtle);border:1px solid var(--border-light);color:var(--text-secondary);border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 5px;font-size:11.5px;display:flex}.topbar-user .avatar{background:var(--surface-900);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-family:Libre Baskerville,serif;font-size:11px;font-weight:700;display:grid}.btn{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-md);height:34px;color:var(--text-secondary);border:1px solid var(--border-mid);cursor:pointer;transition:var(--transition);white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--border-dark);color:var(--text-primary)}.btn-primary{background:var(--surface-900);color:#fff;border-color:var(--surface-900)}.btn-primary:hover{background:var(--surface-700);border-color:var(--surface-700);color:#fff}.btn-gold{background:var(--gold);color:#fff;border-color:var(--gold)}.btn-gold:hover{background:var(--gold-light);border-color:var(--gold-light);color:#fff}.btn-ghost{color:var(--text-secondary);background:0 0;border:none}.btn-ghost:hover{color:var(--text-primary)}.btn-danger{color:var(--danger);border:1px solid var(--danger-border);background:0 0}.btn-danger:hover{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.btn-sm{height:28px;padding:0 12px;font-size:10px}.btn:disabled{opacity:.45;cursor:not-allowed}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);font-family:DM Sans,sans-serif;font-size:9.5px;font-weight:500}.field .help{color:var(--text-tertiary);font-family:DM Sans,sans-serif;font-size:11px}.field-error{color:var(--danger);font-size:11px}.input,.select,.textarea{background:var(--bg-input);width:100%;height:36px;color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:var(--transition);outline:none;padding:0 12px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:300}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold);background:var(--white);box-shadow:0 0 0 3px #b8923a14}.textarea{resize:vertical;height:auto;min-height:100px;padding:10px 12px;line-height:1.6}.field.autofilled .input,.input.autofilled{background:var(--gold-pale);border-color:var(--gold-border)}.row-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.row-3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 24px}.card-h{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.card-h h3{letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin:0;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500}.stat{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px 20px}.stat .label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);font-family:DM Sans,sans-serif;font-size:9.5px;font-weight:500}.stat .value{color:var(--text-primary);margin-top:6px;font-family:Libre Baskerville,serif;font-size:26px;font-weight:400}.stat .delta{color:var(--success);margin-top:2px;font-size:11px}.grid-stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.inst-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);flex-direction:column;gap:8px;padding:18px 20px;display:flex}.inst-card:hover{border-color:var(--border-dark);box-shadow:var(--shadow-md)}.inst-card .tipo{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-family:DM Sans,sans-serif;font-size:9px;font-weight:500}.inst-card .nombre{color:var(--text-primary);font-family:Libre Baskerville,serif;font-size:15px;font-weight:400;line-height:1.3}.inst-card .meta{color:var(--text-tertiary);font-family:DM Mono,monospace;font-size:11px}.inst-card .footer{border-top:1px solid var(--border-light);color:var(--text-tertiary);margin-top:auto;padding-top:10px;font-size:11px}.inst-card.featured{border-left:3px solid var(--gold);background:var(--gold-pale)}.model-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:16px 18px}.model-card .row{justify-content:space-between;align-items:center;display:flex}.model-card h4{margin:0;font-family:Libre Baskerville,serif;font-size:14px;font-weight:400}.model-card .tipo{letter-spacing:.12em;text-transform:uppercase;background:var(--gold-pale);color:var(--gold);border:1px solid var(--gold-border);border-radius:3px;margin-top:6px;padding:2px 8px;font-family:DM Sans,sans-serif;font-size:9px;font-weight:500;display:inline-block}.model-card .clausulas{color:var(--text-tertiary);margin-top:10px;font-family:DM Sans,sans-serif;font-size:11px}.badge{letter-spacing:.1em;text-transform:uppercase;border:1px solid;border-radius:3px;align-items:center;padding:2px 8px;font-family:DM Sans,sans-serif;font-size:9px;font-weight:500;display:inline-flex}.badge-firmado,.badge-activo{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.badge-borrador,.badge-pendiente{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-border)}.badge-revision{color:var(--info);background:var(--info-bg);border-color:var(--info-border)}.badge-vencido,.badge-error{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.login-shell{background:linear-gradient(135deg, var(--surface-900) 0%, var(--surface-800) 100%);place-items:center;min-height:100vh;display:grid}.login-card{background:var(--bg-card);border-radius:var(--radius-lg);width:380px;box-shadow:var(--shadow-lg);padding:40px 36px 32px}.login-card .brand{color:var(--gold);margin-bottom:4px;font-family:Libre Baskerville,serif;font-size:28px}.login-card .brand small{letter-spacing:.2em;text-transform:uppercase;color:var(--text-tertiary);margin-top:6px;margin-bottom:24px;font-family:DM Sans,sans-serif;font-size:10px;display:block}.login-card .error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-md);border-left:3px solid var(--danger);margin-bottom:14px;padding:10px 14px;font-size:12px}.login-hint{color:var(--text-tertiary);text-align:center;letter-spacing:.04em;margin-top:14px;font-size:11px}.tbl{border-collapse:collapse;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);width:100%;overflow:hidden}.tbl th{text-align:left;letter-spacing:.16em;text-transform:uppercase;height:36px;color:var(--text-tertiary);background:var(--bg-subtle);border-bottom:1px solid var(--border-light);padding:0 16px;font-family:DM Sans,sans-serif;font-size:9px;font-weight:500}.tbl td{height:48px;color:var(--text-primary);border-bottom:1px solid var(--border-light);vertical-align:middle;padding:0 16px;font-family:DM Sans,sans-serif;font-size:12.5px;font-weight:300}.tbl td code,.tbl td .mono{font-family:DM Mono,monospace;font-size:12px}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:var(--bg-subtle);cursor:pointer;transition:var(--transition)}.wizard{grid-template-columns:1fr 1fr;gap:24px;min-height:calc(100vh - 108px);display:grid}.wizard-form{flex-direction:column;gap:14px;display:flex}.wizard-steps{gap:4px;margin-bottom:14px;display:flex}.wizard-step{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);cursor:pointer;text-align:center;transition:var(--transition);flex:1;padding:10px 12px;font-family:DM Sans,sans-serif;font-size:10.5px;font-weight:500}.wizard-step:hover{color:var(--text-secondary);border-color:var(--border-mid)}.wizard-step.active{background:var(--surface-900);color:#fff;border-color:var(--surface-900)}.wizard-step.done{color:var(--success);border-color:var(--success-border);background:var(--success-bg)}.wizard-step .num{opacity:.7;margin-right:6px;font-family:DM Mono,monospace}.wizard-actions{border-top:1px solid var(--border-light);justify-content:space-between;margin-top:auto;padding-top:18px;display:flex}.scanner{border:1px dashed var(--gold-border);background:var(--gold-pale);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:var(--transition);padding:24px}.scanner:hover{border-color:var(--gold);background:#fff8e8}.scanner.has-file{background:var(--success-bg);border-color:var(--success-border)}.scanner .lbl{color:var(--text-primary);margin-bottom:4px;font-family:DM Sans,sans-serif;font-size:12.5px;font-weight:500}.scanner .hint{color:var(--text-tertiary);font-family:DM Sans,sans-serif;font-size:11px}.scanner input{display:none}.scanner-grande{border:1px dashed var(--gold-border);background:var(--gold-pale);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:var(--transition);flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:200px;padding:48px 28px;display:flex;position:relative;overflow:hidden}.scanner-grande:hover{border-color:var(--gold);background:#fff8e8}.scanner-grande.scanning{border-color:var(--gold);cursor:wait;background:#fff}.scanner-grande.scanning:before{content:"";background:linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);height:2px;box-shadow:0 0 12px var(--gold);animation:1.4s ease-in-out infinite scan-line;position:absolute;left:0;right:0}@keyframes scan-line{0%{opacity:.7;top:8%}50%{opacity:1;top:92%}to{opacity:.7;top:8%}}.scanner-grande .ico-grande{border:1.5px solid var(--gold);letter-spacing:.18em;width:56px;height:70px;color:var(--gold);border-radius:3px;place-items:center;font-family:DM Sans,sans-serif;font-size:9px;font-weight:500;display:grid}.scanner-grande.has-file .ico-grande{border-color:var(--success);color:var(--success)}.scanner-grande .lbl-grande{color:var(--text-primary);margin-top:8px;font-family:Libre Baskerville,serif;font-size:15px;font-weight:400}.scanner-grande .hint-grande{color:var(--text-tertiary);max-width:360px;font-family:DM Sans,sans-serif;font-size:11.5px}.scanner-grande input{display:none}.scanner-grande .scan-progress{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:4px;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500}.extracted-card{border:1px solid var(--gold-border);border-radius:var(--radius-md);background:#fff;overflow:hidden}.extracted-card .head{background:var(--gold-pale);border-bottom:1px solid var(--gold-border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.extracted-card .head h4{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500}.extracted-card .head .acciones{gap:6px;display:flex}.extracted-card .row{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:10px 16px;display:flex}.extracted-card .row:last-child{border-bottom:none}.extracted-card .row .label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);flex:0 0 130px;font-family:DM Sans,sans-serif;font-size:9.5px;font-weight:500}.extracted-card .row .valor{color:var(--text-primary);background:var(--gold-pale);border:1px solid var(--gold-border);border-radius:var(--radius-sm);flex:1;padding:7px 10px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:400}.extracted-card .row .valor.empty{color:var(--text-tertiary);font-style:italic}.extracted-card .row input.input{background:var(--gold-pale);border-color:var(--gold);flex:1}.extracted-card .row .corregir{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);border:1px solid var(--border-mid);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:0 0;flex:none;padding:5px 10px;font-family:DM Sans,sans-serif;font-size:9px;font-weight:500}.extracted-card .row .corregir:hover{color:var(--gold);border-color:var(--gold)}.resumen-card{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-card);margin-bottom:14px;overflow:hidden}.resumen-card .head{background:var(--bg-subtle);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.resumen-card .head h4{letter-spacing:.16em;text-transform:uppercase;color:var(--text-tertiary);margin:0;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500}.resumen-card .body{padding:16px 18px}.clausula-row{border:1px solid var(--border-light);background:var(--bg-card);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);align-items:center;gap:8px;margin-bottom:6px;padding:10px 14px;display:flex}.clausula-row:hover{border-color:var(--border-mid)}.clausula-row.active{border-color:var(--gold);background:var(--gold-pale)}.clausula-row .orden{width:22px;color:var(--gold);text-align:center;font-family:Libre Baskerville,serif;font-size:16px}.clausula-row .body{flex:1}.clausula-row .body .codigo{color:var(--text-tertiary);font-family:DM Mono,monospace;font-size:10px}.clausula-row .body .titulo{font-family:DM Sans,sans-serif;font-size:12px;font-weight:500}.clausula-row .arrows{flex-direction:column;gap:1px;display:flex}.clausula-row .arrows button{border:1px solid var(--border-mid);cursor:pointer;width:22px;height:18px;color:var(--text-secondary);background:#fff;border-radius:2px;padding:0;font-size:10px}.clausula-row .arrows button:hover{background:var(--gold-pale);border-color:var(--gold);color:var(--gold)}.clausula-row .arrows button:disabled{opacity:.3;cursor:not-allowed}.texto-editor{border:1px solid var(--border-mid);border-radius:var(--radius-md);resize:vertical;background:var(--bg-input);width:100%;min-height:200px;padding:14px;font-family:EB Garamond,serif;font-size:13pt;line-height:1.8}.texto-editor:focus{border-color:var(--gold);background:var(--white);outline:none;box-shadow:0 0 0 3px #b8923a14}.var-chip{background:var(--gold-pale);color:var(--gold);border:1px solid var(--gold-border);border-radius:999px;margin:2px;padding:2px 8px;font-family:DM Mono,monospace;font-size:10.5px;display:inline-block}.alert{border-radius:var(--radius-md);border-left:3px solid;margin-bottom:12px;padding:12px 16px;font-family:DM Sans,sans-serif;font-size:12.5px;line-height:1.5;display:block}.alert-warn{background:var(--warning-bg);border-left-color:var(--warning);color:var(--warning)}.alert-info{background:var(--info-bg);border-left-color:var(--info);color:var(--info)}.alert-danger{background:var(--danger-bg);border-left-color:var(--danger);color:var(--danger)}.alert-success{background:var(--success-bg);border-left-color:var(--success);color:var(--success)}.alert strong{font-weight:500}.kv{grid-template-columns:140px 1fr;gap:8px 14px;font-family:DM Sans,sans-serif;font-size:12.5px;display:grid}.kv dt{color:var(--text-tertiary);letter-spacing:.12em;text-transform:uppercase;padding-top:2px;font-size:9.5px;font-weight:500}.kv dd{color:var(--text-primary);margin:0;font-weight:400}.muted{color:var(--text-tertiary)}.gold{color:var(--gold)}.toolbar{align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar .spacer{flex:1}.tag{letter-spacing:.1em;text-transform:uppercase;background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-light);border-radius:3px;margin-right:4px;padding:2px 8px;font-family:DM Sans,sans-serif;font-size:9px;font-weight:500;display:inline-block}.empty{text-align:center;color:var(--text-tertiary);border:1px dashed var(--border-mid);border-radius:var(--radius-md);padding:40px;font-family:DM Sans,sans-serif;font-size:12px}.empty:before{content:"—";color:var(--border-mid);margin-bottom:8px;font-size:18px;display:block}.spinner{border:2px solid #b8923a33;border-top-color:var(--gold);vertical-align:middle;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:var(--bg-subtle);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000 0%,#fff9 50%,#0000 100%);animation:1.4s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-text{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);align-items:center;gap:8px;font-family:DM Sans,sans-serif;font-size:11px;display:inline-flex}input[type=checkbox],input[type=radio]{appearance:none;border:1px solid var(--border-mid);background:var(--bg-card);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin:0;position:relative}input[type=checkbox]{border-radius:3px}input[type=radio]{border-radius:50%}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--gold);border-color:var(--gold)}input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}input[type=radio]:checked:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:4px}.preview-wrap{flex-direction:column;max-height:calc(100vh - 108px);display:flex;position:sticky;top:0;overflow:hidden}.preview-toolbar{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md) var(--radius-md) 0 0;letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);border-bottom:none;align-items:center;gap:10px;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:10px;display:flex}.preview-toolbar .dot{border-radius:50%;width:7px;height:7px;display:inline-block}.preview-toolbar .dot.r{background:var(--danger)}.preview-toolbar .dot.g{background:var(--success)}.preview-toolbar .legend{align-items:center;gap:14px;margin-left:auto;display:flex}.preview{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:0 0 var(--radius-md) var(--radius-md);border-top:none;flex:1;padding:24px;overflow-y:auto}.paper{width:180mm;min-height:270mm;box-shadow:var(--shadow-lg);color:#111;text-align:justify;-webkit-hyphens:auto;hyphens:auto;background:#fff;margin:0 auto;padding:48px 56px;font-family:EB Garamond,Georgia,serif;font-size:12.5pt;line-height:1.95}.paper header{text-align:center;margin-bottom:10mm}.paper header .banco{letter-spacing:.2em;text-transform:uppercase;color:#111;font-family:DM Sans,sans-serif;font-size:10pt;font-weight:500}.paper header .correlativo{color:#555;letter-spacing:.12em;margin-top:4px;font-family:DM Mono,monospace;font-size:9pt}.paper .contrato-body p{text-indent:1.2cm;text-align:justify;color:#111;margin:0}.paper .contrato-body p.comparecencia{text-indent:0;font-style:italic}.paper .cl-titulo{letter-spacing:.04em;text-transform:uppercase;color:#111;font-family:DM Sans,sans-serif;font-size:9.5pt;font-weight:600}.paper .blank-empty{color:#b83030;border-bottom:1px dashed #b8303066;font-style:italic}.paper .blank-filled{color:#1a5c34;font-weight:500}.paper .firmas-bloque{page-break-inside:avoid;justify-content:center;gap:30mm;margin-top:14mm;display:flex}.paper .firmas-principales{justify-content:space-between}.paper .firma{text-align:center;width:60mm}.paper .firma .espacio-firma{height:3cm}.paper .firma .linea-firma{border-bottom:1px solid #111;width:6cm;margin:0 auto}.paper .firma .firma-nombre{margin-top:6px;font-family:EB Garamond,serif;font-size:12pt;font-weight:600}.paper .firma .firma-cargo{color:#444;font-family:EB Garamond,serif;font-size:11pt;font-style:italic}.paper .firma .firma-dpi{color:#888;margin-top:2px;font-family:DM Mono,monospace;font-size:9pt}.paper .firma.firma-fiador{width:80mm;margin:0 auto}.paper hr.firmas-separador{border:none;border-top:1px solid #ccc;margin:14mm 0 8mm}.paper .legalizacion{page-break-inside:avoid}.paper .legalizacion .title{letter-spacing:.2em;text-transform:uppercase;color:#111;text-align:center;margin-bottom:10px;font-family:DM Sans,sans-serif;font-size:9pt;font-weight:600}.paper .legalizacion p{text-indent:1.2cm;color:#111;margin:0;font-size:11.5pt}.paper .legalizacion .sello{align-items:flex-start;gap:24px;margin-top:10mm;display:flex}.paper .legalizacion .sello-caja{letter-spacing:.12em;text-transform:uppercase;color:#888;text-align:center;border:1px dashed #999;border-radius:50%;flex-shrink:0;place-items:center;width:70px;height:70px;padding:4px;font-family:DM Sans,sans-serif;font-size:6.5pt;line-height:1.2;display:grid}.paper .legalizacion .firma-notario{flex:1}.paper .legalizacion .firma-notario .espacio-firma{height:2.4cm}.paper .legalizacion .firma-notario .linea-firma{border-bottom:1px solid #111;width:6cm;margin:0 auto}.paper .legalizacion .firma-notario .firma-nombre{text-align:center;margin-top:4px;font-family:EB Garamond,serif;font-size:12pt;font-weight:600}.paper .legalizacion .firma-notario .firma-colegiado{color:#888;text-align:center;font-family:DM Mono,monospace;font-size:9pt}
