/* Post-mint control room: visible wallet, machine preview, earnings and history */
body.dashboard-page{background:#080e0b}
.dashboard-page .command-hero{padding-top:32px;padding-bottom:40px;gap:25px}
.dashboard-page .command-hero h1{font-size:clamp(43px,5vw,72px);line-height:1}
.dashboard-page .command-hero-copy>p{font-size:14px;line-height:1.8;color:#b8c9b3}
.dashboard-page .command-tabs{gap:4px}
.dashboard-page .command-tab{font-size:13px;letter-spacing:.05em}
.dashboard-page .command-panel-head p{max-width:540px}
.dashboard-page .command-workspace{margin-top:20px;margin-bottom:25px}
.dashboard-page .dashboard-sim{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border:1px solid #4a6842;background:#19281d;padding:20px;margin:18px 0}
.dashboard-page .dashboard-sim>div{min-width:130px;flex:1}
.dashboard-page .dashboard-sim span,.dashboard-page .dashboard-sim b{display:block;color:#bfcea9;font:900 10px 'Courier New',monospace}
.dashboard-page .dashboard-sim strong{display:block;color:#c6ff49;font:900 38px Impact,sans-serif;margin:5px 0}
.dashboard-page .dashboard-sim small{display:block;color:#9eb392;font:800 10px 'Courier New',monospace;margin-top:7px}
.dashboard-page .dashboard-sim button{padding:15px 16px;border:1px solid #738750;background:#1d2d1c;color:#dff4bd;font:900 10px 'Courier New',monospace;cursor:pointer}
.dashboard-page .dashboard-sim #bay-auto-mode{background:#c6ff49;color:#121b0c;border-color:#c6ff49}
.dashboard-page .dashboard-sim button:hover{filter:brightness(1.13)}
@media(max-width:800px){.dashboard-page .command-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.dashboard-page .command-tabs button{padding:14px 5px;font-size:10px}.dashboard-page .dashboard-sim button{flex:1}}

/* Four readable wallet cards shown together, before machine details. */
.dashboard-page .command-kpis.dashboard-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:24px}
.dashboard-page .command-kpis.dashboard-summary article{padding:19px 16px;min-width:0;border:1px solid #41583a;background:#172119}
.dashboard-page .command-kpis.dashboard-summary article strong{font:900 clamp(27px,2.7vw,43px) Impact,'Arial Black',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;margin:12px 0;color:#eaf4df}
.dashboard-page .command-kpis.dashboard-summary article span{font:900 10px 'Courier New',monospace;color:#b4c5a8;letter-spacing:.06em}
.dashboard-page .command-kpis.dashboard-summary article small{font:800 9px/1.6 'Courier New',monospace;color:#a8bba2}
.dashboard-page .command-kpis.dashboard-summary .dashboard-power-tile{background:#1b2c1c;border-color:#77974e}
.dashboard-page .command-kpis.dashboard-summary .dashboard-power-tile strong{color:#c6ff49}
@media(max-width:650px){.dashboard-page .command-kpis.dashboard-summary{gap:7px}.dashboard-page .command-kpis.dashboard-summary article{padding:15px 12px}.dashboard-page .command-kpis.dashboard-summary article strong{font-size:28px}}

/* Static-only rarity art. No iframe, loader, WebGL, obsolete NFT art or
   interlocking visibility conditions. Photo becomes visible after wallet read. */
.dashboard-page .machine-visual.rcpts-photo-frame {
  position:absolute;
  inset:55px 24px 50px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:radial-gradient(ellipse at 50% 67%,#182819 0%,#08130d 72%);
  border:1px solid rgba(133,167,96,.10);
}
.dashboard-page .machine-visual.rcpts-photo-frame #machine-image:not([hidden]) {
  display:block!important;
  position:relative!important;
  z-index:1!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
}
.dashboard-page .machine-visual.rcpts-photo-frame #machine-image[hidden] {
  display:none!important;
}
.dashboard-page .rcpts-photo-placeholder {
  position:absolute;inset:0;z-index:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:13px;text-align:center;padding:22px;
  color:#aabca6;font:900 10px 'Courier New',monospace;letter-spacing:.075em;
}
.dashboard-page .rcpts-photo-placeholder[hidden] {display:none!important}
.dashboard-page .rcpts-photo-mark {
  display:grid;place-items:center;
  width:90px;height:90px;border:1px solid #445f3a;border-radius:50%;
  color:#ccfa71;background:#152618;font:900 40px Impact,'Arial Black',sans-serif;
}
.dashboard-page .rcpts-photo-placeholder strong {
  color:#e2ffae;font:900 28px Impact,'Arial Black',sans-serif;letter-spacing:.04em
}
.dashboard-page .machine-visual.rcpts-photo-frame .machine-image-provenance {display:none!important}
@media(max-width:650px) {
  .dashboard-page .machine-visual.rcpts-photo-frame {inset:54px 10px 48px}
  .dashboard-page .rcpts-photo-mark{width:67px;height:67px;font-size:30px}
  .dashboard-page .rcpts-photo-placeholder strong{font-size:22px}
}

/* The PNG stays beneath the same-size WebGL iframe. A hidden iframe can
   prevent Three.js from drawing, so fade by opacity, not visibility/display. */
.dashboard-page .machine-visual.rcpts-photo-frame .rcpts-3d-layer{
 position:absolute;inset:0;z-index:4;width:100%;height:100%;display:block;
 opacity:0;pointer-events:none;background:transparent;transition:opacity .35s ease;
}
.dashboard-page .machine-visual.rcpts-photo-frame .rcpts-3d-layer.is-ready{
 opacity:1;pointer-events:auto;
}
.dashboard-page .machine-visual.rcpts-photo-frame .rcpts-3d-layer iframe{
 display:block;width:100%;height:100%;border:0;background:transparent;touch-action:none;
}
.dashboard-page .rcpts-3d-hint{
 position:absolute;bottom:10px;right:10px;z-index:2;pointer-events:none;
 font:800 9px 'Courier New',monospace;letter-spacing:.04em;
 background:#071008dc;border:1px solid #4e6642;color:#d6f8c1;padding:8px 10px;
}
.dashboard-page .rcpts-3d-layer:not(.is-ready) .rcpts-3d-hint{display:none}
@media(prefers-reduced-motion:reduce){.dashboard-page .machine-visual.rcpts-photo-frame .rcpts-3d-layer{transition:none}}


/* 2026-10-18: Vercel cleanUrls redirects .html pages. The 3D child must
   remain paintable under the approved photo; don't set iframe opacity:0,
   because browser compositors may skip its WebGL render. */
.dashboard-page .machine-visual.rcpts-photo-frame .rcpts-3d-layer{
 opacity:1!important;
 pointer-events:none;
 z-index:4;
}
.dashboard-page .machine-visual.rcpts-photo-frame .rcpts-3d-layer.is-ready{pointer-events:auto}
.dashboard-page .machine-visual.rcpts-photo-frame #machine-image:not([hidden]){
 z-index:5!important;
 position:relative!important;
 opacity:1!important;
 transition:opacity .3s ease!important;
}
.dashboard-page .machine-visual.rcpts-photo-frame.is-3d-ready #machine-image:not([hidden]){
 opacity:0!important;
 pointer-events:none!important;
}

/* Individual token imagery, with transparent disclosure when using rarity art. */
.dashboard-page .wallet-printer-image{position:relative}
.dashboard-page .wallet-printer-image .rcpts-card-art-label{
 position:absolute;left:9px;bottom:33px;max-width:calc(100% - 18px);
 background:rgba(5,13,9,.90);border:1px solid #465b42;
 padding:5px 7px;color:#c3d5bb;font:800 8px/1.35 'Courier New',monospace;
 pointer-events:none;text-align:left;letter-spacing:.025em
}
.dashboard-page .wallet-printer-image img{object-fit:contain!important;background:#0a120d}
.dashboard-page .wallet-printer-image-missing[hidden]{display:none!important}


/* Dashboard: lightweight token inventory below the large interactive 3D viewer.
   No per-NFT images or empty metadata illustration tiles. */
.dashboard-page #wallet-printers-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;margin-top:14px;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-list-item{
  min-width:0;min-height:132px;display:flex;flex-direction:column;
  justify-content:space-between;overflow:hidden;aspect-ratio:auto;
  padding:13px;background:#0c1511;border:1px solid #30493a;
  transform:none;box-shadow:none;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-list-item.is-active{
  background:#152517;border-color:#a0d843;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-list-item:hover{
  transform:none;border-color:#789e48!important;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-list-item.is-listed{
  opacity:.7;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-list-item .rcpts-printer-row-top{
  display:flex;justify-content:space-between;align-items:center;gap:9px;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-row-top strong{
  color:#e8f0df;font:900 14px/1.3 Arial,sans-serif;white-space:nowrap;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-tier{
  color:#c6ff49;font:900 10px 'Courier New',monospace;
  text-align:right;overflow-wrap:anywhere;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-tier.is-pending{color:#899a8b}
.dashboard-page #wallet-printers-grid .rcpts-printer-row-meta{
  display:flex;justify-content:space-between;align-items:center;
  gap:9px;margin:11px 0;
  color:#97ab9f;font:700 10px/1.5 'Courier New',monospace;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-row-meta b{
  color:#e5f2d4;font-size:11px;white-space:nowrap;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-row-actions{
  display:grid;grid-template-columns:1fr 1fr;gap:7px;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-row-actions button{
  min-height:34px;padding:8px 5px;background:#101d16;
  border:1px solid #526c45;color:#d4fbab;cursor:pointer;
  font:900 10px 'Courier New',monospace;letter-spacing:.025em;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-row-actions button:hover:not(:disabled){
  background:#c6ff49;color:#09120d;
}
.dashboard-page #wallet-printers-grid .rcpts-printer-row-actions button:disabled{
  background:#0a100e;color:#849187;border-color:#28382c;cursor:default;
}
.dashboard-page .rcpts-inventory-footer{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;margin-top:13px;color:#acbfa8;
  font:900 10px 'Courier New',monospace;
}
.dashboard-page .rcpts-inventory-footer[hidden],
.dashboard-page .rcpts-inventory-footer button[hidden]{display:none!important}
.dashboard-page #wallet-printers-more{
  border:1px solid #8dbb46;color:#dcffab;background:#152517;
  padding:12px 18px;cursor:pointer;font:900 11px 'Courier New',monospace;
}
.dashboard-page #wallet-printers-more:hover{background:#c6ff49;color:#0c1409}
@media(max-width:1060px){
  .dashboard-page #wallet-printers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .dashboard-page #wallet-printers-grid{grid-template-columns:1fr}
  .dashboard-page #wallet-printers-grid .rcpts-printer-list-item{min-height:114px}
  .dashboard-page .rcpts-inventory-footer{align-items:stretch}
  .dashboard-page #wallet-printers-more{width:100%}
}

/* All eligible machines are auto-fuelled. Inventory status is read-only. */
.dashboard-page #wallet-printers-grid .rcpts-auto-status{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.dashboard-page #wallet-printers-grid .rcpts-auto-status span{
  border:1px solid #465941;background:#112014;color:#b3cba9;
  padding:7px 9px;font:900 9px/1.4 'Courier New',monospace
}
.dashboard-page #wallet-printers-grid .rcpts-auto-status span.is-on{
  border-color:#a1c754;color:#c6ff49;background:#1b2c1b
}
.dashboard-page #wallet-printers-grid .rcpts-printer-list-item{cursor:default}
.dashboard-page .dashboard-sim strong{font-size:clamp(24px,2.5vw,38px)}
