@import "https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800;900&display=swap";
:root{--primary:#18181b;--primary-dark:#09090b;--primary-light:#f4f4f5;--success:#16a34a;--success-dark:#15803d;--danger:#dc2626;--danger-dark:#b91c1c;--warning:#d97706;--warning-dark:#b45309;--info:#2563eb;--bg-main:#fafafa;--bg-card:#fff;--bg-subtle:#f4f4f5;--text-main:#09090b;--text-muted:#71717a;--border:#e4e4e7;--border-dark:#d4d4d8;--radius:8px;--shadow-card:0 1px 3px #0000000f, 0 1px 2px #0000000a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Geist,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9375rem;line-height:1.55}a{color:var(--text-main);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem}@media (max-width:640px){.container{padding:1rem .75rem}}.card{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-bottom:1.25rem;padding:1.5rem}h1{letter-spacing:-.02em;font-size:1.5rem;font-weight:700;line-height:1.25}h2{letter-spacing:-.01em;font-size:1.0625rem;font-weight:600;line-height:1.35}h3{font-size:.9375rem;font-weight:600;line-height:1.4}h4{font-size:.875rem;font-weight:600}.btn{border-radius:var(--radius);cursor:pointer;text-align:center;white-space:nowrap;color:#fff;border:1px solid #0000;justify-content:center;align-items:center;gap:.35rem;padding:.4rem .875rem;font-family:inherit;font-size:.8125rem;font-weight:500;line-height:1.25;transition:background-color .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex;text-decoration:none!important}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background-color:var(--primary);border-color:var(--primary)}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark);border-color:var(--primary-dark)}.btn-danger{background-color:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background-color:var(--danger-dark);border-color:var(--danger-dark)}.btn-success{background-color:var(--success);border-color:var(--success)}.btn-success:hover:not(:disabled){background-color:var(--success-dark);border-color:var(--success-dark)}.btn-preview{background-color:var(--warning);border-color:var(--warning)}.btn-preview:hover:not(:disabled){background-color:var(--warning-dark);border-color:var(--warning-dark)}.btn-outline{border-color:var(--border-dark);color:var(--text-main);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--bg-subtle);border-color:var(--border-dark);color:var(--text-main)}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-muted);letter-spacing:.01em;margin-bottom:.35rem;font-size:.8rem;font-weight:500;display:block}.form-group input[type=text],.form-group input[type=number],.form-group input[type=password],.form-group input[type=file]{background-color:var(--bg-card);border:1px solid var(--border-dark);border-radius:var(--radius);width:100%;color:var(--text-main);padding:.5rem .75rem;font-family:inherit;font-size:16px;transition:border-color .12s,box-shadow .12s}.form-group input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #18181b14}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}thead th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.055em;border-bottom:1px solid var(--border);background-color:var(--bg-subtle);white-space:nowrap;padding:.55rem .875rem;font-size:.72rem;font-weight:600}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.6rem .875rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background-color:#fafafa}.badge{letter-spacing:.03em;white-space:nowrap;border-radius:9999px;padding:.18rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.badge.open{color:#15803d;background-color:#16a34a1a;border:1px solid #16a34a33}.badge.closed{color:#52525b;background-color:#71717a1a;border:1px solid #71717a33}.badge.exacto{color:#15803d;background-color:#16a34a1a;border:1px solid #16a34a33}.badge.faltante{color:#b45309;background-color:#d977061a;border:1px solid #d9770633}.badge.sobrante{color:#1d4ed8;background-color:#2563eb1a;border:1px solid #2563eb33}.badge.conflicto{color:#b91c1c;background-color:#dc26261a;border:1px solid #dc262633}.badge.sin_contar{color:var(--text-muted);background-color:#71717a14;border:1px solid #71717a26}.badge.contado{color:#6d28d9;background-color:#7c3aed1a;border:1px solid #7c3aed33}.badge.en_curso{color:#0e7490;background-color:#06b6d41a;border:1px solid #06b6d433}.tab-bar{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0;margin-bottom:1.5rem;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.55rem 1.125rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:color .12s,border-color .12s}.tab-btn:hover{color:var(--text-main)}.tab-btn.active{color:var(--text-main);border-bottom-color:var(--text-main);font-weight:600}.filter-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem;display:flex}.filter-chip{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:9999px;padding:.28rem .75rem;font-family:inherit;font-size:.8rem;font-weight:500;transition:background-color .12s,color .12s,border-color .12s}.filter-chip:hover{border-color:var(--border-dark);color:var(--text-main)}.filter-chip.active{background-color:var(--primary);border-color:var(--primary);color:#fff}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.dashboard-header h1{letter-spacing:-.02em;font-size:1.375rem;font-weight:700}.page-back{color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);cursor:pointer;border-radius:99px;align-items:center;gap:.25rem;margin-bottom:.6rem;padding:.22rem .65rem .22rem .45rem;font-size:.78rem;font-weight:600;transition:all .12s;display:inline-flex}.page-back:before{content:"←";font-size:.9em}.page-back:hover{color:var(--text-main);border-color:var(--border-dark);background:var(--bg-card);text-decoration:none}.page-meta{color:var(--text-muted);margin-top:.15rem;font-size:.8rem}.table-input{border:1px solid var(--border-dark);background:var(--bg-card);width:100%;color:var(--text-main);border-radius:6px;padding:.35rem .5rem;font-family:inherit;font-size:.875rem;transition:border-color .12s}.table-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #18181b14}.login-container{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-form{width:100%;max-width:360px}.login-form h2{text-align:center;letter-spacing:-.02em;margin-bottom:1.5rem;font-size:1.25rem;font-weight:700}.mobile-container{max-width:600px;margin:0 auto;padding:1rem}.mobile-header{text-align:center;border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1.25rem}.mobile-header h2{letter-spacing:-.01em;margin-bottom:.3rem;font-size:1.25rem;font-weight:700}.mobile-header p{color:var(--text-muted);font-size:.9rem}.product-card{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-bottom:1rem;padding:1.125rem;transition:border-color .12s}.product-card h3{margin-bottom:.25rem;font-size:1rem;font-weight:600}.product-card p{color:var(--text-muted);margin-bottom:.875rem;font-size:.875rem}.count-input{text-align:center;border:1px solid var(--border-dark);border-radius:var(--radius);background:var(--bg-card);width:100%;color:var(--text-main);padding:.875rem 1rem;font-family:inherit;font-size:1.5rem;font-weight:700;transition:border-color .12s,box-shadow .12s}.count-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #18181b14}.floating-bottom{background-color:var(--bg-main);border-top:1px solid var(--border);padding:.875rem 0;position:sticky;bottom:0;box-shadow:0 -2px 8px #0000000a}.btn-mobile-submit{border-radius:var(--radius);padding:.875rem 1.25rem;font-size:1rem;font-weight:600}.alert{border-radius:var(--radius);border:1px solid #0000;margin-bottom:1.25rem;padding:.85rem 1rem;font-size:.875rem}.alert-warning{color:#92400e;background-color:#fffbeb;border-color:#d9770640}.alert-danger{color:#991b1b;background-color:#fef2f2;border-color:#dc262633}.alert-success{color:#166534;background-color:#f0fdf4;border-color:#16a34a33}.alert-info{color:#1e40af;background-color:#eff6ff;border-color:#2563eb33}.flex-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.w-full{width:100%}.text-muted{color:var(--text-muted)}.text-sm{font-size:.875rem}.text-xs{font-size:.8rem}.font-bold{font-weight:700}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);text-align:center;padding:1.25rem 1rem}.stat-card .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.4rem;font-size:.7rem;font-weight:600}.stat-card .stat-value{letter-spacing:-.03em;font-size:2.25rem;font-weight:800;line-height:1}.stat-card .stat-sub{color:var(--text-muted);margin-top:.35rem;font-size:.78rem}.progress-bar-track{background-color:var(--border);border-radius:9999px;width:60px;height:5px;overflow:hidden}.progress-bar-fill{border-radius:9999px;height:100%}code{background-color:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}details{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.25rem;overflow:hidden}details>summary{cursor:pointer;background-color:var(--bg-subtle);-webkit-user-select:none;user-select:none;color:var(--text-main);padding:.7rem 1rem;font-size:.875rem;font-weight:500;list-style:none}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"+ ";color:var(--text-muted)}details[open]>summary:before{content:"− "}details>.details-body{border-top:1px solid var(--border);padding:1rem 1.25rem;font-size:.85rem;line-height:1.7}.pagination{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;display:flex}.pagination-info{color:var(--text-muted);font-size:.8rem}.btn-sm{padding:.28rem .65rem;font-size:.78rem}
