:root{--border:#d8dde3;--bg-soft:#f6f8fa;--accent:#ff8c00;--text:#1b1f24;--muted:#5b6671;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:#fff;margin:0}.app{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.app__header h1{margin:0 0 .35rem;font-size:1.5rem}.app__header p{color:var(--muted);max-width:70ch;margin:0 0 1rem;line-height:1.45}.controls{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:.85rem;margin-bottom:1rem;padding:.85rem;display:flex}.controls__field{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.controls__field input{border:1px solid var(--border);border-radius:5px;width:8rem;padding:.35rem .5rem;font-size:.95rem}.controls__actions{gap:.5rem;margin-left:auto;display:flex}button{font:inherit;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;padding:.45rem .9rem}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:10px;margin-bottom:1.25rem;padding:1.5rem;transition:border-color .15s,background .15s}.dropzone--active{border-color:var(--accent);background:#fff6ec}.dropzone__title{margin:0 0 .4rem;font-weight:600}.dropzone__hint{color:var(--muted);margin:0;font-size:.82rem}code{background:var(--bg-soft);border-radius:4px;padding:.05rem .3rem;font-size:.85em}.errors{color:#9a2222;background:#fdeeee;border:1px solid #f0b4b4;border-radius:8px;margin:0 0 1rem;padding:.6rem .85rem;font-size:.88rem;list-style:none}.empty,.summary{color:var(--muted)}.card{border:1px solid var(--border);border-radius:10px;margin-bottom:1rem;overflow:hidden}.card__header{background:var(--bg-soft);text-align:left;border:none;border-radius:0;align-items:baseline;gap:.6rem;width:100%;padding:.8rem 1rem;display:flex}.card__chevron{color:var(--muted)}.card__header h2{margin:0;font-size:1.05rem}.card__meta{color:var(--muted);font-size:.85rem}.card__body{padding:1rem}.card__views{grid-template-columns:minmax(300px,1fr) minmax(300px,1fr) minmax(180px,240px);align-items:start;gap:1rem;display:grid}.molecule2d{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.25rem}.molecule2d svg{width:100%;height:auto;display:block}.card__viewer3d{flex-direction:column;gap:.5rem;display:flex}.molecule3d{border:1px solid var(--border);border-radius:8px;width:100%;min-width:280px;height:320px;position:relative;overflow:hidden}.card__conformer{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.78rem;display:flex}.card__conformer select{font:inherit;border:1px solid var(--border);border-radius:5px;padding:.3rem}.shift-table,.population-table{border-collapse:collapse;width:100%;font-size:.85rem}.shift-table th,.shift-table td,.population-table th,.population-table td{border-bottom:1px solid var(--border);text-align:right;padding:.25rem .6rem}.shift-table th:first-child,.shift-table td:first-child,.population-table th:first-child,.population-table td:first-child{text-align:left}.shift-table tbody{max-height:320px;display:block;overflow-y:auto}.shift-table thead,.shift-table tbody tr{table-layout:fixed;width:100%;display:table}.shift-table__row{cursor:default}.shift-table__row--active{background:#fff1de}.card__populations{margin-top:1rem;font-size:.85rem}.card__populations summary{cursor:pointer;color:var(--muted)}.population-table{max-width:420px;margin-top:.5rem}.labeling__header{background:var(--bg-soft);align-items:baseline;gap:.6rem;padding:.8rem 1rem;display:flex}.labeling__header h2{margin:0;font-size:1.05rem}.labeling__hint{color:var(--muted);max-width:70ch;margin:0 0 1rem;font-size:.85rem;line-height:1.45}kbd{border:1px solid var(--border);background:#fff;border-bottom-width:2px;border-radius:4px;padding:.02rem .3rem;font-family:inherit;font-size:.8em}.labeling__views{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);align-items:start;gap:1rem;margin-bottom:1rem;display:grid}.labeling__figure{margin:0}.labeling__figure figcaption{color:var(--muted);margin-bottom:.3rem;font-size:.8rem}.labeling__mapping-head{justify-content:space-between;align-items:center;gap:.6rem;max-width:360px;margin-bottom:.4rem;display:flex}.labeling__mapping-head h3{margin:0;font-size:.95rem}.labeling__empty{color:var(--muted);margin:0;font-size:.85rem}.mapping-table{max-width:360px}@media (width<=880px){.card__views,.labeling__views{grid-template-columns:1fr}}
