*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#e4eef8;margin:0;font-family:Inter,SF Pro Display,system-ui,-apple-system,sans-serif}#root{min-height:100vh}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#0032781f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00327838}.app{color:#1a2332;min-height:100vh;font-family:Inter,SF Pro Display,system-ui,-apple-system,sans-serif;position:relative;overflow-x:hidden}.bg-gradient{z-index:-1;background:radial-gradient(120% 70% at 20% 10%,#b4d7ff99 0%,#0000 50%),radial-gradient(80% 60% at 80% 90%,#a0c8f066 0%,#0000 45%),radial-gradient(60% 50%,#c8e1ff4d 0%,#0000 50%),radial-gradient(40% 35% at 90% 15%,#8cbeff40 0%,#0000 40%),linear-gradient(170deg,#dce8f8 0%,#e8f0fb 30%,#f0f5fd 60%,#e2ecf7 100%);position:fixed;inset:0}.glass{-webkit-backdrop-filter:blur(20px)saturate(140%);background:#ffffff73;border:1px solid #ffffffa6;border-radius:20px;padding:20px;box-shadow:0 4px 24px #648cc81a,0 1px 3px #648cc80f,inset 0 1px #fffc,inset 0 -1px #fff3}.header{text-align:center;padding:36px 24px 20px}.header h1{background:linear-gradient(135deg,#1a5fb4 0%,#3584e4 40%,#62a0ea 100%);-webkit-text-fill-color:transparent;letter-spacing:-.8px;-webkit-background-clip:text;background-clip:text;margin:0;font-size:32px;font-weight:800}.subtitle{color:#5c7a9a;letter-spacing:.1px;margin:6px 0 0;font-size:14px;font-weight:400}.main{gap:24px;max-width:1520px;min-height:calc(100vh - 110px);margin:0 auto;padding:0 24px 24px;display:flex}.sidebar{scrollbar-gutter:stable;flex-direction:column;flex-shrink:0;gap:16px;width:390px;max-height:calc(100vh - 130px);padding:0;display:flex;position:sticky;top:24px;overflow-y:auto}.sidebar:after{content:"";pointer-events:none;background:linear-gradient(#0000,#e4eef8);height:24px;position:sticky;bottom:0;left:0;right:0}.config{flex-direction:column;gap:16px;display:flex}.field{color:#5c7a9a;text-transform:uppercase;letter-spacing:.8px;flex-direction:column;gap:6px;font-size:11px;font-weight:700;display:flex}.field input[type=text],.field input:not([type]){color:#1a2332;text-transform:none;letter-spacing:0;background:#ffffff8c;border:1px solid #ffffffb3;border-radius:10px;outline:none;padding:10px 14px;font-size:14px;font-weight:400;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px 2px #648cc80f,0 1px #ffffff80}.field input[type=text]:hover,.field input:not([type]):hover{background:#ffffffb3;border-color:#3584e459}.field input:focus{background:#fffc;border-color:#3584e480;box-shadow:0 0 0 3px #3584e41a,inset 0 1px 2px #648cc80f}.chart-types{flex-wrap:wrap;gap:5px;display:flex}.type-btn{color:#5c7a9a;cursor:pointer;background:#fff6;border:1px solid #fff9;border-radius:8px;padding:5px 11px;font-size:12px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #648cc80f}.type-btn:hover{color:#1a5fb4;background:#ffffffb3;border-color:#3584e459;transform:translateY(-1px);box-shadow:0 3px 10px #648cc81f}.type-btn.active{color:#fff;background:linear-gradient(135deg,#3584e4,#1a5fb4);border-color:#0000;transform:translateY(-1px);box-shadow:0 3px 14px #3584e459,inset 0 1px #fff3}.style-selector{flex-wrap:wrap;gap:5px;display:flex}.style-btn{color:#5c7a9a;cursor:pointer;background:#ffffff59;border:1px solid #ffffff80;border-radius:7px;padding:4px 9px;font-size:11px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #648cc80a}.style-btn:hover{color:#1a5fb4;background:#fff9;border-color:#3584e44d;transform:translateY(-1px)}.style-btn.active{color:#fff;background:linear-gradient(135deg,#3584e4,#1a5fb4);border-color:#0000;box-shadow:0 2px 10px #3584e44d,inset 0 1px #fff3}.palette-selector{flex-direction:column;gap:4px;display:flex}.palette-btn{cursor:pointer;background:#ffffff4d;border:1px solid #ffffff80;border-radius:8px;justify-content:space-between;align-items:center;padding:7px 11px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 1px 2px #648cc80a}.palette-btn:hover{background:#fff9;border-color:#3584e440;transform:translate(2px)}.palette-btn.active{background:#3584e414;border-color:#3584e480;box-shadow:0 0 0 1px #3584e433,inset 0 1px #ffffff80}.palette-name{color:#3a5574;font-size:12px;font-weight:500}.palette-colors{gap:3px;display:flex}.palette-swatch{border:1px solid #00000014;border-radius:4px;width:14px;height:14px;transition:transform .2s}.palette-btn:hover .palette-swatch{transform:scale(1.1)}.toggle-row,.color-row{justify-content:space-between;align-items:center;flex-direction:row!important}.color-picker-wrapper{align-items:center;gap:8px;display:flex}.color-picker{cursor:pointer;background:#ffffff4d;border:2px solid #fff9;border-radius:8px;width:34px;height:34px;padding:2px;transition:all .2s}.color-picker:hover{border-color:#3584e466;transform:scale(1.05)}.color-hex{color:#7a94b0;text-transform:uppercase;font-family:SF Mono,Fira Code,monospace;font-size:12px;font-weight:400}.toggle{cursor:pointer;width:42px;height:24px;display:inline-block;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-slider{background:#c8d7eb80;border:1px solid #ffffff80;border-radius:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;inset:0;box-shadow:inset 0 1px 2px #648cc81a}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:3px;left:3px;box-shadow:0 1px 4px #648cc840}.toggle input:checked+.toggle-slider{background:linear-gradient(135deg,#3584e4,#1a5fb4);border-color:#0000}.toggle input:checked+.toggle-slider:before{background:#fff;transform:translate(18px);box-shadow:0 1px 6px #3584e466}.data-form h2{color:#3a5574;margin:0 0 10px;font-size:14px;font-weight:600}.series-tabs{flex-wrap:wrap;gap:5px;margin-bottom:12px;display:flex}.series-tab{cursor:pointer;color:#5c7a9a;background:#fff6;border:1px solid #ffffff80;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-size:12px;transition:all .2s;display:flex}.series-tab:hover{background:#fff9}.series-tab.active{color:#fff;background:linear-gradient(135deg,#3584e4,#1a5fb4);border-color:#0000;box-shadow:0 2px 8px #3584e44d}.series-tab-name{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.series-tab-remove{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 2px;font-size:12px;transition:opacity .2s}.series-tab-remove:hover{opacity:1}.series-tab-add{color:#3584e4;cursor:pointer;background:#3584e41a;border:1px dashed #3584e466;border-radius:8px;width:30px;font-size:14px;font-weight:600;transition:all .2s}.series-tab-add:hover{background:#3584e433;border-color:#3584e4}.series-config{border-bottom:1px solid #648cc81a;flex-direction:column;gap:8px;margin-bottom:12px;padding-bottom:12px;display:flex}.series-type-selector{gap:4px;display:flex}.series-type-btn{color:#5c7a9a;cursor:pointer;background:#fff6;border:1px solid #ffffff80;border-radius:6px;flex:1;padding:6px 8px;font-size:11px;transition:all .2s}.series-type-btn:hover{background:#fff9}.series-type-btn.active{color:#fff;background:linear-gradient(135deg,#3584e4,#2070c4);border-color:#0000;box-shadow:0 1px 4px #3584e440}.add-row{gap:6px;margin-top:8px;display:flex}.add-row input{color:#1a2332;background:#ffffff80;border:1px solid #fff9;border-radius:8px;outline:none;flex:1;min-width:0;padding:8px 10px;font-size:13px;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px 2px #648cc80d}.add-row input:focus{background:#ffffffbf;border-color:#3584e473;box-shadow:0 0 0 2px #3584e41a}.add-row button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3584e4,#1a5fb4);border:none;border-radius:8px;width:36px;font-size:18px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #3584e44d}.add-row button:hover{transform:scale(1.08);box-shadow:0 4px 16px #3584e466}.add-row button:active{transform:scale(.96)}.data-list{flex-direction:column;gap:5px;margin:10px 0 0;padding:0;list-style:none;display:flex}.data-list li{gap:5px;animation:.2s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.data-list li input{color:#1a2332;background:#ffffff73;border:1px solid #ffffff8c;border-radius:6px;outline:none;flex:1;min-width:0;padding:6px 9px;font-size:13px;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px 1px #648cc80a}.data-list li input:focus{background:#ffffffb3;border-color:#3584e466;box-shadow:0 0 0 2px #3584e414}.remove{color:#dc3c3c;cursor:pointer;background:#dc3c3c0f;border:1px solid #dc3c3c1f;border-radius:6px;justify-content:center;align-items:center;width:32px;font-size:16px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.remove:hover{background:#dc3c3c1f;border-color:#dc3c3c4d;transform:scale(1.08);box-shadow:0 2px 8px #dc3c3c26}.empty{color:#7a94b0;text-align:center;margin:16px 0;font-size:13px}.stats h2{color:#3a5574;margin:0 0 10px;font-size:14px;font-weight:600}.stats-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat-card{text-align:center;background:#fff6;border:1px solid #ffffff8c;border-radius:10px;flex-direction:column;gap:2px;padding:10px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:inset 0 1px #fff9}.stat-card:hover{background:#fff9;border-color:#3584e426;transform:translateY(-1px);box-shadow:0 3px 10px #648cc81a}.stat-value{color:#1a2332;font-size:20px;font-weight:700}.stat-value .decimal{color:#7a94b0;font-size:14px;font-weight:500}.stat-label{color:#7a94b0;text-transform:uppercase;letter-spacing:.6px;font-size:10px;font-weight:700}.actions{flex-wrap:wrap;gap:8px;display:flex}.action-btn{color:#3a5574;cursor:pointer;background:#fff6;border:1px solid #ffffff8c;border-radius:10px;flex:1;min-width:0;padding:10px;font-size:13px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px #ffffff80,0 1px 3px #648cc80f}.action-btn:hover{color:#1a5fb4;background:#ffffffa6;border-color:#3584e44d;transform:translateY(-1px);box-shadow:0 3px 12px #648cc81f}.action-btn:active{transform:translateY(0)}.chart-area{flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.chart-wrapper{-webkit-backdrop-filter:blur(24px)saturate(150%);background:#ffffff80;border:1px solid #ffffffb3;border-radius:22px;width:100%;padding:24px;transition:box-shadow .3s;position:relative;box-shadow:0 8px 40px #648cc81f,0 2px 6px #648cc80f,inset 0 1px #fffc,inset 0 -1px #fff3}.chart-wrapper:hover{box-shadow:0 12px 48px #648cc829,0 2px 8px #648cc814,inset 0 1px #ffffffe6,inset 0 -1px #ffffff4d}.chart-type-label{color:#1a233226;text-transform:uppercase;letter-spacing:1.5px;font-size:10px;font-weight:700;position:absolute;top:28px;right:28px}.export-img-btn{color:#5c7a9a;cursor:pointer;background:#ffffff73;border:1px solid #fff9;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);position:absolute;bottom:18px;right:22px;box-shadow:0 1px 3px #648cc814}.export-img-btn:hover{color:#1a5fb4;background:#ffffffb3;border-color:#3584e44d;transform:translateY(-1px);box-shadow:0 3px 10px #648cc81f}.chart-empty{color:#7a94b0;text-align:center;-webkit-backdrop-filter:blur(20px);background:#fff6;border:1px solid #fff9;border-radius:22px;width:100%;padding:60px 20px;font-size:15px;box-shadow:inset 0 1px #fff9}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{-webkit-backdrop-filter:blur(24px);color:#1a2332;pointer-events:auto;background:#ffffffb3;border:1px solid #ffffffb3;border-radius:12px;padding:10px 18px;font-size:13px;font-weight:500;animation:.35s cubic-bezier(.4,0,.2,1) toastIn,.35s 2.5s forwards toastOut;box-shadow:0 8px 24px #648cc826,inset 0 1px #fffc}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.96)}}@media (width<=1024px){.main{flex-direction:column}.sidebar{width:auto;max-height:none;position:static}.sidebar:after{display:none}.chart-area{min-height:400px}.chart-wrapper{padding:14px}}@media (width<=640px){.header h1{font-size:22px}.chart-types{gap:4px}.type-btn{padding:4px 9px;font-size:11px}.stats-grid{grid-template-columns:1fr 1fr}.actions{flex-direction:column}}
