/*
 * The Online Map theme tokens.
 * Palette inspirations: Catppuccin, Nord, Solarized, Gruvbox, and Dracula.
 * Layout and user-authored SVG colours deliberately live outside this file.
 */

:root {
  --accent-soft: color-mix(in srgb, var(--accent) 22%, transparent);
  --green-soft: color-mix(in srgb, var(--green) 24%, transparent);
  --amber-soft: color-mix(in srgb, var(--amber) 28%, transparent);
  --red-soft: color-mix(in srgb, var(--red) 32%, transparent);
  --critical-soft: color-mix(in srgb, var(--critical) 34%, transparent);
  --danger-soft: color-mix(in srgb, var(--danger) 14%, transparent);
  --canvas-grid: color-mix(in srgb, var(--map-stroke) 15%, transparent);
  --topbar-bg: color-mix(in srgb, var(--bg) 94%, transparent);
  --hint-bg: color-mix(in srgb, var(--bg) 88%, transparent);
  --backdrop: color-mix(in srgb, var(--bg) 76%, transparent);
  --alert-bg: color-mix(in srgb, var(--amber) 14%, var(--bg));
  --wifi-overlay: color-mix(in srgb, var(--danger-bright) 78%, transparent);
  --shadow: 0 18px 50px var(--shadow-color);
}

:root[data-theme="tom-crean-green"],
.theme-preview[data-preview-theme="tom-crean-green"] {
  color-scheme: dark;
  --bg: #081018;
  --surface: #101b25;
  --surface-2: #152431;
  --surface-3: #1a2c3a;
  --control-bg: #0b1620;
  --toolbar-bg: #0c1620;
  --canvas-bg: #071018;
  --line: #294150;
  --line-strong: #4b6b7c;
  --text: #eef5f7;
  --muted: #91a7b2;
  --accent: #58d6c2;
  --accent-2: #36a994;
  --on-accent: #08221c;
  --focus: #58d6c2;
  --danger: #b83240;
  --danger-strong: #962733;
  --danger-bright: #ff6b72;
  --on-danger: #ffffff;
  --green: #53c98b;
  --amber: #ffb951;
  --red: #f26068;
  --critical: #b57aff;
  --map-stroke: #7d9caa;
  --map-label: #f5fbfd;
  --map-label-outline: #000000;
  --shadow-color: rgba(0,0,0,.28);
}

:root[data-theme="antarctic-white"],
.theme-preview[data-preview-theme="antarctic-white"] {
  color-scheme: light;
  --bg: #ffffff;
  --surface: #f7f7f7;
  --surface-2: #eeeeee;
  --surface-3: #e2e2e2;
  --control-bg: #ffffff;
  --toolbar-bg: #f0f0f0;
  --canvas-bg: #ffffff;
  --line: #606060;
  --line-strong: #1f1f1f;
  --text: #111111;
  --muted: #4b4b4b;
  --accent: #111111;
  --accent-2: #444444;
  --on-accent: #ffffff;
  --focus: #111111;
  --danger: #8b1e24;
  --danger-strong: #67141a;
  --danger-bright: #111111;
  --on-danger: #ffffff;
  --green: #333333;
  --amber: #444444;
  --red: #222222;
  --critical: #000000;
  --map-stroke: #333333;
  --map-label: #111111;
  --map-label-outline: #ffffff;
  --shadow-color: rgba(0,0,0,.16);
}

:root[data-theme="cyber-madness"],
.theme-preview[data-preview-theme="cyber-madness"] {
  color-scheme: dark;
  --bg: #090014;
  --surface: #160b2d;
  --surface-2: #241142;
  --surface-3: #35145a;
  --control-bg: #110622;
  --toolbar-bg: #120625;
  --canvas-bg: #080010;
  --line: #7253a4;
  --line-strong: #a77bd8;
  --text: #f8f8f2;
  --muted: #c8b8dc;
  --accent: #00f5d4;
  --accent-2: #ff2a9d;
  --on-accent: #090014;
  --focus: #00f5d4;
  --danger: #b81d50;
  --danger-strong: #92143e;
  --danger-bright: #ff3864;
  --on-danger: #ffffff;
  --green: #39ff88;
  --amber: #ffe66d;
  --red: #ff6b85;
  --critical: #d4a2ff;
  --map-stroke: #9c78c8;
  --map-label: #ffffff;
  --map-label-outline: #090014;
  --shadow-color: rgba(0,245,212,.12);
}

:root[data-theme="unicorn-rainbow-vomit"],
.theme-preview[data-preview-theme="unicorn-rainbow-vomit"] {
  color-scheme: dark;
  --bg: #1b1026;
  --surface: #29183a;
  --surface-2: #3a2051;
  --surface-3: #512a67;
  --control-bg: #221330;
  --toolbar-bg: #241432;
  --canvas-bg: #160b20;
  --line: #806398;
  --line-strong: #b497c8;
  --text: #fff9ff;
  --muted: #d8c2df;
  --accent: #ff70d2;
  --accent-2: #63e6ff;
  --on-accent: #1b1026;
  --focus: #63e6ff;
  --danger: #ad2348;
  --danger-strong: #881a38;
  --danger-bright: #ff4d6d;
  --on-danger: #ffffff;
  --green: #5bea8d;
  --amber: #ffd166;
  --red: #ff7189;
  --critical: #d2a2ff;
  --map-stroke: #b497c8;
  --map-label: #ffffff;
  --map-label-outline: #1b1026;
  --shadow-color: rgba(255,112,210,.15);
}

:root[data-theme="pastel-polish"],
.theme-preview[data-preview-theme="pastel-polish"] {
  color-scheme: light;
  --bg: #eff1f5;
  --surface: #ffffff;
  --surface-2: #e6e9ef;
  --surface-3: #dce0e8;
  --control-bg: #ffffff;
  --toolbar-bg: #e6e9ef;
  --canvas-bg: #e9edf3;
  --line: #7c8098;
  --line-strong: #5c5f77;
  --text: #4c4f69;
  --muted: #5c5f77;
  --accent: #8839ef;
  --accent-2: #17747a;
  --on-accent: #ffffff;
  --focus: #6f2bbf;
  --danger: #a80d32;
  --danger-strong: #850927;
  --danger-bright: #b10e32;
  --on-danger: #ffffff;
  --green: #287a22;
  --amber: #805000;
  --red: #b10e32;
  --critical: #6f2bbf;
  --map-stroke: #656982;
  --map-label: #ffffff;
  --map-label-outline: #302d41;
  --shadow-color: rgba(76,79,105,.18);
}

:root[data-theme="blue-bottle"],
.theme-preview[data-preview-theme="blue-bottle"] {
  color-scheme: dark;
  --bg: #2e3440;
  --surface: #3b4252;
  --surface-2: #434c5e;
  --surface-3: #4c566a;
  --control-bg: #2e3440;
  --toolbar-bg: #343b49;
  --canvas-bg: #252b35;
  --line: #748196;
  --line-strong: #a6b2c4;
  --text: #eceff4;
  --muted: #d8dee9;
  --accent: #88c0d0;
  --accent-2: #81a1c1;
  --on-accent: #17202a;
  --focus: #88c0d0;
  --danger: #9f3f4a;
  --danger-strong: #7d303a;
  --danger-bright: #e07b84;
  --on-danger: #ffffff;
  --green: #b5cf9f;
  --amber: #f0d497;
  --red: #ef9aa2;
  --critical: #d8a9d3;
  --map-stroke: #a6b2c4;
  --map-label: #ffffff;
  --map-label-outline: #202631;
  --shadow-color: rgba(16,20,28,.3);
}

:root[data-theme="campfire-cocoa"],
.theme-preview[data-preview-theme="campfire-cocoa"] {
  color-scheme: dark;
  --bg: #282828;
  --surface: #3c3836;
  --surface-2: #504945;
  --surface-3: #665c54;
  --control-bg: #282828;
  --toolbar-bg: #32302f;
  --canvas-bg: #1d2021;
  --line: #7c6f64;
  --line-strong: #bdae93;
  --text: #ebdbb2;
  --muted: #bdae93;
  --accent: #fe8019;
  --accent-2: #d65d0e;
  --on-accent: #282828;
  --focus: #fabd2f;
  --danger: #a83228;
  --danger-strong: #84251e;
  --danger-bright: #ff7865;
  --on-danger: #ffffff;
  --green: #c4c94b;
  --amber: #fabd2f;
  --red: #ff806d;
  --critical: #e2a6b8;
  --map-stroke: #bdae93;
  --map-label: #fbf1c7;
  --map-label-outline: #1d2021;
  --shadow-color: rgba(20,14,10,.34);
}

:root[data-theme="solar-flare"],
.theme-preview[data-preview-theme="solar-flare"] {
  color-scheme: light;
  --bg: #fdf6e3;
  --surface: #fffaf0;
  --surface-2: #eee8d5;
  --surface-3: #ded7c0;
  --control-bg: #ffffff;
  --toolbar-bg: #eee8d5;
  --canvas-bg: #f7efd9;
  --line: #786f5a;
  --line-strong: #586e75;
  --text: #073642;
  --muted: #586e75;
  --accent: #8c6800;
  --accent-2: #a63d10;
  --on-accent: #ffffff;
  --focus: #8c6800;
  --danger: #942d11;
  --danger-strong: #721f0a;
  --danger-bright: #a63d10;
  --on-danger: #ffffff;
  --green: #3d7300;
  --amber: #765900;
  --red: #a63d10;
  --critical: #6c3d8f;
  --map-stroke: #586e75;
  --map-label: #ffffff;
  --map-label-outline: #073642;
  --shadow-color: rgba(88,110,117,.2);
}

:root[data-theme="chalkboard-classic"],
.theme-preview[data-preview-theme="chalkboard-classic"] {
  color-scheme: dark;
  --bg: #17352d;
  --surface: #21483d;
  --surface-2: #2c594c;
  --surface-3: #38695a;
  --control-bg: #183c32;
  --toolbar-bg: #1b4036;
  --canvas-bg: #102a23;
  --line: #78998b;
  --line-strong: #b5c9bd;
  --text: #fff8dc;
  --muted: #c8d8cc;
  --accent: #f2d06b;
  --accent-2: #e79e62;
  --on-accent: #17352d;
  --focus: #f2d06b;
  --danger: #a33b35;
  --danger-strong: #7e2b27;
  --danger-bright: #f28b82;
  --on-danger: #ffffff;
  --green: #a8d5a2;
  --amber: #f2d06b;
  --red: #fa958c;
  --critical: #d6a9e8;
  --map-stroke: #b5c9bd;
  --map-label: #fffbea;
  --map-label-outline: #102a23;
  --shadow-color: rgba(7,24,19,.32);
}

/* Apply semantic tokens to the existing components after all page styles load. */
body { background: var(--bg); color: var(--text); }
::selection { background: var(--accent); color: var(--on-accent); }
.topbar { background: var(--topbar-bg); }
.brand-mark { background: var(--accent); color: var(--on-accent); }
.button.primary, .mode-button.active { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.button:hover, .icon-button:hover, .mode-button:hover, .map-toolbar button:hover { border-color: var(--line-strong); }
.button.danger { color: var(--red); border-color: var(--danger); }
.button:focus-visible, .icon-button:focus-visible, .mode-button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.field input, .field select, .field textarea, .filters input, .filters select, .upload-form input, .lookup-form input, .lookup-form select, .inline-form input, .inline-form textarea, .inline-form select, .node-type-edit-form select, .node-type-create-form select, #room-search, .compact-create input, .wifi-mapping-row select { background: var(--control-bg); color: var(--text); border-color: var(--line); }
.field input:focus, .field select:focus, .field textarea:focus, .filters input:focus, .filters select:focus { border-color: var(--focus); box-shadow: 0 0 0 3px var(--accent-soft); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--accent); }
.editor-toolbar { background: var(--toolbar-bg); }
.advanced-filters, .animation-fields, .node-icon-preview, .integration-status { background: var(--control-bg); }
.map-stage, .editor-canvas { background-color: var(--canvas-bg); background-image:none; }
.room-opacity-backing { display:none; }
.map-canvas-grid-layer { pointer-events:none; }
.map-canvas-grid-line { fill:none; stroke:var(--canvas-grid); stroke-width:1; vector-effect:non-scaling-stroke; }
:root[data-map-grid="hidden"] .map-canvas-grid-layer { display:none; }
.editor-hint { background: var(--hint-bg); }
.room-shape, .room[data-rag="Green"] .room-shape { fill: var(--green-soft); stroke: var(--map-stroke); }
.room:hover .room-shape, .room.selected .room-shape { stroke: var(--accent); fill: var(--accent-soft); }
.room.focused .room-shape { stroke: var(--map-label); }
.room[data-rag="Amber"] .room-shape { fill: var(--amber-soft); }
.room[data-rag="Red"] .room-shape { fill: var(--red-soft); }
.room[data-rag="Critical"] .room-shape { fill: var(--critical-soft); }
.room-label, .map-node-label, .object-node-draft-label { fill: var(--map-label); stroke: var(--map-label-outline); text-shadow: 0 1px 3px var(--map-label-outline); }
.room-wifi-overlay { fill: var(--wifi-overlay); stroke: var(--map-label); }
.rag.green, .wifi-state.online { color: var(--green); }
.rag.amber { color: var(--amber); }
.rag.red, .wifi-state.offline, .wifi-offline-legend { color: var(--red); }
.rag.critical { color: var(--critical); }
.flash-error, .integration-error { color:var(--red); }
.status-pill.online { border-color:var(--green); color:var(--green); background:var(--green-soft); }
.status-pill.offline { border-color:var(--danger); color:var(--red); background:var(--danger-soft); }
.wifi-offline-swatch { color: var(--danger-bright); }
.severity-bar { background: var(--amber); }
.severity-bar.Red { background: var(--red); }
.severity-bar.Critical { background: var(--critical); }
.severity-bar.Green { background: var(--green); }
.modal::backdrop { background: var(--backdrop); }
.school-alerts, .duplicate-warning { background: var(--danger-soft); }
.school-alert-ticker { background: var(--alert-bg); color: var(--text); border-color: var(--amber); }
.school-alert-message span { color: var(--text); }
.topbar-report, .delete-issue-button { background: var(--danger); border-color: var(--danger-bright); color: var(--on-danger); }
.topbar-report:hover, .delete-issue-button:hover, .delete-issue-button:focus-visible { background: var(--danger-strong); border-color: var(--danger-bright); }
.close-issue-button { border-color: var(--danger); color: var(--red); background: var(--danger-soft); }
.close-issue-button:hover, .close-issue-button:focus-visible { background: color-mix(in srgb,var(--danger) 24%,transparent); border-color: var(--danger-bright); }
.layers-popover, .map-node-popover { background: color-mix(in srgb,var(--surface) 97%,transparent); }
.detail-drawer, .modal, .map-card, .issues-card, .completed-strip, .viewer-details, .settings-card, .map-list-card, .notice, .form-card { box-shadow: var(--shadow); }
.vertex-handle, .draft-point.start-node, .draft-point.snap-active, .transform-handle { fill: var(--map-label); }
.draft-point { stroke: var(--on-accent); }
.draft-polygon { fill: var(--accent-soft); }
.draft-polygon.closed { fill: color-mix(in srgb,var(--accent) 30%,transparent); }
.rotation-handle { stroke: var(--map-label-outline); }
.tom-state-pattern-paper { fill:var(--surface); }
.tom-state-pattern-ink { fill:none; stroke:var(--text); stroke-width:1.2; }
.tom-state-pattern-ink.thick { stroke-width:3; }
.tom-state-pattern-dot { fill:var(--text); }

/* Settings theme gallery. */
.appearance-card { grid-column: 1 / -1; }
.appearance-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.appearance-heading h2 { margin-bottom:5px; }
.appearance-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.theme-fieldset { min-width:0; margin:14px 0 8px; padding:0; border:0; }
.theme-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.theme-option { min-width:0; display:grid; grid-template-columns:92px minmax(0,1fr); gap:11px; align-items:center; padding:10px; border:2px solid var(--line); border-radius:11px; background:var(--surface-2); cursor:pointer; }
.theme-option:hover { border-color:var(--line-strong); }
.theme-option[data-selected="true"] { border-color:var(--focus); box-shadow:0 0 0 2px var(--accent-soft); }
.theme-option input { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; }
.theme-option:focus-within { outline:3px solid var(--focus); outline-offset:2px; }
.theme-preview { position:relative; height:62px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--bg); box-shadow:inset 0 0 0 8px var(--surface); }
.theme-preview-surface { position:absolute; left:18px; right:18px; top:15px; height:20px; border:1px solid var(--line); border-radius:4px; background:var(--surface-2); }
.theme-preview-accent { position:absolute; left:25px; top:21px; width:38px; height:8px; border-radius:4px; background:var(--accent); }
.theme-preview-green, .theme-preview-amber, .theme-preview-red, .theme-preview-critical { position:absolute; bottom:7px; width:12px; height:12px; border-radius:50%; }
.theme-preview-green { left:14px; background:var(--green); }
.theme-preview-amber { left:32px; background:var(--amber); }
.theme-preview-red { left:50px; background:var(--red); }
.theme-preview-critical { left:68px; background:var(--critical); }
.theme-option-copy { min-width:0; display:grid; gap:4px; }
.theme-option-copy strong { color:var(--text); }
.theme-option-copy small { color:var(--muted); line-height:1.3; }
.grid-visibility-setting { display:flex; align-items:flex-start; gap:10px; width:fit-content; margin-top:14px; cursor:pointer; }
.grid-visibility-setting input { margin-top:4px; }
.grid-visibility-setting span { display:grid; gap:2px; }
.grid-visibility-setting small { color:var(--muted); }
.theme-custom-dialog { width:min(920px,calc(100vw - 24px)); max-height:min(840px,calc(100dvh - 24px)); }
.theme-custom-dialog form { display:flex; flex-direction:column; max-height:inherit; overflow:hidden; }
.theme-custom-dialog .modal-heading { flex:0 0 auto; padding-right:42px; }
.theme-custom-fields { min-height:0; overflow:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 12px; margin:18px -4px; padding:4px; }
.theme-custom-fields h3 { grid-column:1/-1; margin:10px 0 2px; color:var(--accent); }
.theme-custom-fields h3:first-child { margin-top:0; }
.palette-field { min-width:0; display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); }
.palette-field>span:first-child { font-size:.82rem; }
.palette-control { display:flex; align-items:center; gap:6px; }
.palette-control input[type="color"] { width:38px; height:32px; padding:2px; border:1px solid var(--line); border-radius:6px; background:var(--control-bg); cursor:pointer; }
.palette-control output { width:62px; color:var(--muted); font:700 .7rem/1 monospace; text-transform:uppercase; }
.palette-errors { flex:0 0 auto; margin-top:12px; padding:10px 12px; border:1px solid var(--danger); border-radius:8px; background:var(--danger-soft); color:var(--text); }
.palette-errors ul { min-height:0; margin:6px 0 0; padding-left:20px; }
.theme-custom-actions { flex:0 0 auto; display:flex; align-items:center; gap:8px; }
.action-spacer { flex:1; }
.palette-default-sample { position:fixed!important; left:-10000px!important; top:-10000px!important; width:1px!important; height:1px!important; pointer-events:none!important; }

/* Theme-specific decorative treatments never carry text meaning. */
:root[data-theme="cyber-madness"] .brand-mark,
:root[data-theme="cyber-madness"] .mode-button.active { box-shadow:0 0 13px color-mix(in srgb,var(--accent) 48%,transparent); }
:root[data-theme="unicorn-rainbow-vomit"] .topbar::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:linear-gradient(90deg,#ff5c8a,#ff9f1c,#ffe66d,#5bea8d,#63e6ff,#8b7cff,#ff70d2); pointer-events:none; }
.theme-preview[data-preview-theme="unicorn-rainbow-vomit"]::after { content:""; position:absolute; left:8px; right:8px; top:7px; height:3px; border-radius:3px; background:linear-gradient(90deg,#ff5c8a,#ff9f1c,#ffe66d,#5bea8d,#63e6ff,#8b7cff,#ff70d2); }
@keyframes room-wifi-offline { 0%,100% { opacity:.25; filter:drop-shadow(0 0 1px var(--danger-bright)); } 50% { opacity:.9; filter:drop-shadow(0 0 10px var(--danger-bright)); } }
@keyframes wifi-legend-flash { 0%,100% { opacity:.3; filter:drop-shadow(0 0 1px var(--danger-bright)); } 50% { opacity:1; filter:drop-shadow(0 0 6px var(--danger-bright)); } }

/* Monochrome state patterns are also used by the print treatment below. */
:root[data-theme="antarctic-white"] .room[data-rag="Green"] .room-shape { fill:url(#tom-state-green); }
:root[data-theme="antarctic-white"] .room[data-rag="Amber"] .room-shape { fill:url(#tom-state-amber); stroke-dasharray:12 6; }
:root[data-theme="antarctic-white"] .room[data-rag="Red"] .room-shape { fill:url(#tom-state-red); stroke-width:3; }
:root[data-theme="antarctic-white"] .room[data-rag="Critical"] .room-shape { fill:url(#tom-state-critical); stroke-width:4; stroke-dasharray:4 3; }
:root[data-theme="antarctic-white"] .room[data-wifi-state="offline"] .room-wifi-overlay { fill:url(#tom-state-wifi); stroke:#000; }

@media (max-width: 900px) {
  .theme-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .theme-custom-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .appearance-heading { flex-direction:column; }
  .appearance-actions { width:100%; justify-content:flex-start; }
  .theme-options { grid-template-columns:1fr; }
  .theme-custom-fields { grid-template-columns:1fr; }
  .theme-custom-actions { flex-wrap:wrap; }
  .theme-custom-actions .action-spacer { display:none; }
}

@media print {
  :root[data-theme] {
    color-scheme: light;
    --bg:#ffffff!important; --surface:#ffffff!important; --surface-2:#f2f2f2!important; --surface-3:#e4e4e4!important;
    --control-bg:#ffffff!important; --toolbar-bg:#ffffff!important; --canvas-bg:#ffffff!important;
    --line:#555555!important; --line-strong:#000000!important; --text:#000000!important; --muted:#333333!important;
    --accent:#000000!important; --accent-2:#333333!important; --on-accent:#ffffff!important; --focus:#000000!important;
    --danger:#000000!important; --danger-strong:#000000!important; --danger-bright:#000000!important; --on-danger:#ffffff!important;
    --green:#222222!important; --amber:#333333!important; --red:#111111!important; --critical:#000000!important;
    --map-stroke:#000000!important; --map-label:#000000!important; --map-label-outline:#ffffff!important;
    --shadow-color:transparent;
  }
  *, *::before, *::after { animation:none!important; transition:none!important; box-shadow:none!important; text-shadow:none!important; }
  body { print-color-adjust:economy; -webkit-print-color-adjust:economy; }
  .topbar { position:static; height:48px; padding:0; border-color:#000; backdrop-filter:none; }
  .topbar nav, .topbar-metrics, .topbar-report, .map-toolbar-actions, .editor-toolbar, .editor-panel, .editor-title .button, .layers-popover, dialog, .detail-drawer, .toast-region, .flash { display:none!important; }
  .brand-mark { background:#fff; color:#000; border:2px solid #000; }
  main, .live-page, .viewer-page, .fullscreen-live { min-height:0!important; height:auto!important; padding:5mm 0!important; overflow:visible!important; }
  .live-workspace, .viewer-layout, .map-card { display:block!important; min-height:0!important; height:auto!important; border-color:#000; }
  .editor-page, .editor-workspace { display:block!important; min-height:0!important; height:auto!important; overflow:visible!important; }
  .editor-canvas { min-height:165mm!important; height:165mm!important; }
  .map-stage, .viewer-layout .map-stage, .fullscreen-live #live-map-stage { position:relative; min-height:165mm!important; height:165mm!important; background:#fff!important; }
  .map-toolbar { min-height:36px; border-color:#000; }
  .map-legend { color:#000; border-color:#000; }
  .background-image { filter:grayscale(1) contrast(1.2); }
  .map-path-base, .map-path-effect { stroke:#000!important; }
  .map-path-effect, .node-effect-ring { display:none!important; }
  .map-canvas-grid-layer { display:none!important; }
  .room-opacity-backing { display:none!important; }
  .map-node { filter:grayscale(1) contrast(1.4)!important; }
  .room[data-rag="Green"] .room-shape { fill:url(#tom-state-green)!important; }
  .room[data-rag="Amber"] .room-shape { fill:url(#tom-state-amber)!important; stroke-dasharray:12 6; }
  .room[data-rag="Red"] .room-shape { fill:url(#tom-state-red)!important; stroke-width:3; }
  .room[data-rag="Critical"] .room-shape { fill:url(#tom-state-critical)!important; stroke-width:4; stroke-dasharray:4 3; }
  .room[data-wifi-state="offline"] .room-wifi-overlay { display:block!important; fill:url(#tom-state-wifi)!important; stroke:#000!important; opacity:1!important; }
  .issues-card, .completed-strip { margin-top:5mm; max-height:none; overflow:visible; border-color:#000; }
  .issue-list { max-height:none; overflow:visible; }
}
