/* OpenDB's Office layout! (body.os-office) A white page under a cyan ribbon, the app's own pages in
   the middle. OpenDB Classic (the Aero sky) stays untouched! */
body.os-office {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    height: 100vh;
    height: 100dvh;
    background: #eefbff !important;
    color: #1e293b;
}
body.os-office.os-dark { background: #0a1f28 !important; color: #e2e8f0; }
body.os-office #os-top { grid-column: 1; grid-row: 1; }
body.os-office #os-status { grid-column: 1; grid-row: 3; }
body.os-office .top, body.os-office .foot { display: none !important; }
body.os-office .view {
    grid-column: 1; grid-row: 2; min-height: 0; overflow: auto; margin: 0 auto; width: 100%;
    animation: osFade 0.3s;
}
body.os-office.odb-embed .view { padding: 8px; }
.bb-bs-doc { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--os-menu-line); border-radius: 10px; max-width: 560px; }
.bb-bs-doc img { width: 36px; height: 36px; flex: none; }
.bb-bs-doc div { display: flex; flex-direction: column; gap: 3px; }
.bb-bs-doc span { color: var(--os-dim); font-size: 12.5px; }
.os-dlg.odb-layout-dlg { width: 560px; }

/* ---------- Nova: OpenDB's own page colors follow the Nova palette (readable in light and dark) ---------- */
body.os-nova {
    --ink: var(--nv-ink); --ink-2: var(--nv-dim); --line: var(--nv-line); --card: var(--nv-card);
    --blue: var(--nv-primary); color: var(--nv-ink);
}
body.os-nova .hero { color: var(--nv-ink); }
body.os-nova .hero h1 { color: var(--nv-ink); text-shadow: none; -webkit-box-reflect: unset; }
body.os-nova .hero p { color: var(--nv-dim); text-shadow: none; }
body.os-nova .stat { background: var(--nv-card); border: 1px solid var(--nv-line); color: var(--nv-ink); box-shadow: none; }
body.os-nova .card, body.os-nova .side-box {
    background: var(--nv-card); border: 1px solid var(--nv-line); box-shadow: var(--nv-shadow); backdrop-filter: none; -webkit-backdrop-filter: none; color: var(--nv-ink);
}
body.os-nova .card::after { display: none; }
body.os-nova .side-box.cc0-box, body.os-nova .side-box.pd-box { background: var(--nv-card); }
body.os-nova .side-box > h2:first-child { background: color-mix(in srgb, var(--nv-primary) 16%, var(--nv-card)); color: var(--nv-ink); text-shadow: none; box-shadow: none; border-bottom: 1px solid var(--nv-line); }
body.os-nova .collection h2 a, body.os-nova .featured h3 a, body.os-nova .item h3 a { color: var(--nv-primary-d, var(--nv-primary)); }
body.os-nova.nv-dark .collection h2 a, body.os-nova.nv-dark .featured h3 a, body.os-nova.nv-dark .item h3 a { color: var(--os-accent); }
body.os-nova .muted, body.os-nova .item p, body.os-nova .crumbs, body.os-nova .lead, body.os-nova .foot { color: var(--nv-dim); }
body.os-nova .search input, body.os-nova .field input, body.os-nova .field textarea, body.os-nova .field select, body.os-nova .tpl-pick {
    background: var(--nv-card); color: var(--nv-ink); border-color: var(--nv-line); box-shadow: none;
}
body.os-nova .gel.plain { background: var(--nv-card); color: var(--nv-ink) !important; border-color: var(--nv-line); box-shadow: none; }
body.os-nova .kd-doc, body.os-nova .kd-doc p, body.os-nova .kd-doc li, body.os-nova .kd-doc td, body.os-nova .kd-doc th, body.os-nova .kd-doc h1, body.os-nova .kd-doc h2, body.os-nova .kd-doc h3, body.os-nova .kd-doc h4 { color: var(--nv-ink); }
body.os-nova .kd-doc blockquote { color: var(--nv-dim); background: color-mix(in srgb, var(--nv-primary) 8%, var(--nv-card)); border-left-color: var(--nv-primary); }
body.os-nova .kd-doc .odb-quote { background: color-mix(in srgb, var(--nv-primary) 10%, var(--nv-card)); color: var(--nv-ink); box-shadow: none; }
body.os-nova .kd-doc pre, body.os-nova .kd-doc code { color: var(--nv-ink); }
body.os-nova.nv-dark .kd-doc pre, body.os-nova.nv-dark .kd-doc :not(pre) > code { background: #12141b; }
body.os-nova .infobox, body.os-nova .modal-body, body.os-nova .modal { background: var(--nv-card); color: var(--nv-ink); }
body.os-nova .infobox th, body.os-nova .modal-body .kd-guide-row code { color: var(--nv-dim); }
body.os-nova .hl-cat summary { color: var(--nv-ink); }
body.os-nova .kd-doc h1, body.os-nova .kd-doc h2, body.os-nova .kd-doc h3, body.os-nova .kd-doc h4, body.os-nova .kd-doc h5 { color: var(--nv-ink) !important; }
body.os-nova .kd-doc a:not([class]) { color: var(--nv-primary-d, var(--nv-primary)); }
body.os-nova.nv-dark .kd-doc a:not([class]) { color: var(--os-accent); }
body.os-nova .cc0 { background: var(--nv-ink); color: var(--nv-card) !important; }
body.os-nova.nv-dark .kd-doc [class^="header-"], body.os-nova.nv-dark .kd-doc [class*=" header-"] { color: #34d399; }
/* Keydown's glossy chips are drawn for a light page: give them their light backing in dark mode so their dark words stay readable */
body.os-nova.nv-dark .kd-doc span[class*="-chip"]:not(.us-chip), body.os-nova.nv-dark .kd-doc span[class*="jelly"], body.os-nova.nv-dark .kd-doc span[class*="highlight"] { background-color: #f4f8fc; }
