@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-color:#050505;--panel-bg:#ffffff08;--panel-border:#ffffff14;--text-main:#f3f4f6;--text-muted:#9ca3af;--accent-primary:#8b5cf6;--accent-secondary:#ec4899;--danger:#ef4444;--success:#10b981;--warning:#f59e0b}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);background-image:radial-gradient(circle at 15%,#8b5cf626,#0000 25%),radial-gradient(circle at 85% 30%,#ec489926,#0000 25%);background-attachment:fixed;min-height:100vh;font-family:Inter,sans-serif;overflow-x:hidden}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 8px 32px #0000004d}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.app-container{max-width:1280px;margin:0 auto;padding:2rem}.header{text-align:center;margin-bottom:2.5rem;animation:.8s ease-out fadeInDown}.header h1{background:linear-gradient(90deg,#fff,#a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.header p{color:var(--text-muted);font-size:1.1rem}.upload-section{text-align:center;margin-bottom:2.5rem;padding:2.5rem;animation:1s ease-out fadeIn}.file-input-wrapper{width:100%;max-width:560px;display:inline-block;position:relative;overflow:hidden}.file-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem;animation:.5s ease-out fadeIn;display:grid}.summary-card{background:var(--panel-bg);border:1px solid var(--panel-border);border-top:3px solid #0000;border-radius:14px;flex-direction:column;gap:.35rem;padding:1.5rem 1.75rem;transition:transform .2s;display:flex;box-shadow:0 4px 16px #0000004d}.summary-card:hover{transform:translateY(-3px)}.summary-card--total{border-top-color:var(--accent-primary)}.summary-card--offline{border-top-color:var(--danger)}.summary-card--online{border-top-color:var(--success)}.summary-card--error{border-top-color:var(--warning)}.summary-number{font-size:2.2rem;font-weight:700;line-height:1}.summary-card--total .summary-number{color:var(--accent-primary)}.summary-card--offline .summary-number{color:var(--danger)}.summary-card--online .summary-number{color:var(--success)}.summary-card--error .summary-number{color:var(--warning)}.summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:500}.table-section{animation:.6s ease-out fadeInUp;overflow:hidden}.table-toolbar{border-bottom:1px solid var(--panel-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.table-title{color:var(--text-main);font-size:1.1rem;font-weight:600}.table-controls{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.search-box{border:1px solid var(--panel-border);color:var(--text-muted);background:#ffffff0a;border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .85rem;display:flex}.search-box input{color:var(--text-main);background:0 0;border:none;outline:none;width:200px;font-size:.9rem}.search-box input::placeholder{color:var(--text-muted)}.filter-tabs{gap:.4rem;display:flex}.filter-tab{border:1px solid var(--panel-border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .9rem;font-size:.85rem;font-weight:500;transition:all .2s}.filter-tab:hover{color:var(--text-main);background:#ffffff0f}.filter-tab.active{border-color:var(--accent-primary);color:var(--accent-primary);background:#8b5cf626}.filter-tab--online.active{border-color:var(--success);color:var(--success);background:#10b9811f}.filter-tab--offline.active{border-color:var(--danger);color:var(--danger);background:#ef44441f}.table-wrapper{overflow-x:auto}.results-table{border-collapse:collapse;width:100%;font-size:.9rem}.results-table thead tr{border-bottom:1px solid var(--panel-border)}.results-table th{text-align:left;letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase;white-space:nowrap;padding:.85rem 1.25rem;font-size:.75rem;font-weight:600}.results-table td{vertical-align:middle;border-bottom:1px solid #ffffff0a;padding:.85rem 1.25rem}.table-row{transition:background .15s}.table-row:hover{background:#ffffff08}.table-row:last-child td{border-bottom:none}.table-row--offline td:first-child{border-left:3px solid var(--danger)}.table-row--online td:first-child{border-left:3px solid var(--success)}.table-row--error td:first-child{border-left:3px solid var(--warning)}.td-index{color:var(--text-muted);width:48px;font-size:.8rem}.td-url{max-width:480px}.url-text{white-space:nowrap;text-overflow:ellipsis;color:#a78bfa;font-weight:500;display:block;overflow:hidden}.td-time{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.td-action{text-align:center;width:56px}.action-link{width:32px;height:32px;color:var(--text-muted);border:1px solid var(--panel-border);background:#ffffff0a;border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:all .2s;display:inline-flex}.action-link:hover{color:var(--accent-primary);background:#8b5cf61a;border-color:#8b5cf64d}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .85rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-badge--online{color:#34d399;background:#10b9811f;border:1px solid #10b98140}.status-badge--online .status-dot{background:#34d399;box-shadow:0 0 6px #34d399}.status-badge--offline{color:#f87171;background:#ef44441f;border:1px solid #ef444440}.status-badge--offline .status-dot{background:#f87171;box-shadow:0 0 6px #f87171}.status-badge--error{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b40}.status-badge--error .status-dot{background:#fbbf24;box-shadow:0 0 6px #fbbf24}.table-footer{color:var(--text-muted);border-top:1px solid var(--panel-border);padding:1rem 1.5rem;font-size:.82rem}.table-empty{text-align:center;color:var(--text-muted);padding:3rem}.progress-section{margin-bottom:2rem;padding:1.25rem 1.5rem;animation:.4s ease-out fadeIn}.progress-header{color:var(--text-main);align-items:center;gap:.6rem;margin-bottom:.75rem;font-size:.9rem;display:flex}.progress-pct{color:var(--accent-primary);margin-left:auto;font-size:.95rem;font-weight:700}.progress-bar-track{background:#ffffff12;border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));border-radius:999px;height:100%;transition:width .4s}.progress-hint{color:var(--text-muted);margin-top:.6rem;font-size:.78rem}.loader-container{color:var(--accent-primary);flex-direction:column;justify-content:center;align-items:center;padding:3rem;display:flex}.spinner{border:3px solid #8b5cf64d;border-top-color:var(--accent-primary);border-radius:50%;width:50px;height:50px;margin-bottom:1rem;animation:1s ease-in-out infinite spin}.spin-icon{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:2rem;line-height:1;transition:color .2s;position:absolute;top:1rem;right:1.5rem}.modal-close:hover{color:var(--danger)}
