:root{--primary: #2563eb;--primary-hover: #1d4ed8;--danger: #dc2626;--danger-hover: #b91c1c;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-600: #4b5563;--gray-800: #1f2937;--gray-900: #111827}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-50);color:var(--gray-900);line-height:1.6;min-height:100vh}body:after{content:"";position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;height:300px;background:url(/ChemTable.png) no-repeat center bottom;background-size:contain;pointer-events:none;z-index:-1;opacity:.4}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--gray-200);margin-bottom:2rem}.header-brand{display:flex;align-items:center;gap:1rem}.header-logo{height:32px;width:auto}.header h1{font-family:Fredoka,sans-serif;font-size:1.6rem;font-weight:500;margin:0;color:var(--gray-700);letter-spacing:.02em}.header-actions{display:flex;align-items:center;gap:1rem}.user-email{color:var(--gray-600);font-size:.875rem}.btn{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--gray-200);color:var(--gray-800)}.btn-secondary:hover{background:var(--gray-300)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-small{padding:.25rem .5rem;font-size:.75rem}.btn-icon{padding:.5rem;display:inline-flex;align-items:center;justify-content:center}.btn-icon svg{display:block}.loading,.login-container,.empty-state{text-align:center;padding:4rem 1rem}.login-container p{margin-bottom:1.5rem;color:var(--gray-600)}.error{background:#fef2f2;border:1px solid #fecaca;color:var(--danger);padding:.75rem 1rem;border-radius:.375rem;margin-bottom:1rem}.portal{padding-bottom:2rem}.link-group{margin-bottom:2rem}.group-title{font-size:1.125rem;color:var(--gray-800);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary)}.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.link-card{display:flex;flex-direction:column;padding:1rem;background:#fff;border:1px solid var(--gray-200);border-radius:.5rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.link-card:hover{border-color:var(--primary);box-shadow:0 4px 6px -1px #0000001a}.link-name{font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.link-url{font-size:.75rem;color:var(--gray-600)}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.link-form{background:#fff;border:1px solid var(--gray-200);border-radius:.5rem;padding:1.5rem;margin-bottom:2rem}.link-form h3,.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.form-group input{width:100%;padding:.5rem;border:1px solid var(--gray-300);border-radius:.375rem;font-size:.875rem}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-actions{display:flex;gap:.5rem}.links-table{width:100%;background:#fff;border:1px solid var(--gray-200);border-radius:.5rem;border-collapse:collapse;overflow:hidden}.links-table th,.links-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--gray-200)}.links-table th{background:var(--gray-50);font-size:.75rem;text-transform:uppercase;color:var(--gray-600)}.links-table tbody tr:last-child td{border-bottom:none}.links-table .empty{text-align:center;color:var(--gray-600)}.url-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.url-cell a{color:var(--primary);text-decoration:none}.url-cell a:hover{text-decoration:underline}.actions-cell{white-space:nowrap}.actions-cell .btn{margin-right:.25rem}
