:root{--teal:#008080;--navy:#000080;--gray:#c0c0c0;--dark:#808080}
*{box-sizing:border-box}
body{margin:0;background:#004848 repeating-linear-gradient(45deg,#005050 0 2px,#004848 2px 6px);font-family:'VT323',monospace;color:#000;font-size:18px}
.w3win{background:var(--gray);border:2px solid #000;box-shadow:inset 1px 1px #fff,inset -1px -1px var(--dark)}
.w3title{background:var(--navy);color:#fff;text-align:center;padding:0 6px;display:flex;align-items:center;gap:6px;height:24px}
.w3title .sys{width:18px;height:16px;background:var(--gray);border:1px solid #000;position:relative}
.w3title .sys:after{content:'';position:absolute;left:3px;right:3px;top:6px;height:3px;background:#fff;border:1px solid #000}
.w3title span{flex:1}
.w3btn{background:var(--gray);border:2px solid #000;border-radius:3px;box-shadow:inset 2px 2px #fff,inset -2px -2px var(--dark);padding:1px 10px;font-family:inherit;font-size:18px;cursor:pointer;min-width:60px}
.w3btn:active{box-shadow:inset -1px -1px #fff,inset 2px 2px var(--dark)}
.w3btn:disabled{color:var(--dark)}
.sunk{background:#fff;border:1px solid;border-color:var(--dark) #fff #fff var(--dark);box-shadow:inset 1px 1px #000}
.mono{font-family:'VT323',monospace;line-height:1.05}
.hl{background:var(--navy);color:#fff}
.lamp{display:inline-block;width:30px;text-align:center;border:1px solid #000;margin:1px;background:#606060;color:#ccc}
.lamp.on{background:#ff0;color:#000;box-shadow:0 0 6px #ff0}
canvas#desk{image-rendering:pixelated;image-rendering:crisp-edges;width:100%;height:auto;display:block;border:2px solid #000;background:#008080}
.drop{border:2px dashed var(--navy);background:#fff;padding:18px;text-align:center;cursor:pointer}
.drop.over{background:#ffffa0}
.boot{position:fixed;inset:0;background:#000;color:#c0c0c0;z-index:50;padding:24px;font-size:22px;cursor:pointer}
.blink{animation:bl 1s steps(1) infinite}@keyframes bl{50%{opacity:0}}
.logo{display:inline-grid;grid-template-columns:40px 40px;gap:4px;transform:skewY(-8deg)}
.logo i{height:30px;display:block}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:40;padding:10px}
.status{background:var(--gray);border-top:2px solid #fff;padding:2px 8px;display:flex;justify-content:space-between;font-size:16px}
.status a{color:var(--navy);text-decoration:underline}
table.ord td{padding:0 6px;border-bottom:1px dotted #aaa;white-space:nowrap}