@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--ink:#0f2a4a;--ink-soft:#2e5c8a;--paper:#f5f8fc;--paper-raised:#fff;--line:#dce4ee;--line-soft:#e9eef5;--gold:#2e7cf6;--gold-dark:#1d5fd1;--green:#2f6844;--green-bg:#e7f0ea;--red:#b23a2f;--red-bg:#fbeae8;--text-muted:#5b7089;--font-display:"Fraunces", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius:8px;--shadow-card:0 1px 2px #0f2a4a0f, 0 1px 3px #0f2a4a14;--shadow-modal:0 12px 40px #0f2a4a2e;--sidebar-width:248px;--sidebar-width-collapsed:72px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:600}.mono{font-family:var(--font-mono);letter-spacing:.01em}.app-shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;transition:grid-template-columns .18s;display:grid}@media (width>=861px){.app-shell{height:100vh;overflow:hidden}.sidebar,.main-area{height:100vh;min-height:0;overflow-y:auto}}.app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-width-collapsed) 1fr}.sidebar{background:var(--ink);color:#e9f2ef;flex-direction:column;padding:24px 16px;display:flex;overflow:hidden auto}.sidebar-collapse-btn{color:#e9f2efbf;cursor:pointer;background:#ffffff14;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.sidebar-collapse-btn:hover{color:#fff;background:#ffffff29}.sidebar-mobile-close{display:none}.sidebar-brand{font-family:var(--font-display);color:#fff;white-space:nowrap;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;padding:0 8px 24px;font-size:20px;font-weight:600;display:flex}.sidebar-brand span{color:var(--gold)}.sidebar-brand-logo{object-fit:contain;max-width:170px;max-height:34px}.app-shell.sidebar-collapsed .sidebar-brand-text,.app-shell.sidebar-collapsed .sidebar-brand-logo,.app-shell.sidebar-collapsed .sidebar-empresa,.app-shell.sidebar-collapsed .sidebar-section-title,.app-shell.sidebar-collapsed .sidebar-nav a span:last-child,.app-shell.sidebar-collapsed .sidebar-footer .email{display:none}.app-shell.sidebar-collapsed .sidebar-nav a,.app-shell.sidebar-collapsed .sidebar-brand{justify-content:center}.sidebar-empresa{border-radius:var(--radius);background:#ffffff0f;margin-bottom:24px;padding:10px 8px}.sidebar-empresa label{text-transform:uppercase;letter-spacing:.06em;color:#e9f2ef8c;margin-bottom:4px;font-size:11px;display:block}.sidebar-empresa select{color:#fff;width:100%;font-family:var(--font-body);background:0 0;border:none;padding:2px 0;font-size:14px;font-weight:500}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-section-title{text-transform:uppercase;letter-spacing:.06em;color:#e9f2ef66;padding:16px 10px 6px;font-size:11px}.sidebar-section-title:first-of-type{padding-top:4px}.sidebar-nav a{border-radius:var(--radius);color:#e9f2efbf;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-nav a:hover{color:#fff;background:#ffffff12}.sidebar-nav a.active{color:var(--gold);background:#c98a2c29}.sidebar-footer{border-top:1px solid #ffffff1f;margin-top:auto;padding-top:16px;font-size:13px}.sidebar-footer .email{color:#e9f2efa6;text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;overflow:hidden}.main-area{max-width:1100px;padding:32px 40px 60px}.mobile-topbar,.sidebar-overlay{display:none}@media (width<=860px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.mobile-topbar{background:var(--ink);color:#fff;z-index:120;font-family:var(--font-display);align-items:center;gap:14px;padding:14px 18px;font-size:17px;font-weight:600;display:flex;position:sticky;top:0}.mobile-topbar button{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;flex-shrink:0;width:34px;height:34px;font-size:16px}.mobile-topbar span{color:var(--gold)}.sidebar{z-index:200;width:264px;max-width:82vw;box-shadow:var(--shadow-modal);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-collapse-btn{display:none}.sidebar-mobile-close{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;display:flex}.sidebar-overlay{z-index:190;opacity:0;pointer-events:none;background:#0f2a4a73;transition:opacity .2s;display:block;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.main-area{max-width:100%;padding:20px 18px 48px}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.field-row,.field-row-3,.concepto-fila-compacta{grid-template-columns:1fr}.modal-panel{padding:22px 18px 18px}.data-table thead{display:none}.data-table tbody tr{border-bottom:1px solid var(--line-soft);padding:12px 16px;display:block}.data-table tbody td{border-bottom:none;justify-content:space-between;gap:12px;padding:6px 0;font-size:13.5px;display:flex}.data-table tbody td:before{content:attr(data-label);color:var(--text-muted);font-weight:600}}.page-header{justify-content:space-between;align-items:flex-end;margin-bottom:28px;display:flex}.page-header h1{font-size:28px}.page-header p{color:var(--text-muted);margin:6px 0 0;font-size:14.5px}.btn{font-family:var(--font-body);border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:600;transition:filter .12s,transform 50ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gold);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.93)}.btn-secondary{background:var(--paper-raised);color:var(--ink);border-color:var(--line)}.btn-secondary:hover:not(:disabled){background:var(--paper)}.btn-ghost{color:var(--ink-soft);background:0 0}.btn-ghost:hover:not(:disabled){background:#14312d0f}.btn-danger{color:var(--red);background:0 0}.btn-danger:hover:not(:disabled){background:var(--red-bg)}.btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.field{margin-bottom:16px}.field label{color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field .hint{color:var(--text-muted);margin-left:6px;font-size:12px;font-weight:400}.input,select.input,textarea.input{width:100%;font-family:var(--font-body);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);color:var(--ink);padding:9px 11px;font-size:14px}.input.mono{font-family:var(--font-mono)}.input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #c98a2c26}.field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field-row-3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.concepto-fila-compacta{grid-template-columns:2.2fr .8fr 1fr .9fr;gap:10px;display:grid}.form-error{background:var(--red-bg);color:var(--red);border-radius:var(--radius);margin-bottom:16px;padding:10px 12px;font-size:13.5px}.card{background:var(--paper-raised);border:1px solid var(--line-soft);box-shadow:var(--shadow-card);border-radius:12px;overflow:hidden}table.data-table{border-collapse:collapse;width:100%}.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--line-soft);background:#fafbfa;padding:12px 20px;font-size:11.5px;font-weight:600}.data-table tbody td{border-bottom:1px solid var(--line-soft);color:var(--ink);padding:14px 20px;font-size:14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#fafbfa}.data-table .row-actions{opacity:0;justify-content:flex-end;gap:4px;transition:opacity .12s;display:flex}.data-table tbody tr:hover .row-actions{opacity:1}.sello{align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.sello:before{content:"";border-radius:50%;width:8px;height:8px;display:inline-block}.sello-activo{color:var(--green)}.sello-activo:before{background:var(--green);box-shadow:0 0 0 3px var(--green-bg)}.sello-inactivo{color:var(--red)}.sello-inactivo:before{background:var(--red);box-shadow:0 0 0 3px var(--red-bg)}.tag{background:var(--green-bg);color:var(--green);border-radius:100px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.empty-state{text-align:center;padding:64px 24px}.empty-state h3{margin-bottom:6px;font-size:17px}.empty-state p{color:var(--text-muted);margin:0 0 20px;font-size:14px}.modal-overlay{z-index:100;background:#14312d59;justify-content:center;align-items:flex-start;padding:48px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{background:var(--paper-raised);box-shadow:var(--shadow-modal);border-radius:14px;width:100%;max-width:560px;padding:28px 28px 24px}.modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.modal-header h2{font-size:20px}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:20px;line-height:1}.modal-footer{border-top:1px solid var(--line-soft);justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px;display:flex}.fieldset-title{text-transform:uppercase;letter-spacing:.05em;color:var(--gold-dark);margin:20px 0 12px;font-size:12.5px;font-weight:700}.fieldset-title:first-child{margin-top:0}.auth-shell{background:radial-gradient(circle at 15% 12%, #2e7cf629, transparent 45%), radial-gradient(circle at 85% 88%, #2e7cf61a, transparent 45%), var(--ink);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--paper-raised);width:100%;max-width:400px;box-shadow:var(--shadow-modal);border-radius:16px;padding:36px 32px 30px}.auth-brand{font-family:var(--font-display);color:var(--ink);text-align:center;margin-bottom:4px;font-size:24px;font-weight:600}.auth-brand span{color:var(--gold)}.auth-subtitle{text-align:center;color:var(--text-muted);margin:0 0 28px;font-size:14px}.auth-footer{text-align:center;color:var(--text-muted);margin-top:18px;font-size:13.5px}.auth-footer a{color:var(--gold);font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}
