.tcm{
  --bg:#f3f5f8; --panel:#ffffff; --panel2:#eef1f5; --ink:#141c28; --ink2:#475467; --ink3:#7a8699; --line:#d9dfe7;
  --accent:var(--primary-color-homepage,#EA002B); --accent-ink:#ffffff; --accent-soft:#fde6ea;
  --h0:#e6e9ee; --h1:#e7eefb; --h2:#b9d0f1; --h3:#6f9fe0; --h4:#1f5fae; --h3ink:#0d2446; --h4ink:#ffffff;
  --gap:#fff1ec; --gapline:#e7a48d; --ok:#1d7a4c; --warn:#b45309; --bad:#b42318;
  --shadow:0 8px 28px rgba(20,28,40,.16);
  --fd:"Poppins",sans-serif; --fb:"Poppins",sans-serif; --fm:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;
}
@media (prefers-color-scheme: dark){.tcm:not([data-theme="light"]){
  color-scheme:dark; --bg:#0f141c; --panel:#171e29; --panel2:#1e2733; --ink:#e8edf4; --ink2:#aab5c4; --ink3:#7b8797; --line:#2b3645;
  --accent:#ff4d6d; --accent-ink:#1a0710; --accent-soft:#3a1a26;
  --h0:#1c2430; --h1:#1d2c42; --h2:#27497a; --h3:#3f74c0; --h4:#8fb9f5; --h3ink:#ffffff; --h4ink:#0b1a30;
  --gap:#2e1d18; --gapline:#8a4a36; --ok:#4cc38a; --warn:#e8a54b; --bad:#f07366; --shadow:0 8px 28px rgba(0,0,0,.5);}}
.tcm[data-theme="dark"]{
  color-scheme:dark; --bg:#0f141c; --panel:#171e29; --panel2:#1e2733; --ink:#e8edf4; --ink2:#aab5c4; --ink3:#7b8797; --line:#2b3645;
  --accent:#ff4d6d; --accent-ink:#1a0710; --accent-soft:#3a1a26;
  --h0:#1c2430; --h1:#1d2c42; --h2:#27497a; --h3:#3f74c0; --h4:#8fb9f5; --h3ink:#ffffff; --h4ink:#0b1a30;
  --gap:#2e1d18; --gapline:#8a4a36; --ok:#4cc38a; --warn:#e8a54b; --bad:#f07366; --shadow:0 8px 28px rgba(0,0,0,.5);}
.tcm *{box-sizing:border-box}
.tcm [hidden]{display:none!important}
.tcm{background:var(--bg);color:var(--ink);font:15px/1.5 var(--fb);padding-inline:16px;padding-block:0 48px}
.tcm .wrap{max-width:1480px;margin:0 auto;padding:30px}
@media (max-width:640px){.tcm .wrap{padding:16px}}
.tcm a{color:var(--accent)}
.tcm button,.tcm input,.tcm select{font:inherit;color:inherit}
.tcm :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tcm .mono{font-family:var(--fm);font-size:.86em}
.tcm header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;padding-block:22px 14px;border-bottom:1px solid var(--line)}
.tcm .brand{display:flex;flex-direction:column;gap:2px}
.tcm .eyebrow{font:600 11px/1 var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.tcm h1{font:800 clamp(26px,3.4vw,38px)/1.05 var(--fd);font-stretch:82%;margin:0;letter-spacing:-.01em;text-wrap:balance}
.tcm .sub{color:var(--ink2);max-width:70ch;margin:4px 0 0}
.tcm .meta{color:var(--ink3);font-size:12.5px;text-align:right}
.tcm .meta b{color:var(--ink2);font-weight:600}
.tcm section.block{margin-top:24px}
.tcm .label{font:700 11px/1 var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin:0 0 12px}
.tcm .builder{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.tcm .builder>*{min-width:0}
.tcm .chip{max-width:100%}
.tcm .chip .cfgb{flex-wrap:wrap;min-width:0}
.tcm .panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:30px}
@media (max-width:640px){.tcm .panel{padding:18px}}
.tcm .hrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tcm select,.tcm input[type=search]{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:8px 10px;min-width:0}
.tcm input[type=search]{width:100%}
.tcm .selectbox{position:relative;flex:0 1 260px}
.tcm .selectbox select{width:100%;padding:8px 30px 8px 34px;appearance:none;-webkit-appearance:none;cursor:pointer}
.tcm .tcm-select-ic{position:absolute;left:12px;top:0;bottom:0;display:flex;align-items:center;color:var(--ink3);font-size:13px;line-height:1;pointer-events:none}
.tcm .selectbox::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;margin-top:-5px;border-right:2px solid var(--ink3);border-bottom:2px solid var(--ink3);transform:rotate(45deg);pointer-events:none}
.tcm .or-div{color:var(--ink3);font:700 11px var(--fd);text-transform:uppercase;letter-spacing:.08em}
@media (max-width:560px){.tcm .or-div{flex:0 0 100%;text-align:center}}
.tcm .searchbox{position:relative;flex:1 1 300px}
.tcm .sugg{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:360px;overflow:auto}
.tcm .sugg button{display:flex;width:100%;text-align:left;gap:10px;align-items:baseline;padding:8px 10px;border:0;background:none;cursor:pointer;border-bottom:1px solid var(--line)}
.tcm .sugg button:hover,.tcm .sugg button.act{background:var(--panel2)}
.tcm .sugg .v{font:600 12px var(--fd);color:var(--ink3);min-width:110px}
.tcm .sugg .caps{margin-left:auto;color:var(--ink3);font-size:12px;text-align:right}
.tcm .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}
.tcm .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ok);background:var(--panel);border-radius:999px;padding:4px 6px 4px 10px;font-size:13px;line-height:1.2;transition:border-color .15s ease,box-shadow .15s ease}
.tcm .chip:hover{box-shadow:0 2px 8px rgba(20,28,40,.1)}
.tcm .chip-ic{color:var(--ok);font-size:10px}
.tcm .chip .vn{font:600 11px var(--fd);color:var(--ink3);letter-spacing:.02em}
.tcm .chip .cfgb{border:0;background:none;cursor:pointer;padding:0;text-align:left;display:inline-flex;gap:6px;align-items:baseline;width:auto;height:auto;border-radius:0;color:inherit}
.tcm .chip .cfgb:hover{background:none;text-decoration:underline}
.tcm .chip .lic{font-size:11.5px;color:var(--accent);font-weight:600}
.tcm .chip button.x{border:0;background:none;cursor:pointer;width:20px;height:20px;border-radius:50%;color:var(--ink3);line-height:1}
.tcm .chip button.x:hover{background:var(--line);color:var(--ink)}
.tcm .btn{border:1px solid var(--line);background:var(--panel2);border-radius:7px;padding:7px 12px;cursor:pointer;font-weight:600;transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease}
.tcm .btn:hover{border-color:var(--ink3);transform:translateY(-1px)}
.tcm .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tcm .btn.primary:hover{box-shadow:var(--shadow)}
.tcm .btn.small{padding:4px 9px;font-size:13px}
.tcm .btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.tcm .plats{display:flex;flex-wrap:wrap;gap:6px}
.tcm .pl{border:1px solid var(--line);background:var(--panel2);border-radius:6px;padding:5px 9px;cursor:pointer;font-size:13px}
.tcm .pl[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.tcm .env{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.tcm .envg{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px;align-items:start}
@media (max-width:560px){.tcm .envg{grid-template-columns:1fr}}
.tcm .envg>span{font:700 11px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);padding-top:7px}
.tcm .envg>div{display:flex;flex-wrap:wrap;gap:6px}
.tcm .envc{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel2);border-radius:7px;padding:5px 10px 5px 7px;cursor:pointer;font-size:13px;text-align:left}
.tcm .envc .bx{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--ink3);display:inline-grid;place-items:center;font-size:11px;line-height:1;color:transparent;flex:none}
.tcm .envc[aria-pressed="true"]{border-color:var(--ink);background:var(--panel)}
.tcm .envc[aria-pressed="true"] .bx{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.tcm .envc small{color:var(--ink3);font-variant-numeric:tabular-nums}
.tcm .prof{border:1px solid var(--line);background:var(--panel2);border-radius:999px;padding:4px 11px;cursor:pointer;font-size:12.5px;font-weight:600}
.tcm .prof[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tcm .hint{color:var(--ink3);font-size:12.5px;margin-top:8px}
.tcm .kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
@media (max-width:900px){.tcm .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tcm .kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.tcm .kpi .n{font:800 30px/1 var(--fd);font-stretch:80%;font-variant-numeric:tabular-nums}
.tcm .kpi .t{font-size:12.5px;color:var(--ink2);margin-top:4px}
.tcm .kpi.gapk .n{color:var(--bad)}
.tcm .tacbars{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 14px;margin-top:12px}
.tcm .tb{font-size:12px;color:var(--ink2);cursor:pointer;background:none;border:0;text-align:left;padding:0}
.tcm .tb .bar{height:6px;border-radius:3px;background:var(--h0);overflow:hidden;margin-top:4px;display:flex}
.tcm .tb .bar i{display:block;height:100%}
.tcm .tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-top:22px;overflow-x:auto}
.tcm .tab{border:0;background:none;padding:10px 14px;cursor:pointer;font:700 14px var(--fd);letter-spacing:.02em;color:var(--ink3);border-bottom:3px solid transparent;white-space:nowrap;transition:color .15s ease,border-color .15s ease}
.tcm .tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tcm .tab:not([aria-selected="true"]):hover{color:var(--ink2)}
.tcm .toolbar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding-block:12px}
.tcm .toolbar label{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--ink2)}
.tcm .legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--ink2);margin-left:auto}
.tcm .legend span{display:inline-flex;align-items:center;gap:5px}
.tcm .sw{width:14px;height:14px;border-radius:3px;border:1px solid var(--line);display:inline-block}
.tcm .matrixwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.tcm .matrix{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:0;min-width:max-content}
.tcm .col{border-right:1px solid var(--line);padding:0 6px 8px;min-width:150px}
.tcm .col:last-child{border-right:0}
.tcm .colh{position:sticky;top:0;background:var(--panel);padding:10px 2px 8px;border-bottom:1px solid var(--line);margin-bottom:6px;z-index:2}
.tcm .colh b{display:block;font:700 13px/1.15 var(--fd);font-stretch:88%}
.tcm .colh small{color:var(--ink3);font-size:11.5px;font-variant-numeric:tabular-nums}
.tcm .cell{display:block;width:100%;text-align:left;border:1px solid transparent;border-radius:5px;padding:5px 7px;margin-bottom:3px;cursor:pointer;font-size:12.5px;line-height:1.25;background:var(--h0);color:var(--ink)}
.tcm .cell .id{font-family:var(--fm);font-size:10.5px;opacity:.75;display:block}
.tcm .cell.l0{background:var(--gap);border-color:var(--gapline)}
.tcm .cell.l1{background:var(--h1)}
.tcm .cell.l2{background:var(--h2)}
.tcm .cell.l3{background:var(--h3);color:var(--h3ink)}
.tcm .cell.l4{background:var(--h4);color:var(--h4ink)}
.tcm .cell.oos{background:transparent;border:1px dashed var(--line);color:var(--ink3)}
.tcm .cell.sub{margin-left:10px;width:calc(100% - 10px);font-size:12px}
.tcm .cell .sf{float:right;font-family:var(--fm);font-size:10px;opacity:.8}
.tcm .cell:hover{outline:2px solid var(--ink3);outline-offset:-1px}
.tcm .cell.sel{outline:2px solid var(--accent);outline-offset:-1px}
/* drawer */
.tcm .drawer{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(640px,92vw);max-height:min(680px,80vh);background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);z-index:2001;display:flex;flex-direction:column;overflow:hidden}
.tcm .drawer header{display:flex;gap:10px;align-items:flex-start;padding:16px 18px 12px;border-bottom:1px solid var(--line)}
.tcm .drawer header h2{font:800 22px/1.1 var(--fd);font-stretch:85%;margin:2px 0 0;text-wrap:balance}
.tcm .drawer .x{margin-left:auto;border:1px solid var(--line);background:var(--panel2);border-radius:7px;width:34px;height:34px;cursor:pointer;font-size:18px;flex:none}
.tcm .drawer .body{flex:1 1 auto;min-height:0;overflow:auto;padding:12px 18px 24px}
.tcm .drawer .dactions{flex:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 18px;border-top:1px solid var(--line);background:var(--panel)}
.tcm .drawer h3{font:700 12px/1 var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin:18px 0 8px}
.tcm .tags{display:flex;flex-wrap:wrap;gap:5px}
.tcm .tag{font-size:11.5px;border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--ink2);background:var(--panel2)}
.tcm .tag.p{border-color:var(--ok);color:var(--ok)} .tcm .tag.d{border-color:var(--h3);color:var(--h3)} .tcm .tag.f{border-color:var(--ink3)} .tcm .tag.v{border-color:var(--warn);color:var(--warn)}
.tcm :root[data-theme="dark"] .tag.d{color:var(--h4);border-color:var(--h4)}
.tcm .plist{display:flex;flex-direction:column;gap:8px}
.tcm .pitem{border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:var(--panel2)}
.tcm .pitem .top{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.tcm .pitem .top b{font-weight:700}
.tcm .pitem .top .vn{font:600 11px var(--fd);color:var(--ink3)}
.tcm .pitem .how{font-size:12.5px;color:var(--ink2);margin-top:4px}
.tcm .pitem .top .add{margin-left:auto}
.tcm .mlist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.tcm .mlist li{display:flex;gap:8px;align-items:baseline}
.tcm .dot{width:8px;height:8px;border-radius:50%;flex:none;transform:translateY(-1px);background:var(--line)}
.tcm .dot.on{background:var(--ok)}
.tcm .empty{color:var(--ink3);font-size:13.5px}
.tcm .scrim{position:fixed;inset:0;background:rgba(10,14,20,.35);z-index:2000}
/* D3FEND */
.tcm .d3grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);min-width:max-content}
.tcm .d3col .colh b{font-size:14px}
.tcm .d3par{margin-bottom:8px}
.tcm .d3par>.cell{font-weight:600}
.tcm .cell.d3on{background:var(--h3);color:var(--h3ink)}
.tcm .cell.d3part{background:var(--h1);border-color:var(--h2)}
/* playbooks */
.tcm .pb{border:1px solid var(--line);border-radius:14px;background:var(--panel);margin-bottom:10px;transition:box-shadow .18s ease}
.tcm .pb:hover{box-shadow:0 4px 16px rgba(20,28,40,.06)}
.tcm .pb>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:12px 14px;flex-wrap:wrap}
.tcm .pb>summary::-webkit-details-marker{display:none}
.tcm .pb>summary h3{margin:0;font:800 17px var(--fd);font-stretch:88%}
.tcm .pb>summary .pct{font:700 13px var(--fm);margin-left:auto}
.tcm .pb .pbb{padding:0 14px 14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.tcm .phase{border-top:3px solid var(--line);padding-top:8px}
.tcm .phase h4{margin:0 0 6px;font:700 12px var(--fd);letter-spacing:.1em;text-transform:uppercase}
.tcm .phase.harden{border-color:var(--ok)} .tcm .phase.detect{border-color:var(--h3)} .tcm .phase.respond{border-color:var(--accent)} .tcm .phase.gaps{border-color:var(--gapline)}
.tcm .phase ul{margin:0;padding-left:18px;font-size:13.5px}
.tcm .phase li{margin-bottom:3px}
.tcm .linkish{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:2px}
/* options */
.tcm .opt{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:16px 18px;margin-bottom:10px;transition:box-shadow .18s ease}
.tcm .opt:hover{box-shadow:0 4px 16px rgba(20,28,40,.06)}
@media (max-width:760px){.tcm .opt{grid-template-columns:1fr}}
.tcm .opt h3{margin:0;font:800 16px/1.15 var(--fd);font-stretch:88%}
.tcm .opt .gain{font:700 26px/1 var(--fd);font-stretch:80%;color:var(--accent);margin-top:6px}
.tcm .opt .gain small{font:400 12px var(--fb);color:var(--ink2);display:block;margin-top:3px}
.tcm .vendors{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}
.tcm .vend{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:4px 6px 4px 9px;font-size:13px;background:var(--panel2)}
.tcm .vend a{text-decoration:none;color:var(--ink)} .tcm .vend a:hover{text-decoration:underline}
.tcm .vend .vn{font:600 11px var(--fd);color:var(--ink3)}
.tcm .vend button{border:1px solid var(--line);background:var(--panel);border-radius:5px;cursor:pointer;font-size:12px;padding:1px 6px}
.tcm table.st{width:100%;border-collapse:collapse;font-size:13.5px}
.tcm table.st th,.tcm table.st td{text-align:left;border-bottom:1px solid var(--line);padding:8px 8px;vertical-align:top}
.tcm table.st th{font:700 11px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.tcm .num{font-variant-numeric:tabular-nums;font-family:var(--fm);font-size:12.5px}
.tcm .tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.tcm .note{font-size:12.5px;color:var(--ink3);max-width:110ch;margin-top:20px;line-height:1.55}
.tcm .cfg fieldset{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:0 0 10px}
.tcm .cfg legend{font:700 11px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);padding:0 4px}
.tcm .cfg label{display:flex;gap:8px;align-items:flex-start;padding:5px 2px;font-size:14px;cursor:pointer}
.tcm .cfg label input{margin-top:3px}
.tcm .cfg label small{display:block;color:var(--ink3);font-size:12px}
.tcm .cfg .inc{color:var(--ok);font-size:12px;font-weight:600}
.tcm .cfg input[type=number],.tcm .cfg input[type=text]{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:6px 8px;width:100%}
.tcm .twocol{display:grid;grid-template-columns:1fr 2fr;gap:10px}
.tcm .upg{border-color:var(--accent);background:var(--accent-soft)}
.tcm .upg .vn{color:var(--accent)}
.tcm .mix{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:14px}
.tcm .mixc{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:16px;transition:box-shadow .18s ease}
.tcm .mixc:hover{box-shadow:0 4px 16px rgba(20,28,40,.06)}
.tcm .mixc h4{margin:0;font:800 16px var(--fd);font-stretch:88%}
.tcm .mixc .n{font:800 26px/1 var(--fd);font-stretch:80%;margin-top:6px;font-variant-numeric:tabular-nums}
.tcm .mixc .t{font-size:12.5px;color:var(--ink2)}
.tcm .prow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:start;padding:8px 0;border-bottom:1px solid var(--line)}
.tcm .prow:last-child{border-bottom:0}
.tcm .prow .nm{font-weight:600}
.tcm .prow .vn{font:600 11px var(--fd);color:var(--ink3);display:block}
.tcm .prow select{margin-top:4px;max-width:100%;font-size:13px;padding:4px 6px}
.tcm .prow .optl{font-size:11px;color:var(--ink3);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.tcm .e8grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.tcm .e8c{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:14px;background:var(--panel);padding:18px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .18s ease}
.tcm .e8c:hover{box-shadow:0 4px 16px rgba(20,28,40,.06)}
.tcm .e8c:has(.pill.ok){border-left-color:var(--ok)}
.tcm .e8c:has(.pill.part){border-left-color:var(--warn)}
.tcm .e8c:has(.pill.no){border-left-color:var(--bad)}
.tcm .e8c h3{margin:0;font:800 17px/1.15 var(--fd);font-stretch:88%}
.tcm .e8c .hd{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.tcm .pill{font:700 11px var(--fd);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 9px;white-space:nowrap;border:1px solid}
.tcm .pill.ok{color:var(--ok);border-color:var(--ok)} .tcm .pill.part{color:var(--warn);border-color:var(--warn)} .tcm .pill.no{color:var(--bad);border-color:var(--bad)}
.tcm .mlbar{display:flex;gap:4px}
.tcm .mlbar span{flex:1;text-align:center;font:700 11px var(--fm);padding:4px 0;border-radius:4px;background:var(--h0);color:var(--ink3)}
.tcm .mlbar span.on{background:var(--h3);color:var(--h3ink)}
.tcm .e8c ul{margin:0;padding-left:18px;font-size:13.5px}
.tcm .disclaimer{margin-top:20px;border:1px solid var(--line);border-left:4px solid var(--warn);background:var(--panel);border-radius:8px;padding:14px 16px;font-size:13px;color:var(--ink2);max-width:none}
.tcm .disclaimer b{color:var(--ink)}
.tcm .subgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px}
@media (max-width:900px){.tcm .subgrid{grid-template-columns:minmax(0,1fr)}}
.tcm .subfields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
@media (max-width:560px){.tcm .subfields{grid-template-columns:minmax(0,1fr)}}
.tcm .subfields label{display:block;font-size:13px;padding:0;cursor:auto}
.tcm textarea.notes{width:100%;min-height:150px;resize:vertical;font:14px/1.45 var(--fb);background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 10px}
.tcm .sel{user-select:all;font-weight:600;color:var(--ink)}
.tcm .toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;z-index:2002;font-size:13.5px}
.tcm textarea.cp{width:100%;height:140px;font:12px var(--fm);background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px}
@media (prefers-reduced-motion:no-preference){.tcm .cell{transition:background .15s}}
/* ---------- wizard stepper ---------- */
.tcm .steps{display:flex;align-items:center;justify-content:center;gap:0;margin:32px 0 36px}
.tcm .step-item{display:flex;flex-direction:row;align-items:center;gap:8px;flex:none;width:auto;text-align:left}
.tcm .step-circle{position:relative;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--panel);border:2px solid var(--line);color:var(--ink3);font:700 12px var(--fd);transition:background .15s,border-color .15s,color .15s}
.tcm .step-check{display:none;font-size:13px}
.tcm .step-item[aria-current="step"] .step-circle{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent-soft)}
.tcm .step-item.done .step-circle{background:var(--ok);border-color:var(--ok);color:#fff}
.tcm .step-item.done .step-num{display:none}
.tcm .step-item.done .step-check{display:inline}
.tcm .step-label{font:700 12px var(--fd);letter-spacing:.02em;color:var(--ink3)}
.tcm .step-item[aria-current="step"] .step-label{color:var(--ink)}
.tcm .step-item.done .step-label{color:var(--ok)}
.tcm .step-line{flex:0 1 80px;min-width:24px;height:2px;background:var(--line);margin:0 8px}
@media (max-width:640px){
  .tcm .step-item{gap:4px}
  .tcm .step-label{font-size:10.5px}
  .tcm .step-circle{width:22px;height:22px;font-size:11px}
  .tcm .step-line{flex-basis:32px;margin:0 4px}
}
.tcm .step-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:24px}
.tcm .step-actions .btn.primary{padding:9px 16px}
.tcm .step-actions .btn i{font-size:12px}
/* keep the single-task steps (build / submit) from sprawling full-bleed width */
.tcm [data-stepview="1"] .builder,
.tcm [data-stepview="2"] .builder,
.tcm [data-stepview="3"] .submitp{max-width:960px;margin-inline:auto}
/* panel & field icons */
.tcm .panel{box-shadow:0 2px 10px rgba(20,28,40,.05);transition:box-shadow .2s ease}
.tcm .panel-ic{color:var(--accent);margin-right:8px;font-size:.9em}
.tcm .field-ic{color:var(--ink3);margin-right:6px;font-size:.85em}
.tcm .searchbox{position:relative}
.tcm .searchbox input[type=search]{padding-left:34px}
.tcm .tcm-search-ic{position:absolute;left:12px;top:0;bottom:0;display:flex;align-items:center;color:var(--ink3);font-size:13px;line-height:1;pointer-events:none}
/* KPI tile icons */
.tcm .kpi{position:relative;border-left:3px solid var(--h3);box-shadow:0 2px 10px rgba(20,28,40,.05);transition:transform .18s ease,box-shadow .18s ease}
.tcm .kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.tcm .kpi.gapk{border-left-color:var(--bad)}
.tcm .kpi .n{font-size:32px;letter-spacing:-.01em}
.tcm .kpi-ic{display:block;font-size:17px;color:var(--ink3);margin-bottom:8px}
.tcm .kpi.gapk .kpi-ic{color:var(--bad)}
/* collapsible advanced section */
.tcm .fulldetail{margin-top:28px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.tcm .fulldetail>summary{cursor:pointer;list-style:none;padding:14px 16px;font:700 14px var(--fd);font-stretch:88%;color:var(--ink2);display:flex;align-items:center;gap:10px}
.tcm .fulldetail>summary::-webkit-details-marker{display:none}
.tcm .fd-chevron{color:var(--ink3);font-size:12px;transition:transform .15s}
.tcm .fulldetail[open] .fd-chevron{transform:rotate(90deg)}
.tcm .fulldetail>.fdbody{padding:0 16px 16px;border-top:1px solid var(--line)}
.tcm .envdetail{margin-top:14px}
.tcm .envdetail>summary{cursor:pointer;font:700 11.5px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);display:flex;align-items:center;gap:7px}
.tcm .envdetail>summary::-webkit-details-marker{display:none}
.tcm .env-chevron{font-size:10px;transition:transform .15s}
.tcm .envdetail[open] .env-chevron{transform:rotate(90deg)}
.tcm .envdetail>.env{margin-top:14px}
.tcm .envdetail:not([open]) .env{display:none}
/* ---------- step 3: report request form ---------- */
/* this form's markup comes from the shared resources/includes/contact-embed-
   attachment.php include (used by all four regional sites), so it's never
   edited from here — everything below is styling only, scoped to .tcm, and
   keyed off the stable name="" attributes that include already renders. */
.tcm #subh{font:800 21px/1.3 var(--fd);letter-spacing:-.01em;text-transform:none;color:var(--ink);margin:0 0 4px}
.tcm .tcm-form{display:flex;flex-direction:column;gap:18px;margin-top:22px}
.tcm .tcm-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:560px){.tcm .tcm-form-row{grid-template-columns:minmax(0,1fr)}}
.tcm .tcm-field{display:flex;flex-direction:column;gap:7px}
.tcm .tcm-field--wide{grid-column:1 / -1}
.tcm .tcm-field label{font:700 11px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.tcm .tcm-field input,.tcm .tcm-field textarea.notes{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:10px 12px;width:100%;transition:border-color .15s ease,box-shadow .15s ease}
.tcm .tcm-field input:hover,.tcm .tcm-field textarea.notes:hover{border-color:var(--ink3)}
.tcm .tcm-field input:focus,.tcm .tcm-field textarea.notes:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
/* :invalid alone matches an empty required field before the visitor has
   touched it (none of these inputs carry a placeholder, so the usual
   :not(:placeholder-shown) guard never applies) — :user-invalid only
   lights up after the field has actually been interacted with */
.tcm .tcm-field input:user-invalid{border-color:var(--bad)}
.tcm .tcm-form-error{color:var(--bad);font-size:13px;margin:0}
.tcm .tcm-form-submit{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px}
.tcm .tcm-form-submit .btn{padding:11px 22px;font-size:14.5px}
.tcm .tcm-form-submit .btn:hover{transform:translateY(-1px)}
.tcm .grecaptcha-disclosure{color:var(--ink3);font-size:11.5px;margin:0}
.tcm .tcm-success-notice{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--ok);background:var(--panel2);border-radius:10px;padding:16px 18px}
.tcm .tcm-success-notice i{color:var(--ok);font-size:20px;margin-top:2px}
.tcm .tcm-success-notice p{margin:0;color:var(--ink);font-size:14.5px}
.tcm #tcmSuccessSummary{margin-top:18px}
