@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400&display=swap";:root{--bg:#fff;--bg-suave:#f7f7f5;--bg-card:#fff;--border:#e8e8e4;--border-strong:#d0d0c8;--navy:#1a2a4a;--navy-hover:#243660;--navy-dim:#1a2a4a12;--dorado:#b8860b;--dorado-claro:#d4a017;--dorado-dim:#b8860b1a;--texto:#1a1a1a;--texto-2:#555550;--texto-3:#999990;--error:#c0392b;--exito:#27ae60;--radio:4px;--radio-lg:8px;--sombra:0 1px 4px #00000014, 0 4px 16px #0000000a;--sombra-hover:0 2px 8px #0000001a, 0 8px 24px #0000000f}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-suave);color:var(--texto);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,system-ui,sans-serif;line-height:1.6}h1,h2,h3{color:var(--navy);font-family:Playfair Display,Georgia,serif}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg-suave)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.btn{border-radius:var(--radio);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:7px;padding:9px 20px;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;transition:all .18s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover:not(:disabled){background:var(--navy-hover);box-shadow:var(--sombra-hover)}.btn-outline{color:var(--navy);border:1.5px solid var(--navy);background:0 0}.btn-outline:hover:not(:disabled){background:var(--navy);color:#fff}.btn-ghost{color:var(--texto-2);border:1px solid var(--border);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--border-strong);color:var(--texto);background:var(--bg-suave)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-success{background:var(--exito);color:#fff}.btn-sm{padding:5px 12px;font-size:.8rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radio-lg);box-shadow:var(--sombra);padding:24px;transition:box-shadow .18s,border-color .18s}.card:hover{box-shadow:var(--sombra-hover);border-color:var(--border-strong)}input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radio);width:100%;color:var(--texto);outline:none;padding:10px 14px;font-family:Inter,sans-serif;font-size:.9rem;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--texto-3)}input:focus,select:focus,textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1a2a4a14}textarea{resize:vertical;min-height:90px}label{color:var(--texto-2);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-size:.78rem;font-weight:600;display:block}.form-group{margin-bottom:16px}.error-msg{color:var(--error);margin-top:6px;font-size:.83rem}.success-msg{color:var(--exito);margin-top:6px;font-size:.83rem}.divider{background:var(--border);height:1px;margin:20px 0}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:20px;align-items:center;gap:4px;padding:2px 9px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-activo{color:#1a6b3a;background:#e8f5ee;border:1px solid #b8dfc8}.badge-pendiente{color:#8a6500;background:#fef9e7;border:1px solid #f0d870}.badge-rechazado{color:#9b1c1c;background:#fdecea;border:1px solid #f5c0bb}.badge-general{color:#1a4a7a;background:#eaf2fb;border:1px solid #b8d4ee}.badge-urgente{color:#9b1c1c;background:#fdecea;border:1px solid #f5c0bb}.badge-resolucion{color:#5a2a8a;background:#f3eafa;border:1px solid #d4b8ee}.loading-spinner{border:2px solid #1a2a4a26;border-top-color:var(--navy);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}.loading-spinner.white{border-color:#fff #ffffff4d #ffffff4d}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--texto-3);padding:64px 20px}.empty-state svg{opacity:.2;margin-bottom:16px}.empty-state h3{color:var(--texto-2);margin-bottom:8px;font-size:1.2rem}.empty-state p{font-size:.9rem}@media (width<=768px){.card{padding:16px}}.navbar{border-bottom:1px solid var(--border);z-index:100;background:#fff;position:sticky;top:0;box-shadow:0 1px 8px #0000000f}.navbar-inner{align-items:center;gap:0;max-width:1200px;height:68px;margin:0 auto;padding:0 32px;display:flex}.navbar-brand{flex-shrink:0;align-items:center;gap:12px;margin-right:auto;text-decoration:none;display:flex}.brand-logo{border:1px solid var(--border);background:var(--bg-suave);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex;overflow:hidden}.brand-logo img{object-fit:cover;width:100%;height:100%}.brand-wordmark img{width:auto;height:26px}.brand-wordmark span{color:var(--navy);font-family:Playfair Display,Georgia,serif;font-size:.95rem;font-weight:600}.navbar-links{align-items:center;gap:2px;margin:0 20px;display:flex}.nav-link{border-radius:var(--radio);color:var(--texto-2);align-items:center;gap:6px;padding:8px 12px;font-size:.875rem;font-weight:400;text-decoration:none;transition:color .15s,background .15s;display:flex;position:relative}.nav-link:hover{color:var(--navy);background:var(--navy-dim)}.nav-link.active{color:var(--navy);font-weight:500}.nav-link.active:after{content:"";background:var(--dorado);border-radius:2px;height:2px;position:absolute;bottom:2px;left:12px;right:12px}.navbar-user{border-left:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding-left:20px;display:flex}.user-name{color:var(--texto-2);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:.83rem;overflow:hidden}.portal-badge{text-transform:uppercase;letter-spacing:.1em;color:var(--navy);background:var(--navy-dim);border:1px solid #1a2a4a26;border-radius:20px;flex-shrink:0;padding:2px 8px;font-size:.66rem;font-weight:600}.subbarra{background:var(--bg-suave);border-bottom:1px solid var(--border)}.subbarra-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1200px;height:40px;margin:0 auto;padding:0 32px;display:flex}.subnav{align-items:center;gap:2px;display:flex}.subnav-link{border-radius:var(--radio);color:var(--texto-2);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:5px 12px;font-size:.8rem;font-weight:400;text-decoration:none;transition:all .15s;display:flex;position:relative}.subnav-link:hover{color:var(--navy);background:var(--navy-dim)}.subnav-link.active{color:var(--navy);font-weight:500}.subnav-link.active:after{content:"";background:var(--dorado);border-radius:2px;height:2px;position:absolute;bottom:0;left:12px;right:12px}.subnav-user{align-items:center;gap:10px;display:flex}.site-footer{background:var(--navy);margin-top:auto;padding:40px 32px 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:40px;max-width:1200px;margin:0 auto;padding-bottom:32px;display:flex}.footer-brand{align-items:center;gap:12px;display:flex}.footer-brand .brand-logo{background:#ffffff0d;border-color:#ffffff26}.footer-name{color:#ffffffd9;font-family:Playfair Display,serif;font-size:.9rem}.footer-contact{color:#ffffff8c;font-size:.82rem;line-height:1.9}.footer-contact a{color:#ffffff8c;text-decoration:none}.footer-contact a:hover{color:var(--dorado-claro)}.footer-links{align-items:center;gap:20px;display:flex}.footer-links a{color:#ffffff8c;font-size:.82rem;text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--dorado-claro)}.footer-bottom{color:#ffffff59;border-top:1px solid #ffffff1a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:16px 0;font-size:.75rem;display:flex}@media (width<=900px){.navbar-inner,.subbarra-inner{padding:0 20px}.nav-link .label{display:none}}@media (width<=640px){.navbar-links,.user-name{display:none}.footer-inner{flex-direction:column;gap:24px}}.auth-wrapper{background:var(--bg-suave);flex-direction:column;min-height:100vh;display:flex}.auth-page{flex:1;display:flex}.auth-left{background:var(--navy);flex:1;align-items:center;padding:64px 56px;display:flex;position:relative;overflow:hidden}.auth-left:before{content:"";border:1px solid #d4a01726;border-radius:50%;width:300px;height:300px;position:absolute;top:-80px;right:-80px}.auth-left:after{content:"";border:1px solid #d4a0171a;border-radius:50%;width:200px;height:200px;position:absolute;bottom:-60px;left:-60px}.auth-left-content{z-index:1;max-width:400px;position:relative}.auth-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--dorado-claro);margin-bottom:20px;font-size:.72rem;font-weight:500}.auth-left-content h1{color:#fff;margin-bottom:20px;font-family:Playfair Display,serif;font-size:2.6rem;font-weight:400;line-height:1.2}.auth-left-content h1 em{color:var(--dorado-claro);font-style:italic}.auth-divider{background:var(--dorado);width:40px;height:2px;margin-bottom:24px}.auth-description{color:#fff9;margin-bottom:36px;font-size:.95rem;line-height:1.75}.auth-features{flex-direction:column;gap:14px;display:flex}.auth-feature{align-items:flex-start;gap:12px;display:flex}.auth-feature-dot{background:var(--dorado);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:7px}.auth-feature p{color:#fff9;font-size:.875rem;line-height:1.5}.auth-feature strong{color:#fff;font-weight:500}.auth-right{border-left:1px solid var(--border);background:#fff;flex:0 0 420px;justify-content:center;align-items:center;padding:48px 40px;display:flex}.auth-card{width:100%}.auth-title{color:var(--navy);margin-bottom:4px;font-size:1.6rem;font-weight:400}.auth-subtitle{color:var(--texto-3);margin-bottom:28px;font-size:.85rem}.auth-tabs{border-bottom:2px solid var(--border);margin-bottom:24px;display:flex}.auth-tab{cursor:pointer;color:var(--texto-3);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:10px;font-family:Inter,sans-serif;font-size:.875rem;font-weight:400;transition:all .15s}.auth-tab:hover{color:var(--navy)}.auth-tab.active{color:var(--navy);border-bottom-color:var(--dorado);font-weight:500}.auth-note{color:var(--texto-2);text-align:center;background:var(--bg-suave);border:1px solid var(--border);border-radius:var(--radio);margin-top:16px;padding:12px;font-size:.8rem;line-height:1.6}@media (width<=860px){.auth-page{flex-direction:column}.auth-left{padding:48px 32px}.auth-left-content h1{font-size:2rem}.auth-right{border-left:none;border-top:1px solid var(--border);flex:none;padding:40px 32px}}.page-container{max-width:1100px;min-height:calc(100vh - 200px);margin:0 auto;padding:36px 32px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.page-header h2{color:var(--navy);margin-bottom:4px;font-size:1.8rem;font-weight:400}.page-subtitle{color:var(--texto-3);align-items:center;gap:8px;font-size:.875rem;display:flex}.unread-badge{background:var(--dorado-dim);color:var(--dorado);border:1px solid #b8860b4d;border-radius:20px;padding:2px 8px;font-size:.7rem;font-weight:600}.loading-center{justify-content:center;padding:80px;display:flex}.filter-tabs{gap:6px;display:flex}.filter-tab{border:1px solid var(--border);color:var(--texto-2);cursor:pointer;background:#fff;border-radius:20px;padding:6px 14px;font-size:.8rem;transition:all .15s}.filter-tab:hover{border-color:var(--navy);color:var(--navy)}.filter-tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}.expedientes-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.expediente-card{cursor:default}.exp-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.exp-numero{color:var(--texto-3);font-family:JetBrains Mono,monospace;font-size:.75rem}.exp-caratula{color:var(--texto);margin-bottom:10px;font-family:Inter,sans-serif;font-size:1rem;font-weight:500;line-height:1.4}.exp-juzgado{color:var(--texto-3);align-items:center;gap:6px;margin-bottom:6px;font-size:.82rem;display:flex}.exp-fecha{color:var(--texto-3);border-top:1px solid var(--border);padding-top:10px;font-size:.75rem}.novedades-list{flex-direction:column;gap:12px;display:flex}.novedad-item{border-left:3px solid var(--border)}.novedad-item.unread{border-left-color:var(--dorado)}.nov-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.nov-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dot-unread{background:var(--dorado);border-radius:50%;flex-shrink:0;width:7px;height:7px}.nov-exp{color:var(--texto-3);font-size:.75rem}.nov-fecha{color:var(--texto-3);white-space:nowrap;font-size:.75rem}.nov-titulo{color:var(--navy);margin-bottom:8px;font-family:Inter,sans-serif;font-size:1rem;font-weight:500}.nov-contenido{color:var(--texto-2);white-space:pre-wrap;font-size:.875rem;line-height:1.7}.table-wrapper{padding:0;overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--texto-3);background:var(--bg-suave);border-bottom:1px solid var(--border);padding:12px 16px;font-size:.72rem;font-weight:600}.data-table td{border-bottom:1px solid var(--border);padding:13px 16px;font-size:.875rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-suave)}.td-secondary{color:var(--texto-3)}.td-actions{flex-wrap:wrap;gap:6px;display:flex}.row-highlight td{background:#fffdf0}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a2a4a66;justify-content:center;align-items:center;padding:24px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box{border:1px solid var(--border);border-radius:var(--radio-lg);background:#fff;width:100%;max-width:560px;padding:28px;animation:.18s slideUp;box-shadow:0 20px 60px #1a2a4a26}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-box h3{margin-bottom:0;font-size:1.15rem;font-weight:400}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.page-container{padding:20px 16px}.expedientes-grid,.form-row{grid-template-columns:1fr}.td-actions{flex-direction:column}}
