/* Util.Ninja newer tools: shared extra styles (loaded after tools-v1.css) */
.ep-clock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;align-items:center}
.ep-now{font:800 clamp(38px,7vw,64px)/1.05 ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;letter-spacing:-.02em;color:var(--un-brand);overflow-wrap:anywhere}
.ep-sub{font-size:14px;color:var(--un-muted);margin:6px 0 0}
.ep-lines{display:grid;gap:8px}
.ep-line{background:#f6f8fc;border:1px solid var(--un-line);border-radius:12px;padding:9px 12px}
.ep-line small{display:block;font-size:12px;color:var(--un-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.ep-line b{display:block;font:700 16px/1.35 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-wrap:anywhere}
.ep-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin-top:16px}
.ep-grid>.ut-card{margin:0!important}
.ep-full{margin-top:16px}
.ep-row{display:grid;grid-template-columns:128px minmax(0,1fr) 34px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--un-line)}
.ep-row:first-child{border-top:0}
.ep-k{font-size:13px;color:var(--un-muted);font-weight:600}
.ep-v{font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.ep-v.ut-mono{font-size:14px}
.ep-cp{width:32px;height:32px;border:1px solid #cdd5e1;background:#fff;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#3a4657;padding:0}
.ep-cp:hover{border-color:var(--un-brand);color:var(--un-brand)}
.ep-cp svg{width:16px;height:16px}
.ep-six{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.ep-six .ut-field{margin:0}
.ep-six .ut-in{padding:10px 6px;text-align:center}
.ep-ex{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.ep-ex button{border:1px solid #cdd5e1;background:#f6f8fc;border-radius:99px;padding:6px 11px;font:600 13px/1.1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#3a4657;cursor:pointer}
.ep-ex button:hover{border-color:var(--un-brand);color:var(--un-brand)}
.ep-zone{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px}
.ep-zone .ut-sel{max-width:420px}
.ep-tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--un-line);border-radius:12px;margin-top:12px}
.ep-t{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.ep-t th,.ep-t td{padding:8px 10px;text-align:left;border-top:1px solid var(--un-line);vertical-align:top}
.ep-t thead th{border-top:0;background:#f6f8fc;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--un-muted)}
.ep-t tr.bad td{color:#912018;background:#fef3f2}
.ep-t td.ut-mono{font-size:13px;white-space:nowrap}
.ep-code{width:100%;border-collapse:collapse;font-size:14px}
.ep-code th,.ep-code td{padding:8px 10px;text-align:left;border-top:1px solid var(--un-line);vertical-align:top}
.ep-code thead th{border-top:0;background:#f6f8fc;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--un-muted)}
.ep-code code{white-space:pre-wrap;overflow-wrap:anywhere;background:#f2f4f8;border-radius:5px;padding:2px 6px;font-size:13px}
@media (max-width:900px){.ep-clock,.ep-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.ep-row{grid-template-columns:minmax(0,1fr) 34px}.ep-k{grid-column:1/-1;margin-bottom:-4px}.ep-six{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* generic */
.tt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.tt-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tt-grid>.ut-card,.tt-grid3>.ut-card{margin:0!important}
.tt-big{font:800 clamp(44px,12vw,96px)/1.05 ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;letter-spacing:-.02em;text-align:center;color:var(--un-ink);font-variant-numeric:tabular-nums}
.tt-big.brand{color:var(--un-brand)}.tt-big.ok{color:#1e9e5a}.tt-big.bad{color:#d92d20}
.tt-c{text-align:center}
.tt-pad{min-height:280px;border:2px dashed #b9c3d3;border-radius:16px;background:#f9fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;padding:20px;transition:background .1s,border-color .1s}
.tt-pad:focus-visible{outline:3px solid rgba(37,71,208,.4)}
.tt-pad b{display:block;font-size:22px;margin:4px 0}
.tt-pad.go{background:#e7f8ee;border-color:#1e9e5a}.tt-pad.wait{background:#fdecea;border-color:#d92d20}.tt-pad.live{background:#eef2ff;border-color:var(--un-brand)}
.tt-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.tt-list li{display:flex;justify-content:space-between;gap:10px;background:#f6f8fc;border:1px solid var(--un-line);border-radius:10px;padding:7px 12px;font-variant-numeric:tabular-nums}
.tt-chips{display:flex;flex-wrap:wrap;gap:8px}
.tt-chips button,.tt-chips a{border:1px solid #cdd5e1;background:#f6f8fc;border-radius:99px;padding:7px 13px;font:600 14px/1.1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#3a4657;cursor:pointer;text-decoration:none}
.tt-chips button:hover{border-color:var(--un-brand);color:var(--un-brand)}
.tt-words{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tt-words span{background:#f2f4f8;border:1px solid var(--un-line);border-radius:8px;padding:5px 9px;font:600 15px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:lowercase}
.tt-tiles{display:grid;grid-template-columns:repeat(5,44px);gap:6px;justify-content:center}
.tt-tile{width:44px;height:44px;border:2px solid #cdd5e1;border-radius:8px;background:#fff;font:800 22px/1 system-ui,sans-serif;text-transform:uppercase;text-align:center;padding:0;cursor:pointer;color:#16202c}
.tt-tile.g{background:#1e9e5a;border-color:#1e9e5a;color:#fff}.tt-tile.y{background:#e0a800;border-color:#e0a800;color:#fff}.tt-tile.x{background:#6b7280;border-color:#6b7280;color:#fff}
.tt-keys{display:flex;flex-direction:column;gap:5px;align-items:center;overflow-x:auto;padding-bottom:4px}
.tt-kr{display:flex;gap:5px}
.tt-k{min-width:38px;height:40px;padding:0 8px;border:1px solid #cdd5e1;border-bottom-width:3px;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;font:600 13px/1 system-ui,sans-serif;color:#3a4657;flex:none}
.tt-k.on{background:var(--un-brand);border-color:var(--un-brand-d);color:#fff}.tt-k.seen{background:#dbe4ff;border-color:#9db4ff;color:#16202c}
.tt-drop{border:2px dashed #b9c3d3;border-radius:16px;background:#f9fafc;padding:26px 16px;text-align:center;cursor:pointer}
.tt-drop:hover,.tt-drop.over{border-color:var(--un-brand);background:#f0f4ff}
.tt-files{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.tt-files li{display:flex;align-items:center;gap:8px;background:#f6f8fc;border:1px solid var(--un-line);border-radius:10px;padding:7px 10px}
.tt-files li span.n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.tt-files li small{color:var(--un-muted);white-space:nowrap}
.tt-files button{border:1px solid #cdd5e1;background:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer;color:#3a4657;padding:0}
.tt-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:12px}
.tt-thumbs figure{margin:0;border:1px solid var(--un-line);border-radius:10px;overflow:hidden;background:#f6f8fc;text-align:center;font-size:12px;color:var(--un-muted)}
.tt-thumbs img{display:block;width:100%;height:96px;object-fit:contain;background:#fff}
.tt-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8fc;border:1px solid var(--un-line);border-radius:10px;padding:10px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:0}
.tt-diff{font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;border:1px solid var(--un-line);border-radius:10px;overflow:auto;background:#fff}
.tt-diff div{white-space:pre-wrap;overflow-wrap:anywhere;padding:1px 10px;border-left:4px solid transparent}
.tt-diff .a{background:#e7f8ee;border-left-color:#1e9e5a}.tt-diff .d{background:#fdecea;border-left-color:#d92d20}
.tt-diff ins{background:#a7e8c0;text-decoration:none}.tt-diff del{background:#f6b8b2;text-decoration:none}
.tt-sw{width:100%;height:84px;border-radius:12px;border:1px solid var(--un-line)}
.tt-wheel{display:block;margin:0 auto;max-width:100%;height:auto}
.tt-die{display:inline-flex;width:68px;height:68px;border-radius:14px;background:#fff;border:2px solid #16202c;align-items:center;justify-content:center;font:800 28px/1 system-ui,sans-serif;margin:4px;box-shadow:0 3px 0 rgba(0,0,0,.2)}
.tt-ring{width:100%;max-width:300px;display:block;margin:0 auto}
.tt-tabs{margin-bottom:14px}
@media (max-width:900px){.tt-grid,.tt-grid3{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.tt-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.tt-tile{width:40px;height:40px}.tt-tiles{grid-template-columns:repeat(5,40px)}.tt-k{min-width:30px;height:36px;padding:0 5px;font-size:12px}}
.pm-ring{fill:none;stroke-width:10;transform:rotate(-90deg);transform-origin:50% 50%;stroke-dasharray:628;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.pm-ring.f{stroke:#e5484d}.pm-ring.b{stroke:#1e9e5a}
.tt-dial{position:relative;max-width:300px;margin:6px auto}
.tt-dial svg{display:block;width:100%}
.tt-dial .tt-big{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(34px,9vw,52px)}
.tt-time{display:flex;gap:8px;justify-content:center;align-items:flex-end;flex-wrap:wrap}
.tt-time .ut-field{margin:0;width:84px}.tt-time .ut-in{text-align:center;font-size:20px;font-weight:700;padding:10px 4px}
.tt-list.laps li{display:grid;grid-template-columns:1.4fr 1fr 1fr;text-align:right}.tt-list.laps li span:first-child{text-align:left}
.tzr{display:grid;grid-template-columns:minmax(0,1fr) auto 34px;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--un-line);border-radius:12px;background:#fff;margin-bottom:8px;list-style:none}
.tzr.src{background:#eef2ff;border-color:#c7d2fe}
.tzr b{display:block;font-size:15px}.tzr small{display:block;color:var(--un-muted);font-size:12.5px}
.tzr .tzt{text-align:right}.tzr .tzt b{font:800 22px/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.tzr button{width:32px;height:32px;border:1px solid #cdd5e1;background:#fff;border-radius:8px;cursor:pointer;color:#3a4657}
#tzList{margin:0;padding:0}
@media (max-width:420px){.tzr{grid-template-columns:minmax(0,1fr) auto}.tzr button{display:none}}
.tt-tbl{width:100%;border-collapse:collapse;font-size:14px}.tt-tbl th,.tt-tbl td{padding:7px 10px;border-bottom:1px solid var(--un-line);text-align:left;white-space:nowrap}.tt-tbl th{background:#f4f6fa}
.tt-pre{background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px;overflow:auto;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:4px 0 12px;white-space:pre-wrap;word-break:break-word}
.jw-h{margin:14px 0 4px;font-size:15px}
.rx-hl{white-space:pre-wrap;word-break:break-word;border:1px solid var(--un-line);border-radius:10px;padding:10px;background:#fff;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-height:48px}
.rx-hl mark{background:#fde68a;border-radius:3px;padding:0 1px}
.rx-m{border:1px solid var(--un-line);border-radius:10px;padding:8px 10px;margin-top:8px;font-size:14px;overflow-wrap:anywhere}.rx-g{color:#3a4657;margin-left:10px}
.rx-flags{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0}.rx-flags label{display:flex;gap:5px;align-items:center;font-size:14px}
.df-out{border:1px solid var(--un-line);border-radius:10px;overflow:auto;background:#fff;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin-top:10px}
.df-l{display:flex;min-width:max-content;width:100%}.df-l i{width:24px;text-align:center;font-style:normal;flex:none}.df-l span{white-space:pre;padding-right:10px}
.df-a{background:#dcfce7}.df-d{background:#fee2e2}
.cr-l{margin:6px 0 0 20px;padding:0}.cr-l li{margin:3px 0}
.cl-sw{height:80px;border-radius:12px;border:1px solid var(--un-line);margin:10px 0;background-image:linear-gradient(45deg,#e5e7eb 25%,transparent 25%,transparent 75%,#e5e7eb 75%),linear-gradient(45deg,#e5e7eb 25%,transparent 25%,transparent 75%,#e5e7eb 75%);background-size:16px 16px;background-position:0 0,8px 8px}
.dr-out{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0;min-height:64px}.dr-die{width:60px;height:60px;display:inline-block}
.dr-n{display:inline-flex;align-items:center;justify-content:center;border:3px solid #1f2a44;border-radius:12px;font:800 22px/1 system-ui;background:#fff}
@keyframes drs{0%{transform:rotate(-8deg) scale(.8);opacity:.4}60%{transform:rotate(6deg) scale(1.05)}100%{transform:none;opacity:1}}.dr-shake .dr-die{animation:drs .35s}
.rn-one{font:800 56px/1.1 ui-monospace,Menlo,Consolas,monospace;text-align:center;padding:18px 0;overflow-wrap:anywhere}
.rn-many{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.rn-many span{background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;padding:5px 10px;font:700 16px ui-monospace,Menlo,Consolas,monospace}
.np-wrap{position:relative;max-width:420px;margin:0 auto}.np-wrap canvas{width:100%;height:auto;display:block;cursor:pointer;touch-action:manipulation}
.np-ptr{position:absolute;left:50%;top:-4px;transform:translateX(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:24px solid #1f2a44;z-index:2}
.ib-row{margin-top:10px}.ib-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.ib-row textarea{width:100%;font-size:12px}
.fv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:12px 0}
.fv-i{border:1px solid var(--un-line);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;text-align:center}.fv-i small{color:var(--un-muted);font-size:11.5px;overflow-wrap:anywhere}.fv-i img{background:conic-gradient(#e5e7eb 25%,#fff 0 50%,#e5e7eb 0 75%,#fff 0) 0 0/12px 12px}
