:root{--navy: #05091f;--surface: #0d1330;--surface-2: #141b3d;--line: #232c56;--text: #e6ebff;--muted: #8a93c2;--indigo: #4263eb;--cyan: #38d8ff;--ok: #34d399;--warn: #fbbf24;--err: #f87171;--info: #60a5fa;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--ui: "Public Sans Variable", "Public Sans", system-ui, sans-serif;--display: "Manrope Variable", "Manrope", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--navy);color:var(--text);font-family:var(--ui);-webkit-font-smoothing:antialiased}body{background:radial-gradient(1100px 520px at 82% -12%,rgba(56,216,255,.14),transparent 60%),radial-gradient(900px 500px at -5% -5%,rgba(66,99,235,.16),transparent 55%),linear-gradient(180deg,#070c22 0%,var(--navy) 40%);background-attachment:fixed}#app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:12px;padding:12px 18px;background:linear-gradient(180deg,#0f1636eb,#090e26eb);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(56,216,255,.18);box-shadow:0 1px #38d8ff1f,0 8px 24px #00000059;position:relative;z-index:2}.brand-mark{filter:drop-shadow(0 0 6px rgba(56,216,255,.45))}.brand{display:flex;align-items:center;gap:8px;text-decoration:none}.brand-mark{width:22px;height:22px;display:block;flex:none}.wordmark{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1}.wm-preece{color:#eaf0ff}.wm-ai{color:#5fb6ff}.brand-sep{color:var(--line);margin:0 2px;font-weight:400}.brand-sub{font-family:var(--mono);font-size:13px;color:var(--muted)}.back{color:var(--muted);text-decoration:none}.hosts{margin-left:auto;display:flex;gap:6px}.host-chip{font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line)}.host-chip.up{color:var(--ok)}.host-chip.down{color:var(--err);opacity:.7}.loading{color:var(--muted);padding:24px}.btn{font-family:var(--ui);font-size:12px;font-weight:600;cursor:pointer;border-radius:8px;padding:7px 13px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);transition:filter .12s,border-color .12s,background .12s}.btn:hover{border-color:var(--indigo)}.btn-primary{background:linear-gradient(180deg,#4d74ff,var(--indigo));border-color:#5a80ff;color:#fff;box-shadow:0 2px 10px #4263eb73,inset 0 1px #ffffff26}.btn-primary:hover{filter:brightness(1.1);box-shadow:0 2px 16px #4263eb99}.btn-danger{background:transparent;border-color:#f8717180;color:var(--err)}.btn-danger:hover{background:#f8717124;border-color:var(--err)}.btn:disabled{opacity:.6;cursor:default}.newbar{display:flex;align-items:center;gap:6px}.newbar #newname,.newbar #newgo{display:none}.newbar.open #newname,.newbar.open #newgo{display:inline-block}.newbar.open #newshow{display:none}#newname{font-family:var(--mono);font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--indigo);border-radius:8px;padding:6px 10px;width:200px}.statbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:12px 18px 4px}.stat{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted);padding:6px 12px;border-radius:10px;background:#141b3d99;border:1px solid var(--line)}.stat b{font-family:var(--display);font-size:15px;font-weight:800;color:var(--text)}.stat i{width:9px;height:9px;border-radius:50%;font-style:normal}.stat-working{border-color:#60a5fa59}.stat-working i{background:var(--info);box-shadow:0 0 8px var(--info)}.stat-working b{color:#8fc4ff}.stat-needs-input{border-color:#fbbf2473;background:#fbbf2414}.stat-needs-input i{background:var(--warn);box-shadow:0 0 8px var(--warn)}.stat-needs-input b{color:#ffd66b}.stat-idle i{background:var(--ok);box-shadow:0 0 7px var(--ok)}.stat-idle b{color:#5ce6ab}.stat-closed i{background:var(--muted)}.stat-offline{border-color:#f8717159}.stat-offline i{background:var(--err);box-shadow:0 0 7px var(--err)}.stat-offline b{color:#ff9a9a}.listwrap{flex:1;min-height:0;overflow:auto;padding:8px 12px 24px}.fleet{width:100%;border-collapse:collapse;font-size:13px}.fleet thead th{position:sticky;top:0;z-index:1;text-align:left;font-weight:600;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:8px 10px;background:var(--navy);border-bottom:1px solid var(--line);white-space:nowrap}.fleet td{padding:9px 10px;border-bottom:1px solid rgba(35,44,86,.5);vertical-align:middle}.row{cursor:pointer;transition:background .12s,box-shadow .12s}.row:hover{background:linear-gradient(90deg,#38d8ff14,#141b3d99);box-shadow:inset 0 0 0 1px #38d8ff1f}.row td.c-state{border-left:4px solid var(--muted)}.c-proj{font-weight:600;white-space:nowrap}.c-proj .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--muted);vertical-align:middle}.c-host{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}.c-sum{color:var(--text);max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-sum.empty{color:#5b649a;font-style:italic}.c-time{font-family:var(--mono);color:var(--muted);white-space:nowrap}.c-holder{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}.c-act{text-align:right;white-space:nowrap}.badge{display:inline-block;font-family:var(--ui);font-weight:700;font-size:11px;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid transparent;letter-spacing:.01em}.badge-working{background:#60a5fa2e;color:#8fc4ff;border-color:#60a5fa66;box-shadow:0 0 12px #60a5fa40}.badge-needs-input{background:#fbbf2433;color:#ffd66b;border-color:#fbbf2480;box-shadow:0 0 12px #fbbf244d}.badge-idle{background:#34d39929;color:#5ce6ab;border-color:#34d39961}.badge-closed{background:#8a93c21f;color:#9aa4d0;border-color:#8a93c240}.badge-host-offline{background:#f871712e;color:#ff9a9a;border-color:#f8717173}.state-working td.c-state{border-left-color:var(--info);box-shadow:-1px 0 10px -2px #60a5fa80}.state-working .c-proj .dot{background:var(--info);box-shadow:0 0 9px #60a5fae6;animation:pulse 1.4s infinite}.state-working{background:linear-gradient(90deg,rgba(96,165,250,.07),transparent 40%)}.state-needs-input td.c-state{border-left-color:var(--warn);box-shadow:-1px 0 12px -1px #fbbf2499}.state-needs-input .c-proj .dot{background:var(--warn);box-shadow:0 0 10px #fbbf24f2;animation:pulse 1.1s infinite}.state-needs-input{background:linear-gradient(90deg,rgba(251,191,36,.11),transparent 45%)}.state-idle td.c-state{border-left-color:var(--ok)}.state-idle .c-proj .dot{background:var(--ok);box-shadow:0 0 7px #34d39999}.state-closed td.c-state{border-left-color:#8a93c259}.state-closed .c-proj{color:#aeb6dc}.state-host-offline td.c-state{border-left-color:var(--err)}.state-host-offline{opacity:.66}.row.unreachable{opacity:.48;cursor:not-allowed}.row.unreachable:hover{background:#f8717112;box-shadow:inset 0 0 0 1px #f8717133}.row.unreachable .c-proj .pname{text-decoration:line-through;text-decoration-color:#f8717180}@keyframes pulse{0%,to{opacity:1}50%{opacity:.28}}.iconbtn,.popout{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:6px;cursor:pointer;font-size:13px;width:28px;height:26px;line-height:1;padding:0}.iconbtn:hover,.popout:hover{color:var(--cyan);border-color:var(--indigo)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.term{flex:1;min-height:0;padding:6px 8px}.keybar{display:flex;gap:6px;padding:6px 8px;border-top:1px solid var(--line);overflow-x:auto}.keybar button{font-family:var(--mono);font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 12px;min-width:44px;cursor:pointer}.composer{display:flex;gap:8px;padding:8px;border-top:1px solid var(--line);background:var(--surface)}.composer textarea{flex:1;resize:none;font-family:var(--mono);font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px}.composer button{background:var(--indigo);color:#fff;border:0;border-radius:8px;padding:0 16px;font-weight:600;cursor:pointer}.composer textarea{overflow-y:auto;max-height:160px;line-height:1.4}.composer .hint{align-self:flex-end;font-family:var(--mono);font-size:10px;color:var(--muted);padding-bottom:10px}.toast-host{position:fixed;top:12px;right:12px;z-index:50;display:flex;flex-direction:column;gap:8px;max-width:min(360px,90vw)}.toast{display:flex;gap:10px;align-items:flex-start;cursor:pointer;background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--info);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px #0006;transform:translate(120%);opacity:0;transition:transform .22s ease,opacity .22s ease}.toast.in{transform:translate(0);opacity:1}.toast-needs-input{border-left-color:var(--warn)}.toast-finished{border-left-color:var(--ok)}.toast-error{border-left-color:var(--err)}.toast-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;background:var(--warn);flex:none}.toast-finished .toast-dot{background:var(--ok)}.toast-error .toast-dot{background:var(--err);box-shadow:0 0 8px var(--err)}.toast-body{display:flex;flex-direction:column;gap:2px;font-size:13px}.toast-body strong{font-weight:600}.toast-body span{color:var(--muted)}.authwrap{flex:1;display:grid;place-items:center;padding:24px}.authcard{width:min(420px,100%);padding:28px;background:linear-gradient(180deg,#141b3dd9,#0d1330d9);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px #00000080,0 0 0 1px #38d8ff14}.authbrand{margin-bottom:20px}.authcard h1{font-family:var(--display);font-size:22px;font-weight:800;margin:0 0 6px}.authsub{color:var(--muted);font-size:13px;margin:0 0 20px;line-height:1.5}.authform{display:flex;flex-direction:column;gap:12px}.authform.inline{flex-direction:row;flex-wrap:wrap;align-items:center}.authform label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted)}.authform input{font-family:var(--ui);font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.authform input:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 3px #4263eb33}.btn-block{width:100%;padding:11px}.authdiv{display:flex;align-items:center;gap:10px;margin:16px 0;color:var(--muted);font-size:11px}.authdiv:before,.authdiv:after{content:"";flex:1;height:1px;background:var(--line)}.autherr{margin-top:14px;padding:10px 12px;border-radius:8px;font-size:12.5px;background:#f871711f;border:1px solid rgba(248,113,113,.4);color:#ff9a9a}.hintx{font-weight:400;color:#5b649a;font-size:11px}.ok-line{color:#5ce6ab;font-size:13px;margin:0}.userchip{position:relative}.userchip .adot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);margin-left:7px;vertical-align:middle;box-shadow:0 0 6px var(--cyan)}.usermenu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:190px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #00000080;overflow:hidden;display:flex;flex-direction:column}.usermenu button{background:none;border:0;color:var(--text);text-align:left;padding:10px 14px;font-size:13px;cursor:pointer;font-family:var(--ui)}.usermenu button:hover{background:#38d8ff1a;color:var(--cyan)}.unassigned{margin:4px 18px 0;padding:9px 14px;border-radius:10px;font-size:12.5px;color:var(--muted);background:#fbbf2412;border:1px solid rgba(251,191,36,.3)}.linkbtn{background:none;border:0;color:var(--cyan);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.modalback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#030614b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px}.modal{width:min(520px,100%);max-height:85vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px #0009}.modal header{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.modal h2{font-family:var(--display);font-size:16px;font-weight:800;margin:0;flex:1}.modalbody{padding:18px}.acct{margin-bottom:22px}.acct h3{font-size:13px;margin:0 0 10px;font-weight:700}.acctlist{margin-bottom:10px}.acctrow{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;font-size:13px;background:var(--surface-2)}.acctrow .meta{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted)}.acctrow.chk{cursor:pointer}.acctrow.chk input{accent-color:var(--indigo);width:16px;height:16px}.secret{display:block;font-family:var(--mono);font-size:13px;letter-spacing:.08em;padding:10px;background:#070b1c;border:1px solid var(--line);border-radius:8px;margin:8px 0;word-break:break-all}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}/**
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
* https://github.com/chjj/term.js
* @license MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Originally forked from (with the author's permission):
*   Fabrice Bellard's javascript vt100 for jslinux:
*   http://bellard.org/jslinux/
*   Copyright (c) 2011 Fabrice Bellard
*   The original design remains. The terminal itself
*   has been extended to include xterm CSI codes, among
*   other features.
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}
