/* Shared look for the global batch-1 tools. Builds on /assets/shared.css tokens. */
.gt{--radius:16px;--shadow:0 1px 2px #1d2b280d,0 8px 24px #1d2b2812;--danger:#a3402b;--warn:#8a6512}
.gt>section,.gt>details{margin-bottom:22px}
.gt .hero-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.gt .hero-row .tool-hero{margin-bottom:26px}
.gt #lang-slot select{min-height:40px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:.85rem;font-weight:600;color:var(--ink);cursor:pointer}
.gt .trust{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 26px;padding:0;list-style:none}
.gt .trust li{padding:5px 12px;border-radius:999px;background:var(--soft);color:var(--green);font-size:.8rem;font-weight:650}
.gt .trust li:before{content:"✓ ";font-weight:800}
.gt h2{font-size:1.15rem;margin-bottom:12px}
.gt .step{display:inline-grid;place-items:center;width:26px;height:26px;margin-right:8px;border-radius:50%;background:var(--green);color:#fff;font-size:.8rem;vertical-align:2px}
.gt .drop{position:relative;display:grid;place-items:center;gap:10px;min-height:180px;padding:28px;border:2px dashed #b9c7b5;border-radius:var(--radius);background:linear-gradient(180deg,#fbfcf8,#f1f5ec);text-align:center;transition:border-color .15s,background .15s}
.gt .drop.over{border-color:var(--green);background:#e6efdc}
.gt .drop .drop-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--paper);box-shadow:var(--shadow);font-size:1.5rem}
.gt .drop p{margin:0}
.gt .file-button{position:relative;overflow:hidden;cursor:pointer}
.gt .file-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.gt .file-button:focus-within{outline:3px solid #8ba64a;outline-offset:3px}
.gt .grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:4px 14px}
.gt .grid-form .field{margin-bottom:12px}
.gt .grid-form input,.gt .grid-form select{width:100%;min-width:0}
.gt .seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:12px;background:var(--soft)}
.gt .seg button{min-height:36px;padding:6px 14px;border:0;background:transparent;color:var(--ink);font-weight:600}
.gt .seg button[aria-pressed=true]{background:var(--paper);color:var(--green);box-shadow:var(--shadow)}
.gt .status.error,.gt .error{color:var(--danger)}
.gt .status.busy:before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gt-spin .8s linear infinite;vertical-align:-1px}
@keyframes gt-spin{to{transform:rotate(360deg)}}
.gt progress{width:100%;height:8px;accent-color:var(--green)}
.gt .result{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}
.gt .metric{padding:14px 16px;border-radius:12px;background:var(--soft)}
.gt .metric b{display:block;font-size:1.35rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.gt .metric span{font-size:.8rem;color:var(--muted)}
.gt .metric.good{background:#dfeccb}.gt .metric.bad{background:#f9ece7}
.gt .sticky-actions{position:sticky;bottom:0;z-index:5;margin-top:16px;padding:12px;border-radius:14px;background:#ffffffeb;backdrop-filter:blur(8px);box-shadow:var(--shadow)}
.gt details summary{cursor:pointer;font-weight:650}
.gt details h3{margin:18px 0 6px;font-size:1rem}
.gt details p,.gt details li{font-size:.9rem;color:var(--muted)}
.gt .source{font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}
.gt table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.gt th,.gt td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}
.gt .num{text-align:right}
.gt .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:700px){.gt .hero-row{flex-direction:column-reverse;gap:6px}.gt .hero-row #lang-slot{align-self:flex-end}.gt .drop{min-height:150px;padding:20px}.gt .sticky-actions{margin:16px -8px 0}}
@media(prefers-reduced-motion:reduce){.gt .status.busy:before{animation:none}}
@media print{.gt .drop,.gt #lang-slot,.gt .sticky-actions,.gt .no-print,.site-header,.tool-tabs,.mobile-tool-switch,.skip-link{display:none!important}.gt .panel{border:0;padding:0}}
