/* ============================================================================
   The Thinking Cup — Obsidian Publish Theme
   ----------------------------------------------------------------------------
   Brand: navy + gold, Georgia body, Calibri labels.
   Lives at vault root and must be ticked in the Publish dialog.
   ============================================================================ */

.published-container {
  --tc-navy:        #0F1F2F;
  --tc-navy-light:  #1A2D40;
  --tc-navy-deep:   #0A1822;
  --tc-gold:        #C9A45F;
  --tc-gold-soft:   #B5904D;
  --tc-crimson:     #5B0505;
  --tc-offwhite:    #FCFCFC;
  --tc-cream:       #D4CFC4;
  --tc-gray:        #8C8C8C;

  --background-primary:         var(--tc-navy);
  --background-primary-alt:     var(--tc-navy-light);
  --background-secondary:       var(--tc-navy-deep);
  --background-secondary-alt:   var(--tc-navy);
  --background-modifier-border: rgba(201, 164, 95, 0.15);
  --background-modifier-hover:  rgba(201, 164, 95, 0.08);

  --text-normal:        var(--tc-offwhite);
  --text-muted:         var(--tc-cream);
  --text-faint:         var(--tc-gray);
  --text-accent:        var(--tc-gold);
  --text-accent-hover:  var(--tc-gold-soft);
  --text-on-accent:     var(--tc-navy);
  --text-selection:     rgba(201, 164, 95, 0.30);

  --interactive-accent:        var(--tc-gold);
  --interactive-accent-hover:  var(--tc-gold-soft);

  --site-name-color:            var(--tc-gold);
  --site-name-color-hover:      var(--tc-offwhite);
  --site-menu-icon-color:       var(--tc-gold);
  --site-menu-icon-color-hover: var(--tc-offwhite);

  --page-title-color:  var(--tc-offwhite);
  --page-title-size:   2.4em;
  --page-title-weight: 700;

  /* Layout — wider body column, trimmed sidebars flush to screen edges */
  --page-width:                 1200px;
  --page-padding:               32px;
  --sidebar-left-width:         200px;
  --sidebar-right-width:        180px;
  --sidebar-left-border-width:  1px;
  --sidebar-right-border-width: 1px;
  --sidebar-left-border-color:  rgba(201, 164, 95, 0.15);
  --sidebar-right-border-color: rgba(201, 164, 95, 0.15);
  --sidebar-left-background:    var(--tc-navy-deep);
  --sidebar-right-background:   var(--tc-navy-deep);
}

/* Push the outer site body flush to the screen edges so the sidebars
   touch left/right without gutter. */
.site-body,
.published-container .site-body,
.published-container > .site-body-container {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Responsive: on narrower desktops, shrink page-width so body and sidebars
   don't crowd each other. */
@media (max-width: 1280px) {
  .published-container {
    --page-width: 1020px;
    --sidebar-left-width: 180px;
    --sidebar-right-width: 160px;
  }
}

@media (max-width: 1100px) {
  .published-container {
    --page-width: 860px;
    --sidebar-left-width: 180px;
    --sidebar-right-width: 160px;
  }
}

body,
.published-container {
  background-color: var(--tc-navy);
  color: var(--tc-offwhite);
  font-family: Georgia, "Times New Roman", Times, serif;
}

.markdown-preview-view,
.markdown-rendered {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 17px;
  line-height: 1.7;
  color: var(--tc-offwhite);
}

@media (max-width: 768px) {
  .markdown-preview-view,
  .markdown-rendered {
    font-size: 16px;
    line-height: 1.65;
  }
}

.markdown-preview-view h1,
.markdown-rendered h1 {
  font-family: Georgia, serif;
  font-size: 2.4em;
  font-weight: 700;
  color: var(--tc-offwhite);
  border-bottom: 2px solid var(--tc-gold);
  padding-bottom: 0.4em;
  margin-top: 1.2em;
  margin-bottom: 0.8em;
  letter-spacing: -0.01em;
}

.markdown-preview-view h2,
.markdown-rendered h2 {
  font-family: Georgia, serif;
  font-size: 1.7em;
  font-weight: 600;
  color: var(--tc-gold);
  margin-top: 2em;
  margin-bottom: 0.6em;
  border: none;
}

.markdown-preview-view h3,
.markdown-rendered h3 {
  font-family: Georgia, serif;
  font-size: 1.35em;
  font-weight: 600;
  color: var(--tc-cream);
  margin-top: 1.6em;
  margin-bottom: 0.4em;
}

.markdown-preview-view h4,
.markdown-rendered h4 {
  font-family: Calibri, "Segoe UI", sans-serif;
  font-size: 1.1em;
  font-weight: 600;
  color: var(--tc-gold-soft);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 1.4em;
}

.markdown-preview-view blockquote,
.markdown-rendered blockquote {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: 1.05em;
  line-height: 1.65;
  color: var(--tc-cream);
  background-color: var(--tc-navy-light);
  border-left: 4px solid var(--tc-gold);
  padding: 1em 1.4em;
  margin: 1.4em 0;
  border-radius: 0 4px 4px 0;
}

.markdown-preview-view blockquote p,
.markdown-rendered blockquote p {
  margin: 0.4em 0;
}

.markdown-preview-view a,
.markdown-rendered a {
  color: var(--tc-gold);
  text-decoration: none;
  border-bottom: 1px dotted rgba(201, 164, 95, 0.4);
  transition: color 0.15s ease, border-color 0.15s ease;
}

.markdown-preview-view a:hover,
.markdown-rendered a:hover {
  color: var(--tc-offwhite);
  border-bottom-color: var(--tc-offwhite);
}

.markdown-preview-view strong,
.markdown-rendered strong {
  color: var(--tc-offwhite);
  font-weight: 700;
}

.markdown-preview-view em,
.markdown-rendered em {
  color: var(--tc-cream);
  font-style: italic;
}

.markdown-preview-view table,
.markdown-rendered table {
  border-collapse: collapse;
  width: 100%;
  margin: 1.4em 0;
  font-family: Georgia, serif;
  font-size: 0.96em;
  background-color: var(--tc-navy-light);
  border-radius: 4px;
  overflow: hidden;
}

.markdown-preview-view thead th,
.markdown-rendered thead th {
  background-color: var(--tc-navy-deep);
  color: var(--tc-gold);
  font-family: Calibri, "Segoe UI", sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.88em;
  padding: 0.8em 1em;
  border-bottom: 2px solid var(--tc-gold);
  text-align: left;
}

.markdown-preview-view tbody td,
.markdown-rendered tbody td {
  padding: 0.7em 1em;
  border-bottom: 1px solid rgba(201, 164, 95, 0.10);
  color: var(--tc-offwhite);
  vertical-align: top;
}

.markdown-preview-view tbody tr:last-child td,
.markdown-rendered tbody tr:last-child td {
  border-bottom: none;
}

.markdown-preview-view hr,
.markdown-rendered hr {
  border: none;
  height: 1px;
  background: linear-gradient(to right, transparent 0%, var(--tc-gold) 20%, var(--tc-gold) 80%, transparent 100%);
  margin: 2.4em 0;
}

.markdown-preview-view code,
.markdown-rendered code {
  font-family: "SF Mono", Menlo, Consolas, Monaco, "Courier New", monospace;
  font-size: 0.92em;
  background-color: var(--tc-navy-deep);
  color: var(--tc-cream);
  padding: 0.15em 0.4em;
  border-radius: 3px;
  border: 1px solid rgba(201, 164, 95, 0.15);
}

.markdown-preview-view pre,
.markdown-rendered pre {
  background-color: var(--tc-navy-deep);
  border: 1px solid rgba(201, 164, 95, 0.20);
  border-radius: 4px;
  padding: 1em;
  overflow-x: auto;
}

.markdown-preview-view pre code,
.markdown-rendered pre code {
  background: none;
  border: none;
  padding: 0;
}

.markdown-preview-view img,
.markdown-rendered img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
  border: 1px solid rgba(201, 164, 95, 0.20);
  margin: 0.6em 0;
}

.markdown-preview-view iframe,
.markdown-rendered iframe {
  width: 100%;
  max-width: 720px;
  aspect-ratio: 16 / 9;
  border-radius: 6px;
  border: 1px solid var(--tc-gold);
  margin: 1em 0;
}

.markdown-preview-view ul li::marker,
.markdown-rendered ul li::marker {
  color: var(--tc-gold);
}

.markdown-preview-view ol li::marker,
.markdown-rendered ol li::marker {
  color: var(--tc-gold);
  font-family: Calibri, sans-serif;
  font-weight: 600;
}

.site-body-left-column {
  background-color: var(--tc-navy-deep);
  border-right: 1px solid rgba(201, 164, 95, 0.15);
}

.nav-folder-title,
.nav-file-title {
  color: var(--tc-cream);
  font-family: Calibri, "Segoe UI", sans-serif;
  font-size: 0.95em;
  border-radius: 4px;
}

.nav-folder-title:hover,
.nav-file-title:hover {
  background-color: rgba(201, 164, 95, 0.08);
  color: var(--tc-offwhite);
}

.nav-file-title.is-active {
  background-color: rgba(201, 164, 95, 0.12);
  color: var(--tc-gold);
  font-weight: 600;
}

.nav-folder-title-content {
  font-weight: 600;
  color: var(--tc-gold);
}

.site-body-right-column,
.site-body-outline {
  background-color: var(--tc-navy-deep);
  border-left: 1px solid rgba(201, 164, 95, 0.15);
  font-family: Calibri, sans-serif;
}

.site-body-outline a {
  color: var(--tc-cream);
  text-decoration: none;
  border-bottom: none;
  font-size: 0.92em;
  line-height: 1.5;
}

.site-body-outline a:hover,
.site-body-outline a.is-active {
  color: var(--tc-gold);
}

.callout {
  background-color: var(--tc-navy-light);
  border-left: 4px solid var(--tc-gold);
  border-radius: 0 4px 4px 0;
  padding: 1em 1.2em;
  margin: 1.2em 0;
  font-family: Georgia, serif;
}

.callout[data-callout="warning"],
.callout[data-callout="danger"],
.callout[data-callout="error"] {
  border-left-color: var(--tc-crimson);
}

.callout-title {
  font-family: Calibri, sans-serif;
  font-weight: 700;
  color: var(--tc-gold);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.92em;
  margin-bottom: 0.4em;
}

.published-container input[type="search"],
.published-container input[type="text"] {
  background-color: var(--tc-navy-deep);
  border: 1px solid rgba(201, 164, 95, 0.25);
  color: var(--tc-offwhite);
  border-radius: 4px;
  padding: 0.5em 0.8em;
  font-family: Calibri, sans-serif;
}

.published-container input[type="search"]:focus,
.published-container input[type="text"]:focus {
  border-color: var(--tc-gold);
  outline: none;
  box-shadow: 0 0 0 2px rgba(201, 164, 95, 0.20);
}

@media print {
  body, .published-container {
    background-color: white;
    color: black;
  }
  .markdown-preview-view, .markdown-rendered {
    color: black;
    font-size: 11pt;
  }
  blockquote {
    background-color: #f5f5f5;
    border-left-color: #C9A45F;
    color: #333;
  }
  .site-body-left-column, .site-body-right-column {
    display: none;
  }
}


/* ============================================================================
   The Thinking Cup — Publish theme STAGED ADDITIONS
   ----------------------------------------------------------------------------
   This file is NOT loaded by Obsidian Publish. It is a staging area for new
   rules that will eventually be appended to publish.css when proven.

   Test workflow:
     1) Backup publish.css:
        Copy-Item publish.css "publish.css.bak.YYYY-MM-DD"
     2) Copy this file's contents into .obsidian/snippets/publish-test.css
        and enable under Settings -> Appearance -> CSS snippets.
     3) Open "Publish Test.md" in READING MODE (Ctrl+E) and verify each
        addition renders as expected.
     4) When satisfied, append the verified rules to publish.css and remove
        them from this file. Push to Publish in the Publish modal.
     5) Verify the live site in incognito + on mobile after each push.

   Currently staged: Sidenote callout 01 (sailKite, via r-u-s-h-i-k-e-s-h
   collection). Adapted for The Thinking Cup palette and Publish DOM.
   Implementation note: uses float (not absolute positioning) so it works
   without depending on Obsidian's per-block wrapper DOM, which differs
   subtly between the desktop app and Publish.
   ============================================================================ */


/* Theme-variable fallbacks for app-snippet usage.
   When this CSS is loaded inside Obsidian's desktop app as a snippet, the
   --tc-* variables defined inside .published-container in publish.css are
   not available. The fallbacks below are used in that case. When this CSS
   is appended to publish.css, the .published-container definitions take
   precedence via cascade specificity, so these fallbacks become inert. */
:root {
  --tc-gold-soft-fallback:  #B5904D;
  --tc-cream-fallback:      #D4CFC4;
  --tc-navy-light-fallback: #1A2D40;
}


/* ============================================================================
   Sidenote callouts — margin notes for academic / scholarly publishing
   ----------------------------------------------------------------------------
   Usage in markdown:
       > [!note|aside-r]
       > A right-margin sidenote.

       > [!quote|aside-l]
       > A left-margin sidenote.

   Any callout type works — note, quote, info, warning, etc. The metadata
   "aside-r" or "aside-l" is what triggers the float behavior.

   Below 1280px viewport, sidenotes collapse to inline regular callouts so
   they don't overflow the sidebar or fall off-screen on mobile.
   ============================================================================ */

/* Wide-viewport: float sidenote to the side, body text wraps around */
@media (min-width: 1281px) {

  .callout[data-callout-metadata*="aside-r"] {
    float: right;
    clear: right;
    width: 200px;
    margin: 0.3em 0 0.6em 1.5rem;
    padding: 0.6em 0.9em;

    background-color: transparent;
    border: none;
    border-left: 2px solid var(--tc-gold-soft, var(--tc-gold-soft-fallback));
    border-radius: 0;

    font-family: Georgia, "Times New Roman", Times, serif;
    font-style: italic;
    font-size: 0.85em;
    line-height: 1.45;
    color: var(--tc-cream, var(--tc-cream-fallback));
  }

  .callout[data-callout-metadata*="aside-l"] {
    float: left;
    clear: left;
    width: 200px;
    margin: 0.3em 1.5rem 0.6em 0;
    padding: 0.6em 0.9em;

    background-color: transparent;
    border: none;
    border-left: 2px solid var(--tc-gold-soft, var(--tc-gold-soft-fallback));
    border-radius: 0;

    font-family: Georgia, "Times New Roman", Times, serif;
    font-style: italic;
    font-size: 0.85em;
    line-height: 1.45;
    color: var(--tc-cream, var(--tc-cream-fallback));
  }

  /* Sidenote title — small, uppercase, set off from the body */
  .callout[data-callout-metadata*="aside"] .callout-title {
    font-family: Calibri, "Segoe UI", sans-serif;
    font-style: normal;
    font-size: 0.78em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tc-gold-soft, var(--tc-gold-soft-fallback));
    margin-bottom: 0.4em;
    padding-bottom: 0.3em;
    border-bottom: 1px solid rgba(201, 164, 95, 0.20);
    cursor: default;
  }

  /* Hide the callout icon and the fold arrow — sidenotes should look like
     print marginalia, not interactive boxed callouts */
  .callout[data-callout-metadata*="aside"] .callout-icon,
  .callout[data-callout-metadata*="aside"] .callout-fold {
    display: none;
  }
}


/* Narrow-viewport: collapse to inline styled callout */
@media (max-width: 1280px) {

  .callout[data-callout-metadata*="aside"] {
    background-color: var(--tc-navy-light, var(--tc-navy-light-fallback));
    border: none;
    border-left: 3px solid var(--tc-gold-soft, var(--tc-gold-soft-fallback));
    border-radius: 0 4px 4px 0;
    padding: 0.9em 1.1em;
    margin: 1em 0;

    font-family: Georgia, "Times New Roman", Times, serif;
    font-style: italic;
    font-size: 0.95em;
    line-height: 1.55;
    color: var(--tc-cream, var(--tc-cream-fallback));
  }

  .callout[data-callout-metadata*="aside"] .callout-title {
    font-family: Calibri, "Segoe UI", sans-serif;
    font-style: normal;
    font-size: 0.85em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--tc-gold-soft, var(--tc-gold-soft-fallback));
    margin-bottom: 0.3em;
    cursor: default;
  }

  .callout[data-callout-metadata*="aside"] .callout-icon,
  .callout[data-callout-metadata*="aside"] .callout-fold {
    display: none;
  }
}


/* ============================================================================
   The Atlas (Master Tile Dashboard) — appended 2026-05-07
   ----------------------------------------------------------------------------
   Mirror of .obsidian/snippets/tile-dashboard.css. Active on any note that
   has `cssclasses: [tile-dashboard]` in frontmatter (currently:
   'The Atlas.md' at vault root).
   ============================================================================ */

.tile-dashboard {
  --td-navy:        var(--tc-navy,        #0F1F2F);
  --td-navy-light:  var(--tc-navy-light,  #1A2D40);
  --td-navy-deep:   var(--tc-navy-deep,   #0A1822);
  --td-gold:        var(--tc-gold,        #C9A45F);
  --td-gold-soft:   var(--tc-gold-soft,   #B5904D);
  --td-crimson:     var(--tc-crimson,     #5B0505);
  --td-offwhite:    var(--tc-offwhite,    #FCFCFC);
  --td-cream:       var(--tc-cream,       #D4CFC4);
  --td-gray:        var(--tc-gray,        #8C8C8C);
  --td-radius:      8px;
  --td-shadow:      0 3px 10px rgba(0,0,0,0.32);
  --td-shadow-hi:   0 6px 18px rgba(201,164,95,0.22);
}

/* Compress page padding so the grid feels page-spanning */
.tile-dashboard.markdown-preview-view,
.tile-dashboard .markdown-preview-sizer,
.tile-dashboard .markdown-rendered { max-width: none; }

/* Banner header — slim */
.tile-dashboard .td-banner {
  background: linear-gradient(135deg, var(--td-navy-deep) 0%, var(--td-navy) 60%, var(--td-navy-light) 100%);
  border: 1px solid rgba(201,164,95,0.25);
  border-radius: var(--td-radius);
  padding: 14px 20px;
  margin: 8px 0 14px 0;
  box-shadow: var(--td-shadow);
}
.tile-dashboard .td-banner h1 {
  color: var(--td-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5em;
  margin: 0 0 2px 0;
  letter-spacing: 0.4px;
  border-bottom: none;
}
.tile-dashboard .td-banner p {
  color: var(--td-cream);
  margin: 0;
  font-size: 0.86em;
  line-height: 1.4;
}

/* Compact section divider (single inline label + gold rule) */
.tile-dashboard .td-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0 8px 0;
}
.tile-dashboard .td-divider .td-label {
  font-family: Calibri, "Segoe UI", sans-serif;
  font-size: 0.72em;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: var(--td-gold);
  font-weight: 700;
  white-space: nowrap;
}
.tile-dashboard .td-divider .td-rule {
  flex: 1;
  height: 1px;
  background: rgba(201,164,95,0.35);
}

/* Group label that sits above a small grid of book tiles, single-line */
.tile-dashboard .td-group {
  display: block;
  font-family: Calibri, sans-serif;
  font-size: 0.66em;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--td-gold-soft);
  font-weight: 700;
  margin: 6px 2px 4px 2px;
}

/* Tile grids — tight, dense, page-spanning */
.tile-dashboard .td-grid {
  display: grid !important;
  gap: 8px;
  grid-auto-flow: dense;
  margin: 0 0 6px 0;
}
.tile-dashboard .td-grid.cols-hubs   { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.tile-dashboard .td-grid.cols-books  { grid-template-columns: repeat(auto-fill, minmax(108px, 1fr)); }
.tile-dashboard .td-grid.cols-motifs { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }

/* SAFETY NET: if Obsidian's markdown processor wraps tiles in <p> or
   inserts stray <br> between them, make those wrappers transparent so
   the grid still flows correctly. */
.tile-dashboard .td-grid > p { display: contents; }
.tile-dashboard .td-grid > br { display: none; }

/* Base tile — compact */
.tile-dashboard .td-tile {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--td-navy);
  border: 1px solid rgba(201,164,95,0.18);
  border-radius: var(--td-radius);
  padding: 8px 10px;
  min-height: 64px;
  box-shadow: var(--td-shadow);
  transition: transform 140ms ease, box-shadow 180ms ease, border-color 140ms ease, background 140ms ease;
  position: relative;
  overflow: hidden;
}
.tile-dashboard .td-tile::before {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 3px; height: 100%;
  background: var(--td-gold);
  opacity: 0.55;
  transition: opacity 200ms ease, width 200ms ease;
}
.tile-dashboard .td-tile:hover {
  transform: translateY(-2px);
  box-shadow: var(--td-shadow-hi);
  border-color: var(--td-gold);
  background: var(--td-navy-light);
}
.tile-dashboard .td-tile:hover::before { opacity: 1; width: 4px; }

/* Tile internals */
.tile-dashboard .td-tile .td-icon {
  font-size: 1.05em;
  line-height: 1;
  margin-bottom: 3px;
  color: var(--td-gold);
}
.tile-dashboard .td-tile .td-title {
  color: var(--td-offwhite);
  font-family: Georgia, serif;
  font-size: 0.92em;
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 2px 0;
}
.tile-dashboard .td-tile .td-sub {
  color: var(--td-cream);
  font-family: Calibri, "Segoe UI", sans-serif;
  font-size: 0.7em;
  line-height: 1.25;
  letter-spacing: 0.2px;
  margin: 0;
  /* Clamp to two lines so motif tiles don't blow up height */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Tile contains a wikilink: shrink it to a tiny gold "open →" hint */
.tile-dashboard .td-tile p:has(> a),
.tile-dashboard .td-tile p:has(> .internal-link) {
  margin: 4px 0 0 0;
  font-size: 0.66em;
  letter-spacing: 0.5px;
}
.tile-dashboard .td-tile a,
.tile-dashboard .td-tile a:visited,
.tile-dashboard .td-tile .internal-link {
  color: var(--td-gold) !important;
  text-decoration: none !important;
}
.tile-dashboard .td-tile a:hover,
.tile-dashboard .td-tile .internal-link:hover {
  color: var(--td-gold-soft) !important;
  text-decoration: underline !important;
}

/* Variants ---------------------------------------------------------------- */

/* HUB tile — slightly larger */
.tile-dashboard .td-tile.is-hub {
  min-height: 86px;
  padding: 11px 12px;
  background: linear-gradient(150deg, var(--td-navy) 0%, var(--td-navy-light) 100%);
}
.tile-dashboard .td-tile.is-hub .td-title { font-size: 0.98em; }

/* BOOK tile — minimal, gold meta line */
.tile-dashboard .td-tile.is-book { min-height: 56px; padding: 7px 9px; }
.tile-dashboard .td-tile.is-book .td-title { font-size: 0.86em; margin-bottom: 0; }
.tile-dashboard .td-tile.is-book .td-meta {
  font-family: Calibri, sans-serif;
  font-size: 0.6em;
  color: var(--td-gold);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 2px;
  font-weight: 700;
}

.tile-dashboard .td-tile.is-book.has-content { background: var(--td-navy); }
.tile-dashboard .td-tile.is-book.has-content::before { opacity: 0.85; }

/* Empty book — faded, dashed */
.tile-dashboard .td-tile.is-book.empty {
  background: var(--td-navy-deep);
  border-style: dashed;
  border-color: rgba(201,164,95,0.18);
  opacity: 0.72;
}
.tile-dashboard .td-tile.is-book.empty::before { background: var(--td-gold-soft); opacity: 0.30; }
.tile-dashboard .td-tile.is-book.empty .td-title { color: var(--td-cream); }
.tile-dashboard .td-tile.is-book.empty .td-meta  { color: var(--td-gold-soft); opacity: 0.7; }
.tile-dashboard .td-tile.is-book.empty:hover { opacity: 1; border-style: solid; }

/* MOTIF tile */
.tile-dashboard .td-tile.is-motif {
  background: linear-gradient(140deg, var(--td-navy-deep) 0%, var(--td-navy) 100%);
  min-height: 72px;
  padding: 9px 11px;
}
.tile-dashboard .td-tile.is-motif .td-icon { font-size: 1.15em; }

/* Quick-link strip */
.tile-dashboard .td-quicklinks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px 12px;
  margin: 14px 0 8px 0;
  background: var(--td-navy-deep);
  border: 1px solid rgba(201,164,95,0.20);
  border-radius: var(--td-radius);
}
.tile-dashboard .td-quicklinks a,
.tile-dashboard .td-quicklinks a:visited {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid var(--td-gold);
  border-radius: 999px;
  color: var(--td-gold) !important;
  font-family: Calibri, sans-serif;
  font-size: 0.78em;
  letter-spacing: 0.4px;
  text-decoration: none !important;
  transition: all 150ms ease;
}
.tile-dashboard .td-quicklinks a:hover {
  background: var(--td-gold);
  color: var(--td-navy-deep) !important;
}

/* Hide the auto-rendered H1/H2 heading anchors inside this dashboard
   — we use custom .td-divider and .td-banner instead. Heading tags from
   markdown body content elsewhere are unaffected. */
.tile-dashboard h2 {
  font-family: Georgia, serif;
  color: var(--td-offwhite);
  font-size: 1.15em;
  margin: 14px 0 6px 0;
  border-bottom: 1px solid rgba(201,164,95,0.25);
  padding-bottom: 4px;
}

/* Mobile — smaller minimums, gold rule shorter */
@media (max-width: 600px) {
  .tile-dashboard .td-banner h1 { font-size: 1.25em; }
  .tile-dashboard .td-grid.cols-books  { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
  .tile-dashboard .td-grid.cols-motifs { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
  .tile-dashboard .td-grid.cols-hubs   { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}
