.graph-tool{--tool-action:hsl(var(--primary));--tool-action-hover:hsl(230 82% 53%);--tool-action-foreground:hsl(var(--primary-foreground));--tool-ink:hsl(var(--foreground));--tool-line:hsl(var(--border));--tool-muted:hsl(var(--muted-foreground));--tool-soft:hsl(var(--muted));--tool-surface:hsl(var(--card));--tool-surface-foreground:hsl(var(--card-foreground));--tool-raised:hsl(var(--background));--tool-focus:hsl(var(--ring)/.25);max-width:1240px;margin:auto;padding:0 24px 104px;color:var(--tool-ink)}.dark .graph-tool{--tool-action-hover:hsl(230 90% 81%);--tool-focus:hsl(var(--ring)/.7)}.dark .graph-tool .paste-overlay{background:hsl(222 47% 4%/.75)}.dark .graph-tool .paste-modal{box-shadow:0 24px 64px hsl(222 47% 4%/.5)}.dark .graph-tool .paste-modal textarea,.dark .graph-tool .settings-body input,.dark .graph-tool .settings-body select{border-color:hsl(var(--input))}.graph-tool .data-actions,.graph-tool .paste-modal>div,.graph-tool .preview-bar,.graph-tool .preview-footer,.graph-tool .settings-body,.graph-tool .settings-top,.graph-tool .tool-heading{display:flex;align-items:center;gap:10px}.graph-tool .tool-heading{justify-content:space-between;margin-bottom:28px}.graph-tool .eyebrow{margin:0 0 11px;color:var(--tool-action);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.graph-tool .tool-heading h2{margin:0;font-size:clamp(1.85rem,3vw,2.5rem);letter-spacing:-.045em;line-height:1.08}.graph-tool .workspace-actions{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:18px;min-height:68px;padding:12px 14px 12px 20px;border:1px solid hsl(var(--primary)/.2);border-radius:16px;background:linear-gradient(105deg,hsl(var(--primary)/.105),hsl(174 72% 40%/.06));box-shadow:0 16px 34px hsl(var(--primary)/.06)}.graph-tool .workspace-actions p{margin:0;color:var(--tool-ink);font-size:.8125rem;font-weight:650}.graph-tool .workspace-action-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.graph-tool .download,.graph-tool .icon-button,.graph-tool .secondary,.graph-tool .text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid var(--tool-line);border-radius:10px;padding:0 14px;background:var(--tool-raised);color:var(--tool-surface-foreground);font-size:.8125rem;font-weight:750;cursor:pointer;transition:.18s ease}.graph-tool .icon-button:hover,.graph-tool .secondary:hover{border-color:hsl(var(--primary)/.5);background:hsl(var(--primary)/.05);transform:translateY(-1px)}.graph-tool .download{border-color:var(--tool-action);background:var(--tool-action);box-shadow:0 7px 16px hsl(var(--primary)/.2);color:var(--tool-action-foreground)}.graph-tool .download:hover{background:var(--tool-action-hover);box-shadow:0 10px 20px hsl(var(--primary)/.26);transform:translateY(-1px)}.graph-tool .icon-button{width:40px;padding:0}.graph-tool .text-button{min-height:32px;padding:0;border:0;color:var(--tool-action);background:transparent}.graph-tool .tool-grid{display:grid;grid-template-columns:minmax(330px,.78fr) minmax(0,1.55fr);gap:20px}.graph-tool .data-panel,.graph-tool .preview-panel,.graph-tool .settings{position:relative;border:1px solid var(--tool-line);border-radius:18px;background:var(--tool-surface);box-shadow:0 18px 44px hsl(222 47% 11%/.07)}.graph-tool .data-panel,.graph-tool .preview-panel{min-width:0;padding:24px}.graph-tool .preview-panel{display:flex;flex-direction:column}.graph-tool .data-panel:before,.graph-tool .preview-panel:before{position:absolute;top:-1px;right:28px;left:28px;height:3px;border-radius:0 0 999px 999px;background:linear-gradient(90deg,var(--tool-action),transparent);content:""}.graph-tool .preview-panel:before{background:linear-gradient(90deg,hsl(var(--primary)),hsl(174 72% 40%),transparent)}.graph-tool .panel-title,.graph-tool .preview-bar{padding-bottom:14px;border-bottom:1px solid var(--tool-line)}.graph-tool .panel-title h3,.graph-tool .preview-bar h3,.graph-tool .settings h3{margin:0;font-size:1rem}.graph-tool .panel-title p,.graph-tool .preview-bar span,.graph-tool .preview-footer span,.graph-tool .settings p{margin:5px 0 0;color:var(--tool-muted);font-size:.75rem}.graph-tool .preview-bar,.graph-tool .preview-footer,.graph-tool .settings-top{justify-content:space-between}.graph-tool .table-wrap{overflow:auto;margin-top:18px;border:1px solid var(--tool-line);border-radius:10px}.graph-tool .table-wrap table{width:100%;min-width:430px;border-collapse:collapse}.graph-tool .table-wrap td,.graph-tool .table-wrap th{padding:9px 8px;border-bottom:1px solid var(--tool-line);text-align:left}.graph-tool .table-wrap th{background:var(--tool-soft);color:var(--tool-muted);font-size:.75rem}.graph-tool .table-wrap td:first-child,.graph-tool .table-wrap th:first-child{position:sticky;left:0;z-index:1;background:var(--tool-surface)}.graph-tool .table-wrap th:first-child{background:var(--tool-soft)}.graph-tool .table-wrap input{width:100%;min-width:55px;border:0;outline:0;background:transparent;color:var(--tool-ink);font:inherit}.graph-tool .table-wrap button{border:0;background:transparent;color:var(--tool-muted);cursor:pointer}.graph-tool .table-wrap th button{float:right}.graph-tool .table-wrap .row-action{width:36px;padding:0;text-align:center}.graph-tool .table-wrap button:disabled{cursor:not-allowed;opacity:.35}.graph-tool .table-wrap tbody tr:hover{background:hsl(var(--accent))}.graph-tool .data-actions{flex-wrap:wrap;margin-top:14px}.graph-tool .chart-shell{aspect-ratio:1.8;overflow:hidden;margin-top:16px;border:1px solid var(--tool-line);border-radius:13px;background:var(--tool-raised)}.graph-tool .chart-shell svg{display:block;width:100%;height:100%}.graph-tool .preview-footer{margin-top:14px}.graph-tool .settings{margin-top:22px;padding:0 24px 24px;overflow:hidden}.graph-tool .settings-top{min-height:88px;margin:0 -24px;padding:0 24px;border-bottom:1px solid var(--tool-line);background:linear-gradient(90deg,hsl(var(--primary)/.055),var(--tool-soft) 42%)}.graph-tool .settings-top [role=tablist]{display:flex;gap:2px;padding:3px;border:1px solid var(--tool-line);border-radius:10px;background:hsl(var(--background)/.8)}.graph-tool .settings-top [role=tablist] button{border:0;border-radius:7px;padding:8px 13px;background:transparent;color:var(--tool-muted);font-size:.8125rem;font-weight:700;cursor:pointer}.graph-tool .settings-top [role=tablist] button.active{background:hsl(var(--primary));box-shadow:0 3px 9px hsl(var(--primary)/.2);color:var(--tool-action-foreground)}.graph-tool .settings-body{flex-wrap:wrap;align-items:end;margin-top:20px}.graph-tool .settings-body label{display:flex;flex-direction:column;gap:7px;min-width:180px;padding:10px;border-radius:11px;background:var(--tool-soft);color:var(--tool-muted);font-size:.75rem;font-weight:650}.graph-tool .settings-body input,.graph-tool .settings-body select{height:38px;border:1px solid var(--tool-line);border-radius:8px;padding:0 10px;background:var(--tool-raised);color:var(--tool-ink)}.graph-tool .settings-body .switch-label{flex-direction:row;align-items:center;gap:10px;height:38px;padding:0;background:transparent}.graph-tool .settings-body .switch-label input{width:17px;height:17px;accent-color:var(--tool-action)}.graph-tool .color-schemes{display:flex;flex-basis:100%;flex-direction:column;gap:8px;color:var(--tool-muted);font-size:.75rem;font-weight:600}.graph-tool .color-schemes>div{display:flex;flex-wrap:wrap;gap:8px}.graph-tool .color-schemes button{display:inline-flex;overflow:hidden;height:28px;padding:0;border:1px solid var(--tool-line);border-radius:7px;background:var(--tool-raised);cursor:pointer}.graph-tool .color-schemes i{display:block;width:24px;height:100%}.graph-tool .paste-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:hsl(var(--foreground)/.55);backdrop-filter:blur(5px)}.graph-tool .paste-modal{position:relative;width:min(580px,100%);padding:28px;border-radius:16px;background:var(--tool-surface);box-shadow:0 24px 64px hsl(var(--foreground)/.28)}.graph-tool .paste-modal h3{margin:0;font-size:1.25rem}.graph-tool .paste-modal p{color:var(--tool-muted);font-size:.8125rem}.graph-tool .paste-modal textarea{width:100%;height:190px;margin:12px 0 18px;border:1px solid var(--tool-line);border-radius:9px;padding:12px;background:var(--tool-raised);color:var(--tool-ink);font:.8125rem var(--font-mono),monospace;resize:vertical}.graph-tool .modal-close{position:absolute;top:14px;right:14px;border:0;background:transparent;color:var(--tool-muted);cursor:pointer}.graph-tool .import-message{margin:0 24px 16px;border:1px solid hsl(var(--destructive)/.35);border-radius:9px;padding:10px 14px;background:hsl(var(--destructive)/.1);color:hsl(var(--destructive));font-size:.8125rem}.graph-tool .paste-modal textarea:focus,.graph-tool .settings-body input:focus,.graph-tool .settings-body select:focus,.graph-tool .table-wrap input:focus{outline:2px solid var(--tool-focus);outline-offset:2px}@media (max-width:860px){.graph-tool .tool-grid{grid-template-columns:1fr;gap:16px}}@media (max-width:560px){.graph-tool{padding:0 16px 56px}.graph-tool .preview-bar,.graph-tool .preview-footer,.graph-tool .settings-top,.graph-tool .tool-heading,.graph-tool .workspace-actions{align-items:flex-start;flex-direction:column}.graph-tool .tool-heading{margin-bottom:18px}.graph-tool .workspace-actions{gap:12px;padding:14px}.graph-tool .preview-footer span,.graph-tool .workspace-actions p{line-height:1.45}.graph-tool .workspace-action-controls{width:100%}.graph-tool .workspace-action-controls .download,.graph-tool .workspace-action-controls .secondary{flex:1}.graph-tool .data-panel,.graph-tool .preview-panel{padding:16px}.graph-tool .chart-shell{aspect-ratio:1.18;margin-top:12px}.graph-tool .preview-bar .download,.graph-tool .preview-footer .secondary{width:100%}.graph-tool .table-wrap{margin-top:14px}.graph-tool .table-wrap table{min-width:410px}.graph-tool .settings{margin-top:16px;padding:0 16px 16px}.graph-tool .settings-top{min-height:0;margin:0 -16px;padding:16px;gap:13px}.graph-tool .settings-top [role=tablist]{width:100%;overflow-x:auto}.graph-tool .settings-top [role=tablist] button{flex:0 0 auto}.graph-tool .settings-body{gap:10px;margin-top:14px}.graph-tool .settings-body label{flex:1 1 100%;min-width:0}.graph-tool .paste-overlay{align-items:end;padding:12px}.graph-tool .paste-modal{padding:22px 18px 18px}.graph-tool .paste-modal textarea{height:160px}}@media (max-width:380px){.graph-tool .chart-shell{aspect-ratio:1.05}.graph-tool .workspace-action-controls .download,.graph-tool .workspace-action-controls .secondary{padding-inline:9px;font-size:.75rem}}