/* =========================================================
   URL SHORTLINK ANALYZER
========================================================= */

.url-workspace{

    padding:40px 0;

}

.url-container{

    max-width:1600px;

}

.url-panel{

    background:linear-gradient(145deg,#0b1220,#111827);

    border:1px solid rgba(255,255,255,.08);

    border-radius:18px;

    padding:28px;

    box-shadow:0 12px 35px rgba(0,0,0,.35);

}

/* =========================================================
   FORM
========================================================= */

.url-form{

    display:flex;

    gap:16px;

    margin-top:20px;

    align-items:center;

}

.url-form input{

    flex:1;

    height:58px;

    padding:0 20px;

    border-radius:12px;

    border:1px solid rgba(255,255,255,.08);

    background:#0f172a;

    color:#fff;

    font-size:16px;

    outline:none;

    transition:.2s;

}

.url-form input::placeholder{

    color:#6b7280;

}

.url-form input:focus{

    border-color:#2563eb;

    box-shadow:0 0 0 3px rgba(37,99,235,.18);

}

.url-form button{

    height:58px;

    padding:0 28px;

    border:none;

    border-radius:12px;

    background:#2563eb;

    color:#fff;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

    transition:.25s;

}

.url-form button:hover{

    background:#1d4ed8;

    transform:translateY(-2px);

}

.url-form button:disabled{

    opacity:.6;

    cursor:not-allowed;

    transform:none;

}

/* =========================================================
   LOADING
========================================================= */

.loading-message{

    margin-top:18px;

    color:#9ca3af;

    font-size:14px;

}

/* =========================================================
   DASHBOARD
========================================================= */

.url-dashboard{

    margin-top:40px;

}

.dashboard-grid{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:24px;

}

.dashboard-card{

    background:linear-gradient(145deg,#111827,#0f172a);

    border:1px solid rgba(255,255,255,.08);

    border-radius:18px;

    padding:24px;

    display:flex;

    flex-direction:column;

    min-width:0;

    box-shadow:0 12px 35px rgba(0,0,0,.35);

}

.dashboard-left{

    display:flex;

    flex-direction:column;

    gap:32px;

}

.dashboard-section{

    display:flex;

    flex-direction:column;

}

.dashboard-title{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:20px;

}

.dashboard-title h2{

    margin:0;

    color:#fff;

    font-size:22px;

}

.dashboard-badge{

    background:#2563eb;

    color:#fff;

    padding:6px 12px;

    border-radius:999px;

    font-size:12px;

    text-transform:uppercase;

    font-weight:600;

}

/* =========================================================
   STATUS GRID
========================================================= */

.status-grid{

    display:grid;

    grid-template-columns:repeat(2,minmax(0,1fr));

    gap:14px;

}

.status-item{

    background:#1f2937;

    border:1px solid rgba(255,255,255,.06);

    border-radius:14px;

    padding:18px;

    display:flex;

    flex-direction:column;

    gap:10px;

    transition:.25s;

}

.status-item:hover{

    border-color:#2563eb;

    transform:translateY(-2px);

}

.status-item strong{

    color:#9ca3af;

    font-size:13px;

    text-transform:uppercase;

    letter-spacing:.4px;

}

.status-item span{

    color:#fff;

    font-size:26px;

    font-weight:700;

    word-break:break-word;

}

/* =========================================================
   STAT GRID
========================================================= */

.stats-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));

    gap:14px;

}

.stat-card{

    background:#1f2937;

    border:1px solid rgba(255,255,255,.06);

    border-radius:14px;

    padding:18px;

    transition:.25s;

    text-align:center;

}

.stat-card:hover{

    border-color:#2563eb;

    transform:translateY(-2px);

}

.stat-card strong{

    display:block;

    margin-bottom:10px;

    color:#9ca3af;

    font-size:13px;

    text-transform:uppercase;

}

.stat-card span{

    display:block;

    color:#fff;

    font-size:24px;

    font-weight:700;

    word-break:break-word;

    overflow-wrap:anywhere;

    line-height:1.35;

}

/* =========================================================
   REDIRECT TIMELINE
========================================================= */

.timeline-grid{

    display:flex;

    flex-direction:column;

    gap:16px;

}

.timeline-item{

    position:relative;

    background:#1f2937;

    border-left:4px solid #2563eb;

    border-radius:12px;

    padding:18px;

}

.timeline-item:not(:last-child)::after{

    content:"";

    position:absolute;

    left:17px;

    top:100%;

    width:2px;

    height:18px;

    background:#374151;

}

.timeline-status{

    display:inline-block;

    padding:5px 10px;

    border-radius:999px;

    font-size:12px;

    font-weight:700;

    margin-bottom:12px;

}

.timeline-url{

    color:#e5e7eb;

    word-break:break-all;

    line-height:1.5;

    font-size:14px;

}

/* =========================================================
   HTTP STATUS COLORS
========================================================= */

.http-200{

    background:#16a34a;

    color:#fff;

}

.http-301{

    background:#2563eb;

    color:#fff;

}

.http-302{

    background:#0ea5e9;

    color:#fff;

}

.http-307{

    background:#6366f1;

    color:#fff;

}

.http-308{

    background:#8b5cf6;

    color:#fff;

}

.http-400{

    background:#f59e0b;

    color:#fff;

}

.http-404{

    background:#ef4444;

    color:#fff;

}

.http-500{

    background:#dc2626;

    color:#fff;

}

/* =========================================================
   RECOMMENDATIONS
========================================================= */

.recommendation-grid{

    display:grid;

    gap:12px;

}

.recommendation-card{

    background:#1f2937;

    border-left:4px solid #22c55e;

    padding:16px;

    border-radius:12px;

    color:#fff;

    transition:.25s;

}

.recommendation-card:hover{

    transform:translateY(-2px);

}

.recommendation-warning{

    border-left-color:#f59e0b;

}

.recommendation-danger{

    border-left-color:#ef4444;

}

/* =========================================================
   ANALYSIS LOG
========================================================= */

.event-log{

    flex:1;

    min-height:850px;

    overflow-y:auto;

    background:#0b1220;

    border:1px solid rgba(255,255,255,.05);

    border-radius:14px;

    padding:14px;

    font-family:Consolas,monospace;

}

.log-placeholder{

    padding-top:240px;

    text-align:center;

    color:#6b7280;

}

.log-item{

    display:flex;

    gap:10px;

    align-items:flex-start;

    margin-bottom:10px;

    background:#111827;

    border-left:3px solid #2563eb;

    border-radius:8px;

    padding:10px 12px;

}

.log-time{

    color:#60a5fa;

    min-width:70px;

    font-weight:600;

}

.log-message{

    color:#e5e7eb;

    word-break:break-word;

}

/* =========================================================
   SECURITY COLORS
========================================================= */

.good{

    color:#22c55e !important;

}

.warning{

    color:#f59e0b !important;

}

.danger{

    color:#ef4444 !important;

}

.info{

    color:#60a5fa !important;

}

/* =========================================================
   SCORE BADGE
========================================================= */

.score-badge{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    width:80px;

    height:80px;

    border-radius:50%;

    font-size:26px;

    font-weight:700;

    color:#fff;

    margin:auto;

}

.score-high{

    background:#16a34a;

}

.score-medium{

    background:#eab308;

}

.score-low{

    background:#ef4444;

}

/* =========================================================
   SKELETON LOADING
========================================================= */

.skeleton{

    position:relative;

    overflow:hidden;

    background:#1f2937;

}

.skeleton::before{

    content:"";

    position:absolute;

    inset:0;

    transform:translateX(-100%);

    background:linear-gradient(

        90deg,

        transparent,

        rgba(255,255,255,.08),

        transparent

    );

    animation:skeleton 1.2s infinite;

}

@keyframes skeleton{

    100%{

        transform:translateX(100%);

    }

}

/* =========================================================
   SCROLLBAR
========================================================= */

.event-log::-webkit-scrollbar{

    width:10px;

}

.event-log::-webkit-scrollbar-thumb{

    background:#374151;

    border-radius:20px;

}

/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:900px){

    .dashboard-grid{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .url-form{

        flex-direction:column;

        align-items:stretch;

    }

    .status-grid{

        grid-template-columns:1fr;

    }

    .stats-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:520px){

    .stats-grid{

        grid-template-columns:1fr;

    }

}

.excellent{

    color:#16a34a !important;

}

/* ==========================================
RECOMMENDATION COLORS
========================================== */

.recommendation-good{

    border-left:4px solid #22c55e;

}

.recommendation-info{

    border-left:4px solid #3b82f6;

}

.recommendation-warning{

    border-left:4px solid #f59e0b;

}

.recommendation-danger{

    border-left:4px solid #ef4444;

}

.recommendation-title{

    font-size:16px;

    font-weight:700;

    color:#fff;

    margin-bottom:8px;

}

.recommendation-message{

    color:#d1d5db;

    line-height:1.5;

}