:root{color-scheme:dark;--bg: #0a0a0f;--panel: #12131c;--border: #232535;--accent: #5eead4;--warn: #f59e0b;--text: #e7e9f2;--text-dim: #8b8ea3}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.header{padding:1rem 1.25rem calc(.75rem + env(safe-area-inset-top)) 1.25rem;padding-top:max(1rem,env(safe-area-inset-top));border-bottom:1px solid var(--border)}.header h1{margin:0;font-size:1.25rem;letter-spacing:-.01em}.subtitle{margin:.15rem 0 0;color:var(--text-dim);font-size:.85rem}.main{flex:1;padding:1rem 1.25rem 2rem;display:flex;flex-direction:column;gap:1rem}.dropzone{border:1px dashed var(--border);border-radius:14px;padding:1.5rem 1rem;text-align:center;color:var(--text-dim);cursor:pointer;background:var(--panel)}.dropzone:active{opacity:.8}.error{color:var(--warn);background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:10px;padding:.75rem 1rem;font-size:.9rem}.viewer{height:46vh;min-height:300px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:radial-gradient(circle at 50% 30%,#14162200,#0a0a0f 70%)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1rem 1.1rem}.panel h2{margin:0 0 .75rem;font-size:1rem;color:var(--accent)}.report-grid{display:grid;grid-template-columns:auto 1fr;gap:.35rem .9rem;margin:0 0 .75rem;font-size:.88rem}.report-grid dt{color:var(--text-dim)}.report-grid dd{margin:0}.report-grid dd.ok{color:var(--accent)}.report-grid dd.warn{color:var(--warn)}.link-btn{background:none;border:none;color:var(--accent);font-size:.85rem;padding:0;margin-bottom:.5rem;cursor:pointer}.bone-list{max-height:200px;overflow-y:auto;background:#060609;border-radius:8px;padding:.6rem;font-size:.75rem;color:var(--text-dim);margin:0 0 .75rem}.export-btn{width:100%;background:var(--accent);color:#06110f;border:none;border-radius:10px;padding:.75rem;font-weight:600;font-size:.95rem;cursor:pointer}.export-btn:active{opacity:.85}.hint{color:var(--text-dim);font-size:.8rem;margin:.5rem 0 0;line-height:1.4}.feature-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.feature-list li{border-top:1px solid var(--border);padding-top:.6rem;font-size:.88rem}.feature-list li:first-child{border-top:none;padding-top:0}
