:root {
  --suite-ink: #17374a;
  --suite-ink-soft: #4d6674;
  --suite-muted: #718087;
  --suite-paper: #fffdf9;
  --suite-canvas: #f6f3ec;
  --suite-line: rgba(23, 55, 74, 0.13);
  --suite-green: #238467;
  --suite-green-soft: #e3f4ec;
  --suite-shadow: 0 18px 48px rgba(23, 55, 74, 0.1);
  --suite-shadow-soft: 0 10px 28px rgba(23, 55, 74, 0.07);
}

body.tool-app {
  --suite-accent: #3e74d9;
  --suite-accent-dark: #2d5eb5;
  --suite-accent-soft: #e8efff;
  --ink: var(--suite-ink);
  --ink-soft: var(--suite-ink-soft);
  --muted: var(--suite-muted);
  --line: var(--suite-line);
  --paper: var(--suite-paper);
  --panel: var(--suite-paper);
  --soft: #f3f5f4;
  --shadow: var(--suite-shadow);
  min-width: 320px;
  color: var(--suite-ink);
  background:
    radial-gradient(circle at 6% 0%, color-mix(in srgb, var(--suite-accent) 11%, transparent), transparent 27rem),
    radial-gradient(circle at 96% 12%, rgba(35, 132, 103, 0.08), transparent 30rem),
    var(--suite-canvas);
  font-family: Inter, "Segoe UI", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

body.tool-app--stamp {
  --suite-accent: #d85b36;
  --suite-accent-dark: #ad3f20;
  --suite-accent-soft: #fde7de;
  --accent: var(--suite-accent);
  --accent-dark: var(--suite-accent-dark);
}

body.tool-app--matcher {
  --suite-accent: #3e74d9;
  --suite-accent-dark: #2d5eb5;
  --suite-accent-soft: #e4ecff;
  --navy: var(--suite-accent);
  --navy-2: var(--suite-accent-dark);
  --blue-soft: var(--suite-accent-soft);
  --green: var(--suite-green);
  --green-soft: var(--suite-green-soft);
}

body.tool-app--organizer {
  --suite-accent: #238467;
  --suite-accent-dark: #17664f;
  --suite-accent-soft: #dff3e9;
  --coral: var(--suite-accent);
  --coral-soft: var(--suite-accent-soft);
  --blue: var(--suite-accent);
  --blue-soft: var(--suite-accent-soft);
  --green: var(--suite-accent);
  --green-soft: var(--suite-accent-soft);
}

body.tool-app--words {
  --suite-accent: #8056b3;
  --suite-accent-dark: #64408e;
  --suite-accent-soft: #eee4f8;
  --purple: var(--suite-accent);
  --purple-soft: var(--suite-accent-soft);
}

body.tool-app--audit {
  --suite-accent: #b34b63;
  --suite-accent-dark: #8f354b;
  --suite-accent-soft: #f8e2e8;
  --rose: var(--suite-accent);
  --rose-dark: var(--suite-accent-dark);
  --rose-soft: var(--suite-accent-soft);
}

.tool-app *,
.tool-app *::before,
.tool-app *::after {
  box-sizing: border-box;
}

.tool-app :is(button, input, select) {
  font: inherit;
}

.tool-app :is(button, input, select, summary, [tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--suite-accent) 42%, transparent);
  outline-offset: 3px;
}

.tool-app :is(.topbar, .app-header) {
  min-height: 76px;
  padding: 15px clamp(16px, 4vw, 46px);
  border-bottom: 1px solid var(--suite-line);
  color: var(--suite-ink);
  background: rgba(255, 253, 249, 0.94);
  box-shadow: 0 8px 28px rgba(23, 55, 74, 0.07);
  backdrop-filter: blur(18px);
}

.tool-app--matcher .topbar-inner {
  width: min(1180px, 100%);
}

.tool-app :is(.topbar, .app-header) .brand-mark {
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 14px;
  outline: 0;
  color: #fff;
  background: var(--suite-accent);
  box-shadow: 0 8px 18px rgba(23, 55, 74, 0.16);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  letter-spacing: 0;
  transform: none;
}

.tool-app :is(.topbar, .app-header) :is(h1, .brand h1) {
  color: var(--suite-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -0.03em;
}

.tool-app :is(.subtitle, .brand p) {
  color: var(--suite-muted);
  font-size: 11px;
}

.tool-app :is(.privacy-chip, .private-pill, .ready-pill, .privacy-pill) {
  border: 1px solid rgba(35, 132, 103, 0.2);
  color: var(--suite-green);
  background: var(--suite-green-soft);
  box-shadow: none;
  font-size: 11px;
  font-weight: 800;
}

.tool-app--stamp .app-shell {
  width: min(1120px, calc(100% - 32px));
  margin: 24px auto 52px;
}

.tool-app--stamp .hero {
  margin-bottom: 18px;
  padding: 24px;
  border: 1px solid var(--suite-line);
  border-radius: 24px;
  background: rgba(255, 253, 249, 0.9);
  box-shadow: var(--suite-shadow-soft);
}

.tool-app--stamp .hero .brand-mark {
  width: 64px;
  height: 64px;
  border: 0;
  border-radius: 18px;
  outline: 0;
  color: #fff;
  background: var(--suite-accent);
  box-shadow: 0 10px 22px rgba(216, 91, 54, 0.2);
  font-size: 11px;
  letter-spacing: 0.04em;
  transform: none;
}

.tool-app--stamp .hero h1 {
  margin-bottom: 7px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 5vw, 56px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.045em;
}

.tool-app :is(.eyebrow, .step-label) {
  color: var(--suite-accent);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.tool-app :is(.panel, .upload-card, .converter, .result, .intro-card, .drop-card, .verdict-card, .limits-card, .audit-section) {
  border: 1px solid var(--suite-line);
  background: rgba(255, 253, 249, 0.94);
  box-shadow: var(--suite-shadow);
}

.tool-app :is(.panel, .upload-card, .converter, .result, .intro-card, .drop-card) {
  border-radius: 24px;
}

.tool-app--stamp .panel {
  margin-bottom: 16px;
  padding: 27px;
}

.tool-app--matcher main {
  max-width: 1180px;
  margin-top: 28px;
}

.tool-app--matcher .panel {
  border-radius: 20px;
}

.tool-app--matcher .panel-head {
  padding: 19px 21px;
  background: #fafaf7;
}

.tool-app--matcher .step-number {
  border-radius: 10px;
  background: var(--suite-accent);
  box-shadow: 0 6px 14px rgba(62, 116, 217, 0.2);
}

.tool-app--audit .app-shell,
.tool-app--words main {
  width: min(1180px, calc(100% - 32px));
}

.tool-app--organizer main {
  width: min(1420px, calc(100% - 32px));
}

.tool-app :is(.intro h1, .intro-card h2, .hero-copy h2, .drop-zone h2, .verdict-card h2) {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.tool-app :is(.drop-zone) {
  border-color: color-mix(in srgb, var(--suite-accent) 42%, transparent);
  border-radius: 20px;
  background:
    linear-gradient(rgba(255, 255, 255, 0.45) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.45) 1px, transparent 1px),
    var(--suite-accent-soft);
  background-size: 30px 30px;
}

.tool-app :is(.drop-zone:hover, .drop-zone.dragover, .drop-zone.is-over) {
  border-color: var(--suite-accent);
  background-color: var(--suite-accent-soft);
}

.tool-app :is(.drop-icon, .choose-button) {
  color: #fff;
  background: var(--suite-accent);
}

.tool-app :is(input[type="file"], input[type="text"], input[type="number"], input[type="password"], select) {
  border: 1px solid rgba(23, 55, 74, 0.2);
  border-radius: 11px;
  color: var(--suite-ink);
  background: #fff;
}

.tool-app :is(input[type="file"], input[type="text"], input[type="number"], input[type="password"], select):focus {
  border-color: var(--suite-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--suite-accent) 10%, transparent);
}

.tool-app :is(.button, .convert-button, .action-button, .merge-button, .choose-button, .toolbar-actions button, .new-file-button) {
  border-radius: 11px;
  font-weight: 800;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.tool-app :is(.button, .convert-button, .action-button, .merge-button, .toolbar-actions button, .new-file-button):hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 9px 20px rgba(23, 55, 74, 0.12);
}

.tool-app :is(.button-primary, .button.primary, .button--blue, .convert-button, .merge-button, .toolbar-actions button.primary, .new-file-button) {
  border-color: var(--suite-accent);
  color: #fff;
  background: var(--suite-accent);
}

.tool-app :is(.button.download, .action-button--copy) {
  border-color: var(--suite-green);
  color: #fff;
  background: var(--suite-green);
}

.tool-app .amount-input-wrap {
  border-color: color-mix(in srgb, var(--suite-accent) 28%, transparent);
  border-radius: 16px;
}

.tool-app .currency-prefix {
  background: var(--suite-accent);
}

.tool-app :is(.metric, .summary-card, .page-card, .correction-slot, .note, .progress-card) {
  border: 1px solid var(--suite-line);
  background: var(--suite-paper);
  box-shadow: var(--suite-shadow-soft);
}

.tool-app :is(.badge, .status-tag, .confidence-note, .section-count, .steps span, .example-row button) {
  border-radius: 999px;
}

.tool-app .disclosures {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.tool-app .disclosures > details {
  overflow: hidden;
  border: 1px solid var(--suite-line);
  border-radius: 14px;
  background: var(--suite-paper);
  box-shadow: var(--suite-shadow-soft);
}

.tool-app .disclosures > details > summary {
  padding: 15px 17px;
  color: var(--suite-ink);
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
}

.tool-app .disclosures > details[open] > summary {
  border-bottom: 1px solid var(--suite-line);
  background: color-mix(in srgb, var(--suite-accent-soft) 42%, white);
}

.tool-app .details-body {
  padding: 2px 18px 18px;
  color: var(--suite-ink-soft);
}

.tool-app .details-body h3 {
  color: var(--suite-ink);
  font-size: 14px;
}

.tool-app :is(.details-body p, .details-body li) {
  font-size: 12px;
  line-height: 1.6;
}

.tool-app footer {
  color: var(--suite-muted);
}

@media (max-width: 760px) {
  .tool-app :is(.topbar, .app-header) {
    min-height: 66px;
    padding: 11px 13px;
  }

  .tool-app--stamp .app-shell,
  .tool-app--audit .app-shell,
  .tool-app--words main,
  .tool-app--organizer main {
    width: min(100% - 18px, 1180px);
  }

  .tool-app--stamp .hero {
    padding: 18px;
    border-radius: 19px;
  }

  .tool-app--stamp .panel {
    padding: 20px;
    border-radius: 18px;
  }

  .tool-app :is(.panel, .upload-card, .converter, .result, .intro-card, .drop-card) {
    border-radius: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tool-app *,
  .tool-app *::before,
  .tool-app *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
