:root{--bg:#031026;--panel:#071a36;--panel-2:#0b2447;--text:#f5f7fb;--muted:#9eb3d1;--line:#1b3f70;--brand:#12d8ff;--accent:#16f26b;--warn:#ffd166;--danger:#ff5d73;--shadow:0 20px 60px rgba(0,0,0,.35);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(18,216,255,.16),transparent 32%),var(--bg);color:var(--text)}body[data-os=linux]{--bg:#130b1d;--panel:#21142f;--panel-2:#2d1940;--line:#5b3b78;--brand:#ff8a00;--accent:#7cff6b}body[data-os=macos]{--bg:#eef3fb;--panel:#fff;--panel-2:#f4f7fb;--text:#101827;--muted:#536072;--line:#d7dfeb;--brand:#007aff;--accent:#34c759;--shadow:0 20px 50px rgba(12,30,60,.15)}a{color:inherit;text-decoration:none}.app-shell{width:min(1480px,96vw);margin:auto;padding:18px}.topbar{position:sticky;top:10px;z-index:10;display:flex;align-items:center;gap:18px;padding:14px 18px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 86%,transparent);backdrop-filter:blur(14px);border-radius:var(--radius);box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:10px;min-width:220px}.brand-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--brand);border-radius:14px;color:var(--accent);font-family:Consolas,monospace;background:#020812}.brand strong{display:block;font-size:20px}.brand small{display:block;color:var(--brand);text-transform:uppercase;letter-spacing:.12em}.nav{display:flex;gap:14px;flex:1}.nav a{color:var(--muted);font-weight:700}.nav a:hover{color:var(--text)}.menu-toggle{display:none}.os-switch{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:16px;background:rgba(0,0,0,.12)}.os-btn{border:0;border-radius:12px;padding:10px 12px;color:var(--muted);background:transparent;font-weight:800;cursor:pointer}.os-btn.active{background:var(--brand);color:#fff}.panel,.feature-card{border:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 96%,white 4%),var(--panel));border-radius:var(--radius);box-shadow:var(--shadow)}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center;margin-top:18px;padding:38px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--brand);font-weight:900;font-size:12px}.hero h1{font-size:clamp(42px,7vw,84px);line-height:.9;margin:10px 0}.hero p{font-size:18px;color:var(--muted);max-width:780px}.btn{border:1px solid var(--line);border-radius:14px;padding:12px 18px;background:var(--panel-2);color:var(--text);font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary,.btn.execute{background:linear-gradient(180deg,var(--brand),color-mix(in srgb,var(--brand),#000 22%));border-color:var(--brand);color:#fff}.btn.ghost{background:transparent}.hero-actions,.lab-actions,.lesson-actions{display:flex;gap:12px;flex-wrap:wrap}.os-preview{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#05080f;box-shadow:var(--shadow)}body[data-os=macos] .os-preview{background:#1e1e1e}.windowbar{height:42px;display:flex;align-items:center;gap:8px;padding:0 14px;background:color-mix(in srgb,var(--panel-2) 80%,#000 20%);border-bottom:1px solid var(--line)}.windowbar span{width:12px;height:12px;border-radius:50%;background:#ff5f57}.windowbar span:nth-child(2){background:#ffbd2e}.windowbar span:nth-child(3){background:#28c840}.windowbar b{margin-left:auto;color:var(--muted)}pre{margin:0}.os-preview pre,.terminal{padding:24px;color:var(--accent);font-family:Consolas,Menlo,Monaco,monospace;font-size:16px;line-height:1.5;white-space:pre-wrap}.cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:18px 0}.feature-card{padding:24px}.feature-card span{font-size:34px;color:var(--brand)}.feature-card p,.command-card small,.status{color:var(--muted)}.layout-2{display:grid;grid-template-columns:270px 1fr;gap:18px;margin:18px 0}.sidebar-card,.lesson-card,.panel{padding:24px}.topic{width:100%;text-align:left;padding:14px;margin:6px 0;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:14px;font-weight:800;cursor:pointer}.topic.active{background:var(--brand);color:#fff}.breadcrumb{color:var(--muted);font-size:13px}.syntax-box{padding:18px;border:1px solid var(--line);background:rgba(0,0,0,.2);border-radius:16px}.syntax-box code{display:block;color:var(--accent);margin-top:8px}.example-list li{margin:8px 0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.search,.terminal-form input{width:100%;border:1px solid var(--line);background:rgba(0,0,0,.22);color:var(--text);border-radius:14px;padding:14px;font-size:15px}.search{max-width:420px}.command-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.command-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--panel-2);display:grid;gap:8px}.command-card code{font-size:20px;color:var(--accent);font-weight:900}.tag{color:var(--brand);font-weight:800}.table-wrap{overflow:auto}.compare-table{width:100%;border-collapse:separate;border-spacing:0 8px}.compare-table th{text-align:left;color:var(--muted);padding:10px}.compare-table td{padding:14px;background:var(--panel-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.compare-table td:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px;font-weight:900}.compare-table td:last-child{border-right:1px solid var(--line);border-radius:0 14px 14px 0}.compare-table code{color:var(--accent)}.lab-body{display:grid;grid-template-columns:220px 1fr;gap:18px}.quick-commands button{width:100%;margin:5px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);color:var(--accent);font-weight:900;cursor:pointer;text-align:left}.vscode-shell{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#0f0f0f}.vscode-titlebar{height:38px;display:flex;justify-content:space-between;align-items:center;padding:0 14px;background:#181818;color:#c6c6c6;border-bottom:1px solid #333;font-size:12px}.terminal{min-height:380px;max-height:520px;overflow:auto;background:#0f0f0f}.terminal-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}.challenge-body,.quiz-progress{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.challenge-steps{display:grid;gap:10px;margin:0;padding-left:22px}.challenge-steps li{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.challenge-steps li.done{border-color:var(--accent);color:var(--accent)}.progress-line{height:10px;background:rgba(0,0,0,.18);border-radius:99px;overflow:hidden}.progress-line span{display:block;height:100%;width:0;background:var(--accent)}.answers{display:grid;gap:10px}.answers button{text-align:left;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:var(--text);cursor:pointer}.answers button.correct{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,transparent)}.answers button.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 22%,transparent)}.feedback{min-height:24px;font-weight:800}.progress-card{text-align:center}.xp-ring{width:150px;height:150px;border:12px solid var(--accent);border-radius:50%;display:grid;place-items:center;margin:20px auto}.xp-ring span,.xp-ring small{display:block}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric-grid div{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}.metric-grid strong{display:block;font-size:26px}.metric-grid span{color:var(--muted);font-size:13px}.full{width:100%;margin-top:12px}.footer{display:flex;justify-content:space-between;gap:12px;color:var(--muted);padding:28px}.sr-only{position:absolute;left:-9999px}@media(max-width:1100px){.hero,.layout-2,.lab-body,.challenge-body,.quiz-progress{grid-template-columns:1fr}.cards-grid,.command-grid{grid-template-columns:repeat(2,1fr)}.nav{display:none}.nav.open{display:flex;position:absolute;left:18px;right:18px;top:82px;flex-direction:column;background:var(--panel);padding:18px;border:1px solid var(--line);border-radius:18px}.menu-toggle{display:block}.topbar{flex-wrap:wrap}.os-switch{margin-left:auto}}@media(max-width:680px){.cards-grid,.command-grid{grid-template-columns:1fr}.hero{padding:24px}.terminal-form{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.footer{flex-direction:column}.brand{min-width:auto}.os-switch{width:100%;justify-content:space-between}.os-btn{flex:1}}

.terminal-help{font-size:.78rem;color:var(--muted);line-height:1.35;margin-top:12px}
.terminal .ok{color:#22c55e}.terminal .err{color:#f87171}
#commandInput[list]{border-color:rgba(59,130,246,.45)}
.challenge li.current{border-color:var(--accent);box-shadow:0 0 0 1px rgba(59,130,246,.35)}

/* v6 refinements */
.command-open{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}
.command-open:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:0 12px 30px rgba(0,0,0,.25)}
.command-open em{font-style:normal;color:var(--brand);font-size:.82rem;font-weight:800;margin-top:4px}
.challenge-inline{border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel-2) 82%,#000 18%);padding:16px;margin-bottom:14px}
.challenge-inline-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.challenge-inline-head h3{margin:.1rem 0}.challenge-steps.compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px;overflow:auto;padding:0;list-style:none;margin-top:14px}.challenge-steps.compact li{font-size:.9rem}.challenge-alert{border:1px solid var(--line);border-radius:16px;padding:13px 16px;margin-bottom:12px;font-weight:900;background:var(--panel-2);color:var(--muted)}.challenge-alert.active{border-color:var(--brand);color:var(--brand);animation:pulseAlert 1s infinite}.challenge-alert.success{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel-2));animation:pulseAlert 1s 3}.challenge-alert.error{border-color:var(--danger);color:#fff;background:color-mix(in srgb,var(--danger) 28%,var(--panel-2));animation:pulseAlert .75s infinite}@keyframes pulseAlert{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 28%,transparent)}50%{box-shadow:0 0 0 6px transparent}}
.modal-backdrop{position:fixed;inset:0;display:none;place-items:center;background:rgba(0,0,0,.72);z-index:50;padding:22px}.modal-backdrop.open{display:grid}.modal-card{width:min(880px,96vw);max-height:88vh;overflow:auto;position:relative;border:1px solid var(--line);background:var(--panel);border-radius:24px;box-shadow:var(--shadow);padding:28px}.modal-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:var(--text);font-size:28px;cursor:pointer}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-card code{color:var(--accent);font-family:Consolas,Menlo,Monaco,monospace}.modal-card .example-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-left:0;list-style:none}.modal-card .example-list li{border:1px solid var(--line);border-radius:12px;background:var(--panel-2);padding:10px;margin:0}
@media(max-width:760px){.modal-grid,.modal-card .example-list,.challenge-steps.compact{grid-template-columns:1fr}.challenge-inline-head{align-items:flex-start;flex-direction:column}}

/* v7: terminal realista com entrada interna e separação entre teste e desafio */
.terminal{min-height:340px;max-height:460px;border-bottom:1px solid #252525;padding-bottom:10px}
.terminal-inline{display:flex;align-items:center;gap:8px;margin:0;padding:10px 14px;background:#0f0f0f;border-top:1px solid #252525;font-family:Consolas,Menlo,Monaco,monospace}
.terminal-inline .inline-prompt{color:var(--accent);white-space:nowrap;font-weight:800}
.terminal-inline input{flex:1;border:0!important;outline:0;background:transparent!important;color:var(--accent)!important;padding:6px 0!important;border-radius:0!important;font-family:Consolas,Menlo,Monaco,monospace;font-size:16px;box-shadow:none}
.terminal-inline input::placeholder{color:color-mix(in srgb,var(--accent) 45%,transparent)}
.challenge-split{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:18px;align-items:start;margin-top:16px}.challenge-split .challenge-inline{height:100%;margin:0}.challenge-split .terminal{min-height:420px}.challenge-alert{margin:0 0 12px 0}.terminal-help{font-size:13px;line-height:1.45;color:var(--muted)}
@media(max-width:900px){.challenge-split{grid-template-columns:1fr}.terminal-inline{align-items:flex-start;flex-direction:column}.terminal-inline input{width:100%}}

/* v8: placar XP, sequência didática e feedback animado */
.xp-scoreboard{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 13px;
  border:1px solid var(--accent);
  border-radius:14px;
  background:#05080f;
  color:var(--accent);
  font-family:Consolas,Menlo,Monaco,monospace;
  box-shadow:0 0 22px color-mix(in srgb,var(--accent) 25%,transparent);
  white-space:nowrap;
}
.xp-scoreboard span{font-size:12px;color:color-mix(in srgb,var(--accent) 72%,white 28%)}
.xp-scoreboard strong{font-size:18px;letter-spacing:.04em}
.xp-pop{
  position:fixed;
  top:88px;
  right:28px;
  z-index:9999;
  padding:12px 18px;
  border:1px solid var(--accent);
  border-radius:16px;
  background:#06130b;
  color:var(--accent);
  font-family:Consolas,Menlo,Monaco,monospace;
  font-weight:900;
  opacity:0;
  transform:translateY(16px) scale(.92);
  box-shadow:0 0 28px color-mix(in srgb,var(--accent) 40%,transparent);
  pointer-events:none;
}
.xp-pop.show{animation:xpBurst 1.45s ease forwards}
@keyframes xpBurst{
  0%{opacity:0;transform:translateY(16px) scale(.92)}
  18%{opacity:1;transform:translateY(0) scale(1.08)}
  70%{opacity:1;transform:translateY(-8px) scale(1)}
  100%{opacity:0;transform:translateY(-30px) scale(.96)}
}
.answers button:disabled{cursor:default;opacity:1}
.pulse-correct{animation:pulseCorrect .85s ease-in-out 2}
.shake-wrong{animation:shakeWrong .38s ease-in-out 2}
@keyframes pulseCorrect{
  0%,100%{transform:scale(1);box-shadow:none}
  50%{transform:scale(1.025);box-shadow:0 0 22px color-mix(in srgb,var(--accent) 45%,transparent)}
}
@keyframes shakeWrong{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-6px)}
  75%{transform:translateX(6px)}
}
.challenge-alert.success{animation:pulseCorrect .85s ease-in-out 2}
.challenge-alert.error{animation:shakeWrong .38s ease-in-out 2}
@media(max-width:1100px){.xp-scoreboard{order:3;width:100%;justify-content:space-between}.os-switch{order:4}}

/* v9: roteiro operacional compacto e comandos rápidos com estado de teste */
.quick-commands{max-height:360px;overflow:hidden;display:flex;flex-direction:column}
.quick-commands h3{margin-bottom:10px}
#quickCommands{max-height:300px;overflow-y:auto;padding-right:6px;scrollbar-width:thin}
#quickCommands::-webkit-scrollbar{width:8px}
#quickCommands::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.quick-commands button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px}
.quick-commands button.tested{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel-2));color:var(--accent)}
.challenge-inline{padding:14px}
.challenge-inline-head{margin-bottom:6px}
.challenge-inline-head h3{font-size:1rem}
#challengeStatus{font-size:.88rem;line-height:1.35;margin:8px 0 10px}
.challenge-steps.compact{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-height:none;overflow:visible;padding:0;margin-top:10px;list-style:none}
.challenge-steps.compact li{height:38px;display:grid;place-items:center;padding:0;border-radius:10px;background:transparent;color:var(--muted);font-size:.86rem;font-family:Consolas,Menlo,monospace;font-weight:900}
.challenge-steps.compact li strong{font-size:.92rem}
.challenge-steps.compact li.current{border-color:#3b82f6;background:color-mix(in srgb,#3b82f6 32%,transparent);color:#fff;box-shadow:0 0 0 1px rgba(59,130,246,.5),0 0 18px rgba(59,130,246,.25)}
.challenge-steps.compact li.done{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--accent)}
.challenge-steps.compact li.failed{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 30%,transparent);color:#fff}
.challenge-steps.compact li.pending{border-color:var(--line);background:transparent;color:var(--muted)}
@media(max-width:760px){.challenge-steps.compact{grid-template-columns:repeat(4,1fr)}#quickCommands{max-height:240px}}

.command-card.simple-command h3{font-size:1rem;margin:.1rem 0;color:var(--text)}
.command-card.simple-command small{display:none}
#modalDescription p{margin:.55rem 0;color:var(--muted);line-height:1.55}
.modal-card .example-list li small{display:block;margin-top:6px;color:var(--muted);font-size:.82rem;line-height:1.35}
.challenge-steps.compact li.done,.challenge-steps.compact li.failed{cursor:help}
.challenge-steps.compact li[title]{position:relative}

/* v12: tooltip visível no roteiro operacional do desafio */
.challenge-steps.compact li[data-tooltip]{position:relative;overflow:visible}
.challenge-steps.compact li[data-tooltip]:hover::after,
.challenge-steps.compact li[data-tooltip]:focus::after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);z-index:60;width:min(320px,72vw);padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#0b1220;color:#f8fafc;box-shadow:0 16px 36px rgba(0,0,0,.38);font-family:Inter,Arial,sans-serif;font-size:.78rem;line-height:1.35;text-align:left;white-space:pre-line;pointer-events:none}
.challenge-steps.compact li[data-tooltip]:hover::before,
.challenge-steps.compact li[data-tooltip]:focus::before{content:"";position:absolute;left:50%;bottom:100%;transform:translateX(-50%);border:7px solid transparent;border-top-color:#0b1220;z-index:61}
.command-card.simple-command code{font-size:18px}
