*{box-sizing:border-box}

html,body{
  height:100%;
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

.topbar{
  position:sticky;
  top:0;
  z-index:100;
  display:flex;
  gap:24px;
  align-items:center;
  padding:16px 24px;
  background:rgba(19,26,36,0.9);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(20px) saturate(180%);
  box-shadow:0 2px 8px rgba(0,0,0,0.2);
  transition:var(--transition);
}

.theme-toggle{
  margin-left:auto;
  cursor:pointer;
  border:none;
  border-radius:var(--radius);
  background:var(--chip);
  color:var(--text);
  padding:10px 14px;
  font-size:20px;
  transition:var(--transition);
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
}

.theme-toggle:hover{
  background:var(--chip-hover);
  transform:translateY(-1px);
  box-shadow:var(--shadow-sm);
}

.theme-toggle:active{
  transform:translateY(0);
}

.theme-icon{
  display:inline-block;
  transition:transform 0.3s ease;
}

.theme-toggle:hover .theme-icon{
  transform:rotate(15deg) scale(1.1);
}

.brand{
  font-weight:700;
  font-size:20px;
  background:linear-gradient(135deg, var(--accent), #8b5cf6);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  letter-spacing:-0.5px;
}

.tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.tab{
  cursor:pointer;
  border:none;
  border-radius:999px;
  background:var(--chip);
  color:var(--text);
  padding:10px 18px;
  font-size:14px;
  font-weight:500;
  transition:var(--transition);
  position:relative;
}

.tab:hover{
  background:var(--chip-hover);
  transform:translateY(-1px);
  box-shadow:var(--shadow-sm);
}

.tab.is-active{
  background:linear-gradient(135deg, var(--accent), var(--accent-hover));
  color:#fff !important;
  box-shadow:0 4px 12px rgba(59,130,246,0.3);
}

.container{
  max-width:1400px;
  margin:24px auto;
  padding:0 20px;
}

.view{
  display:none;
  animation:fadeIn 0.3s ease;
}

.view.is-active{
  display:block;
}

@keyframes fadeIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

.section-title{
  margin:32px 0 16px;
  font-size:20px;
  font-weight:600;
  color:var(--text);
  letter-spacing:-0.3px;
}

.small{
  font-size:12px;
}

.muted{
  color:var(--muted);
}

.empty{
  opacity:0.6;
  padding:32px;
  text-align:center;
  color:var(--muted);
  font-size:14px;
}

/* Scrollbar Styles */
::-webkit-scrollbar{
  width:10px;
  height:10px;
}

::-webkit-scrollbar-track{
  background:var(--panel2);
}

::-webkit-scrollbar-thumb{
  background:var(--chip);
  border-radius:5px;
  border:2px solid var(--panel2);
}

::-webkit-scrollbar-thumb:hover{
  background:var(--border-light);
}

/* Selection */
::selection{
  background:var(--accent-light);
  color:var(--text);
}

/* Focus visible */
*:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* Loading states */
.loading{
  display:inline-block;
  width:20px;
  height:20px;
  border:3px solid var(--border);
  border-top-color:var(--accent);
  border-radius:50%;
  animation:spin 0.8s linear infinite;
}

@keyframes spin{
  to{transform:rotate(360deg)}
}

.loading {
    text-align: center;
    padding: 20px;
    color: var(--muted);
}

.error {
    text-align: center;
    padding: 20px;
    color: var(--danger);
}
