.desktop-logo{position:fixed;left:50%;top:44%;transform:translate(-50%,-50%);width:min(60vw,850px);pointer-events:none;opacity:.55}
.desktop-logo img{display:block;width:100%;height:auto;mix-blend-mode:screen}
.desktop-logo img:not(.is-ready),.desktop-dock img:not(.is-ready){visibility:hidden}
/* Keep the fallback chassis dimensions and partially decoded dock off screen.
   Visibility preserves measurements for the fitter; desktop-ready reveals
   the complete shell together, independently of the game-world download. */
.nasdex-desktop:not(.desktop-ready) :is(#monitor,#hardware,.desktop-dock){visibility:hidden;pointer-events:none}
.nasdex-desktop:not([data-desktop-app="nasdex"]) #monitor,.nasdex-desktop:not([data-desktop-app="nasdex"]) #hardware{visibility:hidden;pointer-events:none}

/* The chassis fitter reads this desktop reserve as a pixel value. */
:root:has(.nasdex-desktop){--desktop-dock-bottom:calc(29px + env(safe-area-inset-bottom,0px));--desktop-dock-item-height:67px;--desktop-dock-clearance:calc(var(--desktop-dock-bottom) + var(--desktop-dock-item-height) + 48px);--desktop-work-bottom:136px;--copyright-space:136px}
.desktop-dock{position:fixed;z-index:100;bottom:var(--desktop-dock-bottom,29px);left:50%;transform:translateX(-50%);display:flex;align-items:flex-end;gap:17px;padding:8px 20px 9px;isolation:isolate}
.desktop-dock::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-5%;right:-5%;bottom:-16px;height:95px;background:radial-gradient(ellipse at 50% 68%,#e5e9e82e 0%,#d5dfdc18 34%,#b9cbc808 53%,transparent 72%);filter:blur(8px)}
.desktop-dock::after{content:"";position:absolute;z-index:-1;pointer-events:none;left:2%;right:2%;bottom:2px;height:19px;background:radial-gradient(ellipse,#edf3ec33,transparent 70%);filter:blur(5px)}
.desktop-dock button,.desktop-dock a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:65px;height:67px;padding:0;border:0;background:none;color:#f3f6f5;cursor:pointer;text-decoration:none;outline-offset:5px}
.desktop-dock img{width:65px;height:61px;object-fit:contain;filter:drop-shadow(0 5px 3px #0008);transform-origin:50% 100%;transition:transform .22s cubic-bezier(.2,.8,.2,1),filter .2s}
.desktop-dock button:hover img,.desktop-dock a:hover img,.desktop-dock button:focus-visible img,.desktop-dock a:focus-visible img{transform:translateY(-9px) scale(1.28);filter:drop-shadow(0 9px 5px #0009)}
.desktop-dock span{position:absolute;bottom:calc(100% + 26px);font:500 10px/1 var(--mono);background:#171c20eb;padding:1px 8px;border:1px solid #77868e;border-radius:3px;opacity:0;white-space:nowrap;pointer-events:none;transition:opacity .15s}
.desktop-dock :is(button,a):is(:hover,:focus-visible) span{opacity:1}.desktop-dock i{width:4px;height:4px;margin-top:4px;border-radius:50%;background:transparent}.desktop-dock [aria-pressed="true"] i{background:#dff9e3;box-shadow:0 0 5px #9deab6}
.image-unavailable img{display:none}
.desktop-dock .image-unavailable span{position:static;display:block;width:100%;opacity:1;font-size:8px;line-height:1.2;padding:3px 2px;white-space:normal;overflow-wrap:anywhere;text-align:center}
.desktop-window{position:fixed;z-index:20;left:50%;top:45%;transform:translate(-50%,-50%);width:min(620px,88vw);max-height:calc(100dvh - 170px);padding:7px;border:1px solid #c6d0d4;border-radius:17px;background:repeating-linear-gradient(0deg,#fff1 0 1px,#0001 1px 2px),linear-gradient(130deg,#edf1f3,#8b969f,#d5dde1);box-shadow:inset 1px 1px 1px white,0 14px 65px #000b;overflow:auto}
.desktop-window[hidden]{display:none}.desktop-window>header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;color:#222b32}.desktop-window h1{margin:0;font:900 italic 15px Arial}.desktop-window>header button{border:1px solid #829099;background:linear-gradient(#f7fafb,#9daab3);border-radius:4px;width:29px;height:25px;font-size:19px;color:#24333b;cursor:pointer}
.desktop-window-content{position:relative;border:4px solid #1b2023;border-radius:11px;padding:26px;color:#d2ddd1;background:repeating-linear-gradient(0deg,transparent 0 2px,#0004 2px 3px),radial-gradient(ellipse at 20% 0,#384038,#111715 70%);box-shadow:inset 0 0 30px #0008;font:12px/1.8 var(--mono)}.desktop-window-content h2{font:700 22px/1.2 var(--mono);margin:0 0 20px;color:#eef2e8}.desktop-window-content ol{padding-left:22px}.desktop-window-content li{padding:7px 0;border-bottom:1px solid #c5d4c322}.desktop-window-content a{color:#d1eecb}.desktop-window-content dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}.desktop-window-content dd{margin:0;text-align:right}.desktop-window-content .small{font-size:10px;color:#98a595}.desktop-window-content .window-icon{display:block;width:105px;height:105px;object-fit:contain;margin:0 auto 18px;filter:drop-shadow(0 5px 7px #0009)}
@media(prefers-reduced-motion:reduce){.desktop-dock img,.desktop-dock span{transition:none}}

@media(max-width:380px){.desktop-dock{gap:10px;padding-inline:12px}.desktop-dock button,.desktop-dock a{width:58px}.desktop-dock img{width:58px}.desktop-window-content{padding:16px}}

/* Fit the complete object collection without clipping the dock. */
.desktop-dock .dock-placeholder{cursor:default}
@media(max-width:960px){
  :root:has(.nasdex-desktop){--desktop-dock-item-height:clamp(35px,9vw,67px)}
  .desktop-dock{gap:clamp(3px,1vw,8px);padding-inline:10px}
  .desktop-dock button,.desktop-dock a{width:clamp(24px,8.5vw,65px);height:clamp(35px,9vw,67px);flex-shrink:0}
  .desktop-dock img{width:100%;height:clamp(28px,8vw,61px)}
  .desktop-dock span{bottom:calc(100% + 20px)}
}

/* Street Noodles — a warm paper menu inside the silver terminal. */
.desktop-window.is-restaurant{width:min(960px,92vw);top:44%;max-height:calc(100dvh - 160px)}
.is-restaurant .desktop-window-content{padding:0;background:#dad6c9;color:#292b26;border-color:#272b29}
.restaurant{background:repeating-linear-gradient(0deg,#00000003 0 1px,transparent 1px 3px);padding:28px}
.restaurant-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:3px double #53574c;padding-bottom:20px}
.restaurant-kicker{font-size:9px;letter-spacing:.16em;margin:0 0 12px}
.restaurant .restaurant-hero h2{font-size:clamp(30px,5vw,58px);line-height:.95;letter-spacing:-.065em;color:#272c25;margin:0}
.restaurant-hero h2 span{font-size:16px;letter-spacing:.25em;display:block;margin-top:15px}
.restaurant-hero p:last-child{font-size:11px;margin:14px 0 0}.restaurant-hero img{width:28%;max-width:165px;filter:drop-shadow(0 8px 6px #0003);transform:rotate(8deg)}
.restaurant-meta{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.08em;padding:13px 0;border-bottom:1px solid #73786b}
.restaurant-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:16px 0}
.restaurant button{font-family:var(--mono);cursor:pointer;color:#30382e;border:1px solid #777d6c;background:#e7e3d7;border-radius:3px;transition:background .15s,transform .15s}
.restaurant button:hover{background:#c5ccb9}.restaurant button:focus-visible{outline:2px solid #3c573b;outline-offset:3px}
.restaurant-tabs button{padding:6px 9px;font-size:10px}.restaurant-tabs button[aria-pressed="true"]{background:#333e30;color:#eeeade;border-color:#333e30}
.restaurant-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:25px;align-items:start}
.restaurant h3{font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin:17px 0 3px;border-bottom:2px solid #616957;padding-bottom:7px}
.restaurant-dish{display:grid;grid-template-columns:20px 1fr 27px;gap:9px;padding:14px 0;border-bottom:1px solid #92978777;align-items:start}.dish-number{font-size:9px;color:#747a69;padding-top:3px}
.restaurant-dish h4{margin:0;font-size:12px;line-height:1.4}.restaurant-dish p{font-size:10px;line-height:1.6;margin:4px 0 7px;color:#626858}.restaurant-dish strong{font-size:10px}.restaurant-dish button{height:27px;font-size:18px}
.restaurant-order{background:#eeebdf;border:1px solid #9ba08e;padding:14px;box-shadow:0 4px 9px #0001}.restaurant-order h3{margin-top:0;display:flex;justify-content:space-between}.restaurant-order h3 span{font-size:10px}.order-empty{font-size:11px;color:#737966;padding:22px 0}
.order-line{padding:11px 0;border-bottom:1px dashed #9ba08e}.order-line b{display:block;font-size:10px}.order-line>span{font-size:9px}.order-quantity{display:flex;align-items:center;gap:12px;margin-top:7px}.order-quantity button{width:25px;height:25px}.order-quantity span{font-size:11px}
.order-total{display:flex;flex-direction:column;gap:4px;padding:15px 0;font-size:10px}.order-total strong{font-size:18px;line-height:1.3}.restaurant button.restaurant-checkout{width:100%;padding:11px 5px;background:#333e30;color:#eeebdf;font-size:10px;font-weight:700}.restaurant button:disabled{opacity:.4;cursor:default}.restaurant-note{font-size:9px;color:#777d6c}.restaurant-receipt{font-size:10px;color:#355235}.restaurant-footer{border-top:3px double #53574c;margin-top:24px;padding-top:12px;font-size:9px;letter-spacing:.12em;text-align:center}
@media(max-width:650px){.restaurant{padding:18px}.restaurant-layout{grid-template-columns:1fr}.restaurant-meta{font-size:8px;gap:12px}.restaurant-order{margin-top:10px}}

.access-prompt{max-width:340px;margin:0 auto;text-align:center;padding:12px 0}
.access-kicker{font-size:9px;letter-spacing:.22em;color:#9da997;margin-bottom:12px}
.access-prompt form{text-align:left;margin-top:25px}.access-prompt label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:7px}
.access-prompt input{box-sizing:border-box;width:100%;padding:13px;border:1px solid #6d7a68;border-radius:3px;background:#0b110ed9;color:#e0ebda;font:14px var(--mono);outline-offset:3px}
.access-prompt input:focus-visible{outline:2px solid #b5c7a8}
.access-prompt button{width:100%;margin-top:12px;padding:12px;border:1px solid #9ba69f;border-radius:4px;background:linear-gradient(#e3e8e5,#97a39c);color:#202921;font:700 13px var(--mono);cursor:pointer;box-shadow:inset 0 1px #fff8,0 3px #303b34}
.access-prompt button:hover{filter:brightness(1.12)}.access-prompt button:active{transform:translateY(2px);box-shadow:inset 0 1px #fff8,0 1px #303b34}
.access-status{min-height:20px;font-size:10px;color:#c5cfbe;margin-bottom:0}

/* Paper restaurant sheet, including its window frame and controls. */
.desktop-window.is-restaurant{padding:0;border:1px solid #b7ab91;border-radius:2px;background:#e9e0c9;box-shadow:0 3px 1px #bcb095,0 7px 0 -2px #e1d7bc,0 8px 1px -2px #a99e86,0 20px 55px #0009}
.desktop-window.is-restaurant>header{padding:16px 25px 12px;background:#e9e0c9;color:#494638;border-bottom:1px dashed #a99b7a}
.desktop-window.is-restaurant>header h1{font:700 10px var(--mono);letter-spacing:.12em}
.desktop-window.is-restaurant>header button{background:transparent;border:1px solid #9b9077;border-radius:50%;color:#514b3b;box-shadow:none}
.is-restaurant .desktop-window-content{border:0;border-radius:0;box-shadow:none;background:#e9e0c9;color:#343326}
.restaurant{background:radial-gradient(ellipse at 5% 10%,#fff7e044,transparent 55%),repeating-linear-gradient(0deg,#77644006 0 1px,transparent 1px 4px),#e9e0c9}
.restaurant-order{background:#f2e9d3;border:1px dashed #a99b7a;box-shadow:none}
.restaurant button{background:transparent;border-color:#a19475;border-radius:1px;box-shadow:none}
.restaurant button:hover{background:#d8cdb0}
.restaurant-hero img{filter:sepia(.15) drop-shadow(0 5px 4px #51432a22)}

/* Application controls follow the existing in-game menu. */
.desktop-window{--window-ink:#1b1b1d;--window-paper:#e4e4e0}
.desktop-window,.desktop-window *{font-family:var(--mono)!important;font-style:normal!important;letter-spacing:.035em}
.desktop-window-content{font-size:12px;line-height:1.5;text-transform:uppercase}
.desktop-window h1,.desktop-window.is-restaurant>header h1{font-size:12px;font-weight:700;letter-spacing:.06em}
.desktop-window-content h2{font-size:24px;letter-spacing:.06em}
.desktop-window-content .small{font-size:10px}
.desktop-window button,.desktop-window.is-restaurant>header button,.restaurant button.restaurant-checkout{
 appearance:none;border:1px solid transparent;border-radius:0;box-shadow:none;background:transparent;color:inherit;
 font-size:12px;font-weight:700;letter-spacing:.06em;line-height:1.2;text-transform:uppercase;text-shadow:none;
 padding:12px;cursor:pointer;transition:background .1s,color .1s,transform .08s;
}
.desktop-window button:hover,.desktop-window button[aria-pressed="true"],.desktop-window.is-restaurant>header button:hover,.restaurant button.restaurant-checkout:not(:disabled):hover{background:var(--window-ink);color:var(--window-paper);filter:none}
.desktop-window button:active{transform:translateY(2px);box-shadow:none}
.desktop-window button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.desktop-window button:disabled{opacity:.4;cursor:default;transform:none}
.desktop-window>header button{width:42px;height:38px;padding:0;font-size:20px}
.desktop-window input{border-radius:0;font-size:14px}
.restaurant-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:14px 0 22px}
.restaurant-tabs button{text-align:left;min-height:48px;padding:10px;font-size:11px}
.restaurant-tabs button[aria-pressed="true"]::before{content:"> "}
.restaurant .restaurant-hero h2{font-size:clamp(24px,3vw,38px);line-height:1.15;letter-spacing:.06em;font-weight:700}
.restaurant-hero h2 span{display:none}
.restaurant-hero{border-bottom:1px solid #888375;padding-bottom:18px}
.restaurant-hero img{width:90px;transform:none}
.restaurant-kicker{font-size:9px;letter-spacing:.1em}
.restaurant-meta{border-bottom:0;font-size:10px}
.restaurant-order{background:transparent;border:0;border-left:1px solid #a39b87;padding:0 0 0 20px;box-shadow:none}
.restaurant h3{font-size:12px;border-bottom:1px solid #a39b87;letter-spacing:.06em}
.restaurant-dish h4{font-size:12px;letter-spacing:.035em}
.restaurant-dish p{font-size:10px;line-height:1.5}
.restaurant-dish strong{font-size:11px;font-weight:500}
.restaurant-dish{grid-template-columns:20px 1fr 58px}
.restaurant-dish button{width:58px;height:40px;padding:0;font-size:11px;text-align:center}
.order-quantity button{width:32px;height:32px;padding:0;font-size:16px}
.restaurant button.restaurant-checkout{min-height:52px;text-align:left;border-top:1px solid #a39b87;font-size:11px}
.restaurant-note,.restaurant-receipt,.restaurant-footer{font-size:9px}
.restaurant-footer{border-top:1px solid #a39b87}
.access-prompt button{background:transparent;border:0;text-align:left;box-shadow:none;font-size:12px}
.access-status{font-size:10px}
@media(max-width:650px){.restaurant-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.restaurant-order{border-left:0;border-top:1px solid #a39b87;padding:18px 0 0}}

/* Metal window controls reuse the NASDEX device key material verbatim. */
.desktop-window .brand-metal.brand-metal.brand-metal{
  position:relative;width:100%;aspect-ratio:1;max-height:clamp(44px,4.6vw,66px);
  padding:0;cursor:pointer;border-radius:4px;
  border:1px solid rgba(0,0,0,.45);
  font:700 var(--fs-1)/1 var(--mono);letter-spacing:.14em;text-indent:.14em;text-transform:uppercase;
  color:#2F3236;text-shadow:0 1px 0 rgba(255,255,255,.75);
  background:
    linear-gradient(135deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 40%,rgba(0,0,0,0) 60%,rgba(0,0,0,.18) 100%),
    repeating-linear-gradient(180deg,rgba(255,255,255,.08) 0 1px,rgba(0,0,0,.05) 1px 2px),
    linear-gradient(180deg,#f4f5f6 0%,#d6d9dc 22%,#b3b7bc 50%,#dcdee1 78%,#a3a8ad 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(0,0,0,.2),inset 1px 0 0 rgba(255,255,255,.5),
    0 3px 0 #7d8187,0 4px 0 #3a3d41,0 6px 7px rgba(0,0,0,.45);
  transition:transform .05s,box-shadow .05s,filter .1s;outline:none;

width:38px;height:30px;aspect-ratio:auto;max-height:none;padding:0;display:grid;place-items:center;flex-shrink:0;
font-family:"Arial Black","Arial",sans-serif!important;font-weight:900!important;font-style:italic!important;font-size:13px;letter-spacing:-.025em;text-indent:0;
}
.desktop-window .brand-metal.brand-metal.brand-metal:hover{filter:brightness(1.05)}
.desktop-window .brand-metal.brand-metal.brand-metal:active{transform:translateY(3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),inset 0 -1px 0 rgba(0,0,0,.2),0 0 0 #7d8187,0 1px 0 #3a3d41,0 2px 3px rgba(0,0,0,.45)}
.desktop-window .brand-metal.brand-metal.brand-metal:focus-visible{box-shadow:0 0 0 2px var(--acc-led),0 3px 0 #7d8187,0 4px 0 #3a3d41}

/* White menu stock under the original NASDEX CRT treatment. */
.desktop-window.is-restaurant{background:#f7f7f4;border-color:#b8b9b6;box-shadow:0 3px 1px #a9aaa7,0 7px 0 -2px #eeeeeb,0 8px 1px -2px #999b97,0 20px 55px #0009}
.desktop-window.is-restaurant>header{background:#f7f7f4;color:#292a29;border-bottom-color:#a4a6a1}
.is-restaurant .desktop-window-content{background:#f7f7f4;color:#292a29;isolation:isolate}
.restaurant.crt-content{height:auto;background:#f7f7f4;color:#292a29}
.restaurant .restaurant-hero h2,.restaurant .restaurant-tabs button,.restaurant .restaurant-dish strong{color:#292a29}
.restaurant .restaurant-dish p,.restaurant .dish-number,.restaurant .order-empty,.restaurant .restaurant-note{color:#676a67}
.restaurant .restaurant-hero,.restaurant .restaurant-meta,.restaurant .restaurant-order,.restaurant h3,.restaurant .restaurant-dish,.restaurant .restaurant-footer,.restaurant .order-line,.restaurant button.restaurant-checkout{border-color:#a4a6a1}
.restaurant .restaurant-order{background:transparent}
.restaurant .restaurant-hero img{filter:drop-shadow(0 5px 4px #0002)}
.restaurant .restaurant-tabs button:hover,.restaurant .restaurant-tabs button[aria-pressed="true"]{color:#f5f5f1}

/* Exit labels use the established NASDEX chassis lettering. */
#closeDesktopWindow,#closeDesktopWindow.brand-metal{width:68px;height:32px;font-family:"Arial Black","Arial",sans-serif!important;font-weight:900!important;font-style:italic!important;font-size:12px;letter-spacing:-.025em}

/* Shared material from the existing NASDEX chassis. */
:root{--nasdex-chassis-metal:linear-gradient(112deg,rgba(255,255,255,.75),transparent 16%,rgba(255,255,255,.2) 45%,rgba(30,37,44,.14) 78%,rgba(255,255,255,.6)),repeating-linear-gradient(0deg,rgba(255,255,255,.14) 0 1px,rgba(40,45,50,.06) 1px 2px),linear-gradient(180deg,#eff1ef 0%,#afb5ba 18%,#e5e8e7 45%,#abb1b7 78%,#e6e9e7 100%);--nasdex-chassis-depth:inset 2px 2px 1px #fff,inset -2px -2px 1px #656b71,inset 5px 5px 6px #ffffff80,inset -5px -5px 8px #343b4340,0 0 0 1px #555b60,0 10px 0 -4px #858b90,0 16px 18px #4a423540,0 35px 55px #4a423550;--nasdex-screen-bezel:inset 1px 1px 0 rgba(255,255,255,.25),inset -1px -1px 0 rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.55),0 0 0 2px rgba(0,0,0,.35),-1px -1px 0 2px rgba(0,0,0,.25),2px 2px 0 2px rgba(255,255,255,.55)}
.desktop-window:not(.is-restaurant){background:var(--nasdex-chassis-metal);box-shadow:var(--nasdex-chassis-depth)}
.desktop-window:not(.is-restaurant){padding:15px;border:0;border-radius:24px}
.desktop-window:not(.is-restaurant)>header{padding:5px 5px 18px;margin-bottom:13px;border-bottom:1px solid #373b3f3d;box-shadow:0 1px 0 #ffffff80;background:transparent;color:#303336;text-shadow:0 1px 0 #ffffffbf}
.desktop-window:not(.is-restaurant) .desktop-window-content{border:4px solid #202225;border-radius:15px;box-shadow:var(--nasdex-screen-bezel),inset 8px 10px 28px #0008,inset -4px -5px 18px #0006}
.desktop-window:not(.is-restaurant)>header h1{font-family:"Arial Black","Arial",sans-serif!important;font-weight:900!important;font-style:italic!important;letter-spacing:-.025em}

/* Continue the noodle menu's original CRT treatment across the title strip. */
.desktop-window.is-restaurant>header{position:relative;overflow:hidden;isolation:isolate;background:#f7f7f4}
.desktop-window.is-restaurant>header h1,.desktop-window.is-restaurant>header button{filter:url(#desktop-crt-curve);text-shadow:-.35px 0 rgba(220,95,80,.3),.35px 0 rgba(100,190,210,.3)}
.desktop-window.is-restaurant>header .window-header-fx{border-radius:0}

.desktop-window.is-scanner{width:min(1120px,94vw);max-height:calc(100dvh - 160px)}
.is-scanner .desktop-window-content{background:#101312;color:#dfe4da;padding:22px}
.hoodscanner{position:relative;z-index:1;text-shadow:-.35px 0 #dc5f504d,.35px 0 #64bed24d}
.hood-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #728071;padding-bottom:15px;gap:20px}.hood-heading p,.hood-heading>span{font-size:10px;letter-spacing:.12em}.hood-heading h2{margin:0}
.hood-toolbar{display:flex;gap:10px;padding:18px 0;flex-wrap:wrap}.hood-toolbar input{flex:1;min-width:180px;background:#070b08;border:1px solid #758172;color:#e3eadd;padding:12px;font:12px var(--mono);outline-offset:3px}
.hoodscanner button{color:#e3eadd}.hoodscanner button:hover,.hoodscanner button[aria-pressed="true"]{background:#d5ded0;color:#182016}
.hood-status{font-size:10px;color:#a6b7a1;padding-bottom:15px;min-height:30px}.hood-table-wrap{overflow-x:auto;max-height:48dvh;overflow-y:auto}.hoodscanner table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.hoodscanner th{position:sticky;top:0;z-index:2;background:#161c16;text-align:left;color:#aabb9f;font-size:10px;font-weight:500}.hoodscanner th button{font-size:10px;padding:10px 0}.hoodscanner td{border-bottom:1px solid #5a675840;padding:12px 8px 12px 0;vertical-align:middle}.hoodscanner td:nth-child(3){font-size:10px}.hoodscanner td small{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;font-size:9px;color:#939f8f}.hoodscanner .hood-token{padding:0 0 4px;font-size:14px;text-align:left}.hood-state{font-size:9px}.hoodscanner footer{border-top:1px solid #728071;padding-top:14px;margin-top:14px;font-size:9px;color:#8e9d88;line-height:1.7}.hoodscanner a{color:#cedfc3}.hood-details{border:1px solid #62745a;padding:14px;margin-bottom:15px}.hood-details[hidden]{display:none}.hood-detail-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.hood-detail-title h3{font-size:14px;margin:0}.hood-details dl{font-size:11px}.hood-contract{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hood-contract a{font-size:10px;overflow-wrap:anywhere;user-select:text}.hood-copy-status{font-size:10px}

/* The dock surrounds the production terminal without restyling its chassis. */
.desktop-logo[hidden],body[data-desktop-app="nasdex"] .desktop-logo{display:none}
.home-lcds{z-index:5}
.desktop-logo{z-index:1}
/* Keep the long mobile cabinet scrollable above the applications dock. */
@media(max-width:900px){
  :root:has(.nasdex-desktop){--desktop-work-bottom:var(--desktop-dock-clearance)}
  html:has(.nasdex-desktop),body.nasdex-desktop{height:100%;overflow:hidden}
  .desktop-device-viewport{position:fixed;inset:0 0 var(--desktop-dock-clearance);z-index:2;overflow:auto;overscroll-behavior-y:contain}
  .nasdex-desktop:not([data-desktop-app="nasdex"]) .desktop-device-viewport{visibility:hidden;pointer-events:none}
  .nasdex-desktop .monitor{margin-bottom:16px}
  .nasdex-desktop .lid{bottom:calc(var(--desktop-dock-clearance) + 12px)}
  .nasdex-desktop .site-copyright{position:fixed}
}
/* Every application centers within the space left above the current dock. */
body.nasdex-desktop .desktop-window{top:calc((100dvh - var(--desktop-work-bottom)) / 2);max-height:calc(100dvh - var(--desktop-work-bottom) - 48px);max-width:calc(100vw - 48px);scrollbar-width:thin;scrollbar-color:#798187 transparent}
.desktop-window::-webkit-scrollbar{width:6px;height:6px}
.desktop-window::-webkit-scrollbar-track{background:transparent;margin:18px 0}
.desktop-window::-webkit-scrollbar-thumb{background:#798187;border-radius:6px}
@media(prefers-reduced-motion:reduce){.desktop-dock{transition:none}}
/* Shared companion-app CRT treatment. */
.desktop-window .crt-content{filter:url(#desktop-crt-curve)}

.desktop-window>header{position:relative;isolation:isolate}
.desktop-window>header h1,.desktop-window>header button{filter:url(#desktop-crt-curve);text-shadow:-.35px 0 rgba(220,95,80,.3),.35px 0 rgba(100,190,210,.3)}
.desktop-window>header .window-header-fx{border-radius:0;opacity:.35}
.desktop-window .desktop-app-screen,.desktop-window .hoodscanner.crt-content{height:auto}
.desktop-window .desktop-crt-surface{filter:url(#desktop-crt-curve);text-shadow:-.4px 0 rgba(240,100,75,.3),.4px 0 rgba(105,210,230,.4),0 0 2px rgba(225,255,230,.15)}
/* Bend display contents without displacing the metal bezel or glass shadow. */
.desktop-window .glass:not(#screen)>.desktop-crt-surface{filter:url(#desktop-crt-curve)}
.desktop-window .glass:not(#screen)>.crt-overlay{background:repeating-linear-gradient(0deg,rgba(0,0,0,.13) 0 1px,transparent 1px 3px),radial-gradient(ellipse at 50% 48%,transparent 42%,rgba(0,0,0,.16) 76%,rgba(0,0,0,.55) 100%);box-shadow:inset 0 0 3px 2px rgba(0,0,0,.65),inset 0 9px 20px rgba(0,0,0,.12)}
.desktop-window .glass:not(#screen)>.crt-overlay::before{display:block}
/* Personal stationery, viewed through the same desktop CRT glass. The width follows the viewport height so the whole card and its controls stay inside the shared work area at the card's 5:3 ratio. */
.desktop-window.is-businesscard{width:min(900px,94vw,max(520px,calc((100dvh - var(--desktop-work-bottom) - 463px)*5/3 + 76px)))}
.business-card-app.crt-content{height:auto}.card-kicker{font-size:9px;letter-spacing:.15em;margin:0 0 4px}.business-card-app h2{margin-bottom:12px}.card-status{font-size:11px;min-height:18px;margin:0 0 6px}.card-connect p{margin:0 0 8px}.card-ready>.small{margin:8px 0 0}.card-ready[hidden],.card-connect[hidden]{display:none}
.card-ready canvas{display:block;width:100%;height:auto;box-shadow:0 6px 20px #0008;margin:12px auto}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.card-profile{font-size:10px}.card-profile dd{overflow-wrap:anywhere}.business-card-app button{color:#e6e5dc}.business-card-app button:hover{background:#e6e5dc;color:#252824}
@media(max-width:760px){.desktop-dock{gap:clamp(2px,.7vw,6px);padding-inline:5px}.desktop-dock button,.desktop-dock a{width:clamp(22px,8.5vw,60px)}.desktop-window.is-businesscard .desktop-window-content{padding:14px}.card-actions button{font-size:10px}}

.business-card-app .card-actions[hidden],.business-card-app .card-profile[hidden]{display:none}
@media(max-width:800px){.desktop-dock button,.desktop-dock a{width:clamp(22px,8vw,60px)}}
/* Updates is a static bulletin feed; entries live in updates.js. */
.updates-feed{list-style:none;padding:0;margin:0}.updates-feed li{padding:12px 0;border-bottom:1px solid #c5d4c322}.updates-feed time{display:block;font-size:10px;letter-spacing:.15em;color:#a6b7a1}.updates-feed h3{font:700 15px/1.3 var(--mono);margin:4px 0 8px;color:#eef2e8}.updates-feed p{margin:0}
/* The TV is the whole window: the silver shell, title bar, stand and caption
   are all stripped so the set reads as one object. EXIT floats on the bezel and
   the transport rides on the picture, so nothing sits beneath the cabinet. The
   panel stays inside .crt-content and bends and grains with every other app. */
.desktop-window.is-tv{width:min(940px,94vw);padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
.desktop-window.is-tv>header{position:absolute;top:14px;right:18px;z-index:3;padding:0}
.desktop-window.is-tv>header h1,.desktop-window.is-tv>header .window-header-fx{display:none}
.desktop-window.is-tv .desktop-window-content{border:0;border-radius:0;padding:0;background:none;box-shadow:none}
.tv-app{height:auto;display:grid;justify-items:center}
.tv-set{width:100%}
/* A shallow flat panel: thin gloss-black bezel, no depth, no tube. */
.tv-frame{position:relative;width:100%;padding:11px 11px 0;border-radius:9px 9px 4px 4px;background:linear-gradient(163deg,#3b3f44,#141619 22%,#0b0c0e 74%,#1d2024);box-shadow:inset 0 1px 0 #ffffff2e,inset 0 -1px 0 #0009,0 22px 44px #000b,0 2px 5px #0008}
.tv-screen{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:2px;background:#05070a;box-shadow:inset 0 0 0 1px #000,inset 0 0 22px #000a}
.tv-picture{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.04) brightness(.97)}
/* LCD sheen, not a tube: a flat diagonal wipe and a soft edge falloff. */
.tv-sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(122deg,rgba(255,255,255,.055) 0 26%,transparent 46%),radial-gradient(ellipse at 50% 50%,transparent 62%,rgba(0,0,0,.34) 100%)}
/* The channel strip sits opposite EXIT so the two never collide. */
.tv-osd{position:absolute;top:11px;left:15px;margin:0;max-width:calc(100% - 130px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 11px/1 var(--mono);letter-spacing:.14em;color:#dfe9f5;text-shadow:0 0 7px #6fa8ff8c}
.tv-app.is-paused .tv-picture{filter:saturate(.34) contrast(1.02) brightness(.6)}
.tv-app.is-paused .tv-osd::after{content:" · PAUSED"}
/* Brushed-silver chin with the wordmark and a standby LED. */
.tv-chin{position:relative;display:flex;align-items:center;justify-content:center;height:29px;margin-top:9px;border-radius:0 0 4px 4px;background:repeating-linear-gradient(90deg,#b9bfc6 0 1px,#9aa1a9 1px 2px),linear-gradient(180deg,#cdd3d9,#7d848c);box-shadow:inset 0 1px 0 #ffffff8c,inset 0 -1px 0 #0007}
.tv-brand{font:700 10px/1 var(--mono);letter-spacing:.3em;color:#2b3138;text-shadow:0 1px 0 #ffffff6b}
.tv-led{position:absolute;right:16px;width:6px;height:6px;border-radius:50%;background:#4da2ff;box-shadow:0 0 7px 1px #4da2ffb0}
.tv-app.is-paused .tv-led{background:#c8873f;box-shadow:0 0 7px 1px #c8873fb0}
.tv-controls{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:30px 15px 12px;background:linear-gradient(transparent,rgba(0,0,0,.66))}
.desktop-window.is-tv .tv-controls button{border:1px solid #ffffff42;background:#0b0f13b8;color:#e7eef5;font-size:10px;letter-spacing:.14em;padding:5px 11px;backdrop-filter:blur(2px)}
.desktop-window.is-tv .tv-controls button:hover{background:#e7eef5;color:#10151a}
.tv-status{margin:0;font-size:10px;letter-spacing:.1em;color:#c4d2df;text-shadow:0 1px 3px #000}
@media(max-width:760px){.desktop-window.is-tv>header{top:9px;right:11px}.tv-frame{padding:7px 7px 0}.tv-osd{top:8px;left:10px;font-size:9px;max-width:calc(100% - 105px)}.tv-controls{padding:22px 10px 9px;gap:6px}.desktop-window.is-tv .tv-controls button{font-size:9px;padding:4px 8px}}
