:root{--ink:#182e2d;--muted:#52615a;--paper:#f7f6ef;--white:#fffef9;--green:#244e41;--lime:#e2ed95;--line:#cbd0bd;--orange:#a53f22}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 system-ui,sans-serif}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--orange)}a:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:5px;background:white;padding:8px;z-index:10}.preview{background:var(--ink);color:white;text-align:center;padding:7px 16px;font-size:12px;letter-spacing:.07em}.masthead{max-width:1360px;margin:auto;padding:25px 5%;display:flex;gap:32px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-weight:850;line-height:1.05;letter-spacing:-1px;text-decoration:none;font-size:23px}.brand span{display:block;font:12px/2 system-ui;letter-spacing:2px;text-transform:uppercase}.nav{display:flex;gap:24px;font-size:14px;font-weight:650;flex-wrap:wrap}.nav a{text-decoration:none}.wrap{max-width:1240px;margin:auto;padding:55px 5% 80px}.eyebrow{font:700 12px/1.5 ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin:0 0 16px}h1,h2,h3{line-height:1.1;letter-spacing:-.04em}h1{font-size:clamp(38px,5.5vw,72px);max-width:950px;margin:0 0 23px}h2{font-size:clamp(27px,3vw,39px);margin:60px 0 22px}h3{font-size:23px;margin:0 0 15px}.lede{font-size:21px;line-height:1.5;max-width:770px;color:var(--muted)}.hero{display:grid;grid-template-columns:1.7fr 1fr;gap:50px;align-items:center}.hero aside{background:var(--green);color:white;padding:35px;transform:rotate(1deg);border-radius:2px}.hero aside .eyebrow{color:var(--lime)}.hero aside h2{margin:10px 0 25px;font-size:31px}.hero aside a{display:block;padding:13px 0;border-top:1px solid #698478;color:white}.big{font:italic 28px Georgia,serif}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{display:block;background:var(--white);border:1px solid var(--line);padding:27px;text-decoration:none;transition:transform .15s}.card:hover{transform:translateY(-3px);color:var(--ink);border-color:var(--green)}.card p{font-size:16px;color:var(--muted);margin:0 0 18px}.card .arrow{font-size:14px;font-weight:750;color:var(--green)}.number{font:13px ui-monospace,monospace;color:var(--muted);display:block;margin-bottom:28px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.section-heading a{font-size:14px}.answer{border-left:5px solid var(--green);background:#e9eddc;padding:23px 28px;margin:28px 0}.answer .eyebrow{margin-bottom:9px}.answer p{margin:0}.article{max-width:900px}.article h1{font-size:clamp(36px,4.5vw,57px)}.meta{font-size:13px;color:var(--muted);margin:24px 0}.toc{display:flex;gap:18px;flex-wrap:wrap;border-block:1px solid var(--line);padding:15px 0;font-size:14px;margin:25px 0}.fact{padding:23px 0;border-bottom:1px solid var(--line)}.fact p{margin:0 0 10px}.sources{font-size:13px;color:var(--muted)}.sources a{display:inline-block;margin-right:15px}.label{font:700 12px ui-monospace,monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--green)}.table-wrap{overflow-x:auto;margin:24px 0;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:15px;text-align:left}caption{text-align:left;padding:15px;font-weight:700;background:var(--lime)}th,td{padding:18px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#e9eddc;font-size:13px}td:first-child{font-weight:700}td p{margin:0 0 10px}ol,ul{padding-left:24px}li{padding:5px 0}.note{font-size:15px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.related{margin-top:65px}.related .grid{grid-template-columns:repeat(2,minmax(0,1fr))}footer{background:var(--ink);color:#e3e9de;padding:42px 5%;font-size:14px}footer>div{max-width:1120px;margin:auto;display:flex;justify-content:space-between;gap:28px}footer p{max-width:540px}footer a{color:white}.breadcrumb{font-size:13px;margin-bottom:25px}.worksheet{background:var(--white);border:1px solid var(--line);padding:24px}.tag{display:inline-block;background:var(--lime);padding:3px 9px;font-size:12px;margin-bottom:14px}.vendor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vendor-grid .card{border-left:4px solid var(--green)}@media(max-width:750px){.masthead{display:block;padding:20px 6%}.nav{margin-top:20px;gap:17px;font-size:13px}.wrap{padding:33px 6% 55px}.hero{grid-template-columns:1fr;gap:25px}.hero aside{transform:none;padding:25px}.grid,.vendor-grid,.related .grid{grid-template-columns:1fr}.lede{font-size:18px}h2{margin-top:40px}.article h1{font-size:37px}.answer{padding:19px}.table-wrap.mobile-cards{border:none;overflow:visible}.mobile-cards table,.mobile-cards tbody,.mobile-cards tr,.mobile-cards td{display:block;width:100%}.mobile-cards thead{display:none}.mobile-cards caption{display:block}.mobile-cards tr{border:1px solid var(--line);margin:12px 0;background:var(--white);padding:4px 14px}.mobile-cards td{padding:13px 0}.mobile-cards td:before{content:attr(data-label);display:block;font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.05em;margin-bottom:5px}.mobile-cards td:first-child{font-size:20px}.mobile-cards td:last-child{border:0}footer>div{display:block}.section-heading{display:block}.card:hover{transform:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{.preview,.nav,.toc,footer{display:none}.wrap{padding:0;max-width:none}body{background:white;color:black}.card,.fact,tr{break-inside:avoid}}

/* Shared editorial system; separate publication accents. */
.pentesting{--ink:#192e40;--green:#24465c;--muted:#4d6070;--lime:#dce6bc;--paper:#f5f5ef;--orange:#9f371e}
.brand{max-width:350px}.button{display:inline-block;background:var(--green);color:white;padding:13px 20px;text-decoration:none;font-weight:700;margin-top:12px}.button:hover{color:white;background:var(--ink)}
.article{max-width:1000px}.article>section,.article>.answer,.article>.meta,.article>.toc{max-width:820px}.article p,.article li{max-width:76ch}.article section p{margin:0 0 20px}.article ul{padding-left:24px}.article li{margin:10px 0}.article h2{font-size:clamp(26px,3vw,36px);margin-top:48px}.article h1{max-width:900px}
.table-scroll{overflow-x:auto;max-width:100%;margin:24px 0;border:1px solid var(--line)}.table-scroll:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.table-scroll table{min-width:550px;background:var(--white)}.table-scroll tbody th{background:#eef0e4;font-weight:650;min-width:150px}.table-scroll td{min-width:180px}.table-scroll caption{font-size:15px;letter-spacing:0}th,td{overflow-wrap:anywhere}
.toc a,.nav a,.foot a{display:inline-block;min-height:28px}.toc{gap:12px 20px}.sources{font-size:14px!important;line-height:1.65}.sources a{display:inline;overflow-wrap:anywhere}.source-record{border-bottom:1px solid var(--line);padding-bottom:25px}.source-record h2{font-size:26px}
.question-list{max-width:900px}.question-list section{padding:10px 0 25px;border-bottom:1px solid var(--line)}.question-list h2{font-size:24px}.question-list p{margin:12px 0}.question-list a{padding:7px 0;display:inline-block}
.vendor-list{max-width:950px}.vendor{border-top:1px solid var(--line);padding:25px 0}.vendor h2{margin:10px 0 20px}.vendor .answer{max-width:750px}.next{border-top:2px solid var(--green);margin-top:55px;padding-top:15px}.next h2{font-size:26px}.next p{font-size:16px;margin:12px 0}.strip{padding:30px;background:var(--green);color:white;margin-top:55px}.strip h2{margin-top:0}.strip p{max-width:75ch}
.foot{max-width:1240px;margin:auto;padding:35px 5%;border-top:1px solid var(--line);font-size:14px;display:block}.foot nav{display:flex;gap:20px;flex-wrap:wrap}.foot p{max-width:80ch}.placeholder{font-size:14px;padding:15px 20px;background:#eeeadf;border-left:3px solid #8c6943;color:var(--ink)}.preview{letter-spacing:.03em}.hero aside{transform:none}.card h3{font-size:23px}.grid{align-items:stretch}
@media(max-width:700px){.masthead{display:block;padding-block:20px}.nav{margin-top:18px;gap:12px 22px}.brand{font-size:23px;display:block}.wrap{padding-top:30px}.hero{display:block}.hero aside{margin-top:32px;padding:25px}.grid{grid-template-columns:1fr}.section-heading{display:block}.section-heading a{display:block;margin-bottom:20px}.article h1{font-size:36px}.answer{padding:20px}.toc{font-size:14px}.foot{padding-bottom:35px}.table-scroll{margin-inline:0}.strip{padding:24px}.source-record h2{font-size:23px}h1,h2,h3{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.scroll-hint{display:none;font-size:13px;color:var(--muted)}@media(max-width:700px){.scroll-hint{display:block}.table-scroll tbody th{position:sticky;left:0;z-index:1}}

/* Compliance: ink-blue ledger with a warm highlight. */
.compliance{--ink:#203444;--green:#284d63;--muted:#4f6170;--lime:#eadb9c;--paper:#f6f5ef;--orange:#9f371e}
.compliance .hero aside{border-top:6px solid var(--green)}
.compliance .brand{max-width:350px}

.analytics-consent{position:fixed;bottom:1rem;left:1rem;right:1rem;max-width:40rem;background:#fff;color:#151515;border:2px solid #151515;padding:1rem;z-index:100;box-shadow:4px 4px 0 #151515}.analytics-consent p{margin:0 0 .75rem}.analytics-consent button{margin-top:.25rem}footer{padding:2rem clamp(1rem,5vw,5rem)}footer p{max-width:75ch}button{font:inherit;padding:.65rem 1rem;border:1px solid currentColor;cursor:pointer}button:focus-visible{outline:3px solid #145bc7;outline-offset:3px}main li{margin-block:.5rem}
