:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#213547;background-color:#fff}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{box-sizing:border-box;min-width:0;max-width:100%;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:12px;height:100vh}.app{display:flex;flex-direction:column;gap:12px;align-items:start;height:100%}.panel{box-sizing:border-box;min-width:0}.controls{display:grid;width:100%;gap:8px}.controlsRow{display:flex;justify-content:space-between;gap:8px}.field{display:grid;gap:4px}.actions{display:flex;margin-left:auto;gap:8px}.btnOrange{background:linear-gradient(180deg,#ffedd5,#fed7aa);color:#9a3412;border:1px solid #fdba74}.btnOrange:hover{border-color:#fb923c}.iconBtn{padding:.5em .7em;font-size:16px}.presetChips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.presetLabel{color:#6b7280;margin-right:4px}.chip{background:#f4f6ff;border:1px solid #dfe5ff;padding:4px 8px;border-radius:999px;font-size:12px}.chip:hover{border-color:#aab6ff}.main{width:100%;flex-grow:1;display:flex;flex-direction:column}.chartContainer{box-sizing:border-box;min-width:0;max-width:100%;overflow:hidden;min-height:320px;flex-grow:1}.dropzone{display:grid;place-items:center;padding:48px;border:2px dashed #c7cfe3;border-radius:12px;background:linear-gradient(180deg,#f7f9ff,#fff);color:#374151;cursor:pointer;transition:box-shadow .2s ease,border-color .2s ease,transform .05s ease;min-height:360px;width:100%;height:100%}.dropzone:hover{border-color:#8da2fb;box-shadow:0 6px 24px #646cff26}.dropzone.dragover{border-color:#646cff;box-shadow:0 8px 28px #646cff40}.dz-content{display:grid;place-items:center;gap:6px}.dz-icon{font-size:42px}.dz-title{font-size:18px;font-weight:600}.dz-subtle{color:#6b7280}.dz-hint{color:#9ca3af;font-size:12px}.spinner{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#646cff;border-radius:999px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.statsPanel{display:grid;gap:12px;padding:12px 16px;border:1px solid #e5e7eb;border-radius:12px;background:linear-gradient(180deg,#fff,#f9fbff)}.statsHeader{display:flex;align-items:center;justify-content:space-between}.statsTitle{display:inline-flex;align-items:center;gap:8px;font-weight:600}.badges{display:inline-flex;gap:8px}.badge{display:inline-flex;gap:6px;align-items:center;padding:4px 8px;border-radius:999px;background:#f3f4f6;color:#374151;font-size:12px}.badge.ok{background:#ecfdf5;color:#065f46}.badge.warn{background:#fff7ed;color:#9a3412}.statsGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.statTile{border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;background:#fff}.statLabel{color:#6b7280;font-size:12px}.statValue{font-size:18px;font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}a:hover{color:#747bff}
