.tt-tool{border:1px solid #e2e8f0;border-radius:14px;padding:22px 22px 18px;margin:28px 0;background:#fff;box-shadow:0 1px 2px rgb(15 23 42 / .04)}.tt-tool *{box-sizing:border-box}.tt-tool__head{margin-bottom:14px}.tt-tool__title{display:block;font-size:1.18rem;font-weight:700;color:#0f172a;line-height:1.25}.tt-tool__blurb{margin:.35em 0 0;color:#475569;font-size:.95rem}.tt-tool__label{display:block;font-weight:600;color:#0f172a;font-size:.9rem;margin:14px 0 6px}.tt-tool__label span{font-weight:400;color:#64748b}.tt-tool__form{display:flex;flex-direction:column;gap:0}.tt-tool__form--lookup{flex-direction:row;gap:10px;flex-wrap:wrap}.tt-tool input[type=text],.tt-tool input[type=email],.tt-tool input[type=number],.tt-tool select{width:100%;padding:11px 13px;border:1px solid #cbd5e1;border-radius:9px;font-size:1rem;color:#0f172a;background:#fff}.tt-tool__form--lookup .tt-tool__domain{flex:1 1 240px;width:auto}.tt-tool input:focus,.tt-tool select:focus{outline:2px solid #2563eb;outline-offset:1px;border-color:#2563eb}.tt-tool__btn{background:var(--tt-blue,#2563eb);color:#fff;border:0;border-radius:9px;font-weight:600;font-size:.98rem;padding:11px 20px;cursor:pointer;transition:background .15s ease;white-space:nowrap}.tt-tool__btn:hover,.tt-tool__btn:focus{background:var(--tt-blue-dark,#1d4fd7)}.tt-tool__form--gen .tt-tool__btn{margin-top:16px;align-self:flex-start}.tt-tool__checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 16px;margin:4px 0}.tt-tool__check{display:flex;align-items:center;gap:8px;font-size:.95rem;color:#334155;font-weight:400;cursor:pointer}.tt-tool__check input{width:auto}.tt-tool__out:empty{display:none}.tt-tool__out{margin-top:16px}.tt-tool__loading{color:#64748b;font-size:.95rem}.tt-tool__ok{color:#0f172a;font-size:.95rem;margin-bottom:10px}.tt-tool__err{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:9px;padding:12px 14px;font-size:.95rem}.tt-tool__warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:9px;padding:12px 14px;font-size:.92rem;margin-bottom:12px}.tt-tool__rec{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px;margin-bottom:12px;position:relative}.tt-tool__reclabel{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:700;margin-bottom:8px}.tt-tool__code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:7px;padding:10px 12px;word-break:break-all;line-height:1.5}.tt-tool__recnote{margin:10px 0 0;color:#475569;font-size:.88rem}.tt-tool__next{margin:14px 0 0;padding:11px 14px;background:var(--tt-blue-50,#eff6ff);border:1px solid #dbeafe;border-radius:9px;color:#1e3a8a;font-size:.88rem}.tt-tool__next strong{color:#1e3a8a}.tt-tool__next a{color:var(--tt-blue,#2563eb);font-weight:600}.tt-tool__copy{margin-top:10px;background:#fff;border:1px solid #cbd5e1;color:#1d4fd7;border-radius:7px;font-size:.82rem;font-weight:600;padding:6px 12px;cursor:pointer}.tt-tool__copy:hover{background:#eff6ff;border-color:#93c5fd}.tt-tool__table{width:100%;border-collapse:collapse;margin-top:6px;font-size:.92rem}.tt-tool__table th,.tt-tool__table td{text-align:left;padding:8px 10px;border-bottom:1px solid #e2e8f0;vertical-align:middle}.tt-tool__table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.tt-tool__table td:first-child{width:70px;color:#475569;font-variant-numeric:tabular-nums}.tt-tool__note{margin:14px 0 0;color:var(--tt-muted,#64748b);font-size:.8rem}.tt-tool__note a{color:#2563eb}.tt-tool__headers{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.45;padding:11px 13px;border:1px solid #cbd5e1;border-radius:9px;color:#0f172a;background:#fff;resize:vertical;min-height:150px}.tt-tool__headers:focus{outline:2px solid #2563eb;outline-offset:1px;border-color:#2563eb}.tt-tool__badges{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 6px}.tt-badge{display:inline-block;font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid #fff0}.tt-badge--pass{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.tt-badge--fail{background:#fef2f2;color:#991b1b;border-color:#fecaca}.tt-badge--na{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.tt-badge--warn{background:#fffbeb;color:#92400e;border-color:#fde68a}.tt-tool__form--lookup .tt-tool__selector,.tt-tool__form--lookup .tt-tool__rrtype{flex:0 1 auto;width:auto}.tt-audit__score{display:flex;align-items:center;gap:16px;margin:14px 0 6px;padding:16px 18px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.tt-audit__num{font-size:2rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;line-height:1}.tt-audit__num small{font-size:.9rem;font-weight:600;color:#64748b}.tt-audit__letter{font-size:1rem;font-weight:700;padding:5px 14px;border-radius:999px;background:#e2e8f0;color:#0f172a}.tt-audit__grade--A .tt-audit__letter{background:#dcfce7;color:#166534}.tt-audit__grade--B .tt-audit__letter{background:#ecfdf5;color:#065f46}.tt-audit__grade--C .tt-audit__letter{background:#fef9c3;color:#854d0e}.tt-audit__grade--D .tt-audit__letter{background:#ffedd5;color:#9a3412}.tt-audit__grade--F .tt-audit__letter{background:#fee2e2;color:#991b1b}.tt-audit__score{flex-wrap:wrap}.tt-audit__caption{flex-basis:100%;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--tt-muted,#64748b)}.tt-ex{background:var(--tt-surface,#f8fafc);border:1px solid var(--tt-border,#e2e8f0);border-radius:12px;padding:14px 16px;margin:12px 0 6px}.tt-ex__desc{margin:0 0 10px;font-size:.9rem;color:var(--tt-body,#334155)}.tt-ex__band{margin:0 0 12px;font-size:1rem;color:var(--tt-ink,#0f172a)}.tt-ex__band--pass strong{color:#16a34a}.tt-ex__band--warn strong{color:#b45309}.tt-ex__band--fail strong{color:#dc2626}.tt-ex__lh{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--tt-muted,#64748b);margin:0 0 6px}.tt-ex__ledger ul{list-style:none;margin:0 0 12px;padding:0}.tt-ex__ledger li{padding:5px 0;font-size:.92rem;border-bottom:1px dashed var(--tt-border,#e2e8f0)}.tt-ex__ledger li:last-child{border-bottom:0}.tt-ex__pts{display:inline-block;min-width:62px;font-weight:800;color:#dc2626}.tt-ex__guide{color:var(--tt-blue,#2563eb);font-weight:600;text-decoration:none;font-size:.85rem}.tt-ex__ceiling{margin:0 0 10px;font-size:.95rem;color:var(--tt-ink,#0f172a)}.tt-ex__ceiling strong{color:#16a34a}.tt-ex__conf{margin:0;font-size:.82rem;color:var(--tt-muted,#64748b)}.tt-dim{margin:10px 0 4px}.tt-dim__intro{font-size:.9rem;color:var(--tt-body,#334155);margin:0 0 10px}.tt-dim__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.tt-dim__card{padding:12px 14px;border:1px solid var(--tt-border,#e2e8f0);border-radius:11px;background:#fff;border-top:3px solid #cbd5e1}.tt-dim__card--pass{border-top-color:var(--tt-ok,#16a34a)}.tt-dim__card--warn{border-top-color:var(--tt-warn,#f59e0b)}.tt-dim__card--fail{border-top-color:var(--tt-bad,#dc2626)}.tt-dim__card--na{border-top-color:#cbd5e1}.tt-dim__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.tt-dim__label{font-weight:700;color:#0f172a;font-size:.95rem}.tt-dim__livetag{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#1e3a8a;background:#dbeafe;padding:1px 6px;border-radius:999px;vertical-align:middle}.tt-dim__grade{font-size:.8rem;font-weight:700;padding:2px 9px;border-radius:999px;background:#f1f5f9;color:#334155}.tt-dim__num{font-size:1.5rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;line-height:1;margin:8px 0 6px}.tt-dim__num small{font-size:.75rem;font-weight:600;color:#64748b}.tt-dim__sum{margin:0;font-size:.84rem;color:var(--tt-muted,#64748b);line-height:1.45}.tt-bi{margin:14px 0 8px}.tt-bi__intro{font-size:.9rem;color:var(--tt-body,#334155);margin:0 0 10px}.tt-bi__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.tt-bi__card{padding:13px 15px;border:1px solid var(--tt-border,#e2e8f0);border-radius:11px;background:#fff;border-left:4px solid #cbd5e1}.tt-bi__card--pass{border-left-color:var(--tt-ok,#16a34a)}.tt-bi__card--warn{border-left-color:var(--tt-warn,#f59e0b)}.tt-bi__card--fail{border-left-color:var(--tt-bad,#dc2626)}.tt-bi__card--na{border-left-color:#cbd5e1}.tt-bi__top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.tt-bi__label{font-weight:700;color:#0f172a;font-size:.95rem}.tt-bi__level{font-size:.76rem;font-weight:700;padding:2px 10px;border-radius:999px;background:#f1f5f9;color:#334155}.tt-bi__level--pass{background:#dcfce7;color:#166534}.tt-bi__level--warn{background:#fef9c3;color:#854d0e}.tt-bi__level--fail{background:#fee2e2;color:#991b1b}.tt-bi__verdict{margin:0 0 8px;font-size:.9rem;color:#0f172a;line-height:1.5}.tt-bi__drivers{margin:0 0 8px;padding-left:18px}.tt-bi__drivers li{font-size:.82rem;color:var(--tt-muted,#64748b);line-height:1.5;margin:2px 0}.tt-bi__act{margin:0;font-size:.85rem;color:#0f172a}.tt-bi__act a{color:var(--tt-blue,#2563eb);font-weight:600}.tt-infra{margin:14px 0 8px;padding:14px 16px;border:1px solid var(--tt-border,#e2e8f0);border-left:4px solid #0f766e;border-radius:0 10px 10px 0;background:#f0fdfa}.tt-infra__head{font-weight:700;color:#0f766e;font-size:.95rem;margin-bottom:4px}.tt-infra__intro{font-size:.86rem;color:var(--tt-body,#334155);margin:0 0 10px}.tt-infra__prov{font-size:.9rem;color:#0f172a;margin:0 0 10px;font-weight:600}.tt-infra__chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.tt-infra__chip{font-size:.74rem;font-weight:700;padding:3px 10px;border-radius:999px;background:#e2e8f0;color:#334155}.tt-infra__chip--pass{background:#dcfce7;color:#166534}.tt-infra__chip--warn{background:#fef9c3;color:#854d0e}.tt-infra__chip--fail{background:#fee2e2;color:#991b1b}.tt-infra__chip--na{background:#e2e8f0;color:#475569}.tt-infra__servers{display:flex;flex-direction:column;gap:8px}.tt-infra__srv{background:#fff;border:1px solid var(--tt-border,#e2e8f0);border-radius:9px;padding:10px 12px}.tt-infra__srvhost{font-size:.92rem;color:#0f172a;margin-bottom:6px;word-break:break-all}.tt-infra__ip{padding:5px 0;border-top:1px dashed #e2e8f0}.tt-infra__ip:first-of-type{border-top:0}.tt-infra__ip code{font-size:.82rem;background:var(--tt-surface,#f8fafc);border:1px solid var(--tt-border,#e2e8f0);border-radius:6px;padding:1px 6px;word-break:break-all}.tt-infra__v{font-size:.7rem;font-weight:700;color:#0f766e;background:#ccfbf1;border-radius:999px;padding:1px 7px;margin-left:4px}.tt-infra__ipmeta{font-size:.8rem;color:var(--tt-muted,#64748b);margin-top:3px;line-height:1.5}.tt-infra__muted{color:var(--tt-muted,#94a3b8)}.tt-infra__good{color:#166534;font-weight:600}.tt-infra__bad{color:#991b1b;font-weight:700}.tt-infra__notes{margin:10px 0 0;padding-left:18px}.tt-infra__notes li{font-size:.82rem;color:var(--tt-body,#334155);line-height:1.5;margin:2px 0}.tt-deliv{margin:12px 0 8px;padding:14px 16px;border:1px solid var(--tt-border,#e2e8f0);border-left:4px solid #7c3aed;border-radius:0 10px 10px 0;background:#faf5ff}.tt-deliv__head{font-weight:700;color:#5b21b6;font-size:.95rem;margin-bottom:8px}.tt-deliv__list{margin:0;padding-left:18px}.tt-deliv__list li{margin:6px 0;font-size:.9rem;color:#0f172a;line-height:1.5}.tt-deliv__list strong{color:#5b21b6}.tt-audit__bench{margin:6px 0 10px;padding:14px 16px;border:1px solid var(--tt-border,#e2e8f0);border-left:4px solid var(--tt-blue,#2563eb);border-radius:0 10px 10px 0;background:var(--tt-blue-50,#eff6ff)}.tt-audit__benchhead{font-weight:700;color:#1e3a8a;font-size:.95rem;margin-bottom:8px}.tt-audit__benchlist{list-style:none;margin:0;padding:0}.tt-audit__benchlist li{margin:6px 0;font-size:.92rem;color:#0f172a}.tt-audit__save{margin:14px 0 0}.tt-audit__saveout{margin-top:10px}.tt-audit__link{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px;padding:10px 12px;background:var(--tt-surface,#f8fafc);border:1px solid var(--tt-border,#e2e8f0);border-radius:9px}.tt-audit__link a{color:var(--tt-blue,#2563eb);font-weight:600;word-break:break-all}.tt-audit__link .tt-tool__copy{margin-top:0}.tt-audit__ws{margin-top:14px}.tt-audit__wsout{margin-top:8px}.tt-audit__wsemail{flex:1 1 220px;font-size:1rem;padding:9px 12px;border:1px solid #cbd5e1;border-radius:8px;margin:0}.tt-audit__wsemail:focus{outline:2px solid var(--tt-blue,#2563eb);outline-offset:1px;border-color:var(--tt-blue,#2563eb)}.tt-audit__saveval{padding:14px 16px;background:var(--tt-surface,#f8fafc);border:1px solid var(--tt-border,#e2e8f0);border-radius:11px;margin-bottom:12px}.tt-audit__saveval strong{display:block;color:var(--tt-ink,#0f172a);margin-bottom:6px;font-size:1.02rem}.tt-audit__saveval ul{margin:0;padding-left:18px;color:var(--tt-body,#334155);font-size:.94rem;line-height:1.5}.tt-audit__savebtns{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.tt-tool__btn--ghost{background:#fff;color:var(--tt-blue-dark,#1d4fd7);border:1px solid #c7d6ff;font-weight:600}.tt-tool__btn--ghost:hover,.tt-tool__btn--ghost:focus{background:#f1f5ff;color:var(--tt-blue,#2563eb)}.tt-audit__wsrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}.tt-spfflat__raw{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;padding:10px 12px;border:1px solid var(--tt-border,#e2e8f0);border-radius:9px;resize:vertical;box-sizing:border-box}.tt-bimigen__gen[hidden],.tt-bimigen__check[hidden]{display:none}.tt-dmrep__drop{display:block;border:2px dashed #c7d6ff;border-radius:12px;background:var(--tt-surface,#f8fafc);padding:28px 18px;text-align:center;cursor:pointer;color:var(--tt-body,#334155);transition:border-color .15s,background .15s}.tt-dmrep__drop:hover,.tt-dmrep__drop:focus{border-color:var(--tt-blue,#2563eb);background:#f1f5ff;outline:none}.tt-dmrep__drop--over{border-color:var(--tt-blue,#2563eb);background:#eaf1ff}.tt-dmrep__dropmsg strong{color:var(--tt-ink,#0f172a)}.tt-dmrep__dropmsg small{color:var(--tt-muted,#64748b)}.tt-dmrep__summary{margin-bottom:12px}@media (max-width:520px){.tt-tool__form--lookup{flex-direction:column}.tt-tool__form--lookup .tt-tool__btn{width:100%}.tt-tool__form--lookup .tt-tool__selector,.tt-tool__form--lookup .tt-tool__rrtype{width:100%}}