/* ==========================================================================
   vscode-demo.css — mini VS Code interativo do tutorial ".env na prática"
   (tela 9 do deck). Depende de css/style.css + css/apresentacao.css.
   ========================================================================== */
.vsc-slide .left{flex:0 0 30%}

/* ---------- passos ---------- */
.steps{list-style:none;counter-reset:st;display:flex;flex-direction:column;gap:.6vh}
.steps li{counter-increment:st;display:grid;grid-template-columns:1.7em 1fr;gap:.15em .6em;padding:.55em .8em;border-radius:10px;border:1px solid var(--line);background:var(--panel);opacity:.5;transition:opacity .25s,border-color .25s}
.steps li::before{content:counter(st);grid-row:1/3;align-self:start;display:grid;place-items:center;width:1.7em;height:1.7em;border-radius:50%;border:1px solid var(--line);font-family:var(--fm);font-size:.8em;color:var(--muted)}
.steps li.is-current{opacity:1;border-color:rgba(79,140,255,.55);box-shadow:0 0 0 3px rgba(79,140,255,.12)}
.steps li.is-done{opacity:.85}
.steps li.is-done::before{content:"✓";background:var(--ok);color:var(--ink);border-color:var(--ok);font-weight:700}
.steps b{font-family:var(--fd);font-size:clamp(12.5px,1.05vw,16px)}
.steps span{color:var(--muted);font-size:clamp(11px,.85vw,13px);line-height:1.4}
.steps code{font-size:.9em}
.steps-actions{display:flex;flex-wrap:wrap;gap:.4em}
.vsc-btn{border:1px solid rgba(232,236,245,.22);background:rgba(232,236,245,.06);border-radius:8px;padding:.5em .95em;font-weight:600;font-size:clamp(11px,.85vw,13px);transition:background .2s,transform .15s}
.vsc-btn:hover{background:rgba(232,236,245,.14);transform:translateY(-1px)}
.vsc-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.vsc-btn.primary:hover{background:#6ea0ff}
.vsc-btn.ghost{background:transparent;color:var(--muted)}
.vsc-btn[disabled]{opacity:.5;pointer-events:none}

/* ---------- a janela ---------- */
.vsc{flex:1;min-width:0;height:74vh;display:grid;grid-template-rows:auto 1fr auto auto;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 80px rgba(0,0,0,.55);background:#1e1e1e;color:#ccc;font-family:var(--fb);font-size:clamp(11px,.85vw,13px);text-align:left}
.vsc__title{display:flex;align-items:center;gap:.8em;padding:.45em .9em;background:#3c3c3c;color:#bbb;font-size:.92em}
.vsc__dots{display:inline-flex;gap:.45em}.vsc__dots i{width:.85em;height:.85em;border-radius:50%;background:#ff5f57}.vsc__dots i:nth-child(2){background:#febc2e}.vsc__dots i:nth-child(3){background:#28c840}
.vsc__title .t{flex:1;text-align:center;opacity:.85}
.vsc__body{display:grid;grid-template-columns:44px 214px 1fr;min-height:0}

.vsc__activity{background:#333;display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:6px}
.vsc__activity span{width:44px;height:38px;display:grid;place-items:center;color:#858585;border-left:2px solid transparent}
.vsc__activity span.is-on{color:#fff;border-left-color:#fff}
.vsc__activity svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.vsc__explorer{background:#252526;overflow:auto;min-height:0;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:#444 transparent}
.vsc__exp-head{padding:.55em .9em .3em;font-size:.76em;letter-spacing:.08em;color:#bbb;text-transform:uppercase}
.vsc__project{padding:.15em .6em;font-size:.8em;font-weight:700;color:#ccc;letter-spacing:.04em}
.vsc__tree{list-style:none;margin:0;padding:0 0 .5em;font-size:.95em}
.vsc__tree li{display:flex;align-items:center;gap:.35em;padding:.16em .5em .16em calc(.8em + var(--d,0)*1em);cursor:pointer;white-space:nowrap;color:#ccc;line-height:1.55}
.vsc__tree li:hover{background:#2a2d2e}
.vsc__tree li.is-active{background:#37373d;color:#fff}
.vsc__tree li.is-folder::before,.vsc__project::before{content:"";flex:none;width:.42em;height:.42em;margin:0 .45em 0 .15em;border-right:1.5px solid #9a9a9a;border-bottom:1.5px solid #9a9a9a;transform:rotate(45deg) translateY(-2px)}
.vsc__project{display:flex;align-items:center}
.vsc__tree li.is-file::before{content:"";flex:none;width:1.02em}
.vsc__tree li.is-ignored{color:#8c8c8c}
.vsc__tree li.is-untracked{color:#73c991}
.vsc__tree .ico{width:1.15em;text-align:center;font-size:.9em;opacity:.85}
.vsc__tree .badge{margin-left:auto;font-size:.78em;font-weight:600;color:#73c991}
.vsc__tree .badge.ign{color:#8c8c8c}
.vsc__tree .add{margin-left:auto;width:1.45em;height:1.45em;border:0;border-radius:4px;background:transparent;color:#ccc;opacity:.55;font-size:1.05em;line-height:1;display:grid;place-items:center}
.vsc__tree .add:hover{background:#3c3c3c;opacity:1}
.vsc__tree li.is-adding{cursor:default}
.vsc__tree li.is-adding input{flex:1;min-width:0;background:#3c3c3c;border:1px solid #007fd4;color:#fff;font:inherit;padding:0 .35em;outline:none;border-radius:2px}

.vsc__editor{display:grid;grid-template-rows:auto 1fr;min-width:0;min-height:0}
.vsc__tabs{display:flex;background:#252526;overflow:hidden;min-height:2.4em}
.vsc__tab{display:flex;align-items:center;gap:.5em;padding:.5em 1em;background:#2d2d2d;color:#969696;border-right:1px solid #252526;cursor:pointer;font-size:.92em;white-space:nowrap}
.vsc__tab.is-active{background:#1e1e1e;color:#fff;box-shadow:inset 0 1px 0 #007acc}
.vsc__tab .x{opacity:.55;margin-left:.2em}.vsc__tab .x:hover{opacity:1}
.vsc__tab .ico{opacity:.85}
.vsc__code{position:relative;display:grid;grid-template-columns:3.2em 1fr;min-height:0;overflow:hidden;font-family:var(--fm);font-size:clamp(11px,.9vw,13.5px);line-height:1.65}
.vsc__gutter{padding:.6em .9em .6em 0;text-align:right;color:#6e7681;user-select:none;overflow:hidden}
.vsc__gutter span{display:block}
.vsc__area{position:relative;min-width:0}
.vsc__hl,.vsc__ta{position:absolute;inset:0;margin:0;padding:.6em .8em;font:inherit;line-height:inherit;white-space:pre;overflow:auto;tab-size:2;scrollbar-width:thin;scrollbar-color:#444 transparent}
.vsc__hl{pointer-events:none;color:#d4d4d4}
.vsc__ta{background:transparent;color:transparent;caret-color:#fff;border:0;outline:none;resize:none}
.vsc__ta::selection{background:rgba(38,79,120,.8)}
.vsc__hl .k{color:#9cdcfe}.vsc__hl .eq{color:#d4d4d4}.vsc__hl .v{color:#ce9178}.vsc__hl .c{color:#6a9955}.vsc__hl .n{color:#b5cea8}
.vsc__hl .bad{color:#f48771;text-decoration:underline wavy #f48771;text-underline-offset:3px}
.vsc__empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#6e7681;font-family:var(--fb);font-size:1.05em;text-align:center;padding:1em;line-height:1.6}
.vsc__empty p{margin:0;max-width:26em}.vsc__empty b{color:#9d9d9d}
.vsc__empty[hidden]{display:none}

.vsc__terminal{background:#181818;border-top:1px solid #2b2b2b;height:8.2em;overflow:auto;padding:.4em .9em;font-family:var(--fm);font-size:clamp(10.5px,.82vw,12.5px);line-height:1.5;color:#ccc;scrollbar-width:thin;scrollbar-color:#444 transparent}
.vsc__terminal .lbl{font-family:var(--fb);font-size:.78em;letter-spacing:.08em;color:#bbb;text-transform:uppercase;display:block;margin-bottom:.2em}
.vsc__terminal .p{color:#4ec9b0}.vsc__terminal .ok{color:#73c991}.vsc__terminal .warn{color:#f48771}.vsc__terminal .dim{color:#8c8c8c}
.vsc__terminal div{white-space:pre-wrap;overflow-wrap:anywhere}

.vsc__status{display:flex;align-items:center;gap:1.2em;padding:.28em .9em;background:#007acc;color:#fff;font-size:.82em;transition:background .3s}
.vsc__status .msg{flex:1;text-align:center;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vsc__status.is-warn{background:#b93a16}
.vsc__status.is-ok{background:#1b7f4e}

@media (max-width:1000px){
  .vsc-slide .left{flex:none}
  .vsc{height:70vh}.vsc__body{grid-template-columns:36px 150px 1fr}
}
@media (max-width:600px){.vsc__body{grid-template-columns:0 130px 1fr}.vsc__activity{display:none}}
