/* ══════════════════════════════════════════════════════════
   Portal-Launcher · Weltensprung
   Einheitlicher Floating-Button + Overlay für alle Dashboards.
   Eingebunden via <link rel="stylesheet" href="portal-launcher.css">
   ══════════════════════════════════════════════════════════ */

.pl-fab{
  position:fixed; bottom:24px; right:24px; z-index:900;
  width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg,#1a7aff,#7b3fe4);
  color:#fff; border:none; cursor:pointer; font-size:24px;
  box-shadow:0 6px 24px rgba(0,0,0,0.3);
  transition:transform .15s, box-shadow .15s;
  display:flex; align-items:center; justify-content:center;
  font-family:inherit;
}
.pl-fab:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 10px 32px rgba(0,0,0,0.4); }

.pl-overlay{
  position:fixed; inset:0; background:rgba(10,12,20,0.78);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  z-index:1000; display:none; align-items:flex-start; justify-content:center;
  padding:24px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.pl-overlay.active{ display:flex; }
.pl-modal{ max-width:960px; width:100%; margin:auto; padding-bottom:32px; }
.pl-title{ color:#fff; text-align:center; font-family:'Montserrat',sans-serif; font-weight:800; font-size:28px; margin:0 0 8px; }
.pl-sub{ color:#aab; text-align:center; font-size:14px; margin:0 0 32px; }
.pl-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.pl-card{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:16px; padding:28px 22px;
  color:#fff; text-decoration:none;
  transition:transform .2s, background .2s, border-color .2s;
  display:block; cursor:pointer;
}
.pl-card:hover{ transform:translateY(-4px); background:rgba(255,255,255,0.1); }
.pl-card.current{ border-color:rgba(255,255,255,0.4); background:rgba(255,255,255,0.1); }
.pl-card .pl-ico{ width:56px; height:56px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:28px; margin-bottom:16px; }
.pl-card .pl-name{ font-family:'Montserrat',sans-serif; font-weight:800; font-size:18px; margin:0 0 6px; }
.pl-card .pl-desc{ font-size:13px; color:#aab; line-height:1.5; margin:0; }
.pl-card .pl-tag{ display:inline-block; margin-top:12px; padding:3px 10px; font-size:11px; font-weight:700; border-radius:20px; letter-spacing:.5px; }

.pl-leads      .pl-ico{ background:rgba(26,122,255,0.2); color:#6ba8ff; }
.pl-staff      .pl-ico{ background:rgba(46,204,113,0.2); color:#4cd586; }
.pl-academy    .pl-ico{ background:rgba(155,81,224,0.2); color:#c49bff; }
.pl-wiki       .pl-ico{ background:rgba(250,204,21,0.2); color:#fde68a; }
.pl-ki         .pl-ico{ background:rgba(139,92,246,0.2); color:#c4b5fd; }
.pl-tarife     .pl-ico{ background:rgba(251,146,60,0.2); color:#fdba74; }
.pl-kpi        .pl-ico{ background:rgba(59,130,246,0.2); color:#93c5fd; }
.pl-provisions .pl-ico{ background:rgba(16,185,129,0.2); color:#6ee7b7; }
.pl-ameise     .pl-ico{ background:rgba(234,88,12,0.2); color:#fdba74; }
.pl-partner    .pl-ico{ background:rgba(217,180,91,0.2); color:#e8cf8f; }
.pl-admin      .pl-ico{ background:rgba(220,38,38,0.2); color:#fca5a5; }

.pl-tag-beta{ background:rgba(255,193,7,0.15); color:#ffc107; border:1px solid rgba(255,193,7,0.3); }

.pl-close{ position:absolute; top:20px; right:24px; background:none; border:none; color:#fff; font-size:32px; cursor:pointer; opacity:.7; }
.pl-close:hover{ opacity:1; }

@media (max-width:820px){
  .pl-overlay{ padding:14px 12px; align-items:flex-start; }
  .pl-modal{ padding-top:8px; padding-bottom:80px; }
  .pl-title{ font-size:22px; }
  .pl-sub{ font-size:13px; margin:0 0 18px; }
  .pl-grid{ grid-template-columns:1fr; gap:12px; }
  .pl-card{ padding:18px 16px; border-radius:14px; }
  .pl-card .pl-ico{ width:46px; height:46px; font-size:22px; margin-bottom:10px; }
  .pl-card .pl-name{ font-size:16px; }
  .pl-card .pl-desc{ font-size:12px; line-height:1.4; }
  .pl-close{ top:10px; right:14px; font-size:30px; padding:6px 12px; }
}
@media (max-width:560px){
  .pl-fab{ bottom:16px; right:16px; width:52px; height:52px; font-size:22px; }
}
