/* ------------------------------
   Callouts (final tuned spacing)
   ------------------------------ */

.callout-established,
.callout-proposed,
.callout-speculative,
.callout-caution,
.callout-warning,
.callout-danger {
  border-radius: 6px;
  padding: 5px;  /* internal padding */
  margin-top: 5px;     /* external spacing tightened */
  margin-bottom: 5px;
  border-left: 6px solid;
  background: #fefefe;
}

/* Title line */
.callout-established p:first-child strong,
.callout-proposed p:first-child strong,
.callout-speculative p:first-child strong,
.callout-caution p:first-child strong,
.callout-warning p:first-child strong,
.callout-danger p:first-child strong {
  display: block;
  font-family: "Libertinus Sans", sans-serif;
  font-weight: 600;
  font-size: 1.05rem;
  margin-bottom: 5px;
}

/* Paragraphs inside callouts */
.callout-established p,
.callout-proposed p,
.callout-speculative p,
.callout-caution p,
.callout-warning p,
.callout-danger p {
  margin-top: 5px;
  margin-bottom: 5px;
  line-height: 1.45;  /* slightly condensed text spacing */
}

/* Remove top margin on first paragraph, bottom on last */
.callout-established p:first-child,
.callout-proposed p:first-child,
.callout-speculative p:first-child,
.callout-caution p:first-child,
.callout-warning p:first-child,
.callout-danger p:first-child {
  margin-top: 0;
}
.callout-established p:last-child,
.callout-proposed p:last-child,
.callout-speculative p:last-child,
.callout-caution p:last-child,
.callout-warning p:last-child,
.callout-danger p:last-child {
  margin-bottom: 0;
}

/* Math inside callouts */
.callout-established .math.display,
.callout-proposed .math.display,
.callout-speculative .math.display, 
.callout-caution .math.display,
.callout-warning .math.display,
.callout-danger .math.display {
  margin: 0.4em 0;
}

/* Colors */
.callout-established {
  background: #e8f7e8;
  border-left-color: #3a8d3a;
}
.callout-proposed {
  background: #e8f0ff;
  border-left-color: #3b6dd8;
}
.callout-speculative {
  background: #f7e8ff;
  border-left-color: #8b2be2;
}

.callout-caution {
  background: #fff0e8;
  border-left-color: #f5a22f;
}

.callout-warning {
  background: #fff0e8;
  border-left-color: #f5a22f;
}

.callout-danger {
  background: #ffe8e8;
  border-left-color: #d83b3a;
}


/* three.js */

#proto-time-viz {
  width: 100%;
  height: 600px;   /* or auto-resize later */
  border: 1px solid #333;
}

/* #cylindrical-time-viz {
  width: 100%;
  height: 600px;   /* or auto-resize later */
  /* border: 1px solid #333; */
/* } */


json-viewer {
  background: #ffffff;
  color: #222;
  font-family: monospace;
  font-size: 0.85rem;
  border: 1px solid #ddd;
  padding: 0.5rem;
}

/* Keys */
json-viewer .property {
  color: #005cc5;
}

/* Strings */
json-viewer .string {
  color: #22863a;
}

/* Numbers */
json-viewer .number {
  color: #b31d28;
}

/* Booleans */
json-viewer .boolean {
  color: #6f42c1;
}

/* Null */
json-viewer .null {
  color: #999;
}

/* Expand/collapse arrows */
json-viewer .toggle {
  color: #666;
}

/* Hover */
json-viewer .property:hover {
  background: #f5f5f5;
}


#ssl-graph {
  border: 1px solid #ccc;
  background-color: #ffffff;
  border-radius: 4px;
  /* padding: 6px;
  box-sizing: border-box; */
}


/* Side panel */
#sidepanel {
  display: flex;
  flex-direction: column;
  width: 200px;
  transition: width 0.2s ease;
  border-right: 1px solid #ddd;
}

#sidepanel.collapsed {
  width: 47px;
}

#sidepanel-rail {
  display: flex;
  justify-content: flex-left;
  padding: 0.5rem 0;
  border-bottom: 1px solid #ddd;
}

#sidepanel-inner {
  flex-grow: 1;
  overflow-y: auto;
}

#sidepanel.collapsed #sidepanel-inner {
  display: none;
}

#sidepanel-toggle {
  /* margin-right: 0.25rem; */
  border-style: none;
  background-color: transparent;
  color: hwb(0 55% 45%);
}

#sidepanel .nav-link {
  color: lab(32.07% 0.83 0.29);
}

#sidepanel i {
  color: hwb(0 55% 45%);
}

/* .dash-val {
  color: hwb(116 7% 35%);
} */

[data-bs-theme="light"] .dash-val {
  color: hwb(116 0% 46%);
}

[data-bs-theme="dark"] .dash-val {
  color: hwb(116 40% 0%); /* 40% lighter for dark backgrounds */
}

/* Dark Theme */

/* Dark mode for callouts */
[data-bs-theme="dark"] .callout-established,
[data-bs-theme="dark"] .callout-proposed,
[data-bs-theme="dark"] .callout-speculative,
[data-bs-theme="dark"] .callout-caution,
[data-bs-theme="dark"] .callout-warning,
[data-bs-theme="dark"] .callout-danger {
  background: #1a1a1a;
  color: #e9ecef;
}

[data-bs-theme="dark"] .callout-established {
  background: #1a3a1a;
  border-left-color: #5cb85c;
}

[data-bs-theme="dark"] .callout-proposed {
  background: #1a2a3a;
  border-left-color: #5b8fd8;
}

[data-bs-theme="dark"] .callout-speculative {
  background: #2a1a3a;
  border-left-color: #ab5bea;
}

[data-bs-theme="dark"] .callout-caution,
[data-bs-theme="dark"] .callout-warning {
  background: #3a2a1a;
  border-left-color: #f5a22f;
}

[data-bs-theme="dark"] .callout-danger {
  background: #3a1a1a;
  border-left-color: #d83b3a;
}

/* Dark mode for side panel */
[data-bs-theme="dark"] #sidepanel {
  border-right-color: #495057;
}

[data-bs-theme="dark"] #sidepanel-rail {
  border-bottom-color: #495057;
}

[data-bs-theme="dark"] #sidepanel .nav-link {
  color: #adb5bd;
}

/* Dark mode for json-viewer */
[data-bs-theme="dark"] json-viewer {
  background: #212529;
  color: #e9ecef;
  border-color: #495057;
}

[data-bs-theme="dark"] json-viewer .property {
  color: #58a6ff;
}

[data-bs-theme="dark"] json-viewer .string {
  color: #7ee787;
}

[data-bs-theme="dark"] json-viewer .number {
  color: #ff7b72;
}

/* Dark mode for tables */
[data-bs-theme="dark"] th {
  background: #343a40;
}

[data-bs-theme="dark"] th, 
[data-bs-theme="dark"] td {
  border-color: #495057;
}