:root{
  --portal-bg:#020b1c;
  --portal-bg2:#041a3b;
  --portal-panel:rgba(6,29,64,.70);
  --portal-panel2:rgba(8,38,82,.62);
  --portal-border:rgba(112,180,255,.30);
  --portal-border-strong:rgba(74,163,255,.82);
  --portal-text:#f8fbff;
  --portal-muted:#b8c7df;
  --portal-blue:#2f8cff;
  --portal-cyan:#2ee8ff;
  --portal-green:#3ee38b;
  --portal-purple:#a87cff;
  --portal-gold:#ffc857;
  --portal-shadow:0 22px 70px rgba(0,0,0,.42);
  --portal-glow:0 0 36px rgba(47,140,255,.45);
}
*{box-sizing:border-box}
html,body{min-height:100%;}
body.portal-home{
  margin:0;
  min-height:100vh;
  color:var(--portal-text);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 50% 0%, rgba(34,118,255,.32), transparent 27rem),
    radial-gradient(circle at 16% 42%, rgba(0,151,255,.18), transparent 28rem),
    radial-gradient(circle at 86% 44%, rgba(0,226,255,.15), transparent 34rem),
    linear-gradient(135deg,#020916 0%,#04162e 48%,#020916 100%);
}
.portal-home::before,
.portal-home::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
}
.portal-home::before{
  background:
    linear-gradient(rgba(66,154,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(66,154,255,.035) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(circle at center, black 0 44%, transparent 75%);
}
.portal-home::after{
  background:
    radial-gradient(circle at 12% 53%, rgba(42,159,255,.22), transparent 1.5px),
    radial-gradient(circle at 18% 30%, rgba(42,159,255,.26), transparent 1.3px),
    radial-gradient(circle at 88% 38%, rgba(42,159,255,.23), transparent 1.5px),
    radial-gradient(circle at 94% 24%, rgba(42,159,255,.25), transparent 1.2px),
    radial-gradient(circle at 78% 77%, rgba(42,159,255,.18), transparent 1.2px);
  background-size:100% 100%;
  opacity:.88;
}
.portal-orb{
  position:fixed;
  pointer-events:none;
  z-index:0;
  opacity:.72;
  filter:drop-shadow(0 0 20px rgba(36,148,255,.23));
}
.portal-orb.left{left:-10vw;top:26vh;width:32vw;height:32vw;border-radius:50%;border:1px solid rgba(64,168,255,.18);background:repeating-radial-gradient(circle, rgba(42,159,255,.18) 0 1px, transparent 1px 7px);mask-image:linear-gradient(90deg, black 0 58%, transparent 85%)}
.portal-orb.right{right:-8vw;top:38vh;width:36vw;height:20vw;border-radius:50%;border:1px solid rgba(64,168,255,.14);background:repeating-radial-gradient(circle, rgba(42,159,255,.16) 0 1px, transparent 1px 8px);mask-image:linear-gradient(270deg, black 0 58%, transparent 88%)}
.portal-wrap{position:relative;z-index:1;min-height:100vh;padding:28px clamp(22px,4vw,72px) 30px;display:flex;flex-direction:column;}
.portal-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px;margin-bottom:38px;}
.portal-brand{display:flex;align-items:center;gap:14px;font-weight:950;font-size:1.72rem;letter-spacing:-.045em;text-shadow:0 10px 30px rgba(0,0,0,.36)}
.portal-logo{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:1000;font-size:2rem;background:linear-gradient(135deg,#0b5df5,#19d7ff);box-shadow:var(--portal-glow);clip-path:polygon(50% 0, 100% 86%, 72% 86%, 50% 45%, 28% 86%, 0 86%)}
.portal-user{display:flex;align-items:center;gap:10px;padding:9px 16px 9px 10px;border:1px solid rgba(120,170,230,.24);border-radius:999px;background:rgba(7,24,51,.58);box-shadow:0 12px 38px rgba(0,0,0,.24);backdrop-filter:blur(18px)}
.portal-user-avatar{width:36px;height:36px;border-radius:999px;background:linear-gradient(135deg,#284b7c,#6e87ac);display:grid;place-items:center;font-weight:900;color:#fff;border:1px solid rgba(255,255,255,.16)}
.portal-user strong{font-size:.98rem}.portal-user span{display:block;color:var(--portal-muted);font-size:.78rem;margin-top:1px}.portal-user .chev{opacity:.8;font-size:1.05rem;margin-left:4px}
.portal-hero{width:min(900px,80vw);min-height:188px;margin:0 auto 74px;display:grid;place-items:center;text-align:center;padding:32px 42px;border:1px solid rgba(123,184,255,.34);border-radius:28px;background:linear-gradient(180deg,rgba(10,43,91,.58),rgba(2,18,43,.56));box-shadow:var(--portal-shadow), inset 0 1px 0 rgba(255,255,255,.08);position:relative;overflow:hidden;}
.portal-hero::after{content:"";position:absolute;left:18%;right:18%;bottom:-2px;height:3px;background:linear-gradient(90deg,transparent,#37d8ff,#fff,#37d8ff,transparent);filter:blur(.4px);box-shadow:0 0 22px #26a7ff;}
.portal-hero-logo{width:76px;height:76px;margin:0 auto 14px;border-radius:18px;display:grid;place-items:center;color:#fff;font-weight:1000;font-size:2.6rem;background:linear-gradient(135deg,#0b5df5,#19d7ff);box-shadow:0 0 36px rgba(47,140,255,.5);clip-path:polygon(50% 0,100% 86%,72% 86%,50% 45%,28% 86%,0 86%)}
.portal-hero h1{margin:0;font-size:clamp(2.25rem,5vw,4.5rem);line-height:1.02;letter-spacing:-.075em;text-shadow:0 12px 38px rgba(0,0,0,.45)}
.portal-hero p{margin:18px 0 0;color:#d5e0f2;font-size:clamp(1rem,1.4vw,1.28rem);}
.portal-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:clamp(18px,2vw,34px);align-items:stretch;margin:0 auto;width:min(1720px,100%);}
.portal-card{min-height:355px;border:1px solid rgba(147,193,255,.33);border-radius:26px;background:linear-gradient(180deg,rgba(9,45,96,.72),rgba(2,22,52,.76));box-shadow:0 20px 60px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08);padding:28px 24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease;cursor:pointer;overflow:hidden;}
.portal-card::before{content:"";position:absolute;inset:-40% -45% auto auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(68,156,255,.18),transparent 62%);opacity:.6;}
.portal-card.is-selected{border-color:var(--portal-border-strong);box-shadow:0 28px 80px rgba(0,0,0,.35),0 0 0 1px rgba(64,184,255,.4),0 0 46px rgba(0,132,255,.32);transform:translateY(-7px);background:linear-gradient(180deg,rgba(10,58,124,.82),rgba(3,28,65,.84));}
.portal-card:hover{transform:translateY(-5px);border-color:rgba(88,176,255,.78)}
.portal-card.is-selected:hover{transform:translateY(-7px)}
.portal-card-icon{width:84px;height:84px;min-height:84px;border-radius:999px;display:grid;place-items:center;margin:12px auto 20px;font-size:2.15rem;background:rgba(38,121,255,.18);border:1px solid rgba(90,167,255,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 28px rgba(41,134,255,.16);}
.portal-card[data-tone="blue"] .portal-card-icon{color:#7cc8ff;background:rgba(36,126,255,.18)}
.portal-card[data-tone="green"] .portal-card-icon{color:#62f2a1;background:rgba(37,185,111,.18)}
.portal-card[data-tone="purple"] .portal-card-icon{color:#caaaff;background:rgba(139,92,246,.18)}
.portal-card[data-tone="gold"] .portal-card-icon{color:#ffd166;background:rgba(245,158,11,.18)}
.portal-card[data-tone="cyan"] .portal-card-icon{color:#5eefff;background:rgba(6,182,212,.17)}
.portal-card h2{font-size:1.55rem;line-height:1.1;margin:0 0 18px;font-weight:950;letter-spacing:-.04em;text-shadow:0 8px 24px rgba(0,0,0,.34)}
.portal-card-divider{height:1px;width:100%;background:linear-gradient(90deg,transparent,rgba(177,211,255,.24),transparent);margin:0 0 14px;}
.portal-card p{color:#c7d5ea;margin:0 auto 18px;line-height:1.45;font-size:.98rem;max-width:14rem;}
.portal-links{width:100%;display:grid;gap:9px;margin:0 0 20px;padding:0;list-style:none;text-align:left;opacity:.68;filter:saturate(.78);transition:opacity .18s ease,filter .18s ease;}
.portal-card.is-selected .portal-links{opacity:1;filter:saturate(1)}
.portal-links a{display:flex;align-items:center;gap:10px;color:#d9e8ff;text-decoration:none;font-size:.96rem;line-height:1.15;padding:5px 6px;border-radius:12px;transition:background .15s ease,color .15s ease,transform .15s ease;}
.portal-links a:hover{background:rgba(67,149,255,.14);color:#fff;transform:translateX(3px)}
.portal-dot{width:9px;height:9px;border-radius:50%;background:var(--portal-blue);box-shadow:0 0 12px currentColor;flex:0 0 auto;}
.portal-card[data-tone="green"] .portal-dot{background:var(--portal-green)}.portal-card[data-tone="purple"] .portal-dot{background:var(--portal-purple)}.portal-card[data-tone="gold"] .portal-dot{background:var(--portal-gold)}.portal-card[data-tone="cyan"] .portal-dot{background:var(--portal-cyan)}
.portal-action{margin-top:auto;display:inline-grid;place-items:center;width:58px;height:38px;border-radius:999px;border:1px solid rgba(180,216,255,.24);background:rgba(5,20,44,.35);color:#fff;font-size:1.55rem;text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .18s ease;}
.portal-card.is-selected .portal-action{border-color:rgba(71,166,255,.72);box-shadow:0 0 24px rgba(47,140,255,.2)}.portal-action:hover{background:rgba(47,140,255,.22);transform:translateX(2px)}
.portal-foot{margin:30px auto 0;text-align:center;color:#c3d3e9;font-size:.98rem;display:grid;gap:8px;}.portal-foot strong{font-weight:800;color:#dfeeff}.portal-foot p{margin:0;color:#91a8c7}
.portal-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:6;background:rgba(5,20,45,.84);border:1px solid rgba(92,170,255,.38);color:#eaf3ff;border-radius:999px;padding:12px 18px;box-shadow:0 16px 44px rgba(0,0,0,.35);transition:.2s ease;backdrop-filter:blur(18px)}.portal-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1400px){.portal-grid{grid-template-columns:repeat(3,minmax(220px,1fr));}.portal-card{min-height:330px}.portal-hero{margin-bottom:46px}}
@media(max-width:820px){.portal-wrap{padding:20px 16px}.portal-header{margin-bottom:24px}.portal-brand{font-size:1.35rem}.portal-logo{width:44px;height:44px}.portal-user strong{display:none}.portal-hero{width:100%;min-height:170px;padding:26px 20px;margin-bottom:28px}.portal-grid{grid-template-columns:1fr}.portal-card{min-height:auto;text-align:left;align-items:flex-start;padding:24px}.portal-card-icon{margin:0 0 16px}.portal-action{align-self:center}.portal-links{opacity:1}.portal-card p{margin-left:0}.portal-card h2{text-align:left}.portal-foot{font-size:.88rem}}
@media(prefers-reduced-motion:reduce){.portal-card,.portal-links a,.portal-action,.portal-toast{transition:none!important}.portal-card:hover,.portal-card.is-selected{transform:none!important}}
.portal-brand{color:#fff;text-decoration:none;}
.portal-brand:visited{color:#fff;}


/* v1.58.329 — navegação por seleção: primeiro clique só seleciona o card.
   As opções internas só ficam clicáveis no card ativo. */
.portal-card:not(.is-selected) .portal-links a,
.portal-card:not(.is-selected) .portal-action{
  pointer-events:none;
}
.portal-card:not(.is-selected) .portal-links,
.portal-card:not(.is-selected) .portal-action{
  opacity:.58;
}
.portal-card.is-selected .portal-links a,
.portal-card.is-selected .portal-action{
  pointer-events:auto;
}
.portal-card.is-selected .portal-action{
  opacity:1;
}
.portal-card:not(.is-selected)::after{
  content:"Selecionar";
  position:absolute;
  right:18px;
  top:18px;
  padding:5px 9px;
  border:1px solid rgba(129,190,255,.18);
  border-radius:999px;
  color:rgba(219,236,255,.70);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.01em;
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .18s ease, transform .18s ease;
  background:rgba(3,16,37,.38);
}
.portal-card:not(.is-selected):hover::after{
  opacity:1;
  transform:translateY(0);
}
.portal-card.is-selected::after{
  content:"Escolhe uma página";
  position:absolute;
  right:18px;
  top:18px;
  padding:5px 9px;
  border:1px solid rgba(74,163,255,.36);
  border-radius:999px;
  color:#dff1ff;
  font-size:.72rem;
  font-weight:850;
  background:rgba(47,140,255,.12);
}
@media(max-width:820px){
  .portal-card:not(.is-selected)::after,
  .portal-card.is-selected::after{position:static;margin-left:auto;margin-bottom:8px;}
}
/* v1.58.329 — o card Impressoras abre diretamente a nova central da área. */
.portal-card-direct{cursor:pointer;}
.portal-card-direct:not(.is-selected) .portal-action{opacity:1;pointer-events:none;}
.portal-card-direct:not(.is-selected)::after{content:"Abrir";}
.portal-card-direct:hover .portal-action{border-color:rgba(71,166,255,.72);box-shadow:0 0 24px rgba(47,140,255,.20);}


/* v1.58.329 — Portal: card Impressoras volta a ter todas as páginas da área */
.portal-card-impressoras .portal-links{
  gap:6px;
  margin-bottom:16px;
}

.portal-card-impressoras .portal-links a{
  font-size:.86rem;
  padding:4px 6px;
}

.portal-card-impressoras .portal-dot{
  background:var(--portal-blue);
}

.portal-card-impressoras .portal-card-icon{
  margin-bottom:16px;
}

.portal-card-impressoras h2{
  margin-bottom:14px;
}

.portal-card-impressoras .portal-card-divider{
  margin-bottom:12px;
}

.portal-card-impressoras.is-selected::after{
  content:"Escolhe uma página";
}

/* o comportamento direto deixou de existir neste card */
.portal-card-impressoras.portal-card-direct::after{
  content:"Selecionar";
}

@media(max-width:1400px){
  .portal-card-impressoras .portal-links a{
    font-size:.92rem;
  }
}


/* v1.58.329 — Portal full screen clean/encaixado */
body.portal-home{
  min-height:100vh!important;
  overflow:hidden!important;
}

.portal-wrap{
  width:100vw!important;
  height:100vh!important;
  min-height:100vh!important;
  padding:22px clamp(26px,3vw,56px) 22px!important;
  display:grid!important;
  grid-template-rows:58px auto 1fr 42px!important;
  gap:14px!important;
}

.portal-header{
  min-height:58px!important;
  margin:0!important;
}

.portal-hero{
  width:min(760px,50vw)!important;
  min-height:132px!important;
  margin:0 auto!important;
  padding:20px 32px!important;
  border-radius:22px!important;
}

.portal-hero-logo{
  width:52px!important;
  height:52px!important;
  font-size:1.9rem!important;
  margin-bottom:8px!important;
  border-radius:14px!important;
}

.portal-hero h1{
  font-size:clamp(2.05rem,3.05vw,3.35rem)!important;
}

.portal-hero p{
  margin-top:10px!important;
  font-size:.98rem!important;
}

.portal-grid{
  width:min(1580px,100%)!important;
  height:100%!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:clamp(14px,1.25vw,22px)!important;
  align-items:stretch!important;
}

.portal-card{
  min-height:0!important;
  height:100%!important;
  max-height:390px!important;
  padding:22px 18px 16px!important;
  border-radius:22px!important;
}

.portal-card-icon{
  width:66px!important;
  height:66px!important;
  min-height:66px!important;
  margin:6px auto 15px!important;
  font-size:1.8rem!important;
}

.portal-card h2{
  font-size:1.32rem!important;
  margin:0 0 13px!important;
}

.portal-card-divider{
  margin:0 0 12px!important;
}

.portal-card p{
  font-size:.84rem!important;
  line-height:1.35!important;
  margin-bottom:14px!important;
  max-width:12.5rem!important;
}

.portal-links{
  gap:6px!important;
  margin-bottom:14px!important;
}

.portal-links a{
  font-size:.8rem!important;
  padding:4px 5px!important;
}

.portal-dot{
  width:7px!important;
  height:7px!important;
}

.portal-action{
  width:48px!important;
  height:32px!important;
  font-size:1.25rem!important;
}

.portal-foot{
  margin:0 auto!important;
  gap:4px!important;
  font-size:.82rem!important;
  align-self:end!important;
}

.portal-foot p{
  font-size:.76rem!important;
}

.portal-card.is-selected::after,
.portal-card:not(.is-selected)::after{
  right:12px!important;
  top:12px!important;
  font-size:.66rem!important;
  padding:4px 7px!important;
}

@media(max-width:1400px){
  body.portal-home{overflow-y:auto!important;}
  .portal-wrap{
    height:auto!important;
    min-height:100vh!important;
    grid-template-rows:auto!important;
  }
  .portal-grid{
    grid-template-columns:repeat(3,minmax(220px,1fr))!important;
  }
  .portal-card{
    min-height:300px!important;
    max-height:none!important;
  }
}

@media(max-width:820px){
  body.portal-home{overflow-y:auto!important;}
  .portal-wrap{
    padding:18px 14px!important;
  }
  .portal-hero{
    width:100%!important;
  }
  .portal-grid{
    grid-template-columns:1fr!important;
  }
  .portal-card{
    height:auto!important;
    min-height:auto!important;
  }
}


/* v1.58.329 — Portal Inicial: ajustes pedidos pelo Ricardo */
.portal-header{
  display:none!important;
}

.portal-wrap{
  grid-template-rows:auto 1fr 42px!important;
  gap:18px!important;
  padding-top:42px!important;
}

.portal-hero{
  margin-top:0!important;
}

.portal-hero-logo{
  width:72px!important;
  height:72px!important;
  margin:0 auto 12px!important;
  border-radius:999px!important;
  clip-path:none!important;
  padding:0!important;
  background:radial-gradient(circle at 42% 34%, rgba(255,255,255,.26), rgba(34,125,255,.62) 36%, rgba(0,57,157,.98) 72%)!important;
  box-shadow:0 0 38px rgba(35,139,255,.42), inset 0 1px 0 rgba(255,255,255,.22)!important;
  border:1px solid rgba(96,174,255,.46)!important;
  overflow:hidden!important;
}

.portal-hero-logo img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}

.portal-hero h1{
  font-size:clamp(2.05rem,3.05vw,3.35rem)!important;
  letter-spacing:-.055em!important;
}

.portal-card-direct{
  cursor:pointer!important;
}

.portal-card-direct .portal-links,
.portal-card-direct .portal-action{
  pointer-events:none!important;
}

.portal-card-direct::after{
  content:"Abrir"!important;
}

.portal-card-direct:hover::after{
  opacity:1!important;
  transform:translateY(0)!important;
}

.portal-card-direct.is-selected{
  transform:none!important;
}

@media(max-width:1400px){
  .portal-wrap{
    padding-top:26px!important;
  }
}


/* v1.58.329 — Portal inicial: páginas incluídas mais visíveis nos cards */
.portal-card-pages{
  width:100%!important;
  margin:2px auto 14px!important;
  padding:10px 10px 11px!important;
  border:1px solid rgba(139,198,255,.28)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(0,16,38,.22))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 28px rgba(0,0,0,.16)!important;
}
.portal-card-pages-title{
  display:block!important;
  margin:0 0 8px!important;
  color:#f3f8ff!important;
  font-size:.72rem!important;
  line-height:1!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
  opacity:.96!important;
}
.portal-page-chips{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  align-items:center!important;
  gap:6px!important;
}
.portal-page-chip{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:22px!important;
  padding:4px 7px!important;
  border-radius:999px!important;
  border:1px solid rgba(124,200,255,.24)!important;
  background:rgba(36,126,255,.14)!important;
  color:#eaf5ff!important;
  font-size:.68rem!important;
  font-weight:850!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  text-shadow:0 1px 8px rgba(0,0,0,.28)!important;
}
.portal-card[data-tone="green"] .portal-page-chip{background:rgba(46,227,139,.13)!important;border-color:rgba(62,227,139,.24)!important;}
.portal-card[data-tone="purple"] .portal-page-chip{background:rgba(168,124,255,.14)!important;border-color:rgba(168,124,255,.28)!important;}
.portal-card[data-tone="gold"] .portal-page-chip{background:rgba(255,200,87,.14)!important;border-color:rgba(255,200,87,.28)!important;}
.portal-card[data-tone="cyan"] .portal-page-chip{background:rgba(46,232,255,.13)!important;border-color:rgba(46,232,255,.25)!important;}
.portal-card:hover .portal-card-pages,
.portal-card.is-selected .portal-card-pages{
  border-color:rgba(124,200,255,.46)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.105),rgba(14,44,92,.28))!important;
}
.portal-card:hover .portal-page-chip,
.portal-card.is-selected .portal-page-chip{
  color:#ffffff!important;
  border-color:rgba(180,224,255,.40)!important;
}
@media(max-width:1400px){
  .portal-card-pages{padding:11px 12px!important;}
  .portal-page-chip{font-size:.74rem!important;min-height:24px!important;padding:5px 8px!important;}
}
@media(max-width:820px){
  .portal-card-pages{text-align:left!important;}
  .portal-page-chips{justify-content:flex-start!important;}
  .portal-card-pages-title{text-align:left!important;}
}


/* v1.58.329 card cleanup */
.portal-action{display:none !important;}
.portal-card::after,.portal-card-direct::after,.portal-card.is-selected::after,.portal-card:not(.is-selected)::after{display:none !important;content:none !important;}
body.portal-home .portal-grid-home .portal-card{min-height:280px;}
.portal-card-pages{margin-top:18px;}
.portal-card-pages:empty{display:none !important;}



