/* Global UDI - Free Tools (readiness check + UDI decoder). Builds on styles.css + site.css */
.tool{max-width:980px;margin:0 auto}
.tcard{background:#fff;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:4px;padding:32px;box-shadow:0 30px 60px -40px rgba(15,58,92,.45)}
.tlabel{font-family:"JetBrains Mono",monospace;font-size:12.5px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;display:block}
.rc-prog{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.rc-prog .bar{flex:1;height:6px;background:var(--tint);border-radius:99px;overflow:hidden}
.rc-prog .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#0B5ED7,#0E8BA8);transition:width .35s}
.rc-prog span{font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--muted);white-space:nowrap}
.rc-step{display:none;animation:rcIn .3s ease}
.rc-step.on{display:block}
@keyframes rcIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rc-step h2{font-size:clamp(21px,2.6vw,27px);line-height:1.3;letter-spacing:-.01em;margin-bottom:8px}
.rc-step .hint{color:var(--muted);font-size:15px;margin-bottom:22px}
.rc-opts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.rc-opts.three{grid-template-columns:repeat(3,1fr)}
.rc-opt{font:inherit;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:6px;padding:15px 16px;cursor:pointer;font-weight:600;font-size:15.5px;color:var(--ink);display:flex;align-items:center;gap:12px;transition:.15s}
.rc-opt:hover{border-color:var(--blue);background:#F7FAFE}
.rc-opt i{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--line);font-style:normal;transition:.15s}
.rc-opt.on{border-color:var(--blue);background:var(--tint);box-shadow:inset 0 0 0 1px var(--blue)}
.rc-opt.on i{border-color:var(--blue);background:radial-gradient(var(--blue) 45%,#fff 50%)}
.rc-opt small{display:block;font-weight:400;color:var(--muted);font-size:13px}
.rc-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}
.linkbtn{font:inherit;background:none;border:0;color:var(--blue);cursor:pointer;font-weight:600;padding:6px 0}
.linkbtn:disabled{visibility:hidden}
.btn[disabled]{opacity:.45;pointer-events:none}
button.btn{border:0;font:inherit;font-weight:600;cursor:pointer}
.rc-group{margin-bottom:24px}
.rc-result{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:start}
.rc-score{background:linear-gradient(150deg,#0F172A,#0F3A5C);color:#fff;border-radius:6px;padding:30px;text-align:center}
.rc-score .ring{width:180px;height:180px}
.rc-score .ring div{width:142px;height:142px}
.rc-band{display:inline-block;font-family:"JetBrains Mono",monospace;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;border-radius:99px;margin-bottom:10px}
.rc-band.ready{background:rgba(127,227,245,.16);color:#7FE3F5}
.rc-band.needs-work{background:rgba(242,179,61,.18);color:#F2B33D}
.rc-band.at-risk{background:rgba(255,138,128,.18);color:#FF8A80}
.rc-score p{color:#C9D7E3;font-size:14.5px}
.rc-teaser{text-align:left;margin-top:20px;display:grid;gap:8px}
.rc-teaser h4{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.08em;color:#9FC3D4;font-weight:700}
.rc-teaser div{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-left:3px solid #FF8A80;border-radius:3px;padding:10px 12px;font-size:14px}
.rc-teaser div.p{border-left-color:#F2B33D}
.rc-teaser div small{display:block;color:#7FE3F5;font-size:12px;margin-top:2px;filter:blur(3.5px);user-select:none}
.rc-teaser .ok{border-left-color:#7FE3F5}
.rc-form h3{font-size:22px;letter-spacing:-.01em;margin-bottom:6px}
.rc-form>p{color:var(--muted);font-size:15px;margin-bottom:18px}
.fld{display:block;margin-bottom:14px}
.fld span{display:block;font-weight:600;font-size:14px;margin-bottom:5px}
.fld span em{font-style:normal;font-weight:400;color:var(--muted)}
.fld input[type=text],.fld input[type=email],textarea.code,input.code{width:100%;font:inherit;font-size:15.5px;border:1.5px solid var(--line);border-radius:6px;padding:12px 14px;color:var(--ink);background:#fff;transition:.15s}
.fld input:focus,textarea.code:focus,input.code:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,94,215,.15)}
.chk{display:flex;flex-wrap:wrap;gap:8px}
.chk label{border:1.5px solid var(--line);border-radius:99px;padding:6px 14px;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:6px}
.chk label:has(input:checked){border-color:var(--blue);background:var(--tint);color:var(--blue-d)}
.chk input{accent-color:var(--blue)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.privacy{font-size:12.8px;color:var(--muted);margin-top:12px;line-height:1.5}
.rc-form .btn{width:100%;padding:14px 22px;font-size:16px}
.status{margin-top:12px;font-size:14px;border-radius:4px;padding:10px 12px;display:none}
.status.on{display:block}
.status.ok{background:#E6F6F9;color:#0B6F87;border-left:3px solid #0E8BA8}
.status.warn{background:#FFF6E3;color:#7A5300;border-left:3px solid #F2B33D}
.status.err{background:#FDECEC;color:#8E241C;border-left:3px solid #C0362C}
.rc-report{display:none;margin-top:32px}
.rc-report.on{display:block}
.rc-report>h3{font-size:24px;letter-spacing:-.01em;margin-bottom:4px}
.rc-report>p.sub{color:var(--muted);margin-bottom:20px}
.gapc{border:1px solid var(--line);border-left:4px solid #C0362C;border-radius:4px;padding:20px 22px;margin-bottom:14px;background:#fff}
.gapc.partly{border-left-color:#F2B33D}.gapc.unsure{border-left-color:#8A97A8}
.gapc .top{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.gapc h4{font-size:17.5px}
.gapc .st{font-family:"JetBrains Mono",monospace;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#C0362C}
.gapc.partly .st{color:#9A6B00}.gapc.unsure .st{color:#5B6B7F}
.gapc p{font-size:15px;color:#33475B;margin-top:6px}
.gapc p b{color:var(--ink)}
.gapc a{font-weight:600;font-size:14.5px;display:inline-block;margin-top:8px}
.donec{background:#F7FAFE;border:1px solid var(--line);border-radius:4px;padding:18px 22px;margin:18px 0}
.donec h4{font-size:15px;margin-bottom:6px}
.ctab{background:linear-gradient(120deg,#0F172A 0%,#0F3A5C 65%,#0E8BA8 150%);color:#fff;border-radius:6px;padding:28px;margin-top:22px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.ctab h4{font-size:21px;margin-bottom:4px}.ctab p{color:#C9D7E3;font-size:15px}
.ctab .acts{display:flex;gap:10px;flex-wrap:wrap}
.ctab .btn{background:#fff;color:#0F172A!important}
.ctab .btn.ghost{background:transparent;color:#fff!important;border-color:rgba(255,255,255,.6)}
/* UDI decoder */
.dec{display:grid;grid-template-columns:1fr;gap:24px}
textarea.code,input.code{font-family:"JetBrains Mono",monospace;font-size:15px;min-height:96px;resize:vertical}
input.code{min-height:0}
.samples{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px;align-items:center}
.samples b{font-size:13px;color:var(--muted);font-weight:600;margin-right:4px}
.samples button{font:inherit;font-size:13px;border:1px solid var(--line);background:#F7FAFE;border-radius:99px;padding:5px 12px;cursor:pointer;color:var(--blue-d)}
.samples button:hover{border-color:var(--blue)}
.dec-acts{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.verdict-bar{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:4px;font-weight:700;margin-bottom:16px}
.verdict-bar.ok{background:#E6F6F9;color:#0B6F87}
.verdict-bar.bad{background:#FDECEC;color:#8E241C}
.verdict-bar.warn{background:#FFF6E3;color:#7A5300}
.verdict-bar .ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:none;font-size:15px}
.verdict-bar.ok .ic{background:#0E8BA8}.verdict-bar.bad .ic{background:#C0362C}.verdict-bar.warn .ic{background:#D39A1F}
.verdict-bar small{display:block;font-weight:400;font-size:13.5px}
table.ais{width:100%;border-collapse:collapse;font-size:14.5px}
table.ais th{text-align:left;font-family:"JetBrains Mono",monospace;font-size:11.5px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;padding:8px 10px;border-bottom:2px solid var(--line)}
table.ais td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.ais td.ai{font-family:"JetBrains Mono",monospace;font-weight:800;color:var(--blue);white-space:nowrap}
table.ais td.val{font-family:"JetBrains Mono",monospace;word-break:break-all}
table.ais td .det{display:block;color:var(--muted);font-size:13px;font-family:Inter,sans-serif}
table.ais .iss{display:block;font-size:13px;margin-top:4px;font-family:Inter,sans-serif}
.iss.error{color:#C0362C}.iss.warn{color:#9A6B00}.iss.ok{color:#0B6F87}
ul.msgs{list-style:none;margin:16px 0 0;display:grid;gap:8px}
ul.msgs li{font-size:14.5px;padding:10px 14px;border-radius:4px;background:#F7FAFE;border-left:3px solid var(--blue)}
ul.msgs li.error{background:#FDECEC;border-left-color:#C0362C}
ul.msgs li.warn{background:#FFF6E3;border-left-color:#F2B33D}
.outs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.outs div{background:#0F172A;color:#E6F1F8;border-radius:4px;padding:12px 14px;font-family:"JetBrains Mono",monospace;font-size:13px;word-break:break-all}
.outs div small{display:block;color:#7FE3F5;font-size:11px;letter-spacing:.08em;margin-bottom:4px;font-family:Inter,sans-serif;font-weight:700}
.cdcalc{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}
.cdout{margin-top:14px;font-size:15px}
.cdout .big{font-family:"JetBrains Mono",monospace;font-size:26px;font-weight:800;color:var(--ink);letter-spacing:.04em}
.cdout .big b{color:#0E8BA8;background:#E6F6F9;padding:0 4px;border-radius:3px}
.cdout .big b.bad{color:#C0362C;background:#FDECEC}
.mode{display:flex;gap:6px;margin-bottom:12px}
.mode label{font-size:14px;border:1.5px solid var(--line);border-radius:99px;padding:5px 14px;cursor:pointer}
.mode label:has(input:checked){border-color:var(--blue);background:var(--tint);color:var(--blue-d)}
.mode input{position:absolute;opacity:0}
.explain{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.explain .card h3{font-size:17px;margin-bottom:6px}.explain .card p{font-size:14.5px;color:var(--muted)}
.ai-ref{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
.ai-ref td,.ai-ref th{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}
.ai-ref td:first-child{font-family:"JetBrains Mono",monospace;font-weight:700;color:var(--blue)}
@media(max-width:860px){.rc-result,.outs,.explain{grid-template-columns:1fr}.tcard{padding:22px}}
@media(max-width:560px){.rc-opts,.rc-opts.three{grid-template-columns:1fr}.cdcalc{grid-template-columns:1fr}table.ais thead{display:none}table.ais tr{display:block;border-bottom:1px solid var(--line);padding:10px 0}table.ais td{display:block;border:0;padding:3px 0}}
@media print{.rc-form,.rc-nav,.rc-prog,.ctab .acts{display:none!important}.rc-report{display:block!important}}
/* Tool pages have their own CTAs; keep the floating call button from covering quiz/decoder controls on phones */
@media(max-width:720px){.fab{display:none}}
