:root{color:#1f2937;background:#eef4ff;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}body{background:linear-gradient(135deg,#eef4ff 0%,#dfe9ff 45%,#cfe2ff 100%);min-height:100vh;margin:0}.login-page{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #94a3b833;border-radius:24px;width:100%;max-width:420px;max-height:calc(100dvh - 32px);padding:32px 28px;overflow-y:auto;box-shadow:0 20px 45px #3b82f62e}.login-header{margin-bottom:28px}.eyebrow{color:#4f46e5;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.8rem;font-weight:700}.login-header h1{color:#111827;margin:0;font-size:clamp(2rem,3vw,2.5rem)}.login-form{flex-direction:column;gap:20px;display:flex}.input-group{color:#374151;flex-direction:column;gap:8px;font-weight:600;display:flex}.input-group span{font-size:.92rem}.input-group input{color:#111827;background:#f8fafc;border:1px solid #dbe3f0;border-radius:12px;outline:none;width:100%;padding:14px 16px;font-size:1rem;transition:border-color .2s,box-shadow .2s,background .2s}.input-group select{color:#111827;background:#f8fafc;border:1px solid #dbe3f0;border-radius:12px;outline:none;width:100%;padding:14px 16px;font-size:1rem}.input-group select:focus{background:#fff;border-color:#4f46e5;box-shadow:0 0 0 4px #4f46e51f}.input-group input::placeholder{color:#94a3b8}.input-group input:focus{background:#fff;border-color:#4f46e5;box-shadow:0 0 0 4px #4f46e51f}.form-row{justify-content:space-between;align-items:center;gap:12px;font-size:.9rem;display:flex}.remember-me{color:#475569;align-items:center;gap:8px;display:inline-flex}.remember-me input{accent-color:#4f46e5}.form-row a{color:#4f46e5;font-weight:600;text-decoration:none}.form-row a:hover{text-decoration:underline}.login-form button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);border:none;border-radius:12px;padding:14px 18px;font-size:1rem;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 12px 24px #4f46e53d}.login-form button:hover{transform:translateY(-1px);box-shadow:0 16px 28px #4f46e547}.login-form button:active{transform:translateY(0)}.login-form button:disabled{cursor:wait;opacity:.7;transform:none}.login-mode-button{color:#4f46e5!important;box-shadow:none!important;background:0 0!important;border:1px solid #c7d2fe!important}.login-error{color:#b42318;margin:0;font-size:.9rem;font-weight:600}.login-success{color:#166534;margin:0;font-size:.9rem;font-weight:600}@media (width<=480px){.login-page{align-items:flex-start;padding:16px}.login-card{border-radius:18px;max-height:calc(100dvh - 32px);padding:24px 20px}.form-row{flex-direction:column;align-items:flex-start}}@media (width<=360px){.login-card{padding:20px 16px}.login-form{gap:16px}.form-row{font-size:.82rem}}.usuario-floating-menu-button{z-index:5;color:#3f3f46;cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:8px;padding:11px 16px;font-weight:700;position:fixed;top:24px;right:24px;box-shadow:0 4px 14px #0f172a1f}.usuario-floating-menu-button span{margin-right:8px;font-size:1.1rem}.usuario-page{color:#1f2937;background:#f4f6fb;min-height:100dvh;padding:40px 24px;overflow-x:hidden}.usuario-header,.usuario-content{width:min(1000px,100%);margin:0 auto}.usuario-header{border-bottom:1px solid #d9e0ec;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:28px;display:flex}.usuario-header>div{min-width:0}.usuario-header h1{color:#172554;overflow-wrap:anywhere;margin:0;font-size:3.5rem;line-height:1.1}.usuario-eyebrow,.usuario-panel-label{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.8rem;font-weight:700}.usuario-intro{color:#64748b;margin:12px 0 0}.usuario-menu-button,.usuario-logout{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:11px 16px;font-weight:700}.usuario-menu-button:hover,.usuario-logout:hover{color:#1d4ed8;border-color:#2563eb}.usuario-menu-button span{margin-right:8px;font-size:1.1rem}.usuario-content{min-width:0;padding-top:28px}.usuario-welcome{background:#fff;border:1px solid #bfdbfe;border-radius:8px;min-height:300px;padding:32px;box-shadow:0 8px 20px #2563eb14}.usuario-welcome h2{color:#172554;overflow-wrap:anywhere;margin:0;font-size:2rem}.usuario-welcome p:not(.usuario-panel-label){color:#64748b}.usuario-welcome ul{color:#475569;margin-top:28px;padding-left:20px}.usuario-welcome li+li{margin-top:10px}.usuario-overlay{z-index:10;cursor:default;background:#0f172a7a;border:0;position:fixed;inset:0}.usuario-drawer{z-index:20;background:#fff;flex-direction:column;width:min(380px,88vw);height:100dvh;padding:28px 30px;transition:transform .25s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-12px 0 30px #0f172a2e}.usuario-drawer.is-open{transform:translate(0)}.usuario-drawer-header{color:#172554;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding-bottom:24px;font-size:1.4rem;font-weight:800;display:flex}.usuario-drawer-header button{color:#475569;cursor:pointer;background:0 0;border:0;font-size:2rem;line-height:1}.usuario-drawer-options{flex-direction:column;padding:24px 0;display:flex}.usuario-drawer-options button{color:#64748b;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #f1f5f9;align-items:center;gap:16px;padding:18px 0;font-size:1.25rem;font-weight:700;display:flex}.usuario-drawer-options button:hover,.usuario-drawer-options button.is-active{color:#2563eb}.usuario-drawer-options span{color:#93c5fd;width:24px;font-size:.75rem}.user-option-alm{border-bottom:1px solid #f1f5f9}.user-option-alm>button{border-bottom:0;width:100%}.user-option-alm>button small{margin-left:auto;font-size:1.2rem}.usuario-drawer .usuario-logout{margin-top:auto}.user-option-alm-sub{opacity:0;max-height:0;padding:0 0 0 40px;transition:max-height .25s,opacity .2s,padding .25s;overflow:hidden}.user-option-alm-sub.is-open{opacity:1;max-height:120px;padding-bottom:8px}.user-option-alm-sub button{border-bottom:0;width:100%;padding:10px 0;font-size:1rem}.user-option-alm-sub span{color:#60a5fa;width:auto}@media (width<=700px){.usuario-page{padding:32px 20px}.usuario-header h1{font-size:2.5rem}}@media (width<=520px){.usuario-page{padding:24px 16px}.usuario-header{flex-direction:column;gap:16px}.usuario-menu-button{align-self:stretch}.usuario-welcome{padding:24px 20px}.usuario-drawer{width:min(100%,380px);padding:24px}.usuario-drawer-options button{font-size:1.1rem}}@media (width<=360px){.usuario-page{padding:20px 12px}.usuario-header h1{font-size:2rem}.usuario-welcome,.usuario-drawer{padding:20px 16px}}.almacen-page{color:#1e293b;background:#f8fafc;min-height:100dvh;padding:32px 24px 48px}.almacen-back,.almacen-type{cursor:pointer;border:0}.almacen-back{color:#475569;background:0 0;padding:8px 0;font-size:.95rem;font-weight:700}.almacen-back:hover{color:#1d4ed8}.almacen-header,.almacen-list,.almacen-selection,.almacen-selected{width:min(900px,100%);margin:0 auto}.almacen-header{border-bottom:1px solid #dbe3ee;padding:52px 0 28px}.almacen-eyebrow{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:800}.almacen-header h2{color:#172554;margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.almacen-intro{color:#64748b;margin:14px 0 0}.almacen-selection{padding-top:28px}.almacen-selection label{color:#334155;margin-bottom:8px;font-weight:700;display:block}.almacen-selection select{color:#1e293b;width:100%;min-height:52px;font:inherit;background:#fff;border:1px solid #dbe3ee;border-radius:10px;outline:none;padding:14px 16px}.almacen-selection select:focus{border-color:#93c5fd;box-shadow:0 8px 18px #2563eb1a}.almacen-custom-material{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:16px;display:grid}.almacen-custom-material label{color:#1e3a8a;grid-column:1/-1;font-size:.85rem;font-weight:700}.almacen-custom-material input{color:#1e293b;min-width:0;font:inherit;background:#fff;border:1px solid #93c5fd;border-radius:8px;padding:10px 12px}.almacen-custom-material input:focus{border-color:#2563eb;outline:0;box-shadow:0 0 0 3px #2563eb1f}.almacen-custom-material button{color:#fff;font:inherit;cursor:pointer;background:#1d4ed8;border:0;border-radius:8px;padding:10px 16px;font-weight:700}.almacen-selected{background:#fff;border:1px solid #bfdbfe;border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:12px 16px;margin-top:20px;padding:20px;display:grid}.almacen-selected p,.almacen-selected h3{margin:0}.almacen-selected p{color:#64748b;font-size:.85rem}.almacen-selected h3{color:#172554;margin-top:4px;font-size:1.2rem}.almacen-selected-info{min-width:0}.almacen-fields-list{border-top:1px solid #e0e7ff;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:12px;display:grid}.almacen-parts-field{color:#334155;flex-direction:column;gap:6px;min-width:0;font-size:.85rem;font-weight:700;display:flex}.almacen-parts-field input,.almacen-parts-field select,.almacen-parts-field textarea{color:#1e293b;width:100%;font:inherit;background:#f8fafc;border:1px solid #dbe3ee;border-radius:8px;padding:10px 12px}.almacen-parts-field textarea{resize:vertical}.almacen-observations-field{grid-column:1/-1}.almacen-attachments{border-top:1px solid #dbe3ee;grid-column:1/-1;margin-top:8px;padding-top:16px}.almacen-attachments-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.almacen-attachments-heading h3{color:#172554;margin:0}.almacen-attachments-heading span{color:#64748b;font-size:.82rem;font-weight:400}.almacen-attachments .photo-upload{margin-top:14px}.almacen-attachments .photo-upload>span{margin-bottom:8px;display:block}.almacen-attachments .photo-options{flex-wrap:wrap;gap:10px;display:flex}.almacen-attachments .photo-option{color:#287a5b;cursor:pointer;background:#fff;border:1px solid #b7c8bf;border-radius:5px;flex-direction:row;align-items:center;padding:10px 14px;display:inline-flex}.almacen-attachments .photo-option input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.almacen-attachments .photo-preview{align-items:flex-start;gap:12px;margin-top:12px;display:flex}.almacen-attachments .photo-preview img{object-fit:cover;border:1px solid #cbd8e1;border-radius:5px;width:150px;height:100px}.almacen-attachments .photo-preview button{color:#a13d3d;font:inherit;cursor:pointer;background:0 0;border:0;font-weight:700}.almacen-attachments .signatures-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.almacen-attachments .signature-field{min-width:0}.almacen-attachments .signature-field-heading{color:#334155;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.85rem;font-weight:700;display:flex}.almacen-attachments .signature-field-heading button{color:#a13d3d;cursor:pointer;background:0 0;border:0}.almacen-attachments .signature-field canvas{cursor:crosshair;touch-action:none;background:#fff;border:1px dashed #9db2a5;border-radius:5px;width:100%;height:200px;display:block}.almacen-attachments .signature-name{margin-top:8px}.almacen-ticket-photo{margin-top:12px}.almacen-ticket-photo img{object-fit:cover;width:150px;max-height:110px;margin:5px auto;display:block}.almacen-ticket-signatures{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px;display:grid}.almacen-ticket-signatures span{border-top:1px solid #111827;flex-direction:column;justify-content:flex-end;min-height:68px;padding-top:4px;display:flex}.almacen-ticket-signatures img{object-fit:contain;width:100%;height:35px}.almacen-ticket-signatures strong{font-size:9px}.almacen-ticket-signatures small{font-size:8px}.almacen-parts-field input:focus{border-color:#60a5fa;outline:0;box-shadow:0 0 0 3px #2563eb1f}.almacen-actions{grid-column:1/-1;gap:10px;padding-top:8px;display:flex}.almacen-actions button{color:#fff;font:inherit;cursor:pointer;background:#2563eb;border:0;border-radius:8px;padding:12px 18px;font-weight:700}.almacen-actions button+button{color:#334155;background:#e2e8f0}.almacen-actions button:hover:not(:disabled){filter:brightness(.95)}.almacen-actions button:disabled{opacity:.5;cursor:not-allowed}.almacen-message{grid-column:1/-1;margin:0;color:#166534!important;font-size:.9rem!important}.almacen-print-ticket{color:#111827;text-align:center;background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:min(560px,100%);margin:28px auto 0;padding:24px;position:relative}.almacen-qr-modal{z-index:20;background:#0f172a9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.almacen-qr-modal .almacen-print-ticket{margin:auto}.almacen-modal-close{color:#334155;cursor:pointer;background:#e2e8f0;border:0;border-radius:50%;width:36px;height:36px;font-size:1.5rem;line-height:1;position:absolute;top:12px;right:14px}.almacen-print-ticket .project-logo{width:130px;margin:0 auto 8px}.almacen-print-ticket h2{margin:8px 0 16px}.almacen-print-ticket .almacen-qr{width:220px;height:220px;margin:16px auto 8px;display:block}.almacen-qr-help{color:#64748b;font-size:.85rem}.almacen-print-button{color:#fff;font:inherit;cursor:pointer;background:#2563eb;border:0;border-radius:8px;padding:10px 16px;font-weight:700}.almacen-ticket-page{background:#f8fafc;min-height:100dvh;padding:32px 20px}.almacen-document{color:#111827;background:#fff;width:min(760px,100%);margin:0 auto;padding:32px;box-shadow:0 16px 36px #0f172a1f}.almacen-document-header{text-align:center;border-bottom:2px solid #1d4ed8}.almacen-document-header .project-logo{width:150px;margin:0 auto 12px}.almacen-document-header p{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:800}.almacen-document-header h1{margin:8px 0 20px}.almacen-document-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;padding:24px 0;display:grid}.almacen-document-items{margin-top:8px}.almacen-document-items h2{font-size:1.1rem}.almacen-document-items-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.almacen-document-item{border:1px solid #e2e8f0;border-radius:6px;min-width:0;padding:12px}.almacen-document-item h3{margin:0 0 8px;font-size:.95rem}.almacen-document-item p{flex-direction:column;gap:3px;margin:0 0 8px;display:flex}.almacen-document-item p:last-child{margin-bottom:0}.almacen-document-item p strong{color:#64748b;text-transform:uppercase;font-size:.75rem}.almacen-document-grid p{border-bottom:1px solid #e2e8f0;flex-direction:column;gap:3px;margin:0;padding-bottom:8px;display:flex}.almacen-document-grid strong,.almacen-document-photo strong{color:#64748b;text-transform:uppercase;font-size:.75rem}.almacen-document-wide{grid-column:1/-1}.almacen-document-photo{text-align:left;margin-top:4px}.almacen-document-photos,.doc-almacen-photos{flex-wrap:wrap;gap:10px;display:flex}.almacen-document-photo img{object-fit:cover;width:min(240px,100%);max-height:180px;margin-top:8px;display:block}.almacen-document-signatures{text-align:left;margin-top:28px}.almacen-document-signatures h2{font-size:1.1rem}.almacen-ticket-error{color:#b42318}.almacen-color{border:1px solid #0f172a1f;border-radius:50%;flex:0 0 18px;width:18px;height:18px;display:block}.almacen-color-yellow{background:#facc15}.almacen-color-green{background:#22c55e}.almacen-color-blue{background:#3b82f6}.almacen-color-red{background:#ef4444}.almacen-color-orange{background:#f97316}.almacen-color-purple{background:#a855f7}.almacen-color-none{background:#fff;border-color:#94a3b8}.almacen-type-info{flex-direction:column;gap:4px;min-width:0;display:flex}.almacen-type-info strong{color:#172554;font-size:1.15rem}.almacen-type-info>span{color:#64748b;font-size:.95rem}.almacen-type-arrow{color:#2563eb;margin-left:auto;font-size:1.2rem;font-weight:800}@media (width<=600px){.almacen-page{padding:24px 16px 36px}.almacen-header{padding-top:36px}.almacen-selected{grid-template-columns:auto 1fr;align-items:start}.almacen-fields-list{grid-template-columns:1fr}.almacen-parts-field,.almacen-parts-field input{width:100%}.almacen-observations-field,.almacen-attachments{grid-column:auto}.almacen-attachments .signatures-grid{grid-template-columns:1fr}.almacen-document{padding:22px 18px}.almacen-document-grid,.almacen-document-items-grid{grid-template-columns:1fr}.almacen-document-wide{grid-column:auto}.almacen-custom-material{grid-template-columns:1fr}.almacen-custom-material button{width:100%}}@media (width>=601px) and (width<=900px){.almacen-fields-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=360px){.almacen-page{padding-left:12px;padding-right:12px}.almacen-type{padding:16px}.almacen-selected,.almacen-fields-list{grid-template-columns:1fr}}@media print{@page{margin:16mm}.almacen-page>:not(.almacen-qr-modal),.doc-almacen-page>:not(.almacen-qr-modal){display:none}.almacen-page{background:#fff;min-height:auto;padding:0}.doc-almacen-page{background:#fff;padding:0}.almacen-qr-modal{background:#fff;padding:0;display:block;position:static}.almacen-qr-modal .almacen-print-ticket{display:block}.almacen-modal-close{display:none}.almacen-print-ticket{color:#111827;text-align:center;width:280px;margin:0 auto;display:block}.almacen-print-ticket .project-logo{width:130px;margin:0 auto 8px}.almacen-print-ticket h2{margin:8px 0 16px}.almacen-print-ticket .almacen-qr{width:180px;height:180px}.almacen-print-ticket p{margin:7px 0;font-size:12px}.almacen-print-ticket .almacen-ticket-signatures{grid-template-columns:repeat(2,1fr)}.almacen-print-button,.almacen-qr-help{display:none}.almacen-document{width:100%;box-shadow:none;padding:0}.almacen-ticket-page{background:#fff;padding:0}}.trazabilidad-page{color:#333;max-width:1200px;margin:0 auto;padding:16px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.trazabilidad-back{cursor:pointer;color:#495057;background:#f1f3f5;border:1px solid #ced4da;border-radius:8px;align-items:center;margin-bottom:20px;padding:8px 16px;font-weight:600;transition:background .2s;display:inline-flex}.trazabilidad-back:hover{background:#e9ecef}.trazabilidad-header,.trazabilidad-list,.trazabilidad-selection,.trazabilidad-selected{width:min(900px,100%);margin:0 auto}.trazabilidad-header{border-bottom:1px solid #dbe3ee;padding:52px 0 28px}.trazabilidad-eyebrow{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:800}.trazabilidad-header h2{color:#172554;margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.trazabilidad-intro{color:#64748b;margin:14px 0 0}.trazabilidad-form-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:30px;padding:20px;box-shadow:0 4px 20px #0000000f}.form-grid{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=640px){.form-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.form-grid{grid-template-columns:repeat(3,1fr)}}.form-group{flex-direction:column;gap:5px;display:flex}.form-group.full-width{grid-column:1/-1}.form-label{color:#374151;font-size:.85rem;font-weight:600}.form-input{box-sizing:border-box;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:.9rem;transition:border-color .2s}.form-input:focus{border-color:#06c;box-shadow:0 0 0 3px #0066cc1f}.form-input.readonly{color:#6b7280;background-color:#f9fafb;border-color:#e5e7eb}.form-section-divider{text-align:center;margin:20px 0 12px;position:relative}.form-section-divider:before{content:"";background:#e5e7eb;height:1px;position:absolute;top:50%;left:0;right:0}.divider-text{color:#9ca3af;text-transform:uppercase;letter-spacing:1px;background:#fff;padding:0 10px;font-size:.75rem;font-weight:600;position:relative}.form-actions{justify-content:flex-end;margin-top:20px;display:flex}.trazabilidad-submit{color:#fff;cursor:pointer;background:#06c;border:none;border-radius:6px;width:100%;padding:10px 24px;font-size:.95rem;font-weight:600;transition:background .2s}@media (width>=640px){.trazabilidad-submit{width:auto}}.trazabilidad-submit:hover{background:#0052a3}.trazabilidad-table-section{box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;margin-bottom:30px;padding:clamp(12px,3vw,24px);box-shadow:0 4px 20px #0000000f}.section-title{color:#172554;margin-top:0;margin-bottom:16px;font-size:clamp(1.05rem,2.5vw,1.3rem);font-weight:700}.table-responsive{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#cbd5e1 #f1f5f9;border-radius:8px;width:100%;overflow-x:auto}.table-responsive::-webkit-scrollbar{height:6px}.table-responsive::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.table-responsive::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.trazabilidad-table-content{border-collapse:separate;border-spacing:0;width:100%;min-width:680px}.trazabilidad-table-content th,.trazabilidad-table-content td{vertical-align:middle;border-bottom:1px solid #e2e8f0;border-right:1px solid #f1f5f9;padding:clamp(6px,1.2vw,12px);font-size:clamp(.8rem,1.1vw,.9rem)}.trazabilidad-table-content th{color:#1e293b;z-index:2;white-space:nowrap;background-color:#f8fafc;font-weight:700;position:sticky;top:0}.trazabilidad-table-content tr:hover{background-color:#f8fafc}.trazabilidad-table-content td input[type=text],.trazabilidad-table-content td input[type=date],.trazabilidad-table-content td input[type=number]{box-sizing:border-box;background-color:#fff;border:1.5px solid #cbd5e1;border-radius:6px;width:100%;min-width:60px;padding:clamp(5px,.8vw,8px) clamp(6px,1vw,10px);font-size:clamp(.8rem,1vw,.88rem);transition:all .2s}.trazabilidad-table-content td input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}.process-name{color:#2563eb;white-space:nowrap;background-color:#f8fafc;font-weight:700}.process-name>span{display:block}.process-name .process-status{margin-top:6px}.process-status{border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700;line-height:1.2;display:inline-block}.status-pendiente{color:#374151;background:#e5e7eb}.status-en-proceso{color:#92400e;background:#fef3c7}.status-terminado{color:#166534;background:#dcfce7}.process-status-help{color:#64748b;margin:12px 0 0;font-size:.82rem}.operario-cell{align-items:center;gap:6px;min-width:140px;display:flex}.btn-icon-action{cursor:pointer;width:clamp(28px,3.5vw,34px);height:clamp(28px,3.5vw,34px);transition:transform .15 ease, background-color .2s ease;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:clamp(.85rem,1.1vw,1rem);display:inline-flex}.btn-icon-action.unsigned{color:#fff;background-color:#f59e0b}.btn-icon-action.signed{color:#fff;background-color:#2563eb}.text-center{text-align:center}.text-center input[type=checkbox]{cursor:pointer;accent-color:#2563eb;width:clamp(16px,2vw,18px);height:clamp(16px,2vw,18px)}.operario-cell{align-items:center;gap:6px;display:flex}.operario-cell input{flex:1}.btn-icon-action{cursor:pointer;background:#10b981;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:1rem;transition:transform .1s,background .2s;display:flex}.btn-icon-action.unsigned{background:#eab308}.btn-icon-action.signed{background:#3b82f6}.btn-icon-action:hover{transform:scale(1.05)}.modal-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:400px;padding:24px;animation:.2s modalScaleUp;display:flex;box-shadow:0 10px 25px #0003}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-card h3{color:#1f2937;margin:0 0 4px;font-size:1.25rem}.modal-card p{color:#6b7280;margin:0;font-size:.85rem}.modal-input-group{flex-direction:column;gap:4px;display:flex}.modal-input-group label{color:#374151;font-size:.85rem;font-weight:600}.modal-input-group input{border:1px solid #d1d5db;border-radius:6px;padding:8px 10px;font-size:.9rem}.canvas-container{cursor:crosshair;background:#f9fafb;border:2px dashed #9ca3af;border-radius:8px;justify-content:center;align-items:center;display:flex;overflow:hidden}.canvas-container canvas{touch-action:none;background:#fff}.firma-preview-box{text-align:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;min-height:100px;padding:15px;display:flex}.modal-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.btn-primary{color:#fff;cursor:pointer;background:#06c;border:none;border-radius:6px;padding:8px 16px;font-size:.9rem;font-weight:600}.btn-primary:hover{background:#0052a3}.btn-secondary{color:#374151;cursor:pointer;background:#e5e7eb;border:none;border-radius:6px;padding:8px 16px;font-size:.9rem;font-weight:600}.btn-secondary:hover{background:#d1d5db}.btn-danger{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:6px;padding:8px 16px;font-size:.9rem;font-weight:600}.btn-danger:hover{background:#fecaca}.process-evidence-button{white-space:nowrap}.evidence-modal{max-width:720px;max-height:min(85vh,760px);overflow-y:auto}.evidence-upload{color:#fff;cursor:pointer;background:#06c;border-radius:6px;justify-content:center;align-items:center;width:fit-content;padding:10px 16px;font-weight:600;display:inline-flex}.evidence-upload input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.evidence-gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.evidence-item{color:#1d4ed8;text-align:center;flex-direction:column;align-items:center;gap:8px;min-width:0;text-decoration:none;display:flex}.evidence-item img{object-fit:cover;border:1px solid #cbd5e1;border-radius:8px;width:100%;height:120px}.trazabilidad-ticket{color:#1f2937;background:#fff;max-width:1000px;margin:24px auto;padding:24px}.ticket-header,.ticket-footer{text-align:center}.ticket-logo{object-fit:contain;max-width:160px;max-height:72px}.ticket-grid,.ticket-firmas-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.ticket-tabla-procesos{border-collapse:collapse;width:100%}.ticket-tabla-procesos th,.ticket-tabla-procesos td,.ticket-campo,.ticket-observacion,.ticket-firma-item{border:1px solid #cbd5e1;padding:8px}.ticket-qr-img,.ticket-firma-img{object-fit:contain;max-width:180px;max-height:120px}.ticket-qr-img{width:180px;height:180px;max-height:none}.trazabilidad-ticket-page{background:#f1f5f9;min-height:100vh;padding:24px 16px}.trazabilidad-ticket-print{color:#fff;cursor:pointer;background:#06c;border:0;border-radius:6px;margin:0 auto 16px;padding:10px 18px;font-weight:600;display:block}@media print{@page{margin:12mm}body *{visibility:hidden!important}.trazabilidad-ticket,.trazabilidad-ticket *{visibility:visible!important}.trazabilidad-ticket{width:100%;max-width:none;margin:0;padding:0;position:absolute;inset:0}.trazabilidad-ticket-page{background:#fff;min-height:auto;padding:0}.trazabilidad-ticket-print{display:none}}.admin-page{color:#1f2937;background:#f5f5f7;min-height:100dvh;padding:40px 24px;overflow-x:hidden}.admin-header,.admin-content{width:min(1000px,100%);margin:0 auto}.admin-header{border-bottom:1px solid #dedee5;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:28px;display:flex}.admin-header>div{min-width:0}.admin-header h1{color:#18181b;overflow-wrap:anywhere;margin:0;font-size:3.5rem;line-height:1.1}.admin-eyebrow,.admin-panel-label{color:#7c3aed;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.8rem;font-weight:700}.admin-intro{color:#71717a;margin:12px 0 0}.admin-menu-button{color:#3f3f46;cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:8px;padding:15px 16px;font-weight:700}.admin-menu-button:hover:hover{color:#6d28d9;border-color:#8b5cf6}.admin-menu-button span{margin-right:8px;font-size:1.1rem}.admin-content{min-width:0;padding-top:28px}.admin-welcome{background:#fff;border:1px solid #ddd6fe;border-radius:8px;min-height:300px;padding:32px;box-shadow:0 8px 20px #7c3aed14}.admin-welcome h2{color:#27272a;overflow-wrap:anywhere;margin:0;font-size:2rem}.admin-welcome p:not(.admin-panel-label){color:#71717a}.admin-welcome ul{color:#52525b;margin-top:28px;padding-left:20px}.admin-welcome li+li{margin-top:10px}.admin-overlay{z-index:10;cursor:default;background:#0f172a7a;border:0;position:fixed;inset:0}.admin-drawer{z-index:20;background:#fff;flex-direction:column;width:min(380px,88vw);height:100dvh;padding:28px 30px;transition:transform .25s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-12px 0 30px #0f172a2e}.admin-drawer-header{color:#27272a;border-bottom:1px solid #e4e4e7;justify-content:space-between;align-items:center;padding-bottom:24px;font-size:1.4rem;font-weight:800;display:flex}.admin-drawer-header button{color:#52525b;cursor:pointer;background:0 0;border:0;font-size:2rem;line-height:1}.admin-drawer-options{flex-direction:column;padding:24px 0;display:flex}.admin-drawer-options button{color:#71717a;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #f4f4f5;align-items:center;gap:16px;padding:18px 0;font-size:1.25rem;font-weight:700;display:flex}.admin-drawer-option-group{border-bottom:1px solid #f4f4f5}.admin-drawer-option-group>button{border-bottom:0;width:100%}.admin-drawer-option-group>button small{margin-left:auto;font-size:1.2rem}.admin-drawer-suboptions{opacity:0;max-height:0;padding:0 0 0 40px;transition:max-height .25s,opacity .2s,padding .25s;overflow:hidden}.admin-drawer-suboptions.is-open{opacity:1;max-height:120px;padding-bottom:8px}.admin-drawer-suboptions button{border-bottom:0;width:100%;padding:10px 0;font-size:1rem}.admin-drawer-suboptions span{color:#a78bfa;width:auto}.admin-floating-menu-button{z-index:5;color:#3f3f46;cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:8px;padding:11px 16px;font-weight:700;position:fixed;top:24px;right:24px;box-shadow:0 4px 14px #0f172a1f}.admin-floating-menu-button span{margin-right:8px;font-size:1.1rem}.admin-page-module{padding-top:0}.admin-drawer-options button:hover,.admin-drawer-options button.is-active{color:#7c3aed}.admin-drawer-options span{color:#c4b5fd;width:24px;font-size:.75rem}.admin-drawer{z-index:20;box-sizing:border-box;background:#fff;flex-direction:column;width:min(380px,88vw);height:100dvh;padding:28px 30px;transition:transform .25s;display:flex;position:fixed;top:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-12px 0 30px #0f172a2e}.admin-drawer.is-open{transform:translate(0)}.admin-drawer-header{flex-shrink:0}.admin-drawer-options{flex-direction:column;flex:1;min-height:0;padding:24px 0;display:flex;overflow-y:auto}.admin-logout{color:#dc2626;text-align:center;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:100%;margin-top:0;padding:15px 18px;font-size:1rem;font-weight:700;display:flex;position:relative}.admin-logout:hover{color:#fff;background:#dc2626}@media (width<=700px){.admin-page{padding:32px 20px}.admin-header h1{font-size:2.5rem}}@media (width<=520px){.admin-page{padding:24px 16px}.admin-header{flex-direction:column;gap:16px}.admin-menu-button{align-self:stretch}.admin-welcome{padding:24px 20px}.admin-drawer{width:min(100%,380px);padding:24px}.admin-drawer-options button{font-size:1.1rem}}@media (width<=360px){.admin-page{padding:20px 12px}.admin-header h1{font-size:2rem}.admin-welcome,.admin-drawer{padding:20px 16px}}.prensado-page{color:#1e293b;background:#f8fafc;min-height:100vh;padding:32px 24px 48px}.prensado-back{cursor:pointer;color:#475569;background:0 0;border:0;padding:8px 0;font-size:.95rem;font-weight:700}.prensado-back:hover{color:#1e6cea}.prensado-header{border-bottom:1px solid #e5e7eb;width:min(900px,100%);margin:0 auto;padding:52px 0 28px}.project-logo{object-fit:contain;object-position:left center;width:min(180px,70%);max-height:72px;margin:0 0 18px;display:block}.prensado-eyebrow{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:800}.prensado-header h2{color:#172554;margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.prensado-intro{color:#64748b;margin:14px 0 0}.edit-users-page{color:#27272a;background:#f5f5f7;min-height:100dvh;padding:32px 24px 56px;overflow-x:hidden}.edit-users-back{color:#52525b;cursor:pointer;background:0 0;border:0;padding:8px 0;font-weight:700}.edit-users-header,.edit-users-layout{width:min(1100px,100%);margin:0 auto}.edit-users-header{border-bottom:1px solid #dedee5;padding:52px 0 28px}.edit-users-header p{color:#7c3aed;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.8rem;font-weight:800}.edit-users-header h1{color:#18181b;margin:0;font-size:clamp(2rem,5vw,3.4rem)}.edit-users-header span{color:#71717a;margin-top:12px;display:block}.edit-users-layout{grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:24px;margin-top:28px;display:grid}.edit-users-form,.edit-users-list{background:#fff;border:1px solid #ddd6fe;border-radius:8px;padding:24px}.edit-users-form h2,.edit-users-list h2{color:#27272a;margin:0 0 20px;font-size:1.3rem}.edit-users-form label{color:#3f3f46;flex-direction:column;gap:6px;margin-top:14px;font-size:.85rem;font-weight:700;display:flex}.edit-users-form input,.edit-users-form select{color:#18181b;width:100%;min-width:0;font:inherit;background:#fafafa;border:1px solid #d4d4d8;border-radius:5px;padding:11px 12px}.edit-users-form small{color:#71717a;font-weight:400}.edit-users-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.edit-users-actions button,.edit-users-list button{color:#fff;font:inherit;cursor:pointer;background:#7c3aed;border:0;border-radius:5px;padding:9px 12px;font-weight:700}.edit-users-actions .edit-users-secondary,.edit-users-list button{color:#52525b;background:#fff;border:1px solid #d4d4d8}.edit-users-table-wrap{overflow-x:auto}.edit-users-list table{border-collapse:collapse;width:100%;min-width:580px}.edit-users-list th,.edit-users-list td{text-align:left;border-bottom:1px solid #e4e4e7;padding:12px 8px}.edit-users-list th{color:#52525b;text-transform:uppercase;font-size:.78rem}.edit-users-list td button+button{margin-left:6px}.edit-users-list button.danger{color:#b42318}.edit-users-error{color:#b42318;font-weight:700}.edit-users-message{color:#166534;font-weight:700}@media (width<=900px){.edit-users-layout{grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:16px}.edit-users-form,.edit-users-list{padding:18px}}@media (width<=760px){.edit-users-page{padding:24px 16px 40px}.edit-users-header{padding-top:36px}.edit-users-layout{grid-template-columns:1fr}.edit-users-form,.edit-users-list{padding:18px}}@media (width<=520px){.edit-users-page{padding:20px 12px 32px}.edit-users-header h1{overflow-wrap:anywhere}.edit-users-form,.edit-users-list{padding:16px}.edit-users-actions{flex-direction:column}.edit-users-actions button{width:100%}.edit-users-table-wrap{overflow:visible}.edit-users-list table,.edit-users-list thead,.edit-users-list tbody,.edit-users-list tr,.edit-users-list th,.edit-users-list td{width:100%;min-width:0;display:block}.edit-users-list thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.edit-users-list tr{border:1px solid #e4e4e7;border-radius:6px;margin-bottom:12px;padding:8px}.edit-users-list td{overflow-wrap:anywhere;border-bottom:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 4px;display:flex}.edit-users-list td:before{color:#71717a;text-transform:uppercase;flex:0 0 82px;font-size:.72rem;font-weight:800}.edit-users-list td:first-child:before{content:"Nombre"}.edit-users-list td:nth-child(2):before{content:"Correo"}.edit-users-list td:nth-child(3):before{content:"Rol"}.edit-users-list td:nth-child(4){border-top:1px solid #e4e4e7;flex-wrap:wrap;justify-content:flex-start;padding-top:12px}.edit-users-list td:nth-child(4):before{flex-basis:100%}.edit-users-list td button{flex:120px}.edit-users-list td button+button{margin-left:0}}
