/* ============================================================
   25 — Git az IDE-ben: oldalspecifikus elemek
   betűjelek · állapotsor-minta · Visual Studio-minta · VS Code-szimulátor (.vsc)
   ============================================================ */

.ix.term::before{content:"⌨ INTEGRÁLT TERMINÁL";}
.ix.vsc-ix::before{content:"🧩 VS CODE-SZIMULÁTOR";}

/* ---------- betűjelek, sávok ---------- */
.vj{display:inline-grid; place-items:center; width:22px; height:22px; border-radius:5px; font:700 .8rem "Cascadia Mono",Consolas,monospace; background:#1f1f1f;}
.vj.u, .vj.r{color:#73c991;} .vj.a{color:#81b88b;} .vj.m{color:#e2c08d;} .vj.d{color:#c74e39;} .vj.c{color:#e4676b;}
.sav{display:inline-block; padding:0 6px 0 8px; border-left:4px solid; font-weight:700;}
.sav.z{border-color:#2ea043;} .sav.k{border-color:#1b81a8;} .sav.p{border-color:#f85149;}

/* ---------- állapotsor-minta ---------- */
.statusz-minta{display:flex; flex-wrap:wrap; gap:14px; align-items:center; background:#007acc; color:#ffffff; border-radius:8px; padding:4px 12px; margin:12px 0;
  font:600 .8rem "Segoe UI",sans-serif;}
.sm-jobb{margin-left:auto; opacity:.9;}

/* ---------- Visual Studio-minta ---------- */
.vs-minta{background:#1e1e1e; color:#d4d4d4; border:1px solid #3f3f46; border-radius:8px; max-width:520px; margin:14px 0; font:.84rem "Segoe UI",sans-serif; overflow:hidden;}
:root[data-theme="light"] .vs-minta{background:#f5f5f5; color:#1e1e1e; border-color:#ccc;}
.vsm-fej{display:flex; justify-content:space-between; background:#2d2d30; color:#ffffff; padding:5px 10px; font-weight:600;}
:root[data-theme="light"] .vsm-fej{background:#e7e8ec; color:#1e1e1e;}
.vsm-sor{display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:6px 10px; border-top:1px solid rgba(128,128,128,.25);}
.vsm-jel{display:inline-grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--accent); color:var(--accent-ink); font-weight:800; font-size:.72rem; flex:0 0 auto;}
.vsm-ag{border:1px solid rgba(128,128,128,.5); border-radius:3px; padding:1px 8px;}
.vsm-gombok{margin-left:auto; display:flex; gap:6px; align-items:center;}
.vsm-uz{flex:1; border:1px solid rgba(128,128,128,.5); border-radius:3px; padding:3px 8px; opacity:.7;}
.vsm-commit{background:#0e639c; color:#ffffff; border-radius:3px; padding:2px 12px; font-weight:600;}
.vsm-halv{opacity:.65; font-size:.78rem;}
.vsm-lista{align-items:flex-start;}
.vsm-f{padding-left:16px;}
.vsm-f b{margin-left:8px;} .vsm-f b.m{color:#e2c08d;} .vsm-f b.a{color:#81b88b;}

/* ============================================================
   VS Code-szimulátor
   ============================================================ */
.vsc{
  --v-bg:#1f1f1f; --v-side:#181818; --v-act:#181818; --v-line:#2b2b2b; --v-ink:#cccccc; --v-muted:#8b8b8b; --v-hover:#2a2d2e; --v-sel:#04395e;
  --v-input:#313131; --v-btn:#0078d4; --v-status:#007acc; --v-tab:#181818; --v-tab-akt:#1f1f1f;
  --v-add:rgba(46,160,67,.22); --v-del:rgba(248,81,73,.22); --v-u:#73c991; --v-m:#e2c08d; --v-d:#c74e39; --v-a:#81b88b; --v-c:#e4676b;
  background:var(--v-bg); color:var(--v-ink); border:1px solid var(--v-line); border-radius:8px; overflow:hidden; margin-top:10px;
  font:13px/1.45 "Segoe UI",system-ui,sans-serif; min-width:0;
}
:root[data-theme="light"] .vsc{
  --v-bg:#ffffff; --v-side:#f8f8f8; --v-act:#f8f8f8; --v-line:#e5e5e5; --v-ink:#3b3b3b; --v-muted:#767676; --v-hover:#f0f0f0; --v-sel:#cce5ff;
  --v-input:#ffffff; --v-btn:#005fb8; --v-status:#007acc; --v-tab:#f8f8f8; --v-tab-akt:#ffffff;
  --v-add:rgba(46,160,67,.16); --v-del:rgba(248,81,73,.14); --v-u:#2d883e; --v-m:#895503; --v-d:#ad0707; --v-a:#587c0c; --v-c:#ad0707;
}
.vsc *{box-sizing:border-box;}
.vsc button{font:inherit; color:inherit; background:none; border:0; cursor:pointer; padding:0;}
.vsc button:focus-visible{outline:1px solid var(--v-btn); outline-offset:-1px;}
.vsc code{font-family:"Cascadia Mono",Consolas,monospace; font-size:12px; background:none; color:inherit; padding:0;}
.v-cim{display:flex; align-items:center; gap:10px; padding:4px 10px; background:var(--v-act); border-bottom:1px solid var(--v-line); font-size:12px; color:var(--v-muted);}
.v-cim b{color:var(--v-ink); font-weight:600; margin:0 auto;}
.v-test{display:grid; grid-template-columns:44px 270px minmax(0,1fr); height:440px;}
.v-akt{background:var(--v-act); border-right:1px solid var(--v-line); display:flex; flex-direction:column; align-items:center; padding-top:6px; gap:4px;}
.v-akt button{position:relative; width:44px; height:44px; display:grid; place-items:center; color:var(--v-muted); font-size:20px; border-left:2px solid transparent;}
.v-akt button[aria-pressed="true"]{color:var(--v-ink); border-left-color:var(--v-btn);}
.v-akt .v-badge{position:absolute; right:5px; bottom:6px; min-width:16px; height:16px; border-radius:8px; background:var(--v-btn); color:#ffffff; font-size:10px; font-weight:700;
  display:grid; place-items:center; padding:0 4px;}
.v-oldal{background:var(--v-side); border-right:1px solid var(--v-line); overflow-y:auto; min-width:0;}
.v-ofej{display:flex; align-items:center; justify-content:space-between; padding:8px 12px 6px; font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--v-muted);}
.v-ofej .v-ikonok{display:flex; gap:2px;}
.v-ikon{width:24px; height:22px; border-radius:4px; display:grid; place-items:center; font-size:14px;}
.v-ikon:hover{background:var(--v-hover);}
.v-uzenet{margin:0 12px 6px;}
.v-uzenet textarea{width:100%; resize:vertical; min-height:30px; background:var(--v-input); color:var(--v-ink); border:1px solid var(--v-line); border-radius:3px; padding:4px 6px;
  font:inherit; font-size:13px;}
.v-uzenet textarea:focus{outline:1px solid var(--v-btn); outline-offset:-1px;}
.v-commit{display:flex; margin:0 12px 8px;}
.v-commit .v-fo{flex:1; background:var(--v-btn); color:#ffffff; border-radius:3px 0 0 3px; padding:4px 8px; font-weight:600;}
.v-commit .v-nyil{background:var(--v-btn); color:#ffffff; border-radius:0 3px 3px 0; padding:4px 8px; border-left:1px solid rgba(255,255,255,.35);}
.v-commit .v-fo:disabled, .v-commit .v-nyil:disabled{opacity:.5; cursor:default;}
.v-menu{margin:-4px 12px 8px; background:var(--v-input); border:1px solid var(--v-line); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.35); padding:4px 0;}
.v-menu button{display:block; width:100%; text-align:left; padding:4px 12px;}
.v-menu button:hover{background:var(--v-sel); color:#ffffff;}
:root[data-theme="light"] .v-menu button:hover{color:var(--v-ink);}
.v-menu hr{border:0; border-top:1px solid var(--v-line); margin:4px 0;}
.v-kerdes{margin:0 12px 8px; padding:8px; border:1px solid var(--v-line); border-radius:4px; background:var(--v-input); font-size:12px;}
.v-kerdes .v-gs{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
.v-kerdes .v-gs button{background:var(--v-btn); color:#fff; border-radius:3px; padding:2px 10px;}
.v-kerdes .v-gs button.v-masod{background:var(--v-hover); color:var(--v-ink); border:1px solid var(--v-line);}
.v-csop{display:flex; align-items:center; gap:4px; padding:3px 12px 3px 8px; font-size:11px; font-weight:700; text-transform:uppercase; color:var(--v-ink); cursor:default;}
.v-csop .v-db{margin-left:auto; background:var(--v-hover); border-radius:8px; padding:0 6px; font-size:10px;}
.v-sor{display:flex; align-items:center; gap:6px; padding:2px 8px 2px 22px; cursor:pointer; min-width:0; position:relative;}
.v-sor:hover{background:var(--v-hover);}
.v-sor[aria-current="true"]{background:var(--v-sel);}
.v-sor .v-nev{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;}
.v-sor .v-ut{color:var(--v-muted); font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; flex:1;}
.v-sor .v-mgomb{display:none; gap:1px;}
.v-sor:hover .v-mgomb, .v-sor:focus-within .v-mgomb{display:flex;}
@media (hover:none){ .v-sor .v-mgomb{display:flex;} }
.v-sor .v-mgomb button{width:22px; height:20px; border-radius:3px; display:grid; place-items:center; font-size:13px;}
.v-sor .v-mgomb button:hover{background:rgba(128,128,128,.25);}
.v-betu{font:700 12px "Cascadia Mono",Consolas,monospace; width:14px; text-align:center; flex:0 0 auto;}
.v-betu.U, .v-betu.R{color:var(--v-u);} .v-betu.M{color:var(--v-m);} .v-betu.D{color:var(--v-d);} .v-betu.A{color:var(--v-a);} .v-betu.C{color:var(--v-c);}
.v-nev.U{color:var(--v-u);} .v-nev.M{color:var(--v-m);} .v-nev.D{color:var(--v-d); text-decoration:line-through;} .v-nev.A{color:var(--v-a);} .v-nev.C{color:var(--v-c);}
.v-ures{padding:6px 16px; color:var(--v-muted); font-size:12px;}
.v-sync{margin:4px 12px 8px;}
.v-sync button{width:100%; background:var(--v-btn); color:#ffffff; border-radius:3px; padding:4px 8px; font-weight:600;}
.v-graf{margin:0; padding:4px 10px 10px 14px; font:12px/1.5 "Cascadia Mono",Consolas,monospace; white-space:pre; overflow-x:auto; color:var(--v-ink); background:none; border:0; box-shadow:none;}
.v-graf .o-graph{color:#e2c08d;} .v-graf .o-hash{color:var(--v-muted);} .v-graf .o-ref{color:#4fc1ff; font-weight:700;}
.v-szerk{display:flex; flex-direction:column; min-width:0; background:var(--v-bg);}
.v-fulek{display:flex; background:var(--v-tab); border-bottom:1px solid var(--v-line); overflow-x:auto; min-height:34px;}
.v-ful{display:flex; align-items:center; gap:6px; padding:6px 12px; border-right:1px solid var(--v-line); white-space:nowrap; font-size:12.5px; color:var(--v-muted);}
.v-ful.akt{background:var(--v-tab-akt); color:var(--v-ink); border-top:1px solid var(--v-btn);}
.v-ful .v-bezar{margin-left:4px; opacity:.7;}
.v-szerk-t{flex:1; overflow:auto; min-height:0;}
.v-kezdo{padding:30px 20px; color:var(--v-muted); text-align:center;}
.v-kezdo kbd{font-size:11px;}
.v-edit{display:flex; flex-direction:column; height:100%;}
.v-edit textarea{flex:1; width:100%; resize:none; border:0; background:var(--v-bg); color:var(--v-ink); padding:8px 12px; font:13px/1.5 "Cascadia Mono",Consolas,monospace; white-space:pre; overflow:auto;}
.v-edit textarea:focus{outline:none;}
.v-edit-sav{display:flex; align-items:center; gap:8px; padding:4px 10px; border-top:1px solid var(--v-line); font-size:12px; color:var(--v-muted);}
.v-edit-sav button{background:var(--v-btn); color:#fff; border-radius:3px; padding:2px 10px;}
.v-diff{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); font:12.5px/1.55 "Cascadia Mono",Consolas,monospace; min-width:0;}
.v-diff-f{grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); font:12px "Segoe UI",sans-serif; color:var(--v-muted); border-bottom:1px solid var(--v-line);}
.v-diff-f span{padding:4px 10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.v-dcel{display:flex; min-width:0; white-space:pre; overflow:hidden;}
.v-dcel .v-ln{flex:0 0 36px; text-align:right; padding-right:10px; color:var(--v-muted); user-select:none;}
.v-dcel .v-dt{overflow:hidden; text-overflow:ellipsis; padding-right:8px;}
.v-dcel.bal{border-right:1px solid var(--v-line);}
.v-dcel.del{background:var(--v-del);} .v-dcel.add{background:var(--v-add);} .v-dcel.ures{background:repeating-linear-gradient(135deg, transparent 0 4px, rgba(128,128,128,.12) 4px 6px);}
.v-panel{border-top:1px solid var(--v-line); background:var(--v-bg);}
.v-pfulek{display:flex; gap:14px; padding:4px 12px; font-size:11px; text-transform:uppercase; letter-spacing:.04em;}
.v-pfulek button{color:var(--v-muted); padding:3px 0; border-bottom:1px solid transparent;}
.v-pfulek button[aria-pressed="true"]{color:var(--v-ink); border-bottom-color:var(--v-ink);}
.v-pfulek .v-csat{margin-left:auto; color:var(--v-muted); text-transform:none; letter-spacing:0;}
.v-kimenet{height:120px; overflow-y:auto; padding:2px 12px 8px; font:12px/1.5 "Cascadia Mono",Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere;}
.v-kimenet .v-info{color:#4fc1ff;} .v-kimenet .v-hiba{color:#f48771;} .v-kimenet .v-halv{color:var(--v-muted);}
.v-status{display:flex; align-items:center; gap:4px; background:var(--v-status); color:#ffffff; font-size:12px; min-height:22px; padding:0 4px; flex-wrap:wrap;}
.v-status button{color:#ffffff; padding:1px 7px; border-radius:2px;}
.v-status button:hover{background:rgba(255,255,255,.14);}
.v-status .v-jobb{margin-left:auto; opacity:.9; padding:0 8px; white-space:nowrap;}
.v-agmenu{position:relative;}
.v-quick{background:var(--v-input); border:1px solid var(--v-line); box-shadow:0 6px 18px rgba(0,0,0,.4); border-radius:6px; margin:8px auto; max-width:460px; padding:6px;}
.v-quick input{width:100%; background:var(--v-bg); color:var(--v-ink); border:1px solid var(--v-btn); border-radius:3px; padding:4px 8px; font:inherit;}
.v-quick button{display:flex; width:100%; justify-content:space-between; text-align:left; padding:4px 8px; border-radius:3px;}
.v-quick button:hover, .v-quick button:focus-visible{background:var(--v-sel);}
.v-quick .v-q-l{color:var(--v-muted); font-size:11.5px;}
.v-quick .v-q-cim{font-size:11px; color:var(--v-muted); padding:6px 8px 2px; text-transform:uppercase; letter-spacing:.05em;}
.v-quick .v-q-hiba{color:#f48771; font-size:12px; padding:2px 8px;}

@media (max-width:860px){
  .v-test{grid-template-columns:44px minmax(0,1fr); grid-template-rows:auto 300px; height:auto;}
  .v-oldal{max-height:320px;}
  .v-szerk{grid-column:1 / -1; border-top:1px solid var(--v-line); min-height:260px;}
}
@media (max-width:560px){
  .v-diff{grid-template-columns:minmax(0,1fr);}
  .v-diff-f{grid-template-columns:minmax(0,1fr);}
  .v-dcel.bal{border-right:0;}
  .v-dcel.bal.ures, .v-dcel.jobb.ures{display:none;}
  .v-status .v-jobb{display:none;}
}
