:root {
    --bg: #0b0c10;
    --panel: #111319;
    --text: #e6e6e6;
    --muted: #a9b0be;
    --primary: #6aa6ff;
    --primary-contrast: #0a1a33;
    --success: #3ecf8e;
    --danger: #ff5d5d;
    --chip: #1a2230;
    --border: #1f2633;
    --shadow: 0 6px 20px rgba(0,0,0,0.25);
  }
  
  :root.light {
    --bg: #f7f9fc;
    --panel: #ffffff;
    --text: #161a23;
    --muted: #5b6472;
    --primary: #2b6cff;
    --primary-contrast: #e6eeff;
    --success: #0fa968;
    --danger: #e84343;
    --chip: #eef3ff;
    --border: #e6e9ef;
    --shadow: 0 6px 18px rgba(0,0,0,0.08);
  }
  
  * { box-sizing: border-box; }
  html, body { height: 100%; }
  body {
    margin: 0;
    font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.5;
  }
  
  /* Layout */
  .app-header {
    position: sticky;
    top: 0;
    z-index: 10;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 14px 18px;
    background: var(--panel);
    border-bottom: 1px solid var(--border);
  }
  
  .brand {
    margin: 0;
    font-size: 20px;
    letter-spacing: 0.5px;
  }
  
  .topnav {
    display: flex;
    gap: 8px;
  }
  
  .header-actions {
    justify-self: end;
    display: flex;
    gap: 8px;
  }
  
  .app-footer {
    padding: 16px 18px;
    border-top: 1px solid var(--border);
    background: var(--panel);
    color: var(--muted);
  }
  
  /* Buttons */
  .btn, .nav-btn, .icon-btn, .file-label {
    background: transparent;
    color: var(--text);
    border: 1px solid var(--border);
    padding: 8px 12px;
    border-radius: 10px;
    cursor: pointer;
    transition: transform 0.04s ease, background 0.2s ease, border 0.2s ease;
  }
  
  .btn:hover, .nav-btn:hover, .icon-btn:hover, .file-label:hover {
    transform: translateY(-1px);
    border-color: var(--primary);
  }
  
  .btn.primary {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
  }
  
  .btn.success {
    background: var(--success);
    color: white;
    border-color: var(--success);
  }
  
  .btn.danger {
    background: var(--danger);
    color: white;
    border-color: var(--danger);
  }
  
  .icon-btn { padding: 8px; }
  
  .file-label input[type="file"] {
    position: absolute;
    left: -9999px;
  }
  
  /* Views */
  .view { display: none; padding: 18px; max-width: 1100px; margin: 0 auto; }
  .view.active { display: block; }
  
  .view-header {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
  }
  
  .actions { display: flex; gap: 8px; align-items: center; }
  
  /* Decks */
  .deck-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
  }
  
  .deck-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px;
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  
  .deck-card h3 { margin: 0; font-size: 18px; }
  .deck-card p { margin: 0; color: var(--muted); }
  
  .deck-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
  .chip {
    background: var(--chip);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
  }
  
  .card-actions, .deck-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
  }
  
  /* Study */
  .study-panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 16px;
    box-shadow: var(--shadow);
  }
  
  .study-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 12px;
    flex-wrap: wrap;
  }
  
  .card-area {
    background: linear-gradient(180deg, rgba(255,255,255,0.02), transparent);
    border: 1px dashed var(--border);
    border-radius: 12px;
    min-height: 180px;
    padding: 16px;
    margin-bottom: 12px;
  }
  
  .card-face {
    font-size: 18px;
    white-space: pre-wrap;
    outline: none;
  }
  
  .card-face.back {
    color: var(--text);
  }
  
  .study-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
  }
  
  .grade-actions .btn { min-width: 84px; }
  
  /* Analytics */
  .analytics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin-bottom: 16px;
  }
  
  .stat {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px;
    box-shadow: var(--shadow);
  }
  .stat h3 { margin: 0 0 6px 0; font-size: 14px; color: var(--muted); }
  .stat p { margin: 0; font-size: 24px; }
  
  /* Settings */
  .settings {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 16px;
  }
  .setting-item {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
  }
  
  /* Inputs */
  input[type="search"], input[type="text"], select, textarea {
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 8px 10px;
  }
  
  textarea { width: 100%; }
  
  /* Modals */
  dialog {
    border: 1px solid var(--border);
    background: var(--panel);
    color: var(--text);
    border-radius: 14px;
    max-width: 580px;
    width: 92%;
    padding: 12px 14px;
    box-shadow: var(--shadow);
  }
  
  dialog::backdrop {
    background: rgba(0,0,0,0.45);
  }
  
  .dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 10px;
  }
  
  /* Helpers */
  .muted { color: var(--muted); }
  .empty {
    background: var(--panel);
    border: 1px dashed var(--border);
    border-radius: 12px;
    padding: 18px;
    text-align: center;
    color: var(--muted);
  }
  
  @media (max-width: 640px) {
    .app-header { grid-template-columns: 1fr; }
    .header-actions { justify-self: start; }
  }