/* layanan.css — gaya halaman dinamis CSIRT (dipindah dari <style> & atribut style= blade lama agar CSP tanpa 'unsafe-inline'). */
/* Katalog CVE (partials/cve-gaya) */
.cv-wrap {
    --cv-bg: #0c1014; --cv-panel: #11171d; --cv-border: #1e2a33;
    --cv-green: #3ddc84; --cv-green-dim: #1d6b43; --cv-text: #c8d3da; --cv-muted: #7c8a94;
    font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.cv-section { background: var(--cv-bg); padding: 2.5rem 0 3.5rem; }
.cv-terminal { background: var(--cv-panel); border: 1px solid var(--cv-border); border-radius: 8px; overflow: hidden; }
.cv-terminal-bar { background: #0a0e12; border-bottom: 1px solid var(--cv-border); padding: .55rem .9rem; display: flex; align-items: center; gap: .5rem; }
.cv-dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.cv-dot.r { background: #ff5f56; } .cv-dot.y { background: #ffbd2e; } .cv-dot.g { background: #27c93f; }
.cv-terminal-title { color: var(--cv-muted); font-size: .8rem; margin-left: .6rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-terminal-body { padding: 1.1rem 1.2rem; }
.cv-prompt { color: var(--cv-green); font-size: .85rem; margin-bottom: .4rem; }
.cv-prompt .sym, .cv-meta .sym { color: var(--cv-muted); }
.cv-intro { color: var(--cv-text); font-size: .9rem; line-height: 1.7; }
.cv-intro a, .cv-note a, .cv-text a { color: var(--cv-green); }
.cv-meta { color: var(--cv-muted); font-size: .8rem; margin-top: .5rem; line-height: 1.7; }
.cv-meta b { color: var(--cv-green); }
.cv-toolbar { display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-end; margin: 1.4rem 0 1rem; }
.cv-field { display: flex; flex-direction: column; gap: .25rem; }
.cv-field label { color: var(--cv-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; }
.cv-select { background: #0a0e12; border: 1px solid var(--cv-border); color: var(--cv-text); font-family: inherit; font-size: .82rem; padding: .42rem .6rem; border-radius: 5px; min-width: 140px; }
.cv-select:focus { outline: none; border-color: var(--cv-green-dim); box-shadow: 0 0 0 2px rgba(61,220,132,.15); }
input.cv-select[type=search] { min-width: 240px; }
.cv-btn { font-family: inherit; font-size: .8rem; padding: .45rem .9rem; border-radius: 5px; border: 1px solid var(--cv-green-dim); background: rgba(61,220,132,.08); color: var(--cv-green); text-decoration: none; cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; transition: background .15s ease; }
.cv-btn:hover { background: rgba(61,220,132,.18); color: var(--cv-green); }
.cv-btn.ghost { border-color: var(--cv-border); background: transparent; color: var(--cv-muted); }
.cv-btn.ghost:hover { color: var(--cv-text); }
.cv-pages { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 14px 0 4px; }
.cv-pages .is-on { background: rgba(61,220,132,.22); cursor: default; }
.cv-pages .is-off { opacity: .4; cursor: default; pointer-events: none; }
.cv-pages-gap { color: var(--cv-green); opacity: .6; padding: 0 2px; }
.cv-table-wrap { border: 1px solid var(--cv-border); border-radius: 6px; overflow-x: auto; }
table.cv-table { width: 100%; border-collapse: collapse; font-size: .82rem; color: var(--cv-text); }
table.cv-table thead th { background: #0a0e12; color: var(--cv-muted); text-transform: uppercase; letter-spacing: .05em; font-size: .7rem; font-weight: 600; text-align: left; padding: .6rem .8rem; border-bottom: 1px solid var(--cv-border); white-space: nowrap; }
table.cv-table tbody td { padding: .6rem .8rem; border-bottom: 1px solid var(--cv-border); vertical-align: top; }
table.cv-table tbody tr:last-child td { border-bottom: none; }
table.cv-table tbody tr:hover { background: rgba(61,220,132,.04); }
.cv-id { color: var(--cv-green); white-space: nowrap; font-weight: 600; text-decoration: none; }
.cv-id:hover { text-decoration: underline; color: var(--cv-green); }
.cv-desc { color: var(--cv-muted); font-size: .76rem; margin-top: .25rem; line-height: 1.5; }
.cv-prod { color: #8fb8ff; font-size: .74rem; margin-top: .2rem; }
.cv-tag { display: inline-block; font-size: .68rem; padding: .15rem .5rem; border-radius: 4px; letter-spacing: .04em; border: 1px solid var(--cv-border); color: var(--cv-text); background: #0a0e12; white-space: nowrap; }
.cv-tag.kev { color: #ff5f56; border-color: #5a2320; }
.cv-tag.adv { color: #8fb8ff; border-color: #25394f; text-decoration: none; }
.sev-rendah { color: #3ddc84; border-color: #1d6b43; } .sev-sedang { color: #d6b85a; border-color: #4a3f1f; }
.sev-tinggi { color: #ff9d4d; border-color: #5a3a1c; } .sev-kritis { color: #ff5f56; border-color: #5a2320; }
.cv-date { color: var(--cv-muted); font-size: .78rem; white-space: nowrap; }
.cv-empty { color: var(--cv-muted); text-align: center; padding: 2.2rem 1rem; font-size: .85rem; }
.cv-note { margin-top: 1.3rem; border-top: 1px solid var(--cv-border); color: var(--cv-muted); font-size: .78rem; line-height: 1.65; padding: .9rem 0 0; }
.cv-note b { color: var(--cv-text); }
/* detail */
.cv-h1 { color: var(--cv-green); font-size: 1.45rem; font-weight: 700; margin: .2rem 0 .6rem; word-break: break-word; }
.cv-h2 { color: var(--cv-text); font-size: .78rem; text-transform: uppercase; letter-spacing: .07em; margin: 1.8rem 0 .6rem; padding-bottom: .4rem; border-bottom: 1px solid var(--cv-border); }
.cv-text { color: var(--cv-text); font-size: .88rem; line-height: 1.75; }
.cv-text.en { color: #aebbc4; }
.cv-dl { display: grid; grid-template-columns: minmax(130px, 200px) 1fr; gap: .45rem 1rem; font-size: .84rem; color: var(--cv-text); margin: 0; }
.cv-dl dt { color: var(--cv-muted); font-weight: 400; }
.cv-dl dd { margin: 0; word-break: break-word; }
.cv-dl code { color: #d6b85a; background: transparent; font-size: .8rem; }
.cv-ref { list-style: none; padding: 0; margin: 0; font-size: .8rem; }
.cv-ref li { padding: .35rem 0; border-bottom: 1px solid rgba(30,42,51,.6); word-break: break-all; }
.cv-ref li:last-child { border-bottom: none; }
.cv-ref a { color: #8fb8ff; }
.cv-ref .t { color: var(--cv-muted); font-size: .7rem; margin-left: .4rem; word-break: normal; }
@media (max-width: 575px) {
    .cv-dl { grid-template-columns: 1fr; gap: .1rem; }
    .cv-dl dd { margin-bottom: .55rem; }
    input.cv-select[type=search] { min-width: 0; width: 100%; }
    .cv-field { flex: 1 1 45%; } .cv-field.cari { flex-basis: 100%; }
    .cv-h1 { font-size: 1.2rem; }
}
/* Self-assessment (asesmen-mandiri) */
.am-intro p { line-height: 1.7; }
.am-cat {
    margin-bottom: 1.4rem;
    border: 1px solid rgba(0, 255, 140, .14);
    border-radius: 8px;
    overflow: hidden;
}
.am-cat-head {
    background: rgba(0, 255, 140, .07);
    padding: .65rem .95rem;
    font-family: 'JetBrains Mono', monospace;
    font-size: .9rem;
    font-weight: 600;
    color: var(--accent, #00ff8c);
    border-bottom: 1px solid rgba(0, 255, 140, .14);
    display: flex;
    align-items: center;
    gap: .5rem;
}
.am-cat-body { padding: .35rem .95rem .6rem; }
.am-q {
    padding: .8rem 0;
    border-bottom: 1px dashed rgba(255, 255, 255, .08);
}
.am-q:last-child { border-bottom: 0; }
.am-q-text {
    display: block;
    margin-bottom: .55rem;
    font-size: .92rem;
    line-height: 1.55;
}
.am-q-num {
    font-family: 'JetBrains Mono', monospace;
    color: var(--accent, #00ff8c);
    margin-right: .4rem;
}
.am-opts {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.am-opt {
    flex: 1 1 30%;
    min-width: 120px;
}
.am-opt input { position: absolute; opacity: 0; pointer-events: none; }
.am-opt label {
    display: block;
    text-align: center;
    cursor: pointer;
    padding: .4rem .5rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: .82rem;
    transition: all .12s ease;
    margin-bottom: 0;
}
.am-opt label:hover { border-color: rgba(0, 255, 140, .5); }
.am-opt input:checked + label {
    background: rgba(0, 255, 140, .16);
    border-color: var(--accent, #00ff8c);
    color: var(--accent, #00ff8c);
    font-weight: 600;
}
.am-opt input:focus-visible + label { outline: 2px solid var(--accent, #00ff8c); }
.am-adv-title {
    display: block;
    font-size: .92rem;
    line-height: 1.5;
    margin-bottom: .5rem;
}
.am-adv-title a { color: inherit; text-decoration: underline; }
.am-adv-empty {
    font-size: .86rem;
    color: rgba(255, 255, 255, .6);
    padding: .5rem 0;
}
/* Hasil self-assessment (asesmen-hasil); --pct lewat kelas .ah-pct-N (dibangkitkan layanan) */
.ah-scorecard {
    text-align: center;
    padding: 1.6rem 1rem;
}
.ah-gauge {
    width: 168px;
    height: 168px;
    border-radius: 50%;
    margin: 0 auto 1rem;
    display: grid;
    place-items: center;
    background:
        radial-gradient(closest-side, var(--bg-soft, #0d1117) 76%, transparent 77%),
        conic-gradient(var(--accent, #00ff8c) calc(var(--pct) * 1%), rgba(255,255,255,.1) 0);
}
.ah-gauge-inner { text-align: center; }
.ah-gauge-pct {
    font-family: 'JetBrains Mono', monospace;
    font-size: 2.3rem;
    font-weight: 700;
    color: var(--accent, #00ff8c);
    line-height: 1;
}
.ah-gauge-sub {
    font-family: 'JetBrains Mono', monospace;
    font-size: .72rem;
    color: rgba(255,255,255,.6);
    margin-top: .2rem;
}
.ah-level-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-family: 'JetBrains Mono', monospace;
    font-size: 1rem;
    font-weight: 600;
}
.ah-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: .82rem;
    color: rgba(255,255,255,.7);
}
.ah-rec {
    border: 1px solid rgba(0, 255, 140, .14);
    border-radius: 8px;
    overflow: hidden;
    margin-top: 1rem;
}
.ah-rec-head {
    background: rgba(0, 255, 140, .07);
    padding: .6rem .95rem;
    font-family: 'JetBrains Mono', monospace;
    font-size: .9rem;
    font-weight: 600;
    color: var(--accent, #00ff8c);
    border-bottom: 1px solid rgba(0, 255, 140, .14);
}
.ah-rec-item {
    padding: .8rem .95rem;
    border-bottom: 1px dashed rgba(255,255,255,.08);
}
.ah-rec-item:last-child { border-bottom: 0; }
.ah-rec-cat {
    font-family: 'JetBrains Mono', monospace;
    font-size: .72rem;
    color: var(--accent, #00ff8c);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.ah-rec-q { display: block; font-size: .9rem; margin: .25rem 0 .35rem; }
.ah-rec-tip {
    font-size: .86rem;
    line-height: 1.55;
    color: rgba(255,255,255,.82);
}
.ah-rec-tip i { color: var(--accent, #00ff8c); }
.ah-allgood {
    padding: 1rem .95rem;
    font-size: .9rem;
    color: rgba(255,255,255,.85);
}
.ah-desk { margin: 0 auto; font-size: .92rem; line-height: 1.6; }
/* Pengganti atribut style= */
.cv-hijau { color: var(--cv-green); }
.cv-biru { color: #8fb8ff; }
.cv-mt0 { margin-top: 0; }
.ly-hp { position: absolute; left: -9999px; top: -9999px; height: 0; width: 0; overflow: hidden; }
.ly-tengah { text-align: center; }
.ly-catatan-kecil { font-size: .74rem; line-height: 1.5; }
.ly-pecah { word-break: break-all; }
.ly-kode-besar { font-size: 1.05rem; }
.ly-fs1 { font-size: 1rem; }
.ly-lh16 { line-height: 1.6; }
.ly-daftar { padding-left: 1.1rem; line-height: 1.7; }
.ly-fs78 { font-size: .78rem; }
.ly-fs82 { font-size: .82rem; }
.ly-w30 { width: 30%; }
.ly-w32 { width: 32%; }
.ly-pre { white-space: pre-line; }
.dilihat { white-space: nowrap; }
.tlp-label { display: inline-block; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: .72rem; font-weight: 700; letter-spacing: .04em; color: #FFFFFF; background: #000000; border: 1px solid #3a4652; border-radius: 3px; padding: .1rem .45rem; text-decoration: none; line-height: 1.5; }
.ly-sibuk { opacity: .7; cursor: progress; }
.ah-pct-0{--pct:0;}
.ah-pct-1{--pct:1;}
.ah-pct-2{--pct:2;}
.ah-pct-3{--pct:3;}
.ah-pct-4{--pct:4;}
.ah-pct-5{--pct:5;}
.ah-pct-6{--pct:6;}
.ah-pct-7{--pct:7;}
.ah-pct-8{--pct:8;}
.ah-pct-9{--pct:9;}
.ah-pct-10{--pct:10;}
.ah-pct-11{--pct:11;}
.ah-pct-12{--pct:12;}
.ah-pct-13{--pct:13;}
.ah-pct-14{--pct:14;}
.ah-pct-15{--pct:15;}
.ah-pct-16{--pct:16;}
.ah-pct-17{--pct:17;}
.ah-pct-18{--pct:18;}
.ah-pct-19{--pct:19;}
.ah-pct-20{--pct:20;}
.ah-pct-21{--pct:21;}
.ah-pct-22{--pct:22;}
.ah-pct-23{--pct:23;}
.ah-pct-24{--pct:24;}
.ah-pct-25{--pct:25;}
.ah-pct-26{--pct:26;}
.ah-pct-27{--pct:27;}
.ah-pct-28{--pct:28;}
.ah-pct-29{--pct:29;}
.ah-pct-30{--pct:30;}
.ah-pct-31{--pct:31;}
.ah-pct-32{--pct:32;}
.ah-pct-33{--pct:33;}
.ah-pct-34{--pct:34;}
.ah-pct-35{--pct:35;}
.ah-pct-36{--pct:36;}
.ah-pct-37{--pct:37;}
.ah-pct-38{--pct:38;}
.ah-pct-39{--pct:39;}
.ah-pct-40{--pct:40;}
.ah-pct-41{--pct:41;}
.ah-pct-42{--pct:42;}
.ah-pct-43{--pct:43;}
.ah-pct-44{--pct:44;}
.ah-pct-45{--pct:45;}
.ah-pct-46{--pct:46;}
.ah-pct-47{--pct:47;}
.ah-pct-48{--pct:48;}
.ah-pct-49{--pct:49;}
.ah-pct-50{--pct:50;}
.ah-pct-51{--pct:51;}
.ah-pct-52{--pct:52;}
.ah-pct-53{--pct:53;}
.ah-pct-54{--pct:54;}
.ah-pct-55{--pct:55;}
.ah-pct-56{--pct:56;}
.ah-pct-57{--pct:57;}
.ah-pct-58{--pct:58;}
.ah-pct-59{--pct:59;}
.ah-pct-60{--pct:60;}
.ah-pct-61{--pct:61;}
.ah-pct-62{--pct:62;}
.ah-pct-63{--pct:63;}
.ah-pct-64{--pct:64;}
.ah-pct-65{--pct:65;}
.ah-pct-66{--pct:66;}
.ah-pct-67{--pct:67;}
.ah-pct-68{--pct:68;}
.ah-pct-69{--pct:69;}
.ah-pct-70{--pct:70;}
.ah-pct-71{--pct:71;}
.ah-pct-72{--pct:72;}
.ah-pct-73{--pct:73;}
.ah-pct-74{--pct:74;}
.ah-pct-75{--pct:75;}
.ah-pct-76{--pct:76;}
.ah-pct-77{--pct:77;}
.ah-pct-78{--pct:78;}
.ah-pct-79{--pct:79;}
.ah-pct-80{--pct:80;}
.ah-pct-81{--pct:81;}
.ah-pct-82{--pct:82;}
.ah-pct-83{--pct:83;}
.ah-pct-84{--pct:84;}
.ah-pct-85{--pct:85;}
.ah-pct-86{--pct:86;}
.ah-pct-87{--pct:87;}
.ah-pct-88{--pct:88;}
.ah-pct-89{--pct:89;}
.ah-pct-90{--pct:90;}
.ah-pct-91{--pct:91;}
.ah-pct-92{--pct:92;}
.ah-pct-93{--pct:93;}
.ah-pct-94{--pct:94;}
.ah-pct-95{--pct:95;}
.ah-pct-96{--pct:96;}
.ah-pct-97{--pct:97;}
.ah-pct-98{--pct:98;}
.ah-pct-99{--pct:99;}
.ah-pct-100{--pct:100;}
