/* XYDRA OBSIDIAN v1.2.0 | CSS design system | MIT
   Add class="xy-app" to your page root. Tokens alone are safe to import.
   Accent: data-xydra-theme="ember|frost|violet" on <html>.
   Optional: data-xydra-motion="quiet|off", data-xydra-texture="grid|none".
   No fonts, images, network requests, or JavaScript required. */
:root {
  color-scheme: dark;
  --xy-bg: #0b0d12;
  --xy-surface: #13161e;
  --xy-raised: #1b1f29;
  --xy-inset: #0e1118;
  --xy-text: #eef0f6;
  --xy-muted: #a4abba;
  --xy-subtle: #8b94a6;
  --xy-border: #303644;
  --xy-control-border: #697386;
  --xy-accent: #ff806b;
  --xy-accent-rgb: 255, 128, 107;
  --xy-on-accent: #1a0c09;
  --xy-success: #78dba9;
  --xy-warning: #edc37a;
  --xy-danger: #ff94ac;
  --xy-info: #8fcaff;
  --xy-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --xy-mono: "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --xy-space-1: .25rem; --xy-space-2: .5rem; --xy-space-3: .75rem;
  --xy-space-4: 1rem; --xy-space-6: 1.5rem; --xy-space-8: 2rem;
  --xy-space-12: 3rem; --xy-space-16: 4rem;
  --xy-radius-sm: 6px; --xy-radius: 12px; --xy-radius-lg: 20px;
  --xy-shadow: 0 16px 40px #00000026, inset 0 1px 0 #ffffff04;
  --xy-ease: cubic-bezier(.2,.8,.2,1);
  --xy-fast: 160ms; --xy-normal: 260ms;
  --xy-content-width: 80rem;
  --xy-panel-padding: 1.5rem;
  --xy-texture-opacity: .28;
  --xy-scale-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='96' viewBox='0 0 72 96'%3E%3Cg fill='none' stroke='%237b879c' stroke-opacity='.18' stroke-width='.7'%3E%3Cpath d='M-36 0 0 24 36 0 72 24 108 0M-36 48 0 72 36 48 72 72 108 48M-36 96 0 120 36 96 72 120 108 96M0-24 36 0 36 48 0 72 0 120M72-24 108 0 108 48 72 72 72 120M-36 0-36 48 0 24 36 48 72 24 108 48'/%3E%3C/g%3E%3C/svg%3E");
}
:root[data-xydra-theme="frost"] {
  --xy-accent: #86dce8; --xy-accent-rgb: 134, 220, 232; --xy-on-accent: #08171b;
}
:root[data-xydra-theme="violet"] {
  --xy-accent: #bfa8ff; --xy-accent-rgb: 191, 168, 255; --xy-on-accent: #160c28;
}
:root[data-xydra-density="compact"] { --xy-panel-padding: 1rem; }
.xy-app, .xy-app *, .xy-app *::before, .xy-app *::after { box-sizing: border-box; }
.xy-app {
  margin: 0; min-height: 100vh; min-height: 100svh;
  background: var(--xy-bg); color: var(--xy-text);
  font: 400 1rem/1.6 var(--xy-font); -webkit-font-smoothing: antialiased;
  accent-color: var(--xy-accent);
}
.xy-app :where(h1,h2,h3,p,figure,dl) { margin: 0; }
.xy-app :where(h1,h2,h3) { line-height: 1.15; font-weight: 650; letter-spacing: -.035em; }
.xy-app h1 { font-size: clamp(2.5rem,5vw,4.5rem); }
.xy-app h2 { font-size: clamp(1.65rem,3vw,2.5rem); }
.xy-app h3 { font-size: 1.1rem; }
.xy-app :where(a,button,input,select,textarea,summary) { -webkit-tap-highlight-color: transparent; }
.xy-app :where(a,button,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--xy-accent); outline-offset: 4px;
}
.xy-app :where(a) { color: var(--xy-accent); text-underline-offset: .22em; }
.xy-app :where(button,input,select,textarea) { font: inherit; }
.xy-app ::selection { color: var(--xy-text); background: #594457; }
.xy-app :where(code,kbd,pre) { font-family: var(--xy-mono); }
.xy-app :where(img,svg) { max-width: 100%; }
.xy-canvas { position: relative; isolation: isolate; }
.xy-canvas::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse at 88% 0%,rgba(var(--xy-accent-rgb),.085),transparent 52%),
    radial-gradient(ellipse at 0% 90%,#8a9cda06,transparent 45%);
}
.xy-canvas::after {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  opacity: var(--xy-texture-opacity); background-image: var(--xy-scale-pattern);
  -webkit-mask-image: linear-gradient(140deg,transparent 5%,#000 80%);
  mask-image: linear-gradient(140deg,transparent 5%,#000 80%);
}
:root[data-xydra-texture="grid"] { --xy-scale-pattern: linear-gradient(#7b879c18 1px,transparent 1px),linear-gradient(90deg,#7b879c18 1px,transparent 1px); }
:root[data-xydra-texture="grid"] .xy-canvas::after { background-size: 48px 48px; }
:root[data-xydra-texture="none"] { --xy-texture-opacity: 0; }
.xy-container { width: min(var(--xy-content-width),100% - 3rem); margin-inline: auto; }
.xy-stack { display: grid; gap: var(--xy-space-6); }
.xy-row { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.xy-between { justify-content: space-between; }
.xy-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr)); }
.xy-muted { color: var(--xy-muted); }
.xy-mono { font-family: var(--xy-mono); font-size: .8rem; }
.xy-kicker { color: var(--xy-accent); font: 500 .69rem/1.5 var(--xy-mono); text-transform: uppercase; letter-spacing: .14em; }
.xy-caption { color: var(--xy-muted); font-size: .85rem; }
.xy-panel {
  min-width: 0; padding: var(--xy-panel-padding); background: var(--xy-surface);
  border: 1px solid var(--xy-border); border-radius: var(--xy-radius);
  box-shadow: var(--xy-shadow);
}
.xy-panel--raised { background: var(--xy-raised); }
.xy-panel--glass { background: #13161ef0; }
@supports (backdrop-filter: blur(16px)) {
  .xy-panel--glass { background: #13161ed9; backdrop-filter: blur(16px); }
}
.xy-divider { height: 1px; margin-block: 1.5rem; border: 0; background: var(--xy-border); }
.xy-btn {
  display: inline-flex; justify-content: center; align-items: center; gap: .65rem;
  min-height: 44px; padding: .65rem 1rem;
  border: 1px solid var(--xy-control-border); border-radius: var(--xy-radius-sm);
  background: var(--xy-raised); color: var(--xy-text); text-decoration: none;
  font: 550 .83rem/1.4 var(--xy-font); cursor: pointer;
  transition: border-color var(--xy-fast),background var(--xy-fast),transform var(--xy-fast) var(--xy-ease);
}
.xy-btn:hover:not(:disabled,[aria-disabled="true"]) { border-color: var(--xy-accent); background: rgba(var(--xy-accent-rgb),.08); transform: translateY(-1px); }
.xy-btn:active:not(:disabled) { transform: translateY(0); }
.xy-btn--primary { background: var(--xy-accent); border-color: var(--xy-accent); color: var(--xy-on-accent); }
.xy-btn--primary:hover:not(:disabled) { background: var(--xy-accent); color: var(--xy-on-accent); filter: brightness(1.08); }
.xy-btn--ghost { background: transparent; border-color: transparent; }
.xy-btn--danger { color: var(--xy-danger); border-color: var(--xy-danger); background: #ff94ac08; }
.xy-btn:disabled, .xy-btn[aria-disabled="true"] { color: var(--xy-muted); background: var(--xy-inset); border-color: var(--xy-border); cursor: not-allowed; }
.xy-badge {
  display: inline-flex; gap: .5rem; align-items: center; width: fit-content;
  padding: .25rem .55rem; border: 1px solid var(--xy-border); border-radius: 5px;
  color: var(--xy-muted); background: var(--xy-inset); font: 500 .67rem/1.5 var(--xy-mono);
}
.xy-badge--success { color: var(--xy-success); border-color: #78dba933; background: #78dba909; }
.xy-badge--warning { color: var(--xy-warning); border-color: #edc37a33; background: #edc37a09; }
.xy-badge--danger { color: var(--xy-danger); border-color: #ff94ac33; background: #ff94ac09; }
.xy-badge--info { color: var(--xy-info); border-color: #8fcaff33; background: #8fcaff09; }
.xy-dot { display: inline-block; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.xy-field { display: grid; gap: .5rem; color: var(--xy-muted); font-size: .83rem; }
.xy-input {
  width: 100%; min-width: 0; min-height: 44px; padding: .7rem .85rem;
  border: 1px solid var(--xy-control-border); border-radius: var(--xy-radius-sm);
  background: var(--xy-inset); color: var(--xy-text);
}
.xy-input::placeholder { color: var(--xy-subtle); opacity: 1; }
.xy-input[aria-invalid="true"] { border-color: var(--xy-danger); }
.xy-input:disabled { opacity: .65; cursor: not-allowed; }
.xy-switch { display: inline-flex; align-items: center; gap: .7rem; font-size: .85rem; cursor: pointer; }
.xy-switch input {
  appearance: none; margin: 0; width: 38px; height: 22px; flex: 0 0 auto;
  border: 1px solid var(--xy-control-border); border-radius: 30px; background: var(--xy-inset); cursor: pointer;
}
.xy-switch input::before { content: ""; display: block; width: 14px; height: 14px; margin: 3px; border-radius: 50%; background: var(--xy-muted); transition: transform var(--xy-fast); }
.xy-switch input:checked { background: var(--xy-accent); border-color: var(--xy-accent); }
.xy-switch input:checked::before { background: var(--xy-on-accent); transform: translateX(16px); }
.xy-alert { display: flex; align-items: flex-start; gap: .85rem; padding: 1rem; border: 1px solid var(--xy-border); border-left: 2px solid var(--xy-info); border-radius: var(--xy-radius-sm); background: var(--xy-inset); font-size: .85rem; }
.xy-alert--warning { border-left-color: var(--xy-warning); }
.xy-alert--danger { border-left-color: var(--xy-danger); }
.xy-alert--success { border-left-color: var(--xy-success); }
.xy-service { display: flex; align-items: center; gap: 1rem; text-decoration: none; color: var(--xy-text); transition: border-color var(--xy-fast),transform var(--xy-fast) var(--xy-ease); }
.xy-service:hover { border-color: var(--xy-accent); transform: translateY(-2px); }
.xy-service > :nth-child(2) { flex: 1; }
.xy-service h3 { margin-bottom: .25rem; }
.xy-icon { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border: 1px solid var(--xy-border); border-radius: 10px; background: var(--xy-inset); color: var(--xy-accent); font: 600 .85rem var(--xy-mono); }
.xy-metric { font-size: clamp(1.8rem,3vw,2.4rem); font-weight: 620; letter-spacing: -.045em; line-height: 1.3; font-variant-numeric: tabular-nums; }
.xy-meter { display: block; width: 100%; height: 5px; border: 0; border-radius: 8px; overflow: hidden; background: var(--xy-border); accent-color: var(--xy-accent); }
.xy-meter::-webkit-progress-bar { background: var(--xy-border); }
.xy-meter::-webkit-progress-value { background: var(--xy-accent); border-radius: 8px; }
.xy-meter::-moz-progress-bar { background: var(--xy-accent); border-radius: 8px; }
.xy-table-wrap { overflow-x: auto; border: 1px solid var(--xy-border); border-radius: var(--xy-radius); }
.xy-table { width: 100%; border-collapse: collapse; text-align: left; background: var(--xy-surface); font-size: .85rem; white-space: nowrap; }
.xy-table th { padding: .85rem 1.1rem; color: var(--xy-muted); background: var(--xy-inset); font: 500 .67rem var(--xy-mono); letter-spacing: .07em; text-transform: uppercase; }
.xy-table td { padding: 1rem 1.1rem; border-top: 1px solid var(--xy-border); }
.xy-table tbody tr:hover { background: #ffffff03; }
.xy-table caption { padding: .75rem; color: var(--xy-muted); text-align: left; }
.xy-tabs { display: flex; flex-wrap: wrap; gap: .25rem; padding: .3rem; width: fit-content; border: 1px solid var(--xy-border); border-radius: 9px; background: var(--xy-inset); }
.xy-tabs button { min-height: 38px; padding: .45rem .9rem; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--xy-muted); font-size: .8rem; cursor: pointer; }
.xy-tabs button[aria-pressed="true"] { border-color: var(--xy-border); background: var(--xy-raised); color: var(--xy-text); }
.xy-dialog { width: min(28rem,100% - 2rem); padding: 2rem; color: var(--xy-text); background: var(--xy-surface); border: 1px solid var(--xy-control-border); border-radius: var(--xy-radius-lg); font-family: var(--xy-font); box-shadow: 0 20px 100px #0009; }
.xy-dialog::backdrop { background: #05070bcc; backdrop-filter: blur(5px); }
.xy-dialog h2 { margin-bottom: 1rem; }
.xy-dialog p { color: var(--xy-muted); margin-bottom: 1.5rem; }
.xy-code { display: block; overflow-x: auto; margin: 0; padding: 1.25rem; border: 1px solid var(--xy-border); border-radius: var(--xy-radius); background: var(--xy-inset); color: var(--xy-muted); font: .8rem/1.8 var(--xy-mono); }
.xy-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.xy-skip { position: fixed; top: 1rem; left: 1rem; z-index: 100; transform: translateY(-200%); }
.xy-skip:focus { transform: translateY(0); }
.xy-enter { animation: xy-enter 600ms var(--xy-ease) both; }
.xy-breathe { animation: xy-breathe 12s ease-in-out infinite; }
@keyframes xy-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes xy-breathe { 0%,100% { opacity: .35; } 50% { opacity: .7; } }
:root[data-xydra-motion="off"] .xy-app *, :root[data-xydra-motion="off"] .xy-app *::before, :root[data-xydra-motion="off"] .xy-app *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
}
:root[data-xydra-motion="quiet"] .xy-breathe { animation: none; opacity: .5; }
@media (prefers-reduced-motion: reduce) {
  .xy-app *, .xy-app *::before, .xy-app *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .xy-panel--glass { background: var(--xy-surface); backdrop-filter: none; }
  .xy-dialog::backdrop { background: #05070bf5; backdrop-filter: none; }
}
@media (forced-colors: active) {
  .xy-app :where(.xy-btn,.xy-input,.xy-badge,.xy-switch input) { border: 1px solid ButtonText; }
  .xy-app :focus-visible { outline-color: Highlight; }
  .xy-dot { forced-color-adjust: none; background: CanvasText; }
  .xy-switch input:checked { background: Highlight; }
  .xy-switch input:checked::before { background: HighlightText; }
  .xy-canvas::before,.xy-canvas::after { display: none; }
}
@media (max-width: 640px) {
  .xy-container { width: calc(100% - 2rem); }
  :root { --xy-panel-padding: 1.15rem; }
}

/* v1.1: preferred Obsidian atmosphere. Static scale geometry; light breathes. */
:root[data-xydra-motion="ambient"] .xy-canvas::before { animation: xy-canvas-breathe 14s ease-in-out infinite; }
@keyframes xy-canvas-breathe { 0%,100% { opacity:.55; } 50% { opacity:1; } }
.xy-brand-art { transition: transform 420ms var(--xy-ease),filter 420ms var(--xy-ease); transform-origin:50% 50%; }
.xy-brand-art:hover { transform:translateY(-3px) rotate(-.6deg); filter:brightness(1.06); }

:root[data-xydra-motion="off"] .xy-brand-art:hover { transform:none; }
@media(prefers-reduced-motion:reduce) { .xy-brand-art:hover { transform:none; } }

/* Preserved app geometry, retokenised. */
:root {
  color-scheme: dark;
  --background: var(--xy-bg);
  --panel: var(--xy-surface);
  --panel-deep: var(--xy-inset);
  --line: var(--xy-border);
  --line-strong: var(--xy-control-border);
  --text: var(--xy-text);
  --muted: var(--xy-muted);
  --muted-strong: var(--xy-text);
  --accent: var(--xy-accent);
  --accent-soft: rgba(var(--xy-accent-rgb), 0.11);
  --fault: var(--xy-danger);
  --fault-soft: rgba(255, 148, 172, 0.1);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html {
  min-width: 20rem;
  background: var(--background);
}

/* Glance uses a compact 10px rem baseline. Give wide dashboards a more
   comfortable reading scale without inflating the mobile layout. */
@media (min-width: 80rem) {
  html { font-size: 13px !important; }

  .content-bounds-wide {
    max-width: 2300px !important;
  }
}

body {
  min-height: 100vh;
  min-height: 100svh;
  color: var(--text);
  background:
    radial-gradient(circle at 78% 24%, rgba(37, 99, 107, 0.18), transparent 31rem),
    radial-gradient(circle at 8% 92%, rgba(43, 57, 84, 0.2), transparent 27rem),
    var(--background) !important;
  background-attachment: fixed !important;
}

body::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  content: "";
  opacity: 0.2;
  pointer-events: none;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 3.5rem 3.5rem;
  -webkit-mask-image: linear-gradient(to bottom, black, transparent 90%);
  mask-image: linear-gradient(to bottom, black, transparent 90%);
}

body,
button,
input { font-family: inherit; }

a { transition: color 160ms ease, border-color 160ms ease, transform 160ms ease; }

a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 3px;
}

.page { padding-bottom: clamp(2rem, 6vw, 5rem); }

.page-content { gap: clamp(1rem, 2vw, 1.45rem) !important; }

.head-widgets,
.page-column {
  display: flex !important;
  flex-direction: column;
  gap: clamp(1.4rem, 1.3vw, 1.8rem) !important;
}

/* Keep the utility rail dense: its shorter widgets do not need the generous
   editorial spacing used by the main feed column. */
.page-column-small {
  gap: clamp(0.75rem, 0.8vw, 0.9rem) !important;
}

.widget {
  overflow: hidden;
  border: 1px solid var(--line-strong) !important;
  border-radius: 1rem !important;
  background: var(--panel) !important;
  box-shadow: 0 1.5rem 4.5rem rgba(0, 0, 0, 0.22);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.widget-header {
  min-height: 3.4rem;
  padding-inline: 1.25rem !important;
  border-bottom: 1px solid var(--line);
  color: var(--muted) !important;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.95rem !important;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.widget-content { padding: 1.25rem; }

.desktop-navigation,
.mobile-navigation {
  border-color: var(--line) !important;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.desktop-navigation a,
.mobile-navigation a { color: var(--muted-strong); }

.desktop-navigation a:hover,
.mobile-navigation a:hover { color: var(--text); }

.xydra-hero {
  position: relative;
  overflow: hidden;
  border-radius: 1.35rem !important;
  background:
    linear-gradient(145deg, rgba(var(--xy-accent-rgb), 0.065), transparent 52%),
    var(--panel) !important;
}

.xydra-hero::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  opacity: 0.38;
  pointer-events: none;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 2.25rem 2.25rem;
  -webkit-mask-image: radial-gradient(circle at 78% 50%, black, transparent 52%);
  mask-image: radial-gradient(circle at 78% 50%, black, transparent 52%);
}

.xydra-hero .widget-content { padding: 0 !important; }

.xydra-hero-shell {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 20rem;
  align-items: center;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.32fr);
  gap: clamp(2rem, 6vw, 5rem);
  padding: clamp(2.4rem, 5vw, 4.6rem);
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 1.35rem;
  background: var(--xy-surface);
  box-shadow: 0 2rem 7rem rgba(0, 0, 0, 0.24);
}

.xydra-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 1.15rem;
  color: var(--accent);
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.xydra-eyebrow span {
  width: 0.5rem;
  height: 0.5rem;
  border: 2px solid var(--accent);
  border-radius: 50%;
  box-shadow: 0 0 0 0.28rem var(--accent-soft);
}

.xydra-hero-shell h2 {
  max-width: 12ch;
  margin: 0;
  color: var(--text);
  font-size: clamp(3rem, 6vw, 5.2rem) !important;
  font-weight: 730 !important;
  letter-spacing: -0.055em !important;
  line-height: 0.98 !important;
  text-wrap: balance;
}

.xydra-summary {
  max-width: 46rem;
  margin: 1.4rem 0 0;
  color: var(--muted);
  font-size: clamp(1.3rem, 1.35vw, 1.5rem) !important;
  line-height: 1.68 !important;
}

.xydra-hero-state {
  padding: 1.2rem;
  border: 1px solid var(--line);
  border-radius: 0.7rem;
  background: var(--xy-inset);
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

.xydra-state-label,
.xydra-hero-state small {
  display: block;
  color: var(--muted);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.xydra-hero-state strong {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0.8rem 0 0.45rem;
  color: var(--text);
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.xydra-state-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 0.28rem var(--accent-soft);
}

.xydra-search {
  border-color: rgba(var(--xy-accent-rgb), 0.36) !important;
  background: var(--xy-inset) !important;
}

.xydra-search input {
  color: var(--text) !important;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 1.2rem !important;
}

.xydra-placeholder .widget-content { padding: 0 !important; }

.xydra-empty-state {
  display: grid;
  min-height: 18rem;
  align-items: start;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(1.2rem, 3vw, 2.2rem);
  padding: clamp(1.6rem, 4vw, 3.2rem);
  border: 1px solid var(--line-strong);
  border-radius: 1rem;
  background:
    linear-gradient(135deg, rgba(var(--xy-accent-rgb), 0.04), transparent 48%),
    var(--panel-deep);
}

.xydra-empty-index {
  color: rgba(var(--xy-accent-rgb), 0.28);
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-size: clamp(2.8rem, 5vw, 4.4rem);
  font-weight: 800;
  letter-spacing: -0.08em;
  line-height: 0.9;
}

.xydra-empty-kicker {
  margin: 0 0 0.75rem;
  color: var(--accent);
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.xydra-empty-state h2 {
  margin: 0;
  color: var(--text);
  font-size: clamp(1.45rem, 3vw, 2.15rem);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.08;
}

.xydra-empty-state p:not(.xydra-empty-kicker) {
  max-width: 42rem;
  margin: 1rem 0 1.25rem;
  color: var(--muted);
  line-height: 1.65;
}

.xydra-empty-state code {
  display: inline-block;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 0.4rem;
  color: var(--muted-strong);
  background: var(--xy-inset);
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.95rem;
}

.xydra-input-list { display: grid; gap: 0.75rem; }

.xydra-input-list div {
  display: grid;
  gap: 0.25rem;
  padding: 0.8rem;
  border: 1px solid var(--line);
  border-radius: 0.5rem;
  background: var(--xy-inset);
}

.xydra-input-list span {
  color: var(--text);
  font-size: 1.08rem;
  font-weight: 700;
}

.xydra-input-list strong {
  color: var(--muted);
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.xydra-frame { overflow: hidden; }

.xydra-frame .widget-content { padding: 0 !important; }

.xydra-frame iframe {
  display: block;
  width: 100%;
  min-height: calc(100svh - 12rem);
  border: 0 !important;
  background: var(--background);
}

.xydra-services-frame iframe { height: max(68rem, calc(100svh - 12rem)) !important; }
.xydra-status-frame iframe { height: max(58rem, calc(100svh - 12rem)) !important; }

@media (max-width: 49rem) {
  .page { padding-inline: 0.75rem; }

  .xydra-hero-shell {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 3rem 1.5rem 2.5rem;
  }

  .xydra-hero-state { max-width: 22rem; }

  .xydra-empty-state {
    min-height: 16rem;
    grid-template-columns: 1fr;
    padding: 1.5rem;
  }

  .xydra-empty-index { font-size: 2.8rem; }

  .xydra-frame iframe {
    min-height: calc(100svh - 9rem);
    height: 72rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .widget,
  .xydra-hero {
    background: var(--xy-surface) !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* GLANCE ADAPTER — candidate, not live-verified.
   Load xydra.css first. Targets the existing local theme mirror's selectors.
   Glance's rem baseline is preserved. No hero/frame sizing overrides. */
body { color: var(--xy-text); background: radial-gradient(ellipse at 90% 0%,rgba(var(--xy-accent-rgb),.07),transparent 60%),var(--xy-bg) !important; }
.widget { background: var(--xy-surface) !important; border: 1px solid var(--xy-border) !important; border-radius: 12px !important; box-shadow: var(--xy-shadow); }
.widget-header { color: var(--xy-muted) !important; border-bottom: 1px solid var(--xy-border); font-family: var(--xy-mono); }
.desktop-navigation a, .mobile-navigation a { color: var(--xy-muted); }
.desktop-navigation a:hover, .mobile-navigation a:hover { color: var(--xy-accent); }
.widget a:focus-visible, .widget button:focus-visible, .widget input:focus-visible { outline: 2px solid var(--xy-accent); outline-offset: 3px; }

/* Installed app integration. Obsidian/Ember/scales, comfortable density. */
body { font-family:var(--xy-font); -webkit-font-smoothing:antialiased; }
::selection { color:var(--xy-text); background:rgba(var(--xy-accent-rgb),.25); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--xy-accent)!important;outline-offset:3px; }
::-webkit-scrollbar-track { background:var(--xy-bg); }
::-webkit-scrollbar-thumb { background:var(--xy-control-border);border-color:var(--xy-bg); }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }
@media(forced-colors:active) { body::before,body::after,#page_wrapper::before,#page_wrapper::after { display:none!important; } }

:root {
 --color-primary:var(--xy-accent)!important;--color-positive:var(--xy-success)!important;--color-negative:var(--xy-danger)!important;
 --color-background:var(--xy-bg)!important;--color-widget-background:var(--xy-surface)!important;
 --color-widget-content-border:var(--xy-border)!important;--color-separator:var(--xy-border)!important;
 --color-text-base:var(--xy-muted)!important;--color-text-highlight:var(--xy-text)!important;--color-text-subdue:var(--xy-subtle)!important;
}
body { position:relative;isolation:isolate;background:var(--xy-bg)!important; }
body::before { content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--xy-texture-opacity);background-image:var(--xy-scale-pattern);background-size:72px 96px;-webkit-mask-image:linear-gradient(140deg,transparent 5%,#000 80%);mask-image:linear-gradient(140deg,transparent 5%,#000 80%); }
body::after { content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 88% 0%,rgba(var(--xy-accent-rgb),.085),transparent 52%),radial-gradient(ellipse at 0% 90%,#8a9cda06,transparent 45%);animation:xy-canvas-breathe 14s ease-in-out infinite; }
.widget,.widget-content-frame,.xydra-hero-shell { background:var(--xy-surface)!important;border-color:var(--xy-border)!important;border-radius:var(--xy-radius)!important;box-shadow:var(--xy-shadow);backdrop-filter:none;-webkit-backdrop-filter:none; }
.widget-header { font-family:var(--xy-mono); }
.xydra-hero::after { opacity:.5;background-image:var(--xy-scale-pattern);background-size:72px 96px; }
.xydra-hero-shell { background:linear-gradient(135deg,rgba(var(--xy-accent-rgb),.055),transparent 60%),var(--xy-surface)!important; }
.xydra-hero-state { background:var(--xy-inset);border-color:var(--xy-border); }
.xydra-state-dot { background:var(--xy-success);box-shadow:0 0 0 .28rem #78dba91c; }
.xydra-search { border-color:var(--xy-control-border)!important;background:var(--xy-inset)!important; }
.xydra-eyebrow,.xydra-hero-state,.xydra-search input,.desktop-navigation,.mobile-navigation { font-family:var(--xy-mono); }
.desktop-navigation,.mobile-navigation { background:var(--xy-inset);border-color:var(--xy-border)!important; }
.navigation-link-current { color:var(--xy-text)!important;border-color:var(--xy-accent)!important; }
/* Glance v0.8.7 switches columns with radio inputs below 1190px. */
@media(max-width:1190px) {
 .page-column { display:none!important; }
 body:has(.mobile-navigation-input[value="0"]:checked) .page-columns>:nth-child(1),
 body:has(.mobile-navigation-input[value="1"]:checked) .page-columns>:nth-child(2),
 body:has(.mobile-navigation-input[value="2"]:checked) .page-columns>:nth-child(3) { display:flex!important;width:100%; }
}
.logo { display:flex;align-items:center; }
.logo img { width:26px;height:32px;object-fit:contain; }
#login-container { max-width:40rem; }
#login-container::before { content:"XYDRA / ACCESS";display:block;margin-bottom:2.8rem;padding:.8rem 0 .8rem 4.1rem;color:var(--xy-accent);font:600 1.1rem/1.6 var(--xy-mono);letter-spacing:.14em;background:url("/assets/xydra-obsidian/mark.svg") no-repeat left center/2.8rem 3.5rem; }
#login-container .widget-header { border:0;padding:0!important;min-height:0;margin-bottom:.8rem; }
#login-container .form-input { border:1px solid var(--xy-control-border);background:var(--xy-inset)!important;min-height:48px;border-radius:var(--xy-radius-sm)!important; }
#login-container .form-input:focus-within { border-color:var(--xy-accent); }
#login-container .login-button { color:var(--xy-on-accent);background:var(--xy-accent);border:1px solid var(--xy-accent);min-height:48px;border-radius:var(--xy-radius-sm); }
#login-container .login-button:disabled { opacity:.55; }

@media(prefers-reduced-motion:reduce){body::after,#page_wrapper::after{animation:none!important;}}

/* News-only editorial grid: common row tracks, no fixed card heights.
   Keep native Glance columns/radio switching below its 1190px breakpoint. */
.page-columns:has(.xydra-news-kev) .page-column > .widget {
  margin-block: 0 !important;
}
.page-columns:has(.xydra-news-kev) .widget-header {
  margin-bottom: 0 !important;
}
.page-columns:has(.xydra-news-kev) .widget-content {
  padding: 1.25rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.page-columns:has(.xydra-news-kev) .widget-type-group > .widget-content {
  padding: 0 !important;
}
.xydra-news-community .widget,
.xydra-news-releases .widget {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
@media (min-width: 1191px) {
  .page-columns:has(.xydra-news-kev) {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(14px, 1.2vw, 22px) !important;
  }
  .page-columns:has(.xydra-news-kev) > .page-column {
    display: contents !important;
  }
  .page-columns:has(.xydra-news-kev) .page-column > .widget {
    min-width: 0;
    width: auto !important;
  }
  .xydra-news-kev { grid-area: 1 / 1; }
  .xydra-news-security { grid-area: 1 / 2; }
  .xydra-news-community { grid-area: 1 / 3; }
  .xydra-news-ncsc { grid-area: 2 / 1; }
  .xydra-news-it { grid-area: 2 / 2; }
  .xydra-news-discovery { grid-area: 2 / 3; }
  .xydra-news-references { grid-area: 3 / 1; }
  .xydra-news-releases { grid-area: 3 / 2 / 4 / 4; }
}
