



html[data-theme="dark"] {
  --color-paper: oklch(0.16 0.008 70);
  --color-paper-2: oklch(0.20 0.010 70);
  --color-paper-3: oklch(0.24 0.012 70);
  --color-rule: oklch(0.30 0.010 70);
  --color-ink: oklch(0.94 0.005 70);
  --color-ink-2: oklch(0.84 0.006 70);
  --color-ink-3: oklch(0.70 0.008 70);
  --color-ink-4: oklch(0.56 0.010 70);
  --color-sandstone-50: oklch(0.22 0.020 35);
  --color-sandstone-100: oklch(0.28 0.045 35);
  --color-sandstone-200: oklch(0.64 0.075 35);
  --color-sandstone-400: oklch(0.74 0.11 35);
  --color-sandstone-500: oklch(0.72 0.13 35);
  --color-sandstone-600: oklch(0.80 0.12 35);
  --color-sandstone-700: oklch(0.86 0.10 35);
  --shadow-paper: 0 1px 0 oklch(0.30 0.010 70);
  --shadow-card: 0 1px 2px oklch(0 0 0 / 0.3), 0 0 0 1px oklch(0.30 0.010 70);
}
html[data-theme="light"] {
  --color-paper: oklch(0.985 0.005 75);
  --color-paper-2: oklch(0.965 0.008 75);
  --color-paper-3: oklch(0.93 0.012 75);
  --color-rule: oklch(0.88 0.008 75);
  --color-ink: oklch(0.18 0.01 70);
  --color-ink-2: oklch(0.32 0.01 70);
  --color-ink-3: oklch(0.48 0.01 70);
  --color-ink-4: oklch(0.62 0.01 70);
  --color-sandstone-50: oklch(0.96 0.012 35);
  --color-sandstone-100: oklch(0.92 0.035 35);
  --color-sandstone-200: oklch(0.84 0.06 35);
  --color-sandstone-400: oklch(0.62 0.11 35);
  --color-sandstone-500: oklch(0.52 0.13 35);
  --color-sandstone-600: oklch(0.44 0.12 35);
  --color-sandstone-700: oklch(0.36 0.10 35);
  --shadow-paper: 0 1px 0 oklch(0.88 0.008 75);
  --shadow-card: 0 1px 2px oklch(0.18 0.01 70 / 0.04), 0 0 0 1px oklch(0.88 0.008 75);
}

html[data-theme="dark"] .today-strip {
  background: oklch(0.10 0.008 70);
  color: oklch(0.94 0.005 70);
}
html[data-theme="dark"] .today-strip .num { color: oklch(0.78 0.05 35); }
html[data-theme="light"] .today-strip { background: var(--color-ink); color: var(--color-paper); }
html[data-theme="light"] .today-strip .num { color: var(--color-sandstone-200); }

html { color-scheme: light; }
html[data-theme="dark"] { color-scheme: dark; }

:root {
  --uw-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --uw-header-h: 104px;   
}

@media (max-width: 1023px) { :root { --uw-header-h: 64px; } }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--uw-header-h) + 30px); }
body.uw-noscroll { overflow: hidden; }


html, body { overflow-x: clip; }


body { overflow-anchor: none; }


.tap-44 { gap: 6px; }



body > header.border-b {
  position: sticky;
  top: 0;
  z-index: 50;                    
  background: var(--color-paper); 
  transition: box-shadow .2s var(--uw-ease);
}
body > header.border-b > div,
body > header.border-b .masthead-title {
  transition: padding .2s var(--uw-ease), font-size .2s var(--uw-ease);
}


body > header.border-b.uw-head-stuck { box-shadow: 0 6px 16px -10px oklch(0 0 0 / 0.35); }
body > header.border-b.uw-head-stuck > div { padding-top: 8px; padding-bottom: 8px; }
body > header.border-b.uw-head-stuck .masthead-title { font-size: 20px; }
body > header.border-b.uw-head-stuck .masthead-title + span { display: none; }
body > header.border-b.uw-head-stuck .nav-link { padding-top: 8px; padding-bottom: 8px; }


.uw-stick-top { top: var(--uw-header-h); }

@media (prefers-reduced-motion: reduce) {
  body > header.border-b,
  body > header.border-b > div,
  body > header.border-b .masthead-title { transition: none; }
}



.uw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  border: 1px solid transparent;
  cursor: pointer;
  background: none;
  color: inherit;
  text-decoration: none;
  transition: background .15s var(--uw-ease), color .15s var(--uw-ease), opacity .15s;
}
.uw-btn-primary { background: var(--color-ink); color: var(--color-paper); letter-spacing: 0; }
.uw-btn-primary:hover { background: var(--color-sandstone-600); }
.uw-btn-secondary { border-color: var(--color-ink); color: var(--color-ink); }
.uw-btn-secondary:hover { background: var(--color-paper-2); }
.uw-btn-ghost { color: var(--color-sandstone-500); text-decoration: underline; text-underline-offset: 4px; }
.uw-btn-block { width: 100%; }
.uw-btn[disabled] { opacity: .45; cursor: not-allowed; }


.uw-linkbtn {
  display: inline;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: left;
}


.uw-thumb {
  display: block;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.uw-thumb > img { display: block; width: 100%; height: 100%; object-fit: cover; }


.uw-card-button {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  min-height: 44px;
}



.uw-toasts {
  position: fixed;
  left: 50%;
  bottom: max(24px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 400;
  pointer-events: none;
  width: max-content;
  max-width: calc(100vw - 32px);
}
.uw-toast {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: var(--color-ink);
  color: var(--color-paper);
  font-family: var(--font-sans);
  font-size: 14px;
  box-shadow: 0 6px 24px oklch(0 0 0 / 0.22);
  cursor: pointer;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .25s var(--uw-ease), transform .25s var(--uw-ease);
}
.uw-toast.show { opacity: 1; transform: translateY(0); }
.uw-toast-ic { color: var(--color-sandstone-200); display: inline-flex; }
.uw-toast.is-error .uw-toast-ic { color: oklch(0.7 0.16 30); }



.uw-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 5vh 16px;
  overflow-y: auto;
  background: oklch(0.15 0.01 70 / 0);
  transition: background .2s var(--uw-ease);
}
.uw-overlay.open { background: oklch(0.12 0.01 70 / 0.55); }

.uw-modal {
  position: relative;
  width: 100%;
  max-width: 520px;
  margin: auto;
  background: var(--color-paper);
  border: 1px solid var(--color-rule);
  box-shadow: 0 18px 50px oklch(0 0 0 / 0.28);
  opacity: 0;
  transform: translateY(16px) scale(0.99);
  transition: opacity .2s var(--uw-ease), transform .2s var(--uw-ease);
}
.uw-overlay.open .uw-modal { opacity: 1; transform: translateY(0) scale(1); }
.uw-modal-lg { max-width: 760px; }
.uw-modal-sm { max-width: 400px; }

.uw-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--color-rule);
}
.uw-modal-title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 20px;
  line-height: 1.2;
  color: var(--color-ink);
}
.uw-modal-close {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: -8px -8px -8px 0;
  border: 0;
  background: none;
  color: var(--color-ink-3);
  cursor: pointer;
}
.uw-modal-close:hover { color: var(--color-ink); }
.uw-modal-body { padding: 20px; }
.uw-modal-foot { padding: 16px 20px; border-top: 1px solid var(--color-rule); background: var(--color-paper-2); }



.uw-form-intro {
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-rule);
  font-size: 15px;
  line-height: 1.55;
  color: var(--color-ink-2);
}
.uw-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.uw-field { display: flex; flex-direction: column; gap: 6px; grid-column: 1 / -1; }
.uw-field-half { grid-column: span 1; }
@media (max-width: 520px) { .uw-field-half { grid-column: 1 / -1; } }
.uw-field-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-ink-3);
}
.uw-req { color: var(--color-sandstone-500); }
.uw-input {
  width: 100%;
  padding: 10px 12px;
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--color-ink);
  background: var(--color-paper);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-xs);
}
.uw-input:focus-visible { outline: 2px solid var(--color-sandstone-500); outline-offset: 1px; }
select.uw-input { appearance: none; background-image: none; cursor: pointer; }
textarea.uw-input { resize: vertical; min-height: 84px; line-height: 1.5; }
.uw-input.uw-invalid { border-color: oklch(0.6 0.17 30); }
.uw-field-note { font-size: 12px; color: var(--color-ink-3); font-family: var(--font-mono); }

.uw-stepper { display: flex; align-items: stretch; }
.uw-stepper-btn {
  flex: none;
  width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-rule);
  background: var(--color-paper-2);
  color: var(--color-ink);
  cursor: pointer;
}
.uw-stepper-btn:hover { background: var(--color-paper-3); }
.uw-stepper .uw-stepper-val {
  text-align: center;
  border-left: 0;
  border-right: 0;
  border-radius: 0;
  -moz-appearance: textfield;
}
.uw-stepper .uw-stepper-val::-webkit-outer-spin-button,
.uw-stepper .uw-stepper-val::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.uw-form .uw-btn-block { margin-top: 18px; }
.uw-form-foot { margin-top: 12px; font-size: 12px; color: var(--color-ink-3); text-align: center; }


.uw-summary { width: 100%; font-size: 14px; border-collapse: collapse; }
.uw-summary td { padding: 6px 0; }
.uw-summary td:last-child { text-align: right; font-family: var(--font-mono); }
.uw-summary tr.uw-summary-total td {
  border-top: 1px solid var(--color-ink);
  padding-top: 10px;
  font-weight: 600;
  font-size: 16px;
}


.uw-success { text-align: center; padding: 14px 8px 4px; }
.uw-success-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: 14px;
  color: var(--color-paper);
  background: var(--color-sandstone-500);
  border-radius: 999px;
}
.uw-success .t-h3 { margin-bottom: 8px; }
.uw-success-text { font-size: 15px; line-height: 1.55; color: var(--color-ink-2); margin-bottom: 20px; }
.uw-success-text strong { color: var(--color-ink); }



.uw-lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  flex-direction: column;
  background: oklch(0.1 0.008 70 / 0);
  transition: background .2s var(--uw-ease);
}
.uw-lightbox.open { background: oklch(0.08 0.008 70 / 0.94); }
.uw-lb-inner {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 24px;
  min-height: 0;
}
.uw-lb-fig {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 100%;
  opacity: 0;
  transform: scale(0.97);
  transition: opacity .25s var(--uw-ease), transform .25s var(--uw-ease);
}
.uw-lightbox.open .uw-lb-fig { opacity: 1; transform: scale(1); }
.uw-lb-stage { display: flex; align-items: center; justify-content: center; }
.uw-lb-img {
  max-width: min(1100px, 86vw);
  max-height: 74vh;
  object-fit: contain;
  border: 1px solid oklch(1 0 0 / 0.12);
}
.uw-lb-placeholder {
  width: min(900px, 80vw);
  height: 60vh;
  display: grid;
  place-items: center;
  color: oklch(1 0 0 / 0.4);
  background: oklch(1 0 0 / 0.05);
}
.uw-lb-figcap {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  color: oklch(1 0 0 / 0.82);
}
.uw-lb-cap { font-size: 14px; line-height: 1.45; max-width: 70ch; }
.uw-lb-count { font-family: var(--font-mono); font-size: 12px; color: oklch(1 0 0 / 0.55); flex: none; }
.uw-lb-nav, .uw-lb-close {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid oklch(1 0 0 / 0.2);
  background: oklch(1 0 0 / 0.06);
  color: var(--color-paper);
  cursor: pointer;
  transition: background .15s;
}
.uw-lb-nav { width: 52px; height: 52px; }
.uw-lb-nav:hover, .uw-lb-close:hover { background: oklch(1 0 0 / 0.18); }
.uw-lb-close { position: absolute; top: 18px; right: 18px; width: 48px; height: 48px; z-index: 1; }
@media (max-width: 640px) {
  .uw-lb-nav { width: 42px; height: 42px; }
  .uw-lb-inner { padding: 12px; gap: 6px; }
}



.uw-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: none;
  border: 1px solid var(--color-rule);
  background: none;
  color: var(--color-ink);
  cursor: pointer;
  transition: background .15s;
}
@media (hover: hover) { .uw-theme-toggle:hover { background: var(--color-paper-2); } }



.uw-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: var(--color-sandstone-500);
  z-index: 95;
  transition: width .1s linear;
}

@supports (animation-timeline: scroll(root)) {
  .uw-progress {
    width: 100%;
    transform-origin: left center;
    transform: scaleX(0);
    transition: none;
    animation: uw-readprog linear both;
    animation-timeline: scroll(root);
  }
}
@keyframes uw-readprog { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.uw-totop {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-ink);
  background: var(--color-paper);
  color: var(--color-ink);
  cursor: pointer;
  z-index: 90;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .2s var(--uw-ease), transform .2s var(--uw-ease), background .15s;
}
.uw-totop.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
@media (hover: hover) { .uw-totop:hover { background: var(--color-ink); color: var(--color-paper); } }



.uw-search {
  position: fixed;
  inset: 0;
  z-index: 250;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8vh 16px 16px;
  background: oklch(0.12 0.01 70 / 0);
  
  visibility: hidden;
  pointer-events: none;
  transition: background .2s var(--uw-ease), visibility .2s;
}
.uw-search.open {
  visibility: visible;
  pointer-events: auto;
  background: oklch(0.12 0.01 70 / 0.58);
}
.uw-search-panel {
  width: 100%;
  max-width: 680px;
  background: var(--color-paper);
  border: 1px solid var(--color-rule);
  box-shadow: 0 18px 50px oklch(0 0 0 / 0.3);
  display: flex;
  flex-direction: column;
  max-height: 80vh;
  opacity: 0;
  transform: translateY(-14px);
  transition: opacity .2s var(--uw-ease), transform .2s var(--uw-ease);
}
.uw-search.open .uw-search-panel { opacity: 1; transform: translateY(0); }
.uw-search-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--color-rule);
}
.uw-search-bar .ic { color: var(--color-ink-3); flex: none; }
.uw-search-input {
  flex: 1;
  border: 0;
  background: none;
  outline: none;
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--color-ink);
}
.uw-search-input::placeholder { color: var(--color-ink-4); }
.uw-search-close {
  flex: none;
  border: 1px solid var(--color-rule);
  background: none;
  color: var(--color-ink-3);
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 6px 8px;
  cursor: pointer;
}
.uw-search-close:hover { color: var(--color-ink); }
.uw-search-results { overflow-y: auto; }
.uw-search-result {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-rule);
  text-decoration: none;
  color: var(--color-ink);
}
.uw-search-result:last-child { border-bottom: 0; }
@media (hover: hover) { .uw-search-result:hover { background: var(--color-paper-2); } }
.uw-search-result.is-active { background: var(--color-paper-2); }
.uw-search-result-type {
  flex: none;
  width: 84px;
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-sandstone-500);
}
.uw-search-result-title { font-family: var(--font-display); font-size: 17px; line-height: 1.3; }
.uw-search-result-meta { font-family: var(--font-mono); font-size: 11px; color: var(--color-ink-3); margin-top: 2px; }
.uw-search-empty, .uw-search-hint {
  padding: 22px 18px;
  font-size: 14px;
  color: var(--color-ink-3);
}
.uw-search-hint { display: flex; gap: 16px; flex-wrap: wrap; font-family: var(--font-mono); font-size: 12px; }
.uw-search-hint kbd {
  border: 1px solid var(--color-rule);
  padding: 1px 6px;
  font-size: 11px;
}



.sub-link, .view-toggle { cursor: pointer; }


input[type="checkbox"][data-filter] {
  appearance: none;
  -webkit-appearance: none;
  flex: none;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 1px solid var(--color-ink-3);
  border-radius: var(--radius-xs);
  background: var(--color-paper);
  cursor: pointer;
  display: inline-grid;
  place-content: center;
  transition: background .12s var(--uw-ease), border-color .12s var(--uw-ease);
}
input[type="checkbox"][data-filter]:hover { border-color: var(--color-ink); }
input[type="checkbox"][data-filter]:checked {
  background: var(--color-sandstone-500);
  border-color: var(--color-sandstone-500);
}
input[type="checkbox"][data-filter]::after {
  content: "";
  width: 4px;
  height: 8px;
  margin-top: -1px;
  border: solid var(--color-paper);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transition: transform .12s var(--uw-ease);
}
input[type="checkbox"][data-filter]:checked::after { transform: rotate(45deg) scale(1); }
.uw-chip {
  cursor: pointer;
  transition: background .12s, color .12s, border-color .12s;
}
.uw-chip.is-active {
  background: var(--color-ink) !important;
  color: var(--color-paper) !important;
  border-color: var(--color-ink) !important;
}

.uw-toggle {
  cursor: pointer;
  border-bottom: 2px solid transparent;
  padding-bottom: 2px;
  transition: color .12s, border-color .12s;
}
.uw-toggle:hover { color: var(--color-ink); }
.uw-toggle.is-active { border-bottom-color: var(--color-sandstone-500); color: var(--color-ink); }


.uw-inline-ok {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 0;
  font-family: var(--font-sans);
  font-size: 15px;
  color: inherit;
}
.uw-inline-ok .uw-toast-ic { color: currentColor; opacity: .9; }

.uw-sort-link { cursor: pointer; }
.uw-sort-link.is-active {
  color: var(--color-ink) !important;
  border-bottom: 1px solid var(--color-ink);
}
.uw-filter-link.is-active > span:first-child {
  color: var(--color-sandstone-600);
  font-weight: 600;
}
.uw-filter-link.is-active { background: var(--color-sandstone-50); }

.uw-filter-empty {
  display: none;
  padding: 40px 24px;
  text-align: center;
  border: 1px dashed var(--color-rule);
  margin: 8px 0;
}
.uw-filter-empty.show { display: block; }
.uw-filter-empty p { font-family: var(--font-display); font-size: 20px; color: var(--color-ink-2); }
.uw-filter-empty .t-meta { margin-top: 6px; }

.uw-count-pulse { animation: uw-pulse .35s var(--uw-ease); }
@keyframes uw-pulse { 0% { opacity: .35; } 100% { opacity: 1; } }

[data-filter-item], [data-filter-section] { transition: opacity .15s var(--uw-ease); }



.uw-pagination { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.uw-page {
  min-width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  font-size: 14px;
  border: 1px solid transparent;
  background: none;
  color: var(--color-ink);
  cursor: pointer;
  font-family: var(--font-sans);
}
@media (hover: hover) {
  .uw-page:hover { text-decoration: underline; }
  .uw-page.is-current:hover { text-decoration: none; }
}
.uw-page.is-current { background: var(--color-ink); color: var(--color-paper); }
.uw-page[disabled] { opacity: .35; cursor: not-allowed; }
.uw-page-step { border-color: var(--color-rule); gap: 6px; }
.uw-page-ellipsis { color: var(--color-ink-3); padding: 0 4px; }



.uw-calview { display: none; }
.uw-calview.show { display: block; }
.uw-cal-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.uw-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  background: var(--color-rule);
  border: 1px solid var(--color-rule);
}
.uw-cal-dow {
  background: var(--color-paper-2);
  padding: 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--color-ink-3);
  text-align: center;
}
.uw-cal-day {
  background: var(--color-paper);
  min-height: 96px;
  padding: 6px 7px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: left;
}
.uw-cal-day.is-dim { background: var(--color-paper-2); }
.uw-cal-day.is-today { box-shadow: inset 0 0 0 2px var(--color-sandstone-500); }
.uw-cal-daynum { font-family: var(--font-display); font-size: 16px; color: var(--color-ink-2); }
.uw-cal-day.is-today .uw-cal-daynum { color: var(--color-sandstone-500); font-weight: 600; }
.uw-cal-ev {
  font-size: 11px;
  line-height: 1.3;
  padding: 3px 5px;
  background: var(--color-sandstone-50);
  border-left: 2px solid var(--color-sandstone-500);
  color: var(--color-ink-2);
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (hover: hover) { .uw-cal-ev:hover { background: var(--color-sandstone-100); } }
.uw-cal-more { font-size: 10px; color: var(--color-ink-3); font-family: var(--font-mono); }
@media (max-width: 720px) {
  .uw-cal-day { min-height: 64px; }
  .uw-cal-ev { font-size: 10px; }
}



.uw-comment-form, .uw-reply-form {
  border: 1px solid var(--color-rule);
  background: var(--color-paper);
  padding: 16px;
  margin-bottom: 24px;
}
.uw-reply-form { margin: 12px 0 4px; }
.uw-comment-form.uw-collapsed, .uw-reply-form.uw-collapsed { display: none; }
.uw-comment-row { animation: uw-fadein .3s var(--uw-ease); }
@keyframes uw-fadein { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }



.uw-bookmarked .ic { color: var(--color-sandstone-500); }
.uw-bookmarked use { fill: currentColor; }

.uw-reveal { animation: uw-fadein .3s var(--uw-ease); }


.uw-toc a {
  display: block;
  color: var(--color-ink-3);
  border-left: 2px solid transparent;
  padding-left: 10px;
  margin-left: -12px;
  line-height: 1.4;
  transition: color 120ms ease, border-color 120ms ease, font-weight 120ms ease;
}
@media (hover: hover) { .uw-toc a:hover { color: var(--color-fg); text-decoration: underline; text-underline-offset: 3px; } }
.uw-toc a[aria-current="true"] {
  color: var(--color-fg);
  border-left-color: var(--color-accent);
  font-weight: 600;
}


@media (max-width: 400px) {
  .uw-theme-toggle { width: 40px; height: 40px; }
}


@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .uw-toast, .uw-modal, .uw-lb-fig, .uw-search-panel, .uw-totop, .uw-overlay,
  .uw-lightbox, .uw-search, .uw-comment-row, .uw-reveal { transition: none; animation: none; }
  .uw-toc a { transition: none; }
}
