
/* Vibrant App Skin — colorful + animated */
:root{
  --bg:#0a0f1f; --panel:#0d1730; --card:#0f1a34; --txt:#f1f6ff; --muted:#a7b8e0;
  --accent:#6d28d9; --accent2:#f97316; --accent3:#22c55e; --accent4:#06b6d4; --accent5:#ef4444;
  --ring: rgba(255,255,255,.5);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:
    radial-gradient(700px 380px at 15% -10%, rgba(250,120,40,.25), transparent 60%),
    radial-gradient(800px 420px at 85% -10%, rgba(60,120,255,.22), transparent 60%),
    linear-gradient(160deg,#0a0f1f 0%,#0b1330 50%,#0e1642 100%);
  color:var(--txt);
}
.header{
  display:flex;align-items:center;gap:12px;padding:14px 16px;
  background:rgba(255,255,255,0.06);backdrop-filter:blur(10px);
  position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(255,255,255,0.10);
}
.header::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:3px;
  background: linear-gradient(90deg,var(--accent),var(--accent2),var(--accent3),var(--accent4),var(--accent5));
  background-size: 200% 100%;
  animation: slideLine 6s linear infinite;
}
@keyframes slideLine{ 0%{background-position:0% 0} 100%{background-position:200% 0} }
.logo{
  width:42px;height:42px;border-radius:12px;
  background: conic-gradient(from 180deg, var(--accent), var(--accent2), var(--accent3), var(--accent4), var(--accent), var(--accent5));
  display:inline-flex;align-items:center;justify-content:center;
  color:#001;font-weight:800; box-shadow:0 8px 24px rgba(0,0,0,.35);
  animation: wobble 4s ease-in-out infinite;
}
@keyframes wobble{
  0%,100%{ transform: rotate(0deg) }
  25%{ transform: rotate(-6deg) }
  50%{ transform: rotate(6deg) }
  75%{ transform: rotate(-3deg) }
}
.brand{font-weight:900;letter-spacing:.4px}
.container{max-width:1100px;margin:0 auto;padding:16px}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,0.10); border-radius:var(--radius); padding:16px;
  box-shadow: 0 16px 40px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.02);
}
.card:hover{ box-shadow: 0 18px 46px rgba(0,0,0,.40), 0 0 0 1px rgba(255,255,255,.06) }
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}
@media(max-width:900px){.col-8,.col-6,.col-4,.col-3{grid-column:span 12}}
.btn{
  position:relative; overflow:hidden;
  background: linear-gradient(135deg,var(--accent), var(--accent2));
  color:#fff;border:none;padding:12px 16px;border-radius:14px;font-weight:900;
  cursor:pointer;display:inline-flex;gap:8px;align-items:center;
  box-shadow:0 10px 24px rgba(58,134,255,.35);
  transition: transform .12s ease, box-shadow .2s ease;
}
.btn::before{
  content:""; position:absolute; top:-120%; left:-120%; width:240%; height:240%;
  background: radial-gradient(circle at center, rgba(255,255,255,.35), transparent 45%);
  transform: translate(-50%,-50%); opacity:0; transition: opacity .25s ease;
}
.btn:hover{ transform: translateY(-1px); box-shadow:0 12px 28px rgba(58,134,255,.45) }
.btn:hover::before{ opacity:.7 }
.btn.secondary{ background:linear-gradient(135deg,#334155, #0f172a) }
.btn.ok{ background:linear-gradient(135deg,#10b981, #22c55e) }
.btn.danger{ background:linear-gradient(135deg,#ef4444, #f97316) }
.input,select,textarea{
  width:100%;padding:12px;border-radius:12px;border:1px solid #29406e;background:#0c1530;color:var(--txt);
  transition: box-shadow .2s ease, border-color .2s ease;
}
.input:focus,select:focus,textarea:focus{ outline:none;border-color:#4f7bdc; box-shadow:0 0 0 3px rgba(79,123,220,.25) }
.table{width:100%;border-collapse:separate;border-spacing:0 10px}
.table th{font-weight:800;color:#e2e8f0;text-transform:uppercase;font-size:12px;padding:0 10px;letter-spacing:.6px}
.table td{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.10); padding:12px; border-left:none;border-right:none;
}
.table tr td:first-child{
  border-top-left-radius:12px;border-bottom-left-radius:12px;border-left:1px solid rgba(255,255,255,.10);
  box-shadow: inset 4px 0 0 0 rgba(58,134,255,.35);
}
.table tr td:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px;border-right:1px solid rgba(255,255,255,.10)}
.table tr:hover td{ box-shadow: inset 0 0 0 1px rgba(255,255,255,.06) }
.nav{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.nav a{
  position:relative;
  padding:10px 12px;border-radius:12px;background:#0e1a34;border:1px solid #223a60;color:var(--txt);
  transition: transform .1s ease, box-shadow .2s ease;
}
.nav a:hover{ transform: translateY(-1px); box-shadow:0 8px 18px rgba(0,0,0,.25) }
.nav a.active{ color:#001; background: linear-gradient(135deg,var(--accent), var(--accent2)); border-color: transparent; }
.nav a.active::after{
  content:""; position:absolute; left:8px; right:8px; bottom:6px; height:3px;
  background: linear-gradient(90deg,var(--accent3),var(--accent4),var(--accent5));
  border-radius:999px; animation: slideLine 5s linear infinite;
}
.kpi{display:flex;align-items:center;gap:14px}
.kpi .icon{
  width:48px;height:48px;border-radius:14px;background:#0d1a31;display:flex;align-items:center;justify-content:center;font-size:20px;
  animation: pulse 2.8s ease-in-out infinite;
}
@keyframes pulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(34,197,94,.0) } 50%{ box-shadow:0 0 0 12px rgba(34,197,94,.15) } }
.badge{background:#0d1a31;border:1px solid #23395f;color:#e1e8ff;padding:6px 12px;border-radius:999px;display:inline-block}
@media(max-width:900px){
  .container{padding-bottom:96px}
  .bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(15,24,56,0.72);backdrop-filter:blur(8px);
    border-top:1px solid rgba(255,255,255,0.10);display:flex;gap:10px;justify-content:space-around;padding:10px 10px}
  .bottom-nav a{flex:1;text-align:center;padding:10px;border-radius:12px;color:var(--txt);text-decoration:none;transition:transform .1s ease}
  .bottom-nav a:active{ transform: scale(.96) }
  .fab{position:fixed;right:18px;bottom:88px;border-radius:999px;padding:14px 18px;font-size:16px;box-shadow:0 12px 28px rgba(0,0,0,.35)}
}
.footer{padding:24px;text-align:center;color:#a7b8e0}
@media print{ body{background:#fff;color:#000} .card{box-shadow:none;border:none} .nav,.header,.footer,.noprint{display:none!important} .print-area{color:#000} }
/* Icon animation classes */
.anim-spin{ animation: spin .9s ease both }
@keyframes spin{ from{transform:rotate(0)} to{transform:rotate(360deg)} }
.anim-bounce{ animation: bounce .9s ease both }
@keyframes bounce{
  0%,20%,50%,80%,100%{transform:translateY(0)}
  40%{transform:translateY(-8px)}
  60%{transform:translateY(-4px)}
}
.anim-tada{ animation: tada .9s ease both }
@keyframes tada{
  0%{transform:scale(1)}
  10%,20%{transform:scale(.95) rotate(-3deg)}
  30%,50%,70%,90%{transform:scale(1.05) rotate(3deg)}
  40%,60%,80%{transform:scale(1.05) rotate(-3deg)}
  100%{transform:scale(1) rotate(0)}
}
