:root{--primary:#2563eb;--primary-hover:#1d4ed8;--bg-main:#f8fafc;--bg-card:#fff;--text-main:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--accent:#f59e0b}body{background:var(--bg-main);color:var(--text-main);margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-container{grid-template-columns:320px 1fr;height:100vh;display:grid}.sidebar{background:var(--bg-card);border-right:1px solid var(--border);padding:1.5rem;overflow-y:auto;box-shadow:4px 0 10px #00000005}.editor-main{flex-direction:column;justify-content:flex-start;align-items:center;gap:1.5rem;padding:2rem;display:flex}.graph-card{-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:2rem;overflow:visible;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.selected{filter:drop-shadow(0 0 4px #94a3b880);transition:all .2s}.selected-tracer{filter:drop-shadow(0 0 6px #3b82f6);stroke:#3b82f6;stroke-width:3px}.selected-shape{stroke:#3b82f6!important;stroke-width:3px!important;fill-opacity:.3!important}.selected-text{filter:drop-shadow(0 0 2px #3b82f680);fill:#3b82f6!important;font-weight:700!important}h1{color:var(--text-main);margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.control-group{margin-bottom:1.5rem}.control-group label{color:var(--text-muted);margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.home-container{flex-direction:column;max-width:1200px;min-height:100vh;margin:0 auto;padding:3rem 2rem;display:flex}.home-header{text-align:center;margin-bottom:4rem}.home-header h1{background:linear-gradient(135deg, var(--primary), #a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:3rem;font-weight:800}.home-header p{color:var(--text-muted);font-size:1.25rem}.home-section{margin-bottom:3rem}.section-title{color:var(--text-main);border-left:4px solid var(--primary);margin-bottom:1.5rem;padding-left:1rem;font-size:1.5rem;font-weight:600}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;display:grid}.preset-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.preset-card:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -4px #0000000f}.preset-thumb{aspect-ratio:4/3;border-bottom:1px solid var(--border);background:#f8fafc;width:100%;overflow:hidden}.preset-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.preset-card:hover .preset-thumb img{transform:scale(1.04)}.preset-label{color:var(--text-main);text-align:center;padding:.75rem 1rem;font-size:.95rem;font-weight:600}.home-footer{text-align:center;color:var(--text-muted);margin-top:auto;padding-top:4rem;font-size:.9rem}.btn-back{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.5rem .75rem;font-size:.8rem;transition:all .2s;display:flex}.btn-back:hover{color:var(--text-main);background:#f1f5f9}@media (width<=640px){.home-header h1{font-size:2.5rem}}.input-field{border:1px solid var(--border);border-radius:6px;width:100%;padding:.5rem;font-size:.875rem}.btn{cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.graph-axis{stroke:var(--text-main);stroke-width:2px}.graph-grid{stroke:var(--border);stroke-dasharray:4}.graph-label{fill:var(--text-main);font-family:inherit;font-size:14px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:450px;padding:2rem;position:relative;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h2{margin:0;font-size:1.25rem}.close-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:1.5rem}
