.graphing-shell{display:flex;flex-direction:column;height:calc(100vh - 50px);min-height:480px;background:var(--card);border-bottom:1px solid var(--border)}.graphing-body{display:flex;flex:1;min-height:0}.graphing-sidebar{display:flex;flex-direction:column;width:100%;max-width:320px;border-right:1px solid var(--border);background:#fafbfc}.graphing-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.875rem;font-weight:600;color:var(--foreground)}.graphing-expressions{flex:1;overflow-y:auto;padding:.5rem}.graphing-expression-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.375rem .5rem;border-radius:.5rem;background:var(--card);border:1px solid var(--border);transition:border-color .15s,box-shadow .15s}.graphing-expression-row--active{border-color:var(--accent);box-shadow:0 0 0 2px rgb(37 99 235/.12)}.graphing-color-dot{width:12px;height:12px;border-radius:9999px;flex-shrink:0}.graphing-expression-input{flex:1;min-width:0;border:none;background:transparent;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.875rem;color:var(--foreground);outline:none}.graphing-expression-input::placeholder{color:var(--muted)}.graphing-remove-btn{flex-shrink:0;padding:.125rem .375rem;font-size:1rem;line-height:1;color:var(--muted);border:none;background:transparent;cursor:pointer;border-radius:.25rem}.graphing-remove-btn:hover{color:#dc2626;background:#fef2f2}.graphing-add-btn{margin:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:var(--accent);background:var(--card);border:1px dashed var(--border);border-radius:.5rem;cursor:pointer;transition:background .15s,border-color .15s}.graphing-add-btn:hover{background:#eff6ff;border-color:var(--accent)}.graphing-plot-wrap{position:relative;flex:1;min-width:0;min-height:0;background:#fff}.graphing-plot-root{width:100%;height:100%}.graphing-plot-controls{position:absolute;top:.75rem;right:.75rem;display:flex;flex-direction:column;gap:.25rem;z-index:2}.graphing-plot-controls button{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;color:var(--foreground);background:var(--card);border:1px solid var(--border);border-radius:.375rem;cursor:pointer;box-shadow:0 1px 2px rgb(0 0 0/.06)}.graphing-plot-controls button:hover{background:var(--background)}.graphing-error{margin:.5rem;padding:.5rem .75rem;font-size:.8125rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem}.graphing-loading{display:flex;flex:1;align-items:center;justify-content:center;color:var(--muted);font-size:.875rem}@media (max-width:768px){.graphing-body{flex-direction:column}.graphing-sidebar{max-width:none;max-height:220px;border-right:none;border-bottom:1px solid var(--border)}.graphing-shell{height:auto;min-height:calc(100vh - 50px)}.graphing-plot-wrap{min-height:320px}.graphing-keyboard{padding-bottom:max(.5rem,env(safe-area-inset-bottom))}}.graphing-keyboard-wrap{position:relative;flex-shrink:0;border-top:1px solid #c5c9d0;background:#eceef1}.graphing-keyboard-wrap--collapsed{border-top:none}.graphing-keyboard-tab{position:absolute;top:-1.75rem;left:.75rem;z-index:3;display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;color:#4b5563;background:#eceef1;border:1px solid #c5c9d0;border-bottom:none;border-radius:.375rem .375rem 0 0;cursor:pointer}.graphing-keyboard-tab-icon{font-size:.875rem;line-height:1}.graphing-keyboard{display:flex;align-items:stretch;justify-content:center;gap:.375rem;padding:.5rem .75rem .75rem;max-width:52rem;margin:0 auto}.graphing-keyboard-grid{display:flex;flex-direction:column;gap:.25rem}.graphing-keyboard-row{display:grid;grid-template-columns:repeat(4,minmax(2.75rem,1fr));gap:.25rem}.graphing-keyboard-row--abc{grid-template-columns:repeat(10,minmax(2rem,1fr))}.graphing-keyboard-actions{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto auto auto;gap:.25rem;min-width:7.5rem}.graphing-keyboard-actions .graphing-key--enter,.graphing-keyboard-actions .graphing-key--wide{grid-column:1/-1}.graphing-key{display:flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.25rem .375rem;font-family:var(--font-geist-sans),system-ui,sans-serif;font-size:.9375rem;font-weight:500;line-height:1.1;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-shadow:0 1px 0 rgb(0 0 0/.04);cursor:pointer;user-select:none;touch-action:manipulation}.graphing-key:active{transform:translateY(1px);box-shadow:none}.graphing-key--muted{background:#dfe3e8;border-color:#c5c9d0}.graphing-key--operator{font-size:1.125rem}.graphing-key--wide{min-height:2.5rem;font-size:.8125rem;letter-spacing:.01em}.graphing-key--enter{min-height:2.75rem;font-size:1.25rem;color:#fff;background:#2563eb;border-color:#1d4ed8}.graphing-key--enter:active{background:#1d4ed8}.graphing-keyboard-functions{width:100%;max-width:40rem}.graphing-keyboard-functions-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:#374151}.graphing-keyboard-functions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:.25rem}.graphing-keyboard-abc{display:flex;flex-direction:column;gap:.25rem;width:100%;max-width:40rem}@media (max-width:768px){.graphing-keyboard{flex-wrap:wrap;gap:.375rem;padding-top:.75rem}.graphing-keyboard-grid--numpad,.graphing-keyboard-grid--symbols{flex:1 1 calc(50% - 0.25rem);min-width:9rem}.graphing-keyboard-actions{flex:1 1 100%;grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:auto auto}.graphing-keyboard-actions .graphing-key:first-child{grid-column:1/-1}.graphing-keyboard-actions .graphing-key--enter,.graphing-keyboard-actions .graphing-key--wide{grid-column:span 2}.graphing-key{min-height:2.75rem;font-size:1rem}.graphing-keyboard-row--abc{grid-template-columns:repeat(5,minmax(2.25rem,1fr))}}