:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#263b4b;background:#f3f6f8;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}
button:focus-visible,input:focus-visible,.periodic-scroller:focus-visible{outline:3px solid #448cb5;outline-offset:2px}
.app-shell{max-width:1580px;margin:0 auto;padding:12px 16px 22px}
.site-header{height:55px;display:flex;align-items:center;background:#fff;border:1px solid #e0e7eb;border-radius:13px;padding:7px 14px}
.brand{display:flex;align-items:center;gap:9px;font-size:18px;letter-spacing:-.4px}
.brand-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#e8f0f5;color:#476b86;font-size:24px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:16px;align-items:start;margin-top:13px}
.table-panel{min-width:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;min-height:37px}
.search{display:flex;align-items:center;gap:6px;border:1px solid #dae3ea;border-radius:9px;background:#fff;padding:5px 9px;min-width:225px;max-width:380px;flex:1}
.search span{font-size:22px;color:#8b9fad;line-height:1}.search input{border:0;outline:0;background:transparent;width:100%;font-size:12px;color:#354c5c}
.toggle{display:flex;align-items:center;gap:7px;color:#536a79;font-size:12px;white-space:nowrap;cursor:pointer}
.toggle input{accent-color:#53758c}
.periodic-scroller{background:#fff;border:1px solid #dfe7ed;border-radius:12px;padding:12px 9px 15px;overflow-x:auto;scrollbar-width:thin}
.periodic-grid{min-width:854px;display:grid;grid-template-columns:repeat(18,minmax(42px,1fr));grid-template-rows:15px repeat(7,61px) 10px repeat(2,61px);gap:3px}
.group-label{font-size:10px;text-align:center;align-self:center;color:#8b9caa}
.cell{min-width:0;overflow:hidden;border-radius:5px;padding:4px 2px;background:var(--light);border:1px solid var(--color);display:flex;flex-direction:column;align-items:center;gap:0;transition:opacity .15s,filter .15s,box-shadow .15s,transform .15s}
.cell .num{align-self:flex-start;margin-left:2px;font-size:9px;line-height:1;font-weight:700;color:var(--color)}
.cell .sym{font-size:19px;line-height:1.1;font-weight:750;color:var(--color);margin:auto 0 0}
.cell .name{font-size:8px;line-height:1.2;color:#354a57;max-width:100%;white-space:nowrap;overflow:hidden;margin:auto 0 2px;letter-spacing:-.3px}
.cell.available{box-shadow:inset 0 0 0 .6px var(--color)}
.cell.unavailable{opacity:.33;filter:saturate(.35)}
.cell:hover{opacity:1;filter:none;transform:translateY(-1px);box-shadow:0 4px 10px #1e405218}
.cell.selected{outline:2px solid var(--color);outline-offset:-2px;box-shadow:0 0 0 2px #ffffff,0 0 0 3px var(--color)}
.cell.selected.unavailable{opacity:.65;filter:saturate(.5)}
.cell.selected.unavailable:hover{opacity:.78}
.cell.faded{opacity:.1}.cell.faded:hover{opacity:.6}
.cell.match{outline:2px solid #d7aa61;outline-offset:-2px}
.cell.placeholder{background:#f6f0eb;border:1px dashed #e2d5c8;color:#a48b80;justify-content:center;font-size:10px;line-height:1.5;pointer-events:none}
.fblock-label{font-size:10px;color:#9b887a;align-self:center}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:#536878;margin-top:11px;align-items:center}
.legend span{display:flex;gap:5px;align-items:center}.legend-muted{color:#8798a5}
.swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.swatch.nonmetal{background:#5d748b}.swatch.metal{background:#ac6346}.swatch.noble{background:#247f8d}.swatch.metalloid{background:#657f8c}
.inspector{position:sticky;top:12px;background:#fff;border:1px solid #dfe7ed;border-radius:14px;padding:13px;min-width:0}
.inspector-header{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:12px;margin-bottom:12px}
.card-status{font-size:10px;font-weight:700;border-radius:99px;padding:4px 8px;background:#e6f3ec;color:#307451;text-align:right}
.card-status.virtual{background:#f1f1f1;color:#7b8087}
.atom-preview{display:flex;align-items:center;justify-content:center}
.atom-card{--card-width:242px;width:var(--card-width);height:280px;border-radius:12px;overflow:hidden;background:var(--light);border:2px solid var(--color);box-shadow:0 8px 18px #23435212;display:flex;flex-direction:column;position:relative}
.atom-card.virtual{opacity:.52;filter:grayscale(.35)}
.card-header{position:relative;background:var(--color);color:#fff;height:50px;padding:9px 11px;flex:none}
.card-header strong{display:block;font-size:14px;margin-bottom:2px}.card-header small{display:block;font-size:10px}
.card-z{position:absolute;right:10px;top:8px;width:31px;height:31px;border:1.4px solid #ffffffcc;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:750}
.diagram{flex:1;min-height:0;display:grid;place-items:center;padding:2px 4px}
.diagram svg{width:202px;height:197px;overflow:visible}
.card-footer{margin:0 10px 10px;min-height:32px;display:grid;place-items:center;border-radius:7px;background:var(--chip);color:#324958;font-size:12px;font-weight:650}
.atom-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}
.atom-facts>div{background:#f4f7f9;border-radius:8px;padding:9px 10px;min-width:0}
.atom-facts dt{font-size:10px;color:#7c8f9c}.atom-facts dd{font-size:12px;font-weight:700;margin:4px 0 0;overflow-wrap:anywhere}
.detail-description{font-size:11px;color:#5c7282;line-height:1.55;margin:9px 0}
.science-note{font-size:10px;line-height:1.45;color:#8597a3;border-top:1px solid #e7edf1;padding-top:9px;margin:11px 0 0}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 275px;gap:10px}.atom-card{--card-width:230px;height:267px}.inspector{padding:11px}}
@media(max-width:790px){.app-shell{padding:9px}.workspace{grid-template-columns:1fr}.inspector{position:static;max-width:450px;width:100%;justify-self:center}.table-panel{width:100%}.periodic-scroller{padding:8px}.legend{margin-bottom:9px}}
@media(max-width:470px){.site-header{height:49px}.brand{font-size:16px}.toolbar{align-items:stretch;flex-direction:column;gap:7px}.search{max-width:none;min-width:0;width:100%}.toggle{font-size:11px}.periodic-grid{min-width:790px;grid-template-columns:repeat(18,minmax(40px,1fr));grid-template-rows:15px repeat(7,55px) 10px repeat(2,55px)}}


[hidden]{display:none!important}
.site-header{justify-content:space-between;gap:12px}.top-nav{display:flex;gap:3px;padding:3px;background:#eef2f5;border-radius:10px}
.top-tab{border:0;background:transparent;border-radius:8px;padding:8px 13px;color:#5a7181;font-size:12px;font-weight:700}
.top-tab.active{background:#fff;color:#2b4b60;box-shadow:0 1px 5px #203b481a}
.missions-view{margin-top:13px}
.missions-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:13px}
.mission-stage-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:1}
.stage-tab{border:1px solid #dbe5eb;background:#fff;color:#607789;border-radius:11px;padding:11px 12px;text-align:left;font-size:12px;font-weight:750;min-width:0}
.stage-tab small{display:block;font-size:11px;font-weight:500;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage-tab.active{background:#e7eff5;color:#36566c;border-color:#7d9aad;box-shadow:inset 0 0 0 1px #7d9aad}
.mission-count{font-size:12px;color:#6b8090;white-space:nowrap}
.missions-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:15px;align-items:start}
.mission-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;min-width:0}
.mission-tile{min-height:143px;border:1px solid #dce6ec;border-left:4px solid #678498;border-radius:12px;text-align:left;background:#fff;padding:13px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;color:#314c5e}
.mission-tile:hover{background:#f4f8fa}.mission-tile.active{border-color:#6f899c;background:#eaf2f6}
.mission-tile small{font-size:10px;color:#8194a2}.mission-tile strong{font-size:14px}.mission-tile b{font-size:20px;color:#4d7086}.mission-tile span{font-size:11px;color:#718698;margin-top:auto}
.mission-detail{background:#fff;border:1px solid #dce6eb;border-radius:15px;padding:20px;position:sticky;top:12px;min-height:340px}
.detail-kicker{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#7990a0}.mission-detail h2{font-size:21px;letter-spacing:-.3px;margin:9px 0}
.large-formula{background:#e9f1f6;color:#49687e;border-radius:12px;padding:25px;text-align:center;font-size:36px;font-weight:700;margin:15px 0}
.mission-detail h3{font-size:12px;color:#60798b;margin:20px 0 8px}.mission-detail p{font-size:13px;line-height:1.6;color:#526b7c;margin:4px 0}
.atom-chips{display:flex;flex-wrap:wrap;gap:7px}.atom-chip{display:inline-flex;gap:7px;align-items:center;background:#eef3f6;border:1px solid #dce5ec;border-radius:8px;font-size:17px;color:#405d73;padding:7px 11px;font-weight:700}.atom-chip small{font-size:11px;color:#7890a1}
.reveal-answer{width:100%;padding:12px;border:0;border-radius:9px;background:#55778e;color:white;font-weight:700;font-size:13px;margin-top:18px}
.solution-area{margin-top:12px;padding:14px;border-radius:10px;background:#edf5f2;border:1px solid #cce1d7}.solution-area strong{font-size:17px;color:#316855}.solution-area h3{margin-top:0;color:#39705e}.solution-area small{font-size:11px;color:#537b6b}
.mission-detail .mission-footnote{font-size:10px;color:#8a9daa;margin-top:14px}
@media(max-width:1120px){.missions-layout{grid-template-columns:minmax(0,1fr) 300px}.mission-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:790px){.missions-layout{grid-template-columns:1fr}.mission-detail{position:static;order:-1}.mission-stage-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:450px){.top-tab{padding:7px 9px;font-size:11px}.missions-top{align-items:stretch;flex-direction:column;gap:6px}.mission-list{grid-template-columns:1fr 1fr;gap:7px}.mission-tile{padding:10px;min-height:130px}.stage-tab{padding:8px;font-size:11px}.stage-tab small{font-size:10px}.mission-detail{padding:15px}}


/* Mission diagrams use the same family palette as physical cards; never mistake ionic ratios for molecules. */
.missions-layout{grid-template-columns:minmax(0,1fr) 395px}
.mission-solution-graphic,.mission-visual{margin:10px 0 15px}
.mission-visual .mission-diagram-scroll{overflow-x:auto;scrollbar-width:thin;border:1px solid #dfe7ee;background:#f9fbfc;border-radius:11px;padding:8px 3px}
.mission-visual svg{display:block;width:100%;min-width:335px;height:auto;overflow:visible}
.mission-visual figcaption{font-size:11px;line-height:1.5;color:#5e7685;margin:9px 2px 0}
.solution-area h3{line-height:1.4}
@media(max-width:1120px){.missions-layout{grid-template-columns:minmax(0,1fr) 355px}.mission-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:790px){.missions-layout{grid-template-columns:1fr}.mission-detail{max-width:610px;width:100%;justify-self:center}}


/* Element detail dialog: same family palette as the cards; full screen on phones. */
.details-button{width:100%;padding:10px;border:0;border-radius:9px;background:#55778e;color:#fff;font-weight:700;font-size:12px}
.details-button:hover{background:#486a81}
button.atom-chip{cursor:pointer}button.atom-chip:hover{background:#e2ebf1;border-color:#b9cad6}
body:has(.element-dialog[open]){overflow:hidden}
.element-dialog{width:min(1040px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:16px;background:#fff;color:#263b4b;box-shadow:0 24px 60px #12303f40;overflow:auto;overscroll-behavior:contain}
.element-dialog::backdrop{background:#1d34428c}
.element-dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;padding:13px 16px;background:var(--light);border-bottom:1px solid var(--chip)}
.dialog-symbol{width:46px;height:46px;border-radius:11px;background:var(--color);color:#fff;display:grid;place-items:center;font-weight:750;font-size:19px;flex:none}
.element-dialog-header h2{margin:0;font-size:20px;letter-spacing:-.3px}
.element-dialog-header p{margin:3px 0 0;font-size:12px;color:#5c7282}
.dialog-close{margin-left:auto;width:38px;height:38px;border:0;border-radius:10px;background:#ffffffb3;color:#4d6577;font-size:24px;line-height:1;flex:none}
.dialog-close:hover{background:var(--chip)}
.element-dialog-body{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;padding:20px 22px}
.dialog-side{display:flex;flex-direction:column;align-items:center;gap:12px}
.dialog-side .atom-facts{width:100%;margin:0}
.dialog-main{min-width:0}
.detail-section{padding:0 0 13px;margin:0 0 13px;border-bottom:1px solid #e9eef2}
.detail-section h3{font-size:13px;color:var(--color);margin:0 0 6px}
.detail-section p{font-size:13px;line-height:1.6;color:#455d6d;margin:0}
.detail-section .partner-note{font-size:12px;color:#6c8190;margin-bottom:6px}
.partner-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.partner-list li{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.45;color:#455d6d}
.partner-atoms{display:flex;gap:4px;flex:none}
.element-link{min-width:32px;height:30px;padding:0 6px;border-radius:7px;border:1px solid var(--color);background:var(--light);color:var(--color);font-weight:750;font-size:13px}
.element-link:hover{background:var(--chip)}
.mission-links{display:flex;flex-wrap:wrap;gap:7px}
.mission-link{border:1px solid #dce6ec;border-left:3px solid #678498;background:#f7fafb;border-radius:8px;padding:7px 10px;font-size:12px;color:#36566c;text-align:left}
.mission-link:hover{background:#eaf2f6}.mission-link small{color:#8194a2}.mission-link b{color:#4d7086;margin-left:3px}
.detail-note{background:#f4f7f9;border-radius:9px;padding:11px 12px;font-size:12px;line-height:1.55;color:#5c7282;margin:0 0 13px}
.detail-sources{font-size:10px;line-height:1.45;color:#8597a3;margin:0}
@media(max-width:790px){
  .element-dialog{width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .element-dialog-body{grid-template-columns:1fr;padding:14px}
  .dialog-side .atom-facts{max-width:450px}
}


/* Cosmic-origin coloring: tinted bands behind the cell, full-color bar at the bottom; text keeps ink colors. */
.color-mode{display:flex;align-items:center;gap:3px;padding:3px;background:#eef2f5;border-radius:9px;font-size:12px;color:#62798a;margin-left:auto}
.color-mode span{padding:0 5px 0 6px}
.color-mode button{border:0;background:transparent;border-radius:7px;padding:6px 10px;color:#5a7181;font-size:12px;font-weight:700;white-space:nowrap}
.color-mode button[aria-pressed="true"]{background:#fff;color:#2b4b60;box-shadow:0 1px 5px #203b481a}
.periodic-grid.origin-mode .cell[data-element]{position:relative;background:var(--origin-bg);border-color:#c5d0d8;box-shadow:none;opacity:1;filter:none}
.periodic-grid.origin-mode .cell[data-element]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--origin-bar)}
.periodic-grid.origin-mode .cell .num,.periodic-grid.origin-mode .cell .sym{color:#263b4b}
.periodic-grid.origin-mode .cell .name{margin-bottom:5px}
.periodic-grid.origin-mode .cell.selected{outline:2px solid #263b4b;box-shadow:0 0 0 2px #fff,0 0 0 3px #263b4b}
.periodic-grid.origin-mode .cell.faded{opacity:.12}.periodic-grid.origin-mode .cell.faded:hover{opacity:.6}
.origin-legend .swatch{width:12px;height:12px}
.origin-legend .legend-muted{flex-basis:100%;line-height:1.45}
.origin-summary{width:100%;background:#f4f7f9;border-radius:9px;padding:10px 11px}
.origin-summary h3{font-size:11px;color:#7c8f9c;font-weight:600;margin:0 0 7px}
.origin-summary ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.origin-summary li{display:flex;gap:8px;align-items:flex-start;font-size:11px;line-height:1.45;color:#5c7282}
.origin-summary li .swatch{width:11px;height:11px;border-radius:3px;flex:none;margin-top:2px}
.origin-summary b{display:block;font-size:12px;color:#263b4b}
.origin-summary p{font-size:10px;color:#8597a3;margin:7px 0 0}
@media(max-width:470px){.color-mode{margin-left:0;align-self:flex-start}}
