/* ACE v2 uses the WAFGuard product shell; additions stay scoped to this page. */
.ace-page [hidden] { display:none !important; }
.ace-page .hero-grid { grid-template-columns:1.12fr 1fr; padding-block:76px 60px; gap:65px; }
.ace-page .hero h1 { font-size:clamp(43px,4.45vw,64px); letter-spacing:-2.6px; line-height:1.14; }
.ace-page .hero-lede { max-width:490px; line-height:1.85; }
.ace-page .hero-eyebrow { font-size:11px; letter-spacing:1.4px; margin-bottom:30px; }
.ace-mark { color:var(--accent); border:1px solid #597969; padding:3px 7px; border-radius:3px; font-size:11px; letter-spacing:.4px; }
.ace-page .hero-note { max-width:390px; line-height:1.7; margin-top:22px; }
.ace-page .trust-strip { justify-content:flex-start; gap:68px; padding-block:24px; }
.ace-verdict { margin:0; border:1px solid #365265; border-radius:12px; background:#102c40; box-shadow:0 24px 70px #03152144; overflow:hidden; }
.ace-verdict figcaption { display:flex; gap:10px; align-items:center; border-bottom:1px solid #304c5e; padding:17px 24px; font-size:12px; color:#c7d9e4; font-weight:500; }
.verdict-body { padding:23px 24px 0; }
.verdict-address { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.verdict-address>code { font-size:21px; letter-spacing:-.6px; color:#edf4f8; }
.risk-badge { display:flex; align-items:center; gap:6px; font-size:10px; font-weight:500; color:#ffc0ad; background:#f8a4870c; border:1px solid #f8a48730; border-radius:4px; padding:3px 8px; }
.risk-badge>span { width:5px; height:5px; border-radius:50%; background:#f2aa95; }
.verdict-origin { margin-top:5px; font-size:12px; color:#a8bfce; }
.verdict-origin>span { margin-inline:6px; }
.verdict-decision { margin-top:23px; padding:21px 0; border-top:1px solid #304c5e; display:flex; justify-content:space-between; align-items:center; }
.verdict-label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:1.2px; color:#b1c6d3; }
.verdict-decision>div>strong { display:flex; gap:11px; align-items:center; font-size:35px; letter-spacing:-1.2px; line-height:1.3; font-family:var(--heading); font-weight:600; margin-top:5px; color:#f5bdab; }
.verdict-decision svg { width:26px; height:26px; color:#dfad9d; }
.verdict-decision>.confidence { text-align:right; }
.verdict-decision>.confidence>strong { display:block; color:#f2f7fa; font-size:27px; }
.confidence strong>span { font-size:14px; font-family:var(--font); font-weight:400; letter-spacing:0; color:#b1c6d3; margin-left:3px; }
.confidence>span { font-size:10px; color:#b1c6d3; }
.verdict-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); background:#173548; border:1px solid #365266; border-radius:6px; padding:16px 0; }
.verdict-stats>div { padding-inline:16px; border-left:1px solid #365266; }
.verdict-stats>div:first-child { border:0; }
.verdict-stats strong { display:block; font-size:26px; line-height:1.1; font-weight:500; color:#eff7fb; font-family:var(--heading); }
.verdict-stats span { display:block; font-size:10px; line-height:1.5; margin-top:7px; color:#b1c6d3; }
.verdict-evidence { margin-top:22px; }
.verdict-evidence>p { margin-bottom:10px; }
.verdict-evidence>div { display:flex; align-items:center; gap:11px; padding-block:8px; font-size:12px; color:#d8e6ec; }
.evidence-node { width:7px; height:7px; border:1px solid #83c6b5; border-radius:50%; flex:none; position:relative; }
.verdict-evidence>div:not(:last-child) .evidence-node:after { content:""; width:1px; height:29px; background:#365c60; position:absolute; left:2px; top:6px; }
.verdict-evidence code { margin-left:auto; font-size:10px; color:#a9c4d3; }
.verdict-link { border-top:1px solid #304c5e; display:flex; justify-content:space-between; color:var(--accent); font-size:12px; padding:17px 0; margin-top:13px; }
.verdict-link:hover { color:#d6fff0; }
.verdict-link>span { font-size:17px; line-height:1.2; }
.verdict-note { color:#acc2ce; border-top:1px solid #304c5e; padding:11px 18px; text-align:center; font-size:10px; background:#0d283b; }
.ace-evidence-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:100px; align-items:center; }
.ace-evidence-copy>p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.85; max-width:455px; margin-top:24px; }
.ace-evidence-copy>.inline-link { margin-top:18px; }
.evidence-steps { padding:0; margin:0; list-style:none; }
.evidence-steps li { display:flex; gap:22px; padding-block:24px; border-bottom:1px solid var(--line); }
.evidence-steps li:first-child { padding-top:0; }
.evidence-steps li:last-child { border:0; padding-bottom:0; }
.evidence-step-number { color:#437467; font-family:ui-monospace,monospace; font-size:12px; padding-top:1px; }
.evidence-steps h3 { font-size:18px; }
.evidence-steps p { margin-top:9px; color:var(--muted); font-size:14px; line-height:1.8; }
.ace-response-section { background:#eef4f4; border-block:1px solid var(--line); }
.ace-page .section-heading>p { max-width:360px; font-size:15px; }
.response-window { background:#0b2233; border:1px solid #354f60; border-radius:10px; overflow:hidden; box-shadow:0 18px 50px #102d4012; color:#dbe9f0; }
.response-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:17px 23px; background:#143043; border-bottom:1px solid #344e5e; min-height:72px; }
.response-filename { display:flex; align-items:center; gap:12px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; color:#c3d8e4; font-size:12px; }
.response-filename>span:first-child { font-size:18px; color:var(--accent); margin-right:3px; }
.filename-divider { color:#7f9fb2; }
.response-copy { display:flex; align-items:center; gap:14px; }
#copy-status { color:var(--accent); font-size:11px; max-width:220px; }
.copy-json { display:flex; align-items:center; justify-content:center; gap:8px; background:#203e50; color:#e1eff6; border:1px solid #4b6577; padding:8px 12px; min-height:38px; border-radius:4px; font-size:11px; white-space:nowrap; }
.copy-json:hover { background:#2b4d60; border-color:#87b4b4; }
.copy-json svg { width:15px; height:15px; }
.response-views { display:flex; padding:0 23px; gap:26px; border-bottom:1px solid #2c4555; }
.response-views>button { background:transparent; color:#b4cbd9; border:0; border-bottom:2px solid transparent; border-radius:0; padding:17px 0 15px; font-size:12px; font-weight:500; min-height:52px; white-space:nowrap; }
.response-views>button[aria-pressed="true"] { color:var(--accent); border-color:var(--accent); }
.response-views>button:hover { color:#fff; }
.response-view-note { padding:15px 23px 0; color:#a9c3d3; font-size:12px; }
.response-code { margin:0; padding:22px 26px 26px 18px; height:480px; overflow:auto; overscroll-behavior:auto; scrollbar-color:#4c687b #0b2233; scrollbar-width:thin; white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; line-height:1.85; tab-size:2; }
.response-code:focus-visible { outline:2px solid var(--accent); outline-offset:-4px; }
.response-code>code { display:block; font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace; }
.code-line { display:inline-block; position:relative; min-width:100%; padding-left:40px; vertical-align:top; }
.code-line:before { content:attr(data-line); position:absolute; left:0; width:23px; text-align:right; color:#7d99ac; font-size:10px; line-height:2.22; user-select:none; }
.json-key { color:#9bcef3; }
.json-string { color:#b8e5ce; }
.json-number { color:#f4c28f; }
.json-literal { color:#d3b9ef; }
.response-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #344e5e; padding:16px 23px; font-size:11px; color:#b0c7d4; background:#102a3c; }
.response-footer a { display:flex; align-items:center; gap:16px; color:var(--accent); font-weight:500; }
.response-footer a:hover { text-decoration:underline; text-underline-offset:4px; }
.ace-use-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #b7cdd5; }
.ace-use-grid article { padding:31px 35px 0; border-left:1px solid var(--line); }
.ace-use-grid article:first-child { padding-left:0; border-left:0; }
.ace-use-grid article:last-child { padding-right:0; }
.use-icon { width:32px; height:32px; color:#2a7272; display:block; margin-bottom:23px; }
.ace-use-grid h3 { font-size:20px; }
.ace-use-grid p { color:var(--muted); font-size:14px; line-height:1.85; margin-top:15px; }
.use-detail { display:block; color:#437078; font-size:10px; font-weight:600; margin-top:24px; }
.ace-page .faq-list p a { text-decoration:underline; text-underline-offset:3px; color:var(--blue); }
.ace-page .closing-grid { grid-template-columns:1.4fr 1fr; gap:110px; }
.ace-closing h2 { max-width:540px; }
.ace-build { border-left:1px solid #39576b; padding:7px 0 7px 44px; }
.ace-build .plan-label { display:block; margin-bottom:18px; }
.ace-build a { display:flex; justify-content:space-between; align-items:center; gap:30px; font-size:15px; padding-block:14px; border-bottom:1px solid #39576b; color:#e2edf3; }
.ace-build a:hover { color:var(--accent); }
.ace-build .ace-plan-link { color:var(--accent); border:0; margin-top:5px; font-size:13px; }
@media(min-width:1440px) { .ace-page .hero-grid { padding-block:84px 68px; } }
@media(max-width:1100px) {
    .ace-page .hero-grid { gap:40px; }
    .ace-page .hero h1 { font-size:clamp(42px,4.4vw,50px); }
    .ace-evidence-grid { gap:60px; }
    .ace-page .trust-strip { gap:40px; }
    .verdict-address>code { font-size:19px; }
    .verdict-stats>div { padding-inline:12px; }
    .ace-page .closing-grid { gap:70px; }
}
@media(max-width:900px) {
    .ace-page .hero-grid { grid-template-columns:1fr 1fr; gap:30px; padding-block:55px 40px; }
    .ace-page .hero h1 { font-size:42px; letter-spacing:-1.8px; }
    .ace-page .hero-eyebrow { font-size:9px; gap:9px; letter-spacing:1px; }
    .ace-page .hero-lede { font-size:15px; }
    .ace-page .hero-note { font-size:11px; }
    .ace-verdict figcaption { padding:15px 18px; font-size:11px; gap:8px; }
    .verdict-body { padding:20px 18px 0; }
    .verdict-address { gap:8px; }
    .verdict-address>code { font-size:18px; }
    .risk-badge { font-size:9px; padding-inline:6px; }
    .verdict-label { font-size:9px; letter-spacing:.8px; }
    .verdict-stats>div { padding-inline:10px; }
    .verdict-stats span { font-size:9px; }
    .verdict-note { font-size:9px; }
    .ace-page .trust-strip { gap:26px; font-size:10px; }
    .ace-evidence-grid { gap:40px; }
    .ace-evidence-copy>p:not(.eyebrow) { font-size:14px; }
    .evidence-steps li { gap:15px; }
    .evidence-steps h3 { font-size:17px; }
    .evidence-steps p { font-size:13px; }
    .ace-page .section-heading>p { font-size:13px; max-width:270px; }
    .ace-use-grid article { padding-inline:22px; }
    .ace-use-grid h3 { font-size:18px; }
    .ace-use-grid p { font-size:13px; }
    .ace-build { padding-left:30px; }
    .ace-page .closing-grid { gap:40px; }
}
@media(max-width:700px) {
    .ace-page .hero-grid { grid-template-columns:1fr; padding-block:43px 32px; gap:36px; }
    .ace-page .hero h1 { font-size:clamp(36px,8.8vw,58px); letter-spacing:-1.8px; }
    .ace-page .hero-eyebrow { font-size:10px; gap:10px; margin-bottom:25px; }
    .ace-page .hero-lede { max-width:520px; margin-top:23px; }
    .ace-page .hero-note { margin-top:17px; max-width:100%; }
    .ace-verdict { max-width:500px; width:100%; margin:auto; }
    .ace-verdict figcaption { padding:16px 20px; }
    .ace-verdict .example-tag { font-size:9px; }
    .verdict-body { padding:22px 20px 0; }
    .verdict-address>code { font-size:21px; }
    .risk-badge { font-size:10px; }
    .verdict-stats>div { padding-inline:15px; }
    .verdict-stats span { font-size:10px; }
    .verdict-label { font-size:10px; letter-spacing:1px; }
    .verdict-note { font-size:9px; }
    .ace-page .trust-strip { grid-template-columns:1fr; gap:12px; font-size:12px; padding-block:22px 28px; }
    .ace-evidence-grid { grid-template-columns:1fr; gap:34px; }
    .ace-evidence-copy>p:not(.eyebrow) { max-width:520px; margin-top:20px; }
    .evidence-steps li { gap:18px; padding-block:21px; }
    .evidence-steps h3 { font-size:18px; }
    .evidence-steps p { font-size:14px; }
    .ace-page .section-heading>p { max-width:100%; font-size:14px; margin-top:20px; }
    .response-toolbar { padding:14px 15px; gap:10px; flex-wrap:wrap; min-height:65px; }
    .response-filename { font-size:10px; gap:7px; }
    .response-filename>span:first-child { font-size:15px; margin-right:0; }
    .response-copy { gap:9px; }
    .copy-json { font-size:10px; padding-inline:8px; min-height:36px; }
    .copy-json svg { width:13px; height:13px; }
    #copy-status:empty { display:none; }
    #copy-status { max-width:150px; font-size:10px; }
    .response-views { gap:0; padding:0 12px; justify-content:space-between; }
    .response-views>button { padding-inline:2px; font-size:10px; min-height:51px; }
    .response-view-note { padding:14px 16px 0; font-size:11px; min-height:47px; }
    .response-code { padding:17px 15px 20px 9px; height:420px; font-size:11px; line-height:1.85; }
    .code-line { padding-left:29px; }
    .code-line:before { width:18px; font-size:9px; line-height:2.26; }
    .response-footer { align-items:flex-start; flex-direction:column; gap:9px; padding:15px 16px; font-size:10px; }
    .ace-use-grid { grid-template-columns:1fr; }
    .ace-use-grid article,.ace-use-grid article:first-child,.ace-use-grid article:last-child { border:0; border-bottom:1px solid var(--line); padding:28px 0; }
    .ace-use-grid article:last-child { padding-bottom:0; border:0; }
    .use-icon { margin-bottom:18px; }
    .ace-use-grid h3 { font-size:20px; }
    .ace-use-grid p { font-size:14px; margin-top:13px; }
    .use-detail { margin-top:17px; font-size:11px; }
    .ace-page .closing-grid { grid-template-columns:1fr; gap:36px; }
    .ace-closing h2 { max-width:400px; }
    .ace-build { border:0; border-top:1px solid #39576b; padding:28px 0 0; }
}
@media(max-width:375px) {
    .ace-page .hero h1 { font-size:34px; }
    .ace-page .hero-eyebrow { font-size:9px; gap:8px; }
    .ace-verdict figcaption { padding-inline:16px; font-size:10px; }
    .verdict-body { padding-inline:16px; }
    .verdict-address>code { font-size:19px; }
    .risk-badge { font-size:9px; }
    .verdict-stats>div { padding-inline:11px; }
    .verdict-stats span { font-size:9px; }
    .response-toolbar { padding-inline:12px; }
    .response-filename { gap:6px; }
    .response-filename>span:first-child { display:none; }
    .response-views { flex-wrap:wrap; justify-content:flex-start; gap:0 19px; }
    .response-views>button { padding-block:13px 11px; min-height:44px; }
}
