:root{
  --tsm-bg:#050805;
  --tsm-bezel:#171a16;
  --tsm-bezel2:#2a2d27;
  --tsm-green:#9cff8d;
  --tsm-green2:#62d86b;
  --tsm-dim:#4f8452;
  --tsm-amber:#f0c15a;
  --tsm-red:#ff776d;
}
.tsm-shell{max-width:1180px;margin:30px auto;outline:none;font-family:"Courier New",Courier,monospace;color:var(--tsm-green);}
.tsm-bezel{background:linear-gradient(145deg,var(--tsm-bezel2),#11130f 65%);border:2px solid #42473e;border-radius:24px;padding:28px 28px 16px;box-shadow:0 22px 50px rgba(0,0,0,.55),inset 0 0 0 4px #0c0e0b,inset 0 0 35px rgba(255,255,255,.03)}
.tsm-screen{position:relative;min-height:680px;background:radial-gradient(circle at 50% 35%,rgba(39,95,43,.14),transparent 45%),var(--tsm-bg);border:3px solid #090b08;border-radius:42px/28px;padding:28px 32px 34px;overflow:hidden;box-shadow:inset 0 0 55px rgba(0,0,0,.95),inset 0 0 24px rgba(97,255,109,.08),0 0 0 2px #34382f;letter-spacing:.02em}
.tsm-screen:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.46) 100%);pointer-events:none;z-index:4}
.tsm-scanlines{position:absolute;inset:0;pointer-events:none;z-index:5;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px);mix-blend-mode:screen;opacity:.7}
.tsm-glow{position:absolute;inset:0;pointer-events:none;z-index:3;box-shadow:inset 0 0 70px rgba(64,255,81,.045)}
.tsm-toolbar{position:relative;z-index:6;display:flex;justify-content:space-between;gap:20px;padding-bottom:12px;margin-bottom:18px;border-bottom:1px dashed var(--tsm-dim);font-size:14px;font-weight:bold;text-shadow:0 0 8px rgba(124,255,127,.5)}
.tsm-status{color:var(--tsm-amber)}
.tsm-output{position:relative;z-index:6;white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px;line-height:1.48;text-shadow:0 0 6px rgba(126,255,130,.35);min-height:545px}
.tsm-line{margin:0 0 3px}
.tsm-line.dim{color:var(--tsm-dim)}
.tsm-line.amber{color:var(--tsm-amber)}
.tsm-line.red{color:var(--tsm-red)}
.tsm-line.head{color:#c9ffc2;font-weight:bold;margin-top:12px}
.tsm-inputline{position:relative;z-index:7;display:flex;align-items:center;gap:10px;border-top:1px solid rgba(92,160,92,.25);padding-top:12px;margin-top:8px;font-size:18px}
.tsm-prompt{color:#c9ffc2;font-weight:bold}
#tsm-input{flex:1;min-width:0;background:transparent!important;border:0!important;outline:0!important;box-shadow:none!important;color:var(--tsm-green)!important;font:inherit!important;padding:0!important;margin:0!important;caret-color:transparent;text-shadow:0 0 6px rgba(126,255,130,.35)}
.tsm-cursor{display:inline-block;width:10px;height:19px;background:var(--tsm-green);box-shadow:0 0 8px rgba(133,255,133,.7);animation:twmblink 1s steps(1,end) infinite}
@keyframes twmblink{50%{opacity:0}}
.tsm-hardware{display:flex;justify-content:space-between;color:#747c6d;font:12px/1.4 "Courier New",monospace;padding:12px 18px 0;letter-spacing:.12em}
@media(max-width:700px){.tsm-shell{margin:12px 0}.tsm-bezel{padding:12px 12px 8px;border-radius:14px}.tsm-screen{min-height:620px;border-radius:20px;padding:18px 16px 24px}.tsm-output{font-size:14px;min-height:500px}.tsm-inputline{font-size:15px}.tsm-toolbar{font-size:11px;flex-direction:column;gap:4px}.tsm-hardware{font-size:9px;padding-left:5px;padding-right:5px}.tsm-cursor{height:16px;width:8px}}
@media print{.tsm-bezel{box-shadow:none;border:1px solid #333}.tsm-screen{background:#fff;color:#000;box-shadow:none}.tsm-output,.tsm-toolbar{color:#000;text-shadow:none}.tsm-inputline,.tsm-scanlines,.tsm-glow,.tsm-hardware{display:none}}

/* ==========================================================
   VECTOR SYSTEM DISPLAY // integrated star-system renderer
   ========================================================== */
.tsm-terminal-view[hidden],.tsm-map-view[hidden]{display:none!important}
.tsm-map-view{position:relative;z-index:6;min-height:610px;display:flex;flex-direction:column;gap:10px}
.tsm-map-statusbar{display:flex;justify-content:space-between;gap:20px;border-bottom:1px dashed var(--tsm-dim);padding:0 2px 10px;color:#c9ffc2;font-size:13px;font-weight:bold;text-shadow:0 0 7px rgba(124,255,127,.45)}
.tsm-map-stage{position:relative;flex:1;min-height:520px;border:1px solid rgba(98,216,107,.28);background:#030703;overflow:hidden;box-shadow:inset 0 0 42px rgba(0,0,0,.9),inset 0 0 28px rgba(98,216,107,.035)}
.tsm-map-stage:before{content:"VECTOR ORBITAL DISPLAY / REV 3";position:absolute;left:12px;top:10px;z-index:2;color:rgba(98,216,107,.55);font:10px/1.2 "Courier New",monospace;letter-spacing:.12em;pointer-events:none}
.tsm-map-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.012) 0,rgba(255,255,255,.012) 1px,rgba(0,0,0,.025) 2px,rgba(0,0,0,.025) 4px);z-index:3}
.tsm-map-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}
.tsm-map-controls{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid rgba(92,160,92,.25);padding-top:10px}
.tsm-map-controls button{appearance:none;border:1px solid var(--tsm-dim);background:rgba(10,18,10,.82);color:var(--tsm-green);font:12px/1.25 "Courier New",monospace;padding:7px 10px;cursor:pointer;text-shadow:0 0 5px rgba(126,255,130,.3);box-shadow:inset 0 0 12px rgba(98,216,107,.025)}
.tsm-map-controls button:hover,.tsm-map-controls button:focus{outline:none;border-color:var(--tsm-green);background:rgba(28,52,28,.65);color:#d4ffd0}
.tsm-map-controls button.is-off{color:var(--tsm-dim);border-color:#355039}
.tsm-map-info{position:absolute;z-index:5;right:14px;top:14px;width:min(330px,calc(100% - 28px));padding:16px 17px 15px;border:1px solid var(--tsm-green2);background:rgba(2,9,3,.94);box-shadow:0 0 24px rgba(98,216,107,.09),inset 0 0 20px rgba(98,216,107,.035);color:var(--tsm-green);font-family:"Courier New",monospace}
.tsm-map-info[hidden]{display:none!important}
.tsm-map-info-close{position:absolute;right:7px;top:6px;border:0;background:transparent;color:var(--tsm-green);font:700 14px "Courier New",monospace;cursor:pointer}
.tsm-map-info-type{font-size:10px;letter-spacing:.12em;color:var(--tsm-dim);padding-right:26px}
.tsm-map-info h3{font:700 17px/1.2 "Courier New",monospace;color:#c9ffc2;margin:8px 0 9px;padding:0}
.tsm-map-info-meta{font-size:11px;line-height:1.5;color:var(--tsm-amber);border-top:1px dashed rgba(98,216,107,.25);border-bottom:1px dashed rgba(98,216,107,.25);padding:7px 0;margin-bottom:9px}
.tsm-map-info-text{font-size:12px;line-height:1.5;color:var(--tsm-green2);white-space:pre-wrap}
.tsm-map-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--tsm-dim);font:16px "Courier New",monospace}
.tsm-standalone-map{height:var(--tsm-map-height,720px);min-height:360px;display:flex;flex-direction:column;background:#030703;border:2px solid #39433a;box-shadow:0 18px 45px rgba(0,0,0,.5),inset 0 0 30px rgba(98,216,107,.025);padding:14px;font-family:"Courier New",monospace;color:var(--tsm-green);position:relative;overflow:hidden}
.tsm-standalone-map>.tsm-map-stage{min-height:0;flex:1}
.tsm-inline-error{padding:12px;border:1px solid #77413c;background:#190805;color:#ff776d;font-family:"Courier New",monospace}
@media(max-width:700px){.tsm-map-view{min-height:535px}.tsm-map-stage{min-height:440px}.tsm-map-statusbar{font-size:10px;gap:8px}.tsm-map-controls{gap:5px}.tsm-map-controls button{font-size:10px;padding:6px 7px}.tsm-map-info{right:8px;top:8px;width:calc(100% - 16px)}.tsm-standalone-map{padding:8px}}


/* ==========================================================
   FULLSCREEN TERMINAL // REV 3.1
   ========================================================== */
body.tsm-fullscreen-body{overflow:hidden!important}
.tsm-shell:fullscreen,.tsm-shell.tsm-faux-fullscreen{max-width:none!important;margin:0!important;width:100vw!important;height:100vh!important;background:#050805;z-index:2147483000;padding:0!important}
.tsm-shell.tsm-faux-fullscreen{position:fixed!important;inset:0!important}
.tsm-shell:fullscreen .tsm-bezel,.tsm-shell.tsm-faux-fullscreen .tsm-bezel{height:100%;box-sizing:border-box;border-radius:0;padding:12px 12px 8px;display:flex;flex-direction:column}
.tsm-shell:fullscreen .tsm-screen,.tsm-shell.tsm-faux-fullscreen .tsm-screen{flex:1;min-height:0;height:auto;border-radius:22px/16px;display:flex;flex-direction:column;padding:18px 24px 22px}
.tsm-shell:fullscreen .tsm-terminal-view,.tsm-shell.tsm-faux-fullscreen .tsm-terminal-view{flex:1;min-height:0;display:flex;flex-direction:column}
.tsm-shell:fullscreen .tsm-output,.tsm-shell.tsm-faux-fullscreen .tsm-output{flex:1;min-height:0;overflow-y:auto;padding-right:10px}
.tsm-shell:fullscreen .tsm-map-view,.tsm-shell.tsm-faux-fullscreen .tsm-map-view{flex:1;min-height:0;height:100%}
.tsm-shell:fullscreen .tsm-map-stage,.tsm-shell.tsm-faux-fullscreen .tsm-map-stage{min-height:0;flex:1}
.tsm-shell:fullscreen .tsm-hardware,.tsm-shell.tsm-faux-fullscreen .tsm-hardware{padding-top:7px}
@media(max-width:700px){.tsm-shell:fullscreen .tsm-screen,.tsm-shell.tsm-faux-fullscreen .tsm-screen{padding:12px 12px 16px;border-radius:12px}.tsm-shell:fullscreen .tsm-bezel,.tsm-shell.tsm-faux-fullscreen .tsm-bezel{padding:5px}}

/* =========================================================
   V4 SECTOR / HEX GRID
   ========================================================= */
.tsm-sector-view{position:absolute;inset:0;display:flex;flex-direction:column;background:#020806;z-index:5}
.tsm-sector-view[hidden]{display:none!important}
.tsm-sector-stage{position:relative;flex:1;min-height:520px;overflow:hidden;background:
 radial-gradient(circle at 50% 45%,rgba(45,90,55,.10),transparent 58%),#020806}
.tsm-sector-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 4px);mix-blend-mode:screen}
.tsm-sector-canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}
.tsm-sector-info{position:absolute;right:22px;top:22px;width:min(370px,calc(100% - 44px));padding:18px 20px;border:1px solid rgba(156,255,141,.62);background:rgba(1,9,6,.94);box-shadow:0 0 26px rgba(92,255,110,.12),inset 0 0 28px rgba(65,155,70,.05);color:#c9ffc2;font-family:var(--tsm-font,Consolas,"Courier New",monospace);z-index:8}
.tsm-sector-info[hidden]{display:none!important}
.tsm-sector-info-type{font-size:.73rem;letter-spacing:.16em;color:#f0c15a;margin-bottom:7px}
.tsm-sector-info-title{font:700 1.1rem/1.2 var(--tsm-font,Consolas,"Courier New",monospace);margin:0 0 8px;color:#9cff8d;text-transform:uppercase}
.tsm-sector-info-meta{font-size:.78rem;color:#a8cda5;border-top:1px dashed rgba(156,255,141,.28);border-bottom:1px dashed rgba(156,255,141,.28);padding:8px 0;margin:8px 0}
.tsm-sector-info-text{font-size:.8rem;line-height:1.55;color:#b8dcb5}
.tsm-sector-empty{position:absolute;inset:0;display:grid;place-items:center;color:#ff735d;font-family:var(--tsm-font,Consolas,"Courier New",monospace);letter-spacing:.12em}
.tsm-sector-empty[hidden]{display:none!important}
.tsm-sector-controls{flex-wrap:wrap}
.tsm-standalone-sector{--tsm-font:Consolas,"Courier New",monospace;position:relative;background:#020806;border:10px solid #111814;box-shadow:0 0 0 1px #314033,0 18px 55px rgba(0,0,0,.55);overflow:hidden;color:#9cff8d}
.tsm-standalone-sector .tsm-sector-stage{height:var(--tsm-sector-height,820px);min-height:420px}
.tsm-standalone-sector .tsm-map-statusbar,.tsm-standalone-sector .tsm-map-controls{font-family:var(--tsm-font);background:#07110b;color:#9cff8d}
@media(max-width:800px){.tsm-sector-stage{min-height:460px}.tsm-sector-info{right:10px;top:10px;width:calc(100% - 20px)}.tsm-sector-controls button{font-size:.7rem;padding:8px 9px}}

/* v4.1 sector control reliability / state */
.tsm-sector-controls{position:relative;z-index:12;pointer-events:auto}
.tsm-sector-controls button{position:relative;z-index:13;pointer-events:auto;user-select:none}
.tsm-sector-controls button[aria-pressed="true"]{border-color:#9cff8d;box-shadow:0 0 10px rgba(156,255,141,.12),inset 0 0 14px rgba(156,255,141,.04)}
.tsm-sector-view:focus{outline:none}
