:root{font-family:Arial,Helvetica,sans-serif;color:#111;background:#fff;--border: #cfcfcf;--muted: #666;--selected: #e9f2ff;--hover: #f5f5f5}html,body,#app{margin:0;height:100%}body{height:100vh;background:#fff;overflow:hidden}button,input,table{font:inherit}.shell{box-sizing:border-box;height:100vh;padding:16px;display:flex;flex-direction:column;gap:16px;overflow:hidden}.topbar{display:flex;align-items:flex-start;gap:16px}h1,h2,h3,p{margin:0}h1{font-size:24px;font-weight:600}.upload-zone{position:relative;display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:4px;background:#f7f7f7;cursor:pointer}.upload-zone strong{font-size:18px;font-weight:600}.upload-zone.drag-active{background:#eef5ff;border-color:#7aa7d8}.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.banner{padding:10px 12px;border:1px solid var(--border);background:#f7f7f7;flex:0 0 auto}.banner.error{border-color:#d9a8a8;color:#8a1f1f;background:#fff3f3}.viewer{display:grid;grid-template-rows:minmax(280px,48vh) minmax(240px,1fr);gap:16px;flex:1 1 auto;min-height:0;overflow:hidden}.pane{display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);background:#fff;overflow:hidden}.pane-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 12px;border-bottom:1px solid var(--border)}.pane-header p{margin-top:4px;color:var(--muted);font-size:14px}.table-wrap{min-height:0;overflow:auto;flex:1 1 auto}table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;border-bottom:1px solid #e5e5e5;text-align:left;white-space:nowrap}th{position:sticky;top:0;background:#f3f3f3;font-size:13px;font-weight:600}tbody tr{cursor:pointer;scroll-margin-top:36px}tbody tr:hover{background:var(--hover)}tbody tr.selected{background:var(--selected)}.empty-state{color:var(--muted)}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;box-sizing:border-box;min-height:0;flex:1 1 auto;overflow:hidden}.detail-card{display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);overflow:hidden}.detail-card h3{padding:8px 10px;border-bottom:1px solid var(--border);background:#f3f3f3;font-size:14px}pre{margin:0;padding:10px;overflow:auto;font-family:Courier New,Courier,monospace;font-size:13px;line-height:1.4;white-space:pre-wrap;word-break:break-word}@media(max-width:820px){.shell{padding:12px}.topbar,.pane-header{flex-direction:column;align-items:stretch}.viewer{grid-template-rows:minmax(260px,44vh) minmax(360px,1fr)}.details-grid{grid-template-columns:1fr}th,td{padding:10px 12px}}
