:root{
  --navy-950:#081525;
  --navy-900:#0d1d30;
  --navy-850:#12263d;
  --navy-800:#17314d;

  --gold-500:#c7a86b;
  --gold-400:#d4ba84;
  --gold-300:#e3cea2;

  --cream:#f6f1e7;
  --paper:#fffdf8;
  --white:#ffffff;

  --ink:#152033;
  --muted:#6d7580;
  --soft:#eef1f4;
  --line:#e4e7eb;

  --success:#2c8a5b;
  --danger:#b94747;

  --shadow:0 18px 50px rgba(8,21,37,.12);
  --shadow-soft:0 10px 30px rgba(8,21,37,.07);
}


/* =========================================================
   BASE
========================================================= */

*{
  box-sizing:border-box;
}

[hidden]{
  display:none!important;
}

html,
body{
  min-height:100%;
}

body{
  margin:0;
  min-height:100vh;

  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;

  background:var(--cream);
  color:var(--ink);
}

button,
input,
textarea{
  font:inherit;
}

button{
  -webkit-tap-highlight-color:transparent;
}

button,
.nav-item,
.material-card,
.home-ai-card,
.module-card,
.module-file-item{
  transition:
    background .18s ease,
    border-color .18s ease,
    color .18s ease,
    transform .18s ease,
    box-shadow .18s ease;
}

img{
  display:block;
  max-width:100%;
}

.app-shell{
  min-height:100vh;
}


/* =========================================================
   LOGIN
========================================================= */

.auth-card{
  width:min(500px,calc(100% - 32px));
  margin:32px auto;

  background:var(--paper);

  border:1px solid rgba(199,168,107,.28);
  border-radius:28px;

  box-shadow:var(--shadow);

  overflow:hidden;
}

.auth-brand{
  min-height:138px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  padding:24px 28px 22px;

  background:
    radial-gradient(
      circle at 50% -25%,
      rgba(199,168,107,.13),
      transparent 45%
    ),
    linear-gradient(
      135deg,
      var(--navy-950),
      var(--navy-850)
    );

  color:var(--white);
  text-align:center;
}

.auth-brand-logo{
  width:min(255px,78%);
  max-height:72px;

  object-fit:contain;

  filter:
    drop-shadow(
      0 5px 16px rgba(0,0,0,.16)
    );
}

.auth-brand-sub{
  margin-top:15px;

  color:rgba(255,255,255,.68);

  font-size:10px;
  font-weight:800;

  letter-spacing:.2em;
}

.auth-content{
  padding:44px 42px 36px;
  text-align:center;
}

.auth-product-logo{
  width:76px;
  height:76px;

  margin:0 auto 22px;

  border-radius:19px;

  object-fit:cover;

  box-shadow:
    0 12px 28px rgba(8,21,37,.15);
}

.auth-content h1{
  margin:0;

  color:var(--navy-950);

  font-size:34px;
  line-height:1.08;

  letter-spacing:-.04em;
}

.auth-content p{
  max-width:390px;

  margin:14px auto 28px;

  color:var(--muted);

  font-size:14px;
  line-height:1.65;
}

.auth-content strong{
  color:var(--navy-850);
}

.auth-form{
  display:flex;
  flex-direction:column;

  gap:9px;

  text-align:left;
}

.auth-form label{
  color:var(--navy-850);

  font-size:13px;
  font-weight:800;
}

.auth-form input{
  width:100%;
  min-height:54px;

  padding:0 16px;

  border:1px solid #d8dde3;
  border-radius:14px;

  outline:none;

  background:var(--white);
  color:var(--ink);
}

.auth-form input:focus{
  border-color:var(--gold-500);

  box-shadow:
    0 0 0 4px rgba(199,168,107,.12);
}

.auth-form button{
  min-height:54px;

  margin-top:8px;

  border:0;
  border-radius:14px;

  background:
    linear-gradient(
      135deg,
      var(--navy-850),
      var(--navy-950)
    );

  color:var(--white);

  font-weight:800;

  cursor:pointer;
}

.auth-form button:hover{
  transform:translateY(-1px);

  box-shadow:
    0 10px 20px rgba(8,21,37,.16);
}

.auth-form button:disabled{
  cursor:not-allowed;
  opacity:.58;
}

.code-input{
  text-align:center;

  font-size:25px!important;
  font-weight:900;

  letter-spacing:.22em;
}

.auth-secondary-actions{
  display:flex;
  justify-content:center;

  gap:18px;

  margin-top:20px;

  flex-wrap:wrap;
}

.link-button{
  padding:0;

  border:0;

  background:transparent;

  color:var(--muted);

  font-size:13px;

  cursor:pointer;

  text-decoration:underline;
  text-underline-offset:3px;
}

.link-button:hover{
  color:var(--navy-900);
}

.link-button:disabled{
  cursor:not-allowed;
  opacity:.48;
}

.auth-message{
  min-height:20px;

  margin-top:18px;

  font-size:13px;
  line-height:1.45;
}

.auth-message.success{
  color:var(--success);
}

.auth-message.error{
  color:var(--danger);
}

.auth-message.info{
  color:var(--muted);
}

.auth-footer{
  padding:18px 28px;

  border-top:1px solid var(--line);

  color:#9097a1;

  text-align:center;

  font-size:11px;
  line-height:1.5;
}


/* =========================================================
   PLATAFORMA
========================================================= */

.platform-shell{
  min-height:100vh;

  display:grid;

  grid-template-columns:
    268px minmax(0,1fr);

  background:#f4f2ec;
}


/* =========================================================
   SIDEBAR
========================================================= */

.sidebar{
  min-height:100vh;

  position:sticky;
  top:0;

  align-self:start;

  display:flex;
  flex-direction:column;

  padding:25px 20px 20px;

  background:
    radial-gradient(
      circle at 50% -10%,
      rgba(199,168,107,.08),
      transparent 32%
    ),
    linear-gradient(
      180deg,
      var(--navy-950) 0%,
      var(--navy-900) 62%,
      #0b1928 100%
    );

  border-right:
    1px solid rgba(255,255,255,.05);

  color:var(--white);
}

.sidebar-brand{
  padding:0 7px 27px;
}

.sidebar-logo{
  width:195px;
  max-height:62px;

  object-fit:contain;
  object-position:left center;

  filter:
    drop-shadow(
      0 4px 12px rgba(0,0,0,.13)
    );
}

.sidebar-brand-divider{
  width:42px;
  height:1px;

  margin:13px 0 12px;

  background:
    rgba(199,168,107,.52);
}

.sidebar-product-brand{
  display:flex;
  align-items:center;

  gap:9px;

  color:rgba(255,255,255,.76);

  font-size:10px;
  font-weight:800;

  letter-spacing:.15em;
}

.sidebar-product-icon{
  width:27px;
  height:27px;

  border-radius:7px;

  object-fit:cover;
}

.sidebar-nav{
  display:flex;
  flex-direction:column;

  gap:7px;
}

.nav-item{
  width:100%;
  min-height:48px;

  display:flex;
  align-items:center;

  gap:12px;

  padding:0 13px;

  border:
    1px solid transparent;

  border-radius:13px;

  background:transparent;

  color:
    rgba(255,255,255,.66);

  text-align:left;

  font-size:14px;
  font-weight:700;

  cursor:pointer;
}

.nav-icon{
  width:22px;

  display:inline-flex;
  justify-content:center;

  color:var(--gold-400);

  font-size:17px;
}

.nav-item:hover{
  background:
    rgba(255,255,255,.055);

  color:var(--white);
}

.nav-item.active{
  background:
    rgba(199,168,107,.12);

  border-color:
    rgba(199,168,107,.21);

  color:var(--white);
}

.sidebar-footer{
  margin-top:auto;

  padding-top:22px;

  border-top:
    1px solid rgba(255,255,255,.08);
}

.sidebar-user{
  display:flex;
  align-items:center;

  gap:11px;
}

.sidebar-avatar{
  width:40px;
  height:40px;

  flex:0 0 40px;

  display:grid;
  place-items:center;

  border-radius:50%;

  background:
    rgba(199,168,107,.16);

  border:
    1px solid rgba(199,168,107,.26);

  color:var(--gold-300);

  font-size:14px;
  font-weight:900;
}

.sidebar-user-info{
  min-width:0;
}

.sidebar-user-name{
  max-width:158px;

  overflow:hidden;

  white-space:nowrap;

  text-overflow:ellipsis;

  color:var(--white);

  font-size:12px;
  font-weight:800;
}

.sidebar-user-email{
  max-width:158px;

  margin-top:3px;

  overflow:hidden;

  white-space:nowrap;

  text-overflow:ellipsis;

  color:
    rgba(255,255,255,.44);

  font-size:10px;
}

.sidebar-logout{
  width:100%;
  min-height:42px;

  margin-top:14px;

  border:
    1px solid rgba(255,255,255,.1);

  border-radius:11px;

  background:
    rgba(255,255,255,.04);

  color:
    rgba(255,255,255,.68);

  font-size:12px;
  font-weight:700;

  cursor:pointer;
}

.sidebar-logout:hover{
  border-color:
    rgba(199,168,107,.25);

  background:
    rgba(199,168,107,.09);

  color:var(--white);
}


/* =========================================================
   ÁREA PRINCIPAL
========================================================= */

.platform-main{
  min-width:0;
}

.platform-topbar{
  min-height:84px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:20px;

  padding:18px 32px;

  border-bottom:
    1px solid #e1ded6;

  background:
    rgba(255,253,248,.93);

  backdrop-filter:
    blur(10px);
}

.platform-section-label{
  margin-bottom:4px;

  color:var(--gold-500);

  font-size:10px;
  font-weight:900;

  letter-spacing:.16em;

  text-transform:uppercase;
}

.platform-section-title{
  color:var(--navy-950);

  font-size:20px;
  font-weight:900;

  letter-spacing:-.025em;
}

.platform-topbar-right{
  display:flex;
  align-items:center;

  gap:14px;
}

.status{
  display:flex;
  align-items:center;

  gap:8px;

  color:var(--muted);

  font-size:12px;
}

.dot{
  width:8px;
  height:8px;

  border-radius:50%;

  background:#a5abb2;
}

.status.ok .dot{
  background:#26a269;

  box-shadow:
    0 0 0 4px rgba(38,162,105,.09);
}

.status.error .dot{
  background:#d95656;
}


/* =========================================================
   VIEWS
========================================================= */

.app-view{
  display:none;

  padding:30px 32px 42px;
}

.app-view.active{
  display:block;
}


/* =========================================================
   HOME
========================================================= */

.home-hero{
  min-height:310px;

  display:grid;

  grid-template-columns:
    minmax(0,1.55fr)
    minmax(240px,.6fr);

  gap:26px;

  align-items:stretch;

  padding:42px;

  border:
    1px solid rgba(199,168,107,.25);

  border-radius:28px;

  background:
    radial-gradient(
      circle at 90% 15%,
      rgba(199,168,107,.13),
      transparent 32%
    ),
    linear-gradient(
      135deg,
      var(--navy-950),
      var(--navy-850)
    );

  box-shadow:
    var(--shadow-soft);

  overflow:hidden;
}

.home-hero-content{
  align-self:center;

  max-width:720px;
}

.home-brand-row{
  display:flex;
  align-items:center;

  gap:12px;

  margin-bottom:15px;
}

.home-product-logo{
  width:42px;
  height:42px;

  border-radius:11px;

  object-fit:cover;

  box-shadow:
    0 7px 18px rgba(0,0,0,.2);
}

.eyebrow{
  margin:0;

  color:var(--gold-400);

  font-size:11px;
  font-weight:900;

  letter-spacing:.18em;
}

.home-hero h1{
  margin:0;

  max-width:650px;

  color:var(--white);

  font-size:
    clamp(38px,5vw,64px);

  line-height:.98;

  letter-spacing:-.055em;
}

.home-hero p{
  max-width:650px;

  margin:20px 0 0;

  color:
    rgba(255,255,255,.68);

  font-size:16px;

  line-height:1.7;
}

.home-hero-actions{
  display:flex;

  gap:12px;

  margin-top:28px;

  flex-wrap:wrap;
}

.primary-action,
.secondary-action{
  min-height:48px;

  padding:0 18px;

  border-radius:13px;

  font-weight:800;

  cursor:pointer;
}

.primary-action{
  border:
    1px solid var(--gold-500);

  background:
    var(--gold-500);

  color:var(--navy-950);
}

.primary-action:hover{
  background:
    var(--gold-400);

  transform:
    translateY(-1px);
}

.secondary-action{
  border:
    1px solid rgba(255,255,255,.17);

  background:
    rgba(255,255,255,.055);

  color:var(--white);
}

.secondary-action:hover{
  background:
    rgba(255,255,255,.09);
}

.home-hero-panel{
  min-height:100%;

  display:flex;
  flex-direction:column;

  justify-content:center;
  align-items:center;

  padding:28px;

  border:
    1px solid rgba(199,168,107,.22);

  border-radius:22px;

  background:
    rgba(255,255,255,.045);

  text-align:center;
}

.home-hero-panel-label{
  color:
    rgba(255,255,255,.56);

  font-size:11px;
  font-weight:800;

  letter-spacing:.13em;

  text-transform:uppercase;
}

.home-hero-panel-number{
  margin:10px 0 4px;

  color:var(--gold-300);

  font-size:72px;
  line-height:1;

  font-weight:900;

  letter-spacing:-.06em;
}

.home-hero-panel-text{
  color:
    rgba(255,255,255,.64);

  font-size:13px;
}


/* =========================================================
   SEÇÕES DASHBOARD
========================================================= */

.dashboard-section{
  margin-top:34px;
}

.dashboard-section-header{
  display:flex;

  justify-content:space-between;
  align-items:flex-end;

  gap:20px;

  margin-bottom:16px;
}

.dashboard-eyebrow{
  margin-bottom:6px;

  color:var(--gold-500);

  font-size:10px;
  font-weight:900;

  letter-spacing:.16em;
}

.dashboard-section h2,
.library-intro h1{
  margin:0;

  color:var(--navy-950);

  font-size:28px;

  letter-spacing:-.035em;
}

.text-action{
  padding:0;

  border:0;

  background:transparent;

  color:var(--navy-800);

  font-size:12px;
  font-weight:800;

  cursor:pointer;
}

.text-action:hover{
  color:var(--gold-500);
}


/* =========================================================
   CARDS MATERIAIS
========================================================= */

.material-grid{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:16px;
}

.material-grid-home{
  grid-template-columns:
    repeat(3,minmax(0,1fr));
}

.material-card{
  min-height:190px;

  display:flex;
  flex-direction:column;

  padding:21px;

  border:
    1px solid #dddfe2;

  border-radius:18px;

  background:var(--paper);

  box-shadow:
    0 5px 18px rgba(8,21,37,.035);
}

.material-card.clickable{
  cursor:pointer;
}

.material-card:hover{
  transform:
    translateY(-2px);

  border-color:
    rgba(199,168,107,.42);

  box-shadow:
    0 14px 28px rgba(8,21,37,.08);
}

.material-card-top{
  display:flex;

  align-items:flex-start;
  justify-content:space-between;

  gap:14px;
}

.material-icon{
  width:42px;
  height:42px;

  display:grid;
  place-items:center;

  border-radius:13px;

  background:var(--navy-900);

  color:var(--gold-300);

  font-size:14px;
  font-weight:900;
}

.material-status{
  display:inline-flex;
  align-items:center;

  gap:6px;

  padding:5px 8px;

  border-radius:999px;

  background:#eef7f1;

  color:var(--success);

  font-size:10px;
  font-weight:900;

  letter-spacing:.04em;
}

.material-status::before{
  content:"";

  width:6px;
  height:6px;

  border-radius:50%;

  background:var(--success);
}

.material-name{
  margin-top:19px;

  color:var(--navy-950);

  font-size:16px;
  font-weight:900;

  line-height:1.28;

  letter-spacing:-.02em;
}

.material-description{
  margin-top:8px;

  color:var(--muted);

  font-size:12px;

  line-height:1.55;
}

.material-card-footer{
  margin-top:auto;

  padding-top:16px;

  color:#a0a6ad;

  font-size:10px;
  font-weight:700;

  letter-spacing:.07em;

  text-transform:uppercase;
}


/* =========================================================
   CARD IA HOME
========================================================= */

.home-ai-card{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:26px;

  padding:24px;

  border:
    1px solid rgba(199,168,107,.24);

  border-radius:20px;

  background:
    linear-gradient(
      135deg,
      #fffdf8,
      #f7f2e8
    );
}

.home-ai-card-content{
  display:flex;

  align-items:center;

  gap:16px;
}

.home-ai-logo{
  width:55px;
  height:55px;

  flex:0 0 55px;

  border-radius:15px;

  object-fit:cover;

  box-shadow:
    0 9px 22px rgba(8,21,37,.13);
}

.home-ai-card h3{
  margin:1px 0 7px;

  color:var(--navy-950);

  font-size:18px;
}

.home-ai-card p{
  max-width:680px;

  margin:0;

  color:var(--muted);

  font-size:13px;

  line-height:1.6;
}

.home-ai-card .primary-action{
  flex:0 0 auto;
}


/* =========================================================
   BIBLIOTECA
========================================================= */

.library-intro{
  display:flex;

  justify-content:space-between;

  gap:28px;

  align-items:flex-end;

  margin-bottom:24px;
}

.library-intro p{
  max-width:650px;

  margin:10px 0 0;

  color:var(--muted);

  line-height:1.6;
}

.library-counter{
  min-width:170px;

  padding:18px 20px;

  border:
    1px solid rgba(199,168,107,.28);

  border-radius:16px;

  background:var(--paper);

  text-align:right;
}

.library-counter-number{
  color:var(--navy-950);

  font-size:32px;

  line-height:1;

  font-weight:900;
}

.library-counter-label{
  margin-top:6px;

  color:var(--muted);

  font-size:11px;
}
.library-coming-soon{
  display:flex;

  align-items:center;

  gap:18px;

  margin-top:28px;

  padding:24px;

  border:
    1px solid rgba(199,168,107,.25);

  border-radius:20px;

  background:
    linear-gradient(
      135deg,
      #f7f0e3,
      #fffdf8
    );
}

.library-coming-soon-logo{
  width:52px;
  height:52px;

  flex:0 0 52px;

  border-radius:14px;

  object-fit:cover;

  box-shadow:
    0 8px 20px rgba(8,21,37,.12);
}

.library-coming-soon h3{
  margin:0;

  color:var(--navy-950);

  font-size:17px;
}

.library-coming-soon p{
  margin:7px 0 0;

  color:var(--muted);

  font-size:12px;

  line-height:1.6;
}


/* =========================================================
   CONTEÚDO — NAVEGAÇÃO
========================================================= */

.content-breadcrumb{
  margin-bottom:18px;
}

.content-back-button{
  min-height:40px;

  padding:0 12px;

  border:
    1px solid #dfe2e5;

  border-radius:11px;

  background:var(--paper);

  color:var(--navy-850);

  font-size:12px;
  font-weight:800;

  cursor:pointer;
}

.content-back-button:hover{
  border-color:
    rgba(199,168,107,.42);

  color:var(--gold-500);

  background:#fffaf1;
}


/* =========================================================
   PÁGINA DO PRODUTO
========================================================= */

.product-page-hero{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:28px;

  padding:30px;

  border:
    1px solid rgba(199,168,107,.24);

  border-radius:24px;

  background:
    radial-gradient(
      circle at 85% 15%,
      rgba(199,168,107,.1),
      transparent 34%
    ),
    linear-gradient(
      135deg,
      var(--navy-950),
      var(--navy-850)
    );

  box-shadow:
    var(--shadow-soft);
}

.product-page-brand{
  display:flex;

  align-items:center;

  gap:22px;
}

.product-page-logo{
  width:92px;
  height:92px;

  flex:0 0 92px;

  border-radius:23px;

  object-fit:cover;

  box-shadow:
    0 14px 30px rgba(0,0,0,.22);
}

.product-page-hero .dashboard-eyebrow{
  color:var(--gold-400);
}

.product-page-hero h1{
  margin:0;

  color:var(--white);

  font-size:
    clamp(34px,4vw,50px);

  letter-spacing:-.045em;
}

.product-page-hero p{
  max-width:650px;

  margin:10px 0 0;

  color:
    rgba(255,255,255,.67);

  font-size:14px;
  line-height:1.65;
}

.product-page-status{
  flex:0 0 auto;

  display:flex;
  align-items:center;

  gap:7px;

  padding:9px 12px;

  border:
    1px solid rgba(100,210,145,.18);

  border-radius:999px;

  background:
    rgba(76,180,118,.1);

  color:#aee7c3;

  font-size:11px;
  font-weight:900;
}

.product-status-dot{
  width:7px;
  height:7px;

  border-radius:50%;

  background:#5fce8d;
}

.content-section-header{
  margin:
    32px 0 18px;
}

.content-section-header h2{
  margin:0;

  color:var(--navy-950);

  font-size:28px;

  letter-spacing:-.035em;
}

.content-section-header p{
  margin:7px 0 0;

  color:var(--muted);

  font-size:13px;
}


/* =========================================================
   GRID DOS 12 MÓDULOS
========================================================= */

.module-grid{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:16px;
}

.module-card{
  min-height:190px;

  display:flex;
  flex-direction:column;

  padding:22px;

  border:
    1px solid #dfe2e5;

  border-radius:18px;

  background:var(--paper);

  box-shadow:
    0 5px 18px rgba(8,21,37,.035);

  cursor:pointer;
}

.module-card:hover{
  transform:
    translateY(-2px);

  border-color:
    rgba(199,168,107,.42);

  box-shadow:
    0 14px 28px rgba(8,21,37,.08);
}

.module-card-number{
  width:45px;
  height:45px;

  display:grid;
  place-items:center;

  border-radius:14px;

  background:
    var(--navy-950);

  color:var(--gold-300);

  font-size:14px;
  font-weight:900;
}

.module-card-title{
  margin-top:18px;

  color:var(--navy-950);

  font-size:17px;
  font-weight:900;

  letter-spacing:-.02em;
}

.module-card-meta{
  margin-top:7px;

  color:var(--muted);

  font-size:12px;
}

.module-card-footer{
  margin-top:auto;

  padding-top:16px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:10px;

  color:var(--gold-500);

  font-size:11px;
  font-weight:900;
}

.module-card-files{
  color:#9ca3ad;

  font-size:10px;
  font-weight:700;
}


/* =========================================================
   PÁGINA DO MÓDULO
========================================================= */

.module-page-header{
  display:flex;

  align-items:center;

  gap:20px;

  padding:28px;

  border:
    1px solid rgba(199,168,107,.24);

  border-radius:22px;

  background:
    linear-gradient(
      135deg,
      #fffdf8,
      #f8f2e7
    );
}

.module-page-number{
  width:76px;
  height:76px;

  flex:0 0 76px;

  display:grid;
  place-items:center;

  border-radius:20px;

  background:var(--navy-950);

  color:var(--gold-300);

  font-size:22px;
  font-weight:900;

  box-shadow:
    0 10px 24px rgba(8,21,37,.14);
}

.module-page-header h1{
  margin:0;

  color:var(--navy-950);

  font-size:34px;

  letter-spacing:-.04em;
}

.module-page-header p{
  margin:8px 0 0;

  color:var(--muted);

  font-size:13px;
}


/* =========================================================
   LISTA DE ARQUIVOS DO MÓDULO
========================================================= */

.module-files-list{
  display:flex;
  flex-direction:column;

  gap:10px;
}

.module-file-item{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:18px;

  padding:16px 18px;

  border:
    1px solid #dfe2e5;

  border-radius:15px;

  background:var(--paper);

  cursor:pointer;
}

.module-file-item:hover{
  transform:
    translateY(-1px);

  border-color:
    rgba(199,168,107,.42);

  box-shadow:
    0 8px 20px rgba(8,21,37,.055);
}

.module-file-main{
  min-width:0;

  display:flex;
  align-items:center;

  gap:13px;
}

.module-file-icon{
  width:42px;
  height:42px;

  flex:0 0 42px;

  display:grid;
  place-items:center;

  border-radius:12px;

  background:
    #f5ede0;

  color:var(--navy-950);

  font-size:11px;
  font-weight:900;
}

.module-file-text{
  min-width:0;
}

.module-file-title{
  color:var(--navy-950);

  font-size:13px;
  font-weight:900;

  line-height:1.4;
}

.module-file-meta{
  margin-top:3px;

  color:#9aa1aa;

  font-size:10px;
}

.module-file-action{
  flex:0 0 auto;

  color:var(--gold-500);

  font-size:11px;
  font-weight:900;
}


/* =========================================================
   ESTADO VAZIO
========================================================= */

.content-empty-state{
  padding:44px 22px;

  border:
    1px dashed #d8dce0;

  border-radius:18px;

  background:
    rgba(255,255,255,.5);

  text-align:center;
}

.content-empty-icon{
  width:54px;
  height:54px;

  margin:0 auto 14px;

  display:grid;
  place-items:center;

  border-radius:16px;

  background:var(--navy-950);

  color:var(--gold-300);

  font-size:14px;
  font-weight:900;
}

.content-empty-state h3{
  margin:0;

  color:var(--navy-950);

  font-size:17px;
}

.content-empty-state p{
  margin:7px 0 0;

  color:var(--muted);

  font-size:12px;
}


/* =========================================================
   VISUALIZADOR DE MATERIAL
========================================================= */

.content-viewer-header{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:20px;

  margin-bottom:16px;
}

.content-viewer-title-wrap{
  min-width:0;

  text-align:right;
}

.content-viewer-title-wrap h2{
  margin:0;

  max-width:760px;

  overflow:hidden;

  white-space:nowrap;

  text-overflow:ellipsis;

  color:var(--navy-950);

  font-size:18px;
}

.content-viewer-shell{
  height:
    calc(100vh - 180px);

  min-height:650px;

  overflow:hidden;

  border:
    1px solid #d9dde1;

  border-radius:18px;

  background:#dfe3e7;

  box-shadow:
    var(--shadow-soft);
}

.content-viewer-frame{
  width:100%;
  height:100%;

  border:0;

  background:#fff;
}


/* =========================================================
   CHAT
========================================================= */

#chatAppView{
  padding-bottom:24px;
}

.chat-card{
  min-height:
    calc(100vh - 84px - 54px);

  display:flex;
  flex-direction:column;

  overflow:hidden;
    border:
    1px solid #dedfdc;

  border-radius:22px;

  background:var(--paper);

  box-shadow:var(--shadow-soft);
}

.welcome{
  padding:44px 30px 28px;

  text-align:center;

  background:
    linear-gradient(
      180deg,
      rgba(199,168,107,.07),
      transparent 70%
    );
}

.chat-product-logo{
  width:72px;
  height:72px;

  margin:0 auto 17px;

  border-radius:19px;

  object-fit:cover;

  box-shadow:
    0 12px 28px rgba(8,21,37,.14);
}

.knowledge-pill{
  display:inline-block;

  margin-bottom:14px;

  padding:7px 11px;

  border:
    1px solid rgba(199,168,107,.25);

  border-radius:999px;

  background:#f8f2e6;

  color:#806934;

  font-size:11px;
  font-weight:800;
}

.welcome h1{
  margin:0;

  color:var(--navy-950);

  font-size:
    clamp(34px,4vw,50px);

  line-height:1.05;

  letter-spacing:-.045em;
}

.welcome p{
  max-width:680px;

  margin:14px auto 25px;

  color:var(--muted);

  line-height:1.65;
}

.quick-actions{
  width:min(800px,100%);

  margin:0 auto;

  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:10px;
}

.quick-actions button{
  min-height:58px;

  padding:14px 16px;

  border:
    1px solid #e0e2e4;

  border-radius:14px;

  background:var(--white);

  color:#3d4652;

  text-align:left;

  cursor:pointer;
}

.quick-actions button:hover{
  border-color:
    rgba(199,168,107,.4);

  background:#fdf9f1;
}

.messages{
  flex:1;

  overflow-y:auto;

  padding:16px 26px 24px;
}

.message{
  max-width:78%;

  margin:14px 0;

  padding:14px 16px;

  border-radius:16px;

  line-height:1.6;

  white-space:pre-wrap;
}

.message.user{
  margin-left:auto;

  background:var(--navy-900);

  color:var(--white);

  border-bottom-right-radius:5px;
}

.message.assistant{
  margin-right:auto;

  background:#f1f2f3;

  color:var(--ink);

  border-bottom-left-radius:5px;
}

.message.thinking{
  color:var(--muted);

  font-style:italic;
}

.composer{
  display:flex;

  gap:10px;

  align-items:flex-end;

  padding:16px 22px;

  border-top:
    1px solid #e5e6e7;

  background:var(--white);
}

.composer textarea{
  flex:1;

  max-height:160px;

  resize:none;

  padding:14px 16px;

  border:
    1px solid #d9dde1;

  border-radius:14px;

  outline:none;

  background:#fff;

  color:var(--ink);

  line-height:1.45;
}

.composer textarea:focus{
  border-color:
    var(--gold-500);

  box-shadow:
    0 0 0 4px rgba(199,168,107,.09);
}

.composer button{
  min-height:50px;

  padding:0 22px;

  border:
    1px solid var(--navy-900);

  border-radius:14px;

  background:
    var(--navy-900);

  color:var(--white);

  font-weight:800;

  cursor:pointer;
}

.composer button:hover{
  background:
    var(--navy-800);
}

.composer button:disabled{
  opacity:.52;
}

footer{
  padding:0 22px 17px;

  color:#9aa0a8;

  font-size:10px;

  text-align:center;
}


/* =========================================================
   FEEDBACK
========================================================= */

.feedback-box{
  max-width:760px;

  margin:8px 0 18px;

  padding:13px 14px;

  border:
    1px solid #e0e2e4;

  border-radius:14px;

  background:#faf9f6;
}

.feedback-title{
  margin-bottom:9px;

  color:var(--navy-900);

  font-size:13px;
  font-weight:800;
}

.feedback-actions{
  display:flex;

  gap:8px;

  flex-wrap:wrap;
}

.feedback-btn,
.feedback-submit{
  padding:8px 12px;

  border:
    1px solid #d8dce0;

  border-radius:10px;

  background:#fff;

  color:#3a4350;

  cursor:pointer;
}

.feedback-btn:hover,
.feedback-submit:hover{
  border-color:
    rgba(199,168,107,.38);

  background:#fdf9f1;
}

.feedback-detail{
  margin-top:10px;
}

.feedback-detail.hidden{
  display:none;
}

.feedback-detail textarea{
  width:100%;

  min-height:82px;

  resize:vertical;

  padding:10px;

  border:
    1px solid #d8dce0;

  border-radius:10px;

  background:#fff;

  color:inherit;
}

.feedback-note{
  margin:7px 0;

  font-size:11px;

  opacity:.65;

  line-height:1.4;
}

.feedback-thanks{
  font-size:12px;

  opacity:.78;
}

.feedback-error{
  margin-top:8px;

  color:var(--danger);

  font-size:12px;
}


/* =========================================================
   RESPONSIVO — TABLET
========================================================= */

@media(max-width:1100px){

  .material-grid,
  .material-grid-home,
  .module-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .home-hero{
    grid-template-columns:
      1fr 220px;

    padding:34px;
  }

}


@media(max-width:860px){

  .platform-shell{
    grid-template-columns:
      82px minmax(0,1fr);
  }

  .sidebar{
    padding:
      22px 12px 18px;
  }

  .sidebar-brand{
    padding:
      2px 0 24px;
  }

  .sidebar-logo{
    width:58px;
    height:50px;

    margin:auto;

    object-fit:contain;
    object-position:center;
  }

  .sidebar-brand-divider{
    width:30px;

    margin:
      10px auto;
  }

  .sidebar-product-brand{
    justify-content:center;
  }

  .sidebar-product-brand span{
    display:none;
  }

  .sidebar-product-icon{
    width:30px;
    height:30px;
  }

  .nav-item{
    justify-content:center;

    padding:0;
  }

  .nav-item span:last-child{
    display:none;
  }

  .nav-icon{
    width:auto;

    font-size:18px;
  }

  .sidebar-user{
    justify-content:center;
  }

  .sidebar-user-info{
    display:none;
  }

  .sidebar-logout{
    font-size:0;
  }

  .sidebar-logout::after{
    content:"↪";

    font-size:17px;
  }

  .home-hero{
    grid-template-columns:1fr;
  }

  .home-hero-panel{
    min-height:160px;
  }

  .product-page-hero{
    align-items:flex-start;
    flex-direction:column;
  }

}


/* =========================================================
   RESPONSIVO — MOBILE
========================================================= */

@media(max-width:700px){

  body{
    background:var(--paper);
  }

  .auth-card{
    width:100%;
    min-height:100vh;
    margin:0;

    display:flex;
    flex-direction:column;

    border:0;
    border-radius:0;
  }

  .auth-brand{
    min-height:125px;
  }

  .auth-brand-logo{
    width:220px;
  }

  .auth-content{
    flex:1;

    display:flex;
    flex-direction:column;
    justify-content:center;

    padding:38px 22px;
  }

  .auth-product-logo{
    width:68px;
    height:68px;
  }

  .platform-shell{
    display:block;
  }

  .sidebar{
    min-height:auto;

    position:fixed;

    left:0;
    right:0;
    bottom:0;
    top:auto;

    z-index:100;

    display:block;

    padding:
      8px
      10px
      max(8px,env(safe-area-inset-bottom));

    background:
      var(--navy-950);

    border-top:
      1px solid rgba(199,168,107,.16);
  }

  .sidebar-brand,
  .sidebar-footer{
    display:none;
  }

  .sidebar-nav{
    display:grid;

    grid-template-columns:
      repeat(3,1fr);

    gap:6px;
  }

  .nav-item{
    min-height:48px;

    display:flex;
    flex-direction:column;

    justify-content:center;

    gap:2px;

    border-radius:10px;

    font-size:9px;
  }

  .nav-item span:last-child{
    display:block;
  }

  .nav-icon{
    font-size:17px;
  }

  .platform-main{
    padding-bottom:70px;
  }

  .platform-topbar{
    min-height:70px;

    padding:14px 16px;
  }

  .platform-section-title{
    font-size:17px;
  }

  .status{
    display:none;
  }

  .app-view{
    padding:
      20px 16px 30px;
  }

  .home-hero{
    min-height:auto;

    padding:26px 22px;

    border-radius:20px;
  }

  .home-brand-row{
    gap:9px;
  }

  .home-product-logo{
    width:36px;
    height:36px;
  }

  .home-hero h1{
    font-size:40px;
  }

  .home-hero p{
    font-size:14px;
  }

  .home-hero-actions{
    flex-direction:column;
  }
    .secondary-action{
    width:100%;
  }

  .material-grid,
  .material-grid-home,
  .module-grid{
    grid-template-columns:1fr;
  }

  .home-ai-card{
    align-items:stretch;

    flex-direction:column;
  }

  .home-ai-card-content{
    align-items:flex-start;
  }

  .library-intro{
    align-items:flex-start;

    flex-direction:column;
  }

  .library-counter{
    width:100%;

    text-align:left;
  }

  .library-coming-soon{
    align-items:flex-start;
  }

  .product-page-hero{
    padding:24px 20px;
  }

  .product-page-brand{
    align-items:flex-start;
  }

  .product-page-logo{
    width:64px;
    height:64px;

    flex-basis:64px;

    border-radius:17px;
  }

  .product-page-hero h1{
    font-size:32px;
  }

  .product-page-status{
    align-self:flex-start;
  }

  .module-page-header{
    align-items:flex-start;

    padding:22px 18px;
  }

  .module-page-number{
    width:58px;
    height:58px;

    flex-basis:58px;

    border-radius:16px;

    font-size:17px;
  }

  .module-page-header h1{
    font-size:27px;
  }

  .module-file-item{
    align-items:flex-start;

    padding:14px;
  }

  .module-file-action{
    display:none;
  }

  .content-viewer-header{
    align-items:flex-start;

    flex-direction:column;
  }

  .content-viewer-title-wrap{
    width:100%;

    text-align:left;
  }

  .content-viewer-title-wrap h2{
    white-space:normal;
  }

  .content-viewer-shell{
    height:
      calc(100vh - 230px);

    min-height:500px;

    border-radius:14px;
  }

  .chat-card{
    min-height:
      calc(100vh - 140px);

    border-radius:18px;
  }

  .welcome{
    padding:
      32px 18px 22px;
  }

  .chat-product-logo{
    width:64px;
    height:64px;
  }

  .welcome h1{
    font-size:35px;
  }

  .quick-actions{
    grid-template-columns:1fr;
  }

  .messages{
    padding:
      10px 14px 18px;
  }

  .message{
    max-width:92%;
  }

  .composer{
    padding:11px 12px;
  }

  footer{
    padding:
      0 12px 12px;
  }

}


/* =========================================================
   CÓDIGO DIVINO IA — STATUS HOME
========================================================= */

.home-ai-status{
  width:100%;

  margin-top:22px;
  padding:13px 15px;

  display:flex;
  flex-direction:column;

  gap:4px;

  border:
    1px solid rgba(199,168,107,.2);

  border-radius:13px;

  background:
    rgba(255,255,255,.045);

  text-align:left;
}

.home-ai-status-label{
  color:
    rgba(255,255,255,.5);

  font-size:9px;
  font-weight:900;

  letter-spacing:.13em;

  text-transform:uppercase;
}

.home-ai-status strong{
  color:var(--gold-300);

  font-size:13px;
  font-weight:900;
}

.home-ai-status.active strong,
.home-ai-status.trial strong{
  color:#aee7c3;
}

.home-ai-status.canceled strong,
.home-ai-status.delayed strong{
  color:#f1cf84;
}

.home-ai-status.refunded strong,
.home-ai-status.chargeback strong,
.home-ai-status.inactive strong{
  color:#efaaaa;
}


/* =========================================================
   CÓDIGO DIVINO IA — TELA DE ASSINATURA
========================================================= */

.ai-subscription-screen{
  max-width:1050px;

  margin:0 auto;

  padding:46px 34px 38px;

  border:
    1px solid rgba(199,168,107,.25);

  border-radius:24px;

  background:
    radial-gradient(
      circle at 50% -10%,
      rgba(199,168,107,.1),
      transparent 34%
    ),
    var(--paper);

  box-shadow:
    var(--shadow-soft);
}

.ai-subscription-header{
  max-width:720px;

  margin:0 auto 34px;

  text-align:center;
}

.ai-subscription-logo{
  width:78px;
  height:78px;

  margin:0 auto 19px;

  border-radius:20px;

  object-fit:cover;

  box-shadow:
    0 12px 28px rgba(8,21,37,.15);
}

.ai-subscription-header h1{
  margin:4px 0 0;

  color:var(--navy-950);

  font-size:
    clamp(34px,4vw,48px);

  line-height:1.05;

  letter-spacing:-.045em;
}

.ai-subscription-header p{
  max-width:650px;

  margin:15px auto 0;

  color:var(--muted);

  font-size:14px;

  line-height:1.7;
}


/* =========================================================
   PLANOS IA
========================================================= */

.ai-plan-grid{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:18px;

  max-width:820px;

  margin:0 auto;
}

.ai-plan-card{
  position:relative;

  min-height:350px;

  display:flex;
  flex-direction:column;

  padding:28px;

  border:
    1px solid #dedfdc;

  border-radius:20px;

  background:var(--white);

  box-shadow:
    0 8px 24px rgba(8,21,37,.045);
}

.ai-plan-card.featured{
  border-color:
    rgba(199,168,107,.62);

  background:
    linear-gradient(
      180deg,
      #fffdf8 0%,
      #faf4e8 100%
    );

  box-shadow:
    0 14px 35px rgba(8,21,37,.08);
}

.ai-plan-badge{
  position:absolute;

  top:-12px;
  right:20px;

  padding:7px 11px;

  border-radius:999px;

  background:var(--gold-500);

  color:var(--navy-950);

  font-size:9px;
  font-weight:900;

  letter-spacing:.09em;
}

.ai-plan-label{
  margin-bottom:9px;

  color:var(--gold-500);

  font-size:10px;
  font-weight:900;

  letter-spacing:.16em;
}

.ai-plan-card h2{
  margin:0;

  color:var(--navy-950);

  font-size:23px;

  letter-spacing:-.03em;
}

.ai-plan-price{
  display:flex;
  align-items:baseline;

  gap:4px;

  margin:23px 0 18px;

  color:var(--navy-950);
}

.ai-plan-currency{
  font-size:14px;
  font-weight:900;
}

.ai-plan-price strong{
  font-size:42px;

  line-height:1;

  font-weight:900;

  letter-spacing:-.055em;
}

.ai-plan-period{
  color:var(--muted);

  font-size:12px;
}

.ai-plan-card p{
  margin:0 0 24px;

  color:var(--muted);

  font-size:13px;

  line-height:1.65;
}

.ai-plan-button{
  width:100%;
  min-height:50px;

  margin-top:auto;

  display:flex;

  align-items:center;
  justify-content:center;

  padding:0 18px;

  border:
    1px solid var(--navy-900);

  border-radius:13px;

  background:
    var(--navy-900);

  color:var(--white);

  text-decoration:none;

  text-align:center;

  font-size:13px;
  font-weight:900;

  transition:
    background .18s ease,
    transform .18s ease,
    box-shadow .18s ease;
}

.ai-plan-button:hover{
  background:
    var(--navy-800);

  transform:
    translateY(-1px);

  box-shadow:
    0 10px 22px rgba(8,21,37,.14);
}

.ai-plan-card.featured .ai-plan-button{
  border-color:
    var(--gold-500);

  background:
    var(--gold-500);

  color:
    var(--navy-950);
}

.ai-plan-card.featured .ai-plan-button:hover{
  background:
    var(--gold-400);
}


/* =========================================================
   ASSINATURA — ATUALIZAR ACESSO
========================================================= */

.ai-subscription-refresh{
  max-width:820px;

  margin:28px auto 0;

  padding-top:25px;

  border-top:
    1px solid var(--line);

  text-align:center;
}

.ai-subscription-refresh p{
  margin:0 0 10px;

  color:var(--muted);

  font-size:12px;
}

.secondary-dark-action{
  min-height:44px;

  padding:0 17px;

  border:
    1px solid #d9dde1;

  border-radius:12px;

  background:var(--white);

  color:var(--navy-900);

  font-size:12px;
  font-weight:800;

  cursor:pointer;

  transition:
    border-color .18s ease,
    background .18s ease,
    transform .18s ease;
}

.secondary-dark-action:hover{
  border-color:
    rgba(199,168,107,.45);

  background:#fffaf1;

  transform:
    translateY(-1px);
}

.secondary-dark-action:disabled{
  opacity:.55;

  cursor:not-allowed;

  transform:none;
}


/* =========================================================
   IA — BARRA DA CONTA ATIVA
========================================================= */

.ai-account-bar{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:20px;

  padding:14px 20px;

  border-bottom:
    1px solid rgba(199,168,107,.18);

  background:
    linear-gradient(
      90deg,
      #f8f3e9,
      #fffdf8
    );
}

.ai-account-bar > div{
  display:flex;
  align-items:center;

  gap:9px;

  flex-wrap:wrap;
}

.ai-account-label{
  color:var(--muted);

  font-size:10px;
  font-weight:900;

  letter-spacing:.08em;

  text-transform:uppercase;
}

.ai-account-bar strong{
  color:var(--success);

  font-size:12px;
  font-weight:900;
}

.ai-account-detail{
  color:var(--muted);

  font-size:11px;

  text-align:right;
}


/* =========================================================
   RESPONSIVO — IA
========================================================= */

@media(max-width:860px){

  .ai-subscription-screen{
    padding:38px 26px 32px;
  }

  .ai-plan-grid{
    grid-template-columns:1fr;
  }

}


@media(max-width:700px){

  .home-ai-status{
    margin-top:18px;
  }

  .ai-subscription-screen{
    padding:30px 18px 26px;

    border-radius:18px;
  }

  .ai-subscription-logo{
    width:68px;
    height:68px;

    border-radius:17px;
  }

  .ai-subscription-header{
    margin-bottom:28px;
  }

  .ai-subscription-header h1{
    font-size:34px;
  }

  .ai-plan-card{
    min-height:auto;

    padding:24px 20px;
  }

  .ai-plan-price strong{
    font-size:38px;
  }

  .ai-account-bar{
    align-items:flex-start;
    flex-direction:column;

    gap:5px;

    padding:12px 15px;
  }

  .ai-account-detail{
    text-align:left;
  }

}
/* =========================================================
   ACESSIBILIDADE
========================================================= */

.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}


/* =========================================================
   SELETOR DE IDIOMA
========================================================= */

.auth-language-row{
  display:flex;
  justify-content:flex-end;
  margin-bottom:18px;
}

.language-select{
  min-height:38px;
  padding:0 30px 0 11px;

  border:1px solid #d9dde1;
  border-radius:10px;

  background:var(--white);
  color:var(--navy-900);

  font-size:11px;
  font-weight:800;

  cursor:pointer;
}

.language-select:focus{
  outline:none;
  border-color:var(--gold-500);

  box-shadow:
    0 0 0 3px rgba(199,168,107,.1);
}

.language-select-auth{
  min-width:118px;
}

.topbar-language{
  display:flex;
  align-items:center;
}


/* =========================================================
   BASE DE CONHECIMENTO
========================================================= */

.knowledge-overview-card,
.library-knowledge-card,
.ai-knowledge-card{
  padding:24px;

  border:
    1px solid rgba(199,168,107,.28);

  border-radius:20px;

  background:
    linear-gradient(
      135deg,
      #fffdf8,
      #f7f1e6
    );

  box-shadow:
    0 8px 24px rgba(8,21,37,.045);
}

.knowledge-overview-main,
.library-knowledge-main,
.ai-knowledge-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;

  gap:24px;
}

.knowledge-overview-card h2,
.library-knowledge-card h2,
.ai-knowledge-card h2{
  margin:0;

  color:var(--navy-950);

  font-size:24px;
  letter-spacing:-.03em;
}

.knowledge-overview-card p,
.library-knowledge-card p,
.ai-knowledge-card p{
  max-width:720px;

  margin:9px 0 0;

  color:var(--muted);

  font-size:13px;
  line-height:1.65;
}

.knowledge-score,
.library-knowledge-score,
.ai-knowledge-score{
  flex:0 0 auto;

  min-width:110px;

  display:flex;
  flex-direction:column;
  align-items:flex-end;

  text-align:right;
}

.knowledge-score strong,
.library-knowledge-score strong,
.ai-knowledge-score strong{
  color:var(--navy-950);

  font-size:38px;
  line-height:1;

  font-weight:900;

  letter-spacing:-.05em;
}

.knowledge-score span,
.library-knowledge-score span,
.ai-knowledge-score span{
  margin-top:5px;

  color:var(--muted);

  font-size:10px;
  font-weight:800;

  text-transform:uppercase;

  letter-spacing:.08em;
}

.knowledge-progress-track{
  width:100%;
  height:10px;

  margin-top:20px;

  overflow:hidden;

  border-radius:999px;

  background:#e7e1d6;
}

.knowledge-progress-fill{
  height:100%;

  border-radius:inherit;

  background:
    linear-gradient(
      90deg,
      var(--gold-500),
      var(--gold-400)
    );

  transition:width .35s ease;
}

.knowledge-overview-footer,
.library-knowledge-footer,
.ai-knowledge-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:18px;

  margin-top:12px;

  color:var(--muted);

  font-size:11px;
  font-weight:700;
}


/* =========================================================
   SEÇÕES DA BIBLIOTECA
========================================================= */

.library-section{
  margin-top:32px;
}

.library-section-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;

  gap:20px;

  margin-bottom:16px;
}

.library-section-header h2{
  margin:0;

  color:var(--navy-950);

  font-size:26px;

  letter-spacing:-.035em;
}

.library-section-header p{
  margin:7px 0 0;

  color:var(--muted);

  font-size:13px;
  line-height:1.6;
}

.library-knowledge-card{
  margin-top:30px;
}

.library-explore-section{
  padding-top:6px;
}

.library-explore-header{
  margin-top:4px;
}


/* =========================================================
   LOJA INTERNA
========================================================= */

.store-grid{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:16px;
}

.store-card{
  min-height:260px;

  display:flex;
  flex-direction:column;

  padding:22px;

  border:
    1px solid #dddfe2;

  border-radius:18px;

  background:var(--paper);

  box-shadow:
    0 5px 18px rgba(8,21,37,.035);

  transition:
    transform .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
}

.store-card:hover{
  transform:translateY(-2px);

  border-color:
    rgba(199,168,107,.42);

  box-shadow:
    0 14px 28px rgba(8,21,37,.08);
}

.store-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;

  gap:14px;
}

.store-icon{
  width:44px;
  height:44px;

  display:grid;
  place-items:center;

  border-radius:13px;

  background:var(--navy-900);

  color:var(--gold-300);

  font-size:13px;
  font-weight:900;
}

.store-weight{
  padding:5px 8px;

  border-radius:999px;

  background:#f5eee0;

  color:#806934;

  font-size:9px;
  font-weight:900;

  letter-spacing:.04em;
}

.store-name{
  margin-top:18px;

  color:var(--navy-950);

  font-size:17px;
  font-weight:900;

  line-height:1.3;

  letter-spacing:-.02em;
}

.store-description{
  margin-top:8px;

  color:var(--muted);

  font-size:12px;
  line-height:1.55;
}

.store-card-footer{
  margin-top:auto;
  padding-top:20px;
}

.store-price{
  margin-bottom:12px;

  color:var(--navy-950);

  font-size:20px;
  font-weight:900;
}

.store-price small{
  color:var(--muted);

  font-size:10px;
  font-weight:700;
}

.store-buy-button{
  width:100%;
  min-height:44px;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:0 14px;

  border:
    1px solid var(--navy-900);

  border-radius:12px;

  background:var(--navy-900);

  color:var(--white);

  text-decoration:none;

  font-size:12px;
  font-weight:900;

  cursor:pointer;
}

.store-buy-button:hover{
  background:var(--navy-800);
}

.store-buy-button.disabled{
  pointer-events:none;

  opacity:.45;
}

.store-empty-state{
  display:flex;
  align-items:center;

  gap:18px;

  padding:24px;

  border:
    1px solid rgba(199,168,107,.25);

  border-radius:20px;

  background:
    linear-gradient(
      135deg,
      #f7f0e3,
      #fffdf8
    );
}

.store-empty-logo{
  width:52px;
  height:52px;

  flex:0 0 52px;

  border-radius:14px;

  object-fit:cover;
}

.store-empty-state h3{
  margin:0;

  color:var(--navy-950);

  font-size:17px;
}

.store-empty-state p{
  margin:7px 0 0;

  color:var(--muted);

  font-size:12px;
  line-height:1.6;
}


/* =========================================================
   PROGRESSO — PRODUTO E MÓDULO
========================================================= */

.product-page-side{
  flex:0 0 280px;

  display:flex;
  flex-direction:column;

  gap:14px;
}

.product-progress-summary,
.module-progress-summary{
  padding:14px 15px;

  border:
    1px solid rgba(199,168,107,.22);

  border-radius:14px;

  background:
    rgba(255,255,255,.06);
}

.module-progress-summary{
  max-width:520px;

  margin-top:16px;

  background:var(--paper);

  border-color:
    rgba(199,168,107,.25);
}

.product-progress-summary-top,
.module-progress-summary-top{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:14px;
}

.product-progress-summary-top span,
.module-progress-summary-top span{
  color:
    rgba(255,255,255,.62);

  font-size:10px;
  font-weight:800;

  letter-spacing:.04em;
}

.module-progress-summary-top span{
  color:var(--muted);
}

.product-progress-summary-top strong,
.module-progress-summary-top strong{
  color:var(--gold-300);

  font-size:13px;
  font-weight:900;
}

.module-progress-summary-top strong{
  color:var(--navy-950);
}

.product-progress-track{
  width:100%;
  height:8px;

  margin-top:10px;

  overflow:hidden;

  border-radius:999px;

  background:
    rgba(255,255,255,.12);
}

.module-progress-summary
.product-progress-track{
  background:#e6e2d8;
}

.product-progress-fill{
  height:100%;

  border-radius:inherit;

  background:
    linear-gradient(
      90deg,
      var(--gold-500),
      var(--gold-400)
    );

  transition:
    width .3s ease;
}

.product-progress-summary small,
.module-progress-summary small{
  display:block;

  margin-top:8px;

  color:
    rgba(255,255,255,.48);

  font-size:9px;
  font-weight:700;
}

.module-progress-summary small{
  color:var(--muted);
}

.module-page-main{
  min-width:0;
  flex:1;
}


/* =========================================================
   PROGRESSO — CARDS DE MÓDULO
========================================================= */

.module-card-progress{
  margin-top:14px;
}

.module-card-progress-top{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:10px;

  margin-bottom:7px;

  color:var(--muted);

  font-size:9px;
  font-weight:800;
}

.module-card-progress-track{
  width:100%;
  height:6px;

  overflow:hidden;

  border-radius:999px;

  background:#ebe7df;
}

.module-card-progress-fill{
  height:100%;

  border-radius:inherit;

  background:var(--gold-500);

  transition:width .25s ease;
}


/* =========================================================
   PROGRESSO — ARQUIVOS
========================================================= */

.module-file-item{
  position:relative;
}

.module-file-item.completed{
  border-color:
    rgba(44,138,91,.28);

  background:
    linear-gradient(
      135deg,
      #fffdf8,
      #f4faf6
    );
}

.module-file-item.in-progress{
  border-color:
    rgba(199,168,107,.38);
}

.module-file-status{
  display:inline-flex;
  align-items:center;

  gap:5px;

  margin-left:8px;

  padding:4px 7px;

  border-radius:999px;

  font-size:8px;
  font-weight:900;

  letter-spacing:.04em;

  text-transform:uppercase;
}

.module-file-status.not-started{
  background:#f0f1f2;

  color:#8a919a;
}

.module-file-status.in-progress{
  background:#f8f1df;

  color:#8c733c;
}

.module-file-status.completed{
  background:#eaf6ee;

  color:var(--success);
}

.module-file-status-dot{
  width:5px;
  height:5px;

  border-radius:50%;

  background:currentColor;
}


/* =========================================================
   VISUALIZADOR — PROGRESSO
========================================================= */

.viewer-progress-bar{
  margin-bottom:14px;

  padding:13px 15px;

  border:
    1px solid #dfe2e5;

  border-radius:14px;

  background:var(--paper);
}

.viewer-progress-info{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:16px;
}

.viewer-progress-info > div{
  min-width:0;

  display:flex;
  flex-direction:column;

  gap:3px;
}

.viewer-progress-label{
  color:var(--muted);

  font-size:9px;
  font-weight:900;

  letter-spacing:.08em;

  text-transform:uppercase;
}

#viewerProgressStatus{
  color:var(--navy-950);

  font-size:13px;
  font-weight:900;
}

.viewer-progress-bar.completed{
  border-color:
    rgba(44,138,91,.28);

  background:#f6fbf7;
}

.viewer-progress-bar.completed
#viewerProgressStatus{
  color:var(--success);
}

.viewer-progress-bar.in-progress{
  border-color:
    rgba(199,168,107,.32);

  background:#fffaf1;
}


/* =========================================================
   BOTÃO CONCLUIR
========================================================= */

.completion-action{
  min-height:40px;

  padding:0 14px;

  border:
    1px solid var(--navy-900);

  border-radius:11px;

  background:var(--navy-900);

  color:var(--white);

  font-size:11px;
  font-weight:900;

  cursor:pointer;

  transition:
    background .18s ease,
    border-color .18s ease,
    transform .18s ease;
}

.completion-action:hover{
  background:var(--navy-800);

  transform:translateY(-1px);
}

.completion-action.completed{
  border-color:
    rgba(44,138,91,.28);

  background:#eaf6ee;

  color:var(--success);
}

.completion-action.completed:hover{
  background:#def1e5;
}

.completion-action:disabled{
  opacity:.55;

  cursor:not-allowed;

  transform:none;
}


/* =========================================================
   IA — CONHECIMENTO
========================================================= */

.ai-knowledge-card{
  max-width:820px;

  margin:
    0 auto
    28px;
}

.chat-knowledge-strip{
  display:flex;
  align-items:center;

  gap:16px;

  padding:10px 20px;

  border-bottom:
    1px solid rgba(199,168,107,.14);

  background:#fbf8f1;
}

.chat-knowledge-strip > div:first-child{
  flex:0 0 auto;

  display:flex;
  align-items:center;

  gap:8px;
}

.chat-knowledge-label{
  color:var(--muted);

  font-size:9px;
  font-weight:900;

  letter-spacing:.07em;

  text-transform:uppercase;
}

#chatKnowledgeText{
  color:var(--navy-950);

  font-size:11px;
  font-weight:900;
}

.chat-knowledge-track{
  flex:1;

  height:5px;

  overflow:hidden;

  border-radius:999px;

  background:#e6e0d6;
}

.chat-knowledge-fill{
  height:100%;

  border-radius:inherit;

  background:var(--gold-500);

  transition:width .3s ease;
}


/* =========================================================
   RESPONSIVO — NOVAS ÁREAS
========================================================= */

@media(max-width:1100px){

  .store-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .product-page-side{
    flex-basis:240px;
  }

}


@media(max-width:860px){

  .knowledge-overview-main,
  .library-knowledge-main,
  .ai-knowledge-card-top{
    align-items:stretch;
    flex-direction:column;
  }

  .knowledge-score,
  .library-knowledge-score,
  .ai-knowledge-score{
    min-width:0;

    align-items:flex-start;

    text-align:left;
  }

  .product-page-side{
    width:100%;
    flex-basis:auto;
  }

  .store-grid{
    grid-template-columns:1fr;
  }

}


@media(max-width:700px){

  .auth-language-row{
    margin-bottom:14px;
  }

  .language-select-auth{
    width:100%;
  }

  .platform-topbar-right{
    gap:8px;
  }

  .topbar-language{
    display:flex;
  }

  .language-select{
    min-height:34px;

    padding:
      0
      26px
      0
      9px;

    font-size:10px;
  }

  .knowledge-overview-card,
  .library-knowledge-card,
  .ai-knowledge-card{
    padding:20px 18px;

    border-radius:17px;
  }

  .knowledge-overview-card h2,
  .library-knowledge-card h2,
  .ai-knowledge-card h2{
    font-size:22px;
  }

  .knowledge-score strong,
  .library-knowledge-score strong,
  .ai-knowledge-score strong{
    font-size:34px;
  }

  .knowledge-overview-footer,
  .library-knowledge-footer,
  .ai-knowledge-card-footer{
    align-items:flex-start;
    flex-direction:column;

    gap:8px;
  }

  .library-section{
    margin-top:27px;
  }

  .library-section-header{
    align-items:flex-start;
    flex-direction:column;

    gap:8px;
  }

  .library-section-header h2{
    font-size:24px;
  }

  .store-card{
    min-height:auto;

    padding:20px;
  }

  .store-empty-state{
    align-items:flex-start;
  }

  .product-page-side{
    gap:12px;
  }

  .product-progress-summary{
    width:100%;
  }

  .module-progress-summary{
    max-width:none;
  }

  .viewer-progress-info{
    align-items:stretch;
    flex-direction:column;
  }

  .completion-action{
    width:100%;
  }

  .chat-knowledge-strip{
    align-items:stretch;
    flex-direction:column;

    gap:7px;

    padding:
      10px
      15px;
  }

  .chat-knowledge-strip > div:first-child{
    justify-content:space-between;
  }

  .ai-knowledge-card{
    margin-bottom:22px;
  }

}
/* =========================================================
   TOPBAR — BREADCRUMB
========================================================= */

.platform-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.platform-breadcrumb .platform-section-label {
  margin: 0;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 600;
  color: #8a929d;
  white-space: nowrap;
}

.platform-breadcrumb-separator {
  font-size: 13px;
  line-height: 1;
  color: #c5aa70;
  opacity: 0.85;
}

.platform-breadcrumb .platform-section-title {
  margin: 0;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 700;
  color: #0b1728;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 768px) {
  .platform-breadcrumb {
    gap: 6px;
    max-width: 55vw;
  }

  .platform-breadcrumb .platform-section-label,
  .platform-breadcrumb-separator {
    font-size: 11px;
  }

  .platform-breadcrumb .platform-section-title {
    font-size: 12px;
  }
}
/* =========================================================
   AJUSTES FINAIS — CÓDIGO DIVINO AI
========================================================= */


/* =========================================================
   SIDEBAR — LOGO ELARVIAN
========================================================= */

.sidebar-logo {
  width: 205px;
  max-height: 64px;

  object-fit: contain;
  object-position: left center;

  opacity: 1;

  filter:
    brightness(1.16)
    contrast(1.12)
    drop-shadow(
      0 5px 14px rgba(0, 0, 0, .16)
    );
}


/* =========================================================
   EXPLORE — REFINAMENTO
========================================================= */

.library-explore-section {
  margin-top: 36px;
  padding-top: 28px;

  border-top:
    1px solid rgba(199, 168, 107, .22);
}

.library-explore-header {
  margin-top: 0;
}

.library-explore-header p {
  max-width: 720px;
}


/* =========================================================
   PROGRESSO — FORMAÇÃO 100%
========================================================= */

.product-progress-summary.is-complete {
  border-color:
    rgba(95, 206, 141, .34);

  background:
    rgba(95, 206, 141, .09);
}

.product-progress-summary.is-complete
.product-progress-summary-top strong {
  color: #aee7c3;
}

.product-progress-summary.is-complete
.product-progress-fill {
  background:
    linear-gradient(
      90deg,
      #4cad76,
      #70d197
    );
}

.product-progress-summary.is-complete
#codigoDivinoProgressText {
  color: #b9e8ca;

  font-weight: 800;
}


/* =========================================================
   SUPORTE — ESTRUTURA
========================================================= */

.support-page {
  width: min(980px, 100%);

  margin: 0 auto;
}


/* =========================================================
   SUPORTE — CABEÇALHO
========================================================= */

.support-header {
  margin-bottom: 26px;
}

.support-header h1 {
  margin:
    4px 0 10px;

  color:
    var(--navy-950);

  font-size:
    clamp(34px, 4vw, 48px);

  line-height:
    1.06;

  letter-spacing:
    -.045em;
}

.support-header p {
  max-width:
    700px;

  margin: 0;

  color:
    var(--muted);

  font-size:
    14px;

  line-height:
    1.65;
}


/* =========================================================
   SUPORTE — CARD INTRODUTÓRIO
========================================================= */

.support-intro-card {
  display: flex;

  align-items:
    flex-start;

  gap:
    18px;

  margin-bottom:
    28px;

  padding:
    22px;

  border:
    1px solid
    rgba(
      199,
      168,
      107,
      .27
    );

  border-radius:
    18px;

  background:
    linear-gradient(
      135deg,
      #fffdf8,
      #f7f1e6
    );

  box-shadow:
    0 7px 22px
    rgba(
      8,
      21,
      37,
      .04
    );
}

.support-intro-icon {
  width: 44px;
  height: 44px;

  flex:
    0 0 44px;

  display:
    grid;

  place-items:
    center;

  border-radius:
    13px;

  background:
    var(--navy-950);

  color:
    var(--gold-300);

  font-size:
    18px;

  font-weight:
    900;
}

.support-intro-card h2 {
  margin:
    1px 0 7px;

  color:
    var(--navy-950);

  font-size:
    18px;

  letter-spacing:
    -.02em;
}

.support-intro-card p {
  max-width:
    760px;

  margin: 0;

  color:
    var(--muted);

  font-size:
    13px;

  line-height:
    1.6;
}


/* =========================================================
   SUPORTE — PERGUNTAS RÁPIDAS
========================================================= */

.support-section {
  margin-bottom:
    24px;
}

.support-section-label {
  margin-bottom:
    11px;

  color:
    var(--navy-850);

  font-size:
    11px;

  font-weight:
    900;

  letter-spacing:
    .08em;

  text-transform:
    uppercase;
}

.support-quick-grid {
  display:
    grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap:
    11px;
}

.support-quick-action {
  min-height:
    58px;

  padding:
    14px 16px;

  border:
    1px solid
    #dfe2e5;

  border-radius:
    14px;

  background:
    var(--paper);

  color:
    #3d4652;

  text-align:
    left;

  font-size:
    13px;

  font-weight:
    700;

  line-height:
    1.4;

  cursor:
    pointer;

  transition:
    background .18s ease,
    border-color .18s ease,
    transform .18s ease,
    box-shadow .18s ease;
}

.support-quick-action:hover {
  transform:
    translateY(-1px);

  border-color:
    rgba(
      199,
      168,
      107,
      .45
    );

  background:
    #fdf9f1;

  box-shadow:
    0 8px 20px
    rgba(
      8,
      21,
      37,
      .055
    );
}


/* =========================================================
   SUPORTE — CHAT
========================================================= */

.support-messages {
  min-height:
    170px;

  max-height:
    440px;

  display:
    flex;

  flex-direction:
    column;

  gap:
    12px;

  overflow-y:
    auto;

  margin-top:
    22px;

  padding:
    18px;

  border:
    1px solid
    #e0e2e4;

  border-radius:
    18px;

  background:
    var(--paper);
}

.support-messages:empty {
  display:
    none;
}

.support-message {
  max-width:
    82%;

  padding:
    13px 15px;

  border-radius:
    15px;

  font-size:
    13px;

  line-height:
    1.6;

  white-space:
    pre-wrap;
}

.support-message.user {
  align-self:
    flex-end;

  border-bottom-right-radius:
    5px;

  background:
    var(--navy-900);

  color:
    var(--white);
}

.support-message.assistant {
  align-self:
    flex-start;

  border-bottom-left-radius:
    5px;

  background:
    #f1f2f3;

  color:
    var(--ink);
}

.support-message.thinking {
  color:
    var(--muted);

  font-style:
    italic;

  opacity:
    .82;
}


/* =========================================================
   SUPORTE — CAMPO DE MENSAGEM
========================================================= */

.support-composer {
  display:
    flex;

  align-items:
    flex-end;

  gap:
    10px;

  margin-top:
    14px;

  padding:
    14px;

  border:
    1px solid
    #dfe2e5;

  border-radius:
    18px;

  background:
    var(--paper);

  box-shadow:
    0 7px 22px
    rgba(
      8,
      21,
      37,
      .035
    );
}

.support-composer textarea {
  flex: 1;

  min-height:
    50px;

  max-height:
    180px;

  resize:
    vertical;

  padding:
    13px 14px;

  border:
    1px solid
    #d9dde1;

  border-radius:
    13px;

  outline:
    none;

  background:
    #fff;

  color:
    var(--ink);

  font-size:
    13px;

  line-height:
    1.5;
}

.support-composer textarea:focus {
  border-color:
    var(--gold-500);

  box-shadow:
    0 0 0 4px
    rgba(
      199,
      168,
      107,
      .09
    );
}

.support-composer button {
  min-height:
    50px;

  padding:
    0 21px;

  border:
    1px solid
    var(--navy-900);

  border-radius:
    13px;

  background:
    var(--navy-900);

  color:
    var(--white);

  font-size:
    12px;

  font-weight:
    900;

  cursor:
    pointer;

  transition:
    background .18s ease,
    transform .18s ease;
}

.support-composer button:hover {
  background:
    var(--navy-800);

  transform:
    translateY(-1px);
}

.support-composer button:disabled {
  opacity:
    .55;

  cursor:
    not-allowed;

  transform:
    none;
}


/* =========================================================
   SUPORTE — RODAPÉ
========================================================= */

.support-footer-note {
  margin-top:
    13px;

  color:
    #969da6;

  text-align:
    center;

  font-size:
    10px;

  line-height:
    1.5;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 860px) {

  .sidebar-logo {
    width:
      58px;

    height:
      50px;

    margin:
      auto;

    object-position:
      center;
  }

  .support-quick-grid {
    grid-template-columns:
      1fr;
  }

}


/* =========================================================
   MOBILE — MENU COM 5 ITENS
========================================================= */

@media (max-width: 700px) {

  .sidebar-nav {
    grid-template-columns:
      repeat(5, 1fr);

    gap:
      3px;
  }

  .nav-item {
    min-height:
      50px;

    padding:
      3px 1px;

    gap:
      2px;

    font-size:
      7.5px;

    line-height:
      1.05;
  }

  .nav-icon {
    font-size:
      16px;
  }

  .nav-item span:last-child {
    max-width:
      64px;

    overflow:
      hidden;

    white-space:
      nowrap;

    text-overflow:
      ellipsis;
  }


  /* -----------------------------------------
     SUPORTE MOBILE
  ----------------------------------------- */

  .support-header h1 {
    font-size:
      34px;
  }

  .support-intro-card {
    padding:
      18px;

    gap:
      13px;
  }

  .support-intro-icon {
    width:
      38px;

    height:
      38px;

    flex-basis:
      38px;
  }

  .support-quick-grid {
    grid-template-columns:
      1fr;
  }

  .support-messages {
    max-height:
      390px;

    padding:
      13px;
  }

  .support-message {
    max-width:
      94%;
  }

  .support-composer {
    align-items:
      stretch;

    flex-direction:
      column;

    padding:
      11px;
  }

  .support-composer button {
    width:
      100%;
  }

}
/* =========================================================
   SUPORTE — LINKS NAS RESPOSTAS
========================================================= */

.support-message-link {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.support-message-link:hover {
  opacity: 0.75;
}
/* =========================================================
   SUPORTE — ATENDIMENTO HUMANO
========================================================= */

.support-human-wrapper {
  display:
    flex;

  justify-content:
    flex-end;

  margin-top:
    14px;
}


.support-human-button {
  min-height:
    44px;

  padding:
    0 18px;

  border:
    1px solid
    rgba(
      199,
      168,
      107,
      .65
    );

  border-radius:
    12px;

  background:
    #fffaf0;

  color:
    var(--navy-900);

  font-size:
    12px;

  font-weight:
    800;

  cursor:
    pointer;

  transition:
    background .18s ease,
    border-color .18s ease,
    transform .18s ease,
    opacity .18s ease;
}


.support-human-button:hover:not(:disabled) {
  transform:
    translateY(-1px);

  border-color:
    var(--gold-500);

  background:
    #fdf4df;
}


.support-human-button:disabled {
  opacity:
    .55;

  cursor:
    not-allowed;

  transform:
    none;
}


@media (max-width: 700px) {

  .support-human-wrapper {
    justify-content:
      stretch;
  }


  .support-human-button {
    width:
      100%;
  }
}