/* Copyright (c) 2026 Saswata Bhattacharyya. I permit free noncommercial teaching and demonstrations with acknowledgment. I require written permission for research or commercial use. I retain permissions granted by earlier licenses; dependencies keep their licenses. I give the full terms at https://saswataiith.github.io/files/CODE-USE-TERMS.txt. */
.lab{max-width:1400px;margin:auto}.lab-assumptions{margin:32px max(5vw,24px);padding:22px;background:#eef3ec;border-left:4px solid #267c70}.lab .section{border-top:1px solid #dce4e1}.lab .section>p{max-width:980px;margin:20px 0}.lab-controls{display:flex;gap:20px;flex-wrap:wrap;align-items:end;margin:26px 0}.lab label{display:flex;flex-direction:column;gap:8px;font-size:14px}.lab input,.lab select{font:inherit;border:1px solid #9ab1a9;border-radius:4px;padding:10px;background:white;width:160px;max-width:100%}.lab fieldset{display:flex;gap:12px;flex-wrap:wrap;border:1px solid #b5c7be;padding:18px;min-width:0}.lab fieldset input{width:105px}.lab legend{font-weight:600}.lab-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.lab button{font:inherit;padding:11px 16px;border:1px solid #779a8e;background:#edf5ef;color:#17313a;border-radius:5px}.lab button:hover{background:#d3eede}.lab button:disabled{opacity:.5;cursor:default}.lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:24px 0}.lab-plot{min-width:0;background:#fff;border:1px solid #dce4e1;border-radius:8px;overflow:hidden}.lab-plot svg{display:block;width:100%;height:auto}.lab-plot text{font:12px 'DM Sans',sans-serif;fill:#17313a}.lab-plot line:not([stroke]):not([class]){stroke:#879b96;stroke-width:1}.lab-plot .gridline{stroke:#dce4e1;stroke-width:1}.lab-plot .zero-line{stroke:#637d72;stroke-dasharray:5 4;stroke-width:1}.lab-readout{padding:18px;background:#edf3ef;border-radius:5px;font-variant-numeric:tabular-nums}.lab details{margin:14px 0;border:1px solid #dce4e1;border-radius:6px;padding:16px 20px}.lab summary{font-weight:600;cursor:pointer}.lab details p{margin:16px 0;max-width:980px}.lab .lab-insight{background:#faf0dd}.lab-thesis{max-width:580px;margin:30px auto}.lab-thesis figcaption{font-size:14px;line-height:1.7;margin-top:15px}#lab-error:empty{display:none}#lab-error{padding:20px;color:#8f250b;background:#fff0e9}.lab a{text-decoration:underline;text-underline-offset:3px}@media(max-width:760px){.lab-grid{grid-template-columns:1fr}.lab input,.lab select{width:140px}}@media(prefers-reduced-motion:reduce){.lab *{scroll-behavior:auto}}

@media(max-width:760px){.lab-plot text{font-size:14px}}

.lab #mohr-step{width:320px;max-width:100%}
.lab-plot>svg{width:100%;height:auto}

.lab .lab-check{flex-direction:row;align-items:center;gap:8px;align-self:center}
.lab .lab-check input{width:auto;padding:0;margin:0}
.lab .formula-box{max-width:100%;overflow-x:auto;overflow-y:hidden}
.lab .formula-box mjx-container[display=true]{margin:.6em 0}

.lab .lab-table{border-collapse:collapse;margin:16px 0;font-variant-numeric:tabular-nums}
.lab .lab-table th,.lab .lab-table td{border:1px solid #dce4e1;padding:6px 12px;text-align:left}
.lab .lab-table th{background:#edf3ef}
.lab details{overflow-x:auto}
.lab .lab-fig{margin:20px 0;padding:10px;background:#fff;border:1px solid #dce4e1;border-radius:8px}
.lab .lab-fig>svg{display:block;width:100%;height:auto}
.lab .lab-fig figcaption{font-size:13.5px;line-height:1.6;margin-top:8px;max-width:980px}
.lab .es-tablewrap{padding:10px 14px;overflow-x:auto;background:#fff;border:1px solid #dce4e1;border-radius:8px;min-width:0}
.lab .es-table{width:100%;font-size:13.5px}
.lab .es-table tr.es-cont td{background:#e8f4ee}
.lab .es-table tr.es-jump td{background:#fbeee6}
.lab .es-caption{font-size:13px;line-height:1.55;margin:6px 4px}
.lab .es-mapwrap{padding:8px}
.lab .es-mapwrap canvas{display:block;width:100%;height:auto;aspect-ratio:1/1;border-radius:4px}
.lab .es-gap{margin-top:22px}
.lab .es-click svg{cursor:crosshair}
.lab .es-bar{display:inline-block;width:70px;height:10px;vertical-align:middle;border-radius:2px;background:linear-gradient(90deg,#226d9b,#fff,#bd4d25)}
.lab .lab-error-inline:empty{display:none}
.lab .lab-error-inline{padding:12px;color:#8f250b;background:#fff0e9}
.lab output{font-weight:600}
.lab .sd-check{margin:18px 0;padding:14px 18px;background:#fff;border:1px solid #b5c7be;border-left:4px solid #267c70;border-radius:6px}
.lab .sd-check .sd-scroll{overflow-x:auto}
.lab .sd-check .lab-table th{text-align:center}
@media (max-width:600px){.lab .sd-check{padding:12px 12px}.lab .sd-check .lab-table th,.lab .sd-check .lab-table td{padding:4px 6px;font-size:13px}}
.lab .sd-check .sd-title,.lab .sd-check .sd-note{margin:6px 0;max-width:980px;font-size:14px;line-height:1.6}
.lab .sd-check td:last-child{color:#267c70;font-weight:600}
.lab .lab-grid-one{grid-template-columns:minmax(0,760px)}
.lab .lab-control-note{align-self:center;margin:0;padding:10px 14px;background:#fff;border:1px solid #dce4e1;border-radius:5px}
.lab .lab-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0;max-width:1100px}
.lab .lab-flow div{position:relative;display:flex;align-items:center;gap:10px;min-height:74px;padding:14px;background:#edf3ef;border:1px solid #b5c7be;border-radius:7px}
.lab .lab-flow div:not(:last-child)::after{content:"→";position:absolute;right:-14px;z-index:2;color:#267c70;font-size:20px;font-weight:700}
.lab .lab-flow strong{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#267c70;color:#fff}
.lab .lab-flow span{font-size:14px;line-height:1.4}
.lab .lab-film{max-width:1000px}
@media(max-width:850px){.lab .lab-flow{grid-template-columns:1fr 1fr}.lab .lab-flow div::after{display:none}}
@media(max-width:520px){.lab .lab-flow{grid-template-columns:1fr}}

.lab .kernel-polar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}
.lab .kernel-polar-panel{margin:0;padding:12px;background:#fff;border:1px solid #b5c7be;border-radius:8px;min-width:0}
.lab .kernel-polar-panel svg{display:block;width:100%;height:auto}
.lab .kernel-polar-panel figcaption{font-size:14px;line-height:1.5;padding:8px 4px}
@media(max-width:950px){.lab .kernel-polar-grid{grid-template-columns:1fr}}

.lab .kernel-polar-panel h4{margin:4px 0 0;text-align:center;font-size:20px}

.lab .kernel-polar-panel h4 mjx-container svg{width:auto;height:1.2em;display:inline-block}
