/* =====================================================================
   01Cyber Terminal Widget — front-end styles
   Fully scoped under .cyber01-terminal-outer with cy01t- prefixed
   classes and local CSS variables, so it won't clash with the theme.
   ===================================================================== */

.cyber01-terminal-outer{
  --cy01t-line:#132038;
  --cy01t-text-mid:#9FB3C8;
  --cy01t-text-low:#5C7085;
  --cy01t-mono:'JetBrains Mono', monospace;
  --cy01t-sans:'Vazir', Tahoma, sans-serif;

  display:flex;
  justify-content:center;
  padding:20px;
  box-sizing:border-box;
  border-radius:16px;
}
.cyber01-terminal-outer *{ box-sizing:border-box; }

/* outer wrapper background variants */
.cyber01-terminal-outer.cy01t-bg-none{ background:transparent; padding:0; }
.cyber01-terminal-outer.cy01t-bg-solid{ background:#050505; }
.cyber01-terminal-outer.cy01t-bg-glass{
  background:rgba(8,17,32,.38);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  backdrop-filter:blur(20px) saturate(140%);
  border:1px solid rgba(255,255,255,.08);
}

.cy01t-terminal{
  width:100%;
  max-width:var(--cy01t-w, 480px);
  height:var(--cy01t-h, 320px);
  display:flex;
  flex-direction:column;
  background:rgba(8,17,32,.82);
  border:1px solid var(--cy01t-line);
  border-radius:14px;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--cy01t-accent) 8%, transparent),
    0 30px 80px -20px color-mix(in srgb, var(--cy01t-accent) 18%, transparent);
  overflow:hidden;
  animation:cy01tFloat 6s ease-in-out infinite;
}
@keyframes cy01tFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-8px); } }

.cy01t-bar{
  display:flex; align-items:center; gap:8px; padding:12px 16px;
  border-bottom:1px solid var(--cy01t-line); background:rgba(255,255,255,.02); flex:none;
}
.cy01t-dot{ width:11px; height:11px; border-radius:50%; }
.cy01t-dot.r{ background:#FF5F57; } .cy01t-dot.y{ background:#FEBC2E; } .cy01t-dot.g{ background:#28C840; }
.cy01t-title{
  margin-inline-start:auto; font-family:var(--cy01t-mono); font-size:12px; color:var(--cy01t-text-low);
}

.cy01t-body{
  padding:18px; font-family:var(--cy01t-mono); font-size:var(--cy01t-fs, 13px); line-height:1.85;
  flex:1; min-height:0; overflow-y:auto; color:var(--cy01t-text-mid);
}
.cy01t-body::-webkit-scrollbar{ width:6px; }
.cy01t-body::-webkit-scrollbar-thumb{ background:color-mix(in srgb, var(--cy01t-accent) 25%, transparent); border-radius:99px; }
.cy01t-body{ scrollbar-width:thin; }

.cy01t-ln{ word-break:break-word; }
.cy01t-ok{ color:#00FF88; }
.cy01t-warn{ color:#FEBC2E; }
.cy01t-caret{
  display:inline-block; width:7px; height:13px; background:var(--cy01t-accent);
  vertical-align:middle; box-shadow:0 0 8px var(--cy01t-accent); animation:cy01tBlink 1s steps(1) infinite;
}
@keyframes cy01tBlink{ 0%,100%{ opacity:1; } 50%{ opacity:0; } }

@media (prefers-reduced-motion: reduce){
  .cyber01-terminal-outer *{ animation:none !important; }
}

@media (max-width:600px){
  .cy01t-terminal{ max-width:100%; }
}
