/*
 * Zituo global utility interface — 2026-09-20
 * A language-neutral wayfinding system: strong hierarchy, one action colour,
 * readable controls and a search-first home page. Loaded after app.css so the
 * tool implementations keep their existing layout and behaviour.
 */

:root {
  --paper: #f7f9fc;
  --card: #ffffff;
  --ink: #101828;
  --muted: #475467;
  --line: #d5dde8;
  --soft-line: #e9edf3;
  --canvas: #f7f9fc;
  --navy: #0b1536;
  --navy-2: #14234d;
  --blue: #1d5cff;
  --mint: #1d5cff;
  --mint-dark: #1747cc;
  --cinnabar: #1d5cff;
  --cinnabar-deep: #1747cc;
  --cinnabar-tint: #edf3ff;
  --accent: #1d5cff;
  --radius: 12px;
  --radius-lg: 18px;
  --shadow: 0 16px 42px rgba(16, 24, 40, .1);
  --shell: 1200px;
  --serif: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "Noto Sans SC", "Noto Sans JP", Arial, sans-serif;
  color-scheme: light;
}

html {
  scroll-padding-top: 84px;
}

body {
  color: var(--ink);
  background: var(--canvas);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "Noto Sans SC", "Noto Sans JP", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

::selection {
  color: #fff;
  background: #1d5cff;
}

.brand-copy strong,
.home-intro-copy h1,
.section-heading h2,
.tool-card h3,
.page-hero h1,
.tool-hero h1,
.updates-hero h1,
.update-copy h2,
.explainer-grid h2,
.knowledge-grid h2,
.prose-grid h2,
.faq-block h2,
.panel-heading h2,
.date-detail h2,
.calendar-toolbar h2,
.drop-zone h2,
.video-drop-zone h2,
.audio-drop-zone h2,
.watermark-drop h2,
.results-heading h2,
.zodiac-panel-heading h2,
.utm-panel-heading h2,
.json-code-use-grid h3,
.not-found h1,
.memo-list-header strong,
.memo-toolbar strong {
  font-family: var(--serif);
  letter-spacing: -.025em;
}

a,
button,
input,
select,
textarea,
summary {
  -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(29, 92, 255, .28);
  outline-offset: 2px;
}

.skip-link {
  color: #fff;
  background: #0b1536;
  border-radius: 8px;
}

/* Header and global navigation */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  height: 72px;
  color: var(--ink);
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}

.header-inner {
  position: relative;
  height: 100%;
  gap: 24px;
}

.brand {
  gap: 10px;
  flex: 0 0 auto;
}

.brand-mark,
.brand-mark span {
  position: static;
}

.brand-seal {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #1d4ed8;
  border: 1px solid #1746c4;
  border-radius: 10px;
  box-shadow: none;
  font: 800 18px/1 var(--serif);
  transform: none;
}

.brand-copy {
  align-items: center;
  gap: 7px;
}

.brand-copy strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 750;
  letter-spacing: -.02em;
}

.brand-copy small {
  color: #667085;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .18em;
}

.main-nav {
  gap: 4px;
  margin-left: auto;
}

.main-nav a {
  padding: 9px 11px;
  color: #344054;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 650;
}

.main-nav a:hover {
  color: #1747cc;
  background: #f2f6ff;
}

.user-tools-menu,
.language-menu,
.mobile-nav-menu {
  position: relative;
}

.user-tools-menu > summary,
.language-menu > summary,
.mobile-nav-menu > summary {
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 11px;
  color: #344054;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 9px;
  list-style: none;
  font-size: 13px;
  font-weight: 700;
  user-select: none;
}

.user-tools-menu > summary::-webkit-details-marker,
.language-menu > summary::-webkit-details-marker,
.mobile-nav-menu > summary::-webkit-details-marker {
  display: none;
}

.user-tools-menu > summary:hover,
.language-menu > summary:hover,
.mobile-nav-menu > summary:hover,
.user-tools-menu[open] > summary,
.language-menu[open] > summary,
.mobile-nav-menu[open] > summary {
  color: #1747cc;
  background: #f7f9fc;
  border-color: #a8b8d0;
}

.user-tools-menu > summary svg,
.language-menu > summary svg,
.mobile-nav-menu > summary svg {
  width: 17px;
  color: #1d5cff;
}

.user-tools-menu > summary b {
  color: #fff;
  background: #1d5cff;
}

.user-tools-panel,
.language-list,
.mobile-nav-menu > nav {
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(16, 24, 40, .16);
}

.language-list {
  width: 200px;
}

.language-list a,
.mobile-nav-menu a {
  border-radius: 7px;
}

.language-list a:hover,
.language-list a[aria-current="true"],
.mobile-nav-menu a:hover {
  color: #1747cc;
  background: #edf3ff;
}

.language-list a[aria-current="true"] {
  font-weight: 750;
}

.user-tools-panel {
  border-radius: 14px;
}

.user-tools-heading p {
  color: #667085;
}

.user-tools-tabs button {
  color: #475467;
  background: #f2f4f7;
}

.user-tools-tabs button.is-active {
  color: #1747cc;
  background: #edf3ff;
  border-color: #c9d8ff;
}

.user-tools-privacy {
  color: #315d4f;
  background: #ecfdf3;
  border-color: #ccebd9;
}

.user-tools-privacy svg {
  color: #087a5b;
}

.mobile-nav-menu {
  display: none;
}

.mobile-nav-menu > nav {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(270px, calc(100vw - 28px));
  padding: 8px;
}

.mobile-nav-menu a {
  display: flex;
  min-height: 44px;
  align-items: center;
  padding: 9px 11px;
  color: #344054;
  font-size: 14px;
  font-weight: 700;
}

/* Search-first home hero */
.home-catalogue-intro {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #1d4ed8;
  border: 0;
}

.home-catalogue-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .13;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, .45) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .45) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(90deg, #000, rgba(0, 0, 0, .3) 72%, transparent);
}

.home-intro-inner {
  position: relative;
  z-index: 1;
  min-height: 430px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: center;
  gap: 70px;
  padding-block: 68px;
}

.home-intro-copy {
  min-width: 0;
}

.home-intro-copy .eyebrow {
  margin: 0 0 14px;
  color: #dbeafe;
  font-size: 12px;
  letter-spacing: .1em;
}

.home-intro-copy .eyebrow span {
  background: #93c5fd;
}

.home-intro-copy h1 {
  max-width: 820px;
  margin: 0;
  color: #fff;
  font-size: clamp(40px, 5vw, 62px);
  font-weight: 760;
  line-height: 1.08;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.home-intro-copy > p:last-of-type {
  max-width: 720px;
  margin: 18px 0 0;
  color: #dbeafe;
  font-size: 17px;
  line-height: 1.75;
}

.home-search-block {
  max-width: 720px;
  margin-top: 30px;
}

.home-tool-search {
  width: 100%;
  max-width: none;
  min-height: 62px;
  display: flex;
  align-items: center;
  background: #fff;
  border: 2px solid #fff;
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(8, 28, 86, .28);
  transition: border-color .18s, box-shadow .18s;
}

.home-tool-search:focus-within {
  border-color: #9bc2ff;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, .24), 0 20px 44px rgba(8, 28, 86, .3);
}

.home-tool-search .tool-search-icon {
  left: 20px;
  width: 22px;
  height: 22px;
  color: #344054;
}

.home-tool-search .tool-search-input {
  height: 58px;
  padding: 0 96px 0 56px;
  color: #101828;
  background: transparent;
  border: 0;
  border-radius: 12px;
  box-shadow: none;
  font-size: 17px;
  font-weight: 550;
}

.home-tool-search .tool-search-input::placeholder {
  color: #667085;
  opacity: 1;
}

.home-tool-search .tool-search-input:focus {
  border: 0;
  box-shadow: none;
}

.home-tool-search kbd {
  position: absolute;
  right: 17px;
  min-width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #475467;
  background: #f2f4f7;
  border: 1px solid #d0d5dd;
  border-radius: 7px;
  font: 700 13px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.home-tool-search:has(.tool-search-clear:not([hidden])) kbd {
  display: none;
}

.home-tool-search .tool-search-clear {
  right: 14px;
  width: 34px;
  height: 34px;
  color: #475467;
  background: #f2f4f7;
  border-radius: 8px;
}

.home-tool-search .tool-search-clear:hover {
  color: #101828;
  background: #e4e7ec;
}

.home-search-status {
  margin: 10px 4px 0;
  color: #dbeafe;
  font-size: 13px;
  font-weight: 600;
}

.home-search-status strong {
  color: #fff;
  font-size: 14px;
}

.home-intro-summary {
  width: 100%;
  display: block;
  align-self: center;
  align-items: initial;
  gap: 0;
  padding: 0;
  overflow: hidden;
  background: rgba(7, 31, 99, .42);
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 20px;
  box-shadow: 0 24px 54px rgba(7, 27, 82, .2), inset 0 1px rgba(255, 255, 255, .08);
  backdrop-filter: blur(10px);
}

.home-summary-head {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 20px;
  background: rgba(255, 255, 255, .045);
  border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.home-summary-head > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.home-intro-summary .home-summary-label {
  margin: 0;
  color: #bfdbfe;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: .08em;
}

.home-summary-head strong {
  color: #fff;
  font: 720 18px/1.3 var(--serif);
  letter-spacing: -.025em;
}

.home-intro-summary .home-summary-index-icon {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 12px;
}

.home-summary-index-icon svg {
  width: 22px;
  height: 22px;
}

.home-summary-categories {
  display: grid;
  padding: 10px 20px;
}

.home-summary-category {
  min-width: 0;
  min-height: 35px;
  display: grid;
  grid-template-columns: 7px minmax(0, auto) minmax(14px, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.home-summary-marker {
  width: 7px;
  height: 7px;
  background: #93c5fd;
  border-radius: 2px;
  box-shadow: 0 0 0 3px rgba(147, 197, 253, .12);
}

.home-summary-category.category-date .home-summary-marker { background: #fbbf24; box-shadow: 0 0 0 3px rgba(251, 191, 36, .12); }
.home-summary-category.category-image .home-summary-marker { background: #c4b5fd; box-shadow: 0 0 0 3px rgba(196, 181, 253, .12); }
.home-summary-category.category-pdf .home-summary-marker { background: #fda4af; box-shadow: 0 0 0 3px rgba(253, 164, 175, .12); }
.home-summary-category.category-text .home-summary-marker { background: #6ee7b7; box-shadow: 0 0 0 3px rgba(110, 231, 183, .12); }
.home-summary-category.category-dev .home-summary-marker { background: #7dd3fc; box-shadow: 0 0 0 3px rgba(125, 211, 252, .12); }

.home-intro-summary .home-summary-category-name {
  min-width: 0;
  overflow: hidden;
  color: #eaf2ff;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-summary-rule {
  height: 1px;
  background: rgba(255, 255, 255, .16);
}

.home-intro-summary .home-summary-marker,
.home-intro-summary .home-summary-rule {
  margin: 0;
}

.home-summary-category strong {
  min-width: 18px;
  color: #fff;
  font: 750 12px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  text-align: right;
}

.home-summary-footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 13px 20px 15px;
  background: rgba(0, 0, 0, .07);
  border-top: 1px solid rgba(255, 255, 255, .18);
}

.home-summary-footer span {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  color: #dbeafe;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.35;
}

.home-summary-footer svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  color: #fff;
}

/* Tool directory */
.tools-section {
  padding: 72px 0 96px;
  background: #f7f9fc;
}

.tools-section .section-heading {
  align-items: end;
  margin-bottom: 24px;
}

.section-heading h2,
.tools-section .section-heading h2 {
  color: var(--ink);
  font-size: clamp(30px, 3.4vw, 42px);
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: -.035em;
}

.tools-section .section-heading > p {
  max-width: 520px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}

.tool-toolbar {
  display: block;
  margin-bottom: 16px;
}

.tool-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.tool-filter {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  color: #344054;
  background: #fff;
  border: 1px solid #d0d9e6;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.tool-filter:hover {
  color: #1747cc;
  border-color: #9db3d5;
}

.tool-filter.is-active {
  color: #fff;
  background: #1d4ed8;
  border-color: #1d4ed8;
}

.tool-filter-count {
  min-width: 22px;
  height: 20px;
  padding: 0 6px;
  color: #475467;
  background: #f2f4f7;
  border-radius: 6px;
  font-size: 11px;
}

.tool-filter.is-active .tool-filter-count {
  color: #fff;
  background: rgba(255, 255, 255, .18);
}

.tool-results {
  margin: 0 0 18px;
  color: #667085;
  font-size: 13px;
  font-weight: 650;
}

.tool-results strong {
  color: #1747cc;
  font: 800 14px/1 var(--serif);
}

.tools-section .tool-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: 18px;
}

.tools-section .tool-card-shell {
  grid-column: auto !important;
  grid-row: auto !important;
}

.tools-section .tool-card {
  min-height: 245px;
  padding: 23px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #d5dde8;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .02);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.tools-section .tool-card:hover {
  transform: translateY(-2px);
  border-color: #8eabdb;
  box-shadow: 0 14px 30px rgba(16, 24, 40, .08);
}

.tools-section .tool-card::before,
.tools-section .tool-card::after {
  content: none;
}

.tools-section .tool-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 22px;
}

.tools-section .tool-icon {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #1d4ed8 !important;
  background: #edf3ff !important;
  border: 1px solid #d8e4ff;
  border-radius: 12px;
  transform: none;
}

.tools-section .tool-icon svg {
  width: 24px;
  height: 24px;
}

.tools-section .tool-card-shell[data-category="date"] .tool-icon {
  color: #9a6700 !important;
  background: #fff8e6 !important;
  border-color: #f5dfa9;
}

.tools-section .tool-card-shell[data-category="image"] .tool-icon {
  color: #6941c6 !important;
  background: #f4f0ff !important;
  border-color: #e1d7ff;
}

.tools-section .tool-card-shell[data-category="pdf"] .tool-icon {
  color: #b42318 !important;
  background: #fef3f2 !important;
  border-color: #fecdca;
}

.tools-section .tool-card-shell[data-category="text"] .tool-icon {
  color: #087a5b !important;
  background: #ecfdf3 !important;
  border-color: #ccebd9;
}

.tools-section .tool-card:hover .tool-icon {
  transform: none;
}

.tools-section .tool-badge {
  max-width: calc(100% - 64px);
  padding: 5px 8px;
  overflow: hidden;
  color: #475467;
  background: #f2f4f7;
  border: 1px solid #e4e7ec;
  border-radius: 7px;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .02em;
  line-height: 1.25;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.tools-section .tool-card h3 {
  display: block;
  margin: 0 0 9px;
  color: #101828;
  font-size: 18px;
  font-weight: 750;
  line-height: 1.4;
  letter-spacing: -.018em;
}

.tools-section .tool-card:hover h3 {
  color: #1747cc;
}

.tools-section .tool-card p {
  display: block;
  margin: 0;
  color: #475467;
  font-size: 14px;
  line-height: 1.65;
}

.tools-section .card-link {
  position: static;
  width: auto;
  height: auto;
  margin-top: auto;
  padding: 22px 44px 0 0;
  color: #1747cc;
  background: transparent;
  border-radius: 0;
  font-size: 13px;
  font-weight: 750;
}

.tools-section .card-link svg {
  width: 16px;
  height: 16px;
}

.tools-section .tool-favorite-button {
  right: 17px;
  bottom: 16px;
  width: 36px;
  height: 36px;
  color: #667085;
  background: #fff;
  border: 1px solid #e1e6ee;
  border-radius: 9px;
}

.tools-section .tool-favorite-button:hover,
.tools-section .tool-favorite-button.is-favorite {
  color: #1747cc;
  background: #edf3ff;
  border-color: #c9d8ff;
}

.tools-section .tool-favorite-button.is-favorite svg {
  fill: #d8e4ff;
}

.tool-empty {
  color: #475467;
  background: #fff;
  border-color: #b7c4d6;
  border-radius: 12px;
}

/* Product promises */
.promise-section {
  padding: 76px 0 82px;
  background: #fff;
  border-top: 1px solid var(--line);
  border-bottom: 0;
}

.promise-section .section-heading {
  padding: 0;
  margin-bottom: 30px;
}

.promise-section .section-heading h2 {
  color: var(--ink);
  font-size: clamp(28px, 3vw, 38px);
}

.promise-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  border: 0;
}

.promise-grid article,
.promise-grid article + article {
  padding: 28px;
  background: #f8fafc;
  border: 1px solid #dce3ec;
  border-radius: 14px;
}

.promise-grid .promise-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #1d4ed8;
  background: #edf3ff;
  border: 1px solid #d8e4ff;
  border-radius: 11px;
}

.promise-grid .promise-icon svg {
  width: 22px;
  height: 22px;
}

.promise-grid h3 {
  margin: 20px 0 9px;
  color: var(--ink);
  font-size: 19px;
  font-weight: 750;
}

.promise-grid p {
  color: #475467;
  font-size: 14px;
  line-height: 1.7;
}

/* Tool pages and common workspaces */
.page-hero,
.tool-hero,
.updates-hero {
  position: relative;
  overflow: visible;
  color: var(--ink);
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.page-hero::before,
.tool-hero::before,
.updates-hero::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: #1d5cff;
}

.tool-hero {
  padding: 44px 0 54px;
}

.page-hero {
  padding: 68px 0 60px;
  text-align: left;
}

.updates-hero {
  padding: 64px 0 56px;
}

.tool-hero::after,
.page-hero::after,
.updates-hero::after {
  content: none;
}

.tool-hero h1,
.page-hero h1,
.updates-hero h1 {
  max-width: 900px;
  color: var(--ink);
  font-size: clamp(36px, 4.6vw, 54px);
  font-weight: 760;
  line-height: 1.12;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.tool-hero .shell > p:last-of-type,
.page-hero p:last-child,
.updates-hero > .shell > p {
  max-width: 760px;
  color: #475467;
  font-size: 16px;
  line-height: 1.75;
}

.tool-hero .eyebrow,
.page-hero .eyebrow {
  color: #1747cc;
}

.back-link {
  margin-bottom: 34px;
  color: #475467;
  font-size: 13px;
}

.back-link:hover {
  color: #1747cc;
}

.privacy-chip {
  color: #315d4f;
  background: #ecfdf3;
  border-color: #bfe6d1;
  border-radius: 8px;
  font-size: 12px;
}

.privacy-chip svg {
  color: #087a5b;
}

.tool-page-favorite {
  color: #344054;
  background: #fff;
  border-color: #d0d9e6;
  border-radius: 9px;
}

.tool-page-favorite:hover,
.tool-page-favorite.is-favorite {
  color: #1747cc;
  background: #edf3ff;
  border-color: #9db7ef;
}

.tool-page-favorite svg {
  color: #1d5cff;
}

.tool-page-favorite.is-favorite svg {
  fill: #d8e4ff;
}

.tool-workspace {
  padding: 50px 0 76px;
  color: var(--ink);
  background: #f7f9fc;
}

.panel {
  background: #fff;
  border-color: #d5dde8;
  border-radius: 14px;
  box-shadow: 0 3px 12px rgba(16, 24, 40, .04);
}

.panel-label {
  color: #667085;
}

.panel-heading > span,
.drop-icon {
  color: #1d4ed8;
  background: #edf3ff;
}

.button {
  border-radius: 9px;
}

.button-primary {
  color: #fff;
  background: #1d4ed8;
  border-color: #1d4ed8;
  box-shadow: none;
}

.button-primary:hover {
  color: #fff;
  background: #1747cc;
  border-color: #1747cc;
  box-shadow: none;
}

.button-secondary {
  color: #344054;
  background: #fff;
  border-color: #cbd5e1;
}

.button-secondary:hover {
  color: #1747cc;
  background: #f7f9fc;
  border-color: #9db3d5;
}

.text-button {
  color: #344054;
}

.text-button:hover {
  color: #1747cc;
}

input,
select,
textarea {
  color: #101828;
  background: #fff;
  border-color: #cbd5e1;
  border-radius: 9px;
}

input::placeholder,
textarea::placeholder {
  color: #667085;
  opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #1d5cff;
  box-shadow: 0 0 0 3px rgba(29, 92, 255, .16);
}

input[type="checkbox"],
input[type="radio"],
input[type="range"] {
  accent-color: #1d5cff;
}

.icon-button {
  color: #344054;
  background: #fff;
  border-color: #cbd5e1;
}

.icon-button:hover {
  color: #1747cc;
  background: #f7f9fc;
  border-color: #9db3d5;
}

.tool-workspace label,
.tool-workspace .setting-title {
  color: #475467;
}

.tool-workspace label.button-primary,
.tool-workspace label.button-primary:hover {
  color: #fff;
}

.tool-workspace label.button-secondary {
  color: #344054;
}

.tool-workspace .text-button,
.tool-workspace a:not(.button) {
  color: #344054;
}

.tool-workspace .text-button:hover,
.tool-workspace a:not(.button):hover {
  color: #1747cc;
}

.tool-workspace .drop-zone,
.video-drop-zone,
.audio-drop-zone,
.watermark-drop {
  background: #fff;
  border-color: #aebed2;
}

.tool-workspace .drop-zone:hover,
.tool-workspace .drop-zone.dragging,
.video-drop-zone.dragging,
.audio-drop-zone.dragging,
.watermark-drop.dragging {
  background: #f2f6ff;
  border-color: #1d5cff;
}

.tool-workspace .empty-state p {
  color: #667085;
}

.calculator-grid,
.calculator-grid > *,
.calculator-panel input,
.calculator-panel select {
  min-width: 0;
}

.calculator-panel input,
.calculator-panel select {
  width: 100%;
}

.live-time,
.code-example {
  color: #fff;
  background: #0b1536;
  border-color: #0b1536;
}

.live-time .panel-label {
  color: #b9c7df;
}

.mono-live {
  color: #93c5fd;
}

.live-controls select,
.live-controls .button-secondary,
.live-controls .icon-button {
  color: #fff;
  background: #14234d;
  border-color: #40517b;
}

.video-progress-track span,
.audio-progress-track span,
.zodiac-fortune-grid article > i b {
  background: #1d5cff;
}

.tool-explainer,
.related-tools-section {
  color: var(--ink);
  background: #fff;
  border-top: 1px solid var(--line);
}

.tool-explainer .explainer-grid article,
.prose-grid article,
.knowledge-grid > article,
.knowledge-grid > section {
  background: #f8fafc;
  border-color: #dce3ec;
  border-radius: 14px;
}

.tool-explainer .explainer-grid article > span,
.prose-grid article > span,
.knowledge-grid > article > span,
.knowledge-grid > section > span {
  color: #1747cc;
}

.tool-explainer .explainer-grid h2,
.knowledge-grid h2,
.faq-block h2,
.related-tools-section h2,
.prose-grid h2 {
  color: var(--ink);
}

.tool-explainer .explainer-grid p,
.methodology-block > p,
.faq-list p,
.related-tools-section .section-heading > p,
.prose-grid p {
  color: #475467;
}

.knowledge-grid,
.faq-list,
.faq-list details {
  border-color: #d5dde8;
}

.faq-list summary {
  color: #101828;
}

.faq-list summary:hover,
.source-links a {
  color: #1747cc;
}

.related-tool-grid .tool-card {
  color: var(--ink);
  background: #fff;
  border-color: #d5dde8;
  border-radius: 14px;
}

.related-tool-grid .tool-card:hover {
  border-color: #8eabdb;
}

.related-tool-grid .tool-card h3 {
  color: #101828;
}

.related-tool-grid .tool-card:hover h3,
.related-tool-grid .tool-card:hover .card-link {
  color: #1747cc;
}

.related-tool-grid .tool-card p {
  color: #475467;
}

.related-tool-grid .tool-badge {
  color: #475467;
  background: #f2f4f7;
  border-color: #e4e7ec;
}

.related-tool-grid .card-link {
  color: #1747cc;
}

/* Updates, privacy and auxiliary pages */
.updates-total {
  color: #475467;
}

.updates-total svg,
.updates-total strong {
  color: #1d5cff;
}

.updates-section {
  background: #f7f9fc;
}

.updates-timeline::before,
.update-entry,
.update-copy {
  border-color: #d5dde8;
}

.updates-timeline::before {
  background: #d5dde8;
}

.update-version i {
  background: #344054;
  border-color: #f7f9fc;
  box-shadow: 0 0 0 1px #344054;
}

.update-entry.is-latest .update-version i {
  background: #1d5cff;
  box-shadow: 0 0 0 1px #1d5cff, 0 0 0 7px rgba(29, 92, 255, .13);
}

.update-version span,
.update-version time,
.update-copy p {
  color: #475467;
}

.update-copy h2 {
  color: #101828;
}

.update-tool-link {
  color: #344054;
  background: #fff;
  border-color: #d5dde8;
}

.update-tool-link:hover {
  color: #1747cc;
  background: #edf3ff;
  border-color: #b9cbf4;
}

.updates-tools-link {
  color: #1747cc;
}

.not-found {
  color: var(--ink);
  background: #f7f9fc;
}

.error-code {
  color: #1d5cff;
  opacity: .15;
}

/* Footer */
.site-footer {
  padding: 64px 0 24px;
  color: #d0d5dd;
  background: #0b1536;
  border-top: 0;
}

.brand-footer,
.site-footer .brand-copy strong {
  color: #fff;
}

.site-footer .brand-copy small {
  color: #9aa9c1;
}

.site-footer .brand-seal {
  color: #fff;
  background: #1d5cff;
  border-color: #316dff;
}

.footer-grid > div > p {
  color: #aebbd0;
  font-size: 13px;
  line-height: 1.7;
}

.footer-note {
  background: rgba(255, 255, 255, .045);
  border-color: rgba(255, 255, 255, .14);
  border-radius: 12px;
}

.footer-note svg {
  color: #7dd3fc;
}

.footer-links a {
  color: #d0d5dd;
}

.footer-links a:hover {
  color: #fff;
}

.footer-bottom {
  color: #8fa0ba;
  border-color: rgba(255, 255, 255, .14);
}

/* Keep secondary tool states in the same semantic colour system. */
.counter-stats strong,
.calc-result,
.exif-selected-count,
.range-field output,
.audio-trim-control output,
.radix-result-card.is-active .radix-result-main small,
.radix-result-card header i,
.radix-step-number,
.watermark-layer-item > span:first-child,
.watermark-section-head > span,
.pdf-word-file > span,
.utm-parameter-grid code,
.json-code-rule-grid span,
.utm-practice-grid span {
  color: #1747cc;
}

.calc-result,
.exif-selected-count,
.radix-result-card header i,
.radix-step-number,
.watermark-layer-item > span:first-child,
.watermark-section-head > span,
.pdf-word-file > span,
.utm-parameter-grid code {
  background: #edf3ff;
}

.radix-result-card.is-active,
.crop-shape-options input:checked + span,
.pdf-word-option input:checked + span,
.code-shot-scale input:checked + span,
.watermark-source-card.is-selected .watermark-source-select,
.watermark-layer-item.is-selected {
  border-color: #1d5cff;
  box-shadow: 0 0 0 2px rgba(29, 92, 255, .1);
}

.crop-shape-options input:checked + span,
.pdf-word-option input:checked + span,
.code-shot-scale input:checked + span,
.watermark-source-card.is-selected .watermark-source-select,
.watermark-layer-item.is-selected,
.utm-parameter-summary li.is-active {
  color: #1747cc;
  background: #edf3ff;
}

.code-shot-switch input:checked + span,
.watermark-position-grid button::after,
.utm-live-dot {
  background: #1d5cff;
}

.markdown-body a,
.markdown-export-page .markdown-body a {
  color: #1747cc;
  text-decoration-color: #9db7ef;
}

.markdown-body blockquote {
  background: #f7f9fc;
  border-left-color: #1d5cff;
}

/*
 * Readability pass for dense utility states. These labels carry meaning, so
 * they use the same dependable secondary-text colour instead of decorative
 * low-contrast grey.
 */
.calendar-toolbar p,
.calendar-week span,
.lunar-day,
.calendar-legend,
.date-detail dt,
.crop-result-empty,
.empty-state,
.source-links strong,
.memo-list-button time,
.memo-times time,
.memo-character-count,
.pdf-word-tabs button,
.pdf-word-option span,
.pdf-word-boundary p,
.utm-field i,
.utm-parameter-summary li {
  color: #475467;
}

.calendar-day.outside,
.calendar-day.outside .lunar-day {
  color: #667085;
}

.code-line-number {
  color: #9aa9c1;
}

.pdf-word-file-icons b:first-child {
  background: #bd2f43;
}

.radix-input-hint,
.radix-examples > span,
.radix-section-heading > p,
.radix-result-card header button,
.radix-result-main small,
.radix-process-header > div:first-child > p:last-child,
.radix-process-tabs button:not(.is-active),
.radix-route,
.radix-route i,
.radix-process-note {
  color: #475467;
}

.pomodoro-time-copy > span,
.pomodoro-time-copy small,
.pomodoro-cycle-note,
.pomodoro-cycle span:not(.is-current),
.pomodoro-duration-fields small,
.pomodoro-setting-title small,
.pomodoro-noise-options label,
.pomodoro-stats small,
.pomodoro-stats > p:last-child {
  color: #475467;
}

.utm-parameter-summary output,
.utm-parameter-summary span {
  color: inherit;
}

.tool-workspace .range-note,
.tool-workspace .cultural-note,
.tool-workspace .radix-input-hint,
.tool-workspace .radix-section-heading > p,
.tool-workspace .radix-process-header > div:first-child > p:last-child,
.zodiac-lucky-row > span,
.pomodoro-settings-head > span {
  color: #475467;
}

.tool-workspace .cultural-note {
  font-size: var(--tool-copy-size);
  line-height: 1.65;
}

@media (max-width: 1080px) {
  .home-intro-inner {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 44px;
  }

  .tools-section .tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 840px) {
  .site-header {
    height: 64px;
  }

  .header-inner {
    width: calc(100% - 28px);
    gap: 8px;
  }

  .main-nav {
    display: none;
  }

  .mobile-nav-menu {
    display: block;
  }

  .user-tools-menu {
    margin-left: auto;
  }

  .user-tools-menu > summary,
  .language-menu > summary,
  .mobile-nav-menu > summary {
    width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0;
  }

  .user-tools-menu > summary > span,
  .language-menu > summary > span {
    display: none;
  }

  .home-intro-inner {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 32px;
    padding-block: 56px;
  }

  .home-intro-summary {
    align-self: stretch;
  }

  .home-summary-categories {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
  }

  .related-tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calculator-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  :root {
    --tool-control-size: 16px;
    --tool-copy-size: 14px;
    --tool-meta-size: 13px;
  }

  .shell,
  .shell.narrow {
    width: calc(100% - 28px);
  }

  .brand-copy small {
    display: none;
  }

  .home-catalogue-intro::before {
    background-size: 36px 36px;
  }

  .home-intro-inner {
    padding-block: 42px 38px;
  }

  .home-intro-copy h1 {
    font-size: clamp(35px, 10vw, 44px);
    line-height: 1.12;
  }

  .home-intro-copy > p:last-of-type {
    margin-top: 14px;
    font-size: 15px;
    line-height: 1.7;
  }

  .home-search-block {
    margin-top: 24px;
  }

  .home-tool-search {
    min-height: 56px;
    border-radius: 12px;
  }

  .home-tool-search .tool-search-input {
    height: 52px;
    padding-left: 50px;
    font-size: 16px;
  }

  .home-tool-search .tool-search-icon {
    left: 17px;
    width: 20px;
    height: 20px;
  }

  .home-intro-summary {
    border-radius: 16px;
  }

  .home-summary-head {
    min-height: 66px;
    padding: 14px 16px;
  }

  .home-summary-index-icon {
    width: 38px;
    height: 38px;
  }

  .home-summary-categories {
    gap: 0 18px;
    padding: 10px 16px;
  }

  .home-summary-category {
    grid-template-columns: 7px minmax(0, auto) minmax(8px, 1fr) auto;
    gap: 7px;
  }

  .home-summary-footer {
    padding-inline: 16px;
  }

  .tools-section {
    padding: 52px 0 70px;
  }

  .tools-section .section-heading {
    display: block;
    margin-bottom: 20px;
  }

  .tools-section .section-heading h2 {
    font-size: 31px;
  }

  .tools-section .section-heading > p {
    margin-top: 10px;
    font-size: 14px;
  }

  .tool-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    padding: 0;
    overflow: visible;
  }

  .tool-filter {
    min-width: 0;
    min-height: 44px;
    justify-content: space-between;
    white-space: normal;
  }

  .tools-section .tool-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .tools-section .tool-card {
    min-height: 225px;
    padding: 20px;
  }

  .promise-section {
    padding: 56px 0 62px;
  }

  .promise-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .promise-grid article,
  .promise-grid article + article {
    padding: 22px;
  }

  .tool-hero,
  .page-hero,
  .updates-hero {
    padding: 38px 0 44px;
  }

  .tool-hero h1,
  .page-hero h1,
  .updates-hero h1 {
    font-size: 34px;
  }

  .tool-page-favorite {
    position: static;
    width: max-content;
    margin: 14px 0 0;
  }

  .tool-workspace {
    padding: 32px 0 56px;
  }

  .related-tool-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 7px;
  }
}

@media (max-width: 480px) {
  .home-summary-categories {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 380px) {
  .brand-copy strong {
    font-size: 16px;
  }

  .brand-seal {
    width: 34px;
    height: 34px;
  }

  .header-inner {
    gap: 6px;
  }

  .user-tools-menu > summary,
  .language-menu > summary,
  .mobile-nav-menu > summary {
    width: 38px;
    height: 38px;
  }

  .home-summary-footer {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .tool-filters {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tools-section .tool-card,
  .card-link svg,
  .button,
  .home-tool-search {
    transition: none;
  }

  .tools-section .tool-card:hover,
  .button:hover {
    transform: none;
  }
}
