.tool-card{background:linear-gradient(180deg,#ffffff09,#ffffff03)padding-box,linear-gradient(165deg,#ffffff29,#ffffff0d 40%,var(--tool-accent-soft,#10b98129)100%)border-box;background-color:var(--card);border:1px solid #0000;border-radius:18px;flex-direction:column;gap:14px;padding:26px;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s;display:flex;position:relative;overflow:hidden}.tool-card:after{content:"";background:radial-gradient(circle,var(--tool-accent-soft,#10b9812e)0%,transparent 68%);pointer-events:none;opacity:.85;width:320px;height:320px;position:absolute;inset:-40% -30% auto auto}.tool-card:hover{box-shadow:0 22px 60px -28px #000000d9,0 0 32px -18px var(--tool-accent,#10b9818c);transform:translateY(-3px)}.tool-card__badge{background:var(--tool-accent-soft,#10b9811f);border:1px solid #ffffff1a;border-radius:16px;place-items:center;width:56px;height:56px;display:grid}.tool-card__badge img{width:32px;height:32px;image-rendering:pixelated}@media (prefers-reduced-motion:reduce){.tool-card,.tool-card:hover{transition:box-shadow .2s;transform:none}}.drop-zone{border:1.5px dashed var(--hairline-strong);text-align:center;cursor:pointer;background:#ffffff04;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:260px;padding:40px 28px;transition:border-color .2s,background-color .2s,transform .2s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.drop-zone:hover{background:#ffffff08;border-color:#ffffff3d}.drop-zone.is-dragging{background:#10b98112;border-color:#34d399b3;transform:scale(1.005)}.drop-zone.is-busy{cursor:progress;border-style:solid;border-color:#34d39959}.drop-zone__icon{border:1px solid var(--hairline);background:#ffffff08;border-radius:18px;place-items:center;width:62px;height:62px;display:grid}.drop-zone__formats{flex-wrap:wrap;justify-content:center;gap:6px;max-width:520px;display:flex}.drop-zone__format{border:1px solid var(--hairline);font-family:var(--font-mono);color:var(--muted-foreground);background:#ffffff05;border-radius:999px;padding:3px 9px;font-size:11px}.report-card{border:1px solid var(--hairline);background:#ffffff05;border-radius:16px}.stat-tile{border:1px solid var(--hairline);background:#ffffff05;border-radius:14px;padding:14px 16px}.stat-tile__value{letter-spacing:-.02em;font-size:22px;font-weight:600;line-height:1.1}.stat-tile__label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);margin-top:3px;font-size:11px}.sev-error{--sev:#f87171;--sev-soft:#f871711f}.sev-warning{--sev:#fbbf24;--sev-soft:#fbbf241f}.sev-info{--sev:#60a5fa;--sev-soft:#60a5fa1f}.sev-ok{--sev:#34d399;--sev-soft:#34d3991f}.issue-row{border-left:2px solid var(--sev,var(--hairline-strong));background:linear-gradient(90deg,var(--sev-soft,transparent)0%,transparent 42%);transition:background-color .16s}.issue-row:hover{background:linear-gradient(90deg,var(--sev-soft,transparent)0%,transparent 42%),#ffffff05}.progress-track{background:#ffffff12;border-radius:999px;height:6px;overflow:hidden}.progress-fill{background:var(--grad-accent);border-radius:999px;height:100%;transition:width .28s cubic-bezier(.22,1,.36,1)}.log-line{font-family:var(--font-mono);border-bottom:1px solid #ffffff08;gap:9px;padding:5px 12px;font-size:11.5px;line-height:1.6;display:flex}.log-line:last-child{border-bottom:none}.pixel-preview{image-rendering:pixelated;background-image:linear-gradient(45deg,#ffffff0b 25%,#0000 25%),linear-gradient(-45deg,#ffffff0b 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ffffff0b 75%),linear-gradient(-45deg,#0000 75%,#ffffff0b 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.tool-tab{color:var(--muted-foreground);white-space:nowrap;border-radius:10px;padding:7px 14px;font-size:13px;font-weight:500;transition:color .16s,background-color .16s;position:relative}.tool-tab:hover{color:#fff;background:#ffffff0a}.tool-tab[data-active=true]{color:#fff;background:#ffffff12}.tool-enter{animation:.42s cubic-bezier(.22,1,.36,1) both toolEnter}@keyframes toolEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.tool-enter{animation:none}.progress-fill{transition:none}}
