body{font-family:Roboto,sans-serif;margin:0;background-color:#f4f6f8;color:#333}header{background:linear-gradient(90deg,#6e45e2,#88d3ce);color:#fff;padding:20px 40px;text-align:center;position:relative}header h1{margin:0;font-weight:500}header p{margin:5px 0 0;font-weight:300}header .author{position:absolute;top:15px;right:20px;margin:0;font-size:12px;font-weight:400;opacity:.8;font-style:italic}main{padding:20px}.tabs{display:flex;border-bottom:1px solid #ddd;margin-bottom:20px}.tab-button{background:none;border:none;padding:15px 20px;cursor:pointer;font-size:16px;font-weight:500;color:#555;position:relative;transition:color .3s}.tab-button.active{color:#6e45e2}.tab-button.active:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:3px;background-color:#6e45e2}.content,.content-panel{width:100%}.fragment-controls{display:flex;gap:15px;align-items:center;margin-bottom:20px;padding:10px;background-color:#f9f9f9;border-radius:8px}.fragment-controls input[type=text],.fragment-controls select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.protein-controls{display:flex;gap:15px;align-items:center;margin-bottom:20px;padding:10px;background-color:#f9f9f9;border-radius:8px}.protein-controls input[type=text],.protein-controls select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.protein-controls select{min-width:200px}.fragment-card{display:flex;flex-direction:column;justify-content:space-between}.fragment-info{font-size:12px;color:#555;padding:0 15px 10px}.fragment-info p{margin:4px 0}.ccd-link{color:#3a3a9e;text-decoration:underline;cursor:pointer}.ccd-link:hover{color:#6e45e2}.add-to-library-btn{background-color:#4caf50;color:#fff;border:none;padding:8px 12px;text-align:center;text-decoration:none;display:inline-block;font-size:12px;margin:10px 15px;cursor:pointer;border-radius:4px;width:calc(100% - 30px);box-sizing:border-box;transition:background-color .3s}.add-to-library-btn:hover{background-color:#45a049}.add-to-library-btn.added{background-color:#aaa;cursor:not-allowed}.protein-thumbnail{width:80px;height:80px;object-fit:cover;border-radius:4px}.render-error{text-align:center;color:#999;font-size:12px;padding:20px}.toggle-switch{display:flex;align-items:center;gap:8px}.toggle-switch-checkbox{height:0;width:0;visibility:hidden}.toggle-switch-label{cursor:pointer;text-indent:-9999px;width:40px;height:22px;background:gray;display:block;border-radius:100px;position:relative}.toggle-switch-label:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:18px;transition:.3s}.toggle-switch-checkbox:checked+.toggle-switch-label{background:#6e45e2}.toggle-switch-checkbox:checked+.toggle-switch-label:after{left:calc(100% - 2px);transform:translate(-100%)}.toggle-switch-label:active:after{width:24px}.content h2{margin:0 0 20px;color:#333;font-weight:500}.database-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.database-header h2{margin:0;color:#333;font-weight:500}.add-btn{background:#6e45e2;color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:24px;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 4px #6e45e24d}.add-btn:hover{background:#5a37c7;transform:scale(1.05);box-shadow:0 4px 8px #6e45e266}.header-buttons{display:flex;gap:10px;align-items:center}.delete-all-btn{background:#e74c3c;color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:18px;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 4px #e74c3c4d}.delete-all-btn:hover{background:#c0392b;transform:scale(1.05);box-shadow:0 4px 8px #e74c3c66}.delete-all-btn:active{transform:scale(.95)}.export-btn{background:#3498db;color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 4px #3498db4d}.export-btn:hover{background:#2980b9;transform:scale(1.05);box-shadow:0 4px 8px #3498db66}.export-btn:active{transform:scale(.95)}.add-fragment-btn{background-color:#28a745;color:#fff;border:none;border-radius:5px;padding:10px;margin-top:10px;cursor:pointer;width:100%;font-weight:500;transition:background-color .2s}.add-fragment-btn:hover{background-color:#218838}.fragment-info p{margin:5px 0;font-size:13px;word-break:break-all}.viewer-container .loading,.viewer-container .error{display:flex;align-items:center;justify-content:center;height:100%;color:#888;font-size:14px}.viewer-container .error{color:#d32f2f}.fragment-canvas{border:1px solid #eee;border-radius:4px}.add-btn:active{transform:scale(.95)}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100vw;height:100vh;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);margin:0;padding:0}.modal-content{background-color:#fff;margin:2% auto;padding:0;border-radius:12px;width:90%;max-width:500px;box-shadow:0 10px 30px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid #eee;background:linear-gradient(90deg,#6e45e2,#88d3ce);color:#fff;border-radius:12px 12px 0 0}.modal-header h3{margin:0;font-weight:500}.close{color:#fff;font-size:28px;font-weight:700;cursor:pointer;line-height:1;opacity:.8;transition:opacity .3s}.close:hover{opacity:1}.modal-body{padding:25px}.modal-body label{display:block;margin-top:15px;margin-bottom:5px;font-weight:500;color:#333}.modal-body input[type=text],.modal-body textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;box-sizing:border-box}.modal-body textarea{resize:vertical;min-height:80px}.modal-body input[type=text]:focus{outline:none;border-color:#6e45e2;box-shadow:0 0 0 3px #6e45e21a}.instance-inputs{display:flex;gap:10px;margin-top:5px}.instance-inputs input{flex:1}.help-text{margin:10px 0 0;font-size:14px;color:#666;font-style:italic}.error-text{margin:5px 0 0;font-size:14px;color:#f44336}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background-color:#f8f9fa;border-top:1px solid #e0e0e0;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.modal-footer div{display:flex;gap:10px}.btn-primary,.btn-secondary{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-primary{background:#6e45e2;color:#fff}.btn-primary:hover{background:#5a37c7}.btn-primary:disabled{background:#bfaaf7;cursor:not-allowed}.btn-secondary{background:#e0e0e0;color:#666}.btn-secondary:hover{background:#d0d0d0}.details-modal{max-width:900px;width:95%;max-height:98vh;height:96vh;overflow-y:auto;margin:1% auto}.details-body{padding:0}.details-section{padding:20px 25px;border-bottom:1px solid #eee}.details-section:last-child{border-bottom:none}.details-section h4{margin:0 0 15px;color:#6e45e2;font-weight:500;font-size:16px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-header h4{margin:0;color:#6e45e2;font-weight:500;font-size:16px}.add-all-btn{background:#6e45e2;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #6e45e233}.add-all-btn:hover{background:#5a37c7;transform:translateY(-1px);box-shadow:0 4px 8px #6e45e24d}.add-all-btn:active{transform:translateY(0);box-shadow:0 2px 4px #6e45e233}.add-all-btn:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.info-item{display:flex;flex-direction:column;gap:5px}.info-item label{font-weight:500;color:#555;font-size:14px}.info-item span{color:#333;font-size:14px;padding:8px 12px;background:#f8f9fa;border-radius:4px;border:1px solid #e9ecef}.details-viewer{width:100%;height:400px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;position:relative;display:flex;align-items:center;justify-content:center;color:#666}.json-container{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;max-height:400px;overflow-y:auto}.json-container pre{margin:0;padding:15px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;color:#333;white-space:pre-wrap;word-wrap:break-word}#protein-results-table .pdb-title{white-space:normal;word-wrap:break-word;font-size:13px}.similar-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px}.similar-table th,.similar-table td{padding:12px 8px;text-align:left;border-bottom:1px solid #e0e0e0;vertical-align:top}.similar-table th{background-color:#f8f9fa;font-weight:600;color:#555;border-bottom:2px solid #6e45e2}.similar-table tbody tr:hover{background-color:#f8f9fa}.similar-table .type-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:capitalize}.similar-table .type-stereoisomer{background-color:#e3f2fd;color:#1976d2}.similar-table .type-scaffold{background-color:#f3e5f5;color:#7b1fa2}.similar-table .type-similar{background-color:#e8f5e8;color:#2e7d32}.similar-table .ccd-code{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:500;color:#4a00e0;cursor:pointer;text-decoration:none;transition:color .2s}.ccd-code:hover{color:#8e2de2;text-decoration:underline}.similar-table .ligand-name{max-width:300px;word-wrap:break-word;line-height:1.3}.similar-table .structure-2d{width:100px;text-align:center;padding:8px 4px}.similar-table .structure-2d img{width:80px;height:80px;object-fit:contain;border:1px solid #e0e0e0;border-radius:4px;background:#fff}.similar-table .structure-2d .loading{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;font-size:11px;color:#666}.similar-table .structure-2d .error{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:#fff5f5;border:1px solid #fed7d7;border-radius:4px;font-size:11px;color:#c53030}.similar-table .match-info{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;color:#666}.no-similar-ligands{text-align:center;color:#666;font-style:italic;padding:20px}.pdb-entries-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px;table-layout:fixed}#protein-results-table-container{overflow-x:auto}.pdb-entries-table th,.pdb-entries-table td{padding:6px 4px;text-align:left;border-bottom:1px solid #e0e0e0;vertical-align:middle}.pdb-entries-table th{background-color:#f8f9fa;font-weight:600;color:#555;border-bottom:2px solid #6e45e2}.pdb-entries-table th:nth-child(1){width:12%}#pdb-entries-table th:nth-child(2){width:48%}#pdb-entries-table th:nth-child(3){width:12%}#pdb-entries-table th:nth-child(4){width:13%}#pdb-entries-table th:nth-child(5){width:15%}#protein-results-table th:nth-child(1){width:5%}#protein-results-table th:nth-child(2){width:5%}#protein-results-table th:nth-child(3){width:20%}#protein-results-table th:nth-child(4){width:10%}#protein-results-table th:nth-child(5){width:10%}#protein-results-table th:nth-child(6){width:30%}#protein-results-table th:nth-child(7){width:15%}.pdb-entries-table tbody tr:hover{background-color:#f8f9fa}.pdb-entries-table .pdb-id{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:600;color:#6e45e2;cursor:pointer;text-transform:uppercase}.pdb-entries-table .pdb-id:hover{text-decoration:underline}#protein-results-table .pdb-id-link{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:600;color:#6e45e2;cursor:pointer;text-transform:uppercase;text-decoration:none}#protein-results-table .pdb-id-link:hover{text-decoration:underline}.bound-ligands-cell{vertical-align:middle}.bound-ligands-container{display:flex;flex-wrap:nowrap;align-items:center;gap:5px}.bound-ligand-img{width:80px;height:80px;object-fit:contain;border:1px solid #e0e0e0;border-radius:4px;background-color:#fff;transition:transform .2s}.bound-ligand-img:hover{transform:scale(2.5);z-index:10;position:relative}.ligand-img-container{position:relative;display:inline-block}.ligand-img-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity .2s}.ligand-img-container:hover .ligand-img-overlay{opacity:1}.ligand-action-btn{background:#fff;border:none;border-radius:50%;width:30px;height:30px;font-size:18px;cursor:pointer;margin:0 5px;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 5px #0003}.more-ligands-indicator{font-size:12px;font-weight:500;color:#666;background-color:#f0f0f0;padding:3px 6px;border-radius:4px;cursor:default}.pdb-entries-table .pdb-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.pdb-entries-table .pdb-resolution{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;color:#666}.pdb-entries-table .pdb-date{font-size:13px;color:#666}.pdb-entries-table .pdb-method{font-size:12px;background:#e8f4fd;color:#1976d2;padding:2px 6px;border-radius:8px;display:inline-block}.pdb-entries-table .method-xray{background:#e8f4fd;color:#1976d2}.pdb-entries-table .method-nmr{background:#f3e5f5;color:#7b1fa2}.pdb-entries-table .method-em{background:#e8f5e8;color:#2e7d32}.pdb-entries-table .method-other{background:#fff3e0;color:#f57c00}.no-pdb-entries{text-align:center;color:#666;font-style:italic;padding:20px}.view-buttons-cell{display:flex;gap:4px;flex-wrap:nowrap;align-items:center}.view-structure-btn{border:none;border-radius:3px;padding:2px 4px;font-size:8px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex:1;text-align:center;max-width:60px}.rcsb-btn{background:#6e45e2;color:#fff;box-shadow:0 1px 3px #6e45e233}.rcsb-btn:hover{background:#5a37c7;transform:translateY(-1px);box-shadow:0 2px 6px #6e45e24d}.pdbe-btn{background:#2e7d32;color:#fff;box-shadow:0 1px 3px #2e7d3233}.pdbe-btn:hover{background:#1b5e20;transform:translateY(-1px);box-shadow:0 2px 6px #2e7d324d}.view-structure-btn:active{transform:translateY(0)}@media (max-width: 768px){.details-modal{width:98%;margin:5% auto}.info-grid{grid-template-columns:1fr}.details-viewer{height:250px}.similar-table{font-size:12px}.similar-table th,.similar-table td{padding:8px 4px}.similar-table .ligand-name{max-width:200px}}.molecule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.molecule-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px;box-shadow:0 2px 4px #0000000d;transition:box-shadow .3s;display:flex;flex-direction:column;justify-content:space-between;position:relative}.drag-handle{position:absolute;top:8px;left:50%;transform:translate(-50%);cursor:grab;color:#ccc;font-size:16px;padding:2px 6px;border-radius:3px;transition:color .3s;-webkit-user-select:none;user-select:none;z-index:10}.drag-handle:hover{color:#6e45e2;background-color:#6e45e21a}.drag-handle:active{cursor:grabbing}.delete-btn{position:absolute;top:8px;right:8px;cursor:pointer;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-user-select:none;user-select:none;z-index:10;opacity:.5;background-color:transparent;color:#757575}.delete-btn:hover{opacity:1;background-color:#ffebee;color:#d32f2f;transform:scale(1.1)}.delete-btn:active{transform:scale(.9);background-color:#ffcdd2}.molecule-card:hover .delete-btn{opacity:.7}.delete-btn svg{pointer-events:none}.download-btn{position:absolute;top:8px;right:40px;cursor:pointer;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-user-select:none;user-select:none;z-index:10;opacity:.5;background-color:transparent;color:#757575}.download-btn:hover{opacity:1;background-color:#e3f2fd;color:#1976d2;transform:scale(1.1)}.download-btn:active{transform:scale(.9);background-color:#bbdefb}.molecule-card:hover .download-btn{opacity:.7}.download-btn svg{pointer-events:none}.compare-btn{position:absolute;top:8px;right:72px;cursor:pointer;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-user-select:none;user-select:none;z-index:10;opacity:.5;background-color:transparent;color:#757575}.compare-btn:hover{opacity:1;background-color:#e8f5e9;color:#388e3c;transform:scale(1.1)}.compare-btn:active{transform:scale(.9);background-color:#c8e6c9}.molecule-card:hover .compare-btn{opacity:.7}.compare-btn svg{pointer-events:none}.molecule-card.dragging{opacity:.5;transform:rotate(5deg);box-shadow:0 5px 15px #0000004d}.molecule-card:hover{box-shadow:0 4px 8px #0000001a}.molecule-card h3{margin:0 0 5px;font-size:14px;font-weight:500;color:#6e45e2}.molecule-card .formula{margin:0 0 10px;font-size:12px;color:#888}.molecule-card .viewer-container{width:100%;height:200px;position:relative;border:1px solid #eee;border-radius:4px}.fragment-card .viewer-container{width:100%;height:150px;position:relative;overflow:hidden;border-radius:8px;display:flex;align-items:center;justify-content:center}.fragment-card .viewer-container svg{max-width:100%;max-height:100%;border-radius:8px;display:block}.molecule-card .info{margin-top:10px;font-size:12px;color:#666;display:flex;justify-content:space-between}.molecule-card p{margin:10px 0 0;font-size:14px;color:#666}.loading-indicator{grid-column:1 / -1;text-align:center;padding:40px;font-size:18px;color:#888}.pdb-details-modal{max-width:900px;width:90%}.pdb-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}#pdb-viewer-container{height:400px;margin-top:15px;border:1px solid #e0e0e0;border-radius:8px;position:relative}.pdb-info-column,.pdb-abstract-column{display:flex;flex-direction:column;gap:15px}.pdb-info-item{background:#f8f9fa;padding:10px;border-radius:6px;border-left:3px solid #2e7d32}.pdb-info-label{font-size:12px;color:#666;font-weight:500;margin-bottom:4px}.pdb-info-value,.pdb-abstract-text{font-size:14px;color:#333;line-height:1.4}.pdb-info-value a{color:#6e45e2;text-decoration:none}.pdb-info-value a:hover{text-decoration:underline}.pdb-abstract-text{text-align:justify}.tag-list{display:flex;flex-wrap:wrap;gap:5px;padding-top:5px}.tag-item{background-color:#e8f5e8;color:#2e7d32;padding:3px 8px;border-radius:12px;font-size:12px;font-weight:500}.styled-like-ligand .modal-header{background:linear-gradient(45deg,#6e45e2,#88d3ce);color:#fff}.styled-like-ligand .details-section h4,.styled-like-ligand .pdb-info-label{color:#6e45e2;font-weight:500;font-size:14px}.styled-like-ligand .pdb-info-item{background:none;padding:0;border-left:none}.styled-like-ligand .pdb-info-value{background:#fff;padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 1px 2px #0000000d;margin-top:4px;font-size:14px}.styled-like-ligand .pdb-details-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px 20px}.pdb-external-links{display:flex;justify-content:flex-end;gap:10px;margin-top:15px}.similar-table th:last-child,.similar-table td:last-child{width:60px;text-align:center}.add-ligand-btn{background-color:#6e45e2;color:#fff;border:none;border-radius:50%;width:28px;height:28px;font-size:20px;line-height:28px;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.add-ligand-btn:hover{background-color:#5838b4}.disclaimer-modal{z-index:10000;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}.disclaimer-modal .modal-content{max-width:500px;width:90%;max-height:80vh;overflow-y:auto;animation:fadeInScale .3s ease-out;margin:0;position:relative}.disclaimer-modal .modal-header{background:linear-gradient(135deg,#ff8a00,#ffd600);color:#fff;text-align:center;padding:15px 20px;border-radius:12px 12px 0 0;border-bottom:none}.disclaimer-modal .modal-header h3{margin:0;font-size:18px;font-weight:600}.disclaimer-modal .modal-body{padding:20px}.disclaimer-modal .modal-body p{margin-bottom:15px;line-height:1.5;font-size:14px}.disclaimer-modal .modal-body p:first-child{font-size:15px;color:#d63031;font-weight:600}.disclaimer-modal .modal-body p:last-child{margin-bottom:0;font-style:italic;color:#666}.disclaimer-modal .modal-body a{color:#0984e3;text-decoration:none;word-break:break-all}.disclaimer-modal .modal-body a:hover{text-decoration:underline}.disclaimer-modal .modal-footer{justify-content:center;padding:15px 20px;border-top:1px solid #eee;background-color:#f8f9fa;border-radius:0 0 12px 12px;margin:0}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (max-width: 600px){.disclaimer-modal{padding:10px}.disclaimer-modal .modal-content{width:95%;margin:0;max-height:90vh}.disclaimer-modal .modal-body{padding:15px}.disclaimer-modal .modal-body p{font-size:13px}}@media (max-width: 600px){header{padding:15px 20px}header .author{position:static;display:block;margin-top:10px;text-align:center}.tabs{flex-direction:column}.tab-button{width:100%}.fragment-controls,.protein-controls{flex-direction:column;align-items:stretch}.fragment-controls input[type=text],.fragment-controls select,.protein-controls select,.protein-controls input[type=text],.protein-controls button{width:100%}#protein-results-table,#protein-results-table thead,#protein-results-table tbody,#protein-results-table th,#protein-results-table td,#protein-results-table tr{display:block}#protein-results-table thead{display:none}#protein-results-table tr{margin-bottom:15px;border:1px solid #e0e0e0;border-radius:8px;padding:10px;background-color:#fff}#protein-results-table td{border:none;position:relative;padding-left:110px;white-space:normal}#protein-results-table td:before{content:attr(data-label);position:absolute;left:10px;top:10px;font-weight:600;width:100px;white-space:pre-wrap}#protein-results-table .view-buttons-cell{display:flex;gap:8px;margin-top:8px}}.theme-toggle{position:absolute;top:15px;left:20px;background:transparent;border:none;color:#fff;cursor:pointer}.theme-toggle .material-icons{font-size:24px}body.dark-mode{background-color:#121212;color:#eee}body.dark-mode header{background:linear-gradient(90deg,#333,#555)}body.dark-mode .theme-toggle{color:#ffd54f}body.dark-mode .tabs{border-bottom-color:#444}body.dark-mode .tab-button{color:#bbb}body.dark-mode .tab-button.active{color:#fff}body.dark-mode .tab-button.active:after{background-color:#fff}body.dark-mode .fragment-controls,body.dark-mode .protein-controls{background-color:#2c2c2c}body.dark-mode .database-header h2{color:#eee}body.dark-mode .molecule-card{background:#151515;border-color:#333;box-shadow:0 2px 4px #00000080}body.dark-mode .molecule-card h3{color:#88d3ce}body.dark-mode .molecule-card .formula,body.dark-mode .molecule-card .info,body.dark-mode .molecule-card p{color:#ccc}body.dark-mode .viewer-container,body.dark-mode .molecule-viewer,body.dark-mode .details-viewer{background:#e0e0e0}
