*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0f172a;color:#e5e7eb}.app{max-width:1200px;margin:0 auto;padding:24px 16px 40px}.header{margin-bottom:24px}.header h1{margin:0 0 8px;font-size:28px}.header p{margin:0;color:#9ca3af}.upload-section{background:#020617;border-radius:12px;padding:16px 20px;margin-bottom:20px;border:1px solid #1f2937}.upload-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}input[type=file]{color:#e5e7eb}button{background:#2563eb;border:none;color:#fff;padding:8px 14px;border-radius:999px;cursor:pointer;font-size:14px}button:disabled{background:#4b5563;cursor:not-allowed}.error{margin-top:10px;color:#fecaca}.summary-section{margin-bottom:20px}.summary-section h2{margin-bottom:12px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.summary-card{background:#020617;border-radius:10px;padding:12px 14px;border:1px solid #1f2937;display:flex;flex-direction:column;gap:4px}.summary-card span{font-size:12px;color:#9ca3af}.summary-card strong{font-size:18px}.main-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px}.graph-section,.table-section{background:#020617;border-radius:12px;padding:14px 16px 18px;border:1px solid #1f2937}.graph-section h2,.table-section h2{margin-top:0;margin-bottom:10px}.placeholder{padding:40px 12px;text-align:center;color:#6b7280}.graph-section-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;margin:0;border-radius:0;border-left:none;border-right:none}.graph-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px;font-size:12px;color:#9ca3af}.graph-toolbar-spacer{flex:1}.chip{background:#020617;border-radius:999px;border:1px solid #1f2937;padding:4px 10px;font-size:12px;cursor:pointer;color:#e5e7eb}.chip-active{background:#2563eb;border-color:#2563eb}.table-wrapper{max-height:260px;overflow:auto;border-radius:8px;border:1px solid #1f2937;margin-bottom:12px}table{width:100%;border-collapse:collapse;font-size:13px}thead{position:sticky;top:0;background:#020617}th,td{padding:8px 10px;text-align:left;border-bottom:1px solid #111827}th{font-weight:500;color:#9ca3af}tr:nth-child(2n) td{background:#020617}.row-clickable{cursor:pointer}.row-active td{background:#111827}@media(max-width:900px){.main-layout{grid-template-columns:minmax(0,1fr)}}
