h1,h2,h3,h4,h5,h6,p,span,div,label{color:#1f2937!important}button{color:inherit!important}input,select,textarea{color:#111827!important;background-color:#fff!important}table,th,td{color:#1f2937!important;background-color:#fff!important}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#fff!important;color:#1f2937!important;-webkit-font-smoothing:antialiased}.app-header{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--header-text-color);padding:1.5rem 2rem!important;text-align:center;box-shadow:0 2px 10px var(--shadow-color);width:100%!important;box-sizing:border-box;min-width:100%!important;max-width:100%!important;height:120px!important;display:flex;flex-direction:column;justify-content:center;align-items:center}.app-header h1{font-size:2rem;margin-bottom:.3rem}.app-header p{font-size:1rem;opacity:.9}.app-nav{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:12px;box-shadow:0 4px 16px var(--shadow-color);margin:.25rem auto 2rem!important;padding:.5rem 1rem!important;max-width:1400px;position:relative;z-index:10;min-height:60px!important;width:100%;box-sizing:border-box}.nav-button{background:none;border:none;outline:none;padding:.6rem 1.2rem;margin:0 .1rem;border-radius:8px;font-size:1rem;font-weight:500;color:var(--text-color);cursor:pointer;transition:all .2s ease;box-shadow:none;position:relative;white-space:nowrap;flex-shrink:0;min-width:max-content;display:flex;align-items:center;gap:.5rem}.nav-button:hover:not(.active){background:#f7fafc;color:var(--primary-color);transform:translateY(-1px)}.nav-button.active{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;font-weight:700;box-shadow:0 2px 8px var(--shadow-color)}.nav-button.active:hover{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;transform:translateY(-1px)}.nav-icon{font-size:1.1rem;line-height:1}.nav-label{font-size:.95rem;font-weight:inherit}.nav-dropdown{position:relative;display:inline-block}.nav-dropdown-toggle{background:none;border:none;outline:none;padding:.6rem 1.2rem;margin:0 .1rem;border-radius:8px;font-size:1rem;font-weight:500;color:var(--text-color);cursor:pointer;transition:all .2s ease;box-shadow:none;position:relative;white-space:nowrap;flex-shrink:0;min-width:max-content;display:flex;align-items:center;gap:.5rem}.nav-dropdown-toggle:hover:not(.active){background:#f7fafc;color:var(--primary-color);transform:translateY(-1px)}.nav-dropdown-toggle.active{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;font-weight:700;box-shadow:0 2px 8px var(--shadow-color)}.nav-dropdown-toggle.active:hover{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;transform:translateY(-1px)}.dropdown-arrow{font-size:.8rem;transition:transform .2s ease;margin-left:.25rem}.nav-dropdown-toggle.active .dropdown-arrow{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:100%;left:0;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;border:1px solid var(--border-color);min-width:220px;z-index:1000;overflow:hidden;margin-top:.5rem;animation:dropdownFadeIn .2s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.nav-dropdown-item{width:100%;background:none;border:none;outline:none;padding:.75rem 1rem;font-size:.95rem;font-weight:500;color:var(--text-color);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.75rem;text-align:left;border-bottom:1px solid #f1f5f9}.nav-dropdown-item:last-child{border-bottom:none}.nav-dropdown-item:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:var(--primary-color);transform:translate(4px);box-shadow:0 2px 8px #0000001a}.nav-dropdown-item.active{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;font-weight:600}.nav-dropdown-item.active .nav-icon{color:#fff}.app-nav button{background:none;border:none;outline:none;padding:.6rem 1.2rem;margin:0 .1rem;border-radius:8px;font-size:1rem;font-weight:500;color:var(--text-color);cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;box-shadow:none;position:relative;white-space:nowrap;flex-shrink:0;min-width:max-content}.app-nav button.active{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;font-weight:700;box-shadow:0 2px 8px var(--shadow-color)}.app-nav button.active.overlay-active{background:none;color:var(--text-color);font-weight:500;box-shadow:none}.app-nav button:hover:not(.active){background:#f7fafc;color:var(--primary-color)}.app-nav>*{flex-shrink:0}.nav-left,.nav-right{display:flex;align-items:center;gap:.5rem}.nav-tab{background:none;border:none;outline:none;padding:.6rem 1.2rem;border-radius:8px;font-size:1rem;font-weight:500;color:var(--text-color);cursor:pointer;transition:background .2s,color .2s;white-space:nowrap;flex-shrink:0;min-width:max-content}.nav-tab:hover{background:#f7fafc;color:var(--primary-color)}.app-main{flex:1;padding:1rem 2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box;min-height:0;overflow:hidden}.section-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.section-header h2{margin:0;color:var(--text-color);font-size:1.5rem;font-weight:600}.preview-container{width:100%}.preview-actions{display:flex;gap:.5rem;flex-wrap:wrap;flex:1}.common-fields{display:flex;gap:1rem;margin-bottom:1rem;align-items:flex-end;flex-wrap:wrap}.common-fields>div{min-width:150px}.common-fields label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color);font-size:.875rem}.common-fields select{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;background:#fff}.preview-note{margin-bottom:1rem;color:#666;font-size:.875rem}.loading{text-align:center;padding:2rem;color:var(--text-color)}.spinner{border:3px solid #f3f3f3;border-top:3px solid var(--primary-color);border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite;margin:0 auto 1rem}.settings-page{width:100%;max-width:1200px;margin:0 auto}.settings-page h2{font-size:2rem;font-weight:700;color:var(--text-color);margin-bottom:2rem;text-align:center;position:relative}.settings-page h2:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:60px;height:3px;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);border-radius:2px}.settings-tabs{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:2rem;background:#f8fafc;padding:.5rem;border-radius:12px;border:1px solid var(--border-color);justify-content:center}.settings-tab{background:#fff;border:1px solid var(--border-color);padding:.75rem 1.25rem;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-color);transition:all .2s ease;white-space:nowrap;box-shadow:0 1px 3px #0000000d}.settings-tab:hover{background:#f1f5f9;border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.settings-tab.active{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;border-color:var(--primary-color);box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.card{background:var(--card-background);border-radius:16px;box-shadow:0 8px 32px #00000014;padding:2rem;margin-bottom:1.5rem;width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000000f;padding:2rem;margin-bottom:2rem;border:1px solid var(--border-color)}.settings-card h3{font-size:1.5rem;font-weight:600;color:var(--text-color);margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid #f1f5f9}.form-group{margin-bottom:1rem}.settings-form{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 20px #0000000f;border:1px solid var(--border-color)}.settings-form-row{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1rem;flex-wrap:wrap}.settings-form-row .form-group{flex:1;min-width:150px;margin-bottom:0}.settings-form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:2px solid #f1f5f9}.form-group label{display:block;margin-bottom:.75rem;font-weight:600;color:var(--text-color);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.875rem 1rem;border:2px solid var(--border-color);border-radius:10px;font-size:1rem;background:#fff;color:var(--text-color);box-sizing:border-box;transition:all .2s ease;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #667eea1a;transform:translateY(-1px)}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#cbd5e1}.table-actions{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 10px #0000000a;border:1px solid #f3f4f6}.table-actions .btn{margin:0;min-width:120px;justify-content:center}.table-actions .btn:first-child{margin-left:0}.table-actions .btn:last-child{margin-right:0}.table-actions-inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.table-actions-inline .btn{margin:0;min-width:60px}.table-actions-inline{display:flex;gap:.5rem;align-items:center;justify-content:center}.table-actions-inline .btn{padding:.5rem 1rem;min-width:80px;font-size:.8rem;margin:0}.left-buttons{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.right-buttons{display:flex;align-items:flex-start;margin-top:0;margin-left:auto}.btn{background:#fff;color:#374151;border:2px solid #d1d5db;padding:.75rem 1.5rem;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-align:center;box-sizing:border-box;position:relative;overflow:hidden;min-height:44px}.btn:hover{background:#f8fafc;border-color:#9ca3af;transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.btn:active{background:#f3f4f6;transform:translateY(0);box-shadow:0 4px 15px #0000001a}.btn-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-secondary{background:#6b7280;color:#fff;border-color:#6b7280}.btn-secondary:hover{background:#4b5563;border-color:#4b5563}.btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}.btn-danger:hover{background:#dc2626;border-color:#dc2626}.btn-success{background:#10b981;color:#fff;border-color:#10b981}.btn-success:hover{background:#059669;border-color:#059669}.btn-warning{background:#f59e0b;color:#fff;border-color:#f59e0b}.btn-warning:hover{background:#d97706;border-color:#d97706}.btn-info{background:#06b6d4;color:#fff;border-color:#06b6d4}.btn-info:hover{background:#0891b2;border-color:#0891b2}.table-container{overflow-x:auto;background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000000f;margin-bottom:1.5rem;border:1px solid var(--border-color)}.settings-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000014}.settings-table th{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#374151;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;padding:1.25rem 1.5rem;border-bottom:3px solid var(--primary-color);text-align:left;position:relative}.settings-table th:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(102,126,234,.3),transparent)}.settings-table td{padding:1.25rem 1.5rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:.95rem;color:#4b5563;transition:all .2s ease}.settings-table tr{transition:all .2s ease;position:relative}.settings-table tr:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);transform:translate(4px);box-shadow:0 4px 15px #0000000d}.settings-table tr:hover td{color:#1f2937;font-weight:500}.settings-table tr:last-child td{border-bottom:none}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:.9rem;border-radius:12px;overflow:hidden;box-shadow:0 2px 15px #0000000f}th,td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid #f3f4f6;vertical-align:middle;transition:all .2s ease}th{background:linear-gradient(135deg,#f9fafb,#f3f4f6);color:#374151;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb;position:sticky;top:0;z-index:10}th:first-child{border-top-left-radius:12px}th:last-child{border-top-right-radius:12px}tr:hover{background:#f9fafb}tr:hover td{color:#1f2937}tr:last-child td:first-child{border-bottom-left-radius:12px}tr:last-child td:last-child{border-bottom-right-radius:12px}table{width:100%;border-collapse:collapse;background:#fff;font-size:.9rem}th,td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle}th{background-color:#f7fafc;font-weight:600;color:var(--text-color);position:sticky;top:0;z-index:10}tr:hover{background-color:#f8f9fa}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.modal-content{background:#fff;border-radius:12px;padding:2rem;max-width:720px;width:92%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;position:sticky;top:0;z-index:2;background:#fff;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb;width:100%}.modal-header h3{margin:0;color:var(--text-color)}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.close-button:hover{background-color:#f1f3f4}.stats-card{background:#fff;padding:1.5rem;border-radius:12px;border:1px solid var(--border-color);box-shadow:0 2px 8px #0000000f;text-align:center;transition:all .2s ease}.stats-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.stats-number{font-size:2rem;font-weight:700;margin-bottom:.5rem;display:block}.stats-number.success{color:#16a34a}.stats-number.error{color:#dc2626}.stats-number.info{color:#667eea}.stats-label{font-size:.9rem;color:#6b7280;font-weight:500}.message{padding:1rem;border-radius:8px;margin-bottom:1rem;font-weight:500}.message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.message.warning{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.spinner{border:3px solid #f3f3f3;border-top:3px solid var(--primary-color);border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite;margin:1rem auto}.modern-login-page{min-height:100vh;background:linear-gradient(135deg,#14141e1a,#28283c0d);display:flex;align-items:center;justify-content:center;padding:2rem;position:relative}.login-container{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0003,0 0 0 1px #3c50781a;overflow:hidden;display:flex;max-width:900px;width:100%;min-height:500px;position:relative}.login-form-panel{flex:1;padding:2.5rem;display:flex;align-items:center;justify-content:center;background:#fff}.login-form-content{width:100%;max-width:400px}.login-title{font-size:2.5rem;font-weight:700;color:#2d3748;text-align:center;margin-bottom:.5rem;letter-spacing:2px}.login-subtitle{font-size:1rem;color:#718096;text-align:center;margin-bottom:2.5rem;line-height:1.5}.login-form{margin-bottom:2rem}.input-group{position:relative;margin-bottom:1.5rem}.input-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1.2rem;color:#4a5568;z-index:2}.login-input{width:100%;padding:1rem 1rem 1rem 3rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;background:#e0f2fe;transition:all .3s ease;box-sizing:border-box}.login-input:focus{outline:none;border-color:#8b5cf6;background:#f0f9ff;box-shadow:0 0 0 2px #8b5cf61a}.login-button{width:100%;padding:1rem;background:linear-gradient(135deg,#465064f2,#232837fa);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:2rem}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #14192359}.login-button:disabled{opacity:.7;cursor:not-allowed}.social-login-section{margin-bottom:2rem}.social-separator{text-align:center;color:#718096;font-size:.9rem;margin-bottom:1.5rem;position:relative}.social-separator:before,.social-separator:after{content:"";position:absolute;top:50%;width:30%;height:1px;background:#e2e8f0}.social-separator:before{left:0}.social-separator:after{right:0}.social-button{width:100%;padding:.875rem;border:1px solid rgba(60,80,120,.25);border-radius:8px;background:#191e2d05;color:#3b4456;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;gap:.75rem}.btn-secondary{padding:1rem;background:#191e2d0f;color:#3b4456;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-secondary:hover:not(:disabled){background:#191e2d1f;transform:translateY(-1px)}.social-button:hover{border-color:#3c507866;background:#191e2d0f}.social-icon{font-size:1.2rem;font-weight:700}.google-button .social-icon{color:#4285f4}.facebook-button .social-icon{color:#1877f2}.auth-switch{text-align:center;color:#718096;font-size:.9rem}.error-message{background:#fed7d7;color:#c53030;padding:1rem;border-radius:8px;margin-top:1rem;text-align:center;font-size:.9rem}.login-visual-panel{flex:1;background:linear-gradient(180deg,#1e1e28e6,#0f0f19f2);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.visual-content{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:2rem}.custom-image-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.custom-login-image{max-width:80%;max-height:80%;object-fit:contain;border-radius:12px;box-shadow:0 8px 25px #0003;background:#fff;padding:1rem}.default-visual{text-align:center;color:#fff;padding:2rem;position:relative}.visual-shape{background:#2828374d;border-radius:16px;padding:2.5rem 2rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(60,80,120,.3);box-shadow:0 8px 32px #0000004d}.visual-icon{font-size:3rem;margin-bottom:1rem}.visual-shape h2{font-size:1.5rem;font-weight:600;margin-bottom:.75rem;color:#fff}.visual-shape p{font-size:.9rem;opacity:.9;line-height:1.5;color:#fff}.decorative-elements{position:absolute;inset:0;pointer-events:none}.decoration-circle{position:absolute;border-radius:50%;background:#3c507833}.circle-1{width:50px;height:50px;top:15%;left:15%;display:flex;align-items:center;justify-content:center;background:#6496c866}.circle-2{width:80px;height:80px;bottom:15%;right:15%;background:#283c644d}.decoration-icon{font-size:1.2rem;color:#fff}@media (max-width: 768px){.login-container{flex-direction:column;max-width:400px}.login-visual-panel{min-height:300px}.login-form-panel{padding:2rem}.modern-login-page{padding:1rem}}.login-page{min-height:100vh;background:#fff;display:flex;align-items:center;justify-content:center}.welcome-screen{text-align:center;max-width:400px;padding:2rem}.welcome-content h1{font-size:2.5rem;color:#2d3748;margin-bottom:.5rem;font-weight:700}.welcome-content p{font-size:1.1rem;color:#718096;margin-bottom:2rem;line-height:1.5}.welcome-content .btn-primary{background:#667eea;color:#fff;border:none;padding:.75rem 2rem;font-size:1.1rem;border-radius:8px;cursor:pointer;transition:all .2s ease;margin-bottom:1rem}.welcome-content .btn-primary:hover{background:#5a67d8;transform:translateY(-1px)}.auth-switch{color:#718096;font-size:.95rem}.btn-link{background:none;border:none;color:#667eea;cursor:pointer;text-decoration:underline;font-size:inherit;margin-left:.25rem}.btn-link:hover{color:#5a67d8}.login-image-section{text-align:center;margin-bottom:2rem}.login-image{max-width:200px;max-height:150px;width:auto;height:auto;border-radius:8px;box-shadow:0 2px 8px #0000001a}.success-message{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;text-align:center}.success-message p{margin:.5rem 0;color:#0c4a6e}.success-message strong{color:#0369a1}.auth-form textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;font-family:inherit;resize:vertical;min-height:80px}.auth-form textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.admin-config{padding:2rem}.config-tabs{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:1px solid #e2e8f0}.config-tabs .tab{padding:.75rem 1.5rem;border:none;background:transparent;color:#718096;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease}.config-tabs .tab.active{color:#667eea;border-bottom-color:#667eea}.config-tabs .tab:hover{color:#4a5568}.config-section,.requests-section{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a}.config-group{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.config-group h4{margin-bottom:1rem;color:#2d3748}.file-input{margin-bottom:.5rem}.help-text{font-size:.875rem;color:#718096;margin:0}.config-form{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.config-form .form-group{margin-bottom:1rem}.config-form .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#2d3748}.config-form .form-group input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem}.config-form .form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.image-preview{margin-top:1rem;padding:1rem;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0}.image-preview p{margin:0 0 .5rem;font-size:.875rem;color:#4a5568;font-weight:600}.image-preview img{border-radius:4px;box-shadow:0 2px 4px #0000001a}.form-row{display:flex;gap:1rem;align-items:end}.form-row input{flex:1;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem}.config-list{margin-top:2rem}.config-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem;margin-bottom:1rem}.config-display{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:1rem;align-items:center}.config-key{font-weight:600;color:#2d3748}.config-value{color:#4a5568;word-break:break-all}.config-description{color:#718096;font-size:.875rem}.config-actions{display:flex;gap:.5rem}.config-actions button{padding:.5rem 1rem;border:1px solid #d1d5db;background:#fff;border-radius:4px;cursor:pointer;font-size:.875rem}.config-edit{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:center}.config-edit input{padding:.5rem;border:1px solid #d1d5db;border-radius:4px}.requests-list{display:grid;gap:1.5rem}.request-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.request-header h4{margin:0;color:#2d3748}.status{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-pending{background:#fef3c7;color:#92400e}.status-approved{background:#d1fae5;color:#065f46}.status-rejected{background:#fee2e2;color:#991b1b}.request-details p{margin:.5rem 0;color:#4a5568}.request-details strong{color:#2d3748}.request-actions{margin-top:1rem;display:flex;gap:1rem}.btn-approve{background:#10b981;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.btn-reject{background:#ef4444;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.auth-container{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.auth-form{background:#fff;border-radius:12px;padding:2rem;max-width:400px;width:90%;box-shadow:0 20px 40px #0000001a}.auth-form h2{text-align:center;margin-bottom:1.5rem;color:var(--text-color)}.auth-form .form-group:last-child{margin-bottom:0}.auth-form .btn{width:100%;margin-top:1rem}.auth-toggle{text-align:center;margin-top:1rem}.auth-toggle button{background:none;border:none;color:var(--primary-color);cursor:pointer;text-decoration:underline;font-size:.9rem}.auth-toggle button:hover{color:var(--secondary-color)}.profile-dropdown{position:relative;display:inline-block}.profile-button{background:none;border:none;color:var(--header-text-color);cursor:pointer;padding:.5rem;border-radius:6px;transition:background-color .2s;display:flex;align-items:center;gap:.5rem}.profile-button:hover{background-color:#ffffff1a}.profile-menu{position:absolute;top:100%;right:0;background:#fff;border-radius:8px;box-shadow:0 4px 16px var(--shadow-color);min-width:200px;z-index:100;border:1px solid var(--border-color);overflow:hidden}.profile-menu button{width:100%;padding:.75rem 1rem;border:none;background:none;text-align:left;cursor:pointer;color:var(--text-color);transition:background-color .2s}.profile-menu button:hover{background-color:#f8f9fa}.profile-menu button:not(:last-child){border-bottom:1px solid var(--border-color)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;padding:1.5rem;border-radius:12px;text-align:center;box-shadow:0 4px 16px var(--shadow-color)}.stat-card h3{margin:0 0 .5rem;font-size:2rem;font-weight:700}.stat-card p{margin:0;opacity:.9;font-size:.9rem}.reference-data-manager .actions{display:flex;gap:.5rem;flex-wrap:wrap}.reference-data-manager .actions button{padding:.25rem .5rem;font-size:.8rem;min-width:auto}.sample-table .table-container{overflow-x:auto;width:100%;box-shadow:0 2px 6px #0000000a;border-radius:6px;background:#fff;margin-bottom:24px;box-sizing:border-box}.sample-table .reference-data-table{table-layout:auto;border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%;margin:0;padding:0}.sample-table .reference-data-table th,.sample-table .reference-data-table td{padding:.5rem .75rem;line-height:1.4;white-space:nowrap;border:1px solid #e2e8f0;box-sizing:border-box;vertical-align:middle}.sample-table .reference-data-table th{background-color:#f7fafc;text-align:left;font-weight:600;color:#4a5568;position:sticky;top:0;z-index:10}.sample-table .reference-data-table td{border:1px solid #e2e8f0;text-align:left;vertical-align:middle}.sample-table .reference-data-table th,.sample-table .reference-data-table td{text-align:left!important}.sample-table .reference-data-table .actions{display:flex;flex-direction:row;gap:.5rem;flex-wrap:nowrap;align-items:center;justify-content:flex-start;padding:.25rem .5rem;min-width:280px;white-space:nowrap;overflow:visible}.sample-table .reference-data-table .actions button{padding:.25rem .5rem;font-size:.8rem;min-width:60px;height:28px}.sample-table .reference-data-table tr{min-height:40px}.sample-table .reference-data-table th:nth-child(1),.sample-table .reference-data-table td:nth-child(1){min-width:80px}.sample-table .reference-data-table th:nth-child(2),.sample-table .reference-data-table td:nth-child(2){min-width:50px}.sample-table .reference-data-table th:nth-child(n+14):nth-child(-n+23),.sample-table .reference-data-table td:nth-child(n+14):nth-child(-n+23){min-width:80px}.sample-table .reference-data-table th:nth-child(35),.sample-table .reference-data-table td:nth-child(35){min-width:60px}.sample-table .reference-data-table th:nth-child(36),.sample-table .reference-data-table td:nth-child(36),.sample-table .reference-data-table th:nth-child(37),.sample-table .reference-data-table td:nth-child(37),.sample-table .reference-data-table th:nth-child(38),.sample-table .reference-data-table td:nth-child(38),.sample-table .reference-data-table th:nth-child(39),.sample-table .reference-data-table td:nth-child(39){min-width:120px}.sample-table .reference-data-table th:nth-child(40),.sample-table .reference-data-table td:nth-child(40){min-width:350px}.pagination-container{display:flex;align-items:center;justify-content:center;gap:1rem;margin:2rem 0;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000a;border:1px solid #f3f4f6}.pagination-container button{padding:.75rem 1rem;border:2px solid var(--border-color);background:#fff;color:var(--text-color);border-radius:8px;cursor:pointer;transition:all .2s ease;font-weight:500;min-width:44px;display:flex;align-items:center;justify-content:center}.pagination-container button:hover:not(:disabled){background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.pagination-container button:disabled{background:#f3f4f6;color:#9ca3af;border-color:#e5e7eb;cursor:not-allowed;transform:none;box-shadow:none}.pagination-container button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);font-weight:600}.clear-filters-btn{background:#6b7280;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;margin-left:.5rem;transition:background-color .2s}.clear-filters-btn:hover{background:#4b5563}.btn-reclassify{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s ease;box-shadow:0 2px 8px #8b5cf64d;min-width:70px}.btn-reclassify:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);transform:translateY(-2px);box-shadow:0 4px 15px #8b5cf666}.btn-save{background:#10b981;color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background-color .2s}.btn-save:hover{background:#059669}.btn-cancel{background:#6b7280;color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background-color .2s}.btn-cancel:hover{background:#4b5563}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}@media (max-width: 768px){.main-content{padding:1rem}.app-header{padding:1rem;height:100px}.app-header h1{font-size:1.5rem}.app-header p{font-size:.9rem}.app-nav{flex-direction:column;gap:.5rem;padding:1rem;margin:.5rem auto 1rem}.nav-left{width:100%;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.nav-button,.nav-dropdown-toggle{flex:1;min-width:120px;justify-content:center;padding:.75rem 1rem;font-size:.9rem}.nav-dropdown-menu{position:static;box-shadow:none;border:1px solid var(--border-color);border-radius:8px;margin-top:.5rem;background:#f8fafc}.nav-dropdown-item{padding:.5rem 1rem;font-size:.9rem}.nav-label{font-size:.85rem}.nav-icon{font-size:1rem}.stats-grid{grid-template-columns:1fr}.dashboard-actions{flex-direction:column}.dashboard-actions .btn{width:100%}}@media (max-width: 480px){.app-nav{flex-direction:column;gap:.5rem}.app-nav button{width:100%}.modal-content{padding:1rem;margin:1rem}}.message{padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;font-weight:500}.message.error{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#dc2626;border:1px solid #fecaca}.message.success{background:linear-gradient(135deg,#f0fdf4,#dcfce7);color:#16a34a;border:1px solid #bbf7d0}.group-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:.9rem;border-radius:16px}.group-table th{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#374151;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;padding:1.25rem 1.5rem;border-bottom:3px solid var(--primary-color);text-align:left;position:relative}.group-table th:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(102,126,234,.3),transparent)}.group-table td{padding:1.25rem 1.5rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:.95rem;color:#4b5563;transition:all .2s ease}.group-table tr{transition:all .2s ease;position:relative}.group-table tr:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);transform:translate(4px);box-shadow:0 4px 15px #0000000d}.group-table tr:hover td{color:#1f2937;font-weight:500}.group-table tr:last-child td{border-bottom:none}.group-thumbnail{width:60px;height:60px;object-fit:cover;border-radius:8px;cursor:pointer;transition:all .2s ease;border:2px solid #e5e7eb}.group-thumbnail:hover{transform:scale(1.05);border-color:var(--primary-color);box-shadow:0 4px 12px #00000026}.no-image{color:#9ca3af;font-style:italic;text-align:center;padding:1rem;background:#f9fafb;border-radius:8px;border:2px dashed #d1d5db}.image-actions{margin-top:.5rem;display:flex;gap:.5rem;align-items:center}.image-input{font-size:.8rem}.update-image-btn{padding:.25rem .5rem;font-size:.75rem;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .2s ease}.update-image-btn:hover:not(:disabled){background:#2563eb}.update-image-btn:disabled{background:#9ca3af;cursor:not-allowed}.group-row-highlighted{background:linear-gradient(135deg,#fef3c7,#fde68a)!important;border-left:4px solid #f59e0b!important;box-shadow:0 4px 15px #f59e0b33!important}.group-with-coordinates{border-left:3px solid #28a745!important;background-color:#28a7450d!important}.group-no-coordinates{border-left:3px solid #e74c3c!important;background-color:#e74c3c0d!important}.group-name{font-weight:600;color:#1f2937;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.group-id{font-family:monospace;font-weight:600;color:#6b7280}.element-count{background:var(--primary-color);color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.8rem;font-weight:600;display:inline-block;min-width:24px;text-align:center}.group-arqueologist{font-weight:500;color:#374151}.group-coordinates{font-size:.85rem}.coordinate-display{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.coordinate-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.coordinate-label{font-weight:600;color:#667eea;font-size:.75rem;min-width:25px}.coordinate-value{font-family:monospace;color:#2c3e50;font-size:.8rem}.no-coordinates{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.8rem}.no-coordinates-warning{color:#e74c3c;font-weight:600}.no-coordinates-hint{color:#7f8c8d;font-size:.7rem}.group-date{font-size:.8rem;color:#6b7280;font-family:monospace}.empty-state{text-align:center;padding:2rem;color:#6b7280;font-style:italic}.group-actions .table-actions-inline{display:flex;flex-direction:column;gap:.5rem;min-width:120px}.group-actions .table-actions-inline .btn{white-space:nowrap;min-width:80px;font-size:.85rem;padding:.5rem .75rem}.action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.info-content{background:#f8f9fa;border-radius:12px;padding:1.5rem;border:1px solid var(--border-color)}.info-description{font-size:1rem;line-height:1.6;color:#374151;margin-bottom:1.5rem;text-align:center}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}.feature-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;background:#fff;border-radius:12px;border:1px solid var(--border-color);transition:all .2s ease}.feature-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a;border-color:var(--primary-color)}.feature-icon{font-size:2rem;flex-shrink:0;margin-top:.25rem}.feature-content h5{margin:0 0 .5rem;color:#1f2937;font-size:1.1rem;font-weight:600}.feature-content p{margin:0;color:#6b7280;font-size:.9rem;line-height:1.5}.stats-status{font-size:.85rem;font-weight:600;color:#6b7280;text-align:center;margin-top:.5rem;text-transform:uppercase;letter-spacing:.5px}.method-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.method-tab{padding:.5rem 1rem;border:2px solid var(--border-color);background:#fff;color:#6b7280;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.85rem}.plot-container{display:flex;justify-content:center;margin:2rem 0;padding:1rem;background:#fff;border-radius:12px;border:1px solid var(--border-color);box-shadow:0 2px 8px #0000000d}.distribution-table-container{background:#fff;border-radius:12px;border:1px solid var(--border-color);overflow:hidden;box-shadow:0 2px 8px #0000000d}.distribution-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:1.5rem 2rem;color:#fff}.distribution-header h5{margin:0 0 .5rem;font-size:1.4rem;font-weight:600}.distribution-header p{margin:0;opacity:.9;font-size:.95rem}.distribution-table-container .data-table{margin:0;border:none;box-shadow:none}.distribution-table-container .data-table table{margin:0;border:none}.distribution-table-container .data-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:1rem 1.5rem;font-weight:700;font-size:1.1rem;color:#374151;text-align:left;min-width:150px}.distribution-table-container .data-table th:nth-child(2),.distribution-table-container .data-table th:nth-child(3),.distribution-table-container .data-table th:nth-child(4){text-align:center}.distribution-table-container .data-table th:first-child{min-width:300px}.distribution-table-container .data-table td{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;vertical-align:middle}.distribution-table-container .data-table .main-site-row{background:#fff}.distribution-table-container .data-table .subsite-row{background:#f9fafb}.distribution-table-container .data-table .total-row{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-top:3px solid #cbd5e1;font-weight:700}.distribution-table-container .data-table .main-site-cell{color:#1f2937;font-weight:500}.distribution-table-container .data-table .subsite-cell{color:#6b7280;font-style:italic;font-weight:400}.distribution-table-container .data-table .subsite-cell:first-child{padding-left:3rem;border-left:4px solid #cbd5e1}.subsite-indicator{font-size:.8rem;color:#9ca3af;margin-right:.5rem}.distribution-bar{background:#e5e7eb;border-radius:20px;height:8px;width:100%;position:relative;overflow:hidden}.distribution-fill{height:100%;border-radius:20px;transition:width .3s ease}.main-site-fill{background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.subsite-fill{background:linear-gradient(90deg,#9ca3af,#6b7280)}.total-fill{background:linear-gradient(90deg,#10b981,#059669)}.message.info{background:#dbeafe;border:1px solid #93c5fd;color:#1e40af;padding:1rem 1.5rem;border-radius:8px;margin:1rem 0;text-align:center;font-size:1rem;line-height:1.5}.modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal>div{background:#fff;padding:1.5rem;border-radius:12px;min-width:320px;max-width:90vw;max-height:90vh;overflow:auto;position:relative;box-shadow:0 20px 40px #0003}.modal button{position:absolute;top:.5rem;right:.5rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;transition:color .2s ease}.modal button:hover{color:#374151}.modal h3{margin:0 0 1rem;color:#1f2937}.modal .modal-title{display:block;font-size:1rem;font-weight:600;margin-bottom:.75rem}.modal .form-actions{position:static}.modal img{max-width:80vw;max-height:70vh;border-radius:8px;box-shadow:0 4px 20px #0000001a}.samples-section{margin-top:1.5rem}.samples-section h5{color:#1f2937;margin-bottom:1rem;font-size:1.1rem}.samples-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.sample-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;transition:all .2s ease}.sample-item:hover{background:#f3f4f6;transform:translate(4px);box-shadow:0 2px 8px #0000001a}.sample-position{background:var(--primary-color);color:#fff;padding:.25rem .5rem;border-radius:50%;font-size:.8rem;font-weight:600;min-width:24px;text-align:center}.sample-details{flex:1;display:flex;flex-direction:column;gap:.5rem}.sample-main-info{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.sample-number{font-weight:600;color:#1f2937}.sample-material,.sample-object,.sample-model{color:#6b7280;font-size:.9rem}.sample-secondary-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.85rem}.sample-archaeologist,.sample-pit,.sample-layer,.sample-location,.sample-project,.sample-structure{color:#4b5563;background:#f3f4f6;padding:.25rem .5rem;border-radius:6px;border:1px solid #e5e7eb}.sample-characteristics{display:flex;gap:.5rem;flex-wrap:wrap}.characteristic{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;font-weight:500}.characteristic.complete{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.characteristic.bifacial{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.characteristic.extra{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.characteristic.special{background:#fce7f3;color:#be185d;border:1px solid #f9a8d4}.sample-id{color:#9ca3af;font-size:.8rem;font-family:monospace}.position-guide{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:1rem;color:#0c4a6e;font-size:.9rem;line-height:1.5}.loading{text-align:center;padding:2rem;color:#6b7280}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state h4{color:#374151;margin-bottom:.5rem}.empty-state p{color:#6b7280;margin:0}.crud-table{width:100%;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid var(--border-color);margin-bottom:1.5rem}.crud-table table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:.9rem;border-radius:16px}.crud-table th{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#374151;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;padding:1.25rem 1.5rem;border-bottom:3px solid var(--primary-color);text-align:left;position:relative}.crud-table th:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(102,126,234,.3),transparent)}.crud-table td{padding:1.25rem 1.5rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:.95rem;color:#4b5563;transition:all .2s ease}.crud-table tr{transition:all .2s ease;position:relative}.crud-table tr:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);transform:translate(4px);box-shadow:0 4px 15px #0000000d}.crud-table tr:hover td{color:#1f2937;font-weight:500}.crud-table tr:last-child td{border-bottom:none}.data-table{width:100%;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid var(--border-color);margin-bottom:1.5rem}.data-table table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:.9rem;border-radius:16px}.data-table th{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#374151;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;padding:1.25rem 1.5rem;border-bottom:3px solid var(--primary-color);text-align:left;position:relative}.data-table th:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(102,126,234,.3),transparent)}.data-table td{padding:1.25rem 1.5rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:.95rem;color:#4b5563;transition:all .2s ease}.data-table tr{transition:all .2s ease;position:relative}.data-table tr:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);transform:translate(4px);box-shadow:0 4px 15px #0000000d}.data-table tr:hover td{color:#1f2937;font-weight:500}.data-table tr:last-child td{border-bottom:none}.classification-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.classification-content{background:#fff;border-radius:16px;padding:3rem;max-width:500px;width:90%;text-align:center;box-shadow:0 25px 50px #00000040;border:2px solid var(--primary-color)}.classification-spinner{width:60px;height:60px;border:4px solid #e5e7eb;border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 2rem}.classification-content h3{color:var(--primary-color);margin:0 0 1rem;font-size:1.5rem;font-weight:700}.classification-content p{color:#6b7280;margin:0 0 1rem;font-size:1rem;line-height:1.6}.classification-progress{color:var(--primary-color)!important;font-weight:600;font-size:1.1rem!important}.classification-warning{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:1rem;margin-top:1.5rem;color:#92400e;font-size:.9rem;line-height:1.5}.classification-progress-container{margin:20px 0;text-align:center}.progress-bar-container{width:100%;height:20px;background-color:#e9ecef;border-radius:10px;overflow:hidden;margin-bottom:15px;border:2px solid #dee2e6}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);border-radius:8px;transition:width .3s ease;box-shadow:0 2px 4px #007bff4d}.classification-progress{font-size:18px;font-weight:600;color:#007bff;margin:0;display:flex;align-items:center;justify-content:center;gap:10px}.progress-percentage{background-color:#007bff;color:#fff;padding:4px 8px;border-radius:12px;font-size:14px;font-weight:500;min-width:50px;text-align:center}.classification-status{font-size:16px;color:#6c757d;margin:15px 0 0;font-weight:500;text-align:center;min-height:24px}.classification-timer{font-size:14px;color:#495057;margin:10px 0 0;font-weight:400;text-align:center;background-color:#f8f9fa;padding:8px 12px;border-radius:6px;border:1px solid #dee2e6}.spinner-small{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #fff;border-radius:50%;animation:spin 1s linear infinite;margin-right:8px}@media (max-width: 768px){.table-container{border-radius:8px;margin-bottom:1rem}.settings-table th,.settings-table td{padding:.75rem 1rem;font-size:.85rem}.table-actions{flex-direction:column;gap:1rem;align-items:stretch}.table-actions .btn{width:100%;min-width:auto}.pagination-container{flex-wrap:wrap;gap:.5rem}.pagination-container button{padding:.5rem .75rem;min-width:40px;font-size:.8rem}.btn-reclassify{padding:.4rem .8rem;font-size:.75rem;min-width:60px}.crud-table,.data-table{border-radius:8px;margin-bottom:1rem}.crud-table th,.crud-table td,.data-table th,.data-table td{padding:.75rem 1rem;font-size:.85rem}.classification-content{padding:2rem;margin:1rem}.classification-content h3{font-size:1.3rem}.classification-content p{font-size:.9rem}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sample-validation-page{width:100%;max-width:1400px;margin:0 auto;padding:1rem}.page-header{text-align:center;margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:16px;box-shadow:0 8px 32px #00000026}.page-header h2{margin:0 0 .5rem;font-size:2.5rem;font-weight:700}.page-header p{margin:0;font-size:1.1rem;opacity:.9}.analysis-method-card,.color-management-card,.sample-selection-card,.show-source-card,.filters-card,.source-legend-card,.plot-controls-card{background:#fff;border-radius:16px;padding:2rem;margin-bottom:1.5rem;box-shadow:0 4px 20px #00000014;border:1px solid var(--border-color)}.analysis-method-card h3,.color-management-card h3,.sample-selection-card h3,.show-source-card h3,.filters-card h3,.source-legend-card h3,.plot-controls-card h3{margin:0 0 1.5rem;color:#1f2937;font-size:1.5rem;font-weight:600;border-bottom:2px solid #f1f5f9;padding-bottom:.75rem}.method-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.method-tab{padding:.75rem 1.5rem;border:2px solid var(--border-color);background:#fff;color:#6b7280;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.95rem}.method-tab:hover{border-color:var(--primary-color);color:var(--primary-color);transform:translateY(-1px)}.method-tab.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff;box-shadow:0 4px 12px #3b82f64d}.color-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.btn-refresh-colors{background:#10b981;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.btn-refresh-colors:hover{background:#059669;transform:translateY(-1px)}.current-theme{font-weight:600;color:#6b7280}.color-themes{display:flex;gap:.5rem;flex-wrap:wrap}.color-theme-btn{padding:.5rem 1rem;border:2px solid var(--border-color);background:#fff;color:#6b7280;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s ease;text-transform:capitalize}.color-theme-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.color-theme-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.selection-controls{display:flex;flex-direction:column;gap:1.5rem}.selection-method{display:flex;gap:2rem}.selection-method label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:#374151;cursor:pointer}.sample-numbers-input,.group-selection{display:flex;flex-direction:column;gap:.5rem}.sample-numbers-input label,.group-selection label{font-weight:600;color:#374151}.sample-numbers-input input,.group-selection select{padding:.75rem;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;background:#fff;color:#374151;transition:border-color .2s ease}.sample-numbers-input input:focus,.group-selection select:focus{outline:none;border-color:var(--primary-color)}.btn-select-samples{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease;align-self:flex-start}.btn-select-samples:hover{background:#2563eb;transform:translateY(-1px)}.show-source-controls{display:flex;flex-direction:column;gap:1rem}.checkbox-label{display:flex;align-items:center;gap:.75rem;font-weight:600;color:#374151;cursor:pointer;font-size:1.1rem}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}.help-text{color:#6b7280;font-size:.95rem;line-height:1.5;margin:0;padding:1rem;background:#f8fafc;border-radius:8px;border-left:4px solid var(--primary-color)}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:600;color:#374151;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.filter-group select{padding:.75rem;border:2px solid var(--border-color);border-radius:8px;font-size:.95rem;background:#fff;color:#374151;transition:border-color .2s ease}.filter-group select:focus{outline:none;border-color:var(--primary-color)}.filter-actions{display:flex;gap:1rem;justify-content:center}.btn-apply-filters,.btn-clear-filters{padding:.75rem 2rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.btn-apply-filters{background:var(--primary-color);color:#fff;border:none}.btn-apply-filters:hover{background:#2563eb;transform:translateY(-1px)}.btn-clear-filters{background:#6b7280;color:#fff;border:none}.btn-clear-filters:hover{background:#4b5563;transform:translateY(-1px)}.legend-items{display:flex;flex-wrap:wrap;gap:1rem}.legend-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f8fafc;border-radius:8px;border:1px solid var(--border-color)}.legend-color{width:16px;height:16px;border-radius:50%;border:2px solid white;box-shadow:0 2px 4px #0000001a}.legend-label{font-weight:500;color:#374151}.plot-controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.plot-mode-btn{padding:.75rem 1.5rem;border:2px solid var(--border-color);background:#fff;color:#6b7280;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.plot-mode-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.plot-mode-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.btn-generate-plot{background:#10b981;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.btn-generate-plot:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.btn-generate-plot:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.error-message{background:#fee2e2;color:#dc2626;padding:1rem 1.5rem;border-radius:8px;margin:1rem 0;border:1px solid #fecaca;font-weight:500}.pca-plot-container,.sample-table-container{background:#fff;border-radius:16px;padding:2rem;margin:2rem 0;box-shadow:0 4px 20px #00000014;border:1px solid var(--border-color)}.sample-table-container h3{margin:0 0 1.5rem;color:#1f2937;font-size:1.5rem;font-weight:600}.sample-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:.9rem;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.sample-table th{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#374151;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;padding:1rem 1.5rem;border-bottom:2px solid var(--primary-color);text-align:left}.sample-table td{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:.95rem;color:#4b5563}.sample-table tr:hover{background:#f8fafc}.sample-table tr:hover td{color:#1f2937}.availability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.availability-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000000d;transition:all .2s ease}.availability-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.element-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.element-header h5{margin:0;font-size:1.1rem;font-weight:600;color:#1f2937}.availability-percentage{font-size:1.2rem;font-weight:700}.availability-stats{display:flex;justify-content:space-between;margin-bottom:.75rem;font-size:.85rem;color:#6b7280}.availability-bar{background:#f3f4f6;border-radius:10px;height:8px;overflow:hidden}.availability-fill{height:100%;border-radius:10px;transition:width .3s ease}.form-description{color:#6b7280;font-size:.95rem;line-height:1.5;margin-bottom:1rem}.form-help{color:#9ca3af;font-size:.8rem;margin-top:.25rem;display:block}.analysis-summary{margin-bottom:2rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:1rem}.summary-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000000d}.summary-card h5{margin:0 0 1rem;color:#1f2937;font-size:1.1rem;font-weight:600;border-bottom:2px solid #e5e7eb;padding-bottom:.5rem}.performance-metrics{display:flex;flex-direction:column;gap:.75rem}.metric{display:flex;justify-content:space-between;align-items:center}.metric-label{color:#6b7280;font-weight:500}.metric-value{color:#1f2937;font-weight:600;font-size:1.1rem}.selected-elements-list{display:flex;flex-wrap:wrap;gap:.5rem}.element-tag{padding:.5rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500;border:1px solid}.element-tag.selected{background:#dbeafe;border-color:#3b82f6;color:#1e40af}.dataset-info{display:flex;flex-direction:column;gap:.75rem}.info-item{display:flex;justify-content:space-between;align-items:center}.info-label{color:#6b7280;font-weight:500}.info-value{color:#1f2937;font-weight:600}.source-importance-section{margin-bottom:2rem}.source-name{color:#1f2937;font-size:1.2rem;font-weight:600;margin:1rem 0;padding:.75rem 1rem;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:8px;border-left:4px solid var(--primary-color)}.selected-element{background:#f0fdf4}.unselected-element{background:#fef2f2}.element-name{font-weight:600;color:#1f2937}.vip-score,.anova-p-value{font-weight:700;font-family:Courier New,monospace}.concentration-ranges{font-size:11px;max-width:200px}.source-range{border-bottom:1px solid #f0f0f0;padding:2px 0}.status-badge{padding:.25rem .5rem;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.selected{background:#dbeafe;color:#1e40af}.status-badge.unselected{background:#fee2e2;color:#dc2626}.selection-reason{color:#6b7280;font-size:.9rem;line-height:1.4;max-width:300px}.accuracy-score{font-weight:700;color:#059669;font-size:1.1rem}.message.success{background:#d1fae5;border:1px solid #a7f3d0;color:#065f46;padding:1rem 1.5rem;border-radius:8px;margin:1rem 0;text-align:center;font-size:1rem;line-height:1.5}@media (max-width: 768px){.availability-grid,.summary-grid{grid-template-columns:1fr}.settings-form-row{flex-direction:column}.form-group{margin-bottom:1rem}}.source-range:last-child{border-bottom:none}.element-selection-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:1rem 0}.element-group h5{margin-bottom:1rem;color:#374151;font-size:1rem}.element-checkboxes{display:flex;flex-direction:column;gap:.5rem}.element-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.25rem 0}.element-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.element-label{font-size:.9rem;color:#374151}.selected-elements-summary{margin-top:1.5rem;padding:1rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.selected-list{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.element-tag{background:#3b82f6;color:#fff;padding:.25rem .75rem;border-radius:16px;font-size:.8rem;font-weight:500}.table-container-fixed{position:relative;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000000f;margin-bottom:1.5rem;border:1px solid #e2e8f0;max-height:70vh}.table-fixed-header{table-layout:auto;border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%;margin:0;padding:0}.table-fixed-header thead{background:#fff}.table-fixed-header thead th{background-color:#f7fafc;text-align:left;font-weight:600;color:#4a5568;padding:.75rem 1rem;line-height:1.4;white-space:nowrap;border:1px solid #e2e8f0;box-sizing:border-box;vertical-align:middle}.table-fixed-header thead tr:nth-child(2) th{background-color:#f1f5f9;padding:.5rem 1rem;font-weight:500;font-size:.9rem}.table-fixed-header tbody td{padding:.75rem 1rem;line-height:1.4;white-space:nowrap;border:1px solid #e2e8f0;box-sizing:border-box;vertical-align:middle;text-align:left;color:#1f2937}.modal .form-input,.modal select,.modal textarea{color:#1f2937;background-color:#fff}.modal label,.modal .modal-title{color:#1f2937}.modal .settings-form-row{display:flex;flex-direction:column;gap:16px}.modal .form-group{width:100%}.modal .form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px;position:relative}.modal .modal-body{padding-bottom:12px}.modal-overlay .settings-card+.modal{margin-left:24px}.table-fixed-header tbody tr:nth-child(2n){background-color:#f9fafb}.table-fixed-header tbody tr:nth-child(odd){background-color:#fff}.table-fixed-header tbody tr:hover{background-color:#f3f4f6}.table-fixed-header th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.table-fixed-header th.sortable:hover{background-color:#e2e8f0}.table-fixed-header th.sortable:after{content:" ↕";opacity:.5;font-size:.8em}.table-fixed-header th.sortable.asc:after{content:" ▲";opacity:1;color:#667eea}.table-fixed-header th.sortable.desc:after{content:" ▼";opacity:1;color:#667eea}.table-fixed-header input[type=text],.table-fixed-header input[type=number],.table-fixed-header select{width:100%;padding:.375rem .5rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:.375rem;background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease}.table-fixed-header input[type=text]:focus,.table-fixed-header input[type=number]:focus,.table-fixed-header select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.table-fixed-header .table-actions{display:flex;flex-direction:row;gap:.5rem;flex-wrap:nowrap;align-items:center;justify-content:flex-start;padding:.25rem .5rem;min-width:200px;white-space:nowrap;overflow:visible}.table-fixed-header .table-actions button{padding:.375rem .75rem;font-size:.875rem;min-width:60px;height:32px;border-radius:.375rem;border:1px solid transparent;cursor:pointer;transition:all .2s ease;font-weight:500}.table-fixed-header input[type=checkbox]{width:1rem;height:1rem;border-radius:.25rem;border:1px solid #d1d5db;cursor:pointer}.table-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#ffffffe6;padding:1rem 2rem;border-radius:.5rem;box-shadow:0 4px 12px #0000001a;z-index:200}.table-empty{text-align:center;padding:2rem;color:#6b7280;font-style:italic}@media (max-width: 768px){.table-container-fixed{border-radius:8px;margin-bottom:1rem;max-height:60vh}.table-fixed-header th,.table-fixed-header td{padding:.5rem .75rem;font-size:.85rem}.table-fixed-header .table-actions{flex-direction:column;gap:.25rem;min-width:120px}.table-fixed-header .table-actions button{width:100%;min-width:auto;font-size:.8rem;padding:.25rem .5rem}}@media print{.table-container-fixed{box-shadow:none;border:1px solid #000;max-height:none;overflow:visible}.table-fixed-header thead{position:static}.table-fixed-header thead th{position:static;background-color:#f0f0f0!important;-webkit-print-color-adjust:exact;color-adjust:exact}}.table-fixed-header th[role=columnheader]{cursor:pointer}.table-fixed-header th[aria-sort=ascending],.table-fixed-header th[aria-sort=descending]{background-color:#e0e7ff}.table-fixed-header th:focus,.table-fixed-header td:focus{outline:2px solid #667eea;outline-offset:-2px}@media (prefers-contrast: high){.table-fixed-header{border:2px solid #000}.table-fixed-header th,.table-fixed-header td{border:1px solid #000}.table-fixed-header thead th{background-color:#000;color:#fff}}:root{--color-primary-50: #f0f9ff;--color-primary-100: #e0f2fe;--color-primary-200: #bae6fd;--color-primary-300: #7dd3fc;--color-primary-400: #38bdf8;--color-primary-500: #0ea5e9;--color-primary-600: #0284c7;--color-primary-700: #0369a1;--color-primary-800: #075985;--color-primary-900: #0c4a6e;--color-secondary-50: #f8fafc;--color-secondary-100: #f1f5f9;--color-secondary-200: #e2e8f0;--color-secondary-300: #cbd5e1;--color-secondary-400: #94a3b8;--color-secondary-500: #64748b;--color-secondary-600: #475569;--color-secondary-700: #334155;--color-secondary-800: #1e293b;--color-secondary-900: #0f172a;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-300: #86efac;--color-success-400: #4ade80;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-success-800: #166534;--color-success-900: #14532d;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-200: #fecaca;--color-error-300: #fca5a5;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-error-800: #991b1b;--color-error-900: #7f1d1d;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-200: #fde68a;--color-warning-300: #fcd34d;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-warning-800: #92400e;--color-warning-900: #78350f;--color-info-50: #eff6ff;--color-info-100: #dbeafe;--color-info-200: #bfdbfe;--color-info-300: #93c5fd;--color-info-400: #60a5fa;--color-info-500: #3b82f6;--color-info-600: #2563eb;--color-info-700: #1d4ed8;--color-info-800: #1e40af;--color-info-900: #1e3a8a;--color-primary: var(--color-primary-600);--color-primary-hover: var(--color-primary-700);--color-primary-light: var(--color-primary-100);--color-primary-dark: var(--color-primary-800);--color-secondary: var(--color-secondary-600);--color-secondary-hover: var(--color-secondary-700);--color-secondary-light: var(--color-secondary-100);--color-secondary-dark: var(--color-secondary-800);--color-success: var(--color-success-600);--color-success-hover: var(--color-success-700);--color-success-light: var(--color-success-100);--color-success-dark: var(--color-success-800);--color-error: var(--color-error-600);--color-error-hover: var(--color-error-700);--color-error-light: var(--color-error-100);--color-error-dark: var(--color-error-800);--color-warning: var(--color-warning-600);--color-warning-hover: var(--color-warning-700);--color-warning-light: var(--color-warning-100);--color-warning-dark: var(--color-warning-800);--color-info: var(--color-info-600);--color-info-hover: var(--color-info-700);--color-info-light: var(--color-info-100);--color-info-dark: var(--color-info-800);--color-white: #ffffff;--color-black: #000000;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-background-primary: var(--color-white);--color-background-secondary: var(--color-gray-50);--color-background-tertiary: var(--color-gray-100);--color-background-elevated: var(--color-white);--color-text-primary: var(--color-gray-900);--color-text-secondary: var(--color-gray-600);--color-text-tertiary: var(--color-gray-500);--color-text-inverse: var(--color-white);--color-text-disabled: var(--color-gray-400);--color-border-primary: var(--color-gray-200);--color-border-secondary: var(--color-gray-300);--color-border-focus: var(--color-primary-500);--color-border-error: var(--color-error-500);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--font-family-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", "Monaco", "Inconsolata", "Roboto Mono", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--letter-spacing-wider: .05em;--letter-spacing-widest: .1em;--radius-none: 0;--radius-sm: .125rem;--radius-base: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-base: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--z-index-toast: 1080;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--focus-ring: 0 0 0 3px rgba(59, 130, 246, .1);--focus-ring-offset: 2px;--primary-color: var(--color-primary);--secondary-color: var(--color-secondary);--background-color: var(--color-background-secondary);--text-color: var(--color-text-primary);--header-text-color: var(--color-text-inverse);--card-background: var(--color-background-elevated);--border-color: var(--color-border-primary);--shadow-color: rgba(0, 0, 0, .05);--success-color: var(--color-success);--error-color: var(--color-error);--warning-color: var(--color-warning)}:root --text-xs:{font-size:var(--font-size-xs);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-normal)}:root --text-sm:{font-size:var(--font-size-sm);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-normal)}:root --text-base:{font-size:var(--font-size-base);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal)}:root --text-lg:{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}:root --text-xl:{font-size:var(--font-size-xl);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-tight)}:root --text-2xl:{font-size:var(--font-size-2xl);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-tight)}:root --text-3xl:{font-size:var(--font-size-3xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}:root --text-4xl:{font-size:var(--font-size-4xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}:root --text-5xl:{font-size:var(--font-size-5xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-xs{font-size:var(--font-size-xs);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-normal)}.text-sm{font-size:var(--font-size-sm);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-normal)}.text-base{font-size:var(--font-size-base);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal)}.text-lg{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}.text-xl{font-size:var(--font-size-xl);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-tight)}.text-2xl{font-size:var(--font-size-2xl);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-tight)}.text-3xl{font-size:var(--font-size-3xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-4xl{font-size:var(--font-size-4xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-5xl{font-size:var(--font-size-5xl);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.font-light{font-weight:var(--font-weight-light)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.font-primary{font-family:var(--font-family-primary)}.font-mono{font-family:var(--font-family-mono)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-inverse{color:var(--color-text-inverse)}.text-disabled{color:var(--color-text-disabled)}.text-info{color:var(--color-info)}.text-justify{text-align:justify}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-normal-case{text-transform:none}.text-underline{text-decoration:underline}.text-no-underline{text-decoration:none}.text-line-through{text-decoration:line-through}.leading-tight{line-height:var(--line-height-tight)}.leading-snug{line-height:var(--line-height-snug)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}.leading-loose{line-height:var(--line-height-loose)}.tracking-tight{letter-spacing:var(--letter-spacing-tight)}.tracking-normal{letter-spacing:var(--letter-spacing-normal)}.tracking-wide{letter-spacing:var(--letter-spacing-wide)}.tracking-wider{letter-spacing:var(--letter-spacing-wider)}.tracking-widest{letter-spacing:var(--letter-spacing-widest)}.heading-1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary)}.heading-2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary)}.heading-3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary)}.heading-4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary)}.heading-5{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-primary)}.heading-6{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-primary)}.body-large{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.body-base{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary)}.body-small{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-snug);color:var(--color-text-secondary)}.body-xs{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-tight);color:var(--color-text-tertiary)}.label-large{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-primary)}.label-base{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-primary)}.label-small{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-normal);color:var(--color-text-secondary)}.caption{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-tight);color:var(--color-text-tertiary)}.code-large{font-family:var(--font-family-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-base)}.code-base{font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-base)}.code-small{font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-tight);color:var(--color-text-primary);background-color:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-base)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}@media (max-width: 768px){.heading-1{font-size:var(--font-size-3xl)}.heading-2{font-size:var(--font-size-2xl)}.heading-3{font-size:var(--font-size-xl)}.heading-4{font-size:var(--font-size-lg)}.heading-5{font-size:var(--font-size-base)}.heading-6{font-size:var(--font-size-sm)}.body-large{font-size:var(--font-size-base)}.body-base{font-size:var(--font-size-sm)}.body-small{font-size:var(--font-size-xs)}}:root{--spacing-0: 0;--spacing-1: var(--space-1);--spacing-2: var(--space-2);--spacing-3: var(--space-3);--spacing-4: var(--space-4);--spacing-5: var(--space-5);--spacing-6: var(--space-6);--spacing-8: var(--space-8);--spacing-10: var(--space-10);--spacing-12: var(--space-12);--spacing-16: var(--space-16);--spacing-20: var(--space-20);--spacing-24: var(--space-24);--spacing-32: var(--space-32)}.m-0{margin:var(--spacing-0)}.m-1{margin:var(--spacing-1)}.m-2{margin:var(--spacing-2)}.m-3{margin:var(--spacing-3)}.m-4{margin:var(--spacing-4)}.m-5{margin:var(--spacing-5)}.m-6{margin:var(--spacing-6)}.m-8{margin:var(--spacing-8)}.m-10{margin:var(--spacing-10)}.m-12{margin:var(--spacing-12)}.m-16{margin:var(--spacing-16)}.m-20{margin:var(--spacing-20)}.m-24{margin:var(--spacing-24)}.m-32{margin:var(--spacing-32)}.mx-0{margin-left:var(--spacing-0);margin-right:var(--spacing-0)}.mx-1{margin-left:var(--spacing-1);margin-right:var(--spacing-1)}.mx-2{margin-left:var(--spacing-2);margin-right:var(--spacing-2)}.mx-3{margin-left:var(--spacing-3);margin-right:var(--spacing-3)}.mx-4{margin-left:var(--spacing-4);margin-right:var(--spacing-4)}.mx-5{margin-left:var(--spacing-5);margin-right:var(--spacing-5)}.mx-6{margin-left:var(--spacing-6);margin-right:var(--spacing-6)}.mx-8{margin-left:var(--spacing-8);margin-right:var(--spacing-8)}.mx-10{margin-left:var(--spacing-10);margin-right:var(--spacing-10)}.mx-12{margin-left:var(--spacing-12);margin-right:var(--spacing-12)}.mx-16{margin-left:var(--spacing-16);margin-right:var(--spacing-16)}.mx-20{margin-left:var(--spacing-20);margin-right:var(--spacing-20)}.mx-24{margin-left:var(--spacing-24);margin-right:var(--spacing-24)}.mx-32{margin-left:var(--spacing-32);margin-right:var(--spacing-32)}.my-0{margin-top:var(--spacing-0);margin-bottom:var(--spacing-0)}.my-1{margin-top:var(--spacing-1);margin-bottom:var(--spacing-1)}.my-2{margin-top:var(--spacing-2);margin-bottom:var(--spacing-2)}.my-3{margin-top:var(--spacing-3);margin-bottom:var(--spacing-3)}.my-4{margin-top:var(--spacing-4);margin-bottom:var(--spacing-4)}.my-5{margin-top:var(--spacing-5);margin-bottom:var(--spacing-5)}.my-6{margin-top:var(--spacing-6);margin-bottom:var(--spacing-6)}.my-8{margin-top:var(--spacing-8);margin-bottom:var(--spacing-8)}.my-10{margin-top:var(--spacing-10);margin-bottom:var(--spacing-10)}.my-12{margin-top:var(--spacing-12);margin-bottom:var(--spacing-12)}.my-16{margin-top:var(--spacing-16);margin-bottom:var(--spacing-16)}.my-20{margin-top:var(--spacing-20);margin-bottom:var(--spacing-20)}.my-24{margin-top:var(--spacing-24);margin-bottom:var(--spacing-24)}.my-32{margin-top:var(--spacing-32);margin-bottom:var(--spacing-32)}.mt-0{margin-top:var(--spacing-0)}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-5{margin-top:var(--spacing-5)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mt-10{margin-top:var(--spacing-10)}.mt-12{margin-top:var(--spacing-12)}.mt-16{margin-top:var(--spacing-16)}.mt-20{margin-top:var(--spacing-20)}.mt-24{margin-top:var(--spacing-24)}.mt-32{margin-top:var(--spacing-32)}.mr-0{margin-right:var(--spacing-0)}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mr-3{margin-right:var(--spacing-3)}.mr-4{margin-right:var(--spacing-4)}.mr-5{margin-right:var(--spacing-5)}.mr-6{margin-right:var(--spacing-6)}.mr-8{margin-right:var(--spacing-8)}.mr-10{margin-right:var(--spacing-10)}.mr-12{margin-right:var(--spacing-12)}.mr-16{margin-right:var(--spacing-16)}.mr-20{margin-right:var(--spacing-20)}.mr-24{margin-right:var(--spacing-24)}.mr-32{margin-right:var(--spacing-32)}.mb-0{margin-bottom:var(--spacing-0)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.mb-10{margin-bottom:var(--spacing-10)}.mb-12{margin-bottom:var(--spacing-12)}.mb-16{margin-bottom:var(--spacing-16)}.mb-20{margin-bottom:var(--spacing-20)}.mb-24{margin-bottom:var(--spacing-24)}.mb-32{margin-bottom:var(--spacing-32)}.ml-0{margin-left:var(--spacing-0)}.ml-1{margin-left:var(--spacing-1)}.ml-2{margin-left:var(--spacing-2)}.ml-3{margin-left:var(--spacing-3)}.ml-4{margin-left:var(--spacing-4)}.ml-5{margin-left:var(--spacing-5)}.ml-6{margin-left:var(--spacing-6)}.ml-8{margin-left:var(--spacing-8)}.ml-10{margin-left:var(--spacing-10)}.ml-12{margin-left:var(--spacing-12)}.ml-16{margin-left:var(--spacing-16)}.ml-20{margin-left:var(--spacing-20)}.ml-24{margin-left:var(--spacing-24)}.ml-32{margin-left:var(--spacing-32)}.p-0{padding:var(--spacing-0)}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-5{padding:var(--spacing-5)}.p-6{padding:var(--spacing-6)}.p-8{padding:var(--spacing-8)}.p-10{padding:var(--spacing-10)}.p-12{padding:var(--spacing-12)}.p-16{padding:var(--spacing-16)}.p-20{padding:var(--spacing-20)}.p-24{padding:var(--spacing-24)}.p-32{padding:var(--spacing-32)}.px-0{padding-left:var(--spacing-0);padding-right:var(--spacing-0)}.px-1{padding-left:var(--spacing-1);padding-right:var(--spacing-1)}.px-2{padding-left:var(--spacing-2);padding-right:var(--spacing-2)}.px-3{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}.px-4{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.px-5{padding-left:var(--spacing-5);padding-right:var(--spacing-5)}.px-6{padding-left:var(--spacing-6);padding-right:var(--spacing-6)}.px-8{padding-left:var(--spacing-8);padding-right:var(--spacing-8)}.px-10{padding-left:var(--spacing-10);padding-right:var(--spacing-10)}.px-12{padding-left:var(--spacing-12);padding-right:var(--spacing-12)}.px-16{padding-left:var(--spacing-16);padding-right:var(--spacing-16)}.px-20{padding-left:var(--spacing-20);padding-right:var(--spacing-20)}.px-24{padding-left:var(--spacing-24);padding-right:var(--spacing-24)}.px-32{padding-left:var(--spacing-32);padding-right:var(--spacing-32)}.py-0{padding-top:var(--spacing-0);padding-bottom:var(--spacing-0)}.py-1{padding-top:var(--spacing-1);padding-bottom:var(--spacing-1)}.py-2{padding-top:var(--spacing-2);padding-bottom:var(--spacing-2)}.py-3{padding-top:var(--spacing-3);padding-bottom:var(--spacing-3)}.py-4{padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}.py-5{padding-top:var(--spacing-5);padding-bottom:var(--spacing-5)}.py-6{padding-top:var(--spacing-6);padding-bottom:var(--spacing-6)}.py-8{padding-top:var(--spacing-8);padding-bottom:var(--spacing-8)}.py-10{padding-top:var(--spacing-10);padding-bottom:var(--spacing-10)}.py-12{padding-top:var(--spacing-12);padding-bottom:var(--spacing-12)}.py-16{padding-top:var(--spacing-16);padding-bottom:var(--spacing-16)}.py-20{padding-top:var(--spacing-20);padding-bottom:var(--spacing-20)}.py-24{padding-top:var(--spacing-24);padding-bottom:var(--spacing-24)}.py-32{padding-top:var(--spacing-32);padding-bottom:var(--spacing-32)}.pt-0{padding-top:var(--spacing-0)}.pt-1{padding-top:var(--spacing-1)}.pt-2{padding-top:var(--spacing-2)}.pt-3{padding-top:var(--spacing-3)}.pt-4{padding-top:var(--spacing-4)}.pt-5{padding-top:var(--spacing-5)}.pt-6{padding-top:var(--spacing-6)}.pt-8{padding-top:var(--spacing-8)}.pt-10{padding-top:var(--spacing-10)}.pt-12{padding-top:var(--spacing-12)}.pt-16{padding-top:var(--spacing-16)}.pt-20{padding-top:var(--spacing-20)}.pt-24{padding-top:var(--spacing-24)}.pt-32{padding-top:var(--spacing-32)}.pr-0{padding-right:var(--spacing-0)}.pr-1{padding-right:var(--spacing-1)}.pr-2{padding-right:var(--spacing-2)}.pr-3{padding-right:var(--spacing-3)}.pr-4{padding-right:var(--spacing-4)}.pr-5{padding-right:var(--spacing-5)}.pr-6{padding-right:var(--spacing-6)}.pr-8{padding-right:var(--spacing-8)}.pr-10{padding-right:var(--spacing-10)}.pr-12{padding-right:var(--spacing-12)}.pr-16{padding-right:var(--spacing-16)}.pr-20{padding-right:var(--spacing-20)}.pr-24{padding-right:var(--spacing-24)}.pr-32{padding-right:var(--spacing-32)}.pb-0{padding-bottom:var(--spacing-0)}.pb-1{padding-bottom:var(--spacing-1)}.pb-2{padding-bottom:var(--spacing-2)}.pb-3{padding-bottom:var(--spacing-3)}.pb-4{padding-bottom:var(--spacing-4)}.pb-5{padding-bottom:var(--spacing-5)}.pb-6{padding-bottom:var(--spacing-6)}.pb-8{padding-bottom:var(--spacing-8)}.pb-10{padding-bottom:var(--spacing-10)}.pb-12{padding-bottom:var(--spacing-12)}.pb-16{padding-bottom:var(--spacing-16)}.pb-20{padding-bottom:var(--spacing-20)}.pb-24{padding-bottom:var(--spacing-24)}.pb-32{padding-bottom:var(--spacing-32)}.pl-0{padding-left:var(--spacing-0)}.pl-1{padding-left:var(--spacing-1)}.pl-2{padding-left:var(--spacing-2)}.pl-3{padding-left:var(--spacing-3)}.pl-4{padding-left:var(--spacing-4)}.pl-5{padding-left:var(--spacing-5)}.pl-6{padding-left:var(--spacing-6)}.pl-8{padding-left:var(--spacing-8)}.pl-10{padding-left:var(--spacing-10)}.pl-12{padding-left:var(--spacing-12)}.pl-16{padding-left:var(--spacing-16)}.pl-20{padding-left:var(--spacing-20)}.pl-24{padding-left:var(--spacing-24)}.pl-32{padding-left:var(--spacing-32)}.gap-0{gap:var(--spacing-0)}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.gap-10{gap:var(--spacing-10)}.gap-12{gap:var(--spacing-12)}.gap-16{gap:var(--spacing-16)}.gap-20{gap:var(--spacing-20)}.gap-24{gap:var(--spacing-24)}.gap-32{gap:var(--spacing-32)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-5{grid-column:span 5 / span 5}.col-span-6{grid-column:span 6 / span 6}.col-span-full{grid-column:1 / -1}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.row-span-1{grid-row:span 1 / span 1}.row-span-2{grid-row:span 2 / span 2}.row-span-3{grid-row:span 3 / span 3}.row-span-4{grid-row:span 4 / span 4}.row-span-5{grid-row:span 5 / span 5}.row-span-6{grid-row:span 6 / span 6}.row-span-full{grid-row:1 / -1}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.w-screen{width:100vw}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.w-0{width:0}.w-1{width:var(--spacing-1)}.w-2{width:var(--spacing-2)}.w-3{width:var(--spacing-3)}.w-4{width:var(--spacing-4)}.w-5{width:var(--spacing-5)}.w-6{width:var(--spacing-6)}.w-8{width:var(--spacing-8)}.w-10{width:var(--spacing-10)}.w-12{width:var(--spacing-12)}.w-16{width:var(--spacing-16)}.w-20{width:var(--spacing-20)}.w-24{width:var(--spacing-24)}.w-32{width:var(--spacing-32)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.h-0{height:0}.h-1{height:var(--spacing-1)}.h-2{height:var(--spacing-2)}.h-3{height:var(--spacing-3)}.h-4{height:var(--spacing-4)}.h-5{height:var(--spacing-5)}.h-6{height:var(--spacing-6)}.h-8{height:var(--spacing-8)}.h-10{height:var(--spacing-10)}.h-12{height:var(--spacing-12)}.h-16{height:var(--spacing-16)}.h-20{height:var(--spacing-20)}.h-24{height:var(--spacing-24)}.h-32{height:var(--spacing-32)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-base)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow-base)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.shadow-inner{box-shadow:var(--shadow-inner)}.shadow-none{box-shadow:none}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-8{border-width:8px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-none{border-style:none}.border-primary{border-color:var(--color-border-primary)}.border-secondary{border-color:var(--color-border-secondary)}.border-focus{border-color:var(--color-border-focus)}.border-error{border-color:var(--color-border-error)}.bg-info{background-color:var(--color-info)}.bg-white{background-color:var(--color-white)}.bg-black{background-color:var(--color-black)}.bg-transparent{background-color:transparent}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-background-primary{background-color:var(--color-background-primary)}.bg-background-secondary{background-color:var(--color-background-secondary)}.bg-background-tertiary{background-color:var(--color-background-tertiary)}.bg-background-elevated{background-color:var(--color-background-elevated)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);text-align:center;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);min-height:44px;box-sizing:border-box;position:relative;overflow:hidden}.btn:focus{outline:none;box-shadow:var(--focus-ring)}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-white);border-color:var(--color-secondary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-hover);border-color:var(--color-secondary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-success{background-color:var(--color-success);color:var(--color-white);border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:var(--color-success-hover);border-color:var(--color-success-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-error{background-color:var(--color-error);color:var(--color-white);border-color:var(--color-error)}.btn-error:hover:not(:disabled){background-color:var(--color-error-hover);border-color:var(--color-error-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-warning{background-color:var(--color-warning);color:var(--color-white);border-color:var(--color-warning)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-hover);border-color:var(--color-warning-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-info{background-color:var(--color-info);color:var(--color-white);border-color:var(--color-info)}.btn-info:hover:not(:disabled){background-color:var(--color-info-hover);border-color:var(--color-info-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-white);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-ghost{background-color:transparent;color:var(--color-text-primary);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100);color:var(--color-text-primary)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);min-height:32px}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--font-size-base);min-height:52px}.btn-xl{padding:var(--space-5) var(--space-8);font-size:var(--font-size-lg);min-height:60px}.btn-loading{position:relative;color:transparent}.btn-loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.form-group{margin-bottom:var(--space-4)}.settings-form .settings-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.settings-form .form-group--full{grid-column:1 / -1}.form-label{display:block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:var(--line-height-snug)}.form-label.required:after{content:" *";color:var(--color-error)}.form-input{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-white);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);transition:all var(--transition-base);box-sizing:border-box}.form-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--focus-ring)}.form-input:disabled{background-color:var(--color-gray-100);color:var(--color-text-disabled);cursor:not-allowed}.form-input.error{border-color:var(--color-border-error)}.form-input.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-textarea{resize:vertical;min-height:80px}.form-select{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 var(--space-3) center;background-repeat:no-repeat;background-size:16px 12px;padding-right:var(--space-10);appearance:none}.form-help{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:var(--line-height-tight)}.form-error{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-error);line-height:var(--line-height-tight)}.card{background-color:var(--color-background-elevated);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:block;width:100%;box-sizing:border-box}.plot-frame{position:relative;padding:0;background:transparent;overflow:visible}.plot-frame:before{content:"";position:absolute;inset:0;border:1px solid #e5e7eb;border-radius:12px;pointer-events:none;box-sizing:border-box}.card-header{padding:var(--space-6);border-bottom:1px solid var(--color-border-primary);background-color:var(--color-gray-50)}.stats-card{padding:var(--space-2)!important;min-height:60px!important;height:auto!important}.stats-number{font-size:20px!important;margin-bottom:3px!important}.stats-label{font-size:12px!important;font-weight:600!important;margin-bottom:1px!important}.training-data-card{padding:var(--space-2)!important;min-height:50px!important;height:auto!important}.training-data-card .card-body{padding:0!important}.training-data-number{font-size:18px!important;margin-bottom:2px!important}.card-footer{padding:var(--space-6);border-top:1px solid var(--color-border-primary);background-color:var(--color-gray-50)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal);padding:var(--space-4)}.modal-content{background-color:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:720px;width:100%;max-height:90vh;overflow:hidden;position:relative;color:var(--color-text-primary);--color-text-primary: #111827;--color-text-secondary: #374151;--color-text-tertiary: #4b5563;--color-text-disabled: #6b7280;--color-background-elevated: #ffffff;--color-white: #ffffff;--color-border-primary: #e5e7eb}.modal-header{padding:var(--space-6);border-bottom:1px solid var(--color-border-primary);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.modal-body{padding:var(--space-6);overflow-y:auto;max-height:calc(90vh - 140px)}.modal-content,.modal-content .modal-title,.modal-content label,.modal-content .form-label,.modal-content .form-help,.modal-content .form-error,.modal-content h1,.modal-content h2,.modal-content h3,.modal-content h4,.modal-content h5,.modal-content h6,.modal-content p,.modal-content span,.modal-content div{color:#1f2937!important}.modal-content input,.modal-content textarea,.modal-content select{color:#111827!important;background-color:#fff!important;border-color:#d1d5db!important}.modal-content input::placeholder,.modal-content textarea::placeholder{color:#6b7280!important}.modal-footer{padding:var(--space-6);border-top:1px solid var(--color-border-primary);display:flex;gap:var(--space-3);justify-content:flex-end;background:var(--color-white);position:sticky;bottom:0}.modal-footer .btn{color:#fff!important;min-width:80px!important;padding:8px 16px!important;font-size:14px!important;font-weight:500!important;border:1px solid transparent!important}.modal-footer .btn-primary{background-color:#3b82f6!important;color:#fff!important}.modal-footer .btn-secondary{background-color:#6b7280!important;color:#fff!important}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-6);border-top:1px solid var(--color-border-primary);background:var(--color-white);margin-top:var(--space-4)}.form-actions .btn{color:#fff!important;min-width:80px!important;padding:8px 16px!important;font-size:14px!important;font-weight:500!important;border:1px solid transparent!important}.form-actions .btn-primary{background-color:#3b82f6!important;color:#fff!important}.form-actions .btn-secondary{background-color:#6b7280!important;color:#fff!important}.modal-close{background:none;border:none;font-size:var(--font-size-xl);color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-base);transition:all var(--transition-base)}.modal-close:hover{background-color:var(--color-gray-100);color:var(--color-text-primary)}.table-container{background-color:var(--color-white);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:visible;box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table th{background-color:var(--color-gray-50);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);text-align:left;padding:var(--space-4);border-bottom:1px solid var(--color-border-primary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.table td{padding:var(--space-4);border-bottom:1px solid var(--color-border-primary);color:var(--color-text-primary)}.table tbody tr:hover{background-color:var(--color-gray-50)}.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.badge-secondary{background-color:var(--color-secondary-light);color:var(--color-secondary-dark)}.badge-success{background-color:var(--color-success-light);color:var(--color-success-dark)}.badge-error{background-color:var(--color-error-light);color:var(--color-error-dark)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning-dark)}.badge-info{background-color:var(--color-info-light);color:var(--color-info-dark)}.alert{padding:var(--space-4);border-radius:var(--radius-md);border:1px solid;margin-bottom:var(--space-4)}.alert-success{background-color:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-dark)}.alert-error{background-color:var(--color-error-light);border-color:var(--color-error);color:var(--color-error-dark)}.alert-warning{background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.alert-info{background-color:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark)}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-lg{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-in{animation:slideIn .3s ease-out}@media (prefers-contrast: high){.btn,.form-input,.card,.table th,.table td{border-width:2px}}@media (prefers-reduced-motion: reduce){.btn,.form-input,.modal-close{transition:none}.spinner,.animate-fade-in,.animate-slide-in{animation:none}}*{color:inherit!important}body{color:#1f2937!important;background-color:#fff!important}h1,h2,h3,h4,h5,h6,p,span,div,label,button,input,select,textarea,th,td,li,a{color:#1f2937!important}.btn-primary,.btn-secondary,.btn-success,.btn-warning,.btn-danger{color:#fff!important}input,select,textarea{color:#111827!important;background-color:#fff!important;border-color:#d1d5db!important}input::placeholder,textarea::placeholder{color:#6b7280!important}table{color:#1f2937!important}th,td{color:#1f2937!important;background-color:#fff!important}.app-nav,.nav-item,.nav-link,.reference-data-page,.reference-data-page *,.reference-data-page .table-container,.reference-data-page .table-container *,.unusual-samples-page,.unusual-samples-page *{color:#1f2937!important}.dashboard-content,.main-content,.content-area{color:#1f2937!important;background-color:#fff!important}.filter-section,.filter-bar,.filter-container{color:#1f2937!important;background-color:#f9fafb!important}.modal-content,.modal-content *,.card,.card-body,.card-header{color:#1f2937!important;background-color:#fff!important}.form-label,.form-help,.form-error,.pagination-container,.pagination-container *,.tabs,.tab{color:#1f2937!important}.tab.active{color:#fff!important;background-color:#3b82f6!important}.reference-data-page .btn,.reference-data-page .btn *{color:#fff!important}.reference-data-page .btn-secondary{background-color:#6b7280!important;color:#fff!important}.reference-data-page .btn-success{background-color:#10b981!important;color:#fff!important}.reference-data-page .btn-warning{background-color:#f59e0b!important;color:#fff!important}.reference-data-page .btn-danger{background-color:#ef4444!important;color:#fff!important}.reference-data-page .actions .btn{min-width:60px!important;padding:.25rem .5rem!important;font-size:.75rem!important;border-radius:4px!important;border:none!important;cursor:pointer!important;transition:all .2s ease!important}.reference-data-page .actions .btn:hover{transform:translateY(-1px)!important;box-shadow:0 2px 4px #0003!important}.reference-data-page .actions{display:flex!important;gap:.25rem!important;flex-wrap:wrap!important}.reference-data-page .actions .btn{display:inline-block!important;visibility:visible!important;opacity:1!important}.model-management-page .stats-card{padding:var(--space-2)!important;min-height:60px!important;height:auto!important;border:1px solid #e5e7eb!important;background:#f9fafb!important}.model-management-page .stats-number{font-size:20px!important;margin-bottom:3px!important;text-align:center!important}.model-management-page .stats-label{font-size:12px!important;font-weight:600!important;margin-bottom:1px!important;text-align:center!important;color:#374151!important}.model-management-page .stats-status{font-size:10px!important;color:#666!important;text-align:center!important;font-weight:500!important}.model-management-page .training-data-card{padding:var(--space-2)!important;min-height:50px!important;height:auto!important}.model-management-page .training-data-card .card-body{padding:var(--space-2)!important}.model-management-page .training-data-number{font-size:18px!important;margin-bottom:2px!important;font-weight:700!important}.model-management-page .training-data-label{font-size:10px!important;font-weight:600!important}.model-management-page .source-distribution-card{padding:var(--space-1)!important;min-height:50px!important;height:auto!important;border-radius:6px!important}.model-management-page .source-distribution-card .card-body{padding:var(--space-1)!important}.model-management-page .source-name{font-size:10px!important;font-weight:600!important;line-height:1.1!important}.model-management-page .source-count{font-size:9px!important;line-height:1!important}.mb-1{margin-bottom:var(--space-1)}.mb-8{margin-bottom:var(--space-8)}.mb-10{margin-bottom:10px}.mb-15{margin-bottom:15px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mt-1{margin-top:var(--space-1)}.mt-8{margin-top:var(--space-8)}.mt-10{margin-top:10px}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.p-15{padding:15px}.p-16{padding:16px}.d-inline-flex{display:inline-flex}.d-flex{display:flex}.d-block{display:block}.d-grid{display:grid}.align-items-center{align-items:center}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-8{gap:8px}.w-full{width:100%}.w-auto{width:auto}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-success{background-color:var(--color-success)}.bg-error{background-color:var(--color-error)}.bg-warning{background-color:var(--color-warning)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.mr-2{margin-right:var(--space-2)}.ml-2{margin-left:var(--space-2)}.mx-2{margin-left:var(--space-2);margin-right:var(--space-2)}.my-2{margin-top:var(--space-2);margin-bottom:var(--space-2)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.element-card{border:1px solid var(--color-border);background-color:var(--color-background-subtle);border-radius:var(--radius-md);padding:var(--space-3);position:relative;opacity:1;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.group-card{border-radius:var(--radius-lg)}.group-table-header{font-weight:600}.table-container{width:100%}@media (max-width: 640px){.table th,.table td{font-size:12px;padding:6px}.card-title{font-size:var(--font-size-base)}}.element-card.disabled{opacity:.5}.element-card-success{border-color:var(--color-success-200);background-color:var(--color-success-50)}.element-card-success .element-card-title{color:var(--color-success-700)}.element-card-warning{border-color:var(--color-warning-200);background-color:var(--color-warning-50)}.element-card-warning .element-card-title{color:var(--color-warning-700)}.element-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.element-card-title{color:var(--color-text-primary);margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}.element-card-stats{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.element-card-progress{background:var(--color-background-muted);border-radius:var(--radius-md);height:6px;overflow:hidden}.element-card-progress-bar{height:100%;border-radius:var(--radius-md);transition:width var(--transition-base)}.element-card-progress-bar.high{background-color:var(--color-success)}.element-card-progress-bar.medium{background-color:var(--color-warning)}.element-card-progress-bar.low{background-color:var(--color-error)}@media (max-width: 640px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:text-xs{font-size:var(--font-size-xs)}.sm\:text-sm{font-size:var(--font-size-sm)}.sm\:text-base{font-size:var(--font-size-base)}.sm\:text-lg{font-size:var(--font-size-lg)}.sm\:p-2{padding:var(--space-2)}.sm\:p-3{padding:var(--space-3)}.sm\:p-4{padding:var(--space-4)}.sm\:p-6{padding:var(--space-6)}.sm\:m-2{margin:var(--space-2)}.sm\:m-3{margin:var(--space-3)}.sm\:m-4{margin:var(--space-4)}.sm\:m-6{margin:var(--space-6)}.sm\:flex-col{flex-direction:column}.sm\:items-stretch{align-items:stretch}.sm\:text-center{text-align:center}.sm\:w-full{width:100%}.sm\:h-auto{height:auto}}@media (max-width: 768px){.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:text-sm{font-size:var(--font-size-sm)}.md\:text-base{font-size:var(--font-size-base)}.md\:text-lg{font-size:var(--font-size-lg)}.md\:text-xl{font-size:var(--font-size-xl)}.md\:p-3{padding:var(--space-3)}.md\:p-4{padding:var(--space-4)}.md\:p-6{padding:var(--space-6)}.md\:p-8{padding:var(--space-8)}.md\:m-3{margin:var(--space-3)}.md\:m-4{margin:var(--space-4)}.md\:m-6{margin:var(--space-6)}.md\:m-8{margin:var(--space-8)}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:justify-center{justify-content:center}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1024px){.lg\:hidden{display:none}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:text-base{font-size:var(--font-size-base)}.lg\:text-lg{font-size:var(--font-size-lg)}.lg\:text-xl{font-size:var(--font-size-xl)}.lg\:text-2xl{font-size:var(--font-size-2xl)}.lg\:p-4{padding:var(--space-4)}.lg\:p-6{padding:var(--space-6)}.lg\:p-8{padding:var(--space-8)}.lg\:p-12{padding:var(--space-12)}.lg\:m-4{margin:var(--space-4)}.lg\:m-6{margin:var(--space-6)}.lg\:m-8{margin:var(--space-8)}.lg\:m-12{margin:var(--space-12)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:focus{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}.focus-visible:focus{outline:2px solid var(--color-primary);outline-offset:2px}.focus-visible:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-40px;left:6px;background:var(--color-primary);color:var(--color-white);padding:8px;text-decoration:none;border-radius:4px;z-index:1000}.skip-link:focus{top:6px}@media (prefers-contrast: high){:root{--color-border-primary: #000000;--color-border-secondary: #000000;--color-text-primary: #000000;--color-text-secondary: #000000;--color-background-primary: #ffffff;--color-background-secondary: #ffffff}.btn,.form-input,.card,.table th,.table td{border-width:2px}.modal-content{border:2px solid #000000}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn,.form-input,.modal-close{transition:none}.spinner,.animate-fade-in,.animate-slide-in{animation:none}}@media (prefers-color-scheme: dark){:root{--color-background-primary: #1a1a1a;--color-background-secondary: #2d2d2d;--color-background-tertiary: #404040;--color-background-elevated: #2d2d2d;--color-text-primary: #ffffff;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af;--color-text-disabled: #6b7280;--color-border-primary: #374151;--color-border-secondary: #4b5563;--color-gray-50: #1f2937;--color-gray-100: #374151;--color-gray-200: #4b5563;--color-gray-300: #6b7280;--color-gray-400: #9ca3af;--color-gray-500: #d1d5db;--color-gray-600: #e5e7eb;--color-gray-700: #f3f4f6;--color-gray-800: #f9fafb;--color-gray-900: #ffffff}.modal-content,.modal-content *{color:#1f2937!important}.modal-content input,.modal-content textarea,.modal-content select{color:#111827!important;background:#fff!important;border-color:#d1d5db!important}.modal-content input::placeholder,.modal-content textarea::placeholder{color:#6b7280!important}}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.btn{border:1px solid black;background:#fff;color:#000}.card{border:1px solid black;box-shadow:none}.table{border-collapse:collapse}.table th,.table td{border:1px solid black}.modal-overlay{position:static;background:none}.modal-content{box-shadow:none;border:1px solid black}.sr-only{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}}@container (min-width: 300px){.container-sm\:flex-row{flex-direction:row}}@container (min-width: 600px){.container-md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 900px){.container-lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (pointer: coarse){.btn{min-height:44px;min-width:44px}.form-input{min-height:44px}.modal-close{min-height:44px;min-width:44px}}@media (hover: hover){.btn:hover{transform:translateY(-1px)}.card:hover{box-shadow:var(--shadow-md)}.table tbody tr:hover{background-color:var(--color-gray-50)}}@media (hover: none){.btn:hover{transform:none}.card:hover{box-shadow:var(--shadow-sm)}}@media (orientation: landscape) and (max-height: 500px){.modal-content{max-height:95vh}.table-container{max-height:60vh}}@media (orientation: portrait) and (max-width: 768px){.modal-content{margin:var(--space-2);max-width:calc(100vw - var(--space-4))}.card{margin-bottom:var(--space-4)}}@media (max-width: 320px){.btn{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.form-input{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.modal-content{margin:var(--space-1);max-width:calc(100vw - var(--space-2))}.card-body,.card-header,.card-footer{padding:var(--space-4)}}@media (min-width: 1920px){.container-xl{max-width:1920px;margin:0 auto}.btn-xl{padding:var(--space-6) var(--space-10);font-size:var(--font-size-xl);min-height:72px}.heading-1{font-size:var(--font-size-5xl)}.heading-2{font-size:var(--font-size-4xl)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background-secondary);min-height:100vh;min-width:320px}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:100%;overflow-x:hidden}.app-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-text-inverse);padding:var(--space-6) var(--space-8);text-align:center;box-shadow:var(--shadow-md);width:100%;box-sizing:border-box;min-height:120px;display:flex;flex-direction:column;justify-content:center;align-items:center}.app-header h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-2);color:var(--color-text-inverse)}.app-header p{font-size:var(--font-size-base);opacity:.9;color:var(--color-text-inverse)}.app-nav{display:flex;align-items:center;justify-content:space-between;background:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin:var(--space-2) auto var(--space-8) auto;padding:var(--space-3) var(--space-4);max-width:1400px;position:relative;z-index:10;min-height:60px;width:100%;box-sizing:border-box}.app-nav button{background:none;border:none;outline:none;padding:var(--space-3) var(--space-5);margin:0 var(--space-1);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base);box-shadow:none;position:relative;white-space:nowrap;flex-shrink:0;min-width:max-content;min-height:44px}.app-nav button.active{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-white);font-weight:var(--font-weight-bold);box-shadow:var(--shadow-md)}.app-nav button:hover:not(.active){background:var(--color-gray-100);color:var(--color-primary)}.app-nav button:focus{outline:2px solid var(--color-primary);outline-offset:2px}.nav-left,.nav-right{display:flex;align-items:center;gap:var(--space-2)}.app-main{flex:1;padding:var(--space-4) var(--space-8);max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box;min-height:0;overflow:hidden}.app-main>*{box-sizing:border-box;max-width:100%}.main-content{width:100%;box-sizing:border-box}.section-header{margin-bottom:var(--space-6);display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--space-4)}.section-header h2{margin:0;color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.loading{text-align:center;padding:var(--space-8);color:var(--color-text-secondary)}.loading-spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-4)}.empty-state{text-align:center;padding:var(--space-8);color:var(--color-text-tertiary);font-style:italic}.empty-state-icon{font-size:var(--font-size-3xl);margin-bottom:var(--space-4);opacity:.5}.empty-state h4{color:var(--color-text-primary);margin-bottom:var(--space-2);font-weight:var(--font-weight-medium)}.empty-state p{color:var(--color-text-secondary);margin:0}.message{padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);margin-bottom:var(--space-6);font-weight:var(--font-weight-medium);border:1px solid}.message.success{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-dark)}.message.error{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error-dark)}.message.warning{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.message.info{background:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark)}@media (max-width: 768px){.app-main{padding:var(--space-4)}.app-header{padding:var(--space-4);min-height:100px}.app-header h1{font-size:var(--font-size-xl)}.app-header p{font-size:var(--font-size-sm)}.app-nav{flex-direction:column;gap:var(--space-2);padding:var(--space-4)}.app-nav button{width:100%;margin:0}.section-header{flex-direction:column;align-items:stretch}.section-header h2{font-size:var(--font-size-lg)}}@media (max-width: 480px){.app-main{padding:var(--space-2)}.app-header{padding:var(--space-3);min-height:80px}.app-header h1{font-size:var(--font-size-lg)}.app-nav{margin:var(--space-1) auto var(--space-4) auto;padding:var(--space-3)}.message{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}}@media print{.app-header{background:none;color:#000;box-shadow:none}.app-nav{display:none}.app-main{padding:0}.message{background:none;border:1px solid black;color:#000}.loading,.empty-state{display:none}}@media (prefers-contrast: high){.app-header{background:#000;color:#fff}.app-nav{border:2px solid black}.app-nav button{border:1px solid black}.app-nav button.active{background:#000;color:#fff}}@media (prefers-reduced-motion: reduce){.app-nav button{transition:none}.loading-spinner{animation:none}}
