:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;--bg: #f5f6f8;--panel: #ffffff;--border: #e2e5ea;--text: #1f2430;--text-muted: #667085;--primary: #2f5bea;--primary-hover: #2447c2;--primary-soft: rgba(47, 91, 234, .08);--primary-soft-strong: rgba(47, 91, 234, .16);--pastel-blue: #eaeffd;--pastel-blue-border: #d3ddf9;--danger: #d8452c;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}h1{font-size:1.6rem;margin:0 0 1rem}button{border-radius:6px;border:1px solid var(--border);padding:.5em 1em;font-size:.9rem;font-weight:500;font-family:inherit;background-color:var(--panel);color:var(--text);cursor:pointer;transition:border-color .15s,background-color .15s}button:hover{border-color:var(--primary)}input,select,textarea{font-family:inherit;font-size:.9rem;padding:.5em .6em;border-radius:6px;border:1px solid var(--border);background-color:var(--panel);color:var(--text)}.app-shell{display:flex;min-height:100vh}.sidebar{width:230px;flex-shrink:0;background-color:var(--pastel-blue);border-right:1px solid var(--pastel-blue-border);padding:1.25rem .75rem}.sidebar-brand{font-weight:700;font-size:1.1rem;padding:0 .5rem 1.25rem;margin-bottom:.5rem;border-bottom:2px solid var(--primary-soft-strong);color:var(--primary)}.sidebar-link{display:block;padding:.55rem .65rem;border-radius:8px;border-left:3px solid transparent;color:var(--text);font-size:.9rem;font-weight:500;margin-bottom:.2rem;transition:background-color .15s,color .15s,border-color .15s}.sidebar-link:hover{background-color:var(--primary-soft-strong);color:var(--primary)}.sidebar-link.active{background-color:var(--primary);border-left-color:var(--primary-hover);color:#fff;font-weight:600;box-shadow:0 1px 3px #2f5bea59}.content{flex:1;padding:1.75rem 2rem}.page{max-width:1100px}.top-bar{display:flex;align-items:center;gap:.85rem;padding:.6rem .9rem;margin-bottom:1.5rem;background-color:var(--panel);border:1px solid var(--border);border-radius:8px}.top-bar-logo{width:40px;height:40px;object-fit:contain;flex-shrink:0}.top-bar-info{display:flex;flex-direction:column;min-width:0}.top-bar-nombre{font-weight:600;font-size:.95rem;color:var(--text)}.top-bar-detalle{font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.reporte-header{align-items:flex-start}.reporte-titulo{margin:0;font-size:1.1rem}.reporte-subtitulo{margin:.2rem 0 0;font-size:.82rem;color:var(--text-muted)}.btn-primary{background-color:var(--primary);color:#fff;border:1px solid var(--primary);padding:.5em 1em;border-radius:6px;font-size:.9rem;font-weight:500}.btn-primary:hover{background-color:var(--primary-hover);color:#fff}.search-bar{display:flex;gap:.5rem;margin-bottom:1rem}.search-bar input{flex:1}.form-error{background-color:#fdecea;color:var(--danger);border:1px solid #f5c6c0;padding:.6rem .8rem;border-radius:6px;margin-bottom:1rem;font-size:.85rem}.data-table{width:100%;border-collapse:collapse;background-color:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;font-size:.88rem}.data-table th,.data-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border)}.data-table th{background-color:var(--bg);color:var(--text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.row-actions{display:flex;gap:.75rem}.row-actions button{border:none;background:none;color:var(--danger);padding:0;font-size:.85rem}.tercero-form{background-color:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1.5rem;max-width:800px}.form-row{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.form-row label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:var(--text-muted);flex:1;min-width:180px}.form-row label.full-width{flex-basis:100%}.form-row.roles{align-items:center;gap:1.25rem}.form-row-label{font-size:.82rem;color:var(--text-muted);min-width:unset}.checkbox{flex-direction:row!important;align-items:center;gap:.4rem!important;flex:unset!important}textarea{min-height:80px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.tab-bar{display:inline-flex;gap:.2rem;padding:.3rem;background-color:var(--pastel-blue);border:1px solid var(--pastel-blue-border);border-radius:10px;margin-bottom:1.25rem}.tab-link{padding:.45rem .95rem;font-size:.85rem;font-weight:500;color:var(--text-muted);border:none;background-color:transparent;border-radius:7px;margin-bottom:0;transition:background-color .15s,color .15s}.tab-link:hover{color:var(--primary);background-color:var(--primary-soft-strong)}.tab-link.active{color:#fff;background-color:var(--primary);font-weight:600;box-shadow:0 1px 3px #2f5bea59}.inline-manager{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;align-items:start}.inline-manager .data-table{font-size:.85rem}.panel{background-color:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.panel h2{font-size:1rem;margin:0 0 1rem}.panel .form-row{flex-direction:column}.panel .form-row label{min-width:unset}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.badge-entrada{background:#e3f6e8;color:#1e7a3a}.badge-salida{background:#fdecea;color:#b8371f}.badge-ajuste{background:#fff4de;color:#a6690a}.badge-transferencia{background:#e8ecfd;color:#2f43c9}.stock-bajo{color:var(--danger);font-weight:600}.resumen-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1.25rem}.resumen-card{background-color:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.3rem}.resumen-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.resumen-valor{font-size:1.15rem;font-weight:600}.resumen-positivo{color:var(--success, #1a7f37)}.resumen-negativo{color:var(--danger)}.filters-bar{display:flex;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}.filters-bar select,.filters-bar input{min-width:160px}.autocomplete{position:relative}.autocomplete-row{display:flex;gap:.4rem}.autocomplete-row input{flex:1;min-width:0}.autocomplete-row button{flex-shrink:0;width:2.2rem;font-weight:700;line-height:1}.autocomplete-dropdown{position:absolute;top:calc(100% + .25rem);left:0;right:0;background-color:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000014;max-height:240px;overflow-y:auto;z-index:20}.autocomplete-item{padding:.5rem .7rem;font-size:.85rem;cursor:pointer}.autocomplete-item:hover{background-color:var(--bg)}.autocomplete-vacio{color:var(--primary)}.autocomplete-tag{color:var(--text-muted);font-size:.78rem;font-style:italic}.autocomplete-hint{padding:.5rem .7rem;font-size:.82rem;color:var(--text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f121973;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;z-index:100;overflow-y:auto}.modal-content{background-color:var(--panel);border-radius:8px;padding:1.5rem;width:100%;max-width:800px}.modal-content .tercero-form{border:none;padding:0}.doc-pagina{background-color:#7c828d;min-height:100vh;padding:0}.doc-imprimir-toolbar{display:flex;justify-content:center;gap:.6rem;padding:1rem;background-color:#565c66;position:sticky;top:0;z-index:5}.doc-imprimible{width:8.5in;min-height:11in;margin:1.5rem auto;background:#fff;color:#1f2430;padding:1.4cm 1.5cm;box-sizing:border-box;font-size:.85rem;box-shadow:0 2px 14px #0000004d;display:flex;flex-direction:column}.doc-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border-bottom:3px solid var(--doc-color, #2f5bea);padding-bottom:.75rem;margin-bottom:1.1rem}.doc-header-empresa{display:flex;gap:.75rem;align-items:center;min-width:0}.doc-header-logo{width:56px;height:56px;object-fit:contain;flex-shrink:0}.doc-header-empresa-nombre{font-size:1.05rem;font-weight:700;color:#1f2430}.doc-header-empresa-datos{font-size:.75rem;color:#555;line-height:1.4}.doc-header-titulo{text-align:right;flex-shrink:0}.doc-header-tipo{font-size:1.15rem;font-weight:700;color:var(--doc-color, #2f5bea);text-transform:uppercase;letter-spacing:.02em}.doc-header-numero{font-size:1rem;font-weight:600;color:#1f2430}.doc-header-fecha{font-size:.78rem;color:#555}.doc-info-grid{display:flex;justify-content:space-between;gap:1.5rem;margin-bottom:1.1rem;font-size:.82rem}.doc-info-bloque strong{color:#333}.doc-tabla{width:100%;border-collapse:collapse;margin-bottom:1rem;font-size:.78rem}.doc-tabla th{background-color:var(--doc-color, #2f5bea);color:#fff;text-align:left;padding:.4rem .5rem}.doc-tabla td{border-bottom:1px solid #ddd;padding:.4rem .5rem}.doc-tabla .num{text-align:right}.doc-pie-inferior{margin-top:auto;padding-top:1.5rem}.doc-totales-wrap{display:flex;justify-content:flex-end;margin-bottom:1rem}.doc-totales{width:260px;font-size:.82rem}.doc-totales-fila{display:flex;justify-content:space-between;padding:.2rem 0}.doc-totales-total{font-weight:700;font-size:.95rem;border-top:2px solid var(--doc-color, #2f5bea);padding-top:.35rem;margin-top:.2rem}.doc-relacionado{font-size:.78rem;color:#444;margin-bottom:.75rem;padding:.5rem .7rem;border:1px dashed var(--doc-color, #2f5bea);border-radius:4px}.doc-footer{margin-top:.75rem;font-size:.75rem;color:#555}.doc-pie-pagina{margin-top:1rem;padding-top:.6rem;border-top:1px solid #ddd;font-size:.72rem;color:#666;text-align:center}.doc-estado-badge{display:inline-block;font-weight:600;font-size:.72rem;padding:.15rem .55rem;border-radius:999px;margin-top:.2rem}@media print{.doc-imprimir-toolbar{display:none}.doc-pagina{background:none;padding:0}.doc-imprimible{box-shadow:none;margin:0;width:auto;min-height:10in}@page{size:letter;margin:1.2cm}.sidebar,.tab-bar,.no-imprimir{display:none!important}.app-shell{display:block}.content{padding:0}.top-bar{border:none;background:none;padding:0 0 .75rem;margin-bottom:1rem}}
