.terminal-window {
  width:min(960px,calc(100vw - 120px));height:min(640px,calc(100dvh - 90px));
  left:max(84px,calc(50vw - 440px));top:max(32px,calc(50dvh - 320px));
  border-radius:14px;
}
.terminal-window.terminal-entering {animation:terminal-enter .24s cubic-bezier(.2,.8,.2,1);}
@keyframes terminal-enter {from {opacity:0;scale:.97;} to {opacity:1;scale:1;}}
.terminal-window .titlebar {border-bottom:1px solid var(--line);}
.terminal-screen {
  container-type:inline-size;
  flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:22px 24px;
  background:radial-gradient(110% 70% at 0 0,var(--terminal-color-background_glow,#1d2a38) 0,transparent 62%),var(--terminal-color-background,#151c24);
  color:var(--terminal-color-text,#d6e1ed);scrollbar-color:#405064 var(--terminal-color-background,#151c24);scrollbar-width:thin;color-scheme:dark;
  font:var(--terminal-font-size,14.5px)/1.75 Consolas,"SFMono-Regular","Liberation Mono","Microsoft YaHei",monospace;
  cursor:text;tab-size:4;font-variant-ligatures:none;
}
.terminal-screen ::selection {background:color-mix(in srgb,var(--terminal-color-directory,#83bcf3) 25%,transparent);color:var(--terminal-color-welcome,#f0f5fa);}
.terminal-block {margin:0 0 14px;}
.terminal-line,.terminal-echo {white-space:pre-wrap;overflow-wrap:anywhere;}
.terminal-echo {color:var(--terminal-color-input,#f0f5fa);}
.terminal-line:empty::before {content:"\00a0";}
.terminal-line.terminal-welcome {color:var(--terminal-color-welcome,#f0f5fa);margin-bottom:20px;}
.terminal-line.terminal-banner {
  white-space:pre;overflow-wrap:normal;overflow-x:auto;max-width:100%;
  font-size:clamp(5px,var(--terminal-banner-font,14.5px),var(--terminal-font-size,14.5px));line-height:1.2;font-weight:700;
}
@supports (background-clip:text) or (-webkit-background-clip:text) {
  .terminal-line.terminal-banner {
    background:linear-gradient(90deg,var(--terminal-color-banner_start,#86d6af),var(--terminal-color-banner_middle,#83bcf3) 55%,var(--terminal-color-banner_end,#f3a8c8));
    -webkit-background-clip:text;background-clip:text;color:transparent;
    filter:drop-shadow(0 0 10px color-mix(in srgb,var(--terminal-color-banner_start,#86d6af) 22%,transparent));
  }
}
.terminal-prompt,#terminal-prompt {color:var(--terminal-color-prompt,#86d6af);}
.terminal-window .pt-sep {color:var(--terminal-color-prompt_separator,#5f7189);}
.terminal-window .pt-path {color:var(--terminal-color-directory,#83bcf3);}
.terminal-window .pt-dollar {color:var(--terminal-color-prompt_symbol,#b8c7d8);}
.terminal-window .is-root .pt-user,.terminal-window .is-root .pt-dollar {color:var(--terminal-color-root_prompt,#f2c97d);}
.terminal-window .ll-perm,.terminal-window .ll-size,.terminal-window .ll-date {color:var(--terminal-color-list_meta,#5f7189);}
.terminal-window .ll-own {color:var(--terminal-color-list_owner,#7e90a5);}
.terminal-window .ll-name.is-dir {color:var(--terminal-color-directory,#83bcf3);font-weight:700;}
.terminal-window .ll-name.is-img {color:var(--terminal-color-image,#f3a8c8);}
.terminal-window .ll-name.is-doc {color:var(--terminal-color-document,#e9d6a8);}
.terminal-directory {color:var(--terminal-color-directory,#83bcf3);}
.terminal-muted {color:var(--terminal-color-muted,#97a8ba);}
.terminal-error {color:var(--terminal-color-error,#ffabb0);}
.terminal-success {color:var(--terminal-color-success,#86d6af);}
.terminal-warning {color:var(--terminal-color-warning,#f2c97d);}
.terminal-info {color:var(--terminal-color-info,#83bcf3);}
#terminal-form {display:flex;align-items:baseline;gap:10px;margin:0;}
#terminal-prompt {flex-shrink:0;max-width:70%;overflow-wrap:anywhere;}
#terminal-input {
  flex:1;min-width:0;width:100%;padding:0;border:0;border-radius:0;outline:none;
  font:inherit;line-height:inherit;background:transparent;color:var(--terminal-color-input,#f0f5fa);caret-color:var(--terminal-color-caret,#b1e5c8);
  box-shadow:none;caret-shape:block;
}
#terminal-form:focus-within {box-shadow:0 1px color-mix(in srgb,var(--terminal-color-prompt,#86d6af) 14%,transparent);}
/* Only paint a fixed caret for the terminal's no-echo keyboard target. */
#terminal-form.is-password {position:relative;}
#terminal-form.is-password #terminal-secret-input:not([hidden]) {
  position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;opacity:0;font:inherit;
  font-size:max(16px,var(--terminal-font-size,14.5px));appearance:none;
}
#terminal-secret-input::-webkit-search-cancel-button,
#terminal-secret-input::-webkit-search-decoration {display:none;}
#terminal-form.is-password:focus-within::after {
  content:'';display:block;align-self:center;width:.6ch;height:1.1em;
  background:var(--terminal-color-caret,#b1e5c8);
}
.terminal-shortcuts {display:none;}
@media (max-width:760px) {
  .terminal-screen {padding:16px 14px;}
  #terminal-form {flex-wrap:wrap;gap:2px;}
  #terminal-prompt {flex-basis:100%;max-width:100%;}
  #terminal-input {flex-basis:100%;font-size:max(16px,var(--terminal-font-size,14.5px));min-height:30px;}
  .terminal-shortcuts {display:flex;flex:0 0 auto;gap:8px;padding:6px 12px;background:#202a33;}
  .terminal-shortcuts button {flex:1;min-height:38px;border:1px solid #405064;border-radius:6px;color:#c1d3e5;}
  .terminal-shortcuts button:active {background:#304154;}
  body #terminal.terminal-keyboard-open:not(:fullscreen) {
    top:var(--terminal-keyboard-top)!important;height:var(--terminal-keyboard-height)!important;
  }
}
@media (prefers-reduced-motion:reduce) {
  .terminal-window.terminal-entering {animation:none;}
}
