*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-sans);
  background:var(--bg-primary);
  color:var(--text-primary);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  overflow-x:hidden;
}
img,svg{display:block}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent);text-decoration:none}
::selection{background:var(--accent-soft);color:var(--text-primary)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22);border:2px solid transparent;background-clip:content-box}

.orbs{position:fixed;inset:0;z-index:-1;overflow:hidden;background:var(--bg-primary)}
.orb{position:absolute;border-radius:50%;filter:blur(90px);animation:orbDrift 30s ease-in-out infinite alternate}
.orb-1{width:62vw;height:62vw;left:-20vw;top:-24vh;background:radial-gradient(circle,var(--orb-1),transparent 66%)}
.orb-2{width:54vw;height:54vw;right:-18vw;top:6vh;background:radial-gradient(circle,var(--orb-2),transparent 66%);animation-delay:-10s}
.orb-3{width:46vw;height:46vw;left:20vw;bottom:-26vh;background:radial-gradient(circle,var(--orb-3),transparent 66%);animation-delay:-20s}
@keyframes orbDrift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(4vw,3vh,0) scale(1.1)}}
.grid-overlay{
  position:absolute;inset:0;
  background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,black,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,black,transparent 78%);
}

h1,h2,h3,h4{font-weight:750;letter-spacing:-.02em;line-height:1.2}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--text-muted)}
.secondary{color:var(--text-secondary)}

.glass{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-radius:var(--radius-l);
  box-shadow:var(--shadow-m);
}
.glass-strong{
  background:var(--glass-bg-strong);
  border:1px solid var(--glass-border-strong);
  backdrop-filter:blur(24px) saturate(150%);
  -webkit-backdrop-filter:blur(24px) saturate(150%);
}

.page{
  animation:pageIn .38s cubic-bezier(.22,1,.36,1) both;
}
@keyframes pageIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.page-head h2{font-size:26px;font-weight:800}
.page-head .page-head-sub{color:var(--text-secondary);font-size:13.5px;margin-top:2px}
.page-head .page-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.section-title{display:flex;align-items:center;gap:10px;font-size:15.5px;font-weight:700;margin:26px 0 14px;letter-spacing:-.01em}
.section-title .st-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft)}
.section-title .st-ic svg{width:14px;height:14px}
.section-title .st-spacer{flex:1}
.section-title .st-link{font-size:12.5px;color:var(--text-secondary);font-weight:600;display:flex;align-items:center;gap:4px;cursor:pointer;transition:color var(--trans)}
.section-title .st-link:hover{color:var(--accent)}

.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.row-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.hidden{display:none!important}

.empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:52px 24px;gap:8px;
}
.empty .empty-ic{
  width:64px;height:64px;border-radius:20px;display:grid;place-items:center;margin-bottom:6px;
  background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-muted);
}
.empty .empty-ic svg{width:28px;height:28px}
.empty .empty-title{font-weight:700;font-size:16px}
.empty .empty-sub{font-size:13px;color:var(--text-secondary);max-width:280px}
.empty .empty-btn{margin-top:14px}

.divider{height:1px;background:var(--glass-border);border:none}
.dots-load{color:var(--text-muted)}