:root{--prog-navy:#081d49;--prog-blue:#1257c4;--prog-blue-2:#2f7be5;--prog-gold:#f2bd2d;--prog-ink:#14213d;--prog-muted:#65728a;--prog-line:#dce3ee;--prog-bg:#f3f6fa;--prog-white:#fff;--prog-success:#167347;--prog-danger:#b42318}
.prog-page{min-height:72vh;background:radial-gradient(circle at 90% 5%,#e7f0ff 0,transparent 26%),var(--prog-bg);color:var(--prog-ink);padding:38px 0 76px}.prog-container{width:min(1380px,calc(100% - 36px));margin:auto}.prog-narrow{max-width:940px}.prog-kicker{display:inline-flex;padding:6px 10px;border-radius:999px;background:#e8f0ff;color:var(--prog-blue);font-size:.75rem;font-weight:900;letter-spacing:.07em}.prog-page h1{font-weight:850;letter-spacing:-.035em}.prog-page h2,.prog-page h3{font-weight:800}.prog-lead{font-size:1.08rem;color:var(--prog-muted);max-width:780px}.prog-panel{background:var(--prog-white);border:1px solid var(--prog-line);border-radius:18px;padding:24px;box-shadow:0 12px 38px rgba(8,29,73,.07)}.prog-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.prog-section-head h2{margin:0}.prog-progress{height:11px;background:#e4e9f1;border-radius:999px;overflow:hidden}.prog-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--prog-blue),#55a0ff);border-radius:inherit}.prog-clean-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 30px;margin:24px 0;padding-left:20px}.prog-actions{display:flex;flex-wrap:wrap;gap:10px}.prog-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #b9c8df;background:#fff;color:var(--prog-navy);padding:10px 15px;border-radius:10px;text-decoration:none;font-weight:800;cursor:pointer}.prog-btn:hover{color:var(--prog-navy);border-color:var(--prog-blue);background:#f8fbff}.prog-btn.primary{background:var(--prog-navy);border-color:var(--prog-navy);color:#fff}.prog-btn.primary:hover{background:#102f70;color:#fff}.prog-btn.gold{background:var(--prog-gold);border-color:var(--prog-gold);color:#182033}.prog-btn.ghost{background:transparent}.prog-btn.danger{background:#fff2f0;border-color:#f2b8b1;color:var(--prog-danger)}.prog-btn.sm{padding:7px 10px;font-size:.83rem}.prog-alert{padding:13px 15px;border-radius:11px;margin:14px 0;font-weight:650}.prog-alert.ok{background:#eaf8f0;color:var(--prog-success)}.prog-alert.erro{background:#fff0ee;color:var(--prog-danger)}
.prog-public-nav{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff;border:1px solid var(--prog-line);border-radius:15px;padding:10px 12px;margin-bottom:20px;position:sticky;top:10px;z-index:20;box-shadow:0 8px 28px rgba(8,29,73,.08)}.prog-public-nav .links{display:flex;gap:6px;flex-wrap:wrap}.prog-public-nav a{padding:9px 12px;border-radius:9px;color:#36445e;text-decoration:none;font-weight:750}.prog-public-nav a.ativo,.prog-public-nav a:hover{background:#eaf1ff;color:var(--prog-blue)}.prog-public-nav .marca{display:flex;align-items:center;gap:9px;font-weight:900;color:var(--prog-navy)}.prog-public-nav .marca span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--prog-navy);color:#fff}.prog-hero{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:30px;align-items:center;background:linear-gradient(135deg,#061638,var(--prog-navy) 55%,#174a9b);color:#fff;border-radius:26px;padding:clamp(30px,5vw,66px);overflow:hidden}.prog-hero p{color:#dbe7ff;font-size:1.08rem}.prog-hero-visual{height:240px;position:relative}.prog-float-code{position:absolute;border:1px solid #ffffff30;background:#ffffff12;backdrop-filter:blur(7px);padding:12px 16px;border-radius:12px;font:700 .85rem/1.5 ui-monospace,monospace;animation:progFloat 5s ease-in-out infinite}.prog-float-code:nth-child(1){top:15px;left:10px}.prog-float-code:nth-child(2){top:95px;right:0;animation-delay:-1.5s}.prog-float-code:nth-child(3){bottom:5px;left:45px;animation-delay:-3s}@keyframes progFloat{50%{transform:translateY(-12px)}}.prog-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.prog-choice a{background:#fff;border:1px solid var(--prog-line);border-radius:18px;padding:25px;color:inherit;text-decoration:none;box-shadow:0 10px 30px rgba(8,29,73,.06);transition:.2s}.prog-choice a:hover{transform:translateY(-3px);border-color:#9dbbe6;box-shadow:0 15px 36px rgba(8,29,73,.11)}.prog-choice .icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:#eaf1ff;color:var(--prog-blue);font-size:1.4rem}.prog-choice h2{font-size:1.25rem;margin:15px 0 7px}.prog-codepen{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#111827;color:#fff;border-radius:16px;padding:20px 23px;margin-top:18px;text-decoration:none}.prog-codepen:hover{color:#fff;background:#080d18}.prog-section{margin-top:34px}.prog-toolbar{display:grid;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr)) auto;gap:10px}.prog-input,.prog-select,.prog-textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;background:#fff;color:var(--prog-ink)}.prog-textarea{min-height:110px;resize:vertical}.prog-field label{display:block;font-weight:800;margin-bottom:5px}.prog-field small{color:var(--prog-muted)}.prog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.prog-field.full{grid-column:1/-1}.prog-tags{display:flex;flex-wrap:wrap;gap:6px}.prog-tag{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eaf1ff;color:var(--prog-blue);font-size:.75rem;font-weight:850}.prog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.prog-code-card{background:#fff;border:1px solid var(--prog-line);border-radius:17px;overflow:hidden;display:flex;flex-direction:column;min-height:245px;box-shadow:0 8px 24px rgba(8,29,73,.055);transition:.2s}.prog-code-card:hover{transform:translateY(-3px);box-shadow:0 15px 32px rgba(8,29,73,.1)}.prog-code-card .visual{height:92px;display:grid;place-items:center;background:linear-gradient(135deg,#edf4ff,#f9fbff);color:var(--prog-blue);font:900 1.7rem ui-monospace,monospace}.prog-code-card .body{padding:18px;flex:1}.prog-code-card h3{font-size:1.03rem}.prog-code-card p{font-size:.9rem;color:var(--prog-muted)}.prog-code-card .foot{display:flex;justify-content:space-between;gap:8px;padding:13px 18px;border-top:1px solid var(--prog-line)}.prog-empty{text-align:center;padding:42px;color:var(--prog-muted)}
.prog-trail{display:grid;gap:12px}.prog-trail-step{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;background:#fff;border:1px solid var(--prog-line);border-radius:15px;padding:16px}.prog-trail-step .number{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--prog-navy);color:#fff;font-weight:900}.prog-trail-step.bloqueado{opacity:.58}.prog-trail-step.bloqueado .number{background:#8c98aa}.prog-project-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px}.prog-project-side{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 105px);overflow:auto}.prog-stage-link{display:block;padding:12px;border-radius:10px;color:inherit;text-decoration:none;border:1px solid transparent}.prog-stage-link.ativo{background:#eaf1ff;border-color:#c1d4ef;color:var(--prog-blue)}.prog-stage-link.bloqueado{opacity:.55}.prog-session{border-top:1px solid var(--prog-line);padding:22px 0}.prog-session:first-of-type{border-top:0}.prog-check{display:flex;gap:10px;padding:10px 12px;background:#f7f9fc;border-radius:10px;margin-top:8px}.prog-check input{margin-top:.25rem}.prog-code-reference{margin-top:12px;border-left:4px solid var(--prog-blue);background:#f4f8ff;padding:13px;border-radius:0 10px 10px 0}
.prog-modal{position:fixed;inset:0;background:#071329b8;display:none;place-items:center;padding:24px;z-index:9999}.prog-modal.aberto{display:grid}.prog-modal-dialog{width:min(1100px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 30px 90px #0006}.prog-modal-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 22px;border-bottom:1px solid var(--prog-line);position:sticky;top:0;background:#fff;z-index:2}.prog-modal-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.75fr);gap:18px;padding:22px}.prog-preview{width:100%;min-height:380px;border:1px solid var(--prog-line);border-radius:12px;background:#fff}.prog-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.prog-tabs button{border:1px solid var(--prog-line);background:#fff;border-radius:8px;padding:7px 10px;font-weight:750}.prog-tabs button.ativo{background:var(--prog-navy);color:#fff}.prog-codebox{position:relative;background:#0f172a;color:#dbeafe;border-radius:12px;overflow:hidden}.prog-codebox pre{margin:0;padding:18px;max-height:430px;overflow:auto;font:13px/1.55 ui-monospace,Consolas,monospace}.prog-copy{position:absolute;right:9px;top:9px}
.prog-admin{display:grid;grid-template-columns:270px minmax(0,1fr);gap:20px}.prog-admin-side{position:sticky;top:20px;align-self:start;background:#081d49;color:#fff;border-radius:18px;padding:18px;min-height:650px}.prog-admin-brand{display:flex;align-items:center;gap:10px;padding:8px 7px 18px}.prog-admin-brand>span{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--prog-gold);color:#15203b;font-weight:950}.prog-admin-brand small{display:block;color:#b9c9e5}.prog-admin-side nav a{display:block;color:#d8e4f9;text-decoration:none;padding:10px 12px;border-radius:9px;margin:3px 0}.prog-admin-side nav a:hover,.prog-admin-side nav a.ativo{background:#ffffff17;color:#fff}.prog-admin-side hr{border-color:#ffffff2e}.prog-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.prog-kpi{background:#fff;border:1px solid var(--prog-line);border-radius:15px;padding:18px}.prog-kpi strong{display:block;font-size:1.9rem;color:var(--prog-blue)}.prog-table-wrap{overflow:auto}.prog-table{width:100%;border-collapse:collapse;min-width:820px}.prog-table th,.prog-table td{text-align:left;padding:12px;border-bottom:1px solid var(--prog-line);vertical-align:top}.prog-table th{font-size:.82rem;color:#536078;text-transform:uppercase;letter-spacing:.03em}.prog-hierarchy{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px}.prog-file-row{background:#f7f9fc;border:1px solid var(--prog-line);border-radius:13px;padding:15px;margin-bottom:12px}
@media(max-width:1100px){.prog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.prog-hero{grid-template-columns:1fr}.prog-hero-visual{display:none}.prog-admin{grid-template-columns:1fr}.prog-admin-side{position:static;min-height:auto}.prog-admin-side nav{display:flex;flex-wrap:wrap}.prog-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.prog-project-layout,.prog-hierarchy{grid-template-columns:1fr}.prog-project-side{position:static}.prog-modal-body{grid-template-columns:1fr}}
@media(max-width:760px){.prog-page{padding-top:22px}.prog-public-nav{position:static;align-items:flex-start;flex-direction:column}.prog-choice,.prog-form-grid,.prog-clean-list{grid-template-columns:1fr}.prog-field.full{grid-column:auto}.prog-toolbar{grid-template-columns:1fr}.prog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prog-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.prog-container{width:min(100% - 22px,1380px)}.prog-grid{grid-template-columns:1fr}.prog-trail-step{grid-template-columns:42px minmax(0,1fr)}.prog-trail-step>.prog-btn{grid-column:1/-1}.prog-modal{padding:10px}.prog-modal-dialog{border-radius:13px}.prog-modal-body{padding:14px}.prog-actions .prog-btn,.prog-actions form{width:100%}.prog-actions form .prog-btn{width:100%}}

/* ADM — controle rápido de liberação de etapas (preservado da atualização) */
.prog-stage-control{margin-bottom:22px;border-top:4px solid var(--prog-gold)}
.prog-stage-control-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.prog-stage-control-head h2{margin:8px 0 4px}
.prog-stage-control-head p{margin:0;color:var(--prog-muted);max-width:720px}
.prog-stage-control-list{display:grid;gap:8px}
.prog-stage-control-row{display:grid;grid-template-columns:42px minmax(180px,1fr) auto;align-items:center;gap:12px;padding:11px;border:1px solid var(--prog-line);border-radius:12px;background:#f9fbfd}
.prog-stage-control-index{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--prog-navy);color:#fff;font-weight:950}
.prog-stage-control-name{display:flex;align-items:center;gap:10px;min-width:0}
.prog-stage-control-name strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prog-state-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:900}
.prog-state-badge.liberada{background:#e5f6ec;color:var(--prog-success)}
.prog-state-badge.bloqueada{background:#eef1f5;color:#5f6c80}
.prog-state-badge.oculta{background:#fff4df;color:#8a6511}
.prog-stage-control-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}

/* Mobile/tablet: deixa o liberador confortável para usar durante a aula */
@media(max-width:1100px){
  .prog-stage-control-row{grid-template-columns:42px minmax(0,1fr)}
  .prog-stage-control-actions{grid-column:1/-1;justify-content:flex-start;padding-left:54px}
}
@media(max-width:760px){
  .prog-stage-control-head{flex-direction:column}
  .prog-stage-control-head .prog-actions{width:100%}
  .prog-stage-control-head .prog-actions>*{flex:1}
  .prog-stage-control-head .prog-actions .prog-btn{width:100%}
}
@media(max-width:500px){
  .prog-stage-control-actions{padding-left:0}
  .prog-stage-control-actions .prog-btn{flex:1}
  .prog-stage-control-name{align-items:flex-start;flex-direction:column;gap:4px}
}
