/* Chemistry apps. Category colours are paired light/dark tints that keep dark text readable (or light text in dark mode). */
.chem,.chem-detail,.chem-explorer,.result-panel{--c-alkali:#ffd2c2;--c-alkaline:#ffe2a8;--c-transition:#cfe0f7;--c-post:#d6e7d0;--c-metalloid:#d9f1e8;--c-nonmetal:#e6f6c9;--c-halogen:#f8e3f4;--c-noble:#e3dcf7;--c-lanthanide:#f6dcc7;--c-actinide:#f2d1d8;--c-unknown:#e6e8ea;--c-ink:#152a30;--heat-lo:#e4f3ee;--heat-hi:#0b5f59}
@media (prefers-color-scheme:dark){.chem,.chem-detail,.chem-explorer,.result-panel{--c-alkali:#6d3b2c;--c-alkaline:#6a5427;--c-transition:#2f4b6b;--c-post:#39543a;--c-metalloid:#285a4b;--c-nonmetal:#4b5f22;--c-halogen:#5d3657;--c-noble:#45386e;--c-lanthanide:#664632;--c-actinide:#62323d;--c-unknown:#3a4145;--c-ink:#f1f6f4;--heat-lo:#1c3a36;--heat-hi:#8cf1dc}}
[data-cat=alkali]{--cat:var(--c-alkali)}[data-cat=alkaline]{--cat:var(--c-alkaline)}[data-cat=transition]{--cat:var(--c-transition)}[data-cat=post]{--cat:var(--c-post)}[data-cat=metalloid]{--cat:var(--c-metalloid)}[data-cat=nonmetal]{--cat:var(--c-nonmetal)}[data-cat=halogen]{--cat:var(--c-halogen)}[data-cat=noble]{--cat:var(--c-noble)}[data-cat=lanthanide]{--cat:var(--c-lanthanide)}[data-cat=actinide]{--cat:var(--c-actinide)}[data-cat=unknown]{--cat:var(--c-unknown)}
.pt-controls{align-items:end}
.pt-scroll{overflow-x:auto;margin-top:.75rem;padding-bottom:.5rem;overscroll-behavior-x:contain;border-radius:var(--radius-sm)}
.pt-grid{display:grid;grid-template-columns:repeat(18,minmax(46px,1fr));grid-template-rows:repeat(7,auto) 14px repeat(2,auto);gap:3px;min-width:860px}
/* Grid placement from data attributes (server HTML carries no inline styles). */
.pt-grid>[data-row="1"]{grid-row:1}.pt-grid>[data-row="2"]{grid-row:2}.pt-grid>[data-row="3"]{grid-row:3}.pt-grid>[data-row="4"]{grid-row:4}.pt-grid>[data-row="5"]{grid-row:5}.pt-grid>[data-row="6"]{grid-row:6}.pt-grid>[data-row="7"]{grid-row:7}.pt-grid>[data-row="8"]{grid-row:8}.pt-grid>[data-row="9"]{grid-row:9}.pt-grid>[data-row="10"]{grid-row:10}
.pt-grid>[data-col="1"]{grid-column:1}.pt-grid>[data-col="2"]{grid-column:2}.pt-grid>[data-col="3"]{grid-column:3}.pt-grid>[data-col="4"]{grid-column:4}.pt-grid>[data-col="5"]{grid-column:5}.pt-grid>[data-col="6"]{grid-column:6}.pt-grid>[data-col="7"]{grid-column:7}.pt-grid>[data-col="8"]{grid-column:8}.pt-grid>[data-col="9"]{grid-column:9}.pt-grid>[data-col="10"]{grid-column:10}.pt-grid>[data-col="11"]{grid-column:11}.pt-grid>[data-col="12"]{grid-column:12}.pt-grid>[data-col="13"]{grid-column:13}.pt-grid>[data-col="14"]{grid-column:14}.pt-grid>[data-col="15"]{grid-column:15}.pt-grid>[data-col="16"]{grid-column:16}.pt-grid>[data-col="17"]{grid-column:17}.pt-grid>[data-col="18"]{grid-column:18}
.pt-cell{display:flex;flex-direction:column;align-items:flex-start;gap:0;min-height:58px;padding:3px 4px;border:1px solid transparent;border-radius:6px;background:var(--cat,var(--surface-2));color:var(--c-ink);font:inherit;line-height:1.1;text-align:left;cursor:pointer;overflow:hidden}
.pt-cell:hover,.pt-cell:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.pt-cell.is-selected{border-color:var(--text);box-shadow:0 0 0 2px var(--accent)}
.pt-cell.is-dim{opacity:.25}
.pt-z{font-size:.62rem;font-weight:600}.pt-sym{font-size:1.15rem;font-weight:800}.pt-name{font-size:.55rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pt-mass{font-size:.55rem;opacity:.85}
/* Phone cells keep number and symbol readable; name and mass are in the selected-element details. */
@media(max-width:700px){.pt-cell{min-height:48px;justify-content:center}.pt-z{font-size:.7rem}.pt-name,.pt-mass{display:none}}
.pt-gap{display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted);border:1px dashed var(--line-strong);border-radius:6px}
.pt-grid[data-colour=block] [data-block=s]{--cat:var(--c-alkali)}.pt-grid[data-colour=block] [data-block=p]{--cat:var(--c-nonmetal)}.pt-grid[data-colour=block] [data-block=d]{--cat:var(--c-transition)}.pt-grid[data-colour=block] [data-block=f]{--cat:var(--c-lanthanide)}
.pt-grid[data-colour=state] [data-state=solid]{--cat:var(--c-unknown)}.pt-grid[data-colour=state] [data-state=liquid]{--cat:var(--c-transition)}.pt-grid[data-colour=state] [data-state=gas]{--cat:var(--c-alkaline)}.pt-grid[data-colour=state] [data-state=unknown]{--cat:transparent;border:1px dashed var(--line-strong)}
.pt-grid[data-colour=en] .pt-cell,.pt-grid[data-colour=mass] .pt-cell{--cat:color-mix(in srgb,var(--heat-hi) calc(var(--heat,0)*100%),var(--heat-lo));color:var(--c-ink)}
.pt-grid[data-colour=en] .pt-cell[data-noheat]{--cat:var(--surface-2);color:var(--muted)}
@supports (color:color-mix(in srgb,red 50%,blue)){.pt-grid[data-colour=en] .pt-cell:not([data-noheat]),.pt-grid[data-colour=mass] .pt-cell{color:color-mix(in srgb,#fff calc(var(--heat,0)*100%),var(--c-ink))}}
@media (prefers-color-scheme:dark){@supports (color:color-mix(in srgb,red 50%,blue)){.pt-grid[data-colour=en] .pt-cell:not([data-noheat]),.pt-grid[data-colour=mass] .pt-cell{color:color-mix(in srgb,#06201c calc(var(--heat,0)*100%),var(--c-ink))}}}
.pt-legend{display:flex;flex-wrap:wrap;gap:.35rem .5rem;margin-top:.75rem;align-items:center;font-size:.85rem}
.pt-key{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border-radius:999px;background:var(--cat);color:var(--c-ink)}
.pt-key[data-colour=block][data-key=s]{--cat:var(--c-alkali)}.pt-key[data-colour=block][data-key=p]{--cat:var(--c-nonmetal)}.pt-key[data-colour=block][data-key=d]{--cat:var(--c-transition)}.pt-key[data-colour=block][data-key=f]{--cat:var(--c-lanthanide)}
.pt-key[data-colour=category][data-key=alkali]{--cat:var(--c-alkali)}.pt-key[data-colour=category][data-key=alkaline]{--cat:var(--c-alkaline)}.pt-key[data-colour=category][data-key=transition]{--cat:var(--c-transition)}.pt-key[data-colour=category][data-key=post]{--cat:var(--c-post)}.pt-key[data-colour=category][data-key=metalloid]{--cat:var(--c-metalloid)}.pt-key[data-colour=category][data-key=nonmetal]{--cat:var(--c-nonmetal)}.pt-key[data-colour=category][data-key=halogen]{--cat:var(--c-halogen)}.pt-key[data-colour=category][data-key=noble]{--cat:var(--c-noble)}.pt-key[data-colour=category][data-key=lanthanide]{--cat:var(--c-lanthanide)}.pt-key[data-colour=category][data-key=actinide]{--cat:var(--c-actinide)}.pt-key[data-colour=category][data-key=unknown]{--cat:var(--c-unknown)}
.pt-key[data-colour=state][data-key=solid]{--cat:var(--c-unknown)}.pt-key[data-colour=state][data-key=liquid]{--cat:var(--c-transition)}.pt-key[data-colour=state][data-key=gas]{--cat:var(--c-alkaline)}.pt-key[data-colour=state][data-key=unknown]{--cat:transparent;border:1px dashed var(--line-strong)}
.pt-scale{display:inline-block;width:min(240px,40vw);height:.7rem;border-radius:.35rem;background:linear-gradient(90deg,var(--heat-lo),var(--heat-hi))}.pt-scale-note{color:var(--muted)}
.chem-head{display:flex;gap:1rem;align-items:center;margin-bottom:.75rem}.chem-head h2{margin:0}.chem-head p{margin:.1rem 0 0}
.chem-badge{display:flex;flex-direction:column;justify-content:center;width:84px;height:84px;padding:.4rem .55rem;border-radius:12px;background:var(--cat);color:var(--c-ink);flex:none}.chem-badge-z{font-size:.8rem;font-weight:700}.chem-badge-sym{font-size:2rem;font-weight:800;line-height:1}
.chem-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:.5rem;margin:0 0 .75rem}
.chem-facts div{padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.chem-facts dt{font-size:.78rem;color:var(--muted);font-weight:600}.chem-facts dd{margin:.15rem 0 0;font-weight:600;overflow-wrap:anywhere}
.chem-explorer{display:grid;gap:1rem}@media (min-width:900px){.chem-explorer{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start}.chem-explorer .chem-detail{position:sticky;top:5rem}}
.ee-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;max-height:min(70vh,760px);overflow:auto;overscroll-behavior:contain}
.ee-list a{display:flex;gap:.75rem;align-items:center;min-height:48px;padding:.3rem .5rem;border-radius:var(--radius-sm);color:var(--text);text-decoration:none}.ee-list a:hover,.ee-list .is-current a{background:var(--accent-soft)}
.ee-sym{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:var(--cat);color:var(--c-ink);font-weight:800;flex:none}.ee-main{display:flex;flex-direction:column;min-width:0}.ee-main small{color:var(--muted)}
.mm-bar{display:flex;height:1.6rem;margin-block:.75rem;border-radius:.5rem;overflow:hidden;background:var(--surface-2)}
.mm-seg{display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--c-ink);min-width:2px}
.mm-seg[data-i="0"]{background:var(--c-transition)}.mm-seg[data-i="1"]{background:var(--c-alkaline)}.mm-seg[data-i="2"]{background:var(--c-nonmetal)}.mm-seg[data-i="3"]{background:var(--c-alkali)}.mm-seg[data-i="4"]{background:var(--c-noble)}.mm-seg[data-i="5"]{background:var(--c-halogen)}.mm-seg[data-i="6"]{background:var(--c-metalloid)}.mm-seg[data-i="7"]{background:var(--c-actinide)}
.mm-output{display:flex;align-items:center;min-height:44px;font-weight:700;font-variant-numeric:tabular-nums}.label-like{display:block;font-weight:600;margin-bottom:.35rem}
.eb-result{font-size:clamp(1.15rem,4.5vw,1.6rem);font-weight:600;line-height:1.6;overflow-wrap:anywhere}.eb-coef{color:var(--accent-strong)}
.ec-config h3{margin:.9rem 0 .25rem;font-size:1rem}.ec-notation{font-size:1.15rem;font-weight:600;overflow-wrap:anywhere}.ec-note{padding:.5rem .7rem;border-left:4px solid var(--warn);background:var(--warn-soft);border-radius:4px}
.ec-diagram{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.ec-sub{display:flex;flex-direction:column;align-items:center;gap:.25rem}.ec-boxes{display:flex}.ec-box{display:grid;place-items:center;width:28px;height:34px;border:1.5px solid var(--line-strong);margin-left:-1.5px;font-size:1rem;font-weight:700;letter-spacing:-.15em;background:var(--surface)}.ec-boxes .ec-box:first-child{margin-left:0}.ec-label{font-size:.85rem;font-weight:700}
