.cterm-shell{--cterm-phosphor:#4cff82;box-sizing:border-box;width:100%;height:100dvh;min-height:0;background:#050505;padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));font-family:"Courier New",Courier,monospace;color:#eee;overflow:hidden;display:grid;place-items:center}
.cterm-shell *{box-sizing:border-box}.cterm-fullscreen{height:100dvh;min-height:0}.cterm-device{width:min(calc(100dvh * 9 / 16),100%);height:min(100dvh,calc(100vw * 16 / 9));max-height:100%;aspect-ratio:9/16;margin:auto;padding:clamp(5px,1.4vw,9px);border-radius:clamp(16px,5vw,28px);background:linear-gradient(90deg,#3f392e,#a18e69 9%,#6e624c 50%,#a18e69 91%,#3f392e);box-shadow:inset 0 0 0 2px #c0ae88,inset 0 0 0 5px #463e31,0 8px 28px #000;display:grid;grid-template-rows:minmax(0,55fr) minmax(0,45fr);gap:clamp(4px,1vw,7px);overflow:hidden}
.cterm-monitor{min-height:0}.cterm-bezel{height:100%;padding:clamp(9px,2.7vw,16px) clamp(8px,2.3vw,14px) clamp(5px,1.3vw,8px);border-radius:clamp(13px,4vw,22px);background:linear-gradient(145deg,#9d8b6b,#514837);box-shadow:inset 0 0 0 3px #302b23,inset 0 0 20px #1c1914;position:relative;display:grid;grid-template-rows:minmax(0,1fr) clamp(18px,5.5vw,27px);gap:clamp(4px,1vw,7px)}.cterm-screen{min-height:0;border-radius:17%/11%;overflow:hidden;position:relative;background:radial-gradient(ellipse at center,#082416 0%,#03130c 55%,#010604 100%);box-shadow:inset 0 0 25px #000,0 0 0 5px #1b1914,0 0 0 7px #b39f77}
.cterm-output{position:absolute;inset:0;padding:clamp(12px,4vw,22px) clamp(12px,3.7vw,20px);overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:clamp(8px,2.55vw,14px);line-height:1.24;color:var(--cterm-phosphor);text-shadow:0 0 4px color-mix(in srgb,var(--cterm-phosphor) 80%,transparent),0 0 10px color-mix(in srgb,var(--cterm-phosphor) 30%,transparent);scrollbar-width:none}.cterm-output::-webkit-scrollbar{display:none}.cterm-output::after{content:"_";animation:cterm-blink .85s steps(1) infinite}.cterm-scanlines{position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(0,0,0,.23) 3px 4px);mix-blend-mode:multiply}.cterm-glare{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.075),transparent 31%,transparent 65%,rgba(255,255,255,.025));border-radius:inherit}.cterm-nameplate{min-height:0;display:flex;align-items:center;justify-content:center;border:1px solid #2b271f;background:#655a47;color:#1d1a15;font-weight:700;font-size:clamp(7px,2vw,10px);letter-spacing:.06em;text-shadow:0 1px rgba(255,255,255,.25);overflow:hidden;white-space:nowrap}
.cterm-panel{min-height:0;padding:clamp(5px,1.4vw,8px);border-radius:clamp(8px,2.4vw,14px);background:linear-gradient(#766b56,#4c4639);box-shadow:inset 0 0 0 2px #aa9874,inset 0 0 0 4px #383228;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:clamp(4px,1vw,7px);overflow:hidden}.cterm-button-grid{min-height:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(4px,1.1vw,7px)}.cterm-key{position:relative;min-height:0;height:100%;border:0;border-radius:5px;padding:clamp(9px,2.6vw,14px) 2px clamp(3px,.9vw,5px);background:linear-gradient(#35332c,#171713);color:#f0e5c8;font:700 clamp(7px,2.2vw,12px)/1 "Arial Narrow",Arial,sans-serif;letter-spacing:.015em;box-shadow:0 clamp(2px,.8vw,4px) 0 #090908,0 5px 6px #1b1813,inset 0 0 0 2px #5e5747;cursor:pointer;touch-action:manipulation}.cterm-key:active,.cterm-key.is-active{transform:translateY(3px);box-shadow:0 1px 0 #090908,inset 0 0 0 2px #5e5747}.cterm-led{position:absolute;top:clamp(3px,.9vw,6px);left:50%;width:clamp(13px,4vw,21px);height:clamp(3px,1vw,5px);transform:translateX(-50%);border-radius:2px;background:#24301e;box-shadow:inset 0 0 2px #000}.cterm-key.is-active .cterm-led{background:var(--cterm-phosphor);box-shadow:0 0 8px var(--cterm-phosphor)}
.cterm-status-strip{height:clamp(22px,6.4vw,34px);border:2px solid #302c24;background:#26241e;box-shadow:inset 0 0 0 1px #8b7c60;padding:0 clamp(6px,2vw,12px);display:flex;align-items:center;justify-content:space-between;color:#d8c9a5;font:700 clamp(6px,1.75vw,9px)/1 Arial,sans-serif}.cterm-status-strip span{display:flex;align-items:center;gap:clamp(3px,1vw,6px);white-space:nowrap}.cterm-status-strip i{width:clamp(6px,1.8vw,9px);height:clamp(6px,1.8vw,9px);border-radius:50%;background:var(--cterm-phosphor);box-shadow:0 0 6px var(--cterm-phosphor)}.cterm-status-strip .cterm-status-alert i{background:#f65b45;box-shadow:0 0 6px #f65b45}.cterm-utility-row{height:clamp(34px,10vw,52px);display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(4px,1.1vw,7px)}.cterm-key-small,.cterm-key-input{min-height:0;height:100%;grid-column:auto;padding-top:clamp(8px,2.4vw,13px)}
.cterm-modal[hidden]{display:none}.cterm-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.76);backdrop-filter:blur(3px)}.cterm-modal-card{width:min(100%,430px);padding:18px;border:3px solid #75684f;background:#181712;box-shadow:0 0 0 3px #211f19,0 20px 80px #000;color:var(--cterm-phosphor)}.cterm-modal-card h2{margin:0 0 15px;font:700 16px/1 "Courier New",monospace;letter-spacing:.1em}.cterm-modal-card input{width:100%;padding:14px;border:1px solid var(--cterm-phosphor);border-radius:0;background:#030604;color:var(--cterm-phosphor);font:16px/1.2 "Courier New",monospace;outline:none;box-shadow:inset 0 0 12px #000}.cterm-modal-card form>div{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.cterm-modal-card button{padding:10px 14px;border:1px solid #8f8061;background:#312e26;color:#eee;font:700 12px "Courier New",monospace}
@keyframes cterm-blink{50%{opacity:0}}
@media(min-aspect-ratio:9/16){.cterm-device{width:min(calc(100dvh * 9 / 16),540px);height:min(100dvh,960px)}}
@media(max-height:700px){.cterm-device{grid-template-rows:minmax(0,53fr) minmax(0,47fr)}.cterm-output{font-size:clamp(7px,2.25vw,11px);line-height:1.18}.cterm-panel{gap:3px}.cterm-button-grid,.cterm-utility-row{gap:3px}.cterm-status-strip{height:20px}.cterm-utility-row{height:31px}}
