html{font-size:100%}@media(min-width:120em){html{font-size:112.5%}}@media(max-width:48em){html{font-size:93.75%}}@media(max-width:30em){html{font-size:87.5%}}:root{font-family:Inter,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;font-weight:400;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--text-xs: clamp(.7rem, .65rem + .25vw, .75rem);--text-sm: clamp(.8rem, .75rem + .25vw, .875rem);--text-base: clamp(.875rem, .8rem + .375vw, 1rem);--text-lg: clamp(1rem, .9rem + .5vw, 1.125rem);--text-xl: clamp(1.125rem, 1rem + .625vw, 1.25rem);--text-2xl: clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--text-3xl: clamp(1.5rem, 1.25rem + 1.25vw, 2rem);--text-4xl: clamp(1.75rem, 1.5rem + 1.25vw, 2.5rem);--container-sm: 40rem;--container-md: 48rem;--container-lg: 64rem;--container-xl: 75rem;--container-2xl: 87.5rem;--color-primary: #475569;--color-primary-light: #64748b;--color-primary-dark: #334155;--color-accent: #3b82f6;--color-accent-light: #60a5fa;--color-accent-dark: #2563eb;--color-success: #059669;--color-success-light: #d1fae5;--color-success-dark: #047857;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-warning-dark: #b45309;--color-danger: #dc2626;--color-danger-light: #fee2e2;--color-danger-dark: #b91c1c;--color-info: #0891b2;--color-info-light: #cffafe;--color-info-dark: #0e7490;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--color-bg-primary: #f8fafc;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f1f5f9;--color-text-primary: #1e293b;--color-text-secondary: #475569;--color-text-muted: #64748b;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-border-dark: #cbd5e1;--color-status-pending-bg: #fefce8;--color-status-pending-border: #fbbf24;--color-status-pending-text: #a16207;--color-status-progress-bg: #eff6ff;--color-status-progress-border: #60a5fa;--color-status-progress-text: #1d4ed8;--color-status-completed-bg: #f0fdf4;--color-status-completed-border: #4ade80;--color-status-completed-text: #15803d;--primary-color: var(--color-primary);--primary-dark: var(--color-primary-dark);--primary-light: var(--color-primary-light);--success-color: var(--color-success);--success-dark: var(--color-success-dark);--warning-color: var(--color-warning);--danger-color: var(--color-danger);--info-color: var(--color-info);--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;color:var(--gray-800);background-color:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-accent-dark);text-decoration:underline}button{font-family:inherit;cursor:pointer;transition:all .2s ease}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:inherit;border:1px solid var(--gray-300);border-radius:6px;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #3b82f626}button{border-radius:6px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(prefers-contrast:high){:root{--gray-300: #888;--gray-400: #666;--gray-500: #444}}.form-selector-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.form-selector-modal{background:#fff;border-radius:12px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #0000001a;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:12px 12px 0 0}.modal-header h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.modal-subtitle{margin:0;font-size:.95rem;opacity:.95}.modal-subtitle strong{font-weight:600}.modal-close-btn{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.instruction-text{margin:0 0 1.5rem;color:#64748b;font-size:.95rem;text-align:center}.form-options{display:flex;flex-direction:column;gap:1rem}.form-option-card{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .2s;background:#fff}.form-option-card:hover{border-color:#667eea;background:#f8fafc;transform:translate(4px);box-shadow:0 4px 6px #667eea1a}.form-option-card:active{transform:translate(2px)}.form-icon{font-size:3rem;flex-shrink:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea15,#764ba215);border-radius:12px}.form-info{flex:1}.form-code{display:inline-block;background:#eff6ff;color:#1e40af;padding:.25rem .75rem;border-radius:4px;font-size:.8rem;font-weight:600;margin-bottom:.5rem}.form-title{margin:.5rem 0 .25rem;color:#1e293b;font-size:1.125rem;font-weight:600}.form-description{margin:0;color:#64748b;font-size:.9rem;line-height:1.5}.form-arrow{font-size:1.5rem;color:#cbd5e1;transition:all .2s}.form-option-card:hover .form-arrow{color:#667eea;transform:translate(4px)}.modal-footer{padding:1.5rem 2rem;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:1rem;background:#f8fafc;border-radius:0 0 12px 12px}.btn-cancel{padding:.75rem 1.5rem;background:#fff;color:#475569;border:1px solid #cbd5e1;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:#f1f5f9;border-color:#94a3b8}@media(max-width:40em){.form-selector-modal{margin:var(--space-sm)}.modal-header,.modal-body,.modal-footer{padding:var(--space-md) var(--space-lg)}.form-option-card{flex-direction:column;text-align:center}.form-icon{width:48px;height:48px;font-size:var(--text-3xl)}.form-arrow{transform:rotate(90deg)}.form-option-card:hover .form-arrow{transform:rotate(90deg) translate(4px)}}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #0003}.modal-overlay .modal-content.registration-modal{width:1800px!important;max-width:96vw!important;min-width:900px}.modal-header{padding:1.5rem 2rem;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#f8fafc,#fff);position:sticky;top:0;z-index:100}.modal-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#1e293b}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#94a3b8;padding:.5rem;border-radius:8px;transition:all .2s}.modal-close:hover{color:#475569;background:#f1f5f9}.modal-footer{padding:1.5rem 2rem;border-top:2px solid #e5e7eb;display:flex;justify-content:flex-end;gap:1rem;background:#f8fafc;position:sticky;bottom:0}.btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #2563eb4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 8px #2563eb66}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#e5e7eb;border-color:#9ca3af}.registration-form{width:100%}.registration-form .section-title{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #183765}.common-data-section{background:#fafbfc;padding:1.5rem;border-radius:8px;border:1px solid #e5e7eb;margin-bottom:1.5rem}.common-data-section h3{font-size:1.125rem;font-weight:600;color:#1e293b;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:2px solid #183765}.registration-modal .registration-form .form-row{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:1.25rem;margin-bottom:1.25rem}.registration-modal .registration-form .three-cols{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:1.25rem;margin-bottom:1.25rem}.registration-modal .registration-form .four-cols{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:1.25rem;margin-bottom:1.25rem}.registration-form .form-group{display:flex;flex-direction:column;gap:.5rem}.registration-form .form-group label{font-size:.875rem;font-weight:600;color:#374151}.registration-form .form-input,.registration-form .form-select{width:100%;padding:.75rem 1rem;font-size:.9375rem;line-height:1.5;color:#1f2937;background-color:#fff;border:1.5px solid #d1d5db;border-radius:8px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.registration-form .form-input:focus,.registration-form .form-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.registration-form .form-input:disabled,.registration-form .form-select:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed;border-color:#e5e7eb}.registration-form .form-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.25em 1.25em;padding-right:2.5rem;cursor:pointer}.registration-form .form-select option{padding:.75rem;font-size:.9375rem;color:#1f2937;background-color:#fff}.section-container{background-color:#f9fafb;padding:1.5rem;border-radius:8px;border:1px solid #e5e7eb;margin-bottom:1.5rem}@media(max-width:1024px){.modal-overlay .modal-content.registration-modal{width:95vw!important;max-width:95vw!important;min-width:auto!important}.registration-modal .registration-form .form-row,.registration-modal .registration-form .three-cols,.registration-modal .registration-form .four-cols{grid-template-columns:1fr!important;gap:1rem}.registration-form .form-group{width:100%}.registration-modal .modal-body{padding:1.5rem}.common-data-section{padding:1.25rem}}@media(max-width:768px){.modal-overlay .modal-content.registration-modal{width:100vw!important;max-width:100vw!important;min-width:auto!important;max-height:100vh;height:100vh;border-radius:0;margin:0}.modal-overlay{padding:0}.registration-modal .modal-header,.registration-modal .modal-body{padding:1rem}.registration-modal .modal-footer{padding:1rem;flex-wrap:wrap;gap:.75rem}.registration-modal .modal-footer button{flex:1 1 auto;min-width:120px}.registration-form .form-input,.registration-form .form-select{font-size:16px;padding:.875rem 1rem}.common-data-section{padding:1rem}.tabs-header-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.tabs-header{min-width:max-content}.tab-btn{padding:.75rem 1rem;font-size:.875rem}.sieves-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem}.sieve-input{font-size:14px;padding:.5rem .25rem}.briquettes-table{font-size:.75rem}.briquettes-table th,.briquettes-table td{padding:.375rem .25rem}.table-input{min-width:50px;padding:.375rem;font-size:12px}.section-container{padding:.75rem}.section-subtitle{font-size:.875rem}}@media(max-width:480px){.registration-modal .modal-header h2{font-size:1rem}.tab-btn{padding:.5rem .75rem;font-size:.75rem}.add-tab-btn{width:28px;height:28px;font-size:1.25rem}.sieves-grid{grid-template-columns:repeat(3,1fr)}.briquettes-table{display:block;overflow-x:auto}.registration-modal .btn-primary,.registration-modal .btn-secondary{padding:.625rem 1rem;font-size:.875rem}}.input-locked{background-color:#f3f4f6!important;color:#6b7280!important;cursor:not-allowed!important;border-color:#d1d5db!important}.input-locked:focus{outline:none!important;box-shadow:none!important}.tabs-header-container{display:flex;align-items:flex-end;height:60px;border-bottom:2px solid #183765;margin-bottom:1.5rem;overflow-x:auto;padding-left:.5rem}.tabs-header{display:flex;gap:.5rem;flex-wrap:nowrap}.tab-wrapper{position:relative;display:flex;align-items:center}.tab-btn{padding:1rem 3rem 1rem 2rem;border:1px solid #e5e7eb;border-bottom:none;background:#f3f4f6;font-weight:500;color:#4b5563;cursor:pointer;border-radius:.5rem .5rem 0 0;transition:all .2s;white-space:nowrap;margin-bottom:-2px;position:relative;font-size:1rem}.tab-btn:hover{color:#1f2937;background-color:#e5e7eb}.tab-btn.active{color:#1e40af;background-color:#fff;border-color:#183765;border-bottom-color:#fff;border-top:3px solid #1e40af;font-weight:700;z-index:10;box-shadow:0 -2px 4px #0000000d}.remove-tab-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.2rem;line-height:1;padding:2px;border-radius:50%;z-index:20}.remove-tab-btn:hover{color:#ef4444;background-color:#ef44441a}.add-tab-btn{padding:.5rem .75rem;background:none;border:none;color:#6b7280;cursor:pointer;font-size:1.5rem;transition:all .2s;margin-left:.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;width:32px;height:32px}.add-tab-btn:hover{color:#3b82f6;background-color:#eff6ff}.sieves-section{background-color:#f9fafb;padding:1rem;border-radius:.5rem;border:1px solid #e5e7eb}.sieves-section h3{font-size:1rem;font-weight:600;margin-bottom:1rem;color:#374151}.sieves-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:1rem}.sieve-item{display:flex;flex-direction:column;gap:.25rem}.sieve-item label,.sieve-label{font-size:.85rem;color:#6b7280;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-bottom:.25rem}.sieve-number-badge{background-color:#e5e7eb;color:#4b5563;font-size:.7rem;font-weight:700;padding:.1rem .4rem;border-radius:9999px;display:inline-block}.sieve-size-text{font-weight:600;color:#374151}.sieve-input{text-align:center;padding:.5rem}.briquettes-table{width:100%;border-collapse:collapse;font-size:.875rem}.briquettes-table th,.briquettes-table td{border:1px solid #e5e7eb;color:#1f2937;padding:.5rem;text-align:center}.briquettes-table th{background-color:#f1f5f9;font-weight:600;color:#374151}.table-input{width:100%;min-width:70px;padding:.5rem;border:1px solid transparent;border-radius:.25rem;text-align:center;background-color:transparent;font-size:.875rem}.table-input:hover,.table-input:focus{background-color:#fff;border-color:#d1d5db;outline:none}.table-input:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.section-subtitle{font-size:1rem;font-weight:600;color:#374151;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.overflow-x-auto{overflow-x:auto}@media(prefers-color-scheme:dark){.registration-modal{background-color:#fff;color:#1f2937}.section-title{color:#1f2937;border-bottom-color:#374151}.form-group label,.sieves-section h3{color:#374151}.form-input,.form-select{background-color:#fff;border-color:#d1d5db;color:#1f2937}.form-input:focus,.form-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.tabs-header-container{border-bottom-color:#183765}.tab-btn{color:#4b5563;background:#f3f4f6}.tab-btn:hover{color:#1f2937;background-color:#e5e7eb}.tab-btn.active{color:#1e40af;background-color:#fff}.sieves-section{background-color:#f9fafb;border-color:#e5e7eb}.sieve-item label,.sieve-label{color:#6b7280}.sieve-number-badge{background-color:#e5e7eb;color:#4b5563}.sieve-size-text{color:#374151}}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.text-gray-600{color:#4b5563}.font-bold{font-weight:700}.text-blue-600{color:#2563eb}.bg-gray-100{background-color:#f3f4f6}.bg-gray-50{background-color:#f9fafb}.cursor-not-allowed{cursor:not-allowed}.test-programming{background:var(--color-bg-primary);min-height:100vh}.filters-bar{background:var(--color-bg-secondary);padding:.75rem 1.5rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;border-bottom:2px solid var(--color-border);box-shadow:0 2px 6px #0000000d}.filter-item{display:flex;align-items:center;gap:.5rem}.filter-item label{font-weight:600;color:var(--color-text-secondary);font-size:.8125rem}.filter-item select{background:var(--gray-50);border:1.5px solid var(--gray-300);color:var(--color-text-primary);padding:.4rem .75rem;border-radius:6px;font-size:.8125rem;cursor:pointer;font-weight:500;transition:all .2s}.filter-item select.filter-active{background:var(--color-status-progress-bg);border-color:var(--color-accent);color:var(--color-accent-dark);font-weight:600;box-shadow:0 0 0 3px #3b82f626}.filter-item select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #3b82f626}.btn-clear-filter{background:transparent;border:none;color:var(--color-danger);cursor:pointer;font-size:.85rem;padding:.25rem;font-weight:600;transition:all .2s}.btn-clear-filter:hover{color:var(--color-danger-dark);transform:scale(1.1)}.filter-toggle{background:var(--gray-50);padding:.5rem 1rem;border-radius:8px;border:1.5px solid var(--gray-300);color:var(--color-text-secondary);font-weight:500;transition:all .2s}.filter-toggle:hover{border-color:var(--color-accent);background:var(--color-bg-secondary)}.filter-toggle input[type=checkbox]{margin-right:.5rem;cursor:pointer;width:16px;height:16px;accent-color:var(--color-accent)}.status-legend{background:var(--color-bg-secondary);padding:.75rem 1.5rem;display:flex;align-items:center;gap:2rem;border-bottom:1px solid var(--color-border);box-shadow:0 1px 3px #0000000d;font-size:.875rem}.legend-title{font-weight:600;color:var(--color-text-secondary);margin-right:.5rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;min-width:80px;text-align:center}.legend-badge.state-pending{background:var(--color-status-pending-bg);color:var(--color-status-pending-text);border:1px solid var(--color-status-pending-border)}.legend-badge.state-in-progress{background:var(--color-status-progress-bg);color:var(--color-status-progress-text);border:1px solid var(--color-status-progress-border)}.legend-badge.state-completed{background:var(--color-status-completed-bg);color:var(--color-status-completed-text);border:1px solid var(--color-status-completed-border)}.programming-stats-bar{background:var(--color-bg-secondary);padding:.75rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;border-bottom:1px solid var(--color-border);box-shadow:0 1px 3px #0000000d}.programming-stats-bar .stats-row{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.programming-stats-bar .workload-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px dashed var(--color-border);font-size:.875rem}.programming-stats-bar .workload-row strong{color:var(--color-text-secondary);font-weight:700}.programming-stats-bar .workload-item{background:var(--gray-100);padding:.35rem .75rem;border-radius:6px;font-size:.8125rem;border:1px solid var(--gray-300);color:var(--color-text-secondary);font-weight:500}.programming-stats-bar .stat-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;background:var(--gray-50);border:1px solid var(--color-border);font-size:.875rem}.programming-stats-bar .stat-item strong{font-weight:700;color:var(--color-text-secondary)}.programming-stats-bar .stat-item.stat-completed{background:var(--color-status-completed-bg);border-color:var(--color-status-completed-border);color:var(--color-status-completed-text)}.programming-stats-bar .stat-item.stat-in-progress{background:var(--color-status-progress-bg);border-color:var(--color-status-progress-border);color:var(--color-status-progress-text)}.programming-stats-bar .stat-item.stat-pending{background:var(--color-status-pending-bg);border-color:var(--color-status-pending-border);color:var(--color-status-pending-text)}.programming-table-container{overflow-x:auto;max-height:calc(100vh - 300px);overflow-y:auto;padding:0 1rem;margin:1rem 0;position:relative}.programming-table{min-width:100%;width:max-content;border-collapse:collapse;font-size:.875rem;background:var(--color-bg-secondary);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.programming-table thead{background:var(--color-primary);position:sticky;top:0;z-index:10}.programming-table th{padding:.875rem .75rem;text-align:left;font-weight:700;color:var(--color-text-inverse);text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;border-bottom:none;white-space:nowrap}.programming-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .15s}.programming-table tbody tr:hover{background:var(--gray-50)}.programming-table tbody tr.completado{background:var(--color-status-completed-bg)}.programming-table tbody tr.en-proceso{background:var(--color-status-progress-bg)}.programming-table tbody tr.pendiente{background:var(--color-status-pending-bg)}.programming-table tbody tr.row-locked{background:var(--gray-100);opacity:.75;position:relative}.programming-table tbody tr.row-locked:after{content:"🔒";position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:1.2rem;opacity:1;pointer-events:none}.programming-table tbody tr.row-locked:hover{background:var(--gray-200)}.programming-table tbody tr.row-locked td{color:var(--color-text-muted)}.programming-table tbody tr.row-locked .sample-number{color:var(--gray-400)}.programming-table tbody tr.row-locked select,.programming-table tbody tr.row-locked input{cursor:not-allowed;opacity:.8}.programming-table tbody tr.row-locked .tester-dropdown:disabled{background:var(--gray-100);border-color:var(--color-border);color:var(--color-text-muted)}.programming-table td{padding:.875rem .75rem;color:var(--color-text-primary);border-bottom:1px solid var(--color-border);font-weight:500}.programming-table tbody tr.state-pending{background:var(--color-status-pending-bg)}.programming-table tbody tr.state-pending:hover{background:var(--color-warning-light)}.programming-table tbody tr.state-in-progress{background:var(--color-status-progress-bg)}.programming-table tbody tr.state-in-progress:hover{background:#3b82f626}.programming-table tbody tr.state-completed{background:var(--color-status-completed-bg)}.programming-table tbody tr.state-completed:hover{background:var(--color-success-light)}.programming-table tbody td{padding:.65rem .5rem;font-size:.75rem;text-align:center;white-space:nowrap;border-right:1px solid var(--color-border)}.programming-table tbody td:last-child{border-right:none}.programming-table tbody td .material-select,.programming-table tbody td .text-input{width:100%;min-width:120px;padding:.4rem .5rem;font-size:.75rem;border:1.5px solid var(--gray-300);border-radius:4px;background:var(--color-bg-secondary)}.programming-table tbody td .material-select:focus,.programming-table tbody td .text-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f626}.programming-table tbody td input.text-input{min-width:100px}.sample-number{font-weight:700;color:var(--color-accent);font-size:.95rem}.sample-number-cell{display:flex;align-items:center;gap:.5rem;justify-content:flex-start}.btn-edit-icon,.btn-save-icon{background:transparent;border:none;cursor:pointer;font-size:1rem;padding:.25rem;border-radius:4px;transition:all .2s;line-height:1}.btn-edit-icon:hover{background:var(--color-status-progress-bg);transform:scale(1.15)}.btn-save-icon{animation:pulse-save 1s ease-in-out infinite}.btn-save-icon:hover{background:var(--color-success-light);transform:scale(1.15);animation:none}@keyframes pulse-save{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.tester-name{color:var(--color-text-secondary);font-weight:600}.programming-footer{background:var(--color-bg-secondary);padding:1rem 1.5rem;border-top:2px solid var(--color-border);margin-top:auto;display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between}.programming-footer .status-legend{border-bottom:none;box-shadow:none;padding:0;background:transparent}.footer-stats{display:flex;gap:2rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.stat-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;background:var(--gray-50);border:1px solid var(--color-border);font-size:.875rem}.stat-item strong{font-weight:700;color:var(--color-text-secondary)}.stat-item.stat-completed{background:var(--color-status-completed-bg);border-color:var(--color-status-completed-border);color:var(--color-status-completed-text)}.stat-item.stat-in-progress{background:var(--color-status-progress-bg);border-color:var(--color-status-progress-border);color:var(--color-status-progress-text)}.stat-item.stat-pending{background:var(--color-status-pending-bg);border-color:var(--color-status-pending-border);color:var(--color-status-pending-text)}.footer-workload{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.workload-chip{background:var(--gray-100);padding:.5rem 1rem;border-radius:6px;font-size:.8125rem;border:1px solid var(--gray-300)}.workload-chip strong{color:var(--color-text-secondary);font-weight:600}.test-checkbox{text-align:center;padding:.5rem}.test-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-accent)}.test-checkbox input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.tester-select{padding:.5rem}.tester-dropdown{width:100%;background:var(--gray-50);border:1.5px solid var(--gray-300);color:var(--color-text-primary);padding:.5rem .75rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.tester-dropdown:hover{border-color:var(--color-accent);background:var(--color-bg-secondary)}.tester-dropdown:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #3b82f626}.tester-dropdown option{background:var(--color-bg-secondary);color:var(--color-text-primary);padding:.5rem;font-weight:600}.tester-dropdown option:hover{background:var(--gray-100)}.action-buttons{display:flex;gap:.5rem;align-items:center;justify-content:center}.btn-action{padding:.4rem .75rem;border:none;border-radius:6px;cursor:pointer;font-size:.7rem;font-weight:600;transition:all .2s;display:inline-flex;align-items:center;gap:.25rem}.btn-register{background:var(--color-success);color:var(--color-text-inverse);box-shadow:0 2px 4px #0596694d}.btn-register:hover{background:var(--color-success-dark);transform:translateY(-1px);box-shadow:0 4px 8px #05966966}.btn-register:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-register-results{background:var(--color-warning);color:var(--color-text-inverse);padding:.85rem 1.75rem;border:2px solid var(--color-status-pending-border);border-radius:10px;cursor:pointer;font-size:.9375rem;font-weight:800;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem;box-shadow:0 4px 12px #d9770666;animation:pulseGlow 1.5s ease-in-out infinite;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;position:relative;overflow:hidden}.btn-register-results:hover{background:var(--color-warning-dark);transform:translateY(-2px) scale(1.05);box-shadow:0 6px 16px #d9770680;animation:none}.btn-register-results:active{transform:translateY(-1px) scale(1.02);box-shadow:0 3px 8px #d977064d}@keyframes pulseGlow{0%,to{box-shadow:0 4px 12px #d9770666;transform:scale(1)}50%{box-shadow:0 6px 16px #d9770680;transform:scale(1.02)}}.btn-delete{background:var(--color-danger);color:var(--color-text-inverse);box-shadow:0 2px 4px #dc26264d}.btn-delete:hover{background:var(--color-danger-dark);transform:translateY(-1px);box-shadow:0 4px 8px #dc262666}.btn-complete{background:var(--color-accent);color:var(--color-text-inverse);box-shadow:0 2px 4px #3b82f64d}.btn-complete:hover{background:var(--color-accent-dark);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f666}.new-sample-actions{background:var(--color-warning-light);padding:1rem;border-radius:8px;margin:1rem;display:flex;gap:1rem;align-items:center;justify-content:center;border:2px dashed var(--color-status-pending-border)}.new-sample-row{background:var(--color-warning-light);border:2px dashed var(--color-status-pending-border)}.btn-save-sample{background:var(--color-success);color:var(--color-text-inverse);padding:.5rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-weight:600;box-shadow:0 2px 6px #0596694d;transition:all .2s}.btn-save-sample:hover{background:var(--color-success-dark);transform:translateY(-2px);box-shadow:0 4px 10px #05966966}.btn-cancel-sample{background:var(--gray-500);color:var(--color-text-inverse);padding:.5rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-weight:600;box-shadow:0 2px 6px #64748b4d;transition:all .2s}.btn-cancel-sample:hover{background:var(--gray-600);transform:translateY(-2px);box-shadow:0 4px 10px #64748b66}@media(max-width:75em){.programming-header{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.header-actions{width:100%;justify-content:flex-start}.filters-bar{flex-direction:column;align-items:stretch}.filter-item,.filter-dropdown{width:100%}}@media(max-width:48em){.programming-header,.filters-bar,.programming-footer{padding:var(--space-md)}.programming-table{font-size:var(--text-sm)}.programming-table th,.programming-table td{padding:var(--space-md)}.status-legend{flex-direction:column;align-items:flex-start;gap:.75rem}.legend-item{width:100%}.footer-stats,.footer-workload{flex-direction:column;align-items:flex-start;width:100%}.stat-item{width:100%}}@media(max-width:30em){.btn-register-results{font-size:var(--text-sm);padding:.65rem 1.25rem}}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s ease-in-out infinite}.progress-bar{width:100%;height:8px;background:var(--color-border);border-radius:4px;margin:1rem 0 .5rem;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-accent);border-radius:4px;transition:width .3s ease-out;animation:progressPulse 1.5s ease-in-out infinite}@keyframes progressPulse{0%,to{opacity:1}50%{opacity:.8}}.extraccion-asfalto-form{width:100%;max-width:1600px;margin:0 auto;padding:2rem;background:#f8fafc}.form-title-block h1{color:#1e293b;font-size:1.5rem;margin:0 0 .5rem;font-weight:600}.form-title-block h2{color:#475569;font-size:1.1rem;margin:0 0 1rem;font-weight:500}.form-code{display:inline-block;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:.5rem 1.5rem;border-radius:20px;font-weight:500;font-size:.9rem}.sample-form-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:2px solid #e2e8f0;transition:border-color .2s}.sample-form-card:hover{border-color:#3b82f6}.sample-form-card h3{color:#1e293b;font-size:1.2rem;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0}.sample-form-card h4{color:#475569;font-size:1rem;margin:0 0 .75rem;font-weight:600}.extraction-section{background:#f8fafc;border-radius:8px;padding:1rem;margin-bottom:1rem;border-left:4px solid #3b82f6}.extraction-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-field input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.operator-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}@media(max-width:48em){.extraccion-asfalto-form{padding:var(--space-md)}.form-header{padding:var(--space-lg)}.form-title-block h1{font-size:var(--text-xl)}.form-title-block h2{font-size:var(--text-base)}.sample-form-card{padding:var(--space-md)}.sample-header-fields,.extraction-fields{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn-cancel,.btn-save{width:100%}}@media(max-width:30em){.form-code{font-size:var(--text-xs);padding:.4rem 1rem}}.marshall-test-form{padding:2rem;max-width:1600px;margin:0 auto;background:#f8fafc;min-height:100vh}.form-header{background:#fff;padding:1.5rem 2rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:flex-start}.header-title h1{margin:0 0 .5rem;color:#1e293b;font-size:1.75rem}.form-meta{margin:0;color:#64748b;font-size:.95rem;font-weight:500}.form-user-info{background:#eff6ff;border:1px solid #bfdbfe;padding:1rem;border-radius:6px;margin-bottom:1.5rem;display:flex;gap:1.5rem;align-items:center}.user-badge{font-size:.95rem;color:#1e40af}.user-badge strong{font-weight:600}.briquettes-container{margin-bottom:2rem}.briquettes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:1.5rem;margin-bottom:1.5rem}.marshall-briquette-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;transition:transform .2s,box-shadow .2s}.marshall-briquette-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.card-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center}.card-header h3{margin:0;color:#fff;font-size:1.125rem;font-weight:600}.btn-remove{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-remove:hover{background:#ef4444e6;border-color:#ef4444}.card-body{padding:1.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-row.form-row-4{grid-template-columns:repeat(4,1fr)}.form-group label{font-size:.875rem;font-weight:500;color:#475569}.form-group input{padding:.625rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input::placeholder{color:#94a3b8}.add-briquette-section{display:flex;justify-content:center;padding:2rem}.btn-add-briquette{padding:1rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 4px 6px #667eea4d}.btn-add-briquette:hover{transform:translateY(-2px);box-shadow:0 6px 12px #667eea66}.btn-add-briquette:active{transform:translateY(0)}.form-section{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:1.5rem}.form-section label{display:block;font-weight:500;color:#475569;margin-bottom:.75rem}.form-section textarea{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem;font-family:inherit;resize:vertical;transition:all .2s}.form-section textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-footer{background:#fff;padding:1.5rem 2rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:flex-end;gap:1rem;position:sticky;bottom:1rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 4px #667eea4d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:#fff;color:#475569;border:1px solid #cbd5e1}.btn-secondary:hover{background:#f8fafc;border-color:#94a3b8}@media(max-width:64em){.briquettes-grid{grid-template-columns:1fr}.form-header{flex-direction:column;gap:var(--space-md)}.header-actions{width:100%;justify-content:flex-end}}@media(max-width:40em){.marshall-test-form{padding:var(--space-md)}.form-row.form-row-4{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.form-footer{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}@media(max-width:30em){.form-row.form-row-4{grid-template-columns:1fr}.header-title h1{font-size:var(--text-xl)}}@media print{.form-header .header-actions,.form-footer,.btn-remove,.add-briquette-section{display:none}.marshall-test-form{padding:0;background:#fff}.briquettes-grid{grid-template-columns:1fr;gap:1rem}.marshall-briquette-card{break-inside:avoid;box-shadow:none;border:1px solid #000}}.gravedad-especifica-form{width:100%;max-width:1600px;margin:0 auto;padding:2rem;background:#f8fafc}.form-code{display:inline-block;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;padding:.5rem 1.5rem;border-radius:20px;font-weight:500;font-size:.9rem}.sample-form-card:hover{border-color:#8b5cf6}.measurement-section{background:#f8fafc;border-radius:8px;padding:1rem;margin-bottom:1rem;border-left:4px solid #8b5cf6;display:flex;flex-direction:column;gap:.75rem}.form-field input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.operator-input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.btn-add-sample{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #8b5cf633}.btn-add-sample:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf64d}@media(max-width:48em){.gravedad-especifica-form{padding:var(--space-md)}.form-header{padding:var(--space-lg)}.form-title-block h1{font-size:var(--text-xl)}.sample-form-card{padding:var(--space-md)}.sample-header-fields{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn-cancel,.btn-save{width:100%}}@media(max-width:30em){.sample-card-header h3{font-size:var(--text-base)}.form-code{font-size:var(--text-xs);padding:.4rem 1rem}}.analisis-granulometrico-form{width:100%;max-width:1600px;margin:0 auto;padding:2rem;background:#f8fafc}.form-header{background:#fff;padding:2rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a;text-align:center}.form-title-block h1{color:#1e293b;font-size:1.5rem;margin:0 0 1rem;font-weight:600}.form-code{display:inline-block;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:.5rem 1.5rem;border-radius:20px;font-weight:500;font-size:.9rem}.samples-grid{display:flex;flex-direction:column;gap:2rem}.samples-row{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.sample-wrapper{display:flex}.sample-form-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:2px solid #e2e8f0;transition:border-color .2s;flex:1}.sample-form-card:hover{border-color:#f59e0b}.sample-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0}.sample-card-header h3{color:#1e293b;font-size:1.2rem;margin:0}.btn-remove-sample{background:#ef4444;color:#fff;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1;padding:0}.btn-remove-sample:hover{background:#dc2626;transform:scale(1.1)}.sample-header-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.extraction-info-section{background:#fff7ed;border-radius:8px;padding:1rem;margin-bottom:1rem;border-left:4px solid #f59e0b}.extraction-info-section h4{color:#92400e;font-size:1rem;margin:0 0 1rem;font-weight:600}.tamices-section{background:#fef3c7;border-radius:8px;padding:1rem;margin-bottom:1rem;border-left:4px solid #d97706}.tamices-section h4{color:#78350f;font-size:1rem;margin:0 0 1rem;font-weight:600}.tamices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.tamiz-field{display:flex;flex-direction:column;gap:.25rem}.tamiz-field label{color:#78350f;font-size:.85rem;font-weight:500}.tamiz-field input{padding:.5rem;border:2px solid #fbbf24;border-radius:6px;font-size:.9rem;font-family:inherit;transition:border-color .2s,box-shadow .2s;text-align:right}.tamiz-field input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1a}.form-field{display:flex;flex-direction:column;gap:.25rem}.form-field label{color:#475569;font-size:.85rem;font-weight:500}.form-field input{padding:.6rem;border:2px solid #e2e8f0;border-radius:6px;font-size:.95rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-field input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1a}.form-field input[type=number]{text-align:right}.form-field.calculated{margin-top:.5rem}.form-field.calculated label{color:#0891b2;font-weight:600}.calculated-value{background:#ecfeff!important;color:#0891b2!important;font-weight:600;border:2px solid #06b6d4!important;cursor:not-allowed}.calculated-value:focus{border-color:#06b6d4!important;box-shadow:0 0 0 3px #06b6d41a!important}.operator-field{margin-top:1rem;padding-top:1rem;border-top:2px solid #e2e8f0}.operator-field label{display:block;color:#475569;font-weight:500;margin-bottom:.5rem}.operator-input{width:100%;padding:.75rem;border:2px solid #e2e8f0;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}.operator-input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1a}.add-sample-section{display:flex;justify-content:center;margin-top:1rem;padding-top:1rem}.btn-add-sample{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #f59e0b33}.btn-add-sample:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.form-actions{display:flex;justify-content:center;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:2px solid #e2e8f0}.btn-cancel,.btn-save{padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:500;border:none;cursor:pointer;transition:all .2s}.btn-cancel{background:#e2e8f0;color:#475569}.btn-cancel:hover{background:#cbd5e1}.btn-save{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-save:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}@media(max-width:87.5em){.samples-row{grid-template-columns:1fr}}@media(max-width:48em){.analisis-granulometrico-form{padding:var(--space-md)}.form-header{padding:var(--space-lg)}.form-title-block h1{font-size:var(--text-xl)}.sample-form-card{padding:var(--space-md)}.sample-header-fields{grid-template-columns:1fr}.tamices-grid{grid-template-columns:1fr 1fr}.form-actions{flex-direction:column}.btn-cancel,.btn-save{width:100%}}@media(max-width:30em){.tamices-grid{grid-template-columns:1fr}.sample-card-header h3{font-size:var(--text-base)}}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;}@layer rdg.MeasuringCell{.mlln6zg7-0-0-beta-58{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.cj343x07-0-0-beta-58{position:relative;padding-block:0;padding-inline:8px;border-inline-end:var(--rdg-border-width) solid var(--rdg-border-color);border-block-end:var(--rdg-border-width) solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);align-content:center;background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.cj343x07-0-0-beta-58[aria-selected=true]{outline:var(--rdg-selection-width) solid var(--rdg-selection-color);outline-offset:calc(var(--rdg-selection-width) * -1)}}@layer rdg.Cell{.csofj7r7-0-0-beta-58{position:sticky;z-index:1}.csofj7r7-0-0-beta-58:nth-last-child(1 of.csofj7r7-0-0-beta-58){box-shadow:var(--rdg-cell-frozen-box-shadow)}}@layer rdg.DragHandle{.ch2wcw87-0-0-beta-58{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.ch2wcw87-0-0-beta-58:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.c1wvphzh7-0-0-beta-58{z-index:1;position:sticky}}@layer rdg.CheckboxInput{.c1bn88vv7-0-0-beta-58{display:block;margin:auto;inline-size:20px;block-size:20px}.c1bn88vv7-0-0-beta-58:focus-visible{outline:2px solid var(--rdg-checkbox-focus-color);outline-offset:-3px}.c1bn88vv7-0-0-beta-58:enabled{cursor:pointer}}@layer rdg.GroupCellContent{.g1s9ylgp7-0-0-beta-58{outline:none}}@layer rdg.GroupCellCaret{.cz54e4y7-0-0-beta-58{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.cz54e4y7-0-0-beta-58>path{transition:d .1s}}@layer rdg.SortableHeaderCell{.h44jtk67-0-0-beta-58{display:flex}}@layer rdg.SortableHeaderCellName{.hcgkhxz7-0-0-beta-58{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.Cell{.c6ra8a37-0-0-beta-58{background-color:#ccf}}@layer rdg.EditCell{.cis5rrm7-0-0-beta-58{padding:0}}@layer rdg.HeaderCell{.c6l2wv17-0-0-beta-58{cursor:pointer}}@layer rdg.HeaderCell{.c1kqdw7y7-0-0-beta-58{touch-action:none}}@layer rdg.HeaderCell{.r1y6ywlx7-0-0-beta-58{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}@layer rdg.HeaderCell{.c1bezg5o7-0-0-beta-58{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.c1vc96037-0-0-beta-58{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.d8rwc9w7-0-0-beta-58{border-radius:4px;width:fit-content;outline:2px solid hsl(207,100%,50%);outline-offset:-2px}}@layer rdg.Row{.r1upfr807-0-0-beta-58{display:contents;background-color:var(--rdg-background-color)}.r1upfr807-0-0-beta-58:hover{background-color:var(--rdg-row-hover-background-color)}.r1upfr807-0-0-beta-58[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.r1upfr807-0-0-beta-58[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.r190mhd37-0-0-beta-58{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.r139qu9m7-0-0-beta-58:before{content:"";display:inline-block;block-size:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.HeaderRow{.h10tskcx7-0-0-beta-58{display:contents;background-color:var(--rdg-header-background-color);font-weight:700}.h10tskcx7-0-0-beta-58>.cj343x07-0-0-beta-58{z-index:2;position:sticky}.h10tskcx7-0-0-beta-58>.csofj7r7-0-0-beta-58{z-index:3}}@layer rdg.SortIcon{.a3ejtar7-0-0-beta-58{fill:currentColor}.a3ejtar7-0-0-beta-58>path{transition:d .1s}}@layer rdg.Defaults{.rnvodz57-0-0-beta-58 *,.rnvodz57-0-0-beta-58 *:before,.rnvodz57-0-0-beta-58 *:after{box-sizing:inherit}}@layer rdg.Root{.rnvodz57-0-0-beta-58{--rdg-selection-width: 2px;--rdg-selection-color: hsl(207, 75%, 66%);--rdg-font-size: 14px;--rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3);--rdg-border-width: 1px;--rdg-summary-border-width: calc(var(--rdg-border-width) * 2);--rdg-color: light-dark(#000, #ddd);--rdg-border-color: light-dark(#ddd, #444);--rdg-summary-border-color: light-dark(#aaa, #555);--rdg-background-color: light-dark(hsl(0deg 0% 100%), hsl(0deg 0% 13%));--rdg-header-background-color: light-dark(hsl(0deg 0% 97.5%), hsl(0deg 0% 10.5%));--rdg-header-draggable-background-color: light-dark(hsl(0deg 0% 90.5%), hsl(0deg 0% 17.5%));--rdg-row-hover-background-color: light-dark(hsl(0deg 0% 96%), hsl(0deg 0% 9%));--rdg-row-selected-background-color: light-dark(hsl(207deg 76% 92%), hsl(207deg 76% 42%));--rdg-row-selected-hover-background-color: light-dark(hsl(207deg 76% 88%), hsl(207deg 76% 38%));--rdg-checkbox-focus-color: hsl(207deg 100% 69%);color-scheme:var(--rdg-color-scheme, light dark);display:grid;accent-color:light-dark(hsl(207deg 100% 29%),hsl(207deg 100% 79%));contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.rnvodz57-0-0-beta-58.rdg-dark{--rdg-color-scheme: dark}.rnvodz57-0-0-beta-58.rdg-light{--rdg-color-scheme: light}.rnvodz57-0-0-beta-58:dir(rtl){--rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, .3)}.rnvodz57-0-0-beta-58:before{content:"";grid-column:1/-1;grid-row:1/-1}.rnvodz57-0-0-beta-58>:nth-last-child(1 of.rdg-top-summary-row)>.cj343x07-0-0-beta-58{border-block-end:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}.rnvodz57-0-0-beta-58>:nth-child(1 of.rdg-bottom-summary-row)>.cj343x07-0-0-beta-58{border-block-start:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}}@layer rdg.Root{.vlqv91k7-0-0-beta-58{-webkit-user-select:none;user-select:none}.vlqv91k7-0-0-beta-58 .r1upfr807-0-0-beta-58{cursor:move}}@layer rdg.FocusSink{.f1lsfrzw7-0-0-beta-58{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.f1cte0lg7-0-0-beta-58{z-index:3}}@layer rdg.SummaryCell{.s8wc6fl7-0-0-beta-58{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.SummaryRow{.skuhp557-0-0-beta-58>.cj343x07-0-0-beta-58{position:sticky}}@layer rdg.SummaryRow{.tf8l5ub7-0-0-beta-58>.cj343x07-0-0-beta-58{z-index:2}.tf8l5ub7-0-0-beta-58>.csofj7r7-0-0-beta-58{z-index:3}}@layer rdg.GroupedRow{.g1yxluv37-0-0-beta-58:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.g1yxluv37-0-0-beta-58>.cj343x07-0-0-beta-58:not(:last-child,.csofj7r7-0-0-beta-58),.g1yxluv37-0-0-beta-58>:nth-last-child(n+2 of.csofj7r7-0-0-beta-58){border-inline-end:none}}@layer rdg.TextEditor{.t7vyx3i7-0-0-beta-58{appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.t7vyx3i7-0-0-beta-58:focus{border-color:var(--rdg-selection-color);outline:none}.t7vyx3i7-0-0-beta-58::placeholder{color:#999;opacity:1}}.analisis-granulometrico-tabla-form{padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:#fff}.form-header{background:#fffffff2;color:#333;padding:1.5rem 2rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 4px 6px #0000001a}.form-title-block{text-align:center}.form-title-block h1{font-size:1.5rem;font-weight:700;margin:0 0 .5rem;color:#667eea;text-transform:uppercase;letter-spacing:.5px}.form-code{font-size:.9rem;color:#666;font-weight:500}.catalog-selectors{background:#fffffff2;color:#333;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 4px 6px #0000001a}.selector-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.form-field label{font-weight:600;font-size:.9rem;color:#555}.form-field select,.form-field input[type=text]{padding:.6rem;border:2px solid #ddd;border-radius:6px;font-size:.95rem;transition:all .2s;background:#fff}.form-field select:focus,.form-field input[type=text]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-field input[type=text]:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.table-container{background:#fffffff2;color:#333;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 4px 6px #0000001a}.table-info{margin-bottom:1rem;padding:.75rem;background:#f0f4ff;border-left:4px solid #667eea;border-radius:4px}.table-info p{margin:0;font-size:.9rem;color:#555}.table-info strong{color:#667eea}.granulometric-grid{height:500px;border:2px solid #ddd;border-radius:8px;overflow:hidden}.granulometric-grid .rdg{--rdg-background-color: white;--rdg-header-background-color: #667eea;--rdg-row-hover-background-color: #f5f7ff;--rdg-row-selected-background-color: #e8ecff;--rdg-selection-color: #667eea;--rdg-border-color: #ddd;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.9rem}.granulometric-grid .rdg-header-row{background:#667eea;color:#fff;font-weight:600}.granulometric-grid .rdg-cell{border-right:1px solid #e0e0e0;padding:8px}.granulometric-grid .cell-reference{background:#f5f5f5!important;color:#666;font-weight:600;text-align:center}.granulometric-grid .cell-editable{background:#fff!important;text-align:center;cursor:pointer}.granulometric-grid .cell-editable:hover{background:#fffef0!important}.granulometric-grid input{width:100%;height:100%;border:none;padding:4px 8px;font-size:.9rem;text-align:center}.granulometric-grid input:focus{outline:2px solid #667eea;background:#fffef0}.granulometric-grid input[type=number]{text-align:right}.granulometric-grid input[type=date]{text-align:center}.table-actions{display:flex;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:2px solid #eee}.btn-add-row{padding:.7rem 1.5rem;background:#10b981;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;font-size:.95rem}.btn-add-row:hover{background:#059669;transform:translateY(-2px);box-shadow:0 4px 8px #10b9814d}.btn-remove-row{padding:.7rem 1.5rem;background:#ef4444;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;font-size:.95rem}.btn-remove-row:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 8px #ef44444d}.form-actions{display:flex;justify-content:flex-end;gap:1rem}.btn-cancel{padding:.8rem 2rem;background:#fff3;color:#fff;border:2px solid white;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;font-size:1rem}.btn-cancel:hover:not(:disabled){background:#ffffff4d;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.btn-save{padding:.8rem 2rem;background:#fff;color:#667eea;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s;font-size:1rem}.btn-save:hover:not(:disabled){background:#f0f4ff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-cancel:disabled,.btn-save:disabled{opacity:.5;cursor:not-allowed;transform:none}@media(max-width:64em){.analisis-granulometrico-tabla-form{padding:var(--space-md)}.selector-row{grid-template-columns:1fr}.granulometric-grid{height:400px}}@media(max-width:48em){.form-title-block h1{font-size:var(--text-xl)}.table-actions{flex-direction:column}.btn-add-row,.btn-remove-row{width:100%}.form-actions{flex-direction:column-reverse}.btn-cancel,.btn-save{width:100%}}@media(max-width:30em){.granulometric-grid{height:300px}.form-header{padding:var(--space-md)}}.test-form-view{display:flex;flex-direction:column;height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem;padding:2rem}.error-state h2{color:#dc2626;font-size:2rem;margin:0}.error-state p{color:#64748b;font-size:1.1rem;margin:0}.form-header{background:#fff;border-bottom:3px solid #3b82f6;padding:1.5rem 2rem;box-shadow:0 2px 8px #0000001a}.btn-back{background:#64748b;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s;margin-bottom:1rem}.btn-back:hover{background:#475569}.form-title h1{margin:0 0 .5rem;color:#1e293b;font-size:1.8rem}.form-subtitle{display:flex;gap:1rem;flex-wrap:wrap}.sample-badge,.material-badge,.work-badge{padding:.4rem .8rem;border-radius:6px;font-size:.9rem;font-weight:500}.sample-badge{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.material-badge{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.work-badge{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.form-content{flex:1;overflow-y:auto;padding:2rem}.form-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000001a;max-width:1200px;margin:0 auto}.form-card h2{margin:0 0 1.5rem;color:#1e293b;font-size:1.5rem;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.form-card h3{margin:1.5rem 0 1rem;color:#475569;font-size:1.2rem}.form-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.form-group label{color:#475569;font-weight:500;font-size:.95rem}.form-group input[type=text],.form-group input[type=date],.form-group textarea,.form-group select{padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-group input[type=text]:focus,.form-group input[type=date]:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group textarea{resize:vertical;min-height:100px}.form-placeholder{background:#f1f5f9;border:2px dashed #cbd5e1;border-radius:8px;padding:2rem;text-align:center;color:#64748b;font-size:1rem;line-height:1.6;margin:1rem 0}.form-footer{background:#fff;border-top:2px solid #e2e8f0;padding:1.5rem 2rem;display:flex;justify-content:flex-end;gap:1rem;box-shadow:0 -2px 8px #0000001a}.form-footer .btn-primary,.form-footer .btn-secondary{padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;border:none;transition:all .2s}.form-footer .btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.form-footer .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.form-footer .btn-primary:disabled{opacity:.6;cursor:not-allowed}.form-footer .btn-secondary{background:#e2e8f0;color:#475569}.form-footer .btn-secondary:hover:not(:disabled){background:#cbd5e1}@media(max-width:48em){.form-header,.form-footer,.form-content{padding:var(--space-md)}.form-card{padding:var(--space-lg)}.form-section{grid-template-columns:1fr}.form-title h1{font-size:var(--text-2xl)}.form-subtitle{gap:var(--space-sm)}.sample-badge,.material-badge,.work-badge{font-size:var(--text-sm);padding:.3rem .6rem}}@media(max-width:30em){.form-footer{flex-direction:column}.form-footer .btn-primary,.form-footer .btn-secondary{width:100%}}.email-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.email-modal{background-color:#fff;padding:24px;border-radius:8px;width:100%;max-width:500px;box-shadow:0 4px 6px #0000001a}.email-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.email-modal-header h3{margin:0;color:#1f2937}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151}.form-group input,.form-group textarea{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:4px;font-size:14px}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f6}.error-message{color:#ef4444;font-size:14px;margin-bottom:16px}.email-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.cancel-button{padding:8px 16px;background-color:#f3f4f6;color:#374151;border:none;border-radius:4px;cursor:pointer;font-weight:500}.send-button{padding:8px 16px;background-color:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500}.send-button:disabled{background-color:#93c5fd;cursor:not-allowed}.email-modal{position:relative}.email-modal-loading-overlay{position:absolute;inset:0;background-color:#ffffffe6;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:8px;z-index:10}.email-modal-loading-overlay .spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}.email-modal-loading-overlay p{color:#374151;font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gcdm-report{padding:20px}.gcdm-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:20px}.gcdm-action-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0000001a}.gcdm-action-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.pdf-btn{background-color:#e53e3e;color:#fff}.pdf-btn:hover:not(:disabled){background-color:#c53030;transform:translateY(-1px);box-shadow:0 4px 6px #e53e3e33}.email-btn{background-color:#3182ce;color:#fff}.email-btn:hover:not(:disabled){background-color:#2b6cb0;transform:translateY(-1px);box-shadow:0 4px 6px #3182ce33}.gcdm-selector{background:#fff;padding:15px 20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;display:flex;align-items:center;gap:15px}.gcdm-selector label{font-weight:600;color:#2d3748;white-space:nowrap}.gcdm-selector select{flex:1;max-width:500px;padding:10px 15px;border:1px solid #e1e8ed;border-radius:6px;font-size:14px;color:#2d3748;background-color:#fff;cursor:pointer}.gcdm-selector select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 2px #0066cc1a}.gcdm-search-container{position:relative;flex:1;max-width:600px}.gcdm-search-input{width:100%;padding:12px 45px 12px 15px;border:2px solid #e1e8ed;border-radius:8px;font-size:15px;color:#2d3748;background-color:#fff;transition:border-color .2s,box-shadow .2s}.gcdm-search-input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc26}.gcdm-search-input::placeholder{color:#a0aec0}.gcdm-search-icon{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:18px;pointer-events:none}.gcdm-search-hint{font-size:12px;color:#718096;margin-left:auto}.gcdm-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e1e8ed;border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:100;max-height:400px;overflow:hidden}.gcdm-suggestions-header{padding:10px 15px;background:#f7fafc;border-bottom:1px solid #e1e8ed;font-size:12px;font-weight:600;color:#718096}.gcdm-suggestions-list{max-height:350px;overflow-y:auto}.gcdm-suggestion-item{padding:12px 15px;display:flex;flex-direction:column;gap:3px;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background-color .15s}.gcdm-suggestion-item:hover{background-color:#f0f7ff}.gcdm-suggestion-item.selected{background-color:#e8f4ff;border-left:3px solid #0066cc}.gcdm-suggestion-number{font-weight:600;font-size:14px;color:#1a202c}.gcdm-suggestion-details{font-size:12px;color:#718096}.gcdm-suggestions-more{padding:12px 15px;text-align:center;font-size:12px;color:#718096;background:#f7fafc;font-style:italic}.gcdm-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.gcdm-loading .spinner{width:40px;height:40px;border:4px solid #e1e8ed;border-top-color:#06c;border-radius:50%;animation:spin .8s linear infinite}.gcdm-loading p{margin-top:16px;color:#718096;font-size:14px}.gcdm-no-data{text-align:center;padding:60px 20px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#718096}.gcdm-header{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.gcdm-header-logo{display:flex;align-items:center;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:3px solid #0066cc}.gcdm-logo{width:80px;height:80px;object-fit:contain}.gcdm-company-info h1{margin:0;font-size:20px;font-weight:700;color:#1a202c;letter-spacing:.5px}.gcdm-company-info p{margin:5px 0 0;font-size:14px;color:#4a5568;font-weight:500}.gcdm-header-title h2{margin:0 0 20px;font-size:16px;font-weight:600;color:#1a202c;text-align:center;padding-bottom:15px;border-bottom:2px solid #e1e8ed}.gcdm-header-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.gcdm-header-field{display:flex;flex-direction:column;gap:5px}.gcdm-header-field label{font-size:12px;font-weight:600;color:#718096;text-transform:uppercase}.gcdm-header-field span{font-size:14px;color:#2d3748;font-weight:500}.gcdm-header-field input{padding:8px 12px;border:1px solid #e1e8ed;border-radius:4px;font-size:14px;color:#2d3748}.gcdm-header-field input:focus{outline:none;border-color:#06c}.gcdm-content{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.gcdm-granulometry-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.gcdm-granulometry-section h3{margin:0 0 5px;font-size:14px;font-weight:600;color:#1a202c;text-align:center}.gcdm-standard-ref{text-align:center;font-size:12px;color:#718096;margin:0 0 15px}.gcdm-sieve-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:15px;border:2px solid #1a202c}.gcdm-sieve-table thead{background-color:#f7fafc}.gcdm-sieve-table th{padding:8px 6px;text-align:center;font-weight:600;color:#2d3748;border:1px solid #1a202c;font-size:11px}.gcdm-sieve-table td{padding:6px;text-align:center;border:1px solid #1a202c;color:#4a5568}.gcdm-sieve-table tbody tr:hover{background-color:#f7fafc}.gcdm-percent-passing{font-weight:600;color:#06c}.gcdm-weight-info{background-color:#f7fafc;padding:12px;border-radius:6px;margin-bottom:15px}.gcdm-weight-info p{margin:5px 0;font-size:12px;color:#4a5568}.gcdm-weight-info strong{color:#1a202c}.gcdm-additional-info{border-top:1px solid #e1e8ed;padding-top:15px}.gcdm-additional-info p{margin:5px 0;font-size:12px;color:#4a5568}.gcdm-additional-info strong{color:#1a202c}.gcdm-chart-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.gcdm-chart-section h3{margin:0 0 5px;font-size:14px;font-weight:600;color:#1a202c;text-align:center}.gcdm-chart-container{width:100%;margin-top:15px}.gcdm-extraction-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.gcdm-extraction-title-wrapper{margin-bottom:15px}.gcdm-extraction-title-input{width:100%;font-size:14px;font-weight:600;color:#1a202c;text-align:center;border:1px solid #e1e8ed;padding:8px;border-radius:4px;background-color:#f7fafc}.gcdm-extraction-title-input:focus{outline:none;border-color:#06c;background-color:#fff}.gcdm-extraction-dual-table{width:100%;border-collapse:collapse;font-size:12px;border:2px solid #1a202c}.gcdm-extraction-dual-table td{padding:8px 10px;border:1px solid #1a202c;color:#1a202c}.gcdm-extraction-label{background-color:#e1e8ed;font-weight:700;text-align:center;vertical-align:middle;width:60px;font-size:13px}.gcdm-extraction-item{background-color:#f7fafc;font-weight:500;padding-left:12px;width:35%}.gcdm-extraction-value{text-align:center;font-weight:600;background-color:#fff;width:15%}.gcdm-extraction-result{background-color:#e8f4ff!important;color:#06c!important}.gcdm-extraction-avg{font-size:13px;font-weight:600;color:#1a202c;text-align:center;padding:12px;background-color:#f0f7ff;border:2px solid #1a202c}.gcdm-extraction-avg-value{margin-left:20px;font-size:16px;font-weight:700;color:#06c}.gcdm-briquettes-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.gcdm-briquettes-section h3{margin:0 0 15px;font-size:14px;font-weight:600;color:#1a202c;text-align:center}.gcdm-briquettes-table-container{overflow-x:auto}.gcdm-briquettes-table{width:100%;min-width:1200px;border-collapse:collapse;font-size:8px;border:2px solid #1a202c}.gcdm-briquettes-table thead{background-color:#f7fafc}.gcdm-briquettes-table th{padding:6px 3px;text-align:center;font-weight:600;color:#2d3748;border:1px solid #1a202c;font-size:9px;white-space:normal;line-height:1.3;vertical-align:middle;min-height:40px}.gcdm-briquettes-table td{padding:5px 3px;text-align:center;border:1px solid #1a202c;color:#4a5568;font-size:9px}.gcdm-briquettes-table tbody tr:hover{background-color:#f7fafc}.gcdm-briquettes-avg{background-color:#e8f4ff}.gcdm-briquettes-avg td{font-weight:600;color:#06c}@media(max-width:75em){.gcdm-content{grid-template-columns:1fr}}@media(max-width:48em){.gcdm-header-grid{grid-template-columns:1fr}.gcdm-selector{flex-direction:column;align-items:stretch;gap:var(--space-sm)}.gcdm-selector select,.gcdm-search-container{max-width:none}.gcdm-search-hint{margin-left:0}.gcdm-report{padding:var(--space-md)}}@media(max-width:30em){.gcdm-header-logo{flex-direction:column;text-align:center;gap:var(--space-md)}.gcdm-company-info h1{font-size:var(--text-lg)}.gcdm-actions{flex-direction:column}.gcdm-action-btn{width:100%;justify-content:center}}@media print{.gcdm-report{padding:0}.gcdm-selector{display:none}.gcdm-content{grid-template-columns:1fr 1fr}.gcdm-header,.gcdm-granulometry-section,.gcdm-chart-section,.gcdm-extraction-section,.gcdm-briquettes-section{box-shadow:none;border:1px solid #e1e8ed;break-inside:avoid}.gcdm-extraction-title-input{border:none;background-color:transparent;padding:0;pointer-events:none}.gcdm-header-logo{border-bottom-color:#06c}.gcdm-logo{width:60px;height:60px}}.calc-btn{background-color:#805ad5;color:#fff}.calc-btn:hover:not(:disabled){background-color:#6b46c1;transform:translateY(-1px);box-shadow:0 4px 6px #805ad533}.gcdm-calculation-table{background:#fff;padding:20px;margin:20px 0;border-radius:8px;box-shadow:0 2px 8px #0000001a;border:2px solid #805ad5}.gcdm-calculation-table h3{margin:0 0 10px;color:#6b46c1;font-size:18px}.gcdm-calc-description{margin:0 0 15px;color:#718096;font-size:14px;font-style:italic}.gcdm-calc-params-table{width:100%;border-collapse:collapse;font-size:14px}.gcdm-calc-params-table th,.gcdm-calc-params-table td{padding:12px;text-align:left;border:1px solid #e2e8f0}.gcdm-calc-params-table thead{background-color:#f7fafc}.gcdm-calc-params-table th{font-weight:600;color:#2d3748;text-transform:uppercase;font-size:12px;letter-spacing:.5px}.gcdm-calc-params-table tbody tr:hover{background-color:#f7fafc}.gcdm-calc-params-table tbody tr.gcdm-calc-result{background-color:#faf5ff;border-top:2px solid #805ad5}.gcdm-calc-params-table tbody tr.gcdm-calc-result:hover{background-color:#f3e8ff}.gcdm-calc-params-table td:nth-child(1){width:80px;font-family:Courier New,monospace;color:#6b46c1}.gcdm-calc-params-table td:nth-child(2){width:120px;font-family:Courier New,monospace;font-weight:500;color:#2d3748}.gcdm-calc-params-table td:nth-child(3){color:#4a5568}.no-print{display:block!important}@media print{.no-print{display:none!important}}.gcdm-signature-selectors{display:flex;gap:20px;margin:20px 0;padding:15px;background-color:#f7fafc;border-radius:8px;border:1px solid #e2e8f0}.gcdm-signature-selector{flex:1;display:flex;align-items:center;gap:10px}.gcdm-signature-selector label{font-weight:600;color:#2d3748;font-size:14px;white-space:nowrap}.gcdm-signature-select{flex:1;padding:8px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:14px;background-color:#fff;cursor:pointer}.gcdm-signature-select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.gcdm-disclaimer{margin-top:40px;padding:20px 40px;text-align:center;font-size:10px;line-height:1.5;color:#000}.gcdm-disclaimer p{margin:0 0 15px}.gcdm-mixture-type{font-weight:400;font-size:11px;margin-top:20px!important;text-align:center}.gcdm-signatures-section{display:flex;justify-content:space-between;align-items:flex-end;gap:100px;margin-top:80px;margin-bottom:40px;padding:20px 60px;background-color:#fff;page-break-inside:avoid}.gcdm-signature-block{flex:1;display:flex;flex-direction:column;align-items:center;max-width:350px}.gcdm-signature-item{width:100%;display:flex;flex-direction:column;align-items:center}.gcdm-signature-img{max-width:180px;max-height:70px;margin-bottom:15px;display:block;object-fit:contain}.gcdm-signature-line{width:100%;height:2px;background-color:#000;margin:20px 0 8px;border:none}.gcdm-signature-name{font-weight:400;font-size:11px;color:#000;margin:0;text-align:center;width:100%}.gcdm-signature-title{font-size:11px;color:#000;margin:2px 0 0;font-style:normal;text-align:center;width:100%}.gcdm-signature-placeholder{text-align:center;font-size:20px;color:#999;margin:20px 0;min-height:60px;display:flex;align-items:center;justify-content:center}@media(max-width:48em){.gcdm-signature-selectors{flex-direction:column}.gcdm-signatures-section{flex-direction:column;gap:var(--space-xl);padding:var(--space-lg)}}@media print{.gcdm-signature-selectors{display:none!important}.gcdm-signatures-section{page-break-inside:avoid}}.reports-view{min-height:100vh;background-color:#f5f7fa}.reports-container{max-width:1400px;margin:0 auto;padding:20px}.report-types{display:flex;gap:10px;margin-bottom:20px;background:#fff;padding:15px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.report-type-btn{flex:1;padding:12px 20px;border:2px solid #e1e8ed;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;color:#4a5568;transition:all .2s}.report-type-btn:hover{border-color:#06c;background-color:#f0f7ff;color:#06c}.report-type-btn.active{border-color:#06c;background-color:#06c;color:#fff}.report-filters{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.report-filters h3{margin:0 0 15px;font-size:16px;font-weight:600;color:#2d3748}.filter-row{display:flex;gap:15px;align-items:flex-end}.filter-field{flex:1;display:flex;flex-direction:column}.filter-field label{font-size:13px;font-weight:500;color:#4a5568;margin-bottom:5px}.filter-field input,.filter-field select{padding:8px 12px;border:2px solid #e5e7eb;border-radius:6px;font-size:14px;color:#2d3748}.filter-field input:focus,.filter-field select:focus{outline:none;border-color:2px solid #e5e7eb}.report-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.report-table-container{overflow-x:auto;padding:20px}.report-table{width:100%;border-collapse:collapse;font-size:14px}.report-table thead{background-color:#f7fafc;border-bottom:2px solid #e1e8ed}.report-table th{padding:12px 16px;text-align:left;font-weight:600;color:#2d3748;white-space:nowrap}.report-table td{padding:12px 16px;border-bottom:1px solid #e1e8ed;color:#4a5568}.report-table tbody tr:hover{background-color:#f7fafc}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.status-pendiente{background-color:#fff3cd;color:#856404}.status-en-proceso{background-color:#cfe2ff;color:#084298}.status-completado{background-color:#d1e7dd;color:#0f5132}.progress-bar{position:relative;width:100%;height:24px;background-color:#e1e8ed;border-radius:12px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#06c,#08f);transition:width .3s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:600;color:#2d3748}.statistics-container{padding:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);padding:24px;border-radius:8px;color:#fff;text-align:center}.stat-card.status-pendiente{background:linear-gradient(135deg,#f6d365,#fda085)}.stat-card.status-proceso{background:linear-gradient(135deg,#43e97b,#38f9d7)}.stat-card.status-completado{background:linear-gradient(135deg,#4facfe,#00f2fe)}.stat-value{font-size:36px;font-weight:700;margin-bottom:8px}.stat-label{font-size:14px;font-weight:500;opacity:.9}.no-data{text-align:center;padding:40px 20px;color:#718096;font-size:14px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px}.spinner{width:40px;height:40px;border:4px solid #e1e8ed;border-top-color:#06c;border-radius:50%;animation:spin .8s linear infinite}.loading-container p{margin-top:16px;color:#718096;font-size:14px}@media(max-width:48em){.report-types,.filter-row{flex-direction:column}.stats-grid{grid-template-columns:1fr}.report-table{font-size:var(--text-xs)}.report-table th,.report-table td{padding:var(--space-sm)}}@media(max-width:30em){.reports-container,.report-filters{padding:var(--space-md)}.stat-value{font-size:var(--text-2xl)}}.bitacora-view{animation:fadeIn .4s ease-out;background:var(--color-bg-primary);min-height:100vh;padding-bottom:2rem}.bitacora-content{background:var(--color-bg-secondary);margin:1rem 1.5rem;padding:1rem;border-radius:8px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000a}.bitacora-header{margin-bottom:2rem}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--gray-100)}.bitacora-header h1{margin:0;color:var(--color-text-primary);font-size:2.25rem;font-weight:700;letter-spacing:-.5px}.header-actions{display:flex;gap:1rem}.statistics-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--color-bg-secondary);border-radius:12px;padding:1.5rem;box-shadow:0 2px 4px #0000000d;border-left:4px solid;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.stat-total{border-left-color:var(--color-accent);background:var(--color-bg-secondary)}.stat-pendiente{border-left-color:var(--color-warning);background:var(--color-status-pending-bg)}.stat-en-proceso{border-left-color:var(--color-accent);background:var(--color-status-progress-bg)}.stat-completado{border-left-color:var(--color-success);background:var(--color-status-completed-bg)}.stat-rate{border-left-color:var(--color-primary);background:var(--color-bg-secondary)}.progress-bar-container{width:100%;height:8px;background-color:var(--color-border);border-radius:4px;margin-top:.5rem;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-accent);border-radius:4px;transition:width .5s ease-out}.stat-label{font-size:.875rem;color:var(--color-text-muted);font-weight:500;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:2rem;font-weight:700;color:var(--color-text-primary)}.filters-section{background:var(--color-bg-secondary);padding:.75rem 1rem;border-radius:8px;margin:0;border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000a;display:flex;flex-direction:column;gap:.5rem}.bitacora-content .filters-row{margin-bottom:.5rem}.filters-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;width:100%}.results-info{margin-top:0;padding:.375rem .75rem;background:#f0f9ff;border-radius:20px;font-size:.6875rem;color:#0369a1;font-weight:600;text-align:center;border:1px solid #bae6fd}.filter-group{display:flex;flex-direction:row;align-items:center;gap:.375rem;background:#f8fafc;padding:.375rem .625rem;border-radius:6px;border:1px solid #e2e8f0}.filter-group label{display:flex;align-items:center;gap:.125rem;font-size:.6875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.filter-input,.filter-select{padding:.375rem .625rem;border:2px solid #e5e7eb;border-radius:4px;font-size:.875rem;line-height:1.4;transition:all .15s ease;background:#fff;min-width:120px;max-width:180px;height:36px;min-height:40px;box-sizing:border-box;color:var(--color-text-primary)}.filter-input:hover,.filter-select:hover{border-color:2px solid #e5e7eb}.filter-input:focus,.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.btn-filter{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.375rem .875rem;border:1px solid #d1d5db;border-radius:4px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s ease;height:36px;box-sizing:border-box;white-space:nowrap;background:#f1f5f9;color:#475569}.btn-filter:hover{background:#e2e8f0;border-color:#9ca3af;color:#1f2937}.btn-filter:active{background:#cbd5e1}.btn-filter .material-symbols-outlined{font-size:.875rem}.bitacora-table-container{overflow-x:auto;background:var(--color-bg-secondary);border-radius:8px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000d;margin:0 2rem 2rem}.bitacora-table{width:100%;border-collapse:collapse;min-width:900px}.bitacora-table thead{background:var(--gray-50);color:var(--color-text-secondary)}.bitacora-table thead th{padding:.875rem 1rem;text-align:left;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.5px;border-bottom:1.5px solid var(--color-border);white-space:nowrap}.bitacora-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .15s ease}.bitacora-table tbody tr:hover{background-color:var(--gray-50)}.bitacora-table tbody tr:last-child{border-bottom:none}.bitacora-table td{padding:.875rem 1rem;color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.col-number{font-weight:600;color:var(--color-accent);text-align:center;width:60px}.col-project{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-sample-type{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-data{text-align:center;padding:3rem!important;color:var(--gray-400);font-style:italic}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-completado{background:var(--color-status-completed-bg);color:var(--color-status-completed-text);border:1px solid var(--color-status-completed-border)}.status-en-proceso{background:var(--color-status-progress-bg);color:var(--color-status-progress-text);border:1px solid var(--color-status-progress-border)}.status-pendiente{background:var(--color-status-pending-bg);color:var(--color-status-pending-text);border:1px solid var(--color-status-pending-border)}.bitacora-footer{text-align:center;padding:1rem 2rem;background:var(--color-bg-secondary);border-radius:8px;box-shadow:0 2px 4px #0000000d;color:var(--color-text-muted);margin:0 2rem 2rem;border:1px solid var(--color-border)}.bitacora-footer strong{color:var(--color-text-primary);font-weight:700}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;gap:1rem}.loading-spinner{width:48px;height:48px;border:4px solid var(--gray-100);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.error-message{background:var(--color-danger-light);border:1.5px solid var(--color-danger);border-radius:8px;padding:1rem 2rem;margin:0 2rem 2rem;color:var(--color-danger-dark);box-shadow:0 2px 4px #dc26261a}.error-message strong{font-weight:700;color:var(--color-danger)}@media(max-width:87.5em){.bitacora-table{font-size:var(--text-sm)}.bitacora-table td,.bitacora-table th{padding:.75rem .85rem}}@media(max-width:75em){.statistics-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:48em){.filters-section{padding:.5rem;margin:.5rem;gap:.375rem}.filters-row{gap:.375rem}.filter-group{flex:1 1 auto;min-width:calc(50% - .25rem);padding:.1875rem .375rem}.filter-group label{font-size:.5rem}.filter-input,.filter-select{min-width:70px;max-width:100%;min-height:40px;height:32px;font-size:.8125rem;flex:1;border-radius:4px}.filter-actions{width:100%;justify-content:center;margin-left:0;margin-top:.25rem}.btn-filter{flex:1;justify-content:center;height:32px;font-size:.75rem}.results-info{width:100%;text-align:center}.bitacora-content{margin:.5rem;padding:.5rem}.bitacora-table-container{margin:0 .5rem 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.bitacora-footer,.pagination-container,.error-message{margin:0 .5rem 1rem;padding:.75rem}.bitacora-charts{margin:0 .5rem 1rem}.header-top{flex-direction:column;gap:.75rem;align-items:flex-start}.header-actions{width:100%;flex-direction:row;flex-wrap:wrap}.statistics-cards{grid-template-columns:1fr;gap:.75rem}.bitacora-table{min-width:900px;font-size:.8125rem}.bitacora-table td,.bitacora-table th{padding:.625rem .75rem}}.bitacora-charts{margin:0 2rem 2rem;animation:fadeIn .4s ease-out}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.chart-card{background:var(--color-bg-secondary);border-radius:12px;padding:1.5rem;box-shadow:0 2px 4px #0000000d;transition:transform .2s ease,box-shadow .2s ease}.chart-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.chart-card-wide{grid-column:1 / -1}.chart-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid var(--gray-100)}.chart-header h3{margin:0 0 .5rem;color:var(--color-text-primary);font-size:1.25rem;font-weight:700}.chart-header p{margin:0;color:var(--color-text-muted);font-size:.875rem}.chart-container{min-height:300px;display:flex;align-items:center;justify-content:center}.custom-tooltip{background:var(--color-bg-secondary);border:1.5px solid var(--color-border);border-radius:8px;padding:.75rem;box-shadow:0 4px 6px #0000001a}.tooltip-label{margin:0 0 .25rem;color:var(--color-text-primary);font-weight:600;font-size:.875rem}.tooltip-value{margin:0;color:var(--color-accent);font-weight:700;font-size:1rem}@media(max-width:75em){.charts-grid{grid-template-columns:1fr}.chart-card-wide{grid-column:1}}@media(max-width:48em){.chart-card{padding:var(--space-md)}.chart-header h3{font-size:var(--text-base)}.chart-container{min-height:250px}}.pagination-container{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--color-bg-secondary);border-radius:8px;box-shadow:0 2px 4px #0000000d;margin:0 2rem 2rem;flex-wrap:wrap;gap:1rem;border:1px solid var(--color-border)}.pagination-info{color:var(--color-text-muted);font-size:.9rem;font-weight:500}.btn-pagination{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1.5px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.btn-pagination:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400);transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.btn-pagination:disabled{opacity:.5;cursor:not-allowed;background:var(--gray-50);color:var(--gray-400)}.btn-page-number{padding:.5rem .875rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1.5px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);min-width:40px}.btn-page-number:hover{background:var(--gray-50);border-color:var(--gray-400);transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.btn-page-number.active{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent);box-shadow:0 2px 4px #3b82f64d}.page-size-selector{display:flex;align-items:center;height:30px;gap:.5rem}.page-size-selector label{font-size:.875rem;color:var(--color-text-secondary);font-weight:600;white-space:nowrap}.page-size-selector select{padding:.5rem;border:1.5px solid var(--color-border);border-radius:6px;font-size:.875rem;height:30px;background:var(--color-bg-secondary);cursor:pointer;transition:all .2s ease}.page-size-selector select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #3b82f61a}@media(max-width:48em){.pagination-container{flex-direction:column;align-items:stretch}.pagination-controls{justify-content:center;flex-wrap:wrap}.page-size-selector{justify-content:center;height:30px}.btn-pagination,.btn-page-number{padding:var(--space-sm) .75rem;font-size:var(--text-sm)}}.scale-lot-input{width:100%;padding:4px 8px;border:1.5px solid transparent;border-radius:6px;background-color:transparent;font-size:.875rem;transition:all .2s}.scale-lot-input:hover{border-color:var(--color-border);background-color:var(--gray-50)}.scale-lot-input:focus{border-color:var(--color-accent);background-color:var(--color-bg-secondary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.dark .scale-lot-input:hover{border-color:var(--gray-600);background-color:var(--gray-800)}.dark .scale-lot-input:focus{border-color:var(--color-accent);background-color:var(--gray-900)}.granulometric-form{padding:2rem;max-width:100%;background:#fff}.form-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:.5px solid #e5e7eb}.form-header h2{margin:0 0 1rem;font-size:1.75rem;color:#1f2937}.warning-message{padding:.75rem 1rem;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;font-size:.95rem}.info-message{padding:.75rem 1rem;background:#dbeafe;border:1px solid #60a5fa;border-radius:6px;color:#1e40af;font-size:.95rem;margin-top:.5rem}.form-section{margin-bottom:2.5rem}.form-section h3{margin:0 0 1.5rem;font-size:1.25rem;color:#374151;font-weight:600}.section-hint{margin:-1rem 0 1rem;color:#6b7280;font-size:.9rem;font-style:italic}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field label{font-size:.95rem;font-weight:500;color:#374151}.form-field input,.form-field select{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:all .2s}.form-field input:focus,.form-field select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-field input:disabled,.form-field select:disabled{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.observations-textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;font-family:inherit;resize:vertical;transition:all .2s}.observations-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.observations-textarea:disabled{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.sieves-table-container{overflow-x:auto;background:#f9fafb;border-radius:8px;padding:1rem}.sieves-input-table{width:100%;border-collapse:collapse;min-width:2000px;background:#fff}.sieves-input-table thead{background:#f3f4f6}.sieves-input-table th{padding:.75rem .5rem;text-align:center;font-weight:600;color:#374151;border:1px solid #e5e7eb;white-space:nowrap}.sieves-input-table th.tamiz-header{background:#dbeafe;color:#1e40af;font-size:.9rem}.sieves-input-table th.sieve-size-header{background:#eff6ff;color:#1e40af;font-size:.85rem;min-width:80px}.sieves-input-table th.retained-header{background:#f0fdf4;color:#166534;font-size:.85rem;min-width:100px}.sieves-input-table tbody tr{border-bottom:.5px solid #e5e7eb}.sieves-input-table td{padding:.75rem .5rem;border:.5px solid #e5e7eb;text-align:center}.sieves-input-table td.row-label{background:#f9fafb;font-weight:600;color:#374151;text-align:left;padding-left:1rem;position:sticky;left:0;z-index:1}.sieves-input-table td.sieve-size-cell{background:#eff6ff;font-weight:500;color:#1e40af;font-size:.9rem}.sieves-input-table td.input-cell{background:#f0fdf4;padding:.5rem}.sieve-input{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem;text-align:right;font-variant-numeric:tabular-nums;font-family:Courier New,monospace;transition:all .2s}.sieve-input:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.sieve-input:disabled{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:2rem;border-top:1px solid #e5e7eb}.btn-cancel,.btn-submit{padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel{background:#e5e7eb;color:#374151}.btn-cancel:hover{background:#d1d5db}.btn-submit{background:#3b82f6;color:#fff}.btn-submit:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px #3b82f64d}.btn-submit:disabled{background:#9ca3af;cursor:not-allowed}@media(max-width:48em){.granulometric-form{padding:var(--space-md)}.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%}.form-header h2{font-size:var(--text-xl)}}@media(max-width:30em){.form-section h3{font-size:var(--text-lg)}.warning-message,.info-message{font-size:var(--text-sm)}}@media print{.form-actions,.btn-cancel,.btn-submit{display:none}.sieves-input-table{font-size:8pt}}.toast{position:fixed;top:20px;right:20px;display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:10000;min-width:300px;max-width:500px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-loading{border-left:4px solid #3b82f6}.toast-success{border-left:4px solid #10b981}.toast-error{border-left:4px solid #ef4444}.toast-info{border-left:4px solid #f59e0b}.toast-spinner{width:20px;height:20px;flex-shrink:0}.spinner-ring{width:20px;height:20px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.toast-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:14px;font-weight:700;flex-shrink:0}.toast-success .toast-icon{background:#dcfce7;color:#166534}.toast-error .toast-icon{background:#fee2e2;color:#991b1b}.toast-info .toast-icon{background:#fef3c7;color:#92400e}.toast-message{flex:1;font-size:14px;color:#374151;line-height:1.5}.toast-close{background:none;border:none;font-size:24px;color:#9ca3af;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0}.toast-close:hover{background:#f3f4f6;color:#6b7280}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast-container .toast{position:relative;top:auto;right:auto;pointer-events:all}@media(max-width:40em){.toast{top:var(--space-sm);right:var(--space-sm);left:var(--space-sm);min-width:auto;max-width:none}.toast-container{top:var(--space-sm);right:var(--space-sm);left:var(--space-sm)}}.granulometric-view{padding:1rem 1.5rem;max-width:100%;margin:0 auto}.slider-container{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000000d}.slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.slider-header label{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:#1e293b;margin:0}.slider-header label .material-symbols-outlined{font-size:1.25rem;color:#3b82f6}.slider-remove-btn{background:#ef4444;color:#fff;border:none;border-radius:50%;width:28px;height:28px;font-size:1.25rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.slider-remove-btn:hover{background:#dc2626;transform:scale(1.1)}.slider-content{display:flex;align-items:center;gap:1.5rem}.range-slider{flex:1;height:8px;border-radius:4px;background:linear-gradient(to right,#e2e8f0,#3b82f6);outline:none;cursor:pointer;transition:all .2s}.range-slider::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#3b82f6;border:3px solid white;box-shadow:0 2px 4px #0003;cursor:pointer;transition:all .2s}.range-slider::-webkit-slider-thumb:hover{background:#2563eb;transform:scale(1.2)}.range-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#3b82f6;border:3px solid white;box-shadow:0 2px 4px #0003;cursor:pointer;transition:all .2s}.slider-value{font-size:1.125rem;font-weight:700;color:#1e293b;min-width:80px;text-align:center;padding:.5rem 1rem;background:#fff;border-radius:8px;border:2px solid #e2e8f0;box-shadow:0 1px 3px #0000001a}.filter-select,.filter-input{padding:.375rem .625rem;border:2px solid #e5e7eb;border-radius:4px;font-size:.875rem;line-height:1.4;background:#fff;transition:all .15s ease;height:40px;min-height:40px;box-sizing:border-box;color:#1f2937;font-weight:500;min-width:120px;max-width:180px}.filter-select:hover,.filter-input:hover{border-color:2px solid #e5e7eb}.filter-stats{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.stat-badge{display:inline-flex;align-items:flex-end;gap:.375rem;padding:.375rem .75rem;background:#f0f9ff;border:1px solid #bfdbfe;border-radius:6px;font-size:.8125rem;color:#1e40af;font-weight:500;white-space:nowrap}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;transition:all .2s;min-height:80px}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.stat-card.stat-pass{border-color:#10b981;background:#f0fdf4}.stat-card.stat-fail{border-color:#ef4444;background:#fef2f2}.stat-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:10px;background:#f3f4f6}.stat-card.stat-pass .stat-icon{background:#dcfce7;color:#10b981}.stat-card.stat-fail .stat-icon{background:#fee2e2;color:#ef4444}.stat-icon .material-symbols-outlined{font-size:28px}.stat-number{font-size:1.75rem;font-weight:700;color:#1f2937;line-height:1}.stat-card.stat-pass .stat-number{color:#10b981}.stat-card.stat-fail .stat-number{color:#ef4444}.stat-label{font-size:.9rem;color:#6b7280;margin-top:.25rem;font-weight:500}.help-text{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:#dbeafe;border:1px solid #93c5fd;border-radius:8px;color:#1e40af;margin-bottom:1.5rem;font-size:.9rem}.info-icon{font-size:1.25rem;flex-shrink:0}.results-table-container{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 350px);background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.granulometric-table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:2000px}.granulometric-table thead{background:#f3f4f6}.granulometric-table th{padding:.25rem .5rem;text-align:left;font-weight:600;color:#374151;border:1px solid #e5e7eb;white-space:nowrap;background:#f3f4f6;height:28px;position:sticky;z-index:10}.granulometric-table thead tr:first-child th{top:0;z-index:12}.granulometric-table thead tr:nth-child(2) th{top:28px;z-index:11;background:#dbeafe;color:#1e40af;text-align:center}.granulometric-table thead th:nth-child(1){position:sticky;left:0;z-index:30!important;background:#f3f4f6}.granulometric-table thead th:nth-child(2){position:sticky;left:80px;z-index:29!important;background:#f3f4f6}.granulometric-table tbody td:nth-child(1){position:sticky;left:0;z-index:10;background:#fff}.granulometric-table tbody td:nth-child(2){position:sticky;left:80px;z-index:9;background:#fff}.granulometric-table tbody tr.row-completed td:nth-child(1),.granulometric-table tbody tr.row-completed td:nth-child(2){background:#f0fdf4}.granulometric-table tbody tr:hover td:nth-child(1),.granulometric-table tbody tr:hover td:nth-child(2){background:#f9fafb}.granulometric-table tbody tr.row-completed:hover td:nth-child(1),.granulometric-table tbody tr.row-completed:hover td:nth-child(2){background:#dcfce7}.granulometric-table tbody td:nth-child(2){position:relative}.granulometric-table tbody td:nth-child(2):after{content:"";position:absolute;top:0;right:-8px;bottom:0;width:8px;background:linear-gradient(to right,rgba(0,0,0,.08),transparent);pointer-events:none}.granulometric-table td{padding:0;border:1px solid #e5e7eb;white-space:nowrap;height:28px;box-sizing:border-box;vertical-align:middle;overflow:hidden}.granulometric-table td.numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:Courier New,monospace}.granulometric-table td.sieve-size{text-align:center;background:#eff6ff;font-weight:500;color:#1e40af}.granulometric-table td.signature{font-size:.8rem;color:#6b7280;min-width:300px;max-width:400px;white-space:normal}.granulometric-table th:nth-child(5),.granulometric-table td:nth-child(5){min-width:200px;max-width:300px}.granulometric-table th:nth-child(6),.granulometric-table td:nth-child(6){min-width:200px;max-width:300px}.granulometric-table th:nth-child(7),.granulometric-table td:nth-child(7){min-width:180px;max-width:250px}.granulometric-table th:nth-child(8),.granulometric-table td:nth-child(8){min-width:180px;max-width:250px}.granulometric-table th:nth-child(9),.granulometric-table td:nth-child(9){min-width:180px;max-width:250px}.granulometric-table th:nth-child(10),.granulometric-table td:nth-child(10){min-width:200px;max-width:300px}.granulometric-table th:nth-child(11),.granulometric-table td:nth-child(11){min-width:200px;max-width:300px}.granulometric-table th:nth-child(46),.granulometric-table td:nth-child(46){min-width:500px;max-width:700px;white-space:normal}.granulometric-table th:nth-child(47),.granulometric-table td:nth-child(47){min-width:300px;max-width:400px}.granulometric-table th:nth-child(48),.granulometric-table td:nth-child(48){min-width:300px;max-width:400px}.empty-state{text-align:center;padding:3rem 1rem!important;color:#9ca3af;font-style:italic}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.error-message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;margin-bottom:1.5rem}.error-icon{font-size:1.5rem}.close-btn{margin-left:auto;background:none;border:none;font-size:1.5rem;color:#991b1b;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn:hover{background:#991b1b1a}@media(max-width:48em){.granulometric-view{padding:.75rem}.view-header{flex-direction:column;gap:.5rem;align-items:stretch}.view-header h1{font-size:1.125rem}.header-actions{justify-content:flex-end}.filters-section{padding:.5rem;gap:.5rem;flex-direction:column;align-items:stretch}.filter-grid{flex-direction:column;align-items:stretch;gap:.5rem;width:100%}.filter-group{width:100%;justify-content:space-between}.filter-select,.filter-input{flex:1;min-width:0;max-width:none;height:40px;min-height:40px;font-size:.8125rem}.filter-actions{width:100%;justify-content:stretch;margin-top:.25rem}.btn-filter,.btn-clear{flex:1;height:32px;font-size:.75rem}.filter-stats{justify-content:center}}.editable-cell{cursor:pointer;position:relative;transition:background .15s}.editable-cell:hover{background:#fef3c7!important;outline:2px solid #fbbf24}.editable-cell:after{content:"✎";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:.75rem;color:#9ca3af;opacity:0;transition:opacity .15s}.editable-cell:hover:after{opacity:1}.editing-row{background:#fffbeb!important;outline:2px solid #f59e0b}.editing-row:hover{background:#fffbeb!important}.inline-edit-input,.inline-edit-select,.inline-edit-textarea{width:100%;padding:.25rem .375rem;border:1px solid #d1d5db;border-radius:2px;font-size:.8125rem;background:#fff;font-family:inherit;height:24px;line-height:1.2;box-sizing:border-box}.inline-edit-input:focus,.inline-edit-select:focus,.inline-edit-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.inline-edit-select{cursor:pointer;appearance:auto;min-width:150px}.inline-edit-input.numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:Courier New,monospace;min-width:100px;width:auto}.inline-edit-input.sieve-size{text-align:center;min-width:50px}.inline-edit-input.sieve-retained{min-width:110px;width:110px;max-width:150px}.inline-edit-input.signature{font-size:.8rem;min-width:200px;width:200px}.inline-edit-textarea{min-height:24px;height:auto;resize:vertical;padding:.25rem .375rem;line-height:1.3}.inline-edit-input[disabled]{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.editing-actions-row{background:#fffbeb!important}.inline-edit-actions{display:flex;gap:1rem;justify-content:center;padding:1rem}.btn-save-inline,.btn-cancel-inline{padding:.625rem 1.5rem;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-save-inline{background:#10b981;color:#fff}.btn-save-inline:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 6px #10b9814d}.btn-cancel-inline{background:#ef4444;color:#fff}.btn-cancel-inline:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 6px #ef44444d}.btn-transfer{padding:.5rem 1rem;background:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-transfer:hover{background:#7c3aed;transform:translateY(-1px);box-shadow:0 4px 6px #8b5cf64d}.excel-input{width:100%;height:100%;border:none;background:transparent;padding:.25rem .5rem;font-size:.875rem;font-family:inherit;color:inherit;box-sizing:border-box;line-height:normal}.excel-input:focus{outline:2px solid #3b82f6;outline-offset:-2px;background:#fffbeb;z-index:1;position:relative}.excel-input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.excel-select{width:100%;min-height:32px;height:auto;border:none;background:transparent;padding:.5rem;font-size:.875rem;font-family:inherit;color:inherit;cursor:pointer;box-sizing:border-box;line-height:1.4}.excel-select:focus{outline:2px solid #3b82f6;outline-offset:-2px;background:#fffbeb}.excel-select option{padding:.5rem;line-height:1.6;min-height:32px}.correlative-number{font-weight:700;font-size:.9rem;color:#1f2937;background:#f3f4f6;font-family:Courier New,monospace}.text-center,.granulometric-table td:first-child{text-align:center}.excel-input,.excel-select{border:none!important;box-shadow:none!important;outline:none!important}.test-status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.test-status-badge.draft{background:#fef3c7;color:#92400e}.test-status-badge.completed{background:#d1fae5;color:#065f46}.btn-complete{padding:.375rem .875rem;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-complete:hover{background:#059669}.btn-complete:disabled{background:#9ca3af;cursor:not-allowed}.pending-changes-indicator{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#fef3c7;border:2px solid #f59e0b;border-radius:8px;color:#92400e;font-size:.875rem;font-weight:500}.btn-save-all{display:flex;align-items:center;gap:.375rem;padding:.4rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-save-all:hover{background:#2563eb}.row-completed{background:#f0fdf4!important}.row-pending-changes{background:#fffbeb!important;border-left:3px solid #f59e0b!important}.granulometric-table tbody tr{position:relative}.row-resize-handle{position:absolute;bottom:-2px;left:0;width:100%;height:4px;cursor:row-resize;z-index:5;background:transparent}.row-resize-handle:hover{background:#3b82f6;opacity:.5}.granulometric-table tbody tr.resizing{background:#eff6ff!important}.granulometric-table{border-collapse:collapse;border-spacing:0}.granulometric-table th,.granulometric-table td{line-height:1.2;vertical-align:middle}.table-row-controls{display:flex;gap:rem;margin-bottom:.5rem;align-items:center;padding:.5rem;background:#f9fafb;border-radius:6px}@media print{.view-header,.filters-section,.btn-export,.table-row-controls{display:none}.granulometric-table{font-size:8pt}.granulometric-table th,.granulometric-table td{padding:4px}.editable-cell:after,.inline-edit-actions{display:none}}.row-actions{display:flex;flex-direction:column;gap:.5rem;padding:.5rem;align-items:flex-start}.btn-cdm-link{width:100%;padding:.45rem .75rem;background:#0ea5e9;color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.btn-cdm-link:hover{background:#0284c7;transform:translateY(-1px)}.btn-reopen{padding:.5rem 1rem;background:#f59e0b;color:#fff;border:none;border-radius:4px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.25rem}.btn-reopen:hover{background:#d97706}.btn-reopen:disabled{opacity:.5;cursor:not-allowed}@media(max-width:30em){.granulometric-view{padding:var(--space-md)}.view-header h1{font-size:var(--text-xl)}.btn-new,.btn-export{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}}.bulk-update-modal{max-width:500px;width:100%}.modal-description{margin-bottom:1.5rem;color:#64748b;font-size:.95rem;line-height:1.5}.bulk-update-modal .form-group{margin-bottom:1.25rem}.bulk-update-modal label{display:block;margin-bottom:.5rem;font-weight:500;color:#334155}.bulk-update-modal input{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:.5rem;font-size:1rem;transition:border-color .2s}.bulk-update-modal input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.cdm-view{padding:1rem 1.5rem;max-width:100%;margin:0 auto}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid #183765}.view-header h1{margin:0;font-size:1.25rem;font-weight:700;color:#183765}.subtitle{margin:.125rem 0 0;color:#6b7280;font-size:.75rem}.header-actions{display:flex;gap:.5rem;align-items:center}.btn-new{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-new:hover{background:#2563eb}.btn-secondary{padding:.5rem 1rem;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f9fafb;border-color:#d1d5db}.btn-export{padding:.5rem 1rem;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-export:hover{background:#059669}.filters-section{background:#fff;padding:.75rem 1rem;border-radius:8px;margin-bottom:.75rem;border:1px solid #d1d5db;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;position:relative;z-index:50;box-shadow:0 1px 2px #0000000d}.filters-header,.filters-header h3{display:none}.filter-grid{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1}.filter-group label{display:flex;align-items:center;gap:.125rem;font-size:.6875rem;font-weight:600;color:#64748b;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.filter-group label .material-symbols-outlined{font-size:.75rem;color:#3b82f6}.filter-select,.filter-input{padding:.375rem .625rem;border:2px solid #e5e7eb;border-radius:6px;font-size:.875rem;height:40px;min-height:40px;line-height:1.4;background:#fff;transition:all .15s ease;box-sizing:border-box;color:#1f2937;font-weight:500;min-width:120px;max-width:180px}.filter-select:hover,.filter-input:hover{border-color:#fff}.filter-select:focus,.filter-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.filter-actions{display:flex;gap:.375rem;align-items:center;margin-left:auto}.btn-filter,.btn-clear{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.375rem .875rem;border:none;border-radius:4px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s ease;height:36px;box-sizing:border-box;white-space:nowrap}.btn-filter{background:#3b82f6;color:#fff}.btn-filter:hover{background:#2563eb}.btn-clear{background:#f1f5f9;color:#475569;border:1px solid #d1d5db}.btn-clear:hover{background:#e2e8f0;border-color:#9ca3af}.filter-stats{display:flex;align-items:center;gap:.5rem;margin-left:auto}.stat-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#f0f9ff;border:1px solid #bfdbfe;border-radius:6px;font-size:.8125rem;color:#1e40af;font-weight:500;white-space:nowrap}.stat-badge .material-symbols-outlined{font-size:1rem;color:#3b82f6}.stat-badge strong{color:#1e40af;font-weight:700;font-size:.9375rem}.table-row-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:2px solid #fcd34d;border-radius:8px}.pending-changes-indicator{display:flex;align-items:center;gap:1rem;color:#92400e;font-weight:500}.pending-changes-indicator .material-symbols-outlined{font-size:1.5rem;color:#d97706}.btn-save-all{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-save-all:hover{background:#d97706;transform:translateY(-1px);box-shadow:0 2px 4px #f59e0b4d}.btn-save-all .material-symbols-outlined{font-size:1.125rem}.results-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 350px);margin-bottom:2rem;border:1px solid #d1d5db}.cdm-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.75rem;min-width:3000px}.cdm-table thead{background:#f3f4f6}.cdm-table thead th{padding:.5rem;text-align:center;font-weight:600;text-transform:uppercase;font-size:.625rem;letter-spacing:.3px;border:1px solid #e5e7eb;white-space:nowrap;background:#f3f4f6;color:#374151;min-width:80px;height:35px;box-sizing:border-box;vertical-align:middle;position:sticky;z-index:15}.cdm-table thead tr:first-child th{top:0;z-index:16;background:#f3f4f6}.cdm-table thead tr:nth-child(2) th,.cdm-table thead th.sub-header{background:#dbeafe;color:#1e40af;font-size:.625rem;padding:.375rem;min-width:60px;border:1px solid #bfdbfe;position:sticky;top:35px;z-index:15}.cdm-table thead th:nth-child(1){position:sticky;left:0;z-index:30!important;background:#f3f4f6}.cdm-table thead th:nth-child(2){position:sticky;left:80px;z-index:29!important;background:#f3f4f6}.cdm-table tbody td:nth-child(1){position:sticky;left:0;z-index:10;background:#fff}.cdm-table tbody td:nth-child(2){position:sticky;left:80px;z-index:9;background:#fff}.cdm-table tbody tr.row-completed td:nth-child(1),.cdm-table tbody tr.row-completed td:nth-child(2){background:#f0fdf4}.cdm-table tbody tr.row-pending-changes td:nth-child(1),.cdm-table tbody tr.row-pending-changes td:nth-child(2){background:#fffbeb}.cdm-table tbody tr:hover td:nth-child(1),.cdm-table tbody tr:hover td:nth-child(2){background:#f9fafb}.cdm-table tbody tr.row-completed:hover td:nth-child(1),.cdm-table tbody tr.row-completed:hover td:nth-child(2){background:#dcfce7}.cdm-table tbody tr.row-pending-changes:hover td:nth-child(1),.cdm-table tbody tr.row-pending-changes:hover td:nth-child(2){background:#fef3c7}.cdm-table tbody td:nth-child(2):after{content:"";position:absolute;top:0;right:-8px;bottom:0;width:8px;background:linear-gradient(to right,rgba(0,0,0,.08),transparent);pointer-events:none}.cdm-table thead th.extraction-header{background:#fef3c7;color:#92400e;text-align:center;border:1px solid #fde68a}.cdm-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.cdm-table tbody tr:hover{background-color:#f9fafb}.cdm-table tbody tr.row-completed{background-color:#f0fdf4}.cdm-table tbody tr.row-completed:hover{background-color:#dcfce7}.cdm-table tbody tr.row-pending-changes{background-color:#fffbeb!important;border-left:3px solid #f59e0b!important}.cdm-table tbody tr.row-pending-changes:hover{background-color:#fef3c7!important}.cdm-table td{padding:.25rem;border:1px solid #e5e7eb;height:35px;box-sizing:border-box;vertical-align:middle}.excel-input,.excel-select{width:100%;padding:.375rem .5rem;border:none!important;background:transparent;font-size:.875rem;font-family:inherit;transition:all .15s;box-sizing:border-box;height:24px;box-shadow:none!important;outline:none!important}.excel-input:focus,.excel-select:focus{outline:2px solid #3b82f6!important;outline-offset:-2px;background:#fffbeb}.excel-input:disabled,.excel-select:disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}.excel-input.readonly{background-color:#f8fafc;color:#64748b;font-style:italic;border:1px solid #e2e8f0}.cdm-table .observations-column{min-width:560px;max-width:760px;width:30vw;white-space:normal}.excel-input.numeric{text-align:right;font-family:Courier New,monospace;font-weight:500}.excel-select{cursor:pointer;padding-right:1.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .25rem center;background-repeat:no-repeat;background-size:1.25em 1.25em;-webkit-appearance:none;-moz-appearance:none;appearance:none}.text-center{text-align:center;font-weight:600;color:#1f2937}textarea.excel-input{resize:vertical;min-height:40px;line-height:1.4;padding:.25rem .5rem}.excel-input.signature{font-style:italic;color:#6b7280}.empty-state{text-align:center;padding:4rem 2rem!important;color:#9ca3af;font-style:italic;font-size:.875rem}.row-actions{display:flex;flex-direction:column;gap:.375rem;align-items:stretch;min-width:120px}.actions-cell{text-align:center;padding:.25rem!important}.btn-action{padding:.25rem .5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s;white-space:nowrap;min-width:32px;height:28px;display:inline-flex;align-items:center;justify-content:center}.btn-action:disabled{opacity:.4;cursor:not-allowed}.btn-action.btn-complete{background:#10b981;color:#fff}.btn-action.btn-complete:hover:not(:disabled){background:#059669;transform:scale(1.1)}.btn-action.btn-reopen{background:#f59e0b;color:#fff}.btn-action.btn-reopen:hover:not(:disabled){background:#d97706;transform:scale(1.1)}.btn-complete,.btn-reopen{padding:.375rem .75rem;border:none;border-radius:4px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-complete{background:#10b981;color:#fff}.btn-complete:hover{background:#059669;transform:translateY(-1px)}.btn-reopen{background:#f59e0b;color:#fff}.btn-reopen:hover{background:#d97706;transform:translateY(-1px)}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:4px;font-size:.625rem;font-weight:600;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px}.badge-completed{background:#dcfce7;color:#15803d;border:1px solid #86efac}.badge-draft{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}.test-status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.status-completed{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d;border:1px solid #86efac}.status-draft{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#b45309;border:1px solid #fcd34d}.btn-view{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.375rem}.btn-view:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f64d}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem;min-height:400px}.spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.loading-container p{color:#6b7280;font-size:.875rem}.error-message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:2px solid #fca5a5;border-radius:8px;margin-bottom:1.5rem;color:#b91c1c;font-size:.875rem}.error-icon{font-size:1.25rem;flex-shrink:0}.close-btn{margin-left:auto;background:none;border:none;font-size:1.5rem;color:#b91c1c;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn:hover{background:#b91c1c1a}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn .2s ease-out}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:1200px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:80em){.filters-section,.filter-grid{flex-wrap:wrap;gap:.5rem}.filter-select,.filter-input{min-width:130px;max-width:160px}}@media(max-width:64em){.filter-grid{gap:.5rem}.filter-select,.filter-input{min-width:120px;max-width:150px}.filter-group label{font-size:.625rem}}@media(max-width:48em){.cdm-view{padding:.75rem}.view-header{flex-direction:column;gap:.5rem;align-items:stretch}.view-header h1{font-size:1.125rem}.header-actions{justify-content:flex-end}.modal-overlay{padding:0}.modal-content{max-height:100vh;border-radius:0}.filters-section{padding:.5rem;gap:.5rem;flex-direction:column;align-items:stretch}.filter-grid{flex-direction:column;align-items:stretch;gap:.5rem;width:100%}.filter-group{width:100%;justify-content:space-between}.filter-select,.filter-input{flex:1;min-width:0;max-width:none;height:40px;min-height:40px;font-size:.8125rem}.filter-actions{width:100%;justify-content:stretch;margin-top:.25rem}.btn-filter,.btn-clear{flex:1;height:32px;font-size:.75rem}.filter-stats{margin-left:0;justify-content:center}}.pagination-container{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin:0 2rem 2rem;flex-wrap:wrap;gap:1rem;border:1px solid #e5e7eb}.pagination-info{color:#64748b;font-size:.9rem;font-weight:500}.pagination-controls{display:flex;align-items:center;gap:.5rem}.btn-pagination{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1.5px solid #e5e7eb;background:#fff;color:#475569}.btn-pagination:hover:not(:disabled){background:#f8fafc;border-color:#9ca3af;transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.btn-pagination:disabled{opacity:.5;cursor:not-allowed;background:#f8fafc;color:#9ca3af}.page-numbers{display:flex;gap:.25rem}.btn-page-number{padding:.5rem .875rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1.5px solid #e5e7eb;background:#fff;color:#475569;min-width:40px}.btn-page-number:hover{background:#f8fafc;border-color:#9ca3af;transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.btn-page-number.active{background:#6366f1;color:#fff;border-color:#6366f1;box-shadow:0 2px 4px #6366f14d}.page-size-selector{display:flex;align-items:center;gap:.5rem}.page-size-selector label{font-size:.875rem;color:#475569;font-weight:600;white-space:nowrap}.page-size-selector select{padding:.5rem;border:1.5px solid #e5e7eb;border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer;transition:all .2s ease}.page-size-selector select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}@media(max-width:48em){.pagination-container{flex-direction:column;align-items:stretch}.pagination-info{text-align:center}.pagination-controls{justify-content:center;flex-wrap:wrap}.page-size-selector{justify-content:center}}@media(max-width:30em){.view-header h1{font-size:var(--text-lg)}.btn-new,.btn-export{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.table-row-controls{flex-direction:column;gap:var(--space-sm)}}.user-management{padding:2rem;max-width:1400px;margin:0 auto;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.user-management-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0;gap:1rem;flex-wrap:wrap}.header-title{flex:1;min-width:200px}.user-management-content{display:flex;flex-direction:column;gap:1.5rem}.user-management-header h1{margin:0;background:linear-gradient(135deg,#1e293b,#475569);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:2.25rem;font-weight:700;letter-spacing:-.5px}.subtitle{color:#64748b;margin:.75rem 0 0;font-size:1rem;font-weight:400;line-height:1.5}.btn-back{padding:.75rem 1.5rem;background:#fff;color:#475569;border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000000f}.btn-back:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.access-denied{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:2px solid #fecaca;border-radius:16px;padding:4rem 3rem;text-align:center;box-shadow:0 10px 25px #dc26261a;animation:slideIn .4s ease-out}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.access-denied h2{color:#dc2626;margin-bottom:1rem;font-size:1.75rem;font-weight:700}.access-denied p{color:#991b1b;margin-bottom:.5rem;font-size:1.05rem;line-height:1.6}.error-message{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:2px solid #fecaca;color:#991b1b;padding:1.25rem 1.5rem;border-radius:12px;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 4px 6px #dc26261a;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.warning-message{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:2px solid #fde68a;color:#92400e;padding:1.25rem 1.5rem;border-radius:12px;margin-top:1rem;display:flex;align-items:flex-start;gap:1rem;box-shadow:0 4px 6px #fbbf2426}.error-icon,.warning-icon{font-size:1.5rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.close-btn{margin-left:auto;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#991b1b;padding:0;width:28px;height:28px;transition:transform .2s ease}.close-btn:hover{transform:rotate(90deg)}.filters-section{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;box-shadow:0 1px 2px #0000000d;width:100%;box-sizing:border-box}.filter-group{display:flex;flex-direction:row;align-items:center;gap:.375rem;background:#fff;padding:.375rem .625rem;border-radius:6px;border:1px solid #e2e8f0}.filter-group label{font-size:.6875rem;font-weight:600;color:#64748b;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.filter-select{padding:.375rem 2rem .375rem .625rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;line-height:1.4;height:36px;min-height:40px;min-width:120px;max-width:180px;cursor:pointer;background:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:all .15s ease;font-weight:500;color:#1e293b;box-sizing:border-box}.filter-select:hover{border-color:#9ca3af}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.filter-stats{margin-left:auto;display:flex;gap:.75rem;align-items:center}.stat-badge{display:flex;align-items:center;gap:.375rem;background:#f1f5f9;padding:.5rem .875rem;border-radius:20px;font-size:.8125rem;color:#475569;font-weight:500;border:1px solid #e2e8f0}.stat-badge strong{font-weight:700;color:#1e293b}.stat-badge.stat-active{background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#047857;border-color:#a7f3d0}.stat-badge.stat-active strong{color:#047857}.users-table-container{background:#fff;border:2px solid #e2e8f0;border-radius:16px;overflow-x:auto;overflow-y:hidden;box-shadow:0 4px 6px #0000000d,0 10px 15px #00000005}.users-table{width:100%;min-width:800px;border-collapse:collapse}.users-table thead{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:3px solid #e2e8f0}.users-table th{padding:1.25rem 1.5rem;text-align:left;font-weight:700;color:#475569;font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em}.users-table tbody tr{border-bottom:1px solid #f1f5f9;transition:all .3s cubic-bezier(.4,0,.2,1)}.users-table tbody tr:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);transform:scale(1.005);box-shadow:0 2px 4px #0000000d}.users-table tbody tr:last-child{border-bottom:none}.users-table tbody tr.inactive-row{opacity:.5;filter:grayscale(.3)}.users-table td{padding:1.25rem 1.5rem;color:#334155;font-size:.95rem}.empty-state{text-align:center;padding:4rem!important;color:#94a3b8;font-style:italic;font-size:1.05rem}.user-info{display:flex;align-items:center;gap:1rem}.user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;box-shadow:0 4px 6px #667eea66;transition:transform .3s ease}.user-avatar:hover{transform:scale(1.1) rotate(5deg)}.user-name{font-weight:600;color:#1e293b;font-size:1rem;letter-spacing:-.2px}.badge-you{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;font-size:.75rem;padding:.375rem .75rem;border-radius:8px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #1e40af33}.role-badge{display:inline-block;padding:.5rem 1rem;border-radius:10px;font-size:.875rem;font-weight:600;text-transform:capitalize;box-shadow:0 2px 4px #0000001a;transition:all .3s ease}.role-badge:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.role-badge.role-admin{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:2px solid #fbbf24}.role-badge.role-jefe{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:2px solid #60a5fa}.role-badge.role-ensayador{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border:2px solid #4ade80}.role-badge.role-supervisor{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);color:#6b21a8;border:2px solid #a855f7}.status-badge{display:inline-block;padding:.5rem 1rem;border-radius:10px;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000001a;transition:all .3s ease}.status-badge:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.status-badge.status-active{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border:2px solid #4ade80}.status-badge.status-inactive{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border:2px solid #f87171}.actions-cell{display:flex;gap:.75rem}.btn-action{padding:.625rem 1.125rem;border:2px solid transparent;border-radius:10px;font-size:.875rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:600;box-shadow:0 2px 4px #00000014}.btn-action:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}.btn-action:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.btn-action.btn-edit{background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1e40af;border-color:#bfdbfe}.btn-action.btn-edit:hover:not(:disabled){background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#3b82f6}.btn-action.btn-deactivate{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border-color:#fca5a5}.btn-action.btn-deactivate:hover:not(:disabled){background:linear-gradient(135deg,#fecaca,#fca5a5);border-color:#dc2626}.btn-action.btn-activate{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border-color:#86efac}.btn-action.btn-activate:hover:not(:disabled){background:linear-gradient(135deg,#bbf7d0,#86efac);border-color:#16a34a}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease-out}.modal-content{background:#fff;border-radius:20px;max-width:650px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #0003,0 10px 20px #00000026;animation:slideUp .4s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:2rem;border-bottom:2px solid #f1f5f9;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#f8fafc,#fff)}.modal-header h2{margin:0;background:linear-gradient(135deg,#1e293b,#475569);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:1.75rem;font-weight:700;letter-spacing:-.5px}.modal-close-btn{background:none;border:none;font-size:2rem;cursor:pointer;color:#94a3b8;padding:0;width:36px;height:36px;line-height:1;transition:all .3s ease;border-radius:8px}.modal-close-btn:hover{color:#475569;background:#f1f5f9;transform:rotate(90deg)}.modal-body{padding:2rem}.modal-footer{padding:2rem;border-top:2px solid #f1f5f9;display:flex;justify-content:flex-end;gap:1rem;background:linear-gradient(135deg,#fff,#f8fafc)}.user-info-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:16px;padding:2rem;display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;box-shadow:0 4px 6px #0000000d}.user-avatar-large{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:2rem;box-shadow:0 8px 16px #667eea66;transition:transform .3s ease}.user-avatar-large:hover{transform:scale(1.05) rotate(5deg)}.user-details h3{margin:0 0 .5rem;color:#1e293b;font-size:1.5rem;font-weight:700;letter-spacing:-.5px}.user-email{color:#64748b;margin:.25rem 0;font-size:1rem;font-weight:500}.user-job-title{color:#94a3b8;margin:.25rem 0;font-size:.9375rem;font-style:italic;font-weight:500}.form-section{margin-bottom:2rem}.form-label{display:block;font-weight:600;color:#475569;margin-bottom:1rem;font-size:.9375rem;text-transform:uppercase;letter-spacing:.5px}.form-field{margin-bottom:1.25rem}.field-label{display:block;font-weight:500;color:#475569;margin-bottom:.5rem;font-size:.875rem}.form-input{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;background:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:500;box-sizing:border-box}.form-input:hover{border-color:#94a3b8}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f626}.form-input:disabled{background:#f8fafc;cursor:not-allowed;opacity:.7}.form-input.input-error{border-color:#f87171;background:#fef2f2}.form-input.input-error:focus{box-shadow:0 0 0 4px #f8717126}.field-error{display:block;color:#dc2626;font-size:.8125rem;margin-top:.5rem;font-weight:500}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .form-input{padding-right:3rem}.toggle-password-btn{position:absolute;right:.75rem;background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem;opacity:.7;transition:opacity .2s}.toggle-password-btn:hover{opacity:1}.role-option.disabled{opacity:.6;cursor:not-allowed}.btn-create-user{padding:.75rem 1.5rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f666;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:.5rem}.btn-create-user:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-2px);box-shadow:0 6px 12px #3b82f633}.btn-create-user:active{transform:translateY(0)}.header-actions{display:flex;gap:1rem;align-items:center}.role-options{display:flex;flex-direction:column;gap:1rem}.role-option{border:2px solid #e2e8f0;border-radius:12px;padding:1.25rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff}.role-option:hover{border-color:#94a3b8;background:linear-gradient(135deg,#f8fafc,#f1f5f9);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.role-option.selected{border-color:#3b82f6;border-width:3px;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 6px 12px #3b82f633}.role-option-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.role-icon{font-size:1.75rem;transition:transform .3s ease}.role-option:hover .role-icon{transform:scale(1.2)}.role-name{font-weight:700;color:#1e293b;flex-grow:1;font-size:1.0625rem;letter-spacing:-.2px}.checkmark{color:#6366f1;font-weight:700;font-size:1.5rem;animation:checkmarkPop .3s ease-out}@keyframes checkmarkPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.role-description{margin:0;color:#64748b;font-size:.9375rem;line-height:1.6;font-weight:500}.btn-primary,.btn-secondary{padding:.875rem 2rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border:2px solid transparent;text-transform:uppercase;letter-spacing:.5px}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f666}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-2px);box-shadow:0 8px 20px #3b82f680}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #3b82f64d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.btn-secondary{background:#fff;color:#475569;border-color:#cbd5e1;box-shadow:0 2px 6px #00000014}.btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#94a3b8;transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;gap:1.5rem}.spinner{width:60px;height:60px;border:4px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.loading-container p{color:#64748b;font-size:1.125rem;font-weight:500}@media(max-width:64em){.filters-section{gap:1rem}.filter-select{min-width:140px}.stat-badge{padding:.375rem .75rem;font-size:.75rem}}@media(max-width:48em){.user-management{padding:1rem}.user-management-header{flex-direction:column;gap:1rem}.user-management-header h1{font-size:1.5rem}.header-actions{width:100%}.btn-create-user{width:100%;justify-content:center}.filters-section{flex-direction:column;align-items:stretch;padding:.5rem;gap:.5rem;min-width:100%;width:100%}.filter-group{flex-direction:row;align-items:center;justify-content:space-between;width:100%}.filter-group label{font-size:.625rem}.filter-select{flex:1;min-width:0;max-width:none;height:32px;font-size:.875rem;padding:.375rem 2rem .375rem .625rem}.filter-stats{margin-left:0;justify-content:center;width:100%;padding-top:.5rem;border-top:1px solid #e2e8f0}.stat-badge{flex:1;justify-content:center;padding:.5rem;font-size:.8125rem}.users-table-container{border-radius:8px}.users-table th,.users-table td{padding:.75rem .5rem;font-size:.8125rem}.user-avatar{width:36px;height:36px;font-size:.875rem}.user-name{font-size:.875rem}.role-badge,.status-badge{padding:.375rem .625rem;font-size:.75rem}.actions-cell{flex-direction:column;gap:.5rem}.btn-action{padding:.5rem .75rem;font-size:.75rem;white-space:nowrap}.modal-content{margin:.5rem;border-radius:12px;max-height:calc(100vh - 1rem)}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-header h2{font-size:1.25rem}.user-info-card{flex-direction:column;text-align:center;padding:1rem}.user-avatar-large{width:56px;height:56px;font-size:1.5rem}.role-options{gap:.75rem}.role-option{padding:1rem}.modal-footer{flex-direction:column}.modal-footer .btn-primary,.modal-footer .btn-secondary{width:100%}}@media(max-width:30em){.user-management,.filters-section{padding:.75rem}.stat-badge{font-size:.75rem;padding:.375rem .5rem}.users-table th:nth-child(2),.users-table td:nth-child(2){display:none}.users-table th:nth-child(4),.users-table td:nth-child(4){display:none}.user-info{flex-direction:column;gap:.5rem}.user-avatar{width:32px;height:32px;font-size:.75rem}}.signatures-view{padding:20px;max-width:1400px;margin:0 auto}.signatures-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.signatures-header h1{margin:0;font-size:28px;color:#1a202c}.btn-primary{background-color:#06c;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-primary:hover{background-color:#0052a3;transform:translateY(-1px);box-shadow:0 4px 8px #06c3}.signatures-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.signature-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:all .2s}.signature-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.signature-image-container{width:100%;height:150px;display:flex;align-items:center;justify-content:center;background-color:#f7fafc;border-radius:6px;margin-bottom:15px;overflow:hidden}.signature-img{max-width:100%;max-height:100%;object-fit:contain}.no-signature{color:#a0aec0;font-size:14px;font-style:italic}.signature-info h3{margin:0 0 5px;font-size:18px;color:#1a202c}.signature-info p{margin:0 0 10px;font-size:14px;color:#718096}.signature-meta{display:flex;gap:15px;align-items:center;margin-bottom:15px}.status{font-size:12px;font-weight:600;padding:4px 8px;border-radius:4px}.status.active{background-color:#c6f6d5;color:#22543d}.status.inactive{background-color:#fed7d7;color:#742a2a}.order{font-size:12px;color:#718096;font-weight:500}.signature-actions{display:flex;gap:10px}.btn-edit,.btn-delete{flex:1;padding:8px 12px;border-radius:6px;border:none;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.btn-edit{background-color:#edf2f7;color:#2d3748}.btn-edit:hover{background-color:#e2e8f0}.btn-delete{background-color:#fed7d7;color:#c53030}.btn-delete:hover{background-color:#fc8181;color:#fff}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;padding:30px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto}.modal-content h2{margin:0 0 20px;font-size:24px;color:#1a202c}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:5px;font-weight:600;color:#2d3748;font-size:14px}.form-group input[type=text],.form-group input[type=number],.form-group input[type=file]{width:100%;padding:10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px}.form-group input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.form-group small{display:block;margin-top:5px;font-size:12px;color:#718096}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.checkbox-group{display:flex;align-items:center;padding-top:25px}.checkbox-group label{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;cursor:pointer}.image-preview{margin-top:15px;padding:15px;background-color:#f7fafc;border-radius:6px;text-align:center}.image-preview img{max-width:100%;max-height:200px;object-fit:contain}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.btn-secondary{background-color:#e2e8f0;color:#2d3748;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-secondary:hover{background-color:#cbd5e0}.loading,.no-data{text-align:center;padding:60px 20px;color:#718096;font-size:16px}.no-data p{margin:0}@media(max-width:48em){.signatures-grid{grid-template-columns:1fr}.signatures-header{flex-direction:column;gap:var(--space-md);align-items:flex-start}.form-row{grid-template-columns:1fr}.checkbox-group{padding-top:0}}.auth-form-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1c1c1d#1c1c1d 100%);padding:2rem}.auth-form-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:450px;width:100%;padding:2.5rem}.auth-form-header{text-align:center;margin-bottom:2rem}.auth-form-header h2{color:#1a202c;font-size:1.875rem;font-weight:700;margin:0 0 .5rem}.auth-form-header p{color:#718096;font-size:.875rem;margin:0}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#2d3748;font-size:.875rem;font-weight:600}.form-group input{padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .2s;background:#fff}.form-group input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.form-group input:disabled{background:#f7fafc;cursor:not-allowed;opacity:.6}.form-group small{color:#718096;font-size:.75rem}.auth-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fed7d7;border:1px solid #fc8181;border-radius:8px;color:#c53030;font-size:.875rem}.error-icon{font-size:1.25rem}.auth-submit-btn{padding:.875rem 1.5rem;background:linear-gradient(135deg,#1c1c1d 0% 100%);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem;box-shadow:0 4px 12px #6366f14d}.auth-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f166;background:linear-gradient(135deg,#4d4e55,#1c1c1d)}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.auth-toggle p{color:#4a5568;font-size:.875rem;margin:0}.auth-toggle-btn{background:none;border:none;color:#6366f1;font-weight:600;cursor:pointer;text-decoration:underline;padding:0;margin-left:.25rem}.auth-toggle-btn:hover:not(:disabled){color:#8b5cf6}.auth-toggle-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:40em){.auth-form-card{padding:var(--space-xl) var(--space-lg)}.auth-form-header h2{font-size:var(--text-xl)}}.app{min-height:100vh;background:#fff}.app-header{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;padding:2rem;box-shadow:0 4px 20px #6366f14d}.header-content{max-width:1400px;margin:0 auto}.header-title h1{margin:0 0 .5rem;font-size:2rem;font-weight:600}.header-title p{margin:0;font-size:1.1rem;opacity:.9}.power-badge{display:inline-block;margin-top:.5rem;padding:.25rem .75rem;background:#fff3;border-radius:12px;font-size:.9rem;font-weight:500}.stats-section{max-width:1400px;margin:-1.5rem auto 2rem;padding:0 2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;position:relative;z-index:10}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;align-items:center;gap:1rem;transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.stat-icon{font-size:2.5rem;opacity:.8}.stat-content{flex:1}.stat-value{font-size:2rem;font-weight:700;color:#1f2937;line-height:1}.stat-label{font-size:.9rem;color:#6b7280;margin-top:.25rem}.stat-available{border-left:4px solid #10b981;background:linear-gradient(to right,#10b9810d,#fff)}.stat-in-use{border-left:4px solid #6366f1;background:linear-gradient(to right,#6366f10d,#fff)}.stat-maintenance{border-left:4px solid #f59e0b;background:linear-gradient(to right,#f59e0b0d,#fff)}.filters-section{max-width:1400px;margin:0 auto 2rem;padding:0 2rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.search-box{flex:1;min-width:250px}.search-input{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:all .2s ease}.search-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-weight:500;color:#4b5563}.filter-select{padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;background:#fff;cursor:pointer;transition:all .2s ease}.filter-select:hover{border-color:#6366f1}.filter-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.assets-section{max-width:1400px;margin:0 auto;padding:0 2rem 2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{margin:0;font-size:1.5rem;color:#1f2937}.result-count{color:#6b7280;font-size:.95rem}.assets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.empty-state p{font-size:1.1rem;color:#6b7280;margin:0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#fff}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{margin-top:1.5rem;color:#64748b;font-size:.9rem;font-weight:400}.power-indicator{position:fixed;top:1rem;right:1rem;background:#10b981;color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:500;box-shadow:0 2px 8px #10b98133;z-index:1000}.user-info{position:relative;top:0rem;left:1rem;background:#fff;padding:.625rem 1rem;border-radius:6px;display:flex;gap:.75rem;align-items:center;box-shadow:0 1px 3px #0000001a;border:1px solid #e2e8f0;z-index:1000}.user-info span{font-size:.875rem;color:#475569}.user-role{background:linear-gradient(135deg,#ddd6fe,#e0e7ff);color:#4f46e5;padding:.25rem .625rem;border-radius:6px;font-size:.8rem;font-weight:600}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#fff;padding:2rem;text-align:center}.error-container h2{color:#ef4444;margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.error-container p{color:#64748b;margin-bottom:2rem;font-size:.95rem}.error-container button{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #6366f14d}.error-container button:hover{background:linear-gradient(135deg,#4f46e5,#7c3aed);transform:translateY(-2px);box-shadow:0 6px 16px #6366f166}.app-footer{max-width:1400px;margin:2rem auto 0;padding:1.5rem 2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.app-footer p{margin:0;color:#6b7280;font-size:.95rem;line-height:1.6}.app-footer code{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);padding:.2rem .5rem;border-radius:4px;font-family:Courier New,monospace;color:#6366f1;font-weight:600}@media(max-width:48em){.app-header{padding:var(--space-lg) var(--space-md)}.header-title h1{font-size:var(--text-2xl)}.stats-section{grid-template-columns:repeat(2,1fr);padding:0 var(--space-md)}.filters-section{padding:0 var(--space-md);flex-direction:column;align-items:stretch}.filter-group{flex-direction:column;align-items:stretch}.filter-select{width:100%}.assets-section{padding:0 var(--space-md) var(--space-md)}.assets-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}}@media(max-width:30em){.stats-section{grid-template-columns:1fr}.stat-card{padding:var(--space-md)}.stat-value{font-size:var(--text-3xl)}}
