:root{
  --color-primary:#14233c;--color-primary-light:#24466f;--color-primary-soft:#eaf0f7;
  --color-accent:#147a68;--color-accent-hover:#106557;--color-background:#f4f7fa;
  --color-surface:#fff;--color-text:#152238;--color-muted:#607086;--color-border:#d8e1ea;
  --color-success:#157347;--color-warning:#b7791f;--color-danger:#b42318;--color-info:#27628a;
  --shadow-sm:0 8px 24px rgba(20,35,60,.07);--shadow-md:0 18px 44px rgba(20,35,60,.13);
  --radius-sm:8px;--radius-md:12px;--radius-lg:18px;
  color:var(--color-text);background:var(--color-background);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:16px;line-height:1.5
}
*,*::before,*::after{box-sizing:border-box}html{background:var(--color-background);scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--color-background);color:var(--color-text);font-family:inherit}button,input,select,textarea{font:inherit}a{color:var(--color-primary-light)}a:hover{color:var(--color-accent-hover)}button,a,input,select,textarea,summary{outline-offset:3px}:focus-visible{outline:3px solid rgba(20,122,104,.34);outline-offset:2px}h1,h2,h3,h4,p{overflow-wrap:anywhere}h1,h2,h3{color:var(--color-text);line-height:1.18}.app-main{width:min(100%,1280px);max-width:1280px;margin:0 auto;padding:28px 24px 48px}.app-bar{position:relative;z-index:100;background:var(--color-primary);color:#fff;border-radius:0;padding:0;box-shadow:0 1px 0 rgba(255,255,255,.08)}.app-bar-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(100%,1280px);min-height:72px;margin:0 auto;padding:0 24px}.app-brand{display:inline-flex;align-items:center;gap:12px;color:#fff;text-decoration:none}.app-brand:hover{color:#fff}.app-brand strong,.app-brand small{display:block}.app-brand strong{font-size:1.02rem;letter-spacing:.01em}.app-brand small{margin-top:1px;color:#bac9da;font-size:.78rem}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.24);border-radius:11px;background:rgba(255,255,255,.1);font-weight:850;letter-spacing:.04em}.user-menu{position:relative}.user-menu summary{display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid transparent;border-radius:12px;list-style:none;cursor:pointer;transition:.18s ease}.user-menu summary::-webkit-details-marker{display:none}.user-menu summary:hover,.user-menu[open] summary{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.12)}.user-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:.78rem;font-weight:850}.user-summary strong,.user-summary small{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-summary strong{color:#fff;font-size:.88rem}.user-summary small{color:#b8c7d9;font-size:.7rem;font-weight:750;letter-spacing:.05em}.menu-chevron{color:#c4d0df;font-size:1rem}.user-menu-panel{position:absolute;top:calc(100% + 8px);right:0;display:grid;width:230px;padding:8px;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-md)}.user-menu-panel a,.user-menu-panel button{display:block;width:100%;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:var(--color-text);text-align:left;text-decoration:none;cursor:pointer}.user-menu-panel a:hover,.user-menu-panel button:hover{background:var(--color-primary-soft);color:var(--color-primary)}.user-menu-panel form{margin:4px 0 0;padding-top:4px;border-top:1px solid var(--color-border)}.breadcrumbs{display:flex;align-items:center;gap:8px;margin-bottom:11px;color:var(--color-muted);font-size:.8rem}.breadcrumbs a{color:var(--color-muted);text-decoration:none}.breadcrumbs a:hover{color:var(--color-accent)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 24px;padding:0;background:transparent;color:var(--color-text);border-radius:0}.page-heading{max-width:760px}.page-heading h1{margin:0;font-size:clamp(1.85rem,3.5vw,2.3rem);letter-spacing:-.025em}.page-heading p{max-width:680px;margin:8px 0 0;color:var(--color-muted);font-size:1rem}.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.surface-card,.admin-card,.admin-dashboard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn,.primary-action,.secondary-action,.danger-action,.download-excel-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:10px;font:inherit;font-size:.9rem;font-weight:750;line-height:1.15;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.btn:hover,.primary-action:hover,.secondary-action:hover,.danger-action:hover,.download-excel-button:hover{transform:translateY(-1px)}.btn:disabled,.primary-action:disabled,.download-excel-button:disabled{cursor:not-allowed;opacity:.62;transform:none}.btn-primary,.primary-action{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn-primary:hover,.primary-action:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff}.btn-secondary{background:var(--color-primary-light);border-color:var(--color-primary-light);color:#fff}.btn-secondary:hover{background:var(--color-primary);color:#fff}.btn-outline,.secondary-action,.download-excel-button{background:#fff;border-color:#9db1c4;color:var(--color-primary-light)}.btn-outline:hover,.secondary-action:hover,.download-excel-button:hover{background:var(--color-primary-soft);border-color:var(--color-primary-light);color:var(--color-primary)}.btn-danger,.danger-action{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger:hover,.danger-action:hover{background:#8e1b13;color:#fff}.btn-ghost{background:transparent;border-color:transparent;color:var(--color-primary-light)}.btn-ghost:hover{background:var(--color-primary-soft)}.btn-sm{min-height:36px;padding:7px 11px;font-size:.82rem}.btn-lg{min-height:50px;padding:13px 19px;font-size:1rem}.btn-icon{width:44px;padding:0}.ui-icon{width:19px;height:19px;flex:0 0 auto}.form-group,label{color:var(--color-text)}.form-group{display:grid;gap:6px}.form-label,label{font-size:.88rem;font-weight:700}.form-control,input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:46px;padding:10px 12px;background:#fff;color:var(--color-text);border:1px solid #b7c6d4;border-radius:10px;box-shadow:0 1px 0 rgba(20,35,60,.02);transition:border-color .16s ease,box-shadow .16s ease}.form-control:hover,input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#8fa4b8}.form-control:focus,input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(20,122,104,.14);outline:0}textarea{min-height:110px;resize:vertical}.form-help{color:var(--color-muted);font-size:.82rem}.form-error,.field-error{color:var(--color-danger);font-size:.82rem;font-weight:700}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:6px}.check-line,.verification-check{display:flex!important;align-items:flex-start;gap:9px}.check-line input,.verification-check input{width:18px!important;height:18px;min-height:0;margin-top:2px;accent-color:var(--color-accent)}.badge,.status-badge,.source-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid transparent;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.025em;line-height:1.2}.badge-success,.status-active,.source-regciv{background:#e7f7ef;border-color:#b8e2ca;color:var(--color-success)}.badge-warning,.status-warning,.source-ocr_pdf_pendiente{background:#fff5dc;border-color:#f1d89b;color:#80520b}.badge-danger{background:#ffebe8;border-color:#f4beb8;color:var(--color-danger)}.badge-info,.source-dnit_ruc{background:#eaf3ff;border-color:#c1d9f5;color:#245b91}.badge-neutral,.status-inactive{background:#eef2f5;border-color:#d6dee5;color:#536273}.data-table-wrap,.table-scroll{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.data-table,.table-card table,.admin-dashboard table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:.88rem}.data-table th,.data-table td,.table-card th,.table-card td,.admin-dashboard th,.admin-dashboard td{padding:13px 14px;text-align:left;vertical-align:middle;border-bottom:1px solid #e6edf3}.data-table th,.table-card th,.admin-dashboard th{background:#f0f4f8;color:#42556d;font-size:.73rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}.data-table tbody tr:hover,.table-card tbody tr:hover,.admin-dashboard tbody tr:hover{background:#f8fbfd}.data-table tbody tr:last-child td,.table-card tbody tr:last-child td,.admin-dashboard tbody tr:last-child td{border-bottom:0}.numeric{text-align:right!important;font-variant-numeric:tabular-nums}.empty-state{display:grid;justify-items:center;gap:8px;padding:34px 20px;background:#f8fafc;border:1px dashed #bccbd8;border-radius:var(--radius-md);text-align:center}.empty-state-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary-light)}.empty-state h3{margin:4px 0 0;font-size:1rem}.empty-state p{max-width:520px;margin:0 0 7px;color:var(--color-muted);font-size:.88rem}.auth-main{display:grid;place-items:center;min-height:100vh;padding:24px}.auth-card{width:min(100%,440px);padding:34px;background:#fff;border:1px solid var(--color-border);border-radius:20px;box-shadow:var(--shadow-md)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.auth-brand .brand-mark{background:var(--color-primary);color:#fff}.auth-brand strong,.auth-brand small{display:block}.auth-brand small{color:var(--color-muted);font-size:.78rem}.auth-card h1{margin:0;font-size:1.9rem}.auth-card>.auth-copy{margin:8px 0 24px;color:var(--color-muted)}.form-stack{display:grid;gap:16px}.auth-footer{margin:22px 0 0;color:var(--color-muted);font-size:.78rem;text-align:center}.public-page{padding-block:48px}.public-hero{padding:clamp(28px,5vw,58px);background:linear-gradient(135deg,var(--color-primary),#203d64);color:#fff;border-radius:22px;box-shadow:var(--shadow-md)}.public-hero h1{max-width:720px;margin:8px 0 12px;color:#fff;font-size:clamp(2rem,5vw,3.6rem)}.public-hero p{max-width:780px;margin:0;color:#cedaea;font-size:1.02rem}.eyebrow{color:#82d5c4;font-size:.77rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.landing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:22px}.landing-card{display:flex;min-height:142px;flex-direction:column;justify-content:space-between;padding:20px;background:#fff;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-decoration:none}.landing-card:hover{border-color:#9db4c8;box-shadow:0 14px 30px rgba(20,35,60,.1);transform:translateY(-2px)}.landing-card.active{background:#ecf8f5;border-color:#a9d9ce}.landing-card span{color:var(--color-muted);font-size:.84rem}.simple-state{width:min(100%,680px);margin:8vh auto;padding:34px;text-align:center}.simple-state h1{font-size:2rem}.simple-state p{color:var(--color-muted)}.excel-spinner{width:1rem;height:1rem;border:.15rem solid currentColor;border-right-color:transparent;border-radius:50%;animation:excel-spin .7s linear infinite}.excel-spinner[hidden]{display:none}@keyframes excel-spin{to{transform:rotate(360deg)}}.action-menu{position:relative}.action-menu summary{list-style:none}.action-menu summary::-webkit-details-marker{display:none}.row-actions-menu{position:absolute;z-index:20;right:0;display:grid;gap:4px;width:220px;margin-top:6px;padding:7px;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow-md)}.row-actions-menu a,.row-actions-menu button{display:flex;width:100%;justify-content:flex-start;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--color-text);font:inherit;font-size:.84rem;text-decoration:none;cursor:pointer}.row-actions-menu a:hover,.row-actions-menu button:hover{background:var(--color-primary-soft)}.row-actions-menu .danger-link{color:var(--color-danger)}.row-actions-menu form{margin:0}.account-warning{padding:12px 14px;background:#fff5dc;border:1px solid #f1d89b;border-radius:10px;color:#77500f}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
