/* Generated route CSS — v1990. Source: tools/css-source/page-specializations/public-specializations.css. */
/* MapMyStaff public specializations — v1786. Loaded only by pages that use these specializations. */
/* ===== Page specialization 46: en/security.html | fr/security.html ===== */
/* Security page v1689 — clarity, coverage behavior and data-use commitment */
.mms-security-page{--sec-ink:#123a3a;--sec-muted:#526a6a;--sec-teal:#0b7f7b;--sec-teal-2:#12aaa4;--sec-pale:#edf8f7;--sec-pale-2:#f7fbfb;--sec-line:rgba(13, 111, 107, .17);--sec-card:rgba(255,255,255,.94);--sec-shadow:0 24px 55px rgba(18,58,58,.10);}
.mms-security-page .mms-security-hero{}
.mms-security-page .mms-security-hero .mms-hero__veil{background:linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.91) 42%, rgba(255,255,255,.18) 72%, rgba(255,255,255,.04) 100%);}
.mms-security-page .mms-security-hero .mms-hero__copy{max-width:690px;}
.mms-security-page .mms-security-hero h1{max-width:760px;color:var(--sec-ink);text-shadow:none;}
.mms-security-page .mms-security-hero p{max-width:650px;color:var(--sec-muted);text-shadow:none;}
.mms-security-page .mms-security-hero .mms-eyebrow{color:#9b7300;}
.mms-security-page .mms-security-hero .mms-actions{flex-wrap:wrap;}
.mms-security-page .mms-security-section{position:relative;overflow:hidden;}
.mms-security-page .mms-security-section::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle, rgba(18,170,164,.09), transparent 69%);pointer-events:none;}
.mms-security-page .mms-security-section:nth-of-type(odd)::before{right:-230px;top:0;}
.mms-security-page .mms-security-section:nth-of-type(even)::before{left:-260px;bottom:-140px;}
.mms-security-page .mms-security-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);gap:clamp(48px,6vw,92px);align-items:center;}
.mms-security-page .mms-security-grid--reverse .mms-security-copy{order:2;}
.mms-security-page .mms-security-grid--reverse .mms-security-visual{order:1;}
.mms-security-page .mms-security-grid--cards-full{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(28px,4vw,48px);}
.mms-security-page .mms-security-grid--cards-full .mms-security-copy,.mms-security-page .mms-security-grid--cards-full .mms-security-visual{order:initial;}
.mms-security-page .mms-security-grid--cards-full .mms-security-copy{max-width:52rem;}
.mms-security-page .mms-security-grid--cards-full .mms-security-visual{width:100%;}
/* v1901 — dense security explanations use copy-first rows on desktop. */
.mms-security-page .mms-section--visual-below .mms-security-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(28px,4vw,48px);}
.mms-security-page .mms-section--visual-below .mms-security-copy,.mms-security-page .mms-section--visual-below .mms-security-visual{order:initial;}
.mms-security-page .mms-section--visual-below .mms-security-copy{width:100%;max-width:none;}
.mms-security-page .mms-section--visual-below .mms-security-copy>p{max-width:72ch;}
.mms-security-page .mms-section--visual-below .mms-security-visual{width:100%;max-width:none;}
.mms-security-page .mms-security-copy{position:relative;z-index:2;}
.mms-security-page .mms-security-copy > p{color:var(--sec-muted);}
.mms-security-page .mms-security-kicker{display:inline-flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--sec-teal);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;}
.mms-security-page .mms-security-kicker::before{content:"";width:28px;height:2px;background:var(--sec-teal-2);}
.mms-security-page .mms-security-limit{margin-top:24px;padding:16px 18px;border-left:3px solid var(--sec-teal-2);background:rgba(237,248,247,.9);color:var(--sec-muted);border-radius:0 12px 12px 0;font-size:.94rem;}
.mms-security-page .mms-security-visual{position:relative;z-index:2;border:1px solid var(--sec-line);border-radius:28px;background:var(--sec-card);box-shadow:var(--sec-shadow);padding:clamp(22px,3vw,38px);}
.mms-security-page .mms-security-demo-label{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:#627777;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.mms-security-page .mms-security-demo-label::before{content:"";width:8px;height:8px;border-radius:50%;background:#f2c94c;box-shadow:0 0 0 5px rgba(242,201,76,.18);}
.mms-security-page .mms-security-link{margin-top:24px;}
/* Validation demo */



/* Roles */
.mms-security-page .sec-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch;}
.mms-security-page .sec-role{padding:18px 20px;border:1px solid var(--sec-line);border-radius:18px;background:linear-gradient(145deg,#fff,#f4fbfa);}
.mms-security-page .sec-role-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.mms-security-page .sec-role-icon{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--sec-pale);color:var(--sec-teal);font-weight:900;}
.mms-security-page .sec-role h3{margin:0;font-size:1rem;color:var(--sec-ink);line-height:1.25;}
.mms-security-page .sec-role p{margin:0;padding-left:50px;font-size:.94rem;color:var(--sec-muted);line-height:1.62;}
/* Old vs latest calculation */
/* External services */
.mms-security-page .sec-data-links{margin-top:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.mms-security-page .sec-data-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--sec-line);background:#fff;color:var(--sec-ink);text-decoration:none;font-weight:800;}
/* CTA */
.mms-security-page .mms-security-cta{background:linear-gradient(135deg,#0a5451,#0b3b38);}
.mms-security-page .mms-security-cta .mms-final-cta__inner{align-items:center;}
.mms-security-page .mms-security-cta__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;}
/* Firestore compatibility — section 02 remains a full-width card collection without relying on the current auxiliary modifier class. */
.mms-security-page #section-02 > .mms-container.mms-security-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(28px,4vw,48px);}
.mms-security-page #section-02 > .mms-container.mms-security-grid > .mms-security-copy,
.mms-security-page #section-02 > .mms-container.mms-security-grid > .mms-security-visual{order:initial;min-width:0;}
.mms-security-page #section-02 > .mms-container.mms-security-grid > .mms-security-copy{max-width:52rem;}
.mms-security-page #section-02 > .mms-container.mms-security-grid > .mms-security-visual{width:100%;}
.mms-security-page #section-02 .sec-roles{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);}
@media (max-width: 1180px){
.mms-security-page .mms-security-grid{grid-template-columns:1fr;}
.mms-security-page .mms-security-grid--reverse .mms-security-copy,
  .mms-security-page .mms-security-grid--reverse .mms-security-visual{order:initial;}
}
@media (max-width: 760px){
.mms-security-page #section-02 .sec-roles{grid-template-columns:minmax(0,1fr);}
.mms-security-page .sec-roles{grid-template-columns:1fr;}
.mms-security-page .mms-security-hero{}
.mms-security-page .mms-security-hero .mms-hero__veil{background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 52%,rgba(255,255,255,.30) 80%,rgba(255,255,255,.08) 100%);}
.mms-security-page .mms-security-visual{border-radius:22px;padding:18px;}
.mms-security-page .sec-role{padding:16px;}
.mms-security-page .sec-role p{padding-left:0;}
.mms-security-page .sec-data-links{grid-template-columns:1fr;}
.mms-security-page .mms-security-cta__actions{justify-content:flex-start;}
}

/* ===== Public-page coherence — v1916: Security ===== */
.mms-security-page .mms-section--visual-below .mms-security-copy>p,
.mms-security-page #section-02 > .mms-container.mms-security-grid > .mms-security-copy>p{max-width:none;}
.mms-security-page #section-02 > .mms-container.mms-security-grid > .mms-security-copy{width:100%;max-width:none;}
.mms-security-page .mms-section--visual-below .mms-security-visual,
.mms-security-page #section-02 > .mms-container.mms-security-grid > .mms-security-visual{width:min(100%,72rem);margin-inline:auto;}
.mms-security-page .mms-security-visual{padding:clamp(18px,2.4vw,30px);border-radius:22px;box-shadow:0 14px 36px rgba(18,58,58,.075);}
.mms-security-page .sec-role{padding:16px 17px;border-radius:15px;}

/* v1987 — Security section 04 dependency cards use a single readable column; contract is defined below. */


/* v1987 — manual QA fixes: semantic icons, readable dependencies, visible secondary CTA. */
.mms-security-page .sec-role-icon svg{display:block;width:1.05rem;height:1.05rem;fill:currentColor;}
.mms-security-page #section-04 > .mms-container.mms-security-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(28px,4vw,48px);}
.mms-security-page #section-04 > .mms-container.mms-security-grid > .mms-security-copy,
.mms-security-page #section-04 > .mms-container.mms-security-grid > .mms-security-visual{order:initial;min-width:0;width:100%;max-width:none;}
.mms-security-page #section-04 .sec-roles{grid-template-columns:minmax(0,1fr);gap:clamp(12px,1.4vw,16px);}
.mms-security-page #section-04 .sec-role{width:100%;}
.mms-security-page .mms-security-cta .mms-button--ghost{--mms-button-bg:rgb(255 255 255 / .08);--mms-button-border:rgb(255 255 255 / .72);--mms-button-color:#fff;--mms-button-hover-bg:#fff;--mms-button-hover-border:#fff;--mms-button-hover-color:var(--mms-teal-950,#083c38);}
