/* Tools bergaya toko yang dipindah ke dev: variabel lama dipetakan ke warna dev, utilitas Tailwind dikompilasi statis (tanpa CDN). */
.tool-page { --bg: var(--page); --panel: var(--surface); --text: var(--ink); --primary: var(--blue); --field: var(--page); padding-block: 8px 40px; color: var(--ink); }
.tool-page, .tool-page *, .tool-page ::before, .tool-page ::after { box-sizing: border-box; border: 0 solid var(--line); }
.tool-page h1, .tool-page h2, .tool-page h3, .tool-page p, .tool-page ul, .tool-page ol, .tool-page figure, .tool-page pre { margin: 0; }
.tool-page ul, .tool-page ol { padding: 0; }
.tool-page a { color: var(--blue); }
.tool-page a:hover { text-decoration: underline; }
.tool-page button, .tool-page input, .tool-page select, .tool-page textarea { font: inherit; color: inherit; }
.tool-page textarea, .tool-page select, .tool-page input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]) { width: 100%; min-height: 44px; padding: 10px 12px; background: var(--page); color: var(--ink); border: 1px solid var(--line); border-radius: 12px; }
.tool-page textarea::placeholder, .tool-page input::placeholder { color: var(--muted); opacity: .85; }
.tool-page input:focus-visible, .tool-page textarea:focus-visible, .tool-page select:focus-visible, .tool-page button:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.tool-page input[type="checkbox"], .tool-page input[type="radio"] { width: 18px; height: 18px; accent-color: var(--blue); }
.tool-page button { cursor: pointer; }
.tool-page .btn-primary, .tool-page button.btn-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; background: var(--button); color: #fff; border: 1px solid transparent; border-radius: 12px; font-weight: 650; transition: background .18s; }
.tool-page .btn-primary:hover { background: var(--button-hover); text-decoration: none; }
.tool-page .btn-primary:disabled { opacity: .55; cursor: not-allowed; }
.tool-page .site-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.tool-page .tool-heading { display: flex; align-items: center; gap: 14px; min-width: 0; }
.tool-page .tool-heading h1 { min-width: 0; overflow-wrap: anywhere; font-size: clamp(26px, 5vw, 34px); letter-spacing: -.8px; line-height: 1.15; }
.tool-page .tool-heading-icon { flex: none; display: grid; place-items: center; width: 58px; height: 58px; color: var(--blue); background: var(--pale-blue); border: 1px solid var(--line); border-radius: 14px; }
.tool-page .tool-heading-icon svg { width: 34px; height: 34px; }
.tool-page nav.text-sm a { color: var(--muted); }
.tool-page nav.text-sm a:hover { color: var(--blue); }
.tool-page .text-xs { font-size: 12px; }
.tool-page .hidden { display: none; }
/* ===== utilitas terkompilasi ===== */
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.visible{visibility:visible}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:.75rem}.mb-3,.my-3{margin-bottom:.75rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.max-h-56{max-height:14rem}.max-h-96{max-height:24rem}.min-h-11{min-height:2.75rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.cursor-pointer{cursor:pointer}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.rounded-2xl{border-radius:1rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-\[var\(--line\)\]{border-color:var(--line)}.bg-\[var\(--panel\)\]{background-color:var(--panel)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.text-\[var\(--muted\)\]{color:var(--muted)}.text-\[var\(--primary\)\]{color:var(--primary)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[1fr_260px\]{grid-template-columns:1fr 260px}}
