/* settings.css
 * Lazy-loaded by panels/nav.js on openPanel('settings').
 * Phase 2 addition.
 */

.settings-panel {
  padding: 8px 16px 24px;
  max-width: 720px;
  margin: 0 auto;
}
.settings-section {
  margin: 18px 0;
  padding: 16px;
  background: var(--md-sys-color-surface-container);
  border: none;
  border-radius: var(--md-sys-shape-corner-md);
  box-shadow: var(--md-sys-elevation-1);
}
.settings-section-title {
  font-size: var(--md-sys-typescale-label-medium-size);
  line-height: var(--md-sys-typescale-label-medium-line);
  font-weight: var(--md-sys-typescale-label-medium-weight);
  letter-spacing: var(--md-sys-typescale-label-medium-tracking);
  color: var(--md-sys-color-on-surface-variant);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.settings-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-top: 1px solid var(--md-sys-color-outline-variant);
  font-size: var(--md-sys-typescale-body-medium-size);
  line-height: var(--md-sys-typescale-body-medium-line);
  letter-spacing: var(--md-sys-typescale-body-medium-tracking);
}
.settings-row:first-of-type { border-top: none; padding-top: 0; }
.settings-row-stacked {
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.settings-row-label {
  color: var(--md-sys-color-on-surface-variant);
  flex-shrink: 0;
}
.settings-row-value {
  color: var(--md-sys-color-on-surface);
  text-align: right;
  font-weight: 500;
}
.settings-row-meta {
  color: var(--md-sys-color-on-surface-variant);
  font-weight: 400;
  font-size: var(--md-sys-typescale-label-medium-size);
  line-height: var(--md-sys-typescale-label-medium-line);
  letter-spacing: var(--md-sys-typescale-label-medium-tracking);
  margin-left: 4px;
}
.settings-row-value--granted { color: var(--md-sys-color-success-fg); }
.settings-row-value--denied  { color: var(--md-sys-color-error); }
.settings-row-value--default { color: var(--md-sys-color-warning-fg); }

.settings-theme-toggle {
  display: flex;
  gap: 6px;
  width: 100%;
}
/* M3 outlined button (segment-style) */
.settings-theme-btn {
  flex: 1;
  padding: 10px 16px;
  background: transparent;
  border: 1px solid var(--md-sys-color-outline);
  color: var(--md-sys-color-on-surface-variant);
  border-radius: var(--md-sys-shape-corner-sm);
  font-family: var(--md-sys-typescale-font-family);
  font-size: var(--md-sys-typescale-label-large-size);
  line-height: var(--md-sys-typescale-label-large-line);
  font-weight: var(--md-sys-typescale-label-large-weight);
  letter-spacing: var(--md-sys-typescale-label-large-tracking);
  cursor: pointer;
  text-transform: capitalize;
  min-height: 40px;
  transition: background var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard),
              color var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard),
              border-color var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard);
  position: relative;
  isolation: isolate;
  -webkit-tap-highlight-color: transparent;
}
.settings-theme-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--md-sys-color-on-surface);
  opacity: 0;
  pointer-events: none;
  z-index: -1;
  transition: opacity var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard);
}
@media (hover: hover) {
  .settings-theme-btn:hover::after { opacity: var(--md-sys-state-hover-opacity); }
}
.settings-theme-btn:active::after { opacity: var(--md-sys-state-pressed-opacity); }
.settings-theme-btn--active {
  background: var(--md-sys-color-secondary-container);
  color: var(--md-sys-color-on-secondary-container);
  border-color: transparent;
}

.settings-caps {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
/* M3 tonal chip variant. Keeps the indigo capability cue. */
.settings-cap-chip {
  display: inline-flex;
  padding: 4px 12px;
  background: rgba(99, 102, 241, 0.14);
  color: #6366f1;
  border-radius: var(--md-sys-shape-corner-sm);
  font-size: var(--md-sys-typescale-label-small-size);
  line-height: var(--md-sys-typescale-label-small-line);
  font-weight: var(--md-sys-typescale-label-small-weight);
  letter-spacing: var(--md-sys-typescale-label-small-tracking);
}
.settings-empty {
  color: var(--md-sys-color-on-surface-variant);
  font-size: var(--md-sys-typescale-body-medium-size);
  line-height: var(--md-sys-typescale-body-medium-line);
  letter-spacing: var(--md-sys-typescale-body-medium-tracking);
  font-style: italic;
}

/* M3 filled button */
.settings-btn {
  width: 100%;
  padding: 10px 24px;
  background: var(--md-sys-color-primary);
  color: var(--md-sys-color-on-primary);
  border: none;
  border-radius: var(--md-sys-shape-corner-full);
  font-family: var(--md-sys-typescale-font-family);
  font-size: var(--md-sys-typescale-label-large-size);
  line-height: var(--md-sys-typescale-label-large-line);
  font-weight: var(--md-sys-typescale-label-large-weight);
  letter-spacing: var(--md-sys-typescale-label-large-tracking);
  cursor: pointer;
  min-height: 44px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: box-shadow var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard);
  -webkit-tap-highlight-color: transparent;
}
.settings-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: currentColor;
  opacity: 0;
  transition: opacity var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard);
  pointer-events: none;
  z-index: -1;
}
@media (hover: hover) {
  .settings-btn:hover { box-shadow: var(--md-sys-elevation-1); }
  .settings-btn:hover::after { opacity: var(--md-sys-state-hover-opacity); }
}
.settings-btn:active::after { opacity: var(--md-sys-state-pressed-opacity); }

/* M3 outlined button (danger variant -- error color) */
.settings-btn--danger {
  background: transparent;
  color: var(--md-sys-color-error);
  border: 1px solid var(--md-sys-color-error);
}
.settings-btn--danger:hover { background: transparent; box-shadow: none; }

@media (pointer: coarse) {
  .settings-theme-btn { min-height: 48px; }
  .settings-btn { min-height: 48px; }
}
