:root{color:#111827;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{color:#111827;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.3rem .48rem}button:hover{border-color:#64748b}button:focus-visible,summary:focus-visible{outline-offset:2px;outline:2px solid #93c5fd}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{color:#111827;background:#fff;border:1px solid #cbd5e1;border-radius:6px;width:100%;min-height:31px;padding:.25rem .38rem}textarea{resize:vertical;min-height:88px;line-height:1.35}.readonly-field{color:#475569;cursor:default;background:#f1f5f9}label{color:#374151;gap:.18rem;font-size:.78rem;font-weight:650;display:grid}.app-shell{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(330px,410px) 1fr;height:100vh;display:grid;overflow:hidden}.left-panel{overscroll-behavior:contain;scrollbar-gutter:stable;background:#f9fafb;border-right:1px solid #d7dde5;flex-direction:column;gap:.55rem;height:100%;min-height:0;max-height:100%;padding:.64rem .64rem 1rem;display:flex;overflow:hidden auto}.app-header h1{color:#111827;margin:0;font-size:1.12rem;line-height:1.2}.app-header p{color:#64748b;margin:.22rem 0 0;font-size:.78rem}.history-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem;display:grid}.history-controls button,.setup-file-buttons button{min-width:0;padding-inline:.34rem;font-size:.78rem}.setup-file-controls{gap:.24rem;display:grid}.setup-file-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:.34rem;display:grid}.setup-action-button{color:#1e40af;background:#f0f7ff;border-color:#bfdbfe;border-radius:7px;min-height:32px;font-weight:700;transition:background-color .14s,border-color .14s,box-shadow .14s}.setup-action-button:hover{background:#e5f1ff;border-color:#93c5fd;box-shadow:0 1px 2px #1e40af14}.hidden-file-input{display:none}.share-link-field{font-size:.72rem}.load-message{color:#047857;font-size:.78rem;font-weight:650}.panel-section-title{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.panel-section-title h2{margin:0;font-size:.95rem}.graph-controls,.calculus-tools,.function-card{background:#fff;border:1px solid #d7dde5;border-radius:8px;padding:.48rem}.calculus-tools{gap:.36rem;display:grid}.calculus-option-list{gap:.1rem;display:grid}.calculus-toggle{color:#475569;min-height:22px;font-size:.78rem;font-weight:700}.calculus-input-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem;margin:.12rem 0 .18rem;display:grid}.calculus-input-grid-single{grid-template-columns:minmax(0,1fr)}.calculus-message{color:#64748b;font-size:.72rem;line-height:1.25}.control-grid,.parameter-grid,.style-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem;margin-top:.36rem;display:grid}.button-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.34rem;margin-top:.42rem;display:grid}.button-row button{min-width:0}.control-button{color:#334155;background:#fff;border-color:#cbd5e1;border-radius:7px;justify-content:center;align-items:center;width:100%;min-height:32px;padding:.32rem .4rem;font-size:.78rem;font-weight:700;line-height:1;transition:background-color .14s,border-color .14s,box-shadow .14s;display:flex}.control-button:hover{background:#f8fafc;border-color:#94a3b8;box-shadow:0 1px 2px #0f172a0f}.control-button-fit{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.control-button-fit:hover{background:#dbeafe;border-color:#93c5fd}.export-menu{min-width:0;position:relative}.export-menu summary{cursor:pointer;list-style:none}.export-menu summary::-webkit-details-marker{display:none}.export-menu summary:hover{border-color:#94a3b8}.export-menu-options{z-index:4;background:#fff;border:1px solid #cbd5e1;border-radius:7px;gap:.12rem;min-width:92px;padding:.24rem;display:grid;position:absolute;top:calc(100% + .18rem);right:0;box-shadow:0 8px 20px #0f172a24}.export-menu-options button{color:#334155;text-align:left;background:0 0;border-color:#0000;width:100%;padding:.34rem .44rem;font-size:.76rem;font-weight:700}.export-menu-options button:hover{background:#f1f5f9;border-color:#0000}.graph-option-row{gap:0;margin-top:.24rem;display:grid}.trace-toggle{color:#475569;min-height:22px;font-size:.78rem;font-weight:700;line-height:1.15}.example-gallery{background:#fff;border:1px solid #d7dde5;border-radius:8px;padding:.42rem .48rem}.example-gallery summary{cursor:pointer;color:#374151;font-size:.82rem;font-weight:750}.example-gallery-list{gap:.3rem;max-height:260px;margin-top:.4rem;display:grid;overflow:auto}.example-gallery-item{text-align:left;gap:.08rem;min-width:0;padding:.34rem .42rem;display:grid}.example-name{color:#1f2937;font-size:.76rem;font-weight:750}.example-formula{color:#334155;text-overflow:ellipsis;white-space:nowrap;font-family:Cambria Math,STIX Two Math,Times New Roman,serif;font-size:.76rem;overflow:hidden}.example-description{color:#64748b;font-size:.68rem}.function-list{gap:.45rem;min-width:0;padding-bottom:.2rem;display:grid}.add-function-button{background:#f8fafc;border-color:#94a3b8;width:100%;font-weight:750}.card-header{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.34rem;margin-bottom:.26rem;display:grid}.collapse-button{color:#475569;width:26px;min-width:26px;padding:.22rem 0;font-weight:800;line-height:1}.display-toggle{white-space:nowrap;align-items:center;gap:.35rem;display:flex}.display-toggle input{width:auto}.function-number{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:Cambria Math,STIX Two Math,Times New Roman,serif;font-size:.78rem;font-weight:650;line-height:1.2;overflow:hidden}.text-button{padding:.28rem .42rem}.function-card{border-left-width:5px;gap:.34rem;display:grid;box-shadow:0 1px 2px #0f172a09}.equation-preview{overflow-wrap:anywhere;background:#ffffffc2;border:1px solid #d7dde5;border-radius:6px;padding:.3rem .42rem;font-family:Cascadia Mono,Consolas,monospace;font-size:.8rem;font-weight:750}.notes{color:#4b5563;margin:0;padding-left:1.1rem;font-size:.84rem;line-height:1.18}.style-controls{background:#f8fafcb8;border:1px solid #e2e8f0;border-radius:7px;grid-template-columns:minmax(74px,.65fr) minmax(0,1.35fr);gap:.4rem;min-width:0;margin:.08rem 0 0;padding:.24rem .4rem .38rem;display:grid}.style-controls legend{color:#64748b;padding:0 .2rem;font-size:.7rem;font-weight:750}.color-control{align-content:start}.color-input{cursor:pointer;border-radius:7px;width:48px;height:31px;min-height:31px;padding:.16rem}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:0;border-radius:4px}.color-input::-moz-color-swatch{border:0;border-radius:4px}.parameter-sliders{border-top:1px solid #d7dde5;padding-top:.32rem}.parameter-sliders summary{cursor:pointer;color:#475569;font-size:.78rem;font-weight:700}.slider-list{gap:.34rem;margin-top:.38rem;display:grid}.slider-control{gap:.22rem}.slider-label-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.slider-label-row output{color:#64748b;font-variant-numeric:tabular-nums;font-weight:600}.slider-control input[type=range]{min-height:24px;padding-inline:0}.validation{color:#b91c1c;font-size:.8rem;font-weight:600}.subtle-validation{color:#92400e}.input-help{color:#64748b;font-size:.72rem;font-weight:500;line-height:1.25}.system-color-row{flex-wrap:wrap;gap:.3rem;display:flex}.system-color-control{color:#64748b;background:#ffffffb8;border:1px solid #d7dde5;border-radius:5px;align-items:center;gap:.18rem;padding:.16rem .22rem;font-size:.68rem;line-height:1;display:flex}.system-color-input{border:0;border-radius:4px;width:24px;height:24px;min-height:24px;padding:0}.system-visibility-input{width:14px;height:14px;min-height:14px;margin:0}.restrictions{border-top:1px solid #d7dde5;padding-top:.32rem}.restrictions summary{cursor:pointer;color:#475569;font-size:.78rem;font-weight:700}.restriction-summary{color:#64748b;margin-left:.4rem;font-size:.72rem;font-weight:500}.restriction-toggle{margin-top:.38rem}.parent-toggle{border-top:1px solid #d7dde5;align-items:center;padding-top:.32rem}.parent-toggle .input-help{margin-left:auto}.transformations-panel,.key-features-panel{border-top:1px solid #d7dde5;padding-top:.32rem}.transformations-panel summary,.key-features-panel summary{cursor:pointer;color:#475569;font-size:.78rem;font-weight:700}.transformations-panel ul,.key-features-panel ul{color:#4b5563;gap:.16rem;margin:.34rem 0 0;padding-left:1rem;font-size:.76rem;line-height:1.25;display:grid}.restriction-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem;margin-top:.34rem;display:grid}.graph-area{min-width:0;min-height:0;padding:1rem}.app-footer{color:#64748b;background:#f9fafb;border-top:1px solid #d7dde5;flex-wrap:wrap;grid-column:1/-1;justify-content:center;align-items:center;gap:.3rem;min-height:32px;padding:.38rem .75rem;font-size:.75rem;line-height:1.25;display:flex}.app-footer a,.footer-action{color:#475569;font-weight:400}.app-footer .footer-emphasis{font-weight:700}.app-footer a:hover,.footer-action:hover{color:#111827}.footer-action{background:0 0;border:0;padding:0;text-decoration:underline}.footer-action:focus-visible,.app-footer a:focus-visible{outline-offset:2px;border-radius:3px;outline:2px solid #2563eb}.share-confirmation{color:#475569;font-weight:600}.canvas-shell{cursor:default;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;height:100%;min-height:360px;position:relative;overflow:hidden}.canvas-panning,.canvas-panning canvas{cursor:grabbing}.zoom-cursor-indicator{z-index:2;color:#fff;pointer-events:none;background:#0f172adb;border:1px solid #0f172a29;border-radius:50%;place-items:center;width:24px;height:24px;margin-top:10px;margin-left:10px;font-size:18px;font-weight:800;line-height:1;display:grid;position:absolute}.trace-marker{z-index:3;pointer-events:none;background:#fff;border:2px solid #2563eb;border-radius:999px;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0f172a33}.trace-label{z-index:3;color:#111827;pointer-events:none;white-space:nowrap;background:#fffffff0;border:1px solid #2563eb;border-radius:6px;width:188px;padding:.24rem .36rem;font-size:.74rem;font-weight:700;line-height:1.2;position:absolute;box-shadow:0 2px 8px #0f172a24}.intersection-marker{z-index:3;pointer-events:none;background:#facc15;border:2px solid #111827;border-radius:999px;width:11px;height:11px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0f172a47}.intersection-label{z-index:3;color:#111827;cursor:grab;pointer-events:auto;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#fffffff2;border:1px solid #111827;border-radius:6px;width:128px;padding:.22rem .32rem;font-size:.72rem;font-weight:750;line-height:1.2;position:absolute;box-shadow:0 2px 8px #0f172a24}.intersection-label:active{cursor:grabbing}.intersection-connector-layer{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.intersection-connector-layer line{stroke:#47556980;stroke-width:1px}.intersection-list{z-index:3;color:#1f2937;pointer-events:auto;background:#ffffffe6;border:1px solid #94a3b8b3;border-radius:6px;gap:.12rem;max-width:min(230px,100% - 24px);padding:.34rem .44rem;font-size:.72rem;font-weight:650;line-height:1.2;display:grid;position:absolute;bottom:12px;right:12px}.reset-intersection-labels{color:#475569;margin-top:.12rem;padding:.16rem .28rem;font-size:.68rem;font-weight:700}canvas{display:block}@media (width>=851px) and (height<=423px){.app-shell{height:424px;overflow:visible}}@media (width<=850px){.app-shell{grid-template-rows:auto 70vh auto;grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.left-panel{overscroll-behavior:auto;scrollbar-gutter:auto;border-bottom:1px solid #d7dde5;border-right:0;height:auto;max-height:none;overflow:visible}.graph-area{height:auto}.app-footer{padding-block:.55rem}}
