:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#172033;background:#f4f7fb;font-size:16px}
*{box-sizing:border-box}body{margin:0}.container{max-width:1000px;margin:28px auto;padding:0 18px}
header{margin:28px 0}.eyebrow{color:#2563eb;font-weight:700;letter-spacing:.08em;font-size:.8rem}h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:.25em 0}h2{font-size:1.35rem;margin:0 0 15px}h3{font-size:1.08rem;margin:18px 0 10px}
.panel{background:white;border:1px solid #dce4ef;border-radius:14px;padding:22px;margin:18px 0;box-shadow:0 5px 18px #14223a0a}
label{font-weight:650;display:block;margin:10px 0 6px}input{width:100%;padding:12px;border:1px solid #aebdd0;border-radius:8px;font:inherit}.hint{color:#5b687b;font-size:.92rem;line-height:1.55}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0}
button{border:0;background:#1769d2;color:white;border-radius:8px;padding:10px 15px;font:inherit;cursor:pointer}button:hover{filter:brightness(.94)}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #d09b1d;outline-offset:3px}
.examples{margin-top:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.examples button{background:#eaf2ff;color:#174b91;padding:6px 10px}
.formula{font-size:1.18rem;padding:18px;background:#f5f8fd;border-radius:9px;min-height:74px;text-align:left;overflow-x:auto}.formula mjx-container[display="true"]{text-align:left!important;margin:0!important;padding:7px 0}
#comparison{line-height:1.65;font-variant-numeric:tabular-nums}#message{color:#a22;padding:0 4px;font-weight:600}#message:empty{display:none}#results[hidden],.warning[hidden],details[hidden]{display:none}
.warning{border-left:4px solid #c77911;background:#fff6e6;padding:12px 14px;border-radius:6px;color:#734600}
.degree-preview{border:1px solid #dce7f7;background:#f8fbff;border-radius:10px;padding:12px 16px;margin:16px 0}.degree-preview label{margin:0;font-size:1.05rem}.degree-preview input[type=range]{width:100%;accent-color:#1769d2;cursor:pointer;margin:12px 0 3px}.degree-preview .hint{margin:0}
.term-focus{border:1px solid #c9d9f1;border-left:5px solid #1769d2;background:#fbfdff;border-radius:10px;padding:15px 18px;margin:16px 0 20px}
.term-focus-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.term-focus-head h3{margin:0}.term-tag{background:#e5effd;border-radius:999px;padding:4px 9px;color:#194985;font-size:.8rem;font-weight:700}.term-math{padding:10px 0;overflow-x:auto;font-size:1.12rem}.term-math mjx-container[display="true"]{text-align:left!important;margin:6px 0!important}.term-focus p{margin:8px 0;line-height:1.6}.term-focus details{border-top:1px solid #dce7f7;padding-top:10px;margin-top:12px}.term-focus summary{color:#1758ae;cursor:pointer;font-weight:600}
.plot-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}.plot-controls button{min-width:42px;padding:8px 12px}.plot-controls span{color:#5b687b;font-size:.88rem;flex:1 1 260px}
#zoom-in,#zoom-out{font-weight:800;font-size:1.2rem;line-height:1}canvas{width:100%;height:auto;background:white;border:1px solid #e0e6ef;border-radius:8px;display:block}#plot{touch-action:none;cursor:crosshair}#error-plot{margin-top:8px}
#graph-status,#error-status{margin:6px 0;min-height:1.3em;font-variant-numeric:tabular-nums}.legend{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.9rem;margin:12px 0 22px}.legend span:before{content:'';display:inline-block;width:18px;height:3px;background:#1769d2;margin:0 6px 3px 0}.legend span:nth-child(2):before{background:repeating-linear-gradient(to right,#e87524 0 10px,transparent 10px 15px)}.legend span:nth-child(3):before{width:3px;height:14px;background:#64748b}.legend span:nth-child(4):before{background:#8b5cf6}
.steps{line-height:1.7;padding-left:1.5rem}.steps li{margin:.35rem 0}.table-wrap{border:1px solid #e2e8f0;border-radius:9px;overflow-x:auto}
table{width:100%;border-collapse:collapse;table-layout:fixed}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #e2e8f0;vertical-align:middle;overflow-wrap:anywhere}th{background:#f3f7fc;font-size:.88rem}th:nth-child(1){width:11%}th:nth-child(2){width:22%}th:nth-child(3){width:24%}th:nth-child(4){width:23%}th:nth-child(5){width:20%}td{font-variant-numeric:tabular-nums;font-size:.9rem}td mjx-container{font-size:1.05rem!important}td:nth-child(3){overflow-x:auto}.row-degree{padding:5px 13px;min-width:40px;font-weight:800;background:#e9f1fb;color:#174b91}.row-degree[aria-current="step"]{background:#1769d2;color:#fff}tr.selected-term{background:#edf5ff}tr.pending-term{opacity:.56}
.beta{padding:14px;background:#fff8e5;border:1px solid #f2d68b;border-radius:10px}.beta p{line-height:1.6}footer{padding:24px 0;color:#586579} .lab-topbar .lab-tool-version{font-variant-numeric:tabular-nums}
@media(max-width:750px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.container{padding:0 12px}.panel{padding:16px}.term-focus{padding:14px}.formula{font-size:1rem}.term-math{font-size:1rem}}
@media(max-width:570px){.grid{grid-template-columns:1fr}.table-wrap{border:0;overflow:visible}.table-wrap thead{display:none}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:100%}.table-wrap tr{border:1px solid #dce4ed;border-radius:9px;margin:9px 0;padding:8px 9px}.table-wrap td{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:right;border-bottom:1px solid #edf1f6;padding:7px 4px;font-size:.92rem}.table-wrap td:last-child{border-bottom:0}.table-wrap td:before{content:attr(data-label);text-align:left;font-size:.82rem;max-width:42%;min-width:34%;font-weight:700;color:#51637a}.table-wrap td:nth-child(3){overflow-x:auto}.table-wrap td mjx-container{max-width:100%;overflow-x:auto}.legend{gap:10px}.plot-controls{gap:6px}.plot-controls button{padding:9px}.term-focus-head{align-items:flex-start}}

/* Taylor 2.2 – explanatory graph keys and readable multline formula. */
.formula{line-height:1.6;padding:19px 20px}
.formula mjx-container[display="true"]{max-width:100%;overflow-x:auto;overflow-y:hidden}
.error-key{display:flex;flex-wrap:wrap;gap:10px 22px;margin:8px 0 5px;color:#49576a;font-size:.89rem}
.error-key span{display:inline-flex;align-items:center;gap:7px}
.error-key span:before{content:'';display:inline-block;width:19px;height:0;border-top:3px solid #923ac8}
.error-key .error-key-limit:before{border-top:2px dashed #16835b}
.error-key .error-key-point:before{width:9px;height:9px;border:2px solid #923ac8;border-radius:50%}
#error-plot{margin-top:7px}
@media(max-width:570px){.error-key{gap:7px 13px}.formula{padding:13px 10px}}

/* Taylor v2.3 — stronger mathematical typography and independent error zoom */
.formula{font-size:1.32rem;line-height:1.8;padding:22px 23px;overflow-x:auto}
.formula mjx-container[display="true"]{font-size:107%!important;line-height:1.7;max-width:100%;overflow-x:auto;overflow-y:hidden}
.term-math{font-size:1.17rem;line-height:1.6}
.step-recurrence{padding:11px 13px;margin-top:8px;border-radius:8px;background:#f0f5ff;border:1px solid #dce7f7}
#previous-details{border-top:1px solid #dce7f7;margin-top:12px;padding-top:10px}
#previous-details summary{color:#1758ae;cursor:pointer;font-weight:650}
.previous-math{font-size:1.06rem;max-height:260px;overflow:auto}
.error-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0 7px}
.error-controls-title{font-size:.95rem;font-weight:650;margin-right:6px}
.error-controls button{padding:7px 12px;min-height:35px}
#error-zoom-in,#error-zoom-out{font-size:1.2rem;font-weight:800;min-width:39px;line-height:1}
#error-zoom-value{padding:5px 9px;border-radius:6px;border:1px solid #dce7f7;background:#f6f9fd;font-variant-numeric:tabular-nums;font-weight:700}
@media(max-width:750px){.formula{font-size:1.16rem;padding:15px 12px}.term-math{font-size:1.06rem}.previous-math{font-size:1rem}}
@media(max-width:390px){.formula{font-size:1.1rem;padding:13px 8px}.error-controls-title{flex-basis:100%}}

/* Taylor v2.4 — graph autoscale, separately adjustable vertical view. */
.plot-y-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:11px 0 7px}
.plot-y-title{font-size:.95rem;font-weight:650;margin-right:6px}
.plot-y-controls button{padding:7px 12px;min-height:35px}
#plot-zoom-in,#plot-zoom-out{font-size:1.2rem;font-weight:800;min-width:39px;line-height:1}
#plot-zoom-value{padding:5px 9px;border-radius:6px;border:1px solid #dce7f7;background:#f6f9fd;font-variant-numeric:tabular-nums;font-weight:700}
@media(max-width:390px){.plot-y-title{flex-basis:100%}}

/* Taylor v2.5 — distinct local/extended views and accurate error narratives. */
.view-presets{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:12px 0;padding:10px 13px;border:1px solid #dce7f7;background:#f8fbff;border-radius:9px}
.view-presets>span{font-weight:700;margin-right:5px}.view-presets button{background:#e7effb;color:#174b91;border:1px solid #c6d8f1;font-weight:700;padding:8px 14px}
.view-presets button[aria-pressed="true"]{background:#1769d2;color:white;border-color:#1769d2}
.view-presets .hint{flex-basis:100%;margin:0;line-height:1.45}
.remainder-math{font-size:1.15rem;overflow-x:auto;max-width:100%;background:#f5f8fd;border-radius:8px;padding:0 10px}
.remainder-math:empty{display:none}.remainder-math mjx-container[display="true"]{text-align:left!important;overflow-x:auto;margin:10px 0!important}
#actual-error-result,#remainder-result,#segment-result{line-height:1.6;overflow-wrap:anywhere}
@media(max-width:570px){.view-presets>span{flex-basis:100%}.view-presets button{flex:1 1 120px}.remainder-math{font-size:1rem}}

/* Taylor 2.6: explicit finite versus infinite series and endpoint behavior. */
.convergence-detail{border-top:1px solid #e2e8f0;margin-top:14px;padding-top:4px}
.convergence-detail h3{font-size:1.04rem;margin-top:16px;margin-bottom:6px}
#point-convergence-result,#boundary-convergence-result{line-height:1.65;margin:6px 0;overflow-wrap:anywhere}
#finite-vs-infinite{padding:10px 13px;border-left:3px solid #1769d2;background:#f6f9fe;border-radius:4px;margin:12px 0 0}

/* Taylor 2.7: visible warnings and analytic singularities */
.numeric-warning{padding:12px 14px;margin:12px 0;border-radius:7px;border:1px solid #e5a24a;background:#fff7e8;color:#7e4216;line-height:1.5}
.singularity-info{padding:9px 12px;margin:8px 0;border-left:3px solid #c24136;background:#fff7f5;color:#823429;line-height:1.5;font-size:.9rem}
.legend .legend-pole:before{background:#c24136}
