/* Member tools (/tools/<slug>/, src/pages/tools/[tool].astro): the page, the members' box and the reports. */

.tm{padding:34px 34px 48px;font-family:var(--ui)}
.tm-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tm-top h1{margin:0;font:800 46px/1.05 var(--ui);letter-spacing:-.03em;color:var(--i-ink,#0b1220)}
.tm-badge{display:inline-flex;align-items:center;gap:7px;font:700 13px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:#7a4a00;background:#fdf1d6;border:1px solid #f2d79a;border-radius:999px;padding:6px 12px}
.tm-badge svg{width:15px;height:15px}
.tm .lead{margin:14px 0 0;font:400 21px/1.55 var(--letter);color:var(--i-body,#334155);max-width:820px}
.tm-split{display:grid;background:#fff;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:28px;border-radius:22px;overflow:hidden;border:1px solid #dbe3f0;box-shadow:0 10px 30px rgba(15,30,60,.07)}
.tm-l{background:#fff;padding:34px}
.tm-l label{display:block;font:700 16px var(--ui);margin-bottom:10px;color:#0b1220}
.tm-row{display:flex;gap:10px}
.tm-in{flex:1;display:flex;align-items:center;gap:10px;height:58px;border:2px solid #c9d5ea;border-radius:14px;padding:0 16px;font:400 20px var(--ui);color:#94a3b8;background:#f8fafd}
.tm-go{display:inline-flex;align-items:center;gap:9px;height:58px;padding:0 22px;border-radius:14px;background:#2456e6;color:#fff;font:700 18px var(--ui);border:0;white-space:nowrap}
.tm-go svg,.tm-in svg{width:20px;height:20px}
.tm-gate{margin-top:22px;display:flex;gap:14px;align-items:flex-start;background:#fffaf0;border:1px solid #f2d79a;border-radius:16px;padding:18px 20px}
.tm-gate .k{flex:0 0 42px;height:42px;border-radius:12px;background:#fdf1d6;color:#9a5b00;display:grid;place-items:center}
.tm-gate .k svg{width:22px;height:22px}
.tm-gate b{display:block;font:700 18px var(--ui);color:#0b1220}
.tm-gate p{margin:4px 0 12px;font:400 16px/1.5 var(--ui);color:#475569}
.tm-gate .btns{display:flex;gap:10px;flex-wrap:wrap}
.tm-gate a{display:inline-flex;align-items:center;gap:8px;font:700 15.5px var(--ui);text-decoration:none;border-radius:11px;padding:10px 16px}
.tm-gate a.p{background:#2456e6;color:#fff}.tm-gate a.s{border:1.5px solid #c9d5ea;color:#2456e6;background:#fff}
.tm-gate a svg{width:17px;height:17px}
.tm-small{margin:16px 0 0;font:400 14.5px/1.5 var(--ui);color:#64748b}
.tm-r{background:#f3f6fc;color:#0b1220;border:1px solid #dbe3f0;border-radius:16px;margin:12px;padding:30px 32px;position:relative}
.tm-r .eb{font:600 12.5px var(--mono,ui-monospace,monospace);letter-spacing:.12em;text-transform:uppercase;color:#2456e6}
.tm-r h2{margin:6px 0 16px;font:800 24px var(--ui);color:#0b1220}
.tm-score{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.tm-score .n{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font:800 24px var(--ui);background:#2456e6;color:#fff}
.tm-score span{font:400 15.5px/1.45 var(--ui);color:#475569}
.tm-score b{display:block;color:#0b1220;font-size:18px}
.tm-checks{display:grid;gap:8px}
.tm-c{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #dbe3f0;border-radius:12px;padding:10px 14px;font:500 15.5px var(--ui)}
.tm-c i{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font:800 14px var(--ui);font-style:normal}
.tm-c i.ok{background:#dcfce7;color:#15803d}.tm-c i.w{background:#fef3c7;color:#b45309}
.tm-c em{margin-left:auto;font-style:normal;font:400 13.5px var(--mono,ui-monospace,monospace);color:#64748b}
.tm-h2{margin:44px 0 16px;font:800 30px var(--ui);letter-spacing:-.02em;color:#0b1220}
.tm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tm-card{border:1px solid #dbe3f0;border-radius:18px;padding:22px 24px;background:#fff}
.tm-card b{display:block;font:700 19px var(--ui);color:#0b1220;margin-bottom:6px}
.tm-card p{margin:0;font:400 16px/1.55 var(--ui);color:#475569}
.tm-also{margin-top:36px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-radius:18px;background:#f3f6fc;padding:20px 24px}
.tm-also b{font:700 18px var(--ui)}.tm-also span{font:400 16px var(--ui);color:#475569}
.tm-also a{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font:700 16px var(--ui);color:#2456e6;text-decoration:none}
@media (max-width:900px){.tm{padding:22px 16px 36px}.tm-top h1{font-size:34px}.tm-split{grid-template-columns:1fr}.tm-l,.tm-r{padding:22px 18px}.tm-row{flex-direction:column}.tm-grid{grid-template-columns:1fr}.tm .lead{font-size:18px}}
.tm-in input{flex:1;min-width:0;border:0;background:transparent;font:400 20px var(--ui);color:#0b1220;outline:none;height:100%}
.tm-in:focus-within{border-color:#2456e6;background:#fff}
.tm-in input::placeholder{color:#94a3b8}
.tm-go{cursor:pointer}.tm-go:disabled{opacity:.55;cursor:not-allowed}
.tm-form .tm-lab,.tm-l .tm-lab{display:block;font:700 16px var(--ui);margin:0 0 10px;color:#0b1220}
.tm-opts{display:flex;gap:22px;flex-wrap:wrap;margin-top:14px}
.tm-opts fieldset{border:0;padding:0;margin:0;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.tm-opts legend{float:left;font:700 14px var(--ui);color:#475569;margin-right:6px}
.tm-opts label{font:500 15.5px var(--ui);color:#0b1220;display:inline-flex;gap:6px;align-items:center}
.tm-drop{display:flex;flex-direction:column;align-items:center;gap:4px;border:2px dashed #c9d5ea;border-radius:16px;background:#f8fafd;padding:22px 16px;text-align:center;cursor:pointer;margin-bottom:14px}
.tm-drop.small{padding:14px}
.tm-drop.over{border-color:#2456e6;background:#eef3ff}
.tm-drop input{position:absolute;opacity:0;width:1px;height:1px}
.tm-drop svg{width:26px;height:26px;color:#2456e6}
.tm-drop b{font:700 16.5px var(--ui);color:#0b1220}.tm-drop span{font:400 14.5px var(--ui);color:#64748b}
.tm-picked{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.tm-picked li{display:flex;justify-content:space-between;gap:10px;font:400 14.5px var(--ui);background:#f3f6fc;border-radius:9px;padding:7px 11px}
.tm-picked li.bad{background:#fef2f2;color:#b91c1c}
.tm-addr{display:flex;align-items:center;gap:10px;min-height:58px;border:2px solid #c9d5ea;border-radius:14px;padding:8px 14px;background:#f8fafd;font:500 17px var(--mono);color:#0b1220;margin-bottom:12px;word-break:break-all}
.tm-addr span{font:400 16px var(--ui);color:#94a3b8}
.tm-err{margin:12px 0 0;color:#b91c1c;font:500 15.5px/1.45 var(--ui)}
.tm-left{margin:12px 0 0;color:#475569;font:400 14.5px var(--ui)}
.tm-gate.paused{background:#f3f6fc;border-color:#dbe3f0}
.tm-out{margin-top:28px}
.tm-mine{margin-top:22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid #dbe3f0;border-radius:18px;background:#fff;padding:16px 20px}
.tm-mine .k{flex:0 0 40px;height:40px;border-radius:12px;background:#eef3ff;color:#2456e6;display:grid;place-items:center}
.tm-mine .k svg{width:20px;height:20px}
.tm-mine b{font:700 17px var(--ui);color:#0b1220}
.tm-mine span{font:400 15px/1.45 var(--ui);color:#475569}
.tm-mine .txt{flex:1;min-width:220px}
.tm-mine form{display:flex;gap:8px;flex-wrap:wrap}
.tm-mine input{height:42px;border:1.5px solid #c9d5ea;border-radius:10px;padding:0 12px;font:400 16px var(--ui);min-width:200px}
.tm-mine a,.tm-mine button{display:inline-flex;align-items:center;gap:7px;font:700 15px var(--ui);border-radius:10px;padding:10px 14px;text-decoration:none;border:1.5px solid #c9d5ea;color:#2456e6;background:#fff;cursor:pointer}
.tm-mine button.p{background:#2456e6;border-color:#2456e6;color:#fff}
.tm-mine svg{width:16px;height:16px}
/* Reports */
.tr-panel{border:1px solid #dbe3f0;border-radius:20px;background:#fff;padding:24px 26px;margin-bottom:18px}
.tr-panel h2{margin:0 0 6px;font:800 24px/1.2 var(--ui);color:#0b1220}
.tr-panel h3{margin:0 0 8px;font:700 19px var(--ui);color:#0b1220}
.tr-panel p{margin:6px 0;font:400 16px/1.55 var(--ui);color:#334155}
.tr-loading{display:flex;align-items:center;gap:12px;font:500 17px var(--ui);color:#334155}
.tr-spin{width:22px;height:22px;border-radius:50%;border:3px solid #dbe3f0;border-top-color:#2456e6;animation:trs 0.8s linear infinite;flex:0 0 22px}
@keyframes trs{to{transform:rotate(360deg)}}
.tr-over{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.tr-ring{--c:#2456e6;width:104px;height:104px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*1%),#e5ebf5 0);display:grid;place-items:center;flex:0 0 104px}
.tr-ring>div{width:82px;height:82px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center}
.tr-ring b{display:block;font:800 26px/1 var(--ui);color:#0b1220}.tr-ring small{font:500 12px var(--ui);color:#64748b}
.tr-ring.pass{--c:#16a34a}.tr-ring.warn{--c:#d97706}.tr-ring.fail{--c:#dc2626}
.tr-over .txt{flex:1;min-width:240px}
.tr-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.tr-chip{font:700 13.5px var(--ui);border-radius:999px;padding:5px 11px}
.tr-chip.pass{background:#dcfce7;color:#15803d}.tr-chip.warn{background:#fef3c7;color:#b45309}.tr-chip.fail{background:#fee2e2;color:#b91c1c}.tr-chip.info{background:#e0e7ff;color:#3730a3}
.tr-who{font:400 14.5px/1.5 var(--ui)!important;color:#64748b!important}
.tr-group{margin:26px 0 0}
.tr-group>h3{font:800 22px var(--ui);color:#0b1220;margin:0 0 12px;letter-spacing:-.01em}
.tr-check{border:1px solid #dbe3f0;border-left:5px solid #94a3b8;border-radius:14px;background:#fff;padding:16px 18px;margin-bottom:10px}
.tr-check.pass{border-left-color:#16a34a}.tr-check.warn{border-left-color:#d97706}.tr-check.fail{border-left-color:#dc2626}.tr-check.info{border-left-color:#6366f1}
.tr-head{display:flex;gap:12px;align-items:flex-start}
.tr-ic{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font:800 14px var(--ui)}
.pass>.tr-head .tr-ic{background:#dcfce7;color:#15803d}.warn>.tr-head .tr-ic{background:#fef3c7;color:#b45309}.fail>.tr-head .tr-ic{background:#fee2e2;color:#b91c1c}.info>.tr-head .tr-ic{background:#e0e7ff;color:#3730a3}
.tr-head h4{margin:2px 0 4px;font:700 17.5px var(--ui);color:#0b1220;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tr-tag{font:700 12px var(--ui);text-transform:uppercase;letter-spacing:.05em;color:#64748b}
.tr-head p{margin:0;font:400 16px/1.55 var(--ui);color:#334155}
.tr-check details{margin:12px 0 0 40px}
.tr-check summary{cursor:pointer;font:700 15px var(--ui);color:#2456e6}
.tr-check ol{margin:10px 0;padding-left:22px;font:400 15.5px/1.6 var(--ui);color:#334155}
.tr-check pre,.tr-pre{white-space:pre-wrap;word-break:break-all;background:#f3f6fc;border-radius:10px;padding:10px 12px;font:400 13.5px/1.5 var(--mono);color:#334155}
.tr-rec{border:1px solid #dbe3f0;border-radius:12px;background:#f8fafd;padding:12px 14px;margin:10px 0}
.tr-rec dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0;align-items:center}
.tr-rec dt{font:700 13.5px var(--ui);color:#475569}
.tr-rec dd{margin:0;display:flex;gap:8px;align-items:center;min-width:0}
.tr-rec code{font:400 14px var(--mono);word-break:break-all;color:#0b1220}
.tr-rec small{display:block;font:400 13px var(--ui);color:#64748b}
.tr-copy{display:inline-flex;align-items:center;gap:5px;font:600 13px var(--ui);color:#2456e6;background:#fff;border:1px solid #c9d5ea;border-radius:8px;padding:4px 9px;cursor:pointer;flex:0 0 auto}
.tr-copy svg{width:13px;height:13px}
.tr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tr-card{border:1px solid #dbe3f0;border-radius:16px;background:#fff;padding:18px 20px}
.tr-card.wide{grid-column:1/-1}
.tr-card h3{margin:0 0 10px;font:700 17.5px var(--ui);color:#0b1220;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tr-card dl{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:7px 14px;margin:0}
.tr-card dt{font:600 14.5px var(--ui);color:#64748b}.tr-card dd{margin:0;font:400 15.5px var(--ui);color:#0b1220;word-break:break-word}
.tr-card ul{margin:0;padding-left:18px;font:400 15.5px/1.6 var(--ui)}
.tr-pill{font:700 12.5px var(--ui);border-radius:999px;padding:3px 9px;background:#fef3c7;color:#b45309;margin-left:6px}
.tr-pill.ok{background:#dcfce7;color:#15803d}.tr-pill.bad{background:#fee2e2;color:#b91c1c}
.tr-mono{font-family:var(--mono);font-size:14px}
.tr-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.tr-btn{display:inline-flex;align-items:center;gap:8px;font:700 15px var(--ui);border-radius:11px;padding:10px 16px;text-decoration:none;border:1.5px solid #c9d5ea;color:#2456e6;background:#fff;cursor:pointer}
.tr-btn.p{background:#2456e6;border-color:#2456e6;color:#fff}
.tr-btn svg{width:16px;height:16px}
.tr-verdict{display:flex;gap:12px;align-items:flex-start;border-radius:14px;padding:14px 16px;margin:12px 0;background:#f0fdf4;border:1px solid #bbf7d0}
.tr-verdict.warn,.tr-verdict.caution{background:#fffbeb;border-color:#fde68a}.tr-verdict.bad,.tr-verdict.danger{background:#fef2f2;border-color:#fecaca}
.tr-verdict b{display:block;font:700 17px var(--ui);color:#0b1220}.tr-verdict span{font:400 15.5px/1.5 var(--ui);color:#334155}
.tr-route{list-style:none;margin:16px 0;padding:0;display:grid;gap:0}
.tr-route li{display:grid;grid-template-columns:16px 90px 1fr;gap:12px;align-items:start;padding:8px 0;border-left:3px solid #dbe3f0;margin-left:6px;padding-left:12px;position:relative}
.tr-route li i{position:absolute;left:-9px;top:12px;width:15px;height:15px;border-radius:50%;background:#16a34a;border:3px solid #fff}
.tr-route li.warn i{background:#d97706}.tr-route li.bad i{background:#dc2626}
.tr-route li b{grid-column:2;font:700 15px var(--ui)}.tr-route li div{grid-column:3;font:400 15px/1.45 var(--ui);color:#334155}
.tr-route code{font:500 14px var(--mono);color:#0b1220}
.tr-table{width:100%;border-collapse:collapse;font:400 14.5px var(--ui)}
.tr-table th,.tr-table td{text-align:left;padding:8px 10px;border-bottom:1px solid #e5ebf5;vertical-align:top}
.tr-table th{font-weight:700;color:#475569}
.tr-table td.n,.tr-table th.n{text-align:right}
.tr-scroll{overflow-x:auto}
.tr-files{list-style:none;padding:0;margin:0;display:grid;gap:6px;font:400 15px var(--ui)}
.tr-files li.bad{color:#b91c1c}
.tr-bar{height:10px;border-radius:999px;background:#e5ebf5;overflow:hidden;margin:12px 0}
.tr-bar i{display:block;height:100%;background:#2456e6;border-radius:999px;transition:width .4s}
.tr-small{font:400 14px/1.5 var(--ui)!important;color:#64748b!important}
@media (max-width:900px){.tr-grid{grid-template-columns:1fr}.tr-panel{padding:18px 16px}.tr-check details{margin-left:0}.tm-in input{font-size:17px}.tr-route li{grid-template-columns:16px 70px 1fr}}
.tm-c i.bad{background:#fee2e2;color:#b91c1c}
.tm-mine[hidden],.tm-out[hidden],.tm-gate[hidden],.tm-left[hidden],.tm-err[hidden]{display:none!important}
.tm-score .n{flex:0 0 64px}@media (max-width:900px){.tm-in{flex:none}.tm-go{justify-content:center}.tm-mine{align-items:flex-start}}
.pv-members-tools{margin-top:40px}.tm-hub-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 6px;font:800 28px var(--ui);letter-spacing:-.02em;color:#0b1220}.pv-members-tools .lead{margin:0 0 18px}

/* /tools/: a little colour on the icons (cycles through six soft tints) and a compact grid for the members' tools */
.pv-tools .pv-tool:nth-child(6n+1) .ic{background:#eaf0ff;color:#2f5bea}
.pv-tools .pv-tool:nth-child(6n+2) .ic{background:#e7f7ef;color:#16a34a}
.pv-tools .pv-tool:nth-child(6n+3) .ic{background:#fff1e6;color:#ea580c}
.pv-tools .pv-tool:nth-child(6n+4) .ic{background:#f3ecff;color:#7c3aed}
.pv-tools .pv-tool:nth-child(6n+5) .ic{background:#e6f6fb;color:#0891b2}
.pv-tools .pv-tool:nth-child(6n+6) .ic{background:#fdecef;color:#e11d48}
.pv-tools.mini{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;padding-bottom:40px}
.pv-tools.mini .pv-tool{grid-template-columns:40px 1fr;column-gap:12px;row-gap:2px;padding:14px 16px;border-radius:14px;align-items:center}
.pv-tools.mini .pv-tool .ic{width:40px;height:40px;border-radius:11px;grid-row:span 2;align-self:start}
.pv-tools.mini .pv-tool .ic svg.i{width:20px;height:20px}
.pv-tools.mini .pv-tool b{font-size:17px}
.pv-tools.mini .pv-tool span:not(.ic){font-size:14px;line-height:1.45}
.pv-members-tools .tm-hub-h,.pv-members-tools>.lead{padding:0 34px}
.ib-lhead+.pv-tools{padding-top:24px}
.ib-lhead+.pv-members-tools{margin-top:28px}
.pv-open{margin-top:8px}
.pv-tools.mini .pv-tool.soon b em.cs{font:600 12px var(--ui);color:var(--i-soft);margin-left:6px;display:inline}
.tm-free{display:inline-flex;align-items:center;gap:6px;margin:-6px 34px 18px;padding:5px 12px;border-radius:999px;background:#e7f7ef;color:#15803d;font:700 13px var(--ui)}.tm-free svg.i{width:14px;height:14px}
@media (max-width:760px){.pv-members-tools .tm-hub-h,.pv-members-tools>.lead{padding:0 18px}.tm-free{margin-left:18px}}
.tm-gate{margin-top:40px;padding:24px 26px;gap:16px}.tm-gate .btns{margin-top:16px}.tm-gate~.tm-small{margin-top:22px}
