weed-sim / src /client /index.css
Yufok1
Checkpoint Devvit v0.0.26
616ae7b
Raw
History Blame Contribute Delete
52.8 kB
:root {
color-scheme: dark;
--bg: #0d0f12;
--bg-2: #13171a;
--panel: #181d1d;
--panel-2: #202522;
--panel-3: #141819;
--line: #33403c;
--line-soft: #26312f;
--text: #f3f5ef;
--muted: #a7b2ac;
--green: #8bd36f;
--green-2: #476b3d;
--blue: #77b7ef;
--amber: #e5be66;
--red: #e47b68;
--violet: #a88ae8;
--cyan: #65d2d0;
--shadow: rgba(0, 0, 0, 0.36);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background: var(--bg);
color: var(--text);
}
* { box-sizing: border-box; }
html, body, #root { min-height: 100%; margin: 0; }
body {
background:
linear-gradient(180deg, rgba(30, 37, 37, 0.92), rgba(13, 15, 18, 1) 360px),
repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 80px),
var(--bg);
}
button, input, select, textarea { font: inherit; }
button {
min-height: 34px;
border: 1px solid var(--line);
border-radius: 6px;
background: #202724;
color: var(--text);
cursor: pointer;
padding: 0 11px;
}
button:hover:not(:disabled) { border-color: var(--green); background: #273027; }
button:disabled { cursor: not-allowed; opacity: 0.48; }
input, select, textarea {
width: 100%;
border: 1px solid var(--line);
border-radius: 6px;
background: #101416;
color: var(--text);
padding: 8px 10px;
}
textarea { min-height: 104px; resize: vertical; line-height: 1.35; }
code, pre { font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; }
.app-shell {
min-height: 100vh;
display: grid;
grid-template-rows: auto auto auto 1fr;
padding-bottom: 26px;
}
.hud-header {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 8px;
align-items: center;
padding: 6px 10px;
border-bottom: 1px solid var(--line);
background: rgba(16, 19, 20, 0.94);
position: sticky;
top: 0;
z-index: 20;
}
.brand-lockup { display: flex; gap: 8px; align-items: center; min-width: 0; }
.brand-sprite {
width: 30px;
height: 30px;
object-fit: contain;
image-rendering: pixelated;
border: 1px solid var(--line);
border-radius: 6px;
background: #0b0d0e;
}
.brand-lockup h1 { margin: 0; font-size: 14px; line-height: 1.05; letter-spacing: 0; white-space: nowrap; }
.brand-lockup p { display: none; }
.hud-metrics { display: flex; flex-wrap: nowrap; gap: 5px; justify-content: flex-end; overflow-x: auto; scrollbar-width: thin; }
.metric {
min-width: 84px;
padding: 8px 10px;
border: 1px solid var(--line);
border-radius: 7px;
background: #171c1c;
box-shadow: 0 10px 22px var(--shadow);
}
.metric strong { display: block; font-size: 18px; line-height: 1; }
.metric span { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; text-transform: uppercase; }
.hud-metrics .metric {
flex: 0 0 auto;
min-width: 0;
padding: 4px 6px;
border-color: var(--line-soft);
border-radius: 6px;
background: #141919;
box-shadow: none;
display: flex;
align-items: baseline;
gap: 4px;
}
.hud-metrics .metric strong { display: inline; font-size: 13px; line-height: 1; }
.hud-metrics .metric span { display: inline; margin: 0; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.hud-detail-toggle { min-height: 28px; padding: 0 8px; font-size: 12px; }
.hud-details {
grid-column: 1 / -1;
display: flex;
flex-wrap: wrap;
gap: 6px;
padding-top: 2px;
color: var(--muted);
font-size: 11px;
}
.hud-details span {
border: 1px solid var(--line-soft);
border-radius: 6px;
padding: 3px 6px;
background: #101516;
overflow-wrap: anywhere;
}
.mode-tabs {
display: flex;
gap: 7px;
overflow-x: auto;
padding: 10px 16px;
border-bottom: 1px solid var(--line);
background: #121617;
}
.mode-tabs button { flex: 0 0 auto; }
.mode-tabs button.active { background: var(--green); color: #0b140b; border-color: var(--green); font-weight: 800; }
.error-banner {
margin: 12px 16px 0;
padding: 10px 12px;
border: 1px solid #7c3d35;
border-radius: 7px;
background: #341d1a;
color: #ffd7d0;
}
.viewport { padding: 14px 16px; }
.panel {
border: 1px solid var(--line);
border-radius: 8px;
background: rgba(24, 29, 29, 0.96);
box-shadow: 0 12px 30px var(--shadow);
padding: 12px;
min-width: 0;
}
.panel-title {
display: flex;
gap: 10px;
justify-content: space-between;
align-items: baseline;
margin-bottom: 10px;
}
.panel-title h2 { margin: 0; font-size: 16px; line-height: 1.2; letter-spacing: 0; }
.panel-title span { color: var(--muted); font-size: 12px; text-align: right; overflow-wrap: anywhere; }
.primary { background: var(--green); color: #071107; border-color: var(--green); font-weight: 800; }
.danger { background: #3a201c; border-color: #7b3c32; color: #ffe1dc; }
.muted { color: var(--muted); }
.muted-box { color: var(--muted); background: #121717; }
.codebox {
white-space: pre-wrap;
overflow: auto;
max-height: 300px;
border: 1px solid var(--line-soft);
border-radius: 7px;
background: #0d1012;
padding: 10px;
color: #dfe7df;
font-size: 12px;
}
.empty-state {
display: grid;
place-items: center;
min-height: 150px;
border: 1px dashed var(--line);
border-radius: 8px;
color: var(--muted);
text-align: center;
padding: 16px;
}
.play-layout { display: grid; grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.25fr); gap: 14px; align-items: start; }
.synthesis-panel { display: grid; gap: 12px; }
.synthesis-controls { display: flex; gap: 8px; flex-wrap: wrap; }
.on-deck-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.parent-slot {
display: grid;
gap: 10px;
border: 1px solid var(--line);
border-radius: 8px;
background: #14191a;
padding: 10px;
min-height: 500px;
}
.parent-slot.empty { min-height: 220px; }
.parent-header { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.parent-header strong { font-size: 14px; }
.parent-header span { color: var(--muted); font-size: 12px; }
.slot-placeholder { display: grid; place-items: center; min-height: 160px; border: 1px dashed var(--line); border-radius: 7px; color: var(--muted); text-align: center; padding: 14px; }
.parent-body { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 10px; align-items: start; }
.parent-img { width: 116px; height: 116px; object-fit: contain; image-rendering: pixelated; border: 1px solid var(--line); border-radius: 8px; background: #0b0e0f; }
.parent-stats h3 { margin: 0; font-size: 17px; line-height: 1.18; overflow-wrap: anywhere; }
.parent-stats p { margin: 4px 0 8px; color: var(--muted); font-size: 12px; }
.stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.stat-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stat-row { min-width: 0; padding: 7px 8px; border: 1px solid var(--line-soft); border-radius: 6px; background: #101516; }
.stat-row span { display: block; color: var(--muted); font-size: 11px; }
.stat-row strong { display: block; margin-top: 2px; overflow-wrap: anywhere; }
.swatch-line { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: 12px; min-width: 0; }
.swatch { display: inline-block; width: 28px; height: 18px; border: 1px solid #090b0c; border-radius: 4px; flex: 0 0 auto; }
.color-pair { display: flex; gap: 6px; align-items: center; color: var(--muted); font-size: 11px; }
.trait-matrix { display: grid; border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; font-size: 12px; }
.matrix-head, .matrix-row { display: grid; grid-template-columns: 92px minmax(90px, 1fr) 86px; gap: 8px; align-items: center; padding: 6px 8px; border-bottom: 1px solid var(--line-soft); }
.matrix-head { background: #202725; color: var(--muted); font-weight: 800; }
.matrix-row:last-child { border-bottom: 0; }
.matrix-row code { color: #d6efd0; overflow-wrap: anywhere; }
.meter { height: 8px; border: 1px solid var(--line); border-radius: 999px; background: #0c1011; overflow: hidden; }
.meter i { display: block; height: 100%; background: linear-gradient(90deg, var(--red), var(--amber), var(--green)); }
.lineage-box { display: grid; gap: 6px; font-size: 12px; }
.lineage-box div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 8px; padding: 6px 8px; background: #101516; border: 1px solid var(--line-soft); border-radius: 6px; }
.lineage-box b { color: var(--muted); }
.lineage-box span { overflow-wrap: anywhere; }
.slot-actions, .card-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.prediction-strip { display: grid; gap: 10px; border: 1px solid var(--line); border-radius: 8px; padding: 10px; background: #151a1b; }
.prediction-strip h3 { margin: 0; font-size: 14px; }
.prediction-strip p { margin: 0; }
.prediction-head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.prediction-head span { color: var(--muted); font-size: 12px; text-align: right; }
.distribution-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.dist-card { display: grid; gap: 5px; padding: 8px; border: 1px solid var(--line-soft); border-radius: 7px; background: #0f1314; }
.dist-card strong { color: var(--muted); font-size: 12px; }
.dist-card b { font-size: 18px; }
.dist-card span { color: var(--muted); font-size: 11px; }
.sparkline { display: flex; gap: 1px; align-items: end; height: 64px; overflow: hidden; }
.sparkline i { display: block; flex: 1 1 2px; min-width: 2px; background: var(--cyan); border-radius: 2px 2px 0 0; }
.cloud-row { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 8px; align-items: center; }
.cloud-row span { color: var(--muted); font-size: 12px; }
.cloud-row div { display: flex; flex-wrap: wrap; gap: 3px; }
.cloud-row i { width: 13px; height: 13px; border-radius: 3px; border: 1px solid rgba(0,0,0,0.4); }
.registry-panel { min-width: 0; }
.registry-head { display: grid; gap: 6px; margin-bottom: 10px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { border: 1px solid var(--green-2); background: #182318; color: #dff5d8; border-radius: 999px; padding: 4px 8px; font-size: 12px; }
.chip.alt { border-color: #315675; background: #15202a; color: #d7ecff; }
.registry-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); gap: 10px; max-height: calc(100vh - 238px); overflow: auto; padding-right: 2px; }
.seed-card { position: relative; display: grid; grid-template-rows: auto auto auto auto 1fr auto; gap: 8px; border: 1px solid var(--line); border-radius: 8px; background: #151a1b; padding: 10px; min-height: 288px; }
.seed-card.selected { border-color: var(--green); box-shadow: 0 0 0 1px rgba(139, 211, 111, 0.45); }
/* Rarity ladder edge (9 tiers, ascending heat). common stays edgeless to keep quiet. */
.seed-card.rarity-uncommon { border-left: 3px solid #6f9e5a; }
.seed-card.rarity-notable { border-left: 3px solid var(--blue); }
.seed-card.rarity-rare { border-left: 3px solid var(--cyan); }
.seed-card.rarity-elite { border-left: 3px solid var(--violet); }
.seed-card.rarity-exotic { border-left: 3px solid #e07bc4; }
.seed-card.rarity-legendary { border-left: 3px solid var(--amber); }
.seed-card.rarity-mythic { border-left: 3px solid #f0873f; }
.seed-card.rarity-primordial { border-left: 3px solid #ffd76a; box-shadow: 0 0 0 1px rgba(255, 215, 106, 0.35), 0 0 18px rgba(255, 215, 106, 0.22); }
.rarity-chip { text-transform: capitalize; color: var(--muted); }
.rarity-chip.rarity-uncommon { color: #8fca74; border-color: rgba(111, 158, 90, 0.5); }
.rarity-chip.rarity-notable { color: var(--blue); border-color: rgba(119, 183, 239, 0.5); }
.rarity-chip.rarity-rare { color: var(--cyan); border-color: rgba(101, 210, 208, 0.5); }
.rarity-chip.rarity-elite { color: var(--violet); border-color: rgba(168, 138, 232, 0.5); }
.rarity-chip.rarity-exotic { color: #e07bc4; border-color: rgba(224, 123, 196, 0.5); }
.rarity-chip.rarity-legendary { color: var(--amber); border-color: rgba(229, 190, 102, 0.6); }
.rarity-chip.rarity-mythic { color: #f0873f; border-color: rgba(240, 135, 63, 0.6); }
.rarity-chip.rarity-primordial { color: #ffd76a; border-color: rgba(255, 215, 106, 0.7); }
/* Session-new plants: badge + pulse so fresh breeds are findable in the alphabetized list. */
.new-badge {
position: absolute;
top: -7px;
right: -6px;
z-index: 3;
padding: 2px 7px;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.06em;
color: #0d0f12;
background: var(--green);
border-radius: 999px;
box-shadow: 0 1px 6px rgba(139, 211, 111, 0.5);
}
.seed-card.is-new { border-color: var(--green); animation: newPulse 1.4s ease-in-out infinite alternate; }
@keyframes newPulse {
from { box-shadow: 0 0 0 1px rgba(139, 211, 111, 0.3); }
to { box-shadow: 0 0 0 1px rgba(139, 211, 111, 0.72), 0 0 16px rgba(139, 211, 111, 0.22); }
}
/* Per-card Expand affordance -> full-window plant view */
.card-expand {
position: absolute;
top: 6px;
left: 6px;
z-index: 2;
min-height: 0;
padding: 2px 8px;
font-size: 10px;
line-height: 1.5;
border-radius: 999px;
background: rgba(13, 15, 18, 0.72);
border-color: var(--line-soft);
color: var(--muted);
opacity: 0.6;
transition: opacity 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.seed-card:hover .card-expand, .seed-card:focus-within .card-expand { opacity: 1; }
.card-expand:hover:not(:disabled) { color: var(--text); border-color: var(--green); background: #202724; }
.plant-modal-backdrop {
position: fixed;
inset: 0;
z-index: 120;
display: flex;
align-items: center;
justify-content: center;
padding: 16px;
background: rgba(6, 8, 9, 0.78);
backdrop-filter: blur(3px);
overflow: auto;
}
.plant-modal {
width: min(940px, 100%);
max-height: 92vh;
overflow: auto;
display: grid;
gap: 12px;
padding: 16px;
border: 1px solid var(--line);
border-radius: 12px;
background: var(--panel);
box-shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
}
.plant-modal-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.plant-modal-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.plant-modal-title h2 { margin: 0; font-size: 22px; overflow-wrap: anywhere; }
.plant-modal-close { min-height: 30px; }
.plant-modal-body { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 16px; align-items: start; }
.plant-modal-stage { display: grid; gap: 10px; }
.plant-modal-img { width: 100%; aspect-ratio: 1; object-fit: contain; image-rendering: pixelated; border: 1px solid var(--line); border-radius: 10px; background: #0b0e0f; }
.plant-modal-swatches { display: grid; gap: 6px; }
.plant-modal-info { display: grid; gap: 10px; align-content: start; }
.plant-modal-sub { margin: 0; color: var(--muted); font-size: 13px; }
.plant-modal .stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.plant-modal .trait-matrix { max-height: none; }
@media (max-width: 680px) {
.plant-modal-body { grid-template-columns: 1fr; }
.plant-modal-img { max-width: 320px; justify-self: center; }
.plant-modal .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.seed-head { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 10px; align-items: center; }
.seed-img { width: 60px; height: 60px; object-fit: contain; image-rendering: pixelated; border: 1px solid var(--line); border-radius: 7px; background: #0b0e0f; }
.seed-head h3 { margin: 0; font-size: 15px; line-height: 1.18; overflow-wrap: anywhere; }
.seed-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.seed-meta-line { display: flex; gap: 6px; flex-wrap: wrap; color: var(--muted); font-size: 11px; }
.seed-meta-line span { padding: 3px 6px; border: 1px solid var(--line-soft); border-radius: 999px; background: #101516; }
.mini-traits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.seed-description { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.35; }
.lab-layout { display: grid; grid-template-columns: 220px minmax(420px, 1fr) 360px; gap: 14px; align-items: start; }
.facet-panel { position: sticky; top: 136px; }
.facet-panel > button { width: 100%; margin-bottom: 10px; }
.facet-list { display: grid; gap: 12px; }
.facet-list section { display: grid; gap: 6px; }
.facet-list h3 { margin: 0; color: var(--muted); font-size: 12px; text-transform: uppercase; }
.facet-list button { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 30px; background: #101516; }
.facet-list button.active { border-color: var(--green); background: #1c2b1a; }
.lab-center, .lab-right { display: grid; gap: 14px; min-width: 0; }
.parallel-wrap { overflow: auto; }
.parallel { display: block; width: 100%; min-width: 650px; height: auto; }
.parallel line { stroke: #52605d; stroke-width: 1; }
.parallel text { fill: var(--muted); font-size: 11px; }
.parallel polyline { fill: none; stroke-width: 1.5; opacity: 0.58; }
.table-wrap { overflow: auto; max-height: 450px; border: 1px solid var(--line-soft); border-radius: 8px; }
.table-wrap.short { max-height: 300px; }
table { width: 100%; border-collapse: collapse; min-width: 960px; font-size: 12px; }
th, td { padding: 7px 8px; border-bottom: 1px solid var(--line-soft); text-align: left; vertical-align: top; }
th { position: sticky; top: 0; z-index: 2; background: #202726; color: var(--muted); font-weight: 800; }
th button { min-height: 24px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
td { background: #121718; }
tr:nth-child(even) td { background: #151a1b; }
tr.selected-row td { background: #1d2b1c; }
td .swatch + .swatch { margin-left: 4px; }
.wheel-wrap { display: grid; gap: 10px; justify-items: center; }
.wheel { position: relative; width: min(100%, 260px); aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--line); background: conic-gradient(red, yellow, lime, cyan, blue, magenta, red); box-shadow: inset 0 0 0 34px rgba(13, 15, 18, 0.18), inset 0 0 0 72px rgba(13, 15, 18, 0.2); }
.wheel::after { content: ""; position: absolute; inset: 50%; width: 6px; height: 6px; transform: translate(-50%, -50%); border-radius: 50%; background: #ffffff; }
.wheel i { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #000; }
.wheel-legend { display: grid; gap: 3px; color: var(--muted); font-size: 11px; text-align: center; }
.predictor { display: grid; gap: 9px; }
.predictor label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }
.predictor .prediction-strip { max-height: 520px; overflow: auto; }
.newick-box { min-height: 110px; }
.deck-layout { display: grid; gap: 14px; }
.deck-hero { display: grid; gap: 12px; }
.deck-toolbar { display: flex; gap: 8px; flex-wrap: wrap; }
.gauges { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 10px; }
.gauge { --tone: var(--green); min-height: 132px; display: grid; place-items: center; border-radius: 8px; background: conic-gradient(var(--tone) var(--pct), #111617 0); border: 1px solid var(--line); padding: 10px; }
.gauge > div { width: 100%; aspect-ratio: 1; max-width: 104px; display: grid; place-items: center; align-content: center; text-align: center; border-radius: 50%; background: #101516; border: 1px solid var(--line-soft); }
.gauge b { display: block; font-size: 18px; }
.gauge span { display: block; color: var(--muted); font-size: 12px; }
.gauge.green { --tone: var(--green); }
.gauge.blue { --tone: var(--blue); }
.gauge.amber { --tone: var(--amber); }
.gauge.red { --tone: var(--red); }
.gauge.violet { --tone: var(--violet); }
.deck-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.deck-cols.wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.portal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.portal { display: grid; gap: 5px; text-align: left; align-content: start; min-height: 84px; padding: 10px; }
.portal b { font-size: 15px; }
.portal span { color: var(--muted); font-size: 12px; }
.tray-list { display: grid; gap: 8px; }
.tray-item { display: grid; grid-template-columns: 44px minmax(0, 1fr) 30px; gap: 9px; align-items: center; border: 1px solid var(--line-soft); border-radius: 7px; background: #101516; padding: 8px; }
.tray-item img, .tray-item .genetic-sprite { width: 44px; height: 44px; object-fit: contain; image-rendering: pixelated; }
.tray-item b, .tray-item span { display: block; overflow-wrap: anywhere; }
.tray-item span { color: var(--muted); font-size: 12px; }
.bars { display: grid; gap: 8px; }
.bar-row { display: grid; grid-template-columns: 96px minmax(0, 1fr) 34px; gap: 8px; align-items: center; font-size: 12px; }
.bar-row span { overflow-wrap: anywhere; }
.bar { height: 10px; border: 1px solid var(--line); border-radius: 999px; background: #0e1213; overflow: hidden; }
.bar i { display: block; height: 100%; background: var(--amber); }
.gamut-strip { display: flex; flex-wrap: wrap; gap: 4px; min-height: 52px; align-content: flex-start; }
.gamut-strip i { width: 22px; height: 22px; border: 1px solid #090b0c; border-radius: 5px; }
.list { display: grid; gap: 8px; }
.row { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; align-items: center; padding: 8px; border: 1px solid var(--line-soft); border-radius: 7px; background: #101516; }
.row b, .row span { display: block; overflow-wrap: anywhere; }
.row span { color: var(--muted); font-size: 12px; }
.compact-list { max-height: 360px; overflow: auto; }
.signal-row, .receipt-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 8px; border: 1px solid var(--line-soft); border-radius: 7px; background: #101516; }
.signal-row.warn { border-color: #7d6536; }
.signal-row.error { border-color: #7c3d35; }
.signal-row b, .signal-row span, .signal-row code, .receipt-row b, .receipt-row span, .receipt-row code { display: block; overflow-wrap: anywhere; }
.signal-row span, .receipt-row span { color: var(--muted); font-size: 12px; }
.signal-row code, .receipt-row code { margin-top: 4px; color: #c7d2cc; font-size: 11px; }
.signal-row small, .receipt-row small { color: var(--muted); white-space: nowrap; }
.bus-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.kv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; margin-top: 10px; }
.kv-grid div { padding: 8px; border: 1px solid var(--line-soft); border-radius: 7px; background: #101516; }
.kv-grid span { display: block; color: var(--muted); font-size: 11px; }
.kv-grid b { display: block; margin-top: 3px; overflow-wrap: anywhere; }
.task-list { display: grid; gap: 8px; max-height: 340px; overflow: auto; }
.task-row { display: grid; gap: 4px; padding: 8px; border: 1px solid var(--line-soft); border-radius: 7px; background: #101516; }
.task-row b, .task-row span, .task-row code { overflow-wrap: anywhere; }
.task-row span { color: var(--muted); font-size: 12px; }
.task-row code { font-size: 11px; color: #d7e2d8; }
.receipts-panel { grid-column: 1 / -1; }
.receipts-box { max-height: 420px; }
.market-layout { display: grid; gap: 14px; }
.market-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 14px; align-items: start; }
.market-gauges .metric { min-width: 130px; }
.market-listings { display: grid; gap: 10px; max-height: 620px; overflow: auto; }
.market-card { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 10px; padding: 10px; border: 1px solid var(--line-soft); border-radius: 8px; background: #101516; }
.market-card img, .market-card .genetic-sprite { width: 88px; height: 88px; object-fit: contain; image-rendering: pixelated; align-self: center; }
.market-card-head { display: flex; justify-content: space-between; gap: 8px; align-items: start; }
.market-card-head b, .market-card p, .market-card code { overflow-wrap: anywhere; }
.market-card-head span { color: var(--cyan); font-size: 12px; text-transform: uppercase; }
.market-card p { margin: 6px 0; color: var(--muted); font-size: 12px; }
.market-card code { display: block; margin-top: 7px; color: #d7e2d8; font-size: 11px; }
.market-stats { display: flex; flex-wrap: wrap; gap: 6px; }
.market-stats span { border: 1px solid var(--line-soft); border-radius: 6px; padding: 4px 6px; color: var(--muted); font-size: 11px; }
.market-selected { grid-template-columns: 42px minmax(0, 1fr) repeat(3, auto); }
.market-selected button { white-space: nowrap; }
.passport-strip { display: grid; gap: 8px; margin-top: 10px; }
.passport-mini { display: grid; gap: 7px; padding: 8px; border: 1px solid var(--line-soft); border-radius: 7px; background: #0f1415; }
.passport-mini b, .passport-mini span { display: block; overflow-wrap: anywhere; }
.passport-mini > div:first-child span { color: var(--muted); font-size: 12px; margin-top: 2px; }
.request-board { align-self: stretch; }
.request-list { display: grid; gap: 8px; }
.request-card { display: grid; gap: 7px; padding: 9px; border: 1px solid var(--line-soft); border-radius: 7px; background: #101516; }
.request-head { display: flex; justify-content: space-between; gap: 8px; align-items: start; }
.request-head b, .request-head span, .request-card p, .request-card code { overflow-wrap: anywhere; }
.request-head span { color: var(--cyan); font-size: 12px; }
.request-card p { margin: 0; color: var(--muted); font-size: 12px; }
.request-card code { color: #d7e2d8; font-size: 11px; }
.request-matches { display: grid; gap: 7px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line-soft); }
.request-matches > b { color: var(--cyan); font-size: 12px; text-transform: uppercase; }
.match-row { display: grid; grid-template-columns: minmax(0, 1fr) 54px; gap: 5px 8px; align-items: center; padding: 7px; border: 1px solid var(--line-soft); border-radius: 6px; background: #0f1415; }
.match-row span { overflow-wrap: anywhere; }
.match-row strong { color: var(--green); text-align: right; }
.match-row small { grid-column: 1 / -1; color: var(--muted); overflow-wrap: anywhere; }
.agent-overlay { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 40; display: grid; justify-items: end; gap: 8px; pointer-events: none; }
.agent-overlay.open { justify-items: stretch; }
.agent-tab { pointer-events: auto; min-width: 148px; justify-self: end; background: var(--blue); border-color: var(--blue); color: #061018; font-weight: 800; box-shadow: 0 12px 24px var(--shadow); }
.agent-panel { pointer-events: auto; max-height: 34vh; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #151a1b; box-shadow: 0 20px 46px rgba(0,0,0,0.56); padding: 10px; display: grid; grid-template-rows: auto minmax(0, 1fr); }
.agent-title { display: flex; justify-content: space-between; gap: 10px; align-items: start; margin-bottom: 10px; }
.agent-title h2 { margin: 0; font-size: 16px; }
.agent-title p { margin: 3px 0 0; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.agent-link-body { min-height: 0; display: grid; grid-template-columns: minmax(220px, 1.2fr) minmax(190px, 0.85fr) minmax(210px, 0.9fr) minmax(260px, 1.25fr); gap: 10px; }
.agent-link-card { min-height: 0; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 7px; background: #0f1415; padding: 8px; display: grid; gap: 8px; align-content: start; }
.agent-primary-card { border-color: rgba(95, 197, 140, 0.5); background: #101816; }
.agent-link-card > b { font-size: 12px; text-transform: uppercase; color: var(--cyan); }
.agent-handoff-copy { margin: 0; color: #dfe9e2; font-size: 12px; line-height: 1.35; }
.agent-handoff-button { width: 100%; min-height: 40px; font-size: 14px; }
.agent-handoff-state { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; color: var(--muted); font-size: 12px; }
.agent-handoff-state code { color: #d7e2d8; font-size: 11px; overflow-wrap: anywhere; }
.scope-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.scope-grid label { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 12px; }
.agent-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.compact-actions { margin: 0; }
.agent-message { margin: 0; color: var(--amber); font-size: 12px; overflow-wrap: anywhere; }
.agent-advanced { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 5px 8px; padding-top: 4px; border-top: 1px solid var(--line-soft); color: var(--muted); font-size: 11px; }
.agent-advanced code { color: #d7e2d8; overflow-wrap: anywhere; }
.agent-tool-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; overflow: auto; }
.agent-tool-list span { border: 1px solid var(--line-soft); border-radius: 6px; padding: 6px; color: #dfe9e2; font-size: 12px; overflow-wrap: anywhere; }
.agent-tool-list small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.agent-events { grid-template-rows: auto minmax(0, 1fr); }
.agent-log { display: grid; gap: 6px; min-height: 0; max-height: calc(34vh - 86px); overflow: auto; border: 1px solid var(--line-soft); border-radius: 7px; padding: 8px; background: #0e1213; }
.log-line { display: grid; grid-template-columns: 72px 52px minmax(0, 1fr); gap: 6px; align-items: start; padding: 6px; border: 1px solid var(--line-soft); border-radius: 6px; background: #121718; }
.log-line span { color: var(--muted); font-size: 11px; }
.log-line b { color: var(--cyan); font-size: 11px; text-transform: uppercase; }
.log-line p { margin: 0; font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.log-line.error b { color: var(--red); }
.log-line.market b { color: var(--amber); }
.log-line.tool b { color: var(--green); }
.splash { min-height: 100vh; display: grid; align-items: center; padding: 16px; }
.splash-inner { max-width: 520px; margin: 0 auto; display: grid; gap: 12px; text-align: center; }
.splash-inner img { width: 92px; height: 92px; object-fit: contain; image-rendering: pixelated; margin: 0 auto; }
.splash-inner h1 { margin: 0; font-size: 30px; letter-spacing: 0; }
.splash-inner p { margin: 0; color: var(--muted); }
.splash-inner button { width: min(100%, 260px); justify-self: center; }
@media (max-width: 1280px) {
.agent-overlay.open {
left: 12px;
right: 12px;
top: auto;
bottom: 12px;
width: auto;
grid-template-rows: auto minmax(0, 1fr);
justify-items: stretch;
}
.agent-overlay.open .agent-tab { justify-self: end; width: auto; }
.agent-overlay.open .agent-panel { max-height: 46vh; min-height: 0; }
.agent-overlay.open .agent-link-body { grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: auto; align-content: start; padding-right: 2px; }
.agent-overlay.open .agent-link-card { overflow: visible; }
.agent-overlay.open .agent-tool-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 180px; overflow: auto; }
.agent-overlay.open .agent-log { max-height: 190px; }
}
@media (max-width: 1220px) {
.play-layout, .lab-layout { grid-template-columns: 1fr; }
.facet-panel { position: static; }
.deck-cols.wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.registry-grid { max-height: none; }
}
@media (max-width: 820px) {
.deck-cols, .bus-layout, .market-grid { grid-template-columns: 1fr; }
.market-selected { grid-template-columns: 42px minmax(0, 1fr); }
.market-selected button { width: 100%; }
.hud-header { grid-template-columns: minmax(0, 1fr) auto; gap: 6px; padding: 6px 8px; }
.hud-metrics { grid-column: 1 / -1; justify-content: flex-start; flex-wrap: nowrap; }
.hud-header .metric { flex: 0 0 auto; }
.metric { flex: 1 1 95px; }
.on-deck-grid, .distribution-grid, .gauges, .portal-grid { grid-template-columns: 1fr; }
.parent-body { grid-template-columns: 92px minmax(0, 1fr); }
.parent-img { width: 92px; height: 92px; }
.agent-overlay.open { left: 8px; right: 8px; top: auto; bottom: 8px; width: auto; }
.agent-tab { width: 100%; justify-self: stretch; }
.agent-panel { max-height: 76vh; min-height: 0; }
.agent-link-body { grid-template-columns: 1fr; overflow: auto; align-content: start; }
.agent-link-card { overflow: visible; }
.agent-tool-list, .scope-grid { grid-template-columns: 1fr; max-height: none; }
.agent-log { max-height: 220px; }
.log-line { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
.viewport { padding: 10px; }
.hud-header { padding: 6px 8px; }
.mode-tabs { padding: 8px 10px; }
.matrix-head, .matrix-row { grid-template-columns: 86px minmax(0, 1fr); }
.matrix-head span:nth-child(3), .matrix-row .meter { grid-column: 1 / -1; }
.slot-actions, .card-buttons { grid-template-columns: 1fr; }
.cloud-row { grid-template-columns: 1fr; }
.bar-row { grid-template-columns: 82px minmax(0, 1fr) 30px; }
}
.matrix-fx { position: fixed; inset: 0; pointer-events: none; overflow: visible; }
.matrix-fx-canvas { position: fixed; inset: 0; z-index: 0; width: 100vw; height: 100vh; pointer-events: none; mix-blend-mode: screen; transition: opacity 180ms ease; }
.app-shell > :not(.matrix-fx) { position: relative; z-index: 1; }
.matrix-fx-dock { position: fixed; left: 12px; bottom: 12px; z-index: 80; pointer-events: none; display: grid; gap: 8px; width: min(360px, calc(100vw - 24px)); }
.matrix-fx-tab { pointer-events: auto; width: 48px; min-width: 48px; justify-self: start; background: #142016; border-color: #345d38; color: #c9ffd2; font-weight: 800; box-shadow: 0 12px 24px var(--shadow); }
.matrix-fx-panel { pointer-events: auto; display: grid; gap: 9px; max-height: 56vh; overflow: auto; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(14, 18, 17, 0.94); box-shadow: 0 18px 42px rgba(0,0,0,0.52); }
.matrix-fx-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.matrix-fx-head b { color: var(--green); font-size: 13px; text-transform: uppercase; }
.matrix-fx-panel label { display: grid; gap: 4px; color: var(--muted); font-size: 11px; text-transform: uppercase; }
.matrix-fx-panel select, .matrix-fx-panel input { min-height: 30px; padding: 5px 7px; }
.matrix-fx-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.matrix-fx-sliders { display: grid; gap: 6px; }
.matrix-fx-sliders label { grid-template-columns: 64px minmax(0, 1fr); align-items: center; text-transform: none; }
.matrix-fx-pills { display: flex; gap: 7px; flex-wrap: wrap; }
.matrix-fx-pills button.active { background: var(--green); border-color: var(--green); color: #071107; font-weight: 800; }
@media (max-width: 820px) {
.matrix-fx-dock { left: 8px; right: auto; bottom: 62px; width: min(340px, calc(100vw - 16px)); }
.matrix-fx-panel { max-height: 52vh; }
.matrix-fx-grid { grid-template-columns: 1fr; }
}
.matrix-fx-config { display: grid; gap: 12px; max-width: 920px; }
.matrix-fx-config .matrix-fx-head { align-items: start; }
.matrix-fx-config .matrix-fx-head h2 { margin: 0; font-size: 16px; }
.matrix-fx-config .matrix-fx-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.matrix-fx-config label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; text-transform: uppercase; }
.matrix-fx-config select, .matrix-fx-config input { min-height: 32px; }
.matrix-fx-config input[type="color"] { padding: 3px; }
/* Compact squared UI pass */
:root { --corner: 2px; }
button, input, select, textarea,
.panel, .metric, .seed-card, .parent-slot, .parent-img, .seed-img, .genetic-sprite,
.stat-row, .trait-matrix, .lineage-box div, .prediction-strip, .dist-card,
.chip, .portal, .tray-item, .row, .signal-row, .receipt-row, .task-row,
.kv-grid div, .market-card, .request-card, .passport-mini, .match-row,
.agent-panel, .agent-link-card, .agent-tool-list span, .agent-log, .log-line,
.matrix-fx-panel, .matrix-fx-card, .swatch, .gamut-strip i, .table-wrap,
.codebox, .empty-state, .listing-detail {
border-radius: var(--corner) !important;
}
.play-layout { grid-template-columns: minmax(300px, 0.72fr) minmax(620px, 1.55fr); }
.on-deck-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.parent-slot { min-height: 0; padding: 8px; gap: 8px; }
.parent-body { grid-template-columns: 84px minmax(0, 1fr); gap: 8px; }
.parent-img { width: 84px; height: 84px; }
.parent-stats h3 { font-size: 15px; }
.parent-stats p { margin-bottom: 6px; }
.stat-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.stat-row { padding: 5px 6px; }
.stat-row span { font-size: 10px; }
.stat-row strong { font-size: 12px; }
.parent-slot .trait-matrix { max-height: 150px; overflow: auto; }
.parent-slot .lineage-box { max-height: 120px; overflow: auto; }
.slot-actions, .card-buttons { gap: 5px; }
.registry-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.seed-card { min-height: 0; padding: 8px; gap: 6px; }
.seed-head { grid-template-columns: 48px minmax(0, 1fr); gap: 8px; }
.seed-img { width: 48px; height: 48px; }
.seed-head h3 { font-size: 14px; }
.seed-head p, .seed-description { font-size: 11px; }
.seed-meta-line { gap: 4px; }
.seed-meta-line span { padding: 2px 5px; border-radius: var(--corner); }
.mini-traits { gap: 5px; }
.color-pair { gap: 4px; }
.market-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.market-tabs button { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 38px; }
.market-tabs button.active { border-color: var(--green); background: #1d2a1b; }
.market-tabs span, .market-tabs b { overflow-wrap: anywhere; }
.market-browser { display: grid; gap: 10px; }
.market-browser-head { display: grid; gap: 8px; }
.market-controls { display: grid; grid-template-columns: minmax(180px, 1fr) 150px 150px; gap: 8px; }
.market-browser-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 0.42fr); gap: 10px; align-items: start; }
.friendly-listings { max-height: min(680px, calc(100vh - 260px)); }
.friendly-card { cursor: pointer; transition: border-color 120ms ease, background 120ms ease; }
.friendly-card:hover, .friendly-card:focus, .friendly-card.focused { border-color: var(--green); background: #151c18; outline: none; }
.friendly-card img, .friendly-card .genetic-sprite { width: 76px; height: 76px; }
.evidence-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.evidence-row span { border: 1px solid var(--line-soft); background: #111817; color: var(--green); padding: 3px 5px; font-size: 11px; }
.listing-actions { margin-top: 8px; display: flex; justify-content: flex-end; }
.listing-actions button { min-height: 28px; padding: 0 8px; }
.listing-detail { position: sticky; top: 128px; display: grid; gap: 9px; padding: 10px; border: 1px solid var(--line-soft); background: #101516; min-height: 180px; }
.listing-detail-head { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 9px; align-items: center; }
.listing-detail-head img, .listing-detail-head .genetic-sprite { width: 78px; height: 78px; object-fit: contain; image-rendering: pixelated; border: 1px solid var(--line-soft); background: #0b0e0f; }
.listing-detail h3 { margin: 0; font-size: 17px; line-height: 1.15; overflow-wrap: anywhere; }
.listing-detail-head span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.listing-detail-block { display: grid; gap: 5px; }
.listing-detail-block b { color: var(--cyan); font-size: 12px; text-transform: uppercase; }
.listing-detail-block p { margin: 0; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.listing-detail code { color: #d7e2d8; font-size: 11px; overflow-wrap: anywhere; }
.detail-evidence { margin-top: 0; }
@media (min-width: 1180px) {
.registry-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
.market-browser-grid { grid-template-columns: 1fr; }
.listing-detail { position: static; order: -1; }
.market-controls { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
.on-deck-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.parent-body { grid-template-columns: 1fr; }
.parent-img { width: 64px; height: 64px; }
.stat-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.parent-slot .trait-matrix { max-height: 120px; }
.registry-grid { grid-template-columns: repeat(auto-fill, minmax(156px, 1fr)); }
.market-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.friendly-card { grid-template-columns: 64px minmax(0, 1fr); }
.friendly-card img, .friendly-card .genetic-sprite { width: 64px; height: 64px; }
}
@media (max-width: 560px) {
.on-deck-grid { gap: 6px; }
.parent-slot { padding: 6px; }
.parent-header { align-items: start; }
.parent-header strong { font-size: 12px; }
.parent-header span { font-size: 10px; }
.parent-stats h3 { font-size: 13px; }
.parent-stats p, .swatch-line, .lineage-box, .matrix-head, .matrix-row { font-size: 10px; }
.slot-actions { grid-template-columns: 1fr; }
}
/* Breeding deck full-width correction */
.play-layout {
grid-template-columns: 1fr !important;
gap: 10px;
align-items: stretch;
}
.synthesis-panel,
.registry-panel {
grid-column: 1 / -1;
width: 100%;
}
.synthesis-panel {
gap: 9px;
}
.synthesis-controls {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
gap: 6px;
}
.synthesis-controls button {
min-height: 30px;
padding: 0 8px;
}
.on-deck-grid {
grid-template-columns: repeat(2, minmax(280px, 1fr)) !important;
gap: 8px;
align-items: stretch;
}
.parent-slot {
min-height: 0;
align-content: start;
}
.parent-slot.empty {
min-height: 156px;
}
.slot-placeholder {
min-height: 96px;
}
.parent-slot .trait-matrix {
max-height: 112px;
}
.parent-slot .lineage-box {
max-height: 86px;
}
.prediction-strip {
min-height: 0;
}
.registry-grid {
max-height: none;
}
@media (min-width: 1320px) {
.parent-body { grid-template-columns: 96px minmax(0, 1fr); }
.parent-img { width: 96px; height: 96px; }
.registry-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
.on-deck-grid {
grid-template-columns: repeat(2, minmax(230px, 1fr)) !important;
overflow-x: auto;
padding-bottom: 4px;
scroll-snap-type: x proximity;
}
.parent-slot {
min-width: 230px;
scroll-snap-align: start;
}
}
.leaderboard-panel { display: grid; gap: 10px; }
.leaderboard-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 6px; }
.leaderboard-tabs button { min-height: 32px; padding: 0 8px; }
.leaderboard-tabs button.active { border-color: var(--green); background: #1d2a1b; color: #eaffdf; font-weight: 800; }
.leaderboard-list { display: grid; gap: 7px; max-height: min(620px, calc(100vh - 300px)); overflow: auto; padding-right: 2px; }
.leaderboard-card { display: grid; grid-template-columns: 48px 30px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px; border: 1px solid var(--line-soft); border-radius: var(--corner); background: #101516; }
.leaderboard-card strong { color: var(--green); font-size: 14px; }
.leaderboard-card .swatch { width: 24px; height: 24px; }
.leaderboard-card b, .leaderboard-card span { display: block; overflow-wrap: anywhere; }
.leaderboard-card div span { color: var(--muted); font-size: 11px; }
.leaderboard-card em { justify-self: end; color: var(--amber); font-style: normal; font-weight: 800; white-space: nowrap; }
@media (max-width: 560px) {
.leaderboard-card { grid-template-columns: 42px 26px minmax(0, 1fr); }
.leaderboard-card em { grid-column: 3; justify-self: start; }
}
/* Agent UI action driver */
.agent-action-strip {
margin: 8px 16px 0;
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto auto;
align-items: center;
gap: 8px;
min-height: 34px;
padding: 6px 8px;
border: 1px solid rgba(95, 197, 140, 0.48);
border-radius: var(--corner);
background: rgba(11, 17, 17, 0.94);
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.32);
}
.agent-action-strip span {
color: var(--green);
font-size: 11px;
font-weight: 800;
text-transform: uppercase;
white-space: nowrap;
}
.agent-action-strip b {
color: #eef7ed;
font-size: 13px;
overflow-wrap: anywhere;
}
.agent-action-strip small {
color: var(--muted);
font-size: 11px;
overflow-wrap: anywhere;
}
.agent-action-strip button {
min-height: 28px;
padding: 0 10px;
}
.agent-action-strip.market { border-color: rgba(255, 190, 92, 0.56); }
.agent-action-strip.transfer { border-color: rgba(133, 207, 255, 0.72); }
.agent-action-strip.error { border-color: rgba(255, 113, 104, 0.72); }
.agent-action-strip.syncing b::after {
content: '';
display: inline-block;
width: 18px;
height: 2px;
margin-left: 8px;
vertical-align: middle;
background: linear-gradient(90deg, transparent, var(--green), transparent);
animation: agentScan 0.9s linear infinite;
}
.app-shell.agent-syncing .viewport {
box-shadow: inset 0 1px 0 rgba(139, 211, 111, 0.16);
}
.agent-highlight {
border-color: var(--amber) !important;
box-shadow: 0 0 0 1px rgba(255, 190, 92, 0.45), 0 0 18px rgba(255, 190, 92, 0.18) !important;
animation: agentPulse 1.25s ease-in-out infinite alternate;
}
.agent-highlight-soft {
border-color: rgba(139, 211, 111, 0.62) !important;
box-shadow: 0 0 0 1px rgba(139, 211, 111, 0.2) !important;
}
@keyframes agentPulse {
from { box-shadow: 0 0 0 1px rgba(255, 190, 92, 0.35), 0 0 10px rgba(255, 190, 92, 0.1); }
to { box-shadow: 0 0 0 1px rgba(255, 190, 92, 0.72), 0 0 20px rgba(255, 190, 92, 0.25); }
}
@keyframes agentScan {
from { transform: translateX(-4px); opacity: 0.35; }
to { transform: translateX(5px); opacity: 1; }
}
@media (max-width: 700px) {
.agent-action-strip {
margin: 6px 10px 0;
grid-template-columns: minmax(0, 1fr) auto;
}
.agent-action-strip span,
.agent-action-strip small {
grid-column: 1;
}
.agent-action-strip button {
grid-column: 2;
grid-row: 1 / span 3;
align-self: stretch;
}
}
/* Solo broker marketplace */
.offer-list { display: grid; gap: 7px; margin-top: 8px; }
.offer-row {
display: grid;
gap: 7px;
padding: 8px;
border: 1px solid var(--line-soft);
border-radius: var(--corner);
background: #0f1415;
}
.offer-row b, .offer-row span, .offer-row p { overflow-wrap: anywhere; }
.offer-row span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.offer-row p { margin: 4px 0 0; color: #dbe7db; font-size: 12px; }
.offer-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.offer-actions button { min-height: 28px; padding: 0 6px; }
@media (max-width: 560px) {
.offer-actions { grid-template-columns: 1fr; }
}
/* Bloom visibility pass */
.bloom-panel { border-color: #476b3d; background: linear-gradient(180deg, rgba(28, 39, 32, 0.98), rgba(18, 23, 24, 0.98)); }
.bloom-leader-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
.bloom-leader-card, .deck-bloom-card, .bloom-teaser {
display: grid;
gap: 7px;
border: 1px solid var(--line-soft);
background: #101716;
padding: 8px;
min-width: 0;
}
.bloom-leader-card { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
.bloom-rank {
display: grid;
place-items: center;
min-width: 34px;
height: 30px;
border: 1px solid var(--green-2);
background: #172417;
color: var(--green);
font-weight: 800;
font-size: 12px;
}
.bloom-leader-main { display: grid; gap: 5px; min-width: 0; }
.bloom-leader-main b, .deck-bloom-card b { overflow-wrap: anywhere; }
.bloom-leader-main span, .deck-bloom-card span, .bloom-teaser span { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.bloom-leader-stats { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 5px; }
.bloom-leader-stats span { border: 1px solid var(--line-soft); padding: 3px 5px; color: #dfe9e2; font-size: 11px; }
.palette-strip { display: grid; grid-template-columns: repeat(6, minmax(12px, 1fr)); gap: 3px; min-height: 14px; }
.palette-strip i { display: block; min-height: 14px; border: 1px solid rgba(0,0,0,0.5); }
.deck-bloom-block { display: grid; gap: 8px; margin-top: 10px; }
.deck-bloom-block > b { color: var(--green); text-transform: uppercase; font-size: 12px; letter-spacing: 0; }
.deck-bloom-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.deck-bloom-card { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.deck-bloom-card .palette-strip { grid-column: 1 / -1; }
.bloom-teaser { border-color: #476b3d; background: #131d16; }
.bloom-teaser b { color: var(--green); }
@media (max-width: 820px) {
.deck-bloom-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
.bloom-leader-grid, .deck-bloom-strip { grid-template-columns: 1fr; }
}
/* Genomic registry filter lab */
.inventory-filter-lab {
display: grid;
gap: 8px;
border: 1px solid var(--line-soft);
background: #101617;
padding: 8px;
}
.filter-lab-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
}
.filter-lab-head b {
color: var(--green);
font-size: 12px;
text-transform: uppercase;
}
.filter-lab-head button {
min-height: 26px;
padding: 0 8px;
font-size: 12px;
}
.filter-lab-grid {
display: grid;
grid-template-columns: minmax(180px, 1.6fr) repeat(5, minmax(104px, 1fr));
gap: 7px;
}
.filter-lab-grid label {
display: grid;
gap: 4px;
color: var(--muted);
font-size: 10px;
text-transform: uppercase;
}
.filter-lab-grid input,
.filter-lab-grid select {
min-height: 30px;
padding: 5px 7px;
font-size: 12px;
}
.filter-search {
grid-column: span 2;
}
.inventory-filter-lab,
.bloom-leader-card,
.deck-bloom-card,
.bloom-rank,
.palette-strip i,
.bloom-teaser,
.bloom-leader-stats span {
border-radius: var(--corner) !important;
}
@media (max-width: 1180px) {
.filter-lab-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.filter-search { grid-column: span 3; }
}
@media (max-width: 720px) {
.filter-lab-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.filter-search { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
.filter-lab-grid { grid-template-columns: 1fr; }
}
/* First-run Lab Intake */
.lab-intake {
display: grid;
gap: 9px;
border: 1px solid #476b3d;
background: linear-gradient(180deg, rgba(22, 32, 24, 0.98), rgba(14, 19, 19, 0.98));
padding: 9px;
}
.lab-intake-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
}
.lab-intake-head b {
display: block;
color: var(--green);
font-size: 13px;
text-transform: uppercase;
}
.lab-intake-head span {
display: block;
margin-top: 2px;
color: var(--muted);
font-size: 11px;
}
.lab-intake-head button {
min-height: 28px;
padding: 0 8px;
}
.intake-steps {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 7px;
}
.intake-step {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 7px;
align-items: start;
border: 1px solid var(--line-soft);
background: #101617;
padding: 7px;
min-width: 0;
}
.intake-step.done {
border-color: var(--green-2);
background: #132017;
}
.intake-step > strong {
display: grid;
place-items: center;
width: 24px;
height: 24px;
border: 1px solid var(--line-soft);
color: var(--muted);
font-size: 11px;
}
.intake-step.done > strong {
border-color: var(--green);
color: var(--green);
}
.intake-step b,
.intake-step span {
display: block;
overflow-wrap: anywhere;
}
.intake-step b {
font-size: 12px;
}
.intake-step span {
margin-top: 2px;
color: var(--muted);
font-size: 10px;
}
.intake-step button {
grid-column: 1 / -1;
min-height: 28px;
padding: 0 8px;
font-size: 12px;
}
.chase-picker {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 7px;
}
.chase-picker button {
min-height: 30px;
padding: 0 8px;
font-size: 12px;
}
.chase-picker button.active {
border-color: var(--green);
background: var(--green);
color: #071107;
font-weight: 800;
}
.intake-objective {
margin: 0;
color: #dfe9e2;
font-size: 12px;
}
.lab-intake,
.intake-step,
.intake-step > strong,
.chase-picker button {
border-radius: var(--corner) !important;
}
@media (max-width: 1080px) {
.intake-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.chase-picker { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
.intake-steps,
.chase-picker { grid-template-columns: 1fr; }
}