/* ============ 5G Security Based on 3GPP — book design system ============ */
:root{
  --ink:#1d2733; --ink2:#3a4a5c; --blue:#2c5f8a; --blue-d:#1d4263; --blue-l:#eef3f9;
  --paper:#fdfcf8; --line:#c8d2dc; --red:#d32f2f; --red-d:#a31f1f; --bluestrong:#1256a0;
  --hl:#fff3c4;
}
*{box-sizing:border-box}
body{margin:0;background:#e7e4dc;color:var(--ink);font:18px/1.7 Georgia,'Times New Roman',serif}
.page{max-width:860px;margin:36px auto;background:var(--paper);box-shadow:0 3px 26px rgba(0,0,0,.14);border-radius:6px;padding:70px 78px}
@media(max-width:920px){.page{margin:0;padding:30px 20px;border-radius:0}}
.sans{font-family:'Segoe UI',system-ui,-apple-system,sans-serif}

/* ---------- chapter opener ---------- */
.kicker{font-family:'Segoe UI',system-ui,sans-serif;font-size:12.5px;letter-spacing:.22em;color:var(--blue);font-weight:700;text-transform:uppercase}
.ch-open{display:flex;gap:26px;align-items:flex-start;border-bottom:4px solid var(--blue);padding-bottom:26px;margin-bottom:8px}
.ch-num{font-family:'Segoe UI',system-ui,sans-serif;font-size:120px;font-weight:800;line-height:.85;color:var(--blue);opacity:.16}
h1{font-family:'Segoe UI',system-ui,sans-serif;font-size:40px;line-height:1.12;margin:8px 0 10px;color:var(--ink)}
.subtitle{font-size:18px;color:var(--ink2);font-style:italic;margin:0}
.quote{margin:30px 0;padding:20px 26px;border-left:4px solid var(--red);background:#fdf4f3;font-style:italic;font-size:19px;color:#6b2520;border-radius:0 8px 8px 0}
.quote .who{display:block;margin-top:6px;font-size:13px;font-style:normal;color:#a96a62;font-family:'Segoe UI',system-ui,sans-serif;letter-spacing:.08em}
.lede{font-size:19.5px;line-height:1.75}
.lede::first-letter{font-size:64px;float:left;line-height:.95;padding:4px 10px 0 0;color:var(--blue);font-family:Georgia,serif;font-weight:700}

/* ---------- headings ---------- */
h2{font-family:'Segoe UI',system-ui,sans-serif;font-size:26px;color:var(--blue);margin:2.4em 0 .6em;display:flex;align-items:center;gap:12px}
h2 .sec{flex:none;background:var(--blue);color:#fff;font-size:14px;font-weight:700;border-radius:6px;padding:3px 10px;letter-spacing:.04em}
h3{font-family:'Segoe UI',system-ui,sans-serif;font-size:19.5px;color:var(--ink2);margin:1.9em 0 .5em}
p{margin:.85em 0}
mark{background:var(--hl);padding:1px 4px;border-radius:3px}
strong.kw{color:var(--blue-d)}
.small{font-size:14px;color:#5d6b7a}

/* ---------- boxes ---------- */
.box{border-radius:10px;padding:18px 22px;margin:26px 0;font-size:16.5px}
.box .bt{font-family:'Segoe UI',system-ui,sans-serif;font-weight:800;font-size:13.5px;letter-spacing:.14em;text-transform:uppercase;display:flex;gap:8px;align-items:center;margin-bottom:8px}
.box-key{background:#eaf1fb;border:1px solid #bdd2ee;border-left:6px solid var(--bluestrong)}
.box-key .bt{color:var(--bluestrong)}
.box-warn{background:#fbeeec;border:1px solid #ecc9c4;border-left:6px solid var(--red)}
.box-warn .bt{color:var(--red)}
.box-std{background:var(--blue-l);border:1px solid #bccfdf;border-left:6px solid var(--blue)}
.box-std .bt{color:var(--blue)}
.box-obj{background:#f3f6fb;border:1px solid #c5d4e6;border-left:6px solid var(--blue)}
.box-obj .bt{color:var(--blue)}
.box-lab{background:#eef0f6;border:1px solid #c9cfdf;border-left:6px solid #5b6b9e}
.box-lab .bt{color:#46568c}
.box ul{margin:.4em 0 .2em;padding-left:22px}
.box li{margin:.35em 0}

/* ---------- tables ---------- */
table{border-collapse:collapse;width:100%;font-size:14.5px;font-family:'Segoe UI',system-ui,sans-serif;margin:18px 0}
th,td{border:1px solid var(--line);padding:8px 11px;text-align:left;vertical-align:top}
th{background:#e4ecf3;color:var(--blue-d)}
tr:nth-child(even) td{background:#f7fafc}
td b{color:var(--blue-d)}

/* ---------- figures ---------- */
figure{margin:36px 0;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.fig-head{display:flex;align-items:center;gap:12px;background:var(--blue);color:#fff;padding:9px 16px;font-family:'Segoe UI',system-ui,sans-serif}
.fig-head .no{flex:none;background:#fff;color:var(--blue);font-weight:800;font-size:12.5px;border-radius:5px;padding:2px 8px}
.fig-head .ft{font-size:15px;font-weight:600}
figure svg{display:block;width:100%;height:auto;background:#fff}
figcaption{padding:10px 18px 14px;font-size:14px;color:#52606e;font-family:'Segoe UI',system-ui,sans-serif;border-top:1px dashed var(--line);background:#fafbfc}
figcaption b{color:var(--blue-d)}

/* ---------- checklist & questions ---------- */
ul.check{list-style:none;padding:0}
ul.check li{padding:9px 12px 9px 44px;position:relative;border-bottom:1px dashed var(--line);font-size:16.5px}
ul.check li::before{content:"";position:absolute;left:8px;top:12px;width:18px;height:18px;border:2px solid var(--blue);border-radius:5px;background:#fff}
ol.rq{counter-reset:q;list-style:none;padding:0}
ol.rq li{counter-increment:q;position:relative;padding:12px 14px 12px 56px;margin:10px 0;background:var(--blue-l);border-radius:9px;font-size:16.5px}
ol.rq li::before{content:counter(q);position:absolute;left:14px;top:11px;width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-family:'Segoe UI',system-ui,sans-serif;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center}

/* ---------- SVG shared classes ---------- */
svg text{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;fill:var(--ink)}
svg .bx{fill:var(--blue-l);stroke:var(--blue);stroke-width:1.4}
svg .bxw{fill:#fff;stroke:#9fb3c4;stroke-width:1.2}
svg .bxd{fill:var(--blue);stroke:var(--blue-d)}
svg .bxn{fill:#1d4263;stroke:#142e46}
svg .bxr{fill:#fdf2f2;stroke:#d32f2f}
svg .tt{font-size:15px;font-weight:700}
svg .tl{font-size:12.5px}
svg .ts{font-size:11px;fill:#52606e}
svg .tw{fill:#fff}
svg .tb{fill:var(--blue-d);font-weight:700}
svg .red{fill:#d32f2f} svg .grn{fill:#1256a0} svg .gld{fill:#b3261e}
svg .ln{stroke:#5a6a7a;stroke-width:1.6;fill:none}
svg .lnb{stroke:#2c5f8a;stroke-width:1.8;fill:none}
svg .lnr{stroke:#d32f2f;stroke-width:1.8;fill:none}
svg .lng{stroke:#1256a0;stroke-width:1.8;fill:none}
svg .dash{stroke-dasharray:6 5}
svg .life{stroke:#7d93a8;stroke-width:1.4;stroke-dasharray:5 5}

/* ---------- nav ---------- */
.footer-nav{display:flex;justify-content:space-between;margin-top:54px;padding-top:20px;border-top:2px solid var(--line);font-family:'Segoe UI',system-ui,sans-serif;font-size:14.5px}
.footer-nav a{color:var(--blue);text-decoration:none;font-weight:600}
.topbar{max-width:860px;margin:14px auto -22px;font-family:'Segoe UI',system-ui,sans-serif;font-size:13.5px;padding:0 8px}
.topbar a{color:var(--blue);text-decoration:none;font-weight:600}
