/* Ostrovia Client Panel — WOW premium (1:1 vibe with ostroviahosting.pl) */
:root{
  --bg:#070a12;
  --card:#0c1020;
  --text:#e9ecf5;
  --muted:#b2b9d6;
  --line:rgba(255,255,255,.10);
  --accent1:#6d5efc;
  --accent2:#31d0ff;
  --ok:#1FDE8A;
  --warn:#FFCC66;
  --bad:#FF5C7A;
  --shadow: 0 16px 40px rgba(0,0,0,.35);
  --radius:18px;
  --radius2:26px;
}

*{box-sizing:border-box}
html,body{height:100%;margin:0;padding:0}
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1200px 600px at 12% 10%, rgba(109,94,252,.22), transparent 60%),
    radial-gradient(900px 500px at 85% 25%, rgba(49,208,255,.16), transparent 55%),
    var(--bg);
  color:var(--text);
  line-height:1.55;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
.container{width:min(1140px, 92vw); margin:0 auto}
.small{font-size:13px;color:var(--muted)}
.notice{font-size:13px;color:var(--muted); margin-top:10px}

@keyframes floaty{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,16px,0)}}
@keyframes shimmer{0%,100%{transform:translateX(-18%) rotate(10deg)}50%{transform:translateX(18%) rotate(10deg)}}
@keyframes enter{to{transform:translateY(0);opacity:1}}

.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(12px);
  background: rgba(7,10,18,.55);
  border-bottom: 1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0; gap:14px;
}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{height:64px;width:auto;max-height:78px;filter: drop-shadow(0 10px 24px rgba(0,0,0,.35))}
.brand-txt{display:grid; gap:2px}
.brand-name{font-weight:900;letter-spacing:.2px}
.brand-sub{font-size:13px;color:var(--muted)}
.nav-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  font-weight:800;
  cursor:pointer;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, filter .15s ease;
}
.btn:hover{background:rgba(255,255,255,.10); transform:translateY(-1px); border-color:rgba(255,255,255,.18)}
.btn:active{transform:translateY(0) scale(.99)}
.btn.primary{
  border:none;
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  color:#071022;
  box-shadow: 0 16px 38px rgba(49,208,255,.10);
}
.btn.primary:hover{filter:brightness(1.05)}
.btn.small{padding:9px 14px;font-size:14px}

.badge{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 12px; border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color:rgba(233,236,245,.92);
  font-weight:700; font-size:13px;
}
.badge .dot{
  width:10px;height:10px;border-radius:999px;
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  box-shadow: 0 0 0 4px rgba(109,94,252,.14);
}

.hero{padding:56px 0 10px; position:relative; overflow:hidden}
.hero:before{
  content:"";
  position:absolute; inset:-140px -120px auto -120px;
  height:560px;
  background:
    radial-gradient(520px 260px at 18% 18%, rgba(109,94,252,.22), transparent 65%),
    radial-gradient(520px 260px at 78% 26%, rgba(49,208,255,.18), transparent 65%),
    radial-gradient(520px 300px at 55% 92%, rgba(31,222,138,.08), transparent 62%);
  pointer-events:none;
  filter: blur(0px);
}
.hero-grid{display:grid; grid-template-columns: 1.15fr .85fr; gap:22px; align-items:stretch; position:relative}
h1{font-size:44px; line-height:1.08; margin:14px 0 10px}
.lead{color:var(--muted); font-size:18px; margin:0 0 18px}
.hero-cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:10px}

.panel-card{
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius2);
  padding:18px;
  box-shadow: var(--shadow);
  position:relative;
  overflow:hidden;
  transform: translateY(10px);
  opacity: 0;
  animation: enter .45s ease forwards;
}
.panel-card:before{
  content:"";
  position:absolute; inset:-60px -80px auto auto;
  width:240px; height:240px;
  background: radial-gradient(circle at 30% 30%, rgba(49,208,255,.35), transparent 62%);
  transform: rotate(12deg);
  animation: floaty 6.5s ease-in-out infinite;
}
.panel-card:after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.06), transparent);
  transform: translateX(-28%) rotate(10deg);
  animation: shimmer 6.2s ease-in-out infinite;
  opacity:.45;
  pointer-events:none;
}
.panel-hd{display:flex; align-items:flex-start; justify-content:space-between; gap:12px}
.panel-title{font-weight:900}
.panel-sub{font-size:13px;color:var(--muted);margin-top:4px}
.sep{border:0; border-top:1px solid var(--line); margin:16px 0}

.pill{
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  font-weight:900;
  font-size:12px;
}
.pill-ok{border-color: rgba(31,222,138,.35); background: rgba(31,222,138,.08)}
.pill-bad{border-color: rgba(255,92,122,.35); background: rgba(255,92,122,.08)}

.kpis{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px}
.kpi{
  background: rgba(12,16,32,.55);
  border:1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  padding:12px;
}
.kpi b{display:block; font-size:16px}
.kpi span{color:var(--muted); font-size:13px}

.mini-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.mini{
  background: rgba(12,16,32,.55);
  border:1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  padding:12px
}
.mini b{display:block; font-size:14px}
.mini span{color:var(--muted); font-size:13px}

.section{padding:30px 0}
.section h2{font-size:28px;margin:0 0 10px}
.section p{color:var(--muted);margin:0}

.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-top:16px}

.card{
  grid-column: span 3;
  background: rgba(12,16,32,.70);
  border:1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  padding:16px;
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
  position:relative;
  overflow:hidden;
  transform: translateY(10px);
  opacity: 0;
  animation: enter .35s ease forwards;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 18px 44px rgba(0,0,0,.28);
}
.card:before{
  content:"";
  position:absolute; inset:-60px -80px auto auto;
  width:220px; height:220px;
  background: radial-gradient(circle at 30% 30%, rgba(109,94,252,.22), transparent 62%);
  transform: rotate(12deg);
  opacity:.9;
}
.card > *{position:relative}
.card .t{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}
.card h3{margin:0 0 8px; font-size:18px}
.card p{margin:0; color:var(--muted); font-size:13px}
.card .meta{
  margin-top:12px;
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  color:rgba(233,236,245,.92);
  font-weight:700;
}
.card .arrow{opacity:.85}

.skeleton{opacity:1; transform:none; animation:none}
.badge.neutral{border-color:rgba(255,255,255,.12)}
.badge.success{border-color:rgba(31,222,138,.30); background: rgba(31,222,138,.08)}
.badge.warn{border-color:rgba(255,204,102,.30); background: rgba(255,204,102,.08)}
.badge.bad{border-color:rgba(255,92,122,.30); background: rgba(255,92,122,.08)}

.footer{
  border-top:1px solid var(--line);
  padding:24px 0 28px;
  margin-top: 18px;
}

/* toast */
.toast{
  position: fixed;
  right: 18px; bottom: 18px;
  background: rgba(12,16,32,.92);
  border:1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  padding: 12px 14px;
  box-shadow: var(--shadow);
  display:none;
  max-width: 360px;
  z-index: 80;
}
.toast.show{display:block}
.toast b{display:block}
.toast span{color:var(--muted); font-size:13px}

@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr}
  h1{font-size:38px}
  .grid4{grid-template-columns:1fr 1fr}
  .card{grid-column:span 6}
}
@media (max-width: 640px){
  .grid4{grid-template-columns:1fr}
  .card{grid-column:span 12}
  .brand-logo{height:54px}
}


/* --- click safety: glow layers must not block clicks --- */
.hero:before,
.wrap:before,
.panel-card:before,
.panel-card:after,
.card:before,
.card:after{
  pointer-events:none;
}
