/* Legado Xynz, Área de Membros. Escopo exclusivo desta área (prefixo .lxm). */
:root{
  --lx-black:#04070f; --lx-deep:#070d1c; --lx-navy:#0b1533;
  --lx-royal:#2f5cff; --lx-royal-strong:#1d3fe0; --lx-cyanish:#5b8cff;
  --lx-text:#eef3ff; --lx-muted:#96a3c2; --lx-line:rgba(255,255,255,.09);
  --lx-glass:rgba(255,255,255,.045); --lx-glass-2:rgba(255,255,255,.07);
  --lx-danger:#ff6b6b; --lx-success:#3ddc97;
  --lx-r-sm:10px; --lx-r-md:16px; --lx-r-lg:22px;
  --lx-sidebar:268px;
  --lx-font:"Inter","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  --lx-shadow:0 24px 60px -30px rgba(0,0,0,.9);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.lxm{
  margin:0;padding:0;min-height:100vh;font-family:var(--lx-font);color:var(--lx-text);
  background:
    radial-gradient(1100px 620px at 82% -12%, rgba(47,92,255,.20), transparent 62%),
    radial-gradient(820px 520px at 6% 4%, rgba(29,63,224,.16), transparent 60%),
    linear-gradient(180deg,var(--lx-black) 0%, var(--lx-deep) 48%, var(--lx-black) 100%);
  background-attachment:fixed;
  font-size:16px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
body.lxm img{max-width:100%;height:auto;display:block}
.lxm a{color:inherit;text-decoration:none}
.lxm h1,.lxm h2,.lxm h3,.lxm h4{margin:0;line-height:1.2;letter-spacing:-.02em;font-weight:650}
.lxm p{margin:0}
.lxm-icon{width:20px;height:20px;flex:0 0 auto}
.lxm-skip{position:absolute;left:-9999px;top:0;background:var(--lx-royal);color:#fff;padding:10px 16px;border-radius:0 0 var(--lx-r-sm) 0;z-index:99}
.lxm-skip:focus{left:0}
.lxm :focus-visible{outline:2px solid var(--lx-cyanish);outline-offset:3px;border-radius:6px}

/* Shell ------------------------------------------------------------------ */
.lxm-shell{display:grid;grid-template-columns:var(--lx-sidebar) minmax(0,1fr);min-height:100vh}
.lxm-shell--bare{grid-template-columns:minmax(0,1fr)}
.lxm-main{min-width:0;display:flex;flex-direction:column}
.lxm-content{padding:44px 48px 72px;max-width:1200px;width:100%;margin:0 auto;flex:1;min-width:0;overflow-wrap:break-word}
.lxm-content:focus{outline:none}

/* Sidebar ---------------------------------------------------------------- */
.lxm-sidebar{
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:26px;
  padding:26px 20px;border-right:1px solid var(--lx-line);
  background:var(--lx-menu, linear-gradient(180deg,rgba(11,21,51,.72),rgba(4,7,15,.72)));
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.lxm-brand{display:flex;align-items:center;gap:12px}
.lxm-brand__mark{
  width:42px;height:42px;border-radius:13px;display:grid;place-items:center;
  font-weight:800;font-size:15px;letter-spacing:.06em;color:#fff;
  background:linear-gradient(140deg,var(--lx-royal),#0a1740);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 0 0 1px rgba(47,92,255,.18), 0 12px 30px -14px rgba(47,92,255,.85);
}
.lxm-brand__mark--lg{width:58px;height:58px;border-radius:18px;font-size:19px}
.lxm-brand__text{display:flex;flex-direction:column;line-height:1.15}
.lxm-brand__text strong{font-size:15px;letter-spacing:.01em}
.lxm-brand__text small{font-size:11.5px;color:var(--lx-muted);letter-spacing:.14em;text-transform:uppercase}
.lxm-nav{display:flex;flex-direction:column;gap:4px;flex:1}
.lxm-nav__link{
  display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;
  color:var(--lx-muted);font-size:14.5px;font-weight:520;
  border:1px solid transparent;transition:background .18s,color .18s,border-color .18s,transform .18s;
}
.lxm-nav__link:hover{background:var(--lx-glass);color:var(--lx-text)}
.lxm-nav__link.is-active{
  color:#fff;background:linear-gradient(120deg,rgba(47,92,255,.24),rgba(47,92,255,.06));
  border-color:rgba(90,132,255,.32);box-shadow:0 10px 28px -18px rgba(47,92,255,.9)
}
.lxm-sidebar__foot{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--lx-line);padding-top:16px}
.lxm-userchip{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:12px;transition:background .18s}
.lxm-userchip:hover{background:var(--lx-glass)}
.lxm-userchip__text{display:flex;flex-direction:column;min-width:0}
.lxm-userchip__text strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.lxm-userchip__text small{font-size:11.5px;color:var(--lx-muted)}
.lxm-logout{display:flex;align-items:center;gap:12px;padding:10px 13px;border-radius:12px;color:var(--lx-muted);font-size:14px;transition:background .18s,color .18s}
.lxm-logout:hover{background:rgba(255,107,107,.10);color:#ffb3b3}
.lxm-avatar{
  width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;
  font-size:13px;font-weight:700;letter-spacing:.03em;color:#fff;
  background:linear-gradient(140deg,#26428f,#0a1027);border:1px solid rgba(255,255,255,.16)
}
.lxm-avatar--lg{width:70px;height:70px;font-size:22px;border-radius:22px}

/* Topbar / tabbar (mobile) ----------------------------------------------- */
.lxm-topbar{display:none}
.lxm-tabbar{display:none}

/* Blocos ------------------------------------------------------------------ */
.lxm-hero{
  position:relative;overflow:hidden;padding:38px 38px 34px;border-radius:var(--lx-r-lg);
  border:1px solid var(--lx-line);background:linear-gradient(135deg,rgba(19,34,84,.78),rgba(7,13,28,.72));
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--lx-shadow);margin-bottom:26px
}
.lxm-hero::after{content:"";position:absolute;inset:-40% -10% auto auto;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(47,92,255,.28),transparent 66%);pointer-events:none}
.lxm-hero__eyebrow{color:var(--lx-muted);font-size:14px;letter-spacing:.02em}
.lxm-hero__title{font-size:clamp(26px,4.4vw,42px);margin:2px 0 10px;overflow-wrap:anywhere;word-break:break-word;hyphens:auto}
.lxm-hero__text{color:var(--lx-muted);max-width:52ch;font-size:15px}
.lxm-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;position:relative;z-index:1}

.lxm-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:46px;padding:0 20px;border-radius:13px;font:inherit;font-size:14.5px;font-weight:600;
  cursor:pointer;border:1px solid transparent;transition:transform .16s,box-shadow .18s,background .18s,border-color .18s
}
.lxm-btn:active{transform:translateY(1px)}
.lxm-btn--primary{color:#fff;background:linear-gradient(120deg,var(--lx-royal),var(--lx-royal-strong));box-shadow:0 16px 34px -18px rgba(47,92,255,.95)}
.lxm-btn--primary:hover{box-shadow:0 20px 40px -16px rgba(47,92,255,1)}
.lxm-btn--ghost{color:var(--lx-text);background:var(--lx-glass);border-color:var(--lx-line)}
.lxm-btn--ghost:hover{background:var(--lx-glass-2)}
.lxm-btn--block{width:100%}
.lxm-link{color:var(--lx-cyanish);font-size:14px;font-weight:560}
.lxm-link:hover{text-decoration:underline}

.lxm-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:34px}
.lxm-stat{
  padding:20px 22px;border-radius:var(--lx-r-md);border:1px solid var(--lx-line);
  background:var(--lx-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
.lxm-stat__value{display:block;font-size:26px;font-weight:700;letter-spacing:-.02em}
.lxm-stat__label{display:block;color:var(--lx-muted);font-size:12.5px;margin-top:4px}

.lxm-section{margin-bottom:36px}
.lxm-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px}
.lxm-section__head h3{font-size:17px}
.lxm-pagehead{margin-bottom:26px}
.lxm-pagehead h2{font-size:clamp(23px,3.6vw,32px);overflow-wrap:anywhere}
.lxm-pagehead p{color:var(--lx-muted);margin-top:6px;font-size:15px}

.lxm-empty{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
  padding:44px 26px;border-radius:var(--lx-r-md);border:1px dashed rgba(255,255,255,.14);
  background:rgba(255,255,255,.02)
}
.lxm-empty__icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:var(--lx-cyanish);background:rgba(47,92,255,.12);border:1px solid rgba(90,132,255,.24);margin-bottom:6px}
.lxm-empty h3{font-size:16px}
.lxm-empty p{color:var(--lx-muted);font-size:14px;max-width:46ch}
.lxm-empty .lxm-btn{margin-top:12px}

.lxm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:18px}
.lxm-card{display:block;border-radius:var(--lx-r-md);overflow:hidden;border:1px solid var(--lx-line);background:var(--lx-glass);transition:transform .2s,border-color .2s,box-shadow .2s}
.lxm-card:hover{transform:translateY(-3px);border-color:rgba(90,132,255,.34);box-shadow:0 22px 44px -26px rgba(47,92,255,.8)}
.lxm-card__cover{position:relative;aspect-ratio:16/9;background:linear-gradient(140deg,#101c40,#05070f);display:grid;place-items:center;overflow:hidden}
.lxm-card__cover img{width:100%;height:100%;object-fit:cover}
.lxm-card__cover-fallback{font-weight:800;color:rgba(255,255,255,.22);letter-spacing:.2em}
.lxm-card__body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px}
.lxm-card__badge{position:absolute;top:10px;left:10px;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;padding:5px 10px;border-radius:99px;color:#dce6ff;background:rgba(9,16,38,.82);border:1px solid rgba(90,132,255,.34);backdrop-filter:blur(6px)}
.lxm-card__badge--done{color:#c7ffe9;border-color:rgba(61,220,151,.36);background:rgba(6,26,20,.82)}
.lxm-card__title{display:block;font-size:15.5px;font-weight:650;line-height:1.25;overflow-wrap:anywhere}
.lxm-card__text{display:block;color:var(--lx-muted);font-size:13.5px}
.lxm-card__meta{display:block;color:var(--lx-muted);font-size:12px}
.lxm-progress{display:block;height:6px;border-radius:99px;background:rgba(255,255,255,.09);overflow:hidden}
.lxm-progress__bar{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--lx-royal),var(--lx-cyanish))}

/* Curso ------------------------------------------------------------------ */
.lxm-small{font-size:12.5px}
.lxm-breadcrumb{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--lx-muted);margin-bottom:18px;flex-wrap:wrap}
.lxm-breadcrumb a{color:var(--lx-cyanish)}
.lxm-breadcrumb a:hover{text-decoration:underline}
.lxm-breadcrumb strong{color:var(--lx-text);font-weight:560;overflow-wrap:anywhere}

.lxm-coursehero{position:relative;overflow:hidden;border-radius:var(--lx-r-lg);border:1px solid var(--lx-line);background:linear-gradient(135deg,rgba(19,34,84,.72),rgba(7,13,28,.82));box-shadow:var(--lx-shadow);margin-bottom:30px}
.lxm-coursehero__cover{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.30;filter:saturate(1.05)}
.lxm-coursehero.has-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(4,7,15,.94) 34%,rgba(4,7,15,.42) 100%)}
.lxm-coursehero__body{position:relative;z-index:2;padding:36px 36px 32px;max-width:760px}
.lxm-coursehero__body h2{font-size:clamp(24px,3.4vw,34px);overflow-wrap:anywhere}
.lxm-coursehero__sub{color:var(--lx-muted);margin-top:8px;font-size:15px}
.lxm-metalist{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:18px 0 20px;padding:0;color:var(--lx-muted);font-size:13px}
.lxm-metalist li{display:flex;align-items:center;gap:8px}
.lxm-metalist li+li::before{content:"";width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6;margin-right:10px}
.lxm-progress--wide{height:8px;max-width:460px}
.lxm-coursehero__meta{display:block;margin-top:9px;font-size:12.5px;color:var(--lx-muted)}

.lxm-prose{font-size:15px;color:#d5ddf1}
.lxm-prose p{margin:0 0 14px}
.lxm-prose p:last-child{margin-bottom:0}

.lxm-modules{display:flex;flex-direction:column;gap:12px}
.lxm-module{border-radius:var(--lx-r-md);border:1px solid var(--lx-line);background:var(--lx-glass);overflow:hidden;transition:border-color .2s}
.lxm-module[open]{border-color:rgba(90,132,255,.28)}
.lxm-module.is-locked{opacity:.72}
.lxm-module__head{display:flex;align-items:center;gap:14px;padding:16px 18px;cursor:pointer;list-style:none;user-select:none}
.lxm-module__head::-webkit-details-marker{display:none}
.lxm-module__head:hover{background:rgba(255,255,255,.03)}
.lxm-module__index{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--lx-cyanish);background:rgba(47,92,255,.13);border:1px solid rgba(90,132,255,.26);border-radius:9px;padding:6px 9px;flex:0 0 auto}
.lxm-module__title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.lxm-module__title strong{font-size:15px;overflow-wrap:anywhere}
.lxm-module__title small{font-size:12px;color:var(--lx-muted)}
.lxm-module__caret{width:9px;height:9px;border-right:2px solid var(--lx-muted);border-bottom:2px solid var(--lx-muted);transform:rotate(45deg);transition:transform .2s;flex:0 0 auto;margin-left:2px}
.lxm-module[open] .lxm-module__caret{transform:rotate(-135deg)}
.lxm-module__body{padding:2px 18px 18px}
.lxm-module__desc{color:var(--lx-muted);font-size:13.5px;margin-bottom:12px}

.lxm-lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.lxm-lesson{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:11px;border:1px solid transparent;transition:background .18s,border-color .18s}
.lxm-lesson:hover{background:rgba(255,255,255,.03)}
.lxm-lesson__state{width:30px;height:30px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;color:var(--lx-muted);background:rgba(255,255,255,.05);border:1px solid var(--lx-line)}
.lxm-lesson__state .lxm-icon{width:16px;height:16px}
.lxm-lesson.is-open .lxm-lesson__state{color:var(--lx-cyanish);border-color:rgba(90,132,255,.34);background:rgba(47,92,255,.12)}
.lxm-lesson.is-done .lxm-lesson__state{color:#7ff0c0;border-color:rgba(61,220,151,.34);background:rgba(61,220,151,.10)}
.lxm-lesson.is-locked{opacity:.62}
.lxm-lesson__main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.lxm-lesson__title{font-size:14.5px;overflow-wrap:anywhere}
.lxm-lesson__meta{font-size:12px;color:var(--lx-muted)}

.lxm-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;padding:5px 11px;border-radius:99px;border:1px solid var(--lx-line);color:var(--lx-muted);background:rgba(255,255,255,.04);flex:0 0 auto;white-space:nowrap}
.lxm-chip .lxm-icon{width:14px;height:14px}
.lxm-chip--lock{color:#ffd9a8;border-color:rgba(255,190,110,.28);background:rgba(255,180,90,.09)}
.lxm-chip--done{color:#c7ffe9;border-color:rgba(61,220,151,.30);background:rgba(61,220,151,.09)}

.lxm-resume{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--lx-r-md);border:1px solid rgba(90,132,255,.26);background:linear-gradient(120deg,rgba(47,92,255,.16),rgba(255,255,255,.03));transition:transform .18s,box-shadow .2s,border-color .2s}
.lxm-resume:hover{transform:translateY(-2px);box-shadow:0 22px 44px -26px rgba(47,92,255,.9);border-color:rgba(90,132,255,.44)}
.lxm-resume__icon{width:46px;height:46px;flex:0 0 auto;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,var(--lx-royal),#0a1740);border:1px solid rgba(255,255,255,.16)}
.lxm-resume__body{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.lxm-resume__body small{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--lx-cyanish)}
.lxm-resume__body strong{font-size:15.5px;overflow-wrap:anywhere}
.lxm-resume__body .lxm-progress{margin-top:4px;max-width:360px}
.lxm-resume__meta{font-size:13px;color:var(--lx-muted);flex:0 0 auto}

.lxm-notice--info{color:#d8e4ff;background:rgba(47,92,255,.10);border-color:rgba(90,132,255,.30)}

/* Perfil ------------------------------------------------------------------ */
.lxm-profile{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
.lxm-panel{padding:26px;border-radius:var(--lx-r-md);border:1px solid var(--lx-line);background:var(--lx-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lxm-profile__side{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;min-width:0}
.lxm-profile__side>strong{max-width:100%;overflow-wrap:anywhere;font-size:15px}
.lxm-badge{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--lx-cyanish);background:rgba(47,92,255,.14);border:1px solid rgba(90,132,255,.28);padding:4px 11px;border-radius:99px}
.lxm-deflist{width:100%;margin:14px 0 4px;display:grid;gap:10px;text-align:left}
.lxm-deflist dt{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-deflist dd{margin:2px 0 0;font-size:14px;word-break:break-word}
.lxm-form h3{font-size:15px;margin-bottom:4px}
.lxm-form h3+.lxm-field-row,.lxm-form h3+.lxm-field{margin-top:14px}
.lxm-form h3:not(:first-of-type){margin-top:30px;padding-top:24px;border-top:1px solid var(--lx-line)}
.lxm-hint{color:var(--lx-muted);font-size:13px;margin-top:4px}
.lxm-optional{color:var(--lx-muted);font-weight:400}
.lxm-field{display:flex;flex-direction:column;gap:7px;margin:16px 0 0}
.lxm-field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lxm-field label{font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-field input,.lxm-field textarea{
  width:100%;min-height:48px;padding:12px 14px;border-radius:12px;font:inherit;font-size:15px;color:var(--lx-text);
  background:rgba(3,6,14,.6);border:1px solid var(--lx-line);transition:border-color .18s,box-shadow .18s,background .18s
}
.lxm-field textarea{min-height:96px;resize:vertical}
.lxm-field input:focus,.lxm-field textarea:focus{outline:none;border-color:rgba(90,132,255,.6);box-shadow:0 0 0 3px rgba(47,92,255,.18);background:rgba(3,6,14,.85)}
.lxm-field input::placeholder{color:#5d6a86}
.lxm-field.has-error input{border-color:rgba(255,107,107,.7)}
.lxm-field__error{color:var(--lx-danger);font-size:12.5px}
.lxm-form__actions{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.lxm-notice{display:flex;align-items:center;gap:10px;padding:13px 16px;border-radius:12px;font-size:14px;margin-bottom:20px;border:1px solid}
.lxm-notice--success{color:#c7ffe9;background:rgba(61,220,151,.10);border-color:rgba(61,220,151,.32)}
.lxm-notice--error{color:#ffd7d7;background:rgba(255,107,107,.10);border-color:rgba(255,107,107,.32)}
.lxm-muted{color:var(--lx-muted)}

/* Standalone (acesso negado) --------------------------------------------- */
.lxm-standalone{max-width:560px;margin:8vh auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:44px 32px;border-radius:var(--lx-r-lg);border:1px solid var(--lx-line);background:var(--lx-glass);box-shadow:var(--lx-shadow)}
.lxm-standalone h2{font-size:26px}
.lxm-standalone p{color:var(--lx-muted);font-size:15px}
.lxm-standalone__actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:10px}

.lxm-dialog{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(2,4,10,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.lxm-dialog__box{width:100%;max-width:400px;padding:26px 24px 22px;border-radius:var(--lx-r-md);border:1px solid var(--lx-line);background:linear-gradient(160deg,rgba(16,27,60,.98),rgba(6,10,22,.98));box-shadow:var(--lx-shadow)}
.lxm-dialog__text{font-size:16px;margin-bottom:20px}
.lxm-dialog__actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.lxm-dialog__actions .lxm-btn{flex:1 1 auto;min-width:130px}

/* Toasts ------------------------------------------------------------------ */
.lxm-toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:80;pointer-events:none}
.lxm-toast{padding:12px 18px;border-radius:12px;font-size:14px;background:rgba(9,15,32,.94);border:1px solid var(--lx-line);box-shadow:var(--lx-shadow)}

/* Responsivo -------------------------------------------------------------- */
@media (max-width:1180px){ :root{--lx-sidebar:236px} .lxm-content{padding:38px 32px 72px} }

@media (max-width:1024px){
  .lxm-shell{grid-template-columns:minmax(0,1fr)}
  .lxm-sidebar{display:none}
  .lxm-topbar{
    display:flex;align-items:center;gap:14px;padding:12px 18px;position:sticky;top:0;z-index:40;
    border-bottom:1px solid var(--lx-line);background:rgba(4,7,15,.86);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)
  }
  .lxm-topbar__brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:650}
  .lxm-topbar__brand .lxm-brand__mark{width:34px;height:34px;border-radius:11px;font-size:12px}
  .lxm-topbar__title{flex:1;text-align:center;font-size:14px;font-weight:560;color:var(--lx-muted);letter-spacing:.02em}
  .lxm-topbar__avatar .lxm-avatar{width:34px;height:34px;font-size:12px}
  .lxm-tabbar{
    display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;
    padding:8px 8px calc(8px + env(safe-area-inset-bottom));
    border-top:1px solid var(--lx-line);background:rgba(4,7,15,.94);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
  }
  .lxm-tabbar__link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border-radius:12px;color:var(--lx-muted);font-size:10.5px;letter-spacing:.01em}
  .lxm-tabbar__link .lxm-icon{width:21px;height:21px}
  .lxm-tabbar__link.is-active{color:#fff;background:rgba(47,92,255,.16)}
  .lxm-content{padding:26px 20px calc(104px + env(safe-area-inset-bottom));max-width:820px}
  .lxm-profile{grid-template-columns:minmax(0,1fr)}
  .lxm-hero{padding:28px 24px}
  .lxm-coursehero__body{padding:26px 22px 24px}
}

@media (max-width:768px){
  .lxm-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .lxm-stat{padding:15px 14px}
  .lxm-stat__value{font-size:20px}
  .lxm-stat__label{font-size:11px}
  .lxm-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
}

@media (max-width:560px){
  body.lxm{font-size:15.5px}
  .lxm-content{padding:20px 16px calc(104px + env(safe-area-inset-bottom))}
  .lxm-hero{padding:24px 20px;border-radius:18px}
  .lxm-hero__actions{flex-direction:column;align-items:stretch}
  .lxm-hero__actions .lxm-btn{width:100%}
  .lxm-stats{grid-template-columns:1fr;gap:10px}
  .lxm-stat{display:flex;align-items:baseline;gap:10px;padding:14px 16px}
  .lxm-stat__value{font-size:19px}
  .lxm-stat__label{margin-top:0}
  .lxm-grid{grid-template-columns:minmax(0,1fr)}
  .lxm-field-row{grid-template-columns:minmax(0,1fr);gap:0}
  .lxm-panel{padding:20px}
  .lxm-empty{padding:34px 18px}
  .lxm-coursehero__body{padding:22px 18px 20px}
  .lxm-module__head{padding:14px 14px;gap:11px}
  .lxm-module__body{padding:0 14px 14px}
  .lxm-lesson{padding:10px 8px;gap:11px}
  .lxm-lesson .lxm-chip{display:none}
  .lxm-lesson.is-locked .lxm-lesson__meta::after{content:" · bloqueada"}
  .lxm-resume{padding:16px;gap:13px}
  .lxm-resume__meta{display:none}
  .lxm-standalone{margin:6vh 4px;padding:32px 20px}
  .lxm-form__actions .lxm-btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
  .lxm *,.lxm *::before,.lxm *::after{transition:none!important;animation:none!important}
}

/* Marca do menu lateral (logo acima do nome) ------------------------------ */
.lxm-brand{flex-direction:column;align-items:flex-start;gap:10px}
.lxm-brand__logo{width:auto;height:auto;max-width:100%;object-fit:contain}
.lxm-brand__user{font-weight:600;font-size:15px;letter-spacing:-.01em;line-height:1.25;color:var(--lx-text);overflow-wrap:anywhere}
.lxm-topbar__brand{display:flex;align-items:center;gap:8px}

/* Página da aula --------------------------------------------------------- */
.lxm-lessongrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.lxm-lessonmain{min-width:0;display:flex;flex-direction:column;gap:22px}
.lxm-lessonhead{display:flex;flex-direction:column;gap:8px}
.lxm-lessonhead h2{font-size:clamp(21px,2.4vw,30px)}
.lxm-player{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--lx-r-md);overflow:hidden;background:#000;border:1px solid var(--lx-line);box-shadow:var(--lx-shadow)}
.lxm-player iframe,.lxm-player video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.lxm-player__fallback{padding:14px;border:1px dashed var(--lx-line);border-radius:var(--lx-r-sm)}
.lxm-lessoncover{width:100%;border-radius:var(--lx-r-md);border:1px solid var(--lx-line)}
.lxm-lessonactions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.lxm-lessonnav{display:flex;gap:10px;flex-wrap:wrap}
.lxm-materials{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lxm-materials a{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-sm);background:var(--lx-glass);transition:.15s ease}
.lxm-materials a:hover{background:var(--lx-glass-2);border-color:rgba(91,140,255,.45)}
.lxm-lessonaside{position:sticky;top:20px;min-width:0}
.lxm-asidebox{background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);padding:16px}
.lxm-asidebox summary{cursor:pointer;display:flex;flex-direction:column;gap:2px;list-style:none;margin-bottom:12px}
.lxm-asidebox summary::-webkit-details-marker{display:none}
.lxm-asidebox summary span{color:var(--lx-muted);font-size:12px;font-weight:500}
.lxm-asidemodule{margin-top:18px}
.lxm-asidemodule h4{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--lx-muted);margin-bottom:8px}
.lxm-asidemodule ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.lxm-asidelesson{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:var(--lx-r-sm);font-size:14px;color:var(--lx-text);transition:.15s ease}
a.lxm-asidelesson:hover{background:var(--lx-glass-2)}
.lxm-asidelesson.is-current{background:rgba(47,92,255,.18);box-shadow:inset 0 0 0 1px rgba(91,140,255,.4)}
.lxm-asidelesson.is-done .lxm-asidelesson__title{color:var(--lx-muted)}
.lxm-asidelesson.is-locked{color:var(--lx-muted);cursor:default}
.lxm-lesson__link{display:flex;align-items:center;gap:12px;width:100%;min-width:0}
a.lxm-lesson__link:hover .lxm-lesson__title{color:var(--lx-cyanish)}
.lxm-btn.is-done{border-color:rgba(61,220,151,.5);color:var(--lx-success)}

@media (max-width:1080px){
	.lxm-lessongrid{grid-template-columns:minmax(0,1fr)}
	.lxm-lessonaside{position:static}
}
@media (max-width:640px){
	.lxm-lessonactions{flex-direction:column;align-items:stretch}
	.lxm-lessonnav{justify-content:space-between}
	.lxm-lessonnav .lxm-btn{flex:1 1 auto;text-align:center;justify-content:center}
}

/* Console da equipe ------------------------------------------------------ */
.lxm-hero--console{background:linear-gradient(135deg,rgba(47,92,255,.16),rgba(11,21,51,.5))}
.lxm-muted{color:var(--lx-muted);font-size:13px}
.lxm-consolelist{display:grid;gap:12px}
.lxm-consolerow{display:grid;grid-template-columns:96px minmax(0,1.6fr) minmax(150px,.9fr) auto;gap:18px;align-items:center;
	background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);padding:16px 18px;transition:.15s ease}
.lxm-consolerow:hover{background:var(--lx-glass-2);border-color:rgba(91,140,255,.32)}
.lxm-consolerow__main{min-width:0;display:flex;flex-direction:column;gap:4px}
.lxm-consolerow__main strong{font-size:15px;overflow-wrap:anywhere}
.lxm-consolerow__main small,.lxm-consolerow__progress small{color:var(--lx-muted);font-size:12px}
.lxm-consolerow__progress{display:flex;flex-direction:column;gap:6px;min-width:0}
.lxm-consolerow__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.lxm-consolerow__data{white-space:nowrap}
.lxm-consolerow__msg{font-size:12px;color:var(--lx-muted);flex-basis:100%;text-align:right;min-height:0}
.lxm-consolerow__msg:empty{display:none}

/* Capa do card: miniatura fixa, com fallback quando o curso ainda nao tem imagem. */
.lxm-consolerow__capa{width:96px;height:56px;border-radius:10px;overflow:hidden;flex:0 0 auto;
	background:var(--lx-glass-2);border:1px solid var(--lx-line);display:flex;align-items:center;justify-content:center}
.lxm-consolerow__capa img{width:100%;height:100%;object-fit:cover;display:block}
.lxm-consolerow__capa.is-vazia .lxm-icon{width:20px;height:20px;opacity:.45}

.lxm-chip--ok{color:#c7ffe9;border-color:rgba(61,220,151,.30);background:rgba(61,220,151,.09)}
.lxm-chip--wait{color:#cfe0ff;border-color:rgba(91,140,255,.32);background:rgba(91,140,255,.10)}
.lxm-chip--warn{color:#ffd9a8;border-color:rgba(255,190,110,.28);background:rgba(255,180,90,.09)}
.lxm-chip--draft{color:var(--lx-muted);border-color:var(--lx-line);background:var(--lx-glass-2)}

/* Barra de pre-visualizacao no topo do curso ainda nao publicado. */
.lxm-previewbar{flex-wrap:wrap;align-items:center;gap:10px}
.lxm-previewbar__nota{flex-basis:100%;font-style:normal;font-size:12.5px;opacity:.85}
.lxm-previewbar__voltar{margin-left:auto}

/* O card do curso vira duas colunas no tablet e uma coluna no celular. */
@media (max-width:1180px){
	.lxm-consolerow{grid-template-columns:96px minmax(0,1fr)}
	.lxm-consolerow__progress,.lxm-consolerow__actions{grid-column:1 / -1}
	.lxm-consolerow__actions{justify-content:flex-start}
	.lxm-consolerow__msg{text-align:left}
}
@media (max-width:560px){
	.lxm-consolerow{grid-template-columns:1fr;gap:12px;padding:14px}
	.lxm-consolerow__capa{width:100%;height:132px}
	.lxm-consolerow__actions .lxm-btn{flex:1 1 auto;justify-content:center}
	.lxm-previewbar__voltar{margin-left:0;flex-basis:100%}
}

.lxm-feed{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.lxm-feed li{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;padding:11px 14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-sm);background:var(--lx-glass)}
.lxm-feed__who{font-weight:600}
.lxm-feed__what{color:var(--lx-muted);font-size:14px}
.lxm-feed__when{margin-left:auto;color:var(--lx-muted);font-size:12px;white-space:nowrap}

.lxm-searchbar{display:flex;gap:10px;margin:0 0 16px;flex-wrap:wrap}
.lxm-searchbar input{flex:1 1 240px;min-width:0;padding:11px 14px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:var(--lx-glass);color:var(--lx-text);font:inherit}
.lxm-searchbar input:focus{outline:none;border-color:rgba(91,140,255,.6)}

.lxm-tablewrap{overflow-x:auto;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass)}
.lxm-table{width:100%;border-collapse:collapse;min-width:640px}
.lxm-table th,.lxm-table td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--lx-line);vertical-align:middle}
.lxm-table th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--lx-muted);font-weight:600}
.lxm-table tr:last-child td{border-bottom:0}
.lxm-table td small{display:block;color:var(--lx-muted);font-size:12px;margin-top:2px;overflow-wrap:anywhere}
.lxm-table .lxm-progress{max-width:180px}

@media (max-width:900px){
	.lxm-consolerow{grid-template-columns:minmax(0,1fr);gap:12px}
	.lxm-consolerow__actions{justify-content:flex-start}
}
@media (max-width:640px){
	.lxm-tablewrap{border:0;background:transparent;overflow:visible}
	.lxm-table{min-width:0;display:block}
	.lxm-table thead{display:none}
	.lxm-table tbody,.lxm-table tr,.lxm-table td{display:block;width:100%}
	.lxm-table tr{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:6px 4px;margin-bottom:10px}
	.lxm-table td{border-bottom:0;padding:8px 14px;display:flex;justify-content:space-between;gap:14px;align-items:center;min-width:0;flex-wrap:wrap}
	.lxm-table td::before{content:attr(data-label);color:var(--lx-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;flex:0 0 auto}
	.lxm-table td > *{text-align:right;min-width:0;max-width:100%;overflow-wrap:anywhere}
	.lxm-table .lxm-progress{max-width:120px}
}

/* Menu lateral em drawer no celular -------------------------------------- */
.lxm-menubtn{
	display:none;align-items:center;justify-content:center;flex:0 0 auto;
	width:40px;height:40px;border-radius:12px;cursor:pointer;
	border:1px solid var(--lx-line);background:var(--lx-glass);color:var(--lx-text);
	transition:.15s ease
}
.lxm-menubtn:hover{background:var(--lx-glass-2);border-color:rgba(91,140,255,.4)}
.lxm-menubtn:focus-visible{outline:2px solid var(--lx-cyanish);outline-offset:2px}
.lxm-drawerveil{display:none}

@media (max-width:1024px){
	/* Só troca para drawer quando o JS está ativo: sem JS, o menu inferior continua. */
	.lxm-hasjs .lxm-menubtn{display:inline-flex}
	.lxm-hasjs .lxm-tabbar{display:none}
	.lxm-hasjs .lxm-content{padding-bottom:56px}

	.lxm-hasjs .lxm-sidebar{
		display:flex;position:fixed;top:0;left:0;bottom:0;z-index:120;
		width:min(86vw,300px);height:100dvh;overflow-y:auto;overscroll-behavior:contain;
		transform:translateX(-101%);transition:transform .26s cubic-bezier(.4,0,.2,1);
		background:linear-gradient(180deg,rgba(11,21,51,.985),rgba(4,7,15,.985));
		border-right:1px solid var(--lx-line);box-shadow:0 0 60px rgba(0,0,0,.65);
		padding-top:calc(22px + env(safe-area-inset-top));
		padding-bottom:calc(22px + env(safe-area-inset-bottom))
	}
	.lxm-hasjs.lxm-drawer-open .lxm-sidebar{transform:translateX(0)}

	.lxm-hasjs .lxm-drawerveil{
		display:block;position:fixed;inset:0;z-index:110;
		background:rgba(2,5,12,.62);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
		opacity:0;pointer-events:none;transition:opacity .26s ease
	}
	.lxm-hasjs.lxm-drawer-open .lxm-drawerveil{opacity:1;pointer-events:auto}
	.lxm-hasjs.lxm-drawer-open{overflow:hidden}

	/* Sem JS o menu inferior precisa caber em qualquer quantidade de itens. */
	.lxm-tabbar{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
}

@media (prefers-reduced-motion:reduce){
	.lxm-sidebar,.lxm-drawerveil{transition:none}
}

/* Construtor dentro do console ------------------------------------------- */
.lxm-crumbline{margin:0 0 14px}
.lxm-crumbline a{color:var(--lx-muted);font-size:13px}
.lxm-crumbline a:hover{color:var(--lx-text)}
.lxm-headactions{display:flex;gap:8px;flex-wrap:wrap}

.lxm-consolebuilder{margin-top:6px}
.lxm-consolebuilder .lxmb-feedback{border-radius:var(--lx-r-sm);font-weight:600;font-size:14px}
.lxm-consolebuilder .lxmb-feedback.is-ok{background:rgba(61,220,151,.12);border:1px solid rgba(61,220,151,.35);color:var(--lx-success)}
.lxm-consolebuilder .lxmb-feedback.is-err{background:rgba(255,107,107,.12);border:1px solid rgba(255,107,107,.35);color:var(--lx-danger)}

.lxm-consolebuilder .lxmb-module{background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);overflow:hidden}
.lxm-consolebuilder .lxmb-module__head{background:rgba(255,255,255,.03);border-bottom:1px solid var(--lx-line);padding:12px 14px}
.lxm-consolebuilder .lxmb-module__num{color:var(--lx-cyanish)}
.lxm-consolebuilder .lxmb-count{color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-title{color:var(--lx-text);font-family:inherit;font-size:14px}
.lxm-consolebuilder .lxmb-title:hover{background:rgba(255,255,255,.05);border-color:var(--lx-line)}
.lxm-consolebuilder .lxmb-title:focus{background:rgba(255,255,255,.07);border-color:rgba(91,140,255,.6)}
.lxm-consolebuilder .lxmb-lesson{border-bottom:1px solid rgba(255,255,255,.06)}
.lxm-consolebuilder .lxmb-lesson__num{color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-chip{background:rgba(255,255,255,.07);color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-empty{background:var(--lx-glass);border:1px dashed var(--lx-line);color:var(--lx-muted);border-radius:var(--lx-r-md)}
.lxm-consolebuilder .lxmb-empty strong{color:var(--lx-text)}
.lxm-consolebuilder .lxmb-newbar input[type=text]{
	background:var(--lx-glass);border:1px solid var(--lx-line);color:var(--lx-text);
	border-radius:var(--lx-r-sm);padding:10px 12px;font:inherit
}
.lxm-consolebuilder .lxmb-newbar input[type=text]:focus{outline:none;border-color:rgba(91,140,255,.6)}

/* Botões do construtor com a linguagem visual da área de membros */
.lxm-consolebuilder .button{
	display:inline-flex;align-items:center;justify-content:center;gap:6px;
	background:var(--lx-glass);border:1px solid var(--lx-line);color:var(--lx-text);
	border-radius:var(--lx-r-sm);padding:8px 12px;font:inherit;font-size:13px;line-height:1;
	cursor:pointer;text-decoration:none;transition:.15s ease;min-height:34px;box-shadow:none
}
.lxm-consolebuilder .button:hover{background:var(--lx-glass-2);border-color:rgba(91,140,255,.45);color:var(--lx-text)}
.lxm-consolebuilder .button-small{padding:6px 10px;font-size:12px;min-height:30px}
.lxm-consolebuilder .button-primary{background:var(--lx-royal);border-color:transparent;color:#fff;font-weight:600}
.lxm-consolebuilder .button-primary:hover{background:var(--lx-royal-strong);color:#fff}
.lxm-consolebuilder .lxmb-danger{color:var(--lx-danger)!important;border-color:rgba(255,107,107,.4)!important}

/* Editor de aula embutido */
.lxmb-editor{padding:14px;margin:6px 0 12px;border:1px solid rgba(91,140,255,.35);border-radius:var(--lx-r-md);background:rgba(47,92,255,.06)}
.lxmb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.lxmb-grid .lxmb-full{grid-column:1/-1}
.lxmb-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--lx-muted);font-weight:600}
.lxmb-grid label.lxmb-check{flex-direction:row;align-items:center;gap:8px;color:var(--lx-text);font-weight:500}
.lxmb-grid input,.lxmb-grid select,.lxmb-grid textarea{
	background:var(--lx-glass);border:1px solid var(--lx-line);color:var(--lx-text);
	border-radius:var(--lx-r-sm);padding:10px 12px;font:inherit;font-size:14px;width:100%;min-width:0
}
.lxmb-grid input[type=checkbox]{width:auto}
.lxmb-grid input:focus,.lxmb-grid select:focus,.lxmb-grid textarea:focus{outline:none;border-color:rgba(91,140,255,.6)}
.lxmb-grid textarea{resize:vertical;line-height:1.5}
.lxmb-formactions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}

@media (max-width:640px){
	.lxm-consolebuilder .lxmb-module__head,.lxm-consolebuilder .lxmb-lesson{align-items:flex-start}
	.lxm-consolebuilder .lxmb-actions{width:100%}
}

/* Turmas ------------------------------------------------------------------ */
.lxm-lead{max-width:70ch;margin:-4px 0 18px}
.lxm-classgroup{margin:22px 0}
.lxm-classgroup h4{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--lx-muted);margin:0 0 10px}
.lxm-classform{background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);padding:18px}
.lxm-btn--danger{color:var(--lx-danger);border-color:rgba(255,107,107,.35)}
.lxm-btn--danger:hover{background:rgba(255,107,107,.1)}

.lxm-rulegroup{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);margin:12px 0;overflow:hidden}
.lxm-rulerow{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,.8fr)) auto;gap:12px;align-items:end;
	padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}
.lxm-rulerow:last-child{border-bottom:0}
.lxm-rulerow.is-lesson{background:rgba(255,255,255,.02);padding-left:34px}
.lxm-rulerow__name{display:flex;flex-direction:column;gap:2px;min-width:0}
.lxm-rulerow__name strong{font-size:14px;overflow-wrap:anywhere}
.lxm-rulerow__name small{color:var(--lx-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.lxm-rulerow label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--lx-muted);font-weight:600;min-width:0}
.lxm-rulerow input,.lxm-rulerow select{
	background:rgba(255,255,255,.04);border:1px solid var(--lx-line);color:var(--lx-text);
	border-radius:var(--lx-r-sm);padding:8px 10px;font:inherit;font-size:13px;width:100%;min-width:0
}
.lxm-rulerow input:focus,.lxm-rulerow select:focus{outline:none;border-color:rgba(91,140,255,.6)}
#lxm-classfeedback{position:sticky;bottom:14px;margin-top:18px}

@media (max-width:1080px){
	.lxm-rulerow{grid-template-columns:repeat(2,minmax(0,1fr))}
	.lxm-rulerow__name{grid-column:1/-1}
	.lxm-rulerow > button{grid-column:1/-1;justify-self:start}
	.lxm-rulerow.is-lesson{padding-left:16px;border-left:3px solid rgba(91,140,255,.35)}
}
@media (max-width:560px){
	.lxm-rulerow{grid-template-columns:minmax(0,1fr)}
}


/* ------------------------------------------------------------------
   Central de alunos (Marco 4)
   ------------------------------------------------------------------ */
.lxm-sronly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.lxm-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 18px;padding:14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass)}
.lxm-filters label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 150px}
.lxm-filters label > span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-filters__search{flex:2 1 220px}
.lxm-filters input,.lxm-filters select{width:100%;max-width:100%;box-sizing:border-box;padding:9px 11px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:13.5px}
.lxm-filters input:focus,.lxm-filters select:focus{outline:none;border-color:var(--lx-royal)}
.lxm-filters select option{background:var(--lx-deep);color:var(--lx-text)}
.lxm-filters__actions{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 auto}

.lxm-btn--small{padding:7px 13px;font-size:12.5px}

.lxm-bulkbar[hidden]{display:none}
.lxm-bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--lx-royal);border-radius:var(--lx-r-md);background:rgba(37,74,255,.09)}
.lxm-bulkbar > span{font-size:13px;color:var(--lx-text)}
.lxm-bulkbar select,.lxm-bulkbar input{padding:8px 10px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:rgba(255,255,255,.05);color:var(--lx-text);font:inherit;font-size:13px;max-width:100%}
.lxm-bulkbar select option{background:var(--lx-deep);color:var(--lx-text)}
.lxm-bulkbar [hidden]{display:none !important}

.lxm-table--students th.lxm-check,.lxm-table--students td.lxm-check{width:34px;text-align:center}
.lxm-table--students input[type=checkbox]{width:16px;height:16px;accent-color:var(--lx-royal);cursor:pointer}

.lxm-chip--active{border-color:rgba(45,190,120,.45);color:#8ff0c0;background:rgba(45,190,120,.12)}
.lxm-chip--expired{border-color:rgba(240,180,60,.45);color:#ffd894;background:rgba(240,180,60,.12)}
.lxm-chip--revoked,.lxm-chip--cancelled{border-color:rgba(255,90,90,.45);color:#ffb3b3;background:rgba(255,90,90,.12)}
.lxm-chip--pending{border-color:rgba(120,150,255,.45);color:#c3d1ff;background:rgba(120,150,255,.12)}

.lxm-pager{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 0}
.lxm-pager__link{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 9px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);color:var(--lx-muted);text-decoration:none;font-size:13px}
.lxm-pager__link:hover{color:var(--lx-text);border-color:var(--lx-royal)}
.lxm-pager__link.is-active{background:var(--lx-royal);border-color:var(--lx-royal);color:#fff}

.lxm-enrollcard{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:16px;display:flex;flex-direction:column;gap:14px}
.lxm-enrollcard__head{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;justify-content:space-between}
.lxm-enrollcard__head strong{display:block;font-size:15px}
.lxm-enrollcard__head small{display:block;margin-top:3px;color:var(--lx-muted);font-size:12.5px}
.lxm-enrollcard__progress small{display:block;margin-top:6px;color:var(--lx-muted);font-size:12px}
.lxm-enrollcard__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.lxm-enrollcard__actions label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 140px}
.lxm-enrollcard__actions label > span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-enrollcard__actions select,.lxm-enrollcard__actions input{width:100%;max-width:100%;box-sizing:border-box;padding:8px 10px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:13px}
.lxm-enrollcard__actions select option{background:var(--lx-deep);color:var(--lx-text)}

@media (max-width:640px){
	.lxm-filters label,.lxm-filters__search{flex:1 1 100%}
	.lxm-bulkbar > *{flex:1 1 100%}
	.lxm-enrollcard__actions label{flex:1 1 100%}
	.lxm-enrollcard__actions .lxm-btn{flex:1 1 calc(50% - 5px)}
}


/* ------------------------------------------------------------------
   Certificados (Marco 5)
   ------------------------------------------------------------------ */

/* Bloco dentro da página do curso */
.lxm-certbox{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:18px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass)}
.lxm-certbox--ready,.lxm-certbox--issued{border-color:var(--lx-royal);background:linear-gradient(135deg,rgba(37,74,255,.16),rgba(37,74,255,.04))}
.lxm-certbox__icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.06);color:var(--lx-text)}
.lxm-certbox__icon svg{width:20px;height:20px}
.lxm-certbox__body{flex:1 1 220px;min-width:0}
.lxm-certbox__body strong{display:block;font-size:15px}
.lxm-certbox__body small{display:block;margin-top:3px;color:var(--lx-muted);font-size:12.5px;overflow-wrap:anywhere}
.lxm-certbox__action{flex:0 0 auto}
.lxm-certbox__action .lxm-btn{white-space:nowrap}

/* Console: configuração por curso */
.lxm-certcard{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:16px;display:flex;flex-direction:column;gap:14px}
.lxm-certcard__head{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;justify-content:space-between}
.lxm-certcard__head strong{display:block;font-size:15px}
.lxm-certcard__head small{display:block;margin-top:3px;color:var(--lx-muted);font-size:12.5px}
.lxm-certform{display:flex;flex-direction:column;gap:12px}
.lxm-certform__switch{display:flex;align-items:center;gap:9px;font-size:13.5px;cursor:pointer}
.lxm-certform__switch input{width:16px;height:16px;accent-color:var(--lx-royal);cursor:pointer}
.lxm-certform__grid{display:flex;flex-wrap:wrap;gap:10px}
.lxm-certform__grid label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 160px}
.lxm-certform__note{display:flex;flex-direction:column;gap:5px}
.lxm-certform label > span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-certform input:not([type="checkbox"]),.lxm-certform textarea,.lxm-certform select{width:100%;max-width:100%;box-sizing:border-box;padding:9px 11px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:13.5px}
.lxm-certform__switch input[type="checkbox"]{width:16px;height:16px;flex:0 0 auto;padding:0;accent-color:var(--lx-royal)}
.lxm-certform label.lxm-certform__switch > span{font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--lx-text)}
.lxm-certform textarea{resize:vertical;min-height:56px}
.lxm-certform select option{background:var(--lx-deep);color:var(--lx-text)}
.lxm-certform__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lxm-certform__manual{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1 1 260px}
.lxm-certform__manual select{flex:1 1 180px;width:auto;max-width:340px}
.lxm-inlinefilter{display:flex;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%}
.lxm-inlinefilter select{flex:1 1 150px;min-width:0;padding:8px 10px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:13px;max-width:100%}
.lxm-inlinefilter select option{background:var(--lx-deep);color:var(--lx-text)}
.lxm-table--certs code{font-size:12.5px;letter-spacing:.06em;color:var(--lx-text)}

/* Página pública do certificado */
.lxm-certpage{margin:0;min-height:100vh;background:var(--lx-black,#05060c);color:var(--lx-text,#eef1ff);font-family:var(--lx-font,system-ui,-apple-system,'Segoe UI',sans-serif);-webkit-font-smoothing:antialiased}
.lxm-certwrap{max-width:1080px;margin:0 auto;padding:32px 20px 60px;box-sizing:border-box}
.lxm-certcheck{max-width:820px;margin:0 auto;padding:28px 20px 60px;box-sizing:border-box;text-align:center}
.lxm-certcheck h1{font-size:24px;margin:0 0 12px}
.lxm-certcheck p{margin:6px 0;font-size:14.5px;overflow-wrap:anywhere}
.lxm-certcheck--ok{padding-top:22px}
.lxm-certactions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}

.lxm-cert{background:linear-gradient(150deg,#0b1030 0%,#0a0d22 55%,#141a45 100%);border-radius:18px;padding:12px;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.lxm-cert__frame{border:1px solid rgba(140,165,255,.42);border-radius:12px;padding:clamp(24px,5vw,54px);display:flex;flex-direction:column;gap:14px;text-align:center;min-height:clamp(380px,52vw,520px);justify-content:center}
.lxm-cert__head{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:6px}
.lxm-cert__logo{max-height:52px;width:auto;max-width:220px}
.lxm-cert__site{font-size:18px;font-weight:600;letter-spacing:.02em}
.lxm-cert__eyebrow{margin:0;font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;color:rgba(190,205,255,.85)}
.lxm-cert__intro{margin:0;font-size:14px;color:rgba(200,212,255,.8)}
.lxm-cert__name{margin:0;font-family:Georgia,'Times New Roman',serif;font-weight:600;font-size:clamp(28px,5.4vw,48px);line-height:1.15;overflow-wrap:anywhere}
.lxm-cert__body{margin:0 auto;max-width:640px;font-size:clamp(14px,1.6vw,16px);line-height:1.7;color:rgba(215,224,255,.92)}
.lxm-cert__body strong{color:#fff}
.lxm-cert__note{margin:0 auto;max-width:600px;font-size:13px;color:rgba(190,205,255,.78);font-style:italic}
.lxm-cert__foot{display:flex;flex-wrap:wrap;gap:22px;justify-content:space-between;align-items:flex-end;margin-top:24px;text-align:left}
.lxm-cert__sign{flex:1 1 220px;min-width:0}
.lxm-cert__line{display:block;height:1px;background:rgba(160,180,255,.5);margin-bottom:8px;max-width:260px}
.lxm-cert__sign strong{display:block;font-size:14.5px}
.lxm-cert__sign small{display:block;color:rgba(190,205,255,.75);font-size:12px;margin-top:2px}
.lxm-cert__stamp{flex:0 1 auto;text-align:right}
.lxm-cert__stamp small{display:block;color:rgba(190,205,255,.75);font-size:11.5px}
.lxm-cert__stamp strong{display:block;font-size:14.5px;margin:2px 0}

@media (max-width:560px){
	.lxm-cert__foot{flex-direction:column;align-items:flex-start;gap:16px}
	.lxm-cert__stamp{text-align:left}
	.lxm-certbox__action{flex:1 1 100%}
	.lxm-certbox__action .lxm-btn{width:100%;justify-content:center}
}

@media print{
	@page{size:A4 landscape;margin:8mm}
	.lxm-certpage{background:#fff}
	.lxm-certwrap{max-width:none;padding:0}
	.lxm-certcheck{display:none}
	.lxm-cert{background:#fff;box-shadow:none;padding:0;border-radius:0}
	.lxm-cert__frame{border:2px solid #1a2a6c;border-radius:0;color:#0d1330;min-height:170mm}
	.lxm-cert__eyebrow,.lxm-cert__intro,.lxm-cert__note,.lxm-cert__sign small,.lxm-cert__stamp small{color:#41507f}
	.lxm-cert__name,.lxm-cert__body,.lxm-cert__body strong,.lxm-cert__sign strong,.lxm-cert__stamp strong,.lxm-cert__site{color:#0d1330}
	.lxm-cert__line{background:#1a2a6c}
}


/* ------------------------------------------------------------------
   Comentários (Marco 6)
   ------------------------------------------------------------------ */
.lxm-avatar--sm{width:34px;height:34px;min-width:34px;font-size:12px;flex:0 0 auto}

.lxm-linkbtn{appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;font-size:12.5px;color:var(--lx-muted);cursor:pointer;text-decoration:none}
.lxm-linkbtn:hover{color:var(--lx-text);text-decoration:underline}
.lxm-linkbtn--danger:hover{color:var(--lx-danger)}
.lxm-linkbtn[disabled]{opacity:.5;cursor:default}

.lxm-chip--team{border-color:rgba(120,150,255,.5);color:#c9d6ff;background:rgba(120,150,255,.14)}

.lxm-cmtform{display:flex;gap:12px;align-items:flex-start;margin:0 0 18px}
.lxm-cmtform__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:8px}
.lxm-cmtform textarea{width:100%;max-width:100%;box-sizing:border-box;padding:11px 13px;border-radius:var(--lx-r-md);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:14px;line-height:1.55;resize:vertical;min-height:72px}
.lxm-cmtform textarea:focus{outline:none;border-color:var(--lx-royal)}
.lxm-cmtform__actions{display:flex;flex-wrap:wrap;gap:8px}
.lxm-cmtform--reply{margin:12px 0 4px 46px}
.lxm-cmtform--reply[hidden]{display:none}

.lxm-cmtlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.lxm-cmtlist .lxm-cmt{list-style:none}
.lxm-cmt{padding:0}
.lxm-cmt.is-pinned > .lxm-cmt__box{border-left:2px solid var(--lx-royal);padding-left:12px}
.lxm-cmt__box{display:flex;gap:12px;align-items:flex-start}
.lxm-cmt__main{flex:1 1 auto;min-width:0}
.lxm-cmt__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:5px}
.lxm-cmt__head strong{font-size:14px}
.lxm-cmt__head time{font-size:11.5px;color:var(--lx-muted)}
.lxm-cmt__text{font-size:14px;line-height:1.6;color:var(--lx-text);overflow-wrap:anywhere}
.lxm-cmt__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:7px}
.lxm-cmt__where{margin:0 0 6px;font-size:12.5px}
.lxm-cmt__where a{color:var(--lx-text);text-decoration:none}
.lxm-cmt__where a:hover{text-decoration:underline}

.lxm-cmtreplies{list-style:none;margin:14px 0 0 46px;padding:0 0 0 14px;border-left:1px solid var(--lx-line);display:flex;flex-direction:column;gap:14px}

.lxm-cmtlist--console{gap:18px}
.lxm-cmtlist--console > .lxm-cmt{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:14px}

.lxm-cmtcard{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:16px;display:flex;flex-direction:column;gap:14px}
.lxm-cmtcard__head{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;justify-content:space-between}
.lxm-cmtcard__head strong{display:block;font-size:15px}
.lxm-cmtcard__head small{display:block;margin-top:3px;color:var(--lx-muted);font-size:12.5px}
.lxm-cmtcard__form{display:flex;flex-direction:column;gap:10px}
.lxm-switchline{display:flex;align-items:center;gap:9px;font-size:13.5px;cursor:pointer}
.lxm-switchline input[type="checkbox"]{width:16px;height:16px;flex:0 0 auto;accent-color:var(--lx-royal);cursor:pointer}

@media (max-width:560px){
	.lxm-cmtform--reply{margin-left:0}
	.lxm-cmtreplies{margin-left:0;padding-left:12px}
	.lxm-cmt__actions{gap:12px}
}


/* ------------------------------------------------------------------
   Comunidade (Marco 7)
   ------------------------------------------------------------------ */
.lxm-spacegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.lxm-spacecard{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);text-decoration:none;color:var(--lx-text);min-width:0}
.lxm-spacecard:hover{border-color:var(--lx-royal);background:var(--lx-glass-2)}
.lxm-spacecard strong{font-size:15px;overflow-wrap:anywhere}
.lxm-spacecard__desc{font-size:13px;color:var(--lx-muted);overflow-wrap:anywhere}
.lxm-spacecard__meta{font-size:12px;color:var(--lx-muted);margin-top:2px}

.lxm-comform{display:flex;flex-direction:column;gap:9px;margin:0 0 18px;padding:14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass)}
.lxm-comform input[type="text"],.lxm-comform textarea{width:100%;max-width:100%;box-sizing:border-box;padding:11px 13px;border-radius:var(--lx-r-md);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:14px;line-height:1.55}
.lxm-comform textarea{resize:vertical;min-height:72px}
.lxm-comform input:focus,.lxm-comform textarea:focus{outline:none;border-color:var(--lx-royal)}
.lxm-comform__actions{display:flex;flex-wrap:wrap;gap:8px}

.lxm-topiclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.lxm-topic{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass)}
.lxm-topic.is-pinned{border-color:var(--lx-royal)}
.lxm-topic__main{flex:1 1 auto;min-width:0}
.lxm-topic__main h4{margin:0 0 4px;font-size:15px}
.lxm-topic__main h4 a{color:var(--lx-text);text-decoration:none;overflow-wrap:anywhere}
.lxm-topic__main h4 a:hover{text-decoration:underline}
.lxm-topic__excerpt{margin:0 0 6px;font-size:13.5px;line-height:1.55;color:var(--lx-muted);overflow-wrap:anywhere}
.lxm-topic__meta{margin:0;font-size:12px;color:var(--lx-muted);display:flex;flex-wrap:wrap;align-items:center;gap:6px}

.lxm-topichead{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:18px}
.lxm-topichead h3{margin:0 0 6px;overflow-wrap:anywhere}
.lxm-topic__body{margin:12px 0 4px;font-size:14.5px;line-height:1.65;overflow-wrap:anywhere}
.lxm-linkbtn.is-on{color:var(--lx-text);font-weight:600}

.lxm-spaceform{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:16px;display:flex;flex-direction:column;gap:12px}
.lxm-spaceform__head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;justify-content:space-between}
.lxm-spaceform__grid{display:flex;flex-wrap:wrap;gap:10px}
.lxm-spaceform__grid label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 160px}
.lxm-spaceform__desc{display:flex;flex-direction:column;gap:5px}
.lxm-spaceform label > span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-spaceform input,.lxm-spaceform select{width:100%;max-width:100%;box-sizing:border-box;padding:9px 11px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:13.5px}
.lxm-spaceform select option{background:var(--lx-deep);color:var(--lx-text)}
.lxm-spaceform__actions{display:flex;flex-wrap:wrap;gap:8px}

@media (max-width:560px){
	.lxm-spacegrid{grid-template-columns:1fr}
	.lxm-spaceform__grid label{flex:1 1 100%}
}


/* ------------------------------------------------------------------
   Gamificação (Marco 8)
   ------------------------------------------------------------------ */
.lxm-progress--hero{max-width:420px;margin-top:14px}
.lxm-hero__text--tight{margin-top:6px}

.lxm-conqgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.lxm-conq{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);opacity:.5;min-width:0}
.lxm-conq.is-on{opacity:1;border-color:var(--lx-royal);background:linear-gradient(135deg,rgba(37,74,255,.14),rgba(37,74,255,.03))}
.lxm-conq__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.06);color:var(--lx-text)}
.lxm-conq__icon svg{width:17px;height:17px}
.lxm-conq strong{font-size:14px;text-transform:none;letter-spacing:normal}
.lxm-conq small{font-size:12px;color:var(--lx-muted);text-transform:none;letter-spacing:normal;overflow-wrap:anywhere}
.lxm-conq__when{color:var(--lx-success,#8ff0c0)}

.lxm-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:none}
.lxm-rank__item{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);min-width:0}
.lxm-rank__item.is-me{border-color:var(--lx-royal);background:linear-gradient(135deg,rgba(37,74,255,.14),rgba(37,74,255,.03))}
.lxm-rank__pos{flex:0 0 auto;width:26px;text-align:center;font-size:13px;color:var(--lx-muted);font-variant-numeric:tabular-nums}
.lxm-rank__name{flex:1 1 auto;min-width:0;font-size:14px;overflow-wrap:anywhere}
.lxm-rank__name small{display:block;font-size:11.5px;color:var(--lx-muted)}
.lxm-rank__points{flex:0 0 auto;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}

.lxm-gamcard{border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);padding:16px;display:flex;flex-direction:column;gap:14px}
.lxm-gamgrid{display:flex;flex-wrap:wrap;gap:10px}
.lxm-gamgrid label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 190px}
.lxm-gamgrid label > span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-gamgrid input{width:100%;max-width:100%;box-sizing:border-box;padding:9px 11px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:rgba(255,255,255,.04);color:var(--lx-text);font:inherit;font-size:13.5px}

@media (max-width:560px){
	.lxm-conqgrid{grid-template-columns:1fr}
	.lxm-gamgrid label{flex:1 1 100%}
}


/* ------------------------------------------------------------------
   Edição do curso dentro do console
   ------------------------------------------------------------------ */
.lxm-newcourse{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px;padding:14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass)}
.lxm-newcourse input{flex:1 1 240px;min-width:0;padding:10px 12px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:var(--lx-glass-2);color:var(--lx-text);font:inherit;font-size:14px}
.lxm-newcourse input:focus{outline:none;border-color:var(--lx-royal)}
.lxm-newcourse__msg{font-size:12.5px;color:var(--lx-muted);flex:1 1 100%}

.lxm-consolebuilder .lxmb-settings{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 18px;padding:16px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass)}
.lxm-consolebuilder .lxmb-settings__cover{flex:0 0 210px;max-width:100%;display:flex;flex-direction:column;gap:10px}
.lxm-consolebuilder .lxmb-settings__cover img{width:100%;height:120px;object-fit:cover;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);display:block}
.lxm-consolebuilder .lxmb-settings__nocover{display:flex;align-items:center;justify-content:center;height:120px;border:1px dashed var(--lx-line);border-radius:var(--lx-r-sm);color:var(--lx-muted);font-size:12.5px}
.lxm-consolebuilder .lxmb-settings__coveractions{display:flex;flex-wrap:wrap;gap:8px}
.lxm-consolebuilder .lxmb-hint{font-size:12px;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-settings__fields{flex:1 1 300px;min-width:0;display:flex;flex-wrap:wrap;gap:12px}
.lxm-consolebuilder .lxmb-settings__fields label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 200px}
.lxm-consolebuilder .lxmb-settings__wide{flex:1 1 100% !important}
.lxm-consolebuilder .lxmb-settings label > span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-settings input[type="text"],
.lxm-consolebuilder .lxmb-settings textarea{width:100%;max-width:100%;box-sizing:border-box;padding:9px 11px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:var(--lx-glass-2);color:var(--lx-text);font:inherit;font-size:13.5px}
.lxm-consolebuilder .lxmb-settings textarea{resize:vertical;min-height:88px;line-height:1.55}
.lxm-consolebuilder .lxmb-settings__actions{flex:1 1 100%}

@media (max-width:560px){
	.lxm-consolebuilder .lxmb-settings__cover{flex:1 1 100%}
	.lxm-consolebuilder .lxmb-settings__fields label{flex:1 1 100%}
}

/* ------------------------------------------------------------------
   Botão de tema
   ------------------------------------------------------------------ */
.lxm-themebtn{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 10px;padding:9px 12px;border:1px solid var(--lx-line);border-radius:var(--lx-r-sm);background:var(--lx-glass);color:var(--lx-muted);font:inherit;font-size:13px;cursor:pointer;text-align:left}
.lxm-themebtn:hover{color:var(--lx-text);border-color:var(--lx-royal)}
.lxm-themebtn__dot{width:16px;height:16px;flex:0 0 auto;border-radius:50%;border:1px solid var(--lx-line);background:linear-gradient(135deg,var(--lx-text) 0 50%,transparent 50% 100%)}

/* ------------------------------------------------------------------
   Modo claro
   ------------------------------------------------------------------ */
:root[data-theme="light"]{
  --lx-black:#eef1f8; --lx-deep:#ffffff; --lx-navy:#e6ebf7;
  --lx-text:#111a33; --lx-muted:#5b6884; --lx-line:rgba(17,26,51,.13);
  --lx-glass:rgba(17,26,51,.035); --lx-glass-2:rgba(17,26,51,.06);
  --lx-danger:#cf3535; --lx-success:#12855a;
  --lx-shadow:0 20px 50px -32px rgba(17,26,51,.32);
}
:root[data-theme="light"] body.lxm{
  background:
    radial-gradient(1100px 620px at 82% -12%, rgba(47,92,255,.12), transparent 62%),
    radial-gradient(820px 520px at 6% 4%, rgba(29,63,224,.09), transparent 60%),
    var(--lx-black);
}
:root[data-theme="light"] .lxm-sidebar,
:root[data-theme="light"] .lxm-topbar,
:root[data-theme="light"] .lxm-tabbar{background:rgba(255,255,255,.92);backdrop-filter:saturate(150%) blur(10px)}
:root[data-theme="light"] .lxm-panel,
:root[data-theme="light"] .lxm-card,
:root[data-theme="light"] .lxm-stat,
:root[data-theme="light"] .lxm-consolerow,
:root[data-theme="light"] .lxm-empty,
:root[data-theme="light"] .lxm-cmtcard,
:root[data-theme="light"] .lxm-certcard,
:root[data-theme="light"] .lxm-gamcard,
:root[data-theme="light"] .lxm-spaceform,
:root[data-theme="light"] .lxm-spacecard,
:root[data-theme="light"] .lxm-enrollcard,
:root[data-theme="light"] .lxm-topic,
:root[data-theme="light"] .lxm-topichead,
:root[data-theme="light"] .lxm-rank__item,
:root[data-theme="light"] .lxm-conq,
:root[data-theme="light"] .lxm-newcourse,
:root[data-theme="light"] .lxm-comform,
:root[data-theme="light"] .lxm-filters,
:root[data-theme="light"] .lxm-consolebuilder .lxmb-settings{background:#fff;box-shadow:0 1px 2px rgba(17,26,51,.05)}
:root[data-theme="light"] input,
:root[data-theme="light"] select,
:root[data-theme="light"] textarea{background:#fff !important;color:var(--lx-text)}
:root[data-theme="light"] select option{background:#fff;color:var(--lx-text)}
:root[data-theme="light"] .lxm-chip{background:rgba(17,26,51,.05)}
:root[data-theme="light"] .lxm-avatar{background:var(--lx-royal);color:#fff}
:root[data-theme="light"] .lxm-progress{background:rgba(17,26,51,.10)}
:root[data-theme="light"] .lxm-conq__icon,
:root[data-theme="light"] .lxm-certbox__icon{background:rgba(17,26,51,.06)}
:root[data-theme="light"] .lxm-nav__link.is-active{background:rgba(47,92,255,.10);color:var(--lx-royal-strong)}
:root[data-theme="light"] .lxm-table th{color:var(--lx-muted)}
:root[data-theme="light"] .lxm-drawerveil{background:rgba(17,26,51,.35)}
:root[data-theme="light"] .lxm-themebtn__dot{background:linear-gradient(135deg,#111a33 0 50%,transparent 50% 100%)}

:root[data-theme="light"] .lxm-consolebuilder .button{background:#fff;border-color:var(--lx-line);color:var(--lx-text)}
:root[data-theme="light"] .lxm-consolebuilder .button:hover{border-color:var(--lx-royal);color:var(--lx-royal-strong)}
:root[data-theme="light"] .lxm-consolebuilder .button-primary{background:var(--lx-royal);border-color:var(--lx-royal);color:#fff}
:root[data-theme="light"] .lxm-consolebuilder .lxmb-module,
:root[data-theme="light"] .lxm-consolebuilder .lxmb-lesson,
:root[data-theme="light"] .lxm-consolebuilder .lxmb-editor{background:#fff}
:root[data-theme="light"] .lxmb-feedback.is-ok{background:#edfaef;color:#0a5c1f}

/* No modo claro o herói continua escuro (marca), então o texto dele fica claro. */
:root[data-theme="light"] .lxm-hero,
:root[data-theme="light"] .lxm-hero__title,
:root[data-theme="light"] .lxm-hero h2,
:root[data-theme="light"] .lxm-hero strong{color:#fff}
:root[data-theme="light"] .lxm-hero__eyebrow,
:root[data-theme="light"] .lxm-hero__text,
:root[data-theme="light"] .lxm-hero small,
:root[data-theme="light"] .lxm-hero .lxm-muted{color:rgba(255,255,255,.80)}
:root[data-theme="light"] .lxm-hero .lxm-btn--ghost{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.32);color:#fff}
:root[data-theme="light"] .lxm-hero .lxm-btn--ghost:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5);color:#fff}
:root[data-theme="light"] .lxm-hero .lxm-progress{background:rgba(255,255,255,.22)}
:root[data-theme="light"] .lxm-hero .lxm-chip{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}


/* ------------------------------------------------------------------
   Entrada (login)
   ------------------------------------------------------------------ */
body.lxm-loginpage{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px 18px}
.lxm-login{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:16px}
.lxm-login__card{width:100%;box-sizing:border-box;padding:30px 26px;border:1px solid var(--lx-line);border-radius:var(--lx-r-lg);background:var(--lx-glass);backdrop-filter:saturate(150%) blur(14px);box-shadow:var(--lx-shadow)}
.lxm-login__brand{display:flex;justify-content:center;margin-bottom:18px}
.lxm-login__brand img{max-height:46px;width:auto;max-width:200px}
.lxm-login__mark{font-size:18px;font-weight:700;letter-spacing:.01em}
.lxm-login__card h1{margin:0 0 4px;font-size:22px;text-align:center;letter-spacing:-.01em}
.lxm-login__sub{margin:0 0 20px;text-align:center;font-size:13.5px;color:var(--lx-muted)}
.lxm-login__erro{margin:0 0 16px;padding:11px 13px;border-radius:var(--lx-r-sm);border:1px solid rgba(255,107,107,.45);background:rgba(255,107,107,.12);color:#ffc9c9;font-size:13px}
.lxm-login__form{display:flex;flex-direction:column;gap:6px}
.lxm-login__form label{font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted);margin-top:10px}
.lxm-login__form input[type="text"],.lxm-login__form input[type="password"]{width:100%;box-sizing:border-box;padding:12px 14px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:var(--lx-glass-2);color:var(--lx-text);font:inherit;font-size:15px}
.lxm-login__form input:focus{outline:none;border-color:var(--lx-royal);box-shadow:0 0 0 3px rgba(47,92,255,.18)}
.lxm-login__pwd{position:relative}
.lxm-login__eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--lx-muted);font:inherit;font-size:12px;cursor:pointer;padding:6px 8px;border-radius:6px}
.lxm-login__eye:hover{color:var(--lx-text)}
.lxm-login__remember{display:flex !important;align-items:center;gap:8px;margin:14px 0 4px;font-size:13px !important;text-transform:none !important;letter-spacing:normal !important;color:var(--lx-muted) !important;cursor:pointer}
.lxm-login__remember input{width:16px;height:16px;accent-color:var(--lx-royal)}
.lxm-btn--block{width:100%;justify-content:center;margin-top:10px;padding:12px 18px;font-size:15px}
.lxm-login__links{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:18px;font-size:13px}
.lxm-login__links a{color:var(--lx-muted);text-decoration:none}
.lxm-login__links a:hover{color:var(--lx-text);text-decoration:underline}
.lxm-login__pe{margin:0;font-size:12px;color:var(--lx-muted)}

/* ------------------------------------------------------------------
   Busca no topo + página de busca
   ------------------------------------------------------------------ */
.lxm-topsearch{position:relative;flex:0 1 260px;min-width:0;margin-left:auto;display:flex;align-items:center}
.lxm-topsearch__icon{position:absolute;left:10px;display:inline-flex;color:var(--lx-muted);pointer-events:none}
.lxm-topsearch__icon svg{width:16px;height:16px}
.lxm-topsearch input{width:100%;box-sizing:border-box;padding:9px 12px 9px 34px;border-radius:99px;border:1px solid var(--lx-line);background:var(--lx-glass);color:var(--lx-text);font:inherit;font-size:13.5px}
.lxm-topsearch input:focus{outline:none;border-color:var(--lx-royal);background:var(--lx-glass-2)}

.lxm-searchbig{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.lxm-searchbig input{flex:1 1 240px;min-width:0;padding:12px 14px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:var(--lx-glass);color:var(--lx-text);font:inherit;font-size:15px}
.lxm-searchbig input:focus{outline:none;border-color:var(--lx-royal)}
.lxm-searchtit{margin:20px 0 8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-searchlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.lxm-searchlist a{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);text-decoration:none;color:var(--lx-text)}
.lxm-searchlist a:hover{border-color:var(--lx-royal);background:var(--lx-glass-2)}
.lxm-searchlist strong{font-size:14.5px;overflow-wrap:anywhere}
.lxm-searchlist small{font-size:12px;color:var(--lx-muted)}

/* ------------------------------------------------------------------
   Sino de avisos
   ------------------------------------------------------------------ */
.lxm-bell{position:relative;flex:0 0 auto}
.lxm-bell__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--lx-line);background:var(--lx-glass);color:var(--lx-muted);cursor:pointer;padding:0}
.lxm-bell__btn:hover{color:var(--lx-text);border-color:var(--lx-royal)}
.lxm-bell__btn svg{width:18px;height:18px}
.lxm-bell__dot{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--lx-danger);color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--lx-black)}
.lxm-bell__panel{position:absolute;top:calc(100% + 10px);right:0;width:min(340px,calc(100vw - 32px));max-height:70vh;overflow:auto;z-index:60;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-deep);box-shadow:0 24px 60px -24px rgba(0,0,0,.7)}
.lxm-bell__panel[hidden]{display:none}
.lxm-bell__head{padding:13px 16px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--lx-muted);border-bottom:1px solid var(--lx-line)}
.lxm-bell__vazio{margin:0;padding:18px 16px;font-size:13px;color:var(--lx-muted);line-height:1.55}
.lxm-bell__list{list-style:none;margin:0;padding:0}
.lxm-bell__list li{border-bottom:1px solid var(--lx-line)}
.lxm-bell__list li:last-child{border-bottom:0}
.lxm-bell__list li.is-new{background:rgba(47,92,255,.10)}
.lxm-bell__list a{display:flex;gap:11px;padding:13px 16px;text-decoration:none;color:var(--lx-text)}
.lxm-bell__list a:hover{background:var(--lx-glass-2)}
.lxm-bell__ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 auto;border-radius:9px;background:var(--lx-glass-2);color:var(--lx-muted)}
.lxm-bell__ico svg{width:15px;height:15px}
.lxm-bell__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.lxm-bell__txt span{font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}
.lxm-bell__txt small{font-size:11.5px;color:var(--lx-muted)}

/* ------------------------------------------------------------------
   Novo membro
   ------------------------------------------------------------------ */
.lxm-novomembro{margin:0 0 16px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);overflow:hidden}
.lxm-novomembro summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;font-size:14px;list-style:none}
.lxm-novomembro summary::-webkit-details-marker{display:none}
.lxm-novomembro__plus{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;background:var(--lx-royal);color:#fff;font-weight:700;line-height:1}
.lxm-novomembro__body{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}
.lxm-novomembro__grid{display:flex;flex-wrap:wrap;gap:10px}
.lxm-novomembro__grid label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 190px}
.lxm-novomembro label > span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-novomembro input,.lxm-novomembro select{width:100%;max-width:100%;box-sizing:border-box;padding:9px 11px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);background:var(--lx-glass-2);color:var(--lx-text);font:inherit;font-size:13.5px}
.lxm-novomembro select option{background:var(--lx-deep);color:var(--lx-text)}
.lxm-novomembro__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.lxm-novomembro__msg{font-size:12.5px;color:var(--lx-muted);flex:1 1 220px;overflow-wrap:anywhere}
.lxm-novomembro .lxm-switchline > span{text-transform:none;letter-spacing:normal;font-size:13.5px;color:var(--lx-text)}

@media (max-width:900px){
	.lxm-topsearch{flex:0 1 170px}
}
@media (max-width:640px){
	.lxm-topsearch{flex:1 1 90px}
	.lxm-topsearch input{padding-left:30px;font-size:13px}
	.lxm-novomembro__grid label{flex:1 1 100%}
}

/* Barra do topo também no desktop: título à esquerda, busca, sino e avatar. */
@media (min-width:1025px){
	.lxm-topbar{
		display:flex;align-items:center;gap:14px;padding:14px 26px;
		position:sticky;top:0;z-index:40;
		border-bottom:1px solid var(--lx-line);
		background:rgba(4,7,15,.72);backdrop-filter:saturate(150%) blur(14px);
	}
	.lxm-topbar .lxm-menubtn,
	.lxm-topbar .lxm-topbar__brand{display:none}
	.lxm-topbar__title{flex:0 1 auto;margin:0;text-align:left;font-size:15px;font-weight:600;color:var(--lx-text);letter-spacing:-.01em}
	.lxm-topsearch{flex:0 1 300px;margin-left:auto}
}
:root[data-theme="light"] .lxm-topbar{background:rgba(255,255,255,.82)}

:root[data-theme="light"] .lxm-bell__panel{background:#fff}
:root[data-theme="light"] .lxm-bell__dot{box-shadow:0 0 0 2px #fff}
:root[data-theme="light"] .lxm-login__card,
:root[data-theme="light"] .lxm-novomembro,
:root[data-theme="light"] .lxm-searchlist a{background:#fff}
:root[data-theme="light"] .lxm-login__erro{border-color:rgba(207,53,53,.4);background:rgba(207,53,53,.08);color:#a32222}

/* ---- Formato da capa: banner (padrao) x retrato ---- */
.lxm-card--retrato .lxm-card__cover{aspect-ratio:2/3}
.lxm-grid:has(.lxm-card--retrato){grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
@media (max-width:560px){.lxm-grid:has(.lxm-card--retrato){grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .lxm-card--retrato .lxm-card__title{font-size:14px}}
/* ---- Seletor de formato no construtor ---- */
.lxmb-ratio{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;font-size:13px}
.lxmb-ratio__lab{width:100%;font-weight:600;opacity:.8}
.lxmb-ratio label{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--lx-line,#2a3350);border-radius:8px;cursor:pointer}
.lxmb-ratio label:has(input:checked){border-color:#5b76ff;box-shadow:0 0 0 1px #5b76ff inset}
.lxmb-ratio input{margin:0}
.lxmb-ratio em{font-style:normal;font-weight:600}

/* ---- Topbar: so a logo ao lado da busca, campo de busca mais amplo ---- */
.lxm-topbar__title.lxm-sronly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.lxm-topsearch{flex:0 1 380px;max-width:380px;margin-left:auto;margin-right:0}
.lxm-topsearch input{padding:10px 14px 10px 38px;font-size:14px}
@media (max-width:1024px){.lxm-topsearch{margin-left:10px;margin-right:6px;max-width:none}}
@media (max-width:430px){.lxm-topsearch input{padding-left:32px;font-size:13px}
 .lxm-topsearch__icon{left:8px}}

/* ---- Avaliação da aula ---- */
.lxm-is-hidden{display:none !important}
.lxm-rating__media{display:inline-flex;align-items:baseline;gap:6px}
.lxm-rating__media strong{font-size:18px}
.lxm-rating__box{display:flex;flex-direction:column;gap:12px}
.lxm-stars{border:0;margin:0;padding:0;display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.lxm-stars input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.lxm-stars label{cursor:pointer;line-height:0;padding:2px;border-radius:8px;transition:transform .12s}
.lxm-stars label svg{width:30px;height:30px;fill:var(--lx-line);transition:fill .15s}
.lxm-stars input:checked ~ label svg,
.lxm-stars label:hover svg,
.lxm-stars label:hover ~ label svg{fill:#f5b93b}
.lxm-stars input:checked + label svg{fill:#f5b93b}
.lxm-stars label:hover{transform:translateY(-1px)}
.lxm-stars input:focus-visible + label{outline:2px solid var(--lx-royal,#5b76ff);outline-offset:2px}
.lxm-rating textarea{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:var(--lx-r-sm,10px);border:1px solid var(--lx-line);background:var(--lx-glass);color:var(--lx-text);font:inherit;font-size:14px;resize:vertical}
.lxm-rating textarea:focus{outline:none;border-color:var(--lx-royal,#5b76ff)}
.lxm-rating__acoes{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.lxm-rating__msg{font-size:13px;color:var(--lx-muted)}
.lxm-rating__msg.is-erro{color:var(--lx-danger,#ff6b6b)}
@media (max-width:430px){.lxm-stars label svg{width:26px;height:26px}}

/* ---- Avaliações no painel do produtor ---- */
.lxm-ratbar{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.lxm-ratbar__track{width:90px;height:6px;border-radius:99px;background:var(--lx-line);overflow:hidden}
.lxm-ratbar__fill{display:block;height:100%;background:#f5b93b}
.lxm-ratnotes{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lxm-ratnotes li{border:1px solid var(--lx-line);border-radius:var(--lx-r-sm,10px);padding:12px;background:var(--lx-glass)}
.lxm-ratnotes strong{display:block;font-size:14px}
.lxm-ratnotes small{color:var(--lx-muted)}
.lxm-ratnotes p{margin:6px 0 0;font-size:14px}

/* ---- Quiz da aula ---- */
.lxm-quiz__best{font-size:13px;padding:5px 10px;border-radius:99px;border:1px solid var(--lx-line)}
.lxm-quiz__best.is-ok{color:#3ddc97;border-color:#3ddc97}
.lxm-quiz__best.is-nao{color:#f5b93b;border-color:#f5b93b}
.lxm-quiz__form{display:grid;gap:16px}
.lxm-quiz__q{border:1px solid var(--lx-line);border-radius:var(--lx-r-md,14px);padding:14px 16px;margin:0;background:var(--lx-glass)}
.lxm-quiz__q legend{font-weight:600;font-size:15px;padding:0 4px}
.lxm-quiz__q.is-ok{border-color:#3ddc97}
.lxm-quiz__q.is-erro{border-color:#ff6b6b}
.lxm-quiz__opt{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:var(--lx-r-sm,10px);cursor:pointer;font-size:14px;line-height:1.45;border:1px solid transparent}
.lxm-quiz__opt:hover{background:var(--lx-glass-2,rgba(255,255,255,.04))}
.lxm-quiz__opt input{margin-top:2px;flex:0 0 auto}
.lxm-quiz__opt.is-certa{border-color:#3ddc97;background:rgba(61,220,151,.10)}
.lxm-quiz__opt.is-errada{border-color:#ff6b6b;background:rgba(255,107,107,.10)}
.lxm-quiz__acoes{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.lxm-quiz__msg{font-size:13px;color:var(--lx-muted)}
.lxm-quiz__msg.is-erro{color:var(--lx-danger,#ff6b6b)}
@media (max-width:430px){.lxm-quiz__q{padding:12px}.lxm-quiz__q legend{font-size:14px}}

/* ---- Configurações e integrações no painel ---- */
.lxm-cfgbox,.lxm-intbox{border:1px solid var(--lx-line);border-radius:var(--lx-r-md,14px);padding:18px;background:var(--lx-glass);display:grid;gap:12px;margin-bottom:16px}
.lxm-cfggrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.lxm-cfggrid label,.lxm-cfgfull{display:flex;flex-direction:column;gap:6px;font-size:13px}
.lxm-cfgfull{grid-column:1/-1}
.lxm-cfggrid input,.lxm-cfggrid select,.lxm-cfggrid textarea,.lxm-intbox textarea,.lxm-hookurl,.lxm-intkey input{width:100%;box-sizing:border-box;padding:9px 12px;border-radius:var(--lx-r-sm,10px);border:1px solid var(--lx-line);background:var(--lx-glass-2,rgba(255,255,255,.03));color:var(--lx-text);font:inherit;font-size:14px}
.lxm-cfggrid textarea,.lxm-intbox textarea{resize:vertical}
.lxm-cfggrid input:focus,.lxm-cfggrid select:focus,.lxm-cfggrid textarea:focus,.lxm-intbox textarea:focus,.lxm-hookurl:focus{outline:none;border-color:var(--lx-royal,#5b76ff)}
.lxm-cfgacoes,.lxm-intacoes{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.lxm-cfg__msg,.lxm-int__msg{font-size:13px;color:var(--lx-muted);margin:0}
.lxm-cfg__msg.is-erro,.lxm-int__msg.is-erro{color:var(--lx-danger,#ff6b6b)}
.lxm-intcode{margin:0;padding:14px;border-radius:var(--lx-r-sm,10px);background:var(--lx-black,#05070f);border:1px solid var(--lx-line);color:var(--lx-text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.6;overflow-x:auto;white-space:pre}
.lxm-intbox code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;background:var(--lx-glass-2,rgba(255,255,255,.05));padding:1px 5px;border-radius:5px}
.lxm-intkey{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lxm-intkey input{flex:1 1 260px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.lxm-hooklist{display:grid;gap:12px}
.lxm-hookrow{display:grid;gap:8px;padding:12px;border:1px solid var(--lx-line);border-radius:var(--lx-r-sm,10px)}
.lxm-hookevents{display:flex;flex-wrap:wrap;gap:8px}
.lxm-hookevents label{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:5px 9px;border:1px solid var(--lx-line);border-radius:99px;cursor:pointer}
.lxm-hookevents label:has(input:checked){border-color:var(--lx-royal,#5b76ff)}
.lxm-hookevents input{margin:0}
.lxm-hookrow > .lxm-btn{justify-self:start}
@media (max-width:430px){.lxm-cfgbox,.lxm-intbox{padding:14px}.lxm-intcode{font-size:11.5px}}

/* ---- Atalho de suporte no menu ---- */
.lxm-suporte{display:flex;align-items:center;gap:10px;margin:0 12px 8px;padding:10px 12px;border-radius:var(--lx-r-sm,10px);border:1px solid var(--lx-line);color:var(--lx-text);text-decoration:none;font-size:14px}
.lxm-suporte:hover{border-color:var(--lx-royal,#5b76ff)}
.lxm-suporte svg{width:18px;height:18px;flex:0 0 auto}

/* ---- Celular: só a busca na topbar; a logo mora no menu ---- */
@media (max-width:1024px){
  .lxm-topbar__brand{display:none}
  .lxm-topsearch{margin-left:8px;margin-right:4px;flex:1 1 auto;min-width:0}
  .lxm-topbar{gap:8px}
}

/* ---- Foto de perfil ---- */
.lxm-avatar--foto{object-fit:cover;padding:0;background:transparent;border:1px solid var(--lx-line)}
.lxm-fotobox{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.lxm-fotobox__alvo{display:inline-flex}
.lxm-fotobox__acoes{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.lxm-fotobox__msg{margin:0;text-align:center}
.lxm-fotobox__msg.is-erro{color:var(--lx-danger,#ff6b6b)}

/* ---- Sino centralizado ---- */
.lxm-bell__veu{position:fixed;inset:0;background:rgba(2,4,10,.55);z-index:60;border:0}
.lxm-bell__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lxm-bell__fechar{background:none;border:0;color:var(--lx-muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.lxm-bell__fechar:hover{color:var(--lx-text)}
.lxm-bell__todos{display:block;text-align:center;padding:12px;border-top:1px solid var(--lx-line);color:var(--lx-royal,#5b76ff);font-size:13.5px;text-decoration:none}
.lxm-bell__todos:hover{background:var(--lx-glass-2,rgba(255,255,255,.04))}
.lxm-bell__panel{position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));max-height:min(72vh,620px);overflow:auto;z-index:61;box-shadow:0 24px 60px rgba(0,0,0,.45)}
body.lxm-bell-aberto{overflow:hidden}

/* ---- Página de avisos ---- */
.lxm-avisos{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lxm-aviso a{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md,14px);background:var(--lx-glass);color:var(--lx-text);text-decoration:none}
.lxm-aviso a:hover{border-color:var(--lx-royal,#5b76ff)}
.lxm-aviso.is-new a{border-color:var(--lx-royal,#5b76ff);background:var(--lx-glass-2,rgba(255,255,255,.05))}
.lxm-aviso__icon{display:inline-flex;flex:0 0 auto;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;background:var(--lx-glass-2,rgba(255,255,255,.06))}
.lxm-aviso__icon svg{width:18px;height:18px}
.lxm-aviso__txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.lxm-aviso__txt strong{font-weight:600;font-size:14.5px;line-height:1.4}
.lxm-aviso__txt small{color:var(--lx-muted);font-size:12.5px}
.lxm-aviso__flag{flex:0 0 auto;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:99px;background:var(--lx-royal,#5b76ff);color:#fff}

/* ---- Aparência ---- */
.lxm-packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.lxm-pack{position:relative;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md,14px);cursor:pointer}
.lxm-pack input{position:absolute;opacity:0;pointer-events:none}
.lxm-pack:has(input:checked){border-color:var(--lx-royal,#5b76ff);box-shadow:0 0 0 1px var(--lx-royal,#5b76ff) inset}
.lxm-pack__swatch{position:relative;display:block;height:54px;border-radius:var(--lx-r-sm,10px)}
.lxm-pack__swatch i{position:absolute;right:8px;bottom:8px;width:16px;height:16px;border-radius:50%;display:block}
.lxm-pack__nome{font-size:12.5px;text-align:center}
.lxm-colorrow{display:flex;gap:8px;align-items:center}
.lxm-colorrow input[type="color"]{width:46px;height:38px;padding:2px;flex:0 0 auto;border-radius:var(--lx-r-sm,10px);border:1px solid var(--lx-line);background:var(--lx-glass);cursor:pointer}
.lxm-colorrow input[type="text"]{flex:1 1 auto;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.lxm-appreview{display:flex;gap:0;height:120px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md,14px);overflow:hidden}
.lxm-appreview__side{width:34%;display:block}
.lxm-appreview__body{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:16px;background:var(--lx-glass)}
.lxm-appreview__bar{display:block;height:8px;border-radius:99px;width:70%}
.lxm-appreview__btn{align-self:flex-start;padding:8px 16px;border-radius:99px;color:#fff;font-size:13px}
.lxm-ap__msg{font-size:13px;color:var(--lx-muted)}
.lxm-ap__msg.is-erro{color:var(--lx-danger,#ff6b6b)}
@media (max-width:430px){.lxm-appreview{height:100px}.lxm-aviso a{padding:12px}}

/* ---- Construtor: visibilidade clara e aviso de rascunho ---- */
.lxmb-switch{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 9px;border:1px solid var(--lx-line,#2a3350);border-radius:99px;cursor:pointer;user-select:none;white-space:nowrap}
.lxmb-switch input{margin:0;cursor:pointer}
.lxmb-switch:has(input:checked){border-color:#3ddc97;color:#3ddc97}
.lxmb-switch:has(input:not(:checked)){opacity:.75}
.lxmb-alerta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;margin-bottom:14px;border:1px solid #f5b93b;border-radius:12px;background:rgba(245,185,59,.08)}
.lxmb-alerta strong{flex:0 0 100%;font-size:14.5px}
.lxmb-alerta span{flex:1 1 260px;font-size:13px;opacity:.85}
.lxmb-input-video{flex:1 1 220px;min-width:0}
.lxmb-newbar--inner{flex-wrap:wrap}

@media (max-width:430px){
  .lxm-topbar{padding-left:12px;padding-right:12px;gap:6px}
  .lxm-topsearch{margin-left:4px;margin-right:2px}
}

/* ------------------------------------------------------------------ */
/* Aprovacoes, chave de aparencia e bloqueio por aluno                  */
/* ------------------------------------------------------------------ */

.lxm-nav__badge {
	margin-left: auto;
	min-width: 20px;
	padding: 1px 6px;
	border-radius: 999px;
	background: var(--lx-royal);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	font-style: normal;
}

/* Chave do administrador */
.lxm-chave {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	padding: 4px 0;
}

.lxm-chave input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.lxm-chave__pino {
	flex: 0 0 auto;
	width: 44px;
	height: 26px;
	margin-top: 2px;
	border-radius: 999px;
	background: var(--lx-glass-2);
	border: 1px solid var(--lx-line);
	position: relative;
	transition: background .18s ease, border-color .18s ease;
}

.lxm-chave__pino::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--lx-muted);
	transition: transform .18s ease, background .18s ease;
}

.lxm-chave input:checked + .lxm-chave__pino {
	background: var(--lx-royal);
	border-color: var(--lx-royal);
}

.lxm-chave input:checked + .lxm-chave__pino::after {
	transform: translateX(18px);
	background: #fff;
}

.lxm-chave input:focus-visible + .lxm-chave__pino {
	outline: 2px solid var(--lx-royal);
	outline-offset: 2px;
}

.lxm-chave__txt {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.lxm-apchave__msg:empty {
	display: none;
}

/* Seletor de dono da paleta */
.lxm-donos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 10px;
}

.lxm-dono {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 12px 14px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md);
	background: var(--lx-glass);
	color: var(--lx-text);
	text-decoration: none;
	transition: border-color .15s ease, background .15s ease;
}

.lxm-dono:hover {
	border-color: var(--lx-royal);
}

.lxm-dono.is-active {
	border-color: var(--lx-royal);
	background: var(--lx-glass-2);
	box-shadow: inset 0 0 0 1px var(--lx-royal);
}

/* Fila de aprovacao */
.lxm-revlist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.lxm-rev {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	padding: 14px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md);
	background: var(--lx-glass);
	transition: opacity .2s ease;
}

.lxm-rev.is-feito {
	opacity: .45;
}

.lxm-rev.is-changes {
	border-left: 3px solid var(--lx-danger);
}

.lxm-rev__info {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
	flex: 1 1 260px;
}

.lxm-rev__tipo {
	align-self: flex-start;
	padding: 1px 8px;
	border-radius: 999px;
	background: var(--lx-glass-2);
	border: 1px solid var(--lx-line);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--lx-muted);
}

.lxm-rev__titulo {
	font-size: 15px;
	overflow-wrap: anywhere;
}

.lxm-rev__recado {
	margin-top: 4px;
	padding: 8px 10px;
	border-radius: var(--lx-r-sm);
	background: var(--lx-glass-2);
	font-size: 13px;
	overflow-wrap: anywhere;
}

.lxm-rev__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-left: auto;
}

.lxm-rev__estado {
	margin-left: auto;
	color: var(--lx-muted);
	font-size: 13px;
}

.lxm-rev__nota {
	flex: 1 1 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.lxm-rev__nota input {
	flex: 1 1 220px;
	min-width: 0;
	padding: 9px 12px;
	border-radius: var(--lx-r-sm);
	border: 1px solid var(--lx-line);
	background: var(--lx-glass-2);
	color: var(--lx-text);
	font: inherit;
}

.lxm-rev__msg {
	flex: 1 1 100%;
	margin: 0;
}

.lxm-rev__msg:empty {
	display: none;
}

.lxm-rev__msg.is-erro {
	color: var(--lx-danger);
}

/* O que cada aluno ve */
.lxm-blqcurso {
	padding: 12px 0;
	border-bottom: 1px solid var(--lx-line);
}

.lxm-blqcurso:last-of-type {
	border-bottom: 0;
}

.lxm-blqlinha {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 8px;
	border-radius: var(--lx-r-sm);
	cursor: pointer;
	overflow-wrap: anywhere;
}

.lxm-blqlinha:hover {
	background: var(--lx-glass-2);
}

.lxm-blqlinha input {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	accent-color: var(--lx-danger);
}

.lxm-blqlinha.is-curso {
	font-weight: 600;
	font-size: 15px;
}

.lxm-blqlinha.is-modulo {
	padding-left: 26px;
}

.lxm-blqlinha.is-aula {
	padding-left: 48px;
	color: var(--lx-muted);
	font-size: 14px;
}

.lxm-blqlinha.is-herdado {
	opacity: .5;
	text-decoration: line-through;
}

.lxm-blq__msg:empty {
	display: none;
}

.lxm-blq__msg.is-erro {
	color: var(--lx-danger);
}

@media (max-width: 640px) {
	.lxm-rev__acoes,
	.lxm-rev__estado {
		margin-left: 0;
		width: 100%;
	}

	.lxm-rev__acoes .lxm-btn {
		flex: 1 1 auto;
		justify-content: center;
	}

	.lxm-donos {
		grid-template-columns: 1fr;
	}

	.lxm-blqlinha.is-modulo {
		padding-left: 18px;
	}

	.lxm-blqlinha.is-aula {
		padding-left: 34px;
	}
}

/* ------------------------------------------------------------------ */
/* Luz caindo, brilho azul suave no fundo (só no modo escuro)          */
/* ------------------------------------------------------------------ */

/*
 * O sistema de fundo mudou de lugar: agora mora inteiro no fim deste
 * arquivo, no bloco "FUNDO EM TRES PLANOS". Ficava aqui uma versao
 * antiga com feixes largos e poeira em mosaico, os feixes liam como
 * manchas e o mosaico repetia em monitor grande.
 */

.lxm-blqconta{margin:2px 0 8px 35px}
.lxm-blqconta strong{color:var(--lx-text)}
@media (max-width:640px){.lxm-blqconta{margin-left:27px}}

/* ------------------------------------------------------------------ */
/* Menu da conta, assinatura, Kiwify e materiais                        */
/* ------------------------------------------------------------------ */

.lxm-conta { position: relative; flex: 0 0 auto; }

.lxm-conta__btn {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 3px 6px 3px 3px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: transparent;
	cursor: pointer;
	color: inherit;
}

.lxm-conta__btn:hover { border-color: var(--lx-line); background: var(--lx-glass); }

.lxm-conta__btn[aria-expanded="true"] { border-color: var(--lx-royal); background: var(--lx-glass-2); }

.lxm-conta__seta {
	width: 0; height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid var(--lx-muted);
	transition: transform .15s ease;
}

.lxm-conta__btn[aria-expanded="true"] .lxm-conta__seta { transform: rotate(180deg); }

.lxm-conta__painel {
	position: fixed;
	z-index: 1200;
	width: min(292px, calc(100vw - 24px));
	padding: 8px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-lg, 16px);
	background: var(--lx-deep, #0d1430);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.lxm-conta__veu {
	position: fixed;
	inset: 0;
	z-index: 1190;
	background: transparent;
}

.lxm-conta__topo {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 10px;
	margin-bottom: 4px;
	border-bottom: 1px solid var(--lx-line);
}

.lxm-conta__id {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.35;
}

.lxm-conta__id strong { font-size: 14px; overflow-wrap: anywhere; }
.lxm-conta__id small { font-size: 12px; color: var(--lx-muted); overflow-wrap: anywhere; }
.lxm-conta__id em {
	font-style: normal;
	font-size: 11px;
	color: var(--lx-royal);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-top: 2px;
}

.lxm-conta__item {
	display: flex;
	align-items: center;
	gap: 11px;
	width: 100%;
	padding: 10px 11px;
	border: 0;
	border-radius: var(--lx-r-sm, 10px);
	background: transparent;
	color: var(--lx-text);
	font: inherit;
	font-size: 14px;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

.lxm-conta__item:hover { background: var(--lx-glass-2); }
.lxm-conta__item.is-sair { color: var(--lx-danger); margin-top: 4px; border-top: 1px solid var(--lx-line); border-radius: 0 0 var(--lx-r-sm, 10px) var(--lx-r-sm, 10px); }
.lxm-conta__item .lxm-icon { width: 18px; height: 18px; opacity: .85; }

.lxm-conta__bolha {
	margin-left: auto;
	min-width: 20px;
	padding: 1px 6px;
	border-radius: 999px;
	background: var(--lx-royal);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	font-style: normal;
	text-align: center;
}

.lxm-conta__nota { margin-left: auto; font-size: 12px; color: var(--lx-muted); }

.lxm-avatar--md { width: 42px; height: 42px; font-size: 15px; }

/* Assinatura */
.lxm-planobox {
	padding: 20px 22px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-lg, 16px);
	background: var(--lx-glass);
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 16px;
}

.lxm-plano__linha {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--lx-line);
}

.lxm-plano__linha:last-of-type { border-bottom: 0; padding-bottom: 0; }
.lxm-plano__rot { min-width: 150px; color: var(--lx-muted); font-size: 13px; }

.lxm-plano__selo {
	padding: 3px 11px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	border: 1px solid var(--lx-line);
	background: var(--lx-glass-2);
}

.lxm-plano__selo.is-ok { color: var(--lx-success); border-color: var(--lx-success); }
.lxm-plano__selo.is-parado { color: var(--lx-muted); }

.lxm-planolista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.lxm-planolista li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.lxm-planolista a { color: var(--lx-text); }
.lxm-planolista a:hover strong { color: var(--lx-royal); }

.lxm-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }

/* Kiwify */
.lxm-copiabox { display: flex; flex-wrap: wrap; gap: 8px; }

.lxm-copiabox input {
	flex: 1 1 260px;
	min-width: 0;
	padding: 10px 12px;
	border-radius: var(--lx-r-sm, 10px);
	border: 1px solid var(--lx-line);
	background: var(--lx-glass-2);
	color: var(--lx-text);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 13px;
}

#lxm-kwtoken, #lxm-kwmap {
	flex: 1 1 240px;
	min-width: 0;
	padding: 10px 12px;
	border-radius: var(--lx-r-sm, 10px);
	border: 1px solid var(--lx-line);
	background: var(--lx-glass-2);
	color: var(--lx-text);
	font: inherit;
	font-size: 14px;
}

#lxm-kwmap { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }

.lxm-kwlog { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }

.lxm-kwlog li {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	padding: 9px 12px;
	border-radius: var(--lx-r-sm, 10px);
	background: var(--lx-glass-2);
	font-size: 13px;
	overflow-wrap: anywhere;
}

.lxm-kw__msg:empty, .lxm-vid__msg:empty { display: none; }
.lxm-kw__msg.is-erro, .lxm-vid__msg.is-erro { color: var(--lx-danger); }

/* Materiais no construtor */
.lxmb-mat { display: flex; flex-direction: column; gap: 10px; }
.lxmb-mat__tit { font-weight: 600; }

.lxmb-mat__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }

.lxmb-mat__lista li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border: 1px solid rgba(125, 135, 165, .28);
	border-radius: 8px;
	overflow-wrap: anywhere;
}

.lxmb-mat__lista li a { flex: 1 1 auto; min-width: 0; }
.lxmb-mat__lista li button { flex: 0 0 auto; }

.lxmb-mat__acoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lxmb-mat__acoes input[type="url"] { flex: 1 1 220px; min-width: 0; }

.lxmb-videorow { display: flex; gap: 8px; align-items: center; }
.lxmb-videorow input { flex: 1 1 auto; min-width: 0; }
.lxmb-dica { display: block; margin-top: 5px; opacity: .75; }
.lxmb-dica.is-erro { color: #d63638; opacity: 1; }

@media (max-width: 640px) {
	.lxm-plano__rot { min-width: 100%; }
	.lxmb-mat__acoes { flex-direction: column; align-items: stretch; }
	.lxmb-videorow { flex-direction: column; align-items: stretch; }
}

/* ------------------------------------------------------------------ */
/* Barra do topo no padrão da referência: grupo compacto à direita      */
/* ------------------------------------------------------------------ */

/* Botão redondo do topo (tema). O sino usa o mesmo desenho. */
.lxm-topicon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid var(--lx-line);
	background: var(--lx-glass);
	color: var(--lx-muted);
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.lxm-topicon:hover,
.lxm-bell__btn:hover {
	color: var(--lx-text);
	border-color: var(--lx-royal);
	background: var(--lx-glass-2);
}

.lxm-topicon .lxm-icon { width: 18px; height: 18px; }

/* O grupo da direita anda junto e não se separa. */
.lxm-topsearch { margin-left: auto; }
.lxm-topicon,
.lxm-bell,
.lxm-conta { margin-left: 0; }

/* Avatar limpo, como na referência: só o círculo. */
.lxm-conta__btn {
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: 50%;
	line-height: 0;
}

.lxm-conta__btn:hover,
.lxm-conta__btn[aria-expanded="true"] {
	border: 0;
	background: transparent;
	box-shadow: 0 0 0 2px var(--lx-royal);
}

.lxm-conta__btn .lxm-avatar { width: 38px; height: 38px; font-size: 13px; }

/* Painel mais enxuto, do tamanho do da referência. */
.lxm-conta__painel {
	width: min(248px, calc(100vw - 24px));
	padding: 6px;
	border-radius: 14px;
}

.lxm-conta__topo { padding: 9px 10px; margin-bottom: 3px; gap: 10px; }
.lxm-conta__topo .lxm-avatar { width: 36px; height: 36px; font-size: 13px; }
.lxm-conta__id strong { font-size: 13.5px; }
.lxm-conta__id small { font-size: 11.5px; }
.lxm-conta__id em { font-size: 10px; }

.lxm-conta__item {
	padding: 9px 10px;
	font-size: 13.5px;
	gap: 10px;
	border-radius: 9px;
}

.lxm-conta__item .lxm-icon { width: 17px; height: 17px; }

/* ------------------------------------------------------------------ */
/* Telas menores                                                        */
/* ------------------------------------------------------------------ */

@media (max-width: 1180px) {
	.lxm-topsearch { flex: 0 1 300px; max-width: 300px; }
}

@media (max-width: 900px) {
	.lxm-topsearch { flex: 1 1 auto; max-width: none; }
}

/* No celular a busca ocupa o espaço livre e os ícones ficam compactos. */
@media (max-width: 640px) {
	.lxm-topbar { gap: 8px; padding: 10px 14px; }

	.lxm-topsearch { flex: 1 1 60px; max-width: none; margin-left: 8px; }

	.lxm-topicon,
	.lxm-bell__btn { width: 34px; height: 34px; }

	.lxm-topicon .lxm-icon,
	.lxm-bell__btn .lxm-icon { width: 16px; height: 16px; }

	.lxm-conta__btn .lxm-avatar { width: 34px; height: 34px; font-size: 12px; }

	.lxm-conta__painel {
		width: calc(100vw - 20px);
		right: 10px !important;
	}
}

/* Tela bem estreita: o botão de tema sai, porque ele também está no menu. */
@media (max-width: 359px) {
	#lxm-themetop { display: none; }
	.lxm-topbar { gap: 6px; padding: 10px 12px; }
}

/* ------------------------------------------------------------------ */
/* Lateral: marca, grupos, item ativo, recolher e quem está logado      */
/* ------------------------------------------------------------------ */

/* --- Topo da lateral: só a marca --- */
.lxm-brand {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 44px;
}

.lxm-brand__link {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	text-decoration: none;
	color: inherit;
}

.lxm-recolher {
	flex: 0 0 auto;
	display: none;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border-radius: 9px;
	border: 1px solid transparent;
	background: transparent;
	cursor: pointer;
	transition: background .18s ease, border-color .18s ease;
}

.lxm-recolher:hover { background: var(--lx-glass-2); border-color: var(--lx-line); }

.lxm-recolher__risco {
	position: relative;
	width: 13px;
	height: 13px;
	border: 1.5px solid var(--lx-muted);
	border-radius: 3px;
}

.lxm-recolher__risco::after {
	content: "";
	position: absolute;
	top: -1.5px;
	bottom: -1.5px;
	left: 3.5px;
	width: 1.5px;
	background: var(--lx-muted);
}

.lxm-recolher:hover .lxm-recolher__risco,
.lxm-recolher:hover .lxm-recolher__risco::after { border-color: var(--lx-royal); background: var(--lx-royal); }
.lxm-recolher:hover .lxm-recolher__risco { background: transparent; }

/* --- Grupos --- */
.lxm-nav { display: flex; flex-direction: column; gap: 2px; }

.lxm-nav__grupo {
	margin: 16px 0 4px;
	padding: 0 12px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--lx-muted);
	opacity: .72;
}

.lxm-nav__grupo:first-child { margin-top: 2px; }

.lxm-nav__risco {
	display: block;
	height: 1px;
	margin: 12px 12px 10px;
	background: var(--lx-line);
	opacity: .7;
}

/* --- Item e estado ativo --- */
.lxm-nav__link { position: relative; }

.lxm-nav__link::before {
	content: "";
	position: absolute;
	left: -2px;
	top: 50%;
	width: 3px;
	height: 0;
	border-radius: 0 3px 3px 0;
	background: var(--lx-royal);
	transform: translateY(-50%);
	transition: height .18s ease;
}

.lxm-nav__link.is-active::before { height: 20px; }

.lxm-nav__link.is-active {
	box-shadow: inset 0 0 22px -14px var(--lx-royal);
}

/* --- Quem está logado --- */
.lxm-eu { position: relative; }

.lxm-eu__btn {
	display: flex;
	align-items: center;
	gap: 11px;
	width: 100%;
	padding: 9px 10px;
	border: 1px solid transparent;
	border-radius: var(--lx-r-md, 14px);
	background: transparent;
	color: var(--lx-text);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: background .18s ease, border-color .18s ease;
}

.lxm-eu__btn:hover,
.lxm-eu__btn[aria-expanded="true"] { background: var(--lx-glass-2); border-color: var(--lx-line); }

.lxm-eu__txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.lxm-eu__txt strong { font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lxm-eu__txt small { font-size: 11.5px; color: var(--lx-muted); }

.lxm-eu__seta {
	margin-left: auto;
	width: 0; height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-bottom: 5px solid var(--lx-muted);
	transition: transform .18s ease;
}

.lxm-eu__btn[aria-expanded="true"] .lxm-eu__seta { transform: rotate(180deg); }

.lxm-eu__painel {
	position: fixed;
	z-index: 1200;
	padding: 6px;
	border: 1px solid var(--lx-line);
	border-radius: 14px;
	background: var(--lx-deep, #0d1430);
	box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
	display: flex;
	flex-direction: column;
	gap: 2px;
	animation: lxm-sobe .16s ease;
}

@keyframes lxm-sobe {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: none; }
}

.lxm-eu__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: var(--lx-text);
	font: inherit;
	font-size: 13.5px;
	text-decoration: none;
	cursor: pointer;
}

.lxm-eu__item:hover { background: var(--lx-glass-2); }
.lxm-eu__item .lxm-icon { width: 17px; height: 17px; opacity: .85; }
.lxm-eu__item.is-sair { color: var(--lx-danger); margin-top: 3px; border-top: 1px solid var(--lx-line); border-radius: 0 0 9px 9px; }

/* ------------------------------------------------------------------ */
/* Modo recolhido, só no desktop                                       */
/* ------------------------------------------------------------------ */

@media (min-width: 1025px) {
	.lxm-recolher { display: inline-flex; }

	/*
	 * O Chrome nao refaz grid-template-columns quando so a variavel muda: o
	 * valor escrito continua igual e a transicao trava no numero antigo. Entao
	 * quem faz a animacao e a propria variavel, registrada como comprimento.
	 */
	/* Os dois estados escrevem a largura por extenso. Se um deles fosse so
	   var(--lx-sidebar), o Chrome nao refazia a conta: o texto da regra continua
	   igual e a animacao trava no numero antigo. */
	.lxm-shell {
		grid-template-columns: 268px minmax(0, 1fr);
		transition: grid-template-columns .2s ease;
	}

	:root.lxm-menu-recolhido { --lx-sidebar: 80px; }
	:root.lxm-menu-recolhido .lxm-shell { grid-template-columns: 80px minmax(0, 1fr); }

	:root.lxm-menu-recolhido .lxm-sidebar { padding-left: 14px; padding-right: 14px; }

	:root.lxm-menu-recolhido .lxm-brand { justify-content: center; flex-direction: column; gap: 8px; }
	:root.lxm-menu-recolhido .lxm-brand__logo { max-height: 30px !important; }

	/* Sem nomes: só ícones, alinhados no centro. */
	:root.lxm-menu-recolhido .lxm-nav__link > span,
	:root.lxm-menu-recolhido .lxm-suporte > span,
	:root.lxm-menu-recolhido .lxm-themebtn__label,
	:root.lxm-menu-recolhido .lxm-eu__txt,
	:root.lxm-menu-recolhido .lxm-eu__seta,
	:root.lxm-menu-recolhido .lxm-nav__grupo > span { display: none; }

	:root.lxm-menu-recolhido .lxm-nav__link,
	:root.lxm-menu-recolhido .lxm-suporte,
	:root.lxm-menu-recolhido .lxm-themebtn,
	:root.lxm-menu-recolhido .lxm-eu__btn { justify-content: center; padding-left: 0; padding-right: 0; }

	/* O título do grupo vira um risquinho discreto. */
	:root.lxm-menu-recolhido .lxm-nav__grupo {
		margin: 12px 14px 8px;
		padding: 0;
		height: 1px;
		background: var(--lx-line);
		opacity: .6;
	}

	:root.lxm-menu-recolhido .lxm-nav__badge {
		position: absolute;
		top: 4px;
		right: 6px;
		margin: 0;
		min-width: 16px;
		font-size: 10px;
		line-height: 15px;
	}

	/* Balãozinho com o nome, no lugar do rótulo. */
	:root.lxm-menu-recolhido [data-tip] { position: relative; }

	:root.lxm-menu-recolhido [data-tip]::after {
		content: attr(data-tip);
		position: absolute;
		left: calc(100% + 12px);
		top: 50%;
		transform: translateY(-50%) translateX(-4px);
		padding: 7px 11px;
		border-radius: 9px;
		border: 1px solid var(--lx-line);
		background: var(--lx-deep, #0d1430);
		box-shadow: 0 12px 30px rgba(0, 0, 0, .45);
		color: var(--lx-text);
		font-size: 12.5px;
		font-weight: 500;
		line-height: 1;
		white-space: nowrap;
		opacity: 0;
		pointer-events: none;
		z-index: 1300;
		transition: opacity .15s ease, transform .15s ease;
	}

	:root.lxm-menu-recolhido [data-tip]:hover::after,
	:root.lxm-menu-recolhido [data-tip]:focus-visible::after {
		opacity: 1;
		transform: translateY(-50%) translateX(0);
	}
}

/* Quem pede menos movimento não vê a lateral deslizar. */
@media (prefers-reduced-motion: reduce) {
	.lxm-shell { transition: none; }
	.lxm-eu__painel { animation: none; }
}

/* X da gaveta: so aparece quando a lateral vira gaveta. */
.lxm-fechamenu {
	flex: 0 0 auto;
	display: none;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border-radius: 10px;
	border: 1px solid var(--lx-line);
	background: var(--lx-glass);
	color: var(--lx-muted);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.lxm-fechamenu:hover { color: var(--lx-text); border-color: var(--lx-royal); background: var(--lx-glass-2); }

@media (max-width: 1024px) {
	.lxm-fechamenu { display: inline-flex; }
	.lxm-recolher { display: none; }
}

/* Entre 1025 e 1180 a lateral aberta e um pouco mais estreita. */
@media (min-width: 1025px) and (max-width: 1180px) {
	.lxm-shell { grid-template-columns: 236px minmax(0, 1fr); }
	:root.lxm-menu-recolhido .lxm-shell { grid-template-columns: 80px minmax(0, 1fr); }
}

/* ------------------------------------------------------------------ */
/* Assinatura: central do aluno, planos e painel da equipe              */
/* ------------------------------------------------------------------ */

/* Selinho de situação. Três tons só: bom, atenção, parado. */
.lxm-pill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 5px 13px;
	border-radius: 999px;
	border: 1px solid var(--lx-line);
	background: var(--lx-glass);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

.lxm-pill i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--lx-muted);
	flex: 0 0 auto;
}

.lxm-pill.is-ok { color: var(--lx-success); border-color: color-mix(in srgb, var(--lx-success) 45%, transparent); }
.lxm-pill.is-ok i { background: var(--lx-success); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lx-success) 22%, transparent); }

.lxm-pill.is-atencao { color: #e0a53c; border-color: rgba(224, 165, 60, .45); }
.lxm-pill.is-atencao i { background: #e0a53c; box-shadow: 0 0 0 3px rgba(224, 165, 60, .2); }

.lxm-pill.is-parado { color: var(--lx-muted); }

/* --- Cabeçalho da central --- */
.lxm-assina__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px 18px;
	margin-bottom: 20px;
}

.lxm-assina__topo h3 { margin: 0 0 4px; }
.lxm-assina__topo p { margin: 0; }

/* --- Card do plano ativo --- */
.lxm-assina__card {
	position: relative;
	overflow: hidden;
	padding: 24px 26px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-lg, 18px);
	background: var(--lx-glass);
	box-shadow: 0 26px 60px -40px rgba(0, 0, 0, .85);
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 22px;
}

/* Fio de luz no topo: só quando a assinatura está de pé. */
.lxm-assina__card.is-viva::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--lx-royal), transparent);
	opacity: .8;
}

.lxm-assina__card-topo {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px 18px;
}

.lxm-assina__card-topo h4 { margin: 0 0 5px; font-size: 19px; letter-spacing: -.01em; }
.lxm-assina__card-topo p { margin: 0; max-width: 46ch; }

.lxm-assina__preco { margin: 0; display: flex; align-items: baseline; gap: 6px; }
.lxm-assina__preco strong { font-size: 30px; letter-spacing: -.02em; }
.lxm-assina__preco small { color: var(--lx-muted); font-size: 14px; }

.lxm-assina__dados {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px 22px;
	margin: 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--lx-line);
}

.lxm-assina__dados dt { font-size: 12px; color: var(--lx-muted); margin-bottom: 3px; }
.lxm-assina__dados dd { margin: 0; font-size: 14.5px; font-weight: 600; overflow-wrap: anywhere; }

.lxm-assina__card .lxm-btn { align-self: flex-start; }
.lxm-assina__nota { margin: 0; max-width: 62ch; }

.lxm-assina__vazio { margin-bottom: 18px; }
.lxm-assina__vazio h4 { margin: 0 0 6px; font-size: 21px; letter-spacing: -.01em; }
.lxm-assina__vazio p { margin: 0; }

.lxm-assina__bloco { margin-top: 26px; }
.lxm-assina__bloco h4 { margin: 0 0 12px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--lx-muted); }

/* --- Vitrine de planos --- */
.lxm-planos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
}

.lxm-planocard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px 22px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-lg, 18px);
	background: var(--lx-glass);
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.lxm-planocard:hover {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--lx-royal) 45%, var(--lx-line));
	box-shadow: 0 24px 50px -34px rgba(0, 0, 0, .9);
}

.lxm-planocard.is-destaque {
	border-color: color-mix(in srgb, var(--lx-royal) 55%, var(--lx-line));
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--lx-royal) 22%, transparent), 0 26px 54px -34px rgba(0, 0, 0, .9);
}

.lxm-planocard__fita {
	position: absolute;
	top: -10px;
	left: 22px;
	padding: 3px 11px;
	border-radius: 999px;
	background: var(--lx-royal);
	color: #fff;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.lxm-planocard h4 { margin: 0; font-size: 18px; letter-spacing: -.01em; }

.lxm-planocard__preco { margin: 0; display: flex; align-items: baseline; gap: 5px; }
.lxm-planocard__preco strong { font-size: 28px; letter-spacing: -.02em; }
.lxm-planocard__preco small { color: var(--lx-muted); font-size: 13.5px; }

.lxm-planocard__txt { font-size: 14px; color: var(--lx-muted); }
.lxm-planocard__txt p { margin: 0 0 6px; }

.lxm-planocard__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }

.lxm-planocard__lista li {
	position: relative;
	padding-left: 22px;
	font-size: 14px;
	line-height: 1.45;
}

.lxm-planocard__lista li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 6px;
	width: 6px;
	height: 10px;
	border: solid var(--lx-success);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.lxm-planocard__btn { margin-top: auto; text-align: center; }
.lxm-planocard__sem { margin-top: auto; }

/* --- Linha do tempo do histórico --- */
.lxm-linha { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }

.lxm-linha__item {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 12px 0 12px 4px;
	border-left: 1px solid var(--lx-line);
	margin-left: 26px;
	padding-left: 22px;
}

.lxm-linha__item::before {
	content: "";
	position: absolute;
	left: -4px;
	top: 18px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--lx-royal);
}

.lxm-linha__item:last-child { border-left-color: transparent; }

.lxm-linha__data {
	position: absolute;
	left: -50px;
	top: 12px;
	width: 40px;
	text-align: right;
	line-height: 1.1;
}

.lxm-linha__data strong { display: block; font-size: 15px; }
.lxm-linha__data small { font-size: 10.5px; color: var(--lx-muted); letter-spacing: .06em; }

.lxm-linha__txt { display: flex; flex-direction: column; gap: 2px; }
.lxm-linha__txt small { color: var(--lx-muted); font-size: 12.5px; }

/* --- Console: lista de planos --- */
.lxm-planos__aviso { margin: -6px 0 16px; max-width: 74ch; }

.lxm-planotab { display: flex; flex-direction: column; gap: 8px; }

.lxm-planolinha {
	display: grid;
	grid-template-columns: minmax(160px, 2fr) auto minmax(90px, 1fr) auto auto;
	align-items: center;
	gap: 10px 16px;
	padding: 13px 16px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md, 14px);
	background: var(--lx-glass);
}

.lxm-planolinha__id strong { display: block; }
.lxm-planolinha__id small { display: block; font-size: 12px; }
.lxm-planolinha__prod { overflow-wrap: anywhere; color: var(--lx-muted); }
.lxm-planolinha__ck { color: var(--lx-muted); }
.lxm-planolinha__acoes { display: flex; gap: 6px; }
.lxm-planolinha__acoes .lxm-btn { padding: 7px 13px; font-size: 13px; }

/* --- Formulário do plano --- */
.lxm-planoform {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 18px;
	padding: 22px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-lg, 18px);
	background: var(--lx-glass-2);
}

.lxm-planoform label { display: flex; flex-direction: column; gap: 5px; font-size: 13.5px; }

.lxm-planoform input[type="text"],
.lxm-planoform input[type="url"],
.lxm-planoform input[type="number"],
.lxm-planoform select,
.lxm-planoform textarea {
	padding: 10px 12px;
	border-radius: var(--lx-r-sm, 10px);
	border: 1px solid var(--lx-line);
	background: var(--lx-glass);
	color: var(--lx-text);
	font: inherit;
	font-size: 14px;
	min-width: 0;
}

.lxm-planoform textarea { resize: vertical; }

.lxm-form__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
}

.lxm-planoform__cursos {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	padding: 14px 16px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md, 14px);
	background: var(--lx-glass);
}

.lxm-planoform__cursos legend { padding: 0 6px; font-size: 12px; color: var(--lx-muted); }
.lxm-planoform .lxm-check { flex-direction: row; align-items: center; gap: 8px; }

/* --- Feedback --- */
.lxm-feedback { min-height: 0; font-size: 13.5px; }
.lxm-feedback:empty { display: none; }
.lxm-feedback.is-ok { color: var(--lx-success); margin-bottom: 10px; }
.lxm-feedback.is-err { color: var(--lx-danger); margin-bottom: 10px; }

/* --- Console: filtros e tabela de assinaturas --- */
.lxm-filtros { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }

.lxm-filtro {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 14px;
	border-radius: 999px;
	border: 1px solid var(--lx-line);
	background: var(--lx-glass);
	color: var(--lx-muted);
	font-size: 13px;
	text-decoration: none;
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.lxm-filtro:hover { color: var(--lx-text); background: var(--lx-glass-2); }
.lxm-filtro.is-on { color: var(--lx-text); border-color: var(--lx-royal); background: var(--lx-glass-2); }
.lxm-filtro b { font-size: 12px; opacity: .8; }

.lxm-buscaform { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }

.lxm-buscaform input[type="search"] {
	flex: 1 1 240px;
	min-width: 0;
	padding: 10px 14px;
	border-radius: 999px;
	border: 1px solid var(--lx-line);
	background: var(--lx-glass);
	color: var(--lx-text);
	font: inherit;
	font-size: 14px;
}

.lxm-tabela { display: flex; flex-direction: column; gap: 6px; }

.lxm-tabela__cab,
.lxm-tabela__linha {
	display: grid;
	grid-template-columns: minmax(160px, 2fr) minmax(120px, 1.4fr) minmax(130px, 1fr) minmax(90px, .8fr) minmax(80px, .7fr);
	align-items: center;
	gap: 10px 14px;
}

.lxm-tabela__cab {
	padding: 0 16px 6px;
	font-size: 11px;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--lx-muted);
}

.lxm-tabela__linha {
	padding: 13px 16px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md, 14px);
	background: var(--lx-glass);
	font-size: 14px;
}

.lxm-tabela__linha strong { display: block; }
.lxm-tabela__linha small { display: block; font-size: 12px; overflow-wrap: anywhere; }

/* ------------------------------------------------------------------ */
/* Telas menores                                                        */
/* ------------------------------------------------------------------ */

@media (max-width: 860px) {
	.lxm-planolinha { grid-template-columns: 1fr auto; }
	.lxm-planolinha__prod,
	.lxm-planolinha__ck { grid-column: 1 / -1; }
	.lxm-planolinha__acoes { grid-column: 1 / -1; }

	.lxm-tabela__cab { display: none; }
	.lxm-tabela__linha { grid-template-columns: 1fr 1fr; }
	.lxm-tabela__linha > span:first-child { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
	.lxm-assina__card { padding: 20px 18px; }
	.lxm-assina__card .lxm-btn { align-self: stretch; text-align: center; }
	.lxm-planocard { padding: 20px 18px; }
	.lxm-linha__item { margin-left: 44px; }
	.lxm-tabela__linha { grid-template-columns: 1fr; }
}

/* Painel da Kiwify: retrato rapido do estado da integracao. */
.lxm-kwstatus__grade {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 16px 22px;
	margin-bottom: 14px;
}

.lxm-kwstatus__grade > div { display: flex; flex-direction: column; gap: 7px; align-items: flex-start; }
.lxm-kwstatus__rot { font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: var(--lx-muted); }
.lxm-kwstatus__grade strong { font-size: 14.5px; }

.lxm-kwform { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.lxm-kwform label { display: flex; flex-direction: column; gap: 5px; font-size: 13.5px; }
.lxm-kwform label.lxm-check { flex-direction: row; align-items: center; gap: 9px; }

.lxm-kwform input[type="text"],
.lxm-kwform input[type="password"] {
	padding: 10px 12px;
	border-radius: var(--lx-r-sm, 10px);
	border: 1px solid var(--lx-line);
	background: var(--lx-glass-2);
	color: var(--lx-text);
	font: inherit;
	font-size: 14px;
	min-width: 0;
}

/* ------------------------------------------------------------------ */
/* Painel próprio: densidade da lateral, botão Criar e correções        */
/* ------------------------------------------------------------------ */

/* --- Lateral mais densa: cabe mais coisa sem virar bagunça. --- */
.lxm-nav__link,
.lxm-suporte,
.lxm-themebtn {
	padding-top: 8px;
	padding-bottom: 8px;
	font-size: 13.5px;
	gap: 10px;
	border-radius: 9px;
}

.lxm-nav__link .lxm-icon,
.lxm-suporte .lxm-icon,
.lxm-themebtn .lxm-icon {
	width: 17px;
	height: 17px;
	flex: 0 0 17px;
	opacity: .82;
}

.lxm-nav__link.is-active .lxm-icon { opacity: 1; }

.lxm-nav { gap: 1px; }

.lxm-nav__grupo {
	margin: 14px 0 3px;
	font-size: 9.5px;
	letter-spacing: .13em;
	opacity: .6;
}

.lxm-nav__grupo:first-child { margin-top: 0; }

.lxm-nav__badge {
	min-width: 18px;
	padding: 0 5px;
	font-size: 10.5px;
	line-height: 17px;
}

.lxm-eu__btn { padding: 7px 9px; gap: 9px; }
.lxm-eu__txt strong { font-size: 12.5px; }
.lxm-eu__txt small { font-size: 10.5px; }
.lxm-eu__btn .lxm-avatar { width: 30px; height: 30px; font-size: 11.5px; }

.lxm-sidebar__foot { gap: 4px; }

/* Transições curtas: percebe-se o movimento, não se espera por ele. */
.lxm-nav__link,
.lxm-suporte,
.lxm-themebtn,
.lxm-eu__btn,
.lxm-criar__btn,
.lxm-criar__item {
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}

/* --- O gatilho aberto fica acima do véu, senão o clique não volta nele. --- */
.lxm-bell__btn[aria-expanded="true"],
.lxm-conta__btn[aria-expanded="true"],
.lxm-criar__btn[aria-expanded="true"] {
	position: relative;
	z-index: 1201;
}

/* --- Botão Criar --- */
.lxm-criar { position: relative; flex: 0 0 auto; }

.lxm-criar__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 38px;
	padding: 0 15px 0 12px;
	border-radius: 999px;
	border: 1px solid transparent;
	background: linear-gradient(120deg, var(--lx-royal), var(--lx-royal-strong, var(--lx-royal)));
	color: #fff;
	font: inherit;
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 14px 30px -18px rgba(47, 92, 255, .95);
}

.lxm-criar__btn:hover { box-shadow: 0 18px 36px -16px rgba(47, 92, 255, 1); }
.lxm-criar__btn .lxm-icon { width: 16px; height: 16px; }

.lxm-criar__painel {
	position: fixed;
	z-index: 1200;
	width: min(268px, calc(100vw - 24px));
	padding: 6px;
	border: 1px solid var(--lx-line);
	border-radius: 14px;
	background: var(--lx-deep, #0d1430);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
	display: flex;
	flex-direction: column;
	gap: 2px;
	animation: lxm-sobe .16s ease;
}

.lxm-criar__veu { position: fixed; inset: 0; z-index: 1190; background: transparent; }

.lxm-criar__item {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 9px 10px;
	border-radius: 10px;
	color: var(--lx-text);
	text-decoration: none;
}

.lxm-criar__item:hover { background: var(--lx-glass-2); }
.lxm-criar__item .lxm-icon { width: 18px; height: 18px; opacity: .85; flex: 0 0 18px; }
.lxm-criar__item span { display: flex; flex-direction: column; line-height: 1.3; }
.lxm-criar__item strong { font-size: 13.5px; }
.lxm-criar__item small { font-size: 11.5px; color: var(--lx-muted); }

/* --- Produtores --- */
.lxm-equipe {
	display: grid;
	grid-template-columns: minmax(150px, 1.8fr) minmax(140px, 1fr) auto auto;
	align-items: center;
	gap: 10px 16px;
	padding: 13px 16px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md, 14px);
	background: var(--lx-glass);
}

.lxm-equipe__id strong { display: block; font-size: 14px; }
.lxm-equipe__id small { display: block; font-size: 12px; overflow-wrap: anywhere; }

.lxm-equipe__perfil select {
	width: 100%;
	padding: 8px 10px;
	border-radius: var(--lx-r-sm, 10px);
	border: 1px solid var(--lx-line);
	background: var(--lx-glass-2);
	color: var(--lx-text);
	font: inherit;
	font-size: 13px;
}

.lxm-equipe__selo { display: flex; flex-wrap: wrap; gap: 6px; }

.lxm-equipe__cursos {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	padding: 14px 16px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md, 14px);
	background: var(--lx-glass-2);
}

.lxm-equipe__cursos legend { padding: 0 6px; font-size: 12px; color: var(--lx-muted); }
.lxm-equipe__cursos .lxm-check { flex-direction: row; align-items: center; gap: 8px; }
.lxm-equipe__cursos .lxm-btn { flex: 0 0 auto; }

.lxm-planolinha__nota { grid-column: 1 / -1; margin: 0; color: var(--lx-danger); }

/* --- Biblioteca do aluno --- */
.lxm-biblio {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
}

.lxm-biblio__item {
	display: flex;
	gap: 14px;
	padding: 16px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-lg, 16px);
	background: var(--lx-glass);
	transition: transform .18s ease, border-color .18s ease;
}

.lxm-biblio__item:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--lx-royal) 40%, var(--lx-line)); }

.lxm-biblio__capa {
	flex: 0 0 78px;
	width: 78px;
	height: 104px;
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--lx-glass-2);
	color: var(--lx-muted);
}

.lxm-biblio__capa img { width: 100%; height: 100%; object-fit: cover; }
.lxm-biblio__capa .lxm-icon { width: 30px; height: 30px; }

.lxm-biblio__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lxm-biblio__txt h4 { margin: 0; font-size: 15px; }
.lxm-biblio__txt p { margin: 2px 0 0; }
.lxm-biblio__acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 8px; }
.lxm-biblio__acoes .lxm-btn { padding: 7px 14px; font-size: 13px; }

/* ------------------------------------------------------------------ */
/* Telas menores                                                        */
/* ------------------------------------------------------------------ */

@media (max-width: 900px) {
	.lxm-criar__btn span { display: none; }
	.lxm-criar__btn { width: 38px; height: 38px; padding: 0; justify-content: center; }
}

@media (max-width: 860px) {
	.lxm-equipe { grid-template-columns: 1fr; }
	.lxm-equipe__selo { justify-content: flex-start; }
}

/* ------------------------------------------------------------------ */
/* Modo claro: os tokens mandam, componente nenhum fica para trás       */
/* ------------------------------------------------------------------ */

:root[data-theme="light"] {
	--lx-luz: #6f8bff;
}

/* Tudo que desenha uma superfície sai do mesmo lugar. */
:root[data-theme="light"] .lxm-sidebar,
:root[data-theme="light"] .lxm-topbar,
:root[data-theme="light"] .lxm-tabbar {
	background: rgba(255, 255, 255, .92);
	border-color: var(--lx-line);
}

:root[data-theme="light"] .lxm-conta__painel,
:root[data-theme="light"] .lxm-eu__painel,
:root[data-theme="light"] .lxm-criar__painel,
:root[data-theme="light"] .lxm-bell__panel,
:root[data-theme="light"] [data-tip]::after {
	background: #fff;
	border-color: var(--lx-line);
	color: var(--lx-text);
	box-shadow: 0 22px 50px -28px rgba(17, 26, 51, .38);
}

:root[data-theme="light"] .lxm-planoform,
:root[data-theme="light"] .lxm-planolinha,
:root[data-theme="light"] .lxm-equipe,
:root[data-theme="light"] .lxm-equipe__cursos,
:root[data-theme="light"] .lxm-planoform__cursos,
:root[data-theme="light"] .lxm-assina__card,
:root[data-theme="light"] .lxm-planocard,
:root[data-theme="light"] .lxm-biblio__item,
:root[data-theme="light"] .lxm-tabela__linha,
:root[data-theme="light"] .lxm-filtro,
:root[data-theme="light"] .lxm-kwstatus {
	background: #fff;
	border-color: var(--lx-line);
}

:root[data-theme="light"] .lxm-planoform input,
:root[data-theme="light"] .lxm-planoform select,
:root[data-theme="light"] .lxm-planoform textarea,
:root[data-theme="light"] .lxm-kwform input,
:root[data-theme="light"] .lxm-equipe__perfil select,
:root[data-theme="light"] .lxm-buscaform input[type="search"] {
	background: #fff;
	border-color: var(--lx-line);
	color: var(--lx-text);
}

:root[data-theme="light"] .lxm-criar__btn { color: #fff; }
:root[data-theme="light"] .lxm-biblio__capa { background: rgba(17, 26, 51, .05); }

/* A luz caindo fica discreta no claro: no branco ela pesa mais. */
:root[data-theme="light"] .lxm-luz__feixe { opacity: .16; }
:root[data-theme="light"] .lxm-luz__poeira { opacity: .10; }

/* ------------------------------------------------------------------ */
/* Lateral no tamanho do conteúdo: ícone, nome e uma folga pequena      */
/* ------------------------------------------------------------------ */

:root { --lx-sidebar: 214px; }

@media (min-width: 1025px) {
	.lxm-shell { grid-template-columns: 214px minmax(0, 1fr); }
}

@media (min-width: 1025px) and (max-width: 1280px) {
	.lxm-shell { grid-template-columns: 198px minmax(0, 1fr); }
	:root.lxm-menu-recolhido .lxm-shell { grid-template-columns: 72px minmax(0, 1fr); }
}

.lxm-sidebar { padding-left: 14px; padding-right: 14px; }
.lxm-nav__link, .lxm-suporte, .lxm-themebtn { padding-left: 10px; padding-right: 10px; }
.lxm-nav__grupo { padding-left: 10px; }

/* ------------------------------------------------------------------ */
/* Velocidade: menos pintura cara, menos trabalho fora da tela          */
/* ------------------------------------------------------------------ */

/* Só o que está perto da dobra é pintado. */
.lxm-planolinha,
.lxm-tabela__linha,
.lxm-biblio__item,
.lxm-planocard,
.lxm-equipe,
.lxm-card,
.lxm-cmtcard {
	content-visibility: auto;
	contain-intrinsic-size: auto 84px;
}

/* Desfoque é o efeito mais caro da tela: no celular ele sai. */
@media (max-width: 1024px) {
	.lxm-topbar,
	.lxm-sidebar,
	.lxm-tabbar {
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}

	.lxm-luz { display: none; }
}

/* Aparelho fraco ou bateria curta: sem animação de fundo. */
@media (prefers-reduced-motion: reduce), (update: slow) {
	.lxm-luz { display: none; }
}

.lxm-luz { pointer-events: none; contain: strict; }
.lxm-luz__feixe,
.lxm-luz__poeira { will-change: auto; }

/* Imagem não pode empurrar o layout enquanto carrega. */
.lxm-biblio__capa img,
.lxm-card__capa img { content-visibility: auto; }

/* ==========================================================================
   Vitrine de banners na home do aluno
   Faixa rolavel no celular, grade no desktop. Sem peso: a imagem e lazy e
   o item nao pinta sombra nem filtro que force camada nova.
   ========================================================================== */
.lxm-vitrine{
	display:grid;
	grid-auto-flow:column;
	grid-auto-columns:minmax(260px,86%);
	gap:14px;
	margin:0 0 22px;
	padding-bottom:6px;
	overflow-x:auto;
	overflow-y:hidden;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
}
.lxm-vitrine::-webkit-scrollbar{display:none}
.lxm-vitrine__item{
	position:relative;
	display:block;
	scroll-snap-align:start;
	border-radius:var(--lx-r-lg,18px);
	overflow:hidden;
	border:1px solid var(--lx-line);
	background:var(--lx-glass);
	text-decoration:none;
	color:inherit;
	min-height:120px;
	contain:content;
}
a.lxm-vitrine__item{cursor:pointer;transition:border-color .18s ease,transform .18s ease}
a.lxm-vitrine__item:hover{border-color:var(--lx-royal);transform:translateY(-2px)}
a.lxm-vitrine__item:focus-visible{outline:2px solid var(--lx-royal);outline-offset:2px}
.lxm-vitrine__img{
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:16/5;
	object-fit:cover;
}
.lxm-vitrine__texto{
	position:absolute;
	left:0;right:0;bottom:0;
	display:flex;
	flex-direction:column;
	gap:2px;
	padding:14px 16px;
	background:linear-gradient(to top,rgba(4,7,20,.86),rgba(4,7,20,0));
	color:#fff;
}
.lxm-vitrine__texto strong{font-size:15px;font-weight:700;line-height:1.25}
.lxm-vitrine__texto span{font-size:12.5px;opacity:.85;line-height:1.35}

@media (min-width:721px){
	.lxm-vitrine{
		grid-auto-flow:row;
		grid-auto-columns:auto;
		grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
		overflow:visible;
		scroll-snap-type:none;
	}
}
@media (max-width:430px){
	.lxm-vitrine{grid-auto-columns:minmax(240px,92%);gap:10px}
	.lxm-vitrine__texto{padding:11px 13px}
	.lxm-vitrine__texto strong{font-size:14px}
	.lxm-vitrine__texto span{font-size:12px}
}

/* ==========================================================================
   Ofertas na tela de assinatura
   Cartao curto: selo, preco riscado x preco novo e o botao que leva ao
   checkout do provedor. Nada de cartao de credito passa por aqui.
   ========================================================================== */
.lxm-ofertas{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
	gap:14px;
	margin:0 0 20px;
}
.lxm-oferta{
	display:flex;
	flex-direction:column;
	gap:9px;
	padding:18px;
	border-radius:var(--lx-r-lg,18px);
	border:1px solid var(--lx-royal);
	background:var(--lx-glass);
	contain:content;
}
.lxm-oferta__topo{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.lxm-oferta__selo{
	font-size:10.5px;
	font-weight:800;
	letter-spacing:.09em;
	text-transform:uppercase;
	padding:4px 9px;
	border-radius:999px;
	background:var(--lx-royal);
	color:#fff;
}
.lxm-oferta__titulo{margin:0;font-size:16px;font-weight:700;line-height:1.25}
.lxm-oferta__txt{margin:0;font-size:13px;line-height:1.5;color:var(--lx-muted)}
.lxm-oferta__preco{margin:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.lxm-oferta__preco s{font-size:13px;color:var(--lx-muted);opacity:.75}
.lxm-oferta__preco strong{font-size:26px;font-weight:800;line-height:1}
.lxm-oferta__preco small{font-size:12.5px;color:var(--lx-muted)}
.lxm-oferta__plano{margin:0;font-size:12.5px;color:var(--lx-muted)}
.lxm-oferta__btn{margin-top:auto;justify-content:center;width:100%}

@media (max-width:430px){
	.lxm-ofertas{grid-template-columns:1fr;gap:11px}
	.lxm-oferta{padding:15px}
	.lxm-oferta__preco strong{font-size:23px}
}

/* ==========================================================================
   Certificados do aluno
   ========================================================================== */
.lxm-certs{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
	gap:14px;
}
.lxm-cert{
	display:flex;
	flex-direction:column;
	gap:12px;
	padding:18px;
	border-radius:var(--lx-r-lg,18px);
	border:1px solid var(--lx-line);
	background:var(--lx-glass);
	contain:content;
}
.lxm-cert__topo{display:flex;align-items:center;gap:10px}
.lxm-cert__topo svg{width:20px;height:20px;flex:0 0 auto;color:var(--lx-royal)}
.lxm-cert__curso{margin:0;font-size:15.5px;font-weight:700;line-height:1.3}
.lxm-cert__dados{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:10px 14px;
	margin:0;
}
.lxm-cert__dados dt{
	margin:0 0 2px;
	font-size:10.5px;
	letter-spacing:.07em;
	text-transform:uppercase;
	color:var(--lx-muted);
}
.lxm-cert__dados dd{margin:0;font-size:13.5px;font-weight:600}
.lxm-cert__codigo{
	font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
	font-size:12px;
	padding:2px 7px;
	border-radius:6px;
	border:1px solid var(--lx-line);
	background:var(--lx-glass-2);
	word-break:break-all;
}
.lxm-cert__btn{margin-top:auto;justify-content:center;width:100%}

@media (max-width:430px){
	.lxm-certs{grid-template-columns:1fr;gap:11px}
	.lxm-cert{padding:15px}
	.lxm-cert__dados{gap:9px 12px}
}

/* ==========================================================================
   Paineis suspensos: hidden precisa mesmo esconder
   O JS liga e desliga o atributo [hidden] certinho, mas as regras acima
   declaram display:flex sem guarda. O display do autor ganha do display:none
   que o navegador da para [hidden], resultado: o painel continuava pintado
   depois de fechado, e o menu do usuario parecia nao fechar nunca.
   ========================================================================== */
.lxm-conta__painel[hidden],
.lxm-criar__painel[hidden],
.lxm-eu__painel[hidden],
.lxm-bell__panel[hidden],
.lxm-conta__veu[hidden]{
	display: none !important;
}

/* ==========================================================================
   MODO CLARO HIBRIDO
   A navegacao nao muda de tema. Sidebar, topo, busca, botao Criar, icones,
   sino, avatar e menus suspensos ficam escuros sempre, e a identidade da
   plataforma. Quem clareia e so o espaco de trabalho no meio.

   O jeito de fazer isso sem reescrever componente por componente: redeclarar
   os tokens da paleta escura DENTRO desses blocos. Todo descendente herda,
   texto, borda, vidro, icone, input, sem precisar de uma regra para cada.
   ========================================================================== */

/* O fundo do menu vale nos dois temas: ele nunca clareia. */
:root[data-theme="light"] {
	--lx-menu: linear-gradient(180deg, rgba(11, 21, 51, .96), rgba(4, 7, 15, .96));
}

:root[data-theme="light"] .lxm-sidebar,
:root[data-theme="light"] .lxm-topbar,
:root[data-theme="light"] .lxm-tabbar,
:root[data-theme="light"] .lxm-conta__painel,
:root[data-theme="light"] .lxm-eu__painel,
:root[data-theme="light"] .lxm-criar__painel,
:root[data-theme="light"] .lxm-bell__panel {
	--lx-black: #04070f;
	--lx-deep: #070d1c;
	--lx-navy: #0b1533;
	--lx-text: #eef3ff;
	--lx-muted: #96a3c2;
	--lx-line: rgba(255, 255, 255, .09);
	--lx-glass: rgba(255, 255, 255, .045);
	--lx-glass-2: rgba(255, 255, 255, .07);
	--lx-danger: #ff6b6b;
	--lx-success: #3ddc97;
	--lx-shadow: 0 24px 60px -30px rgba(0, 0, 0, .9);
	color: var(--lx-text);
}

/* As superficies em si. */
:root[data-theme="light"] .lxm-sidebar {
	background: var(--lx-menu, linear-gradient(180deg, rgba(11, 21, 51, .96), rgba(4, 7, 15, .96)));
	border-right-color: rgba(255, 255, 255, .09);
}
:root[data-theme="light"] .lxm-topbar,
:root[data-theme="light"] .lxm-tabbar {
	background: rgba(7, 13, 28, .92);
	border-color: rgba(255, 255, 255, .09);
}
:root[data-theme="light"] .lxm-conta__painel,
:root[data-theme="light"] .lxm-eu__painel,
:root[data-theme="light"] .lxm-criar__painel,
:root[data-theme="light"] .lxm-bell__panel {
	background: #0d1430;
	border-color: rgba(255, 255, 255, .11);
	box-shadow: 0 24px 60px -26px rgba(0, 0, 0, .82);
}

/* Dica que nasce dentro do escuro continua escura. */
:root[data-theme="light"] .lxm-sidebar [data-tip]::after,
:root[data-theme="light"] .lxm-topbar [data-tip]::after {
	background: #0d1430;
	color: #eef3ff;
	border-color: rgba(255, 255, 255, .11);
}

/* Busca e icones do topo: contorno claro sobre fundo escuro. */
:root[data-theme="light"] .lxm-topsearch,
:root[data-theme="light"] .lxm-topsearch input,
:root[data-theme="light"] .lxm-topicon,
:root[data-theme="light"] .lxm-menubtn,
:root[data-theme="light"] .lxm-recolher,
:root[data-theme="light"] .lxm-bell__btn,
:root[data-theme="light"] .lxm-conta__btn,
:root[data-theme="light"] .lxm-eu__btn,
:root[data-theme="light"] .lxm-themebtn {
	color: #eef3ff;
}
:root[data-theme="light"] .lxm-topsearch,
:root[data-theme="light"] .lxm-topicon,
:root[data-theme="light"] .lxm-menubtn,
:root[data-theme="light"] .lxm-recolher,
:root[data-theme="light"] .lxm-themebtn {
	background: rgba(255, 255, 255, .045);
	border-color: rgba(255, 255, 255, .09);
}
:root[data-theme="light"] .lxm-topsearch input::placeholder {
	color: #96a3c2;
}
:root[data-theme="light"] .lxm-topsearch:focus-within,
:root[data-theme="light"] .lxm-topicon:hover,
:root[data-theme="light"] .lxm-menubtn:hover,
:root[data-theme="light"] .lxm-recolher:hover,
:root[data-theme="light"] .lxm-themebtn:hover {
	background: rgba(255, 255, 255, .09);
	border-color: rgba(255, 255, 255, .16);
}

/* Links do menu e da barra de baixo. */
:root[data-theme="light"] .lxm-nav__link,
:root[data-theme="light"] .lxm-tabbar__link,
:root[data-theme="light"] .lxm-conta__item,
:root[data-theme="light"] .lxm-criar__item,
:root[data-theme="light"] .lxm-eu__item,
:root[data-theme="light"] .lxm-sidebar__foot,
:root[data-theme="light"] .lxm-suporte,
:root[data-theme="light"] .lxm-nav__grupo,
:root[data-theme="light"] .lxm-brand__link,
:root[data-theme="light"] .lxm-topbar__title {
	color: #eef3ff;
}
:root[data-theme="light"] .lxm-nav__grupo,
:root[data-theme="light"] .lxm-conta__nota,
:root[data-theme="light"] .lxm-bell__txt,
:root[data-theme="light"] .lxm-bell__vazio,
:root[data-theme="light"] .lxm-conta__temalabel {
	color: #96a3c2;
}
:root[data-theme="light"] .lxm-nav__link:hover,
:root[data-theme="light"] .lxm-conta__item:hover,
:root[data-theme="light"] .lxm-criar__item:hover,
:root[data-theme="light"] .lxm-eu__item:hover,
:root[data-theme="light"] .lxm-tabbar__link:hover {
	background: rgba(255, 255, 255, .07);
	color: #fff;
}
:root[data-theme="light"] .lxm-nav__link.is-ativo,
:root[data-theme="light"] .lxm-nav__link[aria-current="page"],
:root[data-theme="light"] .lxm-tabbar__link.is-ativo,
:root[data-theme="light"] .lxm-tabbar__link[aria-current="page"] {
	background: rgba(47, 92, 255, .20);
	color: #fff;
}

/* Botao Criar continua sendo o azul da marca. */
:root[data-theme="light"] .lxm-criar__btn {
	background: var(--lx-royal, #2f5cff);
	color: #fff;
	border-color: transparent;
}

/* A troca de tema tem que ser suave, mas nunca no primeiro desenho. */
:root.lxm-tema-pronto .lxm-shell,
:root.lxm-tema-pronto .lxm-main,
:root.lxm-tema-pronto .lxm-content,
:root.lxm-tema-pronto .lxm-panel,
:root.lxm-tema-pronto .lxm-card,
:root.lxm-tema-pronto body.lxm {
	transition: background-color .22s ease, color .22s ease, border-color .22s ease;
}
@media (prefers-reduced-motion: reduce) {
	:root.lxm-tema-pronto .lxm-shell,
	:root.lxm-tema-pronto .lxm-main,
	:root.lxm-tema-pronto .lxm-content,
	:root.lxm-tema-pronto .lxm-panel,
	:root.lxm-tema-pronto .lxm-card,
	:root.lxm-tema-pronto body.lxm {
		transition: none;
	}
}

/* ==========================================================================
   MIOLO CLARO, hierarquia e contraste
   As cores de estado nasceram para fundo escuro: verde-menta, pêssego, rosa
   claro. Sobre o miolo claro elas somem (o verde do chip ficava em 1.2:1).
   Aqui cada estado ganha o tom escuro equivalente, mantendo o mesmo
   significado. Nada disso vale dentro do menu ou do topo, lá o fundo
   continua escuro e as cores originais continuam certas.
   ========================================================================== */

:root[data-theme="light"] {
	--lx-ok-txt: #0f7a52;
	--lx-ok-bg: rgba(15, 122, 82, .10);
	--lx-ok-ln: rgba(15, 122, 82, .34);

	--lx-warn-txt: #8a5300;
	--lx-warn-bg: rgba(138, 83, 0, .10);
	--lx-warn-ln: rgba(138, 83, 0, .32);

	--lx-bad-txt: #b3261e;
	--lx-bad-bg: rgba(179, 38, 30, .09);
	--lx-bad-ln: rgba(179, 38, 30, .30);

	--lx-info-txt: #234ec9;
	--lx-info-bg: rgba(35, 78, 201, .09);
	--lx-info-ln: rgba(35, 78, 201, .30);
}

/* Chips de estado */
:root[data-theme="light"] .lxm-content .lxm-chip--active,
:root[data-theme="light"] .lxm-content .lxm-chip--done,
:root[data-theme="light"] .lxm-content .lxm-card__badge--done {
	color: var(--lx-ok-txt);
	background: var(--lx-ok-bg);
	border-color: var(--lx-ok-ln);
}
:root[data-theme="light"] .lxm-content .lxm-chip--expired,
:root[data-theme="light"] .lxm-content .lxm-chip--lock {
	color: var(--lx-warn-txt);
	background: var(--lx-warn-bg);
	border-color: var(--lx-warn-ln);
}
:root[data-theme="light"] .lxm-content .lxm-chip--revoked,
:root[data-theme="light"] .lxm-content .lxm-chip--cancelled {
	color: var(--lx-bad-txt);
	background: var(--lx-bad-bg);
	border-color: var(--lx-bad-ln);
}
:root[data-theme="light"] .lxm-content .lxm-chip--pending,
:root[data-theme="light"] .lxm-content .lxm-chip--team,
:root[data-theme="light"] .lxm-content .lxm-card__badge {
	color: var(--lx-info-txt);
	background: var(--lx-info-bg);
	border-color: var(--lx-info-ln);
}

/* Avisos */
:root[data-theme="light"] .lxm-content .lxm-notice--success {
	color: var(--lx-ok-txt);
	background: var(--lx-ok-bg);
	border-color: var(--lx-ok-ln);
}
:root[data-theme="light"] .lxm-content .lxm-notice--error {
	color: var(--lx-bad-txt);
	background: var(--lx-bad-bg);
	border-color: var(--lx-bad-ln);
}
:root[data-theme="light"] .lxm-content .lxm-notice--info {
	color: var(--lx-info-txt);
	background: var(--lx-info-bg);
	border-color: var(--lx-info-ln);
}

/* Aula concluida, quiz e interruptor do construtor */
:root[data-theme="light"] .lxm-content .lxm-lesson.is-done .lxm-lesson__state,
:root[data-theme="light"] .lxm-content .lxm-quiz__best.is-ok,
:root[data-theme="light"] .lxm-content .lxm-quiz__q.is-ok,
:root[data-theme="light"] .lxm-content .lxm-quiz__opt.is-certa,
:root[data-theme="light"] .lxm-content .lxmb-switch:has(input:checked) {
	color: var(--lx-ok-txt);
}
:root[data-theme="light"] .lxm-content .lxm-quiz__best.is-nao {
	color: var(--lx-warn-txt);
}

/* Texto corrido: cinza de leitura, nao cinza de fundo escuro. */
:root[data-theme="light"] .lxm-content .lxm-prose {
	color: #2b3651;
}

/* Campos: fundo branco e borda visivel, senao input some no fundo. */
:root[data-theme="light"] .lxm-content input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
:root[data-theme="light"] .lxm-content select,
:root[data-theme="light"] .lxm-content textarea {
	background: #fff;
	color: var(--lx-text);
	border-color: rgba(17, 26, 51, .20);
}
:root[data-theme="light"] .lxm-content input::placeholder,
:root[data-theme="light"] .lxm-content textarea::placeholder {
	color: #7b87a3;
}
:root[data-theme="light"] .lxm-content input:focus,
:root[data-theme="light"] .lxm-content select:focus,
:root[data-theme="light"] .lxm-content textarea:focus {
	border-color: var(--lx-royal);
	box-shadow: 0 0 0 3px rgba(47, 92, 255, .16);
	outline: none;
}

/* Superficies do miolo: branco no cartao, cinza no fundo, cria a hierarquia. */
:root[data-theme="light"] .lxm-content .lxm-panel,
:root[data-theme="light"] .lxm-content .lxm-card,
:root[data-theme="light"] .lxm-content .lxm-planocard,
:root[data-theme="light"] .lxm-content .lxm-oferta,
:root[data-theme="light"] .lxm-content .lxm-cert,
:root[data-theme="light"] .lxm-content .lxm-equipe,
:root[data-theme="light"] .lxm-content .lxm-cmtcard,
:root[data-theme="light"] .lxm-content .lxm-biblio__item,
:root[data-theme="light"] .lxm-content .lxm-vazio,
:root[data-theme="light"] .lxm-content .lxm-empty {
	background: #fff;
	border-color: rgba(17, 26, 51, .12);
	box-shadow: 0 12px 30px -24px rgba(17, 26, 51, .40);
}

/* Tabelas: cabecalho um tom acima, linha zebrada discreta. */
:root[data-theme="light"] .lxm-content table th,
:root[data-theme="light"] .lxm-content .lxm-tabela__cab {
	background: rgba(17, 26, 51, .045);
	color: #3b475f;
}
:root[data-theme="light"] .lxm-content table td,
:root[data-theme="light"] .lxm-content table th,
:root[data-theme="light"] .lxm-content .lxm-tabela__linha {
	border-color: rgba(17, 26, 51, .10);
}
:root[data-theme="light"] .lxm-content .lxm-tabela__linha:hover,
:root[data-theme="light"] .lxm-content tbody tr:hover {
	background: rgba(17, 26, 51, .028);
}

/* ==========================================================================
   Novo curso, criacao dentro do proprio painel
   ========================================================================== */
.lxm-novocurso{margin:0 0 20px}
.lxm-novocurso__abrir{
	display:flex;align-items:center;gap:13px;width:100%;
	padding:16px 18px;text-align:left;cursor:pointer;
	border:1px dashed var(--lx-line);border-radius:var(--lx-r-lg,18px);
	background:var(--lx-glass);color:var(--lx-text);
	transition:border-color .18s ease,background .18s ease;
}
.lxm-novocurso__abrir:hover{border-color:var(--lx-royal);background:var(--lx-glass-2)}
.lxm-novocurso__mais{
	flex:0 0 auto;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;
	background:var(--lx-royal);color:#fff;font-size:19px;font-weight:700;line-height:1;
}
.lxm-novocurso__abrir strong{display:block;font-size:14.5px}
.lxm-novocurso__abrir small{display:block;font-size:12.5px;color:var(--lx-muted);margin-top:2px}

.lxm-novocurso__form{
	margin-top:12px;padding:18px;
	border:1px solid var(--lx-line);border-radius:var(--lx-r-lg,18px);
	background:var(--lx-glass);
}
.lxm-novocurso__grade{
	display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;
}
.lxm-novocurso__campo--largo{grid-column:1 / -1}
.lxm-novocurso__campo label{display:block;font-size:12px;font-weight:600;margin-bottom:6px;color:var(--lx-muted)}
.lxm-novocurso__campo input[type="text"],
.lxm-novocurso__campo textarea,
.lxm-novocurso__campo select{
	width:100%;padding:10px 12px;font:inherit;font-size:14px;
	border:1px solid var(--lx-line);border-radius:var(--lx-r-sm,10px);
	background:var(--lx-glass-2);color:var(--lx-text);
}
.lxm-novocurso__campo textarea{resize:vertical;min-height:74px}

.lxm-novocurso__capa{
	display:grid;place-items:center;min-height:104px;padding:12px;cursor:pointer;
	border:1px dashed var(--lx-line);border-radius:var(--lx-r-md,14px);
	background:var(--lx-glass-2);text-align:center;overflow:hidden;
	transition:border-color .18s ease;
}
.lxm-novocurso__capa.is-sobre{border-color:var(--lx-royal);border-style:solid}
.lxm-novocurso__dica{font-size:12.5px;color:var(--lx-muted);padding:0 8px}
.lxm-novocurso__preview{max-width:100%;max-height:150px;border-radius:10px;display:block}

.lxm-novocurso__acoes{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px}
.lxm-novocurso__msg{font-size:12.5px;color:var(--lx-muted)}
.lxm-novocurso__msg.is-erro{color:var(--lx-danger)}
.lxm-vaziocta{display:flex;justify-content:center;margin:14px 0 0}

@media (max-width:720px){
	.lxm-novocurso__grade{grid-template-columns:1fr}
	.lxm-novocurso__form{padding:15px}
	.lxm-novocurso__abrir{padding:14px}
}
/* ==========================================================================
   Entrada no painel, tela de carregamento
   Só aparece na transição depois do login (o layout imprime este bloco
   quando a URL traz ?entrando=1). Some assim que a interface está pronta;
   o mínimo curto existe só para não dar um piscar feio.
   ========================================================================== */
.lxm-entrando{
	position:fixed;
	inset:0;
	z-index:2000;
	display:grid;
	place-items:center;
	background:
		radial-gradient(900px 520px at 50% 18%, rgba(47,92,255,.20), transparent 62%),
		linear-gradient(180deg,#04070f 0%, #070d1c 52%, #04070f 100%);
	opacity:1;
	transition:opacity .38s ease;
	contain:strict;
}
.lxm-entrando.is-saindo{opacity:0}
.lxm-entrando[hidden]{display:none !important}

.lxm-entrando__miolo{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:26px;
	padding:24px;
	animation:lxm-entrando-sobe .5s ease both;
}
.lxm-entrando__logo{
	width:clamp(72px,17vw,104px);
	height:auto;
	display:block;
	filter:drop-shadow(0 14px 34px rgba(47,92,255,.42));
	animation:lxm-entrando-pulsa 2.4s ease-in-out infinite;
}
.lxm-entrando__marca{
	font-size:clamp(17px,4.4vw,22px);
	font-weight:800;
	letter-spacing:.04em;
	color:#eef3ff;
}
.lxm-entrando__trilho{
	position:relative;
	width:clamp(150px,52vw,232px);
	height:3px;
	border-radius:99px;
	background:rgba(255,255,255,.10);
	overflow:hidden;
}
.lxm-entrando__barra{
	position:absolute;
	inset:0 auto 0 0;
	width:40%;
	border-radius:99px;
	background:linear-gradient(90deg,transparent,#5b8cff 38%,#2f5cff 62%,transparent);
	animation:lxm-entrando-corre 1.15s cubic-bezier(.5,0,.35,1) infinite;
}

@keyframes lxm-entrando-corre{
	0%{transform:translateX(-105%)}
	100%{transform:translateX(255%)}
}
@keyframes lxm-entrando-pulsa{
	0%,100%{transform:translateY(0)}
	50%{transform:translateY(-5px)}
}
@keyframes lxm-entrando-sobe{
	from{opacity:0;transform:translateY(9px)}
	to{opacity:1;transform:none}
}

/* Enquanto a capa está no ar o miolo não rola atrás dela. */
html.lxm-carregando,
html.lxm-carregando body{overflow:hidden}

@media (prefers-reduced-motion: reduce){
	.lxm-entrando__logo{animation:none}
	.lxm-entrando__miolo{animation:none}
	.lxm-entrando__barra{animation-duration:2s}
}

/* Recado de sucesso nas telas de entrada e senha. */
.lxm-login__ok{
	margin:0 0 14px;
	padding:11px 13px;
	font-size:13px;
	line-height:1.4;
	border-radius:var(--lx-r-sm,10px);
	border:1px solid rgba(61,220,151,.34);
	background:rgba(61,220,151,.10);
	color:#c7ffe9;
}
.lxm-login__links{
	display:flex;
	justify-content:center;
	gap:16px;
	flex-wrap:wrap;
	margin:16px 0 0;
	font-size:13px;
}
/* ==========================================================================
   Gerenciar acesso, ficha do aluno
   ========================================================================== */
.lxm-acesso__grupo{
	margin:18px 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;
	text-transform:uppercase;color:var(--lx-muted);
}
.lxm-acesso__lista{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;
}
.lxm-acesso__item{
	display:flex;align-items:flex-start;gap:11px;padding:13px 14px;cursor:pointer;
	border:1px solid var(--lx-line);border-radius:var(--lx-r-md,14px);
	background:var(--lx-glass);transition:border-color .16s ease,background .16s ease;
}
.lxm-acesso__item:hover{border-color:var(--lx-royal);background:var(--lx-glass-2)}
.lxm-acesso__item input{margin-top:3px;flex:0 0 auto;width:17px;height:17px;accent-color:var(--lx-royal)}
.lxm-acesso__item strong{display:block;font-size:14px;line-height:1.3}
.lxm-acesso__item small{display:block;margin-top:3px;font-size:12px;color:var(--lx-muted)}
.lxm-acesso__item:has(input:checked){border-color:var(--lx-royal);background:rgba(47,92,255,.09)}
.lxm-acesso__acoes{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.lxm-acesso__msg{font-size:13px;color:var(--lx-muted)}
.lxm-acesso__msg.is-ok{color:var(--lx-success)}
.lxm-acesso__msg.is-erro{color:var(--lx-danger)}
:root[data-theme="light"] .lxm-content .lxm-acesso__msg.is-ok{color:var(--lx-ok-txt)}
:root[data-theme="light"] .lxm-content .lxm-acesso__msg.is-erro{color:var(--lx-bad-txt)}

/* Permissões de equipe */
.lxm-equipe__grants{margin-top:12px;border-top:1px solid var(--lx-line);padding-top:13px}
.lxm-equipe__curso{margin:0 0 12px;padding:12px 13px;border:1px solid var(--lx-line);border-radius:var(--lx-r-md,14px);background:var(--lx-glass)}
.lxm-equipe__curso > strong{display:block;font-size:13.5px;margin-bottom:9px}
.lxm-equipe__direitos{display:flex;flex-wrap:wrap;gap:8px 16px}
.lxm-equipe__direito{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;cursor:pointer}
.lxm-equipe__direito input{width:15px;height:15px;accent-color:var(--lx-royal)}

@media (max-width:600px){
	.lxm-acesso__lista{grid-template-columns:1fr}
	.lxm-equipe__direitos{gap:7px 12px}
}

/* ==================================================================== */
/* Relatórios, central de inteligência                                  */
/* ==================================================================== */
/* Um só desenho para claro e escuro: as cores vêm das variáveis do tema,
   inclusive dentro do SVG. Nada de paleta duplicada por modo. */

.lxm-an__cabeca{display:flex;align-items:center;gap:10px}
.lxm-an__pulso{width:8px;height:8px;border-radius:99px;background:var(--lx-muted);opacity:.5;transition:.3s ease}
.lxm-an__pulso.is-vivo{background:var(--lx-success);opacity:1;box-shadow:0 0 0 4px rgba(61,220,151,.18)}
.lxm-an__desde{margin:2px 0 14px}

.lxm-an__filtros{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.lxm-an__filtros label{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 150px;max-width:280px}
/* O display do autor ganha do display:none que o navegador dá a [hidden].
   Sem esta guarda o campo continua pintado depois de "escondido", foi
   exatamente assim que o painel de conta ficou aberto na 1.28.1. */
.lxm-an__filtros label[hidden],.lxm-an__detalhe[hidden]{display:none !important}
.lxm-an__filtros label>span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-an__filtros select,.lxm-an__filtros input{width:100%;padding:9px 11px;border-radius:var(--lx-r-sm);
	border:1px solid var(--lx-line);background:var(--lx-glass);color:var(--lx-text);font:inherit;font-size:13px}
.lxm-an__filtros select:focus-visible,.lxm-an__filtros input:focus-visible{outline:2px solid var(--lx-royal);outline-offset:1px}

.lxm-an__corpo{display:grid;gap:16px;transition:opacity .18s ease}
/* Enquanto recalcula, o painel esmaece em vez de sumir, o olho não perde o lugar. */
.lxm-an__corpo.is-carregando{opacity:.45;pointer-events:none}

.lxm-an__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:12px}
.lxm-an__card{background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);
	padding:16px 18px;display:flex;flex-direction:column;gap:3px;min-width:0}
.lxm-an__card strong{font-size:27px;line-height:1.1;letter-spacing:-.02em}
.lxm-an__cardrot{font-size:12.5px;color:var(--lx-muted)}
.lxm-an__delta{font-size:11.5px;margin-top:5px}
.lxm-an__delta.is-sobe{color:var(--lx-success)}
.lxm-an__delta.is-desce{color:var(--lx-danger)}
.lxm-an__delta.is-neutro{color:var(--lx-muted)}

.lxm-an__quadro{background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);padding:16px 18px;min-width:0}
.lxm-an__quadrohead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.lxm-an__quadrohead h4{margin:0;font-size:14px}
.lxm-an__grafico svg{display:block;overflow:visible}
.lxm-an__pt circle:first-child{cursor:pointer}
.lxm-an__vazio{color:var(--lx-muted);font-size:13px;margin:10px 0;text-align:center}

.lxm-an__duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.lxm-an__ranks{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}

.lxm-an__funil{display:grid;gap:12px}
.lxm-an__degrau{display:grid;gap:5px}
.lxm-an__degrauhead{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.lxm-an__degrau small{font-size:11.5px;color:var(--lx-muted)}
.lxm-an__degrau small em{font-style:normal;color:var(--lx-danger);margin-left:6px}
.lxm-an__barra{height:8px;border-radius:99px;background:var(--lx-glass-2);overflow:hidden}
.lxm-an__barra>span{display:block;height:100%;border-radius:99px;
	background:linear-gradient(90deg,var(--lx-royal),var(--lx-cyanish));transition:width .4s ease}

.lxm-an__roscafig{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.lxm-an__roscafig svg{flex:0 0 auto;color:var(--lx-text)}
.lxm-an__legenda{list-style:none;margin:0;padding:0;display:grid;gap:7px;flex:1 1 150px;min-width:0}
.lxm-an__legenda li{display:flex;align-items:center;gap:8px;font-size:12.5px}
.lxm-an__legenda i{width:9px;height:9px;border-radius:3px;flex:0 0 auto}
.lxm-an__legenda span{color:var(--lx-muted);flex:1 1 auto;min-width:0}

.lxm-an__subhead{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--lx-muted);margin:16px 0 8px}
.lxm-an__gente{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.lxm-an__gente li{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;align-items:baseline}
.lxm-an__gente small{color:var(--lx-muted);font-size:11.5px;white-space:nowrap}

.lxm-an__rank{list-style:none;margin:0;padding:0;display:grid;gap:9px;counter-reset:none}
.lxm-an__rank li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;align-items:center}
.lxm-an__pos{font-size:11.5px;color:var(--lx-muted);text-align:center}
.lxm-an__nome{min-width:0;font-size:13px;display:grid;gap:5px;overflow-wrap:anywhere}
.lxm-an__nome i{display:block;height:4px;border-radius:99px;background:var(--lx-royal);opacity:.55}
.lxm-an__val{text-align:right;font-size:14px;font-weight:600;line-height:1.15}
.lxm-an__val small{display:block;font-size:11px;font-weight:400;color:var(--lx-muted)}

.lxm-an__feed{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:340px;overflow:auto}
.lxm-an__feed li{display:grid;grid-template-columns:66px minmax(0,1fr);gap:4px 10px;padding:9px 4px;
	border-bottom:1px solid var(--lx-line);font-size:12.5px}
.lxm-an__feed li:last-child{border-bottom:0}
.lxm-an__feed li.is-novo{animation:lxm-an-entra .5s ease}
@keyframes lxm-an-entra{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.lxm-an__quando{color:var(--lx-muted);font-size:11.5px}
.lxm-an__quem{font-weight:600}
.lxm-an__oque{grid-column:2;color:var(--lx-muted);overflow-wrap:anywhere}
.lxm-an__vaziofeed{color:var(--lx-muted);font-size:13px;padding:12px 0;border:0}

.lxm-an__panorama{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.lxm-an__panorama>div{display:flex;flex-direction:column;gap:2px;padding:11px 12px;
	border:1px solid var(--lx-line);border-radius:var(--lx-r-sm);background:var(--lx-glass-2)}
.lxm-an__panorama strong{font-size:19px;letter-spacing:-.01em}
.lxm-an__panorama span{font-size:11.5px;color:var(--lx-muted)}

.lxm-an__detalhe{margin-top:16px}
.lxm-an__rolagem{overflow-x:auto;margin-top:12px}
.lxm-an__tabela{width:100%;border-collapse:collapse;font-size:12.5px;min-width:520px}
.lxm-an__tabela th,.lxm-an__tabela td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--lx-line);white-space:nowrap}
.lxm-an__tabela th{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lx-muted);font-weight:500}
.lxm-an__tabela td:first-child{white-space:normal;overflow-wrap:anywhere}

.lxm-an button[data-an-curso],.lxm-an button[data-an-aluno]{background:none;border:0;padding:0;color:inherit;
	font:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--lx-line);
	text-underline-offset:3px}
.lxm-an button[data-an-curso]:hover,.lxm-an button[data-an-aluno]:hover{text-decoration-color:var(--lx-royal)}

@media (max-width:640px){
	.lxm-an__filtros label{flex:1 1 100%;max-width:none}
	.lxm-an__cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
	.lxm-an__card strong{font-size:23px}
	.lxm-an__feed li{grid-template-columns:1fr}
	.lxm-an__oque{grid-column:1}
	.lxm-an__roscafig{justify-content:center}
}
@media (prefers-reduced-motion:reduce){
	.lxm-an__feed li.is-novo{animation:none}
	.lxm-an__barra>span{transition:none}
}

/* ==================================================================== */
/* Construtor de curso, hierarquia e conforto                          */
/* ==================================================================== */
/* Mesma lógica de sempre; o que muda é o peso visual. Módulo tem que
   parecer módulo e aula tem que parecer aula, antes as duas linhas
   tinham a mesma altura e o mesmo bloco de botões. */

.lxm-consolebuilder{display:grid;gap:16px}

/* Barra de ações: gruda no topo porque esta tela rola muito. */
.lxm-consolebuilder .lxmb-barra{position:sticky;top:8px;z-index:12;display:flex;align-items:center;justify-content:space-between;
	gap:12px;flex-wrap:wrap;padding:11px 16px;border-radius:var(--lx-r-md);
	background:var(--lx-glass-2);border:1px solid var(--lx-line);
	backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.lxm-consolebuilder .lxmb-barra__estado{display:flex;align-items:center;gap:10px;min-width:0}
.lxm-consolebuilder .lxmb-barra__acoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lxm-consolebuilder .lxmb-barra__selo{font-size:12px;color:var(--lx-muted);transition:color .2s ease}
.lxm-consolebuilder .lxmb-barra__selo.is-sujo{color:#ffb45a}
.lxm-consolebuilder .lxmb-barra__selo.is-salvando{color:var(--lx-cyanish)}
.lxm-consolebuilder .lxmb-barra__selo.is-ok{color:var(--lx-success)}
.lxm-consolebuilder .lxmb-barra__selo.is-erro{color:var(--lx-danger)}

/* Blocos numerados: o produtor vê onde está e o que falta. */
.lxm-consolebuilder .lxmb-settings{display:grid;gap:14px;background:none;border:0;padding:0}
.lxm-consolebuilder .lxmb-bloco{background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);overflow:hidden}
.lxm-consolebuilder .lxmb-bloco__head{width:100%;display:flex;align-items:center;gap:14px;padding:15px 18px;background:none;
	border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.lxmb-bloco__head:hover{background:var(--lx-glass-2)}
.lxm-consolebuilder .lxmb-bloco__num{flex:0 0 auto;font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.08em;
	color:var(--lx-muted);border:1px solid var(--lx-line);border-radius:8px;padding:5px 8px}
.lxm-consolebuilder .lxmb-bloco__txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.lxm-consolebuilder .lxmb-bloco__txt strong{font-size:14.5px}
.lxm-consolebuilder .lxmb-bloco__txt small{font-size:12px;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-bloco__seta{flex:0 0 auto;width:9px;height:9px;border-right:2px solid var(--lx-muted);
	border-bottom:2px solid var(--lx-muted);transform:rotate(45deg);transition:transform .2s ease;margin-right:4px}
.lxm-consolebuilder .lxmb-bloco__head[aria-expanded="false"] .lxmb-bloco__seta{transform:rotate(-45deg)}
.lxm-consolebuilder .lxmb-bloco__corpo{padding:0 18px 18px;border-top:1px solid var(--lx-line)}
.lxm-consolebuilder .lxmb-bloco__head[aria-expanded="false"]+.lxmb-bloco__corpo{display:none}

.lxm-consolebuilder .lxmb-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:16px}
.lxm-consolebuilder .lxmb-campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.lxm-consolebuilder .lxmb-campo--largo{grid-column:1 / -1}
.lxm-consolebuilder .lxmb-campo>span{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-campo input,.lxm-consolebuilder .lxmb-campo textarea{width:100%;padding:11px 13px;border-radius:var(--lx-r-sm);
	border:1px solid var(--lx-line);background:var(--lx-glass-2);color:var(--lx-text);font:inherit;font-size:14px;
	line-height:1.6;transition:border-color .15s ease,box-shadow .15s ease}
.lxm-consolebuilder .lxmb-campo textarea{resize:vertical;min-height:130px}
.lxmb-campo input:focus,.lxmb-campo textarea:focus{outline:0;border-color:rgba(91,140,255,.55);
	box-shadow:0 0 0 3px rgba(47,92,255,.14)}

/* Capa: área de soltar grande, com a proporção real do formato escolhido. */
.lxm-consolebuilder .lxmb-capa{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;padding-top:16px;align-items:start}
.lxm-consolebuilder .lxmb-capa__alvo{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;
	aspect-ratio:16/9;border-radius:var(--lx-r-md);cursor:pointer;
	border:1.5px dashed var(--lx-line);background:var(--lx-glass-2);transition:.18s ease}
.lxm-consolebuilder .lxmb-capa__alvo.is-portrait{aspect-ratio:2/3;max-width:280px}
.lxmb-capa__alvo:hover,.lxmb-capa__alvo.is-sobre{border-color:rgba(91,140,255,.6);background:rgba(47,92,255,.07);
	transform:translateY(-1px);box-shadow:0 18px 40px -26px rgba(6,12,32,.9)}
.lxm-consolebuilder .lxmb-capa__alvo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lxm-consolebuilder .lxmb-capa__vazio{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px;align-items:center;
	text-align:center;padding:16px;pointer-events:none}
.lxm-consolebuilder .lxmb-capa__vazio b{font-size:14px;font-weight:600}
.lxm-consolebuilder .lxmb-capa__vazio em{font-style:normal;font-size:12.5px;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-capa__alvo.tem-capa .lxmb-capa__vazio{opacity:0;transition:opacity .18s ease}
.lxmb-capa__alvo.tem-capa:hover .lxmb-capa__vazio{opacity:1;background:rgba(4,7,15,.62);border-radius:var(--lx-r-md);
	inset:0;position:absolute;justify-content:center}
.lxm-consolebuilder .lxmb-capa__lado{display:grid;gap:14px}
.lxm-consolebuilder .lxmb-capa__acoes{display:flex;gap:8px;flex-wrap:wrap}
.lxm-consolebuilder .lxmb-ratio{display:grid;gap:8px}
.lxm-consolebuilder .lxmb-ratio__lab{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-ratio label{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:var(--lx-r-sm);
	border:1px solid var(--lx-line);cursor:pointer;font-size:13px;transition:.15s ease}
.lxmb-ratio label:hover{border-color:rgba(91,140,255,.4)}
.lxmb-ratio label:has(input:checked){border-color:rgba(91,140,255,.6);background:rgba(47,92,255,.09)}
.lxm-consolebuilder .lxmb-ratio em{font-style:normal;font-weight:600}
.lxm-consolebuilder .lxmb-ratio i{font-style:normal;color:var(--lx-muted);font-size:12px;margin-left:auto}
.lxm-consolebuilder .lxmb-hint{font-size:12px;color:var(--lx-muted);margin:0;line-height:1.6}
.lxm-consolebuilder .lxmb-settings__actions{display:flex;justify-content:flex-end}

/* Barras de criação: o "+" à esquerda diz que ali se acrescenta. */
.lxm-consolebuilder .lxmb-newbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:11px 14px;
	border:1px dashed var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);transition:.15s ease}
.lxmb-newbar:focus-within{border-color:rgba(91,140,255,.5);background:var(--lx-glass-2)}
.lxm-consolebuilder .lxmb-newbar__mais{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border-radius:7px;
	background:var(--lx-glass-2);color:var(--lx-muted);font-size:15px;line-height:1}
.lxm-consolebuilder .lxmb-newbar input[type=text],.lxm-consolebuilder .lxmb-newbar input[type=url]{flex:1 1 200px;min-width:0;max-width:none;
	padding:9px 12px;border-radius:var(--lx-r-sm);border:1px solid var(--lx-line);
	background:var(--lx-glass-2);color:var(--lx-text);font:inherit;font-size:13.5px}
.lxm-consolebuilder .lxmb-newbar--modulo{margin:4px 0 2px}
.lxm-consolebuilder .lxmb-newbar--inner{margin:8px 0 0;background:none;border-style:dashed;opacity:.85}
.lxmb-newbar--inner:focus-within{opacity:1}

/* Módulo: cartão com peso. Aula: linha dentro dele. */
.lxm-consolebuilder .lxmb-module{background:var(--lx-glass);border:1px solid var(--lx-line);border-radius:var(--lx-r-md);
	margin:12px 0;overflow:hidden;transition:border-color .15s ease}
.lxmb-module:hover{border-color:rgba(91,140,255,.26)}
.lxm-consolebuilder .lxmb-module__head{display:flex;align-items:center;gap:12px;padding:14px 16px;
	background:var(--lx-glass-2);border-bottom:1px solid var(--lx-line);flex-wrap:wrap}
.lxm-consolebuilder .lxmb-module__num{flex:0 0 auto;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-module__num b{display:block;font-size:17px;letter-spacing:0;color:var(--lx-text);font-variant-numeric:tabular-nums}
.lxm-consolebuilder .lxmb-module__nome{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:3px}
.lxm-consolebuilder .lxmb-module__meta{font-size:11.5px;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-module__head .lxmb-title{font-size:15px;font-weight:600}

.lxm-consolebuilder .lxmb-lessons{padding:6px 16px 14px;display:grid;gap:2px}
.lxm-consolebuilder .lxmb-lesson{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:var(--lx-r-sm);
	/* Indentação: a aula nasce visualmente dentro do módulo. */
	margin-left:14px;border-left:2px solid var(--lx-line);transition:background .13s ease,border-color .13s ease}
.lxmb-lesson:hover{background:var(--lx-glass-2);border-left-color:rgba(91,140,255,.5)}
.lxm-consolebuilder .lxmb-lesson.is-rascunho{opacity:.72}
.lxm-consolebuilder .lxmb-lesson__num{flex:0 0 auto;font-size:11.5px;color:var(--lx-muted);font-variant-numeric:tabular-nums;min-width:26px}
.lxm-consolebuilder .lxmb-lesson__corpo{flex:1 1 180px;min-width:0;display:flex;flex-direction:column;gap:1px}
.lxm-consolebuilder .lxmb-lesson__meta{font-size:11px;color:var(--lx-muted)}
.lxm-consolebuilder .lxmb-lesson__meta b{font-weight:600;color:#ffb45a}
.lxm-consolebuilder .lxmb-lesson .lxmb-title{font-size:13.5px}

/* O estilo antigo dava flex:1 1 200px ao título. Dentro de uma coluna, esse
   200px vira ALTURA, era o que estufava cada linha para 237px. */
.lxm-consolebuilder .lxmb-title{flex:0 0 auto;width:100%;background:none;border:1px solid transparent;border-radius:7px;padding:4px 7px;
	color:var(--lx-text);font:inherit;transition:.13s ease}
.lxmb-title:hover{border-color:var(--lx-line)}
.lxmb-title:focus{outline:0;border-color:rgba(91,140,255,.55);background:var(--lx-glass-2)}

/* Pegador de arrastar: só aparece quando há mouse. */
.lxm-consolebuilder .lxmb-pega{flex:0 0 auto;width:14px;height:18px;cursor:grab;opacity:0;transition:opacity .13s ease;
	background-image:radial-gradient(currentColor 1px,transparent 1px);background-size:5px 5px;
	background-position:0 2px;color:var(--lx-muted)}
.lxmb-module:hover>.lxmb-module__head>.lxmb-pega,.lxmb-lesson:hover>.lxmb-pega{opacity:.65}
.lxmb-pega:active{cursor:grabbing}
.lxm-consolebuilder .is-arrastando{opacity:.4;outline:1.5px dashed rgba(91,140,255,.6);outline-offset:2px}
@media (pointer:coarse){.lxmb-pega{display:none}}

.lxm-consolebuilder .lxmb-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.lxm-consolebuilder .lxmb-setas{display:inline-flex;border:1px solid var(--lx-line);border-radius:8px;overflow:hidden}
.lxm-consolebuilder .lxmb-icone{display:grid;place-items:center;min-width:28px;height:28px;padding:0 7px;border:0;background:none;
	color:var(--lx-muted);font:inherit;font-size:13px;line-height:1;cursor:pointer;text-decoration:none;
	border-radius:7px;transition:.13s ease}
.lxm-consolebuilder .lxmb-setas .lxmb-icone{border-radius:0}
.lxm-consolebuilder .lxmb-setas .lxmb-icone+.lxmb-icone{border-left:1px solid var(--lx-line)}
.lxmb-icone:hover{background:var(--lx-glass-2);color:var(--lx-text)}
.lxmb-icone.lxmb-danger:hover{background:rgba(255,107,107,.14);color:var(--lx-danger)}

.lxm-consolebuilder .lxmb-switch{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:99px;
	border:1px solid var(--lx-line);font-size:11.5px;cursor:pointer;white-space:nowrap;transition:.13s ease}
.lxmb-switch:has(input:checked){border-color:rgba(61,220,151,.4);background:rgba(61,220,151,.09);color:#c7ffe9}

@media (max-width:900px){
	.lxm-consolebuilder .lxmb-campos{grid-template-columns:1fr}
	.lxm-consolebuilder .lxmb-capa{grid-template-columns:1fr}
	.lxm-consolebuilder .lxmb-capa__alvo.is-portrait{max-width:none}
}
@media (max-width:640px){
	.lxm-consolebuilder .lxmb-barra{position:static;padding:12px 14px}
	.lxm-consolebuilder .lxmb-barra__acoes{width:100%}
	.lxm-consolebuilder .lxmb-barra__acoes .lxm-btn{flex:1 1 auto;justify-content:center}
	.lxm-consolebuilder .lxmb-module__head{padding:12px 13px;gap:9px}
	.lxm-consolebuilder .lxmb-lessons{padding:6px 11px 12px}
	.lxm-consolebuilder .lxmb-lesson{margin-left:0;flex-wrap:wrap;padding:11px 10px}
	.lxm-consolebuilder .lxmb-actions{margin-left:0;width:100%}
	.lxm-consolebuilder .lxmb-newbar input[type=text],.lxm-consolebuilder .lxmb-newbar input[type=url]{flex:1 1 100%}
	.lxm-consolebuilder .lxmb-newbar .lxm-btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
	.lxm-consolebuilder .lxmb-capa__alvo,.lxm-consolebuilder .lxmb-bloco__seta,.lxm-consolebuilder .lxmb-lesson,.lxm-consolebuilder .lxmb-title{transition:none}
	.lxmb-capa__alvo:hover{transform:none}
}

/* ==================================================================== */
/* Aula, palco do vídeo, modo cinema, materiais e salvos               */
/* ==================================================================== */

/* O palco dá profundidade AO REDOR do vídeo. Nada é desenhado por cima:
   quem manda no quadro continua sendo o player. */
.lxm-palco{position:relative;margin:6px 0 4px}
.lxm-palco__quadro{position:relative;border-radius:var(--lx-r-lg);overflow:hidden;
	border:1px solid var(--lx-line);background:#04070f;
	box-shadow:0 40px 90px -50px rgba(2,6,20,.95),0 0 0 1px rgba(91,140,255,.06);
	transition:box-shadow .3s ease,transform .3s ease}
.lxm-palco__quadro:hover{box-shadow:0 46px 100px -48px rgba(2,6,20,1),0 0 0 1px rgba(91,140,255,.16)}
.lxm-palco__quadro .lxm-player{margin:0;border:0;border-radius:0}
.lxm-palco__quadro img{display:block;width:100%;height:auto}

/* Fica ABAIXO do quadro, nunca sobre a imagem: o vídeo continua sendo
   a única coisa dentro da moldura. */
.lxm-palco{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.lxm-palco__quadro{width:100%}
.lxm-palco__cinema{display:inline-flex;align-items:center;gap:7px;
	padding:7px 13px;border-radius:99px;font:inherit;font-size:12px;cursor:pointer;
	border:1px solid var(--lx-line);background:var(--lx-glass-2);color:var(--lx-muted);
	backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:.18s ease}
.lxm-palco__cinema:hover{color:var(--lx-text);border-color:rgba(91,140,255,.45);transform:translateY(-1px)}
.lxm-palco__cinema .lxm-icon{width:15px;height:15px}

/* Modo cinema: o resto recua, o vídeo fica. Ninguém desaparece, dá para
   sair pelo botão, pelo ESC, ou simplesmente rolando a página. */
body.lxm-emcinema .lxm-sidebar,
body.lxm-emcinema .lxm-topbar,
body.lxm-emcinema .lxm-lessonaside,
body.lxm-emcinema .lxm-breadcrumb,
body.lxm-emcinema .lxm-lessonbody,
body.lxm-emcinema .lxm-lessonhead{opacity:.22;filter:saturate(.55);transition:opacity .28s ease,filter .28s ease}
body.lxm-emcinema .lxm-sidebar:hover,
body.lxm-emcinema .lxm-topbar:hover,
body.lxm-emcinema .lxm-lessonaside:hover{opacity:.85}
body.lxm-emcinema .lxm-lessongrid{grid-template-columns:minmax(0,1fr)}
body.lxm-emcinema .lxm-palco__quadro{box-shadow:0 50px 120px -40px rgba(0,0,0,1),0 0 0 1px rgba(91,140,255,.22),
	0 0 70px -20px rgba(47,92,255,.30)}
body.lxm-emcinema .lxm-palco__cinema{color:var(--lx-text);border-color:rgba(91,140,255,.5)}
body.lxm-emcinema .lxm-content{padding-top:18px}
@media (prefers-reduced-motion:reduce){
	body.lxm-emcinema .lxm-sidebar,body.lxm-emcinema .lxm-topbar,
	body.lxm-emcinema .lxm-lessonaside,body.lxm-emcinema .lxm-breadcrumb,
	body.lxm-emcinema .lxm-lessonbody,body.lxm-emcinema .lxm-lessonhead{transition:none}
	.lxm-palco__quadro,.lxm-palco__cinema{transition:none}
}

/* Salvar: marcador cheio quando salvo, contornado quando não. */
.lxm-guardar{gap:7px}
.lxm-guardar .lxm-icon{width:16px;height:16px;fill:none;transition:fill .18s ease}
.lxm-guardar.is-salva{border-color:rgba(91,140,255,.5);color:var(--lx-text)}
.lxm-guardar.is-salva .lxm-icon{fill:currentColor}

/* Materiais: cada arquivo vira um cartão com tipo, peso e ação. */
.lxm-materials{list-style:none;margin:0;padding:0;display:grid;
	grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:10px}
.lxm-materials li{margin:0}
.lxm-materials a{display:flex;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;
	border:1px solid var(--lx-line);border-radius:var(--lx-r-md);background:var(--lx-glass);
	color:inherit;transition:.15s ease}
.lxm-materials a:hover{border-color:rgba(91,140,255,.4);background:var(--lx-glass-2);transform:translateY(-1px)}
.lxm-material__tipo{flex:0 0 auto;display:grid;place-items:center;width:40px;height:46px;border-radius:8px;
	font-size:10px;font-weight:700;letter-spacing:.04em;
	background:var(--lx-glass-2);border:1px solid var(--lx-line);color:var(--lx-cyanish)}
.lxm-material__txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.lxm-material__txt strong{font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
.lxm-material__txt small{font-size:11.5px;color:var(--lx-muted)}
.lxm-material__acao{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--lx-muted)}
.lxm-material__acao em{font-style:normal}
.lxm-material__acao .lxm-icon{width:15px;height:15px}

/* Aulas salvas */
.lxm-salvos__grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:14px}
.lxm-salvo{display:flex;flex-direction:column;gap:8px;padding:16px 17px;border-radius:var(--lx-r-md);
	border:1px solid var(--lx-line);background:var(--lx-glass);transition:.18s ease}
.lxm-salvo:hover{border-color:rgba(91,140,255,.32);transform:translateY(-2px)}
.lxm-salvo.is-travado{opacity:.62}
.lxm-salvo.is-saindo{opacity:0;transform:scale(.97)}
.lxm-salvo__topo{display:flex;align-items:center;gap:8px;justify-content:space-between;min-width:0}
.lxm-salvo__curso{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--lx-cyanish);
	overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lxm-salvo h4{margin:0;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.lxm-salvo__meta{margin:0;font-size:11.5px;color:var(--lx-muted)}
.lxm-salvo__acoes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.lxm-salvo__motivo{font-size:11.5px;color:#ffb45a;flex:1 1 100%}

.lxm-salvos__vazio{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;
	padding:52px 24px;border:1px dashed var(--lx-line);border-radius:var(--lx-r-lg);background:var(--lx-glass)}
.lxm-salvos__vazio .lxm-icon{width:30px;height:30px;color:var(--lx-muted);opacity:.6}
.lxm-salvos__vazio strong{font-size:16px}
.lxm-salvos__vazio span{font-size:13px;color:var(--lx-muted);max-width:36ch}
.lxm-salvos__vazio .lxm-btn{margin-top:8px}

@media (max-width:900px){
	/* No celular a ordem é outra: vídeo, ações, e a lista do curso por último. */
	.lxm-lessongrid{display:flex;flex-direction:column;align-items:stretch}
	.lxm-lessonhead{order:1}
	.lxm-lessonmain{order:2}
	.lxm-lessonaside{order:3}
	.lxm-palco{align-items:stretch}
	.lxm-palco__cinema{width:100%;justify-content:center}
}
@media (max-width:560px){
	.lxm-materials{grid-template-columns:1fr}
	.lxm-salvos__grade{grid-template-columns:1fr}
	.lxm-lessonactions .lxm-btn{flex:1 1 auto;justify-content:center}
}

/* ==================================================================== */
/* Curso do aluno, hero, leitura e módulos                             */
/* ==================================================================== */

/* Hero: a capa entra como composição, não como plano de fundo decorativo.
   O degradê existe para o texto continuar legível sobre qualquer imagem. */
.lxm-coursehero{position:relative;overflow:hidden;border-radius:var(--lx-r-lg);
	border:1px solid var(--lx-line);background:var(--lx-glass);isolation:isolate}
.lxm-coursehero.has-cover{min-height:290px;display:flex;align-items:flex-end}
.lxm-coursehero__cover{position:absolute;inset:0;background-size:cover;background-position:center;
	z-index:-2;transform:scale(1.03);transition:transform .6s ease}
.lxm-coursehero.has-cover:hover .lxm-coursehero__cover{transform:scale(1.06)}
.lxm-coursehero.has-cover::after{content:"";position:absolute;inset:0;z-index:-1;
	background:linear-gradient(180deg,rgba(4,7,15,.30) 0%,rgba(4,7,15,.72) 52%,rgba(4,7,15,.95) 100%)}
.lxm-coursehero__body{position:relative;padding:34px 32px 30px;display:flex;flex-direction:column;
	gap:11px;width:100%;max-width:760px}
.lxm-coursehero__body h2{margin:0;font-size:clamp(23px,3.1vw,34px);line-height:1.15;letter-spacing:-.02em}
.lxm-coursehero__sub{margin:0;font-size:15px;line-height:1.55;color:var(--lx-muted);max-width:60ch}
.lxm-coursehero .lxm-metalist{margin:2px 0 4px}
.lxm-coursehero .lxm-progress--wide{max-width:420px}
.lxm-coursehero__meta{font-size:12.5px;color:var(--lx-muted)}

/* Leitura: linha curta, respiro entre parágrafos. Texto correndo a tela
   inteira cansa antes do terceiro parágrafo. */
.lxm-prose{max-width:72ch;font-size:15px;line-height:1.75}
.lxm-prose p{margin:0 0 1.05em}
.lxm-prose p:last-child{margin-bottom:0}
.lxm-prose strong{color:var(--lx-text)}

/* Módulo do aluno */
.lxm-modules{display:grid;gap:12px}
.lxm-modules .lxm-module{background:var(--lx-glass);border:1px solid var(--lx-line);
	border-radius:var(--lx-r-md);overflow:hidden;transition:border-color .15s ease}
.lxm-modules .lxm-module[open]{border-color:rgba(91,140,255,.28)}
.lxm-modules .lxm-module.is-locked{opacity:.66}
.lxm-modules .lxm-module__head{display:flex;align-items:center;gap:14px;padding:16px 18px;cursor:pointer;
	list-style:none;transition:background .15s ease}
.lxm-modules .lxm-module__head::-webkit-details-marker{display:none}
.lxm-modules .lxm-module__head:hover{background:var(--lx-glass-2)}
.lxm-modules .lxm-module__index{flex:0 0 auto;font-size:19px;font-weight:700;letter-spacing:-.02em;
	font-variant-numeric:tabular-nums;color:var(--lx-muted);min-width:30px}
.lxm-modules .lxm-module[open] .lxm-module__index{color:var(--lx-cyanish)}
.lxm-modules .lxm-module__title{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.lxm-modules .lxm-module__title strong{font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.lxm-modules .lxm-module__title small{font-size:11.5px;color:var(--lx-muted)}
.lxm-module__prog{flex:0 0 auto;display:flex;align-items:center;gap:9px;min-width:118px}
.lxm-module__prog .lxm-progress{flex:1 1 auto;min-width:60px}
.lxm-module__prog b{font-size:12px;font-variant-numeric:tabular-nums;color:var(--lx-muted);min-width:34px;text-align:right}
.lxm-module__prog.is-cheio b{color:var(--lx-success)}
.lxm-modules .lxm-module__caret{flex:0 0 auto;width:9px;height:9px;border-right:2px solid var(--lx-muted);
	border-bottom:2px solid var(--lx-muted);transform:rotate(45deg);transition:transform .22s ease}
.lxm-modules .lxm-module[open] .lxm-module__caret{transform:rotate(-135deg)}
.lxm-modules .lxm-module__body{padding:2px 18px 16px;border-top:1px solid var(--lx-line)}
.lxm-module__desc{margin:14px 0 10px;font-size:13.5px;line-height:1.65;color:var(--lx-muted);max-width:70ch}

/* Aula na lista: o estado se lê pelo indicador, não só pelo texto. */
.lxm-modules .lxm-lessons{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.lxm-modules .lxm-lesson{margin:0;border:0}
.lxm-lesson__link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--lx-r-sm);
	text-decoration:none;color:inherit;transition:background .13s ease,transform .13s ease}
a.lxm-lesson__link:hover{background:var(--lx-glass-2);transform:translateX(2px)}
.lxm-lesson__state{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:99px;
	border:1px solid var(--lx-line);color:var(--lx-muted);transition:.15s ease}
.lxm-lesson__state .lxm-icon{width:13px;height:13px}
.lxm-lesson.is-done .lxm-lesson__state{border-color:rgba(61,220,151,.45);background:rgba(61,220,151,.13);color:var(--lx-success)}
.lxm-lesson.is-open .lxm-lesson__state{border-color:rgba(91,140,255,.4);color:var(--lx-cyanish)}
.lxm-lesson.is-locked{opacity:.55}
.lxm-lesson.is-locked .lxm-lesson__link{cursor:default}
.lxm-lesson__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.lxm-lesson__title{font-size:13.5px;line-height:1.4;overflow-wrap:anywhere}
.lxm-lesson.is-done .lxm-lesson__title{color:var(--lx-muted)}
.lxm-lesson__meta{font-size:11px;color:var(--lx-muted)}

@media (max-width:640px){
	.lxm-coursehero.has-cover{min-height:210px}
	.lxm-coursehero__body{padding:22px 18px 20px}
	.lxm-modules .lxm-module__head{padding:14px 14px;gap:11px;flex-wrap:wrap}
	.lxm-module__prog{min-width:0;width:100%;order:3}
	.lxm-modules .lxm-module__body{padding:2px 12px 14px}
}
@media (prefers-reduced-motion:reduce){
	.lxm-coursehero__cover,.lxm-modules .lxm-module__caret,.lxm-lesson__link{transition:none}
	.lxm-coursehero.has-cover:hover .lxm-coursehero__cover{transform:scale(1.03)}
}

/* ==================================================================== */
/* Ebooks e materiais                                                    */
/* ==================================================================== */

/* Cabeçalho de seção dentro de formulário: separa sem criar mais telas. */
.lxm-formsec{display:flex;flex-direction:column;gap:2px;margin:22px 0 4px;padding-top:16px;
	border-top:1px solid var(--lx-line)}
.lxm-formsec:first-of-type{margin-top:4px;padding-top:0;border-top:0}
.lxm-formsec b{font-size:13px;font-weight:600}
.lxm-formsec span{font-size:11.5px;color:var(--lx-muted)}

/* Biblioteca do aluno: a capa manda, o resto acompanha. */
.lxm-biblio{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.lxm-biblio__item{display:flex;flex-direction:column;gap:11px;padding:14px;border-radius:var(--lx-r-md);
	border:1px solid var(--lx-line);background:var(--lx-glass);transition:.2s ease}
.lxm-biblio__item:hover{border-color:rgba(91,140,255,.34);transform:translateY(-3px);
	box-shadow:0 26px 54px -34px rgba(2,6,20,.95)}
.lxm-biblio__capa{position:relative;aspect-ratio:2/3;border-radius:var(--lx-r-sm);overflow:hidden;
	background:var(--lx-glass-2);border:1px solid var(--lx-line);display:grid;place-items:center}
.lxm-biblio__capa img{width:100%;height:100%;object-fit:cover;display:block}
.lxm-biblio__capa .lxm-icon{width:26px;height:26px;color:var(--lx-muted);opacity:.5}
.lxm-biblio__txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.lxm-biblio__txt h4,.lxm-biblio__txt strong{margin:0;font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.lxm-biblio__acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.lxm-biblio__acoes .lxm-btn{flex:1 1 auto;justify-content:center}

@media (max-width:560px){
	.lxm-biblio{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
	.lxm-biblio__acoes .lxm-btn{flex:1 1 100%}
}

/* ==================================================================== */
/* Refinamento premium, tokens, profundidade e foco                    */
/* ==================================================================== */

/* Tokens de texto e superfície por tema.
   Nada de invert(): cada tema declara o que quer dizer com "primário",
   "secundário" e "rótulo". As variáveis antigas continuam valendo, estas
   são a camada semântica que faltava. */
:root{
	--lx-text-1:#f2f6ff;   /* títulos: branco suave, nunca puro          */
	--lx-text-2:#c6d2ea;   /* texto corrido: cinza muito claro           */
	--lx-text-3:#94a3c2;   /* secundário: cinza azulado                  */
	--lx-text-4:#7d8bab;   /* rótulos e legendas, o piso de contraste   */
	--lx-surface:rgba(255,255,255,.045);
	--lx-surface-2:rgba(255,255,255,.075);
	--lx-surface-3:rgba(255,255,255,.10);
	--lx-borda:rgba(255,255,255,.10);
	--lx-borda-forte:rgba(255,255,255,.17);
	--lx-azul:#5b8cff;
	--lx-azul-fundo:rgba(47,92,255,.14);
	/* Ritmo de espaçamento: hierarquia vem daqui, não de um gap único. */
	--lx-e1:8px; --lx-e2:14px; --lx-e3:22px; --lx-e4:34px; --lx-e5:52px;
}
:root[data-theme="light"]{
	--lx-text-1:#0d1526;
	--lx-text-2:#26324c;
	--lx-text-3:#4a5878;
	--lx-text-4:#5f6d8c;
	--lx-surface:rgba(17,26,51,.030);
	--lx-surface-2:rgba(17,26,51,.055);
	--lx-surface-3:rgba(17,26,51,.085);
	--lx-borda:rgba(17,26,51,.13);
	--lx-borda-forte:rgba(17,26,51,.22);
	--lx-azul:#2246d8;
	--lx-azul-fundo:rgba(47,92,255,.10);
}

/* O texto secundário do sistema inteiro passa a usar o token, antes havia
   pontos em que --lx-muted ficava escuro demais para ler no claro. */
.lxm-content .lxm-muted,
.lxm-content small,
.lxm-content .lxm-small{color:var(--lx-text-3)}
.lxm-content h1,.lxm-content h2,.lxm-content h3,.lxm-content h4{color:var(--lx-text-1)}

/* ══════════════════════════════════════════════════════════════════
   FUNDO EM TRES PLANOS

   Camada 1, AMBIENTE. Mora no background do <body>: gradientes bem
   maiores que a tela, imoveis, com queda longa. Ninguem consegue ver
   onde um comeca e o outro termina porque todos se sobrepoem.
   Camada 2, PROFUNDIDADE. Tres luzes muito difusas e o grao.
   Camada 3, MOVIMENTO. Poucos brilhos descendo devagar.

   Sem canvas, sem WebGL, sem biblioteca, sem JavaScript. Dez nos no
   total, e so transform e opacity sao animados.
   ══════════════════════════════════════════════════════════════════ */

/* --- Tokens do fundo (item 22) --------------------------------------
   Mexer no clima do ambiente inteiro e mexer nestes cinco valores. */
:root{
	--lxm-bg-base:#03081a;      /* azul-marinho quase preto             */
	--lxm-bg-depth:#061126;     /* azul petroleo profundo               */
	--lxm-bg-light:#0a1b3d;     /* royal discreto onde a luz encosta    */
	--lxm-glow-opacity:.44;     /* forca das luzes de ambiente          */
	--lxm-particle-opacity:.18; /* teto dos brilhos que caem            */
	--lxm-grain-opacity:.030;   /* grao: tira o aspecto liso demais     */
}

/* --- Camada 1: ambiente ---------------------------------------------
   A primeira camada da lista e a vinheta e pinta por cima de todas as
   outras: centro um tico mais claro, extremidades mais fundas. E ela
   que faz o hero, os cards e o player parecerem alguns milimetros
   acima do fundo, sem precisar aumentar sombra nenhuma (item 16). */
body.lxm{
	background-color:var(--lxm-bg-base);
	background-image:
		radial-gradient(126% 106% at 50% 42%, transparent 28%, rgba(1,4,12,.34) 68%, rgba(1,3,9,.64) 100%),
		radial-gradient(156% 126% at 10% -34%, rgba(18,44,98,.52) 0%, rgba(11,27,62,.24) 34%, transparent 68%),
		radial-gradient(146% 122% at 98% 8%, rgba(9,38,62,.42) 0%, rgba(7,22,44,.19) 38%, transparent 70%),
		radial-gradient(124% 100% at 44% 126%, rgba(12,30,72,.26) 0%, transparent 66%),
		linear-gradient(178deg, var(--lxm-bg-depth) 0%, var(--lxm-bg-base) 44%, #020610 100%);
	background-repeat:no-repeat;
	background-attachment:fixed;
	/* Item 21: a troca de tema nao pode dar um estalo. */
	transition:background-color .32s ease;
}

/* --- Camada 2 e 3: o palco -------------------------------------------
   Fica atras de tudo (z-index negativo) e nao recebe clique. */
.lxm-luz{
	position:fixed;
	inset:0;
	z-index:-1;
	overflow:hidden;
	pointer-events:none;
	contain:strict;
	opacity:1;
	transition:opacity .34s ease;
}

/* --- Camada 2: luz de ambiente ---------------------------------------
   Nao sao holofotes nem bolas: cada uma e maior que a tela e nasce
   fora dela, entao o olho ve so a beirada da luz, nunca o circulo.
   Sem filter:blur, a propria queda do radial-gradient ja borra, e
   sai de graca para a GPU (itens 4 e 24). */
.lxm-luz__feixe{
	position:absolute;
	border-radius:50%;
	opacity:var(--lxm-glow-opacity);
	animation:lxm-respira 112s ease-in-out infinite;
	will-change:opacity;
}

/* superior esquerda, a mais presente das tres */
.lxm-luz__feixe:nth-of-type(1){
	left:-36%; top:-54%; width:104vw; height:100vh;
	background:radial-gradient(closest-side, rgba(44,84,186,.30) 0%, rgba(28,58,138,.15) 44%, transparent 78%);
	animation-duration:104s;
}
/* centro/direita, mais profunda e mais petroleo */
.lxm-luz__feixe:nth-of-type(2){
	left:56%; top:-42%; width:112vw; height:122vh;
	background:radial-gradient(closest-side, rgba(16,66,104,.26) 0%, rgba(12,42,80,.12) 46%, transparent 76%);
	animation-duration:134s; animation-delay:-41s;
}
/* inferior, quase invisivel */
.lxm-luz__feixe:nth-of-type(3){
	left:-8%; top:64%; width:98vw; height:92vh;
	background:radial-gradient(closest-side, rgba(24,54,126,.17) 0%, transparent 72%);
	animation-duration:158s; animation-delay:-73s;
}

/* Respiro longuissimo: nao da para perceber olhando, so impede que a
   luz pareca um adesivo colado na tela. */
@keyframes lxm-respira{
	0%,100%{ opacity:calc(var(--lxm-glow-opacity) * .78) }
	50%    { opacity:var(--lxm-glow-opacity) }
}

/* --- Camada 2b: microtextura (item 13) -------------------------------
   Ruido SVG gerado pelo proprio navegador: nenhum arquivo de imagem
   para baixar. Duas escalas diferentes (170px e 290px) porque um
   mosaico so, em 1920, deixa o olho achar a repeticao (item 30). */
.lxm-luz__poeira{
	position:absolute;
	inset:0;
	background-repeat:repeat;
	animation:none;
}
.lxm-luz__poeira:nth-of-type(4){
	background-image:url("data:image/svg+xml,%3Csvg xmlns%3D'http%3A//www.w3.org/2000/svg' width%3D'170' height%3D'170'%3E%3Cfilter id%3D'lxg'%3E%3CfeTurbulence type%3D'fractalNoise' baseFrequency%3D'.82' numOctaves%3D'3' stitchTiles%3D'stitch'/%3E%3CfeColorMatrix type%3D'saturate' values%3D'0'/%3E%3C/filter%3E%3Crect width%3D'170' height%3D'170' filter%3D'url(%23lxg)'/%3E%3C/svg%3E");
	background-size:170px 170px;
	opacity:var(--lxm-grain-opacity);
}
.lxm-luz__poeira:nth-of-type(5){
	background-image:url("data:image/svg+xml,%3Csvg xmlns%3D'http%3A//www.w3.org/2000/svg' width%3D'290' height%3D'290'%3E%3Cfilter id%3D'lxg2'%3E%3CfeTurbulence type%3D'fractalNoise' baseFrequency%3D'.55' numOctaves%3D'3' stitchTiles%3D'stitch'/%3E%3CfeColorMatrix type%3D'saturate' values%3D'0'/%3E%3C/filter%3E%3Crect width%3D'290' height%3D'290' filter%3D'url(%23lxg2)'/%3E%3C/svg%3E");
	background-size:290px 290px;
	opacity:calc(var(--lxm-grain-opacity) * .6);
}

/* --- Camada 3: brilhos que caem (itens 5 a 11) -----------------------
   Cinco pontos na tela inteira, nao chuva. Cada um tem sua propria
   opacidade, escala, deriva lateral e duracao, numeros primos entre
   si de proposito, para o conjunto nunca repetir o mesmo desenho.
   Sem box-shadow: um halo em volta de um ponto de 2px e exatamente o
   que faz parecer neon (item 28). */
.lxm-luz__faisca{
	position:absolute;
	top:-6%;
	width:2px; height:2px;
	border-radius:50%;
	background:rgba(152,182,255,.92);
	opacity:0;
	animation:lxm-faisca 34s linear infinite;
	will-change:transform,opacity;
}
.lxm-luz__faisca::after{ content:none }

/* Rastro em apenas dois dos cinco: 14px, 1px de largura, transparente.
   Meteoro nao, so o suficiente para dar direcao ao ponto (item 11). */
.lxm-luz__faisca:nth-of-type(7)::after,
.lxm-luz__faisca:nth-of-type(10)::after{
	content:"";
	position:absolute; left:50%; bottom:2px;
	transform:translateX(-50%);
	width:1px; height:14px;
	background:linear-gradient(180deg, transparent, rgba(152,182,255,.30));
	filter:blur(.5px);
}

/* Posicoes puxadas para as laterais: o miolo da tela e onde moram
   titulo, paragrafo, input e tabela, e ali o fundo fica quieto
   (item 15). */
.lxm-luz__faisca:nth-of-type(6){  left:8%;  --lxm-f-op:.20; --lxm-f-deriva:15px;  --lxm-f-escala:.6;  animation-duration:34s; animation-delay:-6s  }
.lxm-luz__faisca:nth-of-type(7){  left:26%; --lxm-f-op:.13; --lxm-f-deriva:-11px; --lxm-f-escala:1;   animation-duration:41s; animation-delay:-23s }
.lxm-luz__faisca:nth-of-type(8){  left:71%; --lxm-f-op:.09; --lxm-f-deriva:9px;   --lxm-f-escala:.6;  animation-duration:29s; animation-delay:-14s }
.lxm-luz__faisca:nth-of-type(9){  left:88%; --lxm-f-op:.25; --lxm-f-deriva:-17px; --lxm-f-escala:.75; animation-duration:37s; animation-delay:-31s }
.lxm-luz__faisca:nth-of-type(10){ left:52%; --lxm-f-op:.10; --lxm-f-deriva:13px;  --lxm-f-escala:1.2; animation-duration:47s; animation-delay:-9s  }

/* A queda nao e reta: a deriva lateral e o que da profundidade
   (item 10). Aparece e some no meio do caminho, entao nunca se ve um
   ponto nascendo nem morrendo. */
@keyframes lxm-faisca{
	0%   { transform:translate3d(0,0,0) scale(var(--lxm-f-escala,1)); opacity:0 }
	14%  { opacity:calc(var(--lxm-f-op,.15) * var(--lxm-particle-opacity) / .18) }
	76%  { opacity:calc(var(--lxm-f-op,.15) * var(--lxm-particle-opacity) / .18) }
	100% { transform:translate3d(var(--lxm-f-deriva,0),112vh,0) scale(var(--lxm-f-escala,1)); opacity:0 }
}

/* --- Por rota: o mesmo ambiente, com volumes diferentes --------------
   Item 17 pede que Inicio, Curso, Aula, Salvos e Perfil pareçam o
   mesmo lugar. Entao nada de fundo proprio por rota: o que muda e so
   o volume dos tokens. O gancho e :has(), sem classe nova no HTML. */

/* Inicio: um tico mais de profundidade perto do hero (item 18). */
body.lxm:has(.lxm-hero):not(:has(.lxm-lessongrid)){
	--lxm-glow-opacity:.50;
}

/* Aula: o fundo cala a boca, o video manda (item 19). */
body.lxm:has(.lxm-lessongrid){
	--lxm-glow-opacity:.28;
	--lxm-particle-opacity:.10;
}

/* Modo cinema: menos ainda, e os brilhos param de vez. */
/* A regra da aula usa :has(), que vale (0,2,1). Escrita como
   "body.lxm-emcinema" esta aqui daria (0,1,1) e perderia calada, o
   cinema ficaria com o mesmo volume da aula normal. Por isso as duas
   classes do body entram juntas. */
body.lxm.lxm-emcinema{
	--lxm-glow-opacity:.12;
	--lxm-particle-opacity:.04;
}
/* Pausar a animacao congela o ponto no meio do caminho, e o valor
   animado ganha do opacity declarado, o brilho ficava parado e
   visivel. Desligar a animacao devolve o opacity:0 da regra base. */
body.lxm.lxm-emcinema .lxm-luz__faisca{ animation:none; opacity:0 }

/* --- Modo claro (item 20) --------------------------------------------
   Nada de inverter o escuro. O workspace claro ganha a versao propria:
   branco azulado, cinza muito claro e uma profundidade azul de leve.
   Sem brilho nenhum caindo, no branco eles viram sujeira. */
:root[data-theme="light"] body.lxm{
	background-color:#eef2fa;
	background-image:
		radial-gradient(130% 108% at 50% 42%, transparent 48%, rgba(22,44,96,.045) 100%),
		radial-gradient(140% 116% at 14% -20%, rgba(58,104,205,.10) 0%, transparent 66%),
		radial-gradient(130% 108% at 92% 20%, rgba(40,92,150,.065) 0%, transparent 70%),
		linear-gradient(180deg,#f7f9fd 0%,#eff3fb 54%,#e8edf7 100%);
}
:root[data-theme="light"] .lxm-luz{ opacity:0 }
:root[data-theme="light"] .lxm-luz *{ animation:none }

/* --- Celular (item 25) -----------------------------------------------
   Abaixo de 1024px a camada inteira sai de cena, ja era assim e
   continua sendo. Sobra o gradiente do body, que nao custa quadro
   nenhum. O corte mora na media query de 1024px la em cima. */

/* --- Quem pede menos movimento (item 26) ------------------------------
   Os gradientes ficam; so o que anda para. */
@media (prefers-reduced-motion: reduce), (update: slow){
	.lxm-luz__faisca{ display:none }
	.lxm-luz__feixe{ animation:none; opacity:calc(var(--lxm-glow-opacity) * .9) }
}

/* Sem :has() o fundo continua inteiro, so nao afina por rota. */
@supports not selector(:has(*)){
	body.lxm{ --lxm-glow-opacity:.46 }
}

/* --- Largura do workspace ------------------------------------------- */
/* 1200px deixava monitor grande com faixas vazias enormes e a aula
   apertada. A leitura pura continua estreita; as telas de trabalho
   respiram até 1440. */
.lxm-content{max-width:1320px}
@media (min-width:1700px){.lxm-content{max-width:1440px}}
.lxm-content:has(.lxm-prose):not(:has(.lxm-lessongrid)):not(:has(.lxm-an)){max-width:1180px}

/* --- Página da aula: o vídeo manda ---------------------------------- */
/* A coluna direita encolheu e a esquerda cresceu. O player ganha largura
   e a navegação vira apoio, não concorrente. */
.lxm-lessongrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--lx-e4);align-items:start}
@media (min-width:1600px){.lxm-lessongrid{grid-template-columns:minmax(0,1fr) 372px;gap:44px}}
.lxm-lessonmain{min-width:0;display:flex;flex-direction:column;gap:var(--lx-e3)}
.lxm-lessonaside{min-width:0;display:flex;flex-direction:column;gap:var(--lx-e2);position:sticky;top:16px}

/* Hierarquia de espaço: título cola no vídeo, seções se afastam. */
.lxm-lessonhead{margin-bottom:2px}
.lxm-lessonhead h2{margin:0 0 6px;font-size:clamp(20px,2.2vw,27px);line-height:1.22;letter-spacing:-.015em}
.lxm-lessonhead .lxm-metalist{margin:0}
.lxm-lessonmain>.lxm-section{margin-top:var(--lx-e2)}
.lxm-lessonmain>.lxm-section+.lxm-section{margin-top:var(--lx-e4)}

/* Profundidade 3D: o player parece alguns milímetros acima da interface.
   Tudo por FORA do quadro, a área útil do vídeo continua limpa. */
.lxm-palco{gap:var(--lx-e2);position:relative}
.lxm-palco::before{
	/* Luz que vaza por baixo, como um monitor ligado num quarto escuro. */
	content:"";position:absolute;left:8%;right:8%;bottom:34px;height:56px;z-index:-1;
	background:radial-gradient(60% 100% at 50% 0%,rgba(47,92,255,.34),transparent 72%);
	filter:blur(26px);opacity:.85;pointer-events:none;transition:opacity .35s ease}
.lxm-palco__quadro{
	border-radius:18px;
	border:1px solid rgba(255,255,255,.11);
	box-shadow:
		0 1px 0 0 rgba(255,255,255,.10) inset,      /* aresta de cima acesa   */
		0 -1px 0 0 rgba(0,0,0,.55) inset,           /* aresta de baixo funda  */
		0 2px 5px -2px rgba(0,0,0,.6),              /* contato               */
		0 18px 34px -18px rgba(2,6,20,.9),          /* corpo                 */
		0 46px 90px -46px rgba(2,6,20,1),           /* distância             */
		0 0 0 1px rgba(47,92,255,.10),              /* halo rente            */
		0 0 44px -12px rgba(47,92,255,.20);         /* glow profundo         */
	transition:box-shadow .35s ease,transform .35s ease}
.lxm-palco__quadro:hover{
	transform:translateY(-2px);
	box-shadow:
		0 1px 0 0 rgba(255,255,255,.13) inset,
		0 -1px 0 0 rgba(0,0,0,.55) inset,
		0 2px 6px -2px rgba(0,0,0,.6),
		0 22px 40px -18px rgba(2,6,20,.95),
		0 56px 104px -46px rgba(2,6,20,1),
		0 0 0 1px rgba(47,92,255,.18),
		0 0 60px -10px rgba(47,92,255,.30)}
:root[data-theme="light"] .lxm-palco__quadro{
	border-color:rgba(17,26,51,.14);
	box-shadow:
		0 2px 5px -2px rgba(17,26,51,.16),
		0 20px 40px -22px rgba(17,26,51,.34),
		0 0 0 1px rgba(47,92,255,.10),
		0 0 44px -16px rgba(47,92,255,.22)}
:root[data-theme="light"] .lxm-palco::before{opacity:.35}

/* Cinema: a periferia recua mais, o player acende mais, e a lateral
   continua alcançável, encostar o mouse traz de volta. */
body.lxm-emcinema .lxm-palco::before{opacity:1;filter:blur(34px)}
body.lxm-emcinema .lxm-palco__quadro{
	box-shadow:
		0 1px 0 0 rgba(255,255,255,.14) inset,
		0 -1px 0 0 rgba(0,0,0,.6) inset,
		0 26px 50px -20px rgba(0,0,0,.95),
		0 70px 130px -50px rgba(0,0,0,1),
		0 0 0 1px rgba(47,92,255,.26),
		0 0 90px -18px rgba(47,92,255,.38)}
body.lxm-emcinema .lxm-lessonaside{opacity:.18;transform:scale(.985);transform-origin:right top}
body.lxm-emcinema .lxm-lessonaside:hover{opacity:.92;transform:none}

/* --- Lateral: módulos recolhíveis ----------------------------------- */
.lxm-asidebox{background:var(--lx-surface);border:1px solid var(--lx-borda);
	border-radius:var(--lx-r-md);padding:var(--lx-e2) var(--lx-e2) var(--lx-e1)}
.lxm-asidebox>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:3px;
	padding-bottom:10px}
.lxm-asidebox>summary::-webkit-details-marker{display:none}
.lxm-asidebox>summary strong{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--lx-text-4)}
.lxm-asidebox>summary span{font-size:12px;color:var(--lx-text-3)}
.lxm-asidebox>.lxm-progress{margin-bottom:var(--lx-e2)}

.lxm-asidebox .lxm-asidemodule{border-top:1px solid var(--lx-borda);overflow:hidden}
.lxm-asidemodule:first-of-type{border-top:0}
.lxm-asidebox summary.lxm-asidemodule__head{list-style:none;cursor:pointer;display:flex;flex-direction:row;align-items:center;gap:10px;
	padding:11px 4px;border-radius:10px;transition:background .15s ease}
.lxm-asidemodule__head::-webkit-details-marker{display:none}
.lxm-asidemodule__head:hover{background:var(--lx-surface-2)}
.lxm-asidebox .lxm-asidemodule__num{flex:0 0 auto;font-size:11px;font-variant-numeric:tabular-nums;
	color:var(--lx-text-4);letter-spacing:.06em}
.lxm-asidebox .lxm-asidemodule.is-aqui .lxm-asidemodule__num{color:var(--lx-azul)}
.lxm-asidebox .lxm-asidemodule__txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.lxm-asidebox .lxm-asidemodule__txt strong{font-size:12.5px;font-weight:600;line-height:1.35;color:var(--lx-text-2);
	overflow-wrap:anywhere}
.lxm-asidebox .lxm-asidemodule.is-aqui .lxm-asidemodule__txt strong{color:var(--lx-text-1)}
.lxm-asidebox .lxm-asidemodule__txt small{font-size:10.5px;color:var(--lx-text-4)}
.lxm-asidebox .lxm-asidemodule__seta{flex:0 0 auto;width:7px;height:7px;border-right:1.5px solid var(--lx-text-4);
	border-bottom:1.5px solid var(--lx-text-4);transform:rotate(45deg);margin-bottom:3px;
	transition:transform .22s ease}
.lxm-asidebox .lxm-asidemodule[open] .lxm-asidemodule__seta{transform:rotate(-135deg);margin-bottom:-2px}

/* Altura fluida ao abrir: nada pisca nem pula. */
.lxm-asidebox .lxm-asidelista{list-style:none;margin:0;padding:0 0 8px;display:grid;gap:1px;
	position:relative;overflow:hidden}
.lxm-asidebox .lxm-asidemodule[open] .lxm-asidelista{animation:lxm-abre .22s ease}
@keyframes lxm-abre{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
	.lxm-asidebox .lxm-asidemodule[open] .lxm-asidelista{animation:none}
	.lxm-asidebox .lxm-asidemodule__seta{transition:none}
}

/* A linha da jornada: um fio contínuo ligando os pontos das aulas.
   Fica atrás dos pontos e some antes do primeiro e depois do último. */
.lxm-asidelista::before{content:"";position:absolute;left:9px;top:14px;bottom:20px;width:1px;
	background:linear-gradient(180deg,transparent,var(--lx-borda) 12%,var(--lx-borda) 88%,transparent);
	pointer-events:none}

.lxm-asidebox .lxm-asidelesson{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 0;border-radius:9px;
	text-decoration:none;color:var(--lx-text-3);font-size:12.5px;line-height:1.4;
	position:relative;transition:color .13s ease,background .13s ease}
a.lxm-asidelesson:hover{background:var(--lx-surface-2);color:var(--lx-text-1)}
.lxm-asidebox .lxm-asidelesson__ponto{flex:0 0 auto;width:8px;height:8px;margin-left:5px;border-radius:99px;
	border:1.5px solid var(--lx-borda-forte);background:var(--lx-black);
	transition:.16s ease;position:relative;z-index:1}
.lxm-asidebox .lxm-asidelesson__title{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.lxm-asidebox .lxm-asidelesson__min{flex:0 0 auto;font-size:10.5px;color:var(--lx-text-4);font-variant-numeric:tabular-nums}

.lxm-asidebox .lxm-asidelesson.is-done{color:var(--lx-text-4)}
.lxm-asidebox .lxm-asidelesson.is-done .lxm-asidelesson__ponto{background:var(--lx-success);border-color:var(--lx-success)}
.lxm-asidebox .lxm-asidelesson.is-locked{opacity:.5;cursor:default}
.lxm-asidebox .lxm-asidelesson.is-current{background:var(--lx-azul-fundo);color:var(--lx-text-1);font-weight:600}
.lxm-asidebox .lxm-asidelesson.is-current .lxm-asidelesson__ponto{
	background:var(--lx-azul);border-color:var(--lx-azul);
	box-shadow:0 0 0 3px rgba(47,92,255,.22)}
/* Marca de "você está aqui" na borda esquerda do cartão. */
.lxm-asidelesson.is-current::before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;
	border-radius:99px;background:var(--lx-azul)}

/* --- Avaliação: estrelas azul-diamante ------------------------------ */
.lxm-rating{background:var(--lx-surface);border:1px solid var(--lx-borda);
	border-radius:var(--lx-r-md);padding:var(--lx-e2) var(--lx-e2) var(--lx-e2);display:grid;gap:10px}
.lxm-stars__defs{position:absolute;width:0;height:0;overflow:hidden}
.lxm-rating__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.lxm-rating__head h3{margin:0;font-size:12.5px;font-weight:600;line-height:1.4;color:var(--lx-text-2);max-width:22ch}
.lxm-rating__media{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto}
.lxm-rating__media strong{font-size:16px;line-height:1;color:var(--lx-text-1);font-variant-numeric:tabular-nums}
.lxm-rating__media small{font-size:10px;color:var(--lx-text-4)}
.lxm-rating__box{display:grid;gap:9px}

/* row-reverse porque o HTML vem de 5 para 1: assim o irmão seguinte no
   DOM é a estrela ANTERIOR na tela, e ~ acende todas até a apontada. */
.lxm-stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;
	gap:4px;border:0;padding:0;margin:0}
.lxm-stars input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.lxm-stars label{cursor:pointer;line-height:0;padding:2px;border-radius:8px;
	transition:transform .18s cubic-bezier(.34,1.4,.5,1)}
.lxm-stars svg{width:26px;height:26px;display:block;overflow:visible}

/* Repouso: azul acinzentado, baixa intensidade. */
.lxm-star__corpo{fill:var(--lx-surface-3);stroke:var(--lx-borda-forte);stroke-width:1;
	transition:fill .2s ease,stroke .2s ease,filter .25s ease}
.lxm-star__faceta{fill:none;stroke:rgba(255,255,255,.16);stroke-width:.5;opacity:0;
	transition:opacity .2s ease}
.lxm-star__nucleo{fill:none;transition:fill .2s ease}

/* Aceso: gradiente de diamante, núcleo luminoso, facetas visíveis. */
.lxm-stars label.is-on .lxm-star__corpo{
	fill:url(#lxmDiamante);stroke:rgba(191,214,255,.55);
	filter:drop-shadow(0 2px 5px rgba(47,92,255,.45))}
.lxm-stars label.is-on .lxm-star__faceta{opacity:.7}
.lxm-stars label.is-on .lxm-star__nucleo{fill:url(#lxmDiamanteNucleo)}

/* Escolhidas: a apontada e todas as anteriores (irmãs seguintes no DOM). */
.lxm-stars input:checked+label,
.lxm-stars input:checked+label~label{}
.lxm-stars input:checked+label .lxm-star__corpo,
.lxm-stars input:checked+label~label .lxm-star__corpo{
	fill:url(#lxmDiamante);stroke:rgba(191,214,255,.55);
	filter:drop-shadow(0 2px 5px rgba(47,92,255,.45))}
.lxm-stars input:checked+label .lxm-star__faceta,
.lxm-stars input:checked+label~label .lxm-star__faceta{opacity:.7}
.lxm-stars input:checked+label .lxm-star__nucleo,
.lxm-stars input:checked+label~label .lxm-star__nucleo{fill:url(#lxmDiamanteNucleo)}

/* Hover no desktop: iluminação progressiva, sem gravar nada. */
@media (hover:hover){
	.lxm-stars:hover label .lxm-star__corpo{fill:var(--lx-surface-3);stroke:var(--lx-borda-forte);filter:none}
	.lxm-stars:hover label .lxm-star__faceta{opacity:0}
	.lxm-stars:hover label .lxm-star__nucleo{fill:none}
	.lxm-stars label:hover .lxm-star__corpo,
	.lxm-stars label:hover~label .lxm-star__corpo{
		fill:url(#lxmDiamante);stroke:rgba(191,214,255,.5);
		filter:drop-shadow(0 2px 6px rgba(47,92,255,.4))}
	.lxm-stars label:hover .lxm-star__faceta,
	.lxm-stars label:hover~label .lxm-star__faceta{opacity:.6}
	.lxm-stars label:hover .lxm-star__nucleo,
	.lxm-stars label:hover~label .lxm-star__nucleo{fill:url(#lxmDiamanteNucleo)}
	.lxm-stars label:hover{transform:translateY(-2px)}
}
.lxm-stars input:focus-visible+label{outline:2px solid var(--lx-azul);outline-offset:2px}

/* Escolha: sobe, gira de leve, brilha e volta. Só na interação. */
.lxm-stars label.is-escolhida{animation:lxm-escolhe .38s cubic-bezier(.32,1.3,.42,1)}
@keyframes lxm-escolhe{
	0%{transform:none}
	38%{transform:translateY(-4px) rotate(-7deg) scale(1.14)}
	64%{transform:translateY(-1px) rotate(2deg) scale(1.03)}
	100%{transform:none}
}
.lxm-stars label.is-escolhida .lxm-star__corpo{
	filter:drop-shadow(0 3px 12px rgba(91,140,255,.85)) drop-shadow(0 0 18px rgba(47,92,255,.5))}
@media (prefers-reduced-motion:reduce){
	.lxm-stars label.is-escolhida{animation:none}
	.lxm-stars label{transition:none}
}

.lxm-rating__palavra{margin:0;min-height:16px;font-size:12.5px;font-weight:600;color:var(--lx-azul)}
.lxm-rating__palavra:empty{min-height:0}
.lxm-rating textarea{width:100%;padding:9px 11px;border-radius:var(--lx-r-sm);
	border:1px solid var(--lx-borda);background:var(--lx-surface-2);color:var(--lx-text-1);
	font:inherit;font-size:12.5px;line-height:1.55;resize:vertical}
.lxm-rating textarea::placeholder{color:var(--lx-text-4)}
.lxm-rating textarea:focus{outline:0;border-color:rgba(91,140,255,.55);box-shadow:0 0 0 3px rgba(47,92,255,.13)}
.lxm-rating__acoes{display:flex;gap:7px;flex-wrap:wrap}
.lxm-rating__msg{font-size:11.5px;color:var(--lx-text-3);min-height:14px}

/* --- Comentários ---------------------------------------------------- */
.lxm-comments{display:grid;gap:var(--lx-e2)}
.lxm-comments .lxm-section__head{margin-bottom:2px}
.lxm-comment{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--lx-borda)}
.lxm-comment:first-of-type{border-top:0}
.lxm-comment__avatar,.lxm-comment img.avatar{flex:0 0 auto;width:34px;height:34px;border-radius:99px;
	object-fit:cover;border:1px solid var(--lx-borda)}
.lxm-comment__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}
.lxm-comment__meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--lx-text-4)}
.lxm-comment__meta strong{font-size:13px;color:var(--lx-text-1);font-weight:600}
.lxm-comment__texto{font-size:13.5px;line-height:1.65;color:var(--lx-text-2);overflow-wrap:anywhere}
.lxm-comment__respostas{margin-left:46px;border-left:1px solid var(--lx-borda);padding-left:14px}
.lxm-comentform textarea{width:100%;padding:12px 14px;border-radius:var(--lx-r-md);
	border:1px solid var(--lx-borda);background:var(--lx-surface-2);color:var(--lx-text-1);
	font:inherit;font-size:14px;line-height:1.6;resize:vertical;min-height:88px}
.lxm-comentform textarea:focus{outline:0;border-color:rgba(91,140,255,.55);box-shadow:0 0 0 3px rgba(47,92,255,.13)}

/* --- Mobile: prioridade é o vídeo, o curso vai para o fim ----------- */
@media (max-width:1023px){
	.lxm-lessongrid{grid-template-columns:minmax(0,1fr);gap:var(--lx-e3)}
	.lxm-lessonaside{position:static;order:3}
	/* A avaliação deixa de ser lateral: entra logo depois das ações. */
	.lxm-lessonaside .lxm-rating{order:-1}
	/* Quem sobe a avaliacao no celular e o order:-1 logo abaixo.
	   O column-reverse que estava aqui desfazia esse order e a
	   avaliacao voltava para depois das 35 aulas. */
	.lxm-lessonaside{display:flex;flex-direction:column;gap:var(--lx-e2)}
}
@media (max-width:640px){
	.lxm-asidebox{padding:var(--lx-e2) 12px 6px}
	.lxm-stars svg{width:30px;height:30px}
	.lxm-rating__head{flex-direction:column;gap:4px}
	.lxm-rating__media{align-items:flex-start;flex-direction:row;gap:6px;align-items:baseline}
	.lxm-comment__respostas{margin-left:16px;padding-left:10px}
}
/* ============================================================
   INICIO, refinamento visual da tela inicial (itens 25 a 31).
   Somente aparencia: nenhuma classe funcional, data-* , rota ou
   nome de campo muda aqui. Como este bloco fica no fim do
   arquivo, ele vence por ordem, por isso as regras de celular
   sao repetidas no fim deste mesmo bloco.
   ============================================================ */

/* --- Hero: profundidade real, sem enfeite --- */
.lxm-hero{
  padding:44px 44px 40px;
  border:1px solid var(--lx-borda);
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(47,92,255,.20), transparent 58%),
    linear-gradient(135deg, rgba(17,31,78,.82), rgba(6,11,25,.88));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 1px 0 rgba(0,0,0,.35),
    0 30px 62px -40px rgba(0,0,0,.92);
}
.lxm-hero::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(122,160,255,.5),transparent);
}
.lxm-hero::after{inset:-46% -14% auto auto;width:520px;height:520px;background:radial-gradient(circle,rgba(47,92,255,.24),transparent 64%)}
.lxm-hero__eyebrow{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--lx-text-3)}
.lxm-hero__title{letter-spacing:-.03em;line-height:1.08;color:var(--lx-text-1);margin:6px 0 12px}
.lxm-hero__text{color:var(--lx-text-3);font-size:15.5px;line-height:1.62;max-width:54ch}
.lxm-hero__actions{margin-top:26px}

/* --- Metricas: icone, numero e rotulo em hierarquia clara --- */
.lxm-stats{gap:16px;margin-bottom:38px}
.lxm-stat{
  display:grid;grid-template-columns:44px minmax(0,1fr);
  grid-template-areas:"ico val" "ico rot";
  align-items:center;column-gap:14px;row-gap:2px;
  padding:18px 20px;border:1px solid var(--lx-borda);
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 18px 38px -32px rgba(0,0,0,.85);
  transition:transform .2s,border-color .2s,box-shadow .2s;
}
.lxm-stat:hover{transform:translateY(-2px);border-color:var(--lx-borda-forte)}
.lxm-stat__icone{
  grid-area:ico;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;
  color:#cfdcff;border:1px solid rgba(122,160,255,.24);
  background:linear-gradient(150deg,rgba(47,92,255,.32),rgba(10,20,50,.55));
}
.lxm-stat__icone svg{width:20px;height:20px}
.lxm-stat__value{grid-area:val;font-size:clamp(18px,2.1vw,24px);line-height:1.16;color:var(--lx-text-1);overflow-wrap:anywhere}
.lxm-stat__label{grid-area:rot;margin-top:0;font-size:12px;color:var(--lx-text-3)}

/* --- Titulos de secao com marcador discreto --- */
.lxm-section__head{align-items:center;margin-bottom:16px}
.lxm-section__head h3{position:relative;font-size:18px;letter-spacing:-.01em;padding-left:14px}
.lxm-section__head h3::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:16px;border-radius:2px;
  background:linear-gradient(180deg,#5a84ff,rgba(90,132,255,.14));
}

/* --- Continuar de onde parou: agora com capa do curso --- */
.lxm-resume{
  gap:18px;padding:16px 20px 16px 16px;align-items:center;
  border:1px solid rgba(90,132,255,.24);
  background:linear-gradient(120deg,rgba(47,92,255,.15),rgba(255,255,255,.028));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 20px 44px -36px rgba(0,0,0,.9);
}
.lxm-resume__capa{
  position:relative;flex:0 0 auto;width:132px;aspect-ratio:16/9;
  border-radius:12px;overflow:hidden;display:grid;place-items:center;
  background:linear-gradient(140deg,#101c40,#05070f);
  border:1px solid rgba(255,255,255,.10);
}
.lxm-resume__capa img{width:100%;height:100%;object-fit:cover;display:block}
.lxm-resume__capa-fallback{font-weight:800;font-size:15px;letter-spacing:.2em;color:rgba(255,255,255,.2)}
.lxm-resume__capa .lxm-resume__icon{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.28);
  background:rgba(8,14,32,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  box-shadow:0 8px 20px -10px rgba(0,0,0,.9);transition:background .2s,border-color .2s;
}
.lxm-resume__capa .lxm-resume__icon svg{width:16px;height:16px}
.lxm-resume:hover .lxm-resume__capa .lxm-resume__icon{background:rgba(47,92,255,.74);border-color:rgba(255,255,255,.46)}
.lxm-resume__body strong{font-size:16.5px;line-height:1.3;color:var(--lx-text-1)}
/* A regra ampla ".lxm-content small" (0,2,1) vencia estas duas por
   especificidade; por isso elas tambem carregam .lxm-content. */
.lxm-content .lxm-resume__body small:first-child{color:var(--lx-cyanish);font-size:11px;letter-spacing:.12em}
.lxm-content .lxm-resume__body small:not(:first-child){text-transform:none;letter-spacing:.01em;font-size:12.5px;color:var(--lx-text-3)}
.lxm-resume__body .lxm-progress{max-width:420px}
.lxm-resume__meta{font-size:15px;font-weight:700;color:var(--lx-text-1)}

/* --- Cards de curso na home --- */
.lxm-grid{gap:20px}
.lxm-card{
  border:1px solid var(--lx-borda);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.014));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 20px 42px -36px rgba(0,0,0,.9);
}
.lxm-card:hover{transform:translateY(-4px);border-color:rgba(90,132,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 30px 58px -32px rgba(47,92,255,.5)}
.lxm-card__cover::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 46%,rgba(4,8,18,.6))}
.lxm-card__badge{z-index:2}
.lxm-card__cover img{transition:transform .35s ease}
.lxm-card:hover .lxm-card__cover img{transform:scale(1.04)}
.lxm-card__title{font-size:15.5px;line-height:1.32;color:var(--lx-text-1)}
.lxm-card__text{color:var(--lx-text-3)}

/* --- Modo claro: mesma estrutura, tokens proprios (item 38) --- */
:root[data-theme="light"] .lxm-stat{
  background:linear-gradient(160deg,#ffffff,#f4f7ff);
  box-shadow:inset 0 1px 0 #fff,0 12px 26px -22px rgba(18,32,72,.45);
}
:root[data-theme="light"] .lxm-stat__icone{color:#1c3ba8;border-color:rgba(47,92,255,.22);background:linear-gradient(150deg,rgba(47,92,255,.16),rgba(47,92,255,.05))}
:root[data-theme="light"] .lxm-card{background:linear-gradient(180deg,#ffffff,#f6f8ff);box-shadow:inset 0 1px 0 #fff,0 12px 26px -22px rgba(18,32,72,.4)}
:root[data-theme="light"] .lxm-resume{background:linear-gradient(120deg,rgba(47,92,255,.10),#ffffff);box-shadow:inset 0 1px 0 #fff,0 12px 26px -22px rgba(18,32,72,.4)}
:root[data-theme="light"] .lxm-section__head h3::before{background:linear-gradient(180deg,#2f5cff,rgba(47,92,255,.18))}

@media (max-width:900px){
  .lxm-hero{padding:34px 28px 30px}
  .lxm-resume__capa{width:112px}
}
@media (max-width:560px){
  .lxm-hero{padding:24px 20px}
  .lxm-stats{gap:10px}
  .lxm-stat{grid-template-columns:38px minmax(0,1fr);column-gap:12px;padding:14px 16px}
  .lxm-stat__icone{width:38px;height:38px;border-radius:11px}
  .lxm-stat__icone svg{width:18px;height:18px}
  .lxm-stat__value{font-size:19px}
  .lxm-resume{padding:14px;gap:13px}
  .lxm-resume__capa{width:92px;border-radius:10px}
  .lxm-resume__capa .lxm-resume__icon{width:30px;height:30px}
  .lxm-resume__capa .lxm-resume__icon svg{width:14px;height:14px}
  .lxm-resume__body strong{font-size:15px}
  .lxm-grid{gap:14px}
}
/* ============================================================
   FIM, refinamento visual da tela inicial.
   ============================================================ */

/* Na aula, o cartao de texto parava em 72ch e sobrava um vazio grande a
   direita. Agora o cartao acompanha a coluna e quem guarda a medida de
   leitura confortavel e o proprio paragrafo. */
.lxm-lessongrid .lxm-panel.lxm-prose{max-width:none}
.lxm-lessongrid .lxm-panel.lxm-prose > *{max-width:72ch}

/* ══════════════════════════════════════════════════════════════════
   MODAL DE CONFIRMACAO, usado por toda exclusao do painel.
   Substitui o window.confirm() do navegador, que nao combina com o
   resto e nao consegue mostrar o impacto do que vai ser apagado.
   ══════════════════════════════════════════════════════════════════ */

.lxm-veu{
	position:fixed; inset:0; z-index:9000;
	display:grid; place-items:center; padding:24px;
	background:rgba(3,7,18,.72);
	backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
	opacity:0; transition:opacity .18s ease;
}
.lxm-veu.is-on{ opacity:1 }

.lxm-dialogo{
	width:min(440px,100%);
	border-radius:18px;
	border:1px solid var(--lx-borda-forte,rgba(255,255,255,.17));
	background:linear-gradient(180deg,#0d1730,#080e1e);
	box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 40px 80px -40px rgba(0,0,0,.95);
	padding:26px 26px 22px;
	transform:translateY(8px) scale(.985);
	transition:transform .2s cubic-bezier(.2,.8,.3,1);
}
.lxm-veu.is-on .lxm-dialogo{ transform:none }

.lxm-dialogo__icone{
	width:42px; height:42px; border-radius:12px;
	display:grid; place-items:center; margin-bottom:14px;
	color:#ffb4b4;
	background:rgba(220,70,70,.13);
	border:1px solid rgba(220,70,70,.26);
}
.lxm-dialogo__icone svg{ width:20px; height:20px }

.lxm-dialogo__titulo{ font-size:18px; line-height:1.25; margin:0 0 6px; color:var(--lx-text-1,#f2f6ff) }
.lxm-dialogo__texto{ font-size:14px; line-height:1.6; color:var(--lx-text-3,#94a3c2); margin:0 }

.lxm-dialogo__impacto{
	margin:16px 0 0; padding:12px 14px;
	border-radius:12px;
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	background:rgba(255,255,255,.035);
	display:flex; flex-wrap:wrap; gap:6px 18px;
}
.lxm-dialogo__impacto span{ font-size:13px; color:var(--lx-text-2,#c6d2ea) }
.lxm-dialogo__impacto strong{ color:var(--lx-text-1,#f2f6ff) }

.lxm-dialogo__pes{ display:flex; gap:10px; justify-content:flex-end; margin-top:22px }

.lxm-dialogo__btn{
	padding:10px 18px; border-radius:11px; font-size:14px; font-weight:600;
	cursor:pointer; border:1px solid transparent; transition:background .18s, border-color .18s;
}
.lxm-dialogo__btn--fica{
	background:rgba(255,255,255,.06); border-color:var(--lx-borda,rgba(255,255,255,.10));
	color:var(--lx-text-2,#c6d2ea);
}
.lxm-dialogo__btn--fica:hover{ background:rgba(255,255,255,.10); color:#fff }

/* Destrutivo, mas ainda da casa: vermelho contido, sem gritar. */
.lxm-dialogo__btn--vai{
	background:linear-gradient(180deg,#c2413f,#a02f2f);
	border-color:rgba(255,150,150,.28); color:#fff;
	box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 12px 26px -16px rgba(190,50,50,.9);
}
.lxm-dialogo__btn--vai:hover{ background:linear-gradient(180deg,#d24a48,#b03636) }
.lxm-dialogo__btn[disabled]{ opacity:.6; cursor:default }

:root[data-theme="light"] .lxm-dialogo{ background:linear-gradient(180deg,#fff,#f4f7ff); border-color:rgba(20,40,90,.14) }
:root[data-theme="light"] .lxm-dialogo__titulo{ color:#0f1c3a }
:root[data-theme="light"] .lxm-dialogo__texto{ color:#4a5878 }
:root[data-theme="light"] .lxm-dialogo__impacto{ background:rgba(20,40,90,.04); border-color:rgba(20,40,90,.12) }
:root[data-theme="light"] .lxm-dialogo__impacto span{ color:#33415e }
:root[data-theme="light"] .lxm-dialogo__btn--fica{ background:rgba(20,40,90,.06); color:#33415e }

@media (max-width:560px){
	.lxm-dialogo{ padding:22px 20px 18px }
	.lxm-dialogo__pes{ flex-direction:column-reverse }
	.lxm-dialogo__btn{ width:100% }
}

@media (prefers-reduced-motion: reduce){
	.lxm-veu, .lxm-dialogo{ transition:none }
}

/* --- Menu "mais ações" no card do curso ------------------------------
   Excluir mora aqui dentro para não competir com Ver curso e Editar
   conteúdo, que são o que a pessoa faz o tempo todo. */
.lxm-maisacoes{ position:relative; display:inline-flex }
.lxm-maisacoes__btn{ letter-spacing:.12em; padding-left:12px; padding-right:12px; line-height:1 }

.lxm-maisacoes__painel{
	position:absolute; right:0; top:calc(100% + 6px); z-index:40;
	min-width:190px; padding:6px;
	border-radius:13px;
	border:1px solid var(--lx-borda-forte,rgba(255,255,255,.17));
	background:linear-gradient(180deg,#101a34,#0a1122);
	box-shadow:0 26px 52px -28px rgba(0,0,0,.95);
	display:flex; flex-direction:column; gap:2px;
}
/* Sem esta guarda o display:flex acima ganha do [hidden] e o menu fica
   pintado mesmo fechado, ja aconteceu tres vezes neste projeto. */
.lxm-maisacoes__painel[hidden]{ display:none !important }

.lxm-maisacoes__painel button{
	text-align:left; padding:9px 12px; border-radius:9px;
	font-size:13.5px; color:var(--lx-text-2,#c6d2ea);
	background:transparent; border:0; cursor:pointer;
	transition:background .16s, color .16s;
}
.lxm-maisacoes__painel button:hover{ background:rgba(255,255,255,.07); color:#fff }
.lxm-maisacoes__painel button.is-perigo{ color:#ff9d9d }
.lxm-maisacoes__painel button.is-perigo:hover{ background:rgba(220,70,70,.15); color:#ffc2c2 }

:root[data-theme="light"] .lxm-maisacoes__painel{ background:#fff; border-color:rgba(20,40,90,.14); box-shadow:0 20px 40px -24px rgba(18,32,72,.45) }
:root[data-theme="light"] .lxm-maisacoes__painel button{ color:#33415e }
:root[data-theme="light"] .lxm-maisacoes__painel button:hover{ background:rgba(20,40,90,.06); color:#0f1c3a }
:root[data-theme="light"] .lxm-maisacoes__painel button.is-perigo{ color:#c2413f }

/* --- Lixeira do painel ------------------------------------------------ */
.lxm-lixo__nota{ max-width:64ch; margin:-4px 0 16px }
.lxm-lixo{ display:flex; flex-direction:column; gap:10px }

.lxm-lixo__linha{
	display:flex; align-items:center; justify-content:space-between; gap:16px;
	padding:14px 18px; border-radius:14px;
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
	box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.lxm-lixo__quem{ display:flex; flex-direction:column; gap:4px; min-width:0 }
.lxm-lixo__quem strong{ font-size:15px; color:var(--lx-text-1,#f2f6ff); overflow-wrap:anywhere }
.lxm-lixo__quem small{ font-size:12.5px }

.lxm-lixo__tipo{
	align-self:flex-start; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
	padding:3px 9px; border-radius:99px;
	background:rgba(255,255,255,.07); border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	color:var(--lx-text-3,#94a3c2);
}

.lxm-lixo__acoes{ display:flex; gap:8px; flex:0 0 auto }
.lxm-lixo__fim{ color:#ff9d9d; border-color:rgba(220,70,70,.28) }
.lxm-lixo__fim:hover{ background:rgba(220,70,70,.14); color:#ffc2c2; border-color:rgba(220,70,70,.44) }

:root[data-theme="light"] .lxm-lixo__linha{ background:linear-gradient(160deg,#fff,#f4f7ff) }
:root[data-theme="light"] .lxm-lixo__tipo{ background:rgba(20,40,90,.06); color:#4a5878 }
:root[data-theme="light"] .lxm-lixo__fim{ color:#c2413f }

@media (max-width:760px){
	.lxm-lixo__linha{ flex-direction:column; align-items:stretch }
	.lxm-lixo__acoes{ justify-content:flex-end }
}

/* --- Abas das centrais do console ------------------------------------
   Substituem cinco linhas que ocupavam a lateral. A aba ativa ganha um
   traço embaixo em vez de um bloco cheio: dentro da página o destaque
   forte já é do título. */
.lxm-abas{
	display:flex; gap:4px; flex-wrap:wrap;
	margin:0 0 22px; padding-bottom:2px;
	border-bottom:1px solid var(--lx-borda,rgba(255,255,255,.10));
}
.lxm-abas__item{
	position:relative; padding:9px 14px 12px;
	font-size:14px; font-weight:600; text-decoration:none;
	color:var(--lx-text-3,#94a3c2);
	border-radius:10px 10px 0 0;
	transition:color .18s, background .18s;
}
.lxm-abas__item:hover{ color:var(--lx-text-1,#f2f6ff); background:rgba(255,255,255,.05) }
.lxm-abas__item.is-on{ color:var(--lx-text-1,#f2f6ff) }
.lxm-abas__item.is-on::after{
	content:""; position:absolute; left:12px; right:12px; bottom:-1px; height:2px;
	border-radius:2px 2px 0 0;
	background:linear-gradient(90deg,#5a84ff,#2f5cff);
}

:root[data-theme="light"] .lxm-abas{ border-bottom-color:rgba(20,40,90,.12) }
:root[data-theme="light"] .lxm-abas__item{ color:#4a5878 }
:root[data-theme="light"] .lxm-abas__item:hover{ color:#0f1c3a; background:rgba(20,40,90,.05) }
:root[data-theme="light"] .lxm-abas__item.is-on{ color:#0f1c3a }

@media (max-width:560px){
	.lxm-abas{ gap:2px; margin-bottom:18px; overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch }
	.lxm-abas::-webkit-scrollbar{ display:none }
	.lxm-abas__item{ padding:8px 11px 11px; font-size:13.5px; white-space:nowrap }
}

/* ══════════════════════════════════════════════════════════════════
   CENTRAL DO LEGADO PLAYER, tela administrativa e preview.
   ══════════════════════════════════════════════════════════════════ */

.lxm-pl__selo{
	font-size:12px; padding:5px 12px; border-radius:99px;
	color:#9fd7b4; background:rgba(60,190,120,.12); border:1px solid rgba(60,190,120,.28);
}
.lxm-pl__intro{ max-width:62ch; margin:-6px 0 18px }

.lxm-pl__abas{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px }
.lxm-pl__aba{
	padding:8px 15px; border-radius:10px; font-size:13.5px; font-weight:600; cursor:pointer;
	color:var(--lx-text-3,#94a3c2); background:rgba(255,255,255,.045);
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	transition:color .16s, background .16s, border-color .16s;
}
.lxm-pl__aba:hover{ color:var(--lx-text-1,#f2f6ff); background:rgba(255,255,255,.08) }
.lxm-pl__aba.is-on{ color:#fff; background:linear-gradient(180deg,#2f5cff,#1d43d6); border-color:rgba(140,175,255,.35) }

.lxm-pl__painel[hidden]{ display:none !important }
.lxm-pl__corpo{ margin-bottom:22px }

.lxm-pl__fatos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-bottom:16px }
.lxm-pl__fato{
	padding:14px 16px; border-radius:13px;
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
	display:flex; flex-direction:column; gap:5px;
}
.lxm-pl__fato small{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--lx-text-3,#94a3c2) }
.lxm-pl__fato strong{ font-size:14.5px; color:var(--lx-text-1,#f2f6ff) }

.lxm-pl__campo{ display:flex; flex-direction:column; gap:7px; margin-bottom:18px }
.lxm-pl__campo > label{ font-size:13px; font-weight:600; color:var(--lx-text-2,#c6d2ea) }
.lxm-pl__linha{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:18px }

.lxm-pl__cor{ display:flex; align-items:center; gap:10px }
.lxm-pl__cor code{ font-size:13px; color:var(--lx-text-3,#94a3c2) }
.lxm-pl input[type="color"]{
	width:52px; height:34px; padding:0; cursor:pointer;
	border-radius:9px; border:1px solid var(--lx-borda,rgba(255,255,255,.10)); background:transparent;
}

.lxm-pl__checks{ display:flex; flex-wrap:wrap; gap:8px 18px }
.lxm-pl__check, .lxm-pl__radio{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; color:var(--lx-text-2,#c6d2ea); cursor:pointer }
.lxm-pl__check input[disabled] + span{ opacity:.6 }

.lxm-pl__fontes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px }
.lxm-pl__fonte{
	padding:15px 16px; border-radius:13px;
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	background:rgba(255,255,255,.03);
	display:flex; flex-direction:column; gap:6px;
}
.lxm-pl__fonte strong{ font-size:14px; color:var(--lx-text-1,#f2f6ff) }
.lxm-pl__estado{ align-self:flex-start; font-size:11.5px; padding:3px 10px; border-radius:99px }
.lxm-pl__estado.is-on{ color:#9fd7b4; background:rgba(60,190,120,.12); border:1px solid rgba(60,190,120,.26) }
.lxm-pl__estado.is-off{ color:var(--lx-text-3,#94a3c2); background:rgba(255,255,255,.05); border:1px solid var(--lx-borda,rgba(255,255,255,.10)) }

.lxm-pl__acoes{ display:flex; gap:10px; flex-wrap:wrap }

/* --- Preview -------------------------------------------------------- */
.lxm-plv{
	--plv-cor:#3a67ff; --plv-buffer:#33406b; --plv-fundo:#1b2340; --plv-altura:4px;
	border-radius:16px; overflow:hidden;
	border:1px solid rgba(255,255,255,.09);
	background:linear-gradient(180deg,#070d1e,#04070f);
	box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 30px 60px -34px rgba(0,0,0,.95), 0 0 60px -30px rgba(58,103,255,.5);
	max-width:760px;
}
.lxm-plv__tela{
	position:relative; aspect-ratio:16/9;
	display:grid; place-items:center;
	background:radial-gradient(120% 120% at 50% 40%, rgba(30,58,130,.30), transparent 62%), #050912;
}

/* Diamond Play: cristal azul, profundidade, luz interna. Sem neon. */
.lxm-plv__play{
	position:relative; width:74px; height:74px; border:0; padding:0; cursor:pointer;
	background:transparent; display:grid; place-items:center;
}
.lxm-plv__play-corpo{
	position:absolute; inset:0; border-radius:50%;
	background:
		radial-gradient(80% 70% at 50% 22%, rgba(255,255,255,.34), transparent 60%),
		linear-gradient(180deg, color-mix(in srgb, var(--plv-cor) 88%, #fff 12%), color-mix(in srgb, var(--plv-cor) 62%, #000 38%));
	border:1px solid rgba(255,255,255,.30);
	box-shadow:
		inset 0 2px 6px rgba(255,255,255,.34),
		inset 0 -8px 16px rgba(0,0,0,.42),
		0 14px 30px -12px rgba(0,0,0,.85),
		0 0 34px -8px color-mix(in srgb, var(--plv-cor) 70%, transparent);
	transition:transform .22s cubic-bezier(.2,.8,.3,1), box-shadow .22s;
}
.lxm-plv__play-brilho{
	position:absolute; left:16%; right:16%; top:10%; height:34%;
	border-radius:50%; pointer-events:none;
	background:linear-gradient(180deg, rgba(255,255,255,.42), transparent);
	filter:blur(1px);
}
.lxm-plv__play-tri{ position:relative; width:26px; height:26px; fill:#fff; margin-left:3px; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5)) }
.lxm-plv__play:hover .lxm-plv__play-corpo{ transform:scale(1.06) }
.lxm-plv__play:active .lxm-plv__play-corpo{ transform:scale(.97) }

.lxm-plv__barra{ padding:12px 16px 14px; background:linear-gradient(180deg,rgba(4,8,18,0),rgba(4,8,18,.9)) }
.lxm-plv__trilha{
	position:relative; height:var(--plv-altura); border-radius:99px;
	background:var(--plv-fundo); margin-bottom:12px; cursor:pointer;
}
.lxm-plv__buffer{ position:absolute; inset:0 auto 0 0; width:72%; border-radius:99px; background:var(--plv-buffer) }
.lxm-plv__visto{ position:absolute; inset:0 auto 0 0; width:41%; border-radius:99px; background:var(--plv-cor) }
.lxm-plv__bolinha{
	position:absolute; right:-5px; top:50%; transform:translateY(-50%);
	width:11px; height:11px; border-radius:50%; background:#fff;
	box-shadow:0 0 0 3px color-mix(in srgb, var(--plv-cor) 45%, transparent), 0 2px 6px rgba(0,0,0,.6);
}
.lxm-plv__controles{ display:flex; align-items:center; gap:14px; color:#cfdcff; font-size:13px }
.lxm-plv__espaco{ flex:1 }
.lxm-plv__tempo i{ font-style:normal; color:#8fa2c8 }
.lxm-plv__ico{ opacity:.9 }
.lxm-plv__ico[hidden]{ display:none !important }

:root[data-theme="light"] .lxm-pl__fato,
:root[data-theme="light"] .lxm-pl__fonte{ background:linear-gradient(160deg,#fff,#f4f7ff) }
:root[data-theme="light"] .lxm-pl__aba{ background:rgba(20,40,90,.05); color:#4a5878 }
:root[data-theme="light"] .lxm-pl__aba.is-on{ color:#fff }

@media (max-width:640px){
	.lxm-pl__abas{ overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch }
	.lxm-pl__aba{ white-space:nowrap }
	.lxm-plv__controles{ gap:10px; font-size:12px }
	.lxm-plv__play{ width:60px; height:60px }
	.lxm-pl__acoes .lxm-btn{ width:100% }
}

@media (prefers-reduced-motion: reduce){
	.lxm-plv__play-corpo{ transition:none }
}

/* ------------------------------------------------------------------ */
/* Legado Player, vídeo em arquivo                                     */
/* Só entra quando o JS assume (.is-lp). Sem JS, o controle nativo fica. */
/* ------------------------------------------------------------------ */
.lxm-player--file.is-lp{position:relative;overflow:hidden;border-radius:14px;background:#05070f;outline:none}
.lxm-player--file.is-lp video{display:block;width:100%;height:auto;cursor:pointer}
.lxm-lp{--lxm-lp-cor:#3a67ff;--lxm-lp-trilha:#1b2340;--lxm-lp-buffer:#33406b;--lxm-lp-altura:4px}

.lxm-lp__barra{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;
 background:linear-gradient(to top,rgba(3,6,15,.88),rgba(3,6,15,.55) 55%,transparent);
 opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.lxm-player--file.is-lp:hover .lxm-lp__barra,
.lxm-player--file.is-lp:focus-within .lxm-lp__barra,
.lxm-player--file.is-lp:not(.is-tocando) .lxm-lp__barra{opacity:1;transform:none;pointer-events:auto}

.lxm-lp__trilha{position:relative;height:var(--lxm-lp-altura);border-radius:99px;background:var(--lxm-lp-trilha);
 cursor:pointer;margin-bottom:10px;touch-action:none}
.lxm-lp__trilha:focus-visible{outline:2px solid var(--lxm-lp-cor);outline-offset:4px}
.lxm-lp__buf,.lxm-lp__pro{position:absolute;left:0;top:0;bottom:0;border-radius:99px;width:0}
.lxm-lp__buf{background:var(--lxm-lp-buffer)}
.lxm-lp__pro{background:var(--lxm-lp-cor)}
.lxm-lp__bola{position:absolute;top:50%;left:0;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;
 background:var(--lxm-lp-cor);box-shadow:0 0 0 3px rgba(255,255,255,.14);opacity:0;transition:opacity .15s ease}
.lxm-lp__trilha:hover .lxm-lp__bola,.lxm-lp__trilha:focus-visible .lxm-lp__bola{opacity:1}

.lxm-lp__linha{display:flex;align-items:center;gap:6px}
.lxm-lp__espaco{flex:1}
.lxm-lp__tempo{margin-left:6px;font-size:12px;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.82);white-space:nowrap}

.lxm-lp__bt{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;
 border:0;border-radius:10px;background:transparent;color:#fff;cursor:pointer;
 transition:background .15s ease,transform .15s ease}
.lxm-lp__bt:hover{background:rgba(255,255,255,.12)}
.lxm-lp__bt:active{transform:scale(.94)}
.lxm-lp__bt:focus-visible{outline:2px solid var(--lxm-lp-cor);outline-offset:2px}
.lxm-lp__bt b{font-size:11px;font-weight:700;letter-spacing:.02em}

/* Play em losango: a marca do Legado Player. */
.lxm-lp__play i{display:block;width:0;height:0;border-style:solid;border-width:7px 0 7px 12px;
 border-color:transparent transparent transparent #fff;margin-left:2px}
.lxm-player--file.is-tocando .lxm-lp__play i{width:11px;height:12px;margin:0;border:0;
 background:linear-gradient(to right,#fff 0 4px,transparent 4px 7px,#fff 7px 11px)}
.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play{background:var(--lxm-lp-cor);border-radius:11px;transform:rotate(45deg)}
.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play i{transform:rotate(-45deg)}
.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play:hover{filter:brightness(1.12)}
.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play:active{transform:rotate(45deg) scale(.94)}

.lxm-lp__volta b,.lxm-lp__frente b{position:relative;top:1px}
.lxm-lp__volta::before,.lxm-lp__frente::before{content:"";position:absolute;width:20px;height:20px;
 border:1.5px solid currentColor;border-radius:50%;border-top-color:transparent;opacity:.75}
.lxm-lp__volta,.lxm-lp__frente{position:relative}
.lxm-lp__frente::before{transform:scaleX(-1)}

.lxm-lp__volfaixa{width:74px;height:var(--lxm-lp-altura);appearance:none;-webkit-appearance:none;
 background:rgba(255,255,255,.28);border-radius:99px;cursor:pointer}
.lxm-lp__volfaixa::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;border-radius:50%;background:#fff;border:0}
.lxm-lp__volfaixa::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:#fff;border:0}
.lxm-lp__vol i{display:block;width:0;height:0;border-style:solid;border-width:6px 9px 6px 0;
 border-color:transparent #fff transparent transparent}
.lxm-player--file.is-mudo .lxm-lp__vol{opacity:.5}

.lxm-lp__cine i,.lxm-lp__tela i,.lxm-lp__pip i{display:block;width:14px;height:11px;border:1.5px solid #fff;border-radius:2px}
.lxm-lp__tela i{border-style:dashed}
.lxm-lp__pip i{box-shadow:inset -5px 4px 0 -1.5px #fff}

@media (max-width:430px){
 .lxm-lp__barra{padding:22px 8px 8px}
 .lxm-lp__bt{width:30px;height:30px}
 .lxm-lp__volfaixa{width:48px}
 .lxm-lp__tempo{font-size:11px}
}
@media (prefers-reduced-motion:reduce){
 .lxm-lp__barra,.lxm-lp__bt,.lxm-lp__bola{transition:none}
}

/* Aviso de retomada do Legado Player. */
.lxm-lp__retomada{position:absolute;left:14px;right:14px;top:14px;display:flex;align-items:center;gap:10px;
 padding:9px 10px 9px 13px;border-radius:12px;
 background:rgba(6,10,22,.82);border:1px solid rgba(255,255,255,.12);
 backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
 color:rgba(255,255,255,.92);font-size:13px;line-height:1.3}
.lxm-lp__retomada__txt{flex:1;min-width:0}
.lxm-lp__retomada__txt b{font-variant-numeric:tabular-nums;color:#fff}
.lxm-lp__reinicia{flex:none;border:0;border-radius:8px;padding:6px 11px;cursor:pointer;
 background:var(--lxm-lp-cor);color:#fff;font-size:12px;font-weight:600;
 transition:filter .15s ease,transform .15s ease}
.lxm-lp__reinicia:hover{filter:brightness(1.12)}
.lxm-lp__reinicia:active{transform:scale(.96)}
.lxm-lp__fecha{flex:none;width:26px;height:26px;padding:0;border:0;border-radius:8px;cursor:pointer;
 background:transparent;color:rgba(255,255,255,.7);font-size:17px;line-height:1;
 transition:background .15s ease,color .15s ease}
.lxm-lp__fecha:hover{background:rgba(255,255,255,.12);color:#fff}
.lxm-lp__reinicia:focus-visible,.lxm-lp__fecha:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:430px){
 .lxm-lp__retomada{left:8px;right:8px;top:8px;font-size:12px;gap:7px;padding:8px}
 .lxm-lp__reinicia{padding:6px 9px;font-size:11px}
}

/* Capa da aula no construtor, vira o poster do Legado Player. */
.lxmb-capaaula__linha{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.lxmb-capaaula__img{width:96px;height:54px;object-fit:cover;border-radius:8px;
 border:1px solid rgba(255,255,255,.14);background:#0b1020;flex:none}
.lxmb-capaaula__img[hidden]{display:none !important}
.lxmb-capaaula [data-lxm-do="capa_remover"][hidden]{display:none !important}

/* ===== Conexão com o Google Drive (etapa 5, camada 1) ===================== */
.lxm-drv{
	margin-top:18px; padding:18px 18px 16px; border-radius:16px;
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	background:rgba(255,255,255,.025);
	display:flex; flex-direction:column; gap:14px;
}
.lxm-drv__topo{ display:flex; align-items:center; gap:12px; flex-wrap:wrap }
.lxm-drv__topo h4{ margin:0; font-size:15px; color:var(--lx-text-1,#f2f6ff) }
.lxm-drv__selo{ font-size:11.5px; padding:3px 10px; border-radius:99px }
.lxm-drv__selo.is-on{ color:#9fd7b4; background:rgba(60,190,120,.12); border:1px solid rgba(60,190,120,.26) }
.lxm-drv__selo.is-off{ color:var(--lx-text-2,#9fb0c9); background:rgba(255,255,255,.05); border:1px solid var(--lx-borda,rgba(255,255,255,.10)) }
.lxm-drv__passos{ margin:0; padding-left:20px; display:flex; flex-direction:column; gap:9px; font-size:13px; color:var(--lx-text-2,#9fb0c9); line-height:1.55 }
.lxm-drv__passos strong{ color:var(--lx-text-1,#f2f6ff); font-weight:600 }
.lxm-drv__uri{
	display:inline-block; margin:6px 8px 0 0; padding:6px 10px; border-radius:9px;
	font-size:12px; word-break:break-all; color:var(--lx-text-1,#f2f6ff);
	background:rgba(0,0,0,.28); border:1px solid var(--lx-borda,rgba(255,255,255,.10));
}
.lxm-drv__copiar{ padding:5px 12px; font-size:12px; vertical-align:middle }
.lxm-drv__campos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px }
.lxm-drv__campo{ display:flex; flex-direction:column; gap:6px }
.lxm-drv__campo>span{ font-size:12.5px; color:var(--lx-text-1,#f2f6ff) }
.lxm-drv__campo input{
	width:100%; padding:10px 12px; border-radius:10px; font-size:13px;
	color:var(--lx-text-1,#f2f6ff); background:rgba(0,0,0,.24);
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
}
.lxm-drv__campo input:focus{ outline:none; border-color:rgba(120,170,255,.45) }
.lxm-drv__campo small{ font-size:11.5px; line-height:1.5 }
.lxm-drv__acoes{ display:flex; flex-wrap:wrap; gap:10px }
.lxm-drv__acoes .lxm-btn[disabled]{ opacity:.45; cursor:not-allowed }
.lxm-drv__aviso{
	margin:0; padding:10px 12px; border-radius:10px; font-size:12.5px; line-height:1.5;
	color:var(--lx-text-2,#9fb0c9); background:rgba(255,255,255,.04);
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
}
.lxm-drv__aviso.is-ok{ color:#9fd7b4; background:rgba(60,190,120,.10); border-color:rgba(60,190,120,.24) }
.lxm-drv__aviso.is-erro{ color:#f0b3b3; background:rgba(220,80,80,.10); border-color:rgba(220,80,80,.26) }
.lxm-drv__conta{ font-size:13px; color:var(--lx-text-2,#9fb0c9) }
.lxm-drv__conta strong{ color:var(--lx-text-1,#f2f6ff) }
.lxm-drv__nota code{ font-size:11.5px; word-break:break-all }
@media (max-width:430px){
	.lxm-drv{ padding:14px }
	.lxm-drv__acoes .lxm-btn{ flex:1 1 100%; text-align:center }
}

/* ===== Google Drive na tela de Integrações (etapa 5, camada 2) ============ */
.lxm-section.lxm-drv{ display:block; margin-top:0; padding:0; border:0; background:none; gap:0 }
.lxm-section.lxm-drv .lxm-section__head{ align-items:center; gap:12px }
.lxm-drv__fatos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:4px 0 14px }
.lxm-drv__fatos>div{ display:flex; flex-direction:column; gap:3px }
.lxm-drv__fatos span{ font-size:11.5px; color:var(--lx-text-2,#9fb0c9) }
.lxm-drv__fatos strong{ font-size:13.5px; color:var(--lx-text-1,#f2f6ff); word-break:break-all }
.lxm-drv__uribox{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:12px 0 }
.lxm-drv__uribox>span{ flex:1 1 100% }
.lxm-drv__barra{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:10px 0 12px }
.lxm-drv__trilha{ font-size:12.5px; color:var(--lx-text-2,#9fb0c9); flex:1 1 120px; word-break:break-all }
.lxm-drv__busca{
	flex:1 1 200px; padding:8px 11px; border-radius:9px; font-size:12.5px;
	color:var(--lx-text-1,#f2f6ff); background:rgba(0,0,0,.24);
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
}
.lxm-drv__busca:focus{ outline:none; border-color:rgba(120,170,255,.45) }
.lxm-drv__lista{ display:flex; flex-direction:column; gap:2px; max-height:420px; overflow-y:auto; overflow-x:hidden }
.lxm-drv__item{
	display:grid; grid-template-columns:26px 1fr auto auto; align-items:center; gap:10px;
	padding:9px 10px; border-radius:9px; font-size:13px;
	border:1px solid transparent; color:var(--lx-text-1,#f2f6ff);
}
.lxm-drv__item:nth-child(odd){ background:rgba(255,255,255,.025) }
.lxm-drv__item.is-pasta{ cursor:pointer }
.lxm-drv__item.is-pasta:hover{ border-color:rgba(120,170,255,.35); background:rgba(120,170,255,.08) }
.lxm-drv__ic{ font-size:15px; line-height:1; text-align:center }
.lxm-drv__nome{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.lxm-drv__tipo{ font-size:11px; color:var(--lx-text-2,#9fb0c9); white-space:nowrap }
.lxm-drv__tam{ font-size:11px; color:var(--lx-text-2,#9fb0c9); white-space:nowrap; min-width:56px; text-align:right }
.lxm-drv__mais{ margin-top:10px }
.lxm-drv__atalho{
	padding:15px 16px; border-radius:13px; grid-column:1 / -1;
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	background:rgba(255,255,255,.03);
	display:flex; flex-direction:column; gap:6px;
}
.lxm-drv__atalho strong{ font-size:14px; color:var(--lx-text-1,#f2f6ff) }
@media (max-width:430px){
	.lxm-drv__item{ grid-template-columns:24px 1fr auto; }
	.lxm-drv__tipo{ display:none }
}

/* [hidden] precisa vencer o display:grid do .lxm-cfgbox. */
#lxm-drive [hidden]{ display:none !important }

/* ===== Fonte do vídeo no editor de aula (etapa 6) ======================== */
.lxmb-fonte{ display:flex; flex-direction:column; gap:8px; margin-top:4px }
.lxmb-fonte__tit{ font-size:12.5px; font-weight:600; color:var(--lx-text-1,#f2f6ff) }
.lxmb-fonte__card,.lxmb-fonte__vazio{
	display:flex; align-items:center; gap:12px; flex-wrap:wrap;
	padding:13px 14px; border-radius:12px;
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
	background:rgba(255,255,255,.03);
}
.lxmb-fonte__vazio{ justify-content:space-between }
.lxmb-fonte__vazio>span{ flex:1 1 240px; font-size:12.5px; line-height:1.5 }
.lxmb-fonte__ic{ font-size:19px; line-height:1 }
.lxmb-fonte__txt{ flex:1 1 200px; display:flex; flex-direction:column; gap:3px; min-width:0 }
.lxmb-fonte__txt strong{ font-size:13.5px; color:var(--lx-text-1,#f2f6ff); overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.lxmb-fonte__txt small{ font-size:11.5px; color:var(--lx-text-2,#9fb0c9) }
.lxmb-fonte__bts{ display:flex; gap:8px; flex-wrap:wrap }
.lxmb-dica.is-erro{ color:#f0b3b3 }

.lxmb-drv{ position:fixed; inset:0; z-index:99999; display:flex; align-items:flex-end; justify-content:center; background:rgba(4,8,18,.62) }
.lxmb-drv[hidden]{ display:none !important }
.lxmb-drv__caixa{
	width:min(560px,100%); max-height:82vh; display:flex; flex-direction:column;
	border-radius:18px 18px 0 0; padding:18px;
	background:var(--lx-bg-2,#0d1424);
	border:1px solid var(--lx-borda,rgba(255,255,255,.12));
	box-shadow:0 -18px 60px rgba(0,0,0,.5);
}
.lxmb-drv__topo{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px }
.lxmb-drv__topo strong{ font-size:14.5px; color:var(--lx-text-1,#f2f6ff) }
.lxmb-drv__x{ background:none; border:0; color:var(--lx-text-2,#9fb0c9); font-size:21px; line-height:1; cursor:pointer; padding:2px 8px }
.lxmb-drv__busca{ display:flex; gap:8px; margin-bottom:12px }
.lxmb-drv__busca input{
	flex:1 1 auto; padding:9px 12px; border-radius:9px; font-size:13px;
	color:var(--lx-text-1,#f2f6ff); background:rgba(0,0,0,.26);
	border:1px solid var(--lx-borda,rgba(255,255,255,.10));
}
.lxmb-drv__lista{ flex:1 1 auto; overflow-y:auto; display:flex; flex-direction:column; gap:3px; min-height:90px }
.lxmb-drv__item{
	display:grid; grid-template-columns:26px 1fr auto; align-items:center; gap:11px;
	padding:10px; border-radius:10px; border:1px solid transparent;
}
.lxmb-drv__item:nth-child(odd){ background:rgba(255,255,255,.025) }
.lxmb-drv__item:hover{ border-color:rgba(120,170,255,.30) }
.lxmb-drv__ic{ font-size:16px; line-height:1; text-align:center }
.lxmb-drv__nome{ font-size:13px; color:var(--lx-text-1,#f2f6ff); min-width:0; overflow:hidden }
.lxmb-drv__sub{ font-size:11px; color:var(--lx-text-2,#9fb0c9) }
.lxmb-drv__estado{ padding:14px 4px; font-size:12.5px; margin:0 }
.lxmb-drv__estado.is-erro{ color:#f0b3b3 }
.lxmb-drv__rodape{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:12px }
.lxmb-drv__nota{ font-size:11px; flex:1 1 180px }
@media (min-width:720px){
	.lxmb-drv{ align-items:center }
	.lxmb-drv__caixa{ border-radius:18px }
}

/* [hidden] precisa vencer o display do tema e do wp-admin. */
.lxmb-drv [hidden],.lxmb-fonte [hidden],.lxmb-drv__rodape [hidden]{ display:none !important }

/* ---------------------------------------------------------------------------
   Google Drive, pasta-raiz de conteúdo (Integrações)
   A cerca do ecossistema: o Administrador escolhe uma pasta real do Drive.
--------------------------------------------------------------------------- */
.lxm-drv__raizbox { margin-top: 16px; }
.lxm-drv__raizatual { margin: 8px 0 12px; font-size: 14px; }
.lxm-drv__gaveta {
	margin-top: 12px;
	padding: 12px;
	border: 1px solid var(--lxm-borda, rgba(255, 255, 255, .12));
	border-radius: 10px;
	background: var(--lxm-fundo-2, rgba(255, 255, 255, .03));
}
.lxm-drv__gaveta .lxm-drv__lista { max-height: 260px; overflow-y: auto; }
.lxm-drv__rodape { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
#lxm-drive .lxm-drv__gaveta[hidden],
#lxm-drive .lxm-drv__rodape [hidden],
#lxm-drive .lxm-drv__acoes [hidden] { display: none !important; }
@media (max-width: 480px) {
	.lxm-drv__rodape { flex-direction: column; align-items: stretch; }
	.lxm-drv__gaveta { padding: 10px; }
}

/* ==========================================================================
   Central de Quiz, lxm-qz
   Mesma linguagem do restante do console: azul profundo, borda fina,
   brilho quase inexistente. Nada pisca, nada salta.
   ========================================================================== */

.lxm-qz [hidden]{ display:none !important; }

.lxm-qz__vazio{
  display:flex; flex-direction:column; gap:6px;
  padding:26px 22px; text-align:center;
}

.lxm-qz__lista{
  display:grid; gap:10px; margin-top:18px;
}

.lxm-qzcard{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:14px 16px;
  border:1px solid var(--lx-line); border-radius:var(--lx-r-md);
  background:var(--lx-glass);
  transition:border-color .18s ease, background .18s ease, transform .18s ease;
}
.lxm-qzcard:hover{
  border-color:rgba(91,140,255,.34);
  background:var(--lx-glass-2);
  transform:translateY(-1px);
}
.lxm-qzcard__txt{ display:flex; flex-direction:column; gap:3px; min-width:0; flex:1 1 260px; }
.lxm-qzcard__txt strong{ font-weight:600; letter-spacing:-.01em; }
.lxm-qzcard__txt small{ font-size:12px; line-height:1.5; }
.lxm-qzcard__chips{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

.lxm-qz__editor{
  margin-top:18px;
  display:flex; flex-direction:column; gap:20px;
}

.lxm-qz__onde{
  display:grid; gap:14px;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}
.lxm-qz__onde label{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.lxm-qz__onde label > span{
  font-size:12px; letter-spacing:.02em; color:var(--lx-muted);
}
.lxm-qz__onde select,
.lxm-qz__onde input[type="number"]{
  width:100%; max-width:100%;
  padding:10px 12px;
  color:var(--lx-text); font-family:inherit; font-size:14px;
  background:rgba(4,7,15,.55);
  border:1px solid var(--lx-line); border-radius:var(--lx-r-sm);
  transition:border-color .18s ease;
}
.lxm-qz__onde select:focus,
.lxm-qz__onde input[type="number"]:focus{
  outline:none; border-color:rgba(91,140,255,.55);
}
.lxm-qz__nota{ max-width:200px; }

.lxm-qz__perguntas{ display:grid; gap:14px; }

.lxm-qzp{
  padding:16px;
  border:1px solid var(--lx-line); border-radius:var(--lx-r-md);
  background:rgba(4,7,15,.35);
  display:flex; flex-direction:column; gap:12px;
}
.lxm-qzp__cab{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.lxm-qzp__num{
  flex:0 0 auto;
  width:26px; height:26px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:600;
  color:var(--lx-cyanish);
  background:rgba(47,92,255,.12);
  border:1px solid rgba(91,140,255,.28);
}
.lxm-qzp__perg{
  flex:1 1 220px; min-width:0;
  padding:9px 12px;
  color:var(--lx-text); font-family:inherit; font-size:15px;
  background:rgba(4,7,15,.55);
  border:1px solid var(--lx-line); border-radius:var(--lx-r-sm);
  transition:border-color .18s ease;
}
.lxm-qzp__perg:focus{ outline:none; border-color:rgba(91,140,255,.55); }
.lxm-qzp__fora{ flex:0 0 auto; }
.lxm-qzp__alts{ display:grid; gap:8px; padding-left:36px; }

.lxm-qzalt{
  display:flex; align-items:center; gap:10px;
  padding:7px 10px;
  border:1px solid transparent; border-radius:var(--lx-r-sm);
  background:rgba(255,255,255,.03);
  transition:border-color .18s ease, background .18s ease;
}
.lxm-qzalt:hover{ background:var(--lx-glass); }
.lxm-qzalt:has(input[type="radio"]:checked){
  border-color:rgba(61,220,151,.36);
  background:rgba(61,220,151,.07);
}
.lxm-qzalt input[type="radio"]{ flex:0 0 auto; accent-color:var(--lx-success); cursor:pointer; }
.lxm-qzalt input[type="text"]{
  flex:1 1 auto; min-width:0;
  padding:6px 8px;
  color:var(--lx-text); font-family:inherit; font-size:14px;
  background:transparent; border:none;
}
.lxm-qzalt input[type="text"]:focus{ outline:none; }
.lxm-qzalt__x{
  flex:0 0 auto;
  width:24px; height:24px; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--lx-muted); font-size:15px;
  background:transparent; border:none; border-radius:6px; cursor:pointer;
  transition:color .18s ease, background .18s ease;
}
.lxm-qzalt__x:hover{ color:var(--lx-danger); background:rgba(255,107,107,.10); }

.lxm-qz__rodape{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding-top:6px;
  border-top:1px solid var(--lx-line);
}
.lxm-qz__espaco{ flex:1 1 auto; }
.lxm-qz__apagar{ color:var(--lx-danger); }
.lxm-qz__apagar:hover{ border-color:rgba(255,107,107,.4); }

@media (max-width:760px){
  .lxm-qzp__alts{ padding-left:0; }
  .lxm-qz__nota{ max-width:none; }
  .lxm-qz__rodape > .lxm-btn{ flex:1 1 140px; justify-content:center; }
  .lxm-qz__espaco{ display:none; }
  .lxm-qzcard{ align-items:flex-start; }
}

/* ==========================================================================
   REFINO PREMIUM 1.57, experiência do aluno
   Mesma paleta, mesmas medidas. O que muda é o silêncio: menos peso visual
   competindo com o vídeo e com o texto.
   ========================================================================== */

/* --------------------------------------------------------- curso: retomar */

.lxm-coursehero__acao{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  margin-top:18px;
}
.lxm-coursehero__cta{
  display:inline-flex; align-items:center; gap:9px;
  padding:11px 20px;
  font-weight:600; letter-spacing:-.01em;
}
.lxm-coursehero__cta .lxm-icon{ width:16px; height:16px; }
.lxm-coursehero__prox{
  min-width:0; max-width:100%;
  font-size:13px; line-height:1.4; color:var(--lx-muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* ------------------------------------------------- aula: onde a pessoa está */

.lxm-asideonde{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin:12px 0 4px;
  font-size:12px; letter-spacing:.02em;
  color:var(--lx-muted);
}
.lxm-asideonde__mod{
  padding:3px 9px; border-radius:999px;
  color:var(--lx-cyanish);
  background:rgba(47,92,255,.10);
  border:1px solid rgba(91,140,255,.24);
}
.lxm-asideonde__sep{ opacity:.5; }

/* ------------------------------------------------ aula: navegação em três */

.lxm-lessonnav{
  display:grid; align-items:center; gap:10px;
  grid-template-columns:1fr auto 1fr;
  width:100%;
  padding-top:14px;
  border-top:1px solid var(--lx-line);
}
.lxm-lessonnav__lado{
  display:inline-flex; align-items:center; gap:9px;
  min-width:0;
  padding:9px 14px;
  color:var(--lx-muted); font-size:14px; text-decoration:none;
  border:1px solid transparent; border-radius:var(--lx-r-sm);
  transition:color .18s ease, border-color .18s ease, background .18s ease;
}
.lxm-lessonnav__lado:hover{
  color:var(--lx-text);
  border-color:rgba(91,140,255,.28);
  background:var(--lx-glass);
}
.lxm-lessonnav__lado:focus-visible{
  outline:none; color:var(--lx-text);
  border-color:rgba(91,140,255,.55);
}
.lxm-lessonnav__lado--antes{ justify-self:start; }
.lxm-lessonnav__lado--depois{ justify-self:end; }
.lxm-lessonnav__lado.is-vazio{ pointer-events:none; }
.lxm-lessonnav__rot{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lxm-lessonnav__seta{
  flex:0 0 auto; font-size:15px; line-height:1; opacity:.7;
  transition:transform .18s ease, opacity .18s ease;
}
.lxm-lessonnav__lado:hover .lxm-lessonnav__seta{ opacity:1; }
.lxm-lessonnav__lado--antes:hover .lxm-lessonnav__seta{ transform:translateX(-2px); }
.lxm-lessonnav__lado--depois:hover .lxm-lessonnav__seta{ transform:translateX(2px); }
.lxm-lessonnav__onde{
  justify-self:center; white-space:nowrap;
  padding:5px 12px; border-radius:999px;
  font-size:12px; letter-spacing:.03em; color:var(--lx-muted);
  background:rgba(255,255,255,.035);
  border:1px solid var(--lx-line);
}
.lxm-lessonnav__onde.is-vazio{ background:none; border-color:transparent; }
/* A regra antiga esticava qualquer botão daqui; agora não há botão nenhum. */
.lxm-lessonnav .lxm-btn{ flex:0 0 auto; }

/* Com a navegação virando uma faixa inteira, as ações ficam em duas linhas. */
.lxm-lessonactions{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px;
}
.lxm-lessonactions > .lxm-lessonnav{ flex:1 1 100%; }

/* ---------------------------------------------------- aula: salvar (estrela) */

.lxm-guardar .lxm-icon{
  width:16px; height:16px; fill:none;
  transition:fill .2s ease, transform .2s ease;
}
.lxm-guardar.is-salva{
  border-color:rgba(91,140,255,.5);
  color:var(--lx-text);
}
.lxm-guardar.is-salva .lxm-icon{
  fill:var(--lx-cyanish);
  transform:scale(1.06);
}

/* ------------------------------------------------------- aula: só estrelas */

.lxm-rating__box{ display:flex; flex-direction:column; gap:10px; }
.lxm-rating__acoes{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.lxm-rating__msg{ font-size:12px; color:var(--lx-muted); min-height:1em; }
.lxm-rating__msg.is-erro{ color:var(--lx-danger); }

/* ------------------------------------------------------------ palco (vídeo) */

.lxm-palco__quadro{
  box-shadow:
    0 40px 90px -50px rgba(2,6,20,.95),
    0 0 0 1px rgba(91,140,255,.06);
}
.lxm-palco__cinema{
  color:var(--lx-muted);
  transition:color .18s ease, border-color .18s ease;
}
.lxm-palco__cinema:hover{ color:var(--lx-text); }

/* =========================================================== responsividade */

/*
 * No celular a página vira uma coluna só e a ordem passa a ser a da leitura:
 * título, vídeo, ações, avaliação, descrição, materiais, quiz, comentários e
 * por último a lista do módulo. Para isso as duas colunas somem como caixa
 * (display:contents) e os filhos entram direto na mesma pilha, nenhuma das
 * duas tem fundo, borda ou padding, então nada se perde nessa troca.
 */
@media (max-width:900px){
  .lxm-lessongrid{ display:flex; flex-direction:column; gap:22px; align-items:stretch; }
  .lxm-lessonmain,
  .lxm-lessonaside{ display:contents; }

  .lxm-lessonhead        { order:1; }
  .lxm-palco             { order:2; align-items:stretch; }
  .lxm-lessoncover       { order:2; }
  .lxm-lessonactions     { order:3; flex-direction:column; align-items:stretch; }
  /* Regra antiga usava .lxm-lessonaside .lxm-rating{order:-1}; aqui a
     avaliação volta para o lugar pedido, com a mesma especificidade. */
  .lxm-lessonaside .lxm-rating{ order:4; }
  .lxm-rating            { order:4; }
  .lxm-lessonsobre       { order:5; }
  .lxm-lessonmateriais   { order:6; }
  .lxm-quiz              { order:7; }
  #lxm-comentarios       { order:8; }
  .lxm-lessonaside .lxm-asidebox{ order:9; }
  .lxm-asidebox          { order:9; }
  .lxm-lessonmain > script,
  .lxm-lessonaside > script,
  .lxm-lessonmain > .lxmb-feedback{ order:10; }

  .lxm-lessonaside{ position:static; }
  .lxm-palco__cinema{ width:100%; justify-content:center; }
  .lxm-lessonactions > .lxm-btn{ width:100%; justify-content:center; }
  .lxm-lessonnav{ grid-template-columns:1fr auto 1fr; gap:6px; }
  .lxm-lessonnav__lado{ padding:9px 8px; font-size:13px; }
  .lxm-lessonnav__onde{ font-size:11px; padding:4px 9px; }
}

@media (max-width:430px){
  .lxm-lessonnav__rot{ display:none; }
  .lxm-lessonnav__seta{ font-size:17px; opacity:1; }
  .lxm-lessonnav__lado{ padding:9px 12px; }
  .lxm-coursehero__acao{ flex-direction:column; align-items:stretch; }
  .lxm-coursehero__cta{ justify-content:center; }
  .lxm-coursehero__prox{ text-align:center; }
  .lxm-asideonde{ font-size:11px; }
}

/*
 * Nada nesta área pode empurrar a página para o lado. Palavras muito longas
 * (um link colado, um nome de arquivo) quebram em vez de esticar a linha.
 */
.lxm-lessongrid,
.lxm-coursehero__body,
.lxm-lessonmain,
.lxm-lessonaside{ min-width:0; }
.lxm-lessonhead h2,
.lxm-coursehero__body h2,
.lxm-asidelesson__title,
.lxm-material__txt strong{ overflow-wrap:anywhere; }

/* ============================================================ acabamento */

/*
 * Foco visível em tudo que se navega pelo teclado. Um anel fino da mesma
 * família azul, sem o contorno branco padrão do navegador.
 */
.lxm-lessonnav__lado:focus-visible,
.lxm-guardar:focus-visible,
.lxm-coursehero__cta:focus-visible,
.lxm-asidelesson:focus-visible,
.lxm-qzcard button:focus-visible{
  outline:2px solid rgba(91,140,255,.55);
  outline-offset:2px;
}

/* Quem prefere menos movimento não recebe movimento nenhum. */
@media (prefers-reduced-motion:reduce){
  .lxm-lessonnav__seta,
  .lxm-guardar .lxm-icon,
  .lxm-qzcard,
  .lxm-palco__quadro{ transition:none; }
  .lxm-lessonnav__lado:hover .lxm-lessonnav__seta{ transform:none; }
  .lxm-qzcard:hover{ transform:none; }
}

/* ------------------------------------------- editor: etapa 03 (conteúdo) */

/*
 * A terceira etapa usa a mesma casca das duas primeiras. A diferença é que
 * ela não divide a linha com nada: módulos e aulas ocupam a largura toda.
 */
.lxm-consolebuilder .lxmb-settings--conteudo{ display:block; }
.lxm-consolebuilder .lxmb-bloco--conteudo{ width:100%; min-width:0; }
.lxm-consolebuilder .lxmb-bloco--conteudo #lxmb-tree{ min-width:0; }
.lxm-consolebuilder .lxmb-bloco--conteudo .lxmb-newbar{ margin-top:0; }

/* ==========================================================================
   Central de Integrações, cards, selos e página de cada integração
   Uma peça entra, outra sai. A tela existe para deixar isso óbvio.
   ========================================================================== */

.lxm-selo{
  flex:0 0 auto;
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 11px; border-radius:999px;
  font-size:11.5px; letter-spacing:.02em; white-space:nowrap;
  border:1px solid var(--lx-line);
  background:rgba(255,255,255,.04);
  color:var(--lx-muted);
}
.lxm-selo::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:currentColor; opacity:.85;
}
.lxm-selo--on{ color:var(--lx-success); border-color:rgba(61,220,151,.32); background:rgba(61,220,151,.08); }
.lxm-selo--meio{ color:var(--lx-cyanish); border-color:rgba(91,140,255,.30); background:rgba(47,92,255,.09); }
.lxm-selo--ruim{ color:var(--lx-danger); border-color:rgba(255,107,107,.32); background:rgba(255,107,107,.08); }

.lxm-intgrupo{ margin-top:22px; }
.lxm-intgrupo__titulo{
  margin:0 0 12px; font-size:12px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--lx-muted);
}

.lxm-intpadrao{
  display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap;
  padding:14px 16px; margin-bottom:14px;
  border:1px solid var(--lx-line); border-radius:var(--lx-r-md);
  background:var(--lx-glass);
}
.lxm-intpadrao label{ display:flex; flex-direction:column; gap:6px; min-width:0; flex:0 1 300px; }
.lxm-intpadrao label > span{ font-size:12px; letter-spacing:.02em; color:var(--lx-muted); }
.lxm-intpadrao select{
  width:100%; padding:9px 12px;
  color:var(--lx-text); font-family:inherit; font-size:14px;
  background:rgba(4,7,15,.55);
  border:1px solid var(--lx-line); border-radius:var(--lx-r-sm);
}
.lxm-intpadrao select:focus{ outline:none; border-color:rgba(91,140,255,.55); }
.lxm-intpadrao > .lxm-small{ flex:1 1 240px; line-height:1.5; }

.lxm-intgrade{
  display:grid; gap:12px;
  grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
  align-items:stretch;
}
.lxm-intcard{
  display:flex; align-items:flex-start; gap:14px;
  padding:15px 16px; min-width:0;
  color:inherit; text-decoration:none;
  border:1px solid var(--lx-line); border-radius:var(--lx-r-md);
  background:var(--lx-glass);
  transition:border-color .18s ease, background .18s ease, transform .18s ease;
}
.lxm-intcard:hover{
  border-color:rgba(91,140,255,.34);
  background:var(--lx-glass-2);
  transform:translateY(-1px);
}
.lxm-intcard.is-ausente{ opacity:.62; }
.lxm-intcard.is-ausente:hover{ opacity:.82; }
.lxm-intcard__icone{
  flex:0 0 auto;
  width:38px; height:38px; border-radius:11px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--lx-cyanish);
  background:rgba(47,92,255,.11);
  border:1px solid rgba(91,140,255,.22);
}
.lxm-intcard__icone .lxm-icon{ width:18px; height:18px; }
.lxm-intcard__txt{ display:flex; flex-direction:column; gap:5px; min-width:0; flex:1 1 auto; }
.lxm-intcard__linha{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  min-width:0;
}
.lxm-intcard__linha strong{
  font-weight:600; letter-spacing:-.01em; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.lxm-intcard__txt small{ font-size:12px; line-height:1.5; color:var(--lx-muted); overflow-wrap:anywhere; }

/* ------------------------------------------------ página de uma integração */

.lxm-intpage__voltar{
  display:inline-block; margin-bottom:16px;
  font-size:13px; color:var(--lx-muted); text-decoration:none;
  transition:color .18s ease;
}
.lxm-intpage__voltar:hover{ color:var(--lx-text); }

.lxm-intpage__topo{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding-bottom:16px; border-bottom:1px solid var(--lx-line);
}
.lxm-intpage__icone{
  flex:0 0 auto;
  width:44px; height:44px; border-radius:13px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--lx-cyanish);
  background:rgba(47,92,255,.11);
  border:1px solid rgba(91,140,255,.22);
}
.lxm-intpage__icone .lxm-icon{ width:20px; height:20px; }
.lxm-intpage__id{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1 1 200px; }
.lxm-intpage__id h3{ margin:0; }

.lxm-intpage__guia{
  display:grid; gap:22px; margin-top:20px;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.lxm-guia h4{
  margin:0 0 9px; font-size:12px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--lx-muted);
}
.lxm-guia p{ margin:0; line-height:1.6; }
.lxm-guia__lista,
.lxm-guia__passos{ margin:0; padding-left:20px; display:grid; gap:6px; }
.lxm-guia__lista{ list-style:disc; }
.lxm-guia__passos{ list-style:decimal; }
.lxm-guia__lista li,
.lxm-guia__passos li{ line-height:1.55; }
.lxm-guia__passos li::marker{ color:var(--lx-cyanish); font-weight:600; }

.lxm-intpage__ausente{
  display:flex; flex-direction:column; gap:7px;
  padding:20px 22px;
}
.lxm-intpage__ausente .lxm-small{ line-height:1.6; }

.lxm-naofaca{
  padding:18px 20px;
  border:1px solid rgba(255,107,107,.24); border-radius:var(--lx-r-md);
  background:rgba(255,107,107,.05);
}
.lxm-naofaca h4{
  margin:0 0 10px; font-size:12px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--lx-danger);
}
.lxm-naofaca ul{ margin:0; padding-left:20px; list-style:disc; display:grid; gap:6px; }
.lxm-naofaca li{ line-height:1.55; }
.lxm-naofaca li::marker{ color:var(--lx-danger); }

.lxm-risco{
  padding:16px 18px;
  border:1px dashed var(--lx-line); border-radius:var(--lx-r-md);
}
.lxm-risco h4{
  margin:0 0 8px; font-size:12px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--lx-muted);
}
.lxm-risco p{ margin:0; line-height:1.6; }

@media (max-width:640px){
  .lxm-intgrade{ grid-template-columns:1fr; }
  .lxm-intcard__linha{ flex-wrap:wrap; }
  .lxm-intcard__linha strong{ white-space:normal; }
  .lxm-intpage__topo{ align-items:flex-start; }
  .lxm-intpadrao label{ flex:1 1 100%; }
}

/* ------------------------------------------- editor: fonte do vídeo (2.1) */

.lxmb-fonte__opcoes{
  display:grid; gap:8px; margin:10px 0 14px;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}
.lxmb-op{
  display:flex; align-items:flex-start; gap:10px;
  padding:11px 13px; min-width:0; cursor:pointer;
  border:1px solid var(--lx-line); border-radius:var(--lx-r-sm);
  background:rgba(255,255,255,.03);
  transition:border-color .18s ease, background .18s ease;
}
.lxmb-op:hover{ border-color:rgba(91,140,255,.30); background:var(--lx-glass); }
.lxmb-op.is-on{
  border-color:rgba(91,140,255,.55);
  background:rgba(47,92,255,.10);
}
.lxmb-op.is-off{ opacity:.5; cursor:not-allowed; }
.lxmb-op.is-off:hover{ border-color:var(--lx-line); background:rgba(255,255,255,.03); }
.lxmb-op input[type="radio"]{ flex:0 0 auto; margin-top:3px; accent-color:var(--lx-royal); }
.lxmb-op__txt{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.lxmb-op__txt strong{ font-weight:600; font-size:13.5px; }
.lxmb-op__txt small{ font-size:11.5px; line-height:1.45; color:var(--lx-muted); overflow-wrap:anywhere; }

.lxmb-fonte__painel[hidden]{ display:none !important; }

.lxmb-troca{
  display:flex; flex-direction:column; gap:8px;
  padding:14px 16px; margin-bottom:14px;
  border:1px solid rgba(91,140,255,.34); border-radius:var(--lx-r-sm);
  background:rgba(47,92,255,.08);
}
.lxmb-troca[hidden]{ display:none !important; }
.lxmb-troca p{ margin:0; line-height:1.55; }
.lxmb-troca__aviso{ font-size:12.5px; color:var(--lx-muted); }
.lxmb-troca__bts{ display:flex; gap:8px; flex-wrap:wrap; margin-top:2px; }

@media (max-width:560px){
  .lxmb-fonte__opcoes{ grid-template-columns:1fr; }
  .lxmb-troca__bts .button{ flex:1 1 130px; }
}


/* ------------------------------------------------------------------ */
/* Central de Integrações, grade de marcas                            */
/* ------------------------------------------------------------------ */
/*
 * O card virou uma vitrine: a marca ocupa o centro, com muito espaço
 * em volta, e embaixo fica só o que importa para decidir, categoria e
 * estado real. O nome não se repete porque toda logo daqui é wordmark.
 * O palco tem tamanho fixo: marca nenhuma estica, corta ou deforma.
 */
.lxm-intgrade{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
}
@media (max-width:1500px){ .lxm-intgrade{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:1080px){ .lxm-intgrade{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .lxm-intgrade{ grid-template-columns:1fr; gap:14px; } }

.lxm-intcard{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:space-between;
  gap:0;
  padding:0;
  min-width:0;
  color:inherit;
  text-decoration:none;
  border:1px solid rgba(126,158,232,.13);
  border-radius:16px;
  background:
    radial-gradient(122% 88% at 50% -22%, rgba(91,140,255,.075), transparent 62%),
    linear-gradient(180deg, rgba(18,26,45,.60), rgba(11,16,29,.60));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
  overflow:hidden;
  transition:border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.lxm-intcard:hover{
  border-color:rgba(126,158,232,.27);
  transform:translateY(-2px);
  box-shadow:0 12px 32px -20px rgba(6,14,38,.95), inset 0 0 0 1px rgba(91,140,255,.06);
}
.lxm-intcard:focus-visible{
  outline:2px solid rgba(91,140,255,.55);
  outline-offset:2px;
}
.lxm-intcard.is-ausente{ opacity:.55; }
.lxm-intcard.is-ausente:hover{ opacity:.74; transform:none; }

.lxm-intcard__palco{
  display:flex;
  align-items:center;
  justify-content:center;
  width:180px;
  height:80px;
  margin:28px auto 22px;
  border-radius:12px;
}
body.lxm .lxm-intcard__logo{
  display:block;
  width:auto;
  height:auto;
  max-width:165px;
  max-height:56px;
  object-fit:contain;
  opacity:.94;
  transition:opacity .22s ease;
}
.lxm-intcard:hover .lxm-intcard__logo{ opacity:1; }

/* Marca de traço escuro: um halo frio de leve, sem placa branca. */
.lxm-intcard.is-marcaescura .lxm-intcard__palco{
  background:radial-gradient(62% 72% at 50% 50%, rgba(226,234,250,.15), transparent 74%);
}

.lxm-intcard__rodape{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  padding:11px 16px 12px;
  border-top:1px solid rgba(126,158,232,.10);
  background:rgba(8,12,22,.30);
}
.lxm-intcard__cat{
  min-width:0;
  font-size:11px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:rgba(198,212,240,.50);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lxm-intcard__rodape .lxm-selo{ flex:0 0 auto; }

/* Sem logo cadastrada: o ícone antigo continua servindo. */
.lxm-intcard__palco .lxm-intcard__icone{ width:34px; height:34px; }
.lxm-intcard__nome{ margin-left:10px; font-weight:600; }

@media (max-width:640px){
  /* No celular a logo e a unica coisa que identifica o card de longe;
     +50px de largura util. O palco cresce junto e ganha max-width:100%
     para nunca passar do card, mesmo num aparelho de 360px. */
  .lxm-intcard__palco{ width:240px; max-width:100%; height:112px; margin:26px auto 22px; }
  /* Icone da integracao aberta: +50px no celular, junto com o SVG de
     dentro, para o desenho nao ficar perdido no meio da placa. */
  .lxm-intpage__icone{ width:94px; height:94px; border-radius:26px; }
  .lxm-intpage__icone .lxm-icon{ width:43px; height:43px; }
  body.lxm .lxm-intcard__logo{ max-width:222px; max-height:96px; }
  .lxm-intcard__rodape{ padding:11px 15px 12px; }
}

/* Modo claro: o card da integração vira uma placa azul profunda.
   Metade destas marcas tem texto branco (YouTube, bunny.net), a outra
   metade tem traço escuro. Um fundo claro apagaria as primeiras. Uma
   placa azul escura constante deixa todas legíveis nos dois temas, e
   o card passa a ser a única peça escura da tela clara, de propósito. */
:root[data-theme="light"] .lxm-intcard{
  border-color:rgba(23,45,92,.18);
  background:
    radial-gradient(122% 88% at 50% -22%, rgba(86,134,240,.22), transparent 60%),
    linear-gradient(180deg,#16294f,#0e1c39);
  box-shadow:0 14px 30px -22px rgba(14,30,66,.55), inset 0 1px 0 rgba(255,255,255,.05);
}
:root[data-theme="light"] .lxm-intcard:hover{
  border-color:rgba(120,166,255,.42);
  box-shadow:0 20px 38px -22px rgba(14,30,66,.6), inset 0 0 0 1px rgba(120,166,255,.16);
}
:root[data-theme="light"] .lxm-intcard__rodape{
  border-top-color:rgba(150,182,240,.16);
  background:rgba(5,12,28,.34);
}
:root[data-theme="light"] .lxm-intcard__cat{ color:rgba(206,222,252,.62); }
:root[data-theme="light"] .lxm-intcard__nome{ color:rgba(232,240,255,.92); }
:root[data-theme="light"] .lxm-intcard.is-marcaescura .lxm-intcard__palco{
  background:radial-gradient(62% 72% at 50% 50%, rgba(232,239,255,.20), transparent 74%);
}
/* Os selos vivem sobre a placa escura, não sobre a página clara. */
:root[data-theme="light"] .lxm-intcard .lxm-selo{
  color:rgba(224,234,255,.80);
  border-color:rgba(170,197,246,.26);
  background:rgba(255,255,255,.07);
}
:root[data-theme="light"] .lxm-intcard .lxm-selo--on{
  color:#54e0a6; border-color:rgba(84,224,166,.38); background:rgba(84,224,166,.12);
}
:root[data-theme="light"] .lxm-intcard .lxm-selo--meio{
  color:#93b7ff; border-color:rgba(147,183,255,.38); background:rgba(147,183,255,.13);
}
:root[data-theme="light"] .lxm-intcard .lxm-selo--ruim{
  color:#ff8f8f; border-color:rgba(255,143,143,.38); background:rgba(255,143,143,.12);
}
:root[data-theme="light"] .lxm-intcard.is-ausente{ opacity:.62; }
:root[data-theme="light"] .lxm-intcard.is-ausente:hover{ opacity:.78; }

/* A finalidade é a informação útil do rodapé, ela não pode ser cortada.
   Aperta um pouco o traço e, no aperto de verdade, quebra em duas linhas
   em vez de virar reticências. */
body.lxm .lxm-intcard__cat{
  font-size:10.5px;
  letter-spacing:.05em;
  line-height:1.25;
  white-space:normal;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

/* ------------------------------------------------------------------ */
/* Aula no celular: o vídeo manda                                      */
/* ------------------------------------------------------------------ */
/*
 * A raiz do player pequeno era o align-items:start herdado do grid do
 * desktop: virando flex column no celular, ele parou de alinhar e passou
 * a encolher a largura de cada item, palco, ações e seções junto.
 * Corrigido na própria regra do media 900. O que fica aqui é conforto
 * de toque e ritmo vertical.
 */
@media (max-width:640px){
  /*
   * A barra flutua sobre o vídeo (e já se esconde sozinha). Em duas
   * fileiras ela cobriria quase a imagem inteira, então aqui fica em uma
   * fileira só, e o que sai não é função, é repetição: o Cinema tem
   * botão próprio logo abaixo do palco, e a barrinha de volume não serve
   * num aparelho que tem botão físico. O mudo continua na barra.
   */
  .lxm-lp__barra{ padding:14px 10px 10px; }
  .lxm-lp__linha{ flex-wrap:nowrap; gap:0; }
  .lxm-lp__bt{ min-width:44px; min-height:44px; }
  .lxm-lp__play{ min-width:46px; min-height:46px; }
  .lxm-lp__cine{ display:none; }
  .lxm-lp__volfaixa{ display:none; }
  .lxm-lp__tempo{ font-size:11px; padding:0 2px; min-width:0; flex:0 1 auto; white-space:nowrap; }
  .lxm-lp__trilha{ margin-bottom:6px; }

  /* Cinema deixa de parecer um botão solto abaixo do vídeo. */
  .lxm-palco__cinema{ min-height:44px; margin-top:6px; }

  /* Concluir: largura útil inteira e altura confortável. */
  .lxm-lessonactions{ gap:10px; }
  .lxm-lessonactions .lxm-btn{ width:100%; flex:1 1 100%; min-height:54px; }

  /* Anterior / próxima: alvo de toque de verdade. */
  .lxm-lessonnav a, .lxm-lessonnav button{ min-width:44px; min-height:44px; }

  /* Título: hierarquia sem gastar quatro linhas. */
  .lxm-lessonhead h2{ font-size:clamp(19px, 5.4vw, 24px); line-height:1.22; }

  /* Aviso de administrador: mesma informação, menos altura. */
  .lxm-previewbar{ padding:10px 12px; gap:8px; font-size:12.5px; line-height:1.35; align-items:flex-start; }
  .lxm-previewbar svg{ flex:0 0 auto; margin-top:1px; }
}

/* Celular deitado: sobra largura, falta altura, o palco não pode passar
   da tela, senão os controles saem de vista. */
@media (max-width:900px) and (orientation:landscape){
  .lxm-palco__quadro{ max-width:calc((100dvh - 150px) * 16 / 9); margin-inline:auto; }
  /* Deitado sobra largura: os sete controles cabem, e cabem grandes. */
  .lxm-lp__bt{ min-width:44px; min-height:44px; }
  .lxm-lp__play{ min-width:46px; min-height:46px; }
  .lxm-lessonactions .lxm-btn{ min-height:48px; }
  .lxm-lessonnav a, .lxm-lessonnav button{ min-width:44px; min-height:44px; }
}

/* ------------------------------------------------------------------ */
/* ETAPA 1.62, Legado Player: Play proporcional e fullscreen central  */
/* ------------------------------------------------------------------ */
/* Causa real do vídeo colado no topo: `.lxm-player video` põe o vídeo */
/* em position:absolute com inset:0 e height:100%, mas                  */
/* `.lxm-player--file.is-lp video` (mais específica) devolve            */
/* height:auto. Elemento substituído com height:auto se dimensiona pela */
/* própria proporção e fica ancorado em top:0, sobra preta embaixo.    */
/* Em fullscreen o palco vira a tela inteira e essa sobra fica enorme.  */
.lxm-player--file.is-lp video{
	height:100%;
	object-fit:contain;
	object-position:center center;
	background:#000;
}

/* Fullscreen: o palco assume a viewport e centraliza o vídeo.          */
/* Regras separadas de propósito: um seletor desconhecido invalidaria   */
/* a lista inteira em navegadores que não conhecem o prefixo.           */
.lxm-player--file.is-lp:fullscreen{
	width:100dvw;
	height:100dvh;
	max-width:none;
	max-height:none;
	aspect-ratio:auto;
	border-radius:0;
	border:0;
	background:#000;
	display:flex;
	align-items:center;
	justify-content:center;
}
.lxm-player--file.is-lp:-webkit-full-screen{
	width:100vw;
	height:100vh;
	max-width:none;
	max-height:none;
	aspect-ratio:auto;
	border-radius:0;
	border:0;
	background:#000;
	display:flex;
	align-items:center;
	justify-content:center;
}
.lxm-player--file.is-lp:fullscreen video{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:contain;
	object-position:center center;
}
.lxm-player--file.is-lp:-webkit-full-screen video{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:contain;
	object-position:center center;
}
/* A barra continua absoluta no rodapé: fora do fluxo, não empurra o    */
/* vídeo. Em fullscreen ela ganha respiro para não colar na borda.      */
.lxm-player--file.is-lp:fullscreen .lxm-lp__barra{
	padding-bottom:max(14px, env(safe-area-inset-bottom));
}

/* Diamond Play proporcional no celular.                                */
/* Causa do tamanho: o botão é um quadrado girado 45°, e girar um       */
/* quadrado multiplica a diagonal por raiz de 2. Com 46px de lado o     */
/* losango aparecia com 65px. Aqui o botão deixa de girar (alvo de      */
/* toque limpo de 48x48) e o losango passa a ser uma camada interna de  */
/* 38px de lado, que desenha 53,7px de diagonal.                        */
@media (max-width:640px), (max-width:900px) and (orientation:landscape){
	.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play{
		position:relative;
		width:48px;
		height:48px;
		min-width:48px;
		min-height:48px;
		background:transparent;
		border-radius:12px;
		transform:none;
		overflow:visible;
	}
	.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play::before{
		content:'';
		position:absolute;
		left:50%;
		top:50%;
		width:38px;
		height:38px;
		margin:-19px 0 0 -19px;
		border-radius:10px;
		background:var(--lxm-lp-cor);
		transform:rotate(45deg);
		transition:filter .15s, transform .15s;
	}
	.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play i{
		position:relative;
		z-index:1;
		transform:none;
	}
	.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play:active{
		transform:none;
	}
	.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play:active::before{
		transform:rotate(45deg) scale(.94);
	}
	.lxm-lp[data-lxm-lp-play="diamante"] .lxm-lp__play:hover::before{
		filter:brightness(1.12);
	}
}

/* ------------------------------------------------------------------ */
/* ETAPA 1.64, Legado Player: play em círculo e X de sair da tela     */
/* ------------------------------------------------------------------ */
/* O losango era um quadrado girado 45°, e girar fazia o tamanho       */
/* aparente depender do raio da borda: 38px de lado com 10px de raio   */
/* desenhavam 45,5px. O círculo não tem esse problema.                 */
/*                                                                     */
/* Aqui o desenho e o alvo de toque são camadas separadas de           */
/* propósito: o botão é a área que o dedo acerta, o ::before é o       */
/* círculo que a pessoa vê. Assim dá para ter 33px de desenho sem      */
/* deixar o alvo abaixo dos 44px recomendados.                         */
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play{
	position:relative;
	width:40px;
	height:40px;
	min-width:40px;
	min-height:40px;
	border-radius:50%;
	background:transparent;
	transform:none;
	overflow:visible;
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play::before{
	content:'';
	position:absolute;
	left:50%;
	top:50%;
	width:40px;
	height:40px;
	margin:-20px 0 0 -20px;
	border-radius:50%;
	background-color:var(--lxm-lp-cor);
	background-image:radial-gradient(120% 120% at 50% 0%, rgba(255,255,255,.24), rgba(255,255,255,0) 62%);
	box-shadow:0 0 0 1px rgba(255,255,255,.12) inset, 0 4px 14px rgba(0,0,0,.34);
	transition:filter .16s ease, transform .16s ease, box-shadow .16s ease;
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play i{
	position:relative;
	z-index:1;
	transform:none;
	filter:drop-shadow(0 1px 1px rgba(0,0,0,.22));
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play:hover{
	background:transparent;
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play:hover::before{
	filter:brightness(1.09);
	box-shadow:0 0 0 1px rgba(255,255,255,.18) inset, 0 6px 18px rgba(0,0,0,.40);
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play:active{
	transform:none;
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play:active::before{
	transform:scale(.94);
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play:focus-visible{
	outline:none;
}
.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play:focus-visible::before{
	box-shadow:0 0 0 2px #fff, 0 4px 14px rgba(0,0,0,.34);
}

/* Celular: desenho de 33px dentro de um alvo de toque de 44px. */
@media (max-width:640px), (max-width:900px) and (orientation:landscape){
	.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play{
		width:44px;
		height:44px;
		min-width:44px;
		min-height:44px;
	}
	.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play::before{
		width:33px;
		height:33px;
		margin:-16.5px 0 0 -16.5px;
	}
	/* Com o circulo em 33px o triangulo padrao (12x14) ficava grande       */
	/* demais dentro dele; aqui ele acompanha a nova escala.               */
	.lxm-lp[data-lxm-lp-play="circulo"] .lxm-lp__play i{
		border-width:6px 0 6px 10px;
		margin-left:2px;
	}
	.lxm-player--file.is-tocando[data-lxm-lp-play="circulo"] .lxm-lp__play i{
		width:9px;
		height:11px;
		margin:0;
		border:0;
		background:linear-gradient(to right, #fff 0, #fff 3px, transparent 3px, transparent 6px, #fff 6px, #fff 9px);
	}
}

/* ------------------------------------------------------------------ */
/* X de sair da tela cheia                                             */
/* ------------------------------------------------------------------ */
/* O Chrome do Android mostra um aviso próprio ("arraste de cima para  */
/* baixo") ao entrar em tela cheia; nenhum site consegue removê-lo.    */
/* O que dá para fazer é oferecer uma saída no toque, que é este X.    */
/* Ele vive fora da barra de controles de propósito: a barra some      */
/* sozinha durante a reprodução, e a saída não pode sumir junto.       */
.lxm-lp__fechar{
	display:none;
	position:absolute;
	top:max(12px, env(safe-area-inset-top));
	right:max(12px, env(safe-area-inset-right));
	width:44px;
	height:44px;
	padding:0;
	border:0;
	background:transparent;
	color:#fff;
	cursor:pointer;
	z-index:4;
	align-items:center;
	justify-content:center;
}
.lxm-lp__fechar::before{
	content:'';
	position:absolute;
	left:50%;
	top:50%;
	width:33px;
	height:33px;
	margin:-16.5px 0 0 -16.5px;
	border-radius:50%;
	background-color:var(--lxm-lp-cor);
	background-image:radial-gradient(120% 120% at 50% 0%, rgba(255,255,255,.24), rgba(255,255,255,0) 62%);
	box-shadow:0 0 0 1px rgba(255,255,255,.12) inset, 0 4px 14px rgba(0,0,0,.34);
	transition:filter .16s ease, transform .16s ease;
}
.lxm-lp__fechar i{
	position:relative;
	z-index:1;
	display:block;
	width:13px;
	height:13px;
}
.lxm-lp__fechar i::before,
.lxm-lp__fechar i::after{
	content:'';
	position:absolute;
	left:0;
	top:50%;
	width:100%;
	height:2px;
	margin-top:-1px;
	border-radius:2px;
	background:#fff;
}
.lxm-lp__fechar i::before{ transform:rotate(45deg); }
.lxm-lp__fechar i::after{ transform:rotate(-45deg); }
.lxm-lp__fechar:hover::before{ filter:brightness(1.09); }
.lxm-lp__fechar:active::before{ transform:scale(.94); }
.lxm-lp__fechar:focus-visible::before{ box-shadow:0 0 0 2px #fff, 0 4px 14px rgba(0,0,0,.34); }
.lxm-player--file.is-lp:fullscreen .lxm-lp__fechar{ display:inline-flex; }
.lxm-player--file.is-lp:-webkit-full-screen .lxm-lp__fechar{ display:inline-flex; }

/* Celular deitado: a barra estava estourando 106px desde a ETAPA 1.61   */
/*, o esconder do Cinema duplicado e do slider de volume só valia até   */
/* 640px de largura, e um celular deitado tem 844. Mesmo critério de     */
/* sempre: sai duplicação, não sai função (o Cinema existe abaixo do     */
/* palco e o botão de mudo continua na barra).                           */
@media (max-width:900px) and (orientation:landscape){
	.lxm-lp__cine{ display:none; }
	.lxm-lp__volfaixa{ display:none; }
}

/* ------------------------------------------------------------------ */
/* ETAPA 1.65, Modo cinema: o resto desfoca, o vídeo fica             */
/* ------------------------------------------------------------------ */
/* Antes o modo cinema só baixava a opacidade de parte da página, e o  */
/* que sobrava continuava nítido competindo com o vídeo. Agora tudo    */
/* que não é o palco recua de verdade: opacidade baixa e desfoque.     */
/* O botão de sair mora dentro do palco, então continua nítido sem     */
/* precisar de exceção. Nada some: passar o mouse ou levar o foco de   */
/* teclado devolve o elemento, e ESC continua saindo do modo.          */
body.lxm-emcinema .lxm-sidebar,
body.lxm-emcinema .lxm-topbar,
body.lxm-emcinema .lxm-tabbar,
body.lxm-emcinema .lxm-lessonaside,
body.lxm-emcinema .lxm-breadcrumb,
body.lxm-emcinema .lxm-notice,
body.lxm-emcinema .lxm-lessonhead,
body.lxm-emcinema .lxm-lessonactions,
body.lxm-emcinema .lxm-lessonnav,
body.lxm-emcinema .lxm-lessonmain > .lxm-section,
body.lxm-emcinema .lxmb-feedback{
	opacity:.15;
	filter:saturate(.4) blur(5px);
	transition:opacity .32s ease, filter .32s ease;
}
body.lxm-emcinema .lxm-sidebar:hover,
body.lxm-emcinema .lxm-topbar:hover,
body.lxm-emcinema .lxm-tabbar:hover,
body.lxm-emcinema .lxm-lessonaside:hover,
body.lxm-emcinema .lxm-lessonactions:hover,
body.lxm-emcinema .lxm-lessonnav:hover,
body.lxm-emcinema .lxm-sidebar:focus-within,
body.lxm-emcinema .lxm-topbar:focus-within,
body.lxm-emcinema .lxm-tabbar:focus-within,
body.lxm-emcinema .lxm-lessonaside:focus-within,
body.lxm-emcinema .lxm-lessonactions:focus-within,
body.lxm-emcinema .lxm-lessonnav:focus-within{
	opacity:.92;
	filter:none;
}
/* A luz de ambiente é decorativa: só recua, sem desfoque, porque      */
/* borrar uma camada do tamanho da tela custa caro em celular fraco.   */
body.lxm-emcinema .lxm-luz{
	opacity:.25;
	transition:opacity .32s ease;
}
/* O palco sobe acima de tudo para nada encostar nele.                 */
body.lxm-emcinema .lxm-palco{
	position:relative;
	z-index:5;
}
/* O botão de sair é a única ação nítida da tela: ganha corpo.         */
body.lxm-emcinema .lxm-palco__cinema{
	color:#fff;
	background:rgba(10,16,34,.92);
	border-color:rgba(122,160,255,.55);
	box-shadow:0 10px 30px -12px rgba(0,0,0,.8);
}
body.lxm-emcinema .lxm-palco__cinema:hover{
	border-color:rgba(150,182,255,.8);
}
/* .lxm-lessonaside vira display:contents no celular. Nesse estado a   */
/* caixa não existe, e opacity/filter nela não pintam nada, medido:   */
/* o bloco "Conteúdo do curso" e a avaliação ficavam nítidos. Por isso */
/* o recuo cai nos filhos, que funcionam nos dois layouts.             */
body.lxm-emcinema .lxm-lessonaside > *{
	opacity:.15;
	filter:saturate(.4) blur(5px);
	transition:opacity .32s ease, filter .32s ease;
}
body.lxm-emcinema .lxm-lessonaside > *:hover,
body.lxm-emcinema .lxm-lessonaside > *:focus-within{
	opacity:.92;
	filter:none;
}

/* ------------------------------------------------------------------ */
/* ETAPA 1.66, a capa na tela de entrada                              */
/* ------------------------------------------------------------------ */
/* A tela de entrada e um documento proprio e, por desenho, nao carrega */
/* o app.js, quem tira a capa la dentro nao pode ser script. Entao a   */
/* mesma capa sai por animacao. Nao trava ninguem: a animacao roda      */
/* sozinha, e nao ha atraso artificial alem do tempo de desenho.        */
body.lxm-loginpage .lxm-entrando{
	animation:lxm-capa-sai .42s ease .40s forwards;
}
@keyframes lxm-capa-sai{
	to{ opacity:0; visibility:hidden; }
}
@media (prefers-reduced-motion: reduce){
	body.lxm-loginpage .lxm-entrando{ animation-duration:.01s; animation-delay:.01s; }
}

/* ------------------------------------------------------------------ */
/* ETAPA 1.67, midia protegida contra download                        */
/* ------------------------------------------------------------------ */
/* Complementa a trava de JS: no iOS o callout de toque so sai por CSS. */
[data-lxm-protege]{
	-webkit-touch-callout:none;
	-webkit-user-select:none;
	user-select:none;
}

/* ------------------------------------------------------------------ */
/* ETAPA 1.68, presenca da marca nos cards de integracao              */
/* ------------------------------------------------------------------ */
/* Palco padronizado: a imagem usa o maior tamanho possivel dentro dele */
/* sem distorcer. Cada marca tem proporcao propria, entao o limite e    */
/* por caixa (max-width + max-height), nunca por largura fixa.          */
/* O celular ja tinha sido ajustado numa etapa anterior e fica como     */
/* esta: la o palco ja e maior que o do desktop.                        */
@media (min-width:641px) and (max-width:900px){
  .lxm-intcard__palco{ width:160px; height:72px; }
  body.lxm .lxm-intcard__logo{ max-width:145px; max-height:50px; }
}

/* ===================================================================
   ETAPA 1.76, Certificados do aluno: a prévia grande.

   O aluno chega aqui antes de ter qualquer certificado. Em vez de um
   vazio com um ícone, ele vê a peça que vai receber e a regra para
   chegar nela. A folha é uma PRÉVIA: sem nome, sem código, sem data,
   as linhas ficam em branco de propósito, para ninguém confundir com
   documento emitido.

   O relevo é leve. Perspectiva no palco, não na folha, para o texto
   continuar nítido; o balanço é lento e para sozinho em quem pediu
   menos movimento no sistema.
   =================================================================== */

.lxm-certhero{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:34px;
  padding:26px 0 8px;
}

.lxm-certhero__palco{
  width:100%;
  max-width:760px;
  perspective:1400px;
  perspective-origin:50% 42%;
}

.lxm-certhero__peca{
  position:relative;
  transform-style:preserve-3d;
  transition:transform .5s cubic-bezier(.22,.61,.36,1);
  animation:lxm-certflutua 9s ease-in-out infinite;
  will-change:transform;
}
.lxm-certhero__peca.is-perto{ animation-play-state:paused; transition-duration:.12s; }

@keyframes lxm-certflutua{
  0%,100%{ transform:rotateX(1.6deg) rotateY(-2.2deg) translateY(0); }
  50%    { transform:rotateX(-1.1deg) rotateY(2.4deg) translateY(-9px); }
}

/* A folha: papel claro nos dois temas. Certificado é documento; inverter
   para preto no modo escuro faria parecer outra coisa. */
.lxm-certhero__folha{
  position:relative;
  aspect-ratio:1056 / 816;
  border-radius:14px;
  overflow:hidden;
  background:
    radial-gradient(120% 90% at 12% 0%, #ffffff 0%, #f7f5ef 46%, #efece2 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 34px 70px -34px rgba(6,12,30,.72),
    0 10px 26px -18px rgba(6,12,30,.55);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2.4%;
  padding:8% 10%;
  text-align:center;
}

/* Moldura fina por dentro, no tom da marca. */
.lxm-certhero__moldura{
  position:absolute;
  inset:3.2% 2.6%;
  border:1px solid rgba(47,92,255,.22);
  border-radius:8px;
  pointer-events:none;
}
.lxm-certhero__moldura::after{
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid rgba(47,92,255,.10);
  border-radius:5px;
}

/* Reflexo lento atravessando o papel. */
.lxm-certhero__brilho{
  position:absolute;
  top:-60%; left:-35%;
  width:38%; height:220%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.72), transparent);
  transform:rotate(14deg);
  animation:lxm-certbrilho 7.5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes lxm-certbrilho{
  0%,62%{ left:-35%; opacity:0; }
  70%   { opacity:.85; }
  100%  { left:118%; opacity:0; }
}

.lxm-certhero__chapeu{
  font-size:clamp(9px, 1.45vw, 14px);
  letter-spacing:.30em;
  text-transform:uppercase;
  color:rgba(28,42,84,.62);
  font-weight:600;
}

/* As linhas em branco são o recado: aqui entra o seu nome, aqui o curso. */
.lxm-certhero__linha{
  display:block;
  height:clamp(9px, 1.9vw, 17px);
  border-radius:99px;
  background:linear-gradient(90deg, rgba(28,42,84,.16), rgba(28,42,84,.07));
}
.lxm-certhero__linha--nome { width:min(72%, 430px); height:clamp(14px, 3.1vw, 30px); }
.lxm-certhero__linha--curso{ width:min(52%, 300px); }

.lxm-certhero__legenda{
  font-size:clamp(8px, 1.25vw, 12px);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(28,42,84,.45);
}

.lxm-certhero__selo{
  margin-top:1.5%;
  width:clamp(38px, 7.4vw, 66px);
  height:clamp(38px, 7.4vw, 66px);
  color:rgba(47,92,255,.55);
}
.lxm-certhero__selo svg{ width:100%; height:100%; }

.lxm-certhero__rodape{
  position:absolute;
  left:10%; right:10%; bottom:7%;
  display:flex;
  gap:5%;
  justify-content:center;
}
.lxm-certhero__campo{
  flex:0 1 22%;
  height:clamp(5px, .95vw, 9px);
  border-radius:99px;
  background:rgba(28,42,84,.10);
}

.lxm-certhero__dizer{
  max-width:620px;
  text-align:center;
  padding:0 4px;
}
.lxm-certhero__titulo{
  margin:0 0 12px;
  font-size:clamp(20px, 3.4vw, 27px);
  line-height:1.22;
  letter-spacing:-.02em;
}
.lxm-certhero__texto{
  margin:0;
  color:var(--lx-muted);
  font-size:15px;
  line-height:1.62;
}

@media (max-width:640px){
  .lxm-certhero{ gap:26px; padding:14px 0 4px; }
  .lxm-certhero__palco{ perspective:900px; }
  .lxm-certhero__folha{ border-radius:11px; padding:7% 8%; }
  .lxm-certhero__texto{ font-size:14.5px; }
}

/* Menos movimento no sistema: a peça fica parada e continua bonita. */
@media (prefers-reduced-motion: reduce){
  .lxm-certhero__peca{ animation:none; transform:none; }
  .lxm-certhero__brilho{ animation:none; opacity:0; }
}

/* ============================================================
   ETAPA 1.78, Certificados no console: o modelo do produtor.

   O produtor manda a arte e o plugin escreve por cima, sempre nos
   mesmos lugares. Por isso a prévia aqui é só a arte: mostrar campos
   falsos por cima dela seria prometer posição que o produtor não
   escolhe. Sem arte, a folha desenhada pelo plugin continua valendo,
   e o quadriculado leve deixa isso claro sem precisar de texto grande.
   ============================================================ */

.lxm-certmodelo{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:flex-start;
  padding:14px;
  border:1px solid var(--lx-line);
  border-radius:var(--lx-r-md);
  background:rgba(255,255,255,.02);
}

.lxm-certmodelo__palco{
  position:relative;
  flex:0 0 216px;
  width:216px;
  max-width:100%;
  aspect-ratio:1056 / 816;
  border:1px solid var(--lx-line);
  border-radius:var(--lx-r-sm);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    repeating-linear-gradient(45deg, rgba(127,127,127,.07) 0 7px, rgba(127,127,127,0) 7px 14px),
    var(--lx-glass);
}
.lxm-certmodelo__img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.lxm-certmodelo__img[hidden]{ display:none; }

.lxm-certmodelo__vazio{
  position:relative;
  padding:0 10px;
  text-align:center;
  font-size:11.5px;
  line-height:1.45;
  color:var(--lx-muted);
}
.lxm-certmodelo__palco.tem-imagem .lxm-certmodelo__vazio{ display:none; }

.lxm-certmodelo__lado{
  flex:1 1 250px;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
}
.lxm-certmodelo__lado strong{ font-size:14px; }
.lxm-certmodelo__lado p{ margin:0; }

.lxm-certmodelo__botoes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

/* O campo de arquivo cobre o botão inteiro, invisível: o clique cai
   direto nele e o navegador abre o seletor sem gambiarra de JS. */
.lxm-certmodelo__envio{
  position:relative;
  overflow:hidden;
  cursor:pointer;
}
.lxm-certform .lxm-certmodelo__envio input[type="file"]{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  opacity:0;
  cursor:pointer;
}

.lxm-certmodelo__lado .is-erro{ color:var(--lx-danger); }

.lxm-certform .lxm-certform__cpf{
  flex:0 0 128px;
  width:128px;
}

@media (max-width:720px){
  .lxm-certmodelo{ padding:12px; gap:13px; }
  .lxm-certmodelo__palco{ flex:1 1 100%; width:100%; }
  .lxm-certform .lxm-certform__cpf{ flex:1 1 100%; width:100%; }
}

/* ============================================================
   ETAPA 1.79, Certificado com a arte do produtor.

   Sem arte, a folha desenhada continua igual: nada foi tirado.
   Com arte, a imagem passa a ser a folha e o texto é escrito por
   cima, sempre nos mesmos lugares, o produtor escolhe o desenho,
   não a posição de cada campo, que é o que garante que nenhum
   certificado saia torto.

   A imagem fica no fluxo normal e é ela quem dá a altura da peça.
   Assim vale qualquer proporção enviada, sem cortar e sem esticar,
   e sem eu precisar adivinhar a medida.

   O texto mede em cqi (largura da própria peça), não em vw: a peça
   pode estar em qualquer largura de tela e a composição continua
   com as mesmas proporções internas.
   ============================================================ */

.lxm-certrolo{ width:100%; }

.lxm-cert--arte{
  position:relative;
  container-type:inline-size;
  background:none;
  padding:0;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.55);
}
.lxm-cert__arte{
  display:block;
  width:100%;
  height:auto;
}

.lxm-cert--arte .lxm-cert__frame{
  position:absolute;
  inset:0;
  box-sizing:border-box;
  border:0;
  border-radius:0;
  min-height:0;
  padding:7% 11% 20%;
  gap:1.1%;
  justify-content:center;
  color:#12183a;
  text-shadow:0 1px 2px rgba(255,255,255,.45);
}
.lxm-cert--tinta-clara .lxm-cert__frame{
  color:#f5f8ff;
  text-shadow:0 1px 3px rgba(0,0,0,.55);
}

/* Sobre a arte, cor é herdada: as cores fixas da folha escura não valem. */
.lxm-cert--arte .lxm-cert__eyebrow,
.lxm-cert--arte .lxm-cert__intro,
.lxm-cert--arte .lxm-cert__note,
.lxm-cert--arte .lxm-cert__cpf,
.lxm-cert--arte .lxm-cert__extra span,
.lxm-cert--arte .lxm-cert__sign small,
.lxm-cert--arte .lxm-cert__stamp small{ color:inherit; opacity:.78; }
.lxm-cert--arte .lxm-cert__body,
.lxm-cert--arte .lxm-cert__body strong,
.lxm-cert--arte .lxm-cert__site{ color:inherit; }
.lxm-cert--arte .lxm-cert__line{ background:currentColor; opacity:.5; }

.lxm-cert--arte .lxm-cert__head{ gap:1.4%; margin-bottom:0.6%; }
.lxm-cert--arte .lxm-cert__logo{ max-height:6cqi; max-width:26cqi; }
.lxm-cert--arte .lxm-cert__site{ font-size:2.3cqi; }
.lxm-cert--arte .lxm-cert__eyebrow{ font-size:1.35cqi; letter-spacing:.3em; }
.lxm-cert--arte .lxm-cert__intro{ font-size:1.75cqi; }
.lxm-cert--arte .lxm-cert__name{ font-size:5.4cqi; line-height:1.12; }
.lxm-cert--arte .lxm-cert__cpf{ font-size:1.6cqi; }
.lxm-cert--arte .lxm-cert__body{ font-size:1.95cqi; line-height:1.6; max-width:80%; }
.lxm-cert--arte .lxm-cert__note{ font-size:1.6cqi; }
.lxm-cert--arte .lxm-cert__extra{ font-size:1.55cqi; gap:0.6% 4%; }

.lxm-cert--arte .lxm-cert__foot{
  position:absolute;
  left:11%;
  right:11%;
  bottom:7%;
  margin-top:0;
  gap:4%;
}
.lxm-cert--arte .lxm-cert__sign{ max-width:34cqi; }
.lxm-cert--arte .lxm-cert__sign strong,
.lxm-cert--arte .lxm-cert__stamp strong{ font-size:1.9cqi; }
.lxm-cert--arte .lxm-cert__sign small,
.lxm-cert--arte .lxm-cert__stamp small{ font-size:1.4cqi; }
.lxm-cert--arte .lxm-cert__line{ height:1px; }

/* CPF e campos extras valem nas duas folhas. */
.lxm-cert__cpf{
  margin:0;
  font-size:13.5px;
  letter-spacing:.04em;
  color:rgba(200,212,255,.82);
}
.lxm-cert__extra{
  list-style:none;
  margin:2px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px 22px;
  font-size:13px;
}
.lxm-cert__extra li{ display:flex; gap:6px; align-items:baseline; }
.lxm-cert__extra span{ color:rgba(190,205,255,.72); }
.lxm-cert__extra strong{ font-weight:600; }

/* No celular a peça deitada não cabe legível. Em vez de encolher o texto
   até virar borrão, a peça mantém uma largura mínima e rola dentro da
   própria caixa, a página continua sem rolagem lateral. */
@media (max-width:680px){
  .lxm-certwrap{ padding-left:0; padding-right:0; }
  .lxm-certrolo{ overflow-x:auto; -webkit-overflow-scrolling:touch; padding:0 16px 6px; }
  .lxm-certrolo > .lxm-cert--arte{ min-width:600px; }
}

@media print{
  .lxm-certrolo{ overflow:visible; padding:0; min-width:0; }
  .lxm-certrolo > .lxm-cert--arte{ min-width:0; }
  .lxm-cert--arte{
    box-shadow:none;
    border-radius:0;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .lxm-cert--arte .lxm-cert__frame{
    border:0;
    min-height:0;
    color:#12183a;
  }
  .lxm-cert--tinta-clara .lxm-cert__frame{ color:#f5f8ff; }
}

/* ============================================================
   ETAPA 1.80, Uma folha só, para todo mundo.

   A aba do aluno mostrava um cartão de metadados; a página pública
   mostrava a folha. Agora as duas usam o mesmo trecho e a mesma
   aparência. Não há regra por perfil aqui, nunca houve: o que mudava
   era ter ou não ter certificado.

   As regras abaixo vêm por último de propósito. A classe .lxm-cert
   tinha quatro declarações espalhadas no arquivo (herança de quando
   ela era cartão e folha ao mesmo tempo) e o resultado dependia da
   ordem. Fixar a folha aqui, no fim, torna a aparência a mesma nos
   dois lugares sem eu precisar apagar o que já existia.
   ============================================================ */

.lxm-cert{
  display:block;
  padding:12px;
  border:0;
  border-radius:18px;
  background:linear-gradient(150deg,#0b1030 0%,#0a0d22 55%,#141a45 100%);
  box-shadow:0 30px 80px -34px rgba(0,0,0,.72);
}

.lxm-cert--arte{
  padding:0;
  border-radius:14px;
  background:none;
  position:relative;
  overflow:hidden;
  container-type:inline-size;
  box-shadow:0 30px 80px -34px rgba(0,0,0,.72);
}

/* A lista do aluno: uma folha por linha, do tamanho de folha mesmo. */
.lxm-certs{
  display:flex;
  flex-direction:column;
  gap:30px;
  width:100%;
  max-width:860px;
  margin:0 auto;
}
.lxm-certitem{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.lxm-certitem__acoes{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:center;
  margin:0;
}

@media (max-width:680px){
  .lxm-certs{ gap:24px; }
  .lxm-certitem__acoes .lxm-btn{ width:100%; justify-content:center; }
}

/* ============================================================
   ETAPA 1.81, A prévia do aluno pela metade.

   A peça ocupava a tela inteira e empurrava o recado para baixo
   da dobra: quem chegava aqui via um certificado em branco antes
   de ler por que ele ainda está em branco. Metade do tamanho põe
   a peça e a frase no mesmo olhar.

   Como a folha passou a ser um container, tudo dentro dela mede
   em cqi, a proporção interna do desenho continua a mesma em
   qualquer largura, sem eu ter que recalcular cada campo à mão.
   ============================================================ */

.lxm-certhero{ gap:22px; padding:16px 0 6px; }

.lxm-certhero__palco{
  max-width:380px;
  perspective:760px;
}

.lxm-certhero__folha{
  container-type:inline-size;
  border-radius:10px;
  padding:7.5% 9%;
  gap:2.8%;
}

.lxm-certhero__chapeu{
  font-size:clamp(7px, 1.85cqi, 14px);
  letter-spacing:.22em;
}
.lxm-certhero__linha{ height:clamp(6px, 2.25cqi, 17px); }
.lxm-certhero__linha--nome{ height:clamp(10px, 3.95cqi, 30px); width:min(74%, 430px); }
.lxm-certhero__linha--curso{ width:min(54%, 300px); }
.lxm-certhero__legenda{
  font-size:clamp(6px, 1.6cqi, 12px);
  letter-spacing:.12em;
}
.lxm-certhero__selo{
  margin-top:1.5%;
  width:clamp(26px, 8.7cqi, 66px);
  height:clamp(26px, 8.7cqi, 66px);
}
.lxm-certhero__rodape{ bottom:7.5%; }
.lxm-certhero__campo{ height:clamp(4px, 1.2cqi, 9px); }

/* O recado ganha o espaço que a peça devolveu. */
.lxm-certhero__dizer{ max-width:520px; }
.lxm-certhero__titulo{ font-size:clamp(21px, 2.6vw, 30px); }
.lxm-certhero__texto{ font-size:15.5px; }

@media (max-width:640px){
  .lxm-certhero{ gap:20px; }
  .lxm-certhero__palco{ max-width:300px; perspective:600px; }
  .lxm-certhero__texto{ font-size:14.5px; }
}

/* ============================================================
   ETAPA 1.82, A jornada do certificado.

   A tela deixou de ser uma vitrine do que já foi conquistado e passou a
   mostrar o caminho inteiro. Por isso ela tem dois blocos e um fundo:
   o fundo existe para dar profundidade sem competir com a peça, e por
   isso é azul de longe, difuso, e nunca encosta no texto.

   O banner de cada treinamento é um container: o nome do curso dentro
   dele mede em cqi, então cresce junto com a peça em vez de virar uma
   linha perdida no meio do papel.
   ============================================================ */

/* Profundidade atrás de tudo. Fica preso na tela e não recebe clique. */
.lxm-certaura{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(58% 44% at 18% 8%, rgba(47,92,255,.20) 0%, rgba(47,92,255,0) 68%),
    radial-gradient(46% 40% at 88% 22%, rgba(80,140,255,.16) 0%, rgba(80,140,255,0) 70%),
    radial-gradient(70% 50% at 50% 108%, rgba(24,54,160,.22) 0%, rgba(24,54,160,0) 72%);
}
.lxm-certtela{ position:relative; z-index:1; }
.lxm-certtela__cab{ margin-top:34px; }

/* ---------- O treinamento que ainda vai virar certificado ---------- */

.lxm-provalista{
  display:flex;
  flex-direction:column;
  gap:20px;
  width:100%;
  max-width:920px;
  margin:0 auto;
}

.lxm-provacard{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  align-items:center;
  padding:18px;
  border:1px solid var(--lx-line);
  border-radius:var(--lx-r-lg,18px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  box-shadow:0 26px 60px -40px rgba(0,0,0,.75);
}

.lxm-provacard__palco{
  flex:0 0 300px;
  max-width:100%;
}

/* A prévia: papel claro, moldura fina, brilho de leve. Documento de valor,
   mas sem nome e sem código, para ninguém confundir com o emitido. */
.lxm-provacard__folha{
  position:relative;
  container-type:inline-size;
  aspect-ratio:1056 / 816;
  border-radius:12px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3%;
  padding:9% 10%;
  text-align:center;
  background:radial-gradient(120% 90% at 12% 0%, #ffffff 0%, #f7f5ef 46%, #efece2 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 22px 46px -26px rgba(6,12,30,.8);
}

.lxm-provacard__brilho{
  position:absolute;
  top:-60%; left:-35%;
  width:38%; height:220%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.7), transparent);
  transform:rotate(14deg);
  animation:lxm-certbrilho 7.5s ease-in-out infinite;
  pointer-events:none;
}

.lxm-provacard__moldura{
  position:absolute;
  inset:4% 3.2%;
  border:1px solid rgba(47,92,255,.24);
  border-radius:7px;
  pointer-events:none;
}
.lxm-provacard__moldura::after{
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid rgba(47,92,255,.11);
  border-radius:4px;
}

.lxm-provacard__chapeu{
  position:relative;
  font-size:2.6cqi;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:rgba(28,42,84,.6);
  font-weight:600;
}

/* O nome do treinamento é o que dá realidade à peça. Ele é o maior. */
.lxm-provacard__curso{
  position:relative;
  font-family:Georgia,'Times New Roman',serif;
  font-size:7.4cqi;
  line-height:1.14;
  color:#16224d;
  font-weight:600;
  overflow-wrap:anywhere;
}

.lxm-provacard__risco{
  position:relative;
  display:block;
  width:46%;
  height:1px;
  background:rgba(28,42,84,.22);
}

.lxm-provacard__selo{
  position:relative;
  width:11cqi;
  height:11cqi;
  color:rgba(47,92,255,.55);
}
.lxm-provacard__selo svg{ width:100%; height:100%; }

/* ---------- O lado que fala ---------- */

.lxm-provacard__lado{
  flex:1 1 300px;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
}

.lxm-provacard__estado{
  display:inline-flex;
  align-items:center;
  padding:4px 11px;
  border-radius:99px;
  border:1px solid var(--lx-line);
  font-size:11.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--lx-muted);
}
.lxm-provacard--andando .lxm-provacard__estado{ border-color:rgba(47,92,255,.45); color:#8fb0ff; }
.lxm-provacard--ok .lxm-provacard__estado{ border-color:rgba(60,190,130,.45); color:#6fe0aa; }
.lxm-provacard--parado .lxm-provacard__estado{ border-color:rgba(229,72,77,.45); color:#ff9aa0; }

.lxm-provacard__titulo{
  margin:0;
  font-size:19px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.lxm-provacard__passo{
  margin:0;
  color:var(--lx-muted);
  font-size:14px;
  line-height:1.55;
}

.lxm-provacard__barra{
  width:100%;
  height:6px;
  border-radius:99px;
  overflow:hidden;
  background:rgba(255,255,255,.09);
}
.lxm-provacard__barra span{
  display:block;
  height:100%;
  border-radius:99px;
  background:linear-gradient(90deg,#2f5cff,#7aa2ff);
}
.lxm-provacard__pc{ font-size:12px; color:var(--lx-muted); }
.lxm-provacard__btn{ margin-top:5px; }

/* ---------- O painel do pedido ---------- */

.lxm-provapainel{
  position:fixed;
  inset:0;
  z-index:120;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
}
.lxm-provapainel[hidden]{ display:none !important; }
.lxm-provapainel__fundo{
  position:absolute;
  inset:0;
  background:rgba(4,8,22,.72);
  backdrop-filter:blur(3px);
}
.lxm-provapainel__caixa{
  position:relative;
  width:100%;
  max-width:470px;
  box-sizing:border-box;
  padding:30px 28px 26px;
  border:1px solid var(--lx-line);
  border-radius:20px;
  background:linear-gradient(165deg,#101736 0%,#0b1024 60%,#141c46 100%);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9);
  text-align:center;
}
.lxm-provapainel__x{
  position:absolute;
  top:10px; right:14px;
  border:0;
  background:none;
  color:var(--lx-muted);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.lxm-provapainel__selo{
  display:block;
  width:52px;
  height:52px;
  margin:0 auto 14px;
  color:#7aa2ff;
}
.lxm-provapainel__selo svg{ width:100%; height:100%; }
.lxm-provapainel__titulo{ margin:0 0 10px; font-size:22px; line-height:1.25; }
.lxm-provapainel__texto{ margin:0 0 20px; color:var(--lx-muted); font-size:14.5px; line-height:1.6; }
.lxm-provapainel__btn{ width:100%; justify-content:center; }
.lxm-provapainel__nota{ margin:14px 0 0; color:var(--lx-muted); font-size:12.5px; line-height:1.55; }

/* ---------- A fila do responsavel ---------- */

.lxm-pedido{
  border:1px solid var(--lx-line);
  border-radius:var(--lx-r-md);
  background:var(--lx-glass);
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.lxm-pedido__cab{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-start;
  justify-content:space-between;
}
.lxm-pedido__cab strong{ display:block; font-size:15px; }
.lxm-pedido__cab small{ display:block; margin-top:3px; color:var(--lx-muted); font-size:12.5px; }
.lxm-pedido__frase{ margin:0; font-size:14px; line-height:1.6; }
.lxm-pedido__dados{
  display:flex;
  flex-wrap:wrap;
  gap:10px 26px;
  margin:0;
}
.lxm-pedido__dados dt{ font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--lx-muted); }
.lxm-pedido__dados dd{ margin:2px 0 0; font-size:13.5px; }
.lxm-pedido__nota{
  margin:0;
  padding:9px 12px;
  border-left:2px solid rgba(47,92,255,.5);
  background:rgba(255,255,255,.03);
  border-radius:0 8px 8px 0;
  font-size:13px;
  color:var(--lx-muted);
}
.lxm-pedido__campo{ display:flex; flex-direction:column; gap:5px; }
.lxm-pedido__campo span{ font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--lx-muted); }
.lxm-pedido__campo input{
  width:100%;
  box-sizing:border-box;
  padding:9px 11px;
  border-radius:var(--lx-r-sm);
  border:1px solid var(--lx-line);
  background:rgba(255,255,255,.04);
  color:var(--lx-text);
  font:inherit;
  font-size:13.5px;
}
.lxm-pedido__acoes{ display:flex; flex-wrap:wrap; gap:9px; }
.lxm-pedido__dica{ margin:0; }

.lxm-chip--pedido{ border-color:rgba(47,92,255,.45); }
.lxm-chip--liberada{ border-color:rgba(122,162,255,.5); }
.lxm-chip--realizada{ border-color:rgba(200,170,60,.5); }
.lxm-chip--aprovado{ border-color:rgba(60,190,130,.5); }
.lxm-chip--reprovado,
.lxm-chip--recusado{ border-color:rgba(229,72,77,.5); }

@media (max-width:720px){
  .lxm-provacard{ padding:15px; gap:16px; }
  .lxm-provacard__palco{ flex:1 1 100%; }
  .lxm-provacard__btn{ width:100%; justify-content:center; }
  .lxm-provapainel{ padding:16px; }
  .lxm-provapainel__caixa{ padding:26px 20px 22px; }
  .lxm-pedido__acoes .lxm-btn{ flex:1 1 100%; justify-content:center; }
}

/* ==========================================================================
   ETAPA 1.83, Personalização por Código (somente Certificados)
   Central do Administrador: lista de personalizações, editor e parada de
   emergência. Nada aqui é carregado na área do aluno.
   ========================================================================== */

.lxm-perso__topo {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	align-items: flex-start;
	justify-content: space-between;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--lx-line);
}

.lxm-perso__id h3 {
	margin: 0 0 4px;
	font-size: 20px;
	letter-spacing: -0.01em;
}

.lxm-perso__id p { margin: 0; max-width: 56ch; }

.lxm-perso__nums {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.lxm-perso__num {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 7px 12px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-sm);
	background: var(--lx-glass);
	font-size: 12px;
	color: var(--lx-muted);
	white-space: nowrap;
}

.lxm-perso__num strong { font-size: 15px; color: var(--lx-text); }

.lxm-perso__num--on { border-color: color-mix(in srgb, var(--lx-royal) 45%, transparent); }
.lxm-perso__num--on strong { color: var(--lx-royal); }

.lxm-perso__alerta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 16px;
	padding: 12px 14px;
	border: 1px solid var(--lx-warn-ln, var(--lx-line));
	background: var(--lx-warn-bg, var(--lx-glass));
	color: var(--lx-warn-txt, var(--lx-text));
	border-radius: var(--lx-r-sm);
	font-size: 13px;
}

.lxm-perso__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
	margin-top: 18px;
}

.lxm-perso__novos { display: flex; flex-wrap: wrap; gap: 8px; }

.lxm-perso__panico { color: var(--lx-danger); border-color: color-mix(in srgb, var(--lx-danger) 35%, transparent); }

.lxm-perso__barra {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	margin-top: 16px;
}

.lxm-perso__abas { display: flex; flex-wrap: wrap; gap: 4px; }

.lxm-perso__aba {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid transparent;
	color: var(--lx-muted);
	text-decoration: none;
	font-size: 13px;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.lxm-perso__aba small { opacity: .65; font-size: 11px; }
.lxm-perso__aba:hover { color: var(--lx-text); background: var(--lx-glass); }

.lxm-perso__aba.is-active {
	color: var(--lx-text);
	background: var(--lx-glass-2);
	border-color: var(--lx-line);
}

.lxm-perso__busca { display: flex; gap: 8px; align-items: center; }
.lxm-perso__busca input[type="search"] { min-width: 200px; }
.lxm-perso__dica { margin: 16px 0 8px; }

.lxm-perso__lista { display: grid; gap: 10px; }

.lxm-persocard {
	display: grid;
	grid-template-columns: 22px 34px 1fr auto;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md);
	background: var(--lx-glass);
	transition: border-color .15s ease, background .15s ease, transform .12s ease;
}

.lxm-persocard:hover { border-color: var(--lx-borda-forte, var(--lx-line)); background: var(--lx-glass-2); }
.lxm-persocard.is-dragging { opacity: .45; }
.lxm-persocard.is-over { border-color: var(--lx-royal); transform: translateY(-1px); }

.lxm-persocard__pega { cursor: grab; color: var(--lx-text-4, var(--lx-muted)); font-size: 15px; line-height: 1; user-select: none; }
.lxm-persocard__ordem { font-variant-numeric: tabular-nums; font-size: 12px; color: var(--lx-muted); }
.lxm-persocard__corpo { min-width: 0; }
.lxm-persocard__nome { margin: 0 0 5px; font-size: 15px; font-weight: 600; }

.lxm-persocard__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 5px;
	font-size: 12px;
}

.lxm-persocard__tipo {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
	border: 1px solid var(--lx-line);
	color: var(--lx-text-2, var(--lx-text));
}

.lxm-persocard__tipo--css { border-color: color-mix(in srgb, var(--lx-royal) 45%, transparent); color: var(--lx-royal); }
.lxm-persocard__tipo--js { border-color: color-mix(in srgb, var(--lx-warn-txt, #d9a441) 45%, transparent); color: var(--lx-warn-txt, #d9a441); }
.lxm-persocard__tipo--html { border-color: color-mix(in srgb, var(--lx-cyanish, #46b5c9) 45%, transparent); color: var(--lx-cyanish, #46b5c9); }

.lxm-persocard__estado { display: inline-flex; align-items: center; gap: 6px; color: var(--lx-muted); }

.lxm-persocard__estado::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--lx-text-4, var(--lx-muted));
}

.lxm-persocard--ativo .lxm-persocard__estado { color: var(--lx-success, #46c98a); }
.lxm-persocard--ativo .lxm-persocard__estado::before { background: var(--lx-success, #46c98a); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lx-success, #46c98a) 20%, transparent); }
.lxm-persocard--rascunho .lxm-persocard__estado { color: var(--lx-warn-txt, #d9a441); }
.lxm-persocard--rascunho .lxm-persocard__estado::before { background: transparent; border: 2px solid var(--lx-warn-txt, #d9a441); width: 9px; height: 9px; }
.lxm-persocard--ativo { border-left: 2px solid color-mix(in srgb, var(--lx-success, #46c98a) 60%, transparent); }
.lxm-persocard--rascunho { border-left: 2px solid color-mix(in srgb, var(--lx-warn-txt, #d9a441) 55%, transparent); }

.lxm-persocard__desc { margin: 0 0 5px; font-size: 13px; color: var(--lx-text-2, var(--lx-muted)); }
.lxm-persocard__data { margin: 0; }
.lxm-persocard__acoes { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.lxm-persocard__del { color: var(--lx-danger); }

/* --------------------------------------------------------------- editor -- */

.lxm-edveu {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: rgba(3, 6, 14, .62);
	backdrop-filter: blur(3px);
}

.lxm-editor {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 91;
	width: min(760px, 100vw);
	display: flex;
	flex-direction: column;
	background: var(--lx-surface, #0b1020);
	border-left: 1px solid var(--lx-line);
	box-shadow: -30px 0 80px rgba(0, 0, 0, .45);
}

.lxm-editor__cab {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 20px;
	border-bottom: 1px solid var(--lx-line);
}

.lxm-editor__titulo { margin: 0 0 3px; font-size: 17px; }
.lxm-editor__sub { margin: 0; }

.lxm-editor__x {
	background: none;
	border: 0;
	color: var(--lx-muted);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	padding: 0 4px;
}

.lxm-editor__x:hover { color: var(--lx-text); }

.lxm-editor__corpo {
	flex: 1 1 auto;
	overflow: auto;
	padding: 18px 20px;
	display: grid;
	gap: 16px;
	align-content: start;
}

.lxm-editor__campos { display: grid; gap: 12px; }
.lxm-editor__linha { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lxm-editor__pe { display: flex; gap: 10px; justify-content: flex-end; padding: 14px 20px; border-top: 1px solid var(--lx-line); }

.lxm-ed { display: grid; gap: 8px; }

.lxm-ed__cab {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 11px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--lx-muted);
}

.lxm-ed__lang { font-weight: 700; color: var(--lx-text-2, var(--lx-text)); }
.lxm-ed__aviso { color: var(--lx-warn-txt, #d9a441); text-transform: none; letter-spacing: 0; }
.lxm-ed__pos { margin-left: auto; text-transform: none; letter-spacing: 0; font-variant-numeric: tabular-nums; }

.lxm-ed__caixa {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-sm);
	background: var(--lx-black, #05070e);
	overflow: hidden;
	min-height: 340px;
}

.lxm-ed__gutter {
	flex: 0 0 auto;
	padding: 12px 8px 12px 12px;
	text-align: right;
	font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	color: var(--lx-text-4, #5a6a86);
	background: rgba(255, 255, 255, .02);
	border-right: 1px solid var(--lx-line);
	white-space: pre;
	overflow: hidden;
	user-select: none;
	min-width: 3ch;
}

.lxm-ed__area {
	flex: 1 1 auto;
	border: 0;
	outline: none;
	resize: vertical;
	min-height: 340px;
	padding: 12px 14px;
	background: transparent;
	color: var(--lx-text);
	font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	white-space: pre;
	overflow: auto;
	tab-size: 2;
}

.lxm-ed__erro {
	margin: 0;
	padding: 9px 12px;
	border-radius: var(--lx-r-sm);
	border: 1px solid var(--lx-bad-ln, var(--lx-line));
	background: var(--lx-bad-bg, var(--lx-glass));
	color: var(--lx-bad-txt, var(--lx-danger));
	font-size: 13px;
}

.lxm-ed__ajuda { margin: 0; }

/* ------------------------------------------------- marcação do resultado -- */

.lxm-snip { display: contents; }
.lxm-snip--previa { display: block; outline: 1px dashed color-mix(in srgb, var(--lx-warn-txt, #d9a441) 60%, transparent); outline-offset: 4px; }

@media (max-width: 900px) {
	.lxm-persocard { grid-template-columns: 22px 1fr; }
	.lxm-persocard__ordem { display: none; }
	.lxm-persocard__acoes { grid-column: 1 / -1; justify-content: flex-start; }
	.lxm-editor__linha { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
	.lxm-perso__topo { flex-direction: column; }
	.lxm-perso__acoes { flex-direction: column; align-items: stretch; }
	.lxm-perso__busca input[type="search"] { min-width: 0; width: 100%; }
	.lxm-perso__busca { width: 100%; }
	.lxm-editor { width: 100vw; }
	.lxm-ed__caixa, .lxm-ed__area { min-height: 260px; }
}

.lxm-editor[hidden] { display: none; }
.lxm-edveu[hidden] { display: none; }

/* ETAPA 1.83.2, acertos da central de personalização */

.lxm-editor .lxm-field[hidden] { display: none; }

.lxm-edveu { z-index: 120; }
.lxm-editor { z-index: 121; }

.lxm-perso__busca input[type="search"] {
	padding: 9px 12px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-sm);
	background: var(--lx-glass);
	color: var(--lx-text);
	font: inherit;
	font-size: 13px;
}

.lxm-perso__busca input[type="search"]::placeholder { color: var(--lx-muted); }
.lxm-perso__busca input[type="search"]:focus { outline: none; border-color: var(--lx-royal); }

/* ETAPA 1.84, histórico, pré-visualização e o editor do WordPress */

.lxm-perso__direita { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.lxm-hist { border-top: 1px solid var(--lx-line); padding-top: 14px; display: grid; gap: 8px; }
.lxm-hist__titulo { margin: 0; font-size: 14px; }
.lxm-hist__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }

.lxm-hist__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 12px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-sm);
	background: var(--lx-glass);
	font-size: 13px;
}

.lxm-hist__quando { color: var(--lx-text-2, var(--lx-text)); font-variant-numeric: tabular-nums; }
.lxm-hist__acoes { display: flex; gap: 6px; }

.lxm-prev { position: fixed; inset: 0; z-index: 130; display: flex; align-items: center; justify-content: center; padding: 24px; }
.lxm-prev[hidden] { display: none; }
.lxm-prev__fundo { position: absolute; inset: 0; background: rgba(3, 6, 14, .72); backdrop-filter: blur(3px); }

.lxm-prev__caixa {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(1400px, 100%);
	height: min(90vh, 100%);
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-lg);
	background: var(--lx-surface, #0b1020);
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
}

.lxm-prev__cab {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	justify-content: space-between;
	padding: 14px 18px;
	border-bottom: 1px solid var(--lx-line);
}

.lxm-prev__cab strong { display: block; font-size: 15px; }
.lxm-prev__cab span { display: block; max-width: 62ch; }
.lxm-prev__larguras { display: flex; gap: 6px; }
.lxm-prev__larguras .is-on { border-color: var(--lx-royal); color: var(--lx-royal); }

.lxm-prev__palco {
	flex: 1 1 auto;
	overflow: auto;
	display: flex;
	justify-content: center;
	padding: 18px;
	background: rgba(0, 0, 0, .25);
}

.lxm-prev__tela {
	flex: 0 0 auto;
	height: 100%;
	min-height: 420px;
	border: 1px solid var(--lx-line);
	border-radius: var(--lx-r-md);
	background: var(--lx-black, #05070e);
	max-width: 100%;
}

/* O editor do WordPress entra no lugar do textarea; a moldura é a mesma. */
.lxm-ed__caixa--cm { display: block; padding: 0; }
.lxm-ed__caixa .CodeMirror { height: 340px; font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.lxm-ed__caixa .CodeMirror, .lxm-ed__caixa .CodeMirror-gutters { background: var(--lx-black, #05070e); border-color: var(--lx-line); }
.lxm-ed__caixa .CodeMirror-linenumber { color: var(--lx-text-4, #5a6a86); }
.lxm-ed__caixa .CodeMirror-cursor { border-left-color: var(--lx-text); }
.lxm-ed__caixa .CodeMirror-selected { background: rgba(75, 123, 236, .25); }

@media (max-width: 620px) {
	.lxm-prev { padding: 0; }
	.lxm-prev__caixa { height: 100%; border-radius: 0; border: 0; }
}

/* ETAPA 1.84.1, acabamento do painel e do editor de código */

.lxm-editor { background: var(--lx-deep, #070d1c); }
.lxm-prev__caixa { background: var(--lx-deep, #070d1c); }

/* O tema que vem com o editor do WordPress é claro. Estas regras trazem ele
   para o mesmo contraste do resto do painel, no modo escuro e no modo claro. */
.lxm-ed__caixa .CodeMirror { color: var(--lx-text); }
.lxm-ed__caixa .CodeMirror-activeline-background { background: var(--lx-surface-2, rgba(255, 255, 255, .06)); }
.lxm-ed__caixa .CodeMirror-matchingbracket { color: var(--lx-royal); outline: none; }
.lxm-ed__caixa .CodeMirror-guttermarker-subtle { color: var(--lx-text-4, #5a6a86); }
.lxm-ed__caixa .CodeMirror-scroll { min-height: 340px; }

/* ETAPA 1.84.2, cores do editor de código legíveis nos dois temas */

.lxm-ed__caixa .cm-s-default .cm-tag,
.lxm-ed__caixa .cm-s-default .cm-keyword { color: #7ee787; }
.lxm-ed__caixa .cm-s-default .cm-attribute,
.lxm-ed__caixa .cm-s-default .cm-def,
.lxm-ed__caixa .cm-s-default .cm-property { color: #79c0ff; }
.lxm-ed__caixa .cm-s-default .cm-string,
.lxm-ed__caixa .cm-s-default .cm-string-2 { color: #ffa657; }
.lxm-ed__caixa .cm-s-default .cm-number,
.lxm-ed__caixa .cm-s-default .cm-atom { color: #d2a8ff; }
.lxm-ed__caixa .cm-s-default .cm-comment { color: #8b98b0; font-style: italic; }
.lxm-ed__caixa .cm-s-default .cm-variable,
.lxm-ed__caixa .cm-s-default .cm-variable-2,
.lxm-ed__caixa .cm-s-default .cm-operator,
.lxm-ed__caixa .cm-s-default .cm-bracket,
.lxm-ed__caixa .cm-s-default .cm-qualifier,
.lxm-ed__caixa .cm-s-default .cm-builtin,
.lxm-ed__caixa .cm-s-default .cm-meta { color: var(--lx-text); }
.lxm-ed__caixa .cm-s-default .cm-error { color: #ff7b72; }
.lxm-ed__caixa .cm-s-default .CodeMirror-matchingtag { background: rgba(126, 231, 135, .14); }

[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-tag,
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-keyword { color: #117700; }
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-attribute,
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-def,
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-property { color: #0b3fbf; }
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-string,
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-string-2 { color: #a3480d; }
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-number,
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-atom { color: #6b21a8; }
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-comment { color: #5a6a86; }
[data-theme="light"] .lxm-ed__caixa .cm-s-default .cm-error { color: #b42318; }
[data-theme="light"] .lxm-ed__caixa .cm-s-default .CodeMirror-matchingtag { background: rgba(17, 119, 0, .12); }

/* ETAPA 1.84.3, caixa de busca do editor de código */

.lxm-ed__caixa .CodeMirror-dialog {
	background: var(--lx-deep, #070d1c);
	border-color: var(--lx-line);
	color: var(--lx-text);
	font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	padding: 6px 10px;
}

.lxm-ed__caixa .CodeMirror-dialog input {
	color: var(--lx-text);
	background: transparent;
	border: 0;
	outline: none;
	font: inherit;
}

.lxm-ed__caixa .CodeMirror-search-hint { color: var(--lx-muted); }
.lxm-ed__caixa .cm-searching { background: rgba(255, 200, 0, .28); }
/* ===== LXM FASE 1 · CONTRASTE MODO CLARO ===== */
/* O topo, o menu lateral e os paineis da conta continuam escuros nos dois
   temas, decisao de design ja existente e preservada. O defeito corrigido
   aqui e o vazamento da regra global do tema claro
   (input,select,textarea{background:#fff!important}) para dentro dessas
   superficies escuras: a busca do topo ficava com texto quase branco sobre
   fundo branco. Nada de borda preta: mantem-se o vidro do Legado. */
:root[data-theme="light"] .lxm-topsearch input,
:root[data-theme="light"] .lxm-topbar input:not([type="checkbox"]):not([type="radio"]),
:root[data-theme="light"] .lxm-topbar select,
:root[data-theme="light"] .lxm-topbar textarea,
:root[data-theme="light"] .lxm-sidebar input:not([type="checkbox"]):not([type="radio"]),
:root[data-theme="light"] .lxm-sidebar select,
:root[data-theme="light"] .lxm-sidebar textarea,
:root[data-theme="light"] .lxm-conta__painel input:not([type="checkbox"]):not([type="radio"]),
:root[data-theme="light"] .lxm-conta__painel select,
:root[data-theme="light"] .lxm-eu__painel input:not([type="checkbox"]):not([type="radio"]),
:root[data-theme="light"] .lxm-eu__painel select,
:root[data-theme="light"] .lxm-criar__painel input:not([type="checkbox"]):not([type="radio"]),
:root[data-theme="light"] .lxm-bell__panel input:not([type="checkbox"]):not([type="radio"]) {
  background: rgba(255, 255, 255, .06) !important;
  color: #eef3ff !important;
  border: 1px solid rgba(255, 255, 255, .16) !important;
  caret-color: #eef3ff;
}
:root[data-theme="light"] .lxm-topsearch input::placeholder,
:root[data-theme="light"] .lxm-topbar input::placeholder,
:root[data-theme="light"] .lxm-sidebar input::placeholder,
:root[data-theme="light"] .lxm-conta__painel input::placeholder,
:root[data-theme="light"] .lxm-eu__painel input::placeholder {
  color: #b9c4dd !important;
  opacity: 1;
}
:root[data-theme="light"] .lxm-topsearch__icon { color: #b9c4dd; }
:root[data-theme="light"] .lxm-topsearch input:focus,
:root[data-theme="light"] .lxm-topsearch input:focus-visible {
  background: rgba(255, 255, 255, .11) !important;
  border-color: #5b8cff !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(47, 92, 255, .30);
}
:root[data-theme="light"] .lxm-topsearch:focus-within .lxm-topsearch__icon { color: #eef3ff; }
:root[data-theme="light"] .lxm-topsearch input:disabled,
:root[data-theme="light"] .lxm-topbar input:disabled {
  color: #8f9bb8 !important;
  background: rgba(255, 255, 255, .03) !important;
  border-color: rgba(255, 255, 255, .09) !important;
}
/* Lista de resultados da busca do topo nasce dentro do topo escuro. */
:root[data-theme="light"] .lxm-topsearch .lxm-searchlist a,
:root[data-theme="light"] .lxm-topbar .lxm-searchlist a {
  background: #0d1430;
  color: #eef3ff;
  border-color: rgba(255, 255, 255, .11);
}
/* ===== FIM LXM FASE 1 ===== */
/* ===== LXM FASE 1 · PAINEL DA CONTA / SAIR EM TELAS BAIXAS ===== */
/* Medido em 780x360 (celular deitado): o painel da conta terminava em 399px
   com a viewport em 360px, max-height:none e overflow:visible, o botao Sair
   ficava fora da tela e inalcancavel. Aqui o painel passa a caber sempre na
   altura disponivel e rola por dentro quando precisa, respeitando a safe-area
   do aparelho. Em telas altas nada muda: o painel tem 336px e nunca encosta
   no limite. */
.lxm-conta__painel,
.lxm-eu__painel,
.lxm-criar__painel,
.lxm-bell__panel {
  max-height: calc(100vh - 84px - env(safe-area-inset-bottom, 0px));
  max-height: calc(100dvh - 84px - env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  max-width: calc(100vw - 16px);
}
/* O Sair nunca deve ficar escondido atras da barra inferior do aparelho. */
.lxm-conta__painel .lxm-conta__item.is-sair,
.lxm-eu__painel .lxm-eu__item.is-sair {
  scroll-margin-bottom: 12px;
}
.lxm-conta__painel::-webkit-scrollbar,
.lxm-eu__painel::-webkit-scrollbar { width: 8px; }
.lxm-conta__painel::-webkit-scrollbar-thumb,
.lxm-eu__painel::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .18);
  border-radius: 8px;
}
/* Alvo de toque confortavel no celular (>=44px) sem mexer no desktop. */
@media (max-width: 900px) and (pointer: coarse) {
  .lxm-conta__item,
  .lxm-eu__item { min-height: 44px; }
}
/* ===== FIM ===== */
/* ===== LXM FASE 1 · DIALOGO DE CONFIRMACAO (SAIR) ===== */
/* Medido: .lxm-dialog__box tem gradiente escuro nos dois temas, mas a cor do
   texto vinha por heranca do body. No tema claro o body e #111a33, entao a
   mensagem "Deseja encerrar a sessao agora?" ficava azul-escura sobre caixa
   azul-escura (contraste ~1.1:1, ilegivel). A caixa e escura por decisao de
   design; o que se corrige e a cor do conteudo dentro dela. */
.lxm-dialog__box,
.lxm-dialog__text,
:root[data-theme="light"] .lxm-dialog__box,
:root[data-theme="light"] .lxm-dialog__text {
  color: #eef3ff;
}
:root[data-theme="light"] .lxm-dialog__box .lxm-btn--ghost,
.lxm-dialog__box .lxm-btn--ghost {
  background: rgba(255, 255, 255, .10);
  border-color: rgba(255, 255, 255, .32);
  color: #ffffff;
}
:root[data-theme="light"] .lxm-dialog__box .lxm-btn--ghost:hover,
.lxm-dialog__box .lxm-btn--ghost:hover {
  background: rgba(255, 255, 255, .18);
  border-color: rgba(255, 255, 255, .46);
}
.lxm-dialog__box .lxm-btn--primary,
:root[data-theme="light"] .lxm-dialog__box .lxm-btn--primary {
  color: #ffffff;
}
.lxm-dialog__box .lxm-btn:focus-visible {
  outline: 2px solid #8fb0ff;
  outline-offset: 2px;
}
/* Em telas baixas a caixa rola por dentro em vez de estourar a tela. */
.lxm-dialog__box {
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
}
@media (max-width: 430px) {
  .lxm-dialog__actions { flex-direction: column-reverse; }
  .lxm-dialog__actions .lxm-btn { width: 100%; min-width: 0; }
}
/* ===== FIM ===== */
/* ===== LXM FASE 1 · TINTAS DE ACENTO POR TEMA ===== */
/* Medido com calculo WCAG sobre o fundo real composto. Corrigidos apenas os
   dois casos confirmados no tema claro:
     .lxm-skip   3.36:1 -> texto branco sobre o azul solido
     .lxm-badge  2.59:1 -> tinta de acento propria do tema claro
   Os selos de integracao e os chips vivem sobre placas escuras mesmo no tema
   claro e ja estavam corretos; a escala --lx-text-1..4 do plugin tambem ja
   tem valores proprios por tema. Nada disso foi alterado. */
:root {
  --lx-ink-royal: #8fb0ff;
  --lx-ink-success: #5ee3ad;
  --lx-ink-danger: #ff9c9c;
  --lx-ink-warning: #ffca7a;
}
:root[data-theme="light"] {
  --lx-ink-royal: #1d3fe0;
  --lx-ink-success: #0b6b45;
  --lx-ink-danger: #a01b16;
  --lx-ink-warning: #7a4a00;
}
:root[data-theme="light"] .lxm-skip { color: #ffffff; }
:root[data-theme="light"] .lxm-badge { color: var(--lx-ink-royal); }
/* ===== FIM ===== */
/* ===== LXM FASE 1 · PLACEHOLDER BUSCA (ESCURO) ===== */
/* Placeholder da busca tambem no tema escuro: #96a3c2 dava 4.21:1. */
.lxm-topsearch input::placeholder { color: #b9c4dd; opacity: 1; }
/* ===== LXM FASE 2 · SELETOR DE SECAO NA PERSONALIZACAO ===== */
.lxm-perso__secao {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 260px;
  min-width: 0;
}
.lxm-perso__secaolabel {
  font-size: 12px;
  color: var(--lx-muted);
  white-space: nowrap;
}
.lxm-perso__secao select {
  flex: 1 1 auto;
  min-width: 0;
  padding: 8px 10px;
  border-radius: var(--lx-r-sm, 10px);
  border: 1px solid var(--lx-line);
  background: var(--lx-glass);
  color: var(--lx-text);
  font: inherit;
  font-size: 13px;
}
.lxm-perso__secao select:focus-visible {
  outline: 2px solid var(--lx-cyanish, #5b8cff);
  outline-offset: 2px;
}
@media (max-width: 720px) {
  .lxm-perso__secao { flex: 1 1 100%; }
}
/* ===== FIM ===== */
/* ===== LXM · PAINEL DE ADMINISTRACAO DA PERSONALIZACAO ===== */
.lxm-persoadm { display: grid; gap: 18px; }
.lxm-persoadm__topo { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; justify-content: space-between; }
.lxm-persoadm__topo h3 { margin: 0 0 4px; }
.lxm-persoadm__abas { display: flex; gap: 6px; flex-wrap: wrap; }
.lxm-persoadm__aba {
  border: 1px solid var(--lx-line); background: var(--lx-glass); color: var(--lx-text);
  border-radius: 999px; padding: 7px 14px; font: inherit; font-size: 13px; cursor: pointer;
  min-height: 38px;
}
.lxm-persoadm__aba:hover { background: var(--lx-glass-2); }
.lxm-persoadm__aba.is-active { border-color: var(--lx-royal); color: #fff; background: var(--lx-royal); }
.lxm-persoadm__aba:focus-visible { outline: 2px solid var(--lx-cyanish); outline-offset: 2px; }
.lxm-persoadm__painel { display: grid; gap: 16px; }
.lxm-persoadm__form, .lxm-persoadm__card, .lxm-persoadm__master {
  border: 1px solid var(--lx-line); border-radius: var(--lx-r-md); padding: 16px; background: var(--lx-glass);
  display: grid; gap: 12px;
}
.lxm-persoadm__form h4, .lxm-persoadm__card h4, .lxm-persoadm__master h4 { margin: 0; font-size: 15px; }
.lxm-persoadm__campo { display: grid; gap: 6px; font-size: 13px; }
.lxm-persoadm__campo--linha { grid-auto-flow: column; align-items: center; gap: 10px; }
.lxm-persoadm__campo select, .lxm-persoadm__masterlinha select, .lxm-persoadm__barra select {
  padding: 8px 10px; border-radius: var(--lx-r-sm); border: 1px solid var(--lx-line);
  background: var(--lx-glass); color: var(--lx-text); font: inherit; font-size: 13px; max-width: 100%;
}
.lxm-persoadm__grupo { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.lxm-persoadm__grupo legend { font-size: 13px; font-weight: 600; padding: 0; }
.lxm-persoadm__caixas { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 6px 14px; max-height: 260px; overflow: auto; padding-right: 4px; }
.lxm-persoadm__caixas--linha { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); max-height: none; }
.lxm-persoadm__caixas label { display: flex; align-items: center; gap: 8px; font-size: 13px; min-height: 32px; }
.lxm-persoadm__grupolabel { grid-column: 1 / -1; margin: 8px 0 0; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--lx-muted); }
.lxm-persoadm__deleg { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; border: 1px solid var(--lx-line); border-radius: var(--lx-r-sm); padding: 12px 14px; margin-bottom: 8px; }
.lxm-persoadm__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.lxm-persoadm__tag { font-size: 11.5px; border: 1px solid var(--lx-line); border-radius: 999px; padding: 3px 9px; color: var(--lx-muted); }
.lxm-persoadm__aviso { margin: 0; font-size: 13px; }
.lxm-persoadm__aviso.is-ok { color: var(--lx-ink-success); }
.lxm-persoadm__aviso.is-erro { color: var(--lx-ink-danger); }
.lxm-persoadm__pes { display: flex; justify-content: flex-end; }
.lxm-persoadm__masterlinha, .lxm-persoadm__barra { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lxm-persoadm__log { display: grid; gap: 4px; max-height: 420px; overflow: auto; }
.lxm-persoadm__logitem { display: flex; gap: 10px; flex-wrap: wrap; font-size: 13px; padding: 7px 10px; border-radius: var(--lx-r-sm); border: 1px solid var(--lx-line); }
.lxm-persoadm__logdata { color: var(--lx-muted); font-variant-numeric: tabular-nums; }
.lxm-persoadm__diag { display: flex; justify-content: space-between; gap: 12px; margin: 0; font-size: 13px; padding: 6px 0; border-bottom: 1px solid var(--lx-line); }
.lxm-persoadm__diag:last-child { border-bottom: 0; }
.lxm-persoadm__estado { font-size: 12.5px; color: var(--lx-muted); margin-left: 8px; }
@media (max-width: 560px) {
  .lxm-persoadm__topo { align-items: flex-start; }
  .lxm-persoadm__deleg { flex-direction: column; align-items: flex-start; }
  .lxm-persoadm__campo--linha { grid-auto-flow: row; }
}
/* ===== FIM ===== */
/* ===== LXM · FORMULARIOS CLAUDE E PANDA ===== */
.lxm-claude, .lxm-panda { display: grid; gap: 18px; }
.lxm-claude__bloco { border: 1px solid var(--lx-line); border-radius: var(--lx-r-md); padding: 16px; background: var(--lx-glass); display: grid; gap: 12px; }
.lxm-claude__bloco h4 { margin: 0; font-size: 15px; }
.lxm-claude__linha { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lxm-claude__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.lxm-claude .lxm-campo, .lxm-panda .lxm-campo { display: grid; gap: 6px; font-size: 13px; }
.lxm-claude .lxm-campo input, .lxm-claude .lxm-campo select, .lxm-claude .lxm-campo textarea,
.lxm-panda .lxm-campo input, .lxm-panda__busca {
  padding: 9px 11px; border-radius: var(--lx-r-sm); border: 1px solid var(--lx-line);
  background: var(--lx-glass); color: var(--lx-text); font: inherit; font-size: 13px; width: 100%;
}
.lxm-panda__busca { max-width: 320px; }
.lxm-claude__estado { margin: 0; font-size: 13px; color: var(--lx-muted); }
.lxm-claude__estado.is-ok { color: var(--lx-ink-success); }
.lxm-claude__estado.is-erro { color: var(--lx-ink-danger); }
.lxm-claude__saida { border: 1px solid var(--lx-line); border-radius: var(--lx-r-sm); padding: 12px; }
.lxm-claude__texto { white-space: pre-wrap; word-break: break-word; font: inherit; font-size: 13.5px; margin: 0 0 8px; }
.lxm-claude__log { display: grid; gap: 4px; max-height: 320px; overflow: auto; }
.lxm-claude__logitem { margin: 0; font-size: 12.5px; padding: 6px 9px; border-radius: var(--lx-r-sm); border: 1px solid var(--lx-line); }
.lxm-claude__logitem.is-falhou, .lxm-claude__logitem.is-bloqueado, .lxm-claude__logitem.is-sem_credencial { color: var(--lx-ink-danger); }
.lxm-panda__grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.lxm-panda__card { border: 1px solid var(--lx-line); border-radius: var(--lx-r-md); padding: 10px; display: grid; gap: 6px; align-content: start; }
.lxm-panda__card img { border-radius: var(--lx-r-sm); aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.lxm-panda__card strong { font-size: 13px; line-height: 1.3; }
@media (max-width: 560px) {
  .lxm-claude__grade { grid-template-columns: 1fr; }
  .lxm-panda__busca { max-width: none; }
}
/* ===== FIM ===== */
/* ===== LXM · TELA DA CENTRAL DE E-MAILS ===== */
.lxm-mail { display: grid; gap: 18px; }
.lxm-mail__topo { display: flex; flex-wrap: wrap; gap: 14px; justify-content: space-between; align-items: flex-end; }
.lxm-mail__topo h3 { margin: 0 0 4px; }
.lxm-mail__nums { display: flex; gap: 14px; flex-wrap: wrap; }
.lxm-mail__num { font-size: 12.5px; color: var(--lx-muted); }
.lxm-mail__num strong { color: var(--lx-text); font-size: 15px; }
.lxm-mail__abas { display: flex; gap: 6px; flex-wrap: wrap; }
.lxm-mail__painel { display: grid; gap: 14px; }
.lxm-mail__form, .lxm-mail__previa { border: 1px solid var(--lx-line); border-radius: var(--lx-r-md); padding: 16px; background: var(--lx-glass); display: grid; gap: 12px; }
.lxm-mail__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.lxm-mail .lxm-campo { display: grid; gap: 6px; font-size: 13px; }
.lxm-mail .lxm-campo--linha { grid-auto-flow: column; align-items: center; gap: 10px; }
.lxm-mail .lxm-campo input, .lxm-mail .lxm-campo select, .lxm-mail .lxm-campo textarea {
  padding: 9px 11px; border-radius: var(--lx-r-sm); border: 1px solid var(--lx-line);
  background: var(--lx-glass); color: var(--lx-text); font: inherit; font-size: 13px; width: 100%;
}
.lxm-mail__linha { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lxm-mail__check { display: flex; align-items: center; gap: 8px; font-size: 13px; min-height: 34px; }
.lxm-mail__vars { font-size: 13px; }
.lxm-mail__vars ul { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 4px; }
.lxm-mail__vars code { background: var(--lx-glass-2); padding: 1px 6px; border-radius: 6px; }
.lxm-mail__card { display: flex; gap: 12px; flex-wrap: wrap; justify-content: space-between; align-items: center; border: 1px solid var(--lx-line); border-left-width: 2px; border-radius: var(--lx-r-md); padding: 12px 14px; margin-bottom: 8px; }
.lxm-mail__card.is-ativa { border-left-color: var(--lx-ink-success); }
.lxm-mail__acoes { display: flex; gap: 6px; flex-wrap: wrap; }
.lxm-mail__fila { display: grid; gap: 4px; max-height: 460px; overflow: auto; }
.lxm-mail__filaitem { margin: 0; font-size: 12.5px; padding: 7px 10px; border: 1px solid var(--lx-line); border-radius: var(--lx-r-sm); }
.lxm-mail__filaitem.is-falhou { color: var(--lx-ink-danger); }
.lxm-mail__filaitem.is-enviado { color: var(--lx-ink-success); }
.lxm-mail__iframe { width: 100%; height: 460px; border: 1px solid var(--lx-line); border-radius: var(--lx-r-sm); background: #fff; }
@media (max-width: 560px) {
  .lxm-mail__grade { grid-template-columns: 1fr; }
  .lxm-mail__card { flex-direction: column; align-items: flex-start; }
  .lxm-mail .lxm-campo--linha { grid-auto-flow: row; }
}
/* ===== FIM ===== */
/* ===== LXM · ABA LOCAL DE PERSONALIZACAO ===== */
.lxm-persoaba{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 18px;padding:5px;border:1px solid var(--lx-line);border-radius:999px;background:var(--lx-glass);width:fit-content;max-width:100%}
.lxm-persoaba__item{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 15px;border-radius:999px;font-size:13px;font-weight:550;color:var(--lx-muted);text-decoration:none;white-space:nowrap}
.lxm-persoaba__item:hover{color:var(--lx-text);background:var(--lx-glass-2)}
.lxm-persoaba__item.is-on{background:var(--lx-royal);color:#fff}
.lxm-persoaba__item.is-on:hover{background:var(--lx-royal-strong);color:#fff}
.lxm-persoaba__item:focus-visible{outline:2px solid var(--lx-cyanish);outline-offset:2px}
.lxm-persoaba__n{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--lx-glass-2);font-size:11.5px;font-weight:650}
.lxm-persoaba__item.is-on .lxm-persoaba__n{background:rgba(255,255,255,.22)}
.lxm-persoaba__nota{font-size:12px;color:var(--lx-muted);padding:0 12px 0 4px}
@media (max-width:720px){
  .lxm-persoaba{width:100%;border-radius:var(--lx-r-md);justify-content:flex-start}
  .lxm-persoaba__nota{display:none}
  .lxm-persoaba__item{flex:1 1 auto;justify-content:center}
}
/* ===== FIM ===== */

/* ===== LXM · ACESSO E OPORTUNIDADES ===== */
.lxm-acessoeng__resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:10px;margin:0 0 22px}
.lxm-acessoeng__nivel{display:grid;gap:3px;padding:14px 16px;border:1px solid var(--lx-line);border-radius:12px;background:var(--lx-surface-2)}
.lxm-acessoeng__nivel.is-ativo{border-color:var(--lx-royal)}
.lxm-acessoeng__nome{font-size:13px;font-weight:650;letter-spacing:.04em;color:var(--lx-text-1)}
.lxm-acessoeng__estado{font-size:11px;letter-spacing:.08em;color:var(--lx-text-3)}
.lxm-acessoeng__nivel.is-ativo .lxm-acessoeng__estado{color:var(--lx-ink-royal)}
.lxm-acessoeng__origem{font-size:11.5px;color:var(--lx-text-3);margin-top:3px}
.lxm-acessoeng__titulo{margin:22px 0 4px;font-size:14px;font-weight:650;color:var(--lx-text-1)}
.lxm-acessoeng__marcas{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0 4px}
.lxm-acessoeng__marca{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--lx-line);border-radius:999px;font-size:13px;cursor:pointer;color:var(--lx-text-2)}
.lxm-acessoeng__marca:hover{border-color:var(--lx-royal)}
.lxm-acessoeng__marca input{accent-color:var(--lx-royal)}
.lxm-acessoeng__msg{font-size:12.5px;color:var(--lx-text-3)}
.lxm-acessoeng__msg.is-indo{color:var(--lx-text-2)}
.lxm-acessoeng__msg.is-ok{color:var(--lx-ink-success)}
.lxm-acessoeng__msg.is-erro{color:var(--lx-ink-danger)}
.lxm-acessoeng__tabela{overflow-x:auto;margin-top:12px}
.lxm-acessoeng__tabela table{width:100%;min-width:640px;border-collapse:collapse;font-size:13.5px}
.lxm-acessoeng__tabela th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--lx-text-3);padding:0 12px 10px;font-weight:600}
.lxm-acessoeng__tabela td{padding:12px;border-top:1px solid var(--lx-line);vertical-align:middle;color:var(--lx-text-2)}
.lxm-acessoeng__tabela td strong{color:var(--lx-text-1)}
.lxm-acessoeng__org{font-size:12.5px}
.lxm-acessoeng__tabela select{min-height:34px;border-radius:9px;border:1px solid var(--lx-line);background:var(--lx-surface-2);color:var(--lx-text-1);padding:0 10px;font-size:13px}
.lxm-selo2{display:inline-flex;align-items:center;font-size:11.5px;padding:3px 10px;border-radius:999px;border:1px solid var(--lx-line);color:var(--lx-text-2)}
.lxm-selo2.is-liberado{color:var(--lx-ink-success);border-color:currentColor}
.lxm-selo2.is-vitrine{color:var(--lx-ink-warning);border-color:currentColor}
.lxm-selo2.is-oculto{color:var(--lx-text-3)}
@media (max-width:640px){
.lxm-acessoeng__marcas{gap:8px}
}

/* ===== LXM · VITRINE E CADEADO LEGADO ===== */
.lxm-vitrine{margin:34px 0 0}
.lxm-vitrine__grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:18px;margin-top:14px}
.lxm-trancado{display:flex;flex-direction:column;border:1px solid var(--lx-line);border-radius:16px;overflow:hidden;background:var(--lx-surface-2)}
.lxm-trancado__capa{position:relative;aspect-ratio:16/9;overflow:hidden;background:#0b1020;display:grid;place-items:center}
.lxm-trancado--portrait .lxm-trancado__capa{aspect-ratio:2/3}
.lxm-trancado__capa img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.55) contrast(1.06) brightness(.72)}
.lxm-trancado__veu{position:absolute;inset:0;background:linear-gradient(160deg,rgba(11,16,32,.55) 0%,rgba(16,32,88,.72) 55%,rgba(9,14,30,.9) 100%)}
.lxm-cadeado{position:absolute;width:60px;height:70px;display:block;filter:drop-shadow(0 10px 22px rgba(4,10,30,.6))}
.lxm-cadeado svg{width:100%;height:100%;display:block}
.lxm-trancado__nivel{position:absolute;top:12px;left:12px;font-size:10.5px;font-weight:700;letter-spacing:.09em;padding:4px 10px;border-radius:999px;background:rgba(11,16,32,.72);color:#cfe0ff;border:1px solid rgba(143,176,255,.4)}
.lxm-trancado__corpo{padding:16px 18px 18px;display:grid;gap:6px}
.lxm-trancado__etapa{margin:0;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--lx-ink-royal)}
.lxm-trancado__nome{margin:0;font-size:16px;line-height:1.25;font-weight:650;color:var(--lx-text-1)}
.lxm-trancado__desc{margin:2px 0 0;font-size:13px;line-height:1.5;color:var(--lx-text-3)}
.lxm-trancado__cta{margin-top:10px;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:38px;padding:0 16px;border-radius:10px;border:1px solid var(--lx-ink-royal);color:var(--lx-ink-royal);text-decoration:none;font-size:13.5px;font-weight:600;transition:background .16s,color .16s}
.lxm-trancado__cta:hover{background:var(--lx-royal-strong);color:#fff}
.lxm-trancado__cta:focus-visible{outline:2px solid var(--lx-royal);outline-offset:2px}
/* A microinteracao e discreta de proposito: o cadeado respira, nao dansa. */
.lxm-trancado:hover .lxm-cadeado{transform:translateY(-2px);transition:transform .28s ease}
.lxm-trancado:hover .lxm-trancado__capa img{filter:saturate(.68) contrast(1.06) brightness(.78);transition:filter .28s ease}
@media (prefers-reduced-motion:reduce){
.lxm-trancado:hover .lxm-cadeado{transform:none}
.lxm-trancado *{transition:none!important}
}

.lxm-acessoeng__previa{margin:12px 0 6px}
.lxm-acessoeng__previa:empty{display:none}

/* ===== LXM · SIDEBAR SEM TITULOS DE GRUPO ===== */
/* O nome do grupo continua no HTML para leitor de tela, mas nao ocupa a lateral. */
.lxm-somenteleitor{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lxm-nav__grupo{height:1px;margin:14px 12px 13px;padding:0;background:var(--lx-line);border-radius:1px;opacity:.7}
.lxm-nav__grupo:first-child{display:none}
:root.lxm-menu-recolhido .lxm-nav__grupo{margin:12px 10px;height:1px;background:var(--lx-line)}
:root.lxm-menu-recolhido .lxm-nav__grupo>span{display:none}
@media (max-width:900px){.lxm-nav__grupo{margin:12px 10px}}

/* ===== LXM · SEGUNDA LINHA DE ABAS ===== */
.lxm-abas--dois{margin-top:-6px;padding-top:2px;opacity:.95}
.lxm-abas--dois .lxm-abas__item{font-size:12.5px;padding:6px 12px}
@media (max-width:640px){
.lxm-abas,.lxm-abas--dois{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.lxm-abas::-webkit-scrollbar,.lxm-abas--dois::-webkit-scrollbar{display:none}
.lxm-abas__item{white-space:nowrap}
}

/* ===== LXM · RESUMO DE ASSINATURAS ===== */
.lxm-assinres{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:10px;margin:0 0 16px}
.lxm-assinres__item{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--lx-line);border-radius:12px;background:var(--lx-surface-2)}
.lxm-assinres__item strong{font-size:22px;font-weight:650;color:var(--lx-text-1);font-variant-numeric:tabular-nums;line-height:1.1}
.lxm-assinres__item span{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--lx-text-3)}
.lxm-assinvazio{display:grid;gap:6px;justify-items:start;border:1px dashed var(--lx-line);border-radius:12px;padding:16px 18px;margin:0 0 16px}
.lxm-assinvazio strong{color:var(--lx-text-1);font-size:14px}
.lxm-assinvazio span{color:var(--lx-text-3);font-size:13px;line-height:1.5;max-width:70ch}
.lxm-assinvazio .lxm-btn{margin-top:6px}

/* ============================================================= */
/* Personalização por Código: seletor de seção legível nos dois  */
/* temas (sistema e explícito) + estado inicial neutro da Central */
/* ============================================================= */
.lxm-perso__secao select option,
.lxm-perso__secao select optgroup{ color:#111a33; background-color:#ffffff; }
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .lxm-perso__secao select option,
  :root:not([data-theme="light"]) .lxm-perso__secao select optgroup{ color:#eef3ff; background-color:#0f1830; }
}
:root[data-theme="dark"] .lxm-perso__secao select option,
:root[data-theme="dark"] .lxm-perso__secao select optgroup{ color:#eef3ff; background-color:#0f1830; }
:root[data-theme="light"] .lxm-perso__secao select option,
:root[data-theme="light"] .lxm-perso__secao select optgroup{ color:#111a33; background-color:#ffffff; }

/* Estado neutro: só o título + o seletor aparecem; nada de seção é carregado. */
.lxm-perso__prompt{ display:none; margin:0; padding:1.25rem 0 .25rem; color:inherit; opacity:.72; font-size:.95rem; }
.lxm-perso.is-neutro .lxm-perso__acoes,
.lxm-perso.is-neutro .lxm-perso__abas,
.lxm-perso.is-neutro .lxm-perso__busca,
.lxm-perso.is-neutro .lxm-empty,
.lxm-perso.is-neutro [data-lxm-perso]{ display:none !important; }
.lxm-perso.is-neutro .lxm-perso__prompt{ display:block; }


/* ===== LXM ACESSIBILIDADE, telas de entrada e recuperacao =====
   Tudo aqui esta preso a .lxm-loginpage. Nao encosta em nenhuma outra tela. */

.lxm-loginpage {
	padding-left: env(safe-area-inset-left);
	padding-right: env(safe-area-inset-right);
}

.lxm-loginpage .lxm-login {
	padding-top: max(24px, env(safe-area-inset-top));
	padding-bottom: max(24px, env(safe-area-inset-bottom));
}

/* Foco sempre visivel, inclusive para quem navega so de teclado. */
.lxm-loginpage a:focus-visible,
.lxm-loginpage button:focus-visible,
.lxm-loginpage input:focus-visible,
.lxm-loginpage summary:focus-visible {
	outline: 2px solid #8aa4ff;
	outline-offset: 2px;
	border-radius: 8px;
}

/* Alvo de toque confortavel no botao de ver a senha. */
.lxm-loginpage .lxm-login__eye {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* "Manter conectado": area de toque maior, mesmo desenho. */
.lxm-loginpage .lxm-login__form label:has(input[type="checkbox"]) {
	min-height: 44px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.lxm-loginpage input[type="checkbox"] {
	width: 18px;
	height: 18px;
}

@media (max-width: 480px) {
	/* 16px evita o zoom automatico do iOS quando o campo recebe foco. */
	.lxm-loginpage input:not([type="checkbox"]):not([type="radio"]),
	.lxm-loginpage select,
	.lxm-loginpage textarea {
		font-size: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lxm-loginpage *,
	.lxm-loginpage *::before,
	.lxm-loginpage *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

@media (max-width: 480px) {
	/* Links de texto continuam do mesmo tamanho, mas ganham area de toque.
	   A margem negativa cancela o padding para o desenho nao mudar. */
	.lxm-loginpage .lxm-login__links a,
	.lxm-loginpage .lxm-login__pe a {
		padding: 12px 6px;
		margin: -12px -6px;
		display: inline-block;
	}
}

@media (max-width: 480px) {
	/* Mesmo motivo do bloco de entrada: 16px evita o zoom do iOS.
	   Restrito ao painel de verificacao em duas etapas e ao campo de WhatsApp. */
	.lxm-seg input,
	input[name="lxm_whatsapp"] {
		font-size: 16px;
	}
}

/* ------------------------------------------------------------------ */
/* Sair da conta, confirmação elegante (celular e computador)          */
/* ------------------------------------------------------------------ */
/* A confirmação genérica também passa a ficar acima de menus e gavetas. */
.lxm-dialog{z-index:2147483000}

.lxm-sair{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(3,7,18,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .22s ease;-webkit-tap-highlight-color:transparent;overscroll-behavior:contain}
.lxm-sair.is-on{opacity:1}
.lxm-sair .lxm-sair__caixa{position:relative;box-sizing:border-box;width:min(400px,100%);padding:30px 26px 24px;border-radius:22px;text-align:center;color:#eef3ff;background:radial-gradient(420px 220px at 50% -10%,rgba(47,92,255,.30),transparent 70%),linear-gradient(180deg,#0f1b3d,#070d1f);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 40px 90px -30px rgba(0,0,0,.9);transform:translateY(14px) scale(.97);opacity:0;transition:transform .32s cubic-bezier(.2,.9,.25,1),opacity .22s ease}
.lxm-sair.is-on .lxm-sair__caixa{transform:none;opacity:1}
.lxm-sair .lxm-sair__alca{display:none}
.lxm-sair .lxm-sair__topo{position:relative;width:76px;height:76px;margin:0 auto 16px}
.lxm-sair .lxm-sair__foto{position:absolute;inset:0;box-sizing:border-box;border-radius:50%;padding:3px;background:linear-gradient(135deg,#5b8cff,#1d3fe0);box-shadow:0 12px 30px -12px rgba(47,92,255,.8)}
.lxm-sair .lxm-sair__foto > :not(svg){box-sizing:border-box;width:100% !important;height:100% !important;min-width:0 !important;max-width:none !important;margin:0 !important;border-radius:50% !important;font-size:22px !important;border:3px solid #0b1533 !important;object-fit:cover;display:grid !important;place-items:center;color:#fff !important}
.lxm-sair .lxm-sair__foto.is-icone{display:grid;place-items:center;color:#fff}
.lxm-sair .lxm-sair__foto.is-icone svg{width:30px;height:30px}
.lxm-sair .lxm-sair__icone{position:absolute;right:-4px;bottom:-4px;box-sizing:border-box;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#ff7a7a,#d63c3c);border:3px solid #0b1533;box-shadow:0 6px 14px -6px rgba(214,60,60,.8)}
.lxm-sair .lxm-sair__icone svg{width:13px;height:13px}
.lxm-sair .lxm-sair__titulo{margin:0 0 8px;padding:0;font-size:21px;line-height:1.25;font-weight:800;letter-spacing:-.01em;color:#fff}
.lxm-sair .lxm-sair__texto{margin:0 auto 22px;padding:0;max-width:32ch;font-size:14.5px;line-height:1.55;color:rgba(214,224,250,.8)}
.lxm-sair .lxm-sair__acoes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lxm-sair .lxm-sair__btn{appearance:none;-webkit-appearance:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:48px;margin:0;padding:12px 16px;border-radius:14px;font:700 15px/1.2 var(--lx-font,inherit);cursor:pointer;border:1px solid transparent;text-decoration:none;transition:transform .15s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease;touch-action:manipulation}
.lxm-sair .lxm-sair__btn:active{transform:scale(.98)}
.lxm-sair .lxm-sair__btn:focus-visible{outline:2px solid #5b8cff;outline-offset:2px}
.lxm-sair .lxm-sair__btn--fica{color:#e6ecff;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
.lxm-sair .lxm-sair__btn--fica:hover{background:rgba(255,255,255,.12)}
.lxm-sair .lxm-sair__btn--vai{color:#fff;background:linear-gradient(135deg,#ff6b6b,#d63c3c);box-shadow:0 12px 26px -12px rgba(214,60,60,.85)}
.lxm-sair .lxm-sair__btn--vai:hover{box-shadow:0 16px 30px -12px rgba(214,60,60,.95)}
.lxm-sair .lxm-sair__btn[disabled]{cursor:default;opacity:.8}
.lxm-sair .lxm-sair__btn svg{width:17px;height:17px;flex:0 0 auto}
.lxm-sair .lxm-sair__giro{width:17px;height:17px;box-sizing:border-box;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:lxmSairGiro .7s linear infinite}
@keyframes lxmSairGiro{to{transform:rotate(360deg)}}
.lxm-sair.is-saindo .lxm-sair__btn--fica{opacity:.45}
.lxm-sair .lxm-sair__erro{margin:14px 0 0;font-size:13px;line-height:1.4;color:#ffb3b3}
.lxm-sair .lxm-sair__erro[hidden]{display:none}

:root[data-theme="light"] .lxm-sair{background:rgba(17,26,51,.38)}
:root[data-theme="light"] .lxm-sair .lxm-sair__caixa{color:#111a33;background:radial-gradient(420px 220px at 50% -10%,rgba(47,92,255,.14),transparent 70%),linear-gradient(180deg,#ffffff,#f3f6ff);border-color:rgba(17,26,51,.12);box-shadow:0 40px 90px -30px rgba(17,26,51,.45)}
:root[data-theme="light"] .lxm-sair .lxm-sair__titulo{color:#111a33}
:root[data-theme="light"] .lxm-sair .lxm-sair__texto{color:#4b5874}
:root[data-theme="light"] .lxm-sair .lxm-sair__btn--fica{color:#1d2a4a;background:rgba(17,26,51,.05);border-color:rgba(17,26,51,.14)}
:root[data-theme="light"] .lxm-sair .lxm-sair__foto > :not(svg),
:root[data-theme="light"] .lxm-sair .lxm-sair__icone{border-color:#fff !important}
:root[data-theme="light"] .lxm-sair .lxm-sair__erro{color:#b42323}
:root[data-theme="light"] .lxm-sair .lxm-sair__alca{background:rgba(17,26,51,.18)}

@media (max-width:640px){
	.lxm-sair{align-items:flex-end;padding:0}
	.lxm-sair .lxm-sair__caixa{width:100%;border-radius:24px 24px 0 0;border-bottom:0;padding:12px 20px calc(22px + env(safe-area-inset-bottom));opacity:1;transform:translateY(105%);transition:transform .34s cubic-bezier(.2,.9,.25,1)}
	.lxm-sair.is-on .lxm-sair__caixa{transform:translateY(var(--lxm-sair-arrasto,0px))}
	.lxm-sair.is-arrastando .lxm-sair__caixa{transition:none}
	.lxm-sair .lxm-sair__alca{display:block;width:44px;height:5px;margin:0 auto 18px;border-radius:99px;background:rgba(255,255,255,.22)}
	.lxm-sair .lxm-sair__topo{width:68px;height:68px;margin-bottom:14px}
	.lxm-sair .lxm-sair__titulo{font-size:20px}
	.lxm-sair .lxm-sair__acoes{grid-template-columns:1fr}
	.lxm-sair .lxm-sair__btn{min-height:52px;font-size:16px}
	.lxm-sair .lxm-sair__btn--vai{order:-1}
}
@media (prefers-reduced-motion:reduce){
	.lxm-sair,.lxm-sair .lxm-sair__caixa{transition:none !important}
	.lxm-sair .lxm-sair__giro{animation-duration:1.6s}
}
/* Podio fora do ranking ---------------------------------------------------- */
/* Quem esta em 1º, 2º ou 3º no ranking geral leva o metal no contorno da foto:
   ouro, prata e bronze, com o numero no canto. Serve em qualquer lugar onde a
   bolinha aparece, hoje, nos comentarios das aulas. */
.lxm-podio{
	--lxp-1:#fff6da;--lxp-2:#f6da86;--lxp-3:#e3b04b;--lxp-4:#a97b21;
	--lxp-luz:rgba(240,190,80,.6);--lxp-num:#2a1c02;--lxp-fundo:#070d1c;
	position:relative;flex:0 0 auto;display:inline-grid;place-items:center;
	padding:3px;border-radius:50%;line-height:0;text-decoration:none;
	background:conic-gradient(from 210deg,var(--lxp-1),var(--lxp-3),var(--lxp-4),var(--lxp-2),var(--lxp-1));
	box-shadow:0 6px 16px -9px var(--lxp-luz);
	transition:transform .18s ease,box-shadow .18s ease
}
.lxm-podio--p2{--lxp-1:#ffffff;--lxp-2:#e3eaf6;--lxp-3:#b7c2d4;--lxp-4:#79839a;--lxp-luz:rgba(190,203,222,.55);--lxp-num:#1b2233}
.lxm-podio--p3{--lxp-1:#ffe6cd;--lxp-2:#e6ab78;--lxp-3:#c2763c;--lxp-4:#8a4d21;--lxp-luz:rgba(200,120,60,.55);--lxp-num:#2a1405}
a.lxm-podio:hover{transform:translateY(-1px);box-shadow:0 11px 20px -10px var(--lxp-luz)}
a.lxm-podio:focus-visible{outline:2px solid var(--lx-royal);outline-offset:3px}
.lxm-podio .lxm-avatar{border:0;box-shadow:0 0 0 1.5px var(--lxp-fundo)}
.lxm-podio .lxm-avatar--foto{border:0}
.lxm-podio__n{
	position:absolute;right:-3px;bottom:-3px;z-index:2;
	min-width:16px;height:16px;padding:0 3px;box-sizing:border-box;
	display:grid;place-items:center;border-radius:99px;
	font:800 10px/1 var(--lx-font);letter-spacing:0;color:var(--lxp-num);
	background:linear-gradient(135deg,var(--lxp-1),var(--lxp-2) 45%,var(--lxp-3));
	box-shadow:0 0 0 1.5px var(--lxp-fundo),0 2px 6px -2px rgba(0,0,0,.6)
}
/* Um brilho lento dá a volta no ouro. Só no primeiro lugar. */
.lxm-podio--p1::after{
	content:"";position:absolute;inset:-1px;border-radius:50%;pointer-events:none;
	background:conic-gradient(from 0deg,transparent 0 60%,rgba(255,255,255,.9) 71%,transparent 80% 100%);
	-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4.5px),#000 calc(100% - 4px));
	mask:radial-gradient(farthest-side,transparent calc(100% - 4.5px),#000 calc(100% - 4px));
	animation:lxmPodioGira 6s linear infinite;opacity:.8
}
@keyframes lxmPodioGira{to{transform:rotate(1turn)}}
/* O nome de quem esta no podio recebe o mesmo metal. */
.lxm-cmt__box--p1 > .lxm-cmt__main .lxm-cmt__head > strong{color:#f6da86}
.lxm-cmt__box--p2 > .lxm-cmt__main .lxm-cmt__head > strong{color:#dfe6f2}
.lxm-cmt__box--p3 > .lxm-cmt__main .lxm-cmt__head > strong{color:#e6ab78}
:root[data-theme="light"] .lxm-podio{--lxp-fundo:#fff}
:root[data-theme="light"] .lxm-podio__n{box-shadow:0 0 0 1.5px #fff,0 2px 6px -3px rgba(17,26,51,.5)}
:root[data-theme="light"] .lxm-cmt__box--p1 > .lxm-cmt__main .lxm-cmt__head > strong{color:#8a5a0c}
:root[data-theme="light"] .lxm-cmt__box--p2 > .lxm-cmt__main .lxm-cmt__head > strong{color:#59637a}
:root[data-theme="light"] .lxm-cmt__box--p3 > .lxm-cmt__main .lxm-cmt__head > strong{color:#9a5526}
@media (prefers-reduced-motion:reduce){
	.lxm-podio--p1::after{animation:none;opacity:.35}
	a.lxm-podio:hover{transform:none}
}
/* Ranking liberado, na própria tela da aula -------------------------------- */
/* O aluno conclui a primeira aula e a comemoração acontece ali mesmo, não
   adianta guardar a melhor notícia do dia atrás de um clique no menu. */
.lxm-libera{position:fixed;inset:0;z-index:2147483610;display:grid;place-items:center;padding:20px;background:rgba(4,8,20,.84);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:lxmLiberaEntra .35s ease both}
.lxm-libera.is-saindo{animation:lxmLiberaSai .3s ease both}
@keyframes lxmLiberaEntra{from{opacity:0}to{opacity:1}}
@keyframes lxmLiberaSai{to{opacity:0}}
.lxm-libera__caixa{position:relative;overflow:hidden;width:min(460px,100%);padding:clamp(28px,5vw,40px) clamp(22px,4vw,36px);border-radius:var(--lx-r-lg,20px);text-align:center;color:#fff;background:radial-gradient(120% 140% at 50% 0%,#1b2a5c 0%,#0b1230 48%,#070d1c 100%);box-shadow:0 40px 90px -40px rgba(0,0,0,.95);animation:lxmLiberaSobe .6s cubic-bezier(.2,.9,.25,1.1) both}
@keyframes lxmLiberaSobe{from{opacity:0;transform:translateY(26px) scale(.94)}to{opacity:1;transform:none}}
.lxm-libera__caixa::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(246,218,134,.7),rgba(246,218,134,.05) 45%,rgba(47,92,255,.4));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:3}
.lxm-libera__medal{position:relative;z-index:2;width:clamp(104px,26vw,134px);margin:0 auto 18px;display:block;animation:lxmLiberaMedal .9s cubic-bezier(.2,.9,.25,1.2) both .1s}
@keyframes lxmLiberaMedal{from{opacity:0;transform:scale(.4) rotate(-22deg)}to{opacity:1;transform:none}}
.lxm-libera__medal svg{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 30px rgba(0,0,0,.6))}
.lxm-libera__medal::after{content:"";position:absolute;inset:-24%;border-radius:50%;z-index:-1;background:radial-gradient(circle,rgba(246,218,134,.42),transparent 65%);animation:lxmLiberaHalo 3.6s ease-in-out infinite}
@keyframes lxmLiberaHalo{0%,100%{transform:scale(.92);opacity:.5}50%{transform:scale(1.08);opacity:1}}
.lxm-libera__tag{position:relative;z-index:2;display:inline-block;margin:0 0 11px;padding:6px 14px;border-radius:999px;font:700 11.5px/1 var(--lx-font,inherit);letter-spacing:.09em;text-transform:uppercase;color:#241703;background:linear-gradient(135deg,#fff6d2,#f6da86 45%,#e3b04b)}
.lxm-libera__title{position:relative;z-index:2;margin:0 0 10px;font-size:clamp(23px,5vw,31px);line-height:1.14;font-weight:800;letter-spacing:-.02em;color:#fff}
.lxm-libera__text{position:relative;z-index:2;margin:0;font-size:14.5px;line-height:1.6;color:rgba(230,236,255,.84)}
.lxm-libera__acoes{position:relative;z-index:2;display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:24px}
.lxm-libera .lxm-libera__btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;box-sizing:border-box;padding:14px 22px;border:0;border-radius:999px;cursor:pointer;text-decoration:none;color:#241703;font:800 14.5px/1 var(--lx-font,inherit);background:linear-gradient(135deg,#fff6d2,#f6da86 35%,#e3b04b 75%,#b27b21);box-shadow:0 16px 30px -14px rgba(240,190,80,.9),inset 0 1px 0 rgba(255,255,255,.6);transition:transform .18s}
.lxm-libera .lxm-libera__btn:hover{transform:translateY(-2px);color:#241703}
.lxm-libera .lxm-libera__btn:active{transform:scale(.985)}
.lxm-libera .lxm-libera__btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.lxm-libera .lxm-libera__btn svg{width:17px;height:17px;flex:0 0 auto}
.lxm-libera__depois{background:none;border:0;cursor:pointer;padding:8px;color:rgba(214,224,250,.72);font:600 13px/1 var(--lx-font,inherit)}
.lxm-libera__depois:hover{color:#fff}
.lxm-libera__depois:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:8px}
.lxm-libera__conf{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;border-radius:inherit}
.lxm-libera__conf i{position:absolute;top:-14%;left:var(--x,50%);width:7px;height:12px;border-radius:2px;background:var(--c,#f6da86);opacity:0;animation:lxmLiberaConf 2.8s linear infinite;animation-delay:var(--d,0ms)}
@keyframes lxmLiberaConf{0%{opacity:0;transform:translateY(0) rotate(0)}9%{opacity:1}100%{opacity:0;transform:translateY(460px) rotate(560deg)}}
@media (prefers-reduced-motion:reduce){
	.lxm-libera,.lxm-libera__caixa,.lxm-libera__medal{animation:none}
	.lxm-libera__medal::after{animation:none;opacity:.4}
	.lxm-libera__conf{display:none}
	.lxm-libera .lxm-libera__btn:hover{transform:none}
}

/* ------------------------------------------------------------------ */
/* Correcao: a variante sem menu perdia a disputa                       */
/* ------------------------------------------------------------------ */
/*
 * .lxm-shell--bare existe la em cima, mas as regras de largura da barra
 * lateral foram escritas DEPOIS dela e sem excluir a variante. Com a mesma
 * especificidade, quem vem depois ganha, entao toda tela sem menu (Acesso
 * restrito, por exemplo) caia dentro da coluna estreita da lateral e ficava
 * espremida em cerca de 210px. Isto vem no fim do arquivo de proposito:
 * aqui ninguem sobrescreve.
 */
.lxm-shell--bare,
:root.lxm-menu-recolhido .lxm-shell--bare{grid-template-columns:minmax(0,1fr)}



/* ============================================================
   MODO APLICATIVO
   So vale para quem abriu pela primeira vez dentro do app.
   A marca e gravada em /app/ antes de entrar na area de membros.
   Quem visita pelo navegador nunca ve nada disso.
   ============================================================ */
:root.lxm-app body{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior-y:contain}
:root.lxm-app::before{content:"";position:fixed;top:0;left:0;right:0;height:2px;z-index:99999;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(246,218,134,.85) 20%,rgba(246,218,134,.85) 80%,transparent)}
:root.lxm-app .lxm-shell{padding-bottom:env(safe-area-inset-bottom,0)}
:root.lxm-app [data-lxm-so-site]{display:none !important}


/* ===== Barra fixa do modo aplicativo ===== */
:root.lxm-app .lxm-appbar{position:fixed;left:0;right:0;bottom:0;z-index:2147482000;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(13,16,22,.94),rgba(8,10,14,.99));border-top:1px solid rgba(246,218,134,.18);box-shadow:0 -12px 34px rgba(0,0,0,.45);backdrop-filter:saturate(1.2) blur(10px)}
:root.lxm-app .lxm-appbar::before{content:"";position:absolute;left:18%;right:18%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(246,218,134,.55),transparent)}
:root.lxm-app .lxm-appbar__b{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 2px 6px;border:0;background:transparent;cursor:pointer;text-decoration:none;color:#7e869a;font:inherit;font-size:10.5px;letter-spacing:.02em;border-radius:14px;transition:color .18s ease,background .18s ease}
:root.lxm-app .lxm-appbar__b svg{width:21px;height:21px}
:root.lxm-app .lxm-appbar__b:active{background:rgba(255,255,255,.05)}
:root.lxm-app .lxm-appbar__b.ativo{color:#f6da86}
:root.lxm-app .lxm-appbar__b.ativo::after{content:"";position:absolute;top:0;width:22px;height:2px;border-radius:99px;background:linear-gradient(90deg,transparent,#f6da86,transparent)}
:root.lxm-app .lxm-appbar__b.e-sair{color:#c98a8a}
:root.lxm-app .lxm-appbar__selo{position:absolute;top:2px;right:calc(50% - 20px);min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:linear-gradient(180deg,#f6da86,#cdaa57);color:#1a1406;font-size:10px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 3px 10px rgba(201,164,76,.45)}
:root.lxm-app .lxm-appbar__selo[hidden]{display:none}
:root.lxm-app .lxm-content,:root.lxm-app .lxm-shell{padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}
:root.lxm-app .nxzf{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
:root[data-theme="light"].lxm-app .lxm-appbar{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(246,247,250,.99));border-top-color:rgba(201,164,76,.3)}
:root[data-theme="light"].lxm-app .lxm-appbar__b{color:#6b7280}
:root[data-theme="light"].lxm-app .lxm-appbar__b.ativo{color:#8a6d22}
