.graph-container{flex:1;display:flex;justify-content:center;align-items:center;padding:15px;overflow:hidden;min-height:0}.graph-canvas{background:#fff;border:4px solid white;border-radius:16px;cursor:crosshair;box-shadow:0 15px 50px #0003;max-width:100%;max-height:100%;width:100%;height:100%}@media (max-width: 768px){.graph-container{padding:10px}.graph-canvas{border:2px solid white;border-radius:12px}}.toolbar{display:flex;align-items:center;gap:15px;padding:12px 20px;background:#fff;box-shadow:0 2px 12px #00000014;flex-wrap:wrap;justify-content:center;flex-shrink:0}.toolbar-section{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar-label{font-size:14px;font-weight:700;color:#1e3a8a;margin-right:8px;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.toolbar-divider{width:2px;height:35px;background:linear-gradient(180deg,transparent,#fbbf24,transparent)}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border:2px solid #e2e8f0;background:#fff;color:#1e3a8a;font-size:13px;font-weight:600;border-radius:10px;cursor:pointer;transition:all .25s ease;font-family:inherit;box-shadow:0 2px 4px #0000000d}.toolbar-btn:hover{background:#f8fafc;border-color:#fbbf24;transform:translateY(-2px);box-shadow:0 4px 12px #fbbf2433}.toolbar-btn.active{background:linear-gradient(135deg,#1e3a8a,#0369a1);color:#fff;border-color:transparent;box-shadow:0 4px 15px #1e3a8a66}.toolbar-btn.reset-btn{border-color:#fca5a5;color:#dc2626}.toolbar-btn.reset-btn:hover{background:#fef2f2;border-color:#f87171;box-shadow:0 4px 12px #ef444433}.icon{font-size:18px;line-height:1}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}@media (max-width: 768px){.toolbar{padding:10px 15px;gap:10px}.toolbar-btn{padding:6px 10px;font-size:12px;gap:4px}.toolbar-label{font-size:11px}.icon{font-size:16px}}.function-input-container{background:#fff;padding:12px 20px;box-shadow:0 2px 12px #00000014;flex-shrink:0}.function-input{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.input-label{font-size:16px;font-weight:700;color:#1e293b}.input-field{flex:1;min-width:250px;padding:10px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;font-family:Courier New,monospace;transition:all .25s ease;box-shadow:0 2px 4px #0000000d}.input-field:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf61a;background:#faf5ff}.color-picker{display:flex;gap:8px;padding:5px;background:#f8fafc;border-radius:10px}.color-dot{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .25s ease;padding:0;box-shadow:0 2px 4px #0000001a}.color-dot:hover{transform:scale(1.15);box-shadow:0 4px 12px #00000040}.color-dot.selected{border-color:#1e293b;transform:scale(1.1);box-shadow:0 0 0 3px #fff,0 0 0 5px currentColor}.add-btn{padding:10px 20px;background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 12px #8b5cf64d}.add-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf680}.examples{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap;justify-content:center}.examples-label{font-size:13px;color:#64748b;font-weight:600}.example-btn{padding:8px 16px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;font-size:13px;color:#334155;cursor:pointer;transition:all .25s ease;font-weight:600;box-shadow:0 2px 4px #0000000d}.example-btn:hover{background:#fff;border-color:#a78bfa;transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf626}.functions-list{margin-top:12px;padding-top:12px;border-top:2px solid #e2e8f0;max-height:150px;overflow-y:auto}.list-header{font-size:14px;font-weight:700;color:#1e293b;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.function-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:10px;margin-bottom:8px;border:2px solid #e2e8f0;transition:all .25s ease}.function-item:hover{background:#fff;border-color:#cbd5e1;box-shadow:0 2px 8px #00000014}.function-color{width:24px;height:24px;border-radius:6px;flex-shrink:0;box-shadow:0 2px 4px #0000001a}.function-expr{flex:1;font-size:14px;color:#1e293b;font-family:Courier New,monospace;font-weight:600}.remove-btn{width:28px;height:28px;border:none;background:#f87171;color:#fff;border-radius:6px;cursor:pointer;font-size:16px;line-height:1;transition:all .25s ease;padding:0;font-weight:700}.remove-btn:hover{background:#dc2626;transform:scale(1.15);box-shadow:0 2px 8px #ef44444d}@media (max-width: 768px){.function-input-container{padding:10px 15px}.input-field{min-width:200px;padding:8px 12px;font-size:13px}.add-btn{padding:8px 16px;font-size:13px}.example-btn{padding:6px 12px;font-size:12px}.functions-list{max-height:100px}}@media (max-width: 480px){.input-field{min-width:150px}.function-input{gap:8px}}.auth-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-modal{background:#fff;border-radius:20px;padding:40px;width:90%;max-width:450px;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideIn .3s ease}.auth-close{position:absolute;top:20px;right:20px;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;font-size:18px;color:#64748b;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.auth-close:hover{background:#e2e8f0;color:#1e293b;transform:rotate(90deg)}.auth-header{text-align:center;margin-bottom:30px}.auth-header h2{font-size:28px;font-weight:800;color:#1e293b;margin:0 0 10px;background:linear-gradient(135deg,#8b5cf6,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-header p{color:#64748b;font-size:14px;margin:0}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-size:14px;font-weight:600;color:#334155}.form-group input{padding:12px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;transition:all .25s ease;font-family:inherit}.form-group input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf61a}.auth-error{background:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:10px;font-size:14px;font-weight:600;border:2px solid #fca5a5}.auth-error.auth-success{background:#f0fdf4;color:#16a34a;border-color:#86efac}.auth-submit{padding:14px;background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 12px #8b5cf64d;margin-top:10px}.auth-submit:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf680}.auth-toggle{text-align:center;margin-top:20px;color:#64748b;font-size:14px}.auth-toggle button{background:none;border:none;color:#8b5cf6;font-weight:700;cursor:pointer;font-size:14px;text-decoration:underline;padding:0;transition:color .2s ease}.auth-toggle button:hover{color:#7c3aed}.saved-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.saved-modal{background:#fff;border-radius:20px;padding:40px;width:90%;max-width:800px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideIn .3s ease}.saved-close{position:absolute;top:20px;right:20px;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;font-size:18px;color:#64748b;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.saved-close:hover{background:#e2e8f0;color:#1e293b;transform:rotate(90deg)}.saved-header{text-align:center;margin-bottom:30px}.saved-header h2{font-size:28px;font-weight:800;color:#1e293b;margin:0 0 10px}.saved-header p{color:#64748b;font-size:14px;margin:0}.saved-header strong{color:#8b5cf6;font-weight:700}.saved-content{min-height:200px}.empty-state{text-align:center;padding:60px 20px}.empty-icon{font-size:64px;margin-bottom:20px;opacity:.5}.empty-state h3{font-size:20px;font-weight:700;color:#1e293b;margin:0 0 10px}.empty-state p{color:#64748b;font-size:14px;margin:0}.graphs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.graph-card{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:20px;cursor:pointer;transition:all .25s ease}.graph-card:hover{background:#fff;border-color:#a78bfa;box-shadow:0 4px 12px #8b5cf626;transform:translateY(-2px)}.graph-card.selected{border-color:#8b5cf6;background:#faf5ff;box-shadow:0 4px 16px #8b5cf640}.graph-card-header{margin-bottom:15px}.graph-card-header h3{font-size:18px;font-weight:700;color:#1e293b;margin:0 0 5px}.graph-date{font-size:12px;color:#64748b;font-weight:500}.graph-stats{display:flex;gap:15px;margin-bottom:15px;flex-wrap:wrap}.graph-stats span{font-size:13px;color:#475569;font-weight:600}.graph-actions{display:flex;gap:10px}.load-btn,.delete-btn{flex:1;padding:10px;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .25s ease}.load-btn{background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;box-shadow:0 2px 8px #8b5cf64d}.load-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf680}.delete-btn{background:#fef2f2;color:#dc2626;border:2px solid #fca5a5}.delete-btn:hover{background:#fee2e2;border-color:#f87171;transform:translateY(-2px)}.credits-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:20px}.credits-modal{background:#fff;border-radius:20px;padding:0;width:90%;max-width:700px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideIn .3s ease}.credits-close{position:sticky;top:20px;right:20px;float:right;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;font-size:18px;color:#64748b;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;z-index:10}.credits-close:hover{background:#e2e8f0;color:#1e293b;transform:rotate(90deg)}.credits-header{background:linear-gradient(135deg,#1e3a8a,#0369a1);padding:30px;text-align:center;color:#fff;border-radius:20px 20px 0 0}.credits-header h2{font-size:28px;font-weight:800;margin:0 0 10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.credits-header p{font-size:14px;margin:0;color:#fef3c7;font-weight:500}.credits-content{padding:30px}.credits-section{margin-bottom:30px;padding-bottom:25px;border-bottom:2px solid #e2e8f0}.credits-section:last-child{border-bottom:none;margin-bottom:0}.credits-section h3{font-size:20px;font-weight:700;color:#1e3a8a;margin:0 0 15px;display:flex;align-items:center;gap:8px}.credits-section p{font-size:15px;line-height:1.7;color:#475569;margin:0 0 10px}.credits-section ul{list-style:none;padding:0;margin:0}.credits-section li{font-size:15px;line-height:1.8;color:#475569;padding:8px 0 8px 25px;position:relative}.credits-section li:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700;font-size:16px}.credits-section li strong{color:#1e3a8a;font-weight:700}.credits-email{color:#0369a1;font-weight:700;text-decoration:none;transition:color .2s ease}.credits-email:hover{color:#1e3a8a;text-decoration:underline}.credits-footer{padding:20px 30px;background:#f8fafc;border-radius:0 0 20px 20px;display:flex;justify-content:center;border-top:2px solid #e2e8f0}.credits-btn{padding:12px 40px;background:linear-gradient(135deg,#1e3a8a,#0369a1);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 12px #1e3a8a4d}.credits-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1e3a8a80}.school-request-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:20px}.school-request-modal{background:#fff;border-radius:20px;padding:0;width:90%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideIn .3s ease}.school-request-close{position:sticky;top:20px;right:20px;float:right;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;font-size:18px;color:#64748b;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;z-index:10}.school-request-close:hover{background:#e2e8f0;color:#1e293b;transform:rotate(90deg)}.school-request-header{background:linear-gradient(135deg,#1e3a8a,#0369a1);padding:30px;text-align:center;color:#fff;border-radius:20px 20px 0 0}.school-request-header h2{font-size:28px;font-weight:800;margin:0 0 10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.school-request-header p{font-size:14px;margin:0;color:#fef3c7;font-weight:500}.school-request-content{padding:30px}.info-section{margin-bottom:30px;padding-bottom:25px;border-bottom:2px solid #e2e8f0}.info-section h3{font-size:20px;font-weight:700;color:#1e3a8a;margin:0 0 15px}.deployment-options{display:grid;gap:12px}.deployment-option{padding:12px 15px;background:#f8fafc;border-left:4px solid #fbbf24;border-radius:8px;font-size:14px;color:#475569}.deployment-option strong{color:#1e3a8a;display:block;margin-bottom:4px}.school-request-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:700;color:#1e3a8a}.form-group input,.form-group select,.form-group textarea{padding:12px 15px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;font-family:inherit;transition:all .2s ease;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#fbbf24;box-shadow:0 0 0 3px #fbbf241a}.form-group textarea{resize:vertical;min-height:100px}.form-error{padding:12px 15px;background:#fef2f2;border-left:4px solid #ef4444;border-radius:8px;color:#dc2626;font-size:14px;font-weight:600}.school-request-submit{padding:14px 30px;background:linear-gradient(135deg,#1e3a8a,#0369a1);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 12px #1e3a8a4d;margin-top:10px}.school-request-submit:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1e3a8a80}.school-request-footer{padding:20px 30px;background:#f8fafc;border-radius:0 0 20px 20px;display:flex;justify-content:center;border-top:2px solid #e2e8f0}.school-request-btn{padding:12px 40px;background:linear-gradient(135deg,#1e3a8a,#0369a1);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 12px #1e3a8a4d}.school-request-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1e3a8a80}.success-message{text-align:center;padding:20px}.success-message p{font-size:15px;line-height:1.7;color:#475569;margin:0 0 15px}.success-message strong{color:#1e3a8a;font-weight:700}.success-list{list-style:none;padding:0;margin:15px 0}.success-list li{padding:8px 0 8px 25px;position:relative;font-size:14px;color:#475569}.success-list li:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700;font-size:16px}.success-list code{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:13px;color:#0369a1}.url-example{text-align:center;font-size:15px;color:#475569;line-height:1.8;margin:10px 0}.url-code{display:inline-block;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);padding:6px 12px;border-radius:8px;font-family:Courier New,monospace;font-size:14px;color:#0369a1;font-weight:700;margin:0 4px;border:2px solid #cbd5e1}.templates-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:20px}.templates-modal{background:#fff;border-radius:20px;padding:0;width:95%;max-width:1200px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideIn .3s ease}.templates-close{position:sticky;top:20px;right:20px;float:right;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;font-size:18px;color:#64748b;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;z-index:10}.templates-close:hover{background:#e2e8f0;color:#1e293b;transform:rotate(90deg)}.templates-header{background:linear-gradient(135deg,#1e3a8a,#0369a1);padding:30px;text-align:center;color:#fff;border-radius:20px 20px 0 0}.templates-header h2{font-size:28px;font-weight:800;margin:0 0 10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.templates-header p{font-size:14px;margin:0;color:#fef3c7;font-weight:500}.templates-content{padding:30px}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.template-card{background:#f8fafc;border:2px solid #e2e8f0;border-radius:15px;padding:20px;transition:all .25s ease;display:flex;flex-direction:column;gap:12px}.template-card:hover{border-color:#fbbf24;box-shadow:0 4px 15px #fbbf2433;transform:translateY(-3px)}.template-icon{font-size:36px;text-align:center;margin-bottom:5px}.template-card h3{font-size:18px;font-weight:700;color:#1e3a8a;margin:0;text-align:center}.template-card p{font-size:13px;color:#64748b;margin:0;text-align:center;min-height:36px}.template-preview{background:#fff;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px;border:1px solid #e2e8f0}.template-function{display:flex;align-items:center;gap:8px;font-size:13px}.function-color{width:16px;height:16px;border-radius:3px;flex-shrink:0}.template-function code{font-family:Courier New,monospace;font-size:12px;color:#1e3a8a;background:#f1f5f9;padding:2px 6px;border-radius:4px}.template-load-btn{padding:10px 16px;background:linear-gradient(135deg,#1e3a8a,#0369a1);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 2px 8px #1e3a8a4d}.template-load-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1e3a8a80}.templates-footer{padding:20px 30px;background:#f8fafc;border-radius:0 0 20px 20px;display:flex;justify-content:center;border-top:2px solid #e2e8f0}.templates-btn{padding:12px 40px;background:linear-gradient(135deg,#1e3a8a,#0369a1);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 12px #1e3a8a4d}.templates-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1e3a8a80}@media (max-width: 768px){.templates-grid{grid-template-columns:1fr}}.share-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:20px}.share-modal{background:#fff;border-radius:20px;padding:0;width:90%;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideIn .3s ease}.share-close{position:sticky;top:20px;right:20px;float:right;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;font-size:18px;color:#64748b;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;z-index:10}.share-close:hover{background:#e2e8f0;color:#1e293b;transform:rotate(90deg)}.share-header{background:linear-gradient(135deg,#1e3a8a,#0369a1);padding:30px;text-align:center;color:#fff;border-radius:20px 20px 0 0}.share-header h2{font-size:28px;font-weight:800;margin:0 0 10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.share-header p{font-size:14px;margin:0;color:#fef3c7;font-weight:500}.share-content{padding:30px}.share-section{margin-bottom:25px;padding-bottom:20px;border-bottom:2px solid #e2e8f0}.share-section:last-child{border-bottom:none;margin-bottom:0}.share-section h3{font-size:18px;font-weight:700;color:#1e3a8a;margin:0 0 12px}.share-section p{font-size:14px;line-height:1.6;color:#475569;margin:0 0 15px}.share-url-container{display:flex;gap:10px;align-items:stretch}.share-url-input{flex:1;padding:12px 15px;border:2px solid #e2e8f0;border-radius:10px;font-size:13px;font-family:monospace;background:#f8fafc;color:#1e3a8a}.share-url-input:focus{outline:none;border-color:#fbbf24;box-shadow:0 0 0 3px #fbbf241a}.share-copy-btn{padding:12px 20px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 2px 8px #10b9814d;white-space:nowrap}.share-copy-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98180}.share-tips{list-style:none;padding:0;margin:0}.share-tips li{font-size:14px;line-height:1.8;color:#475569;padding:6px 0 6px 25px;position:relative}.share-tips li:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700;font-size:16px}.share-footer{padding:20px 30px;background:#f8fafc;border-radius:0 0 20px 20px;display:flex;justify-content:center;border-top:2px solid #e2e8f0}.share-btn{padding:12px 40px;background:linear-gradient(135deg,#1e3a8a,#0369a1);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 12px #1e3a8a4d}.share-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1e3a8a80}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.app{width:100vw;height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#e3f2fd,#f1f8e9);overflow:hidden}.header{background:linear-gradient(135deg,#1e3a8a,#0369a1);padding:15px 20px;box-shadow:0 4px 20px #00000026;border-bottom:4px solid #fbbf24;flex-shrink:0}.header-title{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:10px}.header-logo{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.header-text{text-align:left}.header h1{font-size:24px;font-weight:800;color:#fff;margin:0;letter-spacing:.5px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:12px;color:#fef3c7;margin-top:3px;font-weight:500;letter-spacing:.5px}.header-actions{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.user-badge{font-size:14px;font-weight:700;color:#1e3a8a;background:#fef3c7;padding:8px 16px;border-radius:20px;border:2px solid #fbbf24}.header-btn{padding:8px 16px;border:2px solid rgba(255,255,255,.3);background:#fffffff2;color:#1e3a8a;font-size:13px;font-weight:600;border-radius:10px;cursor:pointer;transition:all .25s ease;font-family:inherit}.header-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003;background:#fff}.header-btn.login-btn{background:#fbbf24;color:#1e3a8a;border-color:transparent;box-shadow:0 2px 8px #fbbf244d;font-weight:700}.header-btn.login-btn:hover{background:#f59e0b;box-shadow:0 4px 15px #fbbf2480}.header-btn.save-btn{background:#10b981;color:#fff;border-color:transparent;box-shadow:0 2px 8px #10b9814d;font-weight:700}.header-btn.save-btn:hover{background:#059669;box-shadow:0 4px 15px #10b98180}.header-btn.logout-btn{background:#fff3;color:#fff;border-color:#fff6}.header-btn.logout-btn:hover{background:#ffffff4d;border-color:#fff9}.header-btn.school-btn{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1e3a8a;border-color:transparent;box-shadow:0 2px 8px #fbbf2466;font-weight:700}.header-btn.school-btn:hover{background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 4px 15px #fbbf2499}.footer{position:fixed;right:20px;bottom:15px;font-size:12px;color:#1e3a8a;font-weight:600;background:#fffffff2;padding:10px 18px;border-radius:20px;box-shadow:0 2px 10px #0000001a;z-index:10;display:flex;gap:10px;align-items:center}.footer-link{color:#0369a1;text-decoration:none;font-weight:700;transition:color .2s ease;cursor:pointer}.footer-link:hover{color:#1e3a8a;text-decoration:underline}.keyboard-hint{color:#64748b;font-size:11px;font-weight:500}.app.presentation-mode{flex-direction:row;background:#000}.app.presentation-mode .header,.app.presentation-mode .footer{display:none}.presentation-sidebar{width:350px;background:linear-gradient(180deg,#1e3a8a,#0369a1);display:flex;flex-direction:column;overflow-y:auto;box-shadow:4px 0 20px #00000080;z-index:100}.presentation-sidebar .toolbar{flex-direction:column;padding:20px;background:transparent;box-shadow:none;gap:15px;align-items:stretch}.presentation-sidebar .toolbar-section{flex-direction:column;align-items:stretch;gap:10px;padding:15px;background:#ffffff1a;border-radius:12px;border:1px solid rgba(255,255,255,.2)}.presentation-sidebar .toolbar-label{color:#fef3c7;font-size:13px;margin-right:0;margin-bottom:5px;text-align:center}.presentation-sidebar .toolbar-divider{display:none}.presentation-sidebar .toolbar-btn{width:100%;justify-content:center;padding:12px 16px;font-size:14px;background:#fffffff2}.presentation-sidebar .toolbar-btn:hover{background:#fff}.presentation-sidebar .toolbar-btn.active{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1e3a8a}.presentation-sidebar .toolbar-btn:disabled{background:#ffffff4d;color:#ffffff80}.presentation-sidebar .function-input{padding:20px;background:transparent;border-bottom:2px solid rgba(255,255,255,.2)}.presentation-sidebar .function-input h3{color:#fef3c7;font-size:16px;margin-bottom:15px}.presentation-sidebar .function-input input,.presentation-sidebar .function-input select{background:#fffffff2;border:2px solid rgba(255,255,255,.3);font-size:14px;padding:10px 12px}.presentation-sidebar .function-input button{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1e3a8a;font-size:14px;padding:10px 16px}.presentation-sidebar .function-list{max-height:200px}.presentation-sidebar .function-list-item{background:#fffffff2;font-size:13px;padding:10px 12px}.app.presentation-mode .graph-container{flex:1;height:100vh;background:#fff}.presentation-header{padding:15px 20px;background:#0000004d;border-bottom:2px solid #fbbf24;text-align:center}.presentation-logo{width:60px;height:60px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));margin-bottom:10px}.presentation-header h2{color:#fff;font-size:20px;font-weight:800;margin:0 0 5px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.presentation-header p{color:#fef3c7;font-size:12px;margin:0;font-weight:500}.exit-presentation-btn{position:fixed;top:20px;right:20px;padding:12px 24px;background:#dc2626f2;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 15px #0006;z-index:1000}.exit-presentation-btn:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 6px 20px #dc262699}@media (max-width: 768px){.header-logo{width:40px;height:40px}.header h1{font-size:18px}.subtitle{font-size:11px}.header-btn{padding:6px 12px;font-size:12px}.header-actions{gap:6px}.presentation-sidebar{width:280px}}@media (max-width: 480px){.header{padding:10px 15px}.header-title{gap:10px}.header-logo{width:35px;height:35px}.header h1{font-size:16px}.subtitle{display:none}}
