.function-input{display:flex;flex-direction:column;gap:15px}.add-btn{background:linear-gradient(135deg,#0f7173,#1a3a52);border:none;border-radius:7px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.3px;padding:11px 18px;transition:all .2s}.add-btn:hover{box-shadow:0 6px 16px #0f717340;transform:translateY(-2px)}.add-btn:active{transform:translateY(0)}.templates{border-top:1px solid #ddd;padding-top:15px}.templates-title{color:#1a3a52;font-size:11px;font-weight:600;letter-spacing:.6px;margin-bottom:10px;text-transform:uppercase}.template-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.template-btn{background-color:#fff;border:1.5px solid #cbd5e1;border-radius:6px;color:#1a3a52;cursor:pointer;font-size:11px;font-weight:500;overflow:hidden;padding:9px 10px;text-overflow:ellipsis;transition:all .2s;white-space:nowrap}.template-btn:hover{background-color:#e3f0f1;border-color:#0f7173;color:#0f7173;transform:translateY(-1px)}.template-btn:active{background-color:#d0e4e6}.library-btn{background:#fff;border:1.5px solid #0f7173;border-radius:7px;color:#1a3a52;cursor:pointer;font-weight:600;padding:10px 14px;transition:all .2s}.library-btn:hover{background:#e7f5f5}.modal-overlay{align-items:center;background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-panel{background:#fff;border-radius:16px;box-shadow:0 24px 60px #0f172a40;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:min(900px,100%)}.modal-header{align-items:center;display:flex;gap:16px;justify-content:space-between;padding:24px 24px 0}.modal-header h3{color:#1a3a52;font-size:20px;margin:0}.modal-header p{color:#617d98;font-size:13px;margin:8px 0 0}.modal-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:24px;line-height:1}.library-content{overflow-y:auto;padding:16px 24px 24px}.library-group+.library-group{margin-top:20px}.library-group h4{color:#0f4055;font-size:15px;margin:0 0 12px}.library-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.library-item{align-items:flex-start;background:#f8fbfb;border:1px solid #d9e7eb;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:14px 16px;text-align:left;transition:transform .2s,border-color .2s,background-color .2s}.library-item strong{color:#0f7173}.library-item span{color:#607d8b;font-size:12px}.library-item:hover{background:#effaf9;border-color:#0f7173;transform:translateY(-2px)}.graph-plotter{height:100%;overflow:hidden;position:relative;touch-action:none;width:100%}.empty-graph,.graph-plotter{align-items:center;display:flex;justify-content:center}.empty-graph{color:#999;flex-direction:column;gap:20px;text-align:center}.empty-graphic{opacity:.3}.empty-graphic svg{stroke:#ccc}.empty-graph h2{color:#666;font-size:18px;margin:0}.empty-graph p{color:#999;font-size:14px;margin:0;max-width:300px}.graph-plotter :global(.plotly-graph-div){background-color:#fff!important}.graph-plotter>div{height:100%;width:100%}.app{background-color:#fff;display:flex;flex-direction:column;height:100vh}.app-header{background:linear-gradient(135deg,#1a3a52,#2d5a7b);box-shadow:0 4px 12px #00000026;color:#fff;padding:25px 30px}.app-header h1{font-size:28px;font-weight:600;letter-spacing:.3px;margin-bottom:5px}.tool-topbar{align-items:center;background:#f8fbfd;border-bottom:1px solid #d8e3ea;display:flex;gap:16px;justify-content:space-between;padding:18px 24px}.back-btn{background:none;border:1px solid #0f7173;border-radius:8px;color:#0f7173;cursor:pointer;font-weight:600;padding:10px 16px}.back-btn:hover{background:#e7f5f5}.tool-note{color:#4a6b7b;font-size:14px;margin:0}.landing-page{align-items:center;background:radial-gradient(circle at top,#4c7bba40,#0000 25%),linear-gradient(180deg,#0b1930,#10294b);display:flex;justify-content:center;min-height:100vh}.landing-hero{grid-gap:40px;background:#ffffff14;border:1px solid #ffffff29;border-radius:28px;box-shadow:0 40px 120px #06112f73;color:#fff;display:grid;gap:40px;max-width:900px;padding:60px 40px;width:100%}.landing-hero>div{max-width:640px}.site-brand{color:#8db6ff;font-size:13px;font-weight:700;letter-spacing:.35em;margin:0 0 18px;text-transform:uppercase}.landing-hero h1{font-size:56px;letter-spacing:-.04em;line-height:1.05;margin:0}.landing-copy{color:#ffffffc7;font-size:18px;line-height:1.75;margin:20px 0 0;max-width:560px}.landing-tile{grid-gap:10px;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:24px;box-shadow:0 20px 50px #030f2a59;color:#fff;cursor:pointer;display:grid;gap:10px;padding:34px 28px;place-items:center;transition:transform .2s ease,background .2s ease,border-color .2s ease}.landing-tile:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-4px)}.tile-title{font-size:20px;font-weight:700}.tile-subtitle{color:#ffffffb8;font-size:14px}.app-header p{font-size:13px;font-weight:300;opacity:.85}.header-note{color:#ffffffe6;font-size:13px;margin-top:8px;opacity:.95}.app-container{display:flex;flex:1 1;gap:20px;overflow:hidden;padding:20px}.sidebar{background-color:#f0f3f7;border-radius:10px;box-shadow:0 4px 16px #00000014;display:flex;flex-direction:column;gap:25px;overflow-y:auto;padding:25px;width:300px}.section{border-bottom:1px solid #e0e0e0;padding-bottom:20px}.section:last-child{border-bottom:none;padding-bottom:0}.section-header{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:15px}.section h2{color:#1a3a52;font-size:15px;font-weight:600;letter-spacing:.3px}.input-group,.section h2{margin-bottom:15px}.input-group label{color:#1a3a52;display:block;font-size:11px;font-weight:600;letter-spacing:.6px;margin-bottom:8px;text-transform:uppercase}.input-group input[type=color],.input-group input[type=number],.input-group input[type=text]{background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;font-family:inherit;font-size:13px;padding:9px 12px;transition:all .2s;width:100%}.input-group input[type=color]:focus,.input-group input[type=number]:focus,.input-group input[type=text]:focus{border-color:#0f7173;box-shadow:0 0 0 3px #0f71731a;outline:none}.range-inputs{align-items:center;display:flex;gap:8px}.range-inputs input{flex:1 1}.range-inputs span{color:#999;font-size:12px;-webkit-user-select:none;user-select:none}.input-group input[type=range]{cursor:pointer;width:100%}.main-content{background-color:#fafbfc;border-radius:10px;box-shadow:0 4px 16px #00000014;flex:1 1;overflow:hidden}.functions-list{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto}.function-item{align-items:center;background-color:#fff;border-left:4px solid #0f7173;border-radius:7px;box-shadow:0 2px 4px #0000000a;display:flex;font-size:12px;justify-content:space-between;padding:12px;transition:all .2s}.function-item:hover{box-shadow:0 4px 8px #00000014;transform:translateX(2px)}.function-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.function-info strong{color:#1a3a52;font-weight:600;word-break:break-all}.function-info small{color:#7b8b99}.remove-btn{background:none;border:none;color:#999;cursor:pointer;font-size:18px;padding:4px 8px;transition:color .2s}.remove-btn:hover{color:#e74c3c}.reset-btn{background-color:#e74c3c;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.3px;padding:6px 12px;text-transform:uppercase;transition:all .2s}.reset-btn:hover{background-color:#c0392b;transform:scale(1.05)}.reset-btn:active{transform:scale(.98)}.empty-message{color:#999;font-size:12px;font-style:italic;padding:20px 10px;text-align:center}.functions-list::-webkit-scrollbar,.sidebar::-webkit-scrollbar{width:6px}.functions-list::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.functions-list::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.functions-list::-webkit-scrollbar-thumb:hover,.sidebar::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width:768px){.app-container{flex-direction:column}.sidebar{height:auto;max-height:300px;width:100%}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{height:100%;width:100%}
/*# sourceMappingURL=main.ac2ab7e9.css.map*/