.csp-app{--success:#10b981;--warning:#f59e0b;--danger:#ef4444}.csp-app .container{width:100%;max-width:1100px;margin:0 auto;padding:0 1.5rem}.csp-app .hero{text-align:center;padding:6rem 0 3rem}.csp-app .hero-eyebrow{color:#e879f9;background:linear-gradient(135deg,#6366f133,#a855f733);border:1px solid #a855f74d;border-radius:50px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.4rem 1rem;font-size:.85rem;font-weight:600;display:inline-flex}.csp-app .hero-title{letter-spacing:-.03em;background:linear-gradient(135deg,#f8fafc 30%,#818cf8 70%,#e879f9 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 1.25rem;font-size:4rem;line-height:1.1}.csp-app .hero-subtitle{color:#94a3b8;max-width:560px;margin:0 auto 2.5rem;font-size:1.15rem}.csp-app .scanner-card{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172abf;border-radius:20px;max-width:720px;margin:0 auto;padding:2.5rem;box-shadow:0 20px 60px #00000059,inset 0 1px #ffffff0f}.csp-app .url-input-row{gap:.75rem;display:flex}.csp-app .url-input{color:#fff;background:#00000059;border:1px solid #ffffff1f;border-radius:12px;outline:none;flex:1;padding:.9rem 1.25rem;font-family:Inter,sans-serif;font-size:1rem;transition:border-color .2s,box-shadow .2s}.csp-app .url-input::placeholder{color:#475569}.csp-app .url-input:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px var(--primary-glow)}.csp-app .url-input.error{border-color:var(--danger);box-shadow:0 0 0 3px #ef444440}.csp-app .btn-primary{background:linear-gradient(135deg, var(--primary), #6d28d9);color:#fff;cursor:pointer;box-shadow:0 4px 15px var(--primary-glow);white-space:nowrap;border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.9rem 1.75rem;font-size:1rem;font-weight:700;transition:all .2s;display:inline-flex}.csp-app .btn-primary:hover:not(:disabled){box-shadow:0 8px 25px var(--primary-glow);transform:translateY(-2px)}.csp-app .btn-primary:disabled{opacity:.6;cursor:not-allowed}.csp-app .btn-ghost{color:#fff;border:1px solid var(--glass-border);cursor:pointer;background:#ffffff0d;border-radius:10px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.csp-app .btn-ghost:hover{background:#ffffff1a}.csp-app .btn-success{color:#10b981;cursor:pointer;background:#10b98126;border:1px solid #10b9814d;border-radius:10px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.csp-app .btn-success:hover{background:#10b98140}.csp-app .spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.csp-app .scan-progress{text-align:center;padding:1.5rem 0 .5rem}.csp-app .progress-label{color:#94a3b8;margin-top:.75rem;font-size:.9rem}.csp-app .progress-bar-track{background:#ffffff14;border-radius:3px;height:3px;margin-top:1rem;overflow:hidden}.csp-app .progress-bar-fill{background:linear-gradient(90deg, var(--primary-light), #e879f9);border-radius:3px;height:100%;animation:1.8s ease-in-out infinite progress-sweep}@keyframes progress-sweep{0%{width:0%;margin-left:0}50%{width:70%;margin-left:0}to{width:0%;margin-left:100%}}.csp-app .results-section{max-width:900px;margin:2.5rem auto 4rem}.csp-app .result-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.csp-app .result-title{margin:0 0 .25rem;font-size:1.6rem;font-weight:800}.csp-app .result-url{color:#64748b;font-family:JetBrains Mono,monospace;font-size:.85rem}.csp-app .badges-row{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.csp-app .badge{border-radius:50px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.78rem;font-weight:600;display:inline-flex}.csp-app .badge-wp{color:#60a5fa;background:#219dff26;border:1px solid #219dff59}.csp-app .badge-platform{color:#c084fc;background:#a855f726;border:1px solid #a855f759}.csp-app .badge-warn{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b59}.csp-app .badge-danger{color:#f87171;background:#ef444426;border:1px solid #ef444459}.csp-app .badge-safe{color:#34d399;background:#10b98126;border:1px solid #10b98159}.csp-app .format-tabs{gap:.5rem;margin-bottom:1rem;display:flex}.csp-app .tab-btn{border:1px solid var(--glass-border);cursor:pointer;color:#94a3b8;background:#ffffff08;border-radius:8px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.csp-app .tab-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.csp-app .code-block{color:#94a3b8;background:#050d1a;border:1px solid #ffffff14;border-radius:14px;padding:1.5rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.88rem;line-height:1.8;position:relative;overflow-x:auto;box-shadow:inset 0 0 40px #6366f10d}.csp-app .code-block .csp-directive{color:#818cf8;font-weight:600}.csp-app .code-block .csp-value{color:#38bdf8}.csp-app .code-block .csp-unsafe{color:#f87171}.csp-app .code-block .csp-self{color:#34d399}.csp-app .code-block-actions{justify-content:flex-end;gap:.5rem;margin-bottom:.75rem;display:flex}.csp-app .breakdown-title{margin:2rem 0 1rem;font-size:1.15rem;font-weight:700}.csp-app .directive-list{flex-direction:column;gap:.75rem;display:flex}.csp-app .directive-row{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a99;border-radius:12px;grid-template-columns:180px 1fr auto;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:border-color .2s;display:grid}.csp-app .directive-row:hover{border-color:#6366f14d}.csp-app .directive-name{color:#818cf8;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600}.csp-app .directive-sources{flex-wrap:wrap;gap:.35rem;display:flex}.csp-app .source-chip{border-radius:6px;padding:.2rem .6rem;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:500}.csp-app .chip-self{color:#34d399;background:#10b98126;border:1px solid #10b98140}.csp-app .chip-unsafe{color:#f87171;background:#ef444426;border:1px solid #ef444440}.csp-app .chip-none{color:#94a3b8;background:#64748b26;border:1px solid #64748b40}.csp-app .chip-external{color:#a5b4fc;background:#6366f126;border:1px solid #6366f140}.csp-app .chip-data{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b40}.csp-app .risk-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.csp-app .risk-safe{background:var(--success);box-shadow:0 0 6px var(--success)}.csp-app .risk-warn{background:var(--warning);box-shadow:0 0 6px var(--warning)}.csp-app .risk-danger{background:var(--danger);box-shadow:0 0 6px var(--danger)}.csp-app .warnings-box{background:#f59e0b14;border:1px solid #f59e0b40;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.csp-app .warnings-box h4{color:#fbbf24;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.95rem;display:flex}.csp-app .warnings-box ul{margin:0;padding-left:1.25rem}.csp-app .warnings-box li{color:#d97706;margin-bottom:.4rem;font-size:.88rem;line-height:1.5}.csp-app .error-card{text-align:center;background:#ef444414;border:1px solid #ef444440;border-radius:14px;padding:2rem}.csp-app .error-card h3{color:#f87171;margin-bottom:.5rem}.csp-app .error-card p{color:#94a3b8;margin:0;font-size:.9rem}.csp-app .fade-enter-from{opacity:0;transform:translateY(10px)}.csp-app .fade-leave-to{opacity:0;transform:translateY(-10px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.csp-app .fade-in-up{animation:.6s forwards fadeInUp}.csp-app .delay-1{opacity:0;animation-delay:.1s}.csp-app .delay-2{opacity:0;animation-delay:.2s}.csp-app .delay-3{opacity:0;animation-delay:.3s}@media (width<=768px){.csp-app .hero-title{font-size:2.6rem}.csp-app .url-input-row{flex-direction:column}.csp-app .directive-row{grid-template-columns:1fr}.csp-app .directive-name{font-size:.8rem}.csp-app .result-header{flex-direction:column}}.csp-app .fade-enter-active,.csp-app .fade-leave-active{transition:opacity .2s}.csp-app .fade-enter-from,.csp-app .fade-leave-to{opacity:0}.csp-app .hover-white:hover{color:#fff!important}.csp-app .tool-footer{color:#64748b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:4rem;font-size:.8rem;display:flex}.csp-app .tool-footer p{max-width:560px;margin:0}.csp-app .tool-footer nav{flex-wrap:wrap;gap:1.25rem;display:flex}.csp-app .tool-footer a{color:#94a3b8;font-size:.85rem}
