:root {
  --pd-page: #0b0d13;
  --pd-surface: #12151f;
  --pd-panel: #181b27;
  --pd-raised: #202433;
  --pd-border: #2c3142;
  --pd-text: #f3f4fb;
  --pd-muted: #9ca2b6;
  --pd-brand: #777ae0;
  --pd-brand-strong: #5f62c7;
  --pd-accent: #e14a2d;
  --pd-canvas: #090b10;
  color-scheme: dark;
}
:root[data-theme="light"] {
  --pd-page: #f2f3f7;
  --pd-surface: #ffffff;
  --pd-panel: #f8f8fb;
  --pd-raised: #eceef5;
  --pd-border: #dadce7;
  --pd-text: #171925;
  --pd-muted: #6f7487;
  --pd-brand: #4f52b8;
  --pd-brand-strong: #3b3e98;
  --pd-accent: #d52b0a;
  --pd-canvas: #e8eaf0;
  color-scheme: light;
}
body { background: var(--pd-page); color: var(--pd-text); }
button, .button-label, .button-link { background: var(--pd-raised); color: var(--pd-text); border-color: var(--pd-border); }
button:hover, .button-label:hover { background: color-mix(in srgb, var(--pd-raised) 78%, var(--pd-brand)); }
.primary { background: var(--pd-brand)!important; border-color: var(--pd-brand)!important; color: white!important; }
.primary:hover { background: var(--pd-brand-strong)!important; }
input:not([type="checkbox"]), select, textarea { background: var(--pd-panel)!important; color: var(--pd-text)!important; border-color: var(--pd-border)!important; }
input::placeholder, textarea::placeholder { color: var(--pd-muted); }
.muted, .panel-description, .roadmap-note, #status { color: var(--pd-muted)!important; }

/* Product shell: compact navigation, large viewport, contextual panel. */
.sidebar { background: #0d0f19; border-right: 1px solid var(--pd-border); }
.workspace { background: var(--pd-page); }
.model-area, .inspector { background: var(--pd-surface); border-color: var(--pd-border); }
.toolbar, .model-footer { border-color: var(--pd-border); }
#viewport { background: radial-gradient(ellipse at 50% 45%, color-mix(in srgb, var(--pd-canvas) 85%, #343b58), var(--pd-canvas)); }
.welcome h2, h1, h2, h3 { color: var(--pd-text); }
.welcome p, .welcome small { color: var(--pd-muted); }
.item-card, .empty-state { background: var(--pd-panel); border-color: var(--pd-border); }
.item-card p, .item-card .kind { color: var(--pd-muted); }
.item-buttons button { background: var(--pd-raised); border-color: var(--pd-border); color: var(--pd-text); }
.notice { color: #ffd7cd; background: #3b211e; border-color: #653028; }
:root[data-theme="light"] .notice { color: #7f3015; background: #fff2ed; border-color: #f1d7cf; }
.badge, .tool.active, .selection-hint, #finish-selection { background: color-mix(in srgb, var(--pd-brand) 20%, var(--pd-panel))!important; color: #c8caff!important; border-color: color-mix(in srgb, var(--pd-brand) 50%, var(--pd-border))!important; }
:root[data-theme="light"] .badge, :root[data-theme="light"] .tool.active, :root[data-theme="light"] .selection-hint { color: var(--pd-brand-strong)!important; }
dialog { background: var(--pd-surface); color: var(--pd-text); border-color: var(--pd-border); }
dialog p, dialog small { color: var(--pd-muted); }
.file-picker { background: var(--pd-panel); border-color: var(--pd-border); }
.viewer-help { background: color-mix(in srgb, var(--pd-panel) 88%, transparent); color: var(--pd-muted); border-color: var(--pd-border); }
.brand-mark { width: 74px; height: 42px; object-fit: contain; display: block; }
.brand.dark .brand-mark { background: #171a2d; border: 1px solid #30365a; border-radius: 8px; padding: 4px; }
.sidebar .brand-mark { width: 78px; height: 44px; margin-right: -3px; }
.brand.compact { padding-bottom: 22px; }

/* Login, account and admin surfaces. */
.auth-card, .security-card, .admin-card, .metric-grid article { background: var(--pd-surface); border-color: var(--pd-border); }
.auth-card h2, .security-card h1, .brand.dark { color: var(--pd-text); }
.auth-intro { background-color: #111424; }
.security-card, .admin-card, .metric-grid article { box-shadow: 0 18px 60px #0003; }
.status { background: color-mix(in srgb, var(--pd-brand) 17%, var(--pd-panel)); border-color: var(--pd-brand); }
.admin-body { background: var(--pd-page); }
.admin-hero { background: linear-gradient(120deg, #171a2d, #292d66); }
.organization-card, .project-admin-list article { background: var(--pd-panel); border-color: var(--pd-border); }
.resource-grid div { background: var(--pd-raised); }
th, td { border-color: var(--pd-border); }
.soft-badge, .grant-list span, .item-meta span { background: color-mix(in srgb, var(--pd-brand) 18%, var(--pd-panel)); color: #c5c7ff; }
:root[data-theme="light"] .soft-badge, :root[data-theme="light"] .grant-list span { color: var(--pd-brand-strong); }
.theme-switch { display: flex!important; align-items: center; gap: 11px; font-weight: 600; }
.theme-switch input { width: 42px!important; height: 22px; margin: 0!important; accent-color: var(--pd-brand); }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 24px; }
.settings-block { border: 1px solid var(--pd-border); background: var(--pd-panel); border-radius: 10px; padding: 20px; }
.settings-block h2 { margin-top: 0; }
.danger-button { color: #ff9b8a!important; border-color: #734238!important; }
.trash-list { display: grid; gap: 8px; margin-top: 18px; }
.trash-list article { display: flex; justify-content: space-between; align-items: center; gap: 20px; border: 1px solid var(--pd-border); border-radius: 8px; padding: 13px; background: var(--pd-panel); }
@media (max-width: 800px) { .settings-grid { grid-template-columns: 1fr; } .brand-mark { width: 62px; } }
