.drop-zone{margin:48px auto;max-width:640px;border:2px dashed var(--border);border-radius:16px;padding:64px 32px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.drop-zone:hover,.drop-zone.drag-over{border-color:var(--green);background:var(--green-dim)}
.drop-icon{font-size:3rem;margin-bottom:16px}
.drop-zone h2{margin-bottom:8px;font-size:1.3rem}
.drop-zone p{color:var(--text-muted);font-size:.9rem}
.privacy-note{margin-top:24px;font-size:.78rem;color:var(--text-muted);opacity:.7}
.loading{text-align:center;padding:48px}
.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}
@keyframes spin{to{transform:rotate(360deg)}}
.hidden{display:none!important}
.result{max-width:700px;margin:32px auto}
.result-banner{padding:20px 24px;border-radius:var(--radius);display:flex;align-items:center;gap:16px;margin-bottom:24px}
.result-banner.verified{background:var(--green-dim);border:1px solid rgba(34,197,94,.2)}
.result-banner.failed{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2)}
.result-banner.none{background:rgba(160,160,160,.1);border:1px solid var(--border)}
.result-banner .icon{font-size:2rem}
.result-banner .label{font-weight:700;font-size:1.1rem}
.result-banner.verified .label{color:var(--green)}
.result-banner.failed .label{color:var(--red)}
.result-banner.none .label{color:var(--text-muted)}
.checks{margin-bottom:24px}
.check-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.check-icon{font-size:1.1rem;width:24px;text-align:center}
.check-pass{color:var(--green)}
.check-fail{color:var(--red)}
.manifest-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-top:16px}
.manifest-section h3{margin-bottom:14px;font-size:1rem;font-weight:600}
.info-row{display:flex;padding:8px 0;border-bottom:1px solid var(--border)}
.info-row:last-child{border-bottom:none}
.info-label{width:150px;color:var(--text-muted);flex-shrink:0;font-size:.9rem}
.info-value{word-break:break-all;font-size:.9rem}
.manifest-json{background:#111;padding:16px;border-radius:8px;overflow-x:auto;font-family:'SF Mono','Fira Code',monospace;font-size:.78rem;white-space:pre-wrap;color:var(--text-muted);max-height:400px;overflow-y:auto;border:1px solid var(--border)}
.btn-reset{display:inline-block;margin-top:24px;padding:10px 24px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);cursor:pointer;font-size:.95rem;transition:all .2s}
.btn-reset:hover{background:var(--surface);border-color:var(--border-hover)}
