/*
Theme Name: McXpert Fast Core
Theme URI: https://mcxpert.one/
Update URI: https://mcxpert.one/mcxpert-fast-platform/
Description: Neutraler, modularer WordPress-Kern für eigenständige Kundenwebsites.
Author: McXpert ONE
Version: 5.3.1-alpha27
Text Domain: mcxpert-fast-platform
Requires at least: 6.4
Requires PHP: 8.0
*/

:root {
  --mfc-primary: #087ea4;
  --mfc-secondary: #26a269;
  --mfc-dark: #102a43;
  --mfc-surface: #ffffff;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--mfc-dark); background: var(--mfc-surface); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
a { color: var(--mfc-primary); }
img { max-width: 100%; height: auto; }
.mfs-generic-wrap { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
.mfs-generic-header { padding: 18px 0; color: #fff; background: var(--mfc-dark); }
.mfs-generic-footer { padding: 10px 0; color: #fff; background: var(--mfc-dark); font-size: 14px; line-height: 1.25; }
.mfs-generic-header a, .mfs-generic-footer a { color: inherit; }
.mfs-generic-brand { display: inline-flex; align-items: center; min-height: 42px; font-weight: 800; text-decoration: none; }
.mfs-generic-brand img { display: block; width: auto; max-width: min(260px, 70vw); max-height: 64px; object-fit: contain; }
#content { min-height: 60vh; padding-block: 40px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }


/* Generated customer pages are full-bleed and must end exactly at the runtime footer. */
body.page-template-page-platform-generated,
body.page-template-page-platform-generated #content,
body.page-template-page-platform-generated #main-content {
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
body.page-template-page-platform-generated #content {
  width: 100% !important;
  margin-inline: 0 !important;
  padding-top: 0 !important;
}
body.page-template-page-platform-generated #main-content {
  width: 100% !important;
  overflow: clip;
}
body.page-template-page-platform-generated .fp-runtime {
  width: 100% !important;
  margin: 0 !important;
}


/* Alpha 30: generated mobile sites scroll inside their own viewport shell.
   This prevents WordPress, staging wrappers or browser chrome from creating
   a phantom document area below the runtime footer. */
@media (max-width: 760px) {
  html.mfc-obsolete-generated-root {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  body.page-template-page-platform-generated {
    height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  body.page-template-page-platform-generated #content {
    display: block !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch;
  }
  body.admin-bar.page-template-page-platform-generated #content {
    height: calc(100dvh - 46px) !important;
    max-height: calc(100dvh - 46px) !important;
  }
  body.page-template-page-platform-generated #main-content,
  body.page-template-page-platform-generated .fp-runtime {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding-bottom: 0 !important;
  }
}


/* Alpha 31: reusable mobile viewport shell for every standalone customer page.
   Add body class `mfc-mobile-viewport-page` and wrap the complete public page
   in `.mfc-mobile-scroll-shell`. The shell, not WordPress or staging wrappers,
   owns the mobile scroll range and therefore ends exactly at its footer. */
@media (max-width: 760px) {
  html.mfc-obsolete-legal-root {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  body.mfc-mobile-viewport-page {
    height: 100dvh !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  body.mfc-mobile-viewport-page .mfc-mobile-scroll-shell {
    display: block !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch;
  }
  body.admin-bar.mfc-mobile-viewport-page .mfc-mobile-scroll-shell {
    height: calc(100dvh - 46px) !important;
    max-height: calc(100dvh - 46px) !important;
  }
}


/* McXpert Fast Core 5.0 — global public page viewport.
   This is the single source of truth for the start page, legal pages and all
   future generated public templates. The outer WordPress document never owns
   the mobile scroll range; the designated shell does. */
@media (max-width: 760px) {
  html.mfc-public-platform-root,
  html.mfc-public-platform-root body.mfc-public-platform-page {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  body.mfc-public-platform-page #wpadminbar { position: fixed !important; }
  body.mfc-public-platform-page #content,
  body.mfc-public-platform-page .mfc-mobile-scroll-shell {
    display: block !important;
    width: 100% !important;
    height: 100svh !important;
    min-height: 0 !important;
    max-height: 100svh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
  }
  body.admin-bar.mfc-public-platform-page #content,
  body.admin-bar.mfc-public-platform-page .mfc-mobile-scroll-shell {
    height: calc(100svh - 46px) !important;
    max-height: calc(100svh - 46px) !important;
    margin-top: 46px !important;
  }
  body.mfc-public-platform-page #main-content,
  body.mfc-public-platform-page .fp-runtime,
  body.mfc-public-platform-page .one-legal-page-content {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  body.mfc-public-platform-page .fp-runtime-footer {
    margin-bottom: 0 !important;
  }
}

/* Beta 1.0.2 – neutraler Status für technisch nicht prüfbare Zielseiten */
.mfc-access-notice{margin-top:14px;padding:14px 16px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc;color:#334155}.mfc-access-notice strong{display:block;margin-bottom:4px}.mfc-access-notice p{margin:0!important}.mfc-check-category.mfc-status-nicht-pruefbar,.mfc-check-category.mfc-status-analyse-eingeschraenkt{border-color:rgba(100,116,139,.28);background:rgba(148,163,184,.12)}.mfc-check-finding.is-unavailable,.mfc-check-finding.is-limited{border-color:#64748b;background:#f8fafc}.mfc-check-finding.is-unavailable span,.mfc-check-finding.is-limited span{color:#475569}

/* 5.3.0 Beta 1.0.8: intelligenter begrenzter Domain-Crawl */
.mfc-domain-overview{margin:28px 0;padding:24px;border:1px solid #dbe4ef;border-radius:20px;background:linear-gradient(145deg,#f8fbff,#fff)}
.mfc-domain-overview h3{margin:5px 0 8px;font-size:1.35rem}.mfc-domain-overview p{margin:0;color:#526174}
.mfc-domain-types{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.mfc-domain-types span{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #dbe4ef;border-radius:999px;background:#fff;font-size:.9rem}.mfc-domain-types strong{font-size:1rem;color:#0f172a}
.mfc-domain-issues{margin-top:18px;border-top:1px solid #dbe4ef;padding-top:15px}.mfc-domain-issues summary{cursor:pointer}.mfc-domain-issues>div{display:grid;gap:10px;margin-top:12px}.mfc-domain-issues article{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(260px,1.5fr) minmax(160px,.8fr);gap:12px;align-items:center;padding:12px;border-radius:12px;background:#fff;border:1px solid #e5eaf0}.mfc-domain-issues a{overflow-wrap:anywhere}.mfc-domain-issues span{color:#9a3412;font-size:.9rem}.mfc-domain-clean{margin-top:18px!important;padding:12px 14px;border-radius:12px;background:#ecfdf3;color:#166534!important}
@media(max-width:760px){.mfc-domain-issues article{grid-template-columns:1fr}.mfc-domain-overview{padding:18px}}

/* 5.3.0 Beta 1.0.9: Unterseitenliste und Quick-Score */
.mfc-domain-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.mfc-domain-score{flex:0 0 180px;padding:16px;border-radius:16px;background:#102a43;color:#fff;text-align:center}.mfc-domain-score strong{display:block;font-size:2rem;line-height:1}.mfc-domain-score span{display:block;margin-top:7px;font-size:.78rem;color:#dbe6ef}.mfc-domain-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.mfc-domain-stats span{padding:8px 11px;border-radius:999px;font-size:.88rem;background:#fff;border:1px solid #dbe4ef}.mfc-domain-stats .is-good{color:#166534}.mfc-domain-stats .is-warning{color:#9a3412}.mfc-domain-stats .is-critical{color:#991b1b}.mfc-domain-table-wrap{margin-top:18px;overflow-x:auto;border:1px solid #dbe4ef;border-radius:14px;background:#fff}.mfc-domain-table{width:100%;border-collapse:collapse;min-width:760px}.mfc-domain-table th,.mfc-domain-table td{padding:13px 14px;text-align:left;border-bottom:1px solid #e8edf3;vertical-align:top}.mfc-domain-table th{background:#f8fafc;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#526174}.mfc-domain-table tr:last-child td{border-bottom:0}.mfc-domain-table td:first-child{max-width:430px}.mfc-domain-table a{display:block;font-weight:750;overflow-wrap:anywhere}.mfc-domain-table small{display:block;margin-top:5px;color:#64748b;line-height:1.35}.mfc-page-score,.mfc-page-status{white-space:nowrap}.mfc-page-score.is-good,.mfc-page-status.is-good{color:#15803d}.mfc-page-score.is-warning,.mfc-page-status.is-warning{color:#c2410c}.mfc-page-score.is-critical,.mfc-page-status.is-critical{color:#991b1b}.mfc-domain-urls{margin-top:16px;padding-top:14px;border-top:1px solid #dbe4ef}.mfc-domain-urls summary{cursor:pointer}.mfc-domain-urls>div{display:grid;gap:7px;margin-top:11px;max-height:320px;overflow:auto;padding-right:5px}.mfc-domain-urls a{display:block;padding:8px 10px;border-radius:9px;background:#fff;border:1px solid #e5eaf0;overflow-wrap:anywhere}
@media(max-width:760px){.mfc-domain-head{display:grid}.mfc-domain-score{width:auto;max-width:none}.mfc-domain-table-wrap{margin-left:-6px;margin-right:-6px}}

/* Alpha 27: visible, non-public project preview indicator. */
.mfc-sandbox-bar{position:fixed;z-index:999999;left:12px;right:12px;bottom:12px;padding:10px 14px;border-radius:9px;background:#111820;color:#fff;font-size:13px;line-height:1.35;box-shadow:0 8px 30px rgba(0,0,0,.25);text-align:center}.mfc-project-sandbox-preview{padding-bottom:64px}
