
/* Shared site navigation and public status. */
.product-header { background: #fffefa; }
.product-header .product-bar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .7rem 1.7rem;
  align-items: center;
  padding-block: .8rem;
}
.product-header .brand { display: inline-flex; }
.product-header .brand img { width: clamp(7rem, 17vw, 9.4rem); height: auto; }
.product-nav { display: flex; flex-wrap: wrap; gap: .25rem; justify-self: center; min-width: 0; }
.product-nav a {
  display: inline-flex; align-items: center; min-block-size: 44px;
  padding: .35rem .82rem; border-radius: .55rem; color: #183833;
  font-weight: 700; text-decoration: none; line-height: 1.25; overflow-wrap: anywhere;
}
.product-nav a:hover { background: #f0f5ef; }
.product-nav a[aria-current], .product-nav a[data-active] { background: #e0eee6; color: #103d32; box-shadow: inset 0 -2px #266454; }
.product-header .language-picker { justify-content: end; min-inline-size: 0; }
.product-header .language-status { flex-basis: 100%; max-inline-size: 18rem; text-align: end; }
.product-status-strip { background: #f7ecd4; border-block-start: 1px solid #e5d2a9; }
.product-status-strip .shell { display: flex; align-items: center; min-block-size: 2.05rem; }
.construction-label { display: inline-block; color: #51380e; font-size: .85rem; font-weight: 750; line-height: 1.4; padding-block: .3rem; }
.product-header :focus-visible, .product-footer :focus-visible, .product-main :focus-visible {
  outline: 2px solid #145f4b; outline-offset: 4px;
}
.product-footer :focus-visible { outline-color: #9be3ca; }
@media (max-width: 680px) {
  .product-header .product-bar { grid-template-columns: minmax(0, 1fr) auto; gap: .4rem .65rem; }
  .product-nav { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  .product-nav a { padding-inline: .65rem; }
  .product-header .language-picker { grid-column: 2; grid-row: 1; max-inline-size: 10rem; }
  .product-header .language-picker select { max-inline-size: 8rem; }
}
@media (max-width: 370px) {
  .product-header .language-picker label { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
  .product-nav a { padding-inline: .48rem; }
}
.product-footer .footer-columns { gap: 1.3rem; }
.product-footer .footer-columns a { overflow-wrap: anywhere; }

/* Landing page and catalog layouts. */
.product-home {
  display: grid; grid-template-columns: 1.25fr .8fr; gap: clamp(1.5rem, 6vw, 5rem);
  align-items: center; padding-block: clamp(2.25rem, 6vw, 5.25rem);
}
.product-home > *, .product-paths > *, .software-products > *, .catalog-group .grid > * { min-inline-size: 0; }
.product-home h1 { max-inline-size: 16ch; margin: 0; }
.product-home .lead { max-inline-size: 50ch; }
.product-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-block-start: 1.35rem; }
.product-actions .cta { margin: 0; }
.secondary-action {
  display: inline-flex; align-items: center; min-block-size: 44px; padding: .55rem .9rem;
  border: 1px solid #8baea1; border-radius: .55rem; color: #134638; font-weight: 750; text-decoration: none;
}
.secondary-action:hover { background: #e0eee6; }
.product-home-visual {
  position: relative; isolation: isolate; min-block-size: clamp(13rem, 27vw, 22rem);
  background: radial-gradient(ellipse at 26% 13%, #f0fcf4, #cfe7de 64%, #b2d8ca);
  border: 1px solid #a6cbbd; border-radius: 1.55rem; overflow: hidden; perspective: 720px;
}
.product-home-visual::before {
  content: ""; position: absolute; inset: 28% -30% -60%;
  background: repeating-linear-gradient(0deg, transparent 0 22px, #42866f38 23px 24px),
              repeating-linear-gradient(90deg, transparent 0 22px, #42866f38 23px 24px);
  transform: rotateX(58deg);
}
.product-visual-sheet, .product-visual-model { position: absolute; border-radius: .85rem; }
.product-visual-sheet {
  inset: 20% 45% 26% 14%; padding: 12% 6% 0;
  background: #fcfdf8; border: 1px solid #b0d1c4;
  transform: rotateX(12deg) rotateZ(-15deg);
  box-shadow: 0 .5rem #accdc2, 0 1.2rem 2rem #133b3640;
}
.product-visual-sheet span { display: block; block-size: .22rem; margin-block: .65rem; background: #78a295; border-radius: 1rem; }
.product-visual-sheet span:last-child { inline-size: 63%; }
.product-visual-model {
  inset: 32% 13% 24% 43%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8%; align-items: end; padding: 9%;
  background: #164f42; transform: rotateX(12deg) rotateZ(12deg);
  box-shadow: 0 .6rem #0b342b, 0 1.3rem 2rem #133b3650;
}
.product-visual-model i { background: #a1dfc1; block-size: 46%; box-shadow: 4px 4px #498e76; }
.product-visual-model i:nth-child(2) { block-size: 77%; }
.product-visual-model i:nth-child(3) { block-size: 60%; }
.product-paths, .software-products { display: grid; gap: 1rem; }
.product-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.software-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.product-path h2, .software-products h2 { font-size: clamp(1.3rem, 2.2vw, 1.65rem); margin: 0; }
.product-path p, .software-products p { margin: 0; }
.software-products .status { align-self: start; }
.software-products .product-audience { font-size: .9rem; }
.software-related { display: flex; flex-wrap: wrap; gap: .75rem 1.2rem; padding-block: 1rem 2.5rem; }
.compact-intro { padding-block: clamp(1.5rem, 4vw, 3.25rem) 1rem; }
.compact-intro .lead { max-inline-size: 65ch; margin-block: .55rem 0; }
.catalog-controls { display: grid; gap: .75rem; padding-block: .8rem 1.35rem; }
.catalog-search { display: grid; gap: .35rem; max-inline-size: 32rem; font-weight: 700; }
.catalog-shortcuts { display: flex; flex-wrap: wrap; gap: .45rem; }
.catalog-shortcuts a {
  display: inline-flex; align-items: center; min-block-size: 40px; padding: .3rem .65rem;
  color: #164d40; background: #edf5ed; border: 1px solid #b3cdbf; border-radius: .5rem;
  font-weight: 650; text-decoration: none; overflow-wrap: anywhere;
}
.catalog-group { padding-block: 1.15rem 1.8rem; }
.catalog-group h2 { margin-block: 0 .8rem; font-size: clamp(1.35rem, 3vw, 2rem); }
.catalog-group .tool-card-open { margin-block-start: auto; min-block-size: 40px; display: inline-flex; align-items: center; gap: .35rem; }
.catalog-group .tool-guide-link { margin: 0; }
.tool-return { display: flex; align-items: center; gap: .45rem; inline-size: fit-content; min-block-size: 44px; margin-block-start: .6rem; font-weight: 750; color: #13523e; }
[dir="rtl"] .tool-return-icon { transform: scaleX(-1); }
.product-main .tool-intro { padding-block-start: .35rem; }
@media (max-width: 820px) { .software-products { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
  .product-home { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .product-home-visual { min-block-size: 10rem; }
  .product-paths { grid-template-columns: minmax(0, 1fr); }
  .product-main .tool-intro { gap: .8rem; padding-block-end: 1rem; }
  .product-main .tool-intro .scene-stage { min-block-size: 10.5rem; }
}

.product-header .brand:focus-visible { outline-color: #145f4b; }
.catalog-group .tool-card-open { padding-inline: .72rem; border: 1px solid #91b7a7; border-radius: .55rem; color: #104e3e; background: #f2f8f4; }
.catalog-group .tool-card-open:hover { background: #e0eee6; }

.category-directory h2 { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.65rem); }
.category-directory .tool-card-open { margin-block-start: auto; min-block-size: 44px; display: inline-flex; align-items: center; gap: .35rem; }
.tools-section-nav { gap: .15rem; }
.tools-section-nav a { padding-inline: .55rem; }
@media (max-width: 680px) { .tools-section-nav a { padding-inline: .48rem; } }

.catalog-group .tool-card h2 { margin: 0; font-size: clamp(1.25rem, 2.4vw, 1.55rem); }

/* Unified site footer: brand + four link columns. */
.product-footer .footer-columns { grid-template-columns: 1.4fr repeat(4, 1fr); }
.product-footer .footer-tagline { margin: 10px 0 0; color: #c6ded3; font-size: .9rem; line-height: 1.5; max-width: 26ch; }
@media (max-width: 900px) { .product-footer .footer-columns { grid-template-columns: repeat(2, 1fr); } .product-footer .footer-brand { grid-column: 1 / -1; } }

/* Legal pages. */
.legal-body { max-width: 72ch; padding-bottom: 40px; }
.legal-body h2 { font-size: 1.2rem; margin: 28px 0 8px; }
.legal-body p, .legal-body li { line-height: 1.65; }
.legal-body ul { padding-left: 1.2rem; }
.legal-body table { border-collapse: collapse; width: 100%; margin: 10px 0; font-size: .95rem; }
.legal-body th, .legal-body td { border: 1px solid #d9d2c1; padding: 8px 10px; text-align: left; vertical-align: top; }
.legal-updated { color: #5b6660; font-size: .92rem; }

/* Transparent logo: no plaque, border or shadow behind the mark. */
.brand img, .product-header .brand img, .product-footer .brand img { border-radius: 0; box-shadow: none; outline: none; background: none; }
.product-header .brand img { width: 180px; height: auto; }
.product-footer .brand img { width: 150px; height: auto; }
.product-footer.footer-tools .footer-columns, .product-footer.footer-software .footer-columns { grid-template-columns: 1.6fr repeat(3, 1fr); }
@media (max-width: 900px) { .product-footer.footer-tools .footer-columns, .product-footer.footer-software .footer-columns { grid-template-columns: repeat(2, 1fr); } }

/* Owner site report (/admin/report). */
.site-report section { margin-block: 2rem; }
.site-report h2 { font-size: 1.35rem; margin-bottom: .7rem; }
.report-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.report-kpis div { border: 1px solid var(--line); border-radius: 10px; padding: .9rem 1rem; background: var(--panel); }
.report-kpis strong { display: block; font-size: 1.7rem; line-height: 1.1; }
.report-kpis span { color: var(--muted); font-size: .9rem; }
.report-actions { padding-left: 1.2rem; display: grid; gap: .5rem; }
.report-tag { display: inline-block; font-size: .75rem; font-weight: 750; padding: .1rem .5rem; border-radius: 999px; border: 1px solid currentColor; margin-right: .3rem; }
.report-tag[data-level="Fix now"] { color: #a1260d; }
.report-tag[data-level="Security"] { color: #6b3fa0; }
.report-tag[data-level="Customer request"] { color: #0a6f82; }
.report-tag[data-level="Improve"] { color: #8a5300; }
.report-tag[data-level="All clear"] { color: #1d6a3a; }
.report-table { overflow-x: auto; }
.report-table table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.report-table th, .report-table td { border-bottom: 1px solid var(--line); padding: .5rem .6rem; text-align: left; vertical-align: top; }
.report-note { color: var(--muted); font-size: .9rem; }
@media (max-width: 760px) { .report-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.report-kpis small { display: block; color: var(--muted); font-size: .78rem; margin-top: .2rem; }
.report-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 760px) { .report-split { grid-template-columns: 1fr; } }
