/* Phase 14: theme-preserve.css
   Use this file for viewer/content surfaces that should keep their native rendering.
   The surrounding toolbar/card can still use theme tokens, but PDF/CAD/canvas/object
   content should not inherit aggressive theme overrides. */

:root {
  --ms-viewer-shell-bg: var(--ms-card-solid, #ffffff);
  --ms-viewer-shell-border: var(--ms-line, #deded8);
  --ms-viewer-toolbar-bg: var(--ms-panel-solid, #ffffff);
  --ms-viewer-toolbar-ink: var(--ms-ink, #111827);
  --ms-viewer-preserve-bg: #ffffff;
  --ms-viewer-preserve-ink: #111827;
  --ms-viewer-preserve-border: #d1d5db;
}

html[data-ms-theme="vrin"],
body[data-ms-theme="vrin"] {
  --ms-viewer-shell-bg: var(--ms-card-solid, #17212b);
  --ms-viewer-shell-border: var(--ms-line, rgba(255,255,255,.14));
  --ms-viewer-toolbar-bg: var(--ms-panel-solid, #141b23);
  --ms-viewer-toolbar-ink: var(--ms-ink, #f8fafc);
  --ms-viewer-preserve-bg: #ffffff;
  --ms-viewer-preserve-ink: #111827;
  --ms-viewer-preserve-border: #d1d5db;
}

/* The outer viewer chrome follows the active theme. */
body[data-ms-theme] :where(
  .ms-viewer-shell,
  .viewer-shell,
  .pdf-viewer-shell,
  .cad-viewer-shell,
  .admin-file-card,
  .cad-drawing-panel
) {
  background: var(--ms-viewer-shell-bg) !important;
  color: var(--ms-ink) !important;
  border-color: var(--ms-viewer-shell-border) !important;
}

body[data-ms-theme] :where(
  .viewer-toolbar,
  .pdf-viewer-toolbar,
  .cad-viewer-toolbar,
  .admin-file-actions,
  .cad-drawing-header,
  .cad-save-row
) {
  background: var(--ms-viewer-toolbar-bg) !important;
  color: var(--ms-viewer-toolbar-ink) !important;
  border-color: var(--ms-viewer-shell-border) !important;
}

/* The actual file/viewer content keeps a predictable default rendering surface. */
body[data-ms-theme] :where(
  .ms-theme-preserve,
  .pdf-preview,
  .pdf-preview-frame,
  .admin-sketch-pdf,
  object[type="application/pdf"],
  iframe[src$=".pdf"],
  .image-original-preview,
  .print-preview-content
) {
  color-scheme: light !important;
  background: var(--ms-viewer-preserve-bg) !important;
  color: var(--ms-viewer-preserve-ink) !important;
  border-color: var(--ms-viewer-preserve-border) !important;
}

/* CAD/WebGL viewers should retain their own native viewport styling rather than theme surfaces. */
body[data-ms-theme] :where(
  .admin-cad-viewer,
  .cad-viewer-preserve,
  .cad-drawing-body
) {
  color-scheme: dark !important;
  background: radial-gradient(circle at 50% 0%, #121a2b 0, #070b12 55%) !important;
  border-color: rgba(255,255,255,.16) !important;
}

body[data-ms-theme] :where(
  .admin-cad-viewer canvas,
  .cad-viewer-preserve canvas,
  #adminCadViewerCanvas,
  #cadViewport,
  canvas[data-cad-url]
) {
  background: transparent !important;
  color-scheme: dark !important;
}

/* Do not let broad card/table/input theme rules leak into viewer internals. */
body[data-ms-theme] :where(.ms-theme-preserve, .admin-cad-viewer) :where(.card, .panel, table, th, td, input, textarea, select) {
  background-color: revert !important;
  color: revert !important;
  border-color: revert !important;
  box-shadow: revert !important;
}


/* Phase 14B: additional PDF/CAD preview preserve bridges. */
body[data-ms-theme] :where(.customer-sketch-pdf, .admin-sketch-pdf, .pdf-preview-frame, iframe[src*=".pdf#"]) {
  color-scheme: light !important;
  background: var(--ms-viewer-preserve-bg) !important;
  color: var(--ms-viewer-preserve-ink) !important;
  border-color: var(--ms-viewer-preserve-border) !important;
}
body[data-ms-theme] :where(.customer-cad-viewer, .admin-cad-viewer, .cad-viewer-preserve, .cad-drawing-body) {
  color-scheme: dark !important;
}
