/* conv_browser tools: unit / number / date converters and browser utilities */
.tool-layout>*,.tool-layout article,.tool,.tool .out,.tool .tbl-wrap{min-width:0;max-width:100%}
.tool .tbl-wrap{overflow-x:auto}
.tool .tbl-wrap td{overflow-wrap:anywhere}
.cb-warn{border-left:4px solid var(--c-orange,#c2410c);background:var(--surface-2);padding:8px 12px;border-radius:var(--r-sm)}
.cb-warn::before{content:"⚠ ";font-weight:700}
.cb-inline-note{font-size:.85rem;align-self:center}

/* reference table (blood sugar) */
.cb-ref{margin-top:16px;overflow-x:auto}
.cb-table{border-collapse:collapse;width:100%;font-size:.92rem}
.cb-table caption{text-align:left;font-weight:600;padding:4px 0 8px}
.cb-table th,.cb-table td{border:1px solid var(--border);padding:6px 10px;text-align:left;vertical-align:top}
.cb-table thead th{background:var(--surface-2)}

/* capture areas (keyboard, mouse, paste) */
.cb-capture,.cb-mouse-area{border:2px dashed var(--border-strong);border-radius:var(--r);padding:20px;text-align:center;background:var(--surface-2);margin:0 0 14px;cursor:pointer}
.cb-capture:focus,.cb-capture:focus-visible{outline:3px solid var(--focus,#2563eb);outline-offset:2px;border-style:solid;border-color:var(--primary);background:var(--primary-soft)}
.cb-capture-title{font-size:1.35rem;font-weight:700;margin:0 0 6px;overflow-wrap:anywhere}
.cb-count{font-weight:600;margin:6px 0 0}
.cb-mouse-wrap{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.cb-mouse-area{min-height:240px;display:flex;flex-direction:column;justify-content:center;margin:0;cursor:crosshair;user-select:none;touch-action:none}
.cb-pos{font-family:var(--mono);margin:8px 0 0}
.cb-btns{list-style:none;margin:0;padding:0;display:grid;gap:6px;align-content:start}
.cb-btns li{border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cb-btns li.is-ok{border-color:var(--ok);background:var(--ok-bg)}
.cb-btns li.is-ok .cb-btn-state::before{content:"✓ "}
.cb-btn-name{font-weight:600}
.cb-btn-state{font-size:.88rem}
@media (max-width:640px){.cb-mouse-wrap{grid-template-columns:1fr}}

/* on-screen keyboard map */
.cb-kb{display:flex;gap:12px;margin:0 0 14px;font-size:clamp(.5rem,1.6vw,.78rem)}
.cb-kb-main{flex:15 1 0;min-width:0}
.cb-kb-nav{flex:3 1 0;min-width:0}
.cb-kb-row{display:flex;gap:3px;margin-bottom:3px}
.cb-key{flex:1 1 0;min-width:0;height:2.6em;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);overflow:hidden;white-space:nowrap;text-overflow:clip;position:relative}
.cb-key.w125{flex-grow:1.25}.cb-key.w15{flex-grow:1.5}.cb-key.w175{flex-grow:1.75}.cb-key.w2{flex-grow:2}.cb-key.w225{flex-grow:2.25}.cb-key.w275{flex-grow:2.75}.cb-key.w6{flex-grow:6}
.cb-key-gap{border-color:transparent;background:transparent}
.cb-key.is-done{background:var(--ok-bg);border-color:var(--ok)}
.cb-key.is-done::after{content:"✓";position:absolute;top:0;right:2px;font-size:.75em;color:var(--ok)}
.cb-key.is-down{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
@media (max-width:520px){.cb-kb{flex-direction:column}.cb-kb-nav{max-width:40%}}

/* gamepad */
.cb-pads{margin-top:14px}
.cb-empty{padding:16px;border:2px dashed var(--border-strong);border-radius:var(--r);background:var(--surface-2)}
.cb-pad{border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:14px}
.cb-pad-title{font-size:1.05rem;margin:0 0 4px;overflow-wrap:anywhere}
.cb-sticks{display:flex;flex-wrap:wrap;gap:16px;margin:10px 0}
.cb-stick{margin:0;text-align:center;font-size:.85rem;font-family:var(--mono)}
.cb-ring{width:100px;height:100px;border:2px solid var(--border-strong);border-radius:50%;position:relative;margin:0 auto 6px;background:var(--surface-2)}
.cb-ring::before,.cb-ring::after{content:"";position:absolute;background:var(--border)}
.cb-ring::before{left:50%;top:0;bottom:0;width:1px}.cb-ring::after{top:50%;left:0;right:0;height:1px}
.cb-dot{position:absolute;left:40px;top:40px;width:16px;height:16px;margin:2px;border-radius:50%;background:var(--primary);z-index:1}
.cb-pbtns{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.cb-pbtn{border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 8px;font-size:.85rem}
.cb-pbtn.is-on{border-color:var(--primary);background:var(--primary-soft);font-weight:700}
.cb-pbar{display:block;height:6px;background:var(--surface-2);border-radius:3px;margin-top:4px;overflow:hidden}
.cb-pfill{display:block;height:100%;width:0;background:var(--primary)}

/* clipboard */
.cb-paste{min-height:120px;display:flex;flex-direction:column;justify-content:center}
.cb-clip-part{margin:0 0 14px}
.cb-clip-part h3{font-size:1rem;font-family:var(--mono);margin:0 0 6px;overflow-wrap:anywhere}
.cb-pre{max-height:320px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px;font-family:var(--mono);font-size:.85rem;margin:0}
.cb-clip-img{max-width:100%;max-height:320px;border:1px solid var(--border);background:repeating-conic-gradient(#ddd 0 25%,#fff 0 50%) 0 0/16px 16px}

/* font previewer */
.cb-fonts{display:grid;gap:8px}
.cb-font{border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px}
.cb-font.is-missing{opacity:.75;border-style:dashed}
.cb-font-name{font-size:.82rem;font-weight:600;margin:0 0 4px;color:var(--text-2,inherit)}
.cb-font-sample{margin:0;line-height:1.25;overflow-wrap:anywhere}

/* responsive design tester */
.cb-devices{border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px}
.cb-devices legend{font-weight:600;padding:0 4px}
.tool[data-tool="responsive-design-tester"] .out-html{max-height:none}
.cb-previews{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.cb-frame{margin:0;max-width:100%;overflow:auto}
.cb-frame figcaption{font-size:.85rem;font-weight:600;margin-bottom:4px}
.cb-frame-box{overflow:hidden;border:1px solid var(--border-strong);border-radius:6px;background:#fff;max-width:100%}
.cb-frame-box iframe{border:0;display:block;transform-origin:0 0;background:#fff}

/* notification log */
.cb-log{margin:0;padding-left:1.2em}
.cb-log li.is-bad::marker{content:"✗ "}
.cb-log li.is-ok::marker{content:"✓ "}

/* bookmarklet */
.cb-bm-drag{font-size:1.05rem}
.cb-bm-link{display:inline-block;padding:6px 14px;border:2px dashed var(--primary);border-radius:999px;font-weight:700;text-decoration:none;cursor:grab;min-height:24px}

/* print test page (screen preview) */
.cb-print-sheet{position:relative;background:#fff;color:#000;border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);padding:28px 32px;margin:14px auto 0;max-width:720px;font-size:12px;line-height:1.3;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.cb-print-sheet h3.cb-ps-title{font-size:20px;margin:0;color:#000}
.cb-print-sheet h4{font-size:12px;margin:10px 0 4px;color:#000;break-after:avoid}
.cb-ps-meta{margin:2px 0 6px;color:#333}
.cb-ps-swatches,.cb-ps-ramp{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;font-size:10px;text-align:center}
.cb-ps-ramp{grid-template-columns:repeat(11,minmax(0,1fr))}
.cb-sw{display:block;height:28px;border:1px solid #000;margin-bottom:2px}
.cb-ps-grad{height:16px;border:1px solid #000;margin-bottom:4px}
.cb-ps-ruler{position:relative;height:22px;border:1px solid #000;border-top:0;margin-bottom:6px;font-size:10px;background-repeat:no-repeat}
.cb-ps-mm{width:100mm;max-width:100%;background-image:repeating-linear-gradient(90deg,#000 0 0.2mm,transparent 0.2mm 1mm),repeating-linear-gradient(90deg,#000 0 0.3mm,transparent 0.3mm 10mm);background-size:100% 6px,100% 12px}
.cb-ps-in{width:4in;max-width:100%;background-image:repeating-linear-gradient(90deg,#000 0 0.01in,transparent 0.01in 0.125in),repeating-linear-gradient(90deg,#000 0 0.015in,transparent 0.015in 1in);background-size:100% 6px,100% 12px}
.cb-ps-ruler span{position:absolute;right:4px;bottom:2px}
.cb-ps-lines{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;max-width:360px}
.cb-ps-foot{font-size:9px;color:#333;margin-top:8px}
.cb-reg{position:absolute;width:8mm;height:8mm}
.cb-reg::before,.cb-reg::after{content:"";position:absolute;background:#000}
.cb-reg::before{left:50%;top:0;bottom:0;width:0.3mm}.cb-reg::after{top:50%;left:0;right:0;height:0.3mm}
.cb-reg-tl{left:6mm;top:6mm}.cb-reg-tr{right:6mm;top:6mm}.cb-reg-bl{left:6mm;bottom:6mm}.cb-reg-br{right:6mm;bottom:6mm}
.cb-print-sheet.is-land{max-width:960px}
@media (max-width:520px){.cb-print-sheet{padding:22px 14px}.cb-ps-swatches{grid-template-columns:repeat(4,minmax(0,1fr))}.cb-ps-ramp{grid-template-columns:repeat(6,minmax(0,1fr))}}

.cb-print-root{display:none}
@media print{
  .cb-printpage body>:not(.cb-print-root){display:none !important}
  .cb-printpage body{margin:0;padding:0;background:#fff}
  .cb-printpage .cb-print-root{display:block}
  .cb-print-root .cb-print-sheet{margin:0;max-width:none;border:0;box-shadow:none;padding:16mm 16mm 12mm;box-sizing:border-box;overflow:hidden;break-inside:avoid}
  .cb-print-root .cb-reg-tl{left:10mm;top:10mm;margin:-4mm 0 0 -4mm}.cb-print-root .cb-reg-tr{right:10mm;top:10mm;margin:-4mm -4mm 0 0}
  .cb-print-root .cb-reg-bl{left:10mm;bottom:10mm;margin:0 0 -4mm -4mm}.cb-print-root .cb-reg-br{right:10mm;bottom:10mm;margin:0 -4mm -4mm 0}
  .cb-print-root .cb-ps-mm,.cb-print-root .cb-ps-in{max-width:none}
  .cb-print-root .cb-ps-swatches{grid-template-columns:repeat(8,minmax(0,1fr))}.cb-print-root .cb-ps-ramp{grid-template-columns:repeat(11,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.cb-dot{transition:none}}
