/* Launch board. Direction A "Depth" via the vendored instance-ui (tokens.css, components.css). */
/* Geist (Vercel), SIL Open Font License 1.1; served locally because the CSP allows only same-origin fonts. */
@font-face{font-family:"Geist";src:url("/assets/fonts/geist-latin-wght.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

body{margin:0;background:var(--bg);color:var(--text)}
.lb-crumb{font-size:var(--t-md);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.lb-head h1{font-size:var(--t-2xl);font-weight:var(--w-bold);letter-spacing:-.02em;margin:var(--s2) 0 var(--s1)}
.lb-head p{margin:0;color:var(--text-2);font-size:var(--t-md);max-width:68ch;line-height:1.5}
.lb-meta{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);font-size:var(--t-xs);color:var(--text-3);margin-top:var(--s2)}
.lb-meta b{font-weight:var(--w-medium);color:var(--text-2)}
.lb-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s3);padding:var(--s4)}
.lb-stats .iu-stat b{font-size:var(--t-xl);font-weight:var(--w-semibold);letter-spacing:-.01em;white-space:normal;overflow-wrap:anywhere}
.lb-token b{display:block;font-weight:var(--w-semibold);color:var(--text)}
.lb-token span{display:block;color:var(--text-3);font-size:var(--t-xs)}
.lb-progress{display:flex;align-items:center;gap:6px;white-space:nowrap}
.lb-unit{color:var(--text-3);margin-left:3px;font-size:var(--t-xs)}
.lb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s3)}
.lb-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s2)}
.lb-card-head b{font-size:var(--t-lg);font-weight:var(--w-semibold)}
.lb-sec{margin:var(--s3) 0 0;font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:var(--w-semibold)}
.lb-addr{overflow-wrap:anywhere}
.lb-foot{font-size:var(--t-xs);color:var(--text-3);line-height:1.6;margin:0}
@media (max-width:1100px){.lb-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
  .lb-stats{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--s3)}
  .lb-cards{grid-template-columns:minmax(0,1fr)}
  .lb-head h1{font-size:var(--t-xl)}
}
[hidden]{display:none !important}
.iu-kv a,.lb-meta a{color:var(--accent);text-decoration:none}
.iu-kv a:hover,.iu-kv a:focus-visible{text-decoration:underline}

/* Board v2: per-token page, wallet positions, wallet actions. */
a.lb-token{color:inherit;text-decoration:none;display:block}
a.lb-token:hover b,a.lb-token:focus-visible b,.lb-card-head a:hover{text-decoration:underline}
.lb-card-head a{color:inherit;text-decoration:none}
.lb-back{font-size:var(--t-sm)}
.lb-back a{color:var(--accent);text-decoration:none}
.lb-back a::before{content:"\2190";margin-right:6px}
.lb-token-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s3);align-items:start}
.lb-token-main,.lb-token-side{display:grid;gap:var(--s3);min-width:0}
.lb-token-side{position:sticky;top:var(--s3)}
.lb-guard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3);margin-bottom:var(--s3)}
.lb-guard-stats .iu-stat b{font-size:var(--t-lg);font-weight:var(--w-semibold);white-space:normal;overflow-wrap:anywhere}
.lb-note{margin:0;font-size:var(--t-sm);color:var(--text-2);line-height:1.55}
.lb-refusals{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px var(--s3);margin:var(--s3) 0 0;padding-top:var(--s3);border-top:1px solid var(--line);font-size:var(--t-sm)}
.lb-refusals dt{font-weight:var(--w-medium);color:var(--text)}
.lb-refusals dd{margin:0;color:var(--text-2)}
.lb-wallet-form{padding:var(--s3) var(--s4);display:grid;gap:var(--s2)}
.lb-wallet-row{display:flex;gap:var(--s2)}
.lb-wallet-row .iu-inp{flex:1;min-width:0}
.lb-act{display:grid;gap:var(--s3)}
.lb-act .iu-seg{width:100%}
.lb-act-row{display:flex;justify-content:space-between;gap:var(--s2);font-size:var(--t-sm);color:var(--text-2)}
.lb-act-row b{color:var(--text);font-weight:var(--w-medium);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-align:right}
.lb-act-msg{font-size:var(--t-sm);line-height:1.5;overflow-wrap:anywhere}
.lb-act-msg[data-tone="down"]{color:var(--down)}
.lb-act-msg[data-tone="ok"]{color:var(--up)}
.lb-wallet-line{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);font-size:var(--t-sm);color:var(--text-2)}
@media (max-width:1000px){.lb-token-grid{grid-template-columns:minmax(0,1fr)}.lb-token-side{position:static;order:-1}}
@media (max-width:640px){.lb-guard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lb-refusals{grid-template-columns:minmax(0,1fr)}.lb-refusals dd{margin-bottom:6px}.lb-wallet-row{flex-direction:column}}
.lb-act .iu-field{display:grid;gap:4px}
.lb-act .iu-inp{width:100%;box-sizing:border-box}

/* Per-token history: the recorded price line and the daily table. */
/* The slot is a grid item of the token column: without a zero minimum its table would widen the page on a phone instead of scrolling in its own region. */
#lb-history-slot{min-width:0}
.lb-token-main>*{min-width:0}
.lb-history-chart svg{display:block;width:100%;height:120px}
.lb-history-axis{display:flex;justify-content:space-between;gap:var(--s3);font-size:var(--t-xs);color:var(--text-3);margin-top:var(--s1)}
.lb-history-axis span:nth-child(2){text-align:center}
.lb-history-axis span:last-child{text-align:right}
@media (max-width:640px){.lb-history-axis{flex-direction:column;gap:2px}.lb-history-axis span,.lb-history-axis span:nth-child(2),.lb-history-axis span:last-child{text-align:left}}
