/* Memory uses the same typography and semantic colors as the workbench. */
.memory-overlay { position:fixed; inset:0 0 0 var(--settings-rail-width, 0px); z-index:240; display:flex; background:var(--canvas); }
.memory-dialog { position:relative; width:100%; height:100%; overflow:hidden; color:var(--text); background:var(--canvas); font-size:14px; }
.memory-body { height:100%; min-height:0; }
.memory-header { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.memory-header h2 { font-size:24px; line-height:1.3; font-weight:600; }
.memory-setting { display:flex; align-items:center; gap:24px; padding:0 0 20px; border-bottom:1px solid var(--line); }
.memory-setting > div { flex:1; }
.memory-setting p { margin-top:6px; font-size:12px; color:var(--secondary); line-height:1.6; }
.memory-setting label { font-size:16px; font-weight:600; cursor:pointer; }
.memory-setting input { position:relative; flex:0 0 40px; width:40px; height:24px; border-radius:12px; background:var(--subtle-fill); border:1px solid var(--line); cursor:pointer; }
.memory-setting input::after { content:''; position:absolute; width:18px; height:18px; left:2px; top:2px; border-radius:50%; background:var(--canvas); box-shadow:0 1px 3px #0003; transition:transform .14s; }
.memory-setting input:checked { background:var(--accent); border-color:var(--accent); }
.memory-setting input:checked::after { background:white; transform:translateX(16px); }
.memory-setting input:disabled { opacity:.5; }
.memory-dialog button:disabled { opacity:.45; }
.memory-notice { font-size:12px; color:var(--secondary); line-height:1.5; min-height:18px; margin:8px 0 12px; overflow-wrap:anywhere; }
.memory-notice.is-error { color:var(--danger); }
@media (max-width:540px) {
  .memory-setting { gap:16px; }
}
@media (prefers-reduced-motion:reduce) { .memory-setting input::after { transition:none; } }


/* Full settings workspace: categories at left, real controls at right. */
.settings-layout { display:grid; grid-template-columns:212px minmax(0,1fr); }
.settings-sidebar { overflow:auto; min-width:0; padding:24px 14px; background:var(--canvas); border-right:1px solid var(--line); }
.settings-sidebar-heading { display:flex; align-items:center; gap:6px; margin:0 4px 18px; }
.settings-sidebar-heading h2 { font-size:17px; font-weight:600; line-height:28px; margin:0; }
.settings-category-search { display:flex; align-items:center; gap:8px; padding:9px 10px; margin:0 0 20px; background:var(--subtle-fill); border:1px solid transparent; border-radius:10px; color:var(--secondary); }
.settings-category-search:focus-within { border-color:var(--accent); }
.settings-category-search input { min-width:0; width:100%; font-size:13px; }
.settings-sidebar nav > h3 { color:var(--secondary); font-size:12px; font-weight:500; margin:0 10px 10px; }
.settings-sidebar nav > button { display:flex; width:100%; align-items:center; gap:10px; min-height:36px; text-align:left; padding:8px 10px; border-radius:7px; font-size:13px; margin:2px 0; }
.settings-sidebar nav > button:not(:disabled):hover { background:transparent; text-decoration:none; }
.settings-sidebar nav > button[aria-current=page] { background:transparent; font-weight:600; color:var(--text); }
.settings-sidebar nav svg { width:18px; height:18px; color:var(--secondary); flex-shrink:0; }
.settings-category-empty { padding:8px 10px; color:var(--secondary); font-size:13px; }
.settings-content { overflow:auto; min-width:0; padding:42px clamp(28px,4vw,68px) 44px; overscroll-behavior:contain; }
.settings-home,.settings-memory-page { max-width:760px; margin:0 auto; }
.settings-section-title { margin:28px 0 8px; font-size:14px; font-weight:500; color:var(--secondary); }
.settings-memory-entry { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:16px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.settings-memory-entry:not(:disabled):hover { background:transparent; text-decoration:none; }
.settings-entry-icon { display:flex; flex:0 0 30px; height:32px; align-items:center; justify-content:center; color:var(--text); }
.settings-entry-copy { display:flex; flex:1; min-width:0; flex-direction:column; gap:3px; }
.settings-entry-copy strong { font-size:14px; font-weight:500; }
.settings-entry-copy > span { font-size:13px; line-height:1.5; color:var(--secondary); }
.settings-entry-chevron { flex:0 0 20px; color:var(--secondary); }
.settings-memory-page .memory-setting { padding:16px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.memory-dialog.is-memory-page .settings-content { background:var(--canvas); }
.memory-back { display:none; }
@media (max-width:1000px) {
  .settings-layout { grid-template-columns:200px minmax(0,1fr); }
  .settings-content { padding:36px 28px; }
}
@media (max-width:680px) {
  .memory-overlay { inset:0; }
  .settings-layout { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); }
  .settings-sidebar { padding:16px 18px 10px; border-right:0; border-bottom:1px solid var(--line); }
  .settings-sidebar-heading { margin:0 0 12px; }
  .settings-category-search { margin:0 0 10px; padding:8px 10px; }
  .settings-sidebar nav { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
  .settings-sidebar nav > h3 { display:none; }
  .settings-sidebar nav > button { width:auto; padding:8px 12px; margin:0; }
  .settings-content { padding:28px 18px 36px; }
  .memory-header h2 { font-size:22px; }
  .settings-section-title { margin-top:28px; }
  .settings-memory-entry { padding:14px 0; gap:10px; }
  .settings-memory-page .memory-setting { padding:16px 0; }
}

.memory-dialog { --memory-page-bg:var(--soft-fill); --memory-card-bg:var(--canvas); }
@media (prefers-color-scheme:dark) { .memory-dialog { --memory-page-bg:var(--canvas); --memory-card-bg:var(--soft-fill); } }
.memory-feedback { display:flex; align-items:baseline; gap:12px; margin-top:12px; }
.memory-feedback .memory-notice { margin:0; }
.memory-feedback > button { flex-shrink:0; font-size:12px; color:var(--accent); }
.memory-header h2:focus { outline:none; }

.settings-memory-page .memory-setting { margin-top:24px; }
.memory-feedback[hidden] { display:none; }

/* Shared memories stay in the existing Memory page. */
.memory-topic { padding:16px 0; border-bottom:1px solid var(--line); }
.memory-topic > summary { cursor:pointer; font-weight:500; overflow-wrap:anywhere; }
.memory-topic form { display:grid; gap:14px; margin-top:18px; }
.memory-topic label { display:grid; gap:7px; color:var(--secondary); font-size:12px; }
.memory-topic input,.memory-topic textarea { box-sizing:border-box; width:100%; min-width:0; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--memory-card-bg); color:var(--text); font:inherit; font-size:14px; line-height:1.6; }
.memory-topic textarea { resize:vertical; }
.memory-topic-actions { display:flex; justify-content:flex-end; gap:20px; font-size:13px; }
.memory-topic-actions button:last-child { color:var(--accent); }

/* Codex account data shares the existing settings surface and controls. */
.settings-codex-page { max-width:760px; margin:0 auto; }
.settings-codex-page[hidden] { display:none; }
.settings-codex-page .memory-header h2 { overflow-wrap:anywhere; }
.settings-quota-toolbar { margin-top:18px; }
.settings-quota-toolbar p,.settings-quota-muted { color:var(--secondary); font-size:13px; line-height:1.6; }
.settings-quota-windows { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:14px; }
.settings-quota-window,.settings-reset-cards { padding:16px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.settings-quota-window-heading,.settings-reset-card-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.settings-quota-window-heading { margin-bottom:15px; font-size:14px; }
.settings-quota-window-heading strong { font-size:20px; font-weight:600; font-variant-numeric:tabular-nums; }
.settings-quota-window progress { display:block; width:100%; height:6px; border:0; border-radius:3px; overflow:hidden; background:var(--subtle-fill); accent-color:var(--accent); }
.settings-quota-window progress::-webkit-progress-bar { background:var(--subtle-fill); border-radius:3px; }
.settings-quota-window progress::-webkit-progress-value { background:var(--accent); border-radius:3px; }
.settings-quota-window > p { margin-top:12px; }
.settings-reset-count { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:10px; font-size:14px; }
.settings-reset-count strong { font-size:24px; font-weight:600; font-variant-numeric:tabular-nums; }
.settings-reset-list { list-style:none; padding:0; margin:18px 0 0; }
.settings-reset-card { padding:16px 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.settings-reset-card:last-child { padding-bottom:0; }
.settings-reset-card-heading strong { font-weight:500; font-size:14px; }
.settings-reset-status { flex-shrink:0; color:var(--secondary); font-size:12px; }
.settings-reset-card > p { margin-top:7px; }
.settings-quota-updated { margin-top:16px; font-size:12px; }
@media (max-width:680px) {
  .settings-quota-window,.settings-reset-cards { padding:16px 0; }
  .settings-reset-card-heading { flex-wrap:wrap; gap:5px 12px; }
}
