.box--mathlab{display:flex;flex-direction:column;background:var(--bg,#fff);border:1px solid #b9cfc3;border-radius:12px;box-shadow:0 4px 18px #1737280d;overflow:hidden;min-width:340px;min-height:380px;color:var(--text,#183326)}
.ml-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #dbe7df;cursor:grab;background:#edf5ef;color:#244e3a;flex-shrink:0}.ml-head strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-badge{font-size:10px;padding:4px 8px;border-radius:20px;background:#fff;white-space:nowrap}.ml-tools,.ml-controls{display:flex;gap:7px;align-items:end;flex-wrap:wrap}.ml-tools{padding:8px 12px;border-bottom:1px solid #dbe7df;flex-shrink:0}.ml-controls{margin-bottom:10px}.ml-body{padding:12px;overflow:auto;flex:1;min-height:0;overscroll-behavior:contain}.ml-status{font-size:11px;line-height:1.5;padding:8px 12px;margin:0;border-top:1px solid #dbe7df;flex-shrink:0;color:#56705f}.ml-stage{width:100%;background:#fff;border:1px solid #e0e9e3;border-radius:8px;margin:8px 0}.ml-stage svg{width:100%;height:auto;display:block;touch-action:none}.ml-graph [data-vertex]{cursor:grab}.ml-graph [data-edge]{cursor:pointer}.ml-graph [data-vertex]:focus circle{stroke:#d97706;stroke-width:4}.ml-graph [data-edge]:focus path{stroke:#d97706}.ml-field{display:flex;flex-direction:column;gap:3px;font-size:11px;min-width:64px;max-width:100%;margin:3px 0}.ml-field input,.ml-field select{min-width:0;max-width:100%;width:105px}.ml-field input[type=range]{width:210px}.ml-field input[type=checkbox]{width:18px;height:18px}.ml-field input[aria-label=Function]{width:190px}.ml-field input[aria-label='Vertex label']{width:110px}
.box--mathlab button,.ml-dialog button{border:1px solid #b9cfc3;border-radius:6px;padding:7px 10px;background:#f6faf7;color:#214734;cursor:pointer;font:inherit;font-size:12px;line-height:1.3}.box--mathlab button:hover,.ml-dialog button:hover,.ml-dialog button.active,.ml-proof-steps button.active{background:#dceee3;border-color:#65a283}.box--mathlab button:focus-visible,.ml-dialog button:focus-visible{outline:2px solid #167057;outline-offset:2px}.box--mathlab input,.box--mathlab select,.box--mathlab textarea,.ml-dialog input,.ml-dialog select,.ml-dialog textarea{font:inherit;font-size:12px;border:1px solid #b9cfc3;border-radius:5px;padding:6px;background:#fff;color:#203d2d;box-sizing:border-box}.ml-body textarea{display:block;width:100%;min-height:65px;margin:6px 0;resize:vertical}.ml-body .ml-exact{min-height:84px;font-family:monospace;word-break:break-all}.ml-summary{padding:10px 12px;background:#edf5ef;border-radius:7px;font-size:12px;line-height:1.55;color:#234a34;overflow-wrap:anywhere}.ml-summary span{display:block}.ml-summary p{margin:4px 0}.ml-body details{margin-top:10px;font-size:12px;overflow:auto}.ml-body summary{cursor:pointer;padding:7px 0}.ml-matrix{border-collapse:collapse;font-size:11px;margin:7px 0;max-width:100%}.ml-matrix td,.ml-matrix th{padding:4px 8px;border:1px solid #d2e2d8;text-align:right}.ml-body pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}.ml-proof-steps{display:flex;flex-direction:column;gap:7px;margin-top:12px;font-size:12px}.ml-proof-steps button{text-align:left}.ml-proof-steps p{margin:0 0 7px;padding:8px;line-height:1.6}.ml-error{color:#b42318!important}.ml-dialog{border:1px solid #b9cfc3;border-radius:14px;width:min(720px,90vw);max-height:85vh;overflow:auto;padding:22px;background:#fff;color:#203d2d;box-shadow:0 24px 100px #0004;box-sizing:border-box}.ml-dialog::backdrop{background:#0d231777;backdrop-filter:blur(3px)}.ml-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ml-dialog h2{font-size:22px;margin:0}.ml-dialog p{font-size:13px;line-height:1.6}.ml-dialog>.ml-json{width:100%;height:48vh;resize:vertical;font-family:monospace;white-space:pre}.ml-dialog .ml-tabs{display:flex;gap:6px;margin:16px 0;flex-wrap:wrap}.ml-library-results{display:flex;flex-direction:column;gap:8px}.ml-library-result{border:1px solid #dce7df;border-radius:8px;padding:10px}.ml-library-result p{margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}.ml-library-status{min-height:20px}.dark .box--mathlab{background:#17241e;color:#e2ede6;border-color:#456453}.dark .ml-head,.dark .ml-summary{background:#263e30;color:#e2ede6}.dark .ml-badge{background:#162c20;color:#e2ede6}.dark .ml-status{color:#bed0c4}.dark .ml-tools,.dark .ml-status,.dark .ml-head{border-color:#456453}
/* Advanced Math */
.box--mathlab,.ml-dialog,.ml-launch{--ml-bg:#fff;--ml-soft:#f4f7f4;--ml-tint:#eaf3ee;--ml-ink:#203c30;--ml-muted:#60756a;--ml-line:#d6e2da;--ml-accent:#176b50;--ml-hover:#e1eee6;color:var(--ml-ink)}
.box--mathlab{display:flex;overflow:visible;border-radius:16px;border-color:var(--ml-line);background:var(--ml-bg)}
.ml-surface{width:100%;height:100%;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-radius:inherit;animation:ml-appear .22s ease-out}.box--mathlab>.box__handle{z-index:5}
.ml-head{background:var(--ml-tint);color:var(--ml-ink);border-color:var(--ml-line);min-width:0}.ml-head strong{font-size:14px}.ml-badge{max-width:44%;overflow:hidden;text-overflow:ellipsis;background:var(--ml-bg);color:var(--ml-muted);border:1px solid var(--ml-line)}
.ml-tools{padding:8px 14px;background:var(--ml-bg);border-color:var(--ml-line)}.ml-controls{gap:8px;margin-bottom:14px}.ml-controls:empty{display:none}
.ml-visual{display:flex;flex:0 1 285px;min-height:110px;padding:10px 14px;background:var(--ml-soft);border-bottom:1px solid var(--ml-line);overflow:hidden}.ml-visual[hidden]{display:none}
.ml-stage{margin:0;width:100%;min-width:0;min-height:0;display:flex;background:white;border:1px solid var(--ml-line);border-radius:10px;overflow:hidden}.ml-stage svg{width:100%;height:100%;display:block}
.ml-graph circle,.ml-graph path{transition:stroke .18s,fill .18s,stroke-width .18s}
.ml-body{padding:16px;flex:1 1 185px;min-height:80px;scrollbar-width:thin;scrollbar-color:var(--ml-line) transparent;scroll-padding:12px;user-select:text}.ml-body:focus-visible{outline:2px solid var(--ml-accent);outline-offset:-3px}
.ml-status{padding:9px 14px;background:var(--ml-soft);color:var(--ml-muted);border-color:var(--ml-line);max-height:65px;overflow:auto;user-select:text}
.ml-field{gap:5px;color:var(--ml-muted)}.ml-field[hidden]{display:none!important}.ml-field input{width:116px}.ml-field select{width:150px}.ml-field input[type=range]{width:230px;accent-color:var(--ml-accent);padding:0}.ml-field input[type=checkbox]{accent-color:var(--ml-accent)}.ml-field output{font:500 13px 'IBM Plex Mono',monospace;color:var(--ml-accent)}
.box--mathlab button,.ml-dialog button{border-color:var(--ml-line);border-radius:8px;padding:8px 11px;background:var(--ml-bg);color:var(--ml-ink);font:500 12px/1.35 'Hanken Grotesk',sans-serif;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}
.box--mathlab button:hover,.ml-dialog button:hover,.ml-dialog button.active,.ml-proof-steps button.active{background:var(--ml-hover);border-color:var(--ml-accent)}
.box--mathlab button:active,.ml-dialog button:active{transform:translateY(1px)}.box--mathlab button:disabled,.ml-dialog button:disabled{opacity:.5;cursor:not-allowed}
.box--mathlab button:focus-visible,.ml-dialog button:focus-visible,.ml-launch:focus-visible{outline:2px solid var(--ml-accent);outline-offset:3px}
.box--mathlab input,.box--mathlab select,.box--mathlab textarea,.ml-dialog input,.ml-dialog select,.ml-dialog textarea{font:400 12px/1.5 'Hanken Grotesk',sans-serif;border:1px solid var(--ml-line);border-radius:7px;padding:7px 9px;background:var(--ml-bg);color:var(--ml-ink);box-sizing:border-box}
.box--mathlab :is(input,select,textarea):focus,.ml-dialog :is(input,select,textarea):focus{outline:none;border-color:var(--ml-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ml-accent) 14%,transparent)}
.ml-body textarea{min-height:70px;margin:8px 0 14px}.ml-body .ml-exact{min-height:100px;font:17px 'IBM Plex Mono',monospace;background:var(--ml-tint)}
.ml-summary{padding:12px 14px;background:var(--ml-tint);color:var(--ml-ink);border:1px solid var(--ml-line);border-radius:10px;line-height:1.7}.ml-summary:empty{display:none}
.ml-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--ml-muted);margin:18px 0 10px}.ml-inspector{padding:12px;background:var(--ml-soft);border:1px solid var(--ml-line);border-radius:10px}
.ml-body details{padding:4px 10px;border:1px solid var(--ml-line);border-radius:8px}.ml-body summary{font-weight:600}.ml-matrix td,.ml-matrix th{padding:6px 9px;border-color:var(--ml-line)}.ml-matrix th{background:var(--ml-tint)}.ml-matrix tr:nth-child(even){background:var(--ml-soft)}
.ml-body>p{font-size:12px;line-height:1.7;color:var(--ml-muted)}.ml-proof-steps p{padding:12px;border-left:2px solid var(--ml-accent);background:var(--ml-soft);animation:ml-appear .2s ease}.ml-error:empty{display:none}
.ml-dialog{border-color:var(--ml-line);border-radius:20px;width:min(760px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:24px;background:var(--ml-bg);color:var(--ml-ink);scrollbar-width:thin;animation:ml-enter .22s ease-out;font-family:'Hanken Grotesk',sans-serif}
.ml-dialog::backdrop{background:#12251b55;animation:ml-appear .2s ease}.ml-dialog h2{font:500 27px/1.2 'Spectral',serif;letter-spacing:-.6px}.ml-dialog p{color:var(--ml-muted)}
.ml-dialog.ml-launcher{position:fixed;inset:14px 14px 14px auto;margin:0;width:min(560px,calc(100vw - 28px));height:calc(100dvh - 28px);max-height:none;padding:26px;animation:ml-slide .26s cubic-bezier(.2,.8,.2,1)}
.ml-launcher .ml-intro{margin:10px 0 22px}.ml-dialog .ml-tabs{gap:4px;padding:5px;background:var(--ml-soft);border:1px solid var(--ml-line);border-radius:12px;margin:18px 0 24px}.ml-dialog .ml-tabs button{flex:1;border-color:transparent;background:transparent;padding:8px 6px}.ml-dialog .ml-tabs button.active{background:var(--ml-bg);color:var(--ml-accent);border-color:var(--ml-line);box-shadow:0 2px 5px #1534250a}
.ml-dialog .ml-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}.ml-section-intro{grid-column:1/-1;margin:0 0 4px}.ml-section-intro h3{font-size:18px;margin:0 0 6px;font-weight:600;letter-spacing:-.3px}.ml-section-intro p{margin:0}
.ml-dialog button.ml-choice{display:grid;position:relative;align-content:start;gap:10px;text-align:left;padding:16px;min-height:158px;border-radius:12px;animation:ml-appear .2s ease}.ml-choice-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--ml-tint);color:var(--ml-accent);font:500 21px 'Spectral',serif}.ml-choice strong{font-size:13px}.ml-choice-description{font-size:12px;font-weight:400;color:var(--ml-muted);line-height:1.5}.ml-choice-arrow{position:absolute;right:16px;top:18px;color:var(--ml-muted)}.ml-dialog button.ml-choice:hover{transform:translateY(-2px);box-shadow:0 6px 16px #183c2810}
.ml-preview{grid-column:1/-1;background:#fff;border:1px solid var(--ml-line);border-radius:14px;overflow:hidden;text-align:center;color:#60756a;padding:12px;font-size:12px}.ml-preview svg{display:block;width:100%;height:200px;pointer-events:none}.ml-preview span{display:block;margin-top:6px}
.ml-graph-config{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}.ml-graph-config .ml-field{min-width:0}.ml-graph-config .ml-field:first-child{grid-column:1/-1}.ml-graph-config input,.ml-graph-config select{width:100%;font-size:13px;padding:10px}.ml-graph-config button{grid-column:1/-1}
.ml-dialog .ml-primary{background:var(--ml-accent);color:var(--ml-bg);padding:12px;border-color:var(--ml-accent);font-size:14px}.ml-dialog .ml-primary:hover{background:color-mix(in srgb,var(--ml-accent) 88%,black);color:var(--ml-bg)}
.ml-import{margin-top:24px;padding:16px;background:var(--ml-soft);border:1px dashed var(--ml-line);border-radius:12px}.ml-import strong{font-size:12px}.ml-import p{margin:4px 0 10px;font-size:12px}.ml-import input{width:100%;font-size:11px}.ml-import input::file-selector-button{border:0;border-radius:5px;padding:6px 9px;background:var(--ml-tint);color:var(--ml-accent);margin-right:10px;cursor:pointer}.ml-note{grid-column:1/-1;font-size:11px!important;line-height:1.6}
.ml-launch{display:flex;align-items:center;gap:10px;margin:8px 12px 10px;padding:12px;text-align:left;border:1px solid var(--ml-line);border-radius:12px;background:var(--ml-tint);cursor:pointer;flex-shrink:0;transition:background .18s,box-shadow .18s;min-width:0;font-family:'Hanken Grotesk',sans-serif}
.ml-launch:hover{background:var(--ml-hover);box-shadow:0 3px 12px #173e2912}.ml-launch>span:nth-child(2){flex:1;min-width:0}.ml-launch strong{display:block;font-size:13px}.ml-launch small{display:block;font-size:10px;color:var(--ml-muted);margin-top:3px}.ml-launch-icon{font:500 27px 'Spectral',serif;color:var(--ml-accent)}
.ml-library-result{border-color:var(--ml-line);border-radius:12px;padding:14px;background:var(--ml-soft)}.ml-dialog>button{margin:4px}.ml-dialog>input[type=file]{max-width:100%}.ml-dialog canvas{max-width:100%;height:auto}
.dark :is(.box--mathlab,.ml-dialog,.ml-launch){--ml-bg:#17271f;--ml-soft:#1d3026;--ml-tint:#253e30;--ml-ink:#e3ede6;--ml-muted:#abc0b2;--ml-line:#3c5747;--ml-accent:#7cd4a8;--ml-hover:#304b3b}.dark .ml-head,.dark .ml-summary{background:var(--ml-tint);color:var(--ml-ink)}.dark .ml-badge{background:var(--ml-bg);color:var(--ml-muted)}.dark .ml-error{color:#ffaaa0!important}
@keyframes ml-appear{from{opacity:0}to{opacity:1}}@keyframes ml-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ml-slide{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
.ml-dialog.ml-launcher.ml-closing{animation:ml-slide-out .2s ease-in forwards;pointer-events:none}.ml-dialog.ml-closing::backdrop{animation:ml-appear .2s ease reverse forwards}
@keyframes ml-slide-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(24px)}}
@media(max-width:600px){.ml-dialog.ml-launcher{padding:20px}.ml-dialog .ml-catalog{grid-template-columns:1fr}.ml-dialog button.ml-choice{min-height:110px}.ml-graph-config{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.ml-surface,.ml-dialog,.ml-dialog::backdrop,.ml-proof-steps p,.ml-dialog button.ml-choice{animation:none!important}.box--mathlab *,.ml-dialog *,.ml-launch{transition:none!important}}

.ml-proof-preview{padding:12px;background:var(--ml-soft);border-radius:8px;line-height:1.7}.ml-proof-preview:empty{display:none}.ml-library-section{margin-top:20px;padding:18px;border:1px solid var(--ml-line);border-radius:12px}.ml-library-section h3{font:600 15px "Hanken Grotesk",sans-serif;margin:0 0 14px}.ml-library-section input[type=file]{width:100%}.ml-library-section>button{margin-top:10px}.ml-body details>label{display:block;color:var(--ml-muted);font-size:11px;margin-top:8px}
